mol_wire_lib 1.0.1809 → 1.0.1811
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/node.d.ts +3 -8
- package/node.d.ts.map +1 -1
- package/node.deps.json +1 -1
- package/node.js +69 -97
- package/node.js.map +1 -1
- package/node.mjs +69 -97
- package/node.test.js +370 -14462
- package/node.test.js.map +1 -1
- package/package.json +4 -4
- package/web.d.ts +3 -8
- package/web.d.ts.map +1 -1
- package/web.deps.json +1 -1
- package/web.js +69 -97
- package/web.js.map +1 -1
- package/web.mjs +69 -97
- package/web.test.js +313 -32313
- package/web.test.js.map +1 -1
- package/giper/baza/diagram/dict.png +0 -0
- package/giper/baza/diagram/gift.png +0 -0
- package/giper/baza/diagram/jepsen.png +0 -0
- package/giper/baza/diagram/json.png +0 -0
- package/giper/baza/diagram/list.png +0 -0
- package/giper/baza/diagram/network.png +0 -0
- package/giper/baza/diagram/pack.png +0 -0
- package/giper/baza/diagram/pass.png +0 -0
- package/giper/baza/diagram/reg.png +0 -0
- package/giper/baza/diagram/rich.png +0 -0
- package/giper/baza/diagram/sand.png +0 -0
- package/giper/baza/diagram/sync.png +0 -0
- package/giper/baza/diagram/text.png +0 -0
- package/giper/baza/diagram/tree.png +0 -0
- package/giper/baza/logo/bg.webp +0 -0
- package/giper/baza/logo/logo-512.png +0 -0
- package/giper/baza/logo/logo.svg +0 -3
package/node.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../mam.ts","../../../../mol/guid/guid.ts","../../../../mol/fail/fail.ts","../../../../mol/wire/cursor/cursor.ts","../../../../mol/wire/pub/pub.ts","../../../../mol/wire/wire.ts","../../../../mol/fail/hidden/hidden.ts","../../../../mol/dev/format/format.ts","../../../../mol/wire/pub/sub/sub.ts","../../../../mol/ambient/ambient.ts","../../../../mol/delegate/delegate.ts","../../../../mol/owning/owning.ts","../../../../mol/func/name/name.ts","../../../../mol/key/key.ts","../../../../mol/object2/object2.ts","../../../../mol/after/tick/tick.ts","../../../../mol/promise/like/like.ts","../../../../mol/wire/fiber/fiber.ts","../../../../mol/compare/deep/deep.ts","../../../../mol/log3/log3.ts","../../../../mol/span/span.ts","../../../../mol/tree2/to/string/string.ts","../../../../mol/maybe/maybe.ts","../../../../mol/tree2/tree2.ts","../../../../mol/error/syntax/syntax.ts","../../../../mol/tree2/from/string/string.ts","../../../../mol/array/chunks/chunks.ts","../../../../mol/tree2/from/json/json.ts","../../../../mol/term/color/color.ts","../../../../mol/log3/log3.node.ts","../../../../mol/wire/task/task.ts","../../../../mol/key/key/key.ts","../../../../mol/after/timeout/timeout.ts","../../../../mol/after/frame/frame.node.ts","../../../../mol/wire/method/method.ts","../../../../mol/fail/catch/catch.ts","../../../../mol/try/try.ts","../../../../mol/fail/log/log.ts","../../../../mol/wire/atom/atom.ts","../../../../mol/wire/probe/probe.ts","../../../../mol/wire/solid/solid.ts","../../../../mol/wire/watch/watch.ts","../../../../mol/wire/sync/sync.ts","../../../../mol/wire/async/async.ts","../../../../mol/wire/race/race.ts","../../../../mol/wire/solo/solo.ts","../../../../mol/wire/plex/plex.ts","../../../../mol/const/const.ts","../../../../mol/wire/field/field.ts","../../../../mol/object/object.ts","../../../../mol/mem/mem.ts","../../../../mol/state/time/time.ts","../../../../mol/wire/easing/easing.ts","../../../../mol/wire/patch/patch.ts","../../../../mol/wire/let/let.ts","../../../../mol/wire/set/set.ts","../../../../mol/wire/proxy/proxy.ts","../../../../mol/wire/dict/dict.ts","../../../../mol/promise/promise/promise.ts","../../../../mol/wait/timeout/timeout.ts","../../../../mol/wire/log/log.ts","../../../../mol/test/test.test.ts","../../../../mol/test/test.node.test.ts","../../../../mol/dom/context/context.ts","../../../../node/internal/check/check.node.ts","../../../../node/autoinstall/autoinstall.node.ts","../../../../node/node.node.ts","../../../../mol/func/name/name.test.ts","../../../../mol/error/mix/mix.ts","../../../../mol/error/mix/mix.test.ts","../../../../mol/object/object.test.ts","../../../../mol/env/env.ts","../../../../mol/env/env.node.ts","../../../../mol/wire/sync/sync.test.ts","../../../../mol/log3/log3.test.ts","../../../../mol/run/run.node.ts","../../../../mol/run/run.node.test.ts","../../../../mol/dom/context/context.node.ts","../../../../mol/dom/dom.ts","../../../../mol/dom/render/children/children.ts","../../../../mol/dom/serialize/serialize.ts","../../../../mol/jsx/jsx.ts","../../../../mol/jsx/jsx.test.tsx","../../../../mol/range2/range2.ts","../../../../mol/range2/range2.test.ts","../../../../mol/compare/deep/deep.test.tsx","../../../../mol/assert/assert.ts","../../../../mol/assert/assert.test.ts","../../../../mol/delegate/delegate.test.ts","../../../../mol/span/span.test.ts","../../../../mol/maybe/maybe.test.ts","../../../../mol/tree2/tree2.test.ts","../../../../mol/array/chunks/chunks.test.ts","../../../../mol/tree2/from/string/string.test.ts","../../../../mol/tree2/from/json/json.test.ts","../../../../mol/try/try.test.ts","../../../../mol/fail/log/log.test.ts","../../../../mol/wire/pub/sub/sub.test.ts","../../../../mol/after/mock/mock.test.ts","../../../../mol/after/tick/tick.test.ts","../../../../mol/wire/fiber/fiber.test.ts","../../../../mol/key/key/key.test.tsx","../../../../mol/after/timeout/timeout.test.ts","../../../../mol/after/frame/frame.test.ts","../../../../mol/after/work/work.ts","../../../../mol/after/work/work.test.ts","../../../../mol/wait/rest/rest.ts","../../../../mol/wait/rest/rest.test.ts","../../../../mol/wait/timeout/timeout.test.ts","../../../../mol/wire/async/async.test.ts","../../../../mol/wire/solo/solo.test.ts","../../../../mol/wire/plex/plex.test.ts","../../../../mol/wire/probe/probe.test.ts","../../../../mol/base64/encode/encode.ts","../../../../mol/charset/buffer/buffer.ts","../../../../mol/charset/encode/encode.ts","../../../../mol/charset/encode/encode.test.ts","../../../../mol/base64/encode/encode.node.ts","../../../../mol/base64/encode/encode.test.ts","../../../../mol/base64/decode/decode.ts","../../../../mol/base64/decode/decode.node.ts","../../../../mol/base64/decode/decode.test.ts","../../../../mol/base64/ae/ae.ts","../../../../mol/crypto/native/native.node.ts","../../../../mol/crypto2/hash/hash.ts","../../../../mol/crypto2/hash/hash.test.ts","../../../../mol/buffer/buffer.ts","../../../../mol/wrapper/wrapper.ts","../../../../mol/wrapper/wrapper.test.ts","../../../../mol/memo/memo.ts","../../../../mol/memo/memo.test.ts","../../../../mol/memo/key/key.ts","../../../../mol/schema/any/any.ts","../../../../mol/schema/float/float.ts","../../../../mol/schema/float/float.test.ts","../../../../mol/schema/string/string.ts","../../../../mol/schema/string/string.test.ts","../../../../mol/schema/maybe/maybe.ts","../../../../mol/schema/maybe/maybe.test.ts","../../../../mol/schema/instance/instance.ts","../../../../mol/schema/instance/instance.test.ts","../../../../giper/baza/link/link.ts","../../../../giper/baza/link/link.test.ts","../../../../mol/base64/url/url.ts","../../../../mol/base64/url/url.node.ts","../../../../mol/crypto2/key/key.ts","../../../../mol/crypto/restack/restack.ts","../../../../mol/crypto2/auditor/auditor.ts","../../../../mol/crypto2/socket/socket.ts","../../../../mol/crypto2/public/public.ts","../../../../mol/crypto2/signer/signer.ts","../../../../mol/crypto2/signer/signer.test.ts","../../../../mol/crypto2/nonce/nonce.ts","../../../../mol/crypto/salt/salt.ts","../../../../mol/crypto/sacred/sacred.ts","../../../../mol/crypto/sacred/sacred.test.ts","../../../../mol/crypto2/cipher/cipher.ts","../../../../mol/crypto2/cipher/cipher.test.ts","../../../../mol/crypto2/private/private.ts","../../../../mol/crypto2/private/private.test.ts","../../../../mol/storage/storage.ts","../../../../mol/storage/storage.node.ts","../../../../mol/state/local/local.ts","../../../../mol/const/const.test.ts","../../../../mol/action/action.ts","../../../../mol/lock/lock.ts","../../../../mol/mem/cached/cached.ts","../../../../mol/compare/array/array.ts","../../../../mol/compare/array/array.test.ts","../../../../mol/charset/decode/decode.ts","../../../../mol/charset/decode/decode.test.ts","../../../../mol/file/transaction/transaction.ts","../../../../mol/file/transaction/transaction.node.ts","../../../../mol/file/base/base.ts","../../../../mol/file/file.ts","../../../../mol/file/file.node.ts","../../../../mol/state/local/local.node.ts","../../../../mol/state/local/local.test.ts","../../../../mol/state/local/local.mock.test.ts","../../../../giper/baza/auth/auth.ts","../../../../giper/baza/auth/auth.test.ts","../../../../mol/time/base/base.ts","../../../../mol/time/duration/duration.ts","../../../../mol/time/duration/duration.test.ts","../../../../mol/time/moment/moment.ts","../../../../mol/time/moment/moment.test.ts","../../../../giper/baza/time/time.ts","../../../../giper/baza/face/face.ts","../../../../mol/wire/dict/dict.test.ts","../../../../giper/baza/slot/slot.ts","../../../../mol/graph/graph.ts","../../../../mol/graph/graph.test.ts","../../../../mol/data/error/error.ts","../../../../mol/data/number/number.ts","../../../../mol/data/number/number.test.ts","../../../../mol/data/integer/integer.ts","../../../../mol/data/integer/integer.test.ts","../../../../mol/data/tagged/tagged.ts","../../../../mol/data/tagged/tagged.test.ts","../../../../mol/data/setup/setup.ts","../../../../mol/data/setup/setup.test.ts","../../../../mol/func/is/class/class.ts","../../../../mol/func/is/class/class.test.ts","../../../../mol/data/pipe/pipe.ts","../../../../mol/data/pipe/pipe.test.ts","../../../../giper/baza/rank/rank.ts","../../../../giper/baza/unit/unit.ts","../../../../giper/baza/unit/unit.test.ts","../../../../mol/time/interval/interval.ts","../../../../mol/time/interval/interval.test.ts","../../../../mol/bigint/encode/encode.ts","../../../../mol/bigint/encode/encode.test.ts","../../../../mol/charset/ucf/ucf.ts","../../../../mol/charset/ucf/ucf.test.ts","../../../../mol/bigint/decode/decode.ts","../../../../mol/bigint/decode/decode.test.ts","../../../../mol/dom/parse/parse.ts","../../../../mol/bigint/bigint.test.ts","../../../../mol/vary/vary.ts","../../../../mol/vary/vary.test.tsx","../../../../giper/baza/vary/vary.ts","../../../../giper/baza/vary/vary.test.tsx","../../../../mol/hash/numbers/number.ts","../../../../giper/baza/unit/sand/sand.ts","../../../../giper/baza/unit/gift/gift.ts","../../../../giper/baza/unit/seal/seal.ts","../../../../mol/wire/set/set.test.ts","../../../../giper/baza/pawn/pawn.ts","../../../../mol/reconcile/reconcile.ts","../../../../mol/reconcile/reconcile.test.tsx","../../../../mol/schema/boolean/boolean.ts","../../../../mol/schema/boolean/boolean.test.ts","../../../../mol/schema/integer/integer.ts","../../../../mol/schema/integer/integer.test.ts","../../../../mol/schema/bigint/bigint.ts","../../../../mol/schema/bigint/bigint.test.ts","../../../../mol/schema/pattern/pattern.ts","../../../../mol/schema/pattern/pattern.test.ts","../../../../mol/schema/dict/dict.ts","../../../../mol/schema/dict/dict.test.ts","../../../../mol/schema/list/list.ts","../../../../mol/schema/list/list.test.ts","../../../../giper/baza/list/list.test.ts","../../../../giper/baza/list/list.ts","../../../../giper/baza/dict/dict.ts","../../../../giper/baza/dict/dict.test.ts","../../../../mol/hash/string/string.ts","../../../../mol/schema/enum/enum.ts","../../../../mol/schema/enum/enum.test.ts","../../../../giper/baza/atom/atom.ts","../../../../giper/baza/atom/atom.test.ts","../../../../giper/baza/stat/series/series.ts","../../../../giper/baza/stat/ranges/ranges.ts","../../../../mol/report/handler/handler.ts","../../../../mol/state/arg/arg.node.ts","../../../../mol/state/arg/arg.node.test.ts","../../../../giper/baza/log/log.ts","../../../../giper/baza/app/stat/stat.ts","../../../../mol/guard/defined.ts","../../../../giper/baza/flex/flex.ts","../../../../mol/memory/pool/pool.ts","../../../../mol/memory/pool/pool.test.ts","../../../../giper/baza/pack/pack.ts","../../../../giper/baza/pack/pack.test.ts","../../../../giper/baza/glob/glob.ts","../../../../giper/baza/glob/glob.test.ts","../../../../giper/baza/fund/fund.ts","../../../../giper/baza/mine/mine.ts","../../../../giper/baza/mine/fs/fs.node.ts","../../../../giper/baza/mine/mine.node.ts","../../../../giper/baza/mine/mine.test.ts","../../../../mol/bus/bus.ts","../../../../mol/bus/bus.test.ts","../../../../giper/baza/land/land.ts","../../../../giper/baza/land/land.test.ts","../../../../mol/rest/code/code.ts","../../../../mol/rest/port/port.ts","../../../../mol/rest/port/ws/ws.ts","../../../../mol/rest/message/message.node.ts","../../../../mol/rest/message/http/http.node.ts","../../../../mol/websocket/frame/frame.ts","../../../../mol/rest/port/ws/ws_std.ts","../../../../mol/rest/port/ws/ws.node.ts","../../../../giper/baza/yard/yard.ts","../../../../giper/baza/yard/yard.test.ts","../../../../mol/wire/atom/atom.test.ts","../../../../mol/wire/field/field.test.ts","../../../../mol/wire/let/let.test.ts","../../../../mol/wire/proxy/proxy.test.ts","../../../../mol/rest/resource/resource.node.ts","../../../../mol/file/extensions/extensions.ts","../../../../mol/rest/port/http/http.node.ts","../../../../mol/rest/server/server.node.ts","../../../../mol/rest/resource/fs/fs.node.tsx","../../../../hyoo/hyoo.ts","../../../../hyoo/harp/to/string/string.ts","../../../../mol/syntax2/syntax2.ts","../../../../hyoo/harp/from/string/string.ts","../../../../hyoo/harp/harp.test.ts","../../../../mol/data/string/string.ts","../../../../mol/data/string/string.test.ts","../../../../mol/data/variant/variant.ts","../../../../mol/data/variant/variant.test.ts","../../../../mol/data/optional/optional.ts","../../../../mol/data/optional/optional.test.ts","../../../../mol/data/record/record.ts","../../../../mol/data/record/record.test.ts","../../../../mol/data/array/array.ts","../../../../mol/data/array/array.test.ts","../../../../mol/data/boolean/boolean.ts","../../../../mol/data/boolean/boolean.test.ts","../../../../mol/data/enum/enum.ts","../../../../mol/data/enum/enum.test.ts","../../../../hyoo/harp/scheme/scheme.ts","../../../../hyoo/harp/scheme/scheme.test.ts","../../../../mol/blob/blob.ts","../../../../mol/offline/offline.ts","../../../../mol/offline/install/install.ts","../../../../giper/baza/file/file.ts","../../../../giper/baza/file/file.test.ts","../../../../giper/baza/app/home/home.ts","../../../../giper/baza/app/home/home.node.ts","../../../../giper/baza/app/app.node.ts","../../../../giper/baza/app/app.node.test.ts"],"names":[],"mappings":";;AAAA,KAAK,CAAC,eAAe,GAAG,EAAE,CAAC;AAK3B,IAAU,CAAC,CAQV;AARD,WAAU,CAAC;AAQX,CAAC,EARS,CAAC,KAAD,CAAC,QAQV;AAED,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;;;;;;;;;;;;;;;;;ACflB,IAAU,CAAC,CAkBV;AAlBD,WAAU,CAAC;IAEV,mCAAmC;IACnC,SAAgB,SAAS,CACxB,MAAM,GAAG,CAAC,EACV,SAAmC,GAAE,EAAE,CAAC,KAAK;QAG7C,SAAQ,CAAC;YAER,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAE,EAAE,CAAE,CAAC,SAAS,CAAE,CAAC,EAAE,MAAM,GAAG,CAAC,CAAE,CAAC,WAAW,EAAE,CAAA;YAC9E,IAAI,MAAM,CAAE,EAAE,CAAE;gBAAG,SAAQ;YAE3B,OAAO,EAAE,CAAA;QACV,CAAC;IAEF,CAAC;IAbe,WAAS,YAaxB,CAAA;AAEF,CAAC,EAlBS,CAAC,KAAD,CAAC,QAkBV;;;;AClBD,IAAU,CAAC,CAMV;AAND,WAAU,CAAC;IAEV,SAAgB,SAAS,CAAE,KAAW;QACrC,MAAM,KAAK,CAAA;IACZ,CAAC;IAFe,WAAS,YAExB,CAAA;AAEF,CAAC,EANS,CAAC,KAAD,CAAC,QAMV;;;;ACND,IAAU,CAAC,CAsBV;AAtBD,WAAU,CAAC;IAEV,+BAA+B;IAC/B,IAAY,gBAiBX;IAjBD,WAAY,gBAAgB;QAE3B,uBAAuB;QACvB,0DAAU,CAAA;QAEV,gDAAgD;QAChD,0DAAU,CAAA;QAEV,oEAAoE;QACpE,0DAAU,CAAA;QAEV,uCAAuC;QACvC,0DAAU,CAAA;QAEV,mCAAmC;QACnC,0DAAU,CAAA;IAEX,CAAC,EAjBW,gBAAgB,GAAhB,kBAAgB,KAAhB,kBAAgB,QAiB3B;AAEF,CAAC,EAtBS,CAAC,KAAD,CAAC,QAsBV;;;;ACtBD,IAAU,CAAC,CAyIV;AAzID,WAAU,CAAC;IAEV;;OAEG;IACH,MAAa,aAAc,SAAQ,MAAM;QAExC,YAAa,EAAE,GAAG,iBAAkB,SAAS,EAAG,EAAE;YACjD,KAAK,EAAE,CAAA;YACP,IAAI,CAAE,MAAM,CAAC,WAAW,CAAE,GAAG,EAAE,CAAA;QAChC,CAAC;QAED,CAAE,MAAM,CAAC,WAAW,CAAE,CAAS;QAC/B,IAAI,GAAG,EAAe,CAAA;QAEtB,oCAAoC;QACpC,MAAM,KAAK,CAAE,MAAM,CAAC,OAAO,CAAE;YAC5B,OAAO,KAAK,CAAA;QACb,CAAC;QAED;;WAEG;QACO,QAAQ,GAAG,CAAC,CAAA,CAAC,KAAK;QAE5B;;WAEG;QACH,IAAI,QAAQ;YACX,MAAM,GAAG,GAAG,EAAqB,CAAA;YACjC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAG,CAAC;gBAC3D,GAAG,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAkB,CAAE,CAAA;YAC1C,CAAC;YACD,OAAO,GAA+B,CAAA;QACvC,CAAC;QAED;;WAEG;QACH,IAAI,SAAS;YACZ,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAA;QAC1C,CAAC;QAED;;WAEG;QACH,MAAM,CAAE,GAAkB,EAAE,OAAe;YAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAA;YAC5B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,OAAO,CAAE,CAAA;YAC9B,OAAO,GAAG,CAAA;QACX,CAAC;QAED;;WAEG;QACH,OAAO,CAAE,OAAe;YAEvB,IAAG,CAAC,CAAE,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAE,EAAE,CAAC;gBACpC,SAAS,CAAE,IAAI,KAAK,CAAE,aAAc,OAAQ,EAAE,CAAE,CAAE,CAAA;YACnD,CAAC;YAED,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;YAChC,IAAI,OAAO,KAAK,GAAG,EAAG,CAAC;gBACtB,IAAI,CAAC,SAAS,CAAE,GAAG,EAAE,OAAO,CAAE,CAAA;YAC/B,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAA;YAEtB,IAAI,GAAG,KAAK,IAAI,CAAC,QAAQ;gBAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QAExC,CAAC;QAED;;YAEI;QACJ,IAAI,KAAK,CAAC;QAEV;;YAEI;QACJ,OAAO;YACN,cAAc,EAAE,EAAE,UAAU,CAAE,IAAI,CAAE,CAAA;QACrC,CAAC;QAED;;WAEG;QACH,KAAK,KAAI,CAAC;QAEV;;WAEG;QACH,IAAI,IAAI;YACP,OAAO,KAAK,CAAA;QACb,CAAC;QAED;;WAEG;QACH,QAAQ,KAAI,CAAC;QAEb,IAAI,WAAW;YACd,OAAO,KAAK,CAAA;QACb,CAAC;QAED;;WAEG;QACH,IAAI,CAAE,KAAK,GAAG,gBAAgB,CAAC,KAAK;YACnC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAG,CAAC;gBAC3D,CAAC;gBAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAoB,CAAC,MAAM,CAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAE,CAAC,GAAG,CAAC,CAAY,CAAE,CAAA;YACjF,CAAC;QACF,CAAC;QAED;;WAEG;QACH,SAAS,CAAE,QAAgB,EAAE,MAAc;YAE1C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,QAAQ,CAAmB,CAAA;YACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAE,QAAQ,GAAG,CAAC,CAAY,CAAA;YAEpD,IAAI,CAAC,IAAI,CAAE,MAAM,CAAE,GAAG,IAAI,CAAA;YAC1B,IAAI,CAAC,IAAI,CAAE,MAAM,GAAG,CAAC,CAAE,GAAG,QAAQ,CAAA;YAElC,IAAI,CAAC,UAAU,CAAE,QAAQ,EAAE,MAAM,CAAE,CAAA;QACpC,CAAC;QAED;;WAEG;QACH,UAAU,CAAE,QAAgB,EAAE,QAAgB;YAC7C,IAAI,CAAC,IAAI,CAAE,QAAQ,GAAG,CAAC,CAAE,GAAG,QAAQ,CAAA;QACrC,CAAC;KAED;IAlIY,eAAa,gBAkIzB,CAAA;AAEF,CAAC,EAzIS,CAAC,KAAD,CAAC,QAyIV;;;;;;;ACzID,IAAU,CAAC,CAgBV;AAhBD,WAAU,CAAC;IAEC,oBAAkB,GAAyB,IAAI,CAAA;IAE1D;;OAEG;IACH,SAAgB,cAAc,CAAE,IAAI,GAAG,EAAA,kBAAkB;QACxD,OAAO,EAAA,kBAAkB,GAAG,IAAI,CAAA;IACjC,CAAC;IAFe,gBAAc,iBAE7B,CAAA;IAED;;OAEG;IACU,oBAAkB,GAAG,EAAkC,CAAA;AAErE,CAAC,EAhBS,CAAC,KAAD,CAAC,QAgBV;;;;AChBD,IAAU,CAAC,CAMV;AAND,WAAU,CAAC;IAEV,SAAgB,gBAAgB,CAAE,KAAW;QAC5C,MAAM,KAAK,CAAA,CAAC,gFAAgF;IAC7F,CAAC;IAFe,kBAAgB,mBAE/B,CAAA;AAEF,CAAC,EANS,CAAC,KAAD,CAAC,QAMV;;;;ACND,IAAU,CAAC,CAuRV;AAvRD,WAAU,CAAC;IAEV,2FAA2F;IAC1F,CAAS,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAA;IAEvC,SAAgB,wBAAwB,CAAE,MAOzC;QACC,CAAS,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAE,MAAM,CAAE,CAAA;IAChD,CAAC;IATe,0BAAwB,2BASvC,CAAA;IAEY,sBAAoB,GAAG,MAAM,CAAE,sBAAsB,CAAE,CAAA;IACvD,sBAAoB,GAAG,MAAM,CAAE,sBAAsB,CAAE,CAAA;IAEpE,SAAS,sBAAsB,CAAE,KAAU,EAAE,KAAe;QAC3D,OAAO,oBAAoB,CAAE;YAC5B,CAAE,EAAA,oBAAoB,CAAE;gBACvB,OAAO,EAAA,oBAAoB,CAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,KAAK,CAAE,CAAA;YAClE,CAAC;YACD,CAAE,EAAA,oBAAoB,CAAE;gBACvB,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;gBAC/B,OAAO,EAAA,oBAAoB,CAAC,EAAE,CAAC,CAAA;YAChC,CAAC;SACD,CAAE,CAAA;IACJ,CAAC;IAED,wBAAwB,CAAC;QAExB,MAAM,EAAG,CAAE,GAAS,EAAG,MAAM,GAAG,KAAK,EAAG,EAAE;YAEzC,IAAI,MAAM;gBAAG,OAAO,IAAI,CAAA;YAExB,IAAI,CAAC,GAAG;gBAAG,OAAO,IAAI,CAAA;YAEtB,IAAI,EAAA,oBAAoB,IAAI,GAAG,EAAG,CAAC;gBAClC,IAAI,CAAC;oBACJ,OAAO,GAAG,CAAE,EAAA,oBAAoB,CAAE,EAAE,CAAA;gBACrC,CAAC;gBAAC,OAAO,KAAK,EAAG,CAAC;oBACjB,OAAO,EAAA,sBAAsB,CAAE,sBAAsB,CAAE,GAAG,CAAE,EAAE,IAAI,EAAE,sBAAsB,CAAE,KAAK,CAAE,EAAE,EAAE,CAAE,CAAA;gBAC1G,CAAC;YACF,CAAC;YAED,IAAI,OAAO,GAAG,KAAK,UAAU,EAAG,CAAC;gBAChC,OAAO,sBAAsB,CAAE,GAAG,CAAE,CAAA;YACrC,CAAC;YAED,IAAI,GAAG,YAAY,KAAK,EAAG,CAAC;gBAE3B,OAAO,EAAA,oBAAoB,CAAE,EAAE,EAC9B,sBAAsB,CAAE,GAAG,CAAE,EAC7B,GAAG,EACH,sBAAsB,CAAE,OAAO,EAAE,GAAE,EAAE,CAAC,gBAAgB,CAAE,GAAG,CAAE,CAAE,CAC/D,CAAA;YAEF,CAAC;YAED,IAAI,GAAG,YAAY,OAAO,EAAG,CAAC;gBAC7B,OAAO,EAAA,qBAAqB,CAC3B,sBAAsB,CAAE,GAAG,CAAE,EAC7B,GAAG,EACH,GAAG,CAAE,MAAM,CAAC,WAAW,CAAE,IAAI,EAAE,CAC/B,CAAA;YACF,CAAC;YAED,IAAI,MAAM,CAAC,WAAW,IAAI,GAAG,EAAG,CAAC;gBAChC,OAAO,sBAAsB,CAAE,GAAG,CAAE,CAAA;YACrC,CAAC;YAED,OAAO,IAAI,CAAA;QAEZ,CAAC;QAED,OAAO,EAAG,CAAE,GAAQ,EAAG,MAAM,GAAG,KAAK,EAAE,EAAE;YAExC,IAAI,MAAM;gBAAG,OAAO,KAAK,CAAA;YACzB,IAAI,CAAC,GAAG;gBAAG,OAAO,KAAK,CAAA;YAEvB,kCAAkC;YAClC,IAAI,GAAG,CAAE,EAAA,oBAAoB,CAAE;gBAAG,OAAO,IAAI,CAAA;YAE7C,OAAO,KAAK,CAAA;QACb,CAAC;QAED,IAAI,EAAI,CAAE,GAAQ,EAAG,MAAM,GAAG,KAAK,EAAE,EAAE;YAEtC,IAAI,MAAM;gBAAG,OAAO,IAAI,CAAA;YAExB,IAAI,CAAC,GAAG;gBAAG,OAAO,IAAI,CAAA;YAEtB,IAAI,EAAA,oBAAoB,IAAI,GAAG,EAAG,CAAC;gBAClC,IAAI,CAAC;oBACJ,OAAO,GAAG,CAAE,EAAA,oBAAoB,CAAE,EAAE,CAAA;gBACrC,CAAC;gBAAC,OAAO,KAAK,EAAG,CAAC;oBACjB,OAAO,EAAA,sBAAsB,CAAE,sBAAsB,CAAE,GAAG,CAAE,EAAE,IAAI,EAAE,sBAAsB,CAAE,KAAK,CAAE,EAAE,EAAE,CAAE,CAAA;gBAC1G,CAAC;YACF,CAAC;YAED,+BAA+B;YAC/B,wCAAwC;YACxC,IAAI;YAEJ,OAAO,IAAI,CAAA;QACZ,CAAC;KAED,CAAC,CAAA;IAEF,SAAgB,sBAAsB,CAAE,GAAS;QAEhD,IAAI,OAAO,GAAG,KAAK,WAAW;YAAG,OAAO,EAAA,qBAAqB,CAAE,WAAW,CAAE,CAAA;QAE5E,+EAA+E;QAE/E,OAAO;YACN,QAAQ;YACR;gBACC,MAAM,EAAG,GAAG;gBACZ,MAAM,EAAG,IAAI;aACb;SACD,CAAA;IAEF,CAAC;IAde,wBAAsB,yBAcrC,CAAA;IAED,SAAgB,oBAAoB,CAAE,GAAS;QAE9C,IAAI,GAAG,IAAI,IAAI;YAAG,OAAO,EAAA,qBAAqB,CAAE,MAAM,CAAE,GAAG,CAAE,CAAE,CAAA;QAE/D,OAAO;YACN,QAAQ;YACR;gBACC,MAAM,EAAG,GAAG;gBACZ,MAAM,EAAG,KAAK;aACd;SACD,CAAA;IAEF,CAAC;IAZe,sBAAoB,uBAYnC,CAAA;IAED,SAAgB,uBAAuB,CAAE,OAAgB,EAAG,KAAc,EAAG,GAAG,OAAe;QAE9F,MAAM,MAAM,GAAG,EAAc,CAAA;QAE7B,KAAK,IAAI,GAAG,IAAI,KAAK;YAAG,MAAM,CAAC,IAAI,CAAE,GAAI,GAAI,MAAQ,KAAa,CAAC,GAAG,CAAE,EAAE,CAAE,CAAA;QAE5E,OAAO;YACN,OAAO;YACP;gBACC,KAAK,EAAG,MAAM,CAAC,IAAI,CAAE,KAAK,CAAE;aAC5B;YACD,GAAI,OAAO;SACX,CAAA;IAEF,CAAC;IAde,yBAAuB,0BActC,CAAA;IAEU,sBAAoB,GAAG,uBAAuB,CAAC,IAAI,CAAE,IAAI,EAAG,MAAM,CAAE,CAAA;IACpE,qBAAmB,GAAG,uBAAuB,CAAC,IAAI,CAAE,IAAI,EAAG,KAAK,CAAE,CAAA;IAClE,oBAAkB,GAAG,uBAAuB,CAAC,IAAI,CAAE,IAAI,EAAG,IAAI,CAAE,CAAA;IAChE,oBAAkB,GAAG,uBAAuB,CAAC,IAAI,CAAE,IAAI,EAAG,IAAI,CAAE,CAAA;IAChE,uBAAqB,GAAG,uBAAuB,CAAC,IAAI,CAAE,IAAI,EAAG,OAAO,CAAE,CAAA;IACtE,oBAAkB,GAAG,uBAAuB,CAAC,IAAI,CAAE,IAAI,EAAG,IAAI,CAAE,CAAA;IAChE,oBAAkB,GAAG,uBAAuB,CAAC,IAAI,CAAE,IAAI,EAAG,IAAI,CAAE,CAAA;IAEhE,wBAAsB,GAAG,EAAA,oBAAoB,CAAC,IAAI,CAAE,IAAI,EAAG;QACrE,OAAO,EAAG,SAAS;KACnB,CAAE,CAAA;IAEQ,wBAAsB,GAAG,EAAA,oBAAoB,CAAC,IAAI,CAAE,IAAI,EAAG;QACrE,aAAa,EAAG,MAAM;KACtB,CAAE,CAAA;IAEQ,wBAAsB,GAAG,EAAA,oBAAoB,CAAC,IAAI,CAAE,IAAI,EAAG;QACrE,OAAO,EAAG,OAAO;KACjB,CAAE,CAAA;IAEQ,uBAAqB,GAAG,EAAA,oBAAoB,CAAC,IAAI,CAAE,IAAI,EAAG;QACpE,OAAO,EAAG,MAAM;KAChB,CAAE,CAAA;IAEQ,wBAAsB,GAAG,EAAA,mBAAmB,CAAC,IAAI,CAAE,IAAI,EAAG;QACpE,qBAAqB,EAAE,MAAM;KAC7B,CAAE,CAAA;IAEH,MAAM,KAAM,SAAQ,KAAa;QAEhC,6BAA6B;QAC7B,0BAA0B;QAC1B,IAAI;QAEJ,KAAK,CAAC,GAAG,IAAiC;YACzC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAA;QACtC,CAAC;QAED,KAAK,CAAC,GAAG,IAAiC;YACzC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAA;QACtC,CAAC;QAED,QAAQ;YACP,OAAO,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;QACzB,CAAC;KAED;IAED,MAAM,IAAK,SAAQ,MAAM;QAEf,IAAI,CAAQ;QACZ,QAAQ,CAAQ;QAChB,MAAM,CAAQ;QACd,IAAI,CAAQ;QACZ,MAAM,CAAQ;QACd,MAAM,CAAQ;QACd,GAAG,CAAoB;QACvB,MAAM,CAAS;QACf,KAAK,CAAmB;QACjC,CAAE,MAAM,CAAC,WAAW,CAAE,CAAS;QAE/B,YAAa,IAAqB;YACjC,KAAK,EAAE,CAAA;YAEP,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAA;YACpC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,CAAA;YAC5C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,CAAA;YACxC,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ;gBAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;YACpD,+BAA+B;YAC/B,IAAI,CAAC,GAAG,GAAG,CAAE,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAE,CAAA;YACvF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,CAAA;YACtC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,wBAAwB,EAAE,IAAI,EAAE,CAAA;YACnD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;YAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;YAEhC,MAAM,KAAK,GAAG,EAAE,CAAA;YAChB,IAAI,IAAI,CAAC,OAAO,EAAE;gBAAG,KAAK,CAAC,IAAI,CAAE,OAAO,CAAE,CAAA;YAC1C,IAAI,IAAI,CAAC,aAAa,EAAE;gBAAG,KAAK,CAAC,IAAI,CAAE,aAAa,CAAE,CAAA;YACtD,IAAI,IAAI,CAAC,MAAM,EAAE;gBAAG,KAAK,CAAC,IAAI,CAAE,MAAM,CAAE,CAAA;YACxC,IAAI,IAAI,CAAC,QAAQ,EAAE;gBAAG,KAAK,CAAC,IAAI,CAAE,QAAQ,CAAE,CAAA;YAC5C,IAAI,IAAI,CAAC,YAAY,EAAE;gBAAG,KAAK,CAAC,IAAI,CAAE,YAAY,CAAE,CAAA;YACpD,IAAI,IAAI,CAAC,UAAU,EAAE;gBAAG,KAAK,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;YAC3C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;YAElB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;YAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAA;YACtC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;YAE3D,IAAI,CAAE,MAAM,CAAC,WAAW,CAAE,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,EAAE,CAAA;QACvD,CAAC;QAED,CAAE,MAAM,CAAC,WAAW,CAAE;YACrB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAA;QACvB,CAAC;QAED,QAAQ;YACP,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAA;YAChC,MAAM,KAAK,GAAG,IAAI,CAAE,MAAM,CAAC,WAAW,CAAE,CAAA;YACxC,MAAM,MAAM,GAAG,GAAI,IAAI,CAAC,MAAO,IAAK,IAAI,CAAC,GAAG,CAAC,IAAI,CAAE,GAAG,CAAG,KAAM,IAAI,CAAC,MAAO,EAAE,CAAA;YAC7E,OAAO,QAAQ,MAAM,GAAG,KAAK,KAAK,MAAM,GAAG,CAAA;QAC5C,CAAC;QAED,CAAE,EAAA,oBAAoB,CAAE;YACvB,OAAO,EAAA,mBAAmB,CAAE,EAAE,EAC7B,sBAAsB,CAAE,IAAI,CAAE,EAC9B,EAAA,qBAAqB,CAAE,GAAG,CAAE,EAC5B,GAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBACjB,sBAAsB,CAAE,IAAI,CAAC,MAAM,CAAE;aACrC,CAAC,CAAC,CAAC,EAAE,EACN,GAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,EAAA,qBAAqB,CAAE,GAAG,EAC7C,IAAI,EACJ,IAAI,CAAC,MAAM,EACX,GAAG,CACH,CAAE,CAAC,CAAC,CAAC,EAAE,EACR,EAAA,qBAAqB,CAAE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAE,IAAI,CAAE,CAAE,CACrD,CAAA;QACF,CAAC;KAED;IAED,KAAK,CAAC,iBAAiB,KAAK,CAAE,KAAY,EAAE,KAAwB,EAAE,EAAE,CAAC,IAAI,KAAK,CAAE,GAAI,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAE,IAAI,CAAE,CAAE,CAAE,CAAA;AAEhI,CAAC,EAvRS,CAAC,KAAD,CAAC,QAuRV;;;;ACvRD,IAAU,CAAC,CA8OV;AA9OD,WAAU,CAAC;IAEV;;;;;;OAMG;IACH,MAAa,iBAAkB,SAAQ,aAAa;QAEzC,QAAQ,GAAG,CAAC,CAAA,CAAC,KAAK;QAClB,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAA,CAAC,KAAK;QAE/C,IAAI,QAAQ;YACX,MAAM,GAAG,GAAG,EAAqB,CAAA;YACjC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,IAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAA;YACzD,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAG,CAAC;gBAC9C,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;oBAAG,GAAG,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAkB,CAAE,CAAA;YAC7D,CAAC;YACD,OAAO,GAAG,CAAA;QACX,CAAC;QAED,QAAQ;YACP,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAA;YAC3B,MAAM,GAAG,GAAG,cAAc,EAAE,CAAA;YAC5B,cAAc,CAAE,IAAI,CAAE,CAAA;YACtB,OAAO,GAAG,CAAA;QACX,CAAC;QAED,OAAO;YAEN,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAG,CAAC;gBACnC,SAAS,CAAE,IAAI,KAAK,CAAE,uBAAuB,CAAE,CAAE,CAAA;YAClD,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,KAAK,EAAG,CAAC;gBAC7C,SAAS,CAAE,IAAI,KAAK,CAAE,mBAAmB,CAAE,CAAE,CAAA;YAC9C,CAAC;YAED,KAAK,CAAC,OAAO,EAAE,CAAA;QAChB,CAAC;QAED,UAAU,CAAE,GAAmB;YAE9B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAG,SAAS,CAAE,IAAI,KAAK,CAAE,wBAAwB,CAAE,CAAE,CAAA;YAExE,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAG,CAAC;gBAEjC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,MAAM,CAA+B,CAAA;gBACnE,IAAI,GAAG,KAAK,SAAS;oBAAG,OAAO,IAAI,IAAI,IAAI,CAAA;gBAE3C,IAAI,IAAI,KAAK,GAAG,EAAG,CAAC;oBACnB,IAAI,CAAC,MAAM,IAAI,CAAC,CAAA;oBAChB,OAAO,IAAI,CAAA;gBACZ,CAAC;gBAED,IAAI,IAAI,EAAG,CAAC;oBAEX,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAG,CAAC;wBACvC,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAE,CAAA;oBAClD,CAAC;oBAED,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAE,CAAA;oBAC5C,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAA;gBAEnB,CAAC;YAEF,CAAC;iBAAM,CAAC;gBAEP,IAAI,GAAG,KAAK,SAAS;oBAAG,OAAO,IAAI,CAAA;gBAEnC,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAG,CAAC;oBACvC,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAE,CAAA;gBAClD,CAAC;gBAED,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAA;YAEnB,CAAC;YAED,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,MAAM,CAAE,GAAG,GAAG,CAAA;YAC9B,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAE,GAAG,GAAG,CAAC,MAAM,CAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAE,CAAA;YAE9D,IAAI,CAAC,MAAM,IAAI,CAAC,CAAA;YAEhB,OAAO,GAAG,CAAA;QACX,CAAC;QAED,SAAS,CAAE,GAAyB;YAEnC,cAAc,CAAE,GAAG,CAAE,CAAA;YAErB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAG,CAAC;gBACtB,SAAS,CAAE,IAAI,KAAK,CAAE,sBAAsB,CAAE,CAAE,CAAA;YACjD,CAAC;YAED,KACC,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,EAC1B,MAAM,GAAG,IAAI,CAAC,MAAM,EACpB,MAAM,IAAI,CAAC,EACV,CAAC;gBACF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,MAAM,CAA+B,CAAA;gBAC5D,qEAAqE;gBACrE,GAAG,EAAE,KAAK,EAAE,CAAA;YACb,CAAC;YAED,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAA;QAErC,CAAC;QAED,OAAO,CAAE,OAAe;YACvB,IAAI,CAAC,IAAI,CAAE,OAAO,CAAE,GAAG,SAAgB,CAAA;YACvC,IAAI,CAAC,IAAI,CAAE,OAAO,GAAG,CAAC,CAAE,GAAG,SAAgB,CAAA;QAC5C,CAAC;QAED,UAAU;YAET,sEAAsE;YACtE,+DAA+D;YAC/D,IAAI,cAAc,EAAE,KAAK,IAAI;gBAAG,cAAc,CAAE,IAAI,CAAE,CAAA;YAEtD,KACC,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EACjC,MAAM,IAAI,IAAI,CAAC,QAAQ,EACvB,MAAM,IAAI,CAAC,EACV,CAAC;gBACF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,MAAM,CAAmB,CAAA;gBAChD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,MAAM,GAAG,CAAC,CAAY,CAAA;gBAC7C,GAAG,CAAC,OAAO,CAAE,GAAG,CAAE,CAAA;YACnB,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAA;YAChC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAA;YAC3B,IAAI,CAAC,SAAS,EAAE,CAAA;YAChB,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAA;QAErC,CAAC;QAED,SAAS;YAER,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAG,CAAC;gBAClC,SAAS,CAAE,IAAI,KAAK,CAAE,sBAAsB,CAAE,CAAE,CAAA;YACjD,CAAC;YAED,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAA;YAE1B,KACC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,EACxB,MAAM,GAAG,IAAI,CAAC,QAAQ,EACtB,MAAM,IAAI,CAAC,EACV,CAAC;gBAEF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,MAAM,CAA+B,CAAA;gBAC5D,GAAG,EAAE,OAAO,CAAE,IAAI,CAAC,IAAI,CAAE,MAAM,GAAG,CAAC,CAAY,CAAE,CAAA;gBAEjD,GAAG,IAAI,CAAC,CAAA;gBACR,IAAI,IAAI,CAAC,QAAQ,IAAI,GAAG;oBAAG,IAAI,CAAC,SAAS,CAAE,GAAG,EAAE,MAAM,CAAE,CAAA;YAEzD,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAA;YAEtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAA;QAE5B,CAAC;QAED,QAAQ,KAAK,CAAC;QAEd,aAAa;YAEZ,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAA;YAE3D,KACC,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,EAC1B,MAAM,GAAG,KAAK,EACd,MAAM,IAAI,CAAC,EACV,CAAC;gBACF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,MAAM,CAAmB,CAAA;gBAChD,IAAI,GAAG,EAAE,WAAW;oBAAG,OAAM;YAC9B,CAAC;YAED,KACC,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,EAC1B,MAAM,GAAG,KAAK,EACd,MAAM,IAAI,CAAC,EACV,CAAC;gBACF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,MAAM,CAAmB,CAAA;gBAChD,GAAG,EAAE,QAAQ,EAAE,CAAA;YAChB,CAAC;QAEF,CAAC;QAED,MAAM,CAAE,KAAK,GAAG,gBAAgB,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC;YAE/C,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,KAAK;gBAAG,OAAM;YACnD,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK;gBAAG,OAAM;YAEjC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;YACnB,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAC,KAAK,CAAE,CAAA;YAEnC,IAAI,KAAK,KAAK,gBAAgB,CAAC,KAAK;gBAAG,OAAM;YAC7C,IAAI,CAAC,IAAI,CAAC,WAAW;gBAAG,OAAM;YAE9B,wEAAwE;YACxE,sEAAsE;YAEtE,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,GAAG,CAAmB,CAAA;YAE7C,IAAI,GAAG,EAAE,IAAI;gBAAG,OAAM;YAEtB,KACC,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,EAC1B,MAAM,GAAG,IAAI,CAAC,QAAQ,EACtB,MAAM,IAAI,CAAC,EACV,CAAC;gBAEF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,MAAM,CAAmB,CAAA;gBAEhD,IAAI,GAAG,EAAE,IAAI,EAAG,CAAC;oBACd,GAAuD,CAAC,UAAU,EAAE,CAAA;gBACvE,CAAC;YACF,CAAC;QAEF,CAAC;QAED,CAAE,oBAAoB,CAAE;YACvB,OAAO,sBAAsB,CAAE,IAAI,CAAE,CAAA;QACtC,CAAC;QAED;;WAEG;QACH,IAAI,SAAS;YACZ,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAA;QACvC,CAAC;KAED;IAnOY,mBAAiB,oBAmO7B,CAAA;AAEF,CAAC,EA9OS,CAAC,KAAD,CAAC,QA8OV;;;;AC9OD,IAAU,CAAC,CAWV;AAXD,WAAU,CAAC;IAEG,kBAAgB,GAAmB,MAAM,CAAE,kBAAkB,CAAE,CAAA;IAK5E,SAAgB,YAAY,CAAoB,SAAwB;QACvE,OAAO,MAAM,CAAC,cAAc,CAAE,SAAS,EAAG,IAAI,IAAI,CAAC,CAAE,CAAA;IACtD,CAAC;IAFe,cAAY,eAE3B,CAAA;AAEF,CAAC,EAXS,CAAC,KAAD,CAAC,QAWV;;;;ACXD,IAAU,CAAC,CA0DV;AA1DD,WAAU,CAAC;IAEV,MAAM,SAAS,GAAG,IAAI,OAAO,EAAS,CAAA;IAEtC;;;;OAIG;IACA,SAAgB,aAAa,CAC/B,KAAa,EACb,MAAmB;QAGnB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAE,KAAK,EAAG;YAEhC,GAAG,EAAE,CAAE,CAAC,EAAG,KAAK,EAAE,EAAE;gBACnB,MAAM,GAAG,GAAG,MAAM,EAAE,CAAA;gBACpB,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,CAAE,GAAG,EAAG,KAAK,CAAE,CAAA;gBACpC,IAAI,OAAO,GAAG,KAAK,UAAU,EAAG,CAAC;oBAChC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;gBACtB,CAAC;gBACD,OAAO,GAAG,CAAA;YACX,CAAC;YACD,GAAG,EAAE,CAAE,CAAC,EAAG,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAE,MAAM,EAAE,EAAE,KAAK,CAAE;YACnD,GAAG,EAAE,CAAE,CAAC,EAAG,KAAK,EAAG,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAE,MAAM,EAAE,EAAG,KAAK,EAAG,KAAK,CAAE;YAEpE,wBAAwB,EAAE,CAAE,CAAC,EAAG,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,wBAAwB,CAAE,MAAM,EAAE,EAAG,KAAK,CAAE;YAC9F,OAAO,EAAE,GAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAE,MAAM,EAAE,CAAE;YAEzC,cAAc,EAAE,GAAE,EAAE,CAAC,OAAO,CAAC,cAAc,CAAE,MAAM,EAAE,CAAE;YACvD,cAAc,EAAE,CAAE,CAAC,EAAG,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,CAAE,MAAM,EAAE,EAAG,KAAK,CAAE;YAE1E,YAAY,EAAE,GAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAE,MAAM,EAAE,CAAE;YACnD,iBAAiB,EAAE,GAAE,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAE,MAAM,EAAE,CAAE;YAE7D,KAAK,EAAE,CAAE,CAAC,EAAG,IAAI,EAAG,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAE,MAAM,EAAc,EAAG,IAAI,EAAG,IAAI,CAAE;YAChF,SAAS,EAAE,CAAE,CAAC,EAAG,IAAI,EAAG,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAE,MAAM,EAAc,EAAG,IAAI,EAAG,QAAQ,CAAE;YAEhG,cAAc,EAAE,CAAE,CAAC,EAAG,KAAK,EAAG,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,CAAE,MAAM,EAAE,EAAG,KAAK,EAAG,KAAK,CAAE;YAC1F,cAAc,EAAE,CAAE,CAAC,EAAG,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,CAAE,MAAM,EAAE,EAAG,KAAK,CAAE;SAE1E,CAAE,CAAA;QAEH,SAAS,CAAC,GAAG,CAAE,KAAK,CAAE,CAAA;QAEtB,OAAO,KAAK,CAAA;IAEb,CAAC;IAvCkB,eAAa,gBAuC/B,CAAA;IAED,OAAO,CAAC,cAAc,CACrB,aAAa,EACb,MAAM,CAAC,WAAW,EAClB;QACC,KAAK,EAAG,CAAE,GAAY,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAE,GAAG,CAAE;KAC/C,CACD,CAAA;AAEF,CAAC,EA1DS,CAAC,KAAD,CAAC,QA0DV;;;;AC1DD,IAAU,CAAC,CAyDV;AAzDD,WAAU,CAAC;IAEG,iBAAe,GAAG,IAAI,OAAO,EAAe,CAAA;IAEzD,SAAgB,iBAAiB,CAChC,MAAe;QAIf,IAAI,CAAC;YACJ,IAAI,CAAC,MAAM;gBAAG,OAAO,KAAK,CAAA;YAC1B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,UAAU;gBAAG,OAAO,KAAK,CAAA;YAC7E,IAAI,MAAM,YAAY,aAAa;gBAAG,OAAO,KAAK,CAAA;YAClD,IAAI,OAAQ,MAAc,CAAC,YAAY,CAAC,KAAK,UAAU;gBAAG,OAAO,KAAK,CAAA;YACtE,OAAO,IAAI,CAAA;QACZ,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,KAAK,CAAA;QACb,CAAC;IACF,CAAC;IAde,mBAAiB,oBAchC,CAAA;IAED,SAAgB,eAAe,CAAmC,MAAe,EAAG,KAA0B;QAE7G,IAAI,CAAC,iBAAiB,CAAE,MAAM,CAAE;YAAG,OAAO,IAAI,CAAA;QAE9C,OAAO,IAAI,EAAG,CAAC;YAEd,MAAM,KAAK,GAAG,EAAA,eAAe,CAAC,GAAG,CAAE,MAAM,CAAE,CAAA;YAC3C,IAAI,CAAC,KAAK;gBAAG,OAAO,KAAK,CAAA;YACzB,IAAI,CAAC,KAAK;gBAAG,OAAO,KAAK,CAAA;YAEzB,IAAI,KAAK,YAAY,KAAK;gBAAG,OAAO,KAAK,CAAA;YAEzC,MAAM,GAAG,KAAK,CAAA;QACf,CAAC;IAEF,CAAC;IAfe,iBAAe,kBAe9B,CAAA;IAED,SAAgB,iBAAiB,CAChC,KAAa,EACb,MAAe;QAEf,IAAI,CAAC,iBAAiB,CAAE,MAAM,CAAE;YAAG,OAAO,KAAK,CAAA;QAC/C,IAAI,EAAA,eAAe,CAAC,GAAG,CAAE,MAAM,CAAE,KAAK,KAAK;YAAG,OAAO,KAAK,CAAA;QAC1D,OAAO,IAAI,CAAA;IACZ,CAAC;IAPe,mBAAiB,oBAOhC,CAAA;IAED,SAAgB,iBAAiB,CAChC,KAAa,EACb,MAAe;QAEf,IAAI,CAAC,iBAAiB,CAAE,MAAM,CAAE;YAAG,OAAO,KAAK,CAAA;QAC/C,IAAI,EAAA,eAAe,CAAC,GAAG,CAAE,MAAM,CAAE;YAAG,OAAO,KAAK,CAAA;QAEhD,EAAA,eAAe,CAAC,GAAG,CAAE,MAAM,EAAG,KAAK,CAAE,CAAA;QACrC,OAAO,IAAI,CAAA;IACZ,CAAC;IATe,mBAAiB,oBAShC,CAAA;AAEF,CAAC,EAzDS,CAAC,KAAD,CAAC,QAyDV;;;;;;;ACzDD,IAAU,CAAC,CA6BV;AA7BD,WAAU,CAAC;IAEV,MAAM,KAAK,GAAG,IAAI,OAAO,EAAc,CAAA;IAEvC,SAAgB,cAAc,CAAa,IAAe;QAEzD,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACpB,IAAI,IAAI,EAAE,MAAM,GAAG,CAAC;YAAG,OAAO,IAAI,CAAA;QAClC,IAAI,KAAK,CAAC,GAAG,CAAE,IAAI,CAAE;YAAG,OAAO,IAAI,CAAA;QAEnC,KAAK,IAAI,GAAG,IAAI,IAAI,EAAG,CAAC;YACvB,IAAI,CAAC;gBACJ,IAAK,IAAY,CAAE,GAAG,CAAE,KAAK,IAAI;oBAAG,SAAQ;gBAC5C,IAAI,GAAG,GAAG,CAAA;gBACV,MAAM,CAAC,cAAc,CAAE,IAAI,EAAG,MAAM,EAAG,EAAE,KAAK,EAAG,IAAI,EAAE,CAAE,CAAA;gBACzD,MAAK;YACN,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACX,CAAC;QAED,KAAK,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;QACjB,OAAO,IAAI,CAAA;IAEZ,CAAC;IAlBe,gBAAc,iBAkB7B,CAAA;IAED,SAAgB,mBAAmB,CAA6B,MAAe,EAAG,MAAiB;QAClG,MAAM,CAAC,cAAc,CAAE,MAAM,EAAG,MAAM,EAAG,EAAE,KAAK,EAAG,MAAM,CAAC,IAAI,EAAE,CAAE,CAAA;QAClE,OAAO,MAAM,CAAA;IACd,CAAC;IAHe,qBAAmB,sBAGlC,CAAA;AAEF,CAAC,EA7BS,CAAC,KAAD,CAAC,QA6BV;;;;AC7BD,IAAU,CAAC,CAKV;AALD,WAAU,CAAC;IAEG,iBAAe,GAAG,MAAM,CAAC,GAAG,CAAE,iBAAiB,CAAE,CAAA;IACjD,gBAAc,GAAG,IAAI,OAAO,EAAoB,CAAA;AAE9D,CAAC,EALS,CAAC,KAAD,CAAC,QAKV;;;;ACLD,IAAU,CAAC,CAkEV;AAlED,WAAU,CAAC;IAEV,IAAI,CAAC,MAAM,CAAC,OAAO;QAAK,MAAe,CAAC,OAAO,GAAG,MAAM,CAAE,gBAAgB,CAAE,CAAA;IAE5E,MAAa,YAAY;QAExB,MAAM,CAAC,CAAC,GAAG,CAAa,CAAA;QAExB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAS;QAE7B,CAAE,gBAAgB,CAAE,GAAG,IAAgB,CAAA;QACvC,IAAI,CAAC;YACJ,IAAI,IAAI,CAAE,gBAAgB,CAAE;gBAAG,OAAO,IAAI,CAAE,gBAAgB,CAAE,CAAA;YAC9D,MAAM,KAAK,GAAG,eAAe,CAAE,IAAI,CAAS,CAAA;YAC5C,OAAO,IAAI,CAAE,gBAAgB,CAAE,GAAG,KAAK,EAAE,CAAC,IAAK,IAAI,CAAC,WAAyB,CAAC,CAAC,IAAI,YAAY,CAAC,CAAM,CAAA;QACvG,CAAC;QACD,IAAI,CAAC,CAAE,IAAQ;YACd,IAAI,IAAI,CAAE,gBAAgB,CAAE;gBAAG,gBAAgB,CAAE,IAAI,KAAK,CAAE,yBAAyB,CAAE,CAAE,CAAA;YACzF,IAAI,CAAE,gBAAgB,CAAE,GAAG,IAAI,CAAA;QAChC,CAAC;QAEM,MAAM,CAAC,MAAM,CAEnB,IAA0D;YAE1D,MAAM,GAAG,GAAG,IAAI,IAAI,CAAA;YACpB,IAAI,IAAI;gBAAG,IAAI,CAAE,GAAG,CAAE,CAAA;YACtB,OAAO,GAAG,CAAA;QACX,CAAC;QAED,MAAM,CAAC,CAAE,MAAM,CAAC,WAAW,CAAE;YAC5B,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAA;QACvB,CAAC;QAED,MAAM,CAAC,QAAQ;YACd,OAAS,IAAa,CAAE,MAAM,CAAC,WAAW,CAAE,IAAI,IAAI,CAAC,CAAC,CAAC,cAAc,CAAE,IAAI,CAAE,CAAA;QAC9E,CAAC;QAED,MAAM,CAAC,MAAM;YACZ,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAA;QACvB,CAAC;QAED,MAAM,CAAC,CAAE,eAAe,CAAE;YACzB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAA;QACvB,CAAC;QAED,UAAU,KAAK,CAAC;QAChB,MAAM,CAAC,UAAU,KAAK,CAAC;QAEvB,CAAE,MAAM,CAAC,OAAO,CAAE;YACjB,IAAI,CAAC,UAAU,EAAE,CAAA;QAClB,CAAC;QAED,0CAA0C;QAC1C,8DAA8D;QAC9D,GAAG;QAEH,QAAQ;YACP,OAAO,IAAI,CAAE,MAAM,CAAC,WAAW,CAAE,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAA;QAClE,CAAC;;IAvDW,cAAY,eA6DxB,CAAA;AACF,CAAC,EAlES,CAAC,KAAD,CAAC,QAkEV;;;;AClED,IAAU,CAAC,CA6BV;AA7BD,WAAU,CAAC;IAEV,MAAa,eAAgB,SAAQ,YAAY;QAMxC;QAJR,MAAM,CAAC,OAAO,GAAG,IAA4B,CAAA;QAC7C,SAAS,GAAG,KAAK,CAAA;QAEjB,YACQ,IAAgB;YAEvB,KAAK,EAAE,CAAA;YAFA,SAAI,GAAJ,IAAI,CAAY;YAIvB,IAAI,CAAC,eAAe,CAAC,OAAO;gBAAG,eAAe,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAE,GAAE,EAAE;oBACpF,eAAe,CAAC,OAAO,GAAG,IAAI,CAAA;gBAC/B,CAAC,CAAE,CAAA;YAEH,eAAe,CAAC,OAAO,CAAC,IAAI,CAAE,GAAE,EAAE;gBACjC,IAAI,IAAI,CAAC,SAAS;oBAAG,OAAM;gBAC3B,IAAI,EAAE,CAAA;YACP,CAAC,CAAE,CAAA;QAEJ,CAAC;QAED,UAAU;YACT,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QACtB,CAAC;;IAvBW,iBAAe,kBAyB3B,CAAA;AAEF,CAAC,EA7BS,CAAC,KAAD,CAAC,QA6BV;;;;AC7BD,IAAU,CAAC,CAUV;AAVD,WAAU,CAAC;IAEV,SAAgB,iBAAiB,CAAE,GAAQ;QAC1C,IAAI,CAAC;YACJ,OAAO,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,UAAU,CAAA;QACzF,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,KAAK,CAAA;QACb,CAAC;IACF,CAAC;IANe,mBAAiB,oBAMhC,CAAA;AAEF,CAAC,EAVS,CAAC,KAAD,CAAC,QAUV;;;;ACVD,IAAU,CAAC,CA2WV;AA3WD,WAAU,CAAC;IAEV,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAwC,CAAA;IAEpE;;;;;;QAMI;IACJ,MAAsB,eAIpB,SAAQ,iBAAiB;QAyEhB;QACA;QAxEV,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QAElB,MAAM,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAsC,CAAA;QAC/D,MAAM,CAAC,OAAO,GAAG,IAAI,GAAG,EAAsC,CAAA;QAE9D,MAAM,CAAC,SAAS,GAA2B,IAAI,CAAA;QAC/C,MAAM,CAAC,IAAI;YAEV,IAAI,IAAI,CAAC,SAAS;gBAAG,OAAM;YAE3B,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAAE,GAAE,EAAE;gBAEzC,IAAI,CAAC;oBACJ,IAAI,CAAC,IAAI,EAAE,CAAA;gBACZ,CAAC;wBAAS,CAAC;oBACV,eAAe,CAAC,SAAS,GAAG,IAAI,CAAA;gBACjC,CAAC;YAEF,CAAC,CAAE,CAAA;QAEJ,CAAC;QAED,MAAM,CAAC,IAAI;YAEV,yBAAyB;YACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAG,CAAC;gBAC5B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAG,CAAC;oBACpC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAE,KAAK,CAAE,CAAA;oBAC7B,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;wBAAG,SAAQ;oBAChC,IAAI,KAAK,CAAC,MAAM,KAAK,gBAAgB,CAAC,KAAK;wBAAG,SAAQ;oBACtD,KAAK,CAAC,KAAK,EAAE,CAAA;gBACd,CAAC;YACF,CAAC;YAED,kBAAkB;YAClB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAG,CAAC;gBAE3B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAA;gBAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,CAAA;gBAEtB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAG,CAAC;oBAC7B,IAAI,CAAC,KAAK,CAAC,SAAS;wBAAG,SAAQ;oBAC/B,KAAK,CAAC,UAAU,EAAE,CAAA;gBACnB,CAAC;YAEF,CAAC;QAEF,CAAC;QAEM,KAAK,GAA+C,SAAgB,CAAA;QAE3E,IAAI,IAAI;YACP,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAE,CAAC,EAAG,IAAI,CAAC,QAAQ,CAAiB,CAAA;QAC3D,CAAC;QAED,MAAM;YACL,IAAI,iBAAiB,CAAE,IAAI,CAAC,KAAK,CAAE;gBAAG,OAAM;YAC5C,IAAI,IAAI,CAAC,KAAK,YAAY,KAAK;gBAAG,OAAM;YACxC,OAAO,IAAI,CAAC,KAAK,CAAA;QAClB,CAAC;QAED,IAAI,WAAW;YACd,OAAO,iBAAiB,CAAE,IAAI,CAAC,KAAK,CAAE,CAAA;QACvC,CAAC;QAED,KAAK;YACJ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAC7B,CAAC;QAED,YACC,EAAU,EACD,IAAgD,EAChD,IAAW,EACpB,IAAW;YAGX,KAAK,CAAE,EAAE,CAAE,CAAA;YALF,SAAI,GAAJ,IAAI,CAA4C;YAChD,SAAI,GAAJ,IAAI,CAAO;YAKpB,IAAI,IAAI;gBAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,GAAI,IAAI,CAAE,CAAA;YACrC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,EAAE,MAAM,IAAI,CAAC,CAAA;QAElD,CAAC;QAED,IAAI;YACH,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;YACpC,eAAe,CAAC,IAAI,EAAE,CAAA;YACtB,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,IAAI;YACH,eAAe,CAAC,OAAO,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;YACnC,eAAe,CAAC,IAAI,EAAE,CAAA;QACvB,CAAC;QAED,QAAQ;YACP,OAAO,IAAI,CAAE,MAAM,CAAC,WAAW,CAAE,CAAA;QAClC,CAAC;QAED,MAAM;YACL,OAAO,IAAI,CAAE,MAAM,CAAC,WAAW,CAAE,CAAA;QAClC,CAAC;QAED,CAAE,oBAAoB,CAAE;YAEvB,MAAM,MAAM,GAAG;gBACd,CAAE,gBAAgB,CAAC,KAAK,CAAE,EAAE,IAAI;gBAChC,CAAE,gBAAgB,CAAC,KAAK,CAAE,EAAE,IAAI;gBAChC,CAAE,gBAAgB,CAAC,KAAK,CAAE,EAAE,IAAI;gBAChC,CAAE,gBAAgB,CAAC,KAAK,CAAE,EAAE,IAAI;gBAChC,CAAE,gBAAgB,CAAC,KAAK,CAAE,EAAE,IAAI;aAChC,CAAE,IAAI,CAAC,MAAM,CAAE,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAA;YAE1C,OAAO,mBAAmB,CAAE,EAAE,EAC7B,iBAAiB,CAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAE;gBACpC,CAAC,CAAC,qBAAqB,CAAE,MAAM,CAAE;gBACjC,CAAC,CAAC,qBAAqB,CAAE,IAAI,CAAE,MAAM,CAAC,WAAW,CAAE,EAAE,MAAM,CAAE,EAC9D,oBAAoB,CAAE,IAAI,CAAC,KAAK,CAAE,CAClC,CAAA;QAEF,CAAC;QACD,CAAE,oBAAoB,CAAE,KAAK,OAAO,IAAI,CAAA,CAAC,CAAC;QAE1C,IAAI,CAAC;YACJ,OAAO,CAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAW,CAAE,CAAC,GAAG,CAAC,CAAA;QAC9C,CAAC;QAED,IAAI,CAAE,KAAK,GAAG,gBAAgB,CAAC,KAAK;YACnC,IAAI,IAAI,CAAC,SAAS;gBAAG,IAAI,CAAC,IAAI,EAAE,CAAA;;gBAC3B,KAAK,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;QACzB,CAAC;QAED,KAAK;YAIJ,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,KAAK;gBAAG,OAAM;YACnD,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,KAAK;gBAAG,OAAM;YAEnD,KAAK,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,KAAK,EAAG,CAAC;gBAEpD,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAA;gBAEpC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAG,CAAC;oBACzD,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAoB,EAAE,KAAK,EAAE,CAAA;oBAC3C,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,KAAK;wBAAG,MAAM,KAAK,CAAA;gBACzD,CAAC;gBAED,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAA;gBACpC,OAAM;YAEP,CAAC;YAED,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;YAC1B,IAAI,MAAyB,CAAA;YAE7B,IAAI,CAAC;gBAEJ,IAAI,CAAC;oBAEJ,QAAQ,IAAI,CAAC,QAAQ,EAAG,CAAC;wBACxB,KAAK,CAAC;4BAAE,MAAM,GAAI,IAAI,CAAC,IAAY,CAAC,IAAI,CAAE,IAAI,CAAC,IAAK,CAAE,CAAC;4BAAC,MAAK;wBAC7D,KAAK,CAAC;4BAAE,MAAM,GAAI,IAAI,CAAC,IAAY,CAAC,IAAI,CAAE,IAAI,CAAC,IAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,CAAC;4BAAC,MAAK;wBAC3E;4BAAS,MAAM,GAAI,IAAI,CAAC,IAAY,CAAC,IAAI,CAAE,IAAI,CAAC,IAAK,EAAE,GAAI,IAAI,CAAC,IAAI,CAAE,CAAC;4BAAC,MAAK;oBAC9E,CAAC;oBAED,IAAI,iBAAiB,CAAE,MAAM,CAAE,EAAG,CAAC;wBAElC,IAAI,QAAQ,CAAC,GAAG,CAAE,MAAM,CAAE,EAAG,CAAC;4BAC7B,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAE,MAAM,CAAG,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,CAAA;wBAC5C,CAAC;6BAAM,CAAC;4BAEP,MAAM,GAAG,GAAG,CAAE,GAAW,EAAE,EAAE;gCAC5B,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM;oCAAG,IAAI,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;gCAC3C,OAAO,GAAG,CAAA;4BACX,CAAC,CAAA;4BAED,QAAQ,CAAC,GAAG,CAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAC3C,MAAM,CAAC,IAAI,CAAE,GAAG,EAAE,GAAG,CAAE,EACvB,EAAE,UAAU,EAAI,MAAe,CAAC,UAAU,IAAI,CAAC,GAAE,EAAE,GAAE,CAAC,CAAC,EAAE,CACzD,CAAE,CAAA;4BACH,QAAQ,CAAC,GAAG,CAAE,MAAM,EAAE,MAAM,CAAE,CAAA;4BAE9B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAE,cAAe,IAAK,EAAE,CAAE,CAAA;4BACjD,MAAM,CAAC,cAAc,CAAE,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,GAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAE,CAAA;wBAEpE,CAAC;oBACF,CAAC;gBAEF,CAAC;gBAAC,OAAO,KAAU,EAAG,CAAC;oBAEtB,IAAI,KAAK,YAAY,KAAK,IAAI,iBAAiB,CAAE,KAAK,CAAE,EAAG,CAAC;wBAC3D,MAAM,GAAG,KAAK,CAAA;oBACf,CAAC;yBAAM,CAAC;wBACP,MAAM,GAAG,IAAI,KAAK,CAAE,MAAM,CAAE,KAAK,CAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAE,CAAA;oBACxD,CAAC;oBAED,IAAI,iBAAiB,CAAE,MAAM,CAAE,EAAG,CAAC;wBAElC,IAAI,QAAQ,CAAC,GAAG,CAAE,MAAM,CAAE,EAAG,CAAC;4BAC7B,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAE,MAAM,CAAG,CAAA;wBACjC,CAAC;6BAAM,CAAC;4BAEP,MAAM,GAAG,GAAG,CAAE,CAAM,EAAE,EAAE;gCACvB,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM;oCAAG,IAAI,CAAC,MAAM,EAAE,CAAA;gCACzC,OAAO,CAAC,CAAA;4BACT,CAAC,CAAA;4BAED,QAAQ,CAAC,GAAG,CAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAC3C,MAAM,CAAC,IAAI,CAAE,GAAG,EAAE,GAAG,CAAE,EACvB,EAAE,UAAU,EAAI,MAAe,CAAC,UAAU,IAAI,CAAC,GAAE,EAAE,GAAE,CAAC,CAAC,EAAE,CACzD,CAAE,CAAA;4BAEH,MAAM,KAAK,GAAG,IAAI,KAAK,CAAE,cAAe,IAAK,EAAE,CAAE,CAAA;4BACjD,MAAM,CAAC,cAAc,CAAE,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,GAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAE,CAAA;wBAEpE,CAAC;oBAEF,CAAC;gBAEF,CAAC;gBAED,iEAAiE;gBACjE,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ;oBAAG,OAAO,IAAI,CAAA;gBAE7C,IAAI,CAAE,iBAAiB,CAAE,MAAM,CAAE,EAAG,CAAC;oBACpC,IAAI,CAAC,SAAS,EAAE,CAAA;gBACjB,CAAC;gBAED,IAAI,CAAC,SAAS,CAAE,EAAE,CAAE,CAAA;gBACpB,IAAI,CAAC,GAAG,CAAE,MAAM,CAAE,CAAA;YAEnB,CAAC;oBAAS,CAAC;gBAEV,0DAA0D;gBAC1D,kDAAkD;gBAClD,IAAI,cAAc,EAAE,KAAK,IAAI,IAAI,CAAE,cAAc,EAAE,EAAG,CAAC;oBACtD,cAAc,CAAE,EAAE,CAAE,CAAA;gBACrB,CAAC;YAEF,CAAC;YAED,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,OAAO;YACN,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAA;YACpC,IAAI,CAAC,KAAK,EAAE,CAAA;QACb,CAAC;QAID;;;WAGG;QACH,IAAI;YAEH,IAAI,CAAC,eAAe,CAAC,IAAI,EAAG,CAAC;gBAC5B,OAAO,IAAI,CAAC,MAAM,EAAuB,CAAA;YAC1C,CAAC;YAED,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,KAAK,EAAE,CAAA;YAEZ,IAAI,IAAI,CAAC,KAAK,YAAY,KAAK,EAAG,CAAC;gBAClC,OAAO,gBAAgB,CAAE,IAAI,CAAC,KAAK,CAAE,CAAA;YACtC,CAAC;YAED,IAAI,iBAAiB,CAAE,IAAI,CAAC,KAAK,CAAE,EAAG,CAAC;gBACtC,OAAO,gBAAgB,CAAE,IAAI,CAAC,KAAK,CAAE,CAAA;YACtC,CAAC;YAED,OAAO,IAAI,CAAC,KAA0B,CAAA;QACvC,CAAC;QAED;;;WAGG;QACH,KAAK,CAAC,SAAS;YAEd,OAAO,IAAI,EAAG,CAAC;gBAEd,IAAI,CAAC,KAAK,EAAE,CAAA;gBAEZ,IAAI,IAAI,CAAC,KAAK,YAAY,KAAK,EAAG,CAAC;oBAClC,gBAAgB,CAAE,IAAI,CAAC,KAAK,CAAE,CAAA;gBAC/B,CAAC;gBAED,IAAI,CAAE,iBAAiB,CAAE,IAAI,CAAC,KAAK,CAAE;oBAAG,OAAO,IAAI,CAAC,KAAK,CAAA;gBAEzD,MAAM,OAAO,CAAC,IAAI,CAAC,CAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAC,CAAA;gBAC/C,IAAI,CAAE,iBAAiB,CAAE,IAAI,CAAC,KAAK,CAAE;oBAAG,OAAO,IAAI,CAAC,KAAK,CAAA;gBAEzD,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,KAAK,EAAG,CAAC;oBAC7C,iCAAiC;oBACjC,MAAM,IAAI,OAAO,CAAE,GAAE,EAAE,GAAE,CAAC,CAAE,CAAA;gBAC7B,CAAC;YAEF,CAAC;QAEF,CAAC;QAED,KAAK;YACJ,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAA8C,CAAA;YAE5E,IAAI,CAAE,OAAO,CAAC,UAAU;gBAAE,OAAO,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAA;YAEtE,OAAO,OAAO,CAAA;QACf,CAAC;QAED,IAAI;YACH,OAAO,IAAI,OAAO,CAAU,IAAI,CAAC,EAAE;gBAClC,MAAM,GAAG,GAAG,IAAI,iBAAiB,CAAA;gBACjC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAA;gBAC3B,GAAG,CAAC,UAAU,CAAE,IAAI,CAAE,CAAA;gBACtB,GAAG,CAAC,SAAS,CAAE,IAAI,CAAE,CAAA;gBACrB,GAAG,CAAC,MAAM,GAAG,GAAE,EAAE;oBAChB,IAAI,CAAE,IAAI,CAAE,CAAA;oBACZ,UAAU,CAAE,GAAE,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,CAAE,CAAA;gBACpC,CAAC,CAAA;YACF,CAAC,CAAE,CAAA;QACJ,CAAC;QAED,UAAU;YAET,KAAK,CAAC,UAAU,EAAE,CAAA;YAElB,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAE,IAAI,CAAE,CAAA;YAEvC,IAAI,CAAE,iBAAiB,CAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAE;gBAAG,OAAM;YAEpD,IAAI,CAAC;gBACJ,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAA;YACxB,CAAC;YAAC,OAAO,MAAM,EAAE,CAAC;gBACjB,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC/B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAE,cAAe,IAAK,eAAe,CAAE,CAAA;oBAC9D,MAAM,CAAC,cAAc,CAAE,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,GAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAE,CAAA;gBACpE,CAAC;gBAED,gBAAgB,CAAC,MAAM,CAAC,CAAA;YACzB,CAAC;QAEF,CAAC;;IA5VoB,iBAAe,kBA8VpC,CAAA;AAEF,CAAC,EA3WS,CAAC,KAAD,CAAC,QA2WV;;;;AC3WD,IAAU,CAAC,CA6JV;AA7JD,WAAU,CAAC;IAEC,yBAAuB,GAAG,IAAI,OAAO,EAAoC,CAAA;IAEpF;;;OAGG;IACH,SAAgB,iBAAiB,CAAW,IAAW,EAAE,KAAY;QAEpE,IAAI,MAAM,CAAC,EAAE,CAAE,IAAI,EAAG,KAAK,CAAE;YAAG,OAAO,IAAI,CAAA;QAE3C,IAAI,IAAI,KAAK,IAAI;YAAG,OAAO,KAAK,CAAA;QAChC,IAAI,KAAK,KAAK,IAAI;YAAG,OAAO,KAAK,CAAA;QAEjC,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAG,OAAO,KAAK,CAAA;QAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAG,OAAO,KAAK,CAAA;QAE5C,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,CAAE,IAAW,CAAE,CAAA;QACxD,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,CAAE,KAAY,CAAE,CAAA;QAE1D,IAAI,UAAU,KAAK,WAAW;YAAG,OAAO,KAAK,CAAA;QAE7C,IAAI,IAAI,YAAY,OAAO;YAAG,OAAO,MAAM,CAAC,EAAE,CAAE,IAAI,CAAC,OAAO,EAAE,EAAI,KAAc,CAAC,SAAS,CAAC,EAAE,CAAE,CAAA;QAC/F,IAAI,IAAI,YAAY,MAAM;YAAG,OAAO,MAAM,CAAC,EAAE,CAAE,IAAI,CAAC,OAAO,EAAE,EAAI,KAAc,CAAC,SAAS,CAAC,EAAE,CAAE,CAAA;QAC9F,IAAI,IAAI,YAAY,MAAM;YAAG,OAAO,MAAM,CAAC,EAAE,CAAE,IAAI,CAAC,OAAO,EAAE,EAAI,KAAc,CAAC,SAAS,CAAC,EAAE,CAAE,CAAA;QAC9F,IAAI,IAAI,YAAY,IAAI;YAAG,OAAO,MAAM,CAAC,EAAE,CAAE,IAAI,CAAC,OAAO,EAAE,EAAI,KAAc,CAAC,SAAS,CAAC,EAAE,CAAE,CAAA;QAC5F,IAAI,IAAI,YAAY,MAAM;YAAG,OAAO,IAAI,CAAC,MAAM,KAAM,KAAa,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,KAAM,KAAa,CAAC,KAAK,CAAA;QAChH,IAAI,IAAI,YAAY,KAAK;YAAG,OAAO,IAAI,CAAC,OAAO,KAAM,KAAa,CAAC,OAAO,IAAI,iBAAiB,CAAE,IAAI,CAAC,KAAK,EAAG,KAAa,CAAC,KAAK,CAAE,CAAA;QAEnI,IAAI,UAAU,GAAG,EAAA,uBAAuB,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;QACpD,IAAI,UAAU,EAAG,CAAC;YAEjB,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAE,KAAK,CAAE,CAAA;YAC3C,IAAI,OAAO,WAAW,KAAK,SAAS;gBAAG,OAAO,WAAW,CAAA;QAE1D,CAAC;aAAM,CAAC;YAEP,UAAU,GAAG,IAAI,OAAO,EAAmB,CAAA;YAC3C,EAAA,uBAAuB,CAAC,GAAG,CAAE,IAAI,EAAG,UAAU,CAAE,CAAA;QAEjD,CAAC;QAED,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAE5B,IAAI,MAAgB,CAAA;QAEpB,IAAI,CAAC;YAEJ,IAAI,CAAC,UAAU;gBAAG,MAAM,GAAG,YAAY,CAAE,IAAI,EAAE,KAAY,CAAE,CAAA;iBACxD,IAAI,CAAC,OAAO,CAAC,cAAc,CAAE,UAAU,CAAE;gBAAG,MAAM,GAAG,YAAY,CAAE,IAAI,EAAE,KAAY,CAAE,CAAA;iBACvF,IAAI,MAAM,CAAC,WAAW,IAAI,IAAI;gBAAG,MAAM,GAAG,iBAAiB,CAAE,IAAI,EAAE,KAAK,CAAE,CAAA;iBAC1E,IAAI,KAAK,CAAC,OAAO,CAAE,IAAI,CAAE;gBAAG,MAAM,GAAG,aAAa,CAAE,IAAI,EAAE,KAAY,CAAE,CAAA;iBACxE,IAAI,IAAI,YAAY,GAAG;gBAAG,MAAM,GAAG,WAAW,CAAE,IAAI,EAAE,KAAY,CAAE,CAAA;iBACpE,IAAI,IAAI,YAAY,GAAG;gBAAG,MAAM,GAAG,WAAW,CAAE,IAAI,EAAE,KAAY,CAAE,CAAA;iBACpE,IAAI,WAAW,CAAC,MAAM,CAAE,IAAI,CAAE;gBAAG,MAAM,GAAG,cAAc,CAAE,IAAI,EAAE,KAAY,CAAE,CAAA;iBAC9E,IAAI,MAAM,CAAC,QAAQ,IAAI,IAAI;gBAAG,MAAM,GAAG,gBAAgB,CAAI,IAAa,CAAE,MAAM,CAAC,QAAQ,CAAE,EAAE,EAAI,KAAc,CAAE,MAAM,CAAC,QAAQ,CAAE,EAAE,CAAE,CAAA;;gBACtI,MAAM,GAAG,KAAK,CAAA;QAEpB,CAAC;gBAAS,CAAC;YACV,UAAU,CAAC,GAAG,CAAE,KAAK,EAAG,MAAM,CAAE,CAAA;QACjC,CAAC;QAED,OAAO,MAAM,CAAA;IACd,CAAC;IAxDe,mBAAiB,oBAwDhC,CAAA;IAED,SAAS,aAAa,CAAyB,IAAW,EAAE,KAAY;QAEvE,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAA;QACvB,IAAI,GAAG,KAAK,KAAK,CAAC,MAAM;YAAG,OAAO,KAAK,CAAA;QAEvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAG,CAAC;YAC/B,IAAI,CAAC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,KAAK,CAAC,CAAC,CAAC,CAAE;gBAAG,OAAO,KAAK,CAAA;QAC5D,CAAC;QAED,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,SAAS,cAAc,CAAE,IAAqB,EAAE,KAAsB;QAErE,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAA;QAC3B,IAAI,GAAG,KAAK,KAAK,CAAC,UAAU;YAAG,OAAO,KAAK,CAAA;QAE3C,IAAI,IAAI,YAAY,QAAQ;YAAG,OAAO,cAAc,CACnD,IAAI,UAAU,CAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAE,EAC/D,IAAI,UAAU,CAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAE,CAClE,CAAA;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAG,CAAC;YAC/B,IAAK,IAAY,CAAC,CAAC,CAAC,KAAM,KAAa,CAAC,CAAC,CAAC;gBAAG,OAAO,KAAK,CAAA;QAC1D,CAAC;QAED,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,SAAS,gBAAgB,CACxB,IAAW,EACX,KAAY;QAGZ,OAAO,IAAI,EAAG,CAAC;YAEd,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YAC7B,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;YAE/B,IAAI,SAAS,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI;gBAAG,OAAO,KAAK,CAAA;YACrD,IAAI,SAAS,CAAC,IAAI;gBAAG,MAAK;YAE1B,IAAI,CAAC,iBAAiB,CAAE,SAAS,CAAC,KAAK,EAAG,UAAU,CAAC,KAAK,CAAE;gBAAG,OAAO,KAAK,CAAA;QAE5E,CAAC;QAED,OAAO,IAAI,CAAA;IAEZ,CAAC;IAED,SAAS,WAAW,CAA4B,IAAW,EAAE,KAAY;QACxE,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;YAAG,OAAO,KAAK,CAAA;QAC3C,OAAO,gBAAgB,CAAE,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,CAAE,CAAA;IACzD,CAAC;IAED,SAAS,WAAW,CAAgB,IAAuB,EAAG,KAAwB;QACrF,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;YAAG,OAAO,KAAK,CAAA;QAC3C,OAAO,gBAAgB,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAE;eAChD,gBAAgB,CAAE,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,CAAE,CAAA;IACtD,CAAC;IAED,SAAS,YAAY,CAAE,IAAQ,EAAE,KAAS;QAEzC,MAAM,SAAS,GAAG,MAAM,CAAC,mBAAmB,CAAE,IAAI,CAAE,CAAA;QACpD,MAAM,UAAU,GAAG,MAAM,CAAC,mBAAmB,CAAE,KAAK,CAAE,CAAA;QAEtD,IAAI,CAAC,aAAa,CAAE,SAAS,EAAE,UAAU,CAAE;YAAG,OAAO,KAAK,CAAA;QAE1D,KAAK,IAAI,GAAG,IAAI,SAAS,EAAG,CAAC;YAC5B,IAAI,CAAC,iBAAiB,CAAI,IAAa,CAAE,GAAG,CAAE,EAAI,KAAc,CAAE,GAAG,CAAE,CAAE;gBAAG,OAAO,KAAK,CAAA;QACzF,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,qBAAqB,CAAE,IAAI,CAAE,CAAA;QACtD,MAAM,UAAU,GAAG,MAAM,CAAC,qBAAqB,CAAE,KAAK,CAAE,CAAA;QAExD,IAAI,CAAC,aAAa,CAAE,SAAS,EAAE,UAAU,CAAE;YAAG,OAAO,KAAK,CAAA;QAE1D,KAAK,IAAI,GAAG,IAAI,SAAS,EAAG,CAAC;YAC5B,IAAI,CAAC,iBAAiB,CAAI,IAAa,CAAE,GAAG,CAAE,EAAI,KAAc,CAAE,GAAG,CAAE,CAAE;gBAAG,OAAO,KAAK,CAAA;QACzF,CAAC;QAED,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,SAAS,iBAAiB,CAAE,IAAQ,EAAE,KAAS;QAC9C,OAAO,MAAM,CAAC,EAAE,CACd,IAAY,CAAE,MAAM,CAAC,WAAW,CAAE,CAAE,SAAS,CAAE,EAC/C,KAAa,CAAE,MAAM,CAAC,WAAW,CAAE,CAAE,SAAS,CAAE,CACjD,CAAA;IACF,CAAC;AAEF,CAAC,EA7JS,CAAC,KAAD,CAAC,QA6JV;;;;AC7JD,IAAU,CAAC,CAoEV;AApED,WAAU,CAAC;IA0CV,6FAA6F;IAC7F,SAAgB,mBAAmB,CAElC,KAA2B;QAG3B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAA;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAA;QAElC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAA;QACzB,IAAI,MAAM,GAAG,KAAK,CAAA;QAElB,KAAK,CAAC,IAAI,CAAE,GAAE,EAAE;YACf,MAAM,GAAG,IAAI,CAAA;YACb,IAAI,CAAC,cAAc,CAAC,IAAI,CAAE,IAAI,EAAG,KAAK,CAAE,CAAA;QACzC,CAAC,CAAE,CAAA;QAEH,OAAO,GAAE,EAAE;YACV,IAAI,MAAM;gBAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAA;YACpC,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI;gBAAG,KAAK,CAAC,MAAM,GAAG,IAAI,CAAA;QAC9C,CAAC,CAAA;IAEF,CAAC;IArBe,qBAAmB,sBAqBlC,CAAA;IAEU,iBAAe,GAAG,EAAqB,CAAA;AAEnD,CAAC,EApES,CAAC,KAAD,CAAC,QAoEV;;;;ACpED,IAAU,CAAC,CA8EV;AA9ED,WAAU,CAAC;IAEV,gCAAgC;IAChC,MAAa,SAAU,SAAQ,YAAY;QAGhC;QACA;QACA;QACA;QACA;QALV,YACU,GAAW,EACX,MAAc,EACd,GAAW,EACX,GAAW,EACX,MAAc;YAEvB,KAAK,EAAE,CAAA;YANE,QAAG,GAAH,GAAG,CAAQ;YACX,WAAM,GAAN,MAAM,CAAQ;YACd,QAAG,GAAH,GAAG,CAAQ;YACX,QAAG,GAAH,GAAG,CAAQ;YACX,WAAM,GAAN,MAAM,CAAQ;YAGvB,IAAI,CAAE,MAAM,CAAC,WAAW,CAAE,GAAG,IAAI,CAAC,GAAG,GAAG,CAAE,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAE,CAAA;QAChG,CAAC;QAED,yCAAyC;QACzC,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAErC,4CAA4C;QAC5C,MAAM,CAAC,KAAK,CAAE,GAAW,EAAE,MAAM,GAAG,EAAE;YACrC,OAAO,IAAI,SAAS,CAAE,GAAG,EAAG,MAAM,EAAE,CAAC,EAAG,CAAC,EAAG,CAAC,CAAE,CAAA;QAChD,CAAC;QAED,0CAA0C;QAC1C,MAAM,CAAC,GAAG,CAAE,GAAW,EAAG,MAAc;YACvC,OAAO,IAAI,SAAS,CAAE,GAAG,EAAG,MAAM,EAAE,CAAC,EAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAG,CAAC,CAAE,CAAA;QAChE,CAAC;QAED,0CAA0C;QAC1C,MAAM,CAAC,MAAM,CAAE,GAAW,EAAG,MAAc;YAC1C,OAAO,IAAI,SAAS,CAAE,GAAG,EAAG,MAAM,EAAE,CAAC,EAAG,CAAC,EAAG,MAAM,CAAC,MAAM,CAAE,CAAA;QAC5D,CAAC;QAED,QAAQ;YACP,OAAO,IAAI,CAAE,MAAM,CAAC,WAAW,CAAE,CAAA;QAClC,CAAC;QAED,MAAM;YACL,OAAO;gBACN,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,MAAM,EAAE,IAAI,CAAC,MAAM;aACnB,CAAA;QACF,CAAC;QAED,qCAAqC;QACrC,KAAK,CAAE,OAAgB,EAAG,KAAK,GAAG,KAAK;YACtC,OAAO,IAAI,KAAK,CAAE,GAAG,OAAO,KAAK,IAAI,GAAG,CAAE,CAAA;QAC3C,CAAC;QAED,mCAAmC;QACnC,IAAI,CAAE,GAAY,EAAG,GAAY,EAAG,MAAe;YAClD,OAAO,IAAI,SAAS,CAAE,IAAI,CAAC,GAAG,EAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAG,GAAG,EAAG,MAAM,CAAE,CAAA;QACnE,CAAC;QAED,wCAAwC;QACxC,KAAK,CAAE,MAAM,GAAG,CAAC;YAChB,OAAO,IAAI,SAAS,CAAE,IAAI,CAAC,GAAG,EAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAG,MAAM,CAAE,CAAA;QAC3F,CAAC;QAED,4CAA4C;QAC5C,KAAK,CAAE,KAAa,EAAE,GAAG,GAAG,CAAC,CAAC;YAC7B,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAA;YAErB,IAAI,KAAK,GAAG,CAAC;gBAAG,KAAK,IAAI,GAAG,CAAA;YAC5B,IAAI,GAAG,GAAG,CAAC;gBAAG,GAAG,IAAI,GAAG,CAAA;YAExB,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,GAAG;gBAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAE,IAAI,CAAC,KAAK,CAAE,gBAAgB,KAAK,gBAAgB,EAAE,UAAU,CAAE,CAAE,CAAA;YACjH,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG;gBAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAE,IAAI,CAAC,KAAK,CAAE,cAAc,GAAG,gBAAgB,EAAE,UAAU,CAAE,CAAE,CAAA;YACzG,IAAI,GAAG,GAAG,KAAK;gBAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAE,IAAI,CAAC,KAAK,CAAE,cAAc,GAAG,kCAAkC,EAAE,UAAU,CAAE,CAAE,CAAA;YAElH,OAAO,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,GAAG,EAAG,IAAI,CAAC,GAAG,GAAG,KAAK,EAAG,GAAG,GAAG,KAAK,CAAE,CAAA;QAC9D,CAAC;;IAvEW,WAAS,YAyErB,CAAA;AAEF,CAAC,EA9ES,CAAC,KAAD,CAAC,QA8EV;;;;AC9ED,IAAU,CAAC,CAiDV;AAjDD,WAAU,CAAC;IAEV,gDAAgD;IAChD,SAAgB,oBAAoB,CAEnC,IAAgB;QAGhB,IAAI,MAAM,GAAG,EAAc,CAAA;QAE3B,SAAS,IAAI,CACZ,IAAgB,EAChB,MAAM,GAAG,EAAE;YAGX,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAG,CAAC;gBAEvB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAG,CAAC;oBACrB,MAAM,GAAG,IAAI,CAAC;gBACf,CAAC;gBAED,MAAM,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,CAAE,CAAA;gBAExB,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,EAAG,CAAC;oBAC5B,MAAM,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;oBAClB,IAAI,CAAE,IAAI,CAAC,IAAI,CAAE,CAAC,CAAE,EAAE,MAAM,CAAE,CAAA;oBAC9B,OAAM;gBACP,CAAC;gBAED,MAAM,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;YAEpB,CAAC;iBAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAG,CAAC;gBAEhD,MAAM,CAAC,IAAI,CAAE,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAE,CAAA;YAExC,CAAC;YAED,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAG,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAE,MAAM,CAAE,CAAA;gBACrB,IAAI,CAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAE,CAAA;YAC3B,CAAC;QAEF,CAAC;QAED,IAAI,CAAE,IAAI,CAAE,CAAA;QAEZ,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACvB,CAAC;IA5Ce,sBAAoB,uBA4CnC,CAAA;AAEF,CAAC,EAjDS,CAAC,KAAD,CAAC,QAiDV;;;;ACjDD,IAAU,CAAC,CAMV;AAND,WAAU,CAAC;IAEV,SAAgB,UAAU,CAAW,KAAgC;QACpE,OAAO,CAAE,KAAK,IAAI,IAAI,CAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,KAAK,CAAE,CAAA;IAC1C,CAAC;IAFe,YAAU,aAEzB,CAAA;AAEF,CAAC,EANS,CAAC,KAAD,CAAC,QAMV;;;;ACND,IAAU,CAAC,CA4SV;AA5SD,WAAU,CAAC;IAkBV;;;;OAIG;IACH,MAAa,UAAW,SAAQ,MAAM;QAK3B;QAGA;QAGA;QAGA;QAZV;QAEC,uDAAuD;QAC9C,IAAa;QAEtB,mDAAmD;QAC1C,KAAc;QAEvB,kBAAkB;QACT,IAA4B;QAErC,2CAA2C;QAClC,IAAgB;YAGzB,KAAK,EAAE,CACN;YAbQ,SAAI,GAAJ,IAAI,CAAS;YAGb,UAAK,GAAL,KAAK,CAAS;YAGd,SAAI,GAAJ,IAAI,CAAwB;YAG5B,SAAI,GAAJ,IAAI,CAAY;YAIvB,IAAY,CAAE,MAAM,CAAC,WAAW,CAAE,GAAG,IAAI,IAAI,IAAI,GAAG,KAAK,CAAA;QAC5D,CAAC;QAED,6BAA6B;QAC7B,MAAM,CAAC,IAAI,CACV,IAA4B,EAC5B,IAAI,GAAG,SAAS,CAAC,OAAO;YAExB,OAAO,IAAI,UAAU,CAAE,EAAE,EAAG,EAAE,EAAG,IAAI,EAAG,IAAI,CAAE,CAAA;QAC/C,CAAC;QAED,yCAAyC;QACzC,IAAI,CACH,IAA4B;YAE5B,OAAO,UAAU,CAAC,IAAI,CAAE,IAAI,EAAG,IAAI,CAAC,IAAI,CAAE,CAAA;QAC3C,CAAC;QAED,sCAAsC;QACtC,MAAM,CAAC,IAAI,CACV,KAAc,EACd,OAAO,EAA2B,EAClC,IAAI,GAAG,SAAS,CAAC,OAAO;YAGxB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAE,IAAI,CAAE,CAAA;YAElC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAG,CAAC;gBAExB,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,GAAG,EAAG,IAAI,CAAC,GAAG,EAAG,CAAC,CAAE,CAAA;gBAEnD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAE,KAAK,CAAC,EAAE;oBAChC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAE,KAAK,CAAC,MAAM,CAAE,CAAA;oBACzC,OAAO,IAAI,UAAU,CAAE,EAAE,EAAG,KAAK,EAAG,EAAE,EAAG,QAAQ,CAAE,CAAA;gBACpD,CAAC,CAAE,CAAA;gBAEH,IAAI,GAAG,CAAE,GAAI,IAAI,EAAG,GAAI,IAAI,CAAE,CAAA;gBAE9B,KAAK,GAAG,EAAE,CAAA;YAEX,CAAC;YAED,OAAO,IAAI,UAAU,CAAE,EAAE,EAAG,KAAK,EAAG,IAAI,EAAG,IAAI,CAAE,CAAA;QAElD,CAAC;QAED,mCAAmC;QACnC,IAAI,CACH,KAAc,EACd,OAAO,EAA2B;YAElC,OAAO,UAAU,CAAC,IAAI,CAAE,KAAK,EAAG,IAAI,EAAG,IAAI,CAAC,IAAI,CAAE,CAAA;QACnD,CAAC;QAED,yBAAyB;QACzB,MAAM,CAAC,MAAM,CACZ,IAAa,EACb,OAAO,EAA2B,EAClC,IAAI,GAAG,SAAS,CAAC,OAAO;YAGxB,IAAI,WAAW,CAAC,IAAI,CAAE,IAAI,CAAE,EAAG,CAAC;gBAC/B,EAAE,CAAC,SAAS,CAAE,IAAI,CAAC,KAAK,CAAE,cAAe,IAAI,CAAC,SAAS,CAAE,IAAI,CAAG,EAAE,CAAE,CAAE,CAAA;YACvE,CAAC;YAED,OAAO,IAAI,UAAU,CAAE,IAAI,EAAG,EAAE,EAAG,IAAI,EAAG,IAAI,CAAE,CAAA;QAEjD,CAAC;QAED,yCAAyC;QACzC,MAAM,CACL,IAAa,EACb,OAAO,EAA2B;YAElC,OAAO,UAAU,CAAC,MAAM,CAAE,IAAI,EAAG,IAAI,EAAG,IAAI,CAAC,IAAI,CAAE,CAAA;QACpD,CAAC;QAED,6DAA6D;QAC7D,KAAK,CAAE,IAA4B,EAAE,IAAI,GAAG,IAAI,CAAC,IAAI;YACpD,OAAO,IAAI,UAAU,CAAE,IAAI,CAAC,IAAI,EAAG,IAAI,CAAC,KAAK,EAAG,IAAI,EAAG,IAAI,CAAE,CAAA;QAC9D,CAAC;QAED,sCAAsC;QACtC,IAAI;YAEH,IAAI,MAAM,GAAc,EAAE,CAAA;YAE1B,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAG,CAAC;gBAC5B,IAAI,GAAG,CAAC,IAAI;oBAAG,SAAQ;gBACvB,MAAM,CAAC,IAAI,CAAE,GAAG,CAAC,KAAK,CAAE,CAAA;YACzB,CAAC;YAED,OAAO,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;QAExC,CAAC;QAED,0BAA0B;QAC1B,6CAA6C;QAC7C,MAAM,CAAC,UAAU,CAAE,GAAY,EAAG,GAAG,GAAG,SAAS;YAChD,OAAO,EAAE,CAAC,sBAAsB,CAAE,GAAG,EAAE,GAAG,CAAE,CAAA;QAC7C,CAAC;QAED,iCAAiC;QACjC,QAAQ;YACP,OAAO,EAAE,CAAC,oBAAoB,CAAE,IAAI,CAAE,CAAA;QACvC,CAAC;QAED,kDAAkD;QAClD,MAAM,CAAE,KAAyB,EAAG,GAAG,IAAsB;YAC5D,OAAO,IAAI,CAAC,MAAM,CAAE,UAAU,CAAE,KAAK,CAAE,EAAE,GAAI,IAAI,CAAE,CAAC,CAAC,CAAC,CAAA;QACvD,CAAC;QAED,kDAAkD;QAClD,MAAM,CAAE,KAA6B,EAAG,GAAG,IAAsB;YAEhE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAG,OAAO,KAAK,CAAA;YAEpC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YACpB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAG,CAAC;gBAE/B,IAAI,QAAQ,GAAG,KAAK,CAAA;gBACpB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAE,CAAE,IAAI,EAAG,KAAK,EAAE,EAAE;oBAChD,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;wBAAG,OAAO,IAAI,CAAA;oBACpC,QAAQ,GAAG,IAAI,CAAA;oBACf,OAAO,IAAI,CAAC,MAAM,CAAE,KAAK,EAAG,GAAI,IAAI,CAAC,KAAK,CAAE,CAAC,CAAE,CAAE,CAAA;gBAClD,CAAC,CAAE,CAAC,MAAM,CAAE,OAAO,CAAE,CAAA;gBAErB,IAAI,CAAC,QAAQ,IAAI,KAAK,EAAG,CAAC;oBACzB,GAAG,CAAC,IAAI,CAAE,GAAI,IAAI,CAAC,MAAM,CAAE,IAAI,EAAG,EAAE,CAAE,CAAC,MAAM,CAAE,KAAK,EAAG,GAAI,IAAI,CAAC,KAAK,CAAE,CAAC,CAAE,CAAE,CAAE,CAAA;gBAC/E,CAAC;gBAED,OAAO,CAAE,IAAI,CAAC,KAAK,CAAE,GAAG,CAAE,CAAE,CAAA;YAE7B,CAAC;iBAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAG,CAAC;gBAEtC,MAAM,GAAG,GAAG,CAAE,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAE;qBAChD,MAAM,CAAE,KAAK,EAAG,GAAI,IAAI,CAAC,KAAK,CAAE,CAAC,CAAE,CAAE,CAAA;gBAEvC,OAAO,CAAE,IAAI,CAAC,KAAK,CAAC;wBACnB,GAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAE,CAAC,EAAE,IAAI,CAAE;wBAC9B,GAAI,GAAG;wBACP,GAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAE,IAAI,GAAG,CAAC,CAAE;qBAC/B,CAAC,CAAE,CAAA;YAEL,CAAC;iBAAM,CAAC;gBAEP,MAAM,IAAI,GAAG,CAAE,CAAE,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAE,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAE;qBACzE,OAAO,CAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAE,KAAK,EAAG,GAAI,IAAI,CAAC,KAAK,CAAE,CAAC,CAAE,CAAE,CAAE,CAAA;gBAE/D,OAAO,CAAE,IAAI,CAAC,KAAK,CAAE,IAAI,CAAE,CAAE,CAAA;YAE9B,CAAC;QAEF,CAAC;QAED,2BAA2B;QAC3B,MAAM,CAAE,GAAG,IAAsB;YAEhC,IAAI,IAAI,GAAG,CAAE,IAAkB,CAAE,CAAA;YAEjC,KAAK,MAAM,IAAI,IAAI,IAAI,EAAG,CAAC;gBAE1B,IAAI,CAAC,IAAI,CAAC,MAAM;oBAAG,MAAK;gBAExB,MAAM,IAAI,GAAG,IAAI,CAAA;gBACjB,IAAI,GAAG,EAAE,CAAA;gBAET,KAAK,IAAI,IAAI,IAAI,IAAI,EAAG,CAAC;oBAExB,QAAQ,OAAM,CAAE,IAAI,CAAE,EAAG,CAAC;wBAEzB,KAAK,QAAQ;4BAEZ,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,EAAG,CAAC;gCAC9B,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,EAAG,CAAC;oCACzB,IAAI,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;gCACnB,CAAC;4BACF,CAAC;4BAED,MAAK;wBAEN,KAAK,QAAQ;4BAEZ,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM;gCAAG,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAE,CAAA;4BAE5D,MAAM;wBAEP,OAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAE,GAAI,IAAI,CAAC,IAAI,CAAE,CAAA;oBACrC,CAAC;gBACF,CAAC;YACF,CAAC;YAED,OAAO,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;QAEzB,CAAC;QAED,oCAAoC;QACpC,MAAM,CAAE,IAAe,EAAG,KAAe;YAExC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAE,IAAI,CAAC,EAAE;gBAEpC,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAE,GAAG,IAAI,CAAE,CAAA;gBAElC,IAAI,KAAK,KAAK,SAAS,EAAG,CAAC;oBAC1B,OAAO,OAAO,CAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAE,CAAA;gBACpC,CAAC;qBAAM,CAAC;oBACP,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAE,CAAA;gBACxD,CAAC;YAEF,CAAC,CAAE,CAAA;YAEH,OAAO,IAAI,CAAC,KAAK,CAAE,GAAG,CAAE,CAAA;QAEzB,CAAC;QAED,SAAS,CACR,IAAgC,EAChC,UAAU,EAAa;YAEvB,IAAI,MAAM,GAAG,IAAI,CAAE,IAAI,CAAC,IAAI,CAAE,IAAI,IAAI,CAAE,EAAE,CAAE,CAAA;YAE5C,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,MAAM,CAAC,SAAS,CAAE,IAAI,CAAC,IAAoB,CAAE,EAAG,CAAC;gBAC1E,MAAM,GAAG,CAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;oBACnC,KAAK,CAAC,KAAK,CAAE,KAAK,CAAC,IAAI,CAAE,IAAI,EAAE,OAAO,CAAE,EAAE,OAAO,CAAC,IAAI,CAAE;iBACxD,CAAA;YACF,CAAC;YAED,IAAI,CAAC;gBACJ,OAAO,MAAM,CAAE,IAAI,EAAG,IAAI,EAAG,OAAQ,CAAE,CAAA;YACxC,CAAC;YAAC,OAAO,KAAU,EAAG,CAAC;gBACtB,KAAK,CAAC,OAAO,IAAI,KAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAE,GAAI,IAAI,CAAC,IAAK,EAAE,CAAA;gBACtD,gBAAgB,CAAE,KAAK,CAAE,CAAA;YAC1B,CAAC;QACF,CAAC;QAED,uDAAuD;QACvD,IAAI,CACH,IAAgC,EAChC,UAAU,EAAa;YAEvB,OAAS,EAA6B,CAAC,MAAM,CAC5C,GAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAE,CAC5D,CAAA;QAEF,CAAC;QAED,yCAAyC;QACzC,KAAK,CAAE,OAAgB,EAAG,KAAK,GAAG,KAAK;YACtC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAE,GAAI,OAAQ,KAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAE,EAAE,EAAG,KAAK,CAAE,CAAA;QACtE,CAAC;KAED;IA7QY,YAAU,aA6QtB,CAAA;IAED,MAAa,gBAAiB,SAAQ,UAAU;QAC/C;YACC,KAAK,CAAE,EAAE,EAAG,EAAE,EAAG,EAAE,EAAG,SAAS,CAAC,OAAO,CAAE,CAAA;QAC1C,CAAC;KACD;IAJY,kBAAgB,mBAI5B,CAAA;AAEF,CAAC,EA5SS,CAAC,KAAD,CAAC,QA4SV;;;;AC5SD,IAAU,CAAC,CAcV;AAdD,WAAU,CAAC;IAEV,4DAA4D;IAC5D,MAAa,iBAAkB,SAAQ,WAAW;QAEzC;QACA;QACA;QAHR,YACQ,MAAc,EACd,IAAY,EACZ,IAAe;YAEtB,KAAK,CAAC,GAAI,MAAO,KAAM,IAAK,KAAM,IAAI,CAAC,SAAS,CAAE,CAAC,EAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAE,CAAC,OAAO,CAAE,KAAK,EAAE,GAAG,CAAG,GAAI,EAAE,CAAC,MAAM,CAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAG,KAAM,IAAK,EAAE,CAAC,CAAA;YAJpI,WAAM,GAAN,MAAM,CAAQ;YACd,SAAI,GAAJ,IAAI,CAAQ;YACZ,SAAI,GAAJ,IAAI,CAAW;QAGvB,CAAC;KAED;IATY,mBAAiB,oBAS7B,CAAA;AAEF,CAAC,EAdS,CAAC,KAAD,CAAC,QAcV;;;;ACdD,IAAU,CAAC,CAqJV;AArJD,WAAU,CAAC;IAEV,sCAAsC;IACtC,SAAgB,sBAAsB,CAErC,GAAW,EACX,GAAG,GAAG,GAAG;QAGT,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAE,GAAG,EAAE,GAAG,CAAE,CAAA;QAEzC,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,CAAE,EAAE,EAAE,IAAI,CAAE,CAAA;QACtC,IAAI,KAAK,GAAG,CAAE,IAAI,CAAE,CAAA;QAEpB,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,UAAU,GAAG,CAAC,CAAA;QAEpC,OAAO,GAAG,CAAC,MAAM,GAAG,GAAG,EAAG,CAAC;YAE1B,IAAI,MAAM,GAAG,CAAC,CAAA;YACd,IAAI,UAAU,GAAG,GAAG,CAAA;YAEpB,GAAG,EAAE,CAAA;YAEL,cAAc;YACd,OAAO,GAAG,CAAC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAE,GAAG,CAAE,IAAI,IAAI,EAAG,CAAC;gBAChD,MAAM,EAAE,CAAA;gBACR,GAAG,EAAE,CAAA;YACN,CAAC;YAED,IAAI,CAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAG,CAAC;gBACzB,UAAU,GAAG,MAAM,CAAA;YACpB,CAAC;YAED,MAAM,IAAI,UAAU,CAAA;YAEpB,mBAAmB;YACnB,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,IAAI,KAAK,CAAC,MAAM,EAAG,CAAC;gBAE3C,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,UAAU,CAAE,CAAA;gBAEhD,kBAAkB;gBAClB,OAAO,GAAG,CAAC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAE,GAAG,CAAE,IAAI,IAAI,EAAG,CAAC;oBAChD,GAAG,EAAE,CAAA;gBACN,CAAC;gBAED,IAAI,MAAM,GAAG,CAAC,EAAG,CAAC;oBACjB,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,EAAG,CAAC;wBACvB,IAAI,CAAC,SAAS,CAAE,IAAI,IAAI,CAAC,iBAAiB,CACzC,cAAc,EACd,GAAG,CAAC,SAAS,CAAE,UAAU,EAAE,GAAG,CAAE,EAChC,EAAE,CACF,CAAE,CAAA;oBACJ,CAAC;gBACF,CAAC;qBAAM,CAAC;oBACP,IAAI,CAAC,SAAS,CAAE,IAAI,IAAI,CAAC,iBAAiB,CACzC,eAAe,EACf,GAAG,CAAC,SAAS,CAAE,UAAU,EAAE,GAAG,CAAE,EAChC,EAAE,CACF,CAAE,CAAA;gBACJ,CAAC;YAEF,CAAC;YAED,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,CAAA;YACzB,IAAI,MAAM,GAAG,KAAK,CAAE,MAAM,CAAE,CAAA;YAE5B,cAAc;YACd,OAAO,GAAG,CAAC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAE,GAAG,CAAE,IAAI,IAAI,IAAI,GAAG,CAAE,GAAG,CAAE,IAAI,IAAI,EAAG,CAAC;gBAEtE,qCAAqC;gBACrC,IAAI,WAAW,GAAG,GAAG,CAAA;gBACrB,OAAO,GAAG,CAAC,MAAM,GAAG,GAAG,IAAI,CAAE,GAAG,CAAE,GAAG,CAAE,IAAI,GAAG,IAAI,GAAG,CAAE,GAAG,CAAE,IAAI,IAAI,CAAE,EAAG,CAAC;oBACzE,GAAG,EAAE,CAAA;gBACN,CAAC;gBAED,IAAI,GAAG,GAAG,WAAW,EAAG,CAAC;oBACxB,IAAI,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAE,IAAI,EAAG,GAAG,CAAE,CAAA;oBACxC,IAAI,QAAQ,KAAK,CAAC,CAAC;wBAAG,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAA;oBAC3C,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,WAAW,GAAG,UAAU,GAAG,CAAC,EAAE,GAAG,GAAG,WAAW,CAAE,CAAA;oBAC5E,IAAI,CAAC,SAAS,CAAE,IAAI,IAAI,CAAC,iBAAiB,CACzC,uBAAuB,EACvB,GAAG,CAAC,SAAS,CAAE,UAAU,EAAE,QAAQ,CAAE,EACrC,EAAE,CACF,CAAE,CAAA;gBACJ,CAAC;gBAED,YAAY;gBACZ,IAAI,UAAU,GAAG,GAAG,CAAA;gBACpB,OACC,GAAG,CAAC,MAAM,GAAG,GAAG;oBAChB,GAAG,CAAE,GAAG,CAAE,IAAI,IAAI;oBAClB,GAAG,CAAE,GAAG,CAAE,IAAI,GAAG;oBACjB,GAAG,CAAE,GAAG,CAAE,IAAI,IAAI;oBAClB,GAAG,CAAE,GAAG,CAAE,IAAI,IAAI,EACjB,CAAC;oBACF,GAAG,EAAE,CAAA;gBACN,CAAC;gBACD,IAAI,GAAG,GAAG,UAAU,EAAG,CAAC;oBACvB,IAAI,IAAI,GAAG,IAAI,UAAU,CACxB,GAAG,CAAC,KAAK,CAAE,UAAU,EAAG,GAAG,CAAE,EAC7B,EAAE,EACF,EAAE,EACF,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,UAAU,GAAG,UAAU,GAAG,CAAC,EAAE,GAAG,GAAG,UAAU,CAAE,CAC/D,CAAA;oBACD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAoB,CAAA;oBAC/C,WAAW,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;oBACxB,MAAM,GAAG,IAAI,CAAA;gBACd,CAAC;gBAED,2BAA2B;gBAC3B,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAE,GAAG,CAAE,IAAI,GAAG,EAAG,CAAC;oBAC5C,GAAG,EAAE,CAAA;gBACN,CAAC;YACF,CAAC;YAED,YAAY;YACZ,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAE,GAAG,CAAE,IAAI,IAAI,EAAG,CAAC;gBAC7C,IAAI,UAAU,GAAG,GAAG,CAAA;gBACpB,OAAO,GAAG,CAAC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAE,GAAG,CAAE,IAAI,IAAI,EAAG,CAAC;oBAChD,GAAG,EAAE,CAAA;gBACN,CAAC;gBACD,IAAI,IAAI,GAAG,IAAI,UAAU,CACxB,EAAE,EACF,GAAG,CAAC,KAAK,CAAE,UAAU,GAAG,CAAC,EAAG,GAAG,CAAE,EACjC,EAAE,EACF,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,UAAU,GAAG,UAAU,GAAG,CAAC,EAAE,GAAG,GAAG,UAAU,GAAG,CAAC,CAAE,CACnE,CAAA;gBACD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAoB,CAAA;gBAC/C,WAAW,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;gBACxB,MAAM,GAAG,IAAI,CAAA;YACd,CAAC;YAED,0BAA0B;YAC1B,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAG,CAAC;gBAC7C,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,GAAG,GAAG,UAAU,GAAG,CAAC,EAAE,CAAC,CAAE,CAAA;gBACpD,IAAI,CAAC,SAAS,CAAE,IAAI,IAAI,CAAC,iBAAiB,CACzC,6BAA6B,EAC7B,GAAG,CAAC,SAAS,CAAE,UAAU,EAAE,GAAG,CAAC,MAAM,CAAE,EACvC,EAAE,CACF,CAAE,CAAA;YACJ,CAAC;YAED,KAAK,CAAC,IAAI,CAAE,MAAM,CAAE,CAAA;YACpB,GAAG,EAAE,CAAA;QACN,CAAC;QAED,OAAO,IAAI,CAAA;IACZ,CAAC;IAhJe,wBAAsB,yBAgJrC,CAAA;AAEF,CAAC,EArJS,CAAC,KAAD,CAAC,QAqJV;;;;ACrJD,IAAU,CAAC,CA8BV;AA9BD,WAAU,CAAC;IAEV,SAAgB,iBAAiB,CAChC,KAAuB,EACvB,IAA0D;QAG1D,MAAM,EAAE,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAE,CAAO,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAEpF,IAAI,KAAK,GAAG,EAAY,CAAA;QACxB,MAAM,MAAM,GAAG,EAAE,CAAA;QAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAG,CAAC;YAExC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YAErB,IAAI,EAAE,CAAE,IAAI,EAAE,CAAC,CAAE,EAAG,CAAC;gBACpB,IAAI,KAAK,CAAC,MAAM;oBAAG,MAAM,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;gBACvC,KAAK,GAAG,EAAE,CAAA;YACX,CAAC;YAED,KAAK,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;QAEnB,CAAC;QAED,IAAI,KAAK,CAAC,MAAM;YAAG,MAAM,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;QAEvC,OAAO,MAAM,CAAA;IACd,CAAC;IA1Be,mBAAiB,oBA0BhC,CAAA;AAEF,CAAC,EA9BS,CAAC,KAAD,CAAC,QA8BV;;;;AC9BD,IAAU,CAAC,CA+DV;AA/DD,WAAU,CAAC;IAEV,SAAgB,oBAAoB,CAAE,IAAS,EAAE,IAAI,GAAG,SAAS,CAAC,OAAO;QAExE,IAAI,OAAO,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAG,CAAC;YAC7E,OAAO,IAAI,UAAU,CAAE,MAAM,CAAE,IAAI,CAAE,EAAG,EAAE,EAAG,EAAE,EAAG,IAAI,CAAE,CAAA;QACzD,CAAC;QAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAG,CAAC;YAC/B,OAAO,UAAU,CAAC,IAAI,CAAE,IAAI,EAAG,EAAE,EAAE,IAAI,CAAE,CAAA;QAC1C,CAAC;QAED,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,UAAU,EAAG,CAAC;YACxC,OAAO,oBAAoB,CAAE,IAAI,CAAC,MAAM,EAAE,CAAE,CAAA;QAC7C,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAE,IAAI,CAAE,EAAG,CAAC;YAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAE,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAE,IAAI,EAAG,IAAI,CAAE,CAAE,CAAA;YACnE,OAAO,IAAI,UAAU,CAAE,GAAG,EAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAE,CAAA;QAC7C,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,CAAE,IAAI,CAAE,EAAG,CAAC;YACjC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAE,CAAA;YAC3E,MAAM,KAAK,GAAG,CAAE,GAAI,GAAG,CAAE,CAAC,GAAG,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAE,CAAC,EAAE,GAAG,CAAE,CAAE,CAAA;YACrF,MAAM,GAAG,GAAG,iBAAiB,CAAE,KAAK,EAAE,CAAC,CAAE,CAAC,GAAG,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;YAC9E,OAAO,UAAU,CAAC,IAAI,CAAE,GAAG,EAAG,EAAE,EAAE,IAAI,CAAE,CAAA;QACzC,CAAC;QAED,IAAI,IAAI,YAAY,IAAI,EAAG,CAAC;YAC3B,OAAO,IAAI,UAAU,CAAE,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,EAAG,EAAE,EAAG,IAAI,CAAE,CAAA;QAC5D,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAG,CAAC;YAClD,OAAO,UAAU,CAAC,IAAI,CAAE,IAAI,CAAC,QAAQ,EAAE,EAAG,EAAE,EAAE,IAAI,CAAE,CAAA;QACrD,CAAC;QAED,IAAI,IAAI,YAAY,KAAK,EAAG,CAAC;YAC5B,MAAM,EAAE,IAAI,EAAG,OAAO,EAAG,KAAK,EAAE,GAAG,IAAI,CAAA;YACvC,IAAI,GAAG,EAAE,GAAI,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;QAC1C,CAAC;QAED,MAAM,GAAG,GAAG,EAAkB,CAAA;QAE9B,KAAK,IAAI,GAAG,IAAI,IAAI,EAAG,CAAC;YAEvB,MAAM,GAAG,GAAG,IAAI,CAAE,GAAG,CAAE,CAAA;YAEvB,IAAI,GAAG,KAAK,SAAS;gBAAG,SAAQ;YAEhC,MAAM,MAAM,GAAG,oBAAoB,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;YAEhD,IAAI,eAAe,CAAC,IAAI,CAAE,GAAG,CAAE,EAAG,CAAC;gBAClC,GAAG,CAAC,IAAI,CAAE,IAAI,UAAU,CAAE,GAAG,EAAE,EAAE,EAAE,CAAE,MAAM,CAAE,EAAE,IAAI,CAAE,CAAE,CAAA;YACxD,CAAC;iBAAM,CAAC;gBACP,GAAG,CAAC,IAAI,CAAE,UAAU,CAAC,IAAI,CAAE,GAAG,EAAE,CAAE,MAAM,CAAE,EAAE,IAAI,CAAE,CAAE,CAAA;YACrD,CAAC;QAEF,CAAC;QAED,OAAO,IAAI,UAAU,CAAE,GAAG,EAAG,EAAE,EAAE,GAAG,EAAG,IAAI,CAAE,CAAA;IAE9C,CAAC;IA3De,sBAAoB,uBA2DnC,CAAA;AAEF,CAAC,EA/DS,CAAC,KAAD,CAAC,QA+DV;;;;AC/DD,IAAU,CAAC,CAqDV;AArDD,WAAU,CAAC;IAEV,8EAA8E;IAC9E,MAAa,eAAe;QAE3B,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;QAChC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,CAAC,EAAE,EAAE,CAAE,CAAA;QAChC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAE,CAAC,EAAE,EAAE,CAAE,CAAA;QAClC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAE,CAAC,EAAE,EAAE,CAAE,CAAA;QACrC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAE,CAAC,EAAE,EAAE,CAAE,CAAA;QACnC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAE,CAAC,EAAE,EAAE,CAAE,CAAA;QAClC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAE,CAAC,EAAE,EAAE,CAAE,CAAA;QAElC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,EAAE,EAAE,EAAE,CAAE,CAAA;QACjC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,EAAE,EAAE,EAAE,CAAE,CAAA;QAChC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAE,EAAE,EAAE,EAAE,CAAE,CAAA;QAClC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAE,EAAE,EAAE,EAAE,CAAE,CAAA;QACnC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,EAAE,EAAE,EAAE,CAAE,CAAA;QACjC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAE,EAAE,EAAE,EAAE,CAAE,CAAA;QACpC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,EAAE,EAAE,EAAE,CAAE,CAAA;QAEjC,MAAM,CAAC,IAAI,GAAG,CAAE,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAE,IAAI,CAAC,IAAI,CAAE,GAAG,CAAE,CAAE,CAAA;QAChE,MAAM,CAAC,GAAG,GAAG,CAAE,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAE,IAAI,CAAC,GAAG,CAAE,GAAG,CAAE,CAAE,CAAA;QAC9D,MAAM,CAAC,KAAK,GAAG,CAAE,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAE,IAAI,CAAC,KAAK,CAAE,GAAG,CAAE,CAAE,CAAA;QAClE,MAAM,CAAC,MAAM,GAAG,CAAE,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAE,IAAI,CAAC,MAAM,CAAE,GAAG,CAAE,CAAE,CAAA;QACpE,MAAM,CAAC,IAAI,GAAG,CAAE,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAE,IAAI,CAAC,IAAI,CAAE,GAAG,CAAE,CAAE,CAAA;QAChE,MAAM,CAAC,OAAO,GAAG,CAAE,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAE,IAAI,CAAC,OAAO,CAAE,GAAG,CAAE,CAAE,CAAA;QACtE,MAAM,CAAC,IAAI,GAAG,CAAE,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAE,IAAI,CAAC,IAAI,CAAE,GAAG,CAAE,CAAE,CAAA;QAEhE,MAAM,CAAC,IAAI,CAAE,IAAY,EAAE,KAAa;YAEvC,IAAI,OAAO,OAAO,KAAK,WAAW;gBAAG,OAAO,MAAM,CAAA;YAClD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;gBAAG,OAAO,MAAM,CAAA;YAEzC,MAAM,MAAM,GAAG,QAAQ,IAAI,GAAG,CAAA;YAC9B,MAAM,OAAO,GAAG,QAAQ,KAAK,GAAG,CAAA;YAEhC,MAAM,aAAa,GAAG,IAAI,MAAM,CAAE,OAAO,CAAC,OAAO,CAAE,GAAG,EAAE,KAAK,CAAE,EAAE,GAAG,CAAE,CAAA;YAEtE,OAAO,SAAS,OAAO,CAAE,GAAW;gBAEnC,GAAG,GAAG,MAAM,CAAE,GAAG,CAAE,CAAA;gBACnB,IAAI,GAAG,KAAK,EAAE;oBAAG,OAAO,GAAG,CAAA;gBAE3B,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAE,aAAa,EAAE,MAAM,CAAE,CAAA;gBACnD,OAAO,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;YAEjC,CAAC,CAAA;QAEF,CAAC;;IA9CW,iBAAe,kBAgD3B,CAAA;AAEF,CAAC,EArDS,CAAC,KAAD,CAAC,QAqDV;;;;ACrDD,IAAU,CAAC,CAoCV;AApCD,WAAU,CAAC;IAEV,SAAgB,mBAAmB,CAClC,KAAqB,EACrB,MAA4B,EAC5B,IAAa,EACb,KAA+B;QAG/B,OAAO,SAAS,gBAAgB,CAE/B,KAA2B;YAG3B,IAAI,CAAC,KAAK,CAAC,IAAI;gBAAG,KAAK,GAAG,EAAE,GAAI,KAAK,EAAE,IAAI,EAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAA;YAExE,IAAI,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAE,KAAK,CAAE,CAAA;YAC7C,IAAI,GAAG,IAAI,CAAC,MAAM,CAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAE,CAAA;YAErC,IAAI,GAAG,GAAG,KAAK,CAAE,IAAI,CAAC,QAAQ,EAAE,CAAE,CACjC;YAAE,IAAI,CAAC,OAAO,CAAE,KAAK,CAAW,CAAE,GAAG,CAAE,CAAA;YAExC,MAAM,IAAI,GAAG,IAAI,CAAA;YACjB,OAAO,GAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAA;QAEpC,CAAC,CAAA;IAEF,CAAC;IAzBe,qBAAmB,sBAyBlC,CAAA;IAED,CAAC,CAAC,cAAc,GAAG,mBAAmB,CAAE,MAAM,EAAG,QAAQ,EAAG,MAAM,EAAG,eAAe,CAAC,IAAI,CAAE,CAAA;IAC3F,CAAC,CAAC,cAAc,GAAG,mBAAmB,CAAE,MAAM,EAAG,QAAQ,EAAG,MAAM,EAAG,eAAe,CAAC,KAAK,CAAE,CAAA;IAC5F,CAAC,CAAC,cAAc,GAAG,mBAAmB,CAAE,OAAO,EAAG,QAAQ,EAAG,MAAM,EAAG,eAAe,CAAC,GAAG,CAAE,CAAA;IAC3F,CAAC,CAAC,cAAc,GAAG,mBAAmB,CAAE,MAAM,EAAG,QAAQ,EAAG,MAAM,EAAG,eAAe,CAAC,MAAM,CAAE,CAAA;IAC7F,CAAC,CAAC,cAAc,GAAG,mBAAmB,CAAE,KAAK,EAAG,QAAQ,EAAG,MAAM,EAAG,eAAe,CAAC,OAAO,CAAE,CAAA;IAC7F,CAAC,CAAC,cAAc,GAAG,mBAAmB,CAAE,KAAK,EAAG,QAAQ,EAAG,MAAM,EAAG,eAAe,CAAC,IAAI,CAAE,CAAA;AAE3F,CAAC,EApCS,CAAC,KAAD,CAAC,QAoCV;;;;ACpCD,IAAU,CAAC,CAmGV;AAnGD,WAAU,CAAC;IAEV,qBAAqB;IACrB,MAAa,cAIX,SAAQ,eAAqC;QAE9C,MAAM,CAAC,MAAM,CAKZ,IAAgD;YAGhD,OAAO,SAAS,kBAAkB,CAAE,IAAU,EAAE,IAAU;gBAEzD,MAAM,GAAG,GAAG,cAAc,EAAE,CAAA;gBAC5B,MAAM,OAAO,GAAG,GAAG,EAAE,UAAU,EAAsD,CAAA;gBACrF,IAAI,KAAK,GAAG,EAAE,CAAA;gBAEd,KAAK,EAAE,IAAI,OAAO,EAAG,CAAC;oBAErB,IAAI,CAAC,OAAO,CAAC,IAAI;wBAAG,MAAM,KAAK,CAAA;oBAE/B,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAG,CAAC;wBAAC,KAAK,GAAG,MAAM,CAAC;wBAAC,MAAM,KAAK,CAAA;oBAAC,CAAC;oBAC3D,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAG,CAAC;wBAAC,KAAK,GAAG,MAAM,CAAC;wBAAC,MAAM,KAAK,CAAA;oBAAC,CAAC;oBAC3D,IAAI,CAAC,iBAAiB,CAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAE,EAAG,CAAC;wBAAC,KAAK,GAAG,MAAM,CAAC;wBAAC,MAAM,KAAK,CAAA;oBAAC,CAAC;oBAE9E,OAAO,OAAO,CAAA;gBACf,CAAC;gBAED,MAAM,GAAG,GAAG,CAAG,IAAY,EAAE,CAAE,MAAM,CAAC,WAAW,CAAE,IAAI,IAAI,CAAE,GAAG,CAAE,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,KAAK,CAAE,CAAA;gBAC3F,MAAM,IAAI,GAAG,IAAI,cAAc,CAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAE,CAAA;gBAExD,6DAA6D;gBAC7D,IAAI,OAAO,EAAE,IAAI,EAAG,CAAC;oBACpB,EAAE,CAAC,cAAc,CAAC;wBACjB,KAAK,EAAE,gBAAgB;wBACvB,OAAO,EAAE,aAAa,KAAK,aAAa;wBACxC,GAAG;wBACH,IAAI,EAAE,OAAO;wBACb,IAAI;wBACJ,IAAI,EAAE,uCAAuC;qBAC7C,CAAC,CAAA;gBACH,CAAC;gBAED,OAAO,IAAI,CAAA;YACZ,CAAC,CAAA;QAEF,CAAC;QAED,IAAI,IAAI;YACP,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,QAAQ;YACP,IAAI,iBAAiB,CAAE,IAAI,CAAC,KAAK,CAAE;gBAAG,OAAM;YAC5C,IAAI,CAAC,UAAU,EAAE,CAAA;QAClB,CAAC;QAED,GAAG,CAAE,IAAgD;YAEpD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;YACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;YAEjB,IAAI,iBAAiB,CAAE,IAAI,CAAE,EAAG,CAAC;gBAEhC,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAA;gBACpC,IAAI,IAAI,KAAK,IAAI;oBAAG,IAAI,CAAC,IAAI,EAAE,CAAA;gBAE/B,IAAI,iBAAiB,CAAE,IAAI,EAAE,IAAI,CAAE,EAAG,CAAC;oBACtC,IAAI,CAAC;wBACH,IAAY,CAAE,MAAM,CAAC,WAAW,CAAE,GAAI,IAAY,CAAE,MAAM,CAAC,WAAW,CAAE,CAAA;oBAC1E,CAAC;oBAAC,MAAM,CAAC,CAAC,gCAAgC;wBACzC,MAAM,CAAC,cAAc,CAAE,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,KAAK,EAAG,IAAY,CAAE,MAAM,CAAC,WAAW,CAAE,EAAE,CAAE,CAAA;oBAClG,CAAC;gBACF,CAAC;gBAED,OAAO,IAAI,CAAA;YACZ,CAAC;YAED,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAA;YAEpC,IAAI,IAAI,CAAC,SAAS;gBAAG,IAAI,CAAC,UAAU,EAAE,CAAA;iBACjC,IAAI,IAAI,KAAK,IAAI;gBAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YAEpC,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,UAAU;YACT,KAAK,CAAC,UAAU,EAAE,CAAA;YAClB,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAA;QACrC,CAAC;KAED;IA9FY,gBAAc,iBA8F1B,CAAA;AAEF,CAAC,EAnGS,CAAC,KAAD,CAAC,QAmGV;;;;ACnGD,IAAU,CAAC,CAmDV;AAnDD,WAAU,CAAC;IAEV,MAAM,UAAU,GAAG,MAAM,CAAC,cAAc,CAAE,UAAU,CAAE,CAAA;IAEtD,wCAAwC;IACxC,SAAgB,QAAQ,CAAW,KAAa;QAE/C,UAAU,EAAE,CAAC;YACZ,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAG,OAAO,KAAK,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAA;YAC7D,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAG,OAAO,UAAW,KAAK,CAAC,WAAa,GAAG,CAAA;YACxE,IAAI,CAAC,KAAK;gBAAG,OAAO,IAAI,CAAC,SAAS,CAAE,KAAK,CAAE,CAAA,CAAC,cAAc;YAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU;gBAAG,OAAO,IAAI,CAAC,SAAS,CAAE,KAAK,CAAE,CAAA,CAAC,0BAA0B;QACzH,CAAC;QAED,OAAO,EAAE,CAAC;YACT,IAAI,GAAG,GAAG,cAAc,CAAC,GAAG,CAAE,KAAK,CAAE,CAAA;YACrC,IAAI,GAAG;gBAAG,OAAO,GAAG,CAAA;QACrB,CAAC;QAED,OAAO,EAAE,CAAC;YAET,IAAI,KAAK,YAAY,UAAU,EAAG,CAAC;gBAClC,OAAO,GAAM,KAAc,CAAE,MAAM,CAAC,WAAW,CAAG,KAAM,CAAE,GAAI,KAAiB,CAAE,CAAC,GAAG,CAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAE,CAAC,CAAE,CAAG,IAAI,CAAA;YACjH,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAE,KAAK,CAAE;gBAAG,OAAO,IAAK,KAAK,CAAC,GAAG,CAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAE,CAAC,CAAE,CAAG,GAAG,CAAA;YAC5E,IAAI,KAAK,YAAY,MAAM;gBAAG,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAA;YACrD,IAAI,KAAK,YAAY,IAAI;gBAAG,OAAO,QAAS,KAAK,CAAC,OAAO,EAAG,GAAG,CAAA;QAEhE,CAAC;QAED,UAAU,EAAE,CAAC;YACZ,MAAM,KAAK,GAAG,OAAO,CAAC,cAAc,CAAE,KAAK,CAAE,CAAA;YAC7C,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,cAAc,CAAE,KAAK,CAAE,EAAG,CAAC;gBACjD,OAAO,IAAK,MAAM,CAAC,OAAO,CAAE,KAAK,CAAE,CAAC,GAAG,CAAE,CAAC,CAAE,CAAC,EAAE,CAAC,CAAE,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAE,CAAC,CAAE,GAAG,GAAG,GAAG,QAAQ,CAAE,CAAC,CAAE,CAAG,GAAG,CAAA;YACvG,CAAC;QACF,CAAC;QAED,QAAQ,EAAE,CAAC;YACV,IAAI,eAAe,IAAI,KAAK,EAAG,CAAC;gBAC/B,OAAS,KAAK,CAAE,eAAe,CAAW,EAAE,CAAA;YAC7C,CAAC;QACF,CAAC;QAED,UAAU,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAE,GAAG,GAAG,SAAS,EAAE,CAAE,CAAA;YAC/C,cAAc,CAAC,GAAG,CAAE,KAAK,EAAE,GAAG,CAAE,CAAA;YAChC,OAAO,GAAG,CAAA;QACX,CAAC;IAEF,CAAC;IA5Ce,UAAQ,WA4CvB,CAAA;AAEF,CAAC,EAnDS,CAAC,KAAD,CAAC,QAmDV;;;;ACnDD,IAAU,CAAC,CAoBV;AApBD,WAAU,CAAC;IAEV,MAAa,kBAAmB,SAAQ,YAAY;QAK3C;QACA;QAJR,EAAE,CAAM;QAER,YACQ,KAAc,EACd,IAAgB;YAEvB,KAAK,EAAE,CAAA;YAHA,UAAK,GAAL,KAAK,CAAS;YACd,SAAI,GAAJ,IAAI,CAAY;YAGvB,IAAI,CAAC,EAAE,GAAG,UAAU,CAAE,IAAI,EAAG,KAAK,CAAE,CAAA;QACrC,CAAC;QAED,UAAU;YACT,YAAY,CAAE,IAAI,CAAC,EAAE,CAAE,CAAA;QACxB,CAAC;KAED;IAhBY,oBAAkB,qBAgB9B,CAAA;AAEF,CAAC,EApBS,CAAC,KAAD,CAAC,QAoBV;;;;ACpBD,IAAU,CAAC,CAYV;AAZD,WAAU,CAAC;IAEV,MAAa,gBAAiB,SAAQ,kBAAkB;QAG/C;QADR,YACQ,IAAgB;YAEvB,KAAK,CAAE,EAAE,EAAG,IAAI,CAAE,CAAA;YAFX,SAAI,GAAJ,IAAI,CAAY;QAGxB,CAAC;KAED;IARY,kBAAgB,mBAQ5B,CAAA;AAEF,CAAC,EAZS,CAAC,KAAD,CAAC,QAYV;;;;ACZD,IAAU,CAAC,CAsCV;AAtCD,WAAU,CAAC;IAEV;;OAEG;IACH,SAAgB,gBAAgB,CAI/B,IAAW,EACX,KAAmB,EACnB,KAA4D;QAG5D,IAAI,CAAC,KAAK;YAAG,KAAK,GAAG,OAAO,CAAC,wBAAwB,CAAE,IAAI,EAAG,KAAK,CAAS,CAAA;QAC5E,MAAM,IAAI,GAAG,KAAK,EAAE,KAAM,IAAK,IAAY,CAAE,KAAK,CAAE,CAAA;QAEpD,MAAM,GAAG,GAAG,OAAO,CAAC,cAAc,CAAE,IAAI,CAAG,CAAA;QAC3C,IAAI,OAAQ,GAAW,CAAE,KAAK,CAAE,KAAK,UAAU,EAAG,CAAC;YAClD,MAAM,CAAC,cAAc,CAAE,IAAI,EAAG,MAAM,EAAG,EAAE,KAAK,EAAI,GAAW,CAAE,KAAK,CAAE,CAAC,IAAI,EAAE,CAAE,CAAA;QAChF,CAAC;QAED,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAE,IAAI,CAAE,CAAA;QAC1C,MAAM,KAAK,GAAG,UAAsB,GAAI,IAAU;YACjD,MAAM,KAAK,GAAG,IAAI,CAAE,IAAI,IAAI,IAAW,EAAE,IAAI,CAAE,CAAA;YAC/C,OAAO,KAAK,CAAC,IAAI,EAAE,CAAA;QACpB,CAAC,CAAA;QAED,MAAM,CAAC,cAAc,CAAE,KAAK,EAAG,MAAM,EAAG,EAAE,KAAK,EAAG,IAAI,CAAC,IAAI,GAAG,GAAG,EAAE,CAAE,CAAA;QAErE,MAAM,CAAC,MAAM,CAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAE,CAAA;QAChC,MAAM,MAAM,GAAG,EAAE,GAAI,KAAK,EAAE,KAAK,EAAE,CAAA;QACnC,OAAO,CAAC,cAAc,CAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAE,CAAA;QAE7C,OAAO,MAAM,CAAA;IAEd,CAAC;IA/Be,kBAAgB,mBA+B/B,CAAA;AAEF,CAAC,EAtCS,CAAC,KAAD,CAAC,QAsCV;;;;;;;;;;ACtCD,IAAU,CAAC,CAeV;AAfD,WAAU,CAAC;IAEV,MAAM,OAAO,GAAG,IAAI,OAAO,EAAS,CAAA;IAEpC,SAAgB,eAAe,CAAE,KAAc;QAE9C,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAG,OAAO,KAAK,CAAA;QAC5C,IAAI,iBAAiB,CAAE,KAAK,CAAE;YAAG,gBAAgB,CAAE,KAAK,CAAE,CAAA;QAC1D,IAAI,OAAO,CAAC,GAAG,CAAE,KAAK,CAAE;YAAG,OAAO,KAAK,CAAA;QAEvC,OAAO,CAAC,GAAG,CAAE,KAAK,CAAG,CAAA;QACrB,OAAO,IAAI,CAAA;IAEZ,CAAC;IATe,iBAAe,kBAS9B,CAAA;AAEF,CAAC,EAfS,CAAC,KAAD,CAAC,QAeV;;;;ACfD,IAAU,CAAC,CAUV;AAVD,WAAU,CAAC;IAEV,SAAgB,QAAQ,CAAY,OAAqB;QACxD,IAAI,CAAC;YACJ,OAAO,OAAO,EAAE,CAAA;QACjB,CAAC;QAAC,OAAO,KAAU,EAAG,CAAC;YACtB,OAAO,CAAC,KAAK,CAAE,KAAK,CAAE,CAAA;YACtB,OAAO,KAAK,CAAA;QACb,CAAC;IACF,CAAC;IAPe,UAAQ,WAOvB,CAAA;AACF,CAAC,EAVS,CAAC,KAAD,CAAC,QAUV;;;;ACVD,IAAU,CAAC,CAaV;AAbD,WAAU,CAAC;IAEV,SAAgB,aAAa,CAAE,KAAc;QAE5C,IAAI,iBAAiB,CAAE,KAAK,CAAE;YAAG,OAAO,KAAK,CAAA;QAC7C,IAAI,CAAC,eAAe,CAAE,KAAK,CAAE;YAAG,OAAO,KAAK,CAAA;QAE5C,QAAQ,CAAE,GAAE,EAAE,GAAG,gBAAgB,CAAE,KAAK,CAAE,CAAA,CAAC,CAAC,CAAE,CAAA;QAE9C,OAAO,IAAI,CAAA;IAEZ,CAAC;IATe,eAAa,gBAS5B,CAAA;AAEF,CAAC,EAbS,CAAC,KAAD,CAAC,QAaV;;;;ACbD,IAAU,CAAC,CAiMV;AAjMD,WAAU,CAAC;IAEV,yBAAyB;IACzB,MAAa,cAIX,SAAQ,eAAqC;QAE9C,MAAM,CAAC,IAAI,CAKV,IAAU,EACV,IAA6C;YAG7C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;YAE9B,MAAM,OAAO,GAAG,MAAM,CAAC,wBAAwB,CAAE,IAAI,IAAI,IAAI,EAAE,KAAK,CAAE,EAAE,KAAK,CAAA;YAC7E,IAAI,OAAO;gBAAG,OAAO,OAAO,CAAA;YAE5B,MAAM,MAAM,GAAI,IAAY,EAAE,CAAE,MAAM,CAAC,WAAW,CAAE,IAAI,CAAE,IAAI,YAAY,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAE,IAAI,CAAE,CAAC,CAAC,CAAC,IAAI,CAAE,CAAA;YACvH,MAAM,GAAG,GAAG,MAAM,GAAG,CAAE,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAE,CAAA;YAE/C,MAAM,KAAK,GAAG,IAAI,cAAc,CAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAiB,CAAE,CACrE;YAAA,CAAE,IAAW,IAAI,IAAI,CAAE,CAAE,KAAK,CAAE,GAAG,KAAK,CAAA;YAEzC,OAAO,KAAK,CAAA;QACb,CAAC;QAED,MAAM,CAAC,IAAI,CAKV,IAAU,EACV,IAA8C,EAC9C,GAAY;YAGZ,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;YAC9B,IAAI,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAE,IAAI,IAAI,IAAI,EAAE,KAAK,CAAE,EAAE,KAAK,CAAA;YACxE,MAAM,MAAM,GAAI,IAAY,EAAE,CAAE,MAAM,CAAC,WAAW,CAAE,IAAI,CAAE,IAAI,YAAY,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAE,IAAI,CAAE,CAAC,CAAC,CAAC,IAAI,CAAE,CAAA;YACvH,MAAM,OAAO,GAAG,QAAQ,CAAE,GAAG,CAAE,CAAA;YAE/B,IAAI,IAAI,EAAG,CAAC;gBACX,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAE,OAAO,CAAE,CAAA;gBACnC,IAAI,OAAO;oBAAG,OAAO,OAAO,CAAA;YAC7B,CAAC;iBAAM,CAAC;gBACP,IAAI,GAAG,CAAE,IAAW,IAAI,IAAI,CAAE,CAAE,KAAK,CAAE,GAAG,IAAI,GAAG,EAAW,CAAA;YAC7D,CAAC;YAED,MAAM,EAAE,GAAG,MAAM,GAAG,CAAE,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,GAAG,CAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAE,QAAQ,EAAE,GAAG,CAAE,GAAG,GAAG,CAAE,CAAA;YAC1F,MAAM,KAAK,GAAG,IAAI,cAAc,CAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAE,GAAG,CAAiB,CAAE,CAAA;YAC1E,IAAI,CAAC,GAAG,CAAE,OAAO,EAAE,KAAK,CAAE,CAAA;YAE1B,OAAO,KAAK,CAAA;QACb,CAAC;QAED,MAAM,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAqC,CAAA;QAC9D,MAAM,CAAC,OAAO,GAAG,IAA+B,CAAA;QAEhD,MAAM,CAAC,KAAK;YAEX,cAAc,CAAC,OAAO,GAAG,IAAI,gBAAgB,CAAE,cAAc,CAAC,KAAK,CAAE,CAAA;YAErE,KAAK,MAAM,IAAI,IAAI,cAAc,CAAC,QAAQ,EAAG,CAAC;gBAE7C,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,KAAK,EAAG,CAAC;oBAC7C,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAE,IAAI,CAAE,CAAA;gBACvC,CAAC;qBAAM,CAAC;oBACP,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAA;oBACpC,IAAI,CAAC,KAAK,EAAE,CAAA;gBACb,CAAC;YAEF,CAAC;QAEF,CAAC;QAED,KAAK;YAEJ,IAAI,CAAC,cAAc,CAAC,OAAO,EAAG,CAAC;gBAC9B,cAAc,CAAC,OAAO,GAAG,IAAI,gBAAgB,CAAE,cAAc,CAAC,KAAK,CAAE,CAAA;YACtE,CAAC;YAED,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;QAEpC,CAAC;QAED;;WAEG;QAEH,MAAM,CAAE,IAAU;YAEjB,8BAA8B;YAC9B,KACC,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,EAC1B,MAAM,GAAG,IAAI,CAAC,QAAQ,EACtB,MAAM,IAAI,CAAC,EACV,CAAC;gBACF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,MAAM,CAAmB,CAAA;gBAChD,IAAI,GAAG,IAAI,GAAG,YAAY,cAAc,EAAG,CAAC;oBAC3C,GAAG,CAAC,UAAU,EAAE,CAAA;gBACjB,CAAC;YACF,CAAC;YAED,OAAO,IAAI,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,IAAK,EAAE,GAAI,IAAI,CAAE,CAAE,CAAA;QAC1D,CAAC;QAGD,IAAI;YACH,OAAO,IAAI,CAAC,IAAI,EAAE,CAAA;QACnB,CAAC;QAED,OAAO;YACN,OAAO,MAAM,CAAC,MAAM,CAAE,CAAE,IAA6B,EAAE,EAAE;gBAExD,IAAI,IAAI,KAAK,SAAS;oBAAG,OAAO,IAAI,CAAC,MAAM,CAAE,CAAE,GAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAS,CAAW,CAAA;gBACtF,IAAI,CAAC,eAAe,CAAC,IAAI;oBAAG,OAAO,IAAI,CAAC,MAAM,EAAW,CAAA;gBAEzD,IAAI,cAAc,EAAE,EAAE,IAAI,EAAG,CAAC;oBAC7B,OAAO,IAAI,CAAC,IAAI,EAAE,CAAA;gBACnB,CAAC;qBAAM,CAAC;oBACP,OAAO,IAAI,CAAC,IAAI,EAAE,CAAA;gBACnB,CAAC;YAEF,CAAC,EAAE,EAAE,IAAI,EAAE,IAA4C,EAAE,CAAE,CAAA;QAC5D,CAAC;QAED,UAAU;YAET,KAAK,CAAC,UAAU,EAAE,CAAA;YAElB,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAG,CAAC;gBAC1B,CAAC;gBAAA,CAAE,IAAI,CAAC,IAAW,IAAI,IAAI,CAAC,IAAI,CAAE,CAAE,IAAI,CAAC,KAAK,EAAE,CAAE,GAAG,IAAI,CAAA;YAC1D,CAAC;iBAAM,CAAC;gBAEP,MAAM,GAAG,GAAG,QAAQ,CAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,CAAA;gBACpC,MAAM,GAAG,GAAG,CAAE,IAAI,CAAC,IAAW,IAAI,IAAI,CAAC,IAAI,CAAE,CAAE,IAAI,CAAC,KAAK,EAAE,CAAE,CAAA;gBAE7D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAE,GAAG,CAAE;oBAAG,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;wBAC3C,KAAK,EAAE,IAAI;wBACX,OAAO,EAAE,2BAA2B;wBACpC,IAAI,EAAE,wCAAwC;qBAC9C,CAAC,CAAA;gBAEF,GAAG,CAAC,MAAM,CAAE,GAAG,CAAE,CAAA;YAClB,CAAC;QAEF,CAAC;QAED,GAAG,CAAE,IAAgD;YAEpD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;YAEvB,MAAM,EAAE,IAAI,IAAI,KAAK,IAAI,EAAG,CAAC;gBAE5B,IAAI,CAAC;oBACJ,IAAI,iBAAiB,CAAE,IAAI,EAAE,IAAI,CAAE;wBAAG,MAAM,MAAM,CAAA;gBACnD,CAAC;gBAAC,OAAO,KAAU,EAAG,CAAC;oBACtB,aAAa,CAAE,KAAK,CAAE,CAAA;gBACvB,CAAC;gBAED,IAAI,iBAAiB,CAAE,IAAI,EAAE,IAAI,CAAE,EAAG,CAAC;oBACtC,IAAI,CAAC,UAAU,EAAE,CAAA;gBAClB,CAAC;gBAED,IAAI,iBAAiB,CAAE,IAAI,EAAE,IAAI,CAAE,EAAG,CAAC;oBACtC,IAAI,CAAC;wBACH,IAAY,CAAE,MAAM,CAAC,WAAW,CAAE,GAAI,IAAY,CAAE,MAAM,CAAC,WAAW,CAAE,CAAA;oBAC1E,CAAC;oBAAC,MAAM,CAAC,CAAC,gCAAgC;wBACzC,MAAM,CAAC,cAAc,CAAE,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,KAAK,EAAG,IAAY,CAAE,MAAM,CAAC,WAAW,CAAE,EAAE,CAAE,CAAA;oBAClG,CAAC;gBACF,CAAC;gBAED,IAAI,CAAC,IAAI,CAAC,SAAS;oBAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YAElC,CAAC;YAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;YACjB,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAA;YAEpC,IAAI,iBAAiB,CAAE,IAAI,CAAE;gBAAG,OAAO,IAAI,CAAA;YAE3C,IAAI,CAAC,aAAa,EAAE,CAAA;YAEpB,OAAO,IAAI,CAAA;QACZ,CAAC;;IA/FD;QADE,gBAAgB;gDAgBjB;IAGD;QADE,gBAAgB;8CAGjB;IAhHW,gBAAc,iBA6L1B,CAAA;AACF,CAAC,EAjMS,CAAC,KAAD,CAAC,QAiMV;;;;ACjMD,IAAU,CAAC,CAoBV;AApBD,WAAU,CAAC;IAEV,qCAAqC;IACrC,SAAgB,eAAe,CAC9B,IAAiB,EAAE,GAAW;QAG9B,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAA;QAEjC,IAAI,CAAC;YACJ,eAAe,CAAC,IAAI,GAAG,KAAK,CAAA;YAC5B,MAAM,GAAG,GAAG,IAAI,EAAE,CAAA;YAClB,IAAI,GAAG,KAAK,SAAS;gBAAG,OAAO,GAAG,CAAA;YAClC,OAAO,GAAG,CAAA;QACX,CAAC;gBAAS,CAAC;YACV,eAAe,CAAC,IAAI,GAAG,IAAI,CAAA;QAC5B,CAAC;IAEF,CAAC;IAfe,iBAAe,kBAe9B,CAAA;AAEF,CAAC,EApBS,CAAC,KAAD,CAAC,QAoBV;;;;ACpBD,IAAU,CAAC,CAiBV;AAjBD,WAAU,CAAC;IAEV;;OAEG;IACH,SAAgB,eAAe;QAC9B,IAAI,OAAO,GAAG,cAAc,EAAsC,CAAA;QAClE,IAAI,OAAQ,CAAC,IAAI;YAAG,OAAO,GAAG,OAAQ,CAAC,IAAI,CAAA;QAC3C,IAAI,OAAQ,CAAC,IAAI,KAAK,OAAO,EAAG,CAAC;YAChC,OAAO,EAAE,MAAM,CAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAE,CAAA;QACxC,CAAC;QACD,OAAQ,CAAC,IAAI,GAAG,OAAO,CAAA;IACxB,CAAC;IAPe,iBAAe,kBAO9B,CAAA;IAED,MAAM,OAAO,GAAG,GAAE,EAAE,GAAE,CAAC,CAAA;IACvB,MAAM,GAAG,GAAG,IAAI,iBAAiB,CAAA;AAElC,CAAC,EAjBS,CAAC,KAAD,CAAC,QAiBV;;;;ACjBD,IAAU,CAAC,CAeV;AAfD,WAAU,CAAC;IAEV;;;OAGG;IACH,SAAgB,eAAe;QAC9B,MAAM,IAAI,GAAG,cAAc,EAAE,CAAA;QAC7B,IAAI,IAAI,YAAY,cAAc,EAAG,CAAC;YACrC,IAAI,CAAC,KAAK,EAAE,CAAA;QACb,CAAC;aAAM,CAAC;YACP,SAAS,CAAE,IAAI,KAAK,CAAE,+BAA+B,CAAE,CAAE,CAAA;QAC1D,CAAC;IACF,CAAC;IAPe,iBAAe,kBAO9B,CAAA;AAEF,CAAC,EAfS,CAAC,KAAD,CAAC,QAeV;;;;ACfD,IAAU,CAAC,CAoGV;AApGD,WAAU,CAAC;IACV,MAAM,SAAS,GAAG,IAAI,OAAO,EAAsB,CAAA;IAEnD,SAAS,OAAO,CACf,GAAkC;QAElC,IAAI,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAuC,CAAA;QAEnE,IAAK,IAAI;YAAG,OAAO,IAAI,CAAA;QAEvB,IAAI,GAAG,mBAAmB,CAAC,CAAC,GAAG,IAAU,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;QACpE,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QAExB,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAgE,CAAA;IAE3F,SAAS,QAAQ,CAChB,IAAY,EACZ,KAAsB;QAEtB,IAAI,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC7B,IAAI,OAAO,GAAG,KAAK,EAAE,CAAC,KAAK,CAAC,CAAA;QAE5B,IAAK,OAAO;YAAG,OAAO,OAAO,CAAA;QAE7B,OAAO,GAAG,CAAC,IAAc,EAAE,EAAE;YAC5B,IAAI,IAAI,KAAK,SAAS;gBAAE,IAAI,CAAC,KAA0B,CAAC,GAAG,IAAW,CAAA;YAEtE,OAAO,IAAI,CAAC,KAA0B,CAAC,CAAA;QACxC,CAAC,CAAA;QAED,MAAM,CAAC,cAAc,CAAE,OAAO,EAAG,MAAM,EAAG,EAAE,KAAK,EAAG,KAAK,EAAE,CAAE,CAAA;QAE7D,IAAI,CAAE,KAAK,EAAE,CAAC;YACb,KAAK,GAAG,EAAE,CAAA;YACV,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QACzB,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAA;QAEtB,OAAO,OAAO,CAAA;IACf,CAAC;IAED;;;OAGG;IACH,SAAgB,cAAc,CAAyB,GAAS;QAC/D,OAAO,IAAI,KAAK,CAAE,GAAG,EAAE;YAEtB,GAAG,CAAE,GAAG,EAAE,KAAK;gBAEd,IAAI,GAAG,GAAI,GAAW,CAAE,KAAK,CAAE,CAAA;gBAC/B,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;gBAE1F,IAAI,OAAO,GAAG,KAAK,UAAU;oBAAE,OAAO,IAAI,CAAE,GAAG,EAAE,EAAE,CAAE,CAAC,IAAI,EAAE,CAAA;gBAE5D,OAAO,SAAS,cAAc,CAAc,GAAI,IAAe;oBAC9D,MAAM,KAAK,GAAG,IAAI,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;oBAC/B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAA;gBACpB,CAAC,CAAA;YACF,CAAC;YAED,GAAG,CAAE,GAAG,EAAE,KAAK,EAAE,IAAI;gBACpB,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;gBACxD,IAAI,CAAE,GAAG,EAAE,CAAE,IAAI,CAAE,CAAE,CAAC,IAAI,EAAE,CAAA;gBAE5B,OAAO,IAAI,CAAA;YACZ,CAAC;YAED,SAAS,CAAC,GAAG,EAAE,IAAI;gBAClB,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,GAA8C,CAAC,CAAC,CAAA;gBAC3F,OAAO,IAAI,CAAE,GAAG,EAAE,IAAI,CAAE,CAAC,IAAI,EAAY,CAAA;YAC1C,CAAC;YAED,KAAK,CAAE,GAAG,EAAE,IAAI,EAAE,IAAI;gBACrB,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,GAAgC,CAAC,CAAA;gBACpE,OAAO,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;YAC/B,CAAC;SAED,CAAoD,CAAA;IACtD,CAAC;IAlCe,gBAAc,iBAkC7B,CAAA;AAkBF,CAAC,EApGS,CAAC,KAAD,CAAC,QAoGV;;;;ACpGD,IAAU,CAAC,CAgDV;AAhDD,WAAU,CAAC;IAEV,+HAA+H;IAC/H,SAAgB,eAAe,CAAyB,GAAS;QAEhE,IAAI,KAAuC,CAAA;QAC3C,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAE,GAAgC,CAAE,CAAA;QAEtE,OAAO,IAAI,KAAK,CAAE,GAAG,EAAE;YAEtB,GAAG,CAAE,GAAG,EAAE,KAAK;gBAEd,MAAM,GAAG,GAAI,GAAW,CAAE,KAAK,CAAE,CAAA;gBACjC,IAAI,OAAO,GAAG,KAAK,UAAU;oBAAG,OAAO,GAAG,CAAA;gBAE1C,IAAI,KAAuC,CAAA;gBAC3C,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAE,GAAG,CAAE,CAAA;gBAEzC,OAAO,SAAS,eAAe,CAAc,GAAI,IAAW;oBAC3D,KAAK,EAAE,UAAU,EAAE,CAAA;oBACnB,KAAK,GAAG,IAAI,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;oBACzB,OAAO,KAAK,CAAC,KAAK,EAAE,CAAA;gBACrB,CAAC,CAAA;YAEF,CAAC;YAED,KAAK,CAAE,GAAG,EAAE,IAAI,EAAE,IAAI;gBACrB,KAAK,EAAE,UAAU,EAAE,CAAA;gBACnB,KAAK,GAAG,IAAI,CAAE,IAAI,EAAE,IAAI,CAAE,CAAA;gBAC1B,OAAO,KAAK,CAAC,KAAK,EAAE,CAAA;YACrB,CAAC;SAED,CAAuD,CAAA;IAEzD,CAAC;IA/Be,iBAAe,kBA+B9B,CAAA;AAcF,CAAC,EAhDS,CAAC,KAAD,CAAC,QAgDV;;;;AChDD,IAAU,CAAC,CA4BV;AA5BD,WAAU,CAAC;IAEV,sDAAsD;IACtD,SAAgB,cAAc,CAE3B,GAAI,KAAY;QAIlB,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,EAAE;YAEjC,IAAI,CAAC;gBACJ,OAAO,IAAI,EAAE,CAAA;YACd,CAAC;YAAC,OAAO,KAAK,EAAG,CAAC;gBACjB,OAAO,KAAK,CAAA;YACb,CAAC;QAEF,CAAC,CAAE,CAAA;QAEH,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAE,GAAG,CAAC,EAAE,CAAC,iBAAiB,CAAE,GAAG,CAAE,CAAE,CAAA;QAClE,IAAI,QAAQ,CAAC,MAAM;YAAG,SAAS,CAAE,OAAO,CAAC,IAAI,CAAE,QAAQ,CAAE,CAAE,CAAA;QAE3D,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAE,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,KAAK,CAAE,CAAA;QACzD,IAAI,KAAK;YAAG,SAAS,CAAE,KAAK,CAAE,CAAA;QAE9B,OAAO,OAAc,CAAA;IACtB,CAAC;IAvBe,gBAAc,iBAuB7B,CAAA;AAEF,CAAC,EA5BS,CAAC,KAAD,CAAC,QA4BV;;;;AC5BD,IAAU,CAAC,CAoDV;AApDD,WAAU,CAAC;IAEV,yEAAyE;IACzE,SAAgB,cAAc,CAC7B,IAAY,EACZ,KAAa,EACb,KAA2D;QAG3D,IAAI,CAAC,KAAK;YAAG,KAAK,GAAG,OAAO,CAAC,wBAAwB,CAAE,IAAI,EAAG,KAAK,CAAE,CAAA;QACrE,MAAM,IAAI,GAAG,KAAK,EAAE,KAAM,IAAK,IAAY,CAAE,KAAK,CAAE,CAAA;QAEpD,MAAM,GAAG,GAAG,OAAO,CAAC,cAAc,CAAE,IAAI,CAAG,CAAA;QAC3C,IAAI,OAAQ,GAAW,CAAE,KAAK,CAAE,KAAK,UAAU,EAAG,CAAC;YAClD,MAAM,CAAC,cAAc,CAAE,IAAI,EAAG,MAAM,EAAG,EAAE,KAAK,EAAI,GAAW,CAAE,KAAK,CAAE,CAAC,IAAI,EAAE,CAAE,CAAA;QAChF,CAAC;QAED,MAAM,MAAM,GAAG;YACd,GAAI,KAAK;YACT,KAAK,EAAE,UAA6B,GAAI,IAAU;gBAEjD,IAAI,IAAI,GAAG,cAAc,CAAC,IAAI,CAAE,IAAI,EAAE,IAAI,CAAE,CAAA;gBAE5C,IAAG,CAAE,IAAI,CAAC,MAAM,KAAK,CAAC,CAAE,IAAE,CAAE,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,CAAE,EAAE,CAAC;oBAErD,IAAI,CAAC,eAAe,CAAC,IAAI;wBAAG,OAAO,IAAI,CAAC,MAAM,EAAE,CAAA;oBAEhD,IAAI,cAAc,EAAE,EAAE,IAAI,EAAG,CAAC;wBAC7B,OAAO,IAAI,CAAC,IAAI,EAAE,CAAA;oBACnB,CAAC;yBAAM,CAAC;wBACP,OAAO,IAAI,CAAC,IAAI,EAAE,CAAA;oBACnB,CAAC;gBAEF,CAAC;gBAED,OAAO,IAAI,CAAC,MAAM,CAAE,IAAI,CAAE,CAAA;YAC3B,CAAC;SACD,CAAA;QAED,OAAO,CAAC,cAAc,CAAE,MAAM,CAAC,KAAK,EAAG,MAAM,EAAG,EAAE,KAAK,EAAG,IAAI,CAAC,IAAI,GAAG,GAAG,EAAE,CAAE,CAAA;QAC7E,OAAO,CAAC,cAAc,CAAE,MAAM,CAAC,KAAK,EAAG,QAAQ,EAAG,EAAE,KAAK,EAAG,IAAI,CAAC,MAAM,EAAE,CAAE,CAAA;QAC3E,MAAM,CAAC,MAAM,CAAE,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAE,CAAA;QAEvC,OAAO,CAAC,cAAc,CAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAE,CAAA;QAE7C,OAAO,MAAsF,CAAA;IAC9F,CAAC;IA3Ce,gBAAc,iBA2C7B,CAAA;AAMF,CAAC,EApDS,CAAC,KAAD,CAAC,QAoDV;;;;ACpDD,IAAU,CAAC,CAgDV;AAhDD,WAAU,CAAC;IAEV,yDAAyD;IACzD,SAAgB,cAAc,CAC7B,IAAY,EACZ,KAAa,EACb,KAA2D;QAG3D,IAAI,CAAC,KAAK;YAAG,KAAK,GAAG,OAAO,CAAC,wBAAwB,CAAE,IAAI,EAAG,KAAK,CAAE,CAAA;QACrE,MAAM,IAAI,GAAG,KAAK,EAAE,KAAM,IAAK,IAAY,CAAE,KAAK,CAAE,CAAA;QAEpD,MAAM,GAAG,GAAG,OAAO,CAAC,cAAc,CAAE,IAAI,CAAG,CAAA;QAC3C,IAAI,OAAQ,GAAW,CAAE,KAAK,CAAE,KAAK,UAAU,EAAG,CAAC;YAClD,MAAM,CAAC,cAAc,CAAE,IAAI,EAAG,MAAM,EAAG,EAAE,KAAK,EAAI,GAAW,CAAE,KAAK,CAAE,CAAC,IAAI,EAAE,CAAE,CAAA;QAChF,CAAC;QAED,MAAM,MAAM,GAAG;YACd,GAAI,KAAK;YACT,KAAK,EAAE,UAA6B,GAAI,IAAU;gBAEjD,IAAI,IAAI,GAAG,cAAc,CAAC,IAAI,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAE,CAAA;gBAErD,IAAG,CAAE,IAAI,CAAC,MAAM,KAAK,CAAC,CAAE,IAAE,CAAE,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,CAAE,EAAE,CAAC;oBAErD,IAAI,CAAC,eAAe,CAAC,IAAI;wBAAG,OAAO,IAAI,CAAC,MAAM,EAAE,CAAA;oBAEhD,IAAI,cAAc,EAAE,EAAE,IAAI,EAAG,CAAC;wBAC7B,OAAO,IAAI,CAAC,IAAI,EAAE,CAAA;oBACnB,CAAC;yBAAM,CAAC;wBACP,OAAO,IAAI,CAAC,IAAI,EAAE,CAAA;oBACnB,CAAC;gBAEF,CAAC;gBAED,OAAO,IAAI,CAAC,MAAM,CAAE,IAAI,CAAE,CAAA;YAC3B,CAAC;SACD,CAAA;QAED,OAAO,CAAC,cAAc,CAAE,MAAM,CAAC,KAAK,EAAG,MAAM,EAAG,EAAE,KAAK,EAAG,IAAI,CAAC,IAAI,GAAG,GAAG,EAAE,CAAE,CAAA;QAC7E,OAAO,CAAC,cAAc,CAAE,MAAM,CAAC,KAAK,EAAG,QAAQ,EAAG,EAAE,KAAK,EAAG,IAAI,CAAC,MAAM,EAAE,CAAE,CAAA;QAC3E,MAAM,CAAC,MAAM,CAAE,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAE,CAAA;QAEvC,OAAO,CAAC,cAAc,CAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAE,CAAA;QAE7C,OAAO,MAAM,CAAA;IACd,CAAC;IA3Ce,gBAAc,iBA2C7B,CAAA;AAEF,CAAC,EAhDS,CAAC,KAAD,CAAC,QAgDV;;;;AChDD,IAAU,CAAC,CAaV;AAbD,WAAU,CAAC;IACV;;;;OAIG;IACH,SAAgB,UAAU,CAAW,KAAa;QACjD,MAAM,MAAM,GAAG,AAAD,CAAmC,GAAG,EAAE,CAAC,KAAK,CAAE,CAAA;QAC9D,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CACnB;QAAC,MAAc,CAAE,MAAM,CAAC,WAAW,CAAE,GAAG,KAAK,CAC7C;QAAC,MAAe,CAAE,oBAAoB,CAAE,GAAG,GAAE,EAAE,CAAC,oBAAoB,CAAE,EAAE,EAAG,OAAO,EAAE,oBAAoB,CAAE,KAAK,CAAE,CAAE,CAAA;QACpH,OAAO,MAAM,CAAA;IACd,CAAC;IANe,YAAU,aAMzB,CAAA;AACF,CAAC,EAbS,CAAC,KAAD,CAAC,QAaV;;;;ACbD,IAAU,CAAC,CA+CV;AA/CD,WAAU,CAAC;IAEV,4DAA4D;IAC5D,SAAgB,eAAe,CAK9B,IAAW,EACX,KAAa,EACb,KAAyC;QAGzC,IAAI,CAAC,KAAK;YAAG,KAAK,GAAG,OAAO,CAAC,wBAAwB,CAAE,IAAI,EAAG,KAAK,CAAS,CAAA;QAE5E,MAAM,IAAI,GAAG,KAAK,EAAE,GAAG,IAAI,UAAU,CAAE,KAAK,EAAE,KAAK,CAAE,CAAA;QACrD,MAAM,IAAI,GAAG,KAAK,EAAE,GAAG,IAAI,UAAwB,IAAI;YACtD,cAAc,CAAC,IAAI,CAAE,IAAI,EAAE,IAAI,CAAE,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;QAC9C,CAAC,CAAA;QAED,MAAM,GAAG,GAAG,OAAO,CAAC,cAAc,CAAE,IAAI,CAAG,CAAA;QAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,wBAAwB,CAAE,GAAG,EAAE,KAAK,CAAE,CAAA;QAEhE,MAAM,CAAC,cAAc,CAAE,IAAI,EAAG,MAAM,EAAG,EAAE,KAAK,EAAG,SAAS,EAAE,GAAG,EAAE,IAAI,IAAI,KAAK,EAAE,CAAE,CAAA;QAClF,MAAM,CAAC,cAAc,CAAE,IAAI,EAAG,MAAM,EAAG,EAAE,KAAK,EAAG,SAAS,EAAE,GAAG,EAAE,IAAI,IAAI,KAAK,EAAE,CAAE,CAAA;QAElF,SAAS,GAAG;YACX,OAAO,cAAc,CAAC,IAAI,CAAE,IAAI,EAAE,IAAI,CAAE,CAAC,IAAI,EAAE,CAAA;QAChD,CAAC;QAED,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAE,IAAI,CAAE,CAAA;QAC1C,SAAS,GAAG,CAAc,IAAW;YACpC,IAAI,CAAE,IAAI,EAAE,CAAE,IAAI,CAAE,CAAE,CAAC,IAAI,EAAE,CAAA;QAC9B,CAAC;QAED,MAAM,CAAC,cAAc,CAAE,GAAG,EAAG,MAAM,EAAG,EAAE,KAAK,EAAG,IAAI,CAAC,IAAI,GAAG,GAAG,EAAE,CAAE,CAAA;QACnE,MAAM,CAAC,cAAc,CAAE,GAAG,EAAG,MAAM,EAAG,EAAE,KAAK,EAAG,IAAI,CAAC,IAAI,GAAG,GAAG,EAAE,CAAE,CAAA;QAEnE,MAAM,CAAC,MAAM,CAAE,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAE,CAAA;QACpC,MAAM,CAAC,MAAM,CAAE,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAE,CAAA;QAEpC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAI,MAAM,EAAE,GAAG,EAAE,GAAI,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;QAC/D,OAAO,CAAC,cAAc,CAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAE,CAAA;QAE7C,OAAO,MAAM,CAAA;IACd,CAAC;IA1Ce,iBAAe,kBA0C9B,CAAA;AAEF,CAAC,EA/CS,CAAC,KAAD,CAAC,QA+CV;;;;AC/CD,IAAU,CAAC,CAmBV;AAnBD,WAAU,GAAC;IAEV,IAAiB,EAAE,CAAU;IAA7B,WAAiB,EAAE;QAAG,IAAI,CAAC,CAAA;IAAC,CAAC,EAAZ,EAAE,GAAF,MAAE,KAAF,MAAE,QAAU;IAEhB,qBAAiB,GAAG,MAAM,CAAE,mBAAmB,CAAE,CAAA;IAE9D,MAAa,WAAY,SAAQ,YAAY;QAErC,MAAM,CAAC,IAAI,CAEjB,MAAuC;YAEvC,OAAO,KAAK,CAAC,MAAM,CAAE,GAAG,CAAC,EAAE;gBAC1B,KAAK,IAAI,GAAG,IAAI,MAAM;oBAAK,GAAY,CAAE,GAAG,CAAE,GAAG,MAAM,CAAE,GAAG,CAAG,CAAA;YAChE,CAAC,CAA0B,CAAA;QAC5B,CAAC;KAED;IAXY,eAAW,cAWvB,CAAA;AAEF,CAAC,EAnBS,CAAC,KAAD,CAAC,QAmBV;;;;ACnBD,IAAU,CAAC,CAuBV;AAvBD,WAAU,CAAC;IAEV;;;;;;;;OAQG;IACQ,UAAQ,GAAG,cAAc,CAAA;IAEpC;;;;;;;;OAQG;IACQ,cAAY,GAAG,cAAc,CAAA;AACzC,CAAC,EAvBS,CAAC,KAAD,CAAC,QAuBV;;;;ACvBD,IAAU,CAAC,CAwBV;AAxBD,WAAU,CAAC;IAEV,2BAA2B;IAC3B,MAAa,eAAgB,SAAQ,WAAW;QAGxC,AAAP,MAAM,CAAC,IAAI,CAAE,SAAiB,EAAE,KAAY;YAE3C,IAAI,SAAS,EAAG,CAAC;gBAChB,OAAO,IAAI,kBAAkB,CAAE,SAAS,EAAE,GAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAE,SAAS,EAAE,IAAI,CAAE,CAAE,CAAA;YAC9E,CAAC;iBAAM,CAAC;gBACP,OAAO,IAAI,gBAAgB,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAE,SAAS,EAAE,IAAI,CAAE,CAAE,CAAA;YACjE,CAAC;QAEF,CAAC;QAGM,AAAP,MAAM,CAAC,GAAG,CAAE,SAAiB;YAC5B,IAAI,CAAC,IAAI,CAAE,SAAS,CAAE,CAAA;YACtB,OAAO,IAAI,CAAC,GAAG,EAAE,CAAA;QAClB,CAAC;KAED;IAhBO;QADL,YAAY;qCASb;IAGM;QADL,YAAY;oCAIb;IAjBW,iBAAe,kBAmB3B,CAAA;AAEF,CAAC,EAxBS,CAAC,KAAD,CAAC,QAwBV;;;;ACxBD,IAAU,CAAC,CAqBV;AArBD,WAAU,CAAC;IAEV,4BAA4B;IAC5B,SAAgB,gBAAgB,CAAE,IAAS;QAE1C,MAAM,IAAI,GAAG,cAAc,EAAE,CAAA;QAC7B,IAAG,CAAC,CAAE,IAAI,YAAY,cAAc,CAAE;YAAE,SAAS,CAAE,IAAI,KAAK,CAAE,0BAA0B,CAAE,CAAE,CAAA;QAE5F,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAA;QAClC,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAG,OAAO,IAAI,CAAA;QAE1C,MAAM,OAAO,GAAG,CAAE,IAAI,GAAG,CAAC,GAAG,IAAI,CAAG,GAAG,CAAC,CAAA;QAExC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAE,OAAO,GAAG,IAAI,CAAE,CAAA;QACvC,IAAI,IAAI,GAAG,CAAC;YAAG,OAAO,IAAI,CAAA;QAE1B,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAEtB,OAAO,OAAO,CAAA;IACf,CAAC;IAhBe,kBAAgB,mBAgB/B,CAAA;AAEF,CAAC,EArBS,CAAC,KAAD,CAAC,QAqBV;;;;ACrBD,IAAU,CAAC,CAkCV;AAlCD,WAAU,CAAC;IACV,SAAgB,eAAe,CAAE,GAAW;QAE3C,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,CAAE,GAAG,CAAE,EAAG,CAAC;YAE7C,MAAM,KAAK,GAAG,OAAO,CAAC,wBAAwB,CAAE,GAAG,EAAE,KAAK,CAAG,CAAA;YAC7D,IAAI,CAAC,KAAK,CAAC,YAAY;gBAAG,SAAQ;YAClC,IAAI,CAAC,KAAK,CAAC,GAAG;gBAAG,SAAQ;YAEzB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,CAAE,GAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAE,CAAA;YAC7C,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,CAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAE,CAAA;YAEvD,OAAO,CAAC,cAAc,CAAE,GAAG,EAAE,KAAK,EAAE;gBAEnC,YAAY,EAAE,IAAI;gBAClB,UAAU,EAAE,KAAK,CAAC,UAAU;gBAE5B,GAAG;oBACF,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAE,GAAG,EAAE,GAAG,CAAE,CAAA;oBAC5C,IAAI,CAAC,KAAK,EAAE,CAAA;oBACZ,OAAO,IAAI,CAAC,IAAI,EAAE,CAAA;gBACnB,CAAC;gBAED,GAAG,CAAE,IAAI;oBACR,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAE,GAAG,EAAE,GAAG,CAAE,CAAA;oBAC5C,GAAG,CAAC,IAAI,CAAE,IAAI,EAAE,IAAI,CAAE,CAAA;oBACtB,IAAI,CAAC,OAAO,EAAE,CAAA;gBACf,CAAC;aAED,CAAE,CAAA;QAEJ,CAAC;IAEF,CAAC;IAhCe,iBAAe,kBAgC9B,CAAA;AACF,CAAC,EAlCS,CAAC,KAAD,CAAC,QAkCV;;;;;;;AClCD,IAAU,CAAC,CAeV;AAfD,WAAU,CAAC;IACV,SAAgB,aAAa,CAAqB,IAAU;QAC3D,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAE,IAAI,CAAE,EAAG,CAAC;YACzC,IAAY,CAAE,KAAK,CAAE,GAAG,IAAI,cAAc,CAAE,KAAK,EAAG,IAAY,CAAE,KAAK,CAAE,EAAE,IAAI,CAAE,CAAC,OAAO,EAAE,CAAA;QAC7F,CAAC;QACD,OAAO,IAQN,CAAA;IACF,CAAC;IAbe,eAAa,gBAa5B,CAAA;AACF,CAAC,EAfS,CAAC,KAAD,CAAC,QAeV;;;;ACfD,IAAU,CAAC,CAiFV;AAjFD,WAAU,CAAC;IACV,mBAAmB;IACnB,MAAa,aAAuB,SAAQ,GAAY;QAEvD,GAAG,GAAG,IAAI,aAAa,CAAA;QAEvB,YAAY;QAEZ,GAAG,CAAE,KAAY;YAChB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;YAClB,OAAO,KAAK,CAAC,GAAG,CAAE,KAAK,CAAE,CAAA;QAC1B,CAAC;QAED,OAAO;YACN,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;YAClB,OAAO,KAAK,CAAC,OAAO,EAAE,CAAA;QACvB,CAAC;QAED,IAAI;YACH,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;YAClB,OAAO,KAAK,CAAC,IAAI,EAAE,CAAA;QACpB,CAAC;QAED,MAAM;YACL,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;YAClB,OAAO,KAAK,CAAC,MAAM,EAAE,CAAA;QACtB,CAAC;QAED,OAAO,CACN,IAAgE,EAChE,IAAU;YAEV,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;YAClB,KAAK,CAAC,OAAO,CAAE,IAAI,EAAE,IAAI,CAAE,CAAA;QAC5B,CAAC;QAED,CAAC,MAAM,CAAC,QAAQ,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;YAClB,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAA;QAChC,CAAC;QAED,IAAI,IAAI;YACP,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;YAClB,OAAO,KAAK,CAAC,IAAI,CAAA;QAClB,CAAC;QAED,WAAW;QAEX,GAAG,CAAE,KAAY;YAChB,IAAI,KAAK,CAAC,GAAG,CAAE,KAAK,CAAE;gBAAG,OAAO,IAAI,CAAA;YACpC,KAAK,CAAC,GAAG,CAAE,KAAK,CAAE,CAAA;YAClB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;YACf,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,MAAM,CAAE,KAAY;YACnB,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAE,KAAK,CAAE,CAAA;YACjC,IAAI,GAAG;gBAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;YACzB,OAAO,GAAG,CAAA;QACX,CAAC;QAED,KAAK;YACJ,IAAI,CAAC,KAAK,CAAC,IAAI;gBAAG,OAAM;YACxB,KAAK,CAAC,KAAK,EAAE,CAAA;YACb,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QAChB,CAAC;QAED,aAAa;QAEb,IAAI,CAAE,GAAU,EAAE,IAAc;YAE/B,IAAI,IAAI,KAAK,SAAS;gBAAG,OAAO,IAAI,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;YAE/C,IAAI,IAAI;gBAAG,IAAI,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;;gBACrB,IAAI,CAAC,MAAM,CAAE,GAAG,CAAE,CAAA;YAEvB,OAAO,IAAI,CAAA;QACZ,CAAC;KAED;IA7EY,eAAa,gBA6EzB,CAAA;AAEF,CAAC,EAjFS,CAAC,KAAD,CAAC,QAiFV;;;;ACjFD,IAAU,CAAC,CA6FV;AA7FD,WAAU,CAAC;IAEV,MAAM,IAAI,GAAG,IAAI,OAAO,EAA2B,CAAA;IAEnD,SAAgB,mBAAmB,CAAE,EAAU,EAAE,MAAc;QAC9D,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAE,MAAM,CAAE,CAAA;QAC5B,IAAI,CAAC,GAAG;YAAG,IAAI,CAAC,GAAG,CAAE,MAAM,EAAE,GAAG,GAAG,IAAI,aAAa,CAAE,EAAE,CAAE,CAAE,CAAA;QAC5D,OAAO,GAAG,CAAA;IACX,CAAC;IAJe,qBAAmB,sBAIlC,CAAA;IAED,SAAgB,eAAe,CAAY,EAAU,EAAE,MAAc;QAEpE,IAAI,CAAC,MAAM;YAAG,OAAO,MAAM,CAAA;QAE3B,MAAM,IAAI,GAAG,OAAO,MAAM,CAAA;QAC1B,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,UAAU;YAAG,OAAO,MAAM,CAAA;QAE5D,OAAO,IAAI,KAAK,CAAE,MAAM,EAAE;YAEzB,UAAU;YAEV,GAAG,CAAE,MAAM,EAAE,QAAQ;gBACpB,mBAAmB,CAAE,EAAE,EAAE,MAAM,CAAE,CAAC,OAAO,EAAE,CAAA;gBAC3C,MAAM,MAAM,GAAG,GAAG,GAAG,CAAE,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAE,CAAA;gBACvF,OAAO,eAAe,CAAE,EAAE,GAAG,MAAM,EAAG,OAAO,CAAC,GAAG,CAAE,MAAM,EAAE,QAAQ,CAAE,CAAE,CAAA;YACxE,CAAC;YAED,wBAAwB,CAAE,MAAM,EAAE,QAAQ;gBACzC,mBAAmB,CAAE,EAAE,EAAE,MAAM,CAAE,CAAC,OAAO,EAAE,CAAA;gBAC3C,OAAO,OAAO,CAAC,wBAAwB,CAAE,MAAM,EAAE,QAAQ,CAAE,CAAA;YAC5D,CAAC;YAED,OAAO,CAAE,MAAM;gBACd,mBAAmB,CAAE,EAAE,EAAE,MAAM,CAAE,CAAC,OAAO,EAAE,CAAA;gBAC3C,OAAO,OAAO,CAAC,OAAO,CAAE,MAAM,CAAE,CAAA;YACjC,CAAC;YAED,GAAG,CAAE,MAAM,EAAE,QAAQ;gBACpB,mBAAmB,CAAE,EAAE,EAAE,MAAM,CAAE,CAAC,OAAO,EAAE,CAAA;gBAC3C,OAAO,OAAO,CAAC,GAAG,CAAE,MAAM,EAAE,QAAQ,CAAE,CAAA;YACvC,CAAC;YAED,cAAc,CAAE,MAAM;gBACrB,mBAAmB,CAAE,EAAE,EAAE,MAAM,CAAE,CAAC,OAAO,EAAE,CAAA;gBAC3C,OAAO,eAAe,CAAE,EAAE,EAAE,OAAO,CAAC,cAAc,CAAE,MAAM,CAAE,CAAE,CAAA;YAC/D,CAAC;YAED,YAAY,CAAE,MAAM;gBACnB,mBAAmB,CAAE,EAAE,EAAE,MAAM,CAAE,CAAC,OAAO,EAAE,CAAA;gBAC3C,OAAO,OAAO,CAAC,YAAY,CAAE,MAAM,CAAE,CAAA;YACtC,CAAC;YAED,UAAU;YAEV,GAAG,CAAE,MAAM,EAAE,QAAQ,EAAE,IAAI;gBAE1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAE,MAAM,CAAE,CAAA;gBAC9B,IAAI,GAAG,EAAG,CAAC;oBAEV,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAE,MAAM,EAAE,QAAQ,CAAE,CAAA;oBAC5C,IAAI,iBAAiB,CAAE,IAAI,EAAE,IAAI,CAAE;wBAAG,OAAO,IAAI,CAAA;oBAEjD,GAAG,CAAC,IAAI,EAAE,CAAA;gBACX,CAAC;gBAED,OAAO,OAAO,CAAC,GAAG,CAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAE,CAAA;YAE7C,CAAC;YAED,cAAc,CAAE,MAAM,EAAE,QAAQ,EAAE,UAAU;gBAC3C,IAAI,CAAC,GAAG,CAAE,MAAM,CAAE,EAAE,IAAI,EAAE,CAAA;gBAC1B,OAAO,OAAO,CAAC,cAAc,CAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAE,CAAA;YAC9D,CAAC;YAED,cAAc,CAAE,MAAM,EAAE,QAAQ;gBAC/B,IAAI,CAAC,GAAG,CAAE,MAAM,CAAE,EAAE,IAAI,EAAE,CAAA;gBAC1B,OAAO,OAAO,CAAC,cAAc,CAAE,MAAM,EAAE,QAAQ,CAAE,CAAA;YAClD,CAAC;YAED,cAAc,CAAE,MAAM,EAAE,KAAK;gBAC5B,IAAI,CAAC,GAAG,CAAE,MAAM,CAAE,EAAE,IAAI,EAAE,CAAA;gBAC1B,OAAO,OAAO,CAAC,cAAc,CAAE,MAAM,EAAE,KAAK,CAAE,CAAA;YAC/C,CAAC;YAED,iBAAiB,CAAE,MAAM;gBACxB,IAAI,CAAC,GAAG,CAAE,MAAM,CAAE,EAAE,IAAI,EAAE,CAAA;gBAC1B,OAAO,OAAO,CAAC,iBAAiB,CAAE,MAAM,CAAE,CAAA;YAC3C,CAAC;SAED,CAAE,CAAA;IAEJ,CAAC;IAjFe,iBAAe,kBAiF9B,CAAA;AAEF,CAAC,EA7FS,CAAC,KAAD,CAAC,QA6FV;;;;AC7FD,IAAU,CAAC,CAsFV;AAtFD,WAAU,CAAC;IACV,0BAA0B;IAC1B,MAAa,cAA6B,SAAQ,GAAiB;QAElE,GAAG,GAAG,IAAI,aAAa,CAAA;QAEvB,YAAY;QAEZ,GAAG,CAAE,GAAQ;YACZ,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;YAClB,OAAO,KAAK,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;QACxB,CAAC;QAED,GAAG,CAAE,GAAQ;YACZ,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;YAClB,OAAO,KAAK,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;QACxB,CAAC;QAED,OAAO;YACN,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;YAClB,OAAO,KAAK,CAAC,OAAO,EAAE,CAAA;QACvB,CAAC;QAED,IAAI;YACH,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;YAClB,OAAO,KAAK,CAAC,IAAI,EAAE,CAAA;QACpB,CAAC;QAED,MAAM;YACL,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;YAClB,OAAO,KAAK,CAAC,MAAM,EAAE,CAAA;QACtB,CAAC;QAED,OAAO,CACN,IAAiE,EACjE,IAAU;YAEV,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;YAClB,KAAK,CAAC,OAAO,CAAE,IAAI,EAAE,IAAI,CAAE,CAAA;QAC5B,CAAC;QAED,CAAC,MAAM,CAAC,QAAQ,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;YAClB,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAA;QAChC,CAAC;QAED,IAAI,IAAI;YACP,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;YAClB,OAAO,KAAK,CAAC,IAAI,CAAA;QAClB,CAAC;QAED,WAAW;QAEX,GAAG,CAAE,GAAQ,EAAE,KAAY;YAC1B,IAAI,KAAK,CAAC,GAAG,CAAE,GAAG,CAAE,KAAK,KAAK;gBAAG,OAAO,IAAI,CAAA;YAC5C,KAAK,CAAC,GAAG,CAAE,GAAG,EAAE,KAAK,CAAE,CAAA;YACvB,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,CAAA,CAAC,2BAA2B;YAC5C,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,MAAM,CAAE,GAAQ;YACf,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAE,GAAG,CAAE,CAAA;YAC/B,IAAI,GAAG;gBAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;YACzB,OAAO,GAAG,CAAA;QACX,CAAC;QAED,KAAK;YACJ,IAAI,CAAC,KAAK,CAAC,IAAI;gBAAG,OAAM;YACxB,KAAK,CAAC,KAAK,EAAE,CAAA;YACb,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QAChB,CAAC;QAED,aAAa;QAEb,IAAI,CAAE,GAAQ,EAAE,IAAmB;YAElC,IAAI,IAAI,KAAK,SAAS;gBAAG,OAAO,IAAI,CAAC,GAAG,CAAE,GAAG,CAAE,IAAI,IAAI,CAAA;YAEvD,IAAI,IAAI,KAAK,IAAI;gBAAG,IAAI,CAAC,MAAM,CAAE,GAAG,CAAE,CAAA;;gBACjC,IAAI,CAAC,GAAG,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;YAE1B,OAAO,IAAI,CAAA;QACZ,CAAC;KAED;IAlFY,gBAAc,iBAkF1B,CAAA;AAEF,CAAC,EAtFS,CAAC,KAAD,CAAC,QAsFV;;;;ACtFD,IAAU,CAAC,CA0BV;AA1BD,WAAU,CAAC;IACV,MAAa,YAA4B,SAAQ,OAAe;QAC/D,IAAI,CAA+C;QACnD,IAAI,CAAwB;QAE5B,YACC,QAGS;YAET,IAAI,IAAmD,CAAA;YACvD,IAAI,IAA4B,CAAA;YAEhC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACd,IAAI,GAAG,CAAC,CAAA;gBACR,IAAI,GAAG,CAAC,CAAA;gBACR,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YACjB,CAAC,CAAC,CAAA;YAEF,IAAI,CAAC,IAAI,GAAG,IAAK,CAAA;YACjB,IAAI,CAAC,IAAI,GAAG,IAAK,CAAA;QAClB,CAAC;KAED;IAvBY,cAAY,eAuBxB,CAAA;AAEF,CAAC,EA1BS,CAAC,KAAD,CAAC,QA0BV;;;;AC1BD,IAAU,CAAC,CAcV;AAdD,WAAU,CAAC;IAEV,SAAgB,uBAAuB,CAAW,OAAe;QAChE,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAA;QAClC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,kBAAkB,CAAE,OAAO,EAAG,GAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAE,CAAA;QACzE,OAAO,MAAM,CAAC,MAAM,CAAE,OAAO,EAAE;YAC9B,UAAU,EAAE,GAAE,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE;SAClC,CAAE,CAAA;IACJ,CAAC;IANe,yBAAuB,0BAMtC,CAAA;IAED,SAAgB,iBAAiB,CAAW,OAAe;QAC1D,OAAO,IAAI,CAAC,cAAc,CAAE,IAAI,CAAE,CAAC,uBAAuB,CAAE,OAAO,CAAE,CAAA;IACtE,CAAC;IAFe,mBAAiB,oBAEhC,CAAA;AAEF,CAAC,EAdS,CAAC,KAAD,CAAC,QAcV;;;;ACdD,IAAU,CAAC,CAqEV;AArED,WAAU,CAAC;IAEV,gHAAgH;IAChH,MAAa,aAAc,SAAQ,YAAY;QAGvC,AAAP,MAAM,CAAC,KAAK,CAAE,IAAe;YAC5B,OAAO,IAAI,CAAA;QACZ,CAAC;QAGM,AAAP,MAAM,CAAC,KAAK,CAAE,KAAuC;YAEpD,MAAM,IAAI,GAAG,eAAe,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAE,KAAK,CAAE,CAAE,CAAA;YACxD,IAAI,IAAS,CAAA;YAEb,IAAI,CAAC;gBACJ,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;YACpB,CAAC;oBAAS,CAAC;gBAEV,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAG,CAAC;oBACnC,IAAI,GAAG,YAAY,eAAe,EAAG,CAAC;wBACrC,IAAI,CAAC,KAAK,CAAE,GAAG,CAAE,CAAA;oBAClB,CAAC;gBACF,CAAC;YAEF,CAAC;YAED,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI;gBAAG,OAAO,IAAI,CAAA;YAErC,IAAI,iBAAiB,CAAE,IAAI,EAAE,IAAI,CAAE,EAAG,CAAC;gBAEtC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;oBACrB,OAAO,EAAE,SAAS;oBAClB,KAAK,EAAE,KAAK;iBACZ,CAAC,CAAA;YAEH,CAAC;iBAAM,IAAI,IAAI,KAAK,SAAS,EAAG,CAAC;gBAEhC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;oBACrB,OAAO,EAAE,SAAS;oBAClB,KAAK,EAAE,KAAK;oBACZ,IAAI;iBACJ,CAAC,CAAA;YAEH,CAAC;YAED,OAAO,IAAI,CAAA;QACZ,CAAC;QAGM,AAAP,MAAM,CAAC,MAAM;YAEZ,IAAI,CAAC;gBACJ,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,CAAA;YACjB,CAAC;YAAC,OAAO,KAAK,EAAG,CAAC;gBACjB,aAAa,CAAE,KAAK,CAAE,CAAA;YACvB,CAAC;oBAAS,CAAC;gBACV,KAAK,MAAM,GAAG,IAAM,cAAc,EAAwC,CAAC,QAAQ,EAAG,CAAC;oBACtF,IAAI,GAAG,YAAY,eAAe,EAAG,CAAC;wBACrC,IAAI,CAAC,KAAK,CAAE,GAAG,CAAE,CAAA;oBAClB,CAAC;gBACF,CAAC;YACF,CAAC;QAEF,CAAC;KAED;IA7DO;QADL,QAAQ;oCAGT;IAGM;QADL,YAAY;oCAsCb;IAGM;QADL,QAAQ;qCAeT;IA9DW,eAAa,gBAgEzB,CAAA;AAEF,CAAC,EArES,CAAC,KAAD,CAAC,QAqEV;;;;ACrED,IAAU,CAAC,CA2GV;AA3GD,WAAU,GAAC;IAEV,SAAgB,SAAS,CAAE,GAAiE;QAE3F,KAAK,IAAI,IAAI,IAAI,GAAG,EAAG,CAAC;YAEvB,MAAM,IAAI,GAAG,GAAG,CAAE,IAAI,CAAE,CAAA;YACxB,MAAM,IAAI,GAAG,CAAE,OAAO,IAAI,KAAK,QAAQ,CAAE,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAE,EAAE,EAAG,IAAI,CAAe,CAAC,CAAC,CAAC,IAAI,CAAA;YAEzF,IAAA,aAAa,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;QAC3B,CAAC;QAED,kBAAkB,EAAE,CAAA;IACrB,CAAC;IAXe,aAAS,YAWxB,CAAA;IAEU,mBAAe,GAAG,EAAqC,CAAA;IAErD,iBAAa,GAAG,EAAoC,CAAA;IAE1D,KAAK,UAAU,aAAa;QAElC,KAAK,IAAI,IAAI,IAAI,IAAA,aAAa,EAAG,CAAC;YAEjC,IAAI,OAAO,GAAG,MAAM,CAAC,MAAM,CAAE,EAAE,CAAE,CAAA;YACjC,KAAK,IAAI,IAAI,IAAI,IAAA,eAAe;gBAAG,MAAM,IAAI,CAAE,OAAO,CAAE,CAAA;YAExD,MAAM,GAAG,GAAG,IAAI,CAAE,OAAO,CAAE,CAAA;YAC3B,IAAI,iBAAiB,CAAE,GAAG,CAAE,EAAG,CAAC;gBAC/B,MAAM,IAAI,OAAO,CAAE,CAAE,IAAI,EAAE,IAAI,EAAE,EAAE;oBAClC,GAAG,CAAC,IAAI,CAAE,IAAI,EAAE,IAAI,CAAE,CAAA;oBACtB,UAAU,CAAE,GAAE,EAAE,CAAC,IAAI,CAAE,IAAI,KAAK,CAAE,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAE,CAAE,EAAE,IAAI,CAAE,CAAA;gBAC3E,CAAC,CAAE,CAAA;YACJ,CAAC;QAEF,CAAC;QAED,EAAE,CAAC,cAAc,CAAC;YACjB,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE,kBAAkB;YAC3B,KAAK,EAAE,IAAA,aAAa,CAAC,MAAM;SAC3B,CAAC,CAAA;IAEH,CAAC;IAvBqB,iBAAa,gBAuBlC,CAAA;IAED,IAAI,SAAS,GAAG,KAAK,CAAA;IACrB,SAAgB,kBAAkB;QAEjC,IAAI,SAAS;YAAG,OAAM;QACtB,SAAS,GAAG,IAAI,CAAA;QAEhB,UAAU,CAAE,KAAK,IAAG,EAAE;YAErB,SAAS,GAAG,KAAK,CAAA;YAEjB,MAAM,aAAa,EAAE,CAAA;YACrB,EAAE,CAAC,kBAAkB,EAAE,CAAA;QAExB,CAAC,EAAG,IAAI,CAAE,CAAA;IAEX,CAAC;IAde,sBAAkB,qBAcjC,CAAA;IAED,IAAA,eAAe,CAAC,IAAI,CAAE,OAAO,CAAC,EAAE;QAC/B,IAAI,IAAI,GAAG,CAAC,CAAA;QAEZ,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAE,IAAI,CAAE,CAAA;QACpC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,GAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAE,IAAI,EAAE,CAAE,CAAA;QAE7C,MAAM,SAAS,GAAG,CAAE,gBAAgB,EAAG,OAAO,CAAW,CAAA;QAEzD,KAAK,IAAI,GAAG,IAAI,SAAS,EAAG,CAAC;YAC5B,OAAO,CAAE,GAAG,CAAE,GAAG,IAAI,KAAK,CAAE,cAAW,CAAQ,EAAG;gBACjD,GAAG;oBACF,gBAAgB,CAAE,IAAI,KAAK,CAAE,GAAI,GAAI,wBAAwB,CAAE,CAAE,CAAA;gBAClE,CAAC;gBACD,KAAK;oBACJ,gBAAgB,CAAE,IAAI,KAAK,CAAE,GAAI,GAAI,wBAAwB,CAAE,CAAE,CAAA;gBAClE,CAAC;aACD,CAAE,CAAA;QACJ,CAAC;IAEF,CAAC,CAAE,CAAA;IAEH,SAAS,CAAC;QAET,oBAAoB,CAAE,CAAC;YACtB,OAAO,CAAC,MAAM,CAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAE,CAAA;YACvC,OAAO,CAAC,MAAM,CAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAA;QAClD,CAAC;QAED,0BAA0B,CAAE,CAAC;YAC5B,IAAI,CAAC;gBACJ,OAAO,CAAC,MAAM,CAAE,KAAK,IAAI,CAAC,CAAC,cAAc,CAAE,CAAA;YAC5C,CAAC;YAAC,OAAO,KAAU,EAAG,CAAC;gBACtB,OAAO,CAAC,MAAM,CAAE,KAAK,CAAC,OAAO,KAAK,sCAAsC,CAAE,CAAA;YAC3E,CAAC;QACF,CAAC;QAED,iBAAiB,CAAE,CAAC;YACnB,IAAI,CAAC;gBACJ,OAAO,CAAC,MAAM,CAAE,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAE,CAAA;YACnC,CAAC;YAAC,OAAO,KAAU,EAAG,CAAC;gBACtB,OAAO,CAAC,MAAM,CAAE,KAAK,CAAC,OAAO,KAAK,6BAA6B,CAAE,CAAA;YAClE,CAAC;QACF,CAAC;KAED,CAAC,CAAA;AAEH,CAAC,EA3GS,CAAC,KAAD,CAAC,QA2GV;;;;AC3GD,IAAU,CAAC,CAMV;AAND,WAAU,CAAC;IAEV,SAAgB,kBAAkB;QACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAChB,CAAC;IAFe,oBAAkB,qBAEjC,CAAA;AAEF,CAAC,EANS,CAAC,KAAD,CAAC,QAMV;;;;ACND,IAAU,CAAC,CAIV;AAJD,WAAU,CAAC;AAIX,CAAC,EAJS,CAAC,KAAD,CAAC,QAIV;;;;;;;ACJD,IAAU,CAAC,CAUV;AAVD,WAAU,CAAC;IAEV,MAAM,GAAG,GAAG,OAAO,CAAA,MAAM,CAAE,QAAQ,CAAqC,CAAA;IACxE,MAAM,SAAS,GAAG,GAAG,CAAC,cAAc,CAAA;IAEpC,SAAgB,oBAAoB,CAAC,IAAY;QAChD,IAAK,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAAG,OAAO,IAAI,CAAA;QAC3C,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAHe,sBAAoB,uBAGnC,CAAA;AAEF,CAAC,EAVS,CAAC,KAAD,CAAC,QAUV;;;;ACVD,IAAU,CAAC,CAqBV;AArBD,WAAU,CAAC;IACV,MAAM,IAAI,GAAG,OAAO,CAAA,MAAM,CAAE,MAAM,CAAmC,CAAA;IACrE,MAAM,GAAG,GAAG,OAAO,CAAA,MAAM,CAAE,QAAQ,CAAqC,CAAA;IACxE,MAAM,YAAY,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC,CAAA;IAEhF,SAAgB,iBAAiB,CAAiB,IAAY;QAC7D,IAAI,CAAC;YACJ,YAAY,CAAC,OAAO,CAAE,IAAI,CAAE,CAAA;QAC7B,CAAC;QAAC,MAAM,CAAC;YAER,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAE,KAAK,EAAG,SAAS,EAAG,YAAY,EAAE,IAAI,CAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAA;YAEtF,IAAI,CAAC;gBACJ,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAE,KAAK,EAAG,SAAS,EAAG,YAAY,EAAE,SAAS,GAAG,IAAI,CAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAA;YACnG,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,IAAI,IAAI,CAAC,iBAAiB,CAAE,CAAC,CAAE;oBAAG,IAAI,CAAC,gBAAgB,CAAE,CAAC,CAAE,CAAA;gBAC5D,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA;YACtB,CAAC;QAEF,CAAC;IACF,CAAC;IAfe,mBAAiB,oBAehC,CAAA;AACF,CAAC,EArBS,CAAC,KAAD,CAAC,QAqBV;;;;ACjBD,IAAI,KAAK,GAAG,IAAI,KAAK,CAAE,EAAE,OAAO,EAAS,EAAG;IAE3C,GAAG,CAAE,MAAM,EAAG,IAAa,EAAG,OAAO;QAEpC,IAAI,MAAM,CAAE,IAAI,CAAE;YAAG,OAAO,MAAM,CAAE,IAAI,CAAE,CAAA;QAE1C,IAAI,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC;YAAG,OAAO,MAAM,CAAC,OAAO,CAAG,IAAI,CAAE,CAAA;QACjE,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG;YAAG,OAAO,MAAM,CAAC,OAAO,CAAE,IAAI,CAAE,CAAA;QAEnD,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;QAEzB,OAAO,MAAM,CAAC,OAAO,CAAE,IAAI,CAAE,CAAA;IAC9B,CAAC;IAED,GAAG,CAAE,MAAM,EAAG,IAAa,EAAG,KAAK;QAClC,MAAM,CAAE,IAAI,CAAE,GAAG,KAAK,CAAA;QACtB,OAAO,IAAI,CAAA;IACZ,CAAC;CAED,CAAW,CAAA;AAEZ,OAAO,GAAG,CAAE,GAAG,CAAC,EAAE,CACjB,MAAM,CAAC,MAAM,CAAE,SAAS,OAAO,CAAE,IAAa;IAC7C,OAAO,KAAK,CAAE,IAAI,CAAE,CAAA;AACrB,CAAC,EAAG,GAAG,CAAE,CACT,CAAE,OAAO,CAAE,CAAA;;;;AC7BZ,IAAU,CAAC,CAaV;AAbD,WAAU,GAAC;IAEV,SAAS,CAAC;QAET,sBAAsB,CAAC,CAAC;YACvB,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAE,CAAC,EAAG,EAAE,mBAAmB,EAAG,CAAE,GAAE,EAAE,CAAC,GAAE,EAAE,GAAE,CAAC,CAAE,EAAE,EAAE,CAAE,CAAA;YAC5E,iBAAiB,CAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,EAAG,EAAE,CAAE,CAAA;YACrD,iBAAiB,CAAE,EAAE,CAAC,cAAc,CAAE,EAAE,CAAC,mBAAmB,CAAE,EAAG,qBAAqB,CAAE,CAAA;YACxF,iBAAiB,CAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,EAAG,qBAAqB,CAAE,CAAA;QACzE,CAAC;KAED,CAAC,CAAA;AAEH,CAAC,EAbS,CAAC,KAAD,CAAC,QAaV;;;;ACbD,IAAU,CAAC,CA8DV;AA9DD,WAAU,CAAC;IAEV,SAAS,eAAe,CAAC,KAAc;QACtC,OAAO,IAAI,CAAC,SAAS,CAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAE;aACxC,OAAO,CAAC,IAAI,EAAC,GAAG,CAAC;aACjB,OAAO,CAAC,IAAI,EAAC,IAAI,CAAC,CAAA;IACrB,CAAC;IAED,SAAS,eAAe,CAAC,KAAsB;QAC9C,OAAO,CAAE,OAAO,KAAK,KAAM,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAE;aACpE,IAAI,EAAE;aACN,OAAO,CAAE,OAAO,EAAE,QAAQ,CAAE;aAC5B,OAAO,CAAE,qBAAqB,EAAE,iBAAiB,CAAE,CAAA;IACtD,CAAC;IAED,MAAa,cAAwC,SAAQ,cAAc;QAMhE;QAJV,IAAI,GAAG,EAAE,CAAC,cAAc,CAAE,IAAI,CAAC,WAAW,CAAE,CAAC,OAAO,CAAE,KAAK,EAAE,EAAE,CAAE,GAAG,QAAQ,CAAA;QAE5E,YACC,OAAe,EACN,QAAQ,EAAW,EAC5B,GAAI,MAAwB;YAG5B,KAAK,CAAE,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,CAAE,CAAA;YAJ1B,UAAK,GAAL,KAAK,CAAc;YAM5B,MAAM,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAE,IAAI,EAAE,OAAO,CAAE,CAAA;YAC7D,MAAM,SAAS,GAAG,GAAE,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,OAAO,CAAA;YAElF,MAAM,CAAC,cAAc,CAAE,IAAI,EAAE,OAAO,EAAE;gBACrC,GAAG,EAAE,GAAE,EAAE,CAAC,SAAS,EAAE,GAAG,IAAI,GAAG;oBAC7B,IAAI,CAAC,KAAK,IAAI,UAAU;oBACxB,GAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAE,CAAC,CAAC,EAAE,CAAC;wBAC7B,MAAM,CAAE,CAAC,CAAC,KAAK,CAAE;wBACjB,GAAI,CAAC,YAAY,cAAc,IAAI,CAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,KAAK,CAAE;qBAC/D,CAAE;iBACH,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;aAClC,CAAE,CAAA;YAEH,mDAAmD;YACnD,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE;gBACpC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK;aAChB,CAAC,CAAA;QACH,CAAC;QAED,MAAM,CAAC,CAAE,MAAM,CAAC,WAAW,CAAE;YAC5B,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAA;QACvB,CAAC;QAED,MAAM,CAAC,QAAQ;YACd,OAAO,EAAE,CAAC,cAAc,CAAE,IAAI,CAAE,CAAA;QACjC,CAAC;QAED,MAAM,CAAC,IAAI,CACV,GAAG,MAAoD;YAEvD,OAAO,IAAI,IAAI,CAAC,GAAG,MAAM,CAAC,CAAA;QAC3B,CAAC;KAED;IA7CY,gBAAc,iBA6C1B,CAAA;AAEF,CAAC,EA9DS,CAAC,KAAD,CAAC,QA8DV;;;;AC9DD,IAAU,CAAC,CAmDV;AAnDD,WAAU,CAAC;IACV,SAAS,CAAC;QAET,WAAW;YAEV,MAAM,OAAQ,SAAQ,cAAc;aAAG;YACvC,MAAM,GAAG,GAAG,IAAI,OAAO,CAAE,KAAK,CAAE,CAAA;YAEhC,iBAAiB,CAAE,GAAG,CAAC,IAAI,EAAE,eAAe,CAAE,CAAA;QAE/C,CAAC;QAED,WAAW;YAEV,MAAM,GAAG,GAAG,IAAI,cAAc,CAAE,KAAK,EAAE,EAAE,EACxC,IAAI,KAAK,CAAE,KAAK,CAAE,EAClB,IAAI,KAAK,CAAE,KAAK,CAAE,CAClB,CAAA;YAED,iBAAiB,CAAE,GAAG,CAAC,OAAO,EAAE,KAAK,CAAE,CAAA;YACvC,iBAAiB,CAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAE,EAAE,CAAE,KAAK,EAAE,KAAK,CAAE,CAAE,CAAA;QAExE,CAAC;QAED,yBAAyB;YAExB,MAAM,OAAQ,SAAQ,cAGpB;aAAG;YAEL,MAAM,GAAG,GAAY,IAAI,cAAc,CAAE,gBAAgB,EAAE,EAAE,EAC5D,IAAI,OAAO,CAAE,WAAW,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,CAAE,EACtE,IAAI,OAAO,CAAE,YAAY,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAE,CAC/E,CAAA;YAED,MAAM,KAAK,GAAG,EAAc,CAAA;YAE5B,IAAI,GAAG,YAAY,cAAc,EAAG,CAAC;gBACpC,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,MAAM,EAAG,CAAC;oBAC9B,IAAI,EAAE,YAAY,OAAO,EAAG,CAAC;wBAC5B,KAAK,CAAC,IAAI,CAAE,EAAE,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE,CAAE,CAAA;oBACnC,CAAC;gBACF,CAAC;YACF,CAAC;YAED,iBAAiB,CAAE,KAAK,EAAE,CAAE,aAAa,EAAE,qBAAqB,CAAE,CAAE,CAAA;QAErE,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EAnDS,CAAC,KAAD,CAAC,QAmDV;;;;;;;;;;;;;;;;;;;;;;ACnDD,IAAU,CAAC,CA2BV;AA3BD,WAAU,GAAC;IACV,SAAS,CAAE;QAEV,oBAAoB;YACnB,MAAM,CAAE,SAAQ,WAAW;gBAC1B,GAAG;oBACF,OAAO,CAAC,CAAA;gBACT,CAAC;aACD;YAED,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACd,GAAG,EAAG,GAAE,EAAE,CAAC,CAAC;aACZ,CAAC,CAAA;YAEF,iBAAiB,CAAE,CAAC,CAAC,GAAG,EAAE,EAAG,CAAC,CAAE,CAAA;QACjC,CAAC;QAED,yCAAyC,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;YACjC,MAAM,CAAE,SAAQ,CAAC,CAAC,WAAW;gBAC5B,MAAM,CAAC,CAAC,GAAG,MAAM,CAAA;;YAGlB,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;QACrC,CAAC;KAED,CAAE,CAAA;AACJ,CAAC,EA3BS,CAAC,KAAD,CAAC,QA2BV;;;;AC3BD,IAAU,CAAC,CAIV;AAJD,WAAU,CAAC;IACV,SAAgB,QAAQ;QACvB,OAAO,EAA0C,CAAA;IAClD,CAAC;IAFe,UAAQ,WAEvB,CAAA;AACF,CAAC,EAJS,CAAC,KAAD,CAAC,QAIV;;;;ACJD,IAAU,CAAC,CAIV;AAJD,WAAU,CAAC;IACV,CAAC,CAAC,QAAQ,GAAG,SAAS,QAAQ;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAA;IACxB,CAAC,CAAA;AACF,CAAC,EAJS,CAAC,KAAD,CAAC,QAIV;;;;ACJD,IAAU,CAAC,CAsEV;AAtED,WAAU,GAAC;IAEV,SAAS,CAAC;QAET,YAAY,CAAE,CAAC;YACd,MAAM,CAAC;gBACN,MAAM,CAAC,CAAC;oBACP,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;gBAC3B,CAAC;gBAED,MAAM,CAAC,CAAC;oBACP,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;gBAChC,CAAC;aACD;QAGF,CAAC;QAED,KAAK,CAAC,uBAAuB,CAAE,CAAC;YAC/B,IAAI,KAAK,GAAG,CAAC,CAAA;YACb,MAAM,CAAC;gBACN,MAAM,CAAC,CAAC;oBACP,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;gBAChC,CAAC;gBAED,MAAM,CAAC,CAAC,KAAK,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAA,CAAC,CAAC;aAC9C;YAGD,iBAAiB,CAAC,MAAM,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;QAE1D,CAAC;QAED,KAAK,CAAC,eAAe,CAAE,CAAC;YACvB,IAAI,KAAK,GAAG,CAAC,CAAA;YACb,MAAM,CAAC;gBACN,MAAM,CAAC,CAAC;oBACP,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;gBAChC,CAAC;gBAED,MAAM,CAAC,CAAC,KAAK,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAA,CAAC,CAAC;aAC9C;YAGD,iBAAiB,CAAC,MAAM,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;QAE1D,CAAC;QAED,KAAK,CAAC,uBAAuB,CAAE,CAAC;YAC/B,MAAM,CAAC;gBACN,MAAM,CAAC,SAAS,GAAG,EAAS,CAAA;gBAE5B,MAAM,CAAC,CAAC;oBACP,MAAM,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;oBACnC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAE,CAAC,CAAE,CAAA;oBACxB,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;gBACzB,CAAC;gBAED,MAAM,CAAC,CAAC,KAAK,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA,CAAC,CAAC;;YAGxC,MAAM,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;YAC5B,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;YACxC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,CAAA;YAEpD,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;QAElD,CAAC;KACD,CAAC,CAAA;AAEH,CAAC,EAtES,CAAC,KAAD,CAAC,QAsEV;;;;ACtED,IAAU,CAAC,CAWV;AAXD,WAAU,GAAC;IAEV,eAAe,CAAC,IAAI,CAAE,CAAC,CAAC,EAAE;QACzB,CAAC,CAAC,cAAc,GAAG,GAAE,EAAE,GAAE,CAAC,CAAA;QAC1B,CAAC,CAAC,cAAc,GAAG,GAAE,EAAE,GAAE,CAAC,CAAA;QAC1B,CAAC,CAAC,cAAc,GAAG,GAAE,EAAE,GAAE,CAAC,CAAA;QAC1B,CAAC,CAAC,cAAc,GAAG,GAAE,EAAE,GAAE,CAAC,CAAA;QAC1B,CAAC,CAAC,cAAc,GAAG,GAAE,EAAE,GAAE,CAAC,CAAA;QAC1B,CAAC,CAAC,cAAc,GAAG,GAAE,EAAE,CAAC,GAAE,EAAE,GAAE,CAAC,CAAA;IAChC,CAAC,CAAE,CAAA;AAEJ,CAAC,EAXS,CAAC,KAAD,CAAC,QAWV;;;;ACXD,IAAU,CAAC,CAmLV;AAnLD,WAAU,CAAC;IAQV,MAAa,cAAe,SAAQ,cAOlC;KAAG;IAPQ,gBAAc,iBAOtB,CAAA;IAEQ,gBAAc,GAAG,CAC7B,GAAG,IAAwD,EAC1D,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAA;IAE7B,qBAAmB,GAAG,CAClC,GAAG,IAA4D,EAC9D,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAA;IAS9C,MAAa,QAAS,SAAQ,WAAW;QAExC,MAAM,CAAC,aAAa;YACnB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,eAAe,CAAC,CAAC,CAAA;QACnD,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,OAAyB;YACrC,MAAM,IAAI,GAAG,CAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAA;YAClE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;YAE5C,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,WAAW,CAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAE,CAAA;QACrE,CAAC;QAED,MAAM,CAAC,WAAW,CACjB,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAyC;YAE3E,MAAM,QAAQ,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAE,GAAG,CAAE,CAAC,CAAC,CAAC,OAAO,CAAA;YAC7E,MAAM,CAAE,GAAG,EAAE,GAAG,IAAI,CAAE,GAAG,QAAQ,CAAA;YACjC,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;YAE3C,MAAM,UAAU,GAAG;gBAClB,KAAK,EAAE,GAAG,IAAI,UAAU;gBACxB,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC3B,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAE,EAAE,EAAG,GAAG,CAAE;aACpC,CAAA;YAED,IAAI,IAAI,EAAE,CAAC;gBAEV,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;oBACrB,IAAI,EAAE,kBAAkB;oBACxB,GAAG,UAAU;iBACb,CAAC,CAAA;gBAEF,IAAI,KAAwB,CAAA;gBAC5B,IAAI,GAAG,CAAA;gBAEP,IAAI,CAAC;oBACJ,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;oBACjD,KAAK,GAAG,GAAG,CAAC,KAAK,CAAA;gBAClB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,KAAK,GAAG,GAAY,CAAA;gBACrB,CAAC;gBAED,IAAI,CAAE,GAAG,IAAI,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;oBAClC,MAAM,IAAI,cAAc,CACvB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EACvB,EAAE,GAAG,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAC3D,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CACzB,CAAA;gBACF,CAAC;gBAED,OAAO,GAAG,CAAA;YACX,CAAC;YAED,IAAI,GAAG,CAAA;YAEP,IAAI,CAAC;gBACJ,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE;oBACtC,GAAG,IAAI;oBACP,KAAK,EAAE,CAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAE;iBACvC,CAAC,CAAA;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,IAAI,cAAc,CACvB,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAC7B,UAAU,EACV,KAAc,CACd,CAAA;YACF,CAAC;YAED,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;YAExB,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;gBACrB,GAAG,UAAU;gBACb,GAAG;aACH,CAAC,CAAA;YAEF,IAAI,YAAY,GAAG,KAAK,CAAA;YACxB,IAAI,KAAgD,CAAA;YAEpD,MAAM,QAAQ,GAAG,EAAc,CAAA;YAC/B,MAAM,UAAU,GAAG,EAAc,CAAA;YAEjC,MAAM,GAAG,GAAG,CAAC,SAAkB,EAAE,WAAoB,EAAE,EAAE;gBACxD,IAAI,SAAS;oBAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;gBACvC,IAAI,WAAW;oBAAE,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;gBAC7C,IAAI,CAAE,OAAO;oBAAE,OAAM;gBAErB,YAAY,CAAC,KAAK,CAAC,CAAA;gBAEnB,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;oBACvB,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;oBACnD,YAAY,GAAG,IAAI,CAAA;oBACnB,GAAG,EAAE,CAAA;oBACL,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBACjB,CAAC,EAAE,OAAO,CAAC,CAAA;YACZ,CAAC,CAAA;YAED,GAAG,EAAE,CAAA;YAEL,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAE,CAAA;YAC1C,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAE,CAAA;YAErD,MAAM,cAAc,GAAG,IAAI,OAAO,CAAyB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;gBACzE,MAAM,KAAK,GAAG,CAAC,KAAmB,EAAE,SAAwB,IAAI,EAAE,SAAgC,IAAI,EAAE,EAAE;oBACzG,IAAI,CAAE,KAAK,IAAI,OAAO;wBAAE,OAAM;oBAE9B,YAAY,CAAC,KAAK,CAAC,CAAA;oBACnB,KAAK,GAAG,SAAS,CAAA;oBAEjB,MAAM,GAAG,GAAG;wBACX,GAAG;wBACH,MAAM;wBACN,IAAI,MAAM,KAAK,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA,CAAC,CAAC;wBAC/C,IAAI,MAAM,KAAK,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA,CAAC,CAAC;qBACjD,CAAA;oBAED,IAAI,KAAK,IAAI,MAAM,IAAI,YAAY;wBAAE,OAAO,IAAI,CAAE,IAAI,cAAc,CACnE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAC3D,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,EACpD,GAAG,KAAK,CAAC,CAAC,CAAC,CAAE,KAAK,CAAE,CAAC,CAAC,CAAC,EAAE,CACzB,CAAE,CAAA;oBAEH,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;wBACrB,GAAG,UAAU;wBACb,GAAG;qBACH,CAAC,CAAA;oBAEF,IAAI,CAAC,GAAG,CAAC,CAAA;gBACV,CAAC,CAAA;gBAED,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAE,CAAA;gBAC7D,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAE,CAAA;gBACnC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAE,CAAA;YACjE,CAAC,CAAC,CAAA;YAEF,OAAO,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE;oBACvD,YAAY,CAAC,KAAK,CAAC,CAAA;oBACnB,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;gBACpB,CAAC,EAAE,CAAC,CAAA;QACL,CAAC;QAED,MAAM,CAAC,aAAa,CAAC,GAA4B;YAChD,OAAO,GAAG,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,GAAG,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,WAAW,CAAA;QACvE,CAAC;KACD;IAjJY,UAAQ,WAiJpB,CAAA;AAEF,CAAC,EAnLS,CAAC,KAAD,CAAC,QAmLV;;;;ACnLD,IAAU,CAAC,CAqDV;AArDD,WAAU,GAAC;IACV,SAAS,CAAE;QACV,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC7C,IAAI,UAAU,GAAG,GAAG,EAAE,GAAE,CAAC,CAAA;YACzB,MAAM,aAAa,GAAG,oBAAoB,CAAA;YAE1C,SAAS,uBAAuB;gBAC/B,OAAO;oBACN,MAAM,EAAE,EAAE;oBACV,MAAM,EAAE,aAAa;oBACrB,MAAM,EAAE,EAAE;oBACV,MAAM,EAAE,CAAC;oBACT,MAAM,EAAE,IAAI;oBACZ,GAAG,EAAE,GAAG;iBACR,CAAA;YACF,CAAC;YAED,SAAS,kBAAkB;gBAC1B,OAAO;oBACN,EAAE,CAAC,IAAY,EAAE,EAAc;wBAC9B,IAAI,IAAI,KAAK,MAAM;4BAAE,UAAU,GAAG,EAAE,CAAA;oBACrC,CAAC;oBACD,IAAI,KAAK,UAAU,EAAE,CAAA,CAAC,CAAC;iBAChB,CAAA;YACT,CAAC;YAED,MAAM,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC;gBACnC,mBAAmB,EAAE,uBAAuB;gBAC5C,cAAc,EAAE,kBAAkB;aAClC,CAAC,CAAA;YAEF,MAAM,aAAc,SAAQ,QAAQ;gBACnC,MAAM,KAAK,CAAC,KAAK,OAAO,YAAY,CAAA,CAAC,CAAC;gBACtC,MAAM,CAAU,aAAa;oBAC5B,OAAO,IAAI,CAAA;gBACZ,CAAC;aACD;YAED,IAAI,OAAO,GAAG,EAAE,CAAA;YAChB,IAAI,CAAC;gBACJ,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC;oBACtD,OAAO,EAAE,UAAU;oBACnB,GAAG,EAAE,GAAG;oBACR,OAAO,EAAE,EAAE;oBACX,GAAG,EAAE,EAAE,eAAe,EAAE,GAAG,EAAE;iBAC7B,CAAC,CAAA;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,OAAO,GAAG,CAAW,CAAC,OAAO,CAAA;YAC9B,CAAC;YACD,iBAAiB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;QAC1C,CAAC;KAED,CAAE,CAAA;AACJ,CAAC,EArDS,CAAC,KAAD,CAAC,QAqDV;;;;ACrDD,IAAU,CAAC,CAIV;AAJD,WAAU,CAAC;IAEV,CAAC,CAAC,gBAAgB,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAE,EAAE,EAAG,EAAE,GAAG,EAAG,UAAW,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,WAAY,GAAG,EAAE,CAAE,CAAC,MAAa,CAAA;AAE5H,CAAC,EAJS,CAAC,KAAD,CAAC,QAIV;;;;ACJD,IAAU,CAAC,CAIV;AAJD,WAAU,CAAC;IAEC,UAAQ,GAAG,gBAAgB,CAAA;AAEvC,CAAC,EAJS,CAAC,KAAD,CAAC,QAIV;;;;ACJD,IAAU,CAAC,CAuDV;AAvDD,WAAU,CAAC;IAEV,SAAgB,wBAAwB,CACvC,EAA+B,EAC/B,UAAqD;QAErD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAA0B,UAAU,CAAE,CAAA;QAE9D,IAAI,QAAQ,GAAiB,EAAE,CAAC,UAAU,CAAA;QAC1C,KAAK,IAAI,IAAI,IAAI,UAAU,EAAG,CAAC;YAE9B,IAAI,IAAI,IAAI,IAAI;gBAAG,SAAQ;YAE3B,IAAI,IAAI,YAAY,gBAAgB,CAAC,IAAI,EAAG,CAAC;gBAE5C,OAAO,IAAI,EAAG,CAAC;oBACd,IAAI,CAAC,QAAQ,EAAG,CAAC;wBAChB,EAAE,CAAC,WAAW,CAAE,IAAI,CAAE,CAAA;wBACtB,MAAK;oBACN,CAAC;oBACD,IAAI,QAAQ,IAAI,IAAI,EAAG,CAAC;wBACvB,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAA;wBAC/B,MAAK;oBACN,CAAC;yBAAM,CAAC;wBACP,IAAI,QAAQ,CAAC,GAAG,CAAE,QAAQ,CAAE,EAAG,CAAC;4BAC/B,EAAE,CAAC,YAAY,CAAE,IAAI,EAAG,QAAQ,CAAE,CAAA;4BAClC,MAAK;wBACN,CAAC;6BAAM,CAAC;4BACP,MAAM,EAAE,GAAG,QAAQ,CAAC,WAAW,CAAA;4BAC/B,EAAE,CAAC,WAAW,CAAE,QAAQ,CAAE,CAAA;4BAC1B,QAAQ,GAAG,EAAE,CAAA;wBACd,CAAC;oBACF,CAAC;gBACF,CAAC;YAEF,CAAC;iBAAM,CAAC;gBACP,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,KAAK,OAAO,EAAG,CAAC;oBAChD,MAAM,GAAG,GAAG,MAAM,CAAE,IAAI,CAAE,CAAA;oBAC1B,IAAI,QAAQ,CAAC,SAAS,KAAK,GAAG;wBAAG,QAAQ,CAAC,SAAS,GAAG,GAAG,CAAA;oBACzD,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAA;gBAChC,CAAC;qBAAM,CAAC;oBACP,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAE,MAAM,CAAE,IAAI,CAAE,CAAE,CAAA;oBAC3E,EAAE,CAAC,YAAY,CAAE,QAAQ,EAAG,QAAQ,CAAE,CAAA;gBACvC,CAAC;YACF,CAAC;QAEF,CAAC;QAED,OAAO,QAAQ,EAAG,CAAC;YAClB,MAAM,QAAQ,GAAG,QAAQ,CAAA;YACzB,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAA;YAC/B,EAAE,CAAC,WAAW,CAAE,QAAQ,CAAE,CAAA;QAC3B,CAAC;IACF,CAAC;IAnDe,0BAAwB,2BAmDvC,CAAA;AAEF,CAAC,EAvDS,CAAC,KAAD,CAAC,QAuDV;;;;;;;;;;ACvDD,IAAU,CAAC,CASV;AATD,WAAU,CAAC;IAEV,SAAgB,kBAAkB,CACjC,IAAU;QAEV,MAAM,UAAU,GAAG,IAAI,gBAAgB,CAAC,aAAa,CAAA;QACrD,OAAO,UAAU,CAAC,iBAAiB,CAAE,IAAI,CAAE,CAAA;IAC5C,CAAC;IALe,oBAAkB,qBAKjC,CAAA;AAEF,CAAC,EATS,CAAC,KAAD,CAAC,QASV;;;;ACTD,IAAU,CAAC,CA6NV;AA7ND,WAAU,CAAC;IAEC,iBAAe,GAAG,EAAE,CAAA;IACpB,iBAAe,GAAG,EAAE,CAAA;IAEpB,iBAAe,GAAG,IAA4B,CAAA;IAE9C,mBAAiB,GAAgD;QAC3E,cAAc,EAAG,GAAE,EAAE,CAAC,IAAI;QAC1B,eAAe,EAAG,CAAE,KAAa,EAAE,IAAa,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAE,KAAK,EAAE,IAAI,CAAS;QACpH,sBAAsB,EAAG,GAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,sBAAsB,EAAE;KAChF,CAAA;IAEY,eAAa,GAAG,EAAE,CAAA;IAE/B;;;;;OAKG;IACH,SAAgB,QAAQ,CAIvB,IAC6D,EAC7D,KAAa,EACb,GAAI,UAAqB;QAGzB,MAAM,EAAE,GAAG,KAAK,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,CAAA;QAClC,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EAAA,eAAe,CAAC,CAAC,CAAC,EAAA,eAAe,GAAG,GAAG,GAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAA,eAAe,CAAA;QACpF,MAAM,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC,EAAA,eAAe,CAAC,OAAO,CAAE,QAAQ,EAAE,MAAO,EAAE,CAAC,OAAO,CAAE,OAAO,EAAE,EAAE,CAAG,EAAE,CAAE,CAAC,CAAC,CAAC,EAAA,eAAe,CAAA;QAEnH,IAAI,IAAI,IAAI,EAAA,eAAe,EAAG,CAAC;YAC9B,IAAI,EAAA,eAAe,CAAC,GAAG,CAAE,EAAE,CAAE,EAAG,CAAC;gBAChC,SAAS,CAAE,IAAI,KAAK,CAAE,+BAAgC,IAAI,CAAC,SAAS,CAAE,IAAI,CAAG,EAAE,CAAE,CAAE,CAAA;YACpF,CAAC;iBAAM,CAAC;gBACP,EAAA,eAAe,CAAC,GAAG,CAAE,EAAE,CAAE,CAAA;YAC1B,CAAC;QACF,CAAC;QAED,IAAI,IAAI,GAAsC,IAAI,CAAC,CAAC,CAAC,EAAA,iBAAiB,CAAC,cAAc,CAAE,IAAI,CAAE,CAAC,CAAC,CAAC,IAAI,CAAA;QAEpG,IAAI,EAAA,eAAe,EAAG,CAAC;YAEtB,MAAM,UAAU,GAAG,EAAA,eAAe,CAAA;YAClC,MAAM,UAAU,GAAG,EAAA,eAAe,CAAA;YAClC,MAAM,UAAU,GAAG,EAAA,eAAe,CAAA;YAElC,KAAK,MAAM,KAAK,IAAI,KAAK,EAAG,CAAC;gBAE5B,MAAM,IAAI,GAAG,KAAK,CAAE,KAAK,CAAE,CAAA;gBAC3B,IAAI,OAAO,IAAI,KAAK,UAAU;oBAAG,SAAQ;gBAGzC,MAAM,OAAO,GAAG,UAAqB,GAAI,IAAW;oBAEnD,MAAM,MAAM,GAAG,EAAA,eAAe,CAAA;oBAC9B,MAAM,MAAM,GAAG,EAAA,eAAe,CAAA;oBAC9B,MAAM,MAAM,GAAG,EAAA,eAAe,CAAA;oBAE9B,IAAI,CAAC;wBAEJ,EAAA,eAAe,GAAG,UAAU,CAAA;wBAC5B,EAAA,eAAe,GAAG,UAAU,CAAA;wBAC5B,EAAA,eAAe,GAAG,UAAU,CAAA;wBAE5B,OAAO,IAAI,CAAC,IAAI,CAAE,IAAI,EAAE,GAAI,IAAI,CAAE,CAAA;oBAEnC,CAAC;4BAAS,CAAC;wBAEV,EAAA,eAAe,GAAG,MAAM,CAAA;wBACxB,EAAA,eAAe,GAAG,MAAM,CAAA;wBACxB,EAAA,eAAe,GAAG,MAAM,CAAA;oBAEzB,CAAC;gBAEF,CAAC,CAAA;gBAED,mBAAmB,CAAE,OAAO,EAAE,IAAI,CAAE,CAAA;gBACpC,KAAK,CAAE,KAAK,CAAE,GAAG,OAAc,CAAA;YAEhC,CAAC;QAEF,CAAC;QAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAG,CAAC;YAE/B,IAAI,WAAW,IAAI,IAAI,EAAG,CAAC;gBAE1B,MAAM,IAAI,GAAG,IAAI,IAAK,IAAY,CAAE,MAAM,CAAC,IAAI,CAAC,CAAE,IAAI,IAAM,IAAa,CAAA;gBAEzE,MAAM,CAAC,MAAM,CAAE,IAAI,EAAG,KAAK,CAAE,CAAA;gBAC7B,IAAI,CAAE,MAAM,CAAC,WAAW,CAAE,GAAG,IAAI,CAAA;gBAEjC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;gBAE5B,IAAI,CAAC,IAAI,CAAC,aAAa;oBAAG,IAAI,CAAC,aAAa,GAAG,EAAA,iBAAiB,CAAA;gBAChE,IAAI,CAAC,SAAS,GAAG,CAAE,WAAW,CAAC,CAAC,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,GAAG,CAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAE,CAAA;gBAEpF,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAEpB;gBAAC,IAAa,CAAE,MAAM,CAAC,IAAI,CAAC,CAAE,GAAG,IAAI,CAAA;gBAEtC,OAAO,IAAK,CAAA;YAEb,CAAC;iBAAM,CAAC;gBAEP,MAAM,MAAM,GAAG,EAAA,eAAe,CAAA;gBAC9B,MAAM,MAAM,GAAG,EAAA,eAAe,CAAA;gBAC9B,MAAM,MAAM,GAAG,EAAA,eAAe,CAAA;gBAE9B,IAAI,CAAC;oBAEJ,EAAA,eAAe,GAAG,IAAI,CAAA;oBACtB,EAAA,eAAe,GAAG,IAAI,GAAG,CAAA;oBACzB,EAAA,eAAe,GAAG,CAAE,WAAW,CAAC,CAAC,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,GAAG,CAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAE,CAAA;oBAErF,OAAS,IAAa,CAAE,KAAK,EAAG,GAAI,UAAU,CAAE,CAAA;gBAEjD,CAAC;wBAAS,CAAC;oBAEV,EAAA,eAAe,GAAG,MAAM,CAAA;oBACxB,EAAA,eAAe,GAAG,MAAM,CAAA;oBACxB,EAAA,eAAe,GAAG,MAAM,CAAA;gBAEzB,CAAC;YAEF,CAAC;QAEF,CAAC;QAED,IAAI,CAAC,IAAI,EAAG,CAAC;YACZ,IAAI,GAAG,IAAI;gBACV,CAAC,CAAC,EAAA,iBAAiB,CAAC,eAAe,CAAE,KAAK,EAAE,KAAK,IAAI,8BAA8B,EAAE,IAAI,CAAE;gBAC3F,CAAC,CAAC,EAAA,iBAAiB,CAAC,sBAAsB,EAAE,CAAA;QAC9C,CAAC;QAED,wBAAwB,CAAE,IAAI,EAAK,EAA2B,CAAC,MAAM,CAAE,GAAI,UAAU,CAAE,CAAE,CAAA;QACzF,IAAI,CAAC,IAAI;YAAG,OAAO,IAAI,CAAA;QAEvB,IAAI,IAAI;YAAK,IAAiB,CAAC,EAAE,GAAG,IAAI,CAAA;QACxC,KAAK,MAAM,GAAG,IAAI,KAAK,EAAG,CAAC;YAC1B,IAAI,GAAG,KAAK,IAAI;gBAAG,SAAQ;YAE3B,IAAI,OAAO,KAAK,CAAE,GAAG,CAAE,KAAK,QAAQ,EAAG,CAAC;gBAEvC,IAAI,OAAQ,IAAY,CAAE,GAAG,CAAE,KAAK,QAAQ;oBAAI,IAAY,CAAE,GAAG,CAAE,GAAG,KAAK,CAAE,GAAG,CAAE,CACjF;gBAAE,IAAiB,CAAC,YAAY,CAAE,GAAG,EAAI,KAAa,CAAE,GAAG,CAAE,CAAE,CAAA;YAEjE,CAAC;iBAAM,IACN,KAAK,CAAE,GAAG,CAAE;gBACZ,OAAO,KAAK,CAAE,GAAG,CAAE,KAAK,QAAQ;gBAChC,OAAO,CAAC,cAAc,CAAE,KAAK,CAAE,GAAG,CAAS,CAAE,KAAK,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,EAC3E,CAAC;gBAEF,IAAI,OAAQ,IAAY,CAAE,GAAG,CAAE,KAAK,QAAQ,EAAG,CAAC;oBAC/C,MAAM,CAAC,MAAM,CAAI,IAAa,CAAE,GAAG,CAAE,EAAG,KAAK,CAAE,GAAG,CAAE,CAAE,CAAA;oBACtD,SAAQ;gBACT,CAAC;YAEF,CAAC;iBAAM,CAAC;gBAEN,IAAY,CAAE,GAAG,CAAE,GAAG,KAAK,CAAE,GAAG,CAAE,CAAA;YAEpC,CAAC;QAEF,CAAC;QAED,IAAI,EAAA,eAAe;YAAK,IAAiB,CAAC,SAAS,GAAG,CAAG,KAAa,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAE,KAAa,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,GAAG,WAAW,CAAA;QAEtI,OAAO,IAAI,CAAA;IAEZ,CAAC;IA1Je,UAAQ,WA0JvB,CAAA;AA8CF,CAAC,EA7NS,CAAC,KAAD,CAAC,QA6NV;;;;AC7ND,oBAAoB;AACpB,6BAA6B;AAC7B,IAAU,CAAC,CA6KV;AA7KD,WAAU,CAAC;IAEV,SAAS,CAAC;QAET,gBAAgB;YACf,iBAAiB,CAAE,CAAC,qBAAM,CAAC,CAAC,SAAS,EAAG,aAAa,CAAE,CAAA;QACxD,CAAC;QAED,qBAAqB;YAEpB,MAAM,GAAG,GAAG,oBAAO,KAAK,EAAC,KAAK,GAAuB,CAAA;YAErD,iBAAiB,CAAE,GAAG,CAAC,SAAS,EAAE,qBAAqB,CAAE,CAAA;YACzD,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,KAAK,CAAE,CAAA;QAEtC,CAAC;QAED,gBAAgB;YAEf,MAAM,GAAG,GAAG,kBAAK,KAAK,EAAG,SAAS,GAAK,CAAA;YAEvC,iBAAiB,CAAE,GAAG,CAAC,SAAS,EAAE,6BAA6B,CAAE,CAAA;QAElE,CAAC;QAED,eAAe;YAEd,MAAM,GAAG,GAAG,kBAAK,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAI,CAAA;YAE5C,iBAAiB,CAAE,GAAG,CAAC,SAAS,EAAE,iCAAiC,CAAE,CAAA;QAEtE,CAAC;QAED,gBAAgB;YAEf,MAAM,GAAG,GAAG,kBAAK,OAAO,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAI,CAAA;YAE5C,iBAAiB,CAAE,GAAG,CAAC,SAAS,EAAE,4BAA4B,CAAE,CAAA;QAEjE,CAAC;QAED,mBAAmB;YAElB,MAAM,GAAG,GAAG,kBAAK,IAAI,EAAC,IAAI,EAAC,MAAM,SAAG,CAAA;YAEpC,iBAAiB,CAAE,GAAG,CAAC,SAAS,EAAE,iCAAiC,CAAE,CAAA;QAEtE,CAAC;QAED,oBAAoB;YAEnB,MAAM,GAAG,GACR;;gBAEC,iCAAsB;oBAEjB,CAAA;YAEP,iBAAiB,CAAE,GAAG,CAAC,SAAS,EAAE,yCAAyC,CAAE,CAAA;QAE9E,CAAC;QAED,eAAe;YAEd,MAAM,GAAG,GACR;gBACC,oBAAM;gBACN,oBAAM,CACJ,CAAA;YAEJ,iBAAiB,CAAE,kBAAkB,CAAE,GAAG,CAAE,EAAE,wFAAwF,CAAE,CAAA;QAEzI,CAAC;QAED,iBAAiB;YAEhB,MAAM,GAAG,GACR;gBACC;oBACC,oBAAM;oBACN,oBAAM,CACJ,CACE,CAAA;YAEP,iBAAiB,CAAE,GAAG,CAAC,SAAS,EAAE,qBAAqB,CAAE,CAAA;QAE1D,CAAC;QAED,uBAAuB;YAEtB,MAAM,MAAM,GAAG,CACd,KAAuB,EACvB,MAAmB,EAClB,EAAE;gBACH,OAAO,qBAAQ,KAAK,EAAG,KAAK,CAAC,IAAI,IAAM,MAAM,EAAE,CAAW,CAAA;YAC3D,CAAC,CAAA;YAED,MAAM,GAAG,GAAG,SAAC,MAAM,IAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,UAAU,IAAG,GAAE,EAAE,CAAC,MAAM,CAAW,CAAA;YAErE,iBAAiB,CAAE,GAAG,CAAC,SAAS,EAAE,gEAAgE,CAAE,CAAA;QAErG,CAAC;QAED,wBAAwB;YAEvB,MAAM,GAAG,GAAG,GAAE,EAAE;gBACf,OAAO;oBACN,SAAC,GAAG,IAAC,EAAE,EAAC,KAAK;wBACZ,kBAAK,EAAE,EAAC,MAAM,GAAG,CACZ,CACD,CAAA;YACP,CAAC,CAAA;YAED,MAAM,GAAG,GAAG,CAAE,KAAS,EAAE,IAAa,EAAE,EAAE;gBACzC,OAAO;oBAAQ,IAAI;oBAAE,gBAAG,EAAE,EAAC,OAAO,GAAE,CAAO,CAAA;YAC5C,CAAC,CAAA;YAED,MAAM,GAAG,GAAG,SAAC,GAAG,IAAC,EAAE,EAAC,KAAK,GAAG,CAAA;YAE5B,iBAAiB,CAAE,GAAG,CAAC,SAAS,EAAE,8KAA8K,CAAE,CAAA;QAEnN,CAAC;QAED,wBAAwB;YAEvB,MAAM,GAAG,GAAG,GAAE,EAAE;gBACf,OAAO;oBACN,mBAAM,EAAE,EAAC,KAAK,GAAG;oBACjB,mBAAM,EAAE,EAAC,KAAK,GAAG,CACZ,CAAA;YACP,CAAC,CAAA;YAED,gBAAgB,CAAE,GAAE,EAAE,CAAC,SAAC,GAAG,IAAC,EAAE,EAAC,KAAK,GAAG,EAAE,uCAAuC,CAAE,CAAA;QAEnF,CAAC;QAED,8BAA8B;YAE7B,MAAM,GAAG,GAAG,GAAE,EAAE;gBACf,OAAO;oBACN,SAAC,GAAG,IAAC,EAAE,EAAC,QAAQ,EAAC,IAAI,EAAG,GAAE,EAAE,CAAC,kBAAK,EAAE,EAAC,MAAM,GAAG,GAAK,CAC9C,CAAA;YACP,CAAC,CAAA;YAED,MAAM,GAAG,GAAG,CAAE,KAA6B,EAAE,EAAE;gBAC9C,OAAO,uBAAQ,KAAK,CAAC,IAAI,EAAE,CAAS,CAAA;YACrC,CAAC,CAAA;YAED,MAAM,GAAG,GAAG,SAAC,GAAG,IAAC,EAAE,EAAC,KAAK,GAAG,CAAA;YAE5B,iBAAiB,CAAE,GAAG,CAAC,SAAS,EAAE,0HAA0H,CAAE,CAAA;QAE/J,CAAC;QAED,wCAAwC;YAEvC,MAAM,GAAG,GAAG,GAAE,EAAE;gBACf,OAAO;oBACN,kBAAK,EAAE,EAAC,MAAM,GAAG;oBACjB,SAAC,GAAG,IAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAG,GAAE,EAAE,CAAC,kBAAK,EAAE,EAAC,MAAM,GAAG,GAAK,CAC3C,CAAA;YACP,CAAC,CAAA;YAED,MAAM,GAAG,GAAG,CAAE,KAA6B,EAAE,EAAE;gBAC9C,OAAO,uBAAQ,KAAK,CAAC,IAAI,EAAE,CAAS,CAAA;YACrC,CAAC,CAAA;YAED,gBAAgB,CAAE,GAAE,EAAE,CAAC,SAAC,GAAG,IAAC,EAAE,EAAC,KAAK,GAAG,EAAE,wCAAwC,CAAE,CAAA;QAEpF,CAAC;KAED,CAAC,CAAA;AAEH,CAAC,EA7KS,CAAC,KAAD,CAAC,QA6KV;;;;AC/KD,IAAU,CAAC,CAsMV;AAtMD,WAAU,CAAC;IAEV,0HAA0H;IAC1H,SAAgB,WAAW,CAC1B,OAA+C,KAAK,CAAC,EAAE,CAAC,KAAY,EACpE,IAAI,GAAG,GAAE,EAAE,CAAC,MAAM,CAAC,iBAAiB;QAGpC,MAAM,MAAM,GAAG,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,iBAAiB,EAAU,CAAC,CAAC,CAAC,IAAI,CAAA;QAElF,IAAI,OAAO,IAAI,KAAK,UAAU,EAAG,CAAC;YACjC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,MAAM,CAAE,KAAK,CAAE,CAAA;YAC/B,IAAI,GAAG,GAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAA;QAC1B,CAAC;QAED,OAAO,IAAI,KAAK,CAAE,MAAM,EAAG;YAE1B,GAAG,CAAE,MAAM,EAAG,KAAK;gBAElB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAG,CAAC;oBAChC,IAAI,KAAK,KAAK,QAAQ;wBAAG,OAAO,IAAI,EAAE,CAAA;oBAEtC,MAAM,KAAK,GAAG,MAAM,CAAE,KAAK,CAAE,CAAA;oBAC7B,IAAI,KAAK,GAAG,CAAC;wBAAG,OAAO,SAAS,CAAA;oBAChC,IAAI,KAAK,IAAI,IAAI,EAAE;wBAAG,OAAO,SAAS,CAAA;oBACtC,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,CAAE,KAAK,CAAE;wBAAG,OAAS,IAAa,CAAE,KAAK,CAAE,CAAA;gBACpE,CAAC;gBAED,OAAO,iBAAiB,CAAC,SAAS,CAAE,KAAY,CAAE,CAAA;YACnD,CAAC;YAED,GAAG,CAAE,MAAM,EAAG,KAAK;gBAClB,OAAO,SAAS,CAAE,IAAI,SAAS,CAAE,gDAAiD,IAAI,CAAC,SAAS,CAAE,KAAK,CAAG,GAAG,CAAG,CAAE,CAAA;YACnH,CAAC;YAED,OAAO,CAAE,MAAM;gBACd,OAAO,CAAE,GAAI,KAAK,CAAE,IAAI,EAAE,CAAE,CAAE,CAAC,GAAG,CAAE,CAAE,CAAC,EAAE,CAAC,EAAG,EAAE,CAAC,MAAM,CAAE,CAAC,CAAE,CAAE,CAAC,MAAM,CAAE,QAAQ,CAAE,CAAA;YACjF,CAAC;YAED,wBAAwB,CAAE,MAAM,EAAG,KAAK;gBAEvC,IAAI,KAAK,KAAK,QAAQ;oBAAG,OAAO;wBAC/B,KAAK,EAAG,IAAI,EAAE;wBACd,QAAQ,EAAG,IAAI;wBACf,UAAU,EAAG,KAAK;wBAClB,YAAY,EAAG,KAAK;qBACpB,CAAA;gBAED,MAAM,KAAK,GAAG,MAAM,CAAE,KAAK,CAAE,CAAA;gBAC7B,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,CAAE,KAAK,CAAE;oBAAG,OAAO;wBAC1C,GAAG,EAAG,GAAE,EAAE,CAAC,IAAI,CAAC,GAAI,CAAE,MAAM,EAAG,KAAK,EAAG,IAAI,CAAE;wBAC7C,UAAU,EAAG,IAAI;wBACjB,YAAY,EAAG,IAAI;qBACnB,CAAA;gBAED,OAAO,MAAM,CAAC,wBAAwB,CAAE,MAAM,EAAG,KAAK,CAAE,CAAA;YACzD,CAAC;SAED,CAAE,CAAA;IAEJ,CAAC;IAzDe,aAAW,cAyD1B,CAAA;IAED,MAAa,iBAA0B,SAAQ,KAAa;QAE3D,OAAO;QACP,MAAM,CAAE,GAAI,IAAe;YAC1B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAG,OAAO,IAAW,CAAA;YAE1C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAG,CAAC;gBACtB,IAAI,IAAI,GAAG,IAAW,CAAA;gBACtB,KAAK,IAAI,IAAI,IAAI,IAAI;oBAAG,IAAI,GAAG,IAAI,CAAC,MAAM,CAAE,IAAI,CAAE,CAAA;gBAClD,OAAO,IAAI,CAAA;YACZ,CAAC;YAED,OAAO,WAAW,CACjB,KAAK,CAAC,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAE,KAAK,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,KAAK,GAAG,IAAI,CAAC,MAAM,CAAE,EAC7E,GAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CACjC,CAAA;QACF,CAAC;QAED,OAAO;QACP,MAAM,CACL,KAAiE,EACjE,OAAkB;YAGlB,MAAM,QAAQ,GAAG,EAAY,CAAA;YAC7B,IAAI,MAAM,GAAG,CAAC,CAAC,CAAA;YAEf,OAAO,WAAW,CACjB,KAAK,CAAC,EAAE;gBAEP,OAAO,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAG,CAAC;oBAC9D,MAAM,GAAG,GAAG,IAAI,CAAE,EAAG,MAAM,CAAE,CAAA;oBAC7B,IAAI,KAAK,CAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAE;wBAAG,QAAQ,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;gBACtD,CAAC;gBAED,OAAO,QAAQ,CAAE,KAAK,CAAE,CAAA;YACzB,CAAC,EACD,GAAE,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CACtE,CAAA;QAEF,CAAC;QAED,WAAW;QACX,OAAO,CACN,OAAiF,EACjF,OAAkB;YAElB,KAAK,IAAI,CAAE,GAAG,EAAG,KAAK,CAAE,IAAI,IAAI,CAAC,OAAO,EAAE;gBAAG,OAAO,CAAC,IAAI,CAAE,OAAkB,EAAG,KAAK,EAAG,GAAG,EAAG,IAAI,CAAE,CAAA;QACrG,CAAC;QAED,OAAO;QACP,GAAG,CACF,OAAqF,EACrF,OAAkB;YAElB,OAAO,WAAW,CACjB,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAE,OAAkB,EAAG,IAAI,CAAE,KAAK,CAAE,EAAG,KAAK,EAAG,IAAI,CAAE,EAC1E,GAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAChB,CAAA;QACF,CAAC;QAED,WAAW;QACX,MAAM,CACL,KAAkF,EAClF,MAAgB;YAEhB,IAAI,KAAK,GAAG,CAAC,CAAA;YAEb,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAG,CAAC;gBAC7B,MAAM,GAAG,IAAI,CAAE,KAAK,EAAG,CAAS,CAAA;YACjC,CAAC;YAED,OAAO,KAAK,GAAG,IAAI,CAAC,MAAM,EAAG,EAAG,KAAK,EAAG,CAAC;gBACxC,MAAM,GAAG,KAAK,CAAE,MAAgB,EAAG,IAAI,CAAE,KAAK,CAAE,EAAG,KAAK,EAAG,IAAW,CAAE,CAAA;YACzE,CAAC;YAED,OAAO,MAAM,CAAA;QACd,CAAC;QAED,OAAO;QACP,UAAU;YACT,OAAO,WAAW,CACjB,KAAK,CAAC,EAAE,CAAC,IAAI,CAAE,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAE,EACxC,GAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAChB,CAAA;QACF,CAAC;QAED,OAAO;QACP,KAAK,CAAE,IAAI,GAAG,CAAC,EAAG,EAAE,GAAG,IAAI,CAAC,MAAM;YACjC,OAAO,WAAW,CACjB,KAAK,CAAC,EAAE,CAAC,IAAI,CAAE,IAAI,GAAG,KAAK,CAAE,EAC7B,GAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAE,EAAE,EAAG,IAAI,CAAC,MAAM,CAAE,GAAG,IAAI,CACxC,CAAA;QACF,CAAC;QAED,OAAO;QACP,IAAI,CACH,KAAkF,EAClF,OAAkB;YAElB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAG,KAAK,GAAG,IAAI,CAAC,MAAM,EAAG,EAAG,KAAK,EAAG,CAAC;gBACtD,IAAI,KAAK,CAAC,IAAI,CAAE,OAAkB,EAAG,IAAI,CAAE,KAAK,CAAE,EAAG,KAAK,EAAG,IAAI,CAAE;oBAAG,OAAO,IAAI,CAAA;YAClF,CAAC;YACD,OAAO,KAAK,CAAA;QACb,CAAC;QAID,KAAK,CACJ,KAAkF,EAClF,OAAkB;YAElB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAG,KAAK,GAAG,IAAI,CAAC,MAAM,EAAG,EAAG,KAAK,EAAG,CAAC;gBACtD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAE,OAAkB,EAAG,IAAI,CAAE,KAAK,CAAE,EAAG,KAAK,EAAG,IAAqB,CAAE;oBAAG,OAAO,KAAK,CAAA;YACrG,CAAC;YACD,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,OAAO;YACN,OAAO,SAAS,CAAE,IAAI,SAAS,CAAE,uDAAuD,CAAG,CAAE,CAAA;QAC9F,CAAC;QAED,IAAI;YACH,OAAO,SAAS,CAAE,IAAI,SAAS,CAAE,kDAAkD,CAAG,CAAE,CAAA;QACzF,CAAC;QAED,OAAO,CAAE,MAAY;YACpB,OAAO,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,MAAM,CAAE,CAAA;QACjD,CAAC;QAED,CAAC,MAAM,CAAC,WAAW,CAAC;YACnB,OAAO,SAAS,EAAE,CAAA;QACnB,CAAC;KAED;IAtIY,mBAAiB,oBAsI7B,CAAA;AAEF,CAAC,EAtMS,CAAC,KAAD,CAAC,QAsMV;;;;ACtMD,IAAU,CAAC,CAqQV;AArQD,WAAU,CAAC;IAEV,SAAS,CAAC;QAET,YAAY;YAEX,IAAI,KAAK,GAAG,CAAC,CAAA;YAEb,MAAM,IAAI,GAAG,WAAW,CAAE,KAAK,CAAC,EAAE,CAAC,CAAE,EAAG,KAAK,EAAG,KAAK,CAAE,EAAG,GAAE,EAAE,CAAC,EAAE,CAAE,CAAA;YAEnE,iBAAiB,CAAE,IAAI,EAAE,IAAI,YAAY,KAAK,CAAE,CAAA;YAChD,iBAAiB,CAAE,IAAI,CAAC,MAAM,EAAG,EAAE,CAAE,CAAA;YAErC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAG,SAAS,CAAE,CAAA;YACzC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,CAAC,CAAE,CAAA;YAChC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,CAAC,CAAE,CAAA;YAChC,iBAAiB,CAAE,IAAI,CAAC,GAAG,CAAC,EAAG,SAAS,CAAE,CAAA;YAC1C,iBAAiB,CAAE,IAAI,CAAC,EAAE,CAAC,EAAG,SAAS,CAAE,CAAA;YAEzC,iBAAiB,CAAE,KAAK,EAAG,CAAC,CAAE,CAAA;QAE/B,CAAC;QAED,eAAe;YAEd,IAAI,KAAK,GAAG,CAAC,CAAA;YAEb,MAAM,IAAI,GAAG,WAAW,CAAE,KAAK,CAAC,EAAE,CAAC,CAAE,EAAG,KAAK,EAAG,KAAK,CAAE,CAAE,CAAA;YAEzD,iBAAiB,CAAE,IAAI,CAAC,MAAM,EAAG,MAAM,CAAC,iBAAiB,CAAE,CAAA;YAE3D,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,CAAC,CAAE,CAAA;YAChC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,CAAC,CAAE,CAAA;YAChC,iBAAiB,CAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAG,MAAM,CAAC,gBAAgB,CAAE,CAAA;YAC5E,iBAAiB,CAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAG,SAAS,CAAE,CAAA;YAE/D,iBAAiB,CAAE,KAAK,EAAG,CAAC,CAAE,CAAA;QAE/B,CAAC;QAED,WAAW;YAEV,MAAM,IAAI,GAAG,WAAW,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,GAAE,EAAE,CAAC,CAAC,CAAE,CAAA;YAE3C,iBAAiB,CAAE,IAAI,CAAC,QAAQ,EAAE,EAAG,WAAW,CAAE,CAAA;YAClD,iBAAiB,CAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAG,WAAW,CAAE,CAAA;QAElD,CAAC;QAED,QAAQ;YAEP,IAAI,GAAG,GAAG,EAAE,CAAA;YAEZ,KAAK,IAAI,CAAC,IAAI,WAAW,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAG,GAAE,EAAE,CAAC,CAAC,CAAE,EAAG,CAAC;gBACnD,GAAG,IAAI,CAAC,CAAA;YACT,CAAC;YAED,iBAAiB,CAAE,GAAG,EAAG,OAAO,CAAE,CAAA;QAEnC,CAAC;QAED,QAAQ;YAEP,IAAI,GAAG,GAAG,EAAE,CAAA;YAEZ,KAAK,IAAI,CAAC,IAAI,WAAW,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,GAAE,EAAE,CAAC,CAAC,CAAE,EAAG,CAAC;gBAC/C,GAAG,IAAI,CAAC,CAAA;YACT,CAAC;YAED,iBAAiB,CAAE,GAAG,EAAG,OAAO,CAAE,CAAA;QAEnC,CAAC;QAED,SAAS;YAER,IAAI,GAAG,GAAG,EAAE,CAAA;YAEZ,WAAW,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,GAAE,EAAE,CAAC,CAAC,CAAE,CAAC,OAAO,CAAE,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAE,CAAA;YAEvD,iBAAiB,CAAE,GAAG,EAAG,OAAO,CAAE,CAAA;QAEnC,CAAC;QAED,QAAQ;YAEP,IAAI,KAAK,GAAG,CAAC,CAAA;YAEb,MAAM,IAAI,GAAG,WAAW,EAAE,CAAC,KAAK,CAAE,CAAC,EAAG,CAAC,CAAE,CAAA;YAEzC,iBAAiB,CAAE,IAAI,CAAC,MAAM,CAAE,CAAE,CAAC,EAAG,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAE,EAAG,EAAE,CAAE,CAAA;YAC1D,iBAAiB,CAAE,IAAI,CAAC,MAAM,CAAE,CAAE,CAAC,EAAG,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAG,CAAC,CAAE,EAAG,EAAE,CAAE,CAAA;QAE/D,CAAC;QAED,aAAa;YAEZ,IAAI,MAAM,GAAG,CAAC,CAAA;YACd,IAAI,MAAM,GAAG,CAAC,CAAA;YAEd,MAAM,IAAI,GAAG,WAAW,CAAE,KAAK,CAAC,EAAE,CAAC,CAAE,EAAG,MAAM,EAAG,KAAK,CAAE,EAAG,GAAE,EAAE,CAAC,CAAC,CAAE,CAAC,MAAM,CACzE,CAAE,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,CAAE,EACrB,WAAW,CAAE,KAAK,CAAC,EAAE,CAAC,CAAE,EAAG,MAAM,EAAG,KAAK,CAAE,EAAG,GAAE,EAAE,CAAC,CAAC,CAAE,CACtD,CAAA;YAED,iBAAiB,CAAE,IAAI,EAAE,IAAI,YAAY,KAAK,CAAE,CAAA;YAChD,iBAAiB,CAAE,IAAI,CAAC,MAAM,EAAG,EAAE,CAAE,CAAA;YAErC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,CAAC,CAAE,CAAA;YAChC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,CAAC,CAAE,CAAA;YAChC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,CAAC,CAAE,CAAA;YAChC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,CAAC,CAAE,CAAA;YAChC,iBAAiB,CAAE,IAAI,CAAC,EAAE,CAAC,EAAG,CAAC,CAAE,CAAA;YACjC,iBAAiB,CAAE,IAAI,CAAC,EAAE,CAAC,EAAG,CAAC,CAAE,CAAA;YACjC,iBAAiB,CAAE,IAAI,CAAC,EAAE,CAAC,EAAG,SAAS,CAAE,CAAA;YAEzC,iBAAiB,CAAE,MAAM,EAAG,CAAC,CAAE,CAAA;YAC/B,iBAAiB,CAAE,MAAM,EAAG,CAAC,CAAE,CAAA;QAEhC,CAAC;QAED,aAAa;YAEZ,IAAI,KAAK,GAAG,CAAC,CAAA;YAEb,MAAM,IAAI,GAAG,WAAW,CAAE,KAAK,CAAC,EAAE,CAAC,CAAE,EAAG,KAAK,EAAG,KAAK,CAAE,EAAG,GAAE,EAAE,CAAC,EAAE,CAAE,CAAC,MAAM,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,KAAK,CAAE,CAAC,EAAG,CAAC,CAAE,CAAA;YAEvG,iBAAiB,CAAE,IAAI,EAAE,IAAI,YAAY,KAAK,CAAE,CAAA;YAChD,iBAAiB,CAAE,IAAI,CAAC,MAAM,EAAG,CAAC,CAAE,CAAA;YAEpC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,CAAC,CAAE,CAAA;YAChC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,CAAC,CAAE,CAAA;YAChC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,SAAS,CAAE,CAAA;YAExC,iBAAiB,CAAE,KAAK,EAAG,CAAC,CAAE,CAAA;QAE/B,CAAC;QAED,cAAc;YACb,IAAI,KAAK,GAAG,CAAC,CAAA;YAEb,MAAM,IAAI,GAAG,WAAW,CAAE,KAAK,CAAC,EAAE,CAAC,CAAE,EAAG,KAAK,EAAG,KAAK,CAAE,EAAG,GAAE,EAAE,CAAC,EAAE,CAAE,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YAE5F,iBAAiB,CAAE,IAAI,EAAE,IAAI,YAAY,KAAK,CAAE,CAAA;YAChD,iBAAiB,CAAE,IAAI,CAAC,MAAM,EAAG,CAAC,CAAE,CAAA;YAEpC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,CAAC,CAAE,CAAA;YAChC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,CAAC,CAAE,CAAA;YAChC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,SAAS,CAAE,CAAA;YACxC,iBAAiB,CAAE,KAAK,EAAG,CAAC,CAAE,CAAA;QAE/B,CAAC;QAED,UAAU;YAET,IAAI,MAAM,GAAG,CAAC,CAAA;YACd,IAAI,MAAM,GAAG,CAAC,CAAA;YAEd,MAAM,MAAM,GAAG,WAAW,CAAE,KAAK,CAAC,EAAE,CAAC,CAAE,EAAG,MAAM,EAAG,KAAK,CAAE,EAAG,GAAE,EAAE,CAAC,CAAC,CAAE,CAAA;YACrE,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CACxB,CAAE,IAAI,EAAG,KAAK,EAAG,IAAI,EAAE,EAAE;gBACxB,EAAG,MAAM,CAAA;gBACT,iBAAiB,CAAE,MAAM,EAAG,IAAI,CAAE,CAAA;gBAClC,OAAO,KAAK,GAAG,EAAE,CAAA;YAClB,CAAC,EACD,GAAE,EAAE,CAAC,CAAC,CACN,CAAA;YAED,iBAAiB,CAAE,IAAI,EAAE,MAAM,YAAY,KAAK,CAAE,CAAA;YAClD,iBAAiB,CAAE,MAAM,CAAC,MAAM,EAAG,CAAC,CAAE,CAAA;YAEtC,iBAAiB,CAAE,MAAM,CAAC,CAAC,CAAC,EAAG,EAAE,CAAE,CAAA;YACnC,iBAAiB,CAAE,MAAM,CAAC,CAAC,CAAC,EAAG,EAAE,CAAE,CAAA;YACnC,iBAAiB,CAAE,MAAM,CAAC,CAAC,CAAC,EAAG,SAAS,CAAE,CAAA;YAE1C,iBAAiB,CAAE,MAAM,EAAG,CAAC,CAAE,CAAA;YAC/B,iBAAiB,CAAE,MAAM,EAAG,CAAC,CAAE,CAAA;QAEhC,CAAC;QAED,YAAY;YAEX,IAAI,KAAK,GAAG,CAAC,CAAA;YAEb,MAAM,IAAI,GAAG,WAAW,CAAE,KAAK,CAAC,EAAE,CAAC,CAAE,EAAG,KAAK,EAAG,KAAK,CAAE,EAAG,GAAE,EAAE,CAAC,EAAE,CAAE,CAAC,KAAK,CAAE,CAAC,EAAG,CAAC,CAAE,CAAA;YAElF,iBAAiB,CAAE,IAAI,EAAE,IAAI,YAAY,KAAK,CAAE,CAAA;YAChD,iBAAiB,CAAE,IAAI,CAAC,MAAM,EAAG,CAAC,CAAE,CAAA;YAEpC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,CAAC,CAAE,CAAA;YAChC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,CAAC,CAAE,CAAA;YAChC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,SAAS,CAAE,CAAA;YAExC,iBAAiB,CAAE,KAAK,EAAG,CAAC,CAAE,CAAA;QAE/B,CAAC;QAED,WAAW;YAEV,IAAI,KAAK,GAAG,CAAC,CAAA;YAEb,iBAAiB,CAAE,IAAI,EAAE,WAAW,CAAE,KAAK,CAAC,EAAE,CAAC,CAAE,EAAG,KAAK,EAAG,KAAK,CAAE,EAAG,GAAE,EAAE,CAAC,CAAC,CAAE,CAAC,IAAI,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAE,CAAE,CAAA;YAEpG,iBAAiB,CAAE,KAAK,EAAG,CAAC,CAAE,CAAA;YAE9B,iBAAiB,CAAE,KAAK,EAAE,WAAW,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,GAAE,EAAE,CAAC,CAAC,CAAE,CAAC,IAAI,CAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAE,CAAE,CAAA;YAC5E,iBAAiB,CAAE,IAAI,EAAE,WAAW,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,IAAI,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAE,CAAE,CAAA;QACpE,CAAC;QAED,YAAY;YAEX,IAAI,KAAK,GAAG,CAAC,CAAA;YAEb,iBAAiB,CAAE,KAAK,EAAE,WAAW,CAAE,KAAK,CAAC,EAAE,CAAC,CAAE,EAAG,KAAK,EAAG,KAAK,CAAE,EAAG,GAAE,EAAE,CAAC,CAAC,CAAE,CAAC,KAAK,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAE,CAAE,CAAA;YAErG,iBAAiB,CAAE,KAAK,EAAG,CAAC,CAAE,CAAA;YAE9B,iBAAiB,CAAE,IAAI,EAAE,WAAW,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,GAAE,EAAE,CAAC,CAAC,CAAE,CAAC,KAAK,CAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAE,CAAE,CAAA;YAC7E,iBAAiB,CAAE,KAAK,EAAE,WAAW,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,KAAK,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAE,CAAE,CAAA;QACtE,CAAC;QAED,QAAQ;YAEP,IAAI,KAAK,GAAG,CAAC,CAAA;YAEb,MAAM,IAAI,GAAG,WAAW,CAAC,CAAE,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,CAAE,CAAC,CAAC,GAAG,CAAE,CAAC,CAAC,EAAE,CAAC,CAAE,EAAG,KAAK,EAAG,CAAC,GAAG,EAAE,CAAE,CAAE,CAAC,KAAK,CAAE,CAAC,CAAE,CAAA;YAEhG,iBAAiB,CAAE,IAAI,EAAE,IAAI,YAAY,KAAK,CAAE,CAAA;YAChD,iBAAiB,CAAE,IAAI,CAAC,MAAM,EAAG,CAAC,CAAE,CAAA;YAEpC,iBAAiB,CAAE,KAAK,EAAG,CAAC,CAAE,CAAA;YAE9B,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,EAAE,CAAE,CAAA;YACjC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,EAAE,CAAE,CAAA;YACjC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,SAAS,CAAE,CAAA;YAExC,iBAAiB,CAAE,KAAK,EAAG,CAAC,CAAE,CAAA;QAE/B,CAAC;QAED,sBAAsB;YAErB,MAAM,IAAI,GAAG,WAAW,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,GAAE,EAAE,CAAC,CAAC,CAAE,CAAA;YAE3C,gBAAgB,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAE,CAAC,CAAE,EAAG,SAAS,CAAE,CAAA;YACnD,gBAAgB,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,EAAG,SAAS,CAAE,CAAA;YAE/C,gBAAgB,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAE,CAAC,CAAE,EAAG,SAAS,CAAE,CAAA;YACtD,gBAAgB,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAG,SAAS,CAAE,CAAA;YAEjD,gBAAgB,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAE,CAAC,EAAG,CAAC,CAAE,EAAG,SAAS,CAAE,CAAA;YACzD,gBAAgB,CAAE,GAAE,EAAE,CAAC,IAAI,CAAE,CAAC,CAAE,GAAG,CAAC,EAAG,SAAS,CAAE,CAAA;YAElD,gBAAgB,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAG,SAAS,CAAE,CAAA;YACnD,gBAAgB,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAG,SAAS,CAAE,CAAA;YAEhD,iBAAiB,CAAE,IAAI,CAAC,QAAQ,EAAE,EAAG,WAAW,CAAE,CAAA;QAEnD,CAAC;KAED,CAAC,CAAA;AAEH,CAAC,EArQS,CAAC,KAAD,CAAC,QAqQV;;;;ACrQD,oBAAoB;AACpB,IAAU,CAAC,CAiLV;AAjLD,WAAU,CAAC;IAEV,SAAS,CAAC;QAET,oBAAoB;YAEnB,cAAc,CAAE,iBAAiB,CAAE,IAAI,EAAG,IAAI,CAAE,CAAE,CAAA;YAClD,cAAc,CAAE,iBAAiB,CAAE,SAAS,EAAG,SAAS,CAAE,CAAE,CAAA;YAE5D,eAAe,CAAE,iBAAiB,CAAE,SAAS,EAAG,IAAI,CAAE,CAAE,CAAA;YACxD,eAAe,CAAE,iBAAiB,CAAE,EAAE,EAAG,IAAI,CAAE,CAAE,CAAA;QAElD,CAAC;QAED,QAAQ;YAEP,cAAc,CAAE,iBAAiB,CAAE,CAAC,EAAG,CAAC,CAAE,CAAE,CAAA;YAC5C,cAAc,CAAE,iBAAiB,CAAE,MAAM,CAAC,GAAG,EAAG,MAAM,CAAC,GAAG,CAAE,CAAE,CAAA;YAC9D,eAAe,CAAE,iBAAiB,CAAE,CAAC,EAAG,CAAC,CAAE,CAAE,CAAA;YAE7C,cAAc,CAAE,iBAAiB,CAAE,MAAM,CAAE,CAAC,CAAE,EAAG,MAAM,CAAE,CAAC,CAAE,CAAE,CAAE,CAAA;YAChE,eAAe,CAAE,iBAAiB,CAAE,MAAM,CAAE,CAAC,CAAE,EAAG,MAAM,CAAE,CAAC,CAAE,CAAE,CAAE,CAAA;QAElE,CAAC;QAED,MAAM;YACL,cAAc,CAAE,iBAAiB,CAAE,EAAE,EAAG,EAAE,CAAE,CAAE,CAAA;YAC9C,eAAe,CAAE,iBAAiB,CAAE,EAAE,CAAC,EAAG,CAAC,EAAE,EAAG,EAAE,CAAC,EAAG,CAAC,EAAE,CAAE,CAAE,CAAA;YAC7D,eAAe,CAAE,iBAAiB,CAAE,EAAE,CAAC,EAAG,CAAC,EAAE,EAAG,EAAE,CAAC,EAAG,CAAC,EAAE,CAAE,CAAE,CAAA;YAC7D,eAAe,CAAE,iBAAiB,CAAE,EAAE,EAAG,EAAE,CAAC,EAAG,SAAS,EAAE,CAAE,CAAE,CAAA;YAC9D,eAAe,CAAE,iBAAiB,CAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAE,CAAE,CAAA;YACvE,cAAc,CAAE,iBAAiB,CAAE,EAAE,CAAC,EAAG,EAAE,CAAC,EAAG,CAAC,EAAE,EAAE,EAAG,EAAE,CAAC,EAAG,EAAE,CAAC,EAAG,CAAC,EAAE,EAAE,CAAE,CAAE,CAAA;YAC5E,cAAc,CAAE,iBAAiB,CAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAE,CAAE,CAAA;QAChF,CAAC;QAED,OAAO;YAEN,cAAc,CAAE,iBAAiB,CAAE,EAAE,EAAG,EAAE,CAAE,CAAE,CAAA;YAC9C,cAAc,CAAE,iBAAiB,CAAE,CAAE,CAAC,EAAG,CAAC,CAAC,CAAC,CAAE,EAAG,CAAE,CAAC,EAAG,CAAC,CAAC,CAAC,CAAE,CAAE,CAAE,CAAA;YAEhE,eAAe,CAAE,iBAAiB,CAAE,CAAE,CAAC,EAAG,CAAC,CAAE,EAAG,CAAE,CAAC,EAAG,CAAC,CAAE,CAAE,CAAE,CAAA;YAC7D,eAAe,CAAE,iBAAiB,CAAE,CAAE,CAAC,EAAG,CAAC,EAAI,EAAG,CAAE,CAAC,EAAG,CAAC,EAAG,SAAS,CAAE,CAAE,CAAE,CAAA;YAE3E,eAAe,CAAE,iBAAiB,CAAE,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,IAAI,KAAK,EAAE,CAAE,CAAE,CAAA;YAC7E,eAAe,CAAE,iBAAiB,CAAE,WAAW,EAAE,EAAE,WAAW,EAAE,CAAE,CAAE,CAAA;QAErE,CAAC;QAED,wBAAwB;YAEvB,MAAM,KAAM,SAAQ,MAAM;aAAG;YAC7B,eAAe,CAAE,iBAAiB,CAAE,IAAI,KAAK,EAAG,IAAI,KAAK,CAAE,CAAE,CAAA;YAE7D,eAAe,CAAE,iBAAiB,CAAE,GAAE,EAAE,CAAC,CAAC,EAAG,GAAE,EAAE,CAAA,CAAC,CAAE,CAAE,CAAA;YACtD,eAAe,CAAE,iBAAiB,CAAE,IAAI,UAAU,CAAE,YAAY,CAAE,EAAG,IAAI,UAAU,CAAE,YAAY,CAAE,CAAE,CAAE,CAAA;QAExG,CAAC;QAED,mBAAmB;YAClB,MAAM,GAAG,GAAG,MAAM,EAAE,CAAA;YACpB,cAAc,CAAE,iBAAiB,CAAE,EAAE,CAAE,GAAG,CAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,IAAI,EAAE,CAAE,CAAE,CAAA;YAC3E,eAAe,CAAE,iBAAiB,CAAE,EAAE,CAAE,MAAM,EAAE,CAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAE,MAAM,EAAE,CAAE,EAAE,IAAI,EAAE,CAAE,CAAE,CAAA;QACvF,CAAC;QAED,kCAAkC;YAEjC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAG,EAAE,EAAE,CACrB;YAAC,CAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAEvB,MAAM,CAAC,GAAG,EAAE,GAAG,EAAG,EAAE,EAAE,CACrB;YAAC,CAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAEvB,cAAc,CAAE,iBAAiB,CAAE,CAAC,EAAG,CAAC,CAAE,CAAE,CAAA;QAE7C,CAAC;QAED,oDAAoD;YACnD,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAyB,EAAE,CAAA;YACzD,MAAM,SAAS,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAyB,EAAE,CAAA;YAC9D,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAA;YAC9B,MAAM,SAAS,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;YAC9C,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAA;YAC9B,MAAM,SAAS,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;YAE9C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;YAChB,SAAS,CAAC,IAAI,GAAG,SAAS,CAAA;YAE1B,eAAe;YACf,eAAe,CAAE,iBAAiB,CAAE,IAAI,EAAG,EAAS,CAAE,CAAE,CAAA;YACxD,eAAe,CAAE,iBAAiB,CAAE,IAAI,EAAG,EAAS,CAAE,CAAE,CAAA;YACxD,eAAe,CAAE,iBAAiB,CAAE,IAAI,EAAG,EAAS,CAAE,CAAE,CAAA;YAExD,cAAc,CAAE,iBAAiB,CAAE,IAAI,EAAG,SAAS,CAAE,CAAE,CAAA;QAExD,CAAC;QAED,MAAM;YACL,cAAc,CAAE,iBAAiB,CAAE,IAAI,IAAI,CAAE,KAAK,CAAE,EAAG,IAAI,IAAI,CAAE,KAAK,CAAE,CAAE,CAAE,CAAA;YAC5E,eAAe,CAAE,iBAAiB,CAAE,IAAI,IAAI,CAAE,KAAK,CAAE,EAAG,IAAI,IAAI,CAAE,KAAK,CAAE,CAAE,CAAE,CAAA;QAC9E,CAAC;QAED,QAAQ;YACP,cAAc,CAAE,iBAAiB,CAAE,SAAS,EAAG,SAAS,CAAE,CAAE,CAAA;YAC5D,eAAe,CAAE,iBAAiB,CAAE,SAAS,EAAG,SAAS,CAAE,CAAE,CAAA;YAC7D,eAAe,CAAE,iBAAiB,CAAE,SAAS,EAAG,QAAQ,CAAE,CAAE,CAAA;QAC7D,CAAC;QAED,OAAO;YAEN,eAAe,CAAE,iBAAiB,CAAE,IAAI,KAAK,CAAE,KAAK,CAAE,EAAG,IAAI,KAAK,CAAE,KAAK,CAAE,CAAE,CAAE,CAAA;YAE/E,MAAM,IAAI,GAAG,CAAE,OAAe,EAAE,EAAE,CAAC,IAAI,KAAK,CAAE,OAAO,CAAE,CAAA;YAEvD,cAAc,CAAE,iBAAiB,CAChC,GAAI,CAAE,KAAK,EAAG,KAAK,CAAE,CAAC,GAAG,CAAE,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAE,GAAG,CAAE,CAAsB,CACxE,CAAE,CAAA;YAEH,eAAe,CAAE,iBAAiB,CACjC,GAAI,CAAE,KAAK,EAAG,KAAK,CAAE,CAAC,GAAG,CAAE,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAE,GAAG,CAAE,CAAsB,CACxE,CAAE,CAAA;QAEJ,CAAC;QAED,KAAK;YACJ,cAAc,CAAE,iBAAiB,CAAE,IAAI,GAAG,EAAG,IAAI,GAAG,CAAE,CAAE,CAAA;YACxD,cAAc,CAAE,iBAAiB,CAAE,IAAI,GAAG,CAAC,CAAE,CAAE,CAAC,EAAG,CAAC,CAAC,CAAC,CAAE,CAAE,CAAC,EAAG,IAAI,GAAG,CAAC,CAAE,CAAE,CAAC,EAAG,CAAC,CAAC,CAAC,CAAE,CAAE,CAAC,CAAE,CAAE,CAAA;YAC1F,cAAc,CAAE,iBAAiB,CAAE,IAAI,GAAG,CAAC,CAAE,CAAE,CAAC,CAAC,CAAC,EAAG,CAAC,CAAE,CAAE,CAAC,EAAG,IAAI,GAAG,CAAC,CAAE,CAAE,CAAC,CAAC,CAAC,EAAG,CAAC,CAAE,CAAE,CAAC,CAAE,CAAE,CAAA;YAC1F,eAAe,CAAE,iBAAiB,CAAE,IAAI,GAAG,CAAC,CAAE,CAAE,CAAC,EAAG,CAAC,CAAE,CAAE,CAAC,EAAG,IAAI,GAAG,CAAC,CAAE,CAAE,CAAC,EAAG,CAAC,CAAE,CAAE,CAAC,CAAE,CAAE,CAAA;YACvF,eAAe,CAAE,iBAAiB,CAAE,IAAI,GAAG,CAAC,CAAE,CAAE,CAAC,CAAC,CAAC,EAAG,CAAC,CAAE,CAAE,CAAC,EAAG,IAAI,GAAG,CAAC,CAAE,CAAE,CAAC,CAAC,CAAC,EAAG,CAAC,CAAE,CAAE,CAAC,CAAE,CAAE,CAAA;QAC5F,CAAC;QAED,KAAK;YACJ,cAAc,CAAE,iBAAiB,CAAE,IAAI,GAAG,EAAG,IAAI,GAAG,CAAE,CAAE,CAAA;YACxD,cAAc,CAAE,iBAAiB,CAAE,IAAI,GAAG,CAAC,CAAE,CAAC,EAAG,CAAC,CAAC,CAAC,CAAE,CAAC,EAAG,IAAI,GAAG,CAAC,CAAE,CAAC,EAAG,CAAC,CAAC,CAAC,CAAE,CAAC,CAAE,CAAE,CAAA;YAClF,eAAe,CAAE,iBAAiB,CAAE,IAAI,GAAG,CAAC,CAAE,CAAC,CAAE,CAAC,EAAG,IAAI,GAAG,CAAC,CAAE,CAAC,CAAE,CAAC,CAAE,CAAE,CAAA;QACxE,CAAC;QAED,YAAY;YACX,cAAc,CAAE,iBAAiB,CAAE,IAAI,UAAU,EAAG,IAAI,UAAU,CAAE,CAAE,CAAA;YACtE,cAAc,CAAE,iBAAiB,CAAE,IAAI,UAAU,CAAC,CAAE,CAAC,CAAE,CAAC,EAAG,IAAI,UAAU,CAAC,CAAE,CAAC,CAAE,CAAC,CAAE,CAAE,CAAA;YACpF,eAAe,CAAE,iBAAiB,CAAE,IAAI,UAAU,CAAC,CAAE,CAAC,CAAE,CAAC,EAAG,IAAI,UAAU,CAAC,CAAE,CAAC,CAAE,CAAC,CAAE,CAAE,CAAA;QACtF,CAAC;QAED,UAAU;YACT,cAAc,CAAE,iBAAiB,CAAE,IAAI,QAAQ,CAAE,IAAI,UAAU,EAAE,CAAC,MAAM,CAAE,EAAG,IAAI,QAAQ,CAAE,IAAI,UAAU,EAAE,CAAC,MAAM,CAAE,CAAE,CAAE,CAAA;YACxH,cAAc,CAAE,iBAAiB,CAAE,IAAI,QAAQ,CAAE,IAAI,UAAU,CAAC,CAAE,CAAC,CAAE,CAAC,CAAC,MAAM,CAAE,EAAG,IAAI,QAAQ,CAAE,IAAI,UAAU,CAAC,CAAE,CAAC,CAAE,CAAC,CAAC,MAAM,CAAE,CAAE,CAAE,CAAA;YAClI,eAAe,CAAE,iBAAiB,CAAE,IAAI,QAAQ,CAAE,IAAI,UAAU,CAAC,CAAE,CAAC,CAAE,CAAC,CAAE,MAAM,CAAE,EAAG,IAAI,QAAQ,CAAE,IAAI,UAAU,CAAC,CAAE,CAAC,CAAE,CAAC,CAAC,MAAM,CAAE,CAAE,CAAE,CAAA;QACrI,CAAC;QAED,aAAa;YAEZ,MAAM,IAAI;gBAGC;gBACA;gBAFV,YACU,IAAY,EACZ,OAAO,IAAI,CAAC,MAAM,EAAE;oBADpB,SAAI,GAAJ,IAAI,CAAQ;oBACZ,SAAI,GAAJ,IAAI,CAAgB;gBAC3B,CAAC;gBAEJ,CAAE,MAAM,CAAC,WAAW,CAAE,CAAE,IAAqC;oBAC5D,OAAO,IAAI,CAAC,IAAI,CAAA;gBACjB,CAAC;aAED;YAED,cAAc,CAAE,iBAAiB,CAAE,IAAI,IAAI,CAAE,KAAK,CAAE,EAAE,IAAI,IAAI,CAAE,KAAK,CAAE,CAAE,CAAE,CAAA;YAC3E,eAAe,CAAE,iBAAiB,CAAE,IAAI,IAAI,CAAE,KAAK,CAAE,EAAE,IAAI,IAAI,CAAE,MAAM,CAAE,CAAE,CAAE,CAAA;QAE9E,CAAC;QAED,UAAU;YACT,cAAc,CAAE,iBAAiB,CAAE,IAAI,eAAe,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,eAAe,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAE,CAAE,CAAA;YAC/G,eAAe,CAAE,iBAAiB,CAAE,IAAI,eAAe,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,eAAe,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAE,CAAE,CAAA;YAChH,eAAe,CAAE,iBAAiB,CAAE,IAAI,eAAe,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,eAAe,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAE,CAAE,CAAA;QACzI,CAAC;KAED,CAAC,CAAA;AAEH,CAAC,EAjLS,CAAC,KAAD,CAAC,QAiLV;;;;AClLD,IAAU,CAAC,CA6GV;AA7GD,WAAU,CAAC;IAEV;;;OAGG;IACH,SAAgB,cAAc,CAAE,KAAW;QAC1C,IAAI,KAAK;YAAG,OAAM;QAClB,SAAS,CAAE,IAAI,KAAK,CAAE,GAAG,KAAK,SAAS,CAAE,CAAE,CAAA;IAC5C,CAAC;IAHe,gBAAc,iBAG7B,CAAA;IAED;;;OAGG;IACH,SAAgB,eAAe,CAAE,KAAW;QAC3C,IAAI,CAAC,KAAK;YAAG,OAAM;QACnB,SAAS,CAAE,IAAI,KAAK,CAAE,GAAG,KAAK,UAAU,CAAE,CAAE,CAAA;IAC7C,CAAC;IAHe,iBAAe,kBAG9B,CAAA;IAED;;;;;;;OAOG;IACH,SAAgB,gBAAgB,CAC/B,OAAiB,EACjB,UAAkD;QAGlD,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,CAAA;QAExB,IAAI,CAAC;YACJ,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,gBAAgB,CAAA;YAEhC,OAAO,EAAE,CAAA;QAEV,CAAC;QAAC,OAAO,KAAU,EAAG,CAAC;YAEtB,CAAC,CAAC,SAAS,GAAG,IAAI,CAAA;YAElB,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAG,CAAC;gBACrC,iBAAiB,CAAE,KAAK,CAAC,OAAO,IAAI,KAAK,EAAE,UAAU,CAAE,CAAA;YACxD,CAAC;iBAAM,CAAC;gBACP,iBAAiB,CAAE,KAAK,YAAY,UAAU,EAAE,IAAI,CAAE,CAAA;YACvD,CAAC;YAED,OAAO,KAAK,CAAA;QAEb,CAAC;gBAAS,CAAC;YACV,CAAC,CAAC,SAAS,GAAG,IAAI,CAAA;QACnB,CAAC;QAED,SAAS,CAAE,IAAI,KAAK,CAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAE,CAAE,CAAA;IAC1E,CAAC;IA7Be,kBAAgB,mBA6B/B,CAAA;IAED,wCAAwC;IACxC,SAAgB,gBAAgB,CAAW,GAAI,IAAmC;QACjF,iBAAiB,CAAE,GAAI,IAAI,CAAE,CAAA;IAC9B,CAAC;IAFe,kBAAgB,mBAE/B,CAAA;IAED;;;;;;OAMG;IACH,SAAgB,kBAAkB,CAAE,GAAI,IAA6B;QAEpE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAG,EAAE,CAAC,EAAG,CAAC;YACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAG,EAAE,CAAC,EAAG,CAAC;gBAEzC,IAAI,CAAC,KAAK,CAAC;oBAAG,SAAQ;gBACtB,IAAI,CAAC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAE;oBAAG,SAAQ;gBAErD,OAAO,SAAS,CAAE,IAAI,KAAK,CAC1B,8BAA8B,EAC9B,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACzC,CAAE,CAAA;YAEJ,CAAC;QACF,CAAC;IAEF,CAAC;IAhBe,oBAAkB,qBAgBjC,CAAA;IAED;;;;;;OAMG;IACH,SAAgB,iBAAiB,CAAW,GAAI,IAAoC;QACnF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAG,EAAE,CAAC,EAAG,CAAC;YAEzC,IAAI,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,IAAI,CAAC,CAAC,CAAC,CAAE;gBAAG,SAAQ;YAErD,OAAO,SAAS,CAAE,IAAI,KAAK,CAC1B,4BAA4B,EAC5B,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACvC,CAAE,CAAA;QAEJ,CAAC;IACF,CAAC;IAXe,mBAAiB,oBAWhC,CAAA;AAEF,CAAC,EA7GS,CAAC,KAAD,CAAC,QA6GV;;;;AC7GD,IAAU,CAAC,CA4CV;AA5CD,WAAU,CAAC;IACV,SAAS,CAAE;QAEV,eAAe;YACd,eAAe,CAAE,CAAC,CAAE,CAAA;QACrB,CAAC;QAED,cAAc;YACb,cAAc,CAAE,CAAC,CAAE,CAAA;QACpB,CAAC;QAED,mBAAmB;YAClB,iBAAiB,CAAE,CAAC,EAAG,CAAC,CAAE,CAAA;QAC3B,CAAC;QAED,qBAAqB;YACpB,iBAAiB,CAAE,CAAC,EAAG,CAAC,EAAG,CAAC,CAAE,CAAA;QAC/B,CAAC;QAED,oBAAoB;YACnB,kBAAkB,CAAE,CAAE,CAAC,CAAE,EAAG,CAAE,CAAC,CAAE,CAAE,CAAA;QACpC,CAAC;QAED,sBAAsB;YACrB,kBAAkB,CAAE,CAAE,CAAC,CAAE,EAAG,CAAE,CAAC,CAAE,EAAG,CAAE,CAAC,CAAE,CAAE,CAAA;QAC5C,CAAC;QAED,mBAAmB;YAClB,iBAAiB,CAAE,CAAE,CAAC,CAAE,EAAG,CAAE,CAAC,CAAE,CAAE,CAAA;QACnC,CAAC;QAED,qBAAqB;YACpB,iBAAiB,CAAE,CAAE,CAAC,CAAE,EAAG,CAAE,CAAC,CAAE,EAAG,CAAE,CAAC,CAAE,CAAE,CAAA;QAC3C,CAAC;QAED,0BAA0B;YACzB,iBAAiB,CAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAE,CAAA;QACxC,CAAC;QAED,4BAA4B;YAC3B,iBAAiB,CAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAE,CAAA;QAClD,CAAC;KAED,CAAE,CAAA;AACJ,CAAC,EA5CS,CAAC,KAAD,CAAC,QA4CV;;;;AC5CD,IAAU,CAAC,CAkHV;AAlHD,WAAU,CAAC;IACV,SAAS,CAAC;QAET,KAAK;YACJ,MAAM,KAAK,GAAG,aAAa,CAAE,EAAS,EAAG,GAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAG,GAAG,EAAE,CAAC,CAAE,CAAA;YAC/D,iBAAiB,CAAE,KAAK,CAAC,GAAG,EAAG,GAAG,CAAE,CAAA;QACrC,CAAC;QAED,KAAK;YACJ,MAAM,KAAK,GAAG,aAAa,CAAE,EAAS,EAAG,GAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAG,GAAG,EAAE,CAAC,CAAE,CAAA;YAC/D,iBAAiB,CAAE,KAAK,IAAI,KAAK,EAAG,IAAI,CAAE,CAAA;QAC3C,CAAC;QAED,KAAK;YACJ,MAAM,MAAM,GAAG,EAAE,GAAG,EAAG,GAAG,EAAE,CAAA;YAC5B,MAAM,KAAK,GAAG,aAAa,CAAE,EAAS,EAAG,GAAE,EAAE,CAAC,MAAM,CAAE,CAAA;YACtD,KAAK,CAAC,GAAG,GAAG,GAAG,CAAA;YACf,iBAAiB,CAAE,MAAM,CAAC,GAAG,EAAG,GAAG,CAAE,CAAA;QACtC,CAAC;QAED,0BAA0B;YAEzB,MAAM,KAAK,GAAG,aAAa,CAAE,EAAS,EAAG,GAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAG,GAAG,EAAE,CAAC,CAAE,CAAA;YAE/D,gBAAgB,CACf,MAAM,CAAC,wBAAwB,CAAE,KAAK,EAAG,KAAK,CAAE,EAChD;gBACC,KAAK,EAAE,GAAG;gBACV,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,IAAI;gBAChB,YAAY,EAAE,IAAI;aAClB,CACD,CAAA;QAEF,CAAC;QAED,SAAS;YAER,MAAM,KAAK,GAAG,aAAa,CAC1B,EAAS,EACT,GAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAG,GAAG,EAAG,CAAE,MAAM,CAAC,WAAW,CAAE,EAAG,KAAK,EAAE,CAAC,CACrD,CAAA;YAED,gBAAgB,CACf,OAAO,CAAC,OAAO,CAAE,KAAK,CAAE,EACxB,CAAE,KAAK,EAAG,MAAM,CAAC,WAAW,CAAE,CAC9B,CAAA;QAEF,CAAC;QAED,gBAAgB;YAEf,MAAM,GAAG;aAAG;YAEZ,MAAM,KAAK,GAAG,aAAa,CAC1B,EAAS,EACT,GAAE,EAAE,CAAC,IAAI,GAAG,CACZ,CAAA;YAED,iBAAiB,CAChB,MAAM,CAAC,cAAc,CAAE,KAAK,CAAE,EAC9B,GAAG,CAAC,SAAS,CACb,CAAA;QAEF,CAAC;QAED,gBAAgB;YAEf,MAAM,GAAG;aAAG;YACZ,MAAM,MAAM,GAAG,EAAE,CAAA;YAEjB,MAAM,KAAK,GAAG,aAAa,CAC1B,EAAE,EACF,GAAE,EAAE,CAAC,MAAM,CACX,CAAA;YAED,MAAM,CAAC,cAAc,CAAE,KAAK,EAAG,GAAG,CAAC,SAAS,CAAE,CAAA;YAE9C,iBAAiB,CAChB,MAAM,CAAC,cAAc,CAAE,MAAM,CAAE,EAC/B,GAAG,CAAC,SAAS,CACb,CAAA;QAEF,CAAC;QAED,YAAY;YAEX,MAAM,GAAG;aAAG;YAEZ,MAAM,KAAK,GAAG,aAAa,CAC1B,EAAE,EACF,GAAE,EAAE,CAAC,IAAI,GAAG,CACZ,CAAA;YAED,cAAc,CAAE,KAAK,YAAY,GAAG,CAAE,CAAA;YACtC,cAAc,CAAE,KAAK,YAAY,aAAa,CAAE,CAAA;QAEjD,CAAC;QAED,UAAU;YAET,MAAM,GAAG;aAAG;YAEZ,MAAM,KAAK,GAAG,aAAa,CAC1B,EAAE,EACF,GAAE,EAAE,CAAC,IAAI,GAAG,CACZ,CAAA;YAED,cAAc,CAAE,KAAK,YAAY,GAAG,CAAE,CAAA;YACtC,cAAc,CAAE,KAAK,YAAY,aAAa,CAAE,CAAA;QAEjD,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EAlHS,CAAC,KAAD,CAAC,QAkHV;;;;AClHD,IAAU,CAAC,CA6DV;AA7DD,WAAU,GAAC;IACV,SAAS,CAAE;QACV,mBAAmB,CAAE,CAAC;YACrB,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YAClD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YAEhC,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;YACvC,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;YAC/B,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;YAC/B,iBAAiB,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;QACnC,CAAC;QAED,8BAA8B,CAAE,CAAC;YAChC,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YAClD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YAE5B,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;YACvC,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;YAC/B,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;YAC/B,iBAAiB,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QACpC,CAAC;QAED,sBAAsB,CAAE,CAAC;YACxB,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YAClD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YAE9B,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;YAC/B,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;YAC/B,iBAAiB,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;YAElC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YAE/B,iBAAiB,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;YAChC,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;QACpC,CAAC;QAED,uBAAuB,CAAE,CAAC;YACzB,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YAClD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;YAEhC,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;YAC/B,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;YAC/B,iBAAiB,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;QACnC,CAAC;QAED,2BAA2B,CAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YAElD,gBAAgB,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,8DAA8D,CAAE,CAAA;YAC1G,gBAAgB,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,4CAA4C,CAAE,CAAA;YACvF,gBAAgB,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,6CAA6C,CAAE,CAAA;QAC1F,CAAC;QAED,gBAAgB,CAAE,CAAC;YAClB,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YAClD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;YAEtC,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAA;QAC/D,CAAC;KAED,CAAE,CAAA;AACJ,CAAC,EA7DS,CAAC,KAAD,CAAC,QA6DV;;;;AC7DD,IAAU,CAAC,CAcV;AAdD,WAAU,CAAC;IACV,SAAS,CAAE;QAEV,0BAA0B;YACzB,iBAAiB,CAAE,UAAU,CAAE,CAAC,CAAE,CAAE,CAAC,CAAE,EAAG,CAAC,CAAE,CAAA;YAC7C,iBAAiB,CAAE,UAAU,CAAE,KAAK,CAAE,CAAE,CAAC,CAAE,EAAG,KAAK,CAAE,CAAA;YACrD,iBAAiB,CAAE,UAAU,CAAE,IAAI,CAAE,CAAE,CAAC,CAAE,EAAG,KAAK,CAAC,CAAE,CAAA;YACrD,iBAAiB,CAAE,UAAU,CAAE,KAAK,CAAC,CAAE,CAAE,CAAC,CAAE,EAAG,KAAK,CAAC,CAAE,CAAA;YAEvD,iBAAiB,CAAE,UAAU,CAAY,KAAK,CAAC,CAAE,CAAC,GAAG,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAE,CAAE,CAAC,CAAE,EAAG,KAAK,CAAC,CAAE,CAAA;YAC1F,iBAAiB,CAAE,UAAU,CAAE,CAAC,CAAE,CAAC,GAAG,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAE,CAAE,CAAC,CAAE,EAAG,GAAG,CAAE,CAAA;QACzE,CAAC;KAED,CAAE,CAAA;AACJ,CAAC,EAdS,CAAC,KAAD,CAAC,QAcV;;;;ACdD,IAAU,CAAC,CAoJV;AApJD,WAAU,GAAC;IAEV,SAAS,KAAK,CAAE,IAAgB,EAAE,KAAa;QAC9C,iBAAiB,CAChB,IAAI,CAAC,QAAQ,EAAE,EACf,EAAE,CAAC,sBAAsB,CAAE,KAAK,CAAE,CAAC,QAAQ,EAAE,CAC7C,CAAA;IACF,CAAC;IAED,SAAS,CAAE;QAEV,WAAW,CAAC,CAAC;YAEZ,KAAK,CACJ,CAAC,CAAC,sBAAsB,CAAE;;KAEzB,CAAC,CAAC,MAAM,CAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAG,GAAG,EAAG,GAAG,EAAG,GAAG,CAAE,EACrD;;KAEC,CACD,CAAA;YACD,KAAK,CACJ,CAAC,CAAC,sBAAsB,CAAC;;KAExB,CAAC,CAAC,MAAM,CAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAG,GAAG,EAAG,GAAG,EAAG,GAAG,EAAG,GAAG,CAAE,EAC3D;;KAEC,CACD,CAAA;YAED,KAAK,CACJ,CAAC,CAAC,sBAAsB,CAAC;;KAExB,CAAC;iBACA,MAAM,CAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,CAAE,EAC9C;;KAEC,CACD,CAAA;YACD,KAAK,CACJ,CAAC,CAAC,sBAAsB,CAAC;;KAExB,CAAC;iBACA,MAAM,CAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,CAAE,EAClD;;;KAGC,CACD,CAAA;YAED,KAAK,CACJ,CAAC,CAAC,sBAAsB,CAAC;;KAExB,CAAC;iBACA,MAAM,CAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAG,IAAI,EAAG,IAAI,EAAG,IAAI,CAAE,EACvD;;KAEC,CACD,CAAA;YACD,KAAK,CACJ,CAAC,CAAC,sBAAsB,CAAC;;KAExB,CAAC;iBACA,MAAM,CAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAG,IAAI,EAAG,IAAI,EAAG,IAAI,EAAG,IAAI,CAAE,EAC9D;;;KAGC,CACD,CAAA;QAEF,CAAC;QAED,UAAU,CAAC,CAAC;YAEX,KAAK,CACJ,CAAC,CAAC,sBAAsB,CAAC;;KAExB,CAAC,CAAC,MAAM,CAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAE,CAAC,CAAC,CAAC,EACjC;;KAEC,CACD,CAAA;YAED,KAAK,CACJ,CAAC,CAAC,sBAAsB,CAAC;;KAExB,CAAC,CAAC,MAAM,CAAE,CAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAE,CAAE,CAAC,CAAC,CAAC,EAC1C;;KAEC,CACD,CAAA;YAED,KAAK,CACJ,CAAC,CAAC,sBAAsB,CAAC;;KAExB,CAAC,CAAC,MAAM,CAAE,CAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAE,CAAC,CAAC,CAAC,EACjF;;;;KAIC,CACD,CAAA;QAEF,CAAC;QAED,UAAU,CAAC,CAAC;YAEX,MAAM,IAAI,GAAG,CAAC,CAAC,sBAAsB,CAAC;;IAErC,CAAC,CAAA;YAEF,KAAK,CACJ,IAAI,CAAC,MAAM,CAAE,IAAI,EAAG,GAAG,EAAG,GAAG,EAAG,GAAG,CAAE,EACrC;;KAEC,CACD,CAAA;YAED,KAAK,CACJ,IAAI,CAAC,MAAM,CAAE,IAAI,CAAC,MAAM,CAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAE,CAAC,IAAI,EAAG,GAAG,EAAG,GAAG,EAAG,GAAG,CAAE,CAAC,CAAC,CAAC,EAC3E;;KAEC,CACD,CAAA;YAED,KAAK,CACJ,IAAI,CAAC,MAAM,CAAE,IAAI,EAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,EAC7B;;KAEC,CACD,CAAA;QAEF,CAAC;QAED,MAAM,CAAC,CAAC;YAEP,MAAM,GAAG,GAAG,CAAC,CAAC,sBAAsB,CAAC;;IAEpC,CAAC;iBACD,IAAI,CAAC;gBACL,KAAK,EAAG,CAAE,KAAK,EAAG,IAAI,EAAE,EAAE,CAAC,CAAE,KAAK,CAAC,MAAM,CAAE,KAAK,EAAG,KAAK,CAAC,IAAI,CAAE,IAAI,CAAE,CAAE,CAAE;aACzE,CAAC,CAAA;YAEF,iBAAiB,CAAE,GAAG,CAAC,GAAG,CAAE,MAAM,CAAE,EAAG,CAAE,eAAe,CAAE,CAAE,CAAA;QAE7D,CAAC;KAED,CAAE,CAAA;AACJ,CAAC,EApJS,CAAC,KAAD,CAAC,QAoJV;;;;ACpJD,IAAU,CAAC,CAmDV;AAnDD,WAAU,CAAC;IAEV,SAAS,CAAC;QAET,aAAa;YAEZ,iBAAiB,CAChB,iBAAiB,CAAE,EAAE,EAAE,GAAE,EAAE,CAAC,IAAI,CAAE,EAClC,EAAE,CACF,CAAA;QAEF,CAAC;QAED,WAAW;YAEV,iBAAiB,CAChB,iBAAiB,CAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,EAAE,GAAE,EAAE,CAAC,KAAK,CAAE,EAClD,CAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAE,CACrB,CAAA;QAEF,CAAC;QAED,kBAAkB;YAEjB,iBAAiB,CAChB,iBAAiB,CAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,EAAE,CAAC,CAAE,EACzC,CAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,EAAE,CAAE,CAAC,EAAE,CAAC,CAAE,CAAE,CACzB,CAAA;QAEF,CAAC;QAED,mBAAmB;YAElB,iBAAiB,CAChB,iBAAiB,CAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAE,EACvD,CAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAE,CACrB,CAAA;QAEF,CAAC;QAED,sBAAsB;YAErB,iBAAiB,CAChB,iBAAiB,CAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,EAAE,GAAE,EAAE,CAAC,IAAI,CAAE,EACjD,CAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAC3B,CAAA;QAEF,CAAC;KAED,CAAC,CAAA;AAEH,CAAC,EAnDS,CAAC,KAAD,CAAC,QAmDV;;;;ACnDD,IAAU,CAAC,CAkGV;AAlGD,WAAU,GAAC;IACV,SAAS,CAAE;QAEV,cAAc,CAAE,CAAC;YAEhB,iBAAiB,CAAE,CAAC,CAAC,sBAAsB,CAAE,YAAY,CAAE,CAAC,IAAI,CAAC,MAAM,EAAG,CAAC,CAAE,CAAA;YAC7E,iBAAiB,CAAE,CAAC,CAAC,sBAAsB,CAAE,YAAY,CAAE,CAAC,IAAI,CAAE,CAAC,CAAE,CAAC,IAAI,EAAG,KAAK,CAAE,CAAA;YACpF,iBAAiB,CAAE,CAAC,CAAC,sBAAsB,CAAE,WAAW,CAAE,CAAC,IAAI,CAAC,MAAM,EAAG,CAAC,CAAE,CAAA;YAE5E,iBAAiB,CAAE,CAAC,CAAC,sBAAsB,CAAE,eAAe,CAAE,CAAC,IAAI,CAAC,MAAM,EAAG,CAAC,CAAE,CAAA;YAChF,iBAAiB,CAAE,CAAC,CAAC,sBAAsB,CAAE,eAAe,CAAE,CAAC,IAAI,CAAE,CAAC,CAAE,CAAC,KAAK,EAAG,KAAK,CAAE,CAAA;YAExF,iBAAiB,CAAE,CAAC,CAAC,sBAAsB,CAAE,iBAAiB,CAAE,CAAC,IAAI,CAAE,CAAC,CAAE,CAAC,IAAI,CAAE,CAAC,CAAE,CAAC,IAAI,CAAE,CAAC,CAAE,CAAC,KAAK,EAAG,KAAK,CAAE,CAAA;YAC9G,iBAAiB,CAAE,CAAC,CAAC,sBAAsB,CAAE,6BAA6B,CAAE,CAAC,IAAI,CAAE,CAAC,CAAE,CAAC,IAAI,CAAE,CAAC,CAAE,CAAC,IAAI,CAAE,CAAC,CAAE,CAAC,KAAK,EAAG,KAAK,CAAE,CAAA;YAE1H,iBAAiB,CAAE,CAAC,CAAC,sBAAsB,CAAE,kBAAkB,CAAE,CAAC,QAAQ,EAAE,EAAG,kBAAkB,CAAE,CAAA;QACpG,CAAC;QAED,eAAe,CAAE,CAAC;YAEjB,MAAM,IAAI,GAAG;;;IAGZ,CAAA;YAED,gBAAgB,CAAE,GAAE,EAAE;gBACrB,CAAC,CAAC,sBAAsB,CAAE,IAAI,EAAG,MAAM,CAAE,CAAA;YAC1C,CAAC,EAAE,oDAAoD,CAAE,CAAA;QAE1D,CAAC;QAED,cAAc,CAAE,CAAC;YAEhB,MAAM,IAAI,GAAG;;;IAGZ,CAAA;YAED,gBAAgB,CAAE,GAAE,EAAE;gBACrB,CAAC,CAAC,sBAAsB,CAAE,IAAI,EAAG,MAAM,CAAE,CAAA;YAC1C,CAAC,EAAE,6CAA6C,CAAE,CAAA;QAEnD,CAAC;QAED,gCAAgC,CAAE,CAAC;YAElC,MAAM,IAAI,GAAG,eAAe,CAAA;YAE5B,gBAAgB,CAAE,GAAE,EAAE;gBACrB,CAAC,CAAC,sBAAsB,CAAE,IAAI,EAAG,MAAM,CAAE,CAAA;YAC1C,CAAC,EAAE,+CAA+C,CAAE,CAAA;QAErD,CAAC;QAED,qCAAqC,CAAE,CAAC;YAEvC,MAAM,IAAI,GAAG,YAAY,CAAA;YAEzB,gBAAgB,CAAE,GAAE,EAAE;gBACrB,CAAC,CAAC,sBAAsB,CAAE,IAAI,EAAG,MAAM,CAAE,CAAA;YAC1C,CAAC,EAAE,oDAAoD,CAAE,CAAA;QAE1D,CAAC;QAED,6BAA6B,CAAE,CAAC;YAE/B,MAAM,IAAI,GAAG,MAAM,CAAA;YAEnB,gBAAgB,CAAE,GAAE,EAAE;gBACrB,CAAC,CAAC,sBAAsB,CAAE,IAAI,EAAG,MAAM,CAAE,CAAA;YAC1C,CAAC,EAAE,sDAAsD,CAAE,CAAA;QAE5D,CAAC;QAED,yBAAyB,CAAE,CAAC;YAE3B,MAAM,IAAI,GAAG,UAAU,CAAA;YACvB,MAAM,MAAM,GAAG,EAAc,CAAA;YAE7B,MAAM,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC;gBACzB,SAAS,EAAE,CAAE,KAAU,EAAG,EAAE;oBAC3B,MAAM,CAAC,IAAI,CAAE,KAAK,CAAC,OAAO,CAAE,CAAA;oBAC5B,OAAO,IAAa,CAAA;gBACrB,CAAC;aACD,CAAC,CAAA;YAEF,MAAM,GAAG,GAAG,EAAE,CAAC,sBAAsB,CAAE,IAAI,EAAG,MAAM,CAAE,CAAA;YAEtD,gBAAgB,CAAE,MAAM,EAAE;gBACzB,oDAAoD;gBACpD,8DAA8D;aAC9D,CAAE,CAAA;YAEH,iBAAiB,CAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,WAAW,CAAE,CAAA;QAEjD,CAAC;KAED,CAAE,CAAA;AACJ,CAAC,EAlGS,CAAC,KAAD,CAAC,QAkGV;;;;AClGD,IAAU,CAAC,CAaV;AAbD,WAAU,CAAC;IACV,SAAS,CAAE;QAEV,UAAU;YACT,iBAAiB,CAAE,oBAAoB,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAG,KAAK,CAAE,CAAA;YAChE,iBAAiB,CAAE,oBAAoB,CAAC,CAAE,KAAK,EAAG,IAAI,CAAE,CAAC,CAAC,QAAQ,EAAE,EAAG,sBAAsB,CAAE,CAAA;YAC/F,iBAAiB,CAAE,oBAAoB,CAAC,CAAE,CAAC,EAAG,CAAC,EAAG,GAAG,CAAE,CAAC,CAAC,QAAQ,EAAE,EAAG,sBAAsB,CAAE,CAAA;YAC9F,iBAAiB,CAAE,oBAAoB,CAAE,IAAI,WAAW,CAAC,CAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAE,CAAC,CAAE,CAAC,QAAQ,EAAE,EAAG,sCAAsC,CAAE,CAAA;YAC5I,iBAAiB,CAAE,oBAAoB,CAAC,CAAE,EAAE,EAAG,KAAK,EAAG,UAAU,CAAE,CAAC,CAAC,QAAQ,EAAE,EAAG,gDAAgD,CAAE,CAAA;YACpI,iBAAiB,CAAE,oBAAoB,CAAC,EAAE,KAAK,EAAG,KAAK,EAAG,UAAU,EAAG,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAG,yDAAyD,CAAE,CAAA;QACzJ,CAAC;KAED,CAAE,CAAA;AACJ,CAAC,EAbS,CAAC,KAAD,CAAC,QAaV;;;;ACbD,IAAU,CAAC,CAiBV;AAjBD,WAAU,CAAC;IACV,SAAS,CAAC;QAET,8BAA8B;YAE7B,iBAAiB,CAAE,QAAQ,CAAE,GAAE,EAAE,CAAC,KAAK,CAAE,EAAG,KAAK,CAAE,CAAA;QAEpD,CAAC;QAED,8BAA8B;QAC9B,GAAG;QACH,mDAAmD;QACnD,gEAAgE;QAChE,GAAG;QACH,KAAK;KAEL,CAAC,CAAA;AACH,CAAC,EAjBS,CAAC,KAAD,CAAC,QAiBV;;;;ACjBD,IAAU,CAAC,CAEV;AAFD,WAAU,GAAC;IACV,eAAe,CAAC,IAAI,CAAE,CAAC,CAAA,EAAE,CAAC,CAAC,CAAC,aAAa,GAAG,GAAE,EAAE,CAAC,KAAK,CAAE,CAAA;AACzD,CAAC,EAFS,CAAC,KAAD,CAAC,QAEV;;;;ACFD,IAAU,CAAC,CA+EV;AA/ED,WAAU,GAAC;IACV,SAAS,CAAC;QAET,cAAc;YAEb,MAAM,IAAI,GAAG,IAAI,aAAa,CAAA;YAC9B,MAAM,IAAI,GAAG,IAAI,aAAa,CAAA;YAC9B,MAAM,GAAG,GAAG,IAAI,iBAAiB,CAAA;YAEjC,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAA;YAC1B,IAAI,CAAC;gBAEJ,IAAI,CAAC,OAAO,EAAE,CAAA;gBACd,IAAI,CAAC,OAAO,EAAE,CAAA;gBACd,IAAI,CAAC,OAAO,EAAE,CAAA;YAEf,CAAC;oBAAS,CAAC;gBAEV,GAAG,CAAC,SAAS,EAAE,CAAA;gBACf,GAAG,CAAC,SAAS,CAAE,GAAG,CAAE,CAAA;YAErB,CAAC;YAED,IAAI,CAAC,IAAI,EAAE,CAAA;YACX,IAAI,CAAC,IAAI,EAAE,CAAA;YAEX,gBAAgB,CAAE,GAAG,CAAC,QAAQ,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAE,CAAE,CAAA;YAEtD,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAA;YAC1B,IAAI,CAAC;gBAEJ,IAAI,CAAC,OAAO,EAAE,CAAA;gBACd,IAAI,CAAC,OAAO,EAAE,CAAA;gBACd,IAAI,CAAC,OAAO,EAAE,CAAA;YAEf,CAAC;oBAAS,CAAC;gBAEV,GAAG,CAAC,SAAS,EAAE,CAAA;gBACf,GAAG,CAAC,SAAS,CAAE,GAAG,CAAE,CAAA;YAErB,CAAC;YAED,IAAI,CAAC,IAAI,EAAE,CAAA;YACX,IAAI,CAAC,IAAI,EAAE,CAAA;YAEX,gBAAgB,CAAE,GAAG,CAAC,QAAQ,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAE,CAAE,CAAA;QAEvD,CAAC;QAED,kBAAkB,CAAE,CAAC;YAEpB,MAAM,IAAI,GAAG,IAAI,iBAAiB,CAAA;YAClC,MAAM,IAAI,GAAG,IAAI,iBAAiB,CAAA;YAElC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;YAC3B,IAAI,CAAC;gBAEJ,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;gBAC3B,IAAI,CAAC;oBAEJ,gBAAgB,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,uBAAuB,CAAE,CAAA;gBAEjE,CAAC;wBAAS,CAAC;oBAEV,IAAI,CAAC,SAAS,EAAE,CAAA;oBAChB,IAAI,CAAC,SAAS,CAAE,GAAG,CAAE,CAAA;gBAEtB,CAAC;YAEF,CAAC;oBAAS,CAAC;gBAEV,IAAI,CAAC,SAAS,EAAE,CAAA;gBAChB,IAAI,CAAC,SAAS,CAAE,GAAG,CAAE,CAAA;YAEtB,CAAC;QAEF,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EA/ES,CAAC,KAAD,CAAC,QA+EV;;;;AC/ED,IAAU,CAAC,CAuCV;AAvCD,WAAU,CAAC;IAEV,yBAAyB;IACd,uBAAqB,GAAG,EAAqB,CAAA;IAExD,SAAgB,oBAAoB;QACnC,MAAM,KAAK,GAAG,EAAA,qBAAqB,CAAC,MAAM,CAAE,CAAC,CAAE,CAAA;QAC/C,KAAK,MAAM,IAAI,IAAI,KAAK;YAAG,IAAI,EAAE,CAAA;IAClC,CAAC;IAHe,sBAAoB,uBAGnC,CAAA;IAED,MAAa,uBAAwB,SAAQ,YAAY;QAMpC;QAJpB,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAA;QAC3B,SAAS,GAAG,KAAK,CAAA;QACjB,EAAE,CAAM;QAER,YAAoB,IAAgB;YACnC,KAAK,EAAE,CAAA;YADY,SAAI,GAAJ,IAAI,CAAY;YAEnC,EAAA,qBAAqB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;QACnC,CAAC;QAED,UAAU;YACT,MAAM,KAAK,GAAG,EAAA,qBAAqB,CAAC,OAAO,CAAE,IAAI,CAAC,IAAI,CAAE,CAAA;YACxD,IAAI,KAAK,IAAI,CAAC;gBAAE,EAAA,qBAAqB,CAAC,MAAM,CAAE,KAAK,EAAG,CAAC,CAAE,CAAA;QAC1D,CAAC;KAED;IAhBY,yBAAuB,0BAgBnC,CAAA;IAED,MAAa,uBAAwB,SAAQ,uBAAuB;QAG3D;QADR,YACQ,KAAc,EACrB,IAAgB;YAEhB,KAAK,CAAE,IAAI,CAAE,CAAA;YAHN,UAAK,GAAL,KAAK,CAAS;QAItB,CAAC;KAED;IATY,yBAAuB,0BASnC,CAAA;AAEF,CAAC,EAvCS,CAAC,KAAD,CAAC,QAuCV;;;;ACvCD,IAAU,CAAC,CAMV;AAND,WAAU,GAAC;IAEV,eAAe,CAAC,IAAI,CAAE,CAAC,CAAC,EAAE;QACzB,CAAC,CAAC,eAAe,GAAG,uBAAwD,CAAA;IAC7E,CAAC,CAAC,CAAA;AAEH,CAAC,EANS,CAAC,KAAD,CAAC,QAMV;;;;ACND,IAAU,CAAC,CA0GV;AA1GD,WAAU,CAAC;IAEV,SAAS,CAAC;QAET,gBAAgB;YAEf,MAAM,IAAK,SAAQ,YAAY;gBAGvB,AAAP,MAAM,CAAC,IAAI,CAAE,CAAS,EAAE,CAAS;oBAChC,OAAO,CAAC,GAAG,CAAC,CAAA;gBACb,CAAC;aAED;YAJO;gBADL,gBAAgB;kCAGjB;YAIF,iBAAiB,CAAE,IAAI,CAAC,IAAI,CAAE,CAAC,EAAE,CAAC,CAAE,EAAE,CAAC,CAAE,CAAA;QAE1C,CAAC;QAED,KAAK,CAAC,gBAAgB;YAErB,MAAM,SAAU,SAAQ,YAAY;gBAEnC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAE,CAAS;oBAC1B,OAAO,CAAC,CAAA;gBACT,CAAC;gBAED,MAAM,CAAC,GAAG,CAAE,CAAS,EAAE,CAAS;oBAC/B,MAAM,GAAG,GAAG,cAAc,CAAE,IAAI,CAAE,CAAA;oBAClC,OAAO,GAAG,CAAC,GAAG,CAAE,CAAC,CAAE,GAAG,GAAG,CAAC,GAAG,CAAE,CAAC,CAAE,CAAA;gBACnC,CAAC;gBAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAE,CAAS,EAAE,CAAS;oBACtC,OAAO,CAAC,GAAG,MAAM,eAAe,CAAE,IAAI,CAAE,CAAC,GAAG,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;gBACrD,CAAC;aAED;YAED,iBAAiB,CAAE,MAAM,SAAS,CAAC,IAAI,CAAE,CAAC,EAAE,CAAC,CAAE,EAAE,CAAC,CAAE,CAAA;QAErD,CAAC;QAEK,AAAN,KAAK,CAAC,qBAAqB;YAE1B,MAAM,WAAY,SAAQ,YAAY;gBAErC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAA;gBACrB,MAAM,CAAC,YAAY,GAAG,CAAC,CAAA;gBAGhB,AAAP,MAAM,CAAC,SAAS;oBACf,IAAI,CAAC,UAAU,IAAI,CAAC,CAAA;gBACrB,CAAC;gBAED,MAAM,CAAC,WAAW;oBACjB,IAAI,CAAC,YAAY,IAAI,CAAC,CAAA;gBACvB,CAAC;gBAED,MAAM,CAAC,KAAK,CAAC,GAAG,CAAE,CAAS;oBAC1B,OAAO,CAAC,CAAA;gBACT,CAAC;gBAED,MAAM,CAAC,GAAG,CAAE,CAAS,EAAE,CAAS;oBAC/B,IAAI,CAAC,SAAS,EAAE,CAAA;oBAChB,IAAI,CAAC,WAAW,EAAE,CAAA;oBAClB,MAAM,GAAG,GAAG,cAAc,CAAE,IAAI,CAAE,CAAA;oBAClC,OAAO,GAAG,CAAC,GAAG,CAAE,CAAC,CAAE,GAAG,GAAG,CAAC,GAAG,CAAE,CAAC,CAAE,CAAA;gBACnC,CAAC;gBAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAE,CAAS,EAAE,CAAS;oBACtC,OAAO,CAAC,GAAG,MAAM,eAAe,CAAE,IAAI,CAAE,CAAC,GAAG,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;gBACrD,CAAC;;YArBM;gBADL,gBAAgB;8CAGjB;YAuBF,iBAAiB,CAAE,MAAM,WAAW,CAAC,IAAI,CAAE,CAAC,EAAE,CAAC,CAAE,EAAE,CAAC,CAAE,CAAA;YACtD,iBAAiB,CAAE,WAAW,CAAC,UAAU,EAAE,CAAC,CAAE,CAAA;YAC9C,iBAAiB,CAAE,WAAW,CAAC,YAAY,EAAE,CAAC,CAAE,CAAA;QAEjD,CAAC;QAED,KAAK,CAAC,gBAAgB;YAErB,MAAM,MAAO,SAAQ,YAAY;gBAEhC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAE,CAAS,EAAE,CAAS;oBACrC,SAAS,CAAE,IAAI,KAAK,CAAE,aAAa,GAAG,CAAE,CAAC,GAAG,CAAC,CAAE,CAAE,CAAE,CAAA;gBACpD,CAAC;gBAED,MAAM,CAAC,KAAK;oBACX,IAAI,CAAC;wBACJ,OAAO,cAAc,CAAE,MAAM,CAAE,CAAC,GAAG,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;oBAC5C,CAAC;oBAAC,OAAO,KAAU,EAAG,CAAC;wBACtB,IAAI,iBAAiB,CAAE,KAAK,CAAE;4BAAG,gBAAgB,CAAE,KAAK,CAAE,CAAA;wBAC1D,iBAAiB,CAAE,KAAK,CAAC,OAAO,EAAE,cAAc,CAAE,CAAA;oBACnD,CAAC;gBACF,CAAC;aAED;YAED,MAAM,eAAe,CAAE,MAAM,CAAE,CAAC,KAAK,EAAE,CAAA;QAExC,CAAC;KAED,CAAC,CAAA;AAEH,CAAC,EA1GS,CAAC,KAAD,CAAC,QA0GV;;;;AC1GD,oBAAoB;AACpB,IAAU,CAAC,CA6FV;AA7FD,WAAU,CAAC;IACV,SAAS,CAAC;QAET,YAAY;YAEX,iBAAiB,CAAE,QAAQ,CAAE,IAAI,CAAE,EAAE,MAAM,CAAE,CAAA;YAC7C,iBAAiB,CAAE,QAAQ,CAAE,KAAK,CAAE,EAAE,OAAO,CAAE,CAAA;YAC/C,iBAAiB,CAAE,QAAQ,CAAE,IAAI,CAAE,EAAE,MAAM,CAAE,CAAA;YAC7C,iBAAiB,CAAE,QAAQ,CAAE,CAAC,CAAE,EAAE,GAAG,CAAE,CAAA;YACvC,iBAAiB,CAAE,QAAQ,CAAE,EAAE,IAAE,GAAG,CAAE,EAAE,uBAAuB,CAAE,CAAA;YACjE,iBAAiB,CAAE,QAAQ,CAAE,EAAE,CAAE,EAAE,IAAI,CAAE,CAAA;QAE1C,CAAC;QAED,cAAc;YAEb,iBAAiB,CAAE,QAAQ,CAAC,CAAE,IAAI,CAAE,CAAC,EAAE,QAAQ,CAAE,CAAA;YACjD,iBAAiB,CAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,CAAE,CAAA;YACtD,iBAAiB,CAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,iBAAiB,CAAE,CAAA;QAEnE,CAAC;QAED,YAAY;YAEX,iBAAiB,CAAE,QAAQ,CAAE,IAAI,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAE,EAAE,mBAAmB,CAAE,CAAA;YAC9E,iBAAiB,CAAE,QAAQ,CAAC,CAAE,IAAI,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAE,CAAC,EAAE,qBAAqB,CAAE,CAAA;YAClF,iBAAiB,CAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,IAAI,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,2BAA2B,CAAE,CAAA;QAE9F,CAAC;QAED,UAAU;YAET,MAAM,IAAI,GAAG,GAAE,EAAE,GAAE,CAAC,CAAA;YACpB,iBAAiB,CAAE,QAAQ,CAAE,IAAI,CAAE,EAAE,QAAQ,CAAE,IAAI,CAAE,CAAE,CAAA;YACvD,kBAAkB,CAAE,QAAQ,CAAE,IAAI,CAAE,EAAE,QAAQ,CAAE,GAAE,EAAE,GAAE,CAAC,CAAE,CAAE,CAAA;QAE5D,CAAC;QAED,SAAS;YAER,MAAM,IAAI;aAAG;YACb,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;YAEtB,iBAAiB,CAAE,QAAQ,CAAE,GAAG,CAAE,EAAE,QAAQ,CAAE,GAAG,CAAE,CAAE,CAAA;YACrD,kBAAkB,CAAE,QAAQ,CAAE,GAAG,CAAE,EAAE,QAAQ,CAAE,IAAI,IAAI,EAAE,CAAE,CAAE,CAAA;QAE9D,CAAC;QAED,UAAU;YAET,MAAM,GAAG,GAAG,4BAAc,CAAA;YAE1B,iBAAiB,CAAE,QAAQ,CAAE,GAAG,CAAE,EAAE,QAAQ,CAAE,GAAG,CAAE,CAAE,CAAA;YACrD,kBAAkB,CAAE,QAAQ,CAAE,GAAG,CAAE,EAAE,QAAQ,CAAE,4BAAc,CAAE,CAAE,CAAA;QAElE,CAAC;QAED,4BAA4B;YAE3B,MAAM,IAAI;gBACT,MAAM,KAAK,OAAO,KAAK,CAAA,CAAC,CAAC;aACzB;YAED,kBAAkB,CAAE,CAAE,QAAQ,CAAE,IAAI,IAAI,CAAE,CAAE,EAAE,CAAE,QAAQ,CAAE,IAAI,IAAI,CAAE,CAAE,CAAE,CAAA;QAEzE,CAAC;QAED,oBAAoB;YAEnB,MAAM,IAAI;gBACW;gBAAqB;gBAAzC,YAAoB,IAAY,EAAS,GAAW;oBAAhC,SAAI,GAAJ,IAAI,CAAQ;oBAAS,QAAG,GAAH,GAAG,CAAQ;gBAAI,CAAC;gBACzD,CAAE,eAAe,CAAE,KAAK,OAAO,QAAS,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,IAAI,CAAG,GAAG,CAAA,CAAC,CAAC;aACzE;YAED,iBAAiB,CAChB,QAAQ,CAAE,CAAE,IAAI,IAAI,CAAE,KAAK,EAAE,EAAE,CAAE,CAAE,CAAE,EACrC,QAAQ,CAAE,CAAE,IAAI,IAAI,CAAE,KAAK,EAAE,EAAE,CAAE,CAAE,CAAE,EACrC,eAAe,CACf,CAAA;QAEF,CAAC;QAED,wBAAwB;YAEvB,iBAAiB,CAAE,QAAQ,CAAE,IAAI,IAAI,CAAE,KAAK,CAAE,CAAE,EAAE,WAAW,CAAE,CAAA;YAC/D,iBAAiB,CAAE,QAAQ,CAAE,IAAI,IAAI,CAAE,KAAK,CAAE,CAAE,EAAE,aAAa,CAAE,CAAA;YAEjE,iBAAiB,CAAE,QAAQ,CAAE,GAAG,CAAE,EAAE,KAAK,CAAE,CAAA;YAC3C,iBAAiB,CAAE,QAAQ,CAAE,SAAS,CAAE,EAAE,YAAY,CAAE,CAAA;QAEzD,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EA7FS,CAAC,KAAD,CAAC,QA6FV;;;;AC9FD,IAAU,CAAC,CAMV;AAND,WAAU,GAAC;IAEV,eAAe,CAAC,IAAI,CAAE,CAAC,CAAC,EAAE;QACzB,CAAC,CAAC,kBAAkB,GAAG,uBAA2D,CAAA;IACnF,CAAC,CAAC,CAAA;AAEH,CAAC,EANS,CAAC,KAAD,CAAC,QAMV;;;;ACND,IAAU,CAAC,CAMV;AAND,WAAU,GAAC;IAEV,eAAe,CAAC,IAAI,CAAE,CAAC,CAAC,EAAE;QACzB,CAAC,CAAC,gBAAgB,GAAG,uBAAyD,CAAA;IAC/E,CAAC,CAAC,CAAA;AAEH,CAAC,EANS,CAAC,KAAD,CAAC,QAMV;;;;;;;;;;ACND,IAAU,CAAC,CA2BV;AA3BD,WAAU,CAAC;IAKV,MAAa,eAAgB,SAAQ,YAAY;QAKxC;QACA;QAJR,EAAE,CAAM;QAER,YACQ,KAAc,EACd,IAAgB;YAEvB,KAAK,EAAE,CAAA;YAHA,UAAK,GAAL,KAAK,CAAS;YACd,SAAI,GAAJ,IAAI,CAAY;YAGvB,IAAI,CAAC,EAAE,GAAG,mBAAmB,CAAE,IAAI,EAAG,EAAE,OAAO,EAAG,KAAK,EAAE,CAAE,CAAA;QAC5D,CAAC;QAED,UAAU;YACT,kBAAkB,CAAE,IAAI,CAAC,EAAE,CAAE,CAAA;QAC9B,CAAC;KAED;IAhBY,iBAAe,kBAgB3B,CAAA;IAED,IAAI,OAAO,mBAAmB,KAAK,UAAU,EAAG,CAAC;QAChD,CAAC,CAAC,eAAe,GAAG,kBAAkB,CAAA;IACvC,CAAC;AAEF,CAAC,EA3BS,CAAC,KAAD,CAAC,QA2BV;;;;AC3BD,IAAU,CAAC,CAMV;AAND,WAAU,GAAC;IAEV,eAAe,CAAC,IAAI,CAAE,CAAC,CAAC,EAAE;QACzB,CAAC,CAAC,eAAe,GAAG,uBAAwD,CAAA;IAC7E,CAAC,CAAC,CAAA;AAEH,CAAC,EANS,CAAC,KAAD,CAAC,QAMV;;;;ACND,IAAU,CAAC,CAYV;AAZD,WAAU,CAAC;IAEV,SAAgB,oBAAoB;QACnC,OAAO,IAAI,OAAO,CAAE,IAAI,CAAC,EAAE;YAC1B,IAAI,IAAI,CAAC,eAAe,CAAE,EAAE,EAAG,GAAE,EAAE,CAAC,IAAI,CAAE,IAAI,CAAE,CAAE,CAAA;QACnD,CAAC,CAAE,CAAA;IACJ,CAAC;IAJe,sBAAoB,uBAInC,CAAA;IAED,SAAgB,cAAc;QAC7B,OAAO,IAAI,CAAC,cAAc,CAAE,IAAI,CAAE,CAAC,oBAAoB,EAAE,CAAA;IAC1D,CAAC;IAFe,gBAAc,iBAE7B,CAAA;AAEF,CAAC,EAZS,CAAC,KAAD,CAAC,QAYV;;;;ACZD,IAAU,CAAC,CAOV;AAPD,WAAU,GAAC;IAAC,IAAA,EAAE,CAOb;IAPW,WAAA,EAAE;QAEb,eAAe,CAAC,IAAI,CAAE,CAAC,CAAC,EAAE;YACzB,CAAC,CAAC,iBAAiB,GAAG,SAAS,sBAAsB,CAAW,OAAe,IAAK,CAAC,CAAA;YACrF,CAAC,CAAC,uBAAuB,GAAG,KAAK,UAAU,4BAA4B,CAAW,OAAe,IAAI,CAAC,CAAA;QACvG,CAAC,CAAE,CAAA;IAEJ,CAAC,EAPW,EAAE,GAAF,MAAE,KAAF,MAAE,QAOb;AAAD,CAAC,EAPS,CAAC,KAAD,CAAC,QAOV;;;;ACPD,IAAU,CAAC,CAOV;AAPD,WAAU,GAAC;IAAC,IAAA,EAAE,CAOb;IAPW,WAAA,EAAE;QAEb,eAAe,CAAC,IAAI,CAAE,CAAC,CAAC,EAAE;YACzB,CAAC,CAAC,cAAc,GAAG,SAAS,mBAAmB,KAAc,CAAC,CAAA;YAC9D,CAAC,CAAC,oBAAoB,GAAG,KAAK,UAAU,yBAAyB,KAAa,CAAC,CAAA;QAChF,CAAC,CAAE,CAAA;IAEJ,CAAC,EAPW,EAAE,GAAF,MAAE,KAAF,MAAE,QAOb;AAAD,CAAC,EAPS,CAAC,KAAD,CAAC,QAOV;;;;ACPD,IAAU,CAAC,CAwEV;AAxED,WAAU,GAAC;IAEV,SAAS,CAAC;QACT,YAAY,CAAE,CAAC;YACd,MAAM,CAAC;gBACN,MAAM,CAAC,CAAC;oBACP,OAAO,EAAE,CAAA;gBACV,CAAC;gBACD,MAAM,CAAC,CAAC;oBACP,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;gBACjC,CAAC;aACD;QAGF,CAAC;QAED,KAAK,CAAC,0BAA0B,CAAE,CAAC;YAElC,MAAM,UAAW,SAAQ,YAAY;gBAEpC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAEZ,MAAM,CAAC,KAAK,GAAG,EAAc,CAAA;gBAC7B,MAAM,CAAC,IAAI,GAAG,EAAc,CAAA;gBAE5B,MAAM,CAAC,IAAI,CAAE,IAAY;oBACxB,cAAc,CAAE,IAAI,CAAC,KAAK,CAAE,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;oBACzC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAA;oBACvB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;gBACvB,CAAC;;YAIF,MAAM,IAAI,GAAG,eAAe,CAAE,UAAU,CAAE,CAAC,IAAI,CAAA;YAE/C,IAAI,CAAE,MAAM,CAAE,CAAA;YACd,MAAM,OAAO,GAAG,IAAI,CAAE,KAAK,CAAE,CAAA;YAE7B,CAAC,CAAC,oBAAoB,EAAE,CAAA;YACxB,MAAM,OAAO,CAAA;YAEb,iBAAiB,CAAE,UAAU,CAAC,KAAK,EAAE,CAAE,MAAM,EAAE,KAAK,CAAE,CAAE,CAAA;YACxD,iBAAiB,CAAE,UAAU,CAAC,IAAI,EAAE,CAAE,KAAK,CAAE,CAAE,CAAA;QAEhD,CAAC;QAED,KAAK,CAAC,4BAA4B,CAAE,CAAC;YAEpC,MAAM,KAAK,GAAG,EAAc,CAAA;YAC5B,MAAM,IAAI,GAAG,EAAc,CAAA;YAE3B,SAAS,SAAS,CAAE,IAAY;gBAC/B,cAAc,CAAE,KAAK,CAAE,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;gBACpC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAA;gBACvB,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;YAClB,CAAC;YAED,MAAM,IAAI,GAAG,eAAe,CAAE,SAAS,CAAE,CAAA;YAEzC,IAAI,CAAE,MAAM,CAAE,CAAA;YACd,MAAM,OAAO,GAAG,IAAI,CAAE,KAAK,CAAE,CAAA;YAE7B,CAAC,CAAC,oBAAoB,EAAE,CAAA;YACxB,MAAM,OAAO,CAAA;YAEb,iBAAiB,CAAE,KAAK,EAAE,CAAE,MAAM,EAAE,KAAK,CAAE,CAAE,CAAA;YAC7C,iBAAiB,CAAE,IAAI,EAAE,CAAE,KAAK,CAAE,CAAE,CAAA;QAErC,CAAC;KAED,CAAC,CAAA;AAEH,CAAC,EAxES,CAAC,KAAD,CAAC,QAwEV;;;;ACxED,IAAU,CAAC,CAmyBV;AAnyBD,WAAU,GAAC;IACV,SAAS,CAAC;QAET,4EAA4E;QAC5E,gBAAgB,CAAE,CAAC;YAElB,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAGL,AAAP,MAAM,CAAC,KAAK,CAAE,IAAI,GAAG,CAAC;oBACrB,OAAO,IAAI,GAAG,CAAC,CAAA;gBAChB,CAAC;;YAFM;gBADL,cAAc;kCAGf;YAIF,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAE,CAAA;YAEnC,GAAG,CAAC,KAAK,CAAE,CAAC,CAAE,CAAA;YACd,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAE,CAAA;QAEpC,CAAC;QAED,aAAa,CAAE,CAAC;YAEf,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAGL,AAAP,MAAM,CAAC,KAAK,CAAE,IAAI,GAAG,CAAC;oBACrB,OAAO,IAAI,CAAA;gBACZ,CAAC;;YAFM;gBADL,cAAc;kCAGf;YAIF,iBAAiB,CAAE,GAAG,CAAC,KAAK,CAAE,CAAC,CAAE,EAAE,CAAC,CAAE,CAAA;YACtC,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAE,CAAA;QAEpC,CAAC;QAED,mBAAmB,CAAE,CAAC;YAErB,MAAM,IAAK,SAAQ,YAAY;gBAE9B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAGL,AAAP,MAAM,CAAC,KAAK,CAAE,IAAI,GAAG,CAAC;oBACrB,OAAO,IAAI,GAAG,CAAC,CAAA;gBAChB,CAAC;;YAFM;gBADL,cAAc;mCAGf;YAIF,MAAM,MAAO,SAAQ,IAAI;gBAGjB,AAAP,MAAM,CAAC,KAAK,CAAE,IAAa;oBAC1B,OAAO,KAAK,CAAC,KAAK,CAAE,IAAI,CAAE,GAAG,CAAC,CAAA;gBAC/B,CAAC;aAED;YAJO;gBADL,cAAc;qCAGf;YAIF,MAAM,GAAI,SAAQ,MAAM;gBAGhB,AAAP,MAAM,CAAC,KAAK,CAAE,IAAa;oBAC1B,OAAO,KAAK,CAAC,KAAK,CAAE,IAAI,CAAE,GAAG,CAAC,CAAA;gBAC/B,CAAC;aAED;YAJO;gBADL,cAAc;kCAGf;YAIF,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAE,CAAA;YAEnC,iBAAiB,CAAE,GAAG,CAAC,KAAK,CAAE,CAAC,CAAE,EAAE,EAAE,CAAE,CAAA;YACvC,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,CAAE,CAAA;QAErC,CAAC;QAED,4EAA4E;QAC5E,qCAAqC,CAAE,CAAC;YAEvC,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAGL,AAAP,MAAM,CAAC,GAAG,CAAE,IAAc;oBACzB,OAAO,IAAI,IAAI,CAAC,CAAA;gBACjB,CAAC;gBAGM,AAAP,MAAM,CAAC,GAAG;oBACT,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;gBACtB,CAAC;gBAGM,AAAP,MAAM,CAAC,GAAG;oBACT,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;gBACtB,CAAC;;YAZM;gBADL,cAAc;gCAGf;YAGM;gBADL,cAAc;gCAGf;YAGM;gBADL,cAAc;gCAGf;YAIF,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAE,CAAA;YACjC,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAE,CAAA;YAEjC,GAAG,CAAC,GAAG,CAAE,CAAC,CAAE,CAAA;YACZ,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAE,CAAA;QAElC,CAAC;QAED,8EAA8E;QAC9E,wDAAwD,CAAE,CAAC;YAE1D,MAAM,GAAG,GAAG,EAAc,CAAA;YAE1B,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAGL,AAAP,MAAM,CAAC,GAAG,CAAE,IAAc;oBACzB,GAAG,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;oBACjB,OAAO,IAAI,IAAI,CAAC,CAAA;gBACjB,CAAC;gBAGM,AAAP,MAAM,CAAC,GAAG;oBACT,GAAG,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;oBACjB,OAAO,CAAE,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,GAAG,EAAE,CAAE,CAAE,CAAA;gBACnC,CAAC;gBAGM,AAAP,MAAM,CAAC,GAAG;oBACT,GAAG,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;oBACjB,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;gBACzB,CAAC;;YAfM;gBADL,cAAc;gCAIf;YAGM;gBADL,cAAc;gCAIf;YAGM;gBADL,cAAc;gCAIf;YAIF,GAAG,CAAC,GAAG,EAAE,CAAA;YACT,gBAAgB,CAAE,GAAG,EAAE,CAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAE,CAAE,CAAA;YAEhD,GAAG,CAAC,GAAG,CAAE,CAAC,CAAE,CAAA;YACZ,gBAAgB,CAAE,GAAG,EAAE,CAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAE,CAAE,CAAA;YAEvD,GAAG,CAAC,GAAG,EAAE,CAAA;YACT,gBAAgB,CAAE,GAAG,EAAE,CAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAE,CAAE,CAAA;QAE/D,CAAC;QAED,qEAAqE;QACrE,YAAY,CAAE,CAAC;YAEd,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,KAAK,CAAC,KAAK,OAAO,CAAC,CAAA,CAAC,CAAC;gBAGpB,AAAP,MAAM,CAAC,MAAM,CAAE,IAAI,GAAG,CAAC,IAAK,OAAO,IAAI,CAAA,CAAC,CAAC;gBAGlC,AAAP,MAAM,CAAC,SAAS,CAAE,IAAI,GAAG,IAAI,IAAK,OAAO,IAAI,CAAA,CAAC,CAAC;gBAE/C,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;gBAGX,AAAP,MAAM,CAAC,MAAM;oBACZ,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;oBAChD,OAAO,GAAG,GAAG,IAAI,CAAC,OAAO,EAAG,CAAA;gBAC7B,CAAC;;YAXM;gBADL,cAAc;mCACyB;YAGlC;gBADL,cAAc;sCAC+B;YAKxC;gBADL,cAAc;mCAIf;YAIF,iBAAiB,CAAE,GAAG,CAAC,MAAM,EAAE,EAAG,CAAC,CAAE,CAAA;YACrC,iBAAiB,CAAE,GAAG,CAAC,OAAO,EAAG,CAAC,CAAE,CAAA;YAEpC,GAAG,CAAC,MAAM,CAAE,EAAE,CAAE,CAAA;YAChB,iBAAiB,CAAE,GAAG,CAAC,MAAM,EAAE,EAAG,EAAE,CAAE,CAAA;YACtC,iBAAiB,CAAE,GAAG,CAAC,OAAO,EAAG,CAAC,CAAE,CAAA;YAEpC,GAAG,CAAC,SAAS,CAAE,KAAK,CAAE,CAAA;YACtB,iBAAiB,CAAE,GAAG,CAAC,MAAM,EAAE,EAAG,CAAC,CAAE,CAAA;YACrC,iBAAiB,CAAE,GAAG,CAAC,OAAO,EAAG,CAAC,CAAE,CAAA;YAEpC,eAAe,CAAC,IAAI,EAAE,CAAA;YACtB,iBAAiB,CAAE,GAAG,CAAC,MAAM,EAAE,EAAG,CAAC,CAAE,CAAA;YAErC,GAAG,CAAC,MAAM,CAAE,EAAE,CAAE,CAAA;YAChB,iBAAiB,CAAE,GAAG,CAAC,MAAM,EAAE,EAAG,CAAC,CAAE,CAAA;YACrC,iBAAiB,CAAE,GAAG,CAAC,OAAO,EAAG,CAAC,CAAE,CAAA;YAEpC,GAAG,CAAC,SAAS,CAAE,IAAI,CAAE,CAAA;YACrB,iBAAiB,CAAE,GAAG,CAAC,MAAM,EAAE,EAAG,EAAE,CAAE,CAAA;YACtC,iBAAiB,CAAE,GAAG,CAAC,OAAO,EAAG,CAAC,CAAE,CAAA;QAErC,CAAC;QAED,0EAA0E;QAC1E,iBAAiB,CAAE,CAAC;YAEnB,IAAI,OAAO,GAAG,CAAC,CAAA;YAEf,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAGL,AAAP,MAAM,CAAC,GAAG,CAAE,IAA2B;oBACtC,OAAO,IAAI,IAAI,EAAE,KAAK,EAAE,CAAE,CAAC,CAAE,EAAE,CAAA;gBAChC,CAAC;gBAGM,AAAP,MAAM,CAAC,GAAG;oBACT,OAAO,EAAE,GAAI,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,EAAG,OAAO,EAAE,CAAA;gBAC7C,CAAC;;YAPM;gBADL,cAAc;gCAGf;YAGM;gBADL,cAAc;gCAGf;YAIF,gBAAgB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,CAAE,CAAC,CAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAE,CAAA;YAEzD,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAE,CAAC,CAAE,EAAE,CAAC,CAAA;YACzB,gBAAgB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,CAAE,CAAC,CAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAE,CAAA;YAEzD,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAE,CAAC,CAAE,EAAE,CAAC,CAAA;YACzB,gBAAgB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,CAAE,CAAC,CAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAE,CAAA;QAE1D,CAAC;QAED,sEAAsE;QACtE,aAAa,CAAE,CAAC;YAEf,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAGL,AAAP,MAAM,CAAC,GAAG;oBACT,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;gBACtB,CAAC;gBAGM,AAAP,MAAM,CAAC,GAAG;oBACT,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;gBACtB,CAAC;gBAGM,AAAP,MAAM,CAAC,IAAI;oBACV,gBAAgB,CAAE,GAAE,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,uBAAuB,CAAE,CAAA;gBAC5D,CAAC;;YAZM;gBADL,cAAc;gCAGf;YAGM;gBADL,cAAc;gCAGf;YAGM;gBADL,gBAAgB;iCAGjB;YAIF,GAAG,CAAC,IAAI,EAAE,CAAA;QACX,CAAC;QAED,0EAA0E;QAC1E,+BAA+B;QAE/B,oCAAoC;QAEpC,iBAAiB;QAEjB,qBAAqB;QACrB,kCAAkC;QAClC,iBAAiB;QACjB,MAAM;QAEN,qBAAqB;QACrB,mCAAmC;QACnC,iBAAiB;QACjB,MAAM;QAEN,qBAAqB;QACrB,mCAAmC;QACnC,8CAA8C;QAC9C,MAAM;QAEN,KAAK;QAEL,yCAAyC;QACzC,+CAA+C;QAE/C,gDAAgD;QAChD,wCAAwC;QAExC,MAAM;QAEN,0EAA0E;QAC1E,kCAAkC,CAAE,CAAC;YAEpC,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAGL,AAAP,MAAM,CAAC,KAAK,CAAE,IAAI,GAAG,CAAC;oBACrB,OAAO,IAAI,CAAA;gBACZ,CAAC;gBAGM,AAAP,MAAM,CAAC,IAAI,CAAE,IAAa;oBACzB,OAAO,IAAI,CAAC,KAAK,CAAE,IAAI,CAAE,CAAA;gBAC1B,CAAC;gBAGM,AAAP,MAAM,CAAC,IAAI,CAAE,IAAa;oBACzB,IAAI,IAAI,KAAK,SAAS;wBAAG,IAAI,CAAC,IAAI,EAAE,CAAA,CAAC,2BAA2B;oBAChE,OAAO,IAAI,CAAC,KAAK,CAAE,IAAI,CAAE,CAAA;gBAC1B,CAAC;;YAbM;gBADL,cAAc;kCAGf;YAGM;gBADL,cAAc;iCAGf;YAGM;gBADL,cAAc;iCAIf;YAIF,GAAG,CAAC,IAAI,EAAE,CAAA;YACV,iBAAiB,CAAE,GAAG,CAAC,IAAI,CAAE,GAAG,CAAE,EAAE,GAAG,CAAE,CAAA;YACzC,iBAAiB,CAAE,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,CAAE,CAAA;YAEhD,GAAG,CAAC,KAAK,CAAE,GAAG,CAAE,CAAA;YAChB,iBAAiB,CAAE,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,CAAE,CAAA;QAEjD,CAAC;QAED,0EAA0E;QAC1E,0BAA0B,CAAE,CAAC;YAE5B,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAGL,AAAP,MAAM,CAAC,KAAK,CAAE,IAAI,GAAG,CAAC;oBACrB,OAAO,IAAI,CAAA;gBACZ,CAAC;gBAGM,AAAP,MAAM,CAAC,MAAM;oBACZ,OAAO,IAAI,CAAC,KAAK,EAAE,CAAA;gBACpB,CAAC;gBAGM,AAAP,MAAM,CAAC,GAAG;oBACT,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;oBAC3B,IAAI,CAAC,KAAK;wBAAG,IAAI,CAAC,KAAK,CAAE,KAAK,GAAG,CAAC,CAAE,CAAA;oBACpC,OAAO,KAAK,GAAG,CAAC,CAAA;gBACjB,CAAC;;YAdM;gBADL,cAAc;kCAGf;YAGM;gBADL,cAAc;mCAGf;YAGM;gBADL,cAAc;gCAKf;YAIF,gBAAgB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAE,CAAA;YAEhC,GAAG,CAAC,KAAK,CAAE,CAAC,CAAE,CAAA;YACd,gBAAgB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAE,CAAA;QAEjC,CAAC;QAEK,AAAN,KAAK,CAAC,mBAAmB,CAAE,CAAC;YAE3B,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAGL,AAAP,MAAM,CAAC,OAAO,CAAE,IAAI,GAAG,KAAK;oBAC3B,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAA;oBACvB,OAAO,IAAI,CAAA;gBACZ,CAAC;gBAGM,AAAP,MAAM,CAAC,MAAM;oBACZ,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;oBAC3B,kBAAkB,CAAE,IAAI,CAAC,OAAO,CAAE,CAAC,IAAI,CAAE,EAAE,IAAI,CAAE,CAAA;oBACjD,6CAA6C;gBAC9C,CAAC;gBAGM,AAAP,MAAM,CAAC,GAAG;oBACT,OAAO,IAAI,CAAC,OAAO,EAAE,CAAA;gBACtB,CAAC;gBAGM,AAAP,MAAM,CAAC,IAAI;oBAEV,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,CAAE,CAAA;oBAErC,GAAG,CAAC,MAAM,EAAE,CAAA;oBACZ,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,CAAE,CAAA;gBAErC,CAAC;;YAzBM;gBADL,cAAc;oCAIf;YAGM;gBADL,gBAAgB;mCAKjB;YAGM;gBADL,cAAc;gCAGf;YAGM;gBADL,gBAAgB;iCAQjB;YAIF,MAAM,eAAe,CAAE,GAAG,CAAE,CAAC,IAAI,EAAE,CAAA;QAEpC,CAAC;QAED,6EAA6E;QAC7E,yCAAyC;QAEzC,oCAAoC;QAEpC,iBAAiB;QAEjB,uBAAuB;QAEvB,qBAAqB;QACrB,sCAAsC;QACtC,iBAAiB;QACjB,MAAM;QAEN,qBAAqB;QACrB,yBAAyB;QACzB,yBAAyB;QACzB,4BAA4B;QAC5B,MAAM;QAEN,qBAAqB;QACrB,uCAAuC;QACvC,iBAAiB;QACjB,MAAM;QAEN,qBAAqB;QACrB,0BAA0B;QAC1B,0BAA0B;QAC1B,4BAA4B;QAC5B,MAAM;QAEN,KAAK;QAEL,2CAA2C;QAC3C,4CAA4C;QAE5C,0BAA0B;QAC1B,yBAAyB;QAEzB,0BAA0B;QAE1B,4CAA4C;QAC5C,2CAA2C;QAE3C,MAAM;QAEN,uEAAuE;QACvE,qBAAqB,CAAE,CAAC;YAEvB,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,KAAK,CAAC,KAAK,OAAO,CAAC,CAAA,CAAC,CAAC;gBAGpB,AAAP,MAAM,CAAC,SAAS,CAAE,IAAI,GAAG,KAAK,IAAK,OAAO,IAAI,CAAA,CAAC,CAAC;gBAGzC,AAAP,MAAM,CAAC,MAAM;oBAEZ,IAAI,IAAI,CAAC,SAAS,EAAE,EAAG,CAAC;wBACvB,SAAS,CAAE,IAAI,KAAK,CAAE,YAAY,CAAE,CAAE,CAAA;oBACvC,CAAC;oBAED,OAAO,CAAC,CAAA;gBACT,CAAC;gBAGM,AAAP,MAAM,CAAC,MAAM;oBACZ,OAAO,IAAI,CAAC,MAAM,EAAE,CAAA;gBACrB,CAAC;aAED;YAjBO;gBADL,cAAc;sCACgC;YAGzC;gBADL,cAAc;mCAQf;YAGM;gBADL,cAAc;mCAGf;YAIF,iBAAiB,CAAE,GAAG,CAAC,MAAM,EAAE,EAAG,CAAC,CAAE,CAAA;YAErC,GAAG,CAAC,SAAS,CAAE,IAAI,CAAE,CAAA;YACrB,gBAAgB,CAAE,GAAE,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,YAAY,CAAE,CAAA;YAEnD,GAAG,CAAC,SAAS,CAAE,KAAK,CAAE,CAAA;YACtB,iBAAiB,CAAE,GAAG,CAAC,MAAM,EAAE,EAAG,CAAC,CAAE,CAAA;QAEtC,CAAC;QAEK,AAAN,KAAK,CAAC,eAAe,CAAC,CAAC;YAEtB,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAEZ,MAAM,CAAC,KAAK,CAAC,MAAM;oBAClB,OAAO,KAAK,CAAA;gBACb,CAAC;gBAGM,AAAP,MAAM,CAAC,MAAM;oBACZ,OAAO,cAAc,CAAE,IAAI,CAAE,CAAC,MAAM,EAAE,CAAA;gBACvC,CAAC;gBAGM,AAAP,MAAM,CAAC,MAAM;oBACZ,OAAO,IAAI,CAAC,MAAM,EAAE,CAAA;gBACrB,CAAC;gBAGM,AAAP,MAAM,CAAC,IAAI;oBACV,iBAAiB,CAAE,GAAG,CAAC,MAAM,EAAE,EAAG,KAAK,CAAE,CAAA;gBAC1C,CAAC;;YAZM;gBADL,cAAc;mCAGf;YAGM;gBADL,cAAc;mCAGf;YAGM;gBADL,gBAAgB;iCAGjB;YAIF,MAAM,eAAe,CAAE,GAAG,CAAE,CAAC,IAAI,EAAE,CAAA;QACpC,CAAC;QAED,4BAA4B,CAAE,CAAC;YAE9B,IAAI,SAAS,GAAG,KAAK,CAAA;YAErB,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAGL,AAAP,MAAM,CAAC,OAAO,CAAE,IAAI,GAAG,IAAI;oBAC1B,OAAO,IAAI,CAAA;gBACZ,CAAC;gBAGM,AAAP,MAAM,CAAC,OAAO;oBACb,OAAO;wBACN,UAAU;4BACT,SAAS,GAAG,IAAI,CAAA;wBACjB,CAAC;qBACD,CAAA;gBACF,CAAC;gBAGM,AAAP,MAAM,CAAC,MAAM;oBACZ,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;gBAC9C,CAAC;;YAhBM;gBADL,cAAc;oCAGf;YAGM;gBADL,cAAc;oCAOf;YAGM;gBADL,cAAc;mCAGf;YAIF,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,CAAA;YAC5B,cAAc,CAAE,OAAO,CAAE,CAAA;YAEzB,GAAG,CAAC,OAAO,CAAE,KAAK,CAAE,CAAA;YACpB,eAAe,CAAE,GAAG,CAAC,MAAM,EAAE,CAAE,CAAA;YAE/B,GAAG,CAAC,OAAO,CAAE,IAAI,CAAE,CAAA;YACnB,iBAAiB,CAAE,GAAG,CAAC,MAAM,EAAE,EAAG,OAAO,CAAE,CAAA;YAE3C,eAAe,CAAC,IAAI,EAAE,CAAA;YACtB,eAAe,CAAE,SAAS,CAAE,CAAA;YAE5B,GAAG,CAAC,OAAO,CAAE,KAAK,CAAE,CAAA;YACpB,eAAe,CAAC,IAAI,EAAE,CAAA;YACtB,cAAc,CAAE,SAAS,CAAE,CAAA;YAE3B,GAAG,CAAC,OAAO,CAAE,IAAI,CAAE,CAAA;YACnB,kBAAkB,CAAE,GAAG,CAAC,MAAM,EAAE,EAAG,OAAO,CAAE,CAAA;QAE7C,CAAC;QAED,0EAA0E;QACpE,AAAN,KAAK,CAAC,iCAAiC,CAAC,CAAC;YAExC,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAEZ,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;gBAGX,AAAP,MAAM,CAAC,MAAM,CAAE,IAAW;oBACzB,OAAO,CAAE,eAAe,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAE,IAAI,CAAC,CAAC,CAAE,GAAG,CAAC,CAAA;gBAC3D,CAAC;gBAED,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;gBAGhB,AAAP,MAAM,CAAC,KAAK;oBACX,OAAO,EAAG,IAAI,CAAC,OAAO,CAAA;gBACvB,CAAC;gBAGM,AAAP,MAAM,CAAC,MAAM;oBACZ,IAAI,IAAI,CAAC,MAAM,EAAE;wBAAG,cAAc,CAAE,IAAI,CAAE,CAAC,IAAI,EAAE,CAAA;oBACjD,OAAO,IAAI,CAAC,KAAK,EAAE,CAAA;gBACpB,CAAC;;YAfM;gBADL,cAAc;mCAGf;YAKM;gBADL,cAAc;kCAGf;YAGM;gBADL,cAAc;mCAIf;YAIF,iBAAiB,CAAE,GAAG,CAAC,MAAM,EAAE,EAAG,CAAC,CAAE,CAAA;YAErC,GAAG,CAAC,MAAM,CAAE,IAAI,CAAE,CAAA;YAClB,eAAe,CAAC,IAAI,EAAE,CAAA;YACtB,iBAAiB,CAAE,MAAM,eAAe,CAAE,GAAG,CAAE,CAAC,MAAM,EAAE,EAAG,CAAC,CAAE,CAAA;QAE/D,CAAC;QAEK,AAAN,KAAK,CAAC,uCAAuC,CAAE,CAAC;YAE/C,MAAM,KAAK,GAAG,EAAc,CAAA;YAE5B,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAGL,AAAP,MAAM,CAAC,KAAK,CAAE,IAAI,GAAG,CAAC,IAAK,OAAO,IAAI,CAAA,CAAC,CAAC;gBAExC,gEAAgE;gBAChE,MAAM,CAAC,KAAK,CAAC,IAAI;oBAChB,MAAM,KAAK,GAAG,eAAe,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAE,IAAI,CAAC,CAAA;oBACvD,KAAK,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;oBACnB,OAAO,KAAK,CAAA;gBACb,CAAC;gBAGM,AAAP,MAAM,CAAC,IAAI;oBACV,IAAI,CAAC,KAAK,EAAE,CAAA;oBACZ,OAAO,cAAc,CAAE,IAAI,CAAE,CAAC,IAAI,EAAE,CAAA;gBACrC,CAAC;;YAbM;gBADL,cAAc;kCACwB;YAUjC;gBADL,cAAc;iCAIf;YAIF,MAAM,IAAI,GAAG,eAAe,CAAE,GAAG,CAAE,CAAC,IAAI,EAAE,CAAA;YAC1C,GAAG,CAAC,KAAK,CAAE,CAAC,CAAE,CAAA;YAEd,iBAAiB,CAAE,MAAM,eAAe,CAAE,GAAG,CAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAE,CAAA;YAC3D,gBAAgB,CAAE,KAAK,EAAE,CAAE,CAAC,EAAE,CAAC,CAAE,CAAE,CAAA;YAEnC,MAAM,IAAI,CAAC,KAAK,CAAE,GAAE,EAAE,GAAE,CAAC,CAAE,CAAA;QAE5B,CAAC;QAED,0CAA0C,CAAE,CAAC;YAE5C,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAGL,AAAP,MAAM,CAAC,OAAO,CAAE,IAAI,GAAG,CAAC,IAAK,OAAO,IAAI,CAAA,CAAC,CAAC;gBAGnC,AAAP,MAAM,CAAC,MAAM,CAAE,IAAI,GAAG,CAAC,IAAK,OAAO,IAAI,CAAA,CAAC,CAAC;gBAGlC,AAAP,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,MAAM,EAAE,CAAA,CAAC,CAAC;gBAEtC,qDAAqD;gBAE9C,AAAP,MAAM,CAAC,MAAM;oBACZ,IAAI,CAAC,MAAM,CAAE,IAAI,CAAC,OAAO,EAAE,CAAE,CAAA;oBAC7B,OAAO,IAAI,CAAA;gBACZ,CAAC;gBAGM,AAAP,MAAM,CAAC,IAAI;oBACV,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;oBACxB,IAAI,CAAC,MAAM,EAAE,CAAA;oBACb,OAAO,IAAI,CAAA;gBACZ,CAAC;;YApBM;gBADL,cAAc;oCAC0B;YAGnC;gBADL,cAAc;mCACyB;YAGlC;gBADL,cAAc;iCACsB;YAI/B;gBADL,cAAc;mCAIf;YAGM;gBADL,cAAc;iCAKf;YAIF,iBAAiB,CAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAE,CAAA;YAElC,GAAG,CAAC,OAAO,CAAE,CAAC,CAAE,CAAA;YAChB,iBAAiB,CAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAE,CAAA;QAEnC,CAAC;QAED;;;;;WAKG;QACH,8CAA8C,CAAE,CAAC;YAEhD,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAGL,AAAP,MAAM,CAAC,IAAI,CAAE,IAAI,GAAG,CAAC,IAAK,OAAO,IAAI,CAAA,CAAC,CAAC;gBAGhC,AAAP,MAAM,CAAC,IAAI;oBACV,MAAM,KAAK,GAAG,cAAc,EAAG,CAAA;oBAC/B,KAAK,CAAC,UAAU,EAAE,CAAA;oBAClB,8CAA8C;oBAC9C,OAAO,IAAI,CAAC,IAAI,EAAE,CAAA;gBACnB,CAAC;gBAGM,AAAP,MAAM,CAAC,IAAI;oBACV,IAAI,CAAC;wBACJ,IAAI,CAAC,IAAI,EAAE,CAAA;wBACX,OAAO,IAAI,CAAA;oBACZ,CAAC;oBAAC,OAAO,KAAU,EAAG,CAAC;wBACtB,OAAO,KAAK,EAAE,OAAO,IAAI,MAAM,CAAE,KAAK,CAAE,CAAA;oBACzC,CAAC;gBACF,CAAC;;YAlBM;gBADL,cAAc;iCACuB;YAGhC;gBADL,gBAAgB;iCAMjB;YAGM;gBADL,cAAc;iCAQf;YAIF,iBAAiB,CAAE,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,CAAE,CAAA;YACrC,qEAAqE;YACrE,iBAAiB,CAAE,GAAG,CAAC,IAAI,CAAE,CAAC,CAAE,EAAE,CAAC,CAAE,CAAA;QAEtC,CAAC;QAED,wCAAwC,CAAE,CAAC;YAE1C,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAEZ,MAAM,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;gBAG5B,AAAP,MAAM,CAAC,UAAU,CAAE,IAAI,GAAG,CAAC,IAAK,OAAO,IAAI,CAAA,CAAC,CAAC;gBAGtC,AAAP,MAAM,CAAC,WAAW,CAAE,IAAI,GAAG,CAAC,IAAK,OAAO,IAAI,CAAA,CAAC,CAAC;gBAE9C,6DAA6D;gBAEtD,AAAP,MAAM,CAAC,IAAI;oBACV,IAAI,CAAC,WAAW,CAAE,EAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,CAAA;oBACrC,OAAO,IAAI,CAAC,UAAU,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBACvC,CAAC;gBAED,4DAA4D;gBAErD,AAAP,MAAM,CAAC,KAAK;oBACX,IAAI,CAAC,UAAU,CAAE,EAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAE,CAAA;oBACrC,OAAO,IAAI,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBACxC,CAAC;gBAGM,AAAP,MAAM,CAAC,IAAI;oBACV,OAAO,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;gBAClC,CAAC;;YAtBM;gBADL,cAAc;uCAC6B;YAGtC;gBADL,cAAc;wCAC8B;YAIvC;gBADL,cAAc;iCAIf;YAIM;gBADL,cAAc;kCAIf;YAGM;gBADL,cAAc;iCAGf;YAIF,iBAAiB,CAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAE,CAAA;YAElC,MAAM,OAAO,GAAG,EAAE,GAAI,GAAG,CAAC,IAAI,EAAE,CAAA;YAEhC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAG,CAAC;gBAAG,iBAAiB,CAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAE,CAAA;YAEjE,gBAAgB,CAAE,GAAG,CAAC,IAAI,EAAE,OAAO,CAAE,CAAA;QAEtC,CAAC;QAED,8BAA8B;YAE7B,MAAM,GAAI,SAAQ,YAAY;gBAGtB,AAAP,MAAM,CAAC,KAAK;oBACX,OAAO,IAAI,YAAY,CAAA;gBACxB,CAAC;aAED;YAJO;gBADL,cAAc;kCAGf;YAIF,iBAAiB,CAAE,GAAI,GAAG,CAAC,KAAK,EAAG,EAAE,EAAG,aAAa,CAAE,CAAA;QAExD,CAAC;QAED,wCAAwC,CAAE,CAAC;YAE1C,MAAM,MAAO,SAAQ,YAAY;gBAEhC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAGL,AAAP,MAAM,CAAC,IAAI;oBACV,OAAO,IAAI,CAAC,MAAM,EAAE,CAAA;gBACrB,CAAC;gBAGM,AAAP,MAAM,CAAC,MAAM,CAAE,IAAW;oBACzB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAA;gBACrB,CAAC;gBAGM,AAAP,MAAM,CAAC,KAAK;oBACX,IAAI,CAAC,MAAM,EAAE,CAAA;oBACb,OAAO,IAAI,CAAC,IAAI,EAAE,CAAA;gBACnB,CAAC;;YAbM;gBADL,gBAAgB;oCAGjB;YAGM;gBADL,cAAc;sCAGf;YAGM;gBADL,cAAc;qCAIf;YAIF,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,CAAA;YAE5B,MAAM,CAAC,MAAM,CAAE,IAAI,CAAE,CAAA;YACrB,kBAAkB,CAAE,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,CAAE,CAAA;QAE5C,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EAnyBS,CAAC,KAAD,CAAC,QAmyBV;;;;ACnyBD,IAAU,CAAC,CAqIV;AArID,WAAU,GAAC;IACV,SAAS,CAAC;QAEH,AAAN,KAAK,CAAC,eAAe,CAAE,CAAC;YACvB,MAAM,WAAW,GAAG,GAAG,CAAA;YAEvB,MAAM,IAAK,SAAQ,YAAY;gBAE9B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAGL,AAAP,MAAM,CAAC,IAAI,CAAE,EAAU,EAAE,IAAc;oBACtC,IAAI,IAAI;wBAAE,OAAO,IAAa,CAAA;oBAE9B,UAAU,CAAC,GAAG,EAAE;wBACf,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CAAA;oBAC5C,CAAC,EAAE,EAAE,CAAC,CAAA;oBAEN,gBAAgB,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAA;gBACxC,CAAC;gBAGM,AAAP,MAAM,CAAC,GAAG;oBACT,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBACtB,CAAC;;YAbM;gBADL,cAAc;kCASf;YAGM;gBADL,gBAAgB;iCAGjB;YAIF,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAA;YAC7C,iBAAiB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA;QACpC,CAAC;QAED,8BAA8B,CAAE,CAAC;YAEhC,MAAM,IAAK,SAAQ,YAAY;gBAE9B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAGL,AAAP,MAAM,CAAC,SAAS,CAAE,IAAY,EAAG,IAAa;oBAC7C,OAAO,IAAI,IAAI,IAAI,CAAA;gBACpB,CAAC;gBAGM,AAAP,MAAM,CAAC,UAAU;oBAChB,OAAO;wBACN,IAAI,CAAC,SAAS,CAAE,KAAK,CAAE;wBACvB,IAAI,CAAC,SAAS,CAAE,MAAM,CAAE;qBACxB,CAAA;gBACF,CAAC;;YAVM;gBADL,cAAc;uCAGf;YAGM;gBADL,cAAc;wCAMf;YAIF,gBAAgB,CAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAE,KAAK,EAAE,MAAM,CAAE,CAAE,CAAA;YAExD,IAAI,CAAC,SAAS,CAAE,KAAK,EAAE,KAAK,CAAE,CAAA;YAC9B,gBAAgB,CAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAE,KAAK,EAAE,MAAM,CAAE,CAAE,CAAA;QAEzD,CAAC;QAED,+BAA+B,CAAE,CAAC;YAEjC,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAGL,AAAP,MAAM,CAAC,IAAI,CAAE,GAAuB;oBACnC,OAAO,IAAI,MAAM,CAAE,SAAS,GAAG,EAAE,CAAE,CAAA;gBACpC,CAAC;gBAGM,AAAP,MAAM,CAAC,IAAI;oBAEV,gBAAgB,CAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAE,IAAI,MAAM,CAAE,WAAW,CAAE,CAAE,CAAA;oBAC/D,iBAAiB,CAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAE,CAAA;gBAExD,CAAC;;YAVM;gBADL,cAAc;iCAGf;YAGM;gBADL,gBAAgB;iCAMjB;YAIF,GAAG,CAAC,IAAI,EAAE,CAAA;QACX,CAAC;QAED,8BAA8B;YAE7B,MAAM,GAAI,SAAQ,YAAY;gBAGtB,AAAP,MAAM,CAAC,IAAI,CAAE,MAAc;oBAC1B,OAAO,IAAI,YAAY,CAAA;gBACxB,CAAC;gBAGM,AAAP,MAAM,CAAC,QAAQ,CAAE,CAAE,MAAM,EAAE,KAAK,CAA0B;oBACzD,OAAO,IAAI,YAAY,CAAA;gBACxB,CAAC;aAED;YATO;gBADL,cAAc;iCAGf;YAGM;gBADL,cAAc;qCAGf;YAIF,iBAAiB,CAAE,GAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAE,EAAE,EAAG,eAAe,CAAE,CAAA;YAC3D,iBAAiB,CAAE,GAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAC,CAAC,GAAG,CAAC,CAAC,CAAE,EAAE,EAAG,2BAA2B,CAAE,CAAA;QAEpF,CAAC;QAED,WAAW,CAAE,CAAC;YAEb,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAEZ,MAAM,CAAC,IAAI,GAAG,CAAC,CAAA;gBAGR,AAAP,MAAM,CAAC,KAAK,CAAE,KAAa,EAAG,IAAa;oBAC1C,IAAI,IAAI;wBAAG,OAAO,IAAI,CAAA;oBACtB,IAAI,KAAK,GAAG,CAAC;wBAAG,OAAO,CAAC,CAAA;oBACxB,EAAG,IAAI,CAAC,IAAI,CAAA;oBACZ,OAAO,IAAI,CAAC,KAAK,CAAE,KAAK,GAAG,CAAC,CAAE,GAAG,IAAI,CAAC,KAAK,CAAE,KAAK,GAAG,CAAC,CAAE,CAAA;gBACzD,CAAC;;YALM;gBADL,cAAc;kCAMf;YAIF,iBAAiB,CAAE,GAAG,CAAC,KAAK,CAAE,CAAC,CAAE,EAAE,CAAC,CAAE,CAAA;YACtC,iBAAiB,CAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAE,CAAA;YAEhC,GAAG,CAAC,KAAK,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;YACjB,iBAAiB,CAAE,GAAG,CAAC,KAAK,CAAE,CAAC,CAAE,EAAE,CAAC,CAAE,CAAA;YACtC,iBAAiB,CAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAE,CAAA;QAEjC,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EArIS,CAAC,KAAD,CAAC,QAqIV;;;;ACrID,IAAU,CAAC,CA0BV;AA1BD,WAAU,CAAC;IACV,SAAS,CAAC;QAET,gBAAgB;YAEf,MAAM,KAAM,SAAQ,YAAY;gBAGxB,AAAP,MAAM,CAAC,KAAK,CAAE,IAA+B;oBAC5C,IAAI,CAAC,IAAI;wBAAG,OAAO,EAAE,CAAA;oBACrB,OAAO;wBACN,GAAI,eAAe,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAE,IAAI,EAAE;wBAC9C,GAAI,IAAI;qBACR,CAAA;gBACF,CAAC;aAED;YARO;gBADL,cAAc;oCAOf;YAIF,gBAAgB,CAAE,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,CAAE,CAAA;YAErC,gBAAgB,CAAE,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAE,CAAA;YAC3D,gBAAgB,CAAE,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAE,CAAA;QAEtE,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EA1BS,CAAC,KAAD,CAAC,QA0BV;;;;AC1BD,IAAU,CAAC,CAIV;AAJD,WAAU,CAAC;IACV,SAAgB,kBAAkB,CAAC,GAA8B;QAChE,OAAQ,GAAyC,CAAC,QAAQ,EAAE,CAAA;IAC9D,CAAC;IAFgB,oBAAkB,qBAElC,CAAA;AACD,CAAC,EAJS,CAAC,KAAD,CAAC,QAIV;;;;ACJD,IAAU,CAAC,CAUV;AAVD,WAAU,CAAC;IAEV,IAAI,GAAG,GAAG,IAAI,UAAU,CAAE,CAAC,IAAE,EAAE,CAAE,CAAA,CAAC,eAAe;IAEjD,yDAAyD;IACzD,SAAgB,mBAAmB,CAAE,IAAY;QAChD,IAAI,GAAG,CAAC,UAAU,GAAG,IAAI;YAAG,GAAG,GAAG,IAAI,UAAU,CAAE,IAAI,CAAE,CAAA;QACxD,OAAO,GAAG,CAAA;IACX,CAAC;IAHe,qBAAmB,sBAGlC,CAAA;AAEF,CAAC,EAVS,CAAC,KAAD,CAAC,QAUV;;;;ACVD,IAAU,CAAC,CAgEV;AAhED,WAAU,CAAC;IAEV,SAAgB,mBAAmB,CAAE,GAAW;QAC/C,MAAM,GAAG,GAAG,mBAAmB,CAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAE,CAAA;QACjD,OAAO,GAAG,CAAC,KAAK,CAAE,CAAC,EAAE,sBAAsB,CAAE,GAAG,EAAE,GAAG,CAAE,CAAE,CAAA;IAC1D,CAAC;IAHe,qBAAmB,sBAGlC,CAAA;IAED,SAAgB,sBAAsB,CAAE,GAAW,EAAE,GAA8B,EAAE,IAAI,GAAG,CAAC;QAE5F,IAAI,GAAG,GAAG,IAAI,CAAA;QAEd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAG,CAAC;YAEtC,IAAI,IAAI,GAAG,GAAG,CAAC,UAAU,CAAE,CAAC,CAAE,CAAA;YAE9B,IAAI,IAAI,GAAG,IAAI,EAAG,CAAC,CAAC,kBAAkB;gBAErC,GAAG,CAAE,GAAG,EAAG,CAAE,GAAG,IAAI,CAAA;YAErB,CAAC;iBAAM,IAAI,IAAI,GAAG,KAAK,EAAG,CAAC,CAAC,UAAU;gBAErC,GAAG,CAAE,GAAG,EAAG,CAAE,GAAG,IAAI,GAAG,CAAE,IAAI,IAAI,CAAC,CAAE,CAAA;gBACpC,GAAG,CAAE,GAAG,EAAG,CAAE,GAAG,IAAI,GAAG,CAAE,IAAI,GAAG,IAAI,CAAE,CAAA;YAEvC,CAAC;iBAAM,IAAI,IAAI,GAAG,MAAM,IAAI,IAAI,IAAI,MAAM,EAAG,CAAC,CAAC,UAAU;gBAExD,GAAG,CAAE,GAAG,EAAG,CAAE,GAAG,IAAI,GAAG,CAAE,IAAI,IAAI,EAAE,CAAE,CAAA;gBACrC,GAAG,CAAE,GAAG,EAAG,CAAE,GAAG,IAAI,GAAG,CAAE,CAAE,IAAI,IAAI,CAAC,CAAE,GAAG,IAAI,CAAE,CAAA;gBAC/C,GAAG,CAAE,GAAG,EAAG,CAAE,GAAG,IAAI,GAAG,CAAE,IAAI,GAAG,IAAI,CAAE,CAAA;YAEvC,CAAC;iBAAM,CAAC,CAAC,iBAAiB;gBAEzB,MAAM,KAAK,GAAG,CAAE,CAAE,IAAI,GAAG,MAAM,CAAE,IAAI,EAAE,CAAE,GAAG,GAAG,CAAC,UAAU,CAAE,EAAG,CAAC,CAAE,GAAG,MAAM,CAAA;gBAE3E,GAAG,CAAE,GAAG,EAAG,CAAE,GAAG,IAAI,GAAG,CAAE,KAAK,IAAI,EAAE,CAAE,CAAA;gBACtC,GAAG,CAAE,GAAG,EAAG,CAAE,GAAG,IAAI,GAAG,CAAE,CAAE,KAAK,IAAI,EAAE,CAAE,GAAG,IAAI,CAAE,CAAA;gBACjD,GAAG,CAAE,GAAG,EAAG,CAAE,GAAG,IAAI,GAAG,CAAE,CAAE,KAAK,IAAI,CAAC,CAAE,GAAG,IAAI,CAAE,CAAA;gBAChD,GAAG,CAAE,GAAG,EAAG,CAAE,GAAG,IAAI,GAAG,CAAE,KAAK,GAAG,IAAI,CAAE,CAAA;YAExC,CAAC;QAEF,CAAC;QAED,OAAO,GAAG,GAAG,IAAI,CAAA;IAClB,CAAC;IArCe,wBAAsB,yBAqCrC,CAAA;IAED,SAAgB,wBAAwB,CAAE,GAAW;QAEpD,IAAI,IAAI,GAAG,CAAC,CAAA;QAEZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAG,CAAC;YAEtC,IAAI,IAAI,GAAG,GAAG,CAAC,UAAU,CAAE,CAAC,CAAE,CAAA;YAE9B,IAAI,IAAI,GAAG,IAAI;gBAAG,IAAI,IAAI,CAAC,CAAA;iBACtB,IAAI,IAAI,GAAG,KAAK;gBAAG,IAAI,IAAI,CAAC,CAAA;iBAC5B,IAAI,IAAI,GAAG,MAAM,IAAI,IAAI,IAAI,MAAM;gBAAG,IAAI,IAAI,CAAC,CAAA;;gBAC/C,IAAI,IAAI,CAAC,CAAA;QAEf,CAAC;QAED,OAAO,IAAI,CAAA;IACZ,CAAC;IAhBe,0BAAwB,2BAgBvC,CAAA;AAEF,CAAC,EAhES,CAAC,KAAD,CAAC,QAgEV;;;;AChED,IAAU,CAAC,CA8CV;AA9CD,WAAU,CAAC;IACV,SAAS,CAAC;QAET,cAAc;YACb,iBAAiB,CAChB,mBAAmB,CAAE,EAAE,CAAE,EACzB,IAAI,UAAU,CAAE,EAAE,CAAE,CACpB,CAAA;QACF,CAAC;QAED,gBAAgB;YACf,iBAAiB,CAChB,mBAAmB,CAAE,GAAG,CAAE,EAC1B,IAAI,UAAU,CAAC,CAAE,IAAI,CAAE,CAAC,CACxB,CAAA;QACF,CAAC;QAED,gBAAgB;YACf,iBAAiB,CAChB,mBAAmB,CAAE,GAAG,CAAE,EAC1B,IAAI,UAAU,CAAC,CAAE,IAAI,EAAE,IAAI,CAAE,CAAC,CAC9B,CAAA;QACF,CAAC;QAED,gBAAgB;YACf,iBAAiB,CAChB,mBAAmB,CAAE,GAAG,CAAE,EAC1B,IAAI,UAAU,CAAC,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAE,CAAC,CACpC,CAAA;QACF,CAAC;QAED,gBAAgB;YACf,iBAAiB,CAChB,mBAAmB,CAAE,IAAI,CAAE,EAC3B,IAAI,UAAU,CAAC,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAE,CAAC,CAC1C,CAAA;QACF,CAAC;QAED,uBAAuB;YACtB,iBAAiB,CAChB,mBAAmB,CAAE,IAAI,CAAE,EAC3B,IAAI,UAAU,CAAC,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAE,CAAC,CAC1C,CAAA;QACF,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EA9CS,CAAC,KAAD,CAAC,QA8CV;;;;AC9CD,IAAU,CAAC,CAaV;AAbD,WAAU,CAAC;IAEV,SAAgB,uBAAuB,CAAC,GAA8B;QACrE,IAAI,CAAE,GAAG;YAAE,OAAO,EAAE,CAAA;QAEpB,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAEzD,OAAO,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAC9B,CAAC;IANe,yBAAuB,0BAMtC,CAAA;IAED,IAAK,CAAE,CAAE,UAAU,IAAI,UAAU,CAAC,SAAS,CAAE,EAAG,CAAC;QAChD,CAAC,CAAC,kBAAkB,GAAG,uBAAuB,CAAA;IAC/C,CAAC;AACF,CAAC,EAbS,CAAC,KAAD,CAAC,QAaV;;;;ACbD,IAAU,CAAC,CAgBV;AAhBD,WAAU,CAAC;IACV,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAE,CAAC,CAAA;IAExE,SAAS,CAAC;QACT,sBAAsB;YACrB,iBAAiB,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAA;QAClG,CAAC;QAED,sBAAsB;YACrB,iBAAiB,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,cAAc,CAAC,CAAA;QAC3D,CAAC;QAED,gCAAgC;YAC/B,iBAAiB,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAA;QACzF,CAAC;KACD,CAAC,CAAA;AACH,CAAC,EAhBS,CAAC,KAAD,CAAC,QAgBV;;;;AChBD,IAAU,CAAC,CAMV;AAND,WAAU,CAAC;IACV,SAAgB,kBAAkB,CAAC,MAAc;QAChD,OAAQ,UAEN,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IACtB,CAAC;IAJe,oBAAkB,qBAIjC,CAAA;AACF,CAAC,EANS,CAAC,KAAD,CAAC,QAMV;;;;ACND,IAAU,CAAC,CAYV;AAZD,WAAU,CAAC;IACV,SAAgB,uBAAuB,CAAC,SAAiB;QAExD,8CAA8C;QAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QAE/C,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;IAC3E,CAAC;IANe,yBAAuB,0BAMtC,CAAA;IAED,IAAK,CAAE,CAAE,YAAY,IAAI,UAAU,CAAE,EAAG,CAAC;QACxC,CAAC,CAAC,kBAAkB,GAAG,uBAAuB,CAAA;IAC/C,CAAC;AACF,CAAC,EAZS,CAAC,KAAD,CAAC,QAYV;;;;ACZD,IAAU,CAAC,CAsBV;AAtBD,WAAU,CAAC;IACV,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAE,CAAC,CAAA;IAExE,MAAM,SAAS,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAEpD,SAAS,CAAC;QACT,sBAAsB;YACrB,iBAAiB,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAA;QACvG,CAAC;QAED,sBAAsB;YACrB,iBAAiB,CAAC,kBAAkB,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC,CAAA;QAC3D,CAAC;QAED,uCAAuC;YACtC,iBAAiB,CAAC,kBAAkB,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,CAAA;QACzD,CAAC;QAED,yBAAyB;YACxB,iBAAiB,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,EAAE,SAAS,CAAC,CAAA;QACrE,CAAC;KACD,CAAC,CAAA;AACH,CAAC,EAtBS,CAAC,KAAD,CAAC,QAsBV;;;;ACtBD,IAAU,CAAC,CAUV;AAVD,WAAU,CAAC;IAEV,SAAgB,qBAAqB,CAAE,MAAiC;QACvE,OAAO,kBAAkB,CAAE,MAAM,CAAE,CAAC,OAAO,CAAE,KAAK,EAAE,GAAG,CAAE,CAAC,OAAO,CAAE,KAAK,EAAE,GAAG,CAAE,CAAC,OAAO,CAAC,IAAI,EAAC,EAAE,CAAC,CAAA;IACjG,CAAC;IAFe,uBAAqB,wBAEpC,CAAA;IAED,SAAgB,qBAAqB,CAAE,GAAW;QACjD,OAAO,kBAAkB,CAAE,GAAG,CAAC,OAAO,CAAE,IAAI,EAAE,GAAG,CAAE,CAAC,OAAO,CAAE,IAAI,EAAE,GAAG,CAAE,CAAE,CAAA;IAC3E,CAAC;IAFe,uBAAqB,wBAEpC,CAAA;AAEF,CAAC,EAVS,CAAC,KAAD,CAAC,QAUV;;;;ACVD,IAAU,CAAC,CAEV;AAFD,WAAU,CAAC;IACC,oBAAkB,GAAG,KAAK,CAAC,MAAM,CAAC,SAA0B,CAAA;AACxE,CAAC,EAFS,CAAC,KAAD,CAAC,QAEV;;;;ACFD,IAAU,CAAC,CA+IV;AA/ID,WAAU,CAAC;IAEV,IAAI,MAAM,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,CAAA;IAEhC,iDAAiD;IACjD,SAAgB,iBAAiB,CAAE,KAAsB;QAExD,MAAM,IAAI,GAAG,KAAK,YAAY,UAAU;YACvC,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,IAAI,UAAU,CAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAE,CAAA;QAErE,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,CAAA;QACjC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,CAAA;QACvB,MAAM,KAAK,GAAG,IAAI,IAAI,CAAE,EAAE,GAAG,IAAI,GAAG,OAAO,CAAE,CAAA;QAE7C,MAAM,KAAK,GAAG,EAAE,GAAG,CAAE,CAAE,IAAI,GAAG,EAAE,CAAE,KAAK,CAAC,IAAI,CAAC,CAAE,CAAA;QAC/C,MAAM,KAAK,GAAG,KAAK,GAAG,CAAC,CAAA;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,CAAA;QAEtC,IAAI,IAAI,GAAG,CAAC,CAAA;QACZ,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAG,CAAC;YAC1C,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAE,CAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAE,IAAI,CAAC,CAAE,CAAA;QAC7C,CAAC;QAED,UAAU;QACV,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,CAAE,UAAU,EAAE,CAAC,SAAS,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC,UAAU,CAAE,CAAC,CAAA;QAE5F,SAAS;QACT,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,EAAE,EAAG,CAAC;YAErC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YAChB,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YAChB,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YAChB,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YAChB,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YAEhB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAG,CAAC;gBAE9B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;gBACf,IAAI,CAAC,KAAK,KAAK,EAAG,CAAC;oBAElB,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;gBAEjB,CAAC;qBAAM,CAAC;oBAEP,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,CAAA;oBAClB,IAAI,IAAI,GACP,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBACrB,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BAChB,CAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,GAAC,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,GAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAC,CAAC,CAAC,CAAE,CAAA;oBAEzE,IAAI,CAAC,KAAK,KAAK;wBAAG,IAAI,IAAI,KAAK,CAAA;oBAE/B,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;gBAEjB,CAAC;gBAED,MAAM,IAAI,GAAG,CAAE,CAAE,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAE,GAAG,UAAU,GAAG,EAAE,GAAG,CAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAE,GAAG,CAAC,CAAE,EAAE,IAAI,CAAC,CAAE,GAAC,CAAE,EAAE,KAAK,EAAE,CAAE,CAAC,CAAE,GAAC,CAAC,CAAA;gBAE/G,EAAE,GAAG,EAAE,CAAA;gBACP,EAAE,GAAG,EAAE,CAAA;gBACP,EAAE,GAAG,CAAE,EAAE,IAAI,EAAE,CAAE,GAAC,CAAE,EAAE,KAAK,CAAC,CAAE,CAAA;gBAC9B,EAAE,GAAG,EAAE,CAAA;gBACP,EAAE,GAAG,IAAI,CAAA;YAEV,CAAC;YAED,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAG,CAAC;gBAE/B,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,GAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,GAAC,EAAE,CAAC,CAAA;gBACvE,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,GAAG,OAAO,KAAK,EAAE,CAAA;gBAEzC,MAAM,IAAI,GAAG,CAAE,CAAE,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAE,GAAG,UAAU,GAAG,EAAE,GAAG,CAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAE,GAAG,CAAC,CAAE,EAAE,IAAI,CAAC,CAAE,GAAC,CAAE,EAAE,KAAK,EAAE,CAAE,CAAC,CAAE,GAAC,CAAC,CAAA;gBAE/G,EAAE,GAAG,EAAE,CAAA;gBACP,EAAE,GAAG,EAAE,CAAA;gBACP,EAAE,GAAG,CAAE,EAAE,IAAI,EAAE,CAAE,GAAC,CAAE,EAAE,KAAK,CAAC,CAAE,CAAA;gBAC9B,EAAE,GAAG,EAAE,CAAA;gBACP,EAAE,GAAG,IAAI,CAAA;YAEV,CAAC;YAED,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAG,CAAC;gBAE/B,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,GAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,GAAC,EAAE,CAAC,CAAA;gBACvE,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,GAAG,OAAO,KAAK,EAAE,CAAA;gBAEzC,MAAM,IAAI,GAAG,CAAE,CAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAE,GAAG,UAAU,GAAG,EAAE,GAAG,CAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAE,GAAG,CAAC,CAAE,EAAE,IAAI,CAAC,CAAE,GAAC,CAAE,EAAE,KAAK,EAAE,CAAE,CAAC,CAAE,GAAC,CAAC,CAAA;gBAEzG,EAAE,GAAG,EAAE,CAAA;gBACP,EAAE,GAAG,EAAE,CAAA;gBACP,EAAE,GAAG,CAAE,EAAE,IAAI,EAAE,CAAE,GAAC,CAAE,EAAE,KAAK,CAAC,CAAE,CAAA;gBAC9B,EAAE,GAAG,EAAE,CAAA;gBACP,EAAE,GAAG,IAAI,CAAA;YAEV,CAAC;YAED,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAG,CAAC;gBAE/B,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,GAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,GAAC,EAAE,CAAC,CAAA;gBACvE,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,GAAG,OAAO,KAAK,EAAE,CAAA;gBAEzC,MAAM,IAAI,GAAG,CAAE,CAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAE,GAAG,UAAU,GAAG,EAAE,GAAG,CAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAE,GAAG,CAAC,CAAE,EAAE,IAAI,CAAC,CAAE,GAAC,CAAE,EAAE,KAAK,EAAE,CAAE,CAAC,CAAE,GAAC,CAAC,CAAA;gBAExH,EAAE,GAAG,EAAE,CAAA;gBACP,EAAE,GAAG,EAAE,CAAA;gBACP,EAAE,GAAG,CAAE,EAAE,IAAI,EAAE,CAAE,GAAC,CAAE,EAAE,KAAK,CAAC,CAAE,CAAA;gBAC9B,EAAE,GAAG,EAAE,CAAA;gBACP,EAAE,GAAG,IAAI,CAAA;YAEV,CAAC;YAED,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAG,CAAC;gBAE/B,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,GAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,GAAC,EAAE,CAAC,CAAA;gBACvE,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,GAAG,OAAO,KAAK,EAAE,CAAA;gBAEzC,MAAM,IAAI,GAAG,CAAE,CAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAE,GAAG,SAAS,GAAG,EAAE,GAAG,CAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAE,GAAG,CAAC,CAAE,EAAE,IAAI,CAAC,CAAE,GAAC,CAAE,EAAE,KAAK,EAAE,CAAE,CAAC,CAAE,GAAC,CAAC,CAAA;gBAExG,EAAE,GAAG,EAAE,CAAA;gBACP,EAAE,GAAG,EAAE,CAAA;gBACP,EAAE,GAAG,CAAE,EAAE,IAAI,EAAE,CAAE,GAAC,CAAE,EAAE,KAAK,CAAC,CAAE,CAAA;gBAC9B,EAAE,GAAG,EAAE,CAAA;gBACP,EAAE,GAAG,IAAI,CAAA;YAEV,CAAC;YAED,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;YACb,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;YACb,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;YACb,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;YACb,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QAEd,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAG,CAAC;YAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YACpB,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,QAAQ,GAAG,IAAI,KAAK,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,EAAE,GAAG,IAAI,CAAA,CAAC,WAAW;QACnG,CAAC;QAED,OAAO,IAAI,UAAU,CAAE,IAAI,CAAC,MAAM,CAAE,CAAA;IACrC,CAAC;IAxIe,mBAAiB,oBAwIhC,CAAA;AAEF,CAAC,EA/IS,CAAC,KAAD,CAAC,QA+IV;;;;AC/ID,IAAU,CAAC,CAgDV;AAhDD,WAAU,CAAC;IACV,SAAS,CAAC;QAET,YAAY;YACX,iBAAiB,CAChB,iBAAiB,CAAE,IAAI,UAAU,CAAC,EAAE,CAAC,CAAE,EACvC,IAAI,UAAU,CAAC,CAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAC1G,CAAA;QACF,CAAC;QAED,kBAAkB;YACjB,iBAAiB,CAChB,iBAAiB,CAAE,IAAI,UAAU,CAAC,CAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAE,CAAC,CAAE,EACtD,IAAI,UAAU,CAAC,CAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAE,CAAC,CAC3G,CAAA;QACF,CAAC;QAED,gBAAgB;YACf,iBAAiB,CAChB,iBAAiB,CAAE,IAAI,UAAU,CAAC,CAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAE,CAAC,CAAE,EACjE,IAAI,UAAU,CAAC,CAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAE,CAAC,CAC5G,CAAA;QACF,CAAC;QAED,kBAAkB;YACjB,iBAAiB,CAChB,iBAAiB,CAAE,IAAI,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAE,EAC5D,IAAI,UAAU,CAAC,CAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAE,CAAC,CAC9G,CAAA;QACF,CAAC;QAED,gBAAgB;YACf,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YACvD,iBAAiB,CAChB,iBAAiB,CAAE,IAAI,UAAU,CAAE,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAE,CAAE,EACxD,IAAI,UAAU,CAAC,CAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAE,CAAC,CAC9G,CAAA;QACF,CAAC;QAED,KAAK,CAAC,WAAW;YAChB,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,EAAC,GAAG,EAAC,GAAG,CAAC,CAAC,CAAA;YAC1C,iBAAiB,CAChB,iBAAiB,CAAC,IAAI,CAAC,EACvB,IAAI,UAAU,CAAE,MAAM,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAE,OAAO,EAAE,IAAI,CAAE,CAAE,CACzE,CAAA;QACF,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EAhDS,CAAC,KAAD,CAAC,QAgDV;;;;AChDD,IAAU,CAAC,CAyIV;AAzID,WAAU,CAAC;IACV,MAAa,WAAY,SAAQ,QAAuB;QAEvD,CAAE,MAAM,CAAC,WAAW,CAAE,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAA;QAErD,MAAM,CAAC,IAAI,CAIV,KAAqE;YAErE,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAG,KAAK,GAAG,IAAI,UAAU,CAAE,KAAK,CAAE,CAAA;YAC/D,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAG,KAAK,GAAG,qBAAqB,CAAE,KAAK,CAAE,CAAA;YACtE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAE,KAAK,CAAE;gBAAG,KAAK,GAAG,IAAI,UAAU,CAAE,KAAK,CAAE,CAAA;YAClE,OAAO,IAAI,IAAI,CAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAA0B,CAAA;QAC5F,CAAC;QAED,MAAM,CAAC,QAAQ;YACd,OAAO,EAAE,CAAC,cAAc,CAAE,IAAI,CAAE,CAAA;QACjC,CAAC;QAED,SAAS,CAAE,MAAc,EAAE,EAAE,GAAG,KAAK;YACpC,IAAI,MAAM,GAAG,CAAC,EAAG,CAAC;gBACjB,OAAO,IAAI,CAAC,SAAS,CAAE,MAAM,EAAE,EAAE,CAAE,GAAG,IAAI,CAAC,SAAS,CAAE,MAAM,GAAG,CAAC,EAAE,EAAE,CAAE,GAAG,CAAC,IAAE,EAAE,CAAA;YAC/E,CAAC;iBAAM,CAAC;gBACP,OAAO,IAAI,CAAC,SAAS,CAAE,MAAM,EAAE,EAAE,CAAE,GAAG,IAAI,CAAC,SAAS,CAAE,MAAM,GAAG,CAAC,EAAE,EAAE,CAAE,GAAG,CAAC,IAAE,EAAE,CAAA;YAC/E,CAAC;QACF,CAAC;QAED,SAAS,CAAE,MAAc,EAAE,KAAa,EAAE,EAAE,GAAG,KAAK;YACnD,IAAI,MAAM,GAAG,CAAC,EAAG,CAAC;gBACjB,IAAI,CAAC,SAAS,CAAE,MAAM,EAAE,KAAK,GAAG,CAAE,CAAC,CAAC,IAAE,EAAE,CAAC,GAAG,CAAC,CAAE,EAAE,EAAE,CAAE,CAAA;gBACrD,IAAI,CAAC,SAAS,CAAE,MAAM,GAAG,CAAC,EAAE,CAAE,KAAK,GAAG,CAAC,IAAE,EAAE,CAAE,GAAC,CAAC,EAAE,EAAE,CAAE,CAAA;YACtD,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,SAAS,CAAE,MAAM,EAAE,KAAK,GAAE,CAAC,EAAE,EAAE,CAAE,CAAA;gBACtC,IAAI,CAAC,SAAS,CAAE,MAAM,GAAG,CAAC,EAAE,CAAE,KAAK,GAAG,CAAC,IAAE,EAAE,CAAE,GAAC,CAAC,EAAE,EAAE,CAAE,CAAA;YACtD,CAAC;QACF,CAAC;QAED,gDAAgD;QAChD,IAAI,CAAE,MAAc,EAAE,IAAa;YAClC,IAAI,IAAI,KAAK,SAAS;gBAAG,OAAO,IAAI,CAAC,OAAO,CAAE,MAAM,CAAE,CAAA;YACtD,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,IAAE,CAAC;gBAAG,OAAO,IAAI,CAAC,OAAO,CAAE,MAAM,EAAE,IAAI,CAAE,EAAE,IAAI,CAAA;YAC9E,SAAS,CAAE,IAAI,KAAK,CAAE,oBAAqB,IAAK,EAAE,CAAE,CAAE,CAAA;QACvD,CAAC;QAED,kDAAkD;QAClD,KAAK,CAAE,MAAc,EAAE,IAAa;YACnC,IAAI,IAAI,KAAK,SAAS;gBAAG,OAAO,IAAI,CAAC,QAAQ,CAAE,MAAM,CAAE,CAAA;YACvD,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAE,CAAC;gBAAG,OAAO,IAAI,CAAC,QAAQ,CAAE,MAAM,EAAE,IAAI,CAAE,EAAE,IAAI,CAAA;YACzE,SAAS,CAAE,IAAI,KAAK,CAAE,qBAAsB,IAAK,EAAE,CAAE,CAAE,CAAA;QACxD,CAAC;QAED,8DAA8D;QAC9D,KAAK,CAAE,MAAc,EAAE,IAAa;YACnC,IAAI,IAAI,KAAK,SAAS;gBAAG,OAAO,IAAI,CAAC,QAAQ,CAAE,MAAM,EAAE,IAAI,CAAE,CAAA;YAC7D,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAE,EAAE,CAAC,IAAI,IAAI,GAAG,CAAC,IAAE,EAAE;gBAAG,OAAO,IAAI,CAAC,QAAQ,CAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAE,EAAE,IAAI,CAAA;YACvF,SAAS,CAAE,IAAI,KAAK,CAAE,qBAAsB,IAAK,EAAE,CAAE,CAAE,CAAA;QACxD,CAAC;QAED,gEAAgE;QAChE,MAAM,CAAE,MAAc,EAAE,IAAa;YACpC,IAAI,IAAI,KAAK,SAAS;gBAAG,OAAO,IAAI,CAAC,SAAS,CAAE,MAAM,EAAE,IAAI,CAAE,CAAA;YAC9D,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAE,EAAE;gBAAG,OAAO,IAAI,CAAC,SAAS,CAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAE,EAAE,IAAI,CAAA;YACjF,SAAS,CAAE,IAAI,KAAK,CAAE,sBAAuB,IAAK,EAAE,CAAE,CAAE,CAAA;QACzD,CAAC;QAED,8DAA8D;QAC9D,KAAK,CAAE,MAAc,EAAE,IAAa;YACnC,IAAI,IAAI,KAAK,SAAS;gBAAG,OAAO,IAAI,CAAC,QAAQ,CAAE,MAAM,EAAE,IAAI,CAAE,CAAA;YAC7D,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAE,EAAE,CAAC,IAAI,IAAI,GAAG,CAAC,IAAE,EAAE;gBAAG,OAAO,IAAI,CAAC,QAAQ,CAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAE,EAAE,IAAI,CAAA;YACvF,SAAS,CAAE,IAAI,KAAK,CAAE,qBAAsB,IAAK,EAAE,CAAE,CAAE,CAAA;QACxD,CAAC;QAED,gEAAgE;QAChE,MAAM,CAAE,MAAc,EAAE,IAAa;YACpC,IAAI,IAAI,KAAK,SAAS;gBAAG,OAAO,IAAI,CAAC,SAAS,CAAE,MAAM,EAAE,IAAI,CAAE,CAAA;YAC9D,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAE,EAAE;gBAAG,OAAO,IAAI,CAAC,SAAS,CAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAE,EAAE,IAAI,CAAA;YACjF,SAAS,CAAE,IAAI,KAAK,CAAE,sBAAuB,IAAK,EAAE,CAAE,CAAE,CAAA;QACzD,CAAC;QAED,8DAA8D;QAC9D,KAAK,CAAE,MAAc,EAAE,IAAa;YACnC,IAAI,IAAI,KAAK,SAAS;gBAAG,OAAO,IAAI,CAAC,WAAW,CAAE,MAAM,EAAE,IAAI,CAAE,CAAA;YAChE,IAAI,IAAI,IAAI,CAAC,CAAC,EAAE,IAAE,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE,IAAE,GAAG;gBAAG,OAAO,IAAI,CAAC,WAAW,CAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAE,EAAE,IAAI,CAAA;YAC9F,SAAS,CAAE,IAAI,KAAK,CAAE,qBAAsB,IAAK,EAAE,CAAE,CAAE,CAAA;QACxD,CAAC;QAED,gEAAgE;QAChE,MAAM,CAAE,MAAc,EAAE,IAAa;YACpC,IAAI,IAAI,KAAK,SAAS;gBAAG,OAAO,IAAI,CAAC,SAAS,CAAE,MAAM,EAAE,IAAI,CAAE,CAAA;YAC9D,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAE,EAAE;gBAAG,OAAO,IAAI,CAAC,SAAS,CAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAE,EAAE,IAAI,CAAA;YACjF,SAAS,CAAE,IAAI,KAAK,CAAE,sBAAuB,IAAK,EAAE,CAAE,CAAE,CAAA;QACzD,CAAC;QAED,gEAAgE;QAChE,MAAM,CAAE,MAAc,EAAE,IAAa;YACpC,IAAI,IAAI,KAAK,SAAS;gBAAG,OAAO,IAAI,CAAC,YAAY,CAAE,MAAM,EAAE,IAAI,CAAE,CAAA;YACjE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,GAAG,EAAE,IAAE,GAAG;gBAAG,OAAO,IAAI,CAAC,YAAY,CAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAE,EAAE,IAAI,CAAA;YACvF,SAAS,CAAE,IAAI,KAAK,CAAE,sBAAuB,IAAK,EAAE,CAAE,CAAE,CAAA;QACzD,CAAC;QAED,qDAAqD;QACrD,OAAO,CAAE,MAAc,EAAE,IAAa;YACrC,IAAI,IAAI,KAAK,SAAS;gBAAG,IAAI,CAAC,UAAU,CAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAE,CAAA;YAC9D,OAAO,IAAI,CAAC,UAAU,CAAE,MAAM,EAAE,IAAI,CAAE,CAAA;QACvC,CAAC;QAED,qDAAqD;QACrD,OAAO,CAAE,MAAc,EAAE,IAAa;YACrC,IAAI,IAAI,KAAK,SAAS;gBAAG,IAAI,CAAC,UAAU,CAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAE,CAAA;YAC9D,OAAO,IAAI,CAAC,UAAU,CAAE,MAAM,EAAE,IAAI,CAAE,CAAA;QACvC,CAAC;QAED,qDAAqD;QACrD,OAAO,CAAE,MAAc,EAAE,IAAa;YACrC,IAAI,IAAI,KAAK,SAAS;gBAAG,IAAI,CAAC,UAAU,CAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAE,CAAA;YAC9D,OAAO,IAAI,CAAC,UAAU,CAAE,MAAM,EAAE,IAAI,CAAE,CAAA;QACvC,CAAC;QAED,GAAG,CAAE,KAAgC;YACpC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;YAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBAAG,GAAG,CAAE,CAAC,GAAG,GAAG,CAAC,UAAU,CAAE,IAAI,KAAK,CAAE,CAAC,CAAE,CAAA;YAC/E,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,6CAA6C;QAC7C,OAAO;YACN,OAAO,IAAI,UAAU,CAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAE,CAAA;QACvE,CAAC;QAED,mCAAmC;QACnC,QAAQ;YACP,OAAO,qBAAqB,CAAE,IAAI,CAAC,OAAO,EAAE,CAAE,CAAA;QAC/C,CAAC;KAED;IAvIY,aAAW,cAuIvB,CAAA;AACF,CAAC,EAzIS,CAAC,KAAD,CAAC,QAyIV;;;;ACzID,IAAU,CAAC,CAwEV;AAxED,WAAU,CAAC;IAEV,MAAa,YAAa,SAAQ,YAAY;QAE7C,MAAM,CAAC,IAAI,CAAmE;QAE9E,MAAM,CAAC,GAAG,CAAY,IAAkB;YACvC,OAAO,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,EAAE,CAAA;QAC3B,CAAC;QAED,MAAM,CAAC,IAAI,CACV,IAAiD;YAEjD,OAAO,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;QACzB,CAAC;QAED,MAAM,KAAK,KAAK;YAEf,OAAO,CACN,KAAa,EACZ,EAAE;gBAKH,MAAM,SAAS,GAAG,CAAE,MAAc,EAAG,IAAW,EAAE,EAAE,CAAC,IAAI,KAAK,CAAE,GAAI,IAAI,CAAE,CAAA;gBAE1E,MAAM,OAAO,GAAwB;oBACpC,SAAS,EAAG,IAAI,CAAC,IAAI,CAAE,SAAS,CAAE;iBAClC,CAEA;gBAAC,OAAe,CAAE,MAAM,CAAC,WAAW,CAAE,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,CAAA;gBAE1D,OAAO,IAAI,KAAK,CAAE,KAAK,EAAG,OAAO,CAAE,CAAA;YAEpC,CAAC,CAAA;QAEF,CAAC;QAED,MAAM,KAAK,MAAM;YAEhB,OAAO,CACN,GAAY,EACZ,IAAkB,EAClB,QAAQ,OAAO,CAAC,wBAAwB,CAAE,GAAG,EAAE,IAAI,CAAG,EACrD,EAAE;gBACH,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAE,KAAK,CAAC,KAAM,CAAE,CAAA;gBACvC,OAAO,KAAK,CAAA;YACb,CAAC,CAAA;QAEF,CAAC;QAED,MAAM,KAAK,KAAK;YAEf,OAAO,CAMN,GAAU,EACV,IAAY,EACZ,QAAQ,OAAO,CAAC,wBAAwB,CAAE,GAAG,EAAE,IAAI,CAAyC,EAC3F,EAAE;gBACH,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,KAAK,CAAC,GAAI,CAAE,CAAA;gBAC/C,OAAO,KAAK,CAAA;YACb,CAAC,CAAA;QAEF,CAAC;KAED;IApEY,cAAY,eAoExB,CAAA;AAEF,CAAC,EAxES,CAAC,KAAD,CAAC,QAwEV;;;;ACxED,IAAU,CAAC,CA0KV;AA1KD,WAAU,CAAC;IAEV,SAAS,CAAC;QAET,cAAc;YAEb,MAAM,KAAM,SAAQ,YAAY;gBAE/B,MAAM,CAAC,IAAI,CAA+B,IAAiD;oBAE1F,OAAO,UAAwB,GAAI,IAAW;wBAC7C,OAAO,IAAI,CAAC,IAAI,CAAE,IAAI,EAAG,GAAI,IAAI,CAAE,GAAG,CAAW,CAAA;oBAClD,CAAC,CAAA;gBAEF,CAAC;aAED;YAED,iBAAiB,CAAE,KAAK,CAAC,GAAG,CAAE,GAAE,EAAE,CAAC,CAAC,CAAE,EAAG,CAAC,CAAE,CAAA;QAE7C,CAAC;QAED,eAAe;YAEd,MAAM,KAAM,SAAQ,YAAY;gBAE/B,MAAM,CAAC,IAAI,CAA+B,IAAiD;oBAE1F,OAAO,UAAwB,GAAI,IAAW;wBAC7C,OAAO,IAAI,CAAC,IAAI,CAAE,IAAI,EAAG,GAAI,IAAI,CAAE,GAAG,CAAW,CAAA;oBAClD,CAAC,CAAA;gBAEF,CAAC;aAED;YAED,MAAM,GAAG,GAAG;gBACX,KAAK,EAAG,CAAC;gBACT,GAAG,EAAG,KAAK,CAAC,IAAI,CAAE,UAAsC,CAAC;oBACxD,OAAO,CAAC,IAAI,IAAI,CAAC,KAAK,CAAA;gBACvB,CAAC,CAAE;aACH,CAAA;YAED,iBAAiB,CAAE,GAAG,CAAC,GAAG,CAAE,CAAC,CAAE,EAAG,CAAC,CAAE,CAAA;QAEtC,CAAC;QAED,uBAAuB;YAEtB,MAAM,KAAM,SAAQ,YAAY;gBAE/B,MAAM,CAAC,IAAI,GAAG,CAAC,CAAA;gBAEf,MAAM,CAAC,IAAI,CAA+B,IAAiD;oBAE1F,OAAO,UAAwB,GAAI,IAAW;wBAC7C,OAAO,KAAK,CAAC,IAAI,GAAG,CAAE,IAAI,CAAC,IAAI,CAAE,IAAI,EAAG,GAAI,IAAI,CAAE,IAAI,CAAC,CAAE,GAAG,CAAW,CAAA;oBACxE,CAAC,CAAA;gBAEF,CAAC;;YAIF,MAAM,GAAG;gBAGD,AAAP,MAAM,KAAK,GAAG;oBACb,OAAO,CAAC,CAAA;gBACT,CAAC;gBACD,MAAM,KAAK,GAAG,CAAE,IAAa,IAAI,CAAC;aAElC;YALO;gBADL,KAAK,CAAC,KAAK;gCAGZ;YAKF,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAG,CAAC,CAAE,CAAA;YAEhC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAA;YACX,iBAAiB,CAAE,KAAK,CAAC,IAAI,EAAG,CAAC,CAAE,CAAA;YACnC,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAG,CAAC,CAAE,CAAA;QAEjC,CAAC;QAED,0BAA0B;YAEzB,MAAM,KAAM,SAAQ,YAAY;gBAE/B,MAAM,CAAC,IAAI,CAA+B,IAAiD;oBAE1F,OAAO,UAAwB,GAAI,IAAW;wBAC7C,OAAO,IAAI,CAAC,IAAI,CAAE,IAAI,EAAG,GAAI,IAAI,CAAE,GAAG,CAAW,CAAA;oBAClD,CAAC,CAAA;gBAEF,CAAC;aAED;YAED,MAAM,IAAI;gBAET,KAAK,GAAG,CAAC,CAAA;gBAGT,GAAG,CAAE,CAAU;oBACd,OAAO,CAAC,IAAI,IAAI,CAAC,KAAK,CAAA;gBACvB,CAAC;aAED;YAJA;gBADE,KAAK,CAAC,MAAM;2CAGb;YAIF,MAAM,IAAI,GAAG,IAAI,CAAA;YACjB,MAAM,GAAG,GAAG,IAAI,IAAI,CAAA;YAEpB,iBAAiB,CAAE,GAAG,CAAC,GAAG,CAAE,CAAC,CAAE,EAAG,CAAC,CAAE,CAAA;QAEtC,CAAC;QAED,wBAAwB;YAEvB,MAAM,KAAM,SAAQ,YAAY;gBAE/B,MAAM,CAAC,IAAI,CAA+B,IAAiD;oBAE1F,OAAO,UAAwB,GAAI,IAAW;wBAC7C,OAAO,IAAI,CAAC,IAAI,CAAE,IAAI,EAAG,GAAI,IAAI,CAAE,GAAG,CAAW,CAAA;oBAClD,CAAC,CAAA;gBAEF,CAAC;aAED;YAED,MAAM,GAAG;gBAER,MAAM,CAAC,KAAK,GAAG,CAAC,CAAA;gBAGT,AAAP,MAAM,CAAC,GAAG,CAAE,CAAU;oBACrB,OAAO,CAAC,IAAI,IAAI,CAAC,KAAK,CAAA;gBACvB,CAAC;;YAFM;gBADL,KAAK,CAAC,MAAM;gCAGb;YAIF,iBAAiB,CAAE,GAAG,CAAC,GAAG,CAAE,CAAC,CAAE,EAAG,CAAC,CAAE,CAAA;QAEtC,CAAC;QAED,gBAAgB;YAEf,MAAM,MAAO,SAAQ,YAAY;gBAEhC,MAAM,CAAC,IAAI,CAA+B,IAA8C;oBAEvF,OAAO,UAAwB,GAAI,IAAW;wBAE7C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,IAAI,EAAG,GAAG,IAAI,CAAE,CAAA;wBACvC,GAAG,CAAC,GAAG,EAAG,CAAA;wBACV,OAAO,GAAG,CAAA;oBAEX,CAAC,CAAA;gBAEF,CAAC;aAED;YAGD,IAAM,GAAG,GAAT,MAAM,GAAG;gBACY;gBAApB,YAAoB,GAAY;oBAAZ,QAAG,GAAH,GAAG,CAAS;gBAAI,CAAC;aACrC,CAAA;YAFK,GAAG;gBADP,MAAM,CAAC,KAAK;eACR,GAAG,CAER;YAED,iBAAiB,CAAE,IAAI,GAAG,CAAE,CAAC,CAAE,CAAC,GAAG,EAAG,CAAC,CAAE,CAAA;QAE1C,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EA1KS,CAAC,KAAD,CAAC,QA0KV;;;;AC1KD,IAAU,CAAC,CA2BV;AA3BD,WAAU,CAAC;IAEV,MAAa,SAAU,SAAQ,YAAY;QAE1C,MAAM,CAAC,IAAI,CAAiC,IAA8C;YAEzF,MAAM,KAAK,GAAG,IAAI,OAAO,EAAkB,CAAA;YAE3C,MAAM,GAAG,GAAG,UAAwB,IAAa;gBAEhD,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,CAAE,IAAI,IAAI,GAAG,CAAE;oBAAG,OAAO,KAAK,CAAC,GAAG,CAAE,IAAI,IAAI,GAAG,CAAE,CAAA;gBAEpF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,IAAI,EAAG,IAAI,CAAE,IAAI,IAAI,CAAA;gBAE5C,KAAK,CAAC,GAAG,CAAE,IAAI,IAAI,GAAG,EAAG,GAAI,CAAE,CAAA;gBAE/B,OAAO,GAAG,CAAA;YAEX,CAAC,CAAA;YAED,OAAO,CAAC,cAAc,CAAE,GAAG,EAAG,MAAM,EAAG,EAAE,KAAK,EAAG,IAAI,CAAC,IAAI,GAAG,GAAG,EAAE,CAAE,CAAA;YAEpE,OAAO,GAAG,CAAA;QACX,CAAC;KAED;IAvBY,WAAS,YAuBrB,CAAA;AAEF,CAAC,EA3BS,CAAC,KAAD,CAAC,QA2BV;;;;AC3BD,IAAU,CAAC,CA8BV;AA9BD,WAAU,CAAC;IAEV,SAAS,CAAC;QAET,eAAe;YAEd,MAAM,GAAG;gBAER,MAAM,CAAC,GAAG,GAAG,CAAC,CAAA;gBAGP,AAAP,MAAM,KAAK,GAAG;oBACb,OAAO,EAAG,IAAI,CAAC,GAAG,CAAA;gBACnB,CAAC;gBACD,MAAM,KAAK,GAAG,CAAE,IAAa,IAAI,CAAC;;YAH3B;gBADL,SAAS,CAAC,KAAK;gCAGhB;YAKF,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAG,CAAC,CAAE,CAAA;YAChC,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAG,CAAC,CAAE,CAAA;YAEhC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAA;YAEX,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAG,CAAC,CAAE,CAAA;YAChC,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAG,CAAC,CAAE,CAAA;QAEjC,CAAC;KAED,CAAC,CAAA;AAEH,CAAC,EA9BS,CAAC,KAAD,CAAC,QA8BV;;;;AC9BD,IAAU,CAAC,CAgCV;AAhCD,WAAU,CAAC;IACV,MAAa,aAAc,SAAQ,YAAY;QAE9C,MAAM,CAAC,IAAI,CACV,IAAoD;YAGpD,MAAM,KAAK,GAAG,IAAI,OAAO,EAAgC,CAAA;YAEzD,MAAM,GAAG,GAAG,UAAsB,GAAQ,EAAE,IAAY;gBAEvD,IAAI,MAAM,GAAG,KAAK,CAAC,GAAG,CAAE,IAAI,IAAI,GAAG,CAAE,CAAA;gBACrC,IAAI,CAAC,MAAM;oBAAG,KAAK,CAAC,GAAG,CAAE,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,CAAE,CAAA;gBAExD,MAAM,OAAO,GAAG,QAAQ,CAAE,GAAG,CAAE,CAAA;gBAE/B,IAAI,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,GAAG,CAAE,OAAO,CAAE;oBAAG,OAAO,MAAM,CAAC,GAAG,CAAE,OAAO,CAAE,CAAA;gBAE9E,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAE,IAAI,IAAI,CAAA;gBAEhD,MAAM,CAAC,GAAG,CAAE,OAAO,EAAE,GAAI,CAAE,CAAA;gBAE3B,OAAO,GAAG,CAAA;YAEX,CAAC,CAAA;YAED,OAAO,CAAC,cAAc,CAAE,GAAG,EAAG,MAAM,EAAG,EAAE,KAAK,EAAG,IAAI,CAAC,IAAI,GAAG,GAAG,EAAE,CAAE,CAAA;YAEpE,OAAO,GAAG,CAAA;QACX,CAAC;KAED;IA9BY,eAAa,gBA8BzB,CAAA;AACF,CAAC,EAhCS,CAAC,KAAD,CAAC,QAgCV;;;;AChCD,IAAU,CAAC,CAgDV;AAhDD,WAAU,CAAC;IACV,MAAa,eAAgB,SAAQ,MAAM;QAE1C,MAAM,CAAC,CAAE,MAAM,CAAC,WAAW,CAAE,CAAQ;QAErC,MAAM,CAAC,CAAE,eAAe,CAAE;YACzB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAA;QACvB,CAAC;QAED,oCAAoC;QACpC,MAAM,CAAC,QAAQ;YACd,OAAO,EAAE,CAAC,cAAc,CAAE,IAAI,CAAE,CAAA;QACjC,CAAC;QAED,kDAAkD;QAClD,MAAM,CAAC,KAAK,CAA4D,KAAY;YACnF,IAAI,CAAC;gBACJ,IAAI,CAAC,KAAK,CAAE,KAAK,CAAE,CAAA;gBACnB,OAAO,IAAI,CAAA;YACZ,CAAC;YAAC,OAAO,KAAK,EAAG,CAAC;gBACjB,OAAO,KAAK,CAAA;YACb,CAAC;QACF,CAAC;QAED,2BAA2B;QAC3B,MAAM,CAAC,CAAE,MAAM,CAAC,WAAW,CAAE,CAA4D,KAAY;YACpG,OAAO,IAAI,CAAC,KAAK,CAAE,KAAK,CAAE,CAAA;QAC3B,CAAC;QAED,8CAA8C;QAC9C,MAAM,CAAC,KAAK,CAA4D,KAAY;YACnF,OAAO,KAAK,CAAA;QACb,CAAC;QAED,gDAAgD;QAChD,MAAM,CAAC,IAAI,CAAqD,KAAc;YAC7E,IAAI,CAAC;gBACJ,IAAI,CAAC,KAAK,CAAE,KAAK,CAAE,CAAA;gBACnB,OAAO,KAAK,CAAA;YACb,CAAC;YAAC,OAAQ,KAAK,EAAG,CAAC;gBAClB,OAAO,IAAI,CAAC,OAAO,CAAA;YACpB,CAAC;QACF,CAAC;QAED,2CAA2C;QAC3C,MAAM,CAAC,OAAO,GAAG,IAAe,CAAA;;IA5CpB,iBAAe,kBA8C3B,CAAA;AACF,CAAC,EAhDS,CAAC,KAAD,CAAC,QAgDV;;;;AChDD,IAAU,CAAC,CAWV;AAXD,WAAU,CAAC;IACV,MAAa,iBAAkB,SAAQ,eAAe;QAErD,MAAM,CAAC,KAAK,CAA4D,KAAY;YACnF,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAG,OAAO,KAAK,CAAA;YAC5C,OAAO,SAAS,CAAE,IAAI,SAAS,CAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAE,CAAE,CAAA;QACtF,CAAC;QAED,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAA;;IAPf,mBAAiB,oBAS7B,CAAA;AACF,CAAC,EAXS,CAAC,KAAD,CAAC,QAWV;;;;ACXD,IAAU,CAAC,CAqBV;AArBD,WAAU,GAAC;IAAC,IAAA,EAAE,CAqBb;IArBW,WAAA,EAAE;QACb,SAAS,CAAC;YAET,cAAc,CAAE,CAAC;gBAEhB,iBAAiB,CAAE,mBAAmB,EAAE,iBAAiB,GAAG,EAAE,EAAE,QAAQ,CAAE,iBAAiB,CAAE,CAAE,CAAA;gBAE/F,iBAAiB,CAAE,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAE,CAAC,CAAE,CAAE,CAAA;gBACvD,iBAAiB,CAAE,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAE,MAAM,CAAC,GAAG,CAAE,CAAE,CAAA;gBAChE,iBAAiB,CAAE,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAE,MAAM,CAAC,iBAAiB,CAAE,CAAE,CAAA;gBAC9E,iBAAiB,CAAE,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAE,IAAI,CAAE,CAAE,CAAA;gBAE3D,iBAAiB,CAAE,GAAG,EAAE,iBAAiB,CAAC,IAAI,CAAE,GAAG,CAAE,CAAE,CAAA;gBACvD,iBAAiB,CAAE,MAAM,CAAC,GAAG,EAAE,iBAAiB,CAAC,IAAI,CAAE,GAAG,CAAE,CAAE,CAAA;gBAE9D,iBAAiB,CAAE,MAAM,CAAC,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAE,MAAM,CAAC,OAAO,CAAE,CAAE,CAAA;gBAC9E,gBAAgB,CAAE,GAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAE,GAAG,CAAE,EAAE,YAAY,CAAE,CAAA;YAEtE,CAAC;SAED,CAAC,CAAA;IACH,CAAC,EArBW,EAAE,GAAF,MAAE,KAAF,MAAE,QAqBb;AAAD,CAAC,EArBS,CAAC,KAAD,CAAC,QAqBV;;;;ACrBD,IAAU,CAAC,CAeV;AAfD,WAAU,CAAC;IACV,MAAa,kBAAmB,SAAQ,eAAe;QAEtD,MAAM,CAAC,KAAK,CAA4D,KAAY;YACnF,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAG,OAAO,KAAK,CAAA;YAC5C,OAAO,SAAS,CAAE,IAAI,SAAS,CAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAE,CAAE,CAAA;QACtF,CAAC;QAED,MAAM,CAAC,IAAI,CAAqD,KAAc;YAC7E,OAAO,KAAK,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;QAC3B,CAAC;QAED,MAAM,CAAC,OAAO,GAAG,EAAE,CAAA;;IAXP,oBAAkB,qBAa9B,CAAA;AACF,CAAC,EAfS,CAAC,KAAD,CAAC,QAeV;;;;ACfD,IAAU,CAAC,CAmBV;AAnBD,WAAU,GAAC;IAAC,IAAA,EAAE,CAmBb;IAnBW,WAAA,EAAE;QACb,SAAS,CAAC;YAET,eAAe,CAAE,CAAC;gBAEjB,iBAAiB,CAAE,oBAAoB,EAAE,kBAAkB,GAAG,EAAE,EAAE,QAAQ,CAAE,kBAAkB,CAAE,CAAE,CAAA;gBAElG,iBAAiB,CAAE,IAAI,EAAE,kBAAkB,CAAC,KAAK,CAAE,KAAK,CAAE,CAAE,CAAA;gBAC5D,iBAAiB,CAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAE,GAAG,CAAE,CAAE,CAAA;gBAE3D,iBAAiB,CAAE,KAAK,EAAE,kBAAkB,CAAC,IAAI,CAAE,KAAK,CAAE,CAAE,CAAA;gBAC5D,iBAAiB,CAAE,EAAE,EAAE,kBAAkB,CAAC,IAAI,CAAE,GAAG,CAAE,CAAE,CAAA;gBAEvD,iBAAiB,CAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAE,KAAK,CAAE,CAAE,CAAA;gBAC7D,gBAAgB,CAAE,GAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAE,GAAG,CAAE,EAAE,YAAY,CAAE,CAAA;YAEvE,CAAC;SAED,CAAC,CAAA;IACH,CAAC,EAnBW,EAAE,GAAF,MAAE,KAAF,MAAE,QAmBb;AAAD,CAAC,EAnBS,CAAC,KAAD,CAAC,QAmBV;;;;ACnBD,IAAU,CAAC,CAwBV;AAxBD,WAAU,CAAC;IACC,mBAAiB,GAAG,aAAa,CAAC,IAAI,CAAE,SAAS,iBAAiB,CAE1E,IAAU;QAEZ,OAAO,MAAM,kBAAmB,SAAQ,eAAe;YAEtD,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;YAElB,MAAM,CAAC,QAAQ;gBACd,IAAI,IAAI,KAAK,kBAAkB;oBAAG,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAA;gBACzD,OAAO,oBAAoB,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,CAAA;YACnD,CAAC;YAED,MAAM,CAAC,KAAK,CAA4D,KAAY;gBACnF,IAAI,KAAK,IAAI,IAAI;oBAAG,OAAO,KAAK,CAAA;gBAChC,OAAO,IAAI,CAAC,KAAK,CAAE,KAAK,CAAE,CAAA;YAC3B,CAAC;YAED,MAAM,CAAC,OAAO,GAAG,IAA8B,CAAA;SAE/C,CAAA;IAEF,CAAC,CAAE,CAAA;AACJ,CAAC,EAxBS,CAAC,KAAD,CAAC,QAwBV;;;;ACxBD,IAAU,CAAC,CAgCV;AAhCD,WAAU,GAAC;IAAC,IAAA,EAAE,CAgCb;IAhCW,WAAA,EAAE;QACb,SAAS,CAAC;YAET,uBAAuB,CAAE,CAAC;gBAEzB,iBAAiB,CAAE,iBAAiB,CAAE,iBAAiB,CAAE,EAAE,iBAAiB,CAAE,iBAAiB,CAAE,CAAE,CAAA;gBACnG,kBAAkB,CAAE,iBAAiB,CAAE,iBAAiB,CAAE,EAAE,iBAAiB,CAAE,kBAAkB,CAAE,CAAE,CAAA;YAEtG,CAAC;YAED,gBAAgB,CAAE,CAAC;gBAElB,MAAM,MAAM,GAAG,iBAAiB,CAAE,kBAAkB,CAAE,CAAA;gBAEtD,iBAAiB,CAAE,uCAAuC,EAAE,MAAM,GAAG,EAAE,CAAE,CAAA;gBAEzE,iBAAiB,CAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAE,KAAK,CAAE,CAAE,CAAA;gBAChD,iBAAiB,CAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAE,SAAS,CAAE,CAAE,CAAA;gBACpD,iBAAiB,CAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAE,IAAI,CAAE,CAAE,CAAA;gBAC/C,iBAAiB,CAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAE,CAAC,CAAE,CAAE,CAAA;gBAE7C,iBAAiB,CAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAE,KAAK,CAAE,CAAE,CAAA;gBAChD,iBAAiB,CAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAE,SAAS,CAAE,CAAE,CAAA;gBACxD,iBAAiB,CAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAE,IAAI,CAAE,CAAE,CAAA;gBAC9C,iBAAiB,CAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAE,CAAC,CAAE,CAAE,CAAA;gBAE3C,iBAAiB,CAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAE,KAAK,CAAE,CAAE,CAAA;gBACjD,gBAAgB,CAAE,GAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAE,GAAG,CAAE,EAAE,YAAY,CAAE,CAAA;YAE3D,CAAC;SAED,CAAC,CAAA;IACH,CAAC,EAhCW,EAAE,GAAF,MAAE,KAAF,MAAE,QAgCb;AAAD,CAAC,EAhCS,CAAC,KAAD,CAAC,QAgCV;;;;AChCD,IAAU,CAAC,CAmCV;AAnCD,WAAU,CAAC;IACC,sBAAoB,GAAG,aAAa,CAAC,IAAI,CAAE,SAAS,oBAAoB,CAGlF,KAAY;QAGZ,MAAM,qBAAsB,SAAQ,eAAe;YAElD,MAAM,CAAC,KAAK,GAAG,KAAK,CAAA;YAEpB,MAAM,CAAC,QAAQ;gBACd,IAAI,IAAI,KAAK,qBAAqB;oBAAG,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAA;gBAC5D,OAAO,uBAAuB,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA;YAChE,CAAC;YAED,MAAM,CAAC,KAAK,CAA4D,KAAY;gBACnF,IAAI,KAAK,IAAI,IAAI,IAAI,MAAM,CAAE,KAAK,CAAE,YAAY,KAAK;oBAAG,OAAO,KAAK,CAAA;gBACpE,OAAO,SAAS,CAAE,IAAI,SAAS,CAAE,aAAa,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAE,CAAE,CAAA;YACvF,CAAC;YAED,MAAM,CAAC,IAAI,CAAqD,KAAc;gBAC7E,OAAO,IAAI,CAAC,KAAK,CAAE,KAAK,CAAE,CAAA;YAC3B,CAAC;YAED,MAAM,CAAC,OAAO,CAAuB;;QAItC,OAAO,CAAE,CAAE,KAAK,EAAE,CAAE,MAAM,CAAC,WAAW,CAAE,KAAK,eAAe,CAAE,MAAM,CAAC,WAAW,CAAE,CAAE;YACnF,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,qBAAqB,CACwD,CAAA;IAEjF,CAAC,CAAE,CAAA;AACJ,CAAC,EAnCS,CAAC,KAAD,CAAC,QAmCV;;;;ACnCD,IAAU,CAAC,CAqDV;AArDD,WAAU,GAAC;IAAC,IAAA,EAAE,CAqDb;IArDW,WAAA,EAAE;QACb,SAAS,CAAC;YAET,0BAA0B,CAAE,CAAC;gBAE5B,iBAAiB,CAAE,oBAAoB,CAAE,UAAU,CAAE,EAAE,oBAAoB,CAAE,UAAU,CAAE,CAAE,CAAA;gBAC3F,kBAAkB,CAAE,oBAAoB,CAAE,UAAU,CAAE,EAAE,oBAAoB,CAAE,SAAS,CAAE,CAAE,CAAA;YAE5F,CAAC;YAED,uBAAuB,CAAE,CAAC;gBAEzB,MAAM,IAAI,GAAG,oBAAoB,CAAE,UAAU,CAAE,CAAA;gBAE/C,iBAAiB,CAAE,kCAAkC,EAAE,IAAI,GAAG,EAAE,EAAE,QAAQ,CAAE,IAAI,CAAE,CAAE,CAAA;gBAEpF,iBAAiB,CAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAE,IAAI,UAAU,CAAE,CAAE,CAAA;gBACvD,iBAAiB,CAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAE,IAAI,SAAS,CAAE,CAAE,CAAA;gBACvD,iBAAiB,CAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAE,IAAI,CAAE,CAAE,CAAA;gBAE9C,iBAAiB,CAAE,IAAI,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,CAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAE,IAAI,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAE,CAAE,CAAA;gBACpF,gBAAgB,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAE,IAAI,SAAS,CAAE,EAAE,aAAa,CAAE,CAAA;gBAElE,iBAAiB,CAAE,IAAI,UAAU,EAAE,IAAI,CAAC,KAAK,CAAE,IAAI,UAAU,CAAE,CAAE,CAAA;gBACjE,gBAAgB,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAE,IAAI,SAAS,CAAE,EAAE,aAAa,CAAE,CAAA;YAEpE,CAAC;YAED,uBAAuB,CAAE,CAAC;gBAEzB,MAAM,GAAG,GAAG,oBAAoB,CAAE,MAAM,CAAE,CAAA;gBAE1C,iBAAiB,CAAE,8BAA8B,EAAE,GAAG,GAAG,EAAE,EAAE,QAAQ,CAAE,GAAG,CAAE,CAAE,CAAA;gBAE9E,iBAAiB,CAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAE,MAAM,CAAE,EAAE,CAAE,CAAE,CAAE,CAAA;gBACpD,iBAAiB,CAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAE,EAAE,CAAE,CAAE,CAAA;gBAC1C,iBAAiB,CAAE,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,YAAY,GAAG,CAAE,CAAA;YAErD,CAAC;YAED,wBAAwB,CAAE,CAAC;gBAE1B,MAAM,GAAG,GAAG,oBAAoB,CAAE,oBAAoB,CAAE,MAAM,CAAE,CAAE,CAAA;gBAElE,iBAAiB,CAAE,8BAA8B,EAAE,GAAG,GAAG,EAAE,EAAE,QAAQ,CAAE,GAAG,CAAE,CAAE,CAAA;gBAE9E,iBAAiB,CAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAE,MAAM,CAAE,EAAE,CAAE,CAAE,CAAE,CAAA;gBACpD,iBAAiB,CAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAE,EAAE,CAAE,CAAE,CAAA;gBAC1C,iBAAiB,CAAE,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,YAAY,GAAG,CAAE,CAAA;YAErD,CAAC;SAED,CAAC,CAAA;IACH,CAAC,EArDW,EAAE,GAAF,MAAE,KAAF,MAAE,QAqDb;AAAD,CAAC,EArDS,CAAC,KAAD,CAAC,QAqDV;;;;ACrDD,IAAU,CAAC,CAqLV;AArLD,WAAU,CAAC;IAEV,SAAgB,wBAAwB,CAAE,IAAsB,EAAE,KAAuB;QACxF,OAAO,CAAE,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAA;IACpE,CAAC;IAFe,0BAAwB,2BAEvC,CAAA;IAED,MAAM,MAAM,GAAG,gFAAgF,CAAA;IAE/F,MAAa,gBAAiB,SAAQ,MAAM;QAErB;QAAtB,YAAsB,GAAW;YAChC,KAAK,EAAE,CAAA;YADc,QAAG,GAAH,GAAG,CAAQ;YAGhC,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAE,WAAW,EAAE,EAAE,CAAE,CAAC,OAAO,CAAE,KAAK,EAAE,EAAE,CAAE,CAAA;YACjE,MAAM,KAAK,GAAG,KAAK,IAAI,CAAE,KAAK,CAAC,KAAK,CAAE,MAAM,CAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAE,CAAA;YAC7D,IAAI,KAAK,KAAK,KAAK;gBAAG,SAAS,CAAE,IAAI,KAAK,CAAE,YAAY,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAE,CAAE,CAAA;YAE5E,IAAI,CAAC,GAAG,GAAG,KAAK,CAAA;QACjB,CAAC;QAED,MAAM,CAAC,CAAE,MAAM,CAAC,KAAK,CAAE,CAAE,GAAW;YACnC,OAAO,GAAG,CAAC,KAAK,CAAE,MAAM,CAAE,CAAA;QAC3B,CAAC;QAED,MAAM,CAAC,CAAE,MAAM,CAAC,QAAQ,CAAE,CAAE,GAAW;YACtC,OAAO,GAAG,CAAC,QAAQ,CAAE,MAAM,CAAE,CAAA;QAC9B,CAAC;QAED,MAAM,CAAC,IAAI,GAAG,IAAI,IAAI,CAAE,EAAE,CAAE,CAAA;QAE5B,MAAM,CAAC,KAAK,CAAE,GAAW;YACxB,IAAI,CAAC;gBACJ,OAAO,IAAI,IAAI,CAAE,GAAG,CAAE,CAAA;YACvB,CAAC;YAAC,MAAM,CAAC;gBACR,OAAO,IAAI,CAAA;YACZ,CAAC;QACF,CAAC;QAED,CAAE,eAAe,CAAE;YAClB,OAAO,IAAI,CAAC,GAAG,CAAA;QAChB,CAAC;QAED,QAAQ;YACP,OAAO,IAAI,CAAC,GAAG,CAAA;QAChB,CAAC;QAED,MAAM;YACL,OAAO,IAAI,CAAC,GAAG,CAAA;QAChB,CAAC;QAED,CAAE,MAAM,CAAC,WAAW,CAAE;YACrB,OAAO,IAAI,CAAC,GAAG,CAAA;QAChB,CAAC;QAED,CAAE,oBAAoB,CAAE;YACvB,OAAO,oBAAoB,CAAE,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,IAAI,CAAC,GAAG,IAAI,GAAG,CAAE,CAAA;QAC1E,CAAC;QAED,IAAI,GAAG,IAAwC,CAAA;QAE/C,gDAAgD;QAChD,KAAK;YACJ,IAAI,IAAI,CAAC,IAAI;gBAAG,OAAO,IAAI,CAAC,IAAI,CAAA;YAChC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAE,KAAK,CAAE,CAAC,GAAG,CAAA;YACpC,MAAM,IAAI,GAAG,GAAG,IAAI,GAAG;iBACrB,OAAO,CAAE,MAAM,EAAE,EAAE,CAAE;iBACrB,KAAK,CAAE,GAAG,CAAE;iBACZ,GAAG,CAAE,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,UAAU,CAAE;iBACjC,IAAI,CAAE,EAAE,CAAE,CAAA;YACZ,OAAO,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAE,IAAI,CAAE,CAAA;QACjD,CAAC;QAED,mCAAmC;QACnC,MAAM,CAAC,QAAQ,CAAE,GAAW;YAC3B,MAAM,GAAG,GAAG,IAAI,UAAU,CAAE,IAAI,cAAc,CAAC,CAAE,MAAM,CAAE,GAAG,CAAE,CAAE,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAE,CAAA;YAChF,MAAM,IAAI,GAAI,IAAI,IAAI,CAAE,qBAAqB,CAAE,GAAG,CAAE,CAAE,CAAA;YACtD,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA;YACf,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,2CAA2C;QAC3C,MAAM,CAAC,QAAQ,CAAE,GAA8B;YAC9C,MAAM,GAAG,GAAG,CAAE,GAAI,qBAAqB,CAAE,GAAG,CAAE,CAAC,KAAK,CAAE,SAAS,CAAE,IAAI,EAAE,CAAE,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;YACrF,MAAM,IAAI,GAAG,IAAI,IAAI,CAAE,GAAG,CAAE,CAAC,OAAO,CAAE,KAAK,CAAE,CAAA;YAC7C,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA;YACf,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,MAAM,CAAC,WAAW,GAAG,IAAI,OAAO,EAAuC,CAAA;QAEvE,wCAAwC;QACxC,MAAM,CAAC,QAAQ,CAAE,GAAoB;YAEpC,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;YACtC,IAAI,IAAI;gBAAG,OAAO,IAAI,CAAA;YAEtB,MAAM,IAAI,GAAG,iBAAiB,CAAE,GAAG,CAAE,CAAA;YACrC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAE,IAAI,UAAU,CAAE,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAE,CAAE,CAAA;YAC5D,IAAI,CAAC,WAAW,CAAC,GAAG,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;YAEjC,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,wCAAwC;QACxC,MAAM,CAAC,QAAQ,CAAE,GAAW;YAC3B,OAAO,IAAI,CAAC,QAAQ,CAAE,mBAAmB,CAAE,GAAG,CAAE,CAAE,CAAA;QACnD,CAAC;QAED,0BAA0B;QAC1B,IAAI;YACH,OAAO,IAAI,gBAAgB,CAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAE,GAAG,CAAE,CAAE,CAAC,CAAE,IAAI,EAAE,CAAE,CAAA;QAChE,CAAC;QAED,0BAA0B;QAC1B,IAAI;YACH,OAAO,IAAI,gBAAgB,CAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAE,GAAG,CAAE,CAAE,CAAC,CAAE,IAAI,EAAE,CAAE,CAAA;QAChE,CAAC;QAED,0BAA0B;QAC1B,IAAI;YACH,OAAO,IAAI,gBAAgB,CAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAE,GAAG,CAAE,CAAE,CAAC,CAAE,IAAI,EAAE,CAAE,CAAA;QAChE,CAAC;QAED,yBAAyB;QACzB,IAAI;YACH,OAAO,IAAI,gBAAgB,CAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAE,GAAG,CAAE,CAAC,KAAK,CAAE,CAAC,EAAE,CAAC,CAAE,CAAC,IAAI,CAAE,GAAG,CAAE,CAAE,CAAA;QAC/E,CAAC;QAED,yBAAyB;QACzB,IAAI;YACH,OAAO,IAAI,gBAAgB,CAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAE,GAAG,CAAE,CAAC,KAAK,CAAE,CAAC,EAAE,CAAC,CAAE,CAAC,IAAI,CAAE,GAAG,CAAE,CAAE,CAAA;QAC/E,CAAC;QAED,qDAAqD;QACrD,MAAM,CAAE,IAAsB;YAC7B,IAAI,IAAI,CAAC,GAAG,KAAK,EAAE;gBAAG,OAAO,IAAI,CAAA;YACjC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YAClB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG;gBAAG,OAAO,IAAI,CAAA;YAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YACxB,OAAO,IAAI,gBAAgB,CAAG,KAAK,GAAG,IAAI,CAAE,CAAA;QAC7C,CAAC;QAED,6EAA6E;QAC7E,OAAO,CAAE,IAAsB;YAE9B,IAAI,IAAI,CAAC,GAAG,KAAK,EAAE;gBAAG,OAAO,IAAI,CAAA;YACjC,IAAI,IAAI,CAAC,GAAG,KAAK,EAAE;gBAAG,OAAO,IAAI,CAAC,IAAI,EAAE,CAAA;YACxC,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE;gBAAG,OAAO,IAAI,CAAA;YAEtC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAE,GAAG,CAAE,CAAA;YACjD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAG,KAAK,CAAC,IAAI,CAAE,EAAE,CAAE,CAAA;YAC1C,KAAK,CAAC,IAAI,CAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAE,MAAM,EAAE,EAAE,CAAE,CAAE,CAAA;YAE5C,OAAO,IAAI,gBAAgB,CAAE,KAAK,CAAC,IAAI,CAAE,GAAG,CAAE,CAAE,CAAA;QACjD,CAAC;QAED,GAAG,CAAE,KAAmD;YACvD,IAAI,KAAK,YAAY,gBAAgB;gBAAG,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAA;YAC7D,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAE,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAE,CAAA;YACvD,MAAM,CAAC,GAAG,CAAE,KAAK,CAAE,CAAA;YACnB,OAAO,MAAM,CAAC,OAAO,EAAE,CAAA;QACxB,CAAC;;IAzJW,kBAAgB,mBA2J5B,CAAA;IAED,IAAI,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAA;IACjC,SAAgB,qBAAqB,CAAS,IAAsB,EAAE,IAAc;QAEnF,MAAM,IAAI,GAAG,KAAK,CAAA;QAClB,KAAK,GAAG,IAAI,CAAA;QAEZ,IAAI,CAAC;YACJ,OAAO,IAAI,EAAE,CAAA;QACd,CAAC;gBAAS,CAAC;YACV,KAAK,GAAG,IAAI,CAAA;QACb,CAAC;IAEF,CAAC;IAXe,uBAAqB,wBAWpC,CAAA;IAEU,yBAAuB,GAAG,iBAAiB,CAAE,oBAAoB,CAAE,gBAAgB,CAAE,CAAE,CAAA;AAEnG,CAAC,EArLS,CAAC,KAAD,CAAC,QAqLV;;;;ACrLD,IAAU,CAAC,CA+OV;AA/OD,WAAU,GAAC;IAAC,IAAA,EAAE,CA+Ob;IA/OW,WAAA,EAAE;QACb,SAAS,CAAC;YAET,YAAY,CAAE,CAAC;gBAEd,gBAAgB,CACf,GAAE,EAAE,CAAC,IAAI,gBAAgB,CAAE,sBAAsB,CAAE,EACnD,YAAY,CACZ,CAAA;YAEF,CAAC;YAED,cAAc,CAAE,CAAC;gBAEhB,iBAAiB,CAChB,gBAAgB,CAAC,QAAQ,CAAE,eAAe,CAAE,EAC5C,IAAI,gBAAgB,CAAE,UAAU,CAAE,CAClC,CAAA;YAEF,CAAC;YAED,gBAAgB,CAAE,CAAC;gBAElB,iBAAiB,CAChB,IAAI,gBAAgB,CAAE,qCAAqC,CAAE,CAAC,IAAI,EAAE,EACpE,IAAI,gBAAgB,CAAE,4BAA4B,CAAE,CAAC,IAAI,EAAE,EAC3D,IAAI,gBAAgB,CAAE,mBAAmB,CAAE,CAAC,IAAI,EAAE,EAClD,IAAI,gBAAgB,CAAE,mBAAmB,CAAE,CAC3C,CAAA;YAEF,CAAC;YAED,gBAAgB,CAAE,CAAC;gBAElB,iBAAiB,CAChB,IAAI,gBAAgB,CAAE,6BAA6B,CAAE,CAAC,IAAI,EAAE,EAC5D,IAAI,gBAAgB,CAAE,mBAAmB,CAAE,CAAC,IAAI,EAAE,EAClD,IAAI,gBAAgB,CAAE,mBAAmB,CAAE,CAC3C,CAAA;gBAED,iBAAiB,CAChB,IAAI,gBAAgB,CAAE,qCAAqC,CAAE,CAAC,IAAI,EAAE,EACpE,IAAI,gBAAgB,CAAE,4BAA4B,CAAE,CAAC,IAAI,EAAE,EAC3D,IAAI,gBAAgB,CAAE,4BAA4B,CAAE,CACpD,CAAA;YAEF,CAAC;YAED,gBAAgB,CAAE,CAAC;gBAElB,iBAAiB,CAChB,IAAI,gBAAgB,CAAE,qCAAqC,CAAE,CAAC,IAAI,EAAE,EACpE,IAAI,gBAAgB,CAAE,6BAA6B,CAAE,CAAC,IAAI,EAAE,EAC5D,IAAI,gBAAgB,CAAE,UAAU,CAAE,CAClC,CAAA;gBAED,iBAAiB,CAChB,IAAI,gBAAgB,CAAE,aAAa,CAAE,CAAC,IAAI,EAAE,EAC5C,IAAI,gBAAgB,CAAE,EAAE,CAAE,CAC1B,CAAA;YAEF,CAAC;YAED,gBAAgB,CAAE,CAAC;gBAElB,iBAAiB,CAChB,IAAI,gBAAgB,CAAE,qCAAqC,CAAE,CAAC,IAAI,EAAE,EACpE,IAAI,gBAAgB,CAAE,6BAA6B,CAAE,CAAC,IAAI,EAAE,EAC5D,IAAI,gBAAgB,CAAE,UAAU,CAAE,CAClC,CAAA;gBAED,iBAAiB,CAChB,IAAI,gBAAgB,CAAE,4BAA4B,CAAE,CAAC,IAAI,EAAE,EAC3D,IAAI,gBAAgB,CAAE,mBAAmB,CAAE,CAAC,IAAI,EAAE,EAClD,IAAI,gBAAgB,CAAE,EAAE,CAAE,CAC1B,CAAA;YAEF,CAAC;YAED,gBAAgB,CAAE,CAAC;gBAElB,iBAAiB,CAChB,IAAI,gBAAgB,CAAE,4BAA4B,CAAE,CAAC,IAAI,EAAE,EAC3D,IAAI,gBAAgB,CAAE,qCAAqC,CAAE,CAAC,IAAI,EAAE,EACpE,IAAI,gBAAgB,CAAE,UAAU,CAAE,CAClC,CAAA;gBAED,iBAAiB,CAChB,IAAI,gBAAgB,CAAE,6BAA6B,CAAE,CAAC,IAAI,EAAE,EAC5D,IAAI,gBAAgB,CAAE,mBAAmB,CAAE,CAAC,IAAI,EAAE,EAClD,IAAI,gBAAgB,CAAE,EAAE,CAAE,CAAC,IAAI,EAAE,EACjC,IAAI,gBAAgB,CAAE,EAAE,CAAE,CAC1B,CAAA;YAEF,CAAC;YAED,iBAAiB,CAAE,CAAC;gBAEnB,MAAM,IAAI,GAAG,IAAI,gBAAgB,CAAE,qCAAqC,CAAE,CAAC,KAAK,EAAE,CAAA;gBAClF,MAAM,IAAI,GAAG,IAAI,gBAAgB,CAAE,4BAA4B,CAAE,CAAC,KAAK,EAAE,CAAA;gBACzE,MAAM,IAAI,GAAG,IAAI,gBAAgB,CAAE,mBAAmB,CAAE,CAAC,KAAK,EAAE,CAAA;gBAEhE,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAE,aAAa,CAAE,CAAC,KAAK,EAAE,CAAA;gBAC9D,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAE,EAAE,CAAE,CAAC,KAAK,EAAE,CAAA;gBAEnD,iBAAiB,CAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAE,CAAA;gBACpC,iBAAiB,CAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAE,CAAA;gBACpC,iBAAiB,CAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAE,CAAA;gBAEpC,iBAAiB,CAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAE,CAAA;gBACvC,iBAAiB,CAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAE,CAAA;gBAEvC,iBAAiB,CAAE,gBAAgB,CAAC,QAAQ,CAAE,IAAI,CAAE,EAAE,IAAI,gBAAgB,CAAE,qCAAqC,CAAE,CAAE,CAAA;gBACrH,iBAAiB,CAAE,gBAAgB,CAAC,QAAQ,CAAE,IAAI,CAAE,EAAE,IAAI,gBAAgB,CAAE,4BAA4B,CAAE,CAAE,CAAA;gBAC5G,iBAAiB,CAAE,gBAAgB,CAAC,QAAQ,CAAE,IAAI,CAAE,EAAE,IAAI,gBAAgB,CAAE,mBAAmB,CAAE,CAAE,CAAA;gBAEnG,iBAAiB,CAAE,gBAAgB,CAAC,QAAQ,CAAE,QAAQ,CAAE,EAAE,IAAI,gBAAgB,CAAE,UAAU,CAAE,CAAE,CAAA;gBAC9F,iBAAiB,CAAE,gBAAgB,CAAC,QAAQ,CAAE,QAAQ,CAAE,EAAE,IAAI,gBAAgB,CAAE,EAAE,CAAE,CAAE,CAAA;YAEvF,CAAC;YAED,gBAAgB,CAAE,CAAC;gBAElB,iBAAiB,CAChB,IAAI,gBAAgB,CAAE,6BAA6B,CAAE,CAAC,MAAM,CAC3D,IAAI,gBAAgB,CAAE,mBAAmB,CAAE,CAC3C,EACD,IAAI,gBAAgB,CAAE,6BAA6B,CAAE,CAAC,MAAM,CAC3D,IAAI,gBAAgB,CAAE,6BAA6B,CAAE,CACrD,EACD,IAAI,gBAAgB,CAAE,6BAA6B,CAAE,CACrD,CAAA;gBAED,iBAAiB,CAChB,IAAI,gBAAgB,CAAE,qCAAqC,CAAE,CAAC,MAAM,CACnE,IAAI,gBAAgB,CAAE,4BAA4B,CAAE,CACpD,EACD,IAAI,gBAAgB,CAAE,qCAAqC,CAAE,CAAC,MAAM,CACnE,IAAI,gBAAgB,CAAE,qCAAqC,CAAE,CAC7D,EACD,IAAI,gBAAgB,CAAE,6BAA6B,CAAE,CAAC,MAAM,CAC3D,IAAI,gBAAgB,CAAE,mBAAmB,CAAE,CAC3C,EACD,IAAI,gBAAgB,CAAE,6BAA6B,CAAE,CAAC,MAAM,CAC3D,IAAI,gBAAgB,CAAE,6BAA6B,CAAE,CACrD,EACD,IAAI,gBAAgB,CAAE,aAAa,CAAE,CACrC,CAAA;gBAED,iBAAiB,CAChB,IAAI,gBAAgB,CAAE,4BAA4B,CAAE,CAAC,MAAM,CAC1D,IAAI,gBAAgB,CAAE,qCAAqC,CAAE,CAC7D,EACD,IAAI,gBAAgB,CAAE,4BAA4B,CAAE,CAAC,MAAM,CAC1D,IAAI,gBAAgB,CAAE,4BAA4B,CAAE,CACpD,EACD,IAAI,gBAAgB,CAAE,mBAAmB,CAAE,CAAC,MAAM,CACjD,IAAI,gBAAgB,CAAE,6BAA6B,CAAE,CACrD,EACD,IAAI,gBAAgB,CAAE,mBAAmB,CAAE,CAAC,MAAM,CACjD,IAAI,gBAAgB,CAAE,mBAAmB,CAAE,CAC3C,EACD,IAAI,gBAAgB,CAAE,EAAE,CAAE,CAC1B,CAAA;YAEF,CAAC;YAED,wBAAwB,CAAE,CAAC;gBAE1B,iBAAiB,CAChB,IAAI,gBAAgB,CAAE,6BAA6B,CAAE,CAAC,OAAO,CAC5D,IAAI,gBAAgB,CAAE,6BAA6B,CAAE,CACrD,EACD,IAAI,gBAAgB,CAAE,6BAA6B,CAAE,CAAC,OAAO,CAC5D,IAAI,gBAAgB,CAAE,mBAAmB,CAAE,CAC3C,EACD,IAAI,gBAAgB,CAAE,6BAA6B,CAAE,CAAC,OAAO,CAC5D,IAAI,gBAAgB,CAAE,mBAAmB,CAAE,CAC3C,EACD,IAAI,gBAAgB,CAAE,6BAA6B,CAAE,CACrD,CAAA;gBAED,iBAAiB,CAChB,IAAI,gBAAgB,CAAE,aAAa,CAAE,CAAC,OAAO,CAC5C,IAAI,gBAAgB,CAAE,mBAAmB,CAAE,CAC3C,EACD,IAAI,gBAAgB,CAAE,aAAa,CAAE,CAAC,OAAO,CAC5C,IAAI,gBAAgB,CAAE,6BAA6B,CAAE,CACrD,EACD,IAAI,gBAAgB,CAAE,6BAA6B,CAAE,CACrD,CAAA;gBAED,iBAAiB,CAChB,IAAI,gBAAgB,CAAE,aAAa,CAAE,CAAC,OAAO,CAC5C,IAAI,gBAAgB,CAAE,4BAA4B,CAAE,CACpD,EACD,IAAI,gBAAgB,CAAE,aAAa,CAAE,CAAC,OAAO,CAC5C,IAAI,gBAAgB,CAAE,qCAAqC,CAAE,CAC7D,EACD,IAAI,gBAAgB,CAAE,qCAAqC,CAAE,CAC7D,CAAA;gBAED,iBAAiB,CAChB,IAAI,gBAAgB,CAAE,EAAE,CAAE,CAAC,OAAO,CACjC,IAAI,gBAAgB,CAAE,mBAAmB,CAAE,CAC3C,EACD,IAAI,gBAAgB,CAAE,EAAE,CAAE,CAAC,OAAO,CACjC,IAAI,gBAAgB,CAAE,6BAA6B,CAAE,CACrD,EACD,IAAI,gBAAgB,CAAE,mBAAmB,CAAE,CAC3C,CAAA;gBAED,iBAAiB,CAChB,IAAI,gBAAgB,CAAE,EAAE,CAAE,CAAC,OAAO,CACjC,IAAI,gBAAgB,CAAE,4BAA4B,CAAE,CACpD,EACD,IAAI,gBAAgB,CAAE,EAAE,CAAE,CAAC,OAAO,CACjC,IAAI,gBAAgB,CAAE,qCAAqC,CAAE,CAC7D,EACD,IAAI,gBAAgB,CAAE,4BAA4B,CAAE,CACpD,CAAA;YAEF,CAAC;YAED,SAAS;gBAER,iBAAiB,CAChB,gBAAgB,CAAC,QAAQ,CAAE,IAAI,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAE,EACxD,IAAI,gBAAgB,CAAE,mBAAmB,CAAE,CAC3C,CAAA;gBAED,iBAAiB,CAChB,gBAAgB,CAAC,QAAQ,CAAE,SAAS,CAAE,EACtC,IAAI,gBAAgB,CAAE,mBAAmB,CAAE,CAC3C,CAAA;YAEF,CAAC;SAED,CAAC,CAAA;IACH,CAAC,EA/OW,EAAE,GAAF,MAAE,KAAF,MAAE,QA+Ob;AAAD,CAAC,EA/OS,CAAC,KAAD,CAAC,QA+OV;;;;AC/OD,IAAU,CAAC,CAmBV;AAnBD,WAAU,CAAC;IAEV,SAAgB,sBAAsB,CAAE,MAAiC;QACxE,OACC,MAIA,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;IACzD,CAAC;IAPe,wBAAsB,yBAOrC,CAAA;IAED,SAAgB,sBAAsB,CAAE,GAAW;QAClD,OACC,UAGA,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAA;IAC7C,CAAC;IANe,wBAAsB,yBAMrC,CAAA;AAEF,CAAC,EAnBS,CAAC,KAAD,CAAC,QAmBV;;;;ACnBD,IAAU,CAAC,CAyBV;AAzBD,WAAU,CAAC;IAEV,SAAgB,2BAA2B,CAAE,GAA8B;QAC1E,IAAI,CAAE,GAAG;YAAE,OAAO,EAAE,CAAA;QAEpB,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAEzD,OAAO,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,OAAO,CAAE,IAAI,EAAE,EAAE,CAAE,CAAA;IACrD,CAAC;IANe,6BAA2B,8BAM1C,CAAA;IAED,IAAK,CAAE,CAAE,UAAU,IAAI,UAAU,CAAC,SAAS,CAAE,EAAG,CAAC;QAChD,CAAC,CAAC,sBAAsB,GAAG,2BAA2B,CAAA;IACvD,CAAC;IAED,SAAgB,2BAA2B,CAAE,GAAW;QACvD,8CAA8C;QAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA;QAE5C,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;IAC3E,CAAC;IALe,6BAA2B,8BAK1C,CAAA;IAED,IAAK,CAAE,CAAE,YAAY,IAAI,UAAU,CAAE,EAAG,CAAC;QACxC,CAAC,CAAC,sBAAsB,GAAG,2BAA2B,CAAA;IACvD,CAAC;AAEF,CAAC,EAzBS,CAAC,KAAD,CAAC,QAyBV;;;;ACzBD,IAAU,CAAC,CAgDV;AAhDD,WAAU,CAAC;IACV,kCAAkC;IAClC,MAAa,gBAAiB,SAAQ,WAAW;QAEhD,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAA;QACpB,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAA;QAEpB,uCAAuC;QACvC,MAAM,CAAC,IAAI,CAEV,MAAsE;YAGtE,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAG,CAAC;gBACjC,MAAM,GAAG,IAAI,UAAU,CACtB,MAAM,CAAC,KAAK,CAAE,QAAQ,CAAE;oBACvB,EAAE,OAAO,CAAE,KAAK,CAAC,EAAE,CAAC,CAAE,GAAI,sBAAsB,CAAE,KAAK,CAAE,CAAE,CAAE;uBAC3D,SAAS,CAAE,IAAI,KAAK,CAAE,mBAAmB,EAAE,EAAE,KAAK,EAAE;4BACtD,GAAG,EAAE,EAAE;4BACP,IAAI,EAAE,MAAM,CAAC,MAAM;yBACnB,EAAE,CAAE,CAAE,CACP,CAAA;YACF,CAAC;YAED,OAAO,KAAK,CAAC,IAAI,CAAE,MAAM,CAA0B,CAAA;QACpD,CAAC;QAED,iCAAiC;QACjC,OAAO;YAEN,MAAM,IAAI,GAAK,IAAI,CAAC,WAAwC,CAAC,QAAQ,CAAA;YACrE,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,EAAG,CAAC;gBAC7B,OAAO,SAAS,CAAE,IAAI,KAAK,CAAE,mBAAmB,EAAE,EAAE,KAAK,EAAE;wBAC1D,GAAG,EAAE,IAAI;wBACT,IAAI,EAAE,IAAI,CAAC,UAAU;qBACrB,EAAE,CAAE,CAAE,CAAA;YACR,CAAC;YAED,OAAO,IAAI,UAAU,CAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAE,CAAA;QAC5D,CAAC;QAED,4CAA4C;QAE5C,QAAQ;YACP,OAAO,sBAAsB,CAAE,IAAI,CAAC,OAAO,EAAE,CAAE,CAAA;QAChD,CAAC;;IAFD;QADE,SAAS,CAAC,MAAM;oDAGjB;IA3CW,kBAAgB,mBA6C5B,CAAA;AACF,CAAC,EAhDS,CAAC,KAAD,CAAC,QAgDV;;;;AChDD,IAAU,CAAC,CAQV;AARD,WAAU,CAAC;IAEV,0CAA0C;IAC1C,SAAgB,mBAAmB,CAAE,KAAU;QAC9C,KAAK,GAAG,IAAI,KAAK,CAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAE,KAAK,CAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAE,CAAA;QAC/F,gBAAgB,CAAE,KAAK,CAAE,CAAA;IAC1B,CAAC;IAHe,qBAAmB,sBAGlC,CAAA;AAEF,CAAC,EARS,CAAC,KAAD,CAAC,QAQV;;;;ACRD,IAAU,CAAC,CAqCV;AArCD,WAAU,CAAC;IACV,6CAA6C;IAC7C,MAAa,oBAAqB,SAAQ,gBAAgB;QAEzD,gCAAgC;QAE1B,AAAN,KAAK,CAAC,MAAM;YAEX,OAAO,kBAAkB,CAAC,MAAM,CAAC,SAAS,CACzC,KAAK,EACL;gBACC,GAAG,EAAE,SAAS;gBACd,GAAG,EAAE,IAAI;gBACT,OAAO,EAAE,CAAE,QAAQ,CAAE;gBACrB,GAAG,EAAE,KAAK;gBACV,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE;aAClB,EACD,SAAS,EACT,OAAO,CAAE,aAAa,CAAE,EACxB,CAAE,QAAQ,CAAE,CACZ,CAAC,KAAK,CAAE,mBAAmB,CAAE,CAAA;QAE/B,CAAC;QAED,kCAAkC;QAClC,KAAK,CAAC,MAAM,CAAE,IAAkB,EAAE,IAAkB;YAEnD,OAAO,MAAM,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAC5C,SAAS,EACT,MAAM,IAAI,CAAC,MAAM,EAAE,EACnB,IAAI,EACJ,IAAI,CACJ,CAAC,KAAK,CAAE,mBAAmB,CAAE,CAAA;QAE/B,CAAC;KAED;IA9BM;QADJ,SAAS,CAAC,MAAM;sDAiBjB;IApBW,sBAAoB,uBAkChC,CAAA;AACF,CAAC,EArCS,CAAC,KAAD,CAAC,QAqCV;;;;ACrCD,IAAU,CAAC,CAyBV;AAzBD,WAAU,CAAC;IACV,6CAA6C;IAC7C,MAAa,mBAAoB,SAAQ,gBAAgB;QAExD,gCAAgC;QAE1B,AAAN,KAAK,CAAC,MAAM;YAEX,OAAO,MAAM,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAC/C,KAAK,EACL;gBACC,GAAG,EAAE,QAAQ;gBACb,GAAG,EAAE,IAAI;gBACT,GAAG,EAAE,KAAK;gBACV,OAAO,EAAE,EAAE;gBACX,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE;aAClB,EACD,QAAQ,EACR,IAAI,EACJ,EAAE,CACF,CAAC,KAAK,CAAE,mBAAmB,CAAE,CAAA;QAE/B,CAAC;KAED;IAlBM;QADJ,SAAS,CAAC,MAAM;qDAiBjB;IApBW,qBAAmB,sBAsB/B,CAAA;AACF,CAAC,EAzBS,CAAC,KAAD,CAAC,QAyBV;;;;ACzBD,IAAU,CAAC,CAyBV;AAzBD,WAAU,CAAC;IACV,4EAA4E;IAC5E,MAAa,mBAAoB,SAAQ,gBAAgB;QAExD,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAA;QACpB,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAA;QAEpB,2BAA2B;QAE3B,OAAO;YACN,OAAO,oBAAoB,CAAC,IAAI,CAAE,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAE,CAAC,EAAE,EAAE,CAAE,CAAE,CAAA;QACrE,CAAC;QAED,0BAA0B;QAE1B,MAAM;YACL,OAAO,mBAAmB,CAAC,IAAI,CAAE,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAE,EAAE,EAAE,EAAE,CAAE,CAAE,CAAA;QACrE,CAAC;QAGD,QAAQ;YACP,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAA;QAC5D,CAAC;;IAbD;QADE,SAAS,CAAC,MAAM;sDAGjB;IAID;QADE,SAAS,CAAC,MAAM;qDAGjB;IAGD;QADE,SAAS,CAAC,MAAM;uDAGjB;IApBW,qBAAmB,sBAsB/B,CAAA;AACF,CAAC,EAzBS,CAAC,KAAD,CAAC,QAyBV;;;;ACzBD,IAAU,CAAC,CAsEV;AAtED,WAAU,CAAC;IACV,4CAA4C;IAC5C,MAAa,mBAAoB,SAAQ,oBAAoB;QAE5D,MAAM,CAAC,SAAS,GAAG,EAAE,CAAA;QAErB,4BAA4B;QAC5B,MAAM,CAAC,KAAK,CAAC,QAAQ;YAEpB,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,WAAW,CACvD,SAAS,EACT,OAAO,CAAE,aAAa,CAAE,EACxB,CAAE,MAAM,EAAE,QAAQ,CAAE,CACpB,CAAC,KAAK,CAAE,mBAAmB,CAAE,CAAA;YAE9B,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAE,KAAK,EAAE,IAAI,CAAC,UAAU,CAAE,CAAC,KAAK,CAAE,mBAAmB,CAAE,CAAA;YACjH,OAAO,IAAI,CAAC,IAAI,CAAE,CAAC,GAAG,CAAE,CAAE,CAAA;QAE3B,CAAC;QAED,iCAAiC;QAE3B,AAAN,KAAK,CAAC,aAAa;YAElB,OAAO,MAAM,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAC/C,KAAK,EACL;gBACC,GAAG,EAAE,SAAS;gBACd,GAAG,EAAE,IAAI;gBACT,OAAO,EAAE,CAAE,MAAM,CAAE;gBACnB,GAAG,EAAE,KAAK;gBACV,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE;gBAClB,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE;aACzB,EACD,SAAS,EACT,OAAO,CAAE,aAAa,CAAE,EACxB,CAAE,MAAM,CAAE,CACV,CAAC,KAAK,CAAE,mBAAmB,CAAE,CAAA;QAE/B,CAAC;QAED,kCAAkC;QAClC,cAAc;YACb,OAAO,IAAI,UAAU,CAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,GAAG,EAAE,EAAE,EAAE,CAAE,CAAA;QAC/D,CAAC;QAED,6CAA6C;QAE7C,eAAe;YACd,OAAO,sBAAsB,CAAE,IAAI,CAAC,cAAc,EAAE,CAAE,CAAA;QACvD,CAAC;QAED,wCAAwC;QAExC,OAAO;YACN,OAAO,oBAAoB,CAAC,IAAI,CAAE,IAAI,CAAC,OAAO,EAAE,CAAE,CAAA;QACnD,CAAC;QAED,gCAAgC;QAChC,KAAK,CAAC,IAAI,CAAE,IAAkB;YAE7B,OAAO,IAAI,UAAU,CAAE,MAAM,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAC1D,SAAS,EACT,MAAM,IAAI,CAAC,aAAa,EAAE,EAC1B,IAAI,CACJ,CAAC,KAAK,CAAE,mBAAmB,CAAE,CAAE,CAAA;QAEjC,CAAC;;IA7CK;QADJ,SAAS,CAAC,MAAM;4DAkBjB;IASD;QADE,SAAS,CAAC,MAAM;8DAGjB;IAID;QADE,SAAS,CAAC,MAAM;sDAGjB;IAtDW,qBAAmB,sBAmE/B,CAAA;AACF,CAAC,EAtES,CAAC,KAAD,CAAC,QAsEV;;;;ACtED,IAAU,CAAC,CA+DV;AA/DD,WAAU,CAAC;IACV,SAAS,CAAC;QAET,KAAK,CAAC,iBAAiB;YAEtB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAA;YACtD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;YAEhC,iBAAiB,CAAE,MAAM,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAE,CAAA;YAClF,iBAAiB,CAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAE,CAAA;YAE7E,iBAAiB,CAAE,MAAM,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAE,CAAA;YACjF,iBAAiB,CAAE,OAAO,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAE,CAAA;YAE5E,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YACxC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;YACtC,iBAAiB,CAAE,IAAI,CAAC,UAAU,EAAE,mBAAmB,CAAC,SAAS,CAAE,CAAA;QAEpE,CAAC;QAED,KAAK,CAAC,4CAA4C;YAEjD,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAA;YACrD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YACxC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;YAErC,iBAAiB,CAAE,IAAI,EAAE,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC,MAAM,CAAE,IAAI,EAAE,IAAI,CAAE,CAAE,CAAA;QAEtE,CAAC;QAED,KAAK,CAAC,oDAAoD;YAEzD,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAA;YACrD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YAExC,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAE,KAAK,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,eAAe,EAAE,CAAE,CAAA;YACpF,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;YAErC,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAE,KAAK,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAE,CAAA;YACrE,iBAAiB,CAAE,IAAI,EAAE,MAAM,KAAK,CAAC,MAAM,CAAE,IAAI,EAAE,IAAI,CAAE,CAAE,CAAA;YAE3D,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAE,KAAK,CAAC,QAAQ,EAAE,CAAE,CAAA;YAC3D,iBAAiB,CAAE,IAAI,EAAE,MAAM,KAAK,CAAC,MAAM,CAAE,IAAI,EAAE,IAAI,CAAE,CAAE,CAAA;QAE5D,CAAC;QAED,KAAK,CAAC,oDAAoD;YAEzD,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAA;YACrD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YAExC,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAE,IAAI,UAAU,CAAC,CAAE,GAAI,KAAK,CAAC,OAAO,EAAE,EAAE,GAAI,KAAK,CAAC,cAAc,EAAE,CAAE,CAAC,CAAE,CAAA;YAC7G,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;YAErC,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAE,KAAK,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAE,CAAA;YACpE,iBAAiB,CAAE,IAAI,EAAE,MAAM,KAAK,CAAC,MAAM,CAAE,IAAI,EAAE,IAAI,CAAE,CAAE,CAAA;YAE3D,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAE,KAAK,CAAC,OAAO,EAAE,CAAE,CAAA;YAC1D,iBAAiB,CAAE,IAAI,EAAE,MAAM,KAAK,CAAC,MAAM,CAAE,IAAI,EAAE,IAAI,CAAE,CAAE,CAAA;QAE5D,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EA/DS,CAAC,KAAD,CAAC,QA+DV;;;;AC/DD,IAAU,CAAC,CASV;AATD,WAAU,CAAC;IAEV,uBAAuB;IACvB,SAAgB,kBAAkB;QACjC,OAAO,kBAAkB,CAAC,eAAe,CACxC,IAAI,UAAU,CAAE,EAAE,CAAE,CACpB,CAAA;IACF,CAAC;IAJe,oBAAkB,qBAIjC,CAAA;AAEF,CAAC,EATS,CAAC,KAAD,CAAC,QASV;;;;ACTD,IAAU,CAAC,CAGV;AAHD,WAAU,CAAC;IACV,yCAAyC;IAC9B,kBAAgB,GAAG,kBAAkB,CAAA;AACjD,CAAC,EAHS,CAAC,KAAD,CAAC,QAGV;;;;ACHD,IAAU,CAAC,CA2HV;AA3HD,WAAU,CAAC;IAIV,8CAA8C;IAC9C,MAAa,kBAAmB,SAAQ,WAAW;QAElD,yBAAyB;QACzB,MAAM,CAAC,IAAI,GAAG,EAAW,CAAA;QAEzB,+BAA+B;QAC/B,MAAM,CAAC,IAAI;YACV,OAAO,IAAI,CAAC,IAAI,CAAE,gBAAgB,EAAE,CAAE,CAAA;QACvC,CAAC;QAED,wCAAwC;QACxC,MAAM,CAAC,IAAI,CAEV,MAA+C;YAG/C,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAG,CAAC;gBACjC,MAAM,GAAG,IAAI,UAAU,CAAC;oBACvB,GAAI,sBAAsB,CAAE,MAAM,CAAE;iBACpC,CAA8B,CAAA;YAChC,CAAC;YAED,IAAG,CAAC,CAAE,MAAM,YAAY,UAAU,CAAE,EAAE,CAAC;gBACtC,MAAM,GAAG,IAAI,UAAU,CAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAE,CAAA;YAC/E,CAAC;YAED,CAAC;YAAE,MAAsB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;YAEnC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAE,MAAM,CAA0B,CAAA;YAE3D,OAAO,MAAM,CAAA;QACd,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,WAAW,CAAE,MAAiB;YAE1C,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAE,KAAK,EAAE,MAAM,CAAE,CAAC,KAAK,CAAE,mBAAmB,CAAE,CAAA;YAEnG,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAE,IAAI,UAAU,CAAE,GAAG,CAAE,CAAE,CAAA;YACjD,MAAM,CAAC,OAAO,GAAG,MAAwC,CAAA;YAEzD,OAAO,MAAM,CAAA;QACd,CAAC;QAED,YAAa,MAAmB,EAAE,UAAmB,EAAE,UAAmB;YACzE,KAAK,CAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAE,CAAA;YACvC,IAAI,IAAI,CAAC,QAAQ,CAAE,CAAC,CAAE,KAAK,IAAI;gBAAG,SAAS,CAAE,IAAI,KAAK,CAAE,qCAAqC,CAAE,CAAE,CAAA;QAClG,CAAC;QAGD,QAAQ;YACP,OAAO,sBAAsB,CAAE,IAAI,CAAC,OAAO,EAAE,CAAE,CAAA;QAChD,CAAC;QAED,OAAO,CAA4C;QACnD,2BAA2B;QAC3B,KAAK,CAAC,MAAM;YACX,OAAO,IAAI,CAAC,OAAO,IAAI,CAAE,IAAI,CAAC,OAAO,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAChF,KAAK,EACL,IAAI,EACJ;gBACC,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,GAAG;aACX,EACD,IAAI,EACJ,CAAE,SAAS,EAAE,SAAS,CAAE,CACxB,CAAC,KAAK,CAAE,mBAAmB,CAAoC,CAAE,CAAA;QACnE,CAAC;QAED,4CAA4C;QAC5C,KAAK,CAAC,OAAO,CAAE,IAAkB,EAAE,IAAkB;YACpD,OAAO,IAAI,UAAU,CAAE,MAAM,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAC7D;gBACC,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,GAAG;gBACX,SAAS,EAAE,EAAE;gBACb,EAAE,EAAE,IAAI;aACR,EACD,MAAM,IAAI,CAAC,MAAM,EAAE,EACnB,IAAI,CACJ,CAAC,KAAK,CAAE,mBAAmB,CAAE,CAAE,CAAA;QACjC,CAAC;QAED,kCAAkC;QAClC,KAAK,CAAC,OAAO,CAAE,MAAoB,EAAE,IAAmB;YACvD,OAAO,IAAI,UAAU,CAAE,MAAM,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAC7D;gBACC,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,GAAG;gBACX,SAAS,EAAE,EAAE;gBACb,EAAE,EAAE,IAAI;aACR,EACD,MAAM,IAAI,CAAC,MAAM,EAAE,EACnB,MAAM,CACN,CAAC,KAAK,CAAE,mBAAmB,CAAE,CAAE,CAAA;QACjC,CAAC;QAED,8CAA8C;QAC9C,KAAK,CAAC,KAAK,CAAE,MAA+B,EAAE,IAAkB;YAC/D,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI;gBAAG,MAAM,IAAI,KAAK,CAAE,yCAAyC,CAAE,CAAA;YAC9F,MAAM,MAAM,GAAG,IAAI,UAAU,CAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,CAAC,CAAE,CAAA;YAC5F,OAAO,IAAI,CAAC,OAAO,CAAE,MAAM,EAAE,IAAI,CAAE,CAAA;QACpC,CAAC;QAED,8CAA8C;QAC9C,KAAK,CAAC,IAAI,CAAE,MAAiC,EAAE,IAAkB;YAEhE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAE,MAAM,EAAE,IAAI,CAAE,CAAA;YACjD,IAAI,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU,GAAG,CAAC;gBAAG,MAAM,IAAI,KAAK,CAAE,oCAAoC,GAAG,CAAE,MAAM,CAAC,UAAU,GAAG,CAAC,CAAE,CAAE,CAAA;YAErI,MAAM,MAAM,GAAG,IAAI,UAAU,CAAE,MAAM,CAAC,UAAU,CAAE,CAAA;YAClD,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;YAChB,MAAM,CAAC,GAAG,CAAE,MAAM,EAAE,CAAC,CAAE,CAAA;YAEvB,OAAO,MAAM,CAAA;QACd,CAAC;;IAjED;QADE,SAAS,CAAC,MAAM;sDAGjB;IAnDW,oBAAkB,qBAoH9B,CAAA;AAEF,CAAC,EA3HS,CAAC,KAAD,CAAC,QA2HV;;;;AC3HD,IAAU,CAAC,CAmDV;AAnDD,WAAU,CAAC;IACV,SAAS,CAAC;QAET,KAAK,CAAC,OAAO;YAEZ,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,EAAE,CAAA;YAExC,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;YAC5B,iBAAiB,CAAE,GAAG,CAAC,UAAU,EAAE,kBAAkB,CAAC,IAAI,CAAE,CAAA;YAE5D,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAA;YACpC,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAA;YAE/B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAE,IAAI,EAAE,IAAI,CAAE,CAAA;YACjD,iBAAiB,CAAE,MAAM,CAAC,UAAU,EAAE,kBAAkB,CAAC,IAAI,CAAE,CAAA;YAE/D,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,KAAK,CAAE,MAAM,EAAE,IAAI,CAAE,CAAA;YACtD,iBAAiB,CAAE,WAAW,CAAC,UAAU,EAAE,kBAAkB,CAAC,IAAI,CAAE,CAAA;QAErE,CAAC;QAED,KAAK,CAAC,wBAAwB;YAE7B,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,EAAE,CAAA;YAExC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAA;YACpC,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAA;YAE/B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAE,IAAI,EAAE,IAAI,CAAE,CAAA;YACjD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAE,MAAM,EAAE,IAAI,CAAE,CAAA;YAEnD,iBAAiB,CAAE,IAAI,EAAE,MAAM,CAAE,CAAA;QAElC,CAAC;QAED,KAAK,CAAC,qCAAqC;YAE1C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAA;YACpC,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAA;YAE/B,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,EAAE,CAAA;YACvC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAE,IAAI,EAAE,IAAI,CAAE,CAAA;YAEhD,MAAM,GAAG,GAAG,kBAAkB,CAAC,IAAI,CAAE,KAAK,CAAC,OAAO,EAAE,CAAE,CAAA;YACtD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,CAAE,MAAM,EAAE,IAAI,CAAE,CAAA;YAEhD,iBAAiB,CAAE,IAAI,EAAE,MAAM,CAAE,CAAA;QAElC,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EAnDS,CAAC,KAAD,CAAC,QAmDV;;;;ACnDD,IAAU,CAAC,CA2EV;AA3ED,WAAU,CAAC;IACV,8CAA8C;IAC9C,MAAa,mBAAoB,SAAQ,mBAAmB;QAE3D,MAAM,CAAC,WAAW,GAAG,EAAE,CAAA;QAEvB,4BAA4B;QAC5B,MAAM,CAAC,KAAK,CAAC,QAAQ;YAEpB,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,WAAW,CACvD,QAAQ,EACR,OAAO,CAAE,aAAa,CAAE,EACxB,CAAE,WAAW,CAAE,CACf,CAAC,KAAK,CAAE,mBAAmB,CAAmB,CAAA;YAE/C,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAE,KAAK,EAAE,IAAI,CAAC,UAAU,CAAE,CAAC,KAAK,CAAE,mBAAmB,CAAE,CAAA;YACjH,OAAO,IAAI,CAAC,IAAI,CAAE,CAAC,GAAG,CAAE,CAAE,CAAA;QAE3B,CAAC;QAED,iCAAiC;QAE3B,AAAN,KAAK,CAAC,aAAa;YAElB,OAAO,kBAAkB,CAAC,MAAM,CAAC,SAAS,CACzC,KAAK,EACL;gBACC,GAAG,EAAE,QAAQ;gBACb,GAAG,EAAE,IAAI;gBACT,GAAG,EAAE,KAAK;gBACV,OAAO,EAAE,CAAE,WAAW,EAAE,YAAY,CAAE;gBACtC,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE;gBAClB,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE;aACzB,EACD,QAAQ,EACR,OAAO,CAAE,aAAa,CAAE,EACxB,CAAE,WAAW,EAAE,YAAY,CAAE,CAC7B,CAAC,KAAK,CAAE,mBAAmB,CAAE,CAAA;QAE/B,CAAC;QAED,kCAAkC;QAClC,cAAc;YACb,OAAO,IAAI,UAAU,CAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,GAAG,EAAE,EAAE,EAAE,CAAE,CAAA;QAC/D,CAAC;QAED,6CAA6C;QAE7C,eAAe;YACd,OAAO,sBAAsB,CAAE,IAAI,CAAC,cAAc,EAAE,CAAE,CAAA;QACvD,CAAC;QAED,wCAAwC;QAExC,MAAM;YACL,OAAO,mBAAmB,CAAC,IAAI,CAAE,IAAI,CAAC,OAAO,EAAE,CAAE,CAAA;QAClD,CAAC;QAED,iEAAiE;QACjE,KAAK,CAAC,MAAM,CAAE,GAAwB;YAErC,OAAO,kBAAkB,CAAC,IAAI,CAAE,IAAI,UAAU,CAC7C,MAAM,kBAAkB,CAAC,MAAM,CAAC,UAAU,CACzC;gBACC,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE;aAC1B,EACD,MAAM,IAAI,CAAC,aAAa,EAAE,EAC1B,kBAAkB,CAAC,IAAI,GAAG,CAAC,CAC3B,CAAC,KAAK,CAAE,mBAAmB,CAAE,CAC9B,CAAE,CAAA;QAEJ,CAAC;;IAlDK;QADJ,SAAS,CAAC,MAAM;4DAkBjB;IASD;QADE,SAAS,CAAC,MAAM;8DAGjB;IAID;QADE,SAAS,CAAC,MAAM;qDAGjB;IAtDW,qBAAmB,sBAwE/B,CAAA;AACF,CAAC,EA3ES,CAAC,KAAD,CAAC,QA2EV;;;;AC3ED,IAAU,CAAC,CAgCV;AAhCD,WAAU,CAAC;IACV,SAAS,CAAC;QAET,KAAK,CAAC,iBAAiB;YAEtB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAA;YACtD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAA;YAE9B,iBAAiB,CAAE,MAAM,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAE,CAAA;YAClF,iBAAiB,CAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAE,CAAA;YAE3E,iBAAiB,CAAE,MAAM,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAE,CAAA;YACjF,iBAAiB,CAAE,MAAM,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAE,CAAA;YAE1E,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAE,MAAM,CAAE,CAAA;YAC5C,iBAAiB,CAAE,MAAM,CAAC,UAAU,EAAE,mBAAmB,CAAC,WAAW,CAAE,CAAA;QAExE,CAAC;QAED,KAAK,CAAC,0CAA0C;YAE/C,MAAM,CAAC,GAAG,MAAM,mBAAmB,CAAC,QAAQ,EAAE,CAAA;YAC9C,MAAM,CAAC,GAAG,MAAM,mBAAmB,CAAC,QAAQ,EAAE,CAAA;YAE9C,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,MAAM,CAAE,CAAC,CAAC,MAAM,EAAE,CAAE,CAAA;YACvC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,MAAM,CAAE,CAAC,CAAC,MAAM,EAAE,CAAE,CAAA;YAEvC,iBAAiB,CAAE,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,CAAE,CAAA;QAEhD,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EAhCS,CAAC,KAAD,CAAC,QAgCV;;;;AChCD,IAAU,CAAC,CA2DV;AA3DD,WAAU,CAAC;IACV,2EAA2E;IAC3E,MAAa,oBAAqB,SAAQ,mBAAmB;QAE5D,iCAAiC;QACjC,MAAM,CAAC,KAAK,CAAC,QAAQ;YAEpB,MAAM,CAAE,MAAM,EAAE,MAAM,CAAE,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC5C,mBAAmB,CAAC,QAAQ,EAAE;gBAC9B,mBAAmB,CAAC,QAAQ,EAAE;aAC9B,CAAC,CAAA;YAEF,MAAM,GAAG,GAAG,oBAAoB,CAAC,IAAI,CAAE,mBAAmB,CAAC,QAAQ,GAAG,oBAAoB,CAAC,QAAQ,CAAE,CAAA;YAErG,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,CAAE,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAE,CAAA;YACxC,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,CAAE,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,CAAE,CAAA;YAEzC,GAAG,CAAC,cAAc,EAAE,CAAC,GAAG,CAAE,MAAM,CAAC,cAAc,EAAE,EAAE,CAAC,CAAE,CAAA;YACtD,GAAG,CAAC,cAAc,EAAE,CAAC,GAAG,CAAE,MAAM,CAAC,cAAc,EAAE,EAAE,EAAE,CAAE,CAAA;YAEvD,OAAO,GAAG,CAAA;QACX,CAAC;QAED,0BAA0B;QAE1B,MAAM;YACL,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAE,oBAAoB,CAAC,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAE,CAAA;YACvG,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,CAAE,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAE,CAAC,EAAE,EAAE,CAAE,CAAE,CAAA;YACxD,MAAM,CAAC,cAAc,EAAE,CAAC,GAAG,CAAE,IAAI,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAE,CAAC,EAAE,EAAE,CAAE,CAAE,CAAA;YACtE,OAAO,MAAM,CAAA;QACd,CAAC;QAED,0BAA0B;QAE1B,MAAM;YACL,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAE,mBAAmB,CAAC,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAE,CAAA;YACtG,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,CAAE,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAE,EAAE,EAAE,EAAE,CAAE,CAAE,CAAA;YACzD,MAAM,CAAC,cAAc,EAAE,CAAC,GAAG,CAAE,IAAI,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAE,EAAE,EAAE,EAAE,CAAE,CAAE,CAAA;YACvE,OAAO,MAAM,CAAA;QACd,CAAC;QAED,0BAA0B;QAE1B,MAAM;YACL,OAAO,mBAAmB,CAAC,IAAI,CAAE,IAAI,CAAC,OAAO,EAAE,CAAE,CAAA;QAClD,CAAC;QAED,kCAAkC;QAClC,cAAc;YACb,OAAO,IAAI,UAAU,CAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,GAAG,EAAE,EAAE,EAAE,CAAE,CAAA;QAC/D,CAAC;QAED,6CAA6C;QAE7C,eAAe;YACd,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,eAAe,EAAE,CAAA;QACzE,CAAC;KAED;IAjCA;QADE,SAAS,CAAC,MAAM;sDAMjB;IAID;QADE,SAAS,CAAC,MAAM;sDAMjB;IAID;QADE,SAAS,CAAC,MAAM;sDAGjB;IASD;QADE,SAAS,CAAC,MAAM;+DAGjB;IAtDW,sBAAoB,uBAwDhC,CAAA;AACF,CAAC,EA3DS,CAAC,KAAD,CAAC,QA2DV;;;;AC3DD,IAAU,CAAC,CAwCV;AAxCD,WAAU,GAAC;IAAC,IAAA,EAAE,CAwCb;IAxCW,WAAA,EAAE;QACb,SAAS,CAAC;YAET,KAAK,CAAC,sBAAsB,CAAE,CAAC;gBAE9B,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,QAAQ,EAAE,CAAA;gBACnD,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,QAAQ,EAAE,CAAA;gBAEnD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,CAAE,KAAK,CAAC,MAAM,EAAE,CAAE,CAAA;gBAC7D,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,CAAE,KAAK,CAAC,MAAM,EAAE,CAAE,CAAA;gBAC7D,iBAAiB,CAAE,OAAO,EAAE,OAAO,CAAE,CAAA;gBAErC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;gBACxC,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAA;gBAElC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAE,IAAI,EAAE,KAAK,CAAE,CAAA;gBACnD,MAAM,MAAM,GAAG,iBAAiB,CAAE,MAAM,CAAE,CAAA;gBAC1C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAE,MAAM,CAAE,CAAA;gBAEhD,iBAAiB,CAAE,IAAI,EAAE,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC,MAAM,CAAE,MAAM,EAAE,IAAI,CAAE,CAAE,CAAA;gBACvE,iBAAiB,CAAE,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAE,MAAM,EAAE,KAAK,CAAE,CAAE,CAAA;YAElE,CAAC;YAED,KAAK,CAAC,mBAAmB,CAAE,CAAC;gBAE3B,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,QAAQ,EAAE,CAAA;gBAElD,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAE,GAAI,IAAI,CAAC,OAAO,EAAE,EAAE,GAAI,IAAI,CAAC,cAAc,EAAE,CAAE,CAAC,CAAA;gBAC7E,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;gBAEpD,iBAAiB,CAChB,IAAI,EACJ,oBAAoB,CAAC,IAAI,CAAE,GAAG,CAAE,EAChC,oBAAoB,CAAC,IAAI,CAAE,GAAG,CAAE,CAChC,CAAA;YAEF,CAAC;SAED,CAAC,CAAA;IACH,CAAC,EAxCW,EAAE,GAAF,MAAE,KAAF,MAAE,QAwCb;AAAD,CAAC,EAxCS,CAAC,KAAD,CAAC,QAwCV;;;;ACxCD,IAAU,CAAC,CA4CV;AA5CD,WAAU,CAAC;IACV,MAAa,YAAa,SAAQ,YAAY;QAE7C,8BAA8B;QAC9B,MAAM,CAAC,SAAS,CAAE,IAAc;YAC/B,OAAO,KAAK,CAAA;QACb,CAAC;QAED,oCAAoC;QACpC,MAAM,CAAC,KAAK;YACX,OAAO,CAAC,CAAA;QACT,CAAC;QAED,oCAAoC;QACpC,MAAM,CAAC,IAAI;YACV,OAAO,CAAC,CAAA;QACT,CAAC;QAED,6CAA6C;QAC7C,MAAM,CAAC,IAAI;YACV,OAAO,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QAClC,CAAC;QAED,8BAA8B;QAC9B,MAAM,CAAC,OAAO;YAEb,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;YAC1B,IAAI,CAAC,KAAK;gBAAG,OAAO,CAAC,CAAA;YAErB,OAAO,IAAI,CAAC,IAAI,EAAE,GAAG,KAAK,CAAA;QAC3B,CAAC;QAED;;;;;;WAMG;QACH,MAAM,CAAC,KAAK;YACX,OAAO,IAAI,CAAC,KAAK,CAAE,CAAE,IAAI,CAAC,IAAI,CAAE,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAE,CAAE,CAAA;QACvD,CAAC;KAED;IA1CY,cAAY,eA0CxB,CAAA;AACF,CAAC,EA5CS,CAAC,KAAD,CAAC,QA4CV;;;;AC5CD,IAAU,CAAC,CAsCV;AAtCD,WAAU,CAAC;IACV,MAAa,iBAAkB,SAAQ,YAAY;QAElD,MAAM,CAAU,SAAS;YACxB,OAAO,IAAI,CAAA;QACZ,CAAC;QAGM,AAAP,MAAM,CAAC,KAAK;YACX,eAAe,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;YAC3B,OAAO,KAAK,CAAC,EAAE,CAAC,UAAU,CAAE,GAAG,CAAE,CAAA;QAClC,CAAC;QAED,MAAM,CAAU,KAAK;YACpB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;YACtC,OAAO,MAAM,GAAG,KAAK,CAAA;QACtB,CAAC;QAED,MAAM,CAAU,IAAI;YACnB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;YAC7C,OAAO,CAAE,MAAM,GAAG,KAAK,CAAE,GAAG,KAAK,CAAA;QAClC,CAAC;QAED,MAAM,CAAU,IAAI;YACnB,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;YACrC,OAAO,KAAK,GAAG,KAAK,CAAA;QACrB,CAAC;QAED,MAAM,CAAU,OAAO;YAEtB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;YACtC,IAAI,CAAC,MAAM;gBAAG,OAAO,CAAC,CAAA;YAEtB,OAAO,CAAE,MAAM,GAAG,KAAK,CAAE,GAAG,MAAM,CAAA;QACnC,CAAC;KAED;IA5BO;QADL,QAAQ;wCAIT;IAVW,mBAAiB,oBAmC7B,CAAA;IACD,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,iBAAiB,CAAA;AACrC,CAAC,EAtCS,CAAC,KAAD,CAAC,QAsCV;;;;ACtCD,IAAU,CAAC,CAgEV;AAhED,WAAU,CAAC;IAEV,MAAa,gBAA0B,SAAQ,WAAW;QAEzD,MAAM,CAAC,UAAU,CAAqD;QACtE,MAAM,CAAC,MAAM;YACZ,IAAI,IAAI,CAAC,UAAU,CAAC;gBAAG,OAAO,IAAI,CAAC,UAAU,CAAC,CAAA;YAE9C,KAAK,EAAG,IAAI,CAAC;gBACZ,MAAM,MAAM,GAAG,gBAAgB,CAAC,YAAY,CAAA;gBAC5C,IAAI,CAAC,MAAM;oBAAG,MAAM,KAAK,CAAA;gBAEzB,MAAM,CAAC,OAAO,CAAE,EAAE,EAAG,EAAE,CAAE,CAAA;gBACzB,MAAM,CAAC,UAAU,CAAE,EAAE,CAAE,CAAA;gBACvB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,MAAM,CAAA;YACjC,CAAC;YAAC,OAAO,KAAU,EAAG,CAAC;gBACtB,OAAO,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;YACtB,CAAC;YAED,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG;gBACzB,OAAO,CAAE,GAAY;oBACpB,OAAQ,IAAY,CAAE,GAAG,GAAG,GAAG,CAAE,CAAA;gBAClC,CAAC;gBACD,OAAO,CAAE,GAAY,EAAG,KAAc;oBACpC,IAAY,CAAE,GAAG,GAAG,GAAG,CAAE,GAAG,KAAK,CAAA;gBACnC,CAAC;gBACD,UAAU,CAAE,GAAY;oBACtB,IAAY,CAAE,GAAG,GAAG,GAAG,CAAE,GAAG,KAAK,CAAC,CAAA;gBACpC,CAAC;aACD,CAAA;QAEF,CAAC;QAGM,AAAP,MAAM,CAAC,OAAO,CAAE,IAAmB,IAAK,OAAO,IAAI,CAAA,CAAC,CAAC;QAG9C,AAAP,MAAM,CAAC,KAAK,CACX,GAAY,EACZ,IAAoB;YAGpB,IAAI,CAAC,OAAO,EAAE,CAAA;YAEd,IAAI,IAAI,KAAK,KAAK,CAAC;gBAAG,OAAO,IAAI,CAAC,KAAK,CAAE,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,CAAE,GAAG,CAAE,IAAI,MAAM,CAAE,CAAA;YAEjF,IAAI,IAAI,KAAK,IAAI,EAAG,CAAC;gBACpB,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,CAAE,GAAG,CAAE,CAAA;YAChC,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,CAAE,GAAG,EAAG,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAE,CAAA;gBACrD,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAE,IAAI,CAAE,CAAA;YACtC,CAAC;YAED,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,MAAM,KAAK,OAAO,EAAE,CAAA,CAAC,CAAC;QAEtB,KAAK,CAAE,GAAY,EAAG,IAAa;YAClC,OAAO,gBAAgB,CAAC,KAAK,CAAE,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,EAAG,IAAI,CAAE,CAAA;QAClE,CAAC;KAED;IA5BO;QADL,QAAQ;yCAC2C;IAG9C;QADL,YAAY;uCAkBb;IApDW,kBAAgB,mBA4D5B,CAAA;AAEF,CAAC,EAhES,CAAC,KAAD,CAAC,QAgEV;;;;AChED,IAAU,CAAC,CAaV;AAbD,WAAU,CAAC;IACV,SAAS,CAAE;QAEV,4BAA4B;YAE3B,MAAM,GAAG,GAAG,EAAE,GAAG,EAAG,UAAU,CAAE,IAAI,CAAC,MAAM,EAAE,CAAE,EAAE,CAAA;YAEjD,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAG,GAAG,CAAC,GAAG,EAAE,CAAE,CAAA;YAC1C,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAE,CAAA;QAE/C,CAAC;KAED,CAAE,CAAA;AACJ,CAAC,EAbS,CAAC,KAAD,CAAC,QAaV;;;;ACbD,IAAU,CAAC,CAMV;AAND,WAAU,CAAC;IACV;;;OAGG;IACQ,aAAW,GAAG,gBAAgB,CAAA;AAC1C,CAAC,EANS,CAAC,KAAD,CAAC,QAMV;;;;ACND,IAAU,CAAC,CA+BV;AA/BD,WAAU,CAAC;IACV,MAAa,SAAU,SAAQ,WAAW;QAC/B,OAAO,GAAG,IAA4B,CAAA;QAEhD,KAAK,CAAC,IAAI;YACA,IAAI,IAAI,GAAG,GAAG,EAAE,GAAE,CAAC,CAAA;YAC5B,IAAI,UAAU,GAAG,KAAK,CAAA;YACb,MAAM,IAAI,GAAG,cAAc,EAAE,CAAA;YACtC,IAAI,CAAE,IAAI;gBAAE,OAAO,IAAI,CAAA;YAEvB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACpC,IAAI,CAAC,UAAU,GAAG,GAAE,EAAE;gBAC9B,UAAU,EAAE,CAAA;gBACZ,UAAU,GAAG,IAAI,CAAA;gBACL,IAAI,EAAE,CAAA;YACV,CAAC,CAAA;YAEV,IAAI,OAAO,CAAA;YAEX,GAAG,CAAC;gBACH,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;gBACtB,MAAM,OAAO,CAAA;gBACb,IAAI,UAAU;oBAAE,OAAO,IAAI,CAAA;YAC5B,CAAC,QAAQ,OAAO,KAAK,IAAI,CAAC,OAAO,EAAC;YAElC,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,GAAG,IAAI,CAAA,CAAC,CAAC,CAAC,CAAA;YACnD,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,IAAI,KAAK,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA,CAAC,CAAC;KAC7C;IA7BY,WAAS,YA6BrB,CAAA;AACF,CAAC,EA/BS,CAAC,KAAD,CAAC,QA+BV;;;;AC/BD,IAAU,CAAC,CAEV;AAFD,WAAU,CAAC;IACC,iBAAe,GAAG,eAAe,CAAA;AAC7C,CAAC,EAFS,CAAC,KAAD,CAAC,QAEV;;;;ACFD,IAAU,CAAC,CAWV;AAXD,WAAU,CAAC;IACP,SAAgB,kBAAkB,CAAmC,CAAQ,EAAE,CAAQ;QACzF,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA;QACxB,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAA;QACvE,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;YAAE,OAAO,KAAK,CAAA;QAEvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;YAChC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAA;QAEhC,OAAO,IAAI,CAAA;IACZ,CAAC;IATkB,oBAAkB,qBASpC,CAAA;AACF,CAAC,EAXS,CAAC,KAAD,CAAC,QAWV;;;;ACXD,IAAU,CAAC,CAgBV;AAhBD,WAAU,CAAC;IAEV,MAAM,SAAU,SAAQ,UAAU;KAAG;IAErC,SAAS,CAAC;QACT,sBAAsB;YACrB,cAAc,CAAE,kBAAkB,CAAE,IAAI,UAAU,EAAG,IAAI,UAAU,CAAE,CAAE,CAAA;YACvE,cAAc,CAAE,kBAAkB,CAAE,IAAI,UAAU,CAAC,CAAE,CAAC,CAAE,CAAC,EAAG,IAAI,UAAU,CAAC,CAAE,CAAC,CAAE,CAAC,CAAE,CAAE,CAAA;YACrF,eAAe,CAAE,kBAAkB,CAAE,IAAI,UAAU,CAAC,CAAE,CAAC,CAAE,CAAC,EAAG,IAAI,UAAU,CAAC,CAAE,CAAC,CAAE,CAAC,CAAE,CAAE,CAAA;QACvF,CAAC;QAED,gCAAgC;YAC/B,eAAe,CAAE,kBAAkB,CAAE,IAAI,UAAU,EAAG,IAAI,SAAS,CAAE,CAAE,CAAA;QACxE,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EAhBS,CAAC,KAAD,CAAC,QAgBV;;;;;;;AChBD,IAAU,CAAC,CAeV;AAfD,WAAU,CAAC;IAEV,MAAM,QAAQ,GAAG,EAAwD,CAAA;IAEzE,SAAgB,mBAAmB,CAClC,MAA+B,EAC/B,WAAkC,MAAM;QAGxC,IAAI,OAAO,GAAG,QAAQ,CAAE,QAAQ,CAAE,CAAA;QAClC,IAAI,CAAC,OAAO;YAAG,OAAO,GAAG,QAAQ,CAAE,QAAQ,CAAE,GAAG,IAAI,WAAW,CAAE,QAAQ,CAAE,CAAA;QAE3E,OAAO,OAAO,CAAC,MAAM,CAAE,MAAM,CAAE,CAAA;IAChC,CAAC;IATe,qBAAmB,sBASlC,CAAA;AAEF,CAAC,EAfS,CAAC,KAAD,CAAC,QAeV;;;;ACfD,IAAU,CAAC,CAgBV;AAhBD,WAAU,CAAC;IACV,SAAS,CAAC;QACT,oBAAoB;YACnB,MAAM,GAAG,GAAG,aAAa,CAAA;YACzB,MAAM,OAAO,GAAG,IAAI,UAAU,CAAE,CAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAE,CAAE,CAAA;YAE5G,iBAAiB,CAAE,mBAAmB,CAAC,OAAO,CAAC,EAAE,GAAG,CAAE,CAAA;YACtD,iBAAiB,CAAE,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,GAAG,CAAE,CAAA;QAC/D,CAAC;QAED,qBAAqB;YACpB,MAAM,OAAO,GAAG,IAAI,UAAU,CAAE,EAAE,CAAE,CAAA;YAEpC,iBAAiB,CAAE,mBAAmB,CAAC,OAAO,CAAC,EAAE,EAAE,CAAE,CAAA;QACtD,CAAC;KACD,CAAC,CAAA;AACH,CAAC,EAhBS,CAAC,KAAD,CAAC,QAgBV;;;;AChBD,IAAU,CAAC,CA0CV;AA1CD,WAAU,CAAC;IAMV,MAAa,qBAAsB,SAAQ,WAAW;QAErD,IAAI,KAAK,OAAO,EAAE,CAAA,CAAC,CAAC;QAEpB,KAAK,KAAK,OAAO,EAA2C,CAAA,CAAC,CAAC;QAE9D,KAAK,CAAC,OAKL;YACA,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACnC,CAAC;QAED,IAAI;YACH,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACnC,CAAC;QAED,QAAQ,CAAC,IAAY;YACpB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACnC,CAAC;QAED,KAAK;YACJ,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACnC,CAAC;QAED,KAAK;YACJ,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACnC,CAAC;QAEQ,UAAU;YAClB,IAAI,CAAC,KAAK,EAAE,CAAA;QACb,CAAC;KAED;IAnCY,uBAAqB,wBAmCjC,CAAA;AACF,CAAC,EA1CS,CAAC,KAAD,CAAC,QA0CV;;;;AC1CD,IAAU,CAAC,CAgEV;AAhED,WAAU,CAAC;IACV,IAAK,UAYJ;IAZD,WAAK,UAAU;QACd,yCAAyC;QACzC,kCAAS,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,YAAA,CAAA;QACnC,iDAAiD;QACjD,2CAAkB,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,qBAAA,CAAA;QAC5C,2CAA2C;QAC3C,uCAAc,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,iBAAA,CAAA;QACvC,qCAAY,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,eAAA,CAAA;QACvC,sCAAa,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,gBAAA,CAAA;QACxC,sCAAa,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,gBAAA,CAAA;QACtC,uCAAuC;QACvC,kCAAS,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,YAAA,CAAA;IACrC,CAAC,EAZI,UAAU,KAAV,UAAU,QAYd;IAED,SAAS,SAAS,CAAC,KAA4C;QAC9D,OAAO,KAAK,CAAC,MAAM,CAAE,CAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,UAAU,CAAE,IAAI,CAAE,EAAE,CAAC,CAAE,CAAA;IACnE,CAAC;IAED,MAAa,0BAA2B,SAAQ,qBAAqB;QAE1D,KAAK;YACd,eAAe,EAAE,CAAA;YACjB,OAAO,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAE,CAAA;QAChE,CAAC;QAEQ,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,GAAG,IAAI,EAK3D;YACA,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,OAAO,KAAK,CAAC,EAAE,CAAC,UAAU,CAAE,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,IAAI,SAAS,CAAC,CAAA;YACzE,CAAC;YAED,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAChC,OAAO,KAAK,CAAC,EAAE,CAAC,SAAS,CAAE,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAE,CAAA;YAC5D,CAAC;YAED,MAAM,GAAG,MAAM,IAAK,MAA0B,CAAC,UAAU,CAAA;YAEzD,OAAO,KAAK,CAAC,EAAE,CAAC,SAAS,CAAE,IAAI,CAAC,KAAK,EAAE,EAAE,MAAgC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAE,CAAA;QACtG,CAAC;QAEQ,QAAQ,CAAC,IAAY;YAC7B,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;QACrC,CAAC;QAEQ,IAAI;YACZ,OAAO,+BAA+B,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CAA0B,CAAC,CAAA;QACrG,CAAC;QAEQ,KAAK;YACb,KAAK,CAAC,EAAE,CAAC,SAAS,CAAE,IAAI,CAAC,KAAK,EAAE,CAAE,CAAA;QACnC,CAAC;QAEQ,KAAK;YACb,KAAK,CAAC,EAAE,CAAC,SAAS,CAAE,IAAI,CAAC,KAAK,EAAE,CAAE,CAAA;QACnC,CAAC;KAED;IAxCU;QADR,QAAQ;2DAIT;IALW,4BAA0B,6BA0CtC,CAAA;IAED,CAAC,CAAC,qBAAqB,GAAG,0BAA0B,CAAA;AACrD,CAAC,EAhES,CAAC,KAAD,CAAC,QAgEV;;;;AChED,IAAU,CAAC,CAwaV;AAxaD,WAAU,CAAC;IAEV,MAAa,cAAe,SAAQ,WAAW;QAGvC,AAAP,MAAM,CAAC,QAAQ,CAAiD,IAAa;YAC5E,OAAO,IAAI,CAAC,IAAI,CAAwB;gBACvC,IAAI,EAAG,UAAU,CAAE,IAAI,CAAE;aACzB,CAAyB,CAAA;QAC3B,CAAC;QAED,MAAM,CAAC,QAAQ,CAAiD,IAAa;YAC5E,MAAM,IAAI,KAAK,CAAE,qBAAqB,CAAE,CAAA;QACzC,CAAC;QAED,MAAM,CAAC,IAAI,GAAG,EAAE,CAAA;QAEhB,IAAI;YACH,OAAO,GAAG,CAAA;QACX,CAAC;QAED,MAAM;YACL,OAAO,IAAI,CAAC,OAAO,CAAE,IAAI,CAAE,CAAA;QAC5B,CAAC;QAGD,UAAU,KAAK,OAAO,IAAI,CAAC,MAAM,EAAE,CAAA,CAAC,CAAC;QAE3B,IAAI;YACb,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YACxB,MAAM,IAAI,GAAI,IAAI,CAAC,WAAqC,CAAC,IAAI,CAAA;YAE7D,wFAAwF;YACxF,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAA;QACtD,CAAC;QAGS,IAAI,CAAC,IAA6B,EAAE,IAAa;YAE1D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YACxB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;YAE5B,0EAA0E;YAC1E,0BAA0B;YAC1B,IAAK,CAAE,IAAI,CAAC,IAAI,EAAE,EAAG,CAAC;gBACrB;;;;;;;;kBAQE;gBAEF,MAAM,CAAC,OAAO,EAAE,CAAA;YACjB,CAAC;YACD,MAAM,CAAC,OAAO,EAAE,CAAA;YAEhB,IAAI,IAAI;gBAAG,OAAO,IAAI,IAAI,IAAI,CAAA;YAE9B,OAAO,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC/B,CAAC;QAES,MAAM,CAAC,OAAO,GAAG,IAAI,GAAmB,CAAA;QAExC,MAAM,CAAC,KAAK,GAAG,IAAiC,CAAA;QAEhD,MAAM,CAAC,WAAW,CAAC,IAAyB,EAAE,IAAY;YACnE,IAAI,iBAAiB,CAAC,IAAI,CAAE,IAAI,CAAE;gBAAE,OAAM;YAE1C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAE,CAAA;YAC5E,0BAA0B;YAE1B,uFAAuF;YACvF,iEAAiE;YACjE,gFAAgF;YAChF,mBAAmB;YAEnB,kDAAkD;YAClD,qEAAqE;YACrE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAEtB,IAAI,CAAE,IAAI,CAAC,QAAQ;gBAAE,OAAM;YAE3B,kDAAkD;YAClD,sCAAsC;YACtC,6FAA6F;YAC7F,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,CAAA;YACxB,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE;gBACtE,IAAI,CAAE,IAAI,CAAC,QAAQ;oBAAE,OAAM;gBAC3B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;gBACrB,eAAe,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAA;YAC9B,CAAC,CAAE,CAAA;QACJ,CAAC;QAED;;;WAGG;QACH,MAAM,CAAC,cAAc,KAAK,OAAO,GAAG,CAAA,CAAC,CAAC;QAG/B,AAAP,MAAM,CAAC,KAAK;YACX,kFAAkF;YAClF,uCAAuC;YACvC,8EAA8E;YAC9E,6DAA6D;YAE7D,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;gBAE5B,IAAI,CAAC;oBACJ,IAAK,eAAe,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;wBAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;oBAC3D,IAAI,CAAC,KAAK,EAAE,CAAA;gBACb,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAChB,IAAI,eAAe,CAAC,KAAK,CAAC;wBAAE,aAAa,CAAC,KAAK,CAAC,CAAA;gBACjD,CAAC;YACF,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;YACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;YAEpB,8BAA8B;YAC9B,uBAAuB;QACzB,CAAC;QAEU,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAA;QAEtB,MAAM,CAAC,IAAI,GAAG,IAAI,SAAS,CAAA;QAGpB,AAAP,MAAM,CAAC,SAAS,CAAC,IAAY;YACtC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;YACrB,iCAAiC;YACjC,IAAI,CAAC,KAAK,EAAE,CAAA;YACZ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;YAErB;;;;;;;;;;cAUE;YACF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;QACtC,CAAC;QAED,gEAAgE;QAEhE,MAAM,CAAC,SAAS,CAAS,WAAyB,EAAE,YAAoB;YACvE,6CAA6C;YAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;YAC/B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;YAE5B,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,WAAW,EAAE,CAAA;gBAC5B,IAAI,CAAC,KAAK,EAAE,CAAA;gBACZ,MAAM,EAAE,CAAA;gBACR,OAAO,MAAM,CAAA;YACd,CAAC;YAAC,OAAM,CAAC,EAAE,CAAC;gBACX,IAAI,CAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5B,IAAI,CAAC,KAAK,EAAE,CAAA;oBACZ,MAAM,EAAE,CAAA;gBACT,CAAC;gBACD,gBAAgB,CAAC,CAAC,CAAC,CAAA;YACpB,CAAC;QACF,CAAC;QAED,KAAK;YACJ,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;QAClB,CAAC;QAGD,QAAQ,KAAK,OAAO,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,IAAI,IAAI,CAAA,CAAC,CAAC;QAGhD,OAAO;YACN,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAE,EAAE,CAAE,CAAC,WAAW,EAAE,IAAI,EAAE,CAAA;YAC5E,4CAA4C;YAC5C,OAAO,IAAI,CAAA;QACZ,CAAC;QAES,IAAI,CAAE,IAAY,IAAK,OAAO,IAA6B,CAAA,CAAC,CAAC;QAC7D,MAAM,KAAI,CAAC;QACX,IAAI,KAAI,CAAC;QACT,IAAI,CAAC,EAAU,IAAG,CAAC;QACnB,IAAI,KAA8B,OAAO,IAAI,UAAU,CAAA,CAAC,CAAC;QACzD,KAAK,CAAC,MAA+B,IAAI,CAAC;QAC1C,IAAI;YACb,OAAO,EAAqB,CAAA;QAC7B,CAAC;QAGD,QAAQ,CAAC,IAAsC;YAC9C,OAAO,IAAI,cAAuC,CAAA;QACnD,CAAC;QAGD,QAAQ,CAAC,IAAwB;YAChC,OAAO,IAAI,cAAuC,CAAA;QACnD,CAAC;QAED,4DAA4D;QAG5D,MAAM,CAAE,IAA+B;YAEtC,+CAA+C;YAC/C,IAAI,MAAM,GAA4B,IAAI,UAAU,EAAE,CAAA;YAEtD,IAAI,IAAI,KAAK,SAAS,EAAG,CAAC;gBACzB,oDAAoD;gBACpD,IAAK,IAAI,CAAC,OAAO,EAAE;oBAAG,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YAC3C,CAAC;YAED,MAAM,IAAI,GAAG,eAAe,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAE,CAAA;YAClD,MAAM,OAAO,GAAG,IAAI,KAAK,SAAS,IAAI,CAAE,kBAAkB,CAAE,IAAI,EAAE,IAAI,IAAI,MAAM,CAAC,CAAA;YAEjF,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,EAAG,CAAC;gBACpC,yDAAyD;gBACzD,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;oBACrB,KAAK,EAAE,yBAAyB;oBAChC,OAAO,EAAE,SAAS;oBAClB,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;iBACnB,CAAC,CAAA;YACH,CAAC;YAED,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA;YAEtD,gGAAgG;YAChG,qHAAqH;YAErH,+BAA+B;YAC/B,6HAA6H;YAC7H,oEAAoE;YAEpE,IAAI,CAAE,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE;gBAAE,OAAO,IAAI,CAAA;YAE3C,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAE,IAAI,CAAE,CAAA;YAC5B,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAE,CAAA;YAEhD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAEhB,OAAO,IAAI,CAAA;QAEZ,CAAC;QAGD,SAAS,CAAC,IAAY;YACrB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;YACtB,OAAO;gBACN,IAAI,EAAE,MAAM;gBACZ,IAAI;gBACJ,KAAK,EAAE,GAAG;gBACV,KAAK,EAAE,GAAG;gBACV,KAAK,EAAE,GAAG;aACD,CAAA;QACX,CAAC;QAGD,KAAK,CAAC,EAAU;YACf,IAAI,CAAE,IAAI,CAAC,MAAM,EAAE;gBAAG,OAAO,IAAI,CAAA;YAEjC,MAAM,MAAM,GAAI,IAAI,CAAC,WAAqC,CAAC,QAAQ,CAAC,EAAE,CAAS,CAAA;YAE/E,IAAI,CAAC;gBACJ,IAAI,CAAC,OAAO,EAAE,CAAA;gBACd,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;gBAC5B,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;gBACb,MAAM,CAAC,KAAK,EAAE,CAAA;gBACd,OAAO,MAAM,CAAA;YACd,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,IAAK,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC7B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;gBACrB,CAAC;YACF,CAAC;YACD,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,yBAAyB;QAEzB,gCAAgC;QAChC,OAAO;YACN,gEAAgE;YAChE,sCAAsC;YACtC,4DAA4D;YAC5D,qCAAqC;YACrC,IAAI;YAEJ,OAAO;gBACN,UAAU,KAAI,CAAC;aACf,CAAA;QACF,CAAC;QAGD,MAAM,CAAE,IAAe;YAEtB,MAAM,MAAM,GAAG,OAAO,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;YAErC,mEAAmE;YACnE,IAAI,IAAI,KAAK,SAAS;gBAAG,OAAO,MAAM,CAAA;YACtC,IAAI,IAAI,KAAK,MAAM;gBAAG,OAAO,MAAM,CAAA;YAEnC,IAAI,IAAI,EAAG,CAAC;gBACX,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAE,IAAI,CAAE,CAAA;gBAC5B,IAAI,CAAC,MAAM,EAAE,CAAA;YACd,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,IAAI,EAAE,CAAA;YACZ,CAAC;YAED,IAAI,CAAC,KAAK,EAAE,CAAA;YAEZ,OAAO,IAAI,CAAA;QACZ,CAAC;QAGD,IAAI;YACH,OAAO,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,IAAI,EAAE,CAAA;QAC/B,CAAC;QAED,IAAI;YACH,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAE,OAAO,EAAE,EAAE,CAAE,CAAA;QAC1C,CAAC;QAED,GAAG;YACF,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;YACjD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAE,CAAC,CAAE,CAAC,SAAS,CAAE,CAAC,CAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QAC9C,CAAC;QAED,IAAI,CAAC,IAAa,EAAE,IAAa;YAChC,2DAA2D;YAC3D,yEAAyE;YACzE,iFAAiF;YACjF,8FAA8F;YAC9F,IAAI,IAAI,KAAK,SAAS;gBAAE,IAAI,CAAC,MAAM,EAAE,CAAA;YACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QACjC,CAAC;QAGD,QAAQ,CAAC,IAAa,EAAE,IAAa;YACpC,IAAI,IAAI,EAAG,CAAC;gBACX,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAE,CAAA;gBACtC,OAAO,IAAK,CAAA;YACb,CAAC;YAED,IAAI,IAAI,KAAK,SAAS,EAAG,CAAC;gBACzB,OAAO,mBAAmB,CAAE,IAAI,CAAC,MAAM,EAAG,CAAE,CAAA;YAC7C,CAAC;iBAAM,CAAC;gBACP,MAAM,MAAM,GAAG,mBAAmB,CAAE,IAAI,CAAE,CAAA;gBAC1C,IAAI,CAAC,MAAM,CAAE,MAAM,CAAE,CAAA;gBACrB,OAAO,IAAI,CAAA;YACZ,CAAC;QACF,CAAC;QAGD,GAAG,CAAC,KAAY;YACf,IAAI,CAAE,IAAI,CAAC,MAAM,EAAE;gBAAG,OAAO,EAAE,CAAA;YAC/B,IAAK,IAAI,CAAC,IAAI,EAAE,KAAK,KAAK;gBAAE,OAAO,EAAE,CAAA;YAErC,IAAI,CAAC,OAAO,EAAE,CAAA;YAEd,oDAAoD;YACpD,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;QACjD,CAAC;QAED,OAAO,CAAC,IAAY;YACnB,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAA;QAC7B,CAAC;QAED,MAAM,CAAE,OAAS,IAAI,CAAC,WAAsC,CAAC,QAAQ,CAAE,GAAG,CAAE;YAC3E,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YACxB,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QACxE,CAAC;QAED,IAAI,CACH,OAAiB,EACjB,OAAiB;YAEjB,MAAM,KAAK,GAAG,EAAmB,CAAA;YACjC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAEtB,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;gBACzB,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;gBAE/B,IAAI,OAAO,IAAI,UAAU,CAAC,KAAK,CAAE,OAAO,CAAE;oBAAG,SAAQ;gBAErD,IAAI,CAAC,OAAO,IAAI,UAAU,CAAC,KAAK,CAAE,OAAO,CAAE;oBAAG,KAAK,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;gBAEjE,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,KAAK,EAAG,CAAC;oBAC7B,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAE,OAAO,EAAG,OAAO,CAAE,CAAA;oBACjD,KAAK,MAAM,KAAK,IAAI,SAAS;wBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBACjD,CAAC;YACF,CAAC;YAED,OAAO,KAAK,CAAA;QACb,CAAC;QAGD,IAAI;YACH,QAAQ,IAAI,CAAC,IAAI,EAAE,EAAG,CAAC;gBACtB,KAAK,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,IAAI,CAAC,CAAA;gBAC1C,OAAO,CAAC,CAAC,OAAO,CAAC,CAAA;YAClB,CAAC;QACF,CAAC;QAED,MAAM;YACL,OAAO,IAAI,CAAC,IAAI,EAAE,CAAA;QACnB,CAAC;QAGD,IAAI,CAAE,GAAI,KAA4C;YACrD,OAAO,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC;gBACxC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE;gBACvB,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK;aAClB,CAAC,CAAA;QACH,CAAC;;IA3YD;QADE,WAAW;oDACwB;IAW3B;QADR,QAAQ;8CA0BT;IAoHD;QADE,QAAQ;kDACsC;IAGhD;QADE,QAAQ;iDAKT;IAaD;QADE,YAAY;kDAGb;IAGD;QADE,YAAY;kDAGb;IAKD;QADE,QAAQ;gDAyCT;IAGD;QADE,WAAW;mDAUZ;IAGD;QADE,YAAY;+CAkBb;IAkBD;QADE,QAAQ;gDAmBT;IAGD;QADE,QAAQ;8CAGT;IAqBD;QADE,QAAQ;kDAcT;IAGD;QADE,QAAQ;6CAST;IAoCD;QADE,QAAQ;8CAMT;IAOD;QADE,WAAW;8CAMZ;IAhaM;QADL,YAAY;wCAKb;IA8FM;QADL,WAAW;qCAuBb;IAOiB;QADf,WAAW;yCAmBZ;IApJW,gBAAc,iBAoa1B,CAAA;AAEF,CAAC,EAxaS,CAAC,KAAD,CAAC,QAwaV;;;;ACxaD,IAAU,CAAC,CAcV;AAdD,WAAU,CAAC;IAYV,MAAa,SAAU,SAAQ,cAAc;KAAG;IAAnC,WAAS,YAA0B,CAAA;AAEjD,CAAC,EAdS,CAAC,KAAD,CAAC,QAcV;;;;ACdD,IAAU,CAAC,CAuNV;AAvND,WAAU,CAAC;IAEV,SAAS,YAAY,CAAC,IAA0C;QAE/D,IAAI,CAAC,IAAI;YAAG,OAAO,IAAI,CAAA;QAEvB,IAAI,IAAgC,CAAA;QACpC,IAAI,IAAI,CAAC,WAAW,EAAE;YAAE,IAAI,GAAG,KAAK,CAAA;QACpC,IAAI,IAAI,CAAC,MAAM,EAAE;YAAE,IAAI,GAAG,MAAM,CAAA;QAChC,IAAI,IAAI,CAAC,cAAc,EAAE;YAAE,IAAI,GAAG,MAAM,CAAA;QAExC,IAAI,CAAE,IAAI;YAAE,OAAO,SAAS,CAAE,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAE,CAAA;QAElE,OAAO;YACN,IAAI;YACJ,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;SACjB,CAAA;IACF,CAAC;IAED,SAAgB,+BAA+B,CAAC,GAA0B;QACzE,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAA;IAClE,CAAC;IAFe,iCAA+B,kCAE9C,CAAA;IAED,MAAa,cAAe,SAAQ,SAAS;QAE5C,MAAM,CAAC,QAAQ,CAA4C,IAAa;YACvE,OAAO,IAAI,CAAC,QAAQ,CAAQ,KAAK,CAAC,IAAI,CAAC,OAAO,CAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAE,CAAC,OAAO,CAAE,KAAK,EAAG,GAAG,CAAE,CAAE,CAAA;QAC3F,CAAC;QAGQ,OAAO,CAAC,KAAY;YAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YACxB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YACxB,+CAA+C;YAC/C,qDAAqD;YACrD,iGAAiG;YACjG,iFAAiF;YACjF,IAAI,CAAE,IAAI,IAAI,CAAE,IAAI,CAAC,MAAM,EAAE;gBAAG,OAAO,KAAK,CAAC,OAAO,EAAE,CAAA;YAEtD,IAAI,OAAO,CAAA;YAEX,IAAI,CAAC;gBACJ,qFAAqF;gBACrF,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,CAAE,IAAI,CAAE,CAAA;YACjC,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACrB,IAAK,CAAE,CAAC,KAAK,YAAY,KAAK,CAAC;oBAAG,KAAK,GAAG,IAAI,KAAK,CAAC,qBAAqB,EAAG,EAAC,KAAK,EAAE,KAAK,EAAC,CAAC,CAAA;gBAC3F,KAAK,CAAC,OAAO,IAAI,IAAI,GAAG,IAAI,CAAA;gBAE5B,IAAK,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAG,CAAC;oBACvC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;gBAC5B,CAAC;gBAED,0FAA0F;gBAC1F,qGAAqG;gBAErG,OAAO,KAAK,CAAC,OAAO,EAAE,CAAA;YACvB,CAAC;YAED,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAyB,EAAE,IAAI,EAAE,EAAE;gBACxD,IAAI,CAAE,IAAI;oBAAE,OAAM;gBAClB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAE,CAC3D;gBAAC,IAAI,CAAC,WAAqC,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YACrE,CAAC,CAAC,CAAA;YAEF,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAE,CAAA;YAElD,IAAI,UAAU,GAAG,KAAK,CAAA;YAEtB,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACxB,mEAAmE;gBACnE,IAAI,CAAE,UAAU;oBAAE,UAAU,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;YAC7E,CAAC,CAAC,CAAA;YAEF,OAAO;gBACN,UAAU;oBACT,UAAU,GAAG,IAAI,CAAA;oBACjB,OAAO,CAAC,KAAK,EAAE,CAAA;gBAChB,CAAC;aACD,CAAA;QACF,CAAC;QAGkB,IAAI,CAAE,IAAY;YACpC,IAAI,CAAC;gBACJ,OAAO,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;YAC7C,CAAC;YAAC,OAAO,KAAU,EAAG,CAAC;gBACtB,IAAI,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;oBACnC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;wBAAE,OAAO,IAAI,CAAA;oBACxC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;wBAAE,OAAO,IAAI,CAAA;oBACvC,KAAK,CAAC,OAAO,IAAI,IAAI,GAAG,IAAI,CAAA;oBAC5B,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAA;gBAC/B,CAAC;YACF,CAAC;YACD,OAAO,IAAI,CAAA;QACZ,CAAC;QAGkB,MAAM;YACxB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YACxB,IAAI,CAAC;gBACJ,KAAK,CAAC,EAAE,CAAC,SAAS,CAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAE,CAAA;gBAC/C,OAAO,IAAI,CAAA;YACZ,CAAC;YAAC,OAAO,CAAM,EAAG,CAAC;gBAClB,IAAI,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/B,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;wBAAE,OAAO,IAAI,CAAA;oBACpC,CAAC,CAAC,OAAO,IAAI,IAAI,GAAG,IAAI,CAAA;oBACxB,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;gBAC3B,CAAC;YACF,CAAC;QAEF,CAAC;QAGkB,IAAI,CAAC,EAAU;YACjC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;QACvC,CAAC;QAGkB,IAAI;YACtB,KAAK,CAAC,EAAE,CAAC,UAAU,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;QACnC,CAAC;QAGkB,IAAI;YACtB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YAExB,IAAI,CAAC;gBACJ,OAAO,+BAA+B,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAE,IAAI,CAA2B,CAAC,CAAA;YAC/F,CAAC;YAAC,OAAO,KAAU,EAAG,CAAC;gBACtB,IAAI,CAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;oBAChC,KAAK,CAAC,OAAO,IAAI,IAAI,GAAG,IAAI,CAAA;gBAC7B,CAAC;gBAED,gBAAgB,CAAE,KAAK,CAAE,CAAA;YAC1B,CAAC;QACF,CAAC;QAGkB,KAAK,CAAC,MAAiC;YACzD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YAExB,IAAI,CAAC;gBAEJ,KAAK,CAAC,EAAE,CAAC,aAAa,CAAE,IAAI,EAAE,MAAM,CAAE,CAAA;YAEvC,CAAC;YAAC,OAAO,KAAU,EAAG,CAAC;gBACtB,IAAI,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;oBACnC,KAAK,CAAC,OAAO,IAAI,IAAI,GAAG,IAAI,CAAA;gBAC7B,CAAC;gBACD,OAAO,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAE,KAAK,CAAE,CAAA;YACxC,CAAC;QAEF,CAAC;QAEkB,IAAI;YACtB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YAExB,IAAI,CAAC;gBACJ,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,WAAW,CAAE,IAAI,CAAE;qBACvC,MAAM,CAAE,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAE,IAAI,CAAE,CAAE;qBACvC,GAAG,CAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAE,IAAI,CAAE,CAAE,CAAA;gBAErC,OAAO,IAAI,CAAA;YACZ,CAAC;YAAC,OAAO,CAAM,EAAG,CAAC;gBAClB,IAAI,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/B,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;wBAAE,OAAO,EAAE,CAAA;oBAClC,CAAC,CAAC,OAAO,IAAI,IAAI,GAAG,IAAI,CAAA;gBACzB,CAAC;gBACD,gBAAgB,CAAC,CAAC,CAAC,CAAA;YACpB,CAAC;QACF,CAAC;QAEQ,OAAO,CAAE,IAAa;YAC9B,OAAS,IAAI,CAAC,WAAiC;iBAC7C,QAAQ,CAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,EAAE,EAAG,IAAI,CAAE,CAAU,CAAA;QAC5D,CAAC;QAEQ,MAAM,CAAE,OAAS,IAAI,CAAC,WAAiC,CAAC,QAAQ,CAAE,GAAG,CAAE;YAC/E,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAC,IAAI,EAAE,EAAG,IAAI,CAAC,IAAI,EAAE,CAAE,CAAC,OAAO,CAAE,KAAK,EAAG,GAAG,CAAE,CAAA;QAC/E,CAAC;QAGQ,QAAQ,CAAC,IAAsC;YACvD,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC,aAAa,CAAiC,CAAA;YACzE,MAAM,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE;gBACrD,KAAK,EAAE,GAAG;gBACV,SAAS,EAAE,IAAI;gBACf,KAAK,EAAE,IAAI,EAAE,KAAK;gBAClB,GAAG,EAAE,IAAI,EAAE,GAAG;gBACd,QAAQ,EAAE,QAAQ;aAClB,CAAC,CAAA;YAEF,OAAO,QAAQ,CAAC,KAAK,CAAC,MAAM,CAA4C,CAAA;QACzE,CAAC;QAGQ,QAAQ,CAAC,IAAyB;YAC1C,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC,aAAa,CAAiC,CAAA;YACzE,MAAM,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE;gBACtD,KAAK,EAAE,IAAI;gBACX,SAAS,EAAE,IAAI;gBACf,KAAK,EAAE,IAAI,EAAE,KAAK;gBAClB,QAAQ,EAAE,QAAQ;aAClB,CAAC,CAAA;YAEF,OAAO,QAAQ,CAAC,KAAK,CAAC,MAAM,CAA4C,CAAA;QACzE,CAAC;KAED;IAlLS;QADP,QAAQ;iDAkDT;IAGkB;QADjB,WAAW;8CAaZ;IAGkB;QADjB,WAAW;gDAcZ;IAGkB;QADjB,WAAW;8CAGZ;IAGkB;QADjB,WAAW;8CAGZ;IAGkB;QADjB,WAAW;8CAaZ;IAGkB;QADjB,WAAW;+CAeZ;IA8BQ;QADP,YAAY;kDAYb;IAGQ;QADP,QAAQ;kDAWT;IAvLW,gBAAc,iBAyL1B,CAAA;IAGD,CAAC,CAAC,SAAS,GAAG,cAAc,CAAA;AAC7B,CAAC,EAvNS,CAAC,KAAD,CAAC,QAuNV;;;;ACvND,IAAU,CAAC,CA6BV;AA7BD,WAAU,CAAC;IACV,MAAa,qBAA+B,SAAQ,gBAAyB;QAGrE,AAAP,MAAM,CAAC,GAAG;YACT,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAE,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,eAAe,CAAE,CAAA;YAClF,OAAO,SAAS,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAC,OAAO,CAAE,mBAAmB,CAAE,CAAA;QACjE,CAAC;QAGM,AAAP,MAAM,CAAC,KAAK,CACX,GAAY,EACZ,IAAoB;YAGpB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAE,kBAAkB,CAAE,GAAG,CAAE,GAAG,OAAO,CAAE,CAAA;YAEtE,IAAI,IAAI,KAAK,IAAI,EAAG,CAAC;gBACpB,IAAI,CAAC,MAAM,CAAE,KAAK,CAAE,CAAA;gBACpB,OAAO,IAAI,CAAA;YACZ,CAAC;YAED,MAAM,GAAG,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAA;YACnE,OAAO,IAAI,CAAC,KAAK,CAAE,IAAI,CAAC,IAAI,CAAE,GAAG,CAAE,IAAI,MAAM,CAAE,CAAA;QAEhD,CAAC;KAED;IAvBO;QADL,QAAQ;0CAIT;IAGM;QADL,YAAY;4CAgBb;IAxBW,uBAAqB,wBA0BjC,CAAA;IACD,CAAC,CAAC,gBAAgB,GAAG,qBAAqB,CAAA;AAC3C,CAAC,EA7BS,CAAC,KAAD,CAAC,QA6BV;;;;AC7BD,IAAU,CAAC,CAgBV;AAhBD,WAAU,CAAC;IACV,SAAS,CAAE;QAEV,sBAAsB;YAErB,IAAI,GAAG,GAAG,wBAAwB,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;YAClD,iBAAiB,CAAE,gBAAgB,CAAC,KAAK,CAAE,GAAG,CAAE,EAAG,IAAI,CAAE,CAAA;YAEzD,gBAAgB,CAAC,KAAK,CAAE,GAAG,EAAG,GAAG,CAAE,CAAA;YACnC,iBAAiB,CAAE,gBAAgB,CAAC,KAAK,CAAE,GAAG,CAAE,EAAG,GAAG,CAAE,CAAA;YAExD,gBAAgB,CAAC,KAAK,CAAE,GAAG,EAAG,IAAI,CAAE,CAAA;YACpC,iBAAiB,CAAE,gBAAgB,CAAC,KAAK,CAAE,GAAG,CAAE,EAAG,IAAI,CAAE,CAAA;QAC1D,CAAC;KAED,CAAE,CAAA;AACJ,CAAC,EAhBS,CAAC,KAAD,CAAC,QAgBV;;;;AChBD,IAAU,CAAC,CAmBV;AAnBD,WAAU,CAAC;IAEV,eAAe,CAAC,IAAI,CAAE,OAAO,CAAC,EAAE;QAC/B,MAAM,qBAA+B,SAAQ,gBAAyB;YAErE,MAAM,CAAC,KAAK,GAAG,EAA4B,CAAA;YAGpC,AAAP,MAAM,CAAC,KAAK,CACX,GAAY,EACZ,OAAO,IAAI,CAAC,KAAK,CAAE,GAAG,CAAW;gBAEjC,OAAO,IAAI,CAAC,KAAK,CAAE,GAAG,CAAE,GAAG,CAAE,IAAI,IAAI,IAAI,CAAE,CAAA;YAC5C,CAAC;;QALM;YADL,YAAY;gDAMb;QAGF,OAAO,CAAC,gBAAgB,GAAG,qBAAqB,CAAA;IACjD,CAAC,CAAE,CAAA;AAEJ,CAAC,EAnBS,CAAC,KAAD,CAAC,QAmBV;;;;ACnBD,IAAU,CAAC,CAwHV;AAxHD,WAAU,CAAC;IAEV,8CAA8C;IAC9C,MAAa,qBAAsB,SAAQ,mBAAmB;QAE7D,MAAM,CAAC,IAAI,CAAE,GAA8B;YAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;YAC7B,IAAI,IAAI,CAAC,UAAU,KAAK,qBAAqB,CAAC,QAAQ;gBAAG,OAAO,IAAI,CAAA;YACpE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI;gBAAG,OAAO,IAAI,CAAA;YACxC,OAAO,IAAI,CAAA;QACZ,CAAC;QAGD,IAAI;YACH,OAAO,gBAAgB,CAAC,QAAQ,CAAE,IAAI,CAAC,OAAO,EAAE,CAAE,CAAA;QACnD,CAAC;QAGD,IAAI;YACH,OAAO,QAAS,IAAI,CAAC,IAAI,EAAE,CAAC,GAAI,EAAE,CAAA;QACnC,CAAC;QAED,sEAAsE;QAEtE,IAAI;YACH,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAA;QAC1B,CAAC;QAED,6EAA6E;QAE7E,IAAI;YACH,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAA;QAC1B,CAAC;QAED,MAAM;YACL,OAAO,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAA;QAC7B,CAAC;QAED,CAAE,oBAAoB,CAAE;YACvB,OAAO,oBAAoB,CAAE,EAAE,EAC9B,sBAAsB,CAAE,IAAI,CAAE,EAC9B,KAAK,EACL,oBAAoB,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,EACnC,KAAK,CACL,CAAA;QACF,CAAC;KAED;IAlCA;QADE,SAAS,CAAC,MAAM;qDAGjB;IAGD;QADE,SAAS,CAAC,MAAM;qDAGjB;IAID;QADE,SAAS,CAAC,MAAM;qDAGjB;IAID;QADE,SAAS,CAAC,MAAM;qDAGjB;IA7BW,uBAAqB,wBA4CjC,CAAA;IAED,+CAA+C;IAC/C,MAAa,gBAAiB,SAAQ,oBAAoB;QAEzD,wDAAwD;QAEjD,AAAP,MAAM,CAAC,OAAO,CAAE,IAA8B;YAE7C,eAAe,EAAE,CAAA;YAEjB,IAAI,IAAI,KAAK,SAAS,EAAG,CAAC;gBACzB,MAAM,GAAG,GAAG,MAAM,CAAE,gBAAgB,CAAC,KAAK,CAAE,kBAAkB,CAAE,IAAI,EAAE,CAAE,CAAA;gBACxE,IAAI,GAAG,EAAG,CAAC;oBAEV,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;oBACzC,IAAI,IAAI,CAAC,UAAU,KAAK,GAAG;wBAAG,OAAO,IAAI,CAAA;oBAEzC,EAAE,CAAC,cAAc,CAAC;wBACjB,OAAO,EAAE,iBAAiB;wBAC1B,IAAI,EAAE,+BAA+B;wBACrC,KAAK,EAAE,GAAG,IAAI,YAAY;qBAC1B,CAAC,CAAA;gBAEH,CAAC;YACF,CAAC;YAED,IAAI,CAAC,IAAI;gBAAG,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YAE9B,gBAAgB,CAAC,KAAK,CAAE,kBAAkB,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,CAAE,CAAA;YAEtF,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,MAAM,CAAC,OAAO,GAAG,EAAc,CAAA;QAGxB,AAAP,MAAM,CAAC,IAAI;YACV,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM;gBAAG,OAAO,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAG,CAAE,CAAA;YACjE,OAAO,cAAc,CAAE,IAA+B,CAAE,CAAC,SAAS,EAAE,CAAA;QACrE,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,SAAS;YACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAG,CAAC;gBAChC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAE,CAAA;gBAChD,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI;oBAAG,SAAQ;gBACrC,IAAI,MAAM,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE;oBAAG,SAAQ;gBACpD,OAAO,IAAI,CAAA;YACZ,CAAC;YACD,SAAS,CAAE,IAAI,KAAK,CAAE,yBAAyB,CAAE,CAAE,CAAA;QACpD,CAAC;QAGD,IAAI;YACH,OAAO,qBAAqB,CAAC,IAAI,CAAE,IAAI,CAAC,MAAM,EAAE,CAAE,CAAA;QACnD,CAAC;QAGD,aAAa,CAAE,IAA2B;YACzC,OAAO,cAAc,CAAE,IAAI,CAAC,MAAM,EAAE,CAAE,CAAC,MAAM,CAAE,IAAI,CAAC,MAAM,EAAE,CAAE,CAAA;QAC/D,CAAC;QAED,CAAE,oBAAoB,CAAE;YACvB,OAAO,oBAAoB,CAAE,EAAE,EAC9B,sBAAsB,CAAE,IAAI,CAAE,EAC9B,GAAG,EACH,oBAAoB,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAE,EAC1C,KAAK,CACL,CAAA;QACF,CAAC;;IAhBD;QADE,SAAS,CAAC,MAAM;gDAGjB;IAGD;QADE,YAAY;yDAGb;IArDM;QADL,QAAQ;yCA0BT;IAKM;QADL,WAAW;sCAIZ;IArCW,kBAAgB,mBAoE5B,CAAA;AAEF,CAAC,EAxHS,CAAC,KAAD,CAAC,QAwHV;;;;ACxHD,IAAU,CAAC,CAyBV;AAzBD,WAAU,GAAC;IACV,eAAe,CAAC,IAAI,CAAE,CAAC,CAAA,EAAE;QACxB,MAAM,qBAAsB,SAAQ,CAAC,CAAC,gBAAgB;YAGrC,AAAhB,MAAM,CAAU,OAAO;gBACtB,OAAO,IAAI,CAAC,IAAI,CAAE,8KAA8K,CAAE,CAAA;YACnM,CAAC;YAED,MAAM,CAAU,OAAO,GAAG;gBACzB,8KAA8K;gBAC9K,8KAA8K;gBAC9K,8KAA8K;gBAC9K,8KAA8K;gBAC9K,8KAA8K;gBAC9K,8KAA8K;gBAC9K,8KAA8K;gBAC9K,8KAA8K;gBAC9K,8KAA8K;gBAC9K,8KAA8K;aAC9K,CAAA;;QAfe;YADd,QAAQ;kDAGT;QAgBF,CAAC,CAAC,gBAAgB,GAAG,qBAAqB,CAAA;IAC3C,CAAC,CAAE,CAAA;AACJ,CAAC,EAzBS,CAAC,KAAD,CAAC,QAyBV;;;;ACzBD,IAAU,CAAC,CAsCV;AAtCD,WAAU,CAAC;IAEV,MAAa,cAAc;QAE1B,MAAM,CAAC,QAAQ,GAAG,EAA+C,CAAA;QAEjE,MAAM,CAAC,SAAS,CAAE,OAAgB;YAEjC,IAAI,IAAI,CAAC,QAAQ,CAAE,OAAO,CAAE;gBAAG,OAAO,IAAI,CAAC,QAAQ,CAAE,OAAO,CAAE,CAAA;YAE9D,IAAI,MAAM,GAAG,MAAM,CAAC,IAAI,CAAE,IAAI,CAAC,QAAQ,CAAE;iBACvC,IAAI,EAAE;iBACN,OAAO,EAAE;iBACT,GAAG,CAAE,CAAE,KAAc,EAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAE,mBAAmB,EAAG,MAAM,CAAE,CAAE,CAAA;YAC5E,IAAI,KAAK,GAAG,MAAM,CAAE,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAE,GAAG,CAAE,GAAG,KAAK,EAAE,GAAG,CAAE,CAAA;YAEhE,IAAI,KAAK,GAAG,EAAiD,CAAA;YAE7D,OAAO,CAAC,OAAO,CAAE,KAAK,EAAE,CAAE,GAAY,EAAG,IAAa,EAAG,KAAc,EAAG,EAAE;gBAC3E,IAAI,IAAI;oBAAG,KAAK,CAAC,IAAI,CAAE,GAAG,EAAE,CAAC,IAAI,CAAE,CAAA;gBACnC,IAAI,KAAK;oBAAG,KAAK,CAAC,IAAI,CAAE,IAAI,CAAC,QAAQ,CAAE,KAAK,CAAE,CAAE,CAAA;gBAChD,OAAO,GAAG,CAAA;YACX,CAAC,CAAE,CAAA;YAEH,OAAO,IAAI,CAAC,QAAQ,CAAE,OAAO,CAAE,GAAG,CAAE,GAAS,EAAE,IAAa,EAAE,EAAE;gBAC/D,OAAO,KAAK,CAAC,MAAM,CAAE,CAAE,GAAG,EAAG,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAE,GAAG,EAAE,IAAI,CAAE,EAAG,EAAE,CAAE,CAAA;YACrE,CAAC,CAAA;QAEF,CAAC;QAED,QAAQ,CAAE,OAAgB,EAAE,IAAa;YACxC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAoC,CAAA;YACtD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAE,OAAO,CAAE,CAAA;YAC3C,OAAO,SAAS,CAAE,IAAI,EAAE,IAAI,CAAE,CAAA;QAC/B,CAAC;;IAhCW,gBAAc,iBAkC1B,CAAA;AAEF,CAAC,EAtCS,CAAC,KAAD,CAAC,QAsCV;;;;ACtCD,IAAU,CAAC,CAiQV;AAjQD,WAAU,CAAC;IAWV;;;;;OAKG;IACH,MAAa,kBAAmB,SAAQ,cAAc;QAErD,YAAa,SAAqC,CAAC;YAElD,KAAK,EAAE,CAAA;YAEP,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAG,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAE,MAAM,CAAE;oBAAG,MAAM,IAAI,UAAU,CAAE,gBAAgB,CAAE,CAAA;gBACzE,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;gBAC3B,OAAM;YACP,CAAC;YAED,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAG,CAAC;gBAEjC,IAAI,MAAM,KAAK,GAAG,EAAG,CAAC;oBAErB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAA;oBACb,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;oBAEf,OAAM;gBACP,CAAC;gBAED,QAAQ,EAAE,CAAC;oBACV,MAAM,MAAM,GAAG,4KAA4K,CAAA;oBAE3L,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAE,MAAM,CAAE,CAAA;oBACnC,IAAI,CAAC,KAAK;wBAAG,MAAM,QAAQ,CAAA;oBAE3B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;oBAC9B,IAAI,KAAK,CAAC,CAAC,CAAC;wBAAG,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,MAAM,CAAE,KAAK,CAAC,CAAC,CAAC,CAAE,CAAA;oBACpD,IAAI,KAAK,CAAC,CAAC,CAAC;wBAAG,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,MAAM,CAAE,KAAK,CAAC,CAAC,CAAC,CAAE,CAAA;oBACrD,IAAI,KAAK,CAAC,CAAC,CAAC;wBAAG,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,MAAM,CAAE,KAAK,CAAC,CAAC,CAAC,CAAE,CAAA;oBACnD,IAAI,KAAK,CAAC,CAAC,CAAC;wBAAG,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,MAAM,CAAE,KAAK,CAAC,CAAC,CAAC,CAAE,CAAA;oBACpD,IAAI,KAAK,CAAC,CAAC,CAAC;wBAAG,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,MAAM,CAAE,KAAK,CAAC,CAAC,CAAC,CAAE,CAAA;oBACtD,IAAI,KAAK,CAAC,CAAC,CAAC;wBAAG,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,MAAM,CAAE,KAAK,CAAC,CAAC,CAAC,CAAE,CAAA;oBAEtD,OAAM;gBACP,CAAC;gBAED,MAAM,EAAE,CAAC;oBACR,IAAI,MAAM,GAAG,4BAA4B,CAAA;oBAEzC,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAE,MAAM,CAAE,CAAA;oBACjC,IAAI,CAAC,KAAK;wBAAG,MAAM,MAAM,CAAA;oBAEzB,IAAI,KAAK,CAAC,CAAC,CAAC;wBAAG,IAAI,CAAC,IAAI,GAAG,MAAM,CAAE,KAAK,CAAC,CAAC,CAAC,CAAE,CAAA;oBAC7C,IAAI,KAAK,CAAC,CAAC,CAAC;wBAAG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAE,KAAK,CAAC,CAAC,CAAC,CAAE,CAAA;oBAE/C,OAAM;gBACP,CAAC;gBAED,MAAM,IAAI,KAAK,CAAE,gCAAiC,MAAO,GAAG,CAAE,CAAA;YAC/D,CAAC;YAED,IAAI,MAAM,YAAY,KAAK,EAAG,CAAC;gBAC9B,CAAC;gBAAA,CAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAE,GAAG,MAAM,CAAA;gBAClF,OAAM;YACP,CAAC;YAED,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,CAAA;YAC5B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC,CAAA;YAC9B,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA;YAC1B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,CAAA;YAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAA;YAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAA;QAEjC,CAAC;QAEQ,IAAI,GAAW,CAAC,CAAA;QAChB,KAAK,GAAY,CAAC,CAAA;QAClB,GAAG,GAAY,CAAC,CAAA;QAChB,IAAI,GAAY,CAAC,CAAA;QACjB,MAAM,GAAY,CAAC,CAAA;QACnB,MAAM,GAAY,CAAC,CAAA;QAE5B,IAAI,MAAM;YAET,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAA;YAC7B,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAA;YAC7B,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,CAAA;YACzB,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;YAEvB,MAAM,IAAI,IAAI,CAAC,KAAK,CAAE,MAAM,GAAG,EAAE,CAAE,CAAA;YACnC,MAAM,GAAG,MAAM,GAAG,EAAE,CAAA;YAEpB,IAAI,IAAI,IAAI,CAAC,KAAK,CAAE,MAAM,GAAG,EAAE,CAAE,CAAA;YACjC,MAAM,GAAG,MAAM,GAAG,EAAE,CAAA;YAEpB,GAAG,IAAI,IAAI,CAAC,KAAK,CAAE,IAAI,GAAG,EAAE,CAAE,CAAA;YAC9B,IAAI,GAAG,IAAI,GAAG,EAAE,CAAA;YAEhB,OAAO,IAAI,kBAAkB,CAAC;gBAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,GAAG,EAAE,GAAG;gBACR,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,MAAM;aACd,CAAC,CAAA;QAEH,CAAC;QAED,IAAI,CAAE,MAAkC;YACvC,MAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAE,MAAM,CAAE,CAAA;YAEjD,OAAO,IAAI,kBAAkB,CAAC;gBAC7B,IAAI,EAAG,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI;gBAChC,KAAK,EAAG,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK;gBACnC,GAAG,EAAG,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG;gBAC7B,IAAI,EAAG,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI;gBAChC,MAAM,EAAG,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM;gBACtC,MAAM,EAAG,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM;aACtC,CAAC,CAAA;QACH,CAAC;QAED,IAAI,CAAE,IAAa;YAClB,OAAO,IAAI,kBAAkB,CAAC;gBAC7B,IAAI,EAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI;gBACpC,KAAK,EAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI;gBACvC,GAAG,EAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI;gBACjC,IAAI,EAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI;gBACpC,MAAM,EAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI;gBAC1C,MAAM,EAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI;aAC1C,CAAC,CAAA;QACH,CAAC;QAED,KAAK,CAAE,MAAkC;YACxC,MAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAE,MAAM,CAAE,CAAA;YACjD,OAAO,IAAI,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAA;QAC3C,CAAC;QAED,OAAO;YACN,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAA;YACxD,IAAI,MAAM,GAAG,CAAE,CAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAE,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;YAC/E,OAAO,MAAM,GAAG,IAAI,CAAA;QACrB,CAAC;QAED,MAAM,KAAK,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAA,CAAC,CAAC;QAEnC,QAAQ,CAAE,OAAO,GAAG,gBAAgB;YACnC,OAAO,KAAK,CAAC,QAAQ,CAAE,OAAO,CAAE,CAAA;QACjC,CAAC;QAED,OAAO;YACN,OAAO,CAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAW,CAAA;QAEzF,CAAC;QAED,CAAE,MAAM,CAAC,WAAW,CAAE,CAAE,IAAqC;YAC5D,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAA;QAC5D,CAAC;QAED,MAAM,CAAC,QAAQ,GAAG;YAEjB,IAAI,EAAG,CAAE,QAA6B,EAAE,EAAE;gBACzC,IAAI,CAAC,QAAQ,CAAC,IAAI;oBAAG,OAAO,EAAE,CAAA;gBAC9B,OAAO,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAA;YAC3B,CAAC;YAED,IAAI,EAAG,CAAE,QAA6B,EAAE,EAAE;gBACzC,IAAI,CAAC,QAAQ,CAAC,KAAK;oBAAG,OAAO,EAAE,CAAA;gBAC/B,OAAO,QAAQ,CAAC,KAAK,GAAG,GAAG,CAAA;YAC5B,CAAC;YAED,IAAI,EAAG,CAAE,QAA6B,EAAE,EAAE;gBACzC,IAAI,CAAC,QAAQ,CAAC,GAAG;oBAAG,OAAO,EAAE,CAAA;gBAC7B,OAAO,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAA;YAC1B,CAAC;YAED,IAAI,EAAG,CAAE,QAA6B,EAAE,EAAE;gBACzC,IAAI,CAAC,QAAQ,CAAC,IAAI;oBAAG,OAAO,EAAE,CAAA;gBAC9B,OAAO,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAA;YAC3B,CAAC;YAED,IAAI,EAAG,CAAE,QAA6B,EAAE,EAAE;gBACzC,IAAI,CAAC,QAAQ,CAAC,MAAM;oBAAG,OAAO,EAAE,CAAA;gBAChC,OAAO,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAA;YAC7B,CAAC;YAED,IAAI,EAAG,CAAE,QAA6B,EAAE,EAAE;gBACzC,IAAI,CAAC,QAAQ,CAAC,MAAM;oBAAG,OAAO,EAAE,CAAA;gBAChC,OAAO,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAA;YAC7B,CAAC;YAED,IAAI,EAAG,CAAE,MAAyB,EAAE,EAAE;gBACrC,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI;oBAAG,OAAO,EAAE,CAAA;gBACnC,OAAO,MAAM,CAAE,GAAG,GAAG,MAAM,CAAC,IAAI,CAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAC5C,CAAC;YAED,GAAG,EAAG,CAAE,MAAyB,EAAE,EAAE;gBACpC,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI;oBAAG,OAAO,EAAE,CAAA;gBACnC,OAAO,MAAM,CAAE,MAAM,CAAC,IAAI,CAAE,CAAA;YAC7B,CAAC;YAED,KAAK,EAAG,CAAE,MAAyB,EAAE,EAAE;gBACtC,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI;oBAAG,OAAO,EAAE,CAAA;gBACrC,OAAO,GAAG,GAAG,gBAAgB,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAE,MAAM,CAAE,CAAA;YACzD,CAAC;YAED,IAAI,EAAG,CAAE,MAAyB,EAAE,EAAE;gBACrC,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI;oBAAG,OAAO,EAAE,CAAA;gBACrC,OAAO,MAAM,CAAE,GAAG,GAAG,MAAM,CAAC,MAAM,CAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAC9C,CAAC;YAED,GAAG,EAAG,CAAE,MAAyB,EAAE,EAAE;gBACpC,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI;oBAAG,OAAO,EAAE,CAAA;gBACrC,OAAO,MAAM,CAAE,MAAM,CAAC,MAAM,CAAE,CAAA;YAC/B,CAAC;YAED,KAAK,EAAG,CAAE,MAAyB,EAAE,EAAE;gBACtC,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI;oBAAG,OAAO,EAAE,CAAA;gBACrC,OAAO,GAAG,GAAG,gBAAgB,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAE,MAAM,CAAE,CAAA;YACzD,CAAC;YAED,IAAI,EAAG,CAAE,MAAyB,EAAE,EAAE;gBACrC,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI;oBAAG,OAAO,EAAE,CAAA;gBACrC,OAAO,MAAM,CAAE,GAAG,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAClD,CAAC;YAED,GAAG,EAAG,CAAE,MAAyB,EAAE,EAAE;gBACpC,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI;oBAAG,OAAO,EAAE,CAAA;gBACrC,OAAO,MAAM,CAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAA;YACnC,CAAC;YAED,MAAM,EAAG,CAAE,MAAyB,EAAE,EAAE;gBACvC,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI;oBAAG,OAAO,EAAE,CAAA;gBACrC,0DAA0D;gBAC1D,OAAO,GAAG,GAAG,gBAAgB,CAAC,QAAQ,CAAE,KAAK,CAAE,CAAE,MAAM,CAAE,CAAA;YAC1D,CAAC;YAED,KAAK,EAAG,CAAE,MAAyB,EAAE,EAAE;gBACtC,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI;oBAAG,OAAO,EAAE,CAAA;gBACrC,MAAM,WAAW,GAAG,CAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAE,MAAM,CAAC,MAAM,CAAE,CAAE,CAAC,OAAO,CAAE,CAAC,CAAE,CAAA;gBAChF,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAC5B,CAAC;SAED,CAAA;;IA5OW,oBAAkB,qBA8O9B,CAAA;AAEF,CAAC,EAjQS,CAAC,KAAD,CAAC,QAiQV;;;;ACjQD,IAAU,CAAC,CAwDV;AAxDD,WAAU,CAAC;IACV,SAAS,CAAE;QAEV,kBAAkB;YACjB,iBAAiB,CAAE,IAAI,kBAAkB,CAAE,QAAQ,CAAE,CAAC,QAAQ,EAAE,EAAG,SAAS,CAAE,CAAA;YAC9E,iBAAiB,CAAE,IAAI,kBAAkB,CAAE,QAAQ,CAAE,CAAC,QAAQ,EAAE,EAAG,SAAS,CAAE,CAAA;YAC9E,iBAAiB,CAAE,IAAI,kBAAkB,CAAE,QAAQ,CAAE,CAAC,QAAQ,EAAE,EAAG,SAAS,CAAE,CAAA;YAC9E,iBAAiB,CAAE,IAAI,kBAAkB,CAAE,SAAS,CAAE,CAAC,QAAQ,EAAE,EAAG,SAAS,CAAE,CAAA;YAC/E,iBAAiB,CAAE,IAAI,kBAAkB,CAAE,SAAS,CAAE,CAAC,QAAQ,EAAE,EAAG,SAAS,CAAE,CAAA;YAC/E,iBAAiB,CAAE,IAAI,kBAAkB,CAAE,SAAS,CAAE,CAAC,QAAQ,EAAE,EAAG,SAAS,CAAE,CAAA;YAC/E,iBAAiB,CAAE,IAAI,kBAAkB,CAAE,kBAAkB,CAAE,CAAC,QAAQ,EAAE,EAAG,kBAAkB,CAAE,CAAA;QAClG,CAAC;QAED,WAAW;YACV,iBAAiB,CAChB,IAAI,kBAAkB,CAAE,wBAAwB,CAAE,CAAC,QAAQ,EAAE,EAC7D,IAAI,kBAAkB,CAAE,mBAAmB,CAAE,CAAC,QAAQ,EAAE,EACxD,wBAAwB,CACxB,CAAA;YACD,iBAAiB,CAChB,IAAI,kBAAkB,CAAE,yBAAyB,CAAE,CAAC,QAAQ,EAAE,EAC9D,kBAAkB,CAClB,CAAA;QACF,CAAC;QAED,cAAc;YACb,iBAAiB,CAChB,IAAI,kBAAkB,CAAE,gBAAgB,CAAE,CAAC,QAAQ,CAAE,gBAAgB,CAAE,EACvE,gBAAgB,CAChB,CAAA;QACF,CAAC;QAED,iBAAiB;YAChB,iBAAiB,CAChB,IAAI,kBAAkB,CAAE,gBAAgB,CAAE,CAAC,QAAQ,CAAE,cAAc,CAAE,EACrE,cAAc,CACd,CAAA;QACF,CAAC;QAED,eAAe;YACd,iBAAiB,CAChB,IAAI,kBAAkB,CAAE,mBAAmB,CAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAC/D,kBAAkB,CAClB,CAAA;YACD,iBAAiB,CAChB,IAAI,kBAAkB,CAAE,yBAAyB,CAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EACrE,wBAAwB,CACxB,CAAA;QACF,CAAC;QAED,YAAY;YACX,MAAM,GAAG,GAAG,gBAAgB,CAAA;YAC5B,iBAAiB,CAAE,IAAI,kBAAkB,CAAE,GAAG,CAAE,EAAE,IAAI,kBAAkB,CAAE,GAAG,CAAE,CAAE,CAAA;QAClF,CAAC;KAED,CAAE,CAAA;AACJ,CAAC,EAxDS,CAAC,KAAD,CAAC,QAwDV;;;;ACxDD,IAAU,CAAC,CA4dV;AA5dD,WAAU,CAAC;IAEV,IAAY,yBAQX;IARD,WAAY,yBAAyB;QACpC,6EAAM,CAAA;QACN,+EAAO,CAAA;QACP,mFAAS,CAAA;QACT,iFAAQ,CAAA;QACR,6EAAM,CAAA;QACN,iFAAQ,CAAA;QACR,6EAAM,CAAA;IACP,CAAC,EARW,yBAAyB,GAAzB,2BAAyB,KAAzB,2BAAyB,QAQpC;IAYD,SAAS,IAAI,CAAE,GAAW,EAAE,GAAW;QACtC,MAAM,IAAI,GAAG,MAAM,CAAE,GAAG,CAAE,CAAA;QAC1B,IAAI,IAAI,GAAG,GAAG;YAAG,OAAO,IAAI,CAAA;QAC5B,SAAS,CAAE,IAAI,KAAK,CAAE,wBAAyB,GAAI,EAAE,CAAE,CAAE,CAAA;IAC1D,CAAC;IAED;;;;;OAKG;IACH,MAAa,gBAAiB,SAAQ,cAAc;QAEnD,YAAa,SAAmC,IAAI,IAAI;YAEvD,KAAK,EAAE,CAAA;YAEP,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAG,CAAC;gBACjC,MAAM,GAAG,IAAI,IAAI,CAAE,MAAM,CAAE,CAAA;gBAC3B,IAAI,MAAM,CAAC,KAAK,CAAE,MAAM,CAAC,OAAO,EAAE,CAAE;oBAAG,MAAM,IAAI,UAAU,CAAE,gBAAgB,CAAE,CAAA;YAChF,CAAC;YAED,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAG,CAAC;gBAEjC,MAAM,MAAM,GAAG,8IAA8I,CAAC,IAAI,CAAE,MAAM,CAAE,CAAA;gBAC5K,IAAI,CAAC,MAAM;oBAAG,MAAM,IAAI,KAAK,CAAE,8BAA+B,MAAO,GAAG,CAAE,CAAA;gBAE1E,IAAI,MAAM,CAAC,CAAC,CAAC;oBAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAE,CAAA;gBACnD,IAAI,MAAM,CAAC,CAAC,CAAC;oBAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,GAAG,CAAC,CAAA;gBACtD,IAAI,MAAM,CAAC,CAAC,CAAC;oBAAG,IAAI,CAAC,GAAG,GAAI,IAAI,CAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,GAAG,CAAC,CAAA;gBACrD,IAAI,MAAM,CAAC,CAAC,CAAC;oBAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAA;gBACjD,IAAI,MAAM,CAAC,CAAC,CAAC;oBAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAA;gBACnD,IAAI,MAAM,CAAC,CAAC,CAAC;oBAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAA;gBACnD,IAAI,MAAM,CAAC,CAAC,CAAC;oBAAG,IAAI,CAAC,MAAM,GAAG,IAAI,kBAAkB,CAAE,MAAM,CAAC,CAAC,CAAC,CAAE,CAAA;gBAEjE,OAAM;YACP,CAAC;YAED,IAAI,MAAM,YAAY,IAAI,EAAG,CAAC;gBAE7B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,WAAW,EAAE,CAAA;gBAChC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAA;gBAC9B,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;gBAC/B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAA;gBAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,CAAA;gBACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,GAAG,MAAM,CAAC,eAAe,EAAE,GAAG,IAAI,CAAA;gBACnE,IAAI,CAAC,MAAM,GAAG,IAAI,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAE,MAAM,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAA;gBAE9E,OAAM;YACP,CAAC;YAED,IAAI,MAAM,YAAY,KAAK,EAAG,CAAC;gBAC9B,CAAC;gBAAA,CAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAE,GAAG,MAAM,CAAA;gBAClF,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS;oBAAG,IAAI,CAAC,MAAM,GAAG,IAAI,kBAAkB,CAAE,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAE,CAAA;gBACxF,OAAM;YACP,CAAC;YAED,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;YACvB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;YACzB,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAA;YACrB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;YACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;YAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;YAE3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAmB,CAAC,CAAC,CAAC,IAAI,kBAAkB,CAAE,MAAM,CAAC,MAAM,CAAE,CAAA;QAE3G,CAAC;QAEQ,IAAI,CAAqB;QACzB,KAAK,CAAqB;QAC1B,GAAG,CAAqB;QACxB,IAAI,CAAqB;QACzB,MAAM,CAAqB;QAC3B,MAAM,CAAqB;QAC3B,MAAM,CAAiC;QAEhD,IAAI,OAAO;YACV,OAAO,CAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAE,GAAG,CAAC,CAAA;QACxC,CAAC;QAED,OAAO,CAAmB;QAC1B,IAAI,MAAM;YAET,IAAI,IAAI,CAAC,OAAO;gBAAG,OAAO,IAAI,CAAC,OAAO,CAAA;YAEtC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAE,IAAI,CAAC,MAAM,IAAI,CAAC,CAAE,CAAA;YAE7C,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAA;YAE1B,MAAM,MAAM,GAAG,IAAI,IAAI,CACtB,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,EAClC,IAAI,CAAC,KAAK,IAAI,CAAE,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAE,EAClE,CAAE,IAAI,CAAC,GAAG,IAAI,CAAE,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAE,GAAG,CAAC,EACvG,IAAI,CAAC,IAAI,IAAI,CAAC,EACd,IAAI,CAAC,MAAM,IAAI,CAAC,EAChB,MAAM,EACN,IAAI,CAAC,KAAK,CAAE,CAAE,CAAE,IAAI,CAAC,MAAM,IAAI,CAAC,CAAE,GAAG,MAAM,CAAE,GAAG,IAAI,CAAE,CACtD,CAAA;YAED,MAAM,MAAM,GAAG,CAAE,MAAM,CAAC,iBAAiB,EAAE,CAAA;YAC3C,KAAK,EAAE,IAAI,IAAI,CAAC,MAAM,EAAG,CAAC;gBACzB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAE,MAAM,CAAE,CAAA;gBAC1C,IAAI,MAAM,KAAK,MAAM;oBAAG,MAAM,KAAK,CAAA;gBACnC,MAAM,CAAC,UAAU,CAAE,MAAM,CAAC,UAAU,EAAE,GAAG,MAAM,GAAG,MAAM,CAAE,CAAA;YAC3D,CAAC;YAED,OAAO,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;QAC7B,CAAC;QAED,OAAO,CAA+B;QACtC,IAAI,MAAM;YACT,IAAI,IAAI,CAAC,OAAO;gBAAG,OAAO,IAAI,CAAC,OAAO,CAAA;YAEtC,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAE,IAAI,CAAC,MAAM,CAAE,CAAC,QAAQ,CAAE,IAAI,CAAC,MAAM,CAAE,CAAA;YAE1E,OAAO,IAAI,CAAC,OAAO,GAAG,IAAI,gBAAgB,CAAC;gBAC1C,IAAI,EAAG,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI;gBACxD,KAAK,EAAG,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK;gBAC3D,GAAG,EAAG,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG;gBACrD,IAAI,EAAG,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI;gBACxD,MAAM,EAAG,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM;gBAC9D,MAAM,EAAG,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM;gBAC9D,MAAM,EAAG,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM;aAC9D,CAAC,CAAA;QACH,CAAC;QAED,KAAK,CAAE,MAAgC;YACtC,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAE,MAAM,CAAE,CAAA;YAC7C,OAAO,IAAI,gBAAgB,CAAC;gBAC3B,IAAI,EAAG,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI;gBAC1D,KAAK,EAAG,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK;gBAC9D,GAAG,EAAG,MAAM,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG;gBACtD,IAAI,EAAG,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI;gBAC1D,MAAM,EAAG,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM;gBAClE,MAAM,EAAG,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM;gBAClE,MAAM,EAAG,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM;aAClE,CAAC,CAAA;QACH,CAAC;QAED,KAAK,CAAE,MAAkC;YACxC,MAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAE,MAAM,CAAE,CAAA;YACjD,MAAM,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC,KAAK,CAAC;gBAC3C,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;gBACpB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC;gBACtB,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;gBAClB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;gBACpB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC;gBACxB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC;gBACxB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC;aACxB,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAO,GAAG,CAAE,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAE,CAAA;YACxD,MAAM,MAAM,GAAG,IAAI,IAAI,CACtB,MAAM,CAAC,IAAK,GAAG,CAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAE,EACrC,MAAM,CAAC,KAAM,GAAG,CAAE,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAE,EACvC,MAAM,CAAC,GAAI,GAAG,CAAC,GAAG,CAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAE,EACvC,MAAM,CAAC,IAAK,GAAG,CAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAE,EACrC,MAAM,CAAC,MAAO,GAAG,CAAE,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAE,EACzC,IAAI,CAAC,KAAK,CAAE,MAAM,CAAE,EACpB,CAAE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAE,MAAM,CAAE,CAAE,GAAG,IAAI,CACxC,CAAA;YAED,IAAI,KAAK,CAAE,MAAM,CAAC,OAAO,EAAE,CAAE;gBAAG,MAAM,IAAI,KAAK,CAAE,YAAY,CAAE,CAAA;YAE/D,OAAO,IAAI,gBAAgB,CAAC;gBAC3B,IAAI,EAAG,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE;gBACjE,KAAK,EAAG,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE;gBAChE,GAAG,EAAG,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC;gBAC/D,IAAI,EAAG,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE;gBAC9D,MAAM,EAAG,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE;gBACpE,MAAM,EAAG,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,MAAM,CAAC,eAAe,EAAE,GAAG,IAAI;gBACtG,MAAM,EAAG,IAAI,CAAC,MAAM;aACpB,CAAC,CAAA;QACH,CAAC;QAED,IAAI,CAAE,MAAgC;YAErC,MAAM,IAAI,GAAG,IAAI,gBAAgB,CAAE,MAAM,CAAE,CAAA;YAE3C,OAAO,IAAI,gBAAgB,CAAC;gBAC3B,IAAI,EAAG,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;gBACtD,KAAK,EAAG,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK;gBACzD,GAAG,EAAG,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG;gBACnD,IAAI,EAAG,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;gBACtD,MAAM,EAAG,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM;gBAC5D,MAAM,EAAG,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM;gBAC5D,MAAM,EAAG,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM;aAC5D,CAAC,CAAA;QAEH,CAAC;QAED,QAAQ,CAAE,SAAoC,IAAI,gBAAgB,EAAE,CAAC,MAAO;YAE3E,MAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAE,MAAM,CAAE,CAAA;YACjD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,gBAAgB,EAAE,CAAC,MAAO,CAAA;YAE5D,IAAI,SAAS,GAAG,IAAI,gBAAgB,CAAE,qBAAqB,CAAE,CAAC,KAAK,CAAE,IAAI,CAAE,CAAA;YAC1E,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAE,QAAQ,CAAC,IAAI,CAAE,MAAM,CAAC,IAAI,CAAE,CAAC,CAAC,CAAE,CAAE,CAAE,CAAA;YAErE,OAAO,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAG,QAAQ,EAAE,CAAC,CAAA;QAC3C,CAAC;QAED,OAAO,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA,CAAC,CAAC;QAE1C,MAAM,KAAK,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAA,CAAC,CAAC;QAEnC,QAAQ,CAAE,OAAO,GAAG,0BAA0B,EAAE,IAAa;YAC5D,OAAO,KAAK,CAAC,QAAQ,CAAE,OAAO,EAAE,IAAI,CAAE,CAAA;QACvC,CAAC;QAED,OAAO;YACN,OAAO,CAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAE,MAAM,CAAE,CAAW,CAAA;QACvH,CAAC;QAED,CAAE,MAAM,CAAC,WAAW,CAAE,CAAE,IAAqC;YAC5D,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAA;QAC5D,CAAC;QAED,CAAE,oBAAoB,CAAE;YACvB,OAAO,oBAAoB,CAAE,EAAE,EAC9B,sBAAsB,CAAE,IAAI,CAAE,EAC9B,GAAG,EACH,sBAAsB,CAAE,IAAI,CAAC,QAAQ,CAAE,2BAA2B,CAAE,CAAE,CACtE,CAAA;QACF,CAAC;QAES,MAAM,CAAC,UAAU,GAAG,EAAyD,CAAA;QAEvF,MAAM,CAAC,IAAI,CAAC,IAAwB,EAAE,OAAe,EAAE,OAAmC;YACzF,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAE,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,EAAE,CAAE,CAAA;YACjF,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YAEzE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAA;QACtB,CAAC;QAED,cAAc;QACd,qEAAqE;QACrE,8FAA8F;QAC9F,6GAA6G;QAC7G,oFAAoF;QACpF,iEAAiE;QACjE,MAAM,CAAC,QAAQ,GAAG;YAEjB,MAAM,EAAG,CAAE,MAAyB,EAAE,EAAE;gBACvC,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI;oBAAG,OAAO,EAAE,CAAA;gBACnC,OAAO,MAAM,CAAE,MAAM,CAAC,IAAI,CAAE,CAAA;YAC7B,CAAC;YAED,IAAI,EAAG,CAAE,MAAyB,EAAE,EAAE;gBACrC,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI;oBAAG,OAAO,EAAE,CAAA;gBACnC,OAAO,MAAM,CAAE,IAAI,CAAC,KAAK,CAAE,MAAM,CAAC,IAAI,GAAG,GAAG,CAAE,GAAG,CAAC,CAAE,CAAA;YACrD,CAAC;YAED,IAAI,EAAG,CAAE,MAAyB,EAAE,EAAE;gBACrC,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI;oBAAG,OAAO,EAAE,CAAA;gBACnC,OAAO,MAAM,CAAE,MAAM,CAAC,IAAI,GAAG,GAAG,CAAE,CAAA;YACnC,CAAC;YAED,OAAO,EAAG,CAAE,MAAyB,EAAE,IAAa,EAAE,EAAE;gBACvD,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI;oBAAG,OAAO,EAAE,CAAA;gBACpC,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YACrF,CAAC;YAED,UAAU,EAAG,CAAE,MAAyB,EAAE,IAAa,EAAE,EAAE;gBAC1D,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,EAAG,CAAC;oBAC3B,IAAI,MAAM,CAAC,GAAG,IAAI,IAAI,EAAG,CAAC;wBACzB,OAAO,EAAE,CAAA;oBACV,CAAC;yBAAM,CAAC;wBACP,OAAO,gBAAgB,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAE,MAAM,CAAE,CAAA;oBACnD,CAAC;gBACF,CAAC;qBAAM,CAAC;oBACP,IAAI,MAAM,CAAC,GAAG,IAAI,IAAI,EAAG,CAAC;wBACzB,OAAO,gBAAgB,CAAC,QAAQ,CAAE,OAAO,CAAE,CAAE,MAAM,EAAE,IAAI,CAAE,CAAA;oBAC5D,CAAC;yBAAM,CAAC;wBACP,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,GAAG,EAAG,SAAS,EAAG,KAAK,EAAG,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;oBAC3G,CAAC;gBACF,CAAC;YACF,CAAC;YAED,SAAS,EAAG,CAAE,MAAyB,EAAE,IAAa,EAAE,EAAE;gBACzD,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,EAAG,CAAC;oBAC3B,IAAI,MAAM,CAAC,GAAG,IAAI,IAAI,EAAG,CAAC;wBACzB,OAAO,EAAE,CAAA;oBACV,CAAC;yBAAM,CAAC;wBACP,OAAO,gBAAgB,CAAC,QAAQ,CAAE,GAAG,CAAE,CAAE,MAAM,CAAE,CAAA;oBAClD,CAAC;gBACF,CAAC;qBAAM,CAAC;oBACP,IAAI,MAAM,CAAC,GAAG,IAAI,IAAI,EAAG,CAAC;wBACzB,OAAO,gBAAgB,CAAC,QAAQ,CAAE,OAAO,CAAE,CAAE,MAAM,CAAE,CAAA;oBACtD,CAAC;yBAAM,CAAC;wBACP,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,GAAG,EAAG,SAAS,EAAG,KAAK,EAAG,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;oBAC1G,CAAC;gBACF,CAAC;YACF,CAAC;YAED,KAAK,EAAG,CAAE,MAAyB,EAAE,IAAa,EAAE,EAAE;gBACrD,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI;oBAAG,OAAO,EAAE,CAAA;gBACpC,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAG,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YACrF,CAAC;YAED,QAAQ,EAAG,CAAE,MAAyB,EAAE,IAAa,EAAE,EAAE;gBACxD,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,EAAG,CAAC;oBAC3B,IAAI,MAAM,CAAC,GAAG,IAAI,IAAI,EAAG,CAAC;wBACzB,OAAO,EAAE,CAAA;oBACV,CAAC;yBAAM,CAAC;wBACP,OAAO,gBAAgB,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAE,MAAM,CAAE,CAAA;oBACnD,CAAC;gBACF,CAAC;qBAAM,CAAC;oBACP,IAAI,MAAM,CAAC,GAAG,IAAI,IAAI,EAAG,CAAC;wBACzB,OAAO,gBAAgB,CAAC,QAAQ,CAAE,KAAK,CAAE,CAAE,MAAM,EAAE,IAAI,CAAE,CAAA;oBAC1D,CAAC;yBAAM,CAAC;wBACP,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAG,SAAS,EAAG,KAAK,EAAG,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;oBAC1G,CAAC;gBACF,CAAC;YACF,CAAC;YAED,OAAO,EAAG,CAAE,MAAyB,EAAE,IAAa,EAAE,EAAE;gBACvD,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,EAAG,CAAC;oBAC3B,IAAI,MAAM,CAAC,GAAG,IAAI,IAAI,EAAG,CAAC;wBACzB,OAAO,EAAE,CAAA;oBACV,CAAC;yBAAM,CAAC;wBACP,OAAO,gBAAgB,CAAC,QAAQ,CAAE,GAAG,CAAE,CAAE,MAAM,CAAE,CAAA;oBAClD,CAAC;gBACF,CAAC;qBAAM,CAAC;oBACP,IAAI,MAAM,CAAC,GAAG,IAAI,IAAI,EAAG,CAAC;wBACzB,OAAO,gBAAgB,CAAC,QAAQ,CAAE,KAAK,CAAE,CAAE,MAAM,EAAE,IAAI,CAAE,CAAA;oBAC1D,CAAC;yBAAM,CAAC;wBACP,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,GAAG,EAAG,SAAS,EAAG,KAAK,EAAG,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;oBACzG,CAAC;gBACF,CAAC;YACF,CAAC;YAED,KAAK,EAAG,CAAE,MAAyB,EAAE,EAAE;gBACtC,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI;oBAAG,OAAO,EAAE,CAAA;gBACpC,OAAO,GAAG,GAAG,gBAAgB,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAE,MAAM,CAAE,CAAA;YACzD,CAAC;YAED,IAAI,EAAG,CAAE,MAAyB,EAAE,EAAE;gBACrC,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI;oBAAG,OAAO,EAAE,CAAA;gBACpC,OAAO,MAAM,CAAE,GAAG,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YACjD,CAAC;YAED,GAAG,EAAG,CAAE,MAAyB,EAAE,EAAE;gBACpC,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI;oBAAG,OAAO,EAAE,CAAA;gBACpC,OAAO,MAAM,CAAE,MAAM,CAAC,KAAK,GAAG,CAAC,CAAE,CAAA;YAClC,CAAC;YAED,SAAS,EAAG,CAAE,MAAyB,EAAE,IAAa,EAAE,EAAE;gBACzD,IAAI,MAAM,CAAC,GAAG,IAAI,IAAI;oBAAG,OAAO,EAAE,CAAA;gBAClC,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI;oBAAG,OAAO,EAAE,CAAA;gBACpC,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI;oBAAG,OAAO,EAAE,CAAA;gBACnC,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,OAAO,EAAG,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YAC1F,CAAC;YAED,IAAI,EAAG,CAAE,MAAyB,EAAE,IAAa,EAAE,EAAE;gBACpD,IAAI,MAAM,CAAC,GAAG,IAAI,IAAI;oBAAG,OAAO,EAAE,CAAA;gBAClC,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI;oBAAG,OAAO,EAAE,CAAA;gBACpC,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI;oBAAG,OAAO,EAAE,CAAA;gBACnC,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,EAAG,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YACtF,CAAC;YAED,KAAK,EAAG,CAAE,MAAyB,EAAE,EAAE;gBACtC,IAAI,MAAM,CAAC,GAAG,IAAI,IAAI;oBAAG,OAAO,EAAE,CAAA;gBAClC,OAAO,GAAG,GAAG,gBAAgB,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAE,MAAM,CAAE,CAAA;YACzD,CAAC;YAED,IAAI,EAAG,CAAE,MAAyB,EAAE,EAAE;gBACrC,IAAI,MAAM,CAAC,GAAG,IAAI,IAAI;oBAAG,OAAO,EAAE,CAAA;gBAClC,OAAO,MAAM,CAAE,GAAG,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAC/C,CAAC;YAED,GAAG,EAAG,CAAE,MAAyB,EAAE,EAAE;gBACpC,IAAI,MAAM,CAAC,GAAG,IAAI,IAAI;oBAAG,OAAO,EAAE,CAAA;gBAClC,OAAO,MAAM,CAAE,MAAM,CAAC,GAAG,GAAG,CAAC,CAAE,CAAA;YAChC,CAAC;YAED,KAAK,EAAG,CAAE,MAAyB,EAAE,EAAE;gBACtC,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI;oBAAG,OAAO,EAAE,CAAA;gBACnC,OAAO,GAAG,GAAG,gBAAgB,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAE,MAAM,CAAE,CAAA;YACzD,CAAC;YAED,IAAI,EAAG,CAAE,MAAyB,EAAE,EAAE;gBACrC,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI;oBAAG,OAAO,EAAE,CAAA;gBACnC,OAAO,MAAM,CAAE,GAAG,GAAG,MAAM,CAAC,IAAI,CAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAC5C,CAAC;YAED,GAAG,EAAG,CAAE,MAAyB,EAAE,EAAE;gBACpC,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI;oBAAG,OAAO,EAAE,CAAA;gBACnC,OAAO,MAAM,CAAE,MAAM,CAAC,IAAI,CAAE,CAAA;YAC7B,CAAC;YAED,KAAK,EAAG,CAAE,MAAyB,EAAE,EAAE;gBACtC,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI;oBAAG,OAAO,EAAE,CAAA;gBACrC,OAAO,GAAG,GAAG,gBAAgB,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAE,MAAM,CAAE,CAAA;YACzD,CAAC;YAED,IAAI,EAAG,CAAE,MAAyB,EAAE,EAAE;gBACrC,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI;oBAAG,OAAO,EAAE,CAAA;gBACrC,OAAO,MAAM,CAAE,GAAG,GAAG,MAAM,CAAC,MAAM,CAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAC9C,CAAC;YAED,GAAG,EAAG,CAAE,MAAyB,EAAE,EAAE;gBACpC,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI;oBAAG,OAAO,EAAE,CAAA;gBACrC,OAAO,MAAM,CAAE,MAAM,CAAC,MAAM,CAAE,CAAA;YAC/B,CAAC;YAED,KAAK,EAAG,CAAE,MAAyB,EAAE,EAAE;gBACtC,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI;oBAAG,OAAO,EAAE,CAAA;gBACrC,OAAO,GAAG,GAAG,gBAAgB,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAE,MAAM,CAAE,CAAA;YACzD,CAAC;YAED,IAAI,EAAG,CAAE,MAAyB,EAAE,EAAE;gBACrC,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI;oBAAG,OAAO,EAAE,CAAA;gBACrC,OAAO,MAAM,CAAE,GAAG,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAClD,CAAC;YAED,GAAG,EAAG,CAAE,MAAyB,EAAE,EAAE;gBACpC,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI;oBAAG,OAAO,EAAE,CAAA;gBACrC,OAAO,MAAM,CAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAA;YACnC,CAAC;YAED,MAAM,EAAG,CAAE,MAAyB,EAAE,EAAE;gBACvC,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI;oBAAG,OAAO,EAAE,CAAA;gBACrC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE;oBAAG,OAAO,EAAE,CAAA;gBACvD,OAAO,GAAG,GAAG,gBAAgB,CAAC,QAAQ,CAAE,KAAK,CAAE,CAAE,MAAM,CAAE,CAAA;YAC1D,CAAC;YAED,KAAK,EAAG,CAAE,MAAyB,EAAE,EAAE;gBACtC,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI;oBAAG,OAAO,EAAE,CAAA;gBACrC,MAAM,WAAW,GAAG,CAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAE,MAAM,CAAC,MAAM,CAAE,CAAE,CAAC,OAAO,CAAE,CAAC,CAAE,CAAA;gBAChF,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAC5B,CAAC;YAED,GAAG,EAAG,CAAE,MAAyB,EAAE,EAAE;gBAEpC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAA;gBACpC,IAAI,CAAC,MAAM;oBAAG,OAAO,EAAE,CAAA;gBAEvB,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;gBAEtB,IAAI,IAAI,GAAG,GAAG,CAAA;gBACd,IAAI,IAAI,GAAG,CAAC,EAAG,CAAC;oBACf,IAAI,GAAG,GAAG,CAAA;oBACV,IAAI,GAAG,CAAC,IAAI,CAAA;gBACb,CAAC;gBAED,OAAO,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAE,CAAC,EAAE,GAAG,CAAE,GAAG,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAE,CAAC,EAAE,GAAG,CAAE,CAAA;YACrG,CAAC;SAED,CAAA;;IAtbW,kBAAgB,mBAwb5B,CAAA;AAEF,CAAC,EA5dS,CAAC,KAAD,CAAC,QA4dV;;;;AC5dD,IAAU,CAAC,CAoGV;AApGD,WAAU,CAAC;IACV,SAAS,CAAE;QAEV,kBAAkB;YACjB,iBAAiB,CAAE,IAAI,gBAAgB,CAAE,MAAM,CAAE,CAAC,QAAQ,EAAE,EAAG,MAAM,CAAE,CAAA;YACvE,iBAAiB,CAAE,IAAI,gBAAgB,CAAE,SAAS,CAAE,CAAC,QAAQ,EAAE,EAAG,SAAS,CAAE,CAAA;YAC7E,iBAAiB,CAAE,IAAI,gBAAgB,CAAE,YAAY,CAAE,CAAC,QAAQ,EAAE,EAAG,YAAY,CAAE,CAAA;YACnF,iBAAiB,CAAE,IAAI,gBAAgB,CAAE,eAAe,CAAE,CAAC,QAAQ,EAAE,EAAG,eAAe,CAAE,CAAA;YACzF,iBAAiB,CAAE,IAAI,gBAAgB,CAAE,kBAAkB,CAAE,CAAC,QAAQ,EAAE,EAAG,kBAAkB,CAAE,CAAA;YAC/F,iBAAiB,CAAE,IAAI,gBAAgB,CAAE,qBAAqB,CAAE,CAAC,QAAQ,EAAE,EAAG,qBAAqB,CAAE,CAAA;YACrG,iBAAiB,CAAE,IAAI,gBAAgB,CAAE,yBAAyB,CAAE,CAAC,QAAQ,EAAE,EAAG,yBAAyB,CAAE,CAAA;YAC7G,iBAAiB,CAAE,IAAI,gBAAgB,CAAE,0BAA0B,CAAE,CAAC,QAAQ,EAAE,EAAG,+BAA+B,CAAE,CAAA;YACpH,iBAAiB,CAAE,IAAI,gBAAgB,CAAE,+BAA+B,CAAE,CAAC,QAAQ,EAAE,EAAG,+BAA+B,CAAE,CAAA;YACzH,iBAAiB,CAAE,IAAI,gBAAgB,CAAE,2BAA2B,CAAE,CAAC,QAAQ,EAAE,EAAG,2BAA2B,CAAE,CAAA;YACjH,iBAAiB,CAAE,IAAI,gBAAgB,CAAE,wBAAwB,CAAE,CAAC,QAAQ,EAAE,EAAG,wBAAwB,CAAE,CAAA;YAC3G,iBAAiB,CAAE,IAAI,gBAAgB,CAAE,cAAc,CAAE,CAAC,QAAQ,EAAE,EAAG,cAAc,CAAE,CAAA;YACvF,iBAAiB,CAAE,IAAI,gBAAgB,CAAE,WAAW,CAAE,CAAC,QAAQ,EAAE,EAAG,WAAW,CAAE,CAAA;YACjF,iBAAiB,CAAE,IAAI,gBAAgB,CAAE,QAAQ,CAAE,CAAC,QAAQ,EAAE,EAAG,QAAQ,CAAE,CAAA;YAC3E,iBAAiB,CAAE,IAAI,gBAAgB,CAAE,KAAK,CAAE,CAAC,QAAQ,EAAE,EAAG,KAAK,CAAE,CAAA;QACtE,CAAC;QAED,eAAe;YACd,iBAAiB,CAChB,IAAI,gBAAgB,CAAE,4BAA4B,CAAE,CAAC,QAAQ,CAAE,iBAAiB,CAAE,EAClF,iBAAiB,CACjB,CAAA;QACF,CAAC;QAED,eAAe;YACd,iBAAiB,CAChB,IAAI,gBAAgB,CAAE,yBAAyB,CAAE,CAAC,QAAQ,CAAE,qBAAqB,CAAE,EACnF,qBAAqB,CACrB,CAAA;QACF,CAAC;QAED,kBAAkB;YACjB,iBAAiB,CAChB,IAAI,gBAAgB,CAAE,2BAA2B,CAAE,CAAC,QAAQ,CAAE,GAAG,CAAE,EACnE,QAAQ,CACR,CAAA;QACF,CAAC;QAED,cAAc;YACb,IAAI,gBAAgB,CAAE,yBAAyB,CAAE,CAAC,QAAQ,CAAE,wBAAwB,CAAE,CAAA;QACvF,CAAC;QAED,UAAU;YACT,iBAAiB,CAAE,IAAI,gBAAgB,CAAE,qBAAqB,CAAE,CAAC,KAAK,CAAE,EAAE,CAAE,CAAC,QAAQ,EAAE,EAAG,qBAAqB,CAAE,CAAA;YACjH,iBAAiB,CAAE,IAAI,gBAAgB,CAAE,YAAY,CAAE,CAAC,KAAK,CAAE,KAAK,CAAE,CAAC,QAAQ,EAAE,EAAG,YAAY,CAAE,CAAA;YAClG,iBAAiB,CAAE,IAAI,gBAAgB,CAAE,YAAY,CAAE,CAAC,KAAK,CAAE,MAAM,CAAE,CAAC,QAAQ,EAAE,EAAG,YAAY,CAAE,CAAA;YACnG,iBAAiB,CAAE,IAAI,gBAAgB,CAAE,YAAY,CAAE,CAAC,KAAK,CAAE,OAAO,CAAE,CAAC,QAAQ,EAAE,EAAG,YAAY,CAAE,CAAA;YACpG,iBAAiB,CAAE,IAAI,gBAAgB,CAAE,YAAY,CAAE,CAAC,KAAK,CAAE,SAAS,CAAE,CAAC,QAAQ,EAAE,EAAG,YAAY,CAAE,CAAA;YACtG,iBAAiB,CAAE,IAAI,gBAAgB,CAAE,SAAS,CAAE,CAAC,KAAK,CAAE,SAAS,CAAE,CAAC,QAAQ,EAAE,EAAG,SAAS,CAAE,CAAA;YAChG,iBAAiB,CAAE,IAAI,gBAAgB,CAAE,SAAS,CAAE,CAAC,KAAK,CAAE,UAAU,CAAE,CAAC,QAAQ,EAAE,EAAG,SAAS,CAAE,CAAA;QAClG,CAAC;QAED,qBAAqB;YACpB,iBAAiB,CAChB,IAAI,gBAAgB,CAAE,QAAQ,CAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,KAAK,CAAE,CAAC,EAAE,CAAC,CAAC,CAAE,EACpE,IAAI,gBAAgB,EAAE,CAAC,KAAK,CAAE,WAAW,CAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAE,CAAC,EAAE,CAAC,CAAC,CAAE,CACnF,CAAA;QACF,CAAC;QAED,eAAe;YACd,iBAAiB,CAChB,IAAI,gBAAgB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,EACzE,YAAY,CACZ,CAAA;YACD,iBAAiB,CAChB,IAAI,gBAAgB,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,KAAK,EAC3D,CAAC,CACD,CAAA;QACF,CAAC;QAED,iBAAiB;YAChB,iBAAiB,CAAE,IAAI,gBAAgB,CAAE,SAAS,CAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,CAAE,CAAA;YACnF,iBAAiB,CAAE,IAAI,gBAAgB,CAAE,SAAS,CAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,CAAE,CAAA;QACpF,CAAC;QAED,cAAc;YACb,iBAAiB,CAAE,IAAI,gBAAgB,CAAE,YAAY,CAAE,CAAC,OAAO,EAAG,yBAAyB,CAAC,MAAM,CAAE,CAAA;YACpG,iBAAiB,CAAE,IAAI,gBAAgB,CAAE,YAAY,CAAE,CAAC,OAAO,EAAG,yBAAyB,CAAC,MAAM,CAAE,CAAA;QACrG,CAAC;QAED,eAAe;YACd,iBAAiB,CAAE,IAAI,gBAAgB,CAAE,mBAAmB,CAAE,CAAC,QAAQ,CAAE,GAAG,CAAE,CAAC,QAAQ,EAAE,EAAE,2BAA2B,CAAE,CAAA;QACzH,CAAC;QAED,YAAY;YACX,MAAM,GAAG,GAAG,+BAA+B,CAAA;YAC3C,iBAAiB,CAAE,IAAI,gBAAgB,CAAE,GAAG,CAAE,EAAE,IAAI,gBAAgB,CAAE,GAAG,CAAE,CAAE,CAAA;QAC9E,CAAC;QAED,yBAAyB;YACxB,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAE,+BAA+B,CAAE,CAAA;YACtE,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAE,MAAM,CAAC,OAAO,EAAE,CAAE,CAAA;YACzD,iBAAiB,CAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAE,MAAM,CAAE,EAAE,CAAC,CAAE,CAAA;QACzD,CAAC;KAED,CAAE,CAAA;AACJ,CAAC,EApGS,CAAC,KAAD,CAAC,QAoGV;;;;ACpGD,IAAU,CAAC,CAoCV;AApCD,WAAU,CAAC;IAEV,wBAAwB;IACxB,SAAgB,uBAAuB,CAAE,IAAY;QACpD,MAAM,KAAK,GAAG,IAAI,GAAG,IAAI,CAAA;QACzB,OAAO,IAAI,gBAAgB,CAAE,KAAK,CAAE,CAAA;IACrC,CAAC;IAHe,yBAAuB,0BAGtC,CAAA;IAED,oCAAoC;IACpC,SAAgB,qBAAqB,CAAE,IAAY,EAAE,IAAa;QACjE,IAAI,GAAG,GAAG,uBAAuB,CAAE,IAAI,CAAE,CAAC,QAAQ,CAAE,uBAAuB,CAAE,CAAA;QAC7E,IAAI,IAAI,KAAK,SAAS;YAAG,GAAG,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAE,CAAC,EAAE,GAAG,CAAE,CAAA;QACzF,OAAO,GAAG,CAAA;IACX,CAAC;IAJe,uBAAqB,wBAIpC,CAAA;IAED,gCAAgC;IAChC,SAAgB,oBAAoB;QACnC,OAAO,GAAG,IAAI,IAAI,CAAC,KAAK,CAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAE,CAAA;IAC9C,CAAC;IAFe,sBAAoB,uBAEnC,CAAA;IAED,IAAI,GAAG,GAAG,CAAC,CAAA;IAEX,oDAAoD;IACpD,SAAgB,uBAAuB,CAAE,IAAe;QAEvD,IAAI,GAAG;YAAG,OAAO,IAAI,EAAE,CAAA;QAEvB,GAAG,GAAG,oBAAoB,EAAE,CAAA;QAC5B,IAAI,CAAC;YACJ,OAAO,IAAI,EAAE,CAAA;QACd,CAAC;gBAAS,CAAC;YACV,GAAG,GAAG,CAAC,CAAA;QACR,CAAC;IAEF,CAAC;IAXe,yBAAuB,0BAWtC,CAAA;AAEF,CAAC,EApCS,CAAC,KAAD,CAAC,QAoCV;;;;ACpCD,IAAU,CAAC,CA8LV;AA9LD,WAAU,CAAC;IAIV,MAAa,gBAAiB,SAAQ,MAAM;QAOnC;QACA;QACA;QAPR,MAAM,CAAC,MAAM;YACZ,OAAO,EAAW,CAAA;QACnB,CAAC;QAED,YACQ,OAAO,CAAC,EACR,OAAO,CAAC,EACR,OAAO,CAAC;YAEf,KAAK,EAAE,CAAA;YAJA,SAAI,GAAJ,IAAI,CAAI;YACR,SAAI,GAAJ,IAAI,CAAI;YACR,SAAI,GAAJ,IAAI,CAAI;QAGhB,CAAC;QAED,KAAK;YACJ,OAAO,IAAI,gBAAgB,CAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAE,CAAA;QAC/D,CAAC;QAED,IAAI,MAAM;YACT,OAAO,uBAAuB,CAAE,IAAI,CAAC,IAAI,CAAE,CAAA;QAC5C,CAAC;QAED,IAAI,SAAS;YACZ,OAAO,IAAI,CAAC,IAAI,GAAG,CAAC,IAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAA;QACrC,CAAC;QAED,SAAS,CAAE,IAAY,EAAE,IAAY;YACpC,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,EAAG,CAAC;gBACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;gBAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;gBAChB,OAAO,IAAI,CAAA;YACZ,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,EAAG,CAAC;gBACpD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;gBAChB,OAAO,IAAI,CAAA;YACZ,CAAC;iBAAM,CAAC;gBACP,OAAO,KAAK,CAAA;YACb,CAAC;QACF,CAAC;QAED,SAAS,CAAE,IAAY;YACtB,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI;gBAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QACxC,CAAC;QAED,MAAM;YACL,MAAM,IAAI,GAAG,qBAAqB,CAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAE,CAAA;YAC1D,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAA;YAC5B,OAAO,GAAG,IAAI,IAAI,IAAI,EAAE,CAAA;QACzB,CAAC;QAED,CAAC;QAAA,CAAE,MAAM,CAAC,GAAG,CAAE,4BAA4B,CAAE,CAAE;YAC9C,OAAO,eAAe,CAAC,IAAI,CAAE,mBAAmB,CAAE;kBAC/C,eAAe,CAAC,IAAI,CACrB,qBAAqB,CAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAE;sBAC3C,IAAI,GAAG,IAAI,CAAC,IAAI,CAClB,CAAA;QACH,CAAC;QAED,CAAE,oBAAoB,CAAE;YAEvB,OAAO,oBAAoB,CAAE,EAAE,EAC9B,sBAAsB,CAAE,IAAI,CAAE,EAC9B,qBAAqB,CACpB,GAAG,EAAE,qBAAqB,CAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAE,EAClD,IAAI,EAAE,IAAI,CAAC,IAAI,CACf,CACD,CAAA;QAEF,CAAC;KAED;IArEY,kBAAgB,mBAqE5B,CAAA;IAED,kGAAkG;IAClG,MAAa,oBAAqB,SAAQ,GAA+B;QAExE,qCAAqC;QACrC,IAAI,GAAG,IAAI,gBAAgB,CAAA;QAE3B,UAAU,GAAG,EAAE,CAAA;QAEf,YACC,OAA+B;YAE/B,KAAK,EAAE,CAAA;YACP,IAAI,OAAO;gBAAG,IAAI,CAAC,IAAI,CAAE,OAAO,CAAE,CAAA;QACnC,CAAC;QAGD,KAAK;YACJ,OAAO,IAAI,oBAAoB,CAAE,IAAI,CAAE,CAAA;QACxC,CAAC;QAED,2CAA2C;QAC3C,IAAI,CAAE,KAA4B;YACjC,6EAA6E;YAC7E,KAAK,MAAM,CAAE,IAAI,EAAE,IAAI,CAAE,IAAI,KAAK,EAAG,CAAC;gBACrC,IAAI,CAAC,SAAS,CAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAE,CAAA;gBAC5C,IAAI,CAAC,SAAS,CAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAE,CAAA;YAClC,CAAC;QACF,CAAC;QAED,iCAAiC;QACjC,SAAS,CACR,IAAY,EACZ,IAAY,EACZ,IAAY;YAGZ,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAE,IAAI,EAAE,IAAI,CAAE,EAAG,CAAC;gBACxC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;YACvB,CAAC;YAED,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;YAC3B,IAAI,IAAI;gBAAG,IAAI,CAAC,SAAS,CAAE,IAAI,EAAE,IAAI,CAAE,CAAA;;gBAClC,IAAI,CAAC,GAAG,CAAE,IAAI,EAAE,IAAI,gBAAgB,CAAE,IAAI,EAAE,IAAI,CAAE,CAAE,CAAA;QAE1D,CAAC;QAED,4BAA4B;QAC5B,SAAS,CACR,IAAY,EACZ,IAAY;YAEZ,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;YAC7B,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAE,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAE,GAAG,IAAI,GAAG,CAAE,IAAI,EAAE,IAAI,IAAI,CAAC,CAAE,CAAA;YACrE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;gBAAG,SAAS,CAAE,IAAI,KAAK,CAAE,eAAe,CAAE,CAAE,CAAA;YAElE,IAAI,IAAI;gBAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;;gBACtB,IAAI,CAAC,GAAG,CAAE,IAAI,EAAE,IAAI,gBAAgB,CAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAE,CAAE,CAAA;QAE1D,CAAC;QAED,eAAe,CACd,IAAY,EACZ,IAAY;YAEZ,IAAI,CAAC,SAAS,CAAE,IAAI,EAAE,CAAE,IAAI,CAAC,GAAG,CAAE,IAAI,CAAE,EAAE,IAAI,IAAI,CAAC,CAAE,GAAG,IAAI,CAAE,CAAA;QAC/D,CAAC;QAED,gEAAgE;QAEhE,IAAI,CAAE,IAAsB;YAE3B,MAAM,GAAG,GAAG,oBAAoB,EAAE,CAAA;YAElC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,EAAG,CAAC;gBAE3B,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA;gBACpB,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAA;YAEnB,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,GAAG,EAAG,CAAC;gBAE1C,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAA;gBACnB,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAA;gBAClB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAA;YAE3B,CAAC;iBAAM,CAAC;gBAEP,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAE,GAAG,CAAC,IAAE,EAAE,CAAA;gBAC/C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;oBAAG,EAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA;YAExC,CAAC;YAED,OAAO,IAAI,CAAC,IAAI,CAAA;QACjB,CAAC;QAED,MAAM;YACL,OAAO,MAAM,CAAC,WAAW,CAAE,IAAI,CAAC,OAAO,EAAE,CAAE,CAAA;QAC5C,CAAC;QAED,CAAC;QAAA,CAAE,MAAM,CAAC,GAAG,CAAE,4BAA4B,CAAE,CAAE;YAC9C,OAAO,eAAe,CAAC,IAAI,CAAE,uBAAuB,CAAE;kBACnD,eAAe,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAE,CAAA;QAC9C,CAAC;QAED,CAAE,oBAAoB,CAAE;YAEvB,OAAO,oBAAoB,CAAE,EAAE,EAC9B,sBAAsB,CAAE,IAAI,CAAE,EAC9B,GAAG,EACH,oBAAoB,CAAE,IAAI,CAAC,IAAI,CAAE,CACjC,CAAA;QAEF,CAAC;KAED;IA5CA;QADE,WAAW;oDAwBZ;IA3FW,sBAAoB,uBAgHhC,CAAA;AAEF,CAAC,EA9LS,CAAC,KAAD,CAAC,QA8LV;;;;AC9LD,IAAU,CAAC,CAuJV;AAvJD,WAAU,GAAC;IACV,SAAS,CAAC;QAET,iBAAiB,CAAE,CAAC;YAEnB,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBACZ,MAAM,CAAC,IAAI,GAAG,IAAI,cAAc,EAAoB,CAAA;gBAG7C,AAAP,MAAM,CAAC,KAAK;oBACX,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;gBAC5B,CAAC;;YAFM;gBADL,cAAc;kCAGf;YAIF,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,SAAS,CAAE,CAAA;YAE3C,GAAG,CAAC,IAAI,CAAC,GAAG,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;YACzB,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,SAAS,CAAE,CAAA;YAE3C,GAAG,CAAC,IAAI,CAAC,GAAG,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;YACzB,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,CAAE,CAAA;YAEtC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAE,GAAG,CAAE,CAAA;YACtB,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,SAAS,CAAE,CAAA;QAE5C,CAAC;QAED,oBAAoB,CAAE,CAAC;YAEtB,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBACZ,MAAM,CAAC,IAAI,GAAG,IAAI,cAAc,EAAoB,CAAA;gBAG7C,AAAP,MAAM,CAAC,KAAK;oBACX,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;gBAC7B,CAAC;;YAFM;gBADL,cAAc;kCAGf;YAIF,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,CAAE,CAAA;YAEtC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;YAC1B,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,CAAE,CAAA;YAEtC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;YAC1B,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,CAAE,CAAA;YAEtC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;YAC1B,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,CAAE,CAAA;QAEvC,CAAC;QAED,YAAY,CAAE,CAAC;YAEd,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBACZ,MAAM,CAAC,IAAI,GAAG,IAAI,cAAc,EAAoB,CAAA;gBAG7C,AAAP,MAAM,CAAC,IAAI;oBACV,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA;gBACtB,CAAC;;YAFM;gBADL,cAAc;iCAGf;YAIF,iBAAiB,CAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAE,CAAA;YAElC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;YACzB,iBAAiB,CAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAE,CAAA;YAElC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;YACzB,iBAAiB,CAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAE,CAAA;YAElC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAE,GAAG,CAAE,CAAA;YACtB,iBAAiB,CAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAE,CAAA;QAEnC,CAAC;QAED,cAAc,CAAE,CAAC;YAEhB,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBACZ,MAAM,CAAC,IAAI,GAAG,IAAI,cAAc,EAAoB,CAAA;gBAG7C,AAAP,MAAM,CAAC,GAAG;oBACT,IAAI,IAAI,GAAG,CAAC,CAAA;oBACZ,IAAI,IAAI,GAAG,CAAC,CAAA;oBACZ,KAAK,MAAM,CAAE,GAAG,EAAE,GAAG,CAAE,IAAI,IAAI,CAAC,IAAI,EAAG,CAAC;wBACvC,IAAI,IAAI,GAAG,CAAA;wBACX,IAAI,IAAI,GAAG,CAAA;oBACZ,CAAC;oBACD,OAAO,CAAE,IAAI,EAAE,IAAI,CAAE,CAAA;gBACtB,CAAC;;YARM;gBADL,cAAc;gCASf;YAIF,gBAAgB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAE,CAAC,EAAE,CAAC,CAAE,CAAE,CAAA;YAEvC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;YACzB,gBAAgB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAE,GAAG,EAAE,IAAI,CAAE,CAAE,CAAA;YAE5C,GAAG,CAAC,IAAI,CAAC,GAAG,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;YACzB,gBAAgB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAE,GAAG,EAAE,IAAI,CAAE,CAAE,CAAA;YAE5C,GAAG,CAAC,IAAI,CAAC,MAAM,CAAE,GAAG,CAAE,CAAA;YACtB,gBAAgB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAE,GAAG,EAAE,IAAI,CAAE,CAAE,CAAA;QAE7C,CAAC;QAED,eAAe,CAAE,CAAC;YAEjB,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBACZ,MAAM,CAAC,IAAI,GAAG,IAAI,cAAc,EAAoB,CAAA;gBAG7C,AAAP,MAAM,CAAC,GAAG;oBACT,IAAI,IAAI,GAAG,CAAC,CAAA;oBACZ,IAAI,IAAI,GAAG,CAAC,CAAA;oBACZ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAE,CAAE,GAAG,EAAE,GAAG,EAAE,EAAE;wBAChC,IAAI,IAAI,GAAG,CAAA;wBACX,IAAI,IAAI,GAAG,CAAA;oBACZ,CAAC,CAAE,CAAA;oBACH,OAAO,CAAE,IAAI,EAAE,IAAI,CAAE,CAAA;gBACtB,CAAC;;YARM;gBADL,cAAc;gCASf;YAIF,gBAAgB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAE,CAAC,EAAE,CAAC,CAAE,CAAE,CAAA;YAEvC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;YACzB,gBAAgB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAE,GAAG,EAAE,IAAI,CAAE,CAAE,CAAA;YAE5C,GAAG,CAAC,IAAI,CAAC,GAAG,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;YACzB,gBAAgB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAE,GAAG,EAAE,IAAI,CAAE,CAAE,CAAA;YAE5C,GAAG,CAAC,IAAI,CAAC,MAAM,CAAE,GAAG,CAAE,CAAA;YACtB,gBAAgB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAE,GAAG,EAAE,IAAI,CAAE,CAAE,CAAA;QAE7C,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EAvJS,CAAC,KAAD,CAAC,QAuJV;;;;ACvJD,IAAU,CAAC,CAwBV;AAxBD,WAAU,CAAC;IAEV,IAAY,qBAoBX;IApBD,WAAY,qBAAqB;QAEhC,qBAAqB;QACrB,iEAAQ,CAAA;QAER,2CAA2C;QAC3C,kEAAS,CAAA;QAET,oBAAoB;QACpB,mEAAU,CAAA;QAEV,2BAA2B;QAC3B,mEAAU,CAAA;QAEV,0BAA0B;QAC1B,mEAAU,CAAA;QAEV,kBAAkB;QAClB,mEAAU,CAAA;IAEX,CAAC,EApBW,qBAAqB,GAArB,uBAAqB,KAArB,uBAAqB,QAoBhC;AAEF,CAAC,EAxBS,CAAC,KAAD,CAAC,QAwBV;;;;ACxBD,IAAU,CAAC,CAqPV;AArPD,WAAU,CAAC;IAEV;;;;;;;QAOI;IACJ,MAAa,UAAU;QAEtB,2BAA2B;QAC3B,KAAK,GAAG,IAAI,GAAG,EAAU,CAAA;QAEzB,2CAA2C;QAC3C,SAAS,GAAG,IAAI,GAAG,EAA+B,CAAA;QAClD,2CAA2C;QAC3C,QAAQ,GAAG,IAAI,GAAG,EAA+B,CAAA;QAEjD,gBAAgB;QAEhB,6BAA6B;QAC7B,IAAI,CAAE,IAAW,EAAG,EAAS,EAAG,IAAW;YAC1C,IAAI,CAAC,QAAQ,CAAE,IAAI,EAAG,EAAE,EAAG,IAAI,CAAE,CAAA;YACjC,IAAI,CAAC,OAAO,CAAE,EAAE,EAAG,IAAI,EAAG,IAAI,CAAE,CAAA;QACjC,CAAC;QAED,gCAAgC;QAChC,MAAM,CAAE,IAAW,EAAG,EAAS;YAC9B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAE,EAAE,CAAE,EAAE,MAAM,CAAE,IAAI,CAAE,CAAA;YACvC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAE,IAAI,CAAE,EAAE,MAAM,CAAE,EAAE,CAAE,CAAA;QACzC,CAAC;QAED,gCAAgC;QAChC,QAAQ,CAAE,IAAW,EAAG,EAAS,EAAG,IAAW;YAE9C,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;YAErC,IAAI,CAAC,IAAI,EAAG,CAAC;gBACZ,IAAI,GAAG,IAAI,GAAG,EAAiB,CAAA;gBAC/B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAE,IAAI,EAAG,IAAI,CAAE,CAAA;gBACjC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;YACvB,CAAC;YAED,IAAI,CAAC,GAAG,CAAE,EAAE,EAAG,IAAI,CAAE,CAAA;YACrB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAE,EAAE,CAAE,CAAA;QAErB,CAAC;QAED,iCAAiC;QACjC,OAAO,CAAE,EAAS,EAAG,IAAW,EAAG,IAAW;YAE7C,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAE,EAAE,CAAE,CAAA;YAElC,IAAI,CAAC,IAAI,EAAG,CAAC;gBACZ,IAAI,GAAG,IAAI,GAAG,EAAiB,CAAA;gBAC/B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAE,EAAE,EAAG,IAAI,CAAE,CAAA;gBAC9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAE,EAAE,CAAE,CAAA;YACrB,CAAC;YAED,IAAI,CAAC,GAAG,CAAE,IAAI,EAAG,IAAI,CAAE,CAAA;YACvB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAE,EAAE,CAAE,CAAA;QAErB,CAAC;QAED,gBAAgB;QAEhB,4CAA4C;QAC5C,IAAI,CAAE,IAAW,EAAG,EAAS;YAC5B,OAAO,IAAI,CAAC,QAAQ,CAAE,IAAI,EAAE,EAAE,CAAE,IAAI,IAAI,CAAC,OAAO,CAAE,EAAE,EAAE,IAAI,CAAE,CAAA;QAC7D,CAAC;QAED,+CAA+C;QAC/C,QAAQ,CAAE,IAAW,EAAG,EAAS;YAChC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAE,IAAI,CAAE,EAAE,GAAG,CAAE,EAAE,CAAE,IAAI,IAAI,CAAA;QACrD,CAAC;QAED,8CAA8C;QAC9C,OAAO,CAAE,EAAS,EAAG,IAAW;YAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAE,EAAE,CAAE,EAAE,GAAG,CAAE,IAAI,CAAE,IAAI,IAAI,CAAA;QACpD,CAAC;QAED,YAAY;QAEZ,6CAA6C;QAC7C,OAAO,CAAE,UAAqC;YAE7C,MAAM,OAAO,GAAG,EAAY,CAAA;YAE5B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,EAAG,CAAC;gBAEjC,MAAM,IAAI,GAAG,EAAY,CAAA;gBAEzB,MAAM,KAAK,GAAG,CAAE,IAAW,EAAY,EAAE;oBAExC,IAAI,OAAO,CAAC,QAAQ,CAAE,IAAI,CAAE;wBAAG,OAAO,MAAM,CAAC,gBAAgB,CAAA;oBAE7D,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAE,IAAI,CAAE,CAAA;oBACtC,IAAI,KAAK,GAAG,CAAC,CAAC,EAAG,CAAC;wBAEjB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAE,KAAK,CAAE,CAAA;wBAEjC,OAAO,KAAK,CAAC,MAAM,CAClB,CAAE,MAAM,EAAG,IAAI,EAAG,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CACnC,MAAM,EACN,UAAU,CAAE,IAAI,CAAC,QAAQ,CAAE,IAAI,EAAG,KAAK,CAAE,CAAE,KAAK,GAAG,CAAC,CAAE,GAAG,KAAK,CAAC,MAAM,CAAE,CAAG,CAAE,CAC5E,EACD,MAAM,CAAC,gBAAgB,CACvB,CAAA;oBAEF,CAAC;oBAED,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;oBAEjB,IAAI,EAAE,IAAI,CAAC;wBAEV,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;wBACvC,IAAI,CAAC,IAAI;4BAAG,MAAM,IAAI,CAAA;wBAEtB,KAAK,MAAM,CAAE,EAAE,EAAG,IAAI,CAAE,IAAI,IAAI,EAAG,CAAC;4BAEnC,IAAI,EAAE,KAAK,IAAI,EAAG,CAAC;gCAClB,IAAI,CAAC,MAAM,CAAE,IAAI,EAAG,EAAE,CAAE,CAAA;gCACxB,SAAQ;4BACT,CAAC;4BAED,MAAM,UAAU,GAAG,UAAU,CAAE,IAAI,CAAE,CAAA;4BACrC,MAAM,GAAG,GAAG,KAAK,CAAE,EAAE,CAAE,CAAA;4BAEvB,IAAI,UAAU,GAAG,GAAG;gCAAG,OAAO,GAAG,CAAA;4BACjC,IAAI,UAAU,KAAK,GAAG,EAAG,CAAC;gCAEzB,IAAI,CAAC,MAAM,CAAE,IAAI,EAAG,EAAE,CAAE,CAAA;gCAExB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAG,CAAC;oCACtB,MAAM,KAAK,GAAG,IAAI,CAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAE,CAAA;oCACrC,IAAI,CAAC,IAAI,CAAE,KAAK,EAAG,EAAE,EAAG,IAAI,CAAE,CAAA;gCAC/B,CAAC;4BAEF,CAAC;wBAEF,CAAC;oBAEF,CAAC;4BAAS,CAAC;wBACV,IAAI,CAAC,GAAG,EAAE,CAAA;oBACX,CAAC;oBAED,OAAO,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;oBAEpB,OAAO,MAAM,CAAC,gBAAgB,CAAA;gBAC/B,CAAC,CAAA;gBAED,KAAK,CAAE,KAAK,CAAE,CAAA;YAEf,CAAC;QAEF,CAAC;QAED,kBAAkB;QAElB,6DAA6D;QAC7D,IAAI,MAAM;YAET,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAA;YAEhC,MAAM,KAAK,GAAG,CAAE,IAAW,EAAG,EAAE;gBAE/B,IAAI,MAAM,CAAC,GAAG,CAAE,IAAI,CAAE;oBAAG,OAAM;gBAE/B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;gBAEvC,IAAI,IAAI,EAAG,CAAC;oBACX,KAAK,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI;wBAAG,KAAK,CAAE,GAAG,CAAE,CAAA;gBACxC,CAAC;gBAED,MAAM,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;YACnB,CAAC,CAAA;YAED,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAG,CAAC;gBAChC,KAAK,CAAE,IAAI,CAAE,CAAA;YACd,CAAC;YAED,OAAO,MAAM,CAAA;QACd,CAAC;QAED,6CAA6C;QAC7C,IAAI,KAAK;YAER,MAAM,KAAK,GAAG,EAAY,CAAA;YAC1B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAG,CAAC;gBAEhC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAE,IAAI,CAAE,EAAE,IAAI;oBAAG,SAAQ;gBAC9C,KAAK,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;YAEnB,CAAC;YAED,OAAO,KAAK,CAAA;QACb,CAAC;QAED,cAAc;QAEd;;;;;YAKI;QACJ,WAAW,CAAE,MAAgD;YAE5D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAA;YACtC,MAAM,KAAK,GAAG,CAAE,IAAU,EAAE,KAAK,GAAG,CAAC,EAAE,EAAE;gBAExC,IAAI,IAAI,CAAC,GAAG,CAAE,IAAI,CAAE;oBAAG,IAAI,CAAC,GAAG,CAAE,IAAI,EAAE,MAAM,CAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAE,IAAI,CAAG,CAAE,CAAE,CAAA;;oBACtE,IAAI,CAAC,GAAG,CAAE,IAAI,EAAE,KAAK,CAAE,CAAA;gBAE5B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAE,IAAI,CAAE,EAAE,IAAI,EAAE,IAAI,EAAE;oBAAG,KAAK,CAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAE,CAAA;YAErF,CAAC,CAAA;YACD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK;gBAAG,KAAK,CAAE,IAAI,CAAE,CAAA;YAE7C,OAAO,IAAI,CAAA;QACZ,CAAC;QAED;;;;;YAKI;QACJ,WAAW,CAAE,MAAgD;YAE5D,MAAM,MAAM,GAAG,EAAc,CAAA;YAC7B,KAAK,MAAM,CAAE,IAAI,EAAE,KAAK,CAAE,IAAI,IAAI,CAAC,WAAW,CAAE,MAAM,CAAE,CAAC,OAAO,EAAE,EAAG,CAAC;gBAErE,IAAI,MAAM,CAAE,KAAK,CAAE;oBAAG,MAAM,CAAE,KAAK,CAAE,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;;oBAC7C,MAAM,CAAE,KAAK,CAAE,GAAG,CAAE,IAAI,CAAE,CAAA;YAEhC,CAAC;YAED,OAAO,MAAM,CAAA;QACd,CAAC;KAED;IAzOY,YAAU,aAyOtB,CAAA;AAEF,CAAC,EArPS,CAAC,KAAD,CAAC,QAqPV;;;;ACrPD,IAAU,CAAC,CAgHV;AAhHD,WAAU,CAAC;IACV,SAAS,CAAE;QAEV,eAAe;YAEd,IAAI,KAAK,GAAG,IAAI,UAAU,EAAkB,CAAA;YAE5C,KAAK,CAAC,IAAI,CAAE,GAAG,EAAG,GAAG,EAAG,GAAG,CAAE,CAAA;YAE7B,iBAAiB,CAAE,KAAK,CAAC,QAAQ,CAAE,GAAG,EAAG,GAAG,CAAE,EAAG,GAAG,CAAE,CAAA;YACtD,iBAAiB,CAAE,KAAK,CAAC,OAAO,CAAE,GAAG,EAAG,GAAG,CAAE,EAAG,GAAG,CAAE,CAAA;YAErD,iBAAiB,CAAE,KAAK,CAAC,QAAQ,CAAE,GAAG,EAAG,GAAG,CAAE,EAAG,IAAI,CAAE,CAAA;YACvD,iBAAiB,CAAE,KAAK,CAAC,OAAO,CAAE,GAAG,EAAG,GAAG,CAAE,EAAG,IAAI,CAAE,CAAA;QAEvD,CAAC;QAED,qBAAqB;YAEpB,IAAI,KAAK,GAAG,IAAI,UAAU,EAAiB,CAAA;YAE3C,KAAK,CAAC,KAAK,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;YACtB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;YACtB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;YACtB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;YACtB,KAAK,CAAC,OAAO,CAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAE,CAAA;YAE1B,iBAAiB,CAAE,CAAE,GAAI,KAAK,CAAC,MAAM,CAAE,CAAC,IAAI,CAAE,EAAE,CAAE,EAAG,MAAM,CAAE,CAAA;QAC9D,CAAC;QAED,kBAAkB;YAEjB,IAAI,KAAK,GAAG,IAAI,UAAU,EAAoC,CAAA;YAE9D,KAAK,CAAC,KAAK,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;YACtB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;YACtB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;YACtB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;YAEtB,KAAK,CAAC,IAAI,CAAE,GAAG,EAAG,GAAG,EAAG,EAAE,QAAQ,EAAG,CAAC,EAAE,CAAE,CAAA;YAC1C,KAAK,CAAC,OAAO,CAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAE,CAAA;YAEtC,iBAAiB,CAAE,CAAE,GAAI,KAAK,CAAC,MAAM,CAAE,CAAC,IAAI,CAAE,EAAE,CAAE,EAAG,MAAM,CAAE,CAAA;QAC9D,CAAC;QAED,iDAAiD;YAEhD,IAAI,KAAK,GAAG,IAAI,UAAU,EAAoC,CAAA;YAE9D,KAAK,CAAC,IAAI,CAAE,GAAG,EAAG,GAAG,EAAG,EAAE,QAAQ,EAAG,CAAC,EAAE,CAAE,CAAA;YAC1C,KAAK,CAAC,IAAI,CAAE,GAAG,EAAG,GAAG,EAAG,EAAE,QAAQ,EAAG,CAAC,CAAC,EAAE,CAAE,CAAA;YAC3C,KAAK,CAAC,IAAI,CAAE,GAAG,EAAG,GAAG,EAAG,EAAE,QAAQ,EAAG,CAAC,EAAE,CAAE,CAAA;YAC1C,KAAK,CAAC,IAAI,CAAE,GAAG,EAAG,GAAG,EAAG,EAAE,QAAQ,EAAG,CAAC,CAAC,EAAE,CAAE,CAAA;YAC3C,KAAK,CAAC,OAAO,CAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAE,CAAA;YAEtC,iBAAiB,CAAE,CAAE,GAAI,KAAK,CAAC,MAAM,CAAE,CAAC,IAAI,CAAE,EAAE,CAAE,EAAG,MAAM,CAAE,CAAA;QAC9D,CAAC;QAED,iDAAiD;YAEhD,IAAI,KAAK,GAAG,IAAI,UAAU,EAAoC,CAAA;YAE9D,KAAK,CAAC,IAAI,CAAE,GAAG,EAAG,GAAG,EAAG,EAAE,QAAQ,EAAG,CAAC,CAAC,EAAE,CAAE,CAAA;YAC3C,KAAK,CAAC,IAAI,CAAE,GAAG,EAAG,GAAG,EAAG,EAAE,QAAQ,EAAG,CAAC,EAAE,CAAE,CAAA;YAC1C,KAAK,CAAC,IAAI,CAAE,GAAG,EAAG,GAAG,EAAG,EAAE,QAAQ,EAAG,CAAC,CAAC,EAAE,CAAE,CAAA;YAC3C,KAAK,CAAC,IAAI,CAAE,GAAG,EAAG,GAAG,EAAG,EAAE,QAAQ,EAAG,CAAC,EAAE,CAAE,CAAA;YAC1C,KAAK,CAAC,OAAO,CAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAE,CAAA;YAEtC,iBAAiB,CAAE,CAAE,GAAI,KAAK,CAAC,MAAM,CAAE,CAAC,IAAI,CAAE,EAAE,CAAE,EAAG,MAAM,CAAE,CAAA;QAC9D,CAAC;QAED,iDAAiD;YAEhD,IAAI,KAAK,GAAG,IAAI,UAAU,EAAoC,CAAA;YAE9D,KAAK,CAAC,IAAI,CAAE,GAAG,EAAG,GAAG,EAAG,EAAE,QAAQ,EAAG,CAAC,EAAE,CAAE,CAAA;YAC1C,KAAK,CAAC,IAAI,CAAE,GAAG,EAAG,GAAG,EAAG,EAAE,QAAQ,EAAG,CAAC,CAAC,EAAE,CAAE,CAAA;YAC3C,KAAK,CAAC,IAAI,CAAE,GAAG,EAAG,GAAG,EAAG,EAAE,QAAQ,EAAG,CAAC,EAAE,CAAE,CAAA;YAC1C,KAAK,CAAC,IAAI,CAAE,GAAG,EAAG,GAAG,EAAG,EAAE,QAAQ,EAAG,CAAC,CAAC,EAAE,CAAE,CAAA;YAC3C,KAAK,CAAC,OAAO,CAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAE,CAAA;YAEtC,iBAAiB,CAAE,CAAE,GAAI,KAAK,CAAC,MAAM,CAAE,CAAC,IAAI,CAAE,EAAE,CAAE,EAAG,MAAM,CAAE,CAAA;QAC9D,CAAC;QAED,iDAAiD;YAEhD,IAAI,KAAK,GAAG,IAAI,UAAU,EAAoC,CAAA;YAE9D,KAAK,CAAC,IAAI,CAAE,GAAG,EAAG,GAAG,EAAG,EAAE,QAAQ,EAAG,CAAC,CAAC,EAAE,CAAE,CAAA;YAC3C,KAAK,CAAC,IAAI,CAAE,GAAG,EAAG,GAAG,EAAG,EAAE,QAAQ,EAAG,CAAC,EAAE,CAAE,CAAA;YAC1C,KAAK,CAAC,IAAI,CAAE,GAAG,EAAG,GAAG,EAAG,EAAE,QAAQ,EAAG,CAAC,CAAC,EAAE,CAAE,CAAA;YAC3C,KAAK,CAAC,IAAI,CAAE,GAAG,EAAG,GAAG,EAAG,EAAE,QAAQ,EAAG,CAAC,EAAE,CAAE,CAAA;YAC1C,KAAK,CAAC,OAAO,CAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAE,CAAA;YAEtC,iBAAiB,CAAE,CAAE,GAAI,KAAK,CAAC,MAAM,CAAE,CAAC,IAAI,CAAE,EAAE,CAAE,EAAG,MAAM,CAAE,CAAA;QAC9D,CAAC;QAED,kCAAkC;YAEjC,IAAI,KAAK,GAAG,IAAI,UAAU,EAAqB,CAAA;YAE/C,KAAK,CAAC,IAAI,CAAE,GAAG,EAAG,GAAG,EAAG,CAAC,CAAE,CAAA;YAC3B,KAAK,CAAC,IAAI,CAAE,GAAG,EAAG,GAAG,EAAG,CAAC,CAAE,CAAA;YAC3B,KAAK,CAAC,IAAI,CAAE,GAAG,EAAG,GAAG,EAAG,CAAC,CAAC,CAAE,CAAA;YAC5B,KAAK,CAAC,IAAI,CAAE,GAAG,EAAG,GAAG,EAAG,CAAC,CAAE,CAAA;YAC3B,KAAK,CAAC,IAAI,CAAE,GAAG,EAAG,GAAG,EAAG,CAAC,CAAE,CAAA;YAC3B,KAAK,CAAC,OAAO,CAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAE,CAAA;YAE7B,iBAAiB,CAAE,CAAE,GAAI,KAAK,CAAC,MAAM,CAAE,CAAC,IAAI,CAAE,EAAE,CAAE,EAAG,OAAO,CAAE,CAAA;QAC/D,CAAC;KAED,CAAE,CAAA;AACJ,CAAC,EAhHS,CAAC,KAAD,CAAC,QAgHV;;;;;;;AChHD,IAAU,CAAC,CAIV;AAJD,WAAU,CAAC;IAEV,MAAa,eAAgB,SAAQ,cAAc;KAAG;IAAzC,iBAAe,kBAA0B,CAAA;AAEvD,CAAC,EAJS,CAAC,KAAD,CAAC,QAIV;;;;ACJD,IAAU,CAAC,CAcV;AAdD,WAAU,CAAC;IAEV;;;OAGG;IACQ,kBAAgB,GAAG,CAAE,GAAY,EAAE,EAAE;QAE/C,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAG,OAAO,GAAG,CAAA;QAExC,OAAO,SAAS,CAAE,IAAI,eAAe,CAAE,GAAI,GAAI,kBAAkB,CAAE,CAAE,CAAA;IAEtE,CAAC,CAAA;AAEF,CAAC,EAdS,CAAC,KAAD,CAAC,QAcV;;;;ACdD,IAAU,CAAC,CAoBV;AApBD,WAAU,CAAC;IACV,SAAS,CAAC;QAET,WAAW;YACV,gBAAgB,CAAE,CAAC,CAAE,CAAA;QACtB,CAAC;QAED,eAAe;YACd,gBAAgB,CAAE,GAAE,EAAE;gBACrB,gBAAgB,CAAE,GAAU,CAAE,CAAA;YAC/B,CAAC,EAAG,mBAAmB,CAAE,CAAA;QAC1B,CAAC;QAED,kBAAkB;YACjB,gBAAgB,CAAE,GAAE,EAAE;gBACrB,gBAAgB,CAAE,IAAI,MAAM,CAAE,EAAE,CAAS,CAAE,CAAA;YAC5C,CAAC,EAAG,mBAAmB,CAAE,CAAA;QAC1B,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EApBS,CAAC,KAAD,CAAC,QAoBV;;;;ACpBD,IAAU,CAAC,CAcV;AAdD,WAAU,CAAC;IAEV;;;OAGG;IACH,SAAgB,iBAAiB,CAAE,GAAY;QAE9C,MAAM,IAAI,GAAG,gBAAgB,CAAE,GAAG,CAAE,CAAA;QACpC,IAAI,IAAI,CAAC,KAAK,CAAE,IAAI,CAAE,KAAK,IAAI;YAAG,OAAO,IAAI,CAAA;QAE7C,OAAO,SAAS,CAAE,IAAI,eAAe,CAAE,GAAI,GAAI,oBAAoB,CAAE,CAAE,CAAA;IACxE,CAAC;IANe,mBAAiB,oBAMhC,CAAA;AAEF,CAAC,EAdS,CAAC,KAAD,CAAC,QAcV;;;;ACdD,IAAU,CAAC,CAcV;AAdD,WAAU,CAAC;IACV,SAAS,CAAC;QAET,YAAY;YACX,iBAAiB,CAAE,CAAC,CAAE,CAAA;QACvB,CAAC;QAED,UAAU;YACT,gBAAgB,CAAE,GAAE,EAAE;gBACrB,iBAAiB,CAAE,GAAG,CAAE,CAAA;YACzB,CAAC,EAAG,uBAAuB,CAAE,CAAA;QAC9B,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EAdS,CAAC,KAAD,CAAC,QAcV;;;;ACdD,IAAU,CAAC,CA2BV;AA3BD,WAAU,CAAC;IAUV;;;OAGG;IACH,SAAgB,gBAAgB,CAG/B,MAAc;QAEd,OAAO,MAKN,CAAA;IACF,CAAC;IAXe,kBAAgB,mBAW/B,CAAA;AAEF,CAAC,EA3BS,CAAC,KAAD,CAAC,QA2BV;;;;AC3BD,IAAU,CAAC,CAwBV;AAxBD,WAAU,CAAC;IACV,SAAS,CAAC;QAET,eAAe;YAEd,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAAC;gBAC3C,MAAM,EAAE,iBAAiB;gBACzB,MAAM,EAAE,iBAAiB;aACzB,CAAC,CAAA;YAEF,MAAM,CAAE,EAAE,CAAE,CAAA,CAAC,WAAW;YACxB,IAAI,GAAG,GAAG,MAAM,CAAE,EAAE,CAAE,CAAA,CAAC,gBAAgB;YAEvC,GAAG,GAAG,EAAyB,CAAA,CAAC,gBAAgB;YAChD,IAAI,GAAG,GAAW,GAAG,CAAA,CAAC,gBAAgB;YACtC,GAAG,GAAG,MAAM,CAAE,MAAM,CAAE,EAAE,CAAE,CAAE,CAAA,CAAC,gBAAgB;YAE7C,iCAAiC;YACjC,2CAA2C;YAC3C,yCAAyC;QAE1C,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EAxBS,CAAC,KAAD,CAAC,QAwBV;;;;;;;;;;;;;ACxBD,IAAU,CAAC,CAiBV;AAjBD,WAAU,CAAC;IAEV,SAAgB,eAAe,CAI9B,KAAa,EACb,MAAe;QAGf,OAAO,MAAM,CAAC,MAAM,CAAE,KAAK,EAAG;YAC7B,MAAM;YACN,KAAK,EAAG,IAAkC;SAC1C,CAAE,CAAA;IAEJ,CAAC;IAbe,iBAAe,kBAa9B,CAAA;AAEF,CAAC,EAjBS,CAAC,KAAD,CAAC,QAiBV;;;;ACjBD,IAAU,CAAC,CAmBV;AAnBD,WAAU,CAAC;IAEV,SAAS,CAAC;QAET,iBAAiB;YAEhB,MAAM,CAAC,GAAG,eAAe,CAAE,CAAE,CAAU,EAAE,EAAE,CAAC,CAAC,EAAG,CAAC,CAAE,CAAA;YAEnD,iBAAiB,CAAE,CAAC,CAAC,MAAM,EAAG,CAAC,CAAE,CAAA;QAOlC,CAAC;KAED,CAAC,CAAA;AAEH,CAAC,EAnBS,CAAC,KAAD,CAAC,QAmBV;;;;ACnBD,IAAU,CAAC,CAUV;AAVD,WAAU,CAAC;IAEV,SAAgB,kBAAkB,CAGjC,IAAU;QAEV,OAAO,MAAM,CAAC,wBAAwB,CAAE,IAAI,EAAE,WAAW,CAAE,EAAE,QAAQ,KAAK,KAAK,CAAA;IAChF,CAAC;IANe,oBAAkB,qBAMjC,CAAA;AAEF,CAAC,EAVS,CAAC,KAAD,CAAC,QAUV;;;;ACVD,IAAU,CAAC,CA4BV;AA5BD,WAAU,CAAC;IACV,SAAS,CAAC;QAET,UAAU;YACT,eAAe,CAAE,kBAAkB,CAAE,cAAY,CAAC,CAAE,CAAE,CAAA;QACvD,CAAC;QAED,WAAW;YACV,eAAe,CAAE,kBAAkB,CAAE,QAAQ,CAAC,MAAG,CAAC,CAAE,CAAE,CAAA;QACvD,CAAC;QAED,OAAO;YACN,eAAe,CAAE,kBAAkB,CAAE,KAAK,eAAY,CAAC,CAAE,CAAE,CAAA;QAC5D,CAAC;QAED,OAAO;YACN,eAAe,CAAE,kBAAkB,CAAE,GAAE,EAAE,CAAC,IAAI,CAAE,CAAE,CAAA;QACnD,CAAC;QAED,aAAa;YACZ,cAAc,CAAE,kBAAkB,CAAE,MAAM,GAAG;aAAG,CAAE,CAAE,CAAA;QACrD,CAAC;QAED,eAAe;YACd,cAAc,CAAE,kBAAkB,CAAE;aAAQ,CAAE,CAAE,CAAA;QACjD,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EA5BS,CAAC,KAAD,CAAC,QA4BV;;;;;;;AC5BD,IAAU,CAAC,CAkDV;AAlDD,WAAU,CAAC;IA0BV;;;;QAII;IACJ,SAAgB,cAAc,CAG7B,GAAI,KAA8B;QAGlC,OAAO,eAAe,CACrB,UAAqB,KAAwC;YAC5D,IAAI,KAAK,GAAS,KAAK,CAAA;YACvB,KAAK,MAAM,IAAI,IAAI,KAAK;gBAAG,KAAK,GAAG,kBAAkB,CAAE,IAAI,CAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAE,KAAK,CAAE,CAAC,CAAC,CAAG,IAAa,CAAC,IAAI,CAAE,IAAI,EAAE,KAAK,CAAE,CAAA;YACvH,OAAO,KAEN,CAAA;QACF,CAAC,EACD,EAAE,KAAK,EAAE,CACT,CAAA;IAEF,CAAC;IAjBe,gBAAc,iBAiB7B,CAAA;AAEF,CAAC,EAlDS,CAAC,KAAD,CAAC,QAkDV;;;;AClDD,IAAU,CAAC,CAoEV;AApED,WAAU,CAAC;IAEV,SAAS,CAAC;QAET,yBAAyB;QACzB,qBAAqB;QAErB,sCAAsC;QAEtC,iCAAiC;QACjC,sBAAsB;QACtB,8BAA8B;QAC9B,KAAK;QAEL,KAAK;QAEL,iBAAiB;YAEhB,MAAM,SAAS,GAAG,cAAc,CAC/B,CAAE,KAAc,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CACrC,CAAA;YAED,iBAAiB,CAAE,SAAS,CAAE,CAAC,CAAE,EAAG,GAAG,CAAE,CAAA;QAE1C,CAAC;QAED,eAAe;YAEd,MAAM,MAAM,GAAG,cAAc,CAC5B,CAAE,KAAc,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,EACrC,CAAE,KAAc,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CACrC,CAAA;YAED,iBAAiB,CAAE,MAAM,CAAE,GAAG,CAAE,EAAG,KAAK,CAAE,CAAA;YAC1C,iBAAiB,CAAE,MAAM,CAAE,GAAG,CAAE,EAAG,IAAI,CAAE,CAAA;QAE1C,CAAC;QAED,iBAAiB;YAEhB,MAAM,OAAO,GAAG,cAAc,CAC7B,CAAE,KAAc,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,EACrC,CAAE,KAAc,EAAE,EAAE,CAAC,IAAI,MAAM,CAAE,KAAK,CAAE,EACxC,CAAE,KAAc,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CACrC,CAAA;YAED,iBAAiB,CAAE,OAAO,CAAE,CAAC,CAAE,EAAG,KAAK,CAAE,CAAA;QAE1C,CAAC;QAED,SAAS;YAER,MAAM,GAAG;gBACY;gBAApB,YAAoB,KAAc;oBAAd,UAAK,GAAL,KAAK,CAAS;gBAAI,CAAC;aACvC;YAED,MAAM,MAAM,GAAG,cAAc,CAC5B,CAAE,KAAc,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,EACrC,GAAG,CACH,CAAA;YAED,cAAc,CAAE,MAAM,CAAE,CAAC,CAAE,YAAY,GAAG,CAAE,CAAA;YAC5C,gBAAgB,CAAE,MAAM,CAAE,CAAC,CAAE,CAAC,KAAK,EAAE,GAAG,CAAE,CAAA;QAE3C,CAAC;KAED,CAAC,CAAA;AAEH,CAAC,EApES,CAAC,KAAD,CAAC,QAoEV;;;;ACpED,IAAU,CAAC,CAgGV;AAhGD,WAAU,CAAC;IAEK,kBAAgB,GAAK,gBAAgB,CAAC;QACpD,gBAAgB,EAAE,cAAc,CAC/B,iBAAiB,EACjB,CAAE,IAAY,EAAE,EAAE;YACjB,IAAI,IAAI,IAAI,EAAA,qBAAqB,IAAI,IAAI,IAAI,EAAA,qBAAqB;gBAAG,OAAO,IAAI,CAAA;YAChF,SAAS,CAAE,IAAI,eAAe,CAAE,GAAG,IAAI,sBAAsB,CAAE,CAAE,CAAA;QAClE,CAAC,CACD;KACD,CAAC,iBAR6B,CAQ7B;IAEF,2CAA2C;IAC3C,SAAgB,qBAAqB,CACpC,IAAwC,EACxC,IAAwC;QAExC,OAAO,CAAE,qBAAqB,CAAE,IAAI,CAAE,GAAG,qBAAqB,CAAE,IAAI,CAAE,CAAmC,CAAA;IAC1G,CAAC;IALe,uBAAqB,wBAKpC,CAAA;IAED,iDAAiD;IACjD,IAAY,qBAiBX;IAjBD,WAAY,qBAAqB;QAEhC,6DAA6D;QAC7D,iEAAoB,CAAA;QAEpB,gBAAgB;QAChB,kEAAoB,CAAA;QAEpB,0BAA0B;QAC1B,kEAAoB,CAAA;QAEpB,wBAAwB;QACxB,mEAAoB,CAAA;QAEpB,gCAAgC;QAChC,mEAAoB,CAAA;IAErB,CAAC,EAjBW,qBAAqB,GAArB,uBAAqB,KAArB,uBAAqB,QAiBhC;IAED,SAAgB,wBAAwB,CAAE,IAAmC;QAC5E,OAAO,IAAI,GAAG,WAAW,CAAA;IAC1B,CAAC;IAFe,0BAAwB,2BAEvC,CAAA;IAED,iCAAiC;IACpB,6BAA2B,GAAG;QAC1C,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACtC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACtC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACtC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACtC,GAAG;KACM,CAAA;IAEV,4EAA4E;IAC5E,IAAY,qBAiBX;IAjBD,WAAY,qBAAqB;QAEhC,kBAAkB;QAClB,iEAAU,CAAA;QAEV,qBAAqB;QACrB,kEAAU,CAAA;QAEV,yBAAyB;QACzB,kEAAU,CAAA;QAEV,2BAA2B;QAC3B,kEAAU,CAAA;QAEV,2BAA2B;QAC3B,kEAAU,CAAA;IAEX,CAAC,EAjBW,qBAAqB,GAArB,uBAAqB,KAArB,uBAAqB,QAiBhC;IAED,SAAgB,wBAAwB,CAAE,IAAmC;QAC5E,OAAO,IAAI,GAAG,WAAW,CAAA;IAC1B,CAAC;IAFe,0BAAwB,2BAEvC,CAAA;IAEY,uBAAqB,GAAG,qBAAqB,CAAE,MAAM,EAAE,MAAM,CAAE,CAAA;IAC/D,uBAAqB,GAAG,qBAAqB,CAAE,MAAM,EAAE,MAAM,CAAE,CAAA;IAC/D,uBAAqB,GAAG,qBAAqB,CAAE,MAAM,EAAE,MAAM,CAAE,CAAA;IAE5E,SAAgB,qBAAqB,CACpC,IAAwC;QAExC,OAAO,qBAAqB,CAAE,MAAM,EAAE,IAAI,CAAE,CAAA;IAC7C,CAAC;IAJe,uBAAqB,wBAIpC,CAAA;IAED,SAAgB,qBAAqB,CACpC,IAAwC;QAExC,OAAO,qBAAqB,CAAE,MAAM,EAAE,IAAI,CAAE,CAAA;IAC7C,CAAC;IAJe,uBAAqB,wBAIpC,CAAA;AAKF,CAAC,EAhGS,CAAC,KAAD,CAAC,QAgGV;;;;AChGD,IAAU,CAAC,CA2PV;AA3PD,WAAU,CAAC;IAEV,mBAAmB;IACnB,IAAY,qBAcX;IAdD,WAAY,qBAAqB;QAEhC,oBAAoB;QACpB,sDAAO,qBAAqB,CAAC,IAAI,UAAA,CAAA;QAEjC,2BAA2B;QAC3B,sDAAO,qBAAqB,CAAC,IAAI,UAAA,CAAA;QAEjC,0BAA0B;QAC1B,sDAAO,qBAAqB,CAAC,IAAI,UAAA,CAAA;QAEjC,kBAAkB;QAClB,sDAAO,qBAAqB,CAAC,IAAI,UAAA,CAAA;IAElC,CAAC,EAdW,qBAAqB,GAArB,uBAAqB,KAArB,uBAAqB,QAchC;IAEU,0BAAwB,GAAG,IAAI,OAAO,EAA2B,CAAA;IAE5E,SAAgB,8BAA8B,CAAE,IAAsB;QACrE,IAAI,IAAI,YAAY,qBAAqB;YAAG,OAAM;QAClD,EAAA,wBAAwB,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;IACrC,CAAC;IAHe,gCAA8B,iCAG7C,CAAA;IAED,SAAgB,8BAA8B,CAAE,IAAsB;QACrE,IAAI,IAAI,YAAY,qBAAqB;YAAG,OAAO,IAAI,CAAA;QACvD,OAAO,EAAA,wBAAwB,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;IAC5C,CAAC;IAHe,gCAA8B,iCAG7C,CAAA;IAID,6CAA6C;IAC7C,SAAgB,qBAAqB,CAAE,KAAkC;QAExE,MAAM,KAAK,GAAG,IAAI,GAAG,EAA8B,CAAA;QACnD,MAAM,KAAK,GAAG,IAAI,UAAU,EAAqC,CAAA;QAEjE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAG,CAAC;YAC3B,IAAI,IAAI,YAAY,qBAAqB,EAAG,CAAC;gBAC5C,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,CAAE,CAAA;YACnC,CAAC;iBAAM,CAAC;gBACP,IAAI,IAAI,YAAY,qBAAqB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;oBAAG,SAAQ;gBACvE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAA;gBAC5B,KAAK,CAAC,GAAG,CAAE,IAAI,EAAE,IAAI,CAAE,CAAA;YACxB,CAAC;QACF,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAG,CAAC;YAC3B,IAAI,IAAI,YAAY,qBAAqB;gBAAG,SAAQ;YAEpD,IAAI,CAAC,MAAM,CAAC;gBACX,IAAI,EAAE,IAAI,CAAC,EAAE;oBAEZ,KAAK,CAAC,IAAI,CAAE,IAAI,EAAE,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE,IAAI,IAAI,EAAE,CAAC,CAAE,CAAA,CAAC,eAAe;oBAC3E,KAAK,CAAC,IAAI,CAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAE,CAAA,CAAC,gBAAgB;oBAE5C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG;wBAAG,OAAM;oBAChD,KAAK,CAAC,IAAI,CAAE,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC,CAAE,CAAA,CAAC,eAAe;gBAE5E,CAAC;gBACD,IAAI,EAAE,IAAI,CAAC,EAAE;oBAEZ,KAAK,CAAC,IAAI,CAAE,IAAI,EAAE,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE,IAAI,IAAI,EAAE,CAAC,CAAE,CAAA,CAAC,eAAe;oBAC3E,KAAK,CAAC,IAAI,CAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAE,CAAA,CAAC,gBAAgB;gBAE7C,CAAC;gBACD,IAAI,EAAE,IAAI,CAAC,EAAE;oBAEZ,KAAK,CAAC,IAAI,CAAE,IAAI,EAAE,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE,IAAI,IAAI,EAAE,CAAC,CAAE,CAAA,CAAC,eAAe;oBAC3E,KAAK,CAAC,IAAI,CAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAE,CAAA,CAAC,gBAAgB;oBAE5C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,EAAG,CAAC;wBACtC,KAAK,CAAC,IAAI,CAAE,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,GAAG,CAAE,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC,CAAE,CAAA,CAAC,eAAe;oBACrE,CAAC;gBAEF,CAAC;aACD,CAAC,CAAA;QAEH,CAAC;QAED,KAAK,CAAC,OAAO,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAA;QAEvB,OAAO,CAAE,GAAI,KAAK,CAAC,MAAM,CAAE,CAAC,MAAM,CAAE,OAAO,CAAwB,CAAA;IAEpE,CAAC;IApDe,uBAAqB,wBAoDpC,CAAA;IAED,sDAAsD;IACtD,MAAa,qBAAsB,SAAQ,WAAW;QAErD;;;WAGG;QACH,MAAM,CAAC,OAAO,CACb,IAAuC,EACvC,KAAwC;YAGxC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;gBAAG,OAAO,CAAC,CAAA;YAC9B,IAAI,CAAC,IAAI;gBAAG,OAAO,CAAC,CAAC,CAAA;YACrB,IAAI,CAAC,KAAK;gBAAG,OAAO,CAAC,CAAC,CAAA;YAEtB,OAAO,CAAE,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAE;mBACjC,wBAAwB,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAE;mBACrD,CAAE,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;QAEnC,CAAC;QAED,MAAM,CAAC,MAAM,CAAE,GAAgB;YAC9B,MAAM,IAAI,GAAG,qBAAqB,CAAE,IAAI,WAAW,CAAE,GAAG,CAAE,CAAC,KAAK,CAAE,CAAC,CAAE,CAAwC,CAAA;YAC7G,MAAM,IAAI,GAAG;gBACZ,IAAI,EAAE,qBAAqB;gBAC3B,IAAI,EAAE,qBAAqB;gBAC3B,IAAI,EAAE,qBAAqB;gBAC3B,IAAI,EAAE,qBAAqB;aAC3B,CAAE,IAAI,CAAE,CAAA;YACT,OAAO,IAAI,IAAI,CAAE,GAAG,CAAE,CAAA;QACvB,CAAC;QAED,YACC,MAAmB,EACnB,UAAU,GAAG,CAAC,EACd,UAAU,GAAG,MAAM,CAAC,UAAU;YAE9B,KAAK,CAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAE,CAAA;QACxC,CAAC;QAED,IAAI,CAAE,IAAyC;YAE9C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAE,CAAC,EAAE,IAAI,IAAI,qBAAqB,CAAE,IAAI,CAAE,CAAE,CAAA;YAElE,MAAM,IAAI,GAAG,qBAAqB,CAAE,GAAG,CAA2D,CAAA;YAClG,IAAI,IAAI;gBAAG,OAAO,IAAI,CAAA;YAEtB,SAAS,CAAE,IAAI,KAAK,CAAE,sBAAsB,GAAG,GAAG,CAAE,CAAE,CAAA;QACvD,CAAC;QAED,MAAM,CAAS,IAId;YACA,OAAO,IAAI,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAE,IAAW,CAAE,CAAA;QAC1C,CAAC;QAED,IAAI;YACH,MAAM,IAAI,KAAK,CAAE,eAAe,CAAE,CAAA;QACnC,CAAC;QAED,GAAG,CAAE,MAAc,EAAE,IAAuB;YAC3C,IAAI,IAAI,KAAK,SAAS,EAAG,CAAC;gBACzB,OAAO,gBAAgB,CAAC,QAAQ,CAAE,IAAI,UAAU,CAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,GAAG,MAAM,EAAE,CAAC,CAAE,CAAE,CAAA;YAC/F,CAAC;iBAAM,CAAC;gBACP,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;gBACxB,IAAI,GAAG,CAAC,UAAU,KAAK,CAAC;oBAAG,OAAO,IAAI,CAAA;gBACtC,IAAI,GAAG,CAAC,UAAU,KAAK,CAAC;oBAAG,SAAS,CAAE,IAAI,KAAK,CAAE,oBAAqB,IAAK,GAAG,CAAE,CAAE,CAAA;gBAClF,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAE,GAAG,EAAE,IAAI,CAAC,UAAU,GAAG,MAAM,CAAE,CAAA;gBACnD,OAAO,IAAI,CAAA;YACZ,CAAC;QACF,CAAC;QAED,IAAI,CAAE,MAAc,EAAE,IAAuB;YAC5C,IAAI,IAAI,KAAK,SAAS,EAAG,CAAC;gBACzB,OAAO,gBAAgB,CAAC,QAAQ,CAAE,IAAI,UAAU,CAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,GAAG,MAAM,EAAE,EAAE,CAAE,CAAE,CAAA;YAChG,CAAC;iBAAM,CAAC;gBACP,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;gBACxB,IAAI,GAAG,CAAC,UAAU,KAAK,CAAC;oBAAG,OAAO,IAAI,CAAA;gBACtC,IAAI,GAAG,CAAC,UAAU,KAAK,EAAE;oBAAG,SAAS,CAAE,IAAI,KAAK,CAAE,oBAAqB,IAAK,GAAG,CAAE,CAAE,CAAA;gBACnF,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAE,GAAG,EAAE,IAAI,CAAC,UAAU,GAAG,MAAM,CAAE,CAAA;gBACnD,OAAO,IAAI,CAAA;YACZ,CAAC;QACF,CAAC;QAED,8BAA8B;QAC9B,IAAI,CAAE,IAAa;YAClB,OAAO,IAAI,CAAC,MAAM,CAAE,CAAC,EAAE,IAAI,CAAE,CAAA;QAC9B,CAAC;QAED,MAAM;YACL,OAAO,IAAI,gBAAgB,CAAE,MAAM,CAAE,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAE,CAAE,CAAA;QAC5D,CAAC;QAED,0BAA0B;QAC1B,IAAI,CAAE,IAAa;YAClB,OAAO,IAAI,CAAC,MAAM,CAAE,CAAC,EAAE,IAAI,CAAE,CAAA;QAC9B,CAAC;QAED,gCAAgC;QAChC,SAAS,CAAE,IAAa;YACvB,IAAI,CAAC,IAAI;gBAAG,OAAO,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAE,EAAE,CAAA;YACpD,IAAI,CAAC,IAAI,CAAE,IAAI,GAAG,CAAC,IAAE,EAAE,CAAE,CAAA;YACzB,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,KAAK,CAAE,IAAI,GAAG,CAAC,IAAE,EAAE,CAAE,CAAE,CAAA;YACvC,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,KAAK,GAAG,IAA+B,CAAA;QACvC,IAAI,CAAE,IAAuB;YAC5B,IAAI,IAAI;gBAAG,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAE,CAAC,EAAE,IAAI,CAAE,CAAA;YACnD,OAAO,IAAI,CAAC,KAAK,IAAI,CAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAE,CAAC,CAAE,CAAE,CAAA;QACrD,CAAC;QAED,mCAAmC;QACnC,IAAI;YACH,OAAO,IAAI,UAAU,CAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE,EAAE,CAAE,CAAA,CAAC,gCAAgC;QAC/F,CAAC;QAED,IAAI;YACH,OAAO,gBAAgB,CAAC,QAAQ,CAAE,IAAI,CAAC,OAAO,EAAE,CAAE,CAAA;QACnD,CAAC;QAED,QAAQ;YACP,OAAO,qBAAqB,CAAC,IAAI,CAAA;QAClC,CAAC;QAED,OAAO;YACN,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,KAAK,GAAG,IAA+B,CAAA;QACvC,MAAM,GAAG,KAAK,CAAA;QAEd,IAAI;YACH,OAAO,EAAE,CAAA;QACV,CAAC;QAED,CAAE,MAAM,CAAC,GAAG,CAAE,4BAA4B,CAAE,CAAE;YAC7C,OAAO,IAAI,CAAC,OAAO,EAAE,CAAA;QACtB,CAAC;QAED,OAAO;YACN,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAE,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE,CAAA;YAC1D,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAE,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE,CAAA;YAC7D,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAE,qBAAqB,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAE,CAAA;YACtF,OAAO,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,CAAA;QACjC,CAAC;QAED,MAAM;YACL,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAA;QACvB,CAAC;QAED,QAAQ;YACP,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAA;YAClC,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAA;YAClC,MAAM,IAAI,GAAG,qBAAqB,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;YAC9D,OAAO,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,CAAA;QACjC,CAAC;KAED;IAhKY,uBAAqB,wBAgKjC,CAAA;AAEF,CAAC,EA3PS,CAAC,KAAD,CAAC,QA2PV;;;;AC3PD,IAAU,CAAC,CAwEV;AAxED,WAAU,CAAC;IACV,SAAS,CAAC;QAET,gBAAgB;YAEf,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAI,EAAE,CAAA;YACzC,IAAI,CAAC,IAAI,CAAE,qBAAqB,CAAE,CAAA;YAElC,iBAAiB,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,CAAE,CAAA;YACxC,iBAAiB,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,qBAAqB,CAAE,CAAA;QAExD,CAAC;QAED,gBAAgB;YAEf,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAE,CAAC,CAAE,CAAA;YAC5C,IAAI,CAAC,IAAI,CAAE,IAAI,UAAU,CAAC,CAAE,IAAI,EAAE,IAAI,CAAE,CAAC,CAAE,CAAA;YAE3C,iBAAiB,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,CAAE,CAAA;YACxC,iBAAiB,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAE,CAAA;YACnC,iBAAiB,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,UAAU,CAAC,CAAE,IAAI,EAAE,IAAI,CAAE,CAAC,CAAE,CAAA;QAEjE,CAAC;QAED,oBAAoB;YAEnB,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;YAC/C,IAAI,CAAC,IAAI,CAAE,IAAI,UAAU,CAAE,IAAI,CAAE,CAAE,CAAA;YAEnC,iBAAiB,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,CAAE,CAAA;YACxC,iBAAiB,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAE,CAAA;YACtC,iBAAiB,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,UAAU,CAAE,IAAI,CAAE,CAAE,CAAA;QAEzD,CAAC;QAED,kBAAkB;YAEjB,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAI,EAAE,CAAA;YAEzC,iBAAiB,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAE,CAAA;YACnC,iBAAiB,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,gBAAgB,CAAC,IAAI,CAAE,CAAA;YAEvD,IAAI,CAAC,SAAS,CAAE,cAAc,CAAE,CAAA;YAChC,IAAI,CAAC,IAAI,CAAE,IAAI,gBAAgB,CAAE,mBAAmB,CAAE,CAAE,CAAA;YAExD,iBAAiB,CAAE,IAAI,CAAC,SAAS,EAAE,EAAE,cAAc,CAAE,CAAA;YACrD,iBAAiB,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,gBAAgB,CAAE,mBAAmB,CAAE,CAAE,CAAA;QAE9E,CAAC;QAED,kBAAkB;YAEjB,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAE,CAAC,CAAE,CAAA;YAE5C,iBAAiB,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAE,CAAA;YACnC,iBAAiB,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,gBAAgB,CAAC,IAAI,CAAE,CAAA;YACvD,iBAAiB,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,gBAAgB,CAAC,IAAI,CAAE,CAAA;YACvD,iBAAiB,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,gBAAgB,CAAC,IAAI,CAAE,CAAA;YAEvD,IAAI,CAAC,SAAS,CAAE,cAAc,CAAE,CAAA;YAChC,IAAI,CAAC,IAAI,CAAE,IAAI,gBAAgB,CAAE,UAAU,CAAE,CAAE,CAAA;YAC/C,IAAI,CAAC,IAAI,CAAE,IAAI,gBAAgB,CAAE,UAAU,CAAE,CAAE,CAAA;YAC/C,IAAI,CAAC,IAAI,CAAE,IAAI,gBAAgB,CAAE,UAAU,CAAE,CAAE,CAAA;YAE/C,iBAAiB,CAAE,IAAI,CAAC,SAAS,EAAE,EAAE,cAAc,CAAE,CAAA;YACrD,iBAAiB,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,gBAAgB,CAAE,UAAU,CAAE,CAAE,CAAA;YACpE,iBAAiB,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,gBAAgB,CAAE,UAAU,CAAE,CAAE,CAAA;YACpE,iBAAiB,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,gBAAgB,CAAE,UAAU,CAAE,CAAE,CAAA;QAErE,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EAxES,CAAC,KAAD,CAAC,QAwEV;;;;ACxED,IAAU,CAAC,CAqFV;AArFD,WAAU,CAAC;IAQV;;;;;OAKG;IACH,MAAa,kBAAmB,SAAQ,cAAc;QAErD,YAAa,MAAkC;YAE9C,KAAK,EAAE,CAAA;YAEP,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAG,CAAC;gBAEjC,IAAI,MAAM,GAAG,MAAM,CAAC,KAAK,CAAE,GAAG,CAAE,CAAA;gBAEhC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAG,CAAC;oBAChB,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,GAAG,EAAG,CAAC;wBACzC,IAAI,CAAC,SAAS,GAAG,IAAI,kBAAkB,CAAE,MAAM,CAAC,CAAC,CAAC,CAAE,CAAA;oBACrD,CAAC;yBAAM,CAAC;wBACP,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAgB,CAAE,MAAM,CAAC,CAAC,CAAC,CAAE,CAAA;oBAChD,CAAC;gBACF,CAAC;qBAAM,CAAC;oBACP,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAA;gBACrC,CAAC;gBAED,IAAI,MAAM,CAAC,CAAC,CAAC,EAAG,CAAC;oBAChB,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,GAAG,EAAG,CAAC;wBACzC,IAAI,CAAC,SAAS,GAAG,IAAI,kBAAkB,CAAE,MAAM,CAAC,CAAC,CAAC,CAAE,CAAA;oBACrD,CAAC;yBAAM,CAAC;wBACP,IAAI,CAAC,IAAI,GAAG,IAAI,gBAAgB,CAAE,MAAM,CAAC,CAAC,CAAC,CAAE,CAAA;oBAC9C,CAAC;gBACF,CAAC;qBAAM,CAAC;oBACP,IAAI,CAAC,IAAI,GAAG,IAAI,gBAAgB,EAAE,CAAA;gBACnC,CAAC;gBAED,OAAM;YACP,CAAC;YAED,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;gBAAG,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAgB,CAAE,MAAM,CAAC,KAAK,CAAE,CAAA;YACnF,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS;gBAAG,IAAI,CAAC,IAAI,GAAG,IAAI,gBAAgB,CAAE,MAAM,CAAC,GAAG,CAAE,CAAA;YAC7E,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;gBAAG,IAAI,CAAC,SAAS,GAAG,IAAI,kBAAkB,CAAE,MAAM,CAAC,QAAQ,CAAE,CAAA;QAC/F,CAAC;QAEO,MAAM,CAA+B;QAC7C,IAAI,KAAK;YACR,IAAI,IAAI,CAAC,MAAM;gBAAG,OAAO,IAAI,CAAC,MAAM,CAAA;YAEpC,OAAO,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAK,CAAC,KAAK,CAAE,IAAI,CAAC,SAAU,CAAC,IAAI,CAAE,CAAC,CAAC,CAAE,CAAE,CAAA;QACpE,CAAC;QAEO,IAAI,CAA+B;QAC3C,IAAI,GAAG;YACN,IAAI,IAAI,CAAC,IAAI;gBAAG,OAAO,IAAI,CAAC,IAAI,CAAA;YAEhC,OAAO,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAO,CAAC,KAAK,CAAE,IAAI,CAAC,SAAU,CAAE,CAAA;QACzD,CAAC;QAEO,SAAS,CAAiC;QAClD,IAAI,QAAQ;YACX,IAAI,IAAI,CAAC,SAAS;gBAAG,OAAO,IAAI,CAAC,SAAS,CAAA;YAE1C,OAAO,IAAI,CAAC,SAAS,GAAG,IAAI,kBAAkB,CAAE,IAAI,CAAC,IAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,MAAO,CAAC,OAAO,EAAE,CAAE,CAAA;QAChG,CAAC;QAED,MAAM,KAAK,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAA,CAAC,CAAC;QAEnC,QAAQ;YACP,OAAO,CAAE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,IAAI,EAAE,CAAE,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,CAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,EAAE,CAAE,CAAC,QAAQ,EAAE,CAAA;QACnH,CAAC;QAED,CAAE,MAAM,CAAC,WAAW,CAAE,CAAE,IAAqC;YAC5D,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAA;QACvB,CAAC;KAED;IArEY,oBAAkB,qBAqE9B,CAAA;AAEF,CAAC,EArFS,CAAC,KAAD,CAAC,QAqFV;;;;ACrFD,IAAU,CAAC,CAwBV;AAxBD,WAAU,CAAC;IACV,SAAS,CAAC;QAET,UAAU;YACT,iBAAiB,CAChB,IAAI,kBAAkB,CAAE,gBAAgB,CAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,EACzD,YAAY,CACZ,CAAA;YACD,iBAAiB,CAChB,IAAI,kBAAkB,CAAE,gBAAgB,CAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,EAC3D,YAAY,CACZ,CAAA;YACD,iBAAiB,CAChB,IAAI,kBAAkB,CAAE,uBAAuB,CAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,EACrE,YAAY,CACZ,CAAA;QACF,CAAC;QAED,YAAY;YACX,MAAM,GAAG,GAAG,uBAAuB,CAAA;YACnC,gBAAgB,CAAE,IAAI,kBAAkB,CAAE,GAAG,CAAE,EAAE,IAAI,kBAAkB,CAAE,GAAG,CAAE,CAAE,CAAA;QACjF,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EAxBS,CAAC,KAAD,CAAC,QAwBV;;;;ACxBD,IAAU,CAAC,CAyBV;AAzBD,WAAU,CAAC;IAEV,SAAgB,kBAAkB,CAAE,GAAW;QAE9C,MAAM,KAAK,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;QAE7B,MAAM,KAAK,GAAG,EAAc,CAAA;QAC5B,GAAG,CAAC;YAEH,IAAI,IAAI,GAAG,KAAK,GAAG,MAAM,CAAE,GAAG,GAAG,IAAI,CAAE,CAAA;YACvC,KAAK,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;YAElB,IAAI,GAAG,KAAK,EAAE;gBAAG,SAAQ;YAEzB,IAAG,CAAE,KAAK,GAAG,GAAG,CAAE,KAAG,CAAE,IAAI,GAAG,GAAG,CAAE;gBAClC,KAAK,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;YAEpB,MAAK;QAEN,CAAC,QAAQ,GAAG,EAAE;QAEd,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IArBe,oBAAkB,qBAqBjC,CAAA;AAEF,CAAC,EAzBS,CAAC,KAAD,CAAC,QAyBV;;;;ACzBD,IAAU,CAAC,CAuHV;AAvHD,WAAU,GAAC;IAAC,IAAA,EAAE,CAuHb;IAvHW,WAAA,EAAE;QACb,SAAS,CAAC;YAET,YAAY,CAAE,CAAC;gBAEd,iBAAiB,CAChB,kBAAkB,CAAE,EAAE,CAAE,EACxB,IAAI,UAAU,CAAE,IAAI,SAAS,CAAC,CAAE,CAAC,CAAE,CAAC,CAAC,MAAM,CAAE,CAC7C,CAAA;gBAED,iBAAiB,CAChB,kBAAkB,CAAE,EAAE,CAAE,EACxB,IAAI,UAAU,CAAE,IAAI,SAAS,CAAC,CAAE,CAAC,CAAE,CAAC,CAAC,MAAM,CAAE,CAC7C,CAAA;gBAED,iBAAiB,CAChB,kBAAkB,CAAE,CAAC,EAAE,CAAE,EACzB,IAAI,UAAU,CAAE,IAAI,SAAS,CAAC,CAAE,CAAC,CAAC,CAAE,CAAC,CAAC,MAAM,CAAE,CAC9C,CAAA;gBAED,iBAAiB,CAChB,kBAAkB,CAAE,IAAI,CAAE,EAC1B,IAAI,UAAU,CAAE,IAAI,SAAS,CAAC,CAAE,GAAG,CAAE,CAAC,CAAC,MAAM,CAAE,CAC/C,CAAA;gBAED,iBAAiB,CAChB,kBAAkB,CAAE,CAAC,IAAI,CAAE,EAC3B,IAAI,UAAU,CAAE,IAAI,SAAS,CAAC,CAAE,CAAC,GAAG,CAAE,CAAC,CAAC,MAAM,CAAE,CAChD,CAAA;YAEF,CAAC;YAED,YAAY,CAAE,CAAC;gBAEd,iBAAiB,CAChB,kBAAkB,CAAE,IAAI,CAAE,EAC1B,IAAI,UAAU,CAAE,IAAI,UAAU,CAAC,CAAE,GAAG,CAAE,CAAC,CAAC,MAAM,CAAE,CAChD,CAAA;gBAED,iBAAiB,CAChB,kBAAkB,CAAE,CAAC,IAAI,CAAE,EAC3B,IAAI,UAAU,CAAE,IAAI,UAAU,CAAC,CAAE,CAAC,GAAG,CAAE,CAAC,CAAC,MAAM,CAAE,CACjD,CAAA;gBAED,iBAAiB,CAChB,kBAAkB,CAAE,IAAI,GAAG,IAAI,GAAG,EAAE,CAAE,EACtC,IAAI,UAAU,CAAE,IAAI,UAAU,CAAC,CAAE,GAAG,GAAG,GAAG,GAAG,CAAC,CAAE,CAAC,CAAC,MAAM,CAAE,CAC1D,CAAA;gBAED,iBAAiB,CAChB,kBAAkB,CAAE,CAAC,IAAI,GAAG,IAAI,CAAE,EAClC,IAAI,UAAU,CAAE,IAAI,UAAU,CAAC,CAAE,CAAC,GAAG,GAAG,GAAG,CAAE,CAAC,CAAC,MAAM,CAAE,CACvD,CAAA;YAEF,CAAC;YAED,YAAY,CAAE,CAAC;gBAEd,iBAAiB,CAChB,kBAAkB,CAAE,IAAI,GAAG,IAAI,CAAE,EACjC,IAAI,UAAU,CAAE,IAAI,UAAU,CAAC,CAAE,GAAG,GAAG,GAAG,CAAE,CAAC,CAAC,MAAM,CAAE,CAAC,KAAK,CAAE,CAAC,EAAE,CAAC,CAAE,CACpE,CAAA;gBAED,iBAAiB,CAChB,kBAAkB,CAAE,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,CAAE,EACvC,IAAI,UAAU,CAAE,IAAI,UAAU,CAAC,CAAE,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAE,CAAC,CAAC,MAAM,CAAE,CAAC,KAAK,CAAE,CAAC,EAAE,CAAC,CAAE,CACzE,CAAA;gBAED,iBAAiB,CAChB,kBAAkB,CAAE,IAAI,GAAG,IAAI,IAAI,EAAE,GAAG,EAAE,CAAE,EAC5C,IAAI,UAAU,CAAE,IAAI,UAAU,CAAC,CAAE,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC,MAAM,CAAE,CAAC,KAAK,CAAE,CAAC,EAAE,CAAC,CAAE,CAC7E,CAAA;gBAED,iBAAiB,CAChB,kBAAkB,CAAE,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAE,EACxC,IAAI,UAAU,CAAE,IAAI,UAAU,CAAC,CAAE,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAE,CAAC,CAAC,MAAM,CAAE,CAAC,KAAK,CAAE,CAAC,EAAE,CAAC,CAAE,CAC1E,CAAA;YAEF,CAAC;YAED,YAAY,CAAE,CAAC;gBAEd,iBAAiB,CAChB,kBAAkB,CAAE,IAAI,GAAG,IAAI,IAAI,EAAE,CAAE,EACvC,IAAI,UAAU,CAAE,IAAI,UAAU,CAAC,CAAE,GAAG,GAAG,GAAG,IAAI,CAAC,CAAE,CAAC,CAAC,MAAM,CAAE,CAC3D,CAAA;gBAED,iBAAiB,CAChB,kBAAkB,CAAE,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,GAAG,EAAE,CAAE,EAC7C,IAAI,UAAU,CAAE,IAAI,UAAU,CAAC,CAAE,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC,MAAM,CAAE,CAChE,CAAA;gBAED,iBAAiB,CAChB,kBAAkB,CAAE,IAAI,GAAG,IAAI,IAAI,EAAE,GAAG,EAAE,CAAE,EAC5C,IAAI,UAAU,CAAE,IAAI,UAAU,CAAC,CAAE,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC,MAAM,CAAE,CAC/D,CAAA;gBAED,iBAAiB,CAChB,kBAAkB,CAAE,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAE,EACxC,IAAI,UAAU,CAAE,IAAI,UAAU,CAAC,CAAE,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAE,CAAC,CAAC,MAAM,CAAE,CAC5D,CAAA;YAEF,CAAC;YAED,YAAY,CAAE,CAAC;gBAEd,iBAAiB,CAChB,kBAAkB,CAAE,IAAI,GAAG,IAAI,IAAI,EAAE,GAAG,EAAE,CAAE,EAC5C,IAAI,UAAU,CAAE,IAAI,aAAa,CAAC,CAAE,IAAI,GAAG,IAAI,IAAI,EAAE,GAAG,EAAE,CAAE,CAAC,CAAC,MAAM,CAAE,CACtE,CAAA;gBAED,iBAAiB,CAChB,kBAAkB,CAAE,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAE,EACxC,IAAI,UAAU,CAAE,IAAI,aAAa,CAAC,CAAE,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAE,CAAC,CAAC,MAAM,CAAE,CAClE,CAAA;YAEF,CAAC;SAED,CAAC,CAAA;IACH,CAAC,EAvHW,EAAE,GAAF,MAAE,KAAF,MAAE,QAuHb;AAAD,CAAC,EAvHS,CAAC,KAAD,CAAC,QAuHV;;;;ACvHD,IAAU,CAAC,CAsLV;AAtLD,WAAU,CAAC;IAEV,MAAM,SAAS,GAAI,CAAE,GAAI,wBAAwB,CAAG,CAAC,GAAG,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAE,CAAA;IAChF,MAAM,SAAS,GAAG,IAAI,KAAK,CAAY,IAAI,CAAE,CAAC,IAAI,CAAE,CAAC,CAAE,CAAA;IACvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;QAAG,SAAS,CAAE,SAAS,CAAE,CAAC,CAAE,CAAE,GAAG,CAAC,GAAG,IAAI,CAAA;IAElF,MAAM,SAAS,GAAG;QACjB,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK;QACrD,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK;QACrD,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO;KACrC,CAAA;IACD,MAAM,SAAS,GAAG,IAAI,KAAK,CAAY,IAAI,CAAE,CAAC,IAAI,CAAE,CAAC,CAAE,CAAA;IACvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;QAAG,SAAS,CAAE,SAAS,CAAE,CAAC,CAAE,CAAE,GAAG,CAAC,GAAG,IAAI,CAAA;IAElF,MAAM,WAAW,GAAG,OAAO,CAAA;IAC3B,MAAM,UAAU,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,WAAW,CAAA;IAC9C,MAAM,UAAU,GAAG,GAAG,GAAG,EAAE,CAAA;IAE3B,MAAM,SAAS,GAAG,IAAI,CAAA;IACtB,MAAM,SAAS,GAAG,IAAI,CAAA;IACtB,MAAM,SAAS,GAAG,IAAI,CAAA;IAEtB,6CAA6C;IAC7C,SAAgB,uBAAuB,CAAE,GAAW;QACnD,MAAM,GAAG,GAAG,mBAAmB,CAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAE,CAAA;QACjD,OAAO,GAAG,CAAC,KAAK,CAAE,CAAC,EAAE,0BAA0B,CAAE,GAAG,EAAE,GAAG,CAAE,CAAE,CAAA;IAC9D,CAAC;IAHe,yBAAuB,0BAGtC,CAAA;IAED,SAAgB,0BAA0B,CAAE,GAAW,EAAE,GAA8B,EAAE,IAAI,GAAG,CAAC;QAEhG,IAAI,GAAG,GAAG,IAAI,CAAA;QACd,IAAI,IAAI,GAAG,SAAS,CAAA;QAEpB,MAAM,UAAU,GAAG,CAAE,IAAY,EAAE,EAAE;YACpC,GAAG,CAAE,GAAG,EAAG,CAAE,GAAG,CAAE,CAAE,IAAI,GAAG,GAAG,GAAG,IAAI,CAAE,GAAG,IAAI,CAAE,GAAG,IAAI,CAAA;QACxD,CAAC,CAAA;QAED,MAAM,WAAW,GAAG,CAAE,IAAY,EAAE,EAAE;YACrC,MAAM,IAAI,GAAG,SAAS,CAAE,IAAI,CAAE,CAAA;YAC9B,IAAI,IAAI;gBAAG,UAAU,CAAE,IAAI,CAAE,CAAA;;gBACxB,GAAG,CAAE,GAAG,EAAG,CAAE,GAAG,IAAI,CAAA;QAC1B,CAAC,CAAA;QAED,MAAM,UAAU,GAAG,CAAE,CAAS,EAAE,EAAE;YACjC,UAAU,CAAE,CAAC,CAAE,CAAA;YACf,IAAI,GAAG,CAAC,CAAA;QACT,CAAC,CAAA;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAG,CAAC;YAEtC,IAAI,IAAI,GAAG,GAAG,CAAC,UAAU,CAAE,CAAC,CAAE,CAAA;YAC9B,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI,GAAG,OAAO;gBAAG,IAAI,GAAG,CAAE,CAAE,IAAI,GAAG,MAAM,CAAE,IAAI,EAAE,CAAE,GAAG,GAAG,CAAC,UAAU,CAAE,EAAG,CAAC,CAAE,GAAG,MAAM,CAAA;YAE5G,IAAI,IAAI,GAAG,IAAI,EAAG,CAAC,CAAC,QAAQ;gBAE3B,IAAI,IAAI,KAAK,SAAS,EAAG,CAAC;oBACzB,MAAM,IAAI,GAAG,SAAS,CAAE,IAAI,CAAE,CAAA;oBAC9B,IAAI,CAAC,IAAI;wBAAG,UAAU,CAAE,SAAS,CAAE,CAAA;gBACpC,CAAC;gBACD,GAAG,CAAE,GAAG,EAAG,CAAE,GAAG,IAAI,CAAA;YAErB,CAAC;iBAAM,IAAI,IAAI,GAAG,UAAU,EAAG,CAAC,CAAC,OAAO;gBAEvC,MAAM,IAAI,GAAG,CAAE,IAAI,IAAI,CAAC,CAAE,GAAG,SAAS,CAAA;gBACtC,IAAI,IAAI,IAAI,CAAA;gBAEZ,IAAI,IAAI,KAAK,GAAG,EAAG,CAAC,CAAC,aAAa;oBACjC,MAAM,IAAI,GAAG,SAAS,CAAE,IAAI,CAAE,CAAA;oBAC9B,IAAI,IAAI,EAAG,CAAC;wBACX,IAAI,IAAI,KAAK,SAAS;4BAAG,UAAU,CAAE,SAAS,CAAE,CAAA;wBAChD,UAAU,CAAE,IAAI,CAAE,CAAA;wBAClB,SAAQ;oBACT,CAAC;gBACF,CAAC;gBAED,IAAI,IAAI,KAAK,IAAI;oBAAG,UAAU,CAAE,IAAI,CAAE,CAAA;gBACtC,WAAW,CAAE,IAAI,CAAE,CAAA;YAEpB,CAAC;iBAAM,IAAI,IAAI,GAAG,UAAU,EAAG,CAAC,CAAC,OAAO;gBAEvC,IAAI,IAAI,WAAW,CAAA;gBACnB,MAAM,IAAI,GAAG,CAAE,IAAI,IAAI,EAAE,CAAE,GAAG,SAAS,CAAA;gBACvC,IAAI,IAAI,KAAK,IAAI;oBAAG,UAAU,CAAE,IAAI,CAAE,CAAA;gBACtC,WAAW,CAAE,IAAI,GAAG,IAAI,CAAE,CAAA;gBAC1B,WAAW,CAAE,CAAE,IAAI,IAAI,CAAC,CAAE,GAAG,IAAI,CAAE,CAAA;YAEpC,CAAC;iBAAM,CAAC,CAAC,OAAO;gBAEf,IAAI,IAAI,KAAK,SAAS;oBAAG,UAAU,CAAE,SAAS,CAAE,CAAA;gBAChD,WAAW,CAAE,IAAI,GAAG,IAAI,CAAE,CAAA;gBAC1B,WAAW,CAAE,CAAE,IAAI,IAAI,CAAC,CAAE,GAAG,IAAI,CAAE,CAAA;gBACnC,WAAW,CAAE,IAAI,IAAI,EAAE,CAAE,CAAA;YAE1B,CAAC;QAEF,CAAC;QAED,IAAI,IAAI,KAAK,SAAS;YAAG,UAAU,CAAE,SAAS,CAAE,CAAA;QAEhD,OAAO,GAAG,GAAG,IAAI,CAAA;IAClB,CAAC;IAxEe,4BAA0B,6BAwEzC,CAAA;IAED,+CAA+C;IAC/C,SAAgB,uBAAuB,CAAE,MAAiC,EAAE,IAAI,GAAG,SAAS;QAE3F,IAAI,IAAI,GAAG,EAAE,CAAA;QACb,IAAI,GAAG,GAAG,CAAC,CAAA;QACX,IAAI,WAAW,GAAG,CAAC,CAAA;QAEnB,8FAA8F;QAC9F,MAAM,KAAK,GAAG,EAAc,CAAA;QAC5B,MAAM,KAAK,GAAG,GAAE,EAAE;YACjB,IAAI,IAAI,MAAM,CAAC,aAAa,CAAE,GAAI,KAAK,CAAE,CAAA;YACzC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;YAChB,OAAO,IAAI,CAAA;QACZ,CAAC,CAAA;QAED,MAAM,SAAS,GAAG,GAAE,EAAE;YACrB,IAAI,IAAI,GAAG,MAAM,CAAE,GAAG,EAAG,CAAE,CAAA;YAC3B,IAAI,IAAI,IAAI,IAAI;gBAAG,IAAI,GAAG,CAAE,CAAE,IAAI,GAAG,IAAI,CAAE,GAAG,IAAI,CAAE,GAAG,IAAI,CAAA;YAC3D,OAAO,IAAI,CAAA;QACZ,CAAC,CAAA;QAED,MAAM,UAAU,GAAG,GAAE,EAAE;YACtB,IAAI,IAAI,GAAG,SAAS,EAAE,CAAA;YACtB,IAAI,IAAI,IAAI,IAAI;gBAAG,IAAI,GAAG,SAAS,CAAE,IAAI,GAAG,IAAI,CAAE,CAAA;YAClD,IAAI,IAAI,KAAK,SAAS;gBAAG,SAAS,CAAE,IAAI,KAAK,CAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,CAAE,CAAE,CAAA;YAC3G,OAAO,IAAI,CAAA;QACZ,CAAC,CAAA;QAED,OAAO,GAAG,GAAG,MAAM,CAAC,MAAM,EAAG,CAAC;YAE7B,IAAI,IAAI,GAAG,SAAS,EAAE,CAAA;YAEtB,IAAI,IAAI,GAAG,SAAS,EAAG,CAAC,CAAC,YAAY;gBAEpC,IAAI,IAAI,KAAK,SAAS,EAAG,CAAC;oBACzB,IAAI,IAAI,IAAI,IAAI,EAAG,CAAC;wBACnB,IAAI,GAAG,SAAS,CAAE,IAAI,GAAG,KAAK,CAAE,GAAG,CAAE,CAAC,IAAI,CAAC,CAAE,CAAA;oBAC9C,CAAC;gBACF,CAAC;qBAAM,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,EAAG,CAAC;oBAChC,IAAI,IAAI,IAAI,IAAI;wBAAG,IAAI,GAAG,SAAS,CAAE,IAAI,GAAG,IAAI,CAAE,CAAA;oBAClD,IAAI,IAAI,GAAG,SAAS,EAAG,CAAC;wBACvB,IAAI,GAAG,KAAK,MAAM,CAAC,MAAM;4BAAG,SAAS,CAAE,IAAI,KAAK,CAAE,kBAAkB,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,CAAE,CAAE,CAAA;wBACpH,IAAI,IAAI,UAAU,EAAE,IAAI,CAAC,CAAA;oBAC1B,CAAC;oBACD,IAAI,IAAI,KAAK,SAAS,EAAG,CAAC;wBACzB,IAAI,GAAG,KAAK,MAAM,CAAC,MAAM;4BAAG,SAAS,CAAE,IAAI,KAAK,CAAE,kBAAkB,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,CAAE,CAAE,CAAA;wBACpH,IAAI,IAAI,UAAU,EAAE,IAAI,EAAE,CAAA;oBAC3B,CAAC;oBACD,IAAI,IAAI,WAAW,CAAA;gBACpB,CAAC;gBAED,KAAK,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;gBAClB,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI;oBAAG,KAAK,EAAE,CAAA;YAEpC,CAAC;iBAAM,IAAI,IAAI,IAAI,SAAS,EAAG,CAAC,CAAC,WAAW;gBAE3C,IAAI,GAAG,IAAI,CAAA;gBACX,WAAW,GAAG,CAAE,IAAI,GAAG,SAAS,CAAE,IAAI,CAAC,CAAA;YAExC,CAAC;iBAAM,IAAI,IAAI,KAAK,SAAS,EAAG,CAAC,CAAC,WAAW;gBAE5C,IAAI,GAAG,IAAI,CAAA;gBACX,WAAW,GAAG,CAAC,CAAA;YAEhB,CAAC;iBAAM,CAAC,CAAC,WAAW;gBAEnB,IAAI,GAAG,IAAI,CAAA;gBACX,WAAW,GAAG,CAAE,CAAE,IAAI,GAAG,SAAS,CAAE,IAAI,EAAE,CAAE,GAAG,WAAW,CAAA;YAE3D,CAAC;QAEF,CAAC;QAED,IAAI,IAAI,KAAK,SAAS,EAAG,CAAC;YACzB,OAAO,SAAS,CAAE,IAAI,KAAK,CAAE,cAAc,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,CAAE,CAAE,CAAA;QACpF,CAAC;QAED,OAAO,KAAK,EAAE,CAAA;IACf,CAAC;IA7Ee,yBAAuB,0BA6EtC,CAAA;AAEF,CAAC,EAtLS,CAAC,KAAD,CAAC,QAsLV;;;;ACtLD,IAAU,CAAC,CA6FV;AA7FD,WAAU,GAAC;IAAC,IAAA,EAAE,CA6Fb;IA7FW,WAAA,EAAE;QAEb,SAAS,KAAK,CAAE,IAAY,EAAE,KAAe;YAE5C,MAAM,KAAK,GAAG,IAAI,UAAU,CAAE,KAAK,CAAE,CAAA;YACrC,MAAM,MAAM,GAAG,uBAAuB,CAAE,IAAI,CAAE,CAAA;YAE9C,iBAAiB,CAAE,uBAAuB,CAAE,MAAM,CAAE,EAAE,IAAI,CAAE,CAAA;YAC5D,iBAAiB,CAAE,MAAM,EAAE,KAAK,CAAE,CAAA;QAEnC,CAAC;QAED,SAAS,CAAC;YAET,uBAAuB,CAAE,CAAC;gBACzB,KAAK,CAAE,IAAI,EAAE,CAAE,IAAI,EAAE,IAAI,CAAE,CAAE,CAAA;YAC9B,CAAC;YAED,yBAAyB,CAAE,CAAC;gBAC3B,KAAK,CAAE,YAAY,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAE,CAAE,CAAA;YACxD,CAAC;YAED,aAAa,CAAE,CAAC;gBACf,KAAK,CAAE,KAAK,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAE,CAAE,CAAA;YACjD,CAAC;YAED,2CAA2C,CAAE,CAAC;gBAC7C,KAAK,CAAE,KAAK,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAE,CAAE,CAAA;YACjD,CAAC;YAED,UAAU,CAAE,CAAC;gBACZ,KAAK,CAAE,GAAG,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAE,CAAE,CAAA;YACzC,CAAC;YAED,eAAe,CAAE,CAAC;gBACjB,KAAK,CAAE,IAAI,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAE,CAAE,CAAA;YAChD,CAAC;YAED,SAAS,CAAE,CAAC;gBACX,KAAK,CAAE,IAAI,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAE,CAAE,CAAA;YAC1C,CAAC;YAED,UAAU,CAAE,CAAC;gBACZ,KAAK,CAAE,IAAI,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAE,CAAE,CAAA;YAC1C,CAAC;YAED,4BAA4B,CAAE,CAAC;gBAC9B,KAAK,CAAE,MAAM,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAE,CAAE,CAAA;YACpE,CAAC;YAED,sBAAsB,CAAE,CAAC;gBACxB,KAAK,CAAE,aAAa,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAE,CAAE,CAAA;YAC3E,CAAC;YAED,eAAe,CAAE,CAAC;gBACjB,KAAK,CAAE,uBAAuB,EAAE;oBAC/B,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS;oBAC7C,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO;oBACjD,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ;oBAC5C,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS;oBACzD,IAAI;iBACJ,CAAE,CAAA;YACJ,CAAC;YAED,cAAc,CAAE,CAAC;gBAChB,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAE,CAAC,CAAA;gBACtD,MAAM,KAAK,GAAG,gBAAgB,CAAE,GAAE,EAAE,CAAC,uBAAuB,CAAE,GAAG,CAAE,EAAE,cAAc,CAAE,CAAA;gBACrF,iBAAiB,CAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAE,CAAA;gBAC1C,iBAAiB,CAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAE,CAAA;YAC7C,CAAC;YAED,YAAY,CAAE,CAAC;gBACd,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAE,CAAC,CAAA;gBAClE,MAAM,KAAK,GAAG,gBAAgB,CAAE,GAAE,EAAE,CAAC,uBAAuB,CAAE,GAAG,CAAE,EAAE,YAAY,CAAE,CAAA;gBACnF,iBAAiB,CAAE,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAE,CAAA;gBACvC,iBAAiB,CAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAE,CAAA;YAC5C,CAAC;YAED,0BAA0B,CAAE,CAAC;gBAC5B,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAE,CAAC,CAAA;gBAChD,MAAM,KAAK,GAAG,gBAAgB,CAAE,GAAE,EAAE,CAAC,uBAAuB,CAAE,GAAG,CAAE,EAAE,kBAAkB,CAAE,CAAA;gBACzF,iBAAiB,CAAE,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAE,CAAA;gBACvC,iBAAiB,CAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAE,CAAA;YAC3C,CAAC;YAED,0BAA0B,CAAE,CAAC;gBAC5B,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAE,CAAC,CAAA;gBACtD,MAAM,KAAK,GAAG,gBAAgB,CAAE,GAAE,EAAE,CAAC,uBAAuB,CAAE,GAAG,CAAE,EAAE,kBAAkB,CAAE,CAAA;gBACzF,iBAAiB,CAAE,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAE,CAAA;gBACvC,iBAAiB,CAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAE,CAAA;YAC3C,CAAC;SAED,CAAC,CAAA;IACH,CAAC,EA7FW,EAAE,GAAF,MAAE,KAAF,MAAE,QA6Fb;AAAD,CAAC,EA7FS,CAAC,KAAD,CAAC,QA6FV;;;;AC7FD,IAAU,CAAC,CAuBV;AAvBD,WAAU,CAAC;IAEV,SAAgB,kBAAkB,CAAE,GAA8B;QAEjE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAG,OAAO,IAAI,aAAa,CAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAE,CAAC,CAAC,CAAC,CAAA;QACnF,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAG,OAAO,MAAM,CAAE,IAAI,UAAU,CAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAE,CAAC,CAAC,CAAC,CAAE,CAAA;QAC1F,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAG,OAAO,MAAM,CAAE,IAAI,UAAU,CAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAE,CAAC,CAAC,CAAC,CAAE,CAAA;QAC1F,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAG,OAAO,MAAM,CAAE,IAAI,SAAS,CAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAE,CAAC,CAAC,CAAC,CAAE,CAAA;QAEzF,MAAM,KAAK,GAAG,CAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,GAAG,GAAG,CAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAE7C,IAAI,MAAM,GAAG,EAAE,CAAA;QACf,IAAI,MAAM,GAAG,EAAE,CAAA;QAEf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,EAAG,CAAC;YACpD,MAAM,IAAI,MAAM,CAAE,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAE,IAAI,MAAM,CAAA;QAC7C,CAAC;QAED,IAAI,KAAK;YAAG,MAAM,GAAG,CAAE,MAAM,GAAG,EAAE,CAAE,GAAG,CAAC,EAAE,CAAA;QAE1C,OAAO,MAAM,CAAA;IACd,CAAC;IAnBe,oBAAkB,qBAmBjC,CAAA;AAEF,CAAC,EAvBS,CAAC,KAAD,CAAC,QAuBV;;;;ACvBD,IAAU,CAAC,CAuHV;AAvHD,WAAU,GAAC;IAAC,IAAA,EAAE,CAuHb;IAvHW,WAAA,EAAE;QACb,SAAS,CAAC;YAET,YAAY,CAAE,CAAC;gBAEd,iBAAiB,CAChB,kBAAkB,CAAE,IAAI,UAAU,CAAE,EACpC,EAAE,CACF,CAAA;gBAED,iBAAiB,CAChB,kBAAkB,CAAE,IAAI,UAAU,CAAE,IAAI,SAAS,CAAC,CAAE,CAAC,CAAE,CAAC,CAAC,MAAM,CAAE,CAAE,EACnE,EAAE,CACF,CAAA;gBAED,iBAAiB,CAChB,kBAAkB,CAAE,IAAI,UAAU,CAAE,IAAI,SAAS,CAAC,CAAE,CAAC,CAAC,CAAE,CAAC,CAAC,MAAM,CAAE,CAAE,EACpE,CAAC,EAAE,CACH,CAAA;gBAED,iBAAiB,CAChB,kBAAkB,CAAE,IAAI,UAAU,CAAE,IAAI,SAAS,CAAC,CAAE,GAAG,CAAE,CAAC,CAAC,MAAM,CAAE,CAAE,EACrE,IAAI,CACJ,CAAA;gBAED,iBAAiB,CAChB,kBAAkB,CAAE,IAAI,UAAU,CAAE,IAAI,SAAS,CAAC,CAAE,CAAC,GAAG,CAAE,CAAC,CAAC,MAAM,CAAE,CAAE,EACtE,CAAC,IAAI,CACL,CAAA;YAEF,CAAC;YAED,YAAY,CAAE,CAAC;gBAEd,iBAAiB,CAChB,kBAAkB,CAAE,IAAI,UAAU,CAAE,IAAI,UAAU,CAAC,CAAE,GAAG,CAAE,CAAC,CAAC,MAAM,CAAE,CAAE,EACtE,IAAI,CACJ,CAAA;gBAED,iBAAiB,CAChB,kBAAkB,CAAE,IAAI,UAAU,CAAE,IAAI,UAAU,CAAC,CAAE,CAAC,GAAG,CAAE,CAAC,CAAC,MAAM,CAAE,CAAE,EACvE,CAAC,IAAI,CACL,CAAA;gBAED,iBAAiB,CAChB,kBAAkB,CAAE,IAAI,UAAU,CAAE,IAAI,UAAU,CAAC,CAAE,GAAG,GAAG,GAAG,GAAG,CAAC,CAAE,CAAC,CAAC,MAAM,CAAE,CAAE,EAChF,IAAI,GAAG,IAAI,GAAG,EAAE,CAChB,CAAA;gBAED,iBAAiB,CAChB,kBAAkB,CAAE,IAAI,UAAU,CAAE,IAAI,UAAU,CAAC,CAAE,CAAC,GAAG,GAAG,GAAG,CAAE,CAAC,CAAC,MAAM,CAAE,CAAE,EAC7E,CAAC,IAAI,GAAG,IAAI,CACZ,CAAA;YAEF,CAAC;YAED,YAAY,CAAE,CAAC;gBAEd,iBAAiB,CAChB,kBAAkB,CAAE,IAAI,UAAU,CAAE,IAAI,UAAU,CAAC,CAAE,GAAG,GAAG,GAAG,CAAE,CAAC,CAAC,MAAM,CAAE,CAAC,KAAK,CAAE,CAAC,EAAE,CAAC,CAAE,CAAE,EAC1F,IAAI,GAAG,IAAI,CACX,CAAA;gBAED,iBAAiB,CAChB,kBAAkB,CAAE,IAAI,UAAU,CAAE,IAAI,UAAU,CAAC,CAAE,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAE,CAAC,CAAC,MAAM,CAAE,CAAC,KAAK,CAAE,CAAC,EAAE,CAAC,CAAE,CAAE,EAC/F,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,CACjB,CAAA;gBAED,iBAAiB,CAChB,kBAAkB,CAAE,IAAI,UAAU,CAAE,IAAI,UAAU,CAAC,CAAE,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC,MAAM,CAAE,CAAC,KAAK,CAAE,CAAC,EAAE,CAAC,CAAE,CAAE,EACnG,IAAI,GAAG,IAAI,IAAI,EAAE,GAAG,EAAE,CACtB,CAAA;gBAED,iBAAiB,CAChB,kBAAkB,CAAE,IAAI,UAAU,CAAE,IAAI,UAAU,CAAC,CAAE,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAE,CAAC,CAAC,MAAM,CAAE,CAAC,KAAK,CAAE,CAAC,EAAE,CAAC,CAAE,CAAE,EAChG,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAClB,CAAA;YAEF,CAAC;YAED,YAAY,CAAE,CAAC;gBAEd,iBAAiB,CAChB,kBAAkB,CAAE,IAAI,UAAU,CAAE,IAAI,UAAU,CAAC,CAAE,GAAG,GAAG,GAAG,IAAI,CAAC,CAAE,CAAC,CAAC,MAAM,CAAE,CAAE,EACjF,IAAI,GAAG,IAAI,IAAI,EAAE,CACjB,CAAA;gBAED,iBAAiB,CAChB,kBAAkB,CAAE,IAAI,UAAU,CAAE,IAAI,UAAU,CAAC,CAAE,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC,MAAM,CAAE,CAAE,EACtF,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,GAAG,EAAE,CACvB,CAAA;gBAED,iBAAiB,CAChB,kBAAkB,CAAE,IAAI,UAAU,CAAE,IAAI,UAAU,CAAC,CAAE,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC,MAAM,CAAE,CAAE,EACrF,IAAI,GAAG,IAAI,IAAI,EAAE,GAAG,EAAE,CACtB,CAAA;gBAED,iBAAiB,CAChB,kBAAkB,CAAE,IAAI,UAAU,CAAE,IAAI,UAAU,CAAC,CAAE,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAE,CAAC,CAAC,MAAM,CAAE,CAAE,EAClF,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAClB,CAAA;YAEF,CAAC;YAED,YAAY,CAAE,CAAC;gBAEd,iBAAiB,CAChB,kBAAkB,CAAE,IAAI,UAAU,CAAE,IAAI,aAAa,CAAC,CAAE,IAAI,GAAG,IAAI,IAAI,EAAE,GAAG,EAAE,CAAE,CAAC,CAAC,MAAM,CAAE,CAAE,EAC5F,IAAI,GAAG,IAAI,IAAI,EAAE,GAAG,EAAE,CACtB,CAAA;gBAED,iBAAiB,CAChB,kBAAkB,CAAE,IAAI,UAAU,CAAE,IAAI,aAAa,CAAC,CAAE,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAE,CAAC,CAAC,MAAM,CAAE,CAAE,EACxF,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAClB,CAAA;YAEF,CAAC;SAED,CAAC,CAAA;IACH,CAAC,EAvHW,EAAE,GAAF,MAAE,KAAF,MAAE,QAuHb;AAAD,CAAC,EAvHS,CAAC,KAAD,CAAC,QAuHV;;;;ACvHD,IAAU,CAAC,CAgBV;AAhBD,WAAU,CAAC;IAEV,SAAgB,cAAc,CAC7B,IAAa,EACb,OAAgC,uBAAuB;QAGvD,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,SAAS,EAAE,CAAA;QAC/C,MAAM,GAAG,GAAG,MAAM,CAAC,eAAe,CAAE,IAAI,EAAG,IAAI,CAAE,CAAA;QAEjD,MAAM,KAAK,GAAG,GAAG,CAAC,oBAAoB,CAAE,aAAa,CAAE,CAAA;QACvD,IAAI,KAAK,CAAC,MAAM;YAAG,MAAM,IAAI,KAAK,CAAE,KAAK,CAAC,CAAC,CAAC,CAAC,WAAY,CAAE,CAAA;QAE3D,OAAO,GAAG,CAAA;IACX,CAAC;IAZe,gBAAc,iBAY7B,CAAA;AAEF,CAAC,EAhBS,CAAC,KAAD,CAAC,QAgBV;;;;AChBD,IAAU,CAAC,CAyBV;AAzBD,WAAU,GAAC;IAAC,IAAA,EAAE,CAyBb;IAzBW,WAAA,EAAE;QACb,SAAS,CAAC;YAET,UAAU,CAAE,CAAC;gBACZ,iBAAiB,CAChB,kBAAkB,CAAE,kBAAkB,CAAE,EAAE,CAAE,CAAE,EAC9C,EAAE,CACF,CAAA;YACF,CAAC;YAED,oBAAoB,CAAE,CAAC;gBACtB,iBAAiB,CAChB,kBAAkB,CAAE,kBAAkB,CAAE,qBAAqB,CAAE,CAAE,EACjE,qBAAqB,CACrB,CAAA;YACF,CAAC;YAED,oBAAoB,CAAE,CAAC;gBACtB,iBAAiB,CAChB,kBAAkB,CAAE,kBAAkB,CAAE,CAAC,qBAAqB,CAAE,CAAE,EAClE,CAAC,qBAAqB,CACtB,CAAA;YACF,CAAC;SAED,CAAC,CAAC;IACJ,CAAC,EAzBW,EAAE,GAAF,MAAE,KAAF,MAAE,QAyBb;AAAD,CAAC,EAzBS,CAAC,KAAD,CAAC,QAyBV;;;;ACzBD,IAAU,CAAC,CAwpBV;AAxpBD,WAAU,CAAC;IAEV,IAAY,aASX;IATD,WAAY,aAAa;QACxB,iDAAiB,CAAA;QACjB,kDAAiB,CAAA;QACjB,kDAAiB,CAAA;QACjB,kDAAiB,CAAA;QACjB,mDAAiB,CAAA;QACjB,mDAAiB,CAAA;QACjB,mDAAiB,CAAA;QACjB,mDAAiB,CAAA;IAClB,CAAC,EATW,aAAa,GAAb,eAAa,KAAb,eAAa,QASxB;IAED,IAAY,aAMX;IAND,WAAY,aAAa;QACxB,8CAAO,CAAA;QACP,8CAAO,CAAA;QACP,8CAAO,CAAA;QACP,8CAAO,CAAA;QACP,8CAAO,CAAA;IACR,CAAC,EANW,aAAa,GAAb,eAAa,KAAb,eAAa,QAMxB;IAED,IAAY,cAUX;IAVD,WAAY,cAAc;QACzB,wCAAO,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,UAAA,CAAA;QACxB,wCAAO,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,UAAA,CAAA;QACxB,wCAAO,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,UAAA,CAAA;QACxB,wCAAO,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,UAAA,CAAA;QACxB,wCAAO,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,UAAA,CAAA;QACxB,wCAAO,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,UAAA,CAAA;QACxB,wCAAO,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,UAAA,CAAA;QACxB,wCAAO,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,UAAA,CAAA;QACxB,wCAAO,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,UAAA,CAAA;IACzB,CAAC,EAVW,cAAc,GAAd,gBAAc,KAAd,gBAAc,QAUzB;IAED,MAAM,UAAU,GAAG,CAAE,IAAoB,EAAE,EAAE,CAAC,CAAE,IAAoB,EAAE,EAAE;QACvE,MAAM,GAAG,GAAG,EAAS,CAAA;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAAG,GAAG,CAAE,IAAI,CAAC,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QAC/D,OAAO,GAAG,CAAA;IACX,CAAC,CAAA;IAED,+DAA+D;IAC/D,MAAa,eAAgB,SAAQ,MAAM;QAE1C,WAAW,GAAG,MAAM,CAAE,gBAAgB,CAAE,CAAA;QAExC,KAAK,GAAG,IAAI,UAAU,CAAE,GAAG,CAAE,CAAA;QAC7B,MAAM,GAAG,IAAI,QAAQ,CAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAE,CAAA;QAE1C,uDAAuD;QACvD,IAAI,CAAE,IAAwB;YAE7B,IAAI,GAAG,GAAG,CAAC,CAAA;YACX,IAAI,QAAQ,GAAG,CAAC,CAAA;YAChB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAqB,CAAA;YAC5C,MAAM,KAAK,GAAG,EAAW,CAAA;YAEzB,MAAM,OAAO,GAAG,CAAE,IAAY,EAAE,EAAE;gBACjC,IAAI,IAAI,GAAG,CAAC;oBAAG,OAAM;gBACrB,QAAQ,IAAI,IAAI,CAAA;gBAChB,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,QAAQ;oBAAG,OAAM;gBAC9C,MAAM,OAAO,GAAG,IAAI,UAAU,CAAE,IAAI,CAAC,IAAI,CAAE,QAAQ,GAAG,IAAI,CAAE,GAAG,IAAI,CAAE,CAAA;gBACrE,OAAO,CAAC,GAAG,CAAE,IAAI,CAAC,KAAK,CAAE,CAAA;gBACzB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAA;gBACpB,IAAI,CAAC,MAAM,GAAG,IAAI,QAAQ,CAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAE,CAAA;YAChD,CAAC,CAAA;YAED,MAAM,OAAO,GAAG,CAAE,IAAY,EAAE,EAAE;gBACjC,QAAQ,IAAI,IAAI,CAAA;YACjB,CAAC,CAAA;YAED,MAAM,SAAS,GAAG,CAAE,GAAW,EAAG,EAAE;gBACnC,IAAI,GAAG,GAAG,aAAa,CAAC,EAAE;oBAAG,OAAO,CAAC,CAAA;gBACrC,IAAI,GAAG,GAAG,CAAC,IAAE,CAAC;oBAAG,OAAO,CAAC,CAAA;gBACzB,IAAI,GAAG,GAAG,CAAC,IAAE,EAAE;oBAAG,OAAO,CAAC,CAAA;gBAC1B,IAAI,GAAG,GAAG,CAAC,IAAE,EAAE;oBAAG,OAAO,CAAC,CAAA;gBAC1B,IAAI,GAAG,GAAG,EAAE,IAAE,GAAG;oBAAG,OAAO,CAAC,CAAA;gBAC5B,OAAO,SAAS,CAAE,IAAI,KAAK,CAAE,kBAAkB,CAAE,CAAE,CAAA;YACpD,CAAC,CAAA;YAED,MAAM,SAAS,GAAG,CAAE,GAAW,EAAE,GAAoB,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE;gBAEnE,IAAI,GAAG,GAAG,aAAa,CAAC,EAAE,EAAG,CAAC;oBAC7B,IAAI,CAAC,KAAK,CAAE,GAAG,EAAG,CAAE,GAAG,GAAG,GAAG,MAAM,CAAE,GAAG,CAAE,CAAA;oBAC1C,OAAO,CAAC,CAAC,CAAC,CAAA;oBACV,OAAM;gBACP,CAAC;gBAED,IAAI,GAAG,IAAI,aAAa,CAAC,IAAI,EAAG,CAAC;oBAChC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;oBACjC,IAAI,MAAM,KAAK,SAAS;wBAAG,OAAO,SAAS,CAAE,aAAa,CAAC,IAAI,EAAE,MAAM,CAAE,CAAA;gBAC1E,CAAC;gBAED,IAAI,GAAG,GAAG,CAAC,IAAE,CAAC,EAAG,CAAC;oBACjB,IAAI,CAAC,KAAK,CAAE,GAAG,EAAG,CAAE,GAAG,GAAG,GAAG,aAAa,CAAC,EAAE,CAAA;oBAC7C,IAAI,CAAC,KAAK,CAAE,GAAG,EAAG,CAAE,GAAG,MAAM,CAAE,GAAG,CAAE,CAAA;oBACpC,OAAO,CAAC,CAAC,CAAC,CAAA;gBACX,CAAC;qBAAM,IAAI,GAAG,GAAG,CAAC,IAAE,EAAE,EAAG,CAAC;oBACzB,IAAI,CAAC,KAAK,CAAE,GAAG,EAAG,CAAE,GAAG,GAAG,GAAG,aAAa,CAAC,EAAE,CAAA;oBAC7C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAE,GAAG,EAAE,MAAM,CAAE,GAAG,CAAE,EAAE,IAAI,CAAE,CAAA;oBACjD,GAAG,IAAI,CAAC,CAAA;oBACR,OAAO,CAAC,CAAC,CAAC,CAAA;gBACX,CAAC;qBAAM,IAAI,GAAG,GAAG,CAAC,IAAE,EAAE,EAAG,CAAC;oBACzB,IAAI,CAAC,KAAK,CAAE,GAAG,EAAG,CAAE,GAAG,GAAG,GAAG,aAAa,CAAC,EAAE,CAAA;oBAC7C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAE,GAAG,EAAE,MAAM,CAAE,GAAG,CAAE,EAAE,IAAI,CAAE,CAAA;oBACjD,GAAG,IAAI,CAAC,CAAA;oBACR,OAAO,CAAC,CAAC,CAAC,CAAA;gBACX,CAAC;qBAAM,IAAI,GAAG,GAAG,EAAE,IAAE,GAAG,EAAG,CAAC;oBAC3B,IAAI,CAAC,KAAK,CAAE,GAAG,EAAG,CAAE,GAAG,GAAG,GAAG,aAAa,CAAC,EAAE,CAAA;oBAC7C,IAAI,CAAC,MAAM,CAAC,YAAY,CAAE,GAAG,EAAE,MAAM,CAAE,GAAG,CAAE,EAAE,IAAI,CAAE,CAAA;oBACpD,GAAG,IAAI,CAAC,CAAA;gBACT,CAAC;qBAAM,CAAC;oBACP,SAAS,CAAE,GAAa,CAAE,CAAA;gBAC3B,CAAC;gBAED,IAAI,GAAG,IAAI,aAAa,CAAC,IAAI;oBAAG,OAAO,CAAC,GAAG,CAAE,GAAG,EAAE,OAAO,CAAC,IAAI,CAAE,CAAA;YAEjE,CAAC,CAAA;YAED,MAAM,SAAS,GAAG,CAAE,GAAoB,EAAE,EAAE;gBAE3C,IAAI,GAAG,GAAG,CAAE,aAAa,CAAC,EAAE,EAAG,CAAC;oBAC/B,IAAI,CAAC,KAAK,CAAE,GAAG,EAAG,CAAE,GAAG,MAAM,CAAE,GAAG,CAAE,CAAA;oBACpC,OAAO,CAAC,CAAC,CAAC,CAAA;oBACV,OAAM;gBACP,CAAC;gBAED,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;gBACjC,IAAI,MAAM,KAAK,SAAS;oBAAG,OAAO,SAAS,CAAE,aAAa,CAAC,IAAI,EAAE,MAAM,CAAE,CAAA;gBAEzE,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,EAAG,CAAC;oBACrB,IAAI,CAAC,KAAK,CAAE,GAAG,EAAG,CAAE,GAAG,CAAE,aAAa,CAAC,EAAE,CAAA;oBACzC,IAAI,CAAC,KAAK,CAAE,GAAG,EAAG,CAAE,GAAG,MAAM,CAAE,GAAG,CAAE,CAAA;oBACpC,OAAO,CAAC,CAAC,CAAC,CAAA;gBACX,CAAC;qBAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAE,EAAE,CAAC,EAAG,CAAC;oBAC7B,IAAI,CAAC,KAAK,CAAE,GAAG,EAAG,CAAE,GAAI,CAAC,aAAa,CAAC,EAAE,CAAA;oBACzC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAE,GAAG,EAAE,MAAM,CAAE,GAAG,CAAE,EAAE,IAAI,CAAE,CAAA;oBAChD,GAAG,IAAI,CAAC,CAAA;oBACR,OAAO,CAAC,CAAC,CAAC,CAAA;gBACX,CAAC;qBAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAE,EAAE,CAAC,EAAG,CAAC;oBAC7B,IAAI,CAAC,KAAK,CAAE,GAAG,EAAG,CAAE,GAAG,CAAE,aAAa,CAAC,EAAE,CAAA;oBACzC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAE,GAAG,EAAE,MAAM,CAAE,GAAG,CAAE,EAAE,IAAI,CAAE,CAAA;oBAChD,GAAG,IAAI,CAAC,CAAA;oBACR,OAAO,CAAC,CAAC,CAAC,CAAA;gBACX,CAAC;qBAAM,IAAI,GAAG,IAAI,CAAC,CAAC,EAAE,IAAE,GAAG,CAAC,EAAG,CAAC;oBAC/B,IAAI,CAAC,KAAK,CAAE,GAAG,EAAG,CAAE,GAAG,CAAE,aAAa,CAAC,EAAE,CAAA;oBACzC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAE,GAAG,EAAE,MAAM,CAAE,GAAG,CAAE,EAAE,IAAI,CAAE,CAAA;oBACnD,GAAG,IAAI,CAAC,CAAA;gBACT,CAAC;qBAAM,CAAC;oBACP,SAAS,CAAE,GAAa,CAAE,CAAA;gBAC3B,CAAC;gBAED,OAAO,CAAC,GAAG,CAAE,GAAG,EAAE,OAAO,CAAC,IAAI,CAAE,CAAA;YAEjC,CAAC,CAAA;YAED,MAAM,SAAS,GAAG,CAAE,GAAW,EAAE,EAAE;gBAElC,MAAM,GAAG,GAAG,kBAAkB,CAAE,GAAa,CAAE,CAAA;gBAE/C,IAAI,GAAG,CAAC,UAAU,GAAG,CAAE,CAAC,IAAE,EAAE,GAAG,CAAC,CAAE;oBAAG,SAAS,CAAE,IAAI,KAAK,CAAE,iBAAiB,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAE,CAAE,CAAA;gBACpG,OAAO,CAAE,GAAG,CAAC,UAAU,GAAG,CAAC,CAAE,CAAA;gBAE7B,IAAI,CAAC,KAAK,CAAE,GAAG,EAAG,CAAE,GAAG,CAAE,aAAa,CAAC,EAAE,CAAA;gBACzC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAE,GAAG,EAAE,GAAG,CAAC,UAAU,GAAG,CAAC,EAAE,IAAI,CAAE,CAAA;gBACtD,GAAG,IAAI,CAAC,CAAA;gBAER,IAAI,CAAC,KAAK,CAAC,GAAG,CAAE,GAAG,EAAE,GAAG,CAAE,CAAA;gBAC1B,GAAG,IAAI,GAAG,CAAC,UAAU,CAAA;YAEtB,CAAC,CAAA;YAED,MAAM,UAAU,GAAG,CAAE,GAAW,EAAE,EAAE;gBAEnC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;gBACjC,IAAI,MAAM,KAAK,SAAS;oBAAG,OAAO,SAAS,CAAE,aAAa,CAAC,IAAI,EAAE,MAAM,CAAE,CAAA;gBAEzE,IAAI,CAAC,KAAK,CAAE,GAAG,EAAG,CAAE,GAAG,cAAc,CAAC,IAAI,CAAA;gBAC1C,IAAI,CAAC,MAAM,CAAC,UAAU,CAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAE,CAAA;gBACxC,GAAG,IAAI,CAAC,CAAA;gBAER,OAAO,CAAC,GAAG,CAAE,GAAG,EAAE,OAAO,CAAC,IAAI,CAAE,CAAA;YACjC,CAAC,CAAA;YAED,MAAM,WAAW,GAAG,CAAE,GAAW,EAAE,EAAE;gBAEpC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;gBACjC,IAAI,MAAM,KAAK,SAAS;oBAAG,OAAO,SAAS,CAAE,aAAa,CAAC,IAAI,EAAE,MAAM,CAAE,CAAA;gBAEzE,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAA;gBAClC,MAAM,QAAQ,GAAG,SAAS,CAAE,OAAO,CAAE,CAAA;gBAErC,OAAO,CAAE,OAAO,CAAE,CAAA;gBAClB,MAAM,GAAG,GAAG,0BAA0B,CAAE,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,GAAG,QAAQ,CAAE,CAAA;gBACzE,SAAS,CAAE,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAE,CAAA;gBAC7C,GAAG,IAAI,GAAG,CAAA;gBACV,OAAO,CAAE,OAAO,GAAG,GAAG,CAAE,CAAA;gBAExB,OAAO,CAAC,GAAG,CAAE,GAAG,EAAE,OAAO,CAAC,IAAI,CAAE,CAAA;gBAChC,OAAM;YAEP,CAAC,CAAA;YAED,MAAM,WAAW,GAAG,CAAE,GAAmC,EAAE,EAAE;gBAE5D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;gBACjC,IAAI,MAAM,KAAK,SAAS;oBAAG,OAAO,SAAS,CAAE,aAAa,CAAC,IAAI,EAAE,MAAM,CAAE,CAAA;gBAEzE,SAAS,CAAE,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,CAAE,CAAA;gBAC/C,OAAO,CAAE,CAAC,GAAG,GAAG,CAAC,UAAU,CAAE,CAAA;gBAE7B,IAAI,GAAG,YAAY,UAAU;oBAAG,IAAI,CAAC,KAAK,CAAE,GAAG,EAAG,CAAE,GAAG,aAAa,CAAC,IAAI,GAAG,aAAa,CAAC,EAAE,CAAA;qBACvF,IAAI,GAAG,YAAY,WAAW;oBAAG,IAAI,CAAC,KAAK,CAAE,GAAG,EAAG,CAAE,GAAG,aAAa,CAAC,IAAI,GAAG,aAAa,CAAC,EAAE,CAAA;qBAC7F,IAAI,GAAG,YAAY,WAAW;oBAAG,IAAI,CAAC,KAAK,CAAE,GAAG,EAAG,CAAE,GAAG,aAAa,CAAC,IAAI,GAAG,aAAa,CAAC,EAAE,CAAA;qBAC7F,IAAI,GAAG,YAAY,cAAc;oBAAG,IAAI,CAAC,KAAK,CAAE,GAAG,EAAG,CAAE,GAAG,aAAa,CAAC,IAAI,GAAG,aAAa,CAAC,EAAE,CAAA;qBAEhG,IAAI,GAAG,YAAY,SAAS;oBAAG,IAAI,CAAC,KAAK,CAAE,GAAG,EAAG,CAAE,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,EAAE,CAAA;qBAC5F,IAAI,GAAG,YAAY,UAAU;oBAAG,IAAI,CAAC,KAAK,CAAE,GAAG,EAAG,CAAE,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,EAAE,CAAA;qBAC7F,IAAI,GAAG,YAAY,UAAU;oBAAG,IAAI,CAAC,KAAK,CAAE,GAAG,EAAG,CAAE,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,EAAE,CAAA;qBAC7F,IAAI,GAAG,YAAY,aAAa;oBAAG,IAAI,CAAC,KAAK,CAAE,GAAG,EAAG,CAAE,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,EAAE,CAAA;qBAEhG,IAAI,OAAO,YAAY,KAAK,UAAU,IAAI,GAAG,YAAY,YAAY;oBAAG,IAAI,CAAC,KAAK,CAAE,GAAG,EAAG,CAAE,GAAG,cAAc,CAAC,IAAI,CAAA;qBAClH,IAAI,GAAG,YAAY,YAAY;oBAAG,IAAI,CAAC,KAAK,CAAE,GAAG,EAAG,CAAE,GAAG,cAAc,CAAC,IAAI,CAAA;qBAC5E,IAAI,GAAG,YAAY,YAAY;oBAAG,IAAI,CAAC,KAAK,CAAE,GAAG,EAAG,CAAE,GAAG,cAAc,CAAC,IAAI,CAAA;;oBAE5E,SAAS,CAAE,IAAI,KAAK,CAAE,kBAAkB,CAAE,CAAE,CAAA;gBAEjD,MAAM,GAAG,GAAG,CAAE,GAAG,YAAY,UAAU,CAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,UAAU,CAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAE,CAAA;gBAC9G,IAAI,CAAC,KAAK,CAAC,GAAG,CAAE,GAAG,EAAE,GAAG,CAAE,CAAA;gBAC1B,GAAG,IAAI,GAAG,CAAC,UAAU,CAAA;gBAErB,OAAO,CAAC,GAAG,CAAE,GAAG,EAAE,OAAO,CAAC,IAAI,CAAE,CAAA;YACjC,CAAC,CAAA;YAED,MAAM,SAAS,GAAG,CAAE,GAAU,EAAE,EAAE;gBAEjC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;gBACjC,IAAI,MAAM,KAAK,SAAS;oBAAG,OAAO,SAAS,CAAE,aAAa,CAAC,IAAI,EAAE,MAAM,CAAE,CAAA;gBAEzE,SAAS,CAAE,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAE,CAAA;gBAC3C,OAAO,CAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAE,CAAA;gBAEzB,IAAI,KAAK,CAAC,QAAQ,CAAE,GAAG,CAAE;oBAAG,SAAS,CAAE,IAAI,KAAK,CAAE,aAAa,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAE,CAAE,CAAA;gBAC9F,KAAK,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;gBAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,EAAG,CAAC;oBAAG,IAAI,CAAE,GAAG,CAAC,CAAC,CAAC,CAAE,CAAA;gBAErD,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG;oBAAG,SAAS,CAAE,IAAI,KAAK,CAAE,cAAc,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAE,CAAE,CAAA;gBAC9F,KAAK,CAAC,GAAG,EAAE,CAAA;gBAEX,OAAO,CAAC,GAAG,CAAE,GAAG,EAAE,OAAO,CAAC,IAAI,CAAE,CAAA;YAEjC,CAAC,CAAA;YAED,MAAM,MAAM,GAAG,IAAI,GAAG,EAAmB,CAAA;YACzC,MAAM,KAAK,GAAG,CAAE,GAAQ,EAAE,EAAE;gBAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;gBAChC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;gBAC/B,IAAI,KAAK;oBAAG,OAAO,KAAK,CAAA;gBACxB,MAAM,CAAC,GAAG,CAAE,GAAG,EAAE,KAAK,CAAE,CAAA;gBACxB,OAAO,KAAK,CAAA;YACb,CAAC,CAAA;YAED,MAAM,WAAW,GAAG,CAAE,GAAW,EAAE,EAAE;gBAEpC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;gBACjC,IAAI,MAAM,KAAK,SAAS;oBAAG,OAAO,SAAS,CAAE,aAAa,CAAC,IAAI,EAAE,MAAM,CAAE,CAAA;gBAEzE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAE,GAAG,CAAE,EAAE,CAAE,GAAG,CAAE,IAAI,CAAE,KAAK,CAAE,GAAG,CAAE,EAAE,MAAM,CAAC,MAAM,CAAE,GAAG,CAAE,CAAE,CAAA;gBAErG,SAAS,CAAE,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAE,CAAA;gBAC5C,OAAO,CAAE,CAAC,IAAI,CAAC,MAAM,GAAC,CAAC,CAAC,GAAG,CAAC,CAAE,CAAA;gBAC9B,SAAS,CAAE,IAAI,CAAE,CAAA;gBAEjB,IAAI,KAAK,CAAC,QAAQ,CAAE,GAAG,CAAE;oBAAG,SAAS,CAAE,IAAI,KAAK,CAAE,aAAa,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAE,CAAE,CAAA;gBAC9F,KAAK,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;gBAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAG,CAAC;oBAAG,IAAI,CAAE,IAAI,CAAC,CAAC,CAAC,CAAE,CAAA;gBAEvD,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG;oBAAG,SAAS,CAAE,IAAI,KAAK,CAAE,cAAc,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAE,CAAE,CAAA;gBAC9F,KAAK,CAAC,GAAG,EAAE,CAAA;gBAEX,OAAO,CAAC,GAAG,CAAE,GAAG,EAAE,OAAO,CAAC,IAAI,CAAE,CAAA;YACjC,CAAC,CAAA;YAED,MAAM,OAAO,GAA8C;gBAC1D,SAAS,EAAE,GAAE,EAAE;oBACd,IAAI,CAAC,KAAK,CAAE,GAAG,EAAG,CAAE,GAAG,cAAc,CAAC,IAAI,CAAA;oBAC1C,QAAQ,IAAI,CAAC,CAAA;gBACd,CAAC;gBACD,OAAO,EAAE,GAAG,CAAC,EAAE;oBACd,IAAI,CAAC,KAAK,CAAE,GAAG,EAAG,CAAE,GAAG,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAA;oBACtE,QAAQ,IAAI,CAAC,CAAA;gBACd,CAAC;gBACD,MAAM,EAAE,GAAG,CAAC,EAAE;oBACb,IAAI,CAAC,MAAM,CAAC,SAAS,CAAE,GAAG,CAAE;wBAAG,UAAU,CAAE,GAAa,CAAE,CAAA;;wBACrD,OAAO,CAAC,MAAM,CAAE,GAAG,CAAE,CAAA;gBAC3B,CAAC;gBACD,MAAM,EAAE,GAAG,CAAC,EAAE;oBACb,IAAI,GAAa,GAAG,CAAC,EAAG,CAAC;wBACxB,SAAS,CAAE,GAAa,CAAE,CAAA;oBAC3B,CAAC;yBAAM,CAAC;wBACP,SAAS,CAAE,aAAa,CAAC,IAAI,EAAE,GAAa,CAAE,CAAA;oBAC/C,CAAC;gBACF,CAAC;gBACD,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,WAAW,CAAE,GAAa,CAAE;gBAC3C,MAAM,EAAE,GAAG,CAAC,EAAE;oBACb,IAAI,CAAC,GAAG,EAAG,CAAC;wBACX,QAAQ,IAAI,CAAC,CAAA;wBACb,OAAO,IAAI,CAAC,KAAK,CAAE,GAAG,EAAG,CAAE,GAAG,cAAc,CAAC,IAAI,CAAA;oBAClD,CAAC;oBACD,IAAI,KAAK,CAAC,OAAO,CAAE,GAAG,CAAE;wBAAG,OAAO,SAAS,CAAE,GAAG,CAAE,CAAA;oBAClD,IAAI,WAAW,CAAC,MAAM,CAAE,GAAG,CAAE;wBAAG,OAAO,WAAW,CAAE,GAAqC,CAAE,CAAA;oBAE3F,OAAO,WAAW,CAAE,GAAG,CAAE,CAAA;gBAC1B,CAAC;aACD,CAAA;YAED,wCAAwC;YACxC,MAAM,IAAI,GAAG,CAAE,GAAY,EAAE,EAAE;gBAC9B,MAAM,MAAM,GAAG,OAAO,CAAE,OAAO,GAAG,CAAE,CAAA;gBACpC,IAAI,CAAC,MAAM;oBAAG,SAAS,CAAE,IAAI,KAAK,CAAE,kBAAkB,CAAE,CAAE,CAAA;gBAC1D,MAAM,CAAE,GAAG,CAAE,CAAA;YACd,CAAC,CAAA;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAG,CAAC,EAAG,CAAC;gBACxC,QAAQ,IAAI,CAAC,CAAA;gBACb,IAAI,CAAE,IAAI,CAAC,CAAC,CAAC,CAAE,CAAA;gBACf,IAAI,KAAK,CAAC,MAAM;oBAAG,SAAS,CAAE,IAAI,KAAK,CAAE,iBAAiB,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAE,CAAA;gBACnG,OAAO,CAAC,KAAK,EAAE,CAAA;YAChB,CAAC;YAED,IAAI,GAAG,KAAK,QAAQ;gBAAG,SAAS,CAAE,IAAI,KAAK,CAAE,yBAAyB,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAE,CAAE,CAAA;YAEpH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAE,CAAC,EAAE,GAAG,CAAE,CAAA;QAElC,CAAC;QAED,gDAAgD;QAChD,IAAI,CAAE,KAAgC;YAErC,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAE,CAAA;YAC/E,MAAM,MAAM,GAAG,EAAe,CAAA;YAC9B,IAAI,GAAG,GAAG,CAAC,CAAC;YAEZ,MAAM,SAAS,GAAG,CAAE,IAAY,EAAE,EAAE;gBAEnC,EAAG,GAAG,CAAA;gBACN,MAAM,GAAG,GAAG,IAAI,GAAG,OAAO,CAAA;gBAC1B,IAAI,GAAG,GAAG,aAAa,CAAC,EAAE;oBAAG,OAAO,GAAG,CAAA;gBAEvC,IAAI,GAAG,GAAG,CAAoB,CAAA;gBAE9B,IAAI,GAAG,KAAK,aAAa,CAAC,EAAE,EAAG,CAAC;oBAC/B,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAE,GAAG,EAAG,CAAE,CAAA;gBAChC,CAAC;qBAAM,IAAI,GAAG,KAAK,aAAa,CAAC,EAAE,EAAG,CAAC;oBACtC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;oBACnC,GAAG,IAAI,CAAC,CAAA;gBACT,CAAC;qBAAM,IAAI,GAAG,KAAK,aAAa,CAAC,EAAE,EAAG,CAAC;oBACtC,GAAG,GAAG,MAAM,CAAC,SAAS,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;oBACnC,GAAG,IAAI,CAAC,CAAA;gBACT,CAAC;qBAAM,IAAI,GAAG,KAAK,aAAa,CAAC,EAAE,EAAG,CAAC;oBACtC,GAAG,GAAG,MAAM,CAAC,YAAY,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;oBACtC,IAAI,GAAG,IAAI,MAAM,CAAC,gBAAgB;wBAAG,GAAG,GAAG,MAAM,CAAE,GAAG,CAAE,CAAA;oBACxD,GAAG,IAAI,CAAC,CAAA;gBACT,CAAC;qBAAM,CAAC;oBACP,SAAS,CAAE,IAAI,KAAK,CAAE,kBAAkB,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAE,CAAE,CAAA;gBACjE,CAAC;gBAED,IAAI,CAAE,IAAI,GAAG,WAAW,CAAE,KAAK,aAAa,CAAC,IAAI;oBAAG,MAAM,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;gBAEtE,OAAO,GAAG,CAAA;YACX,CAAC,CAAA;YAED,MAAM,SAAS,GAAG,CAAE,IAAY,EAAE,EAAE;gBAEnC,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAE,GAAG,EAAG,CAAE,CAAA;gBACpC,IAAI,GAAG,GAAG,CAAE,aAAa,CAAC,EAAE;oBAAG,OAAO,GAAG,CAAA;gBAEzC,IAAI,GAAG,GAAG,CAAoB,CAAA;gBAE9B,IAAI,GAAG,KAAK,CAAE,aAAa,CAAC,EAAE,EAAG,CAAC;oBACjC,GAAG,GAAG,MAAM,CAAC,OAAO,CAAE,GAAG,EAAG,CAAE,CAAA;gBAC/B,CAAC;qBAAM,IAAI,GAAG,KAAK,CAAE,aAAa,CAAC,EAAE,EAAG,CAAC;oBACxC,GAAG,GAAE,MAAM,CAAC,QAAQ,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;oBACjC,GAAG,IAAI,CAAC,CAAA;gBACT,CAAC;qBAAM,IAAI,GAAG,KAAK,CAAE,aAAa,CAAC,EAAE,EAAG,CAAC;oBACxC,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;oBAClC,GAAG,IAAI,CAAC,CAAA;gBACT,CAAC;qBAAM,IAAI,GAAG,KAAK,CAAE,aAAa,CAAC,EAAE,EAAG,CAAC;oBACxC,GAAG,GAAG,MAAM,CAAC,WAAW,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;oBACrC,IAAI,GAAG,IAAI,MAAM,CAAC,gBAAgB,IAAI,GAAG,IAAI,MAAM,CAAC,gBAAgB;wBAAG,GAAG,GAAG,MAAM,CAAE,GAAG,CAAE,CAAA;oBAC1F,GAAG,IAAI,CAAC,CAAA;gBACT,CAAC;qBAAM,IAAI,GAAG,KAAK,CAAE,aAAa,CAAC,EAAE,EAAG,CAAC;oBACxC,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAE,GAAG,EAAE,IAAI,CAAE,GAAG,CAAC,CAAA;oBAC7C,GAAG,IAAI,CAAC,CAAA;oBACR,GAAG,GAAG,kBAAkB,CAAE,IAAI,UAAU,CAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,GAAG,GAAG,EAAE,GAAG,CAAE,CAAE,CAAA;oBACzF,GAAG,IAAI,GAAG,CAAA;gBACX,CAAC;qBAAM,CAAC;oBACP,SAAS,CAAE,IAAI,KAAK,CAAE,kBAAkB,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAE,CAAE,CAAA;gBACjE,CAAC;gBAED,MAAM,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;gBAElB,OAAO,GAAG,CAAA;YACX,CAAC,CAAA;YAED,MAAM,SAAS,GAAG,CAAE,IAAY,EAAE,EAAE;gBACnC,MAAM,GAAG,GAAG,SAAS,CAAE,IAAI,CAAY,CAAA;gBACvC,MAAM,IAAI,GAAG,uBAAuB,CAAE,IAAI,UAAU,CAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,GAAG,GAAG,EAAE,GAAG,CAAE,CAAE,CAAA;gBACnG,GAAG,IAAI,GAAG,CAAA;gBACV,MAAM,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;gBACnB,OAAO,IAAI,CAAA;YACZ,CAAC,CAAA;YAED,MAAM,WAAW,GAAG,CAAE,GAAW,EAAE,UAAoE,EAAE,EAAE;gBAC1G,MAAM,GAAG,GAAG,IAAI,UAAU,CAAE,KAAK,CAAC,KAAK,CAAE,GAAG,EAAE,GAAG,GAAG,GAAG,CAAE,CAAC,MAAM,CAAE,CAAA;gBAClE,GAAG,IAAI,GAAG,CAAA;gBACV,MAAM,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;gBAClB,OAAO,GAAG,CAAA;YACX,CAAC,CAAA;YAED,MAAM,SAAS,GAAG,CAAE,IAAY,EAAE,EAAE;gBAEnC,MAAM,GAAG,GAAG,SAAS,CAAE,IAAI,CAAY,CAAA;gBACvC,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAE,GAAG,EAAG,CAAE,CAAA;gBAE3C,QAAQ,SAAS,EAAG,CAAC;oBAEpB,KAAK,aAAa,CAAC,EAAE,CAAC,CAAC,OAAO,WAAW,CAAE,GAAG,EAAE,UAAU,CAAE,CAAA;oBAC5D,KAAK,aAAa,CAAC,EAAE,CAAC,CAAC,OAAO,WAAW,CAAE,GAAG,EAAE,WAAW,CAAE,CAAA;oBAC7D,KAAK,aAAa,CAAC,EAAE,CAAC,CAAC,OAAO,WAAW,CAAE,GAAG,EAAE,WAAW,CAAE,CAAA;oBAC7D,KAAK,aAAa,CAAC,EAAE,CAAC,CAAC,OAAO,WAAW,CAAE,GAAG,EAAE,cAAc,CAAE,CAAA;oBAEhE,KAAK,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,OAAO,WAAW,CAAE,GAAG,EAAE,SAAS,CAAE,CAAA;oBAClE,KAAK,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,OAAO,WAAW,CAAE,GAAG,EAAE,UAAU,CAAE,CAAA;oBACnE,KAAK,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,OAAO,WAAW,CAAE,GAAG,EAAE,UAAU,CAAE,CAAA;oBACnE,KAAK,CAAC,aAAa,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,OAAO,WAAW,CAAE,GAAG,EAAE,aAAa,CAAE,CAAA;oBAEtE,KAAK,aAAa,CAAC,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,OAAO,WAAW,CAAE,GAAG,EAAE,YAAY,CAAE,CAAA;oBACtF,KAAK,aAAa,CAAC,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,OAAO,WAAW,CAAE,GAAG,EAAE,YAAY,CAAE,CAAA;oBACtF,KAAK,aAAa,CAAC,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,OAAO,WAAW,CAAE,GAAG,EAAE,YAAY,CAAE,CAAA;oBAEtF;wBACC,SAAS,CAAE,IAAI,KAAK,CAAE,4BAA4B,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,CAAE,CAAE,CAAA;gBAClF,CAAC;YAEF,CAAC,CAAA;YAED,MAAM,SAAS,GAAG,CAAE,IAAY,EAAE,EAAE;gBACnC,MAAM,GAAG,GAAG,SAAS,CAAE,IAAI,CAAY,CAAA;gBACvC,MAAM,IAAI,GAAG,IAAI,KAAK,CAAE,GAAG,CAAW,CAAA;gBACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC;oBAAG,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,CAAA;gBACpD,MAAM,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;gBACnB,OAAO,IAAI,CAAA;YACZ,CAAC,CAAA;YAED,MAAM,SAAS,GAAG,CAAE,IAAY,EAAE,EAAE;gBACnC,MAAM,KAAK,GAAG,SAAS,CAAE,IAAI,CAAY,CAAA;gBACzC,IAAI,KAAK,IAAI,MAAM,CAAC,MAAM;oBAAG,SAAS,CAAE,IAAI,KAAK,CAAE,iBAAiB,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,CAAE,CAAE,CAAA;gBACrH,OAAO,MAAM,CAAE,KAAK,CAAE,CAAA;YACvB,CAAC,CAAA;YAED,MAAM,SAAS,GAAG,CAAE,IAAY,EAAE,EAAE;gBAEnC,MAAM,GAAG,GAAG,SAAS,CAAE,IAAI,CAAY,CAAA;gBAEvC,MAAM,IAAI,GAAG,SAAS,EAAuB,CAAA;gBAC7C,MAAM,IAAI,GAAG,IAAI,KAAK,CAAE,GAAG,CAAW,CAAA;gBACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC;oBAAG,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,CAAA;gBAEpD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,IAAI,EAAE,IAAI,CAAE,CAAA;gBAEnC,MAAM,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;gBAElB,OAAO,GAAG,CAAA;YACX,CAAC,CAAA;YAED,MAAM,SAAS,GAAG,CAAE,IAAY,EAAE,EAAE;gBAEnC,QAAQ,IAAI,EAAG,CAAC;oBAEf,KAAK,cAAc,CAAC,IAAI;wBACvB,EAAG,GAAG,CAAA;wBACN,OAAO,IAAI,CAAA;oBAEZ,KAAK,cAAc,CAAC,IAAI;wBACvB,EAAG,GAAG,CAAA;wBACN,OAAO,KAAK,CAAA;oBAEb,KAAK,cAAc,CAAC,IAAI;wBACvB,EAAG,GAAG,CAAA;wBACN,OAAO,IAAI,CAAA;oBAEZ,KAAK,cAAc,CAAC,IAAI;wBACvB,EAAG,GAAG,CAAA;wBACN,OAAO,SAAS,CAAA;oBAEjB,KAAK,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;wBAC1B,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAE,EAAG,GAAG,EAAE,IAAI,CAAE,CAAA;wBAC7C,MAAM,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;wBAClB,GAAG,IAAI,CAAC,CAAA;wBACR,OAAO,GAAG,CAAA;oBACX,CAAC;oBAED,KAAK,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;wBAC1B,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAE,EAAG,GAAG,EAAE,IAAI,CAAE,CAAA;wBAC7C,MAAM,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;wBAClB,GAAG,IAAI,CAAC,CAAA;wBACR,OAAO,GAAG,CAAA;oBACX,CAAC;oBAED,KAAK,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;wBAC1B,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAE,EAAG,GAAG,EAAE,IAAI,CAAE,CAAA;wBAC7C,MAAM,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;wBAClB,GAAG,IAAI,CAAC,CAAA;wBACR,OAAO,GAAG,CAAA;oBACX,CAAC;oBAED;wBACC,SAAS,CAAE,IAAI,KAAK,CAAE,kBAAkB,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,CAAE,CAAE,CAAA;gBAEnE,CAAC;YAEF,CAAC,CAAA;YAED,MAAM,SAAS,GAAG,GAAE,EAAE;gBAErB,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAE,GAAG,CAAE,CAAA;gBACnC,MAAM,GAAG,GAAG,IAAI,GAAG,WAAW,CAAA;gBAE9B,QAAQ,GAAG,EAAG,CAAC;oBAEd,KAAK,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,SAAS,CAAE,IAAI,CAAE,CAAA;oBACjD,KAAK,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,SAAS,CAAE,IAAI,CAAE,CAAA;oBACjD,KAAK,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,SAAS,CAAE,IAAI,CAAE,CAAA;oBACjD,KAAK,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,SAAS,CAAE,IAAI,CAAE,CAAA;oBACjD,KAAK,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,SAAS,CAAE,IAAI,CAAE,CAAA;oBACjD,KAAK,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,SAAS,CAAE,IAAI,CAAE,CAAA;oBACjD,KAAK,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,SAAS,CAAE,IAAI,CAAE,CAAA;oBACjD,KAAK,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,SAAS,CAAE,IAAI,CAAE,CAAA;oBAEjD,OAAO,CAAC,CAAC,SAAS,CAAE,IAAI,KAAK,CAAE,iBAAiB,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAE,CAAE,CAAA;gBACzE,CAAC;YAEF,CAAC,CAAA;YAED,MAAM,MAAM,GAAG,EAAe,CAAA;YAC9B,OAAO,GAAG,GAAG,KAAK,CAAC,UAAU,EAAG,CAAC;gBAChC,MAAM,CAAC,IAAI,CAAE,SAAS,EAAE,CAAE,CAAA;gBAC1B,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;YAClB,CAAC;YAED,OAAO,MAAM,CAAA;QACd,CAAC;QAED,UAAU,GAAG,IAAI,GAAG,CAAuB;YAC1C,CAAE,IAAI,EAAE,GAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAE;SACnB,CAAC,CAAA;QAEF,qCAAqC;QACrC,IAAI;YACH,MAAM,IAAI,GAAG,IAAI,eAAe,CAAA;YAChC,MAAM,CAAC,cAAc,CAAE,IAAI,EAAE,IAAI,CAAE,CAAA;YACnC,MAAM,WAAW,GAAG,CAAE,GAA8B,EAAiB,EAAE,CAAC,IAAI,GAAG,CAC9E,CAAE,GAAI,GAAG,CAAE,CAAC,GAAG,CACd,CAAC,CAAE,CAAC,EAAE,CAAC,CAAE,EAAC,EAAE,CAAC,CAAE,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAE,CAAC,CAAE,CAAE,CACrD,CACD,CAAA;YACD,IAAI,CAAC,UAAU,GAAG,WAAW,CAAE,IAAI,CAAC,UAAU,CAAE,CAAA;YAChD,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,IAAI,CAAE,IAAuB,EAAE,IAAwB;YAEtD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAA;YACnC,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;YAE3B,IAAI,CAAC,IAAI;gBAAG,IAAI,CAAC,GAAG,CAAE,IAAI,EAAE,IAAI,GAAG,UAAU,CAAE,IAAI,CAAE,CAAE,CAAA;YAEvD,OAAO,IAAI,CAAE,IAAI,CAAE,CAAA;QACpB,CAAC;QAED,SAAS,CAAE,IAAuB;YAEjC,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAA;YAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAG,CAAC,EAAG,CAAC;gBACxC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAE,IAAI,CAAC,CAAC,CAAC,CAAE,CAAA;gBAE7B,IAAI,GAAG;oBAAG,IAAI,GAAG,GAAG,CAAA;;oBACf,IAAI,CAAC,GAAG,CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,CAAE,CAAA;YAEzC,CAAC;YAED,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,IAAI,CAAE,GAAO;YACZ,OAAO,IAAI,CAAC,SAAS,CAAE,GAAG,CAAE,EAAE,CAAE,GAAG,CAAE,IAAI,CAAE,MAAM,CAAC,IAAI,CAAE,GAAG,CAAE,EAAE,MAAM,CAAC,MAAM,CAAE,GAAG,CAAE,CAAE,CAAA;QACtF,CAAC;QAED,SAAS,CAAE,GAAQ;YAElB,MAAM,IAAI,GAAG,GAAG,CAAE,IAAI,CAAC,WAAW,CAAE,CAAA;YACpC,IAAI,IAAI;gBAAG,OAAO,IAAI,CAAA;YAEtB,MAAM,GAAG,GAAG,MAAM,CAAC,cAAc,CAAE,IAAI,CAAE,CAAA;YACzC,IAAI,GAAG,KAAK,MAAM,CAAC,SAAS;gBAAG,OAAM;YAErC,OAAO,GAAG,CAAC,SAAS,CAAE,GAAG,CAAE,CAAA;QAC5B,CAAC;QAED,iCAAiC;QACjC,IAAI,CAID,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAK1B;YACA,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAC,GAAG,CAAE,IAAI,EAAE,IAAI,CAAE,CACvC;YAAE,IAAI,CAAC,SAAkB,CAAE,IAAI,CAAC,WAAW,CAAE,GAAG,CAAE,GAAa,EAAE,EAAE,CAAC,CAAE,IAAI,EAAE,IAAI,CAAE,GAAG,CAAE,CAAE,CAAA;QAC3F,CAAC;KAED;IA1kBY,iBAAe,kBA0kB3B,CAAA;IAEU,WAAS,GAAG,IAAI,eAAe,CAAA;IAE1C,yBAAyB;IACzB,EAAA,SAAS,CAAC,IAAI,CAAC;QACd,IAAI,EAAE,GAAG;QACT,IAAI,EAAE,CAAE,MAAM,EAAE,MAAM,CAAE;QACxB,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAE,CAAE,GAAI,GAAG,CAAC,IAAI,EAAE,CAAE,EAAE,CAAE,GAAI,GAAG,CAAC,MAAM,EAAE,CAAE,CAAE;QACzD,IAAI,EAAE,CAAC,CAAE,IAAI,EAAE,IAAI,CAAE,EAAC,EAAE,CAAC,IAAI,GAAG,CAAE,CAAE,IAAI,IAAI,EAAE,CAAE,CAAC,GAAG,CAAE,CAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAE,CAAE,CAAE;KACrF,CAAC,CAAA;IAEF,yBAAyB;IACzB,EAAA,SAAS,CAAC,IAAI,CAAC;QACd,IAAI,EAAE,GAAG;QACT,IAAI,EAAE,CAAE,KAAK,CAAE;QACf,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAE,CAAE,GAAI,GAAG,CAAC,MAAM,EAAE,CAAE,CAAE;QACrC,IAAI,EAAE,CAAC,CAAE,IAAI,CAAE,EAAC,EAAE,CAAC,IAAI,GAAG,CAAE,IAAI,CAAE;KAClC,CAAC,CAAA;IAEF,0BAA0B;IAC1B,EAAA,SAAS,CAAC,IAAI,CAAC;QACd,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,CAAE,WAAW,CAAE;QACrB,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAE,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAE;QACrC,IAAI,EAAE,CAAC,CAAE,EAAE,CAAE,EAAC,EAAE,CAAC,IAAI,IAAI,CAAE,EAAE,GAAG,IAAI,CAAE;KACtC,CAAC,CAAA;IAEF,IAAI,SAAS,IAAI,QAAQ,EAAG,CAAC,CAAC,oBAAoB;QACjD,6BAA6B;QAC7B,EAAA,SAAS,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,QAAQ,CAAC,OAAO;YACtB,IAAI,EAAE,CAAE,KAAK,CAAE;YACf,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAE,kBAAkB,CAAE,IAAI,CAAE,CAAE;YAC5C,IAAI,EAAE,CAAC,CAAE,IAAI,CAAE,EAAE,EAAE,CAAC,cAAc,CAAE,IAAI,EAAE,iBAAiB,CAAE,CAAC,eAAe;SAC7E,CAAC,CAAA;IACH,CAAC;AAEF,CAAC,EAxpBS,CAAC,KAAD,CAAC,QAwpBV;;;;ACxpBD,oBAAoB;AACpB,IAAU,CAAC,CAkVV;AAlVD,WAAU,GAAC;IAAC,IAAA,EAAE,CAkVb;IAlVW,WAAA,EAAE;QAEb,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,aAAa,CAAA;QACxE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,cAAc,CAAA;QACvD,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,aAAa,CAAA;QAC5C,MAAM,GAAG,GAAG,uBAAuB,CAAA;QAEnC,SAAS,KAAK,CAAE,IAAwB,EAAE,KAAwB,EAAE,IAAI,GAAG,SAAS;YACnF,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;YAC9B,iBAAiB,CAAE,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,EAAE,IAAI,CAAE,CAAA;YAC5C,iBAAiB,CAAE,IAAI,EAAE,IAAI,UAAU,CAAE,KAAK,CAAE,CAAE,CAAA;QACnD,CAAC;QAED,SAAS,CAAC;YAET,mBAAmB,CAAE,CAAC;gBACrB,KAAK,CAAE,CAAE,IAAI,CAAE,EAAE,CAAE,IAAI,GAAC,IAAI,CAAE,CAAE,CAAA;gBAChC,KAAK,CAAE,CAAE,IAAI,CAAE,EAAE,CAAE,cAAc,CAAC,IAAI,CAAE,CAAE,CAAA;gBAC1C,KAAK,CAAE,CAAE,KAAK,CAAE,EAAE,CAAE,cAAc,CAAC,IAAI,CAAE,CAAE,CAAA;gBAC3C,KAAK,CAAE,CAAE,SAAS,CAAE,EAAE,CAAE,IAAI,GAAC,IAAI,CAAE,CAAE,CAAA;YACtC,CAAC;YAED,iBAAiB,CAAE,CAAC;gBACnB,KAAK,CAAE,CAAE,CAAC,CAAE,EAAE,CAAE,CAAC,CAAE,CAAE,CAAA;gBACrB,KAAK,CAAE,CAAE,EAAE,CAAE,EAAE,CAAE,EAAE,CAAE,CAAE,CAAA;YACxB,CAAC;YAED,iBAAiB,CAAE,CAAC;gBACnB,KAAK,CAAE,CAAE,EAAE,CAAE,EAAE,CAAE,IAAI,GAAC,EAAE,EAAE,EAAE,CAAE,CAAE,CAAA;gBAChC,KAAK,CAAE,CAAE,GAAG,CAAE,EAAE,CAAE,IAAI,GAAC,EAAE,EAAE,GAAG,CAAE,CAAE,CAAA;YACnC,CAAC;YAED,iBAAiB,CAAE,CAAC;gBACnB,KAAK,CAAE,CAAE,GAAG,CAAE,EAAE,CAAE,IAAI,GAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAE,CAAE,CAAA;gBACnC,KAAK,CAAE,CAAE,GAAG,IAAE,CAAC,GAAC,CAAC,CAAE,EAAE,CAAE,IAAI,GAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAE,CAAE,CAAA;YAC7C,CAAC;YAED,iBAAiB,CAAE,CAAC;gBACnB,KAAK,CAAE,CAAE,GAAG,IAAE,CAAC,CAAE,EAAE,CAAE,IAAI,GAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAE,CAAA;gBAC5C,KAAK,CAAE,CAAE,GAAG,IAAE,CAAC,GAAC,CAAC,CAAE,EAAE,CAAE,IAAI,GAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAE,CAAE,CAAA;YACvD,CAAC;YAED,iBAAiB,CAAE,CAAC;gBACnB,KAAK,CAAE,CAAE,GAAG,IAAE,CAAC,CAAE,EAAE,CAAE,IAAI,GAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAE,CAAA;gBACxD,KAAK,CAAE,CAAE,MAAM,CAAC,gBAAgB,CAAE,EAAE,CAAE,IAAI,GAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAE,CAAE,CAAA;gBACtF,KAAK,CAAE,CAAE,IAAI,IAAE,EAAE,GAAC,EAAE,CAAE,EAAE,CAAE,IAAI,GAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAE,CAAE,CAAA;YAC9E,CAAC;YAED,iBAAiB,CAAE,CAAC;gBACnB,KAAK,CAAE,CAAE,CAAC,CAAC,CAAE,EAAE,CAAE,CAAC,CAAC,CAAE,CAAE,CAAA;gBACvB,KAAK,CAAE,CAAE,CAAC,EAAE,CAAE,EAAE,CAAE,CAAC,EAAE,CAAE,CAAE,CAAA;YAC1B,CAAC;YAED,iBAAiB,CAAE,CAAC;gBACnB,KAAK,CAAE,CAAE,CAAC,EAAE,EAAG,EAAE,CAAE,IAAI,GAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAE,CAAE,CAAA;gBACpC,KAAK,CAAE,CAAE,CAAC,GAAG,GAAC,CAAC,CAAE,EAAG,CAAE,IAAI,GAAC,CAAC,EAAE,EAAE,GAAG,CAAE,CAAE,CAAA;YACxC,CAAC;YAED,iBAAiB,CAAE,CAAC;gBACnB,KAAK,CAAE,CAAE,CAAC,GAAG,GAAC,CAAC,GAAC,CAAC,CAAE,EAAE,CAAE,IAAI,GAAC,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAE,CAAE,CAAA;gBAC7C,KAAK,CAAE,CAAE,CAAC,CAAC,GAAG,IAAE,CAAC,CAAC,GAAC,CAAC,CAAE,EAAE,CAAE,IAAI,GAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAE,CAAE,CAAA;YAC/C,CAAC;YAED,iBAAiB,CAAE,CAAC;gBACnB,KAAK,CAAE,CAAE,CAAC,CAAC,GAAG,IAAE,CAAC,CAAC,GAAC,CAAC,GAAC,CAAC,CAAE,EAAE,CAAE,IAAI,GAAC,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAE,CAAE,CAAA;gBAC5D,KAAK,CAAE,CAAE,CAAC,CAAC,GAAG,IAAE,CAAC,CAAC,GAAC,CAAC,CAAE,EAAE,CAAE,IAAI,GAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAE,CAAE,CAAA;YACrD,CAAC;YAED,iBAAiB,CAAE,CAAC;gBACnB,KAAK,CAAE,CAAE,CAAC,CAAC,GAAG,IAAE,CAAC,CAAC,GAAC,CAAC,GAAC,CAAC,CAAE,EAAE,CAAE,IAAI,GAAC,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAE,CAAE,CAAA;gBAChF,KAAK,CAAE,CAAE,MAAM,CAAC,gBAAgB,CAAE,EAAE,CAAE,IAAI,GAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAE,CAAE,CAAA;gBAC9E,KAAK,CAAE,CAAE,CAAC,CAAC,EAAE,IAAE,GAAG,CAAC,CAAE,EAAE,CAAE,IAAI,GAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAE,CAAE,CAAA;YAChE,CAAC;YAED,kBAAkB,CAAE,CAAC;gBACpB,KAAK,CAAE,CAAE,EAAE,IAAE,GAAG,CAAE,EAAE,CAAE,IAAI,GAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAE,CAAA;gBACnE,KAAK,CAAE,CAAE,EAAE,IAAE,KAAK,CAAE,EAAE,CAAE,IAAI,GAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAI,KAAK,CAAC,IAAI,CAAE,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAE,EAAE,GAAG,EAAE,CAAC,CAAE,CAAE,CAAA;gBAC9F,KAAK,CAAE,CAAE,CAAC,EAAE,GAAG,EAAE,IAAE,GAAG,CAAE,EAAE,CAAE,IAAI,GAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAE,CAAE,CAAA;gBAC3F,KAAK,CAAE,CAAE,CAAC,EAAE,GAAG,EAAE,IAAE,KAAK,CAAE,EAAE,CAAE,IAAI,GAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAI,KAAK,CAAC,IAAI,CAAE,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,CAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAE,CAAE,CAAA;YAC1G,CAAC;YAED,iBAAiB,CAAE,CAAC;gBACnB,KAAK,CAAE,CAAE,GAAG,CAAE,EAAE,CAAE,IAAI,EAAG,GAAI,IAAI,UAAU,CAAE,IAAI,YAAY,CAAC,CAAE,GAAG,CAAE,CAAC,CAAC,MAAM,CAAE,CAAE,CAAE,CAAA;YACpF,CAAC;YAED,gBAAgB,CAAE,CAAC;gBAClB,KAAK,CACJ,CAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAE,EACf,CAAE,IAAI,GAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CACnB,CAAA;gBACD,KAAK,CACJ,CAAE,CAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,CAAE,CAAE,EACtB,CAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAC3C,CAAA;YACF,CAAC;YAED,sBAAsB,CAAE,CAAC;gBACxB,MAAM,IAAI,GAAG,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;gBACrB,KAAK,CACJ,CAAE,CAAE,IAAI,EAAE,IAAI,CAAE,CAAE,EAClB,CAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,GAAC,CAAC,CAAE,CAChC,CAAA;gBACD,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAA;gBACjB,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAA;gBACnB,KAAK,CACJ,CAAE,CAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAE,CAAE,EACvB,CAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,CAAE,CAC7C,CAAA;YACF,CAAC;YAED,uBAAuB,CAAE,CAAC;gBACzB,MAAM,GAAG,GAAG,EAAW,CAAA;gBACvB,GAAG,CAAC,IAAI,CAAC,CAAE,GAAG,CAAE,CAAC,CAAA;gBACjB,gBAAgB,CAAE,GAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAE,GAAG,CAAE,CAAC,EAAE,aAAa,CAAE,CAAA;YAChE,CAAC;YAED,sBAAsB,CAAE,CAAC;gBACxB,KAAK,CACJ,CAAE,CAAE,EAAE,EAAE,EAAE,CAAE,CAAE,EACd,CAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,EAAE,EAAE,EAAE,EAAE,IAAI,GAAC,CAAC,CAAE,CAC/B,CAAA;gBACD,KAAK,CACJ,CAAE,CAAE,EAAE,IAAE,GAAG,EAAE,EAAE,IAAE,GAAG,CAAE,CAAE,EACxB,CAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,GAAC,CAAC,CAAE,CAC7D,CAAA;YACF,CAAC;YAED,uBAAuB,CAAE,CAAC;gBACzB,KAAK,CACJ,CAAE,CAAE,GAAG,EAAE,GAAG,CAAE,CAAE,EAChB,CAAE,IAAI,GAAC,CAAC,EAAE,IAAI,EAAG,GAAI,IAAI,UAAU,CAAE,IAAI,YAAY,CAAC,CAAE,GAAG,CAAE,CAAC,CAAC,MAAM,CAAE,EAAE,IAAI,GAAC,CAAC,CAAE,CACjF,CAAA;YACF,CAAC;YAED,gBAAgB,CAAE,CAAC;gBAElB,KAAK,CAAE,CAAE,KAAK,CAAE,EAAE,CAAE,IAAI,GAAC,CAAC,EAAE,GAAI,GAAG,CAAC,KAAK,CAAC,CAAE,CAAE,CAAA;gBAC9C,KAAK,CAAE,CAAE,KAAK,CAAE,EAAE,CAAE,IAAI,GAAC,CAAC,EAAE,GAAI,GAAG,CAAC,KAAK,CAAC,CAAE,CAAE,CAAA;gBAE9C,MAAM,QAAQ,GAAG,sBAAsB,CAAA;gBACvC,KAAK,CAAE,CAAE,QAAQ,CAAE,EAAE,CAAE,IAAI,GAAC,EAAE,EAAE,EAAE,EAAE,GAAI,GAAG,CAAC,QAAQ,CAAC,CAAE,CAAE,CAAA;gBAEzD,MAAM,QAAQ,GAAG,sBAAsB,CAAA;gBACvC,KAAK,CAAE,CAAE,QAAQ,CAAE,EAAE,CAAE,IAAI,GAAC,EAAE,EAAE,EAAE,EAAE,GAAI,GAAG,CAAC,QAAQ,CAAC,CAAE,CAAE,CAAA;YAE1D,CAAC;YAED,sBAAsB,CAAE,CAAC;gBACxB,KAAK,CACJ,CAAE,CAAE,GAAG,EAAE,GAAG,CAAE,CAAE,EAChB,CAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,GAAI,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,GAAC,CAAC,CAAE,CACxC,CAAA;YACF,CAAC;YAED,gBAAgB,CAAE,CAAC;gBAClB,KAAK,CACJ,CAAE,IAAI,UAAU,CAAC,CAAE,CAAC,EAAE,GAAG,CAAE,CAAC,CAAE,EAC9B,CAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAE,CAC3B,CAAA;gBACD,KAAK,CACJ,CAAE,IAAI,SAAS,CAAC,CAAE,CAAC,GAAG,EAAE,GAAG,CAAE,CAAC,CAAE,EAChC,CAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAE,CAC/B,CAAA;gBACD,KAAK,CACJ,CAAE,IAAI,WAAW,CAAC,CAAE,GAAG,CAAE,CAAC,CAAE,EAC5B,CAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CACjC,CAAA;gBACD,KAAK,CACJ,CAAE,IAAI,UAAU,CAAC,CAAE,CAAC,GAAG,CAAE,CAAC,CAAE,EAC5B,CAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAE,CACzC,CAAA;gBACD,KAAK,CACJ,CAAE,IAAI,cAAc,CAAC,CAAE,IAAI,CAAE,CAAC,CAAE,EAChC,CAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAC7C,CAAA;gBACD,KAAK,CACJ,CAAE,IAAI,aAAa,CAAC,CAAE,CAAC,IAAI,CAAE,CAAC,CAAE,EAChC,CAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAE,CAC7D,CAAA;gBACD,KAAK,CACJ,CAAE,IAAI,YAAY,CAAC,CAAE,GAAG,CAAE,CAAC,CAAE,EAC7B,CAAE,IAAI,GAAC,CAAC,EAAE,IAAI,EAAE,GAAI,IAAI,UAAU,CAAE,IAAI,YAAY,CAAC,CAAE,GAAG,CAAE,CAAC,CAAC,MAAM,CAAE,CAAE,CACxE,CAAA;gBACD,KAAK,CACJ,CAAE,IAAI,YAAY,CAAC,CAAE,GAAG,CAAE,CAAC,CAAE,EAC7B,CAAE,IAAI,GAAC,CAAC,EAAE,IAAI,EAAE,GAAI,IAAI,UAAU,CAAE,IAAI,YAAY,CAAC,CAAE,GAAG,CAAE,CAAC,CAAC,MAAM,CAAE,CAAE,CACxE,CAAA;YACF,CAAC;YAED,sBAAsB,CAAE,CAAC;gBACxB,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;gBACrC,KAAK,CACJ,CAAE,CAAE,IAAI,EAAE,IAAI,CAAE,CAAE,EAClB,CAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,GAAC,CAAC,CAAE,CACzC,CAAA;YACF,CAAC;YAED,kBAAkB,CAAE,CAAC;gBACpB,KAAK,CACJ,CAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAE,EAClB,CAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,GAAI,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,GAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CACpE,CAAA;gBACD,KAAK,CACJ,CAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAE,EAC1B,CAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,GAAI,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,GAAI,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,GAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAE,CACvH,CAAA;YACF,CAAC;YAED,8BAA8B,CAAE,CAAC;gBAChC,KAAK,CACJ,CAAE,CAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAE,CAAE,EAClC,CAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,GAAI,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,CAAC,CAAE,CACxF,CAAA;gBACD,KAAK,CACJ,CAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAE,EAC/B,CAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,GAAI,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,GAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CACvF,CAAA;YACF,CAAC;YAED,6BAA6B,CAAE,CAAC;gBAC/B,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;gBACrB,KAAK,CACJ,CAAE,CAAE,IAAI,EAAE,IAAI,CAAE,CAAE,EAClB,CAAE,IAAI,GAAC,CAAC,EAAG,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,GAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,GAAC,CAAC,CAAE,CAC5D,CAAA;gBACD,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAG,CAAC,EAAE,CAAA;gBAC5B,KAAK,CACJ,CAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAE,EACxB,CAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,GAAI,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,GAAI,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,GAAC,CAAC,CAAE,CAC5F,CAAA;YACF,CAAC;YAED,yBAAyB,CAAE,CAAC;gBAC3B,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,IAAW,EAAE,CAAA;gBAChC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAA;gBACb,gBAAgB,CAAE,GAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAE,GAAG,CAAE,CAAC,EAAE,aAAa,CAAE,CAAA;YAChE,CAAC;YAED,eAAe,CAAE,CAAC;gBAEjB,KAAK,CACJ,CAAE,IAAI,GAAG,CAAa,CAAE,CAAE,KAAK,EAAE,CAAC,CAAE,EAAE,CAAE,CAAC,EAAE,KAAK,CAAE,CAAE,CAAC,CAAE,EACvD,CAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,GAAI,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,GAAI,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,GAAI,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,GAAI,GAAG,CAAC,KAAK,CAAC,CAAE,CAC1I,CAAA;YAEF,CAAC;YAED,eAAe,CAAE,CAAC;gBAEjB,KAAK,CACJ,CAAE,IAAI,GAAG,CAAC,CAAE,CAAC,EAAE,KAAK,CAAE,CAAC,CAAE,EACzB,CAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,GAAI,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,GAAI,GAAG,CAAC,KAAK,CAAC,CAAE,CAC7E,CAAA;YAEF,CAAC;YAED,gBAAgB,CAAE,CAAC;gBAElB,MAAM,KAAK,GAAG,IAAI,IAAI,CAAE,qBAAqB,CAAE,CAAA;gBAC/C,KAAK,CACJ,CAAE,KAAK,CAAE,EACT,CAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,aAAa,CAAC,EAAE,EAAE,CAAC,EAAE,GAAI,GAAG,CAAC,WAAW,CAAC,EAAE,IAAI,GAAC,EAAE,EAAE,GAAI,IAAI,UAAU,CAAE,IAAI,WAAW,CAAC,CAAE,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CAAE,CAAC,CAAC,MAAM,CAAE,CAAE,CACrJ,CAAA;gBAED,MAAM,KAAK,GAAG,IAAI,IAAI,CAAE,yBAAyB,CAAE,CAAA;gBACnD,KAAK,CACJ,CAAE,KAAK,CAAE,EACT,CAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,aAAa,CAAC,EAAE,EAAE,CAAC,EAAE,GAAI,GAAG,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,GAAI,IAAI,UAAU,CAAE,IAAI,YAAY,CAAC,CAAE,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CAAE,CAAC,CAAC,MAAM,CAAE,CAAE,CACnJ,CAAA;YAEF,CAAC;YAED,uBAAuB,CAAE,CAAC;gBACzB,iBAAiB,CAChB,kBAAkB,CAAE;oBAAK,sBAAO;oBAAA,oBAAK;wBAAO,CAAE,EAC9C,kBAAkB,CAAI,SAAS,CAAC,IAAI,CAAE,SAAS,CAAC,IAAI,CAAC,CAAE;wBAAK,sBAAO;wBAAA,oBAAK;4BAAO,CAAE,CAAC,CAAiB,CAAC,CAAC,CAAC,CAAE,CACxG,CAAA;YACF,CAAC;YAED,iCAAiC,CAAE,CAAC;gBAEnC,MAAM,GAAG;oBAGE;oBACA;oBAFV,YACU,CAAS,EACT,CAAS;wBADT,MAAC,GAAD,CAAC,CAAQ;wBACT,MAAC,GAAD,CAAC,CAAQ;oBAChB,CAAC;oBAEJ,CAAC;oBAAA,CAAE,MAAM,CAAC,QAAQ,CAAE;wBACnB,OAAO,CAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAE,CAAC,MAAM,EAAE,CAAA;oBACnC,CAAC;iBAED;gBAED,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,CAAA;gBAE7B,IAAI,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,CAAE,MAAM,EAAE,MAAM,CAAE;oBACxB,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAE;oBAC7C,IAAI,EAAE,CAAC,CAAE,IAAI,EAAE,IAAI,CAAE,EAAC,EAAE,CAAC,IAAI,GAAG,CAAE,CAAE,IAAI,GAAG,IAAI,CAAE,GAAC,CAAC,EAAE,CAAE,IAAI,GAAG,IAAI,CAAE,GAAC,CAAC,CAAE;iBACxE,CAAC,CAAA;gBAEF,UAAU;gBACV,KAAK,CACJ,CAAE,IAAI,GAAG,CAAE,CAAC,EAAE,CAAC,CAAE,CAAE,EACnB,CAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,GAAI,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,GAAI,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,EAC1E,IAAI,CACJ,CAAA;gBAED,WAAW;gBACX,iBAAiB,CAChB,SAAS,CAAC,IAAI,CAAE,SAAS,CAAC,IAAI,CAAC,CAAE,IAAI,GAAG,CAAE,CAAC,EAAE,CAAC,CAAE,CAAE,CAAC,CAAE,EACrD,CAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAE,CAClB,CAAA;gBAED,YAAY;gBACZ,iBAAiB,CAChB,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,CAAC,CAAE,IAAI,GAAG,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAC,CAAE,CAAC,CAAE,EAC/C,CAAE,IAAI,GAAG,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAC,CAAE,CACvB,CAAA;YAEF,CAAC;YAED,qBAAqB,CAAE,CAAC;gBAEvB,KAAK,CAAE,EAAE,EAAE,EAAE,CAAE,CAAA;gBACf,KAAK,CAAE,CAAE,CAAC,CAAE,EAAE,CAAE,CAAC,CAAE,CAAE,CAAA;gBACrB,KAAK,CAAE,CAAE,CAAC,EAAE,CAAC,CAAE,EAAE,CAAE,CAAC,EAAE,CAAC,CAAE,CAAE,CAAA;gBAE3B,KAAK,CACJ,CAAE,CAAE,KAAK,EAAE,KAAK,CAAE,EAAE,CAAE,KAAK,EAAE,KAAK,CAAE,CAAE,EACtC,CAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,GAAI,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,IAAI,GAAC,CAAC,EAAE,GAAI,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,GAAC,CAAC,CAAE,CAClF,CAAA;YAEF,CAAC;SAED,CAAC,CAAA;IACH,CAAC,EAlVW,EAAE,GAAF,MAAE,KAAF,MAAE,QAkVb;AAAD,CAAC,EAlVS,CAAC,KAAD,CAAC,QAkVV;;;;ACnVD,IAAU,CAAC,CA4DV;AA5DD,WAAU,CAAC;IAYV,0DAA0D;IAC1D,mFAAmF;IACnF,yDAAyD;IACzD,qDAAqD;IACrD,6CAA6C;IAC7C,6DAA6D;IAC7D,0CAA0C;IAC1C,qDAAqD;IACrD,qFAAqF;IACrF,kDAAkD;IAEvC,kBAAgB,GAAG,SAAS,CAAC,IAAI,EAAE,CAAA;IAE9C,EAAA,gBAAgB,CAAC,IAAI,CAAC;QACrB,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,CAAE,MAAM,CAAE;QAChB,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAE,GAAG,CAAC,KAAK,EAAE,CAAE;QAC5B,IAAI,EAAE,CAAC,CAAE,GAAG,CAAE,EAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAE,GAAG,CAAE;KAClD,CAAC,CAAA;IAEF,EAAA,gBAAgB,CAAC,IAAI,CAAC;QACrB,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,CAAE,MAAM,CAAE;QAChB,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE;QAC1B,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,kBAAkB,CAAE,IAAI,CAAE;KAC5C,CAAC,CAAA;IAEF,EAAA,gBAAgB,CAAC,IAAI,CAAC;QACrB,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,CAAE,MAAM,CAAE;QAChB,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE;QAC1B,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,gBAAgB,CAAE,IAAI,CAAE;KAC1C,CAAC,CAAA;IAEF,EAAA,gBAAgB,CAAC,IAAI,CAAC;QACrB,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,CAAE,MAAM,CAAE;QAChB,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAE,GAAG,CAAC,QAAQ,EAAE,CAAE;QAC/B,IAAI,EAAE,CAAC,CAAE,GAAG,CAAE,EAAC,EAAE,CAAC,IAAI,kBAAkB,CAAE,GAAG,CAAE;KAC/C,CAAC,CAAA;IAEF,EAAA,gBAAgB,CAAC,IAAI,CAAC;QACrB,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,CAAE,MAAM,CAAE;QAChB,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAE,EAAE,CAAC,oBAAoB,CAAE,GAAG,CAAE,CAAE;QAC/C,IAAI,EAAE,CAAC,CAAE,GAAG,CAAE,EAAC,EAAE,CAAC,EAAE,CAAC,sBAAsB,CAAE,GAAG,CAAE;KAClD,CAAC,CAAA;AAEH,CAAC,EA5DS,CAAC,KAAD,CAAC,QA4DV;;;;AC5DD,oBAAoB;AACpB,IAAU,CAAC,CAmGV;AAnGD,WAAU,GAAC;IAAC,IAAA,EAAE,CAmGb;IAnGW,WAAA,EAAE;QAEb,SAAS,KAAK,CAAE,IAA2B;YAC1C,iBAAiB,CAChB,IAAI,EACF,gBAAgB,CAAC,IAAI,CAAE,gBAAgB,CAAC,IAAI,CAAC,CAAE,IAAI,CAAE,CAAC,CAAa,CAAC,CAAC,CAAC,CACxE,CAAA;QACF,CAAC;QAED,SAAS,CAAC;YAET,KAAK,CAAE,CAAC;gBACP,KAAK,CAAE,IAAI,CAAE,CAAA;gBACb,KAAK,CAAE,IAAI,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAE,CAAA;YACrC,CAAC;YAED,MAAM,CAAE,CAAC;gBACR,KAAK,CAAE,KAAK,CAAE,CAAA;gBACd,KAAK,CAAE,IAAI,CAAE,CAAA;YACd,CAAC;YAED,KAAK,CAAE,CAAC;gBACP,KAAK,CAAE,CAAC,CAAE,CAAA;gBACV,KAAK,CAAE,oBAAoB,CAAE,CAAA;YAC9B,CAAC;YAED,MAAM,CAAE,CAAC;gBACR,KAAK,CAAE,CAAC,CAAE,CAAA;gBACV,KAAK,CAAE,IAAI,CAAC,EAAE,CAAE,CAAA;gBAChB,KAAK,CAAE,MAAM,CAAC,GAAG,CAAE,CAAA;gBACnB,KAAK,CAAE,MAAM,CAAC,iBAAiB,CAAE,CAAA;gBACjC,KAAK,CAAE,MAAM,CAAC,iBAAiB,CAAE,CAAA;gBACjC,KAAK,CAAE,MAAM,CAAC,gBAAgB,CAAE,CAAA;gBAChC,KAAK,CAAE,MAAM,CAAC,gBAAgB,CAAE,CAAA;gBAChC,KAAK,CAAE,MAAM,CAAE,MAAM,CAAC,SAAS,CAAE,CAAE,CAAA;gBACnC,KAAK,CAAE,MAAM,CAAC,SAAS,CAAE,CAAA;YAC1B,CAAC;YAED,MAAM,CAAE,CAAC;gBACR,KAAK,CAAE,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAAE,CAAA;gBACjC,KAAK,CAAE,gBAAgB,CAAC,QAAQ,CAAE,SAAS,CAAE,CAAE,CAAA;YAChD,CAAC;YAED,KAAK,CAAE,CAAC;gBACP,KAAK,CAAE,EAAE,CAAE,CAAA;gBACX,KAAK,CAAE,KAAK,CAAE,CAAA;gBACd,KAAK,CAAE,OAAO,CAAE,CAAA;YACjB,CAAC;YAED,MAAM,CAAE,CAAC;gBACR,KAAK,CAAE,IAAI,gBAAgB,CAAE,+BAA+B,CAAE,CAAE,CAAA;gBAChE,KAAK,CAAE,IAAI,gBAAgB,CAAE,CAAA;YAC9B,CAAC;YAED,MAAM,CAAE,CAAC;gBACR,KAAK,CAAE,IAAI,kBAAkB,CAAE,kBAAkB,CAAE,CAAE,CAAA;YACtD,CAAC;YAED,MAAM,CAAE,CAAC;gBACR,KAAK,CAAE,IAAI,kBAAkB,CAAE,aAAa,CAAE,CAAE,CAAA;YACjD,CAAC;YAED,MAAM,CAAE,CAAC;gBACR,KAAK,CAAC,EAAE,GAAG,EAAE,CAAE,KAAK,CAAE,EAAE,CAAC,CAAA;gBACzB,KAAK,CAAC,CAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAE,CAAC,CAAA;YAC1B,CAAC;YAED,KAAK,CAAE,CAAC;gBAEP,MAAM,GAAG,GAAG,CACX;oBACC,mBAAM,KAAK,EAAC,KAAK,UAAW,CACvB,CACN,CAAA;gBAED,iBAAiB,CAChB,kBAAkB,CAAI,gBAAgB,CAAC,IAAI,CAAE,gBAAgB,CAAC,IAAI,CAAC,CAAE,GAAG,CAAE,CAAC,CAAa,CAAC,CAAC,CAAS,CAAE,EACrG,kBAAkB,CAAE,GAAG,CAAE,CACzB,CAAA;YAEF,CAAC;YAED,MAAM,CAAE,CAAC;gBAER,MAAM,IAAI,GAAG,CAAC,CAAC,sBAAsB,CAAC;;;IAGrC,CAAC,CAAA;gBAEF,iBAAiB,CAChB,CAAC,CAAC,oBAAoB,CAAI,gBAAgB,CAAC,IAAI,CAAE,gBAAgB,CAAC,IAAI,CAAC,CAAE,IAAI,CAAE,CAAC,CAAa,CAAC,CAAC,CAAe,CAAE,EAChH,CAAC,CAAC,oBAAoB,CAAE,IAAI,CAAE,CAC9B,CAAA;YAEF,CAAC;SAED,CAAC,CAAA;IAGH,CAAC,EAnGW,EAAE,GAAF,MAAE,KAAF,MAAE,QAmGb;AAAD,CAAC,EAnGS,CAAC,KAAD,CAAC,QAmGV;;;;ACpGD,IAAU,CAAC,CAuBV;AAvBD,WAAU,CAAC;IAEV;;;OAGG;IACH,SAAgB,iBAAiB,CAAE,IAAyB,EAAE,IAAI,GAAG,CAAC;QAErE,IAAI,EAAE,GAAG,UAAU,GAAG,IAAI,CAAA;QAC1B,IAAI,EAAE,GAAG,UAAU,GAAG,IAAI,CAAA;QAE1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAG,CAAC;YACvC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YACpB,EAAE,GAAG,IAAI,CAAC,IAAI,CAAE,EAAE,GAAG,IAAI,EAAE,UAAU,CAAE,CAAA;YACvC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAE,EAAE,GAAG,IAAI,EAAE,UAAU,CAAE,CAAA;QACxC,CAAC;QAED,EAAE,GAAG,IAAI,CAAC,IAAI,CAAE,EAAE,GAAG,CAAE,EAAE,KAAK,EAAE,CAAE,EAAE,UAAU,CAAE,GAAG,IAAI,CAAC,IAAI,CAAE,EAAE,GAAG,CAAE,EAAE,KAAK,EAAE,CAAE,EAAE,UAAU,CAAE,CAAA;QAC9F,EAAE,GAAG,IAAI,CAAC,IAAI,CAAE,EAAE,GAAG,CAAE,EAAE,KAAK,EAAE,CAAE,EAAE,UAAU,CAAE,GAAG,IAAI,CAAC,IAAI,CAAE,EAAE,GAAG,CAAE,EAAE,KAAK,EAAE,CAAE,EAAE,UAAU,CAAE,CAAA;QAE9F,OAAO,UAAU,GAAG,CAAE,CAAE,CAAE,CAAC,IAAI,EAAE,CAAE,GAAG,CAAC,CAAE,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,KAAK,CAAC,CAAE,CAAA;IAChE,CAAC;IAfe,mBAAiB,oBAehC,CAAA;AAEF,CAAC,EAvBS,CAAC,KAAD,CAAC,QAuBV;;;;ACvBD,IAAU,CAAC,CA2OV;AA3OD,WAAU,CAAC;IAEV,6DAA6D;IAC7D,IAAY,yBASX;IATD,WAAY,yBAAyB;QACpC,2BAA2B;QAC3B,yEAAmB,CAAA;QACnB,sDAAsD;QACtD,0EAAmB,CAAA;QACnB,qBAAqB;QACrB,2EAAmB,CAAA;QACnB,mBAAmB;QACnB,2EAAmB,CAAA;IACpB,CAAC,EATW,yBAAyB,GAAzB,2BAAyB,KAAzB,2BAAyB,QASpC;IAED,6DAA6D;IAC7D,MAAa,qBAAsB,SAAQ,qBAAqB;QAE/D,MAAM,CAAC,YAAY,GAAG,EAAE,CAAA;QACxB,MAAM,CAAC,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAA;QAEzB,KAAK,GAAG,SAA8C,CAAA;QACtD,KAAK,GAAG,IAAwC,CAAA;QAEhD,MAAM,CAAC,MAAM,CAAE,IAAY;YAC1B,IAAI,IAAI,GAAG,CAAC,IAAE,EAAE;gBAAG,MAAM,IAAI,KAAK,CAAE,mBAAoB,IAAK,GAAG,CAAE,CAAA;YAClE,OAAO,IAAI,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAE,CAAE,EAAE,GAAG,IAAI,CAAE,GAAG,CAAC,CAAE,GAAG,CAAC,CAAA;QAC3F,CAAC;QAED,MAAM,CAAC,WAAW,CAAE,IAAY;YAC/B,IAAI,IAAI,GAAG,CAAC,IAAE,EAAE;gBAAG,MAAM,IAAI,KAAK,CAAE,mBAAoB,IAAK,GAAG,CAAE,CAAA;YAClE,OAAO,IAAI,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAE,CAAE,IAAI,GAAG,CAAC,CAAE,GAAG,CAAC,CAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC7F,CAAC;QAGM,AAAP,MAAM,CAAC,IAAI,CAAE,IAAY,EAAE,MAA8C,MAAM;YAE9E,IAAI,IAAI,IAAI,CAAC,IAAE,EAAE;gBAAG,MAAM,IAAI,KAAK,CAAE,mBAAoB,IAAK,GAAG,CAAE,CAAA;YAEnE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,MAAM,CAAE,IAAI,CAAE,CAAE,CAAA;YAC7C,IAAI,CAAC,IAAI,CAAE,MAAM,CAAE,CAAA;YAEnB,IAAI,IAAI,GAAG,qBAAqB,CAAC,YAAY,EAAG,CAAC;gBAChD,IAAI,CAAC,MAAM,CAAE,EAAE,EAAE,IAAI,GAAG,CAAC,IAAE,EAAE,CAAE,CAAA;gBAC/B,IAAI,GAAG,CAAC,CAAA;YACT,CAAC;YAED,IAAI,CAAC,KAAK,CAAE,CAAC,EAAE,IAAI,GAAG,yBAAyB,CAAE,GAAG,CAAE,CAAE,CAAA;YAExD,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,GAAG;YACF,OAAO,yBAAyB,CAAE,IAAI,CAAC,KAAK,CAAE,CAAC,CAAE,GAAG,YAAY,CAA4C,CAAA;QAC7G,CAAC;QAED,GAAG;YACF,OAAO,IAAI,CAAC,IAAI,EAAE,GAAG,qBAAqB,CAAC,YAAY,CAAA;QACxD,CAAC;QAED,IAAI;YACH,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAE,CAAC,CAAE,GAAG,SAAS,CAAA;YACtC,OAAO,IAAI,IAAI,IAAI,CAAC,MAAM,CAAE,EAAE,CAAE,IAAI,CAAC,IAAE,EAAE,CAAA;QAC1C,CAAC;QAED,IAAI;YACH,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI;gBAAG,OAAO,IAAI,CAAA;YACrC,IAAI,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;gBAAG,OAAO,KAAK,CAAA;YAClC,IAAI,IAAI,CAAC,KAAK,CAAE,EAAE,CAAE,KAAK,EAAE,CAAA,KAAK;gBAAG,OAAO,KAAK,CAAA;YAC/C,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,KAAK,CAAmB;QACxB,IAAI,CAAE,IAAuB;YAC5B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;gBAAG,OAAO,IAAI,CAAC,KAAK,CAAA;;gBACjE,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAE,EAAE,EAAE,IAAI,CAAE,CAAA;QAC9C,CAAC;QAED,KAAK,CAAmB;QACxB,IAAI,CAAE,IAAuB;YAC5B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;gBAAG,OAAO,IAAI,CAAC,KAAK,CAAA;;gBACjE,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAE,EAAE,EAAE,IAAI,CAAE,CAAA;QAC9C,CAAC;QAED,KAAK,CAAmB;QACxB,IAAI,CAAE,IAAuB;YAC5B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;gBAAG,OAAO,IAAI,CAAC,KAAK,CAAA;;gBACjE,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAE,EAAE,EAAE,IAAI,CAAE,CAAA;QAC9C,CAAC;QAED,IAAI;YACH,OAAO,QAAS,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,UAAW,IAAK,IAAI,CAAC,IAAI,EAAG,IAAK,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,UAAW,EAAE,CAAA;QACrG,CAAC;QAED,KAAK,CAAmB;QACxB,IAAI,CAAE,IAAuB;YAC5B,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBAAG,MAAM,IAAI,KAAK,CAAE,6CAA6C,CAAE,CAAA;YAClF,IAAI,IAAI;gBAAG,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAE,EAAE,EAAE,IAAI,CAAE,CAAA;;gBAC/C,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAE,EAAE,CAAE,CAAA;QACvD,CAAC;QAED,KAAK,CAA4B;QACjC,IAAI,CAAE,IAAgC;YAErC,IAAI,IAAI,CAAC,GAAG,EAAE;gBAAG,MAAM,IAAI,KAAK,CAAE,6CAA6C,CAAE,CAAA;YAEjF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,UAAU,CAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,GAAG,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;YAC3F,IAAI,IAAI;gBAAG,IAAI,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;YAE3B,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,KAAK,CAA4B;QACjC,IAAI,CAAE,IAAgC;YACrC,IAAI,IAAI,KAAK,SAAS,EAAG,CAAC;gBAEzB,IAAI,IAAI,CAAC,KAAK;oBAAG,OAAO,IAAI,CAAC,KAAK,CAAA;gBAClC,IAAI,IAAI,CAAC,GAAG,EAAE;oBAAG,OAAO,IAAI,CAAC,KAAK,CAAA;gBAElC,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YAEhC,CAAC;iBAAM,CAAC;gBAEP,IAAI,IAAI,CAAC,GAAG,EAAE,EAAG,CAAC;oBAEjB,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAE,CAAA;oBAC9C,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;gBAEzB,CAAC;qBAAM,CAAC;oBAEP,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;gBAEtC,CAAC;YAEF,CAAC;QACF,CAAC;QAED,OAAO;YACN,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAA;QACnC,CAAC;QAED,IAAI;YACH,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBAAG,OAAO,SAAS,CACrC,IAAI,KAAK,CAAE,8BAA8B,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAE,CACtE,CAAA;YACD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAA;QACpB,CAAC;QAED,SAAS;YACR,OAAO,iBAAiB,CAAE,IAAI,UAAU,CAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,GAAG,EAAE,EAAE,EAAE,CAAE,CAAE,CAAA,CAAC,cAAc;QACnG,CAAC;QAED,IAAI;YACH,OAAO;gBACN,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;gBACjB,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;gBACjB,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAE,qBAAqB,CAAE;aACrD,CAAA;QACF,CAAC;QAED,QAAQ;YACP,OAAO,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,KAAK,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAE;gBAC5D,CAAC,CAAC,qBAAqB,CAAC,IAAI;gBAC5B,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAA;QAC9B,CAAC;QAED,OAAO;YAEN,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,UAAU,CAAE,CAAA;YAClE,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,UAAU,CAAE,CAAA;YAClE,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,UAAU,CAAE,CAAA;YAClE,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,CAAE;gBAClC,IAAI,EAAE,GAAG;gBACT,IAAI,EAAE,GAAG;gBACT,IAAI,EAAE,GAAG;gBACT,IAAI,EAAE,GAAG;aACT,CAAE,IAAI,CAAC,GAAG,EAAE,CAAE,CAAE,CAAA;YACjB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAE,MAAM,CAAE,IAAI,CAAC,KAAK,CAAE,CAAE,CAAA;YAE3F,OAAO,GAAI,KAAK,CAAC,OAAO,EAAG,IAAI,GAAG,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,CAAA;QACtE,CAAC;QAED,QAAQ;YAEP,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,UAAU,CAAA;YAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,UAAU,CAAA;YAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,UAAU,CAAA;YAC1C,MAAM,GAAG,GAAG;gBACX,IAAI,EAAE,GAAG;gBACT,IAAI,EAAE,GAAG;gBACT,IAAI,EAAE,GAAG;gBACT,IAAI,EAAE,GAAG;aACT,CAAE,IAAI,CAAC,GAAG,EAAE,CAAE,CAAA;YACf,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAE,IAAI,CAAC,KAAK,CAAE,CAAA;YAEjE,OAAO,GAAI,KAAK,CAAC,QAAQ,EAAG,IAAI,GAAG,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,CAAA;QACvE,CAAC;QAED,CAAE,oBAAoB,CAAE;YACvB,OAAO,oBAAoB,CAAE,EAAE,EAC9B,sBAAsB,CAAE,IAAI,CAAE,EAC9B,KAAK,EACL,oBAAoB,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,EACnC,MAAM,EACN,qBAAqB,CAAE,qBAAqB,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAE,EAC1E,IAAI,EACJ,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAC,CAAC,CAAC,qBAAqB,CAAE,mBAAmB,CAAE,EACnG,GAAG,EACH,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,UAAU,EAC7B,qBAAqB,CAAE,IAAI,CAAE,EAC7B,sBAAsB,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,UAAU,CAAE,EACvD,qBAAqB,CAAE,GAAG,CAAE,EAC5B,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,UAAU,EAC7B,GAAG,EACH;gBACC,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,IAAI;aACV,CAAE,IAAI,CAAC,GAAG,EAAE,CAAE,EACf,GAAG,EACH,oBAAoB,CAAE,IAAI,CAAC,KAAK,CAAE,CAKlC,CAAA;QACF,CAAC;;IArMM;QADL,WAAW;2CAgBZ;IAlCW,uBAAqB,wBA0NjC,CAAA;AAEF,CAAC,EA3OS,CAAC,KAAD,CAAC,QA2OV;;;;AC3OD,IAAU,CAAC,CA+HV;AA/HD,WAAU,CAAC;IAEV,SAAgB,0BAA0B,CAAE,KAA8B;QAEzE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAmC,CAAA;QACvD,MAAM,KAAK,GAAG,IAAI,UAAU,EAAkB,CAAA;QAE9C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAG,CAAC;YAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAA;YAC3B,IAAI,CAAC,GAAG,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;YACrB,KAAK,CAAC,IAAI,CAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE,CAAA;YAClC,KAAK,CAAC,IAAI,CAAE,GAAG,EAAE,EAAE,CAAE,CAAA;QACtB,CAAC;QAED,KAAK,CAAC,OAAO,CAAE,GAAE,EAAE,CAAC,CAAC,CAAE,CAAA;QACvB,MAAM,IAAI,GAAG,CAAE,GAAI,KAAK,CAAC,MAAM,CAAE,CAAA;QAEjC,OAAO,IAAI,CAAC,GAAG,CAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAE,GAAG,CAAG,CAAE,CAAC,MAAM,CAAE,OAAO,CAAE,CAAA;IAE7D,CAAC;IAjBe,4BAA0B,6BAiBzC,CAAA;IAED,4BAA4B;IAC5B,MAAa,qBAAsB,SAAQ,qBAAqB;QAE/D,MAAM,CAAC,MAAM;YACZ,OAAO,EAAE,CAAA;QACV,CAAC;QAGM,AAAP,MAAM,CAAC,IAAI;YACV,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,MAAM,EAAE,CAAE,CAAA;YACvC,IAAI,CAAC,IAAI,CAAE,MAAM,CAAE,CAAA;YACnB,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,IAAI,CAAE,IAAoC;YAEzC,IAAI,IAAI,KAAK,SAAS;gBAAG,IAAI,CAAC,KAAK,CAAE,CAAC,EAAE,qBAAqB,CAAC,IAAI,CAAE,CAAA;YAEpE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAE,CAAC,EAAE,IAAI,CAAmC,CAAA;YAElE,IAAI,GAAG,GAAG,qBAAqB,IAAI,GAAG,GAAG,qBAAqB,EAAG,CAAC;gBACjE,SAAS,CAAE,IAAI,UAAU,CAAE,cAAe,GAAI,EAAE,CAAE,CAAE,CAAA;YACrD,CAAC;YAED,OAAO,GAAG,CAAA;QACX,CAAC;QAED,IAAI;YACH,OAAO,CAAE,IAAI,CAAC,IAAI,EAAE,GAAG,qBAAqB,CAAC,IAAI,CAA2B,CAAA;QAC7E,CAAC;QAED,IAAI;YACH,OAAO,CAAE,IAAI,CAAC,IAAI,EAAE,GAAG,qBAAqB,CAAC,IAAI,CAA2B,CAAA;QAC7E,CAAC;QAED,IAAI,CAAE,IAAuB;YAC5B,OAAO,IAAI,CAAC,IAAI,CAAE,EAAE,EAAE,IAAI,CAAE,CAAA;QAC7B,CAAC;QAED,IAAI;YACH,OAAO,QAAS,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,mBAAoB,EAAE,CAAA;QAC1D,CAAC;QAED,KAAK,CAA4B;QACjC,IAAI;YACH,OAAO,IAAI,CAAC,KAAK,IAAI,CAAE,IAAI,CAAC,KAAK,GAAG,IAAI,UAAU,CAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,GAAG,EAAE,EAAE,EAAE,CAAE,CAAE,CAAA;QAC9F,CAAC;QAED,WAAW;YACV,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAA;QAClC,CAAC;QAED,IAAI;YACH,OAAO;gBACN,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;gBACjB,IAAI,EAAE,qBAAqB,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE;gBAC1C,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;gBACjB,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAE,qBAAqB,CAAE;aACrD,CAAA;QACF,CAAC;QAED,QAAQ;YACP,OAAO,qBAAqB,CAAC,IAAI,CAAA;QAClC,CAAC;QAED,OAAO;YAEN,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAE,GAAG,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,mBAAmB,CAAE,CAAE,CAAA;YACxF,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAE,CAAA;YAC5E,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAE,qBAAqB,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAE,EAAE,CAAE,CAAC,WAAW,EAAE,CAAE,CAAA;YAE1H,OAAO,GAAI,KAAK,CAAC,OAAO,EAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,CAAA;QACtD,CAAC;QAED,QAAQ;YAEP,MAAM,IAAI,GAAG,GAAG,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,mBAAmB,CAAE,CAAA;YAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;YACnD,MAAM,IAAI,GAAG,qBAAqB,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAE,EAAE,CAAE,CAAC,WAAW,EAAE,CAAA;YAElG,OAAO,GAAI,KAAK,CAAC,QAAQ,EAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,CAAA;QACvD,CAAC;QAED,CAAE,oBAAoB,CAAE;YACvB,OAAO,oBAAoB,CAAE,EAAE,EAC9B,sBAAsB,CAAE,IAAI,CAAE,EAC9B,KAAK,EACL,oBAAoB,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,EACnC,KAAK,EACL,GAAG,EACH,qBAAqB,CAAE,qBAAqB,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAE,EAC1E,IAAI,EACJ,oBAAoB,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,EACnC,KAAK,EACL,sBAAsB,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,mBAAmB,CAAE,EAChE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAC1C,qBAAqB,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,EACpC,GAAG,EACH,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAE,EAAE,CAAE,CAAC,WAAW,EAAE,CACxC,CAAA;QACF,CAAC;KAED;IAhGO;QADL,WAAW;2CAKZ;IAXW,uBAAqB,wBAuGjC,CAAA;AAEF,CAAC,EA/HS,CAAC,KAAD,CAAC,QA+HV;;;;AC/HD,IAAU,CAAC,CA8IV;AA9ID,WAAU,CAAC;IAEC,6BAA2B,GAAG,EAAE,CAAA;IAE3C,0BAA0B;IAC1B,MAAa,qBAAsB,SAAQ,qBAAqB;QAE/D,MAAM,CAAC,MAAM,CAAE,IAAY;YAC1B,OAAO,IAAI,CAAC,IAAI,CAAE,CAAE,EAAE,GAAG,IAAI,GAAG,EAAE,CAAE,GAAG,CAAC,CAAE,GAAG,CAAC,CAAA;QAC/C,CAAC;QAGM,AAAP,MAAM,CAAC,IAAI,CAAE,IAAY,EAAE,IAAa;YACvC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,MAAM,CAAE,IAAI,CAAE,CAAE,CAAA;YAC7C,IAAI,CAAC,IAAI,CAAE,MAAM,CAAE,CAAA;YACnB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;YACzB,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,IAAI,CAAE,IAAsC;YAC3C,OAAO,IAAI,CAAC,KAAK,CAAE,CAAC,EAAE,IAAI,IAAI,CAAE,IAAI,CAAC,IAAI,GAAG,CAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAE,CAAE,CAAE,CAAA;QAChF,CAAC;QAED,IAAI;YACH,OAAO,IAAI,CAAC,IAAI,EAAE,GAAG,MAAM,CAAA;QAC5B,CAAC;QAED,IAAI;YACH,OAAO,OAAO,CAAE,IAAI,CAAC,IAAI,EAAE,GAAG,WAAW,CAAE,CAAA;QAC5C,CAAC;QAED,WAAW,GAAG,IAAI,GAAa,CAAA;QAE/B,UAAU;YACT,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,EAAA,2BAA2B,CAAA;QAC7D,CAAC;QAED,UAAU;YACT,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAA;YAC9B,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,GAAG,CAAE,CAAE,CAAA;QAChE,CAAC;QAED,SAAS,CAAE,KAAa,EAAE,IAAuB;YAChD,OAAO,IAAI,CAAC,IAAI,CAAE,EAAE,GAAG,KAAK,GAAG,EAAE,EAAE,IAAI,CAAE,CAAA;QAC1C,CAAC;QAED,UAAU,CAA8B;QACxC,SAAS,CAAE,IAAyB;YAEnC,IAAI,IAAI,EAAG,CAAC;gBAEX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAG,CAAC;oBACvC,IAAI,CAAC,SAAS,CAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAE,CAAA;gBAC7B,CAAC;gBAED,2BAA2B;gBAE3B,OAAO,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;YAE9B,CAAC;iBAAM,CAAC;gBAEP,MAAM,IAAI,GAAG,EAAE,CAAA;gBACf,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;gBAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,EAAG,CAAC,EAAG,CAAC;oBAClC,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,SAAS,CAAE,CAAC,CAAE,CAAE,CAAA;gBACjC,CAAC;gBAED,OAAO,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;YAC9B,CAAC;QAEF,CAAC;QAED,wBAAwB;QACxB,IAAI;YACH,OAAO,gBAAgB,CAAC,QAAQ,CAAE,IAAI,UAAU,CAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,GAAG,EAAE,CAAE,CAAE,CAAA;QACzG,CAAC;QAGD,IAAI,CAAE,IAAgC;YACrC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,EAAE,EAAE,EAAE,CAAE,CAAA;YACrF,IAAI,IAAI;gBAAG,GAAG,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;YAC1B,OAAO,GAAG,CAAA;QACX,CAAC;QAED,qBAAqB;QACrB,IAAI;YAEH,IAAI,GAAG,GAAG,IAAI,WAAW,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,MAAM,CAAE,CAAC,CAAC,CAAC,CAAA;YAE1D,IAAI,KAAK,GAAG,CAAC,CAAA;YACb,OAAO,GAAG,GAAG,CAAC,EAAG,CAAC;gBACjB,GAAG,MAAM,CAAC,CAAA;gBACV,EAAG,KAAK,CAAA;YACT,CAAC;YAED,OAAO,KAAK,CAAA;QACb,CAAC;QAED,QAAQ;YACP,OAAO,2BAA2B,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;QAClD,CAAC;QAED,QAAQ;YACP,OAAO,qBAAqB,CAAC,IAAI,CAAA;QAClC,CAAC;QAED,QAAQ;YACP,OAAO,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;QACzC,CAAC;QAED,IAAI;YACH,OAAO,QAAS,IAAI,CAAC,IAAI,EAAG,IAAK,IAAI,CAAC,IAAI,EAAE,CAAC,GAAI,EAAE,CAAA;QACpD,CAAC;QAED,OAAO;YACN,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAE,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAE,CAAE,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;YACjG,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAE,GAAG,CAAE,CAAA;YACzC,OAAO,GAAI,KAAK,CAAC,OAAO,EAAG,IAAI,IAAI,IAAI,KAAK,EAAE,CAAA;QAC/C,CAAC;QAED,QAAQ;YACP,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAE,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAE,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;YACzE,OAAO,GAAI,KAAK,CAAC,QAAQ,EAAG,MAAM,KAAK,EAAE,CAAA;QAC1C,CAAC;QAED,CAAE,oBAAoB,CAAE;YACvB,OAAO,oBAAoB,CAAE,EAAE,EAC9B,sBAAsB,CAAE,IAAI,CAAE,EAC9B,KAAK,EACL,oBAAoB,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,EACnC,KAAK,EACL,qBAAqB,CAAE,qBAAqB,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAE,EAC1E,IAAI,EACJ,oBAAoB,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,EACnC,GAAG,EACH,oBAAoB,CAAE,IAAI,CAAC,SAAS,EAAE,CAAE,CACxC,CAAA;QACF,CAAC;KAED;IA7DA;QADE,QAAQ;qDAKT;IAvEM;QADL,WAAW;2CAMZ;IAZW,uBAAqB,wBAuIjC,CAAA;AAEF,CAAC,EA9IS,CAAC,KAAD,CAAC,QA8IV;;;;AC9ID,IAAU,CAAC,CAiJV;AAjJD,WAAU,GAAC;IACV,SAAS,CAAC;QAET,iBAAiB,CAAE,CAAC;YAEnB,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBACZ,MAAM,CAAC,GAAG,GAAG,IAAI,aAAa,EAAY,CAAA;gBAGnC,AAAP,MAAM,CAAC,KAAK;oBACX,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;gBAC3B,CAAC;;YAFM;gBADL,cAAc;kCAGf;YAIF,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,CAAE,CAAA;YAEvC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;YAClB,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,CAAE,CAAA;YAEvC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;YAClB,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,CAAE,CAAA;YAEtC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAE,GAAG,CAAE,CAAA;YACrB,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,CAAE,CAAA;QAExC,CAAC;QAED,oBAAoB,CAAE,CAAC;YAEtB,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBACZ,MAAM,CAAC,GAAG,GAAG,IAAI,aAAa,EAAY,CAAA;gBAGnC,AAAP,MAAM,CAAC,KAAK;oBACX,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;gBAC5B,CAAC;;YAFM;gBADL,cAAc;kCAGf;YAIF,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,CAAE,CAAA;YAEvC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;YACzB,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,CAAE,CAAA;YAEvC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;YACzB,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,CAAE,CAAA;YAEtC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAE,GAAG,EAAE,KAAK,CAAE,CAAA;YAC1B,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,CAAE,CAAA;QAExC,CAAC;QAED,YAAY,CAAE,CAAC;YAEd,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBACZ,MAAM,CAAC,GAAG,GAAG,IAAI,aAAa,EAAY,CAAA;gBAGnC,AAAP,MAAM,CAAC,IAAI;oBACV,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAA;gBACrB,CAAC;;YAFM;gBADL,cAAc;iCAGf;YAIF,iBAAiB,CAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAE,CAAA;YAElC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;YAClB,iBAAiB,CAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAE,CAAA;YAElC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;YAClB,iBAAiB,CAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAE,CAAA;YAElC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAE,GAAG,CAAE,CAAA;YACrB,iBAAiB,CAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAE,CAAA;QAEnC,CAAC;QAED,cAAc,CAAE,CAAC;YAEhB,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBACZ,MAAM,CAAC,GAAG,GAAG,IAAI,aAAa,EAAY,CAAA;gBAGnC,AAAP,MAAM,CAAC,GAAG;oBACT,IAAI,GAAG,GAAG,CAAC,CAAA;oBACX,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,EAAG,CAAC;wBAC7B,GAAG,IAAI,GAAG,CAAA;oBACX,CAAC;oBACD,OAAO,GAAG,CAAA;gBACX,CAAC;;YANM;gBADL,cAAc;gCAOf;YAIF,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAE,CAAA;YAEjC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;YAClB,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,CAAE,CAAA;YAEnC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;YAClB,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,CAAE,CAAA;YAEnC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAE,GAAG,CAAE,CAAA;YACrB,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,CAAE,CAAA;QAEpC,CAAC;QAED,eAAe,CAAE,CAAC;YAEjB,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBACZ,MAAM,CAAC,GAAG,GAAG,IAAI,aAAa,EAAY,CAAA;gBAGnC,AAAP,MAAM,CAAC,GAAG;oBACT,IAAI,GAAG,GAAG,CAAC,CAAA;oBACX,IAAI,CAAC,GAAG,CAAC,OAAO,CAAE,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAE,CAAA;oBACrC,OAAO,GAAG,CAAA;gBACX,CAAC;;YAJM;gBADL,cAAc;gCAKf;YAIF,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAE,CAAA;YAEjC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;YAClB,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,CAAE,CAAA;YAEnC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;YAClB,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,CAAE,CAAA;YAEnC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAE,GAAG,CAAE,CAAA;YACrB,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,CAAE,CAAA;QAEpC,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EAjJS,CAAC,KAAD,CAAC,QAiJV;;;;ACjJD,IAAU,CAAC,CA6IV;AA7ID,WAAU,CAAC;IAEV,6EAA6E;IAC7E,MAAa,gBAAiB,SAAQ,WAAW;QAEhD,MAAM,CAAC,GAAG,GAA2C,MAAM,CAAA;QAC3D,MAAM,CAAC,IAAI,GAAG,IAA+B,CAAA;QAE7C,0FAA0F;QAC1F,IAAI;YACH,OAAO,IAA+B,CAAA;QACvC,CAAC;QAED,yBAAyB;QACzB,IAAI;YACH,OAAO,gBAAgB,CAAC,IAAI,CAAA;QAC7B,CAAC;QAED,yBAAyB;QACzB,SAAS;YACR,OAAO,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAA;QAC9E,CAAC;QAED,8BAA8B;QAE9B,IAAI;YACH,OAAO,IAAI,gBAAgB,CAAE,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAE,CAAC,OAAO,CAAE,IAAI,CAAC,SAAS,EAAE,CAAE,CAAA;QAC/E,CAAC;QAED,MAAM;YACL,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAA;QACvB,CAAC;QAED,mDAAmD;QAEnD,IAAI,CAA0C,IAAU;YACvD,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;QACpD,CAAC;QAED,gCAAgC;QAEhC,KAAK,CAA0C,IAAiB;YAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YACxB,MAAM,GAAG,GAAG;gBACX,IAAI,EAAE,GAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAE,IAAI,IAAI,gBAAgB,CAAE;gBAChD,IAAI,EAAE,GAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAE,IAAI,IAAI,gBAAgB,CAAE;gBAChD,IAAI,EAAE,GAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAE,IAAI,IAAI,gBAAgB,CAAE;gBAChD,IAAI,EAAE,GAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAE,IAAI,IAAI,gBAAgB,CAAE;aAChD,CAAA;YACD,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAE,IAAI,CAAC,GAAG,EAAE,CAAE,EAAE,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAS,CAAA;QAClF,CAAC;QAED,8BAA8B;QAC9B,KAAK;YACJ,OAAO,IAAI,CAAC,QAAQ,CAAE,gBAAgB,CAAC,IAAI,CAAE,CAAA;QAC9C,CAAC;QAGD,QAAQ,CAAE,IAA6B;YACtC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YACxB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAE,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,KAAK,EAAE,CAAE,CAAA;YAC/G,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAE,KAAK,CAAE,CAAA;YAC/B,OAAO,KAAK,CAAA;QACb,CAAC;QAGD,IAAI,CAAE,IAAuB;YAE5B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAE,gBAAgB,CAAC,IAAI,CAAE,CAAA;YAClD,IAAI,CAAC,IAAI;gBAAG,OAAO,IAAI,CAAA;YACvB,IAAI,IAAI,EAAE,GAAG,KAAK,IAAI,EAAE,GAAG;gBAAG,OAAO,IAAI,CAAA;YAEzC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YACxB,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAE,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAE,CAAA;YAE5E,OAAO,IAAI,CAAA;QACZ,CAAC;QAGD,OAAO,CAAE,IAA6B;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YACxB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAE,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,KAAK,EAAE,CAAE,IAAI,IAAI,CAAA;YACpH,IAAI,IAAI;gBAAG,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,CAAE,IAAI,CAAE,CAAC,CAAA;YAC3C,OAAO,IAAI,CAAC,CAAC,CAAC,uBAAuB,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,CAAE,IAAI,CAAE,CAAE,CAAC,CAAC,CAAC,IAAI,CAAA;QACrF,CAAC;QAED,MAAM;YACL,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,GAAG,CAAC,CAAA;QAC/B,CAAC;QAED,+CAA+C;QAC/C,UAAU;YACT,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,SAAS,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAE,IAAI,qBAAqB,CAAE,MAAM,CAAE,CAAA;QAC7F,CAAC;QAED,oDAAoD;QAEpD,WAAW;YAEV,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YACxB,IAAI,IAAI,GAAG,CAAC,CAAA;YAEZ,MAAM,KAAK,GAAG,CAAE,IAA2B,EAAE,EAAE;gBAC9C,IAAI,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI;oBAAG,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;gBAC3C,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,MAAM;oBAAG,OAAM;gBAClC,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAC,KAAK,EAAE,CAAC,OAAO,CAAE,KAAK,CAAE,CAAA;YAC3E,CAAC,CAAA;YACD,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAE,KAAK,CAAE,CAAA;YAE7B,OAAO,IAAI,CAAC,CAAC,CAAC,uBAAuB,CAAE,IAAI,CAAE,CAAC,CAAC,CAAC,IAAI,CAAA;QAErD,CAAC;QAED,wCAAwC;QAExC,OAAO;YAEN,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YACxB,MAAM,KAAK,GAAG,IAAI,GAAG,EAA2B,CAAA;YAEhD,MAAM,KAAK,GAAG,CAAE,IAA2B,EAAE,EAAE;gBAC9C,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,IAAI,EAAE,CAAG,CAAE,CAAA;gBAC3C,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,MAAM;oBAAG,OAAM;gBAClC,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAC,OAAO,CAAE,KAAK,CAAE,CAAA;YACpF,CAAC,CAAA;YACD,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAC,OAAO,CAAE,KAAK,CAAE,CAAA;YAEtC,OAAO,CAAE,GAAI,KAAK,CAAE,CAAA;QAErB,CAAC;QAED,CAAC;QAAA,CAAE,oBAAoB,CAAE;YACxB,OAAO,oBAAoB,CAAE,EAAE,EAC9B,sBAAsB,CAAE,IAAI,CAAE,EAC9B,GAAG,EACH,IAAI,CAAC,IAAI,EAAE,CACX,CAAA;QACF,CAAC;;IAhHD;QADE,SAAS,CAAC,MAAM;gDAGjB;IAQD;QADE,YAAY;gDAGb;IAID;QADE,YAAY;iDAUb;IAQD;QADE,YAAY;oDAMb;IAGD;QADE,QAAQ;gDAWT;IAGD;QADE,YAAY;mDAMb;IAaD;QADE,QAAQ;uDAeT;IAID;QADE,QAAQ;mDAeT;IA9HW,kBAAgB,mBAwI5B,CAAA;AAEF,CAAC,EA7IS,CAAC,KAAD,CAAC,QA6IV;;;;AC7ID,IAAU,CAAC,CAgEV;AAhED,WAAU,CAAC;IAEV,SAAgB,cAAc,CAAgB,EAC7C,IAAI,EACJ,IAAI,EACJ,EAAE,EACF,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,MAAM,EACN,MAAM,EACN,OAAO,GAWP;QAEA,IAAI,CAAC,MAAM;YAAG,MAAM,GAAG,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAA;QAClD,IAAI,CAAC,OAAO;YAAG,OAAO,GAAG,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,CAAE,IAAI,EAAE,IAAI,CAAE,IAAI,EAAE,IAAI,CAAE,CAAE,CAAA;QAElF,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM;YAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA,CAAC,qFAAqF;QAC7H,IAAI,IAAI,GAAG,EAAE;YAAG,IAAI,GAAG,EAAE,CAAA,CAAC,0EAA0E;QAEpG,IAAI,CAAC,GAAG,IAAI,CAAA;QACZ,IAAI,CAAC,GAAG,CAAC,CAAA;QACT,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAE,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAA;QAEnC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAG,CAAC;YAEnC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAE,EAAG,CAAC;gBAE7D,IAAI,GAAG,MAAM,CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAE,CAAA;gBACvC,EAAG,CAAC,CAAA;gBACJ,EAAG,CAAC,CAAA;YAEL,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAG,CAAC;gBAEtC,IAAI,GAAG,MAAM,CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAE,CAAA;gBAC9B,EAAG,CAAC,CAAA;YAEL,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAG,CAAC;gBAEtC,IAAI,GAAG,IAAI,CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAE,CAAA;gBAC5B,EAAG,CAAC,CAAA;YAEL,CAAC;iBAAM,CAAC;gBAEP,IAAI,GAAG,OAAO,CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAE,CAAA;gBACxC,EAAG,CAAC,CAAA;gBACJ,EAAG,CAAC,CAAA;YAEL,CAAC;QAEF,CAAC;IAEF,CAAC;IA5De,gBAAc,iBA4D7B,CAAA;AAEF,CAAC,EAhES,CAAC,KAAD,CAAC,QAgEV;;;;AChED,oBAAoB;AACpB,6BAA6B;AAC7B,IAAU,CAAC,CAoNV;AApND,WAAU,CAAC;IAEV,SAAS,CAAC;QAET,WAAW;YAEV,MAAM,IAAI,GAAG;gBACZ,4BAAY,KAAK,QAAM;gBACvB,4BAAY,KAAK,QAAM;gBACvB,4BAAY,KAAK,QAAM,CACjB,CAAA;YAEP,cAAc,CAAC;gBACd,IAAI,EAAE,CAAE,GAAI,IAAI,CAAC,QAAQ,CAAE;gBAC3B,IAAI,EAAE,CAAC;gBACP,EAAE,EAAE,CAAC;gBACL,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI;gBACjD,IAAI,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAE,IAAI,CAAE;gBAC/C,MAAM,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAE,4BAAY,KAAK,IAAG,IAAI,CAAM,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAE;gBACvH,OAAO,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;oBAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;oBACvB,IAAI,CAAC,YAAY,CAAE,UAAU,EAAE,IAAI,CAAE,CAAA;oBACrC,OAAO,IAAI,CAAA;gBACZ,CAAC;aACD,CAAC,CAAA;YAEF,iBAAiB,CAAE,IAAI,CAAC,SAAS,EAAE,CAClC;gBACC,4BAAY,KAAK,QAAM;gBACvB,4BAAY,KAAK,QAAM;gBACvB,4BAAY,KAAK,QAAM,CACjB,CACP,CAAC,SAAS,CAAE,CAAA;QAEd,CAAC;QAED,cAAc;YAEb,MAAM,IAAI,GAAG;gBACZ,4BAAY,KAAK,QAAM;gBACvB,4BAAY,KAAK,QAAM;gBACvB,4BAAY,KAAK,QAAM;gBACvB,4BAAY,KAAK,QAAM,CACjB,CAAA;YAEP,cAAc,CAAC;gBACd,IAAI,EAAE,CAAE,GAAI,IAAI,CAAC,QAAQ,CAAE;gBAC3B,IAAI,EAAE,CAAC;gBACP,EAAE,EAAE,CAAC;gBACL,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI;gBACjD,IAAI,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAE,IAAI,CAAE;gBAC/C,MAAM,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAE,4BAAY,KAAK,IAAG,IAAI,CAAM,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAE;gBACvH,OAAO,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;oBAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;oBACvB,IAAI,CAAC,YAAY,CAAE,UAAU,EAAE,IAAI,CAAE,CAAA;oBACrC,OAAO,IAAI,CAAA;gBACZ,CAAC;aACD,CAAC,CAAA;YAEF,iBAAiB,CAAE,IAAI,CAAC,SAAS,EAAE,CAClC;gBACC,4BAAY,KAAK,QAAM;gBACvB,4BAAY,KAAK,QAAM;gBACvB,4BAAY,KAAK,QAAM;gBACvB,4BAAY,KAAK,QAAM;gBACvB,4BAAY,KAAK,QAAM;gBACvB,4BAAY,KAAK,QAAM,CACjB,CACP,CAAC,SAAS,CAAE,CAAA;QAEd,CAAC;QAED,cAAc;YAEb,MAAM,IAAI,GAAG;gBACZ,4BAAY,KAAK,QAAM,CACjB,CAAA;YAEP,cAAc,CAAC;gBACd,IAAI,EAAE,CAAE,GAAI,IAAI,CAAC,QAAQ,CAAE;gBAC3B,IAAI,EAAE,CAAC;gBACP,EAAE,EAAE,CAAC;gBACL,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI;gBACjD,IAAI,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAE,IAAI,CAAE;gBAC/C,MAAM,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAE,4BAAY,KAAK,IAAG,IAAI,CAAM,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAE;gBACvH,OAAO,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;oBAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;oBACvB,IAAI,CAAC,YAAY,CAAE,UAAU,EAAE,IAAI,CAAE,CAAA;oBACrC,OAAO,IAAI,CAAA;gBACZ,CAAC;aACD,CAAC,CAAA;YAEF,iBAAiB,CAAE,IAAI,CAAC,SAAS,EAAE,CAClC;gBACC,4BAAY,KAAK,QAAM;gBACvB,4BAAY,KAAK,QAAM;gBACvB,4BAAY,KAAK,QAAM,CACjB,CACP,CAAC,SAAS,CAAE,CAAA;QAEd,CAAC;QAED,YAAY;YAEX,MAAM,IAAI,GAAG;gBACZ,4BAAY,KAAK,QAAM;gBACvB,4BAAY,KAAK,SAAO;gBACxB,4BAAY,KAAK,QAAM,CACjB,CAAA;YAEP,cAAc,CAAC;gBACd,IAAI,EAAE,CAAE,GAAI,IAAI,CAAC,QAAQ,CAAE;gBAC3B,IAAI,EAAE,CAAC;gBACP,EAAE,EAAE,CAAC;gBACL,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI;gBACjD,IAAI,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAE,IAAI,CAAE;gBAC/C,MAAM,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAE,4BAAY,KAAK,IAAG,IAAI,CAAM,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAE;gBACvH,OAAO,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;oBAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;oBACvB,IAAI,CAAC,YAAY,CAAE,UAAU,EAAE,IAAI,CAAE,CAAA;oBACrC,OAAO,IAAI,CAAA;gBACZ,CAAC;aACD,CAAC,CAAA;YAEF,iBAAiB,CAAE,IAAI,CAAC,SAAS,EAAE,CAClC;gBACC,4BAAY,KAAK,QAAM;gBACvB,4BAAY,KAAK,QAAM;gBACvB,4BAAY,IAAI,QAAM;gBACtB,4BAAY,KAAK,QAAM,CACjB,CACP,CAAC,SAAS,CAAE,CAAA;QAEd,CAAC;QAED,YAAY;YAEX,MAAM,IAAI,GAAG;gBACZ,4BAAY,KAAK,QAAM;gBACvB,4BAAY,KAAK,QAAM;gBACvB,4BAAY,KAAK,QAAM;gBACvB,4BAAY,KAAK,QAAM;gBACvB,4BAAY,KAAK,QAAM;gBACvB,4BAAY,KAAK,QAAM,CACjB,CAAA;YAEP,cAAc,CAAC;gBACd,IAAI,EAAE,CAAE,GAAI,IAAI,CAAC,QAAQ,CAAE;gBAC3B,IAAI,EAAE,CAAC;gBACP,EAAE,EAAE,CAAC;gBACL,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI;gBACjD,IAAI,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAE,IAAI,CAAE;gBAC/C,MAAM,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAE,4BAAY,KAAK,IAAG,IAAI,CAAM,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAE;gBACvH,OAAO,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;oBAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;oBACvB,IAAI,CAAC,YAAY,CAAE,UAAU,EAAE,IAAI,CAAE,CAAA;oBACrC,OAAO,IAAI,CAAA;gBACZ,CAAC;aACD,CAAC,CAAA;YAEF,iBAAiB,CAAE,IAAI,CAAC,SAAS,EAAE,CAClC;gBACC,4BAAY,KAAK,QAAM;gBACvB,4BAAY,KAAK,QAAM;gBACvB,4BAAY,KAAK,QAAM;gBACvB,4BAAY,KAAK,QAAM,CACjB,CACP,CAAC,SAAS,CAAE,CAAA;QAEd,CAAC;QAED,cAAc;YAEb,MAAM,IAAI,GAAG;gBACZ,4BAAY,KAAK,QAAM;gBACvB,4BAAY,KAAK,QAAM;gBACvB,4BAAY,KAAK,QAAM;gBACvB,4BAAY,KAAK,QAAM,CACjB,CAAA;YAEP,cAAc,CAAC;gBACd,IAAI,EAAE,CAAE,GAAI,IAAI,CAAC,QAAQ,CAAE;gBAC3B,IAAI,EAAE,CAAC;gBACP,EAAE,EAAE,CAAC;gBACL,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI;gBACjD,IAAI,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAE,IAAI,CAAE;gBAC/C,MAAM,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAE,4BAAY,KAAK,IAAG,IAAI,CAAM,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAE;gBACvH,OAAO,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;oBAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;oBACvB,IAAI,CAAC,YAAY,CAAE,UAAU,EAAE,IAAI,CAAE,CAAA;oBACrC,OAAO,IAAI,CAAA;gBACZ,CAAC;aACD,CAAC,CAAA;YAEF,iBAAiB,CAAE,IAAI,CAAC,SAAS,EAAE,CAClC;gBACC,4BAAY,KAAK,QAAM;gBACvB,4BAAY,IAAI,QAAM;gBACtB,4BAAY,IAAI,QAAM;gBACtB,4BAAY,KAAK,QAAM,CACjB,CACP,CAAC,SAAS,CAAE,CAAA;QAEd,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EApNS,CAAC,KAAD,CAAC,QAoNV;;;;ACtND,IAAU,CAAC,CAWV;AAXD,WAAU,CAAC;IACV,MAAa,mBAAoB,SAAQ,eAAe;QAEvD,MAAM,CAAC,KAAK,CAA4D,KAAY;YACnF,IAAI,OAAO,KAAK,KAAK,SAAS;gBAAG,OAAO,KAAK,CAAA;YAC7C,OAAO,SAAS,CAAE,IAAI,SAAS,CAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAE,CAAE,CAAA;QACtF,CAAC;QAED,MAAM,CAAC,OAAO,GAAG,KAAK,CAAA;;IAPV,qBAAmB,sBAS/B,CAAA;AACF,CAAC,EAXS,CAAC,KAAD,CAAC,QAWV;;;;ACXD,IAAU,CAAC,CAqBV;AArBD,WAAU,GAAC;IAAC,IAAA,EAAE,CAqBb;IArBW,WAAA,EAAE;QACb,SAAS,CAAC;YAET,gBAAgB,CAAE,CAAC;gBAElB,iBAAiB,CAAE,qBAAqB,EAAE,mBAAmB,GAAG,EAAE,EAAE,QAAQ,CAAE,mBAAmB,CAAE,CAAE,CAAA;gBAErG,iBAAiB,CAAE,IAAI,EAAE,mBAAmB,CAAC,KAAK,CAAE,KAAK,CAAE,CAAE,CAAA;gBAC7D,iBAAiB,CAAE,IAAI,EAAE,mBAAmB,CAAC,KAAK,CAAE,IAAI,CAAE,CAAE,CAAA;gBAC5D,iBAAiB,CAAE,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAE,MAAM,CAAE,CAAE,CAAA;gBAC/D,iBAAiB,CAAE,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAE,CAAC,CAAE,CAAE,CAAA;gBAE1D,iBAAiB,CAAE,KAAK,EAAE,mBAAmB,CAAC,IAAI,CAAE,KAAK,CAAE,CAAE,CAAA;gBAC7D,iBAAiB,CAAE,KAAK,EAAE,mBAAmB,CAAC,IAAI,CAAE,MAAM,CAAE,CAAE,CAAA;gBAE9D,iBAAiB,CAAE,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAE,KAAK,CAAE,CAAE,CAAA;gBAC9D,gBAAgB,CAAE,GAAE,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAAE,IAAI,CAAE,EAAE,YAAY,CAAE,CAAA;YAEzE,CAAC;SAED,CAAC,CAAA;IACH,CAAC,EArBW,EAAE,GAAF,MAAE,KAAF,MAAE,QAqBb;AAAD,CAAC,EArBS,CAAC,KAAD,CAAC,QAqBV;;;;ACrBD,IAAU,CAAC,CAgBV;AAhBD,WAAU,CAAC;IACV,MAAa,mBAAoB,SAAQ,iBAAiB;QAEzD,mBAAmB,GAAG,IAAI,CAAA;QAE1B,MAAM,CAAC,KAAK,CAA4D,KAAY;YACnF,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAE,KAAK,CAAE,CAAA;YAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAE,GAAG,CAAE;gBAAG,OAAO,SAAS,CAAE,IAAI,SAAS,CAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAE,CAAE,CAAA;YACnH,IAAI,IAAI,CAAC,KAAK,CAAE,GAAG,CAAE,KAAK,GAAG;gBAAG,OAAO,SAAS,CAAE,IAAI,SAAS,CAAE,aAAa,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAE,CAAE,CAAA;YACtH,OAAO,GAAkC,CAAA;QAC1C,CAAC;QAED,MAAM,CAAC,OAAO,GAAG,CAAiC,CAAA;;IAXtC,qBAAmB,sBAa/B,CAAA;AAEF,CAAC,EAhBS,CAAC,KAAD,CAAC,QAgBV;;;;AChBD,IAAU,CAAC,CA4BV;AA5BD,WAAU,GAAC;IAAC,IAAA,EAAE,CA4Bb;IA5BW,WAAA,EAAE;QACb,SAAS,CAAC;YAET,gBAAgB,CAAE,CAAC;gBAElB,iBAAiB,CAAE,qBAAqB,EAAE,mBAAmB,GAAG,EAAE,EAAE,QAAQ,CAAE,mBAAmB,CAAE,CAAE,CAAA;gBAErG,iBAAiB,CAAE,IAAI,EAAE,mBAAmB,CAAC,KAAK,CAAE,MAAM,CAAC,gBAAgB,CAAE,CAAE,CAAA;gBAC/E,iBAAiB,CAAE,IAAI,EAAE,mBAAmB,CAAC,KAAK,CAAE,MAAM,CAAC,gBAAgB,CAAE,CAAE,CAAA;gBAC/E,iBAAiB,CAAE,IAAI,EAAE,mBAAmB,CAAC,KAAK,CAAE,CAAC,CAAE,CAAE,CAAA;gBAEzD,iBAAiB,CAAE,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAE,MAAM,CAAC,OAAO,CAAE,CAAE,CAAA;gBACvE,iBAAiB,CAAE,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAE,MAAM,CAAC,iBAAiB,CAAE,CAAE,CAAA;gBACjF,iBAAiB,CAAE,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAE,MAAM,CAAC,iBAAiB,CAAE,CAAE,CAAA;gBAEjF,iBAAiB,CAAE,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,IAAI,CAAE,MAAM,CAAC,gBAAgB,CAAE,CAAE,CAAA;gBACjG,iBAAiB,CAAE,CAAC,EAAE,mBAAmB,CAAC,IAAI,CAAE,MAAM,CAAC,OAAO,CAAE,CAAE,CAAA;gBAClE,iBAAiB,CAAE,CAAC,EAAE,mBAAmB,CAAC,IAAI,CAAE,GAAG,CAAE,CAAE,CAAA;gBAEvD,iBAAiB,CAAE,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAE,CAAC,CAAE,CAAE,CAAA;gBACtD,gBAAgB,CAAE,GAAE,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAAE,EAAE,CAAE,EAAE,YAAY,CAAE,CAAA;gBACtE,gBAAgB,CAAE,GAAE,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAAE,MAAM,CAAC,GAAG,CAAE,EAAE,YAAY,CAAE,CAAA;gBAC9E,gBAAgB,CAAE,GAAE,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAAE,GAAG,CAAE,EAAE,aAAa,CAAE,CAAA;YAEzE,CAAC;SAGD,CAAC,CAAA;IACH,CAAC,EA5BW,EAAE,GAAF,MAAE,KAAF,MAAE,QA4Bb;AAAD,CAAC,EA5BS,CAAC,KAAD,CAAC,QA4BV;;;;AC5BD,IAAU,CAAC,CAgBV;AAhBD,WAAU,CAAC;IACV,MAAa,kBAAmB,SAAQ,eAAe;QAEtD,MAAM,CAAC,KAAK,CAA4D,KAAY;YACnF,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAG,OAAO,KAAK,CAAA;YAC5C,OAAO,SAAS,CAAE,IAAI,SAAS,CAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAE,CAAE,CAAA;QACtF,CAAC;QAED,MAAM,CAAC,IAAI,CAAqD,KAAc;YAC7E,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAG,OAAO,MAAM,CAAE,mBAAmB,CAAC,IAAI,CAAE,KAAK,CAAE,CAAE,CAAA;YAClF,OAAO,KAAK,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;QAC3B,CAAC;QAED,MAAM,CAAC,OAAO,GAAG,EAAE,CAAA;;IAZP,oBAAkB,qBAc9B,CAAA;AACF,CAAC,EAhBS,CAAC,KAAD,CAAC,QAgBV;;;;AChBD,IAAU,CAAC,CAmBV;AAnBD,WAAU,GAAC;IAAC,IAAA,EAAE,CAmBb;IAnBW,WAAA,EAAE;QACb,SAAS,CAAC;YAET,eAAe,CAAE,CAAC;gBAEjB,iBAAiB,CAAE,oBAAoB,EAAE,kBAAkB,GAAG,EAAE,EAAE,QAAQ,CAAE,kBAAkB,CAAE,CAAE,CAAA;gBAElG,iBAAiB,CAAE,IAAI,EAAE,kBAAkB,CAAC,KAAK,CAAE,EAAE,CAAE,CAAE,CAAA;gBACzD,iBAAiB,CAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAE,CAAC,CAAE,CAAE,CAAA;gBAEzD,iBAAiB,CAAE,EAAE,EAAE,kBAAkB,CAAC,IAAI,CAAE,EAAE,CAAE,CAAE,CAAA;gBACtD,iBAAiB,CAAE,EAAE,EAAE,kBAAkB,CAAC,IAAI,CAAE,CAAC,CAAE,CAAE,CAAA;gBAErD,iBAAiB,CAAE,EAAE,EAAE,kBAAkB,CAAC,KAAK,CAAE,EAAE,CAAE,CAAE,CAAA;gBACvD,gBAAgB,CAAE,GAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAE,CAAC,CAAE,EAAE,YAAY,CAAE,CAAA;YAErE,CAAC;SAED,CAAC,CAAA;IACH,CAAC,EAnBW,EAAE,GAAF,MAAE,KAAF,MAAE,QAmBb;AAAD,CAAC,EAnBS,CAAC,KAAD,CAAC,QAmBV;;;;ACnBD,IAAU,CAAC,CAwBV;AAxBD,WAAU,CAAC;IACC,qBAAmB,GAAG,aAAa,CAAC,IAAI,CAAE,SAAS,mBAAmB,CAA4B,OAAgB;QAC5H,OAAO,MAAM,oBAAqB,SAAQ,kBAAkB;YAE3D,MAAM,CAAC,OAAO,GAAG,OAAO,CAAA;YAExB,MAAM,CAAC,QAAQ;gBACd,IAAI,IAAI,KAAK,oBAAoB;oBAAG,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAA;gBAC3D,OAAO,sBAAsB,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,CAAA;YACxD,CAAC;YAED,MAAM,CAAC,KAAK,CAA4D,KAAY;gBACnF,IAAI,OAAO,CAAC,IAAI,CAAE,KAAK,CAAC,KAAK,CAAE,KAAK,CAAE,CAAE;oBAAG,OAAO,KAAK,CAAA;gBACvD,OAAO,SAAS,CAAE,IAAI,SAAS,CAAE,cAAc,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAE,CAAE,CAAA;YACxF,CAAC;YAED,MAAM,CAAC,IAAI,CAAqD,KAAc;gBAC7E,OAAO,KAAK,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;YAC3B,CAAC;YAED,MAAM,CAAC,OAAO,GAAG,EAAE,CAAA;SAEnB,CAAA;IACF,CAAC,CAAE,CAAA;AACJ,CAAC,EAxBS,CAAC,KAAD,CAAC,QAwBV;;;;ACxBD,IAAU,CAAC,CA8BV;AA9BD,WAAU,GAAC;IAAC,IAAA,EAAE,CA8Bb;IA9BW,WAAA,EAAE;QACb,SAAS,CAAC;YAET,yBAAyB,CAAE,CAAC;gBAE3B,iBAAiB,CAAE,mBAAmB,CAAE,KAAK,CAAE,EAAE,mBAAmB,CAAE,KAAK,CAAE,CAAE,CAAA;gBAC/E,kBAAkB,CAAE,mBAAmB,CAAE,KAAK,CAAE,EAAE,mBAAmB,CAAE,KAAK,CAAE,CAAE,CAAA;YAEjF,CAAC;YAED,uBAAuB,CAAE,CAAC;gBAEzB,MAAM,KAAK,GAAG,mBAAmB,CAAE,SAAS,CAAE,CAAA;gBAE9C,iBAAiB,CAAE,gCAAgC,EAAE,KAAK,GAAG,EAAE,EAAE,QAAQ,CAAE,KAAK,CAAE,CAAE,CAAA;gBAEpF,iBAAiB,CAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAE,SAAS,CAAE,CAAE,CAAA;gBACnD,iBAAiB,CAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAE,KAAK,CAAE,CAAE,CAAA;gBAChD,iBAAiB,CAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAE,GAAG,CAAE,CAAE,CAAA;gBAE9C,iBAAiB,CAAE,SAAS,EAAE,KAAK,CAAC,IAAI,CAAE,SAAS,CAAE,CAAE,CAAA;gBACvD,iBAAiB,CAAE,EAAE,EAAE,KAAK,CAAC,IAAI,CAAE,KAAK,CAAE,CAAE,CAAA;gBAC5C,iBAAiB,CAAE,EAAE,EAAE,KAAK,CAAC,IAAI,CAAE,GAAG,CAAE,CAAE,CAAA;gBAE1C,iBAAiB,CAAE,SAAS,EAAE,KAAK,CAAC,KAAK,CAAE,SAAS,CAAE,CAAE,CAAA;gBACxD,gBAAgB,CAAE,GAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAE,KAAK,CAAE,EAAE,cAAc,CAAE,CAAA;YAE9D,CAAC;SAED,CAAC,CAAA;IACH,CAAC,EA9BW,EAAE,GAAF,MAAE,KAAF,MAAE,QA8Bb;AAAD,CAAC,EA9BS,CAAC,KAAD,CAAC,QA8BV;;;;AC9BD,IAAU,CAAC,CA0DV;AA1DD,WAAU,CAAC;IACC,kBAAgB,GAAG,aAAa,CAAC,IAAI,CAAE,SAAS,gBAAgB,CAGtE,IAAU;QAEd,OAAO,MAAM,iBAAkB,SAAQ,eAAe;YAErD,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;YAElB,MAAM,CAAC,QAAQ;gBACd,IAAI,IAAI,KAAK,iBAAiB;oBAAG,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAA;gBACxD,OAAO,mBAAmB,GAAG,QAAQ,CAAE,IAAI,CAAE,GAAG,GAAG,CAAA;YACpD,CAAC;YAED,MAAM,CAAC,KAAK,CAA4D,KAAY;gBAEnF,IAAI,MAAM,CAAC,cAAc,CAAE,MAAM,CAAC,cAAc,CAAE,KAAK,CAAE,CAAE,EAAG,CAAC;oBAC9D,OAAO,SAAS,CAAE,IAAI,SAAS,CAAE,gBAAgB,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAE,CAAE,CAAA;gBAC1F,CAAC;gBAED,KAAK,MAAM,GAAG,IAAI,KAAK,EAAG,CAAC;oBAE1B,IAAI,CAAC;wBACJ,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAE,GAAG,CAAE,CAAA;oBACrB,CAAC;oBAAC,OAAO,KAAK,EAAG,CAAC;wBACjB,OAAO,SAAS,CAAE,IAAI,SAAS,CAAE,WAAW,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAE,CAAE,CAAA;oBACjG,CAAC;oBAED,IAAI,CAAC;wBACJ,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAI,KAAc,CAAE,GAAG,CAAE,CAAE,CAAA;oBACzC,CAAC;oBAAC,OAAO,KAAK,EAAG,CAAC;wBACjB,OAAO,SAAS,CAAE,IAAI,SAAS,CAAE,WAAW,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAE,CAAE,CAAA;oBACjG,CAAC;gBAEF,CAAC;gBAED,OAAO,KAAK,CAAA;YACb,CAAC;YAED,MAAM,CAAC,IAAI,CAAqD,KAAc;gBAE7E,IAAI,MAAM,CAAC,cAAc,CAAE,MAAM,CAAC,cAAc,CAAE,KAAK,CAAE,CAAE;oBAAG,OAAO,IAAI,CAAC,OAAO,CAAA;gBAEjF,MAAM,GAAG,GAAG,EAAS,CAAA;gBACrB,KAAK,MAAM,GAAG,IAAI,KAAY,EAAG,CAAC;oBACjC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAE,GAAG,CAAE;wBAAG,SAAQ;oBACpC,GAAG,CAAE,GAAG,CAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAI,KAAc,CAAE,GAAG,CAAE,CAAE,CAAA;gBACrD,CAAC;gBAED,OAAO,GAAG,CAAA;YACX,CAAC;YAED,MAAM,CAAC,OAAO,GAAG,EAAsD,CAAA;SAEvE,CAAA;IAEF,CAAC,CAAE,CAAA;AACJ,CAAC,EA1DS,CAAC,KAAD,CAAC,QA0DV;;;;AC1DD,IAAU,CAAC,CA+BV;AA/BD,WAAU,GAAC;IACV,SAAS,CAAC;QAET,sBAAsB,CAAE,CAAC;YAExB,iBAAiB,CAAE,gBAAgB,CAAC,CAAE,kBAAkB,EAAE,iBAAiB,CAAE,CAAC,EAAE,gBAAgB,CAAC,CAAE,kBAAkB,EAAE,iBAAiB,CAAE,CAAC,CAAE,CAAA;YAC7I,kBAAkB,CAAE,gBAAgB,CAAC,CAAE,kBAAkB,EAAE,iBAAiB,CAAE,CAAC,EAAE,gBAAgB,CAAC,CAAE,kBAAkB,EAAE,kBAAkB,CAAE,CAAC,CAAE,CAAA;QAEhJ,CAAC;QAED,mBAAmB,CAAE,CAAC;YAErB,MAAM,KAAK,GAAG,gBAAgB,CAAC,CAAE,mBAAmB,CAAE,UAAU,CAAE,EAAE,mBAAmB,CAAE,CAAC,CAAA;YAE1F,iBAAiB,CAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAE,EAAE,CAAE,CAAE,CAAA;YAC5C,iBAAiB,CAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAE,CAAE,CAAA;YACxD,iBAAiB,CAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAE,CAAE,CAAA;YACzD,iBAAiB,CAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAE,EAAE,CAAE,CAAE,CAAA;YAC7C,iBAAiB,CAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAE,CAAE,CAAA;YAErD,iBAAiB,CAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAE,CAAA;YAC1E,iBAAiB,CAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAE,CAAA;YAE7D,iBAAiB,CAAE,EAAE,EAAE,KAAK,CAAC,KAAK,CAAE,EAAE,CAAE,CAAE,CAAA;YAC1C,iBAAiB,CAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAE,CAAA;YAChE,gBAAgB,CAAE,GAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,WAAW,CAAE,CAAA;YAC/D,gBAAgB,CAAE,GAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,WAAW,CAAE,CAAA;QAEhE,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EA/BS,CAAC,KAAD,CAAC,QA+BV;;;;AC/BD,IAAU,CAAC,CAuCV;AAvCD,WAAU,CAAC;IACC,kBAAgB,GAAG,aAAa,CAAC,IAAI,CAAE,SAAS,gBAAgB,CAExE,IAAU;QAEZ,OAAO,MAAM,iBAAkB,SAAQ,eAAe;YAErD,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;YAElB,MAAM,CAAC,QAAQ;gBACd,IAAI,IAAI,KAAK,iBAAiB;oBAAG,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAA;gBACxD,OAAO,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,CAAA;YAClD,CAAC;YAED,MAAM,CAAC,KAAK,CAA4D,KAAY;gBAEnF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAE,KAAK,CAAE;oBAAG,OAAO,SAAS,CAAE,IAAI,SAAS,CAAE,WAAW,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAE,CAAE,CAAA;gBAElH,KAAK,MAAM,CAAE,KAAK,EAAE,IAAI,CAAE,IAAI,KAAK,CAAC,KAAK,CAAE,KAAK,CAAE,CAAC,OAAO,EAAE,EAAG,CAAC;oBAC/D,IAAI,CAAC;wBACJ,IAAI,CAAC,KAAK,CAAE,IAAI,CAAE,CAAA;oBACnB,CAAC;oBAAC,OAAO,KAAK,EAAG,CAAC;wBACjB,OAAO,SAAS,CAAE,IAAI,SAAS,CAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAE,CAAE,CAAA;oBACpG,CAAC;gBACF,CAAC;gBAED,OAAO,KAAK,CAAA;YACb,CAAC;YAED,MAAM,CAAC,IAAI,CAAqD,KAAc;gBAC7E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAE,KAAK,CAAE;oBAAG,OAAO,IAAI,CAAC,OAAO,CAAA;gBACjD,OAAO,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAyB,CAAA;YACrE,CAAC;YAED,MAAM,CAAC,OAAO,GAAG,EAAmC,CAAA;SAEpD,CAAA;IAEF,CAAC,CAAE,CAAA;AACJ,CAAC,EAvCS,CAAC,KAAD,CAAC,QAuCV;;;;ACvCD,IAAU,CAAC,CA+BV;AA/BD,WAAU,GAAC;IAAC,IAAA,EAAE,CA+Bb;IA/BW,WAAA,EAAE;QACb,SAAS,CAAC;YAET,sBAAsB,CAAE,CAAC;gBAExB,iBAAiB,CAAE,gBAAgB,CAAE,iBAAiB,CAAE,EAAE,gBAAgB,CAAE,iBAAiB,CAAE,CAAE,CAAA;gBACjG,kBAAkB,CAAE,gBAAgB,CAAE,iBAAiB,CAAE,EAAE,gBAAgB,CAAE,kBAAkB,CAAE,CAAE,CAAA;YAEpG,CAAC;YAED,cAAc,CAAE,CAAC;gBAEhB,MAAM,MAAM,GAAG,gBAAgB,CAAE,iBAAiB,CAAE,CAAA;gBAEpD,iBAAiB,CAAE,qCAAqC,EAAE,MAAM,GAAG,EAAE,CAAE,CAAA;gBAEvE,iBAAiB,CAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAE,EAAE,CAAE,CAAE,CAAA;gBAC7C,iBAAiB,CAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAE,CAAE,GAAG,CAAE,CAAE,CAAE,CAAA;gBAClD,iBAAiB,CAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAE,CAAE,KAAK,CAAE,CAAE,CAAE,CAAA;gBAErD,iBAAiB,CAAE,CAAE,GAAG,CAAE,EAAE,MAAM,CAAC,IAAI,CAAE,CAAE,GAAG,CAAE,CAAE,CAAE,CAAA;gBACpD,iBAAiB,CAAE,CAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAE,EAAE,MAAM,CAAC,IAAI,CAAE,CAAE,GAAG,EAAE,KAAK,CAAE,CAAE,CAAE,CAAA;gBAEvE,iBAAiB,CAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAE,EAAE,CAAE,CAAE,CAAA;gBAC3C,iBAAiB,CAAE,CAAE,GAAG,CAAE,EAAE,MAAM,CAAC,KAAK,CAAE,CAAE,GAAG,CAAE,CAAE,CAAE,CAAA;gBACrD,gBAAgB,CAAE,GAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAE,CAAC,CAAE,EAAE,WAAW,CAAE,CAAA;gBACvD,gBAAgB,CAAE,GAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAE,CAAE,KAAK,CAAE,CAAE,EAAE,YAAY,CAAE,CAAA;YAEjE,CAAC;SAED,CAAC,CAAA;IACH,CAAC,EA/BW,EAAE,GAAF,MAAE,KAAF,MAAE,QA+Bb;AAAD,CAAC,EA/BS,CAAC,KAAD,CAAC,QA+BV;;;;AC/BD,IAAU,CAAC,CAugBV;AAvgBD,WAAU,GAAC;IAEV,SAAS,KAAK,CAAE,IAAsB;QACrC,MAAM,IAAI,GAAG,cAAc,CAAE,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAqB,CAAA;QAC9F,IAAI,CAAC,WAAW,CAAE,IAAI,CAAE,CAAA;QACxB,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,SAAS,IAAI,CAAE,IAAsB,EAAE,KAAuB;QAC7D,IAAI,CAAC,WAAW,CAAE,KAAK,CAAE,CAAA;QACzB,KAAK,CAAC,WAAW,CAAE,IAAI,CAAE,CAAA;IAC1B,CAAC;IAED,SAAS,CAAC;QAET,gBAAgB,CAAE,CAAC;YAElB,MAAM,IAAI,GAAG,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;YAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,IAAI,EAAE,CAAA;YACjD,iBAAiB,CAAE,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,CAAE,CAAA;YAE1C,IAAI,CAAC,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YACzB,iBAAiB,CAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAE,CAAC,EAAE,CAAC,CAAE,CAAE,CAAA;YAChD,iBAAiB,CAAE,IAAI,CAAC,GAAG,CAAE,CAAC,CAAE,EAAE,KAAK,CAAE,CAAA;YAEzC,IAAI,CAAC,GAAG,CAAE,CAAC,CAAE,CAAA;YACb,iBAAiB,CAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAE,CAAA;YACnD,iBAAiB,CAAE,IAAI,CAAC,GAAG,CAAE,CAAC,CAAE,EAAE,IAAI,CAAE,CAAA;YAExC,IAAI,CAAC,GAAG,CAAE,CAAC,CAAE,CAAA;YACb,iBAAiB,CAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAE,CAAA;YAEnD,IAAI,CAAC,MAAM,CAAC,CAAE,CAAC,CAAE,CAAC,CAAA;YAClB,iBAAiB,CAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAE,CAAA;YAEtD,IAAI,CAAC,MAAM,CAAE,CAAE,CAAC,CAAE,EAAE,CAAC,CAAE,CAAA;YACvB,iBAAiB,CAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAE,CAAA;YAEzD,IAAI,CAAC,IAAI,CAAE,CAAC,CAAE,CAAA;YACd,iBAAiB,CAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAE,CAAA;YAEtD,IAAI,CAAC,IAAI,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;YACjB,iBAAiB,CAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAE,CAAA;YAEtD,IAAI,CAAC,IAAI,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;YACjB,iBAAiB,CAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAE,CAAA;YAEtD,IAAI,CAAC,GAAG,CAAE,CAAC,CAAE,CAAA;YACb,iBAAiB,CAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAE,CAAC,EAAE,CAAC,CAAE,CAAE,CAAA;YAChD,iBAAiB,CAAE,IAAI,CAAC,GAAG,CAAE,CAAC,CAAE,EAAE,KAAK,CAAE,CAAA;YAEzC,IAAI,CAAC,GAAG,CAAE,CAAC,CAAE,CAAA;YACb,iBAAiB,CAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAE,CAAC,EAAE,CAAC,CAAE,CAAE,CAAA;QAEjD,CAAC;QAED,iBAAiB,CAAE,CAAC;YAEnB,MAAM,IAAI,GAAG,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;YAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,CAAC,CAAC,gBAAgB,CAAE,CAAC,IAAI,EAAE,CAAA;YAEnD,IAAI,CAAC,UAAU,CAAC;gBACf,IAAI;gBACJ,KAAK;gBACL,IAAI;gBACJ,EAAE;gBACF,oBAAoB;gBACpB,CAAC;gBACD,IAAI,CAAC,EAAE;gBACP,MAAM,CAAC,GAAG;gBACV,MAAM,CAAC,iBAAiB;gBACxB,EAAE;gBACF,0CAA0C;gBAC1C,IAAI,UAAU,CAAC,EAAE,CAAC;gBAClB,IAAI,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC;gBAC3B,IAAI,UAAU,CAAC,CAAE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAE,CAAC;gBACtG,IAAI,CAAC,IAAI,EAAE;aACX,CAAC,CAAA;YAEF,iBAAiB,CAAE,IAAI,CAAC,UAAU,EAAE,EAAE;gBACrC,KAAK;gBACL,IAAI;gBACJ,CAAC;gBACD,oBAAoB;gBACpB,CAAC;gBACD,IAAI,CAAC,EAAE;gBACP,MAAM,CAAC,GAAG;gBACV,MAAM,CAAC,iBAAiB;gBACxB,EAAE;gBACF,0CAA0C;gBAC1C,IAAI,UAAU,CAAC,EAAE,CAAC;gBAClB,IAAI,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC;gBAC3B,IAAI,UAAU,CAAC,CAAE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAE,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAE,CAAC;gBACtG,IAAI,CAAC,IAAI,EAAE;aACX,CAAE,CAAA;QAEJ,CAAC;QAED,KAAK,CAAC,YAAY,CAAE,CAAC;YAEpB,MAAM,KAAK,GAAG,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;YAC5C,MAAM,KAAK,GAAG,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;YAE5C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,IAAI,EAAE,CAAA;YACnD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,IAAI,EAAE,CAAA;YAEnD,KAAK,CAAC,UAAU,CAAC,CAAE,KAAK,EAAE,KAAK,CAAE,CAAC,CAAA;YAClC,KAAK,CAAC,IAAI,EAAE,CAAA;YACZ,KAAK,CAAC,UAAU,CAAC,CAAE,KAAK,EAAE,KAAK,CAAE,CAAC,CAAA;YAClC,MAAM,eAAe,CAAE,KAAK,CAAE,CAAC,WAAW,CAAE,KAAK,CAAE,CAAA;YACnD,iBAAiB,CAAE,KAAK,CAAC,UAAU,EAAE,EAAE,CAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAE,CAAE,CAAA;QAExE,CAAC;QAED,sCAAsC,CAAE,CAAC;YAExC,MAAM,IAAI,GAAG,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;YAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,IAAI,EAAE,CAAA;YAEjD,IAAI,CAAC,UAAU,CAAC,CAAE,KAAK,EAAE,KAAK,CAAE,CAAC,CAAA;YACjC,IAAI,CAAC,UAAU,CAAC,CAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAE,CAAC,CAAA;YACxC,IAAI,CAAC,UAAU,CAAC,CAAE,KAAK,EAAE,MAAM,CAAE,CAAC,CAAA;YAElC,iBAAiB,CAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAE,KAAK,EAAE,MAAM,CAAE,CAAE,CAAA;QAE1D,CAAC;QAED,YAAY,CAAE,CAAC;YAEd,MAAM,IAAI,GAAG,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;YAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,IAAI,EAAE,CAAA;YAEjD,IAAI,CAAC,UAAU,CAAC,CAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAE,CAAC,CAAA;YACxC,IAAI,CAAC,IAAI,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;YACjB,IAAI,CAAC,IAAI,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;YACjB,IAAI,CAAC,IAAI,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;YACjB,IAAI,CAAC,IAAI,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;YAEjB,iBAAiB,CAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAE,CAAE,CAAA;QAEhE,CAAC;QAED,4BAA4B,CAAE,CAAC;YAE9B,MAAM,IAAI,GAAG,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;YAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,IAAI,EAAE,CAAA;YAEjD,IAAI,CAAC,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YAErC,IAAI,CAAC,IAAI,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;YACjB,IAAI,CAAC,IAAI,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;YACjB,IAAI,CAAC,IAAI,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;YAEjB,IAAI,CAAC,IAAI,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;YACjB,IAAI,CAAC,IAAI,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;YACjB,IAAI,CAAC,IAAI,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;YAEjB,iBAAiB,CAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAE,CAAA;QAE7D,CAAC;QAED,0BAA0B,EAAE,eAAe,CAAE,CAAE,CAAI,EAAE,EAAE;YAEtD,MAAM,IAAI,GAAG,cAAc,CAAE,CAAC,CAAC,gBAAgB,CAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAqB,CAAA;YACjF,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YAExD,MAAM,IAAI,GAAG,KAAK,CAAE,IAAI,CAAE,CAAA;YAC1B,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YAE3D,MAAM,KAAK,GAAG,KAAK,CAAE,IAAI,CAAE,CAAA;YAC3B,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,IAAI,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;YAE3C,IAAI,CAAE,IAAI,EAAE,KAAK,CAAE,CAAA;YACnB,iBAAiB,CAChB,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,EAAE,EAC1C,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,EAAE,EAC3C,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CACjB,CAAA;QAEF,CAAC,CAAE;QAEH,0BAA0B,EAAE,eAAe,CAAE,CAAE,CAAI,EAAE,EAAE;YAEtD,MAAM,IAAI,GAAG,cAAc,CAAE,CAAC,CAAC,gBAAgB,CAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAqB,CAAA;YACjF,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YAExD,MAAM,IAAI,GAAG,KAAK,CAAE,IAAI,CAAE,CAAA;YAC1B,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,IAAI,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;YAE1C,MAAM,KAAK,GAAG,KAAK,CAAE,IAAI,CAAE,CAAA;YAC3B,KAAK,CAAC,KAAK,CAAC,IAAI,CAAE,IAAI,CAAC,KAAK,CAAE,CAAA;YAC9B,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YAE5D,IAAI,CAAE,IAAI,EAAE,KAAK,CAAE,CAAA;YACnB,iBAAiB,CAChB,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,EAAE,EAC1C,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,EAAE,EAC3C,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CACjB,CAAA;QAEF,CAAC,CAAE;QAEH,0BAA0B,EAAE,eAAe,CAAE,CAAE,CAAI,EAAE,EAAE;YAEtD,MAAM,IAAI,GAAG,cAAc,CAAE,CAAC,CAAC,gBAAgB,CAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAqB,CAAA;YACjF,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YAExD,MAAM,IAAI,GAAG,KAAK,CAAE,IAAI,CAAE,CAAA;YAC1B,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YAE3D,MAAM,KAAK,GAAG,KAAK,CAAE,IAAI,CAAE,CAAA;YAC3B,KAAK,CAAC,KAAK,CAAC,IAAI,CAAE,IAAI,CAAC,KAAK,CAAE,CAAA;YAC9B,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,IAAI,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;YAE3C,IAAI,CAAE,IAAI,EAAE,KAAK,CAAE,CAAA;YACnB,iBAAiB,CAChB,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,EAAE,EAC1C,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,EAAE,EAC3C,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CACjB,CAAA;QAEF,CAAC,CAAE;QAEH,2BAA2B,EAAE,eAAe,CAAE,CAAE,CAAI,EAAE,EAAE;YAEvD,MAAM,IAAI,GAAG,cAAc,CAAE,CAAC,CAAC,gBAAgB,CAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAqB,CAAA;YACjF,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YAExD,MAAM,IAAI,GAAG,KAAK,CAAE,IAAI,CAAE,CAAA;YAC1B,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,IAAI,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;YAE1C,MAAM,KAAK,GAAG,KAAK,CAAE,IAAI,CAAE,CAAA;YAC3B,KAAK,CAAC,KAAK,CAAC,IAAI,CAAE,IAAI,CAAC,KAAK,CAAE,CAAA;YAC9B,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YAE5D,IAAI,CAAE,IAAI,EAAE,KAAK,CAAE,CAAA;YACnB,iBAAiB,CAChB,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,EAAE,EAC1C,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,EAAE,EAC3C,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CACjB,CAAA;QAEF,CAAC,CAAE;QAEH,2BAA2B,EAAE,eAAe,CAAE,CAAE,CAAI,EAAE,EAAE;YAEvD,MAAM,IAAI,GAAG,cAAc,CAAE,CAAC,CAAC,gBAAgB,CAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAqB,CAAA;YACjF,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YAExD,MAAM,IAAI,GAAG,KAAK,CAAE,IAAI,CAAE,CAAA;YAC1B,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YAE3D,MAAM,KAAK,GAAG,KAAK,CAAE,IAAI,CAAE,CAAA;YAC3B,KAAK,CAAC,KAAK,CAAC,IAAI,CAAE,IAAI,CAAC,KAAK,CAAE,CAAA;YAC9B,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,IAAI,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;YAE3C,IAAI,CAAE,IAAI,EAAE,KAAK,CAAE,CAAA;YACnB,iBAAiB,CAChB,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,EAAE,EAC1C,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,EAAE,EAC3C,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CACjB,CAAA;QAEF,CAAC,CAAE;QAEH,oBAAoB,EAAE,eAAe,CAAE,CAAE,CAAI,EAAE,EAAE;YAEhD,MAAM,IAAI,GAAG,cAAc,CAAE,CAAC,CAAC,gBAAgB,CAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAqB,CAAA;YACjF,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YAExD,MAAM,IAAI,GAAG,KAAK,CAAE,IAAI,CAAE,CAAA;YAC1B,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YAErD,MAAM,KAAK,GAAG,KAAK,CAAE,IAAI,CAAE,CAAA;YAC3B,KAAK,CAAC,KAAK,CAAC,IAAI,CAAE,IAAI,CAAC,KAAK,CAAE,CAAA;YAC9B,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YAE5D,IAAI,CAAE,IAAI,EAAE,KAAK,CAAE,CAAA;YACnB,iBAAiB,CAChB,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,EAAE,EAC1C,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,EAAE,EAC3C,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CACd,CAAA;QAEF,CAAC,CAAE;QAEH,uBAAuB,EAAE,eAAe,CAAE,CAAE,CAAI,EAAE,EAAE;YAEnD,MAAM,IAAI,GAAG,cAAc,CAAE,CAAC,CAAC,gBAAgB,CAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAqB,CAAA;YACjF,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YAExD,MAAM,IAAI,GAAG,KAAK,CAAE,IAAI,CAAE,CAAA;YAC1B,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YAE3D,MAAM,KAAK,GAAG,KAAK,CAAE,IAAI,CAAE,CAAA;YAC3B,KAAK,CAAC,KAAK,CAAC,IAAI,CAAE,IAAI,CAAC,KAAK,CAAE,CAAA;YAC9B,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YAEtD,IAAI,CAAE,IAAI,EAAE,KAAK,CAAE,CAAA;YACnB,iBAAiB,CAChB,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,EAAE,EAC1C,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,EAAE,EAC3C,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CACd,CAAA;QAEF,CAAC,CAAE;QAEH,qBAAqB,EAAE,eAAe,CAAE,CAAE,CAAI,EAAE,EAAE;YAEjD,MAAM,IAAI,GAAG,cAAc,CAAE,CAAC,CAAC,gBAAgB,CAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAqB,CAAA;YACjF,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YAExD,MAAM,IAAI,GAAG,KAAK,CAAE,IAAI,CAAE,CAAA;YAC1B,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,IAAI,CAAE,CAAC,CAAE,CAAA;YAEvC,MAAM,KAAK,GAAG,KAAK,CAAE,IAAI,CAAE,CAAA;YAC3B,KAAK,CAAC,KAAK,CAAC,IAAI,CAAE,IAAI,CAAC,KAAK,CAAE,CAAA;YAC9B,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YAE5D,IAAI,CAAE,IAAI,EAAE,KAAK,CAAE,CAAA;YACnB,iBAAiB,CAChB,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,EAAE,EAC1C,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,EAAE,EAC3C,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CACd,CAAA;QAEF,CAAC,CAAE;QAEH,sBAAsB,EAAE,eAAe,CAAE,CAAE,CAAI,EAAE,EAAE;YAElD,MAAM,IAAI,GAAG,cAAc,CAAE,CAAC,CAAC,gBAAgB,CAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAqB,CAAA;YACjF,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YAExD,MAAM,IAAI,GAAG,KAAK,CAAE,IAAI,CAAE,CAAA;YAC1B,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YAE3D,MAAM,KAAK,GAAG,KAAK,CAAE,IAAI,CAAE,CAAA;YAC3B,KAAK,CAAC,KAAK,CAAC,IAAI,CAAE,IAAI,CAAC,KAAK,CAAE,CAAA;YAC9B,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,IAAI,CAAE,CAAC,CAAE,CAAA;YAExC,IAAI,CAAE,IAAI,EAAE,KAAK,CAAE,CAAA;YACnB,iBAAiB,CAChB,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,EAAE,EAC1C,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,EAAE,EAC3C,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CACd,CAAA;QAEF,CAAC,CAAE;QAEH,wBAAwB,EAAE,eAAe,CAAE,CAAE,CAAI,EAAE,EAAE;YAEpD,MAAM,IAAI,GAAG,cAAc,CAAE,CAAC,CAAC,gBAAgB,CAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAqB,CAAA;YACjF,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YAExD,MAAM,IAAI,GAAG,KAAK,CAAE,IAAI,CAAE,CAAA;YAC1B,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,gBAAgB,CAAE,UAAU,CAAE,EAAE,CAAC,CAAE,CAAA;YAEjG,MAAM,KAAK,GAAG,KAAK,CAAE,IAAI,CAAE,CAAA;YAC3B,KAAK,CAAC,KAAK,CAAC,IAAI,CAAE,IAAI,CAAC,KAAK,CAAE,CAAA;YAC9B,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YAE5D,IAAI,CAAE,IAAI,EAAE,KAAK,CAAE,CAAA;YACnB,iBAAiB,CAChB,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,EAAE,EAC1C,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,EAAE,EAC3C,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CACd,CAAA;YACD,iBAAiB,CAChB,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,IAAI,CAAE,IAAI,gBAAgB,CAAE,UAAU,CAAE,CAAE,CAAC,UAAU,EAAE,EACrF,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,IAAI,CAAE,IAAI,gBAAgB,CAAE,UAAU,CAAE,CAAE,CAAC,UAAU,EAAE,EACtF,CAAE,CAAC,CAAE,CACL,CAAA;QAEF,CAAC,CAAE;QAEH,0BAA0B,EAAE,eAAe,CAAE,CAAE,CAAI,EAAE,EAAE;YAEtD,MAAM,IAAI,GAAG,cAAc,CAAE,CAAC,CAAC,gBAAgB,CAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAqB,CAAA;YACjF,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YAExD,MAAM,IAAI,GAAG,KAAK,CAAE,IAAI,CAAE,CAAA;YAC1B,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YAE3D,MAAM,KAAK,GAAG,KAAK,CAAE,IAAI,CAAE,CAAA;YAC3B,KAAK,CAAC,KAAK,CAAC,IAAI,CAAE,IAAI,CAAC,KAAK,CAAE,CAAA;YAC9B,KAAK,CAAC,SAAS,CAAE,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,gBAAgB,CAAE,UAAU,CAAE,EAAE,CAAC,CAAE,CAAA;YAEnG,IAAI,CAAE,IAAI,EAAE,KAAK,CAAE,CAAA;YACnB,iBAAiB,CAChB,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,EAAE,EAC1C,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,EAAE,EAC3C,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CACd,CAAA;YACD,iBAAiB,CAChB,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,IAAI,CAAE,IAAI,gBAAgB,CAAE,UAAU,CAAE,CAAE,CAAC,UAAU,EAAE,EACrF,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,IAAI,CAAE,IAAI,gBAAgB,CAAE,UAAU,CAAE,CAAE,CAAC,UAAU,EAAE,EACtF,CAAE,CAAC,CAAE,CACL,CAAA;QAEF,CAAC,CAAE;QAEH,uBAAuB,EAAE,eAAe,CAAE,CAAE,CAAI,EAAE,EAAE;YAEnD,MAAM,IAAI,GAAG,cAAc,CAAE,CAAC,CAAC,gBAAgB,CAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAqB,CAAA;YACjF,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YAExD,MAAM,IAAI,GAAG,KAAK,CAAE,IAAI,CAAE,CAAA;YAC1B,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YAExD,MAAM,KAAK,GAAG,KAAK,CAAE,IAAI,CAAE,CAAA;YAC3B,KAAK,CAAC,KAAK,CAAC,IAAI,CAAE,IAAI,CAAC,KAAK,CAAE,CAAA;YAC9B,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YAE7D,IAAI,CAAE,IAAI,EAAE,KAAK,CAAE,CAAA;YACnB,iBAAiB,CAChB,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,EAAE,EAC1C,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,EAAE,EAC3C,CAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAE,CAClB,CAAA;QAEF,CAAC,CAAE;QAEH,uBAAuB,EAAE,eAAe,CAAE,CAAE,CAAI,EAAE,EAAE;YAEnD,MAAM,IAAI,GAAG,cAAc,CAAE,CAAC,CAAC,gBAAgB,CAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAqB,CAAA;YACjF,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YAExD,MAAM,IAAI,GAAG,KAAK,CAAE,IAAI,CAAE,CAAA;YAC1B,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YAE5D,MAAM,KAAK,GAAG,KAAK,CAAE,IAAI,CAAE,CAAA;YAC3B,KAAK,CAAC,KAAK,CAAC,IAAI,CAAE,IAAI,CAAC,KAAK,CAAE,CAAA;YAC9B,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YAEzD,IAAI,CAAE,IAAI,EAAE,KAAK,CAAE,CAAA;YACnB,iBAAiB,CAChB,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,EAAE,EAC1C,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,EAAE,EAC3C,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAE,CAClB,CAAA;QAEF,CAAC,CAAE;QAEH,sBAAsB,EAAE,eAAe,CAAE,CAAE,CAAI,EAAE,EAAE;YAElD,MAAM,IAAI,GAAG,cAAc,CAAE,CAAC,CAAC,gBAAgB,CAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAqB,CAAA;YACjF,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YAE9D,MAAM,IAAI,GAAG,KAAK,CAAE,IAAI,CAAE,CAAA;YAC1B,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,IAAI,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;YAC1C,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,IAAI,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;YAE1C,MAAM,KAAK,GAAG,KAAK,CAAE,IAAI,CAAE,CAAA;YAC3B,KAAK,CAAC,KAAK,CAAC,IAAI,CAAE,IAAI,CAAC,KAAK,CAAE,CAAA;YAC9B,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YAElE,IAAI,CAAE,IAAI,EAAE,KAAK,CAAE,CAAA;YACnB,iBAAiB,CAChB,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,EAAE,EAC1C,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,EAAE,EAC3C,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CACvB,CAAA;QAEF,CAAC,CAAE;QAEH,oBAAoB,EAAE,eAAe,CAAE,CAAE,CAAI,EAAE,EAAE;YAEhD,MAAM,IAAI,GAAG,cAAc,CAAE,CAAC,CAAC,gBAAgB,CAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAqB,CAAA;YACjF,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YAE9D,MAAM,IAAI,GAAG,KAAK,CAAE,IAAI,CAAE,CAAA;YAC1B,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAA;YAEjE,MAAM,KAAK,GAAG,KAAK,CAAE,IAAI,CAAE,CAAA;YAC3B,KAAK,CAAC,KAAK,CAAC,IAAI,CAAE,IAAI,CAAC,KAAK,CAAE,CAAA;YAC9B,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,IAAI,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;YAC3C,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,IAAI,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;YAE3C,IAAI,CAAE,IAAI,EAAE,KAAK,CAAE,CAAA;YACnB,iBAAiB,CAChB,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,EAAE,EAC1C,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,EAAE,EAC3C,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CACvB,CAAA;QAEF,CAAC,CAAE;QAEH,KAAK,CAAC,kDAAkD,CAAE,CAAC;YAE1D,MAAM,SAAS,GAAG,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAA;YAC3C,MAAM,UAAU,GAAG,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAA;YAE5C,MAAM,SAAS,GAAG,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,GAAE,EAAE,CAAC,SAAS,EAAE,CAAC,CAAA;YACtE,SAAS,CAAC,IAAI,CAAE,UAAU,CAAC,IAAI,EAAE,EAAE,qBAAqB,CAAE,MAAM,CAAE,CAAE,CAAA;YAEpE,MAAM,UAAU,GAAG,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,GAAE,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,GAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;YAErG,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAA;YACpD,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAA;YAEtD,SAAS,CAAC,UAAU,CAAC,CAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAE,CAAC,CAAA;YAC5C,iBAAiB,CAAE,SAAS,CAAC,UAAU,EAAE,EAAE,CAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAE,CAAE,CAAA;YAEnE,MAAM,eAAe,CAAE,UAAU,CAAE,CAAC,WAAW,CAAE,SAAS,CAAE,CAAA;YAC5D,iBAAiB,CAAE,UAAU,CAAC,UAAU,EAAE,EAAE,CAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAE,CAAE,CAAA;YAEpE,UAAU,CAAC,MAAM,CAAE,CAAE,GAAG,CAAE,EAAE,CAAC,EAAE,CAAC,CAAE,CAAA;YAClC,iBAAiB,CAAE,UAAU,CAAC,UAAU,EAAE,EAAE,CAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAE,CAAE,CAAA;YAEzE,MAAM,eAAe,CAAE,SAAS,CAAE,CAAC,WAAW,CAAE,UAAU,CAAE,CAAA;YAC5D,iBAAiB,CAAE,SAAS,CAAC,UAAU,EAAE,EAAE,CAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAE,CAAE,CAAA;YAExE,SAAS,CAAC,UAAU,CAAC,CAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAE,CAAC,CAAA;YACjD,iBAAiB,CAAE,SAAS,CAAC,UAAU,EAAE,EAAE,CAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAE,CAAE,CAAA;QAEzE,CAAC;KAED,CAAC,CAAA;AAEH,CAAC,EAvgBS,CAAC,KAAD,CAAC,QAugBV;;;;ACvgBD,IAAU,CAAC,CA0QV;AA1QD,WAAU,CAAC;IAEV,gCAAgC;IAChC,MAAa,gBAAiB,SAAQ,gBAAgB;QAErD,MAAM,CAAC,GAAG,GAAG,yBAAyB,CAAE,yBAAyB,CAAC,IAAI,CAA4C,CAAA;QAElH,4BAA4B;QAE5B,UAAU,CACT,IAAuC,EACvC,MAA8C,MAAM;YAGpD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;YAC1B,IAAI,IAAI,KAAK,SAAS;gBAAG,OAAO,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,CAAE,IAAI,CAAE,CAAE,CAAA;YAEpF,IAAI,CAAC,MAAM,CAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,CAAE,CAAA;YACzC,OAAO,IAAI,CAAC,UAAU,EAAE,CAAA;QAEzB,CAAC;QAED,sDAAsD;QAEtD,MAAM,CACL,IAAsC,EACtC,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,EAC1B,EAAE,GAAG,IAAI,EACT,MAA8C,MAAM;YAEpD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YACxB,cAAc,CAAC;gBACd,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE;gBAClB,IAAI;gBACJ,EAAE;gBACF,IAAI;gBACJ,KAAK,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,CAAE,IAAI,CAAE,EAAE,IAAI,CAAE;gBAClF,IAAI,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAE;gBAChH,MAAM,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,GAAG,CAAE;gBAC5H,OAAO,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAE;aACrI,CAAC,CAAA;QACH,CAAC;QAED,oBAAoB;QACpB,IAAI,CAAE,IAA2B;YAChC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,EAAG,CAAC;gBAClC,IAAI,iBAAiB,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,CAAE,IAAI,CAAE,EAAE,IAAI,CAAE;oBAAG,OAAO,IAAI,CAAA;YAC7E,CAAC;YACD,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,qCAAqC;QACrC,GAAG,CACF,IAA2B,EAC3B,IAAc,EACd,MAA8C,MAAM;YAEpD,IAAI,IAAI,KAAK,SAAS;gBAAG,OAAO,OAAO,CAAE,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAE,CAAA;YAC5D,IAAI,IAAI;gBAAG,IAAI,CAAC,GAAG,CAAE,IAAI,EAAE,GAAG,CAAE,CAAA;;gBAC3B,IAAI,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;YACrB,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,qDAAqD;QACrD,GAAG,CACF,IAA2B,EAC3B,MAA8C,MAAM;YAEpD,IAAI,IAAI,CAAC,GAAG,CAAE,IAAI,CAAE;gBAAG,OAAM;YAC7B,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAE,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAE,CAAA;QACxE,CAAC;QAED,iCAAiC;QACjC,GAAG,CAAE,IAA2B;YAE/B,MAAM,KAAK,GAAG,CAAE,GAAI,IAAI,CAAC,KAAK,EAAE,CAAE,CAAA;YAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAG,CAAC,EAAG,CAAC;gBAEzC,IAAI,CAAE,iBAAiB,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,CAAE,KAAK,CAAC,CAAC,CAAC,CAAE,EAAE,IAAI,CAAE;oBAAG,SAAQ;gBAE/E,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CACf,KAAK,CAAC,CAAC,GAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,gBAAgB,CAAC,IAAI,EAC3C,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EACf,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EACf,IAAI,CACJ,CAAA;gBAED,KAAK,CAAC,MAAM,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;gBACpB,EAAG,CAAC,CAAA;YAEL,CAAC;QAEF,CAAC;QAED,2CAA2C;QAC3C,IAAI,CAAE,IAAY,EAAE,EAAU;YAC7B,IAAI,CAAC,IAAI,EAAE,CAAC,SAAS,CAAE,IAAI,CAAC,KAAK,EAAE,CAAE,IAAI,CAAE,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CAAE,CAAA;QAC/D,CAAC;QAED,2BAA2B;QAC3B,IAAI,CAAE,IAAY;YACjB,IAAI,CAAC,IAAI,EAAE,CAAC,SAAS,CAAE,IAAI,CAAC,KAAK,EAAE,CAAE,IAAI,CAAE,CAAE,CAAA;QAC9C,CAAC;QAED,2DAA2D;QAC3D,SAAS,CACR,IAAU,EACV,IAA2B,EAC3B,MAA8C,MAAM;YAEpD,IAAI,CAAC,MAAM,CAAE,CAAE,IAAI,CAAE,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,CAAE,CAAA;YAClD,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC,IAAI,CAAE,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAE,CAAA;QACpE,CAAC;QAED,CAAC;QAAA,CAAE,oBAAoB,CAAE;YACxB,OAAO,oBAAoB,CAAE,EAAE,EAC9B,sBAAsB,CAAE,IAAI,CAAE,EAC9B,GAAG,EACH,IAAI,CAAC,IAAI,EAAE,EACX,GAAG,EACH,oBAAoB,CAAE,IAAI,CAAC,UAAU,EAAE,CAAE,CACzC,CAAA;QACF,CAAC;QAED,iDAAiD;QAE1C,AAAP,MAAM,CAAC,EAAE,CAA+C,IAAU;YAEjE,MAAM,IAAI,GAAG,oBAAoB,CAAE,IAAI,CAAE,CAAA;YAGzC,MAAM,mBAAoB,SAAQ,gBAAgB;gBAEjD,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;gBAGlB,KAAK,CAAE,IAAiC;oBACvC,IAAI,IAAI,KAAK,SAAS;wBAAG,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,CAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAE,CAAA;oBAClF,KAAK,MAAM,IAAI,IAAI,IAAI;wBAAG,IAAI,CAAC,KAAK,CAAE,IAAI,CAAE,CAAA;oBAC5C,IAAI,CAAC,UAAU,CAAE,IAAI,CAAE,CAAA;oBACvB,OAAO,IAAI,CAAC,KAAK,EAAE,CAAA;gBACpB,CAAC;gBAED,MAAM,CAAC,QAAQ;oBACd,OAAO,IAAI,KAAK,mBAAmB,CAAC,CAAC,CAAC,sBAAsB,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAA;gBAC7F,CAAC;;YATD;gBADE,QAAQ;4DAMT;YAQF,OAAO,mBAAmB,CAAA;QAC3B,CAAC;;IA7ID;QADE,QAAQ;sDAYT;IAID;QADE,WAAW;kDAkBZ;IAqFM;QADL,aAAa,CAAC,MAAM;oCAyBrB;IAnJW,kBAAgB,mBAqJ5B,CAAA;IAGD,uCAAuC;IACvC,MAAa,oBAAqB,SAAQ,gBAAgB,CAAC,EAAE,CAAE,UAAU,CAAE;KAAG;IAAjE,sBAAoB,uBAA6C,CAAA;IAE9E,wCAAwC;IACxC,MAAa,qBAAsB,SAAQ,gBAAgB,CAAC,EAAE,CAAE,mBAAmB,CAAE;KAAG;IAA3E,uBAAqB,wBAAsD,CAAA;IAExF,4CAA4C;IAC5C,MAAa,oBAAqB,SAAQ,gBAAgB,CAAC,EAAE,CAAE,kBAAkB,CAAE;KAAG;IAAzE,sBAAoB,uBAAqD,CAAA;IAEtF,sCAAsC;IACtC,MAAa,qBAAsB,SAAQ,gBAAgB,CAAC,EAAE,CAAE,iBAAiB,CAAE;KAAG;IAAzE,uBAAqB,wBAAoD,CAAA;IAEtF,uCAAuC;IACvC,MAAa,oBAAqB,SAAQ,gBAAgB,CAAC,EAAE,CAAE,kBAAkB,CAAE;KAAG;IAAzE,sBAAoB,uBAAqD,CAAA;IAEtF,4CAA4C;IAC5C,MAAa,qBAAsB,SAAQ,gBAAgB,CAAC,EAAE,CAAE,gBAAgB,CAAE;KAAG;IAAxE,uBAAqB,wBAAmD,CAAA;IAErF,8CAA8C;IAC9C,MAAa,oBAAqB,SAAQ,gBAAgB,CAAC,EAAE,CAAE,kBAAkB,CAAE;KAAG;IAAzE,sBAAoB,uBAAqD,CAAA;IAEtF,8CAA8C;IAC9C,MAAa,sBAAuB,SAAQ,gBAAgB,CAAC,EAAE,CAAE,kBAAkB,CAAE;KAAG;IAA3E,wBAAsB,yBAAqD,CAAA;IAExF,4CAA4C;IAC5C,MAAa,qBAAsB,SAAQ,gBAAgB,CAAC,EAAE,CAAE,gBAAgB,CAAC,CAAE,kBAAkB,EAAE,eAAe,CAAE,CAAC,CAAE;KAAG;IAAjH,uBAAqB,wBAA4F,CAAA;IAE9H,sCAAsC;IACtC,MAAa,qBAAsB,SAAQ,gBAAgB,CAAC,EAAE,CAAE,gBAAgB,CAAE,eAAe,CAAE,CAAE;KAAG;IAA3F,uBAAqB,wBAAsE,CAAA;IAExG,4CAA4C;IAC5C,MAAa,oBAAqB,SAAQ,gBAAgB,CAAC,EAAE,CAAE,QAAQ,CAAC,OAAO,IAAI,MAAM,CAAE;KAAG;IAAjF,sBAAoB,uBAA6D,CAAA;IAE9F,qCAAqC;IACrC,MAAa,qBAAsB,SAAQ,gBAAgB,CAAC,EAAE,CAAE,UAAU,CAAE;KAAG;IAAlE,uBAAqB,wBAA6C,CAAA;IAG/E,qCAAqC;IACrC,MAAa,qBAAsB,SAAQ,gBAAgB,CAAC,EAAE,CAAE,gBAAgB,CAAE;QAEjF,uDAAuD;QAChD,AAAP,MAAM,CAAC,EAAE,CAA6B,KAAY;YAEjD,MAAM,wBAAyB,SAAQ,qBAAqB;gBAE3D,KAAK,GAAG,SAAS,CAAC,IAAI,CAAE,KAAY,CAAW,CAAA;gBAE/C,MAAM,CAAC,QAAQ;oBACd,OAAO,IAAI,KAAK,wBAAwB,CAAC,CAAC,CAAC,iCAAiC,GAAK,KAAc,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAA;gBAC5H,CAAC;gBAED,2BAA2B;gBAE3B,WAAW,CAAE,IAAuE;oBACnF,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAA;oBACpC,MAAM,IAAI,GAAK,KAAc,EAAE,CAAA;oBAC/B,OAAO,IAAI,CAAC,KAAK,CAAE,IAAI,EAAE,GAAG,CAAE,IAAI,CAAC,EAAE,CAAG,IAA0B,CAAC,IAAI,EAAE,CAAE,CAAE;yBAC3E,GAAG,CAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAE,IAAI,EAAE,IAAI,CAAE,CAAwF,CAAA;gBAC/H,CAAC;gBAGD,UAAU,CAAE,IAA8E;oBACzF,IAAI,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;gBACxB,CAAC;gBAED,yCAAyC;gBAEzC,IAAI,CAAE,MAAkE;oBAEvE,MAAM,IAAI,GAAK,KAAc,EAA6B,CAAA;oBAC1D,IAAI,IAAsB,CAAA;oBAE1B,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAG,CAAC;wBAEpD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,SAAS,CAAE,MAAM,IAAI,SAAS,CAAE,CAAA;wBACzD,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;wBAC5C,IAAI,CAAC,MAAM,CAAC,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAC,CAAA;oBAE7B,CAAC;yBAAM,IAAI,MAAM,YAAY,gBAAgB,EAAG,CAAC;wBAEhD,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,EAAE,CAAA;wBAC/B,IAAI,CAAC,MAAM,CAAC,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAC,CAAA;wBAC5B,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC,IAAI,EAAE,CAAA;oBAEhC,CAAC;yBAAM,IAAI,MAAM,EAAG,CAAC;wBAEpB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAE,MAAM,CAAE,CAAA;wBACxD,IAAI,CAAC,MAAM,CAAC,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAC,CAAA;wBAC5B,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC,IAAI,EAAE,CAAA;oBAEhC,CAAC;yBAAM,CAAC;wBACP,OAAO,SAAS,CAAE,IAAI,KAAK,CAAE,cAAc,CAAE,CAAE,CAAA;oBAChD,CAAC;oBAED,IAAI,IAAI,CAAC,IAAI;wBAAG,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,CAAE,CAAA;oBACtC,OAAO,IAA6D,CAAA;gBAErE,CAAC;aAED;YA9CA;gBADE,QAAQ;uEAMT;YAGD;gBADE,WAAW;sEAGZ;YAID;gBADE,WAAW;gEA+BZ;YAIF,OAAO,wBAAwB,CAAA;QAChC,CAAC;KAED;IAlEY,uBAAqB,wBAkEjC,CAAA;IAED,yDAAyD;IACzD,SAAgB,wBAAwB,CAA6B,KAAY;QAChF,OAAO,qBAAqB,CAAC,EAAE,CAAE,KAAK,CAAE,CAAA;IACzC,CAAC;IAFe,0BAAwB,2BAEvC,CAAA;AAEF,CAAC,EA1QS,CAAC,KAAD,CAAC,QA0QV;;;;;;;;;;AC1QD,IAAU,CAAC,CAuHV;AAvHD,WAAU,CAAC;IACV,gFAAgF;IAChF,MAAa,gBAAiB,SAAQ,gBAAgB;QAErD,MAAM,CAAC,GAAG,GAAG,yBAAyB,CAAE,yBAAyB,CAAC,IAAI,CAA4C,CAAA;QAElH,yBAAyB;QAEzB,IAAI;YACH,OAAO,IAAI,CAAC,UAAU,EAAE,CAAA;QACzB,CAAC;QAED,yBAAyB;QACzB,IAAI,CACH,GAA0B,EAC1B,IAAU,EACV,IAAU;YAEV,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,KAAK,SAAS;gBAAG,IAAI,CAAC,GAAG,CAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAE,CAAA;YAC7E,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;YAC7B,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAC,CAAC,CAAC,IAAI,CAAA;QAClE,CAAC;QAED,MAAM,CAAC,MAAM,GAAG,EAA+C,CAAA;QAE/D,0FAA0F;QAC1F,MAAM,CAAC,IAAI,CAGI,MAAc,EAAE,IAAI,GAAG,EAAE;YAEvC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;YAErC,MAAM,qBAAqB,GAAG,MAAM,qBAAsB,SAAU,IAAa;gBAChF,iEAAiE;gBAEjE,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;gBAElB,MAAM,CAAC,QAAQ;oBAEd,IAAI,IAAI,KAAK,qBAAqB;wBAAG,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAA;oBAE5D,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAE,MAAM,CAAE,CAAC,GAAG,CAAE,CAAC,CAAE,IAAI,EAAE,IAAI,CAAE,EAAC,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,EAAE,CAAE,CAAA;oBACpF,OAAO,yBAAyB,GAAG,MAAM,CAAC,IAAI,CAAE,IAAI,CAAE,GAAG,IAAI,CAAA;gBAE9D,CAAC;aAOD,CAAA;YAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAG,CAAC;gBAE7B,MAAM,CAAC,cAAc,CAAE,qBAAqB,CAAC,SAAS,EAAE,KAAK,EAAE;oBAC9D,KAAK,EAAE,UAAsC,IAAU;wBACtD,OAAO,IAAI,CAAC,IAAI,CAAE,MAAM,GAAG,KAAK,EAAE,MAAM,CAAE,KAAK,CAAS,EAAE,IAAI,CAAE,CAAA;oBACjE,CAAC;iBACD,CAAE,CAAA;gBAEH,oDAAoD;YACrD,CAAC;YAED,OAAO,MAAM,CAAC,MAAM,CAAE,qBAAqB,EAAE,EAAE,MAAM,EAAE,EAAE,GAAI,IAAI,CAAC,MAAM,EAAE,GAAI,MAAM,EAAE,EAAE,CAAE,CAAA;QAE3F,CAAC;QAED,CAAC;QAAA,CAAE,oBAAoB,CAAE;YAExB,MAAM,IAAI,GAAG,eAAe,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;YAChD,MAAM,KAAK,GAAG,eAAe,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAE,IAAI,EAAE,CAAA;YAE5D,OAAO,oBAAoB,CAAE,EAAE,EAC9B,sBAAsB,CAAE,IAAI,CAAE,EAC9B,GAAG,EACH,IAAI,CAAC,IAAI,EAAE,EACX,GAAG,EACH,oBAAoB,CAAE,IAAI,EAAE,GAAG,CAAE,CAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,IAAI,CAAE,GAAG,EAAE,KAAK,CAAE,KAAK,CAAE,CAAE,CAAE,CAAE,CACrF,CAAA;QAEF,CAAC;;IA1ED;QADE,QAAQ;gDAGT;IARW,kBAAgB,mBAkF5B,CAAA;IAED,MAAM,IAAI;QACa;QAAmB;QAAzC,YAAsB,GAAQ,EAAW,GAAQ;YAA3B,QAAG,GAAH,GAAG,CAAK;YAAW,QAAG,GAAH,GAAG,CAAK;QACjD,CAAC;QACD,CAAC;QAAA,CAAE,oBAAoB,CAAE;YACxB,OAAO,kBAAkB,CAAE,EAAE,EAC5B,kBAAkB,CAAE,EAAE,EAAE,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,EACxD,kBAAkB,CAAE,EAAE,EAAC,IAAI,CAAC,EAC5B,kBAAkB,CAAE,EAAE,EAAE,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CACxD,CAAA;QACF,CAAC;KACD;IAED,2EAA2E;IAC3E,SAAgB,mBAAmB,CAEhC,KAAY;QAEd,OAAO,MAAM,mBAAoB,SAAQ,gBAAgB;YAExD,KAAK,GAAG,KAAK,CAAA;YAEb,GAAG,CAAE,GAA0B,EAAE,IAAU;gBAC1C,OAAO,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,IAAI,CAAC,KAAuC,EAAE,IAAI,CAA2B,CAAA;YACrG,CAAC;YAED,MAAM,CAAC,QAAQ;gBACd,OAAO,IAAI,KAAK,mBAAmB,CAAC,CAAC,CAAC,sBAAsB,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAA;YAC9F,CAAC;SAED,CAAA;IAEF,CAAC;IAlBe,qBAAmB,sBAkBlC,CAAA;AAEF,CAAC,EAvHS,CAAC,KAAD,CAAC,QAuHV;;;;ACvHD,IAAU,CAAC,CAkHV;AAlHD,WAAU,GAAC;IAAC,IAAA,EAAE,CAkHb;IAlHW,WAAA,EAAE;QAEb,SAAS,CAAC;YAET,KAAK,CAAC,uBAAuB,CAAE,CAAC;gBAE/B,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;gBACzC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,IAAI,EAAE,CAAA;gBACjD,iBAAiB,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CAAE,CAAA;gBAEpC,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,gBAAgB,EAAE,IAAI,CAAE,CAAA;gBACxC,IAAI,CAAC,IAAI,CAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,CAAE,CAAA;gBAC1C,iBAAiB,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAE,KAAK,EAAE,GAAG,CAAE,CAAE,CAAA;gBAChD,iBAAiB,CAAE,IAAI,CAAC,GAAG,CAAE,GAAG,CAAE,EAAE,IAAI,CAAE,CAAA;gBAC1C,iBAAiB,CAAE,IAAI,CAAC,GAAG,CAAE,KAAK,CAAE,EAAE,IAAI,CAAE,CAAA;gBAC5C,iBAAiB,CAAE,IAAI,CAAC,GAAG,CAAE,KAAK,CAAE,EAAE,KAAK,CAAE,CAAA;gBAC7C,iBAAiB,CAAE,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,gBAAgB,CAAG,CAAC,IAAI,EAAE,EAAE,IAAI,CAAE,CAAA;gBACrE,iBAAiB,CAAE,IAAI,CAAC,IAAI,CAAE,KAAK,EAAE,gBAAgB,CAAG,CAAC,IAAI,EAAE,EAAE,IAAI,CAAE,CAAA;gBAEvE,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,gBAAgB,CAAG,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;gBAC/C,iBAAiB,CAAE,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,gBAAgB,CAAG,CAAC,IAAI,EAAE,EAAE,GAAG,CAAE,CAAA;gBAEpE,IAAI,CAAC,IAAI,CAAE,KAAK,EAAE,gBAAgB,CAAG,CAAC,UAAU,CAAC,CAAE,KAAK,EAAE,KAAK,CAAE,CAAC,CAAA;gBAClE,iBAAiB,CAAE,IAAI,CAAC,IAAI,CAAE,KAAK,EAAE,gBAAgB,CAAG,CAAC,UAAU,EAAE,EAAE,CAAE,KAAK,EAAE,KAAK,CAAE,CAAE,CAAA;gBAEzF,IAAI,CAAC,GAAG,CAAE,GAAG,EAAE,KAAK,CAAE,CAAA;gBACtB,iBAAiB,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAE,KAAK,CAAE,CAAE,CAAA;YAE5C,CAAC;YAED,KAAK,CAAC,kBAAkB,CAAE,CAAC;gBAE1B,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;gBAC1C,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;gBAE1C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,IAAI,EAAE,CAAA;gBACnD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,IAAI,EAAE,CAAA;gBAEnD,KAAK,CAAC,IAAI,CAAE,GAAG,EAAE,gBAAgB,EAAE,IAAI,CAAG,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;gBACtD,KAAK,CAAC,IAAI,EAAE,CAAA;gBACZ,KAAK,CAAC,IAAI,CAAE,GAAG,EAAE,gBAAgB,EAAE,IAAI,CAAG,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;gBACtD,MAAM,eAAe,CAAE,KAAK,CAAE,CAAC,WAAW,CAAE,KAAK,CAAE,CAAA;gBACnD,iBAAiB,CAAE,KAAK,CAAC,IAAI,CAAE,GAAG,EAAE,gBAAgB,CAAG,CAAC,IAAI,EAAE,EAAE,GAAG,CAAE,CAAA;gBAErE,KAAK,CAAC,IAAI,CAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,CAAG,CAAC,UAAU,CAAC,CAAE,KAAK,CAAE,CAAC,CAAA;gBAClE,KAAK,CAAC,IAAI,EAAE,CAAA;gBACZ,KAAK,CAAC,IAAI,CAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,CAAG,CAAC,UAAU,CAAC,CAAE,KAAK,CAAE,CAAC,CAAA;gBAClE,MAAM,eAAe,CAAE,KAAK,CAAE,CAAC,WAAW,CAAE,KAAK,CAAE,CAAA;gBACnD,iBAAiB,CAAE,KAAK,CAAC,IAAI,CAAE,KAAK,EAAE,gBAAgB,CAAG,CAAC,UAAU,EAAE,EAAE,CAAE,KAAK,EAAE,KAAK,CAAE,CAAE,CAAA;YAE3F,CAAC;YAED,KAAK,CAAC,yDAAyD,CAAE,CAAC;gBAEjE,MAAM,IAAK,SAAQ,gBAAgB,CAAC,IAAI,CAAC;oBACxC,KAAK,EAAE,qBAAqB;oBAC5B,OAAO,EAAE,qBAAqB,CAAC,EAAE,CAAE,GAAE,EAAE,CAAC,OAAO,CAAE;oBACjD,QAAQ,EAAE,qBAAqB,CAAC,EAAE,CAAE,GAAE,EAAE,CAAC,OAAO,CAAE;iBAClD,CAAC;iBAAG;gBAEL,MAAM,OAAQ,SAAQ,gBAAgB,CAAC,IAAI,CAAC;oBAC3C,KAAK,EAAE,qBAAqB;oBAC5B,IAAI,EAAE,qBAAqB,CAAC,EAAE,CAAE,GAAE,EAAE,CAAC,IAAI,CAAE;iBAC3C,CAAC;iBAAG;gBAEL,MAAM,OAAQ,SAAQ,gBAAgB,CAAC,IAAI,CAAC;oBAC3C,KAAK,EAAE,mBAAmB,CAAE,qBAAqB,CAAE;oBACnD,MAAM,EAAE,qBAAqB,CAAC,EAAE,CAAE,GAAE,EAAE,CAAC,IAAI,CAAE;iBAC7C,CAAC;iBAAG;gBAEL,MAAM,IAAI,GAAG,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAA;gBAE7C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC,IAAI,CAAE,IAAI,gBAAgB,CAAE,UAAU,CAAE,CAAE,CAAA;gBACzE,iBAAiB,CAAE,IAAI,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE,IAAI,CAAE,CAAA;gBACtD,iBAAiB,CAAE,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE,IAAI,CAAE,CAAA;gBAC3D,iBAAiB,CAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,CAAE,CAAA;gBAE7D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC,GAAG,CAAE,KAAK,CAAE,CAAA;gBAC9B,iBAAiB,CAAE,IAAI,CAAC,KAAK,EAAG,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,CAAE,CAAA;gBAErD,MAAM,OAAO,GAAG,CAAE,MAAM,eAAe,CAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAE,CAAE,CAAC,MAAM,CAAC,CAAC,CAAE,IAAI,EAAE,qBAAqB,CAAE,CAAC,CAAC,CAAG,CAAA;gBAC3G,iBAAiB,CAAE,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE,OAAO,CAAE,CAAA;gBAC9D,iBAAiB,CAAE,OAAO,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE,IAAI,CAAE,CAAA;gBAE3D,OAAO,CAAC,IAAI,CAAC,IAAI,CAAE,CAAC,MAAM,CAAE,IAAI,CAAE,CAAA;gBAClC,iBAAiB,CAAE,OAAO,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,CAAE,CAAA;gBAEnD,MAAM,QAAQ,GAAG;oBAChB,MAAM,eAAe,CAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAE,CAAE,CAAC,IAAI,CAAC,CAAC,CAAE,IAAI,EAAE,qBAAqB,CAAE,CAAC,CAAC;oBACrF,MAAM,eAAe,CAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAE,CAAE,CAAC,IAAI,CAAC,CAAC,CAAE,IAAI,EAAE,qBAAqB,CAAE,CAAC,CAAC;iBACrF,CAAA;gBAED,iBAAiB,CAChB,IAAI,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,GAAG,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAE,EAChE,QAAQ,CAAC,GAAG,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAE,CAC1C,CAAA;gBAED,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC,GAAG,CAAE,IAAI,EAAE,MAAM,CAAG,CAAC,GAAG,CAAE,QAAQ,CAAE,CAAA;gBAC7D,iBAAiB,CAChB,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,CAAE,IAAI,CAAG,CAAC,GAAG,EAAE,EACvC,QAAQ,CACR,CAAA;gBACD,iBAAiB,CAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,CAAE,IAAI,CAAE,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE,IAAI,CAAE,CAAA;gBAC1E,iBAAiB,CAChB,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,CAAE,IAAI,CAAE,EAAE,GAAG,EAAE,IAAI,IAAI,EAC/C,IAAI,CACJ,CAAA;gBAED,kBAAkB,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,GAAI,QAAQ,CAAC,GAAG,CAAE,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAE,CAAE,CAAA;YAEjG,CAAC;SAED,CAAC,CAAA;IAEH,CAAC,EAlHW,EAAE,GAAF,MAAE,KAAF,MAAE,QAkHb;AAAD,CAAC,EAlHS,CAAC,KAAD,CAAC,QAkHV;;;;AClHD,IAAU,CAAC,CAYV;AAZD,WAAU,CAAC;IAEV;;;OAGG;IACH,SAAgB,gBAAgB,CAAE,GAAW,EAAE,IAAI,GAAG,CAAC;QACtD,IAAI,IAAI,GAAG,IAAI,KAAK,CAAE,GAAG,CAAC,MAAM,CAAE,CAAA;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;YAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QACjE,OAAO,iBAAiB,CAAE,IAAI,CAAE,CAAA;IACjC,CAAC;IAJe,kBAAgB,mBAI/B,CAAA;AAEF,CAAC,EAZS,CAAC,KAAD,CAAC,QAYV;;;;ACZD,IAAU,CAAC,CA6BV;AA7BD,WAAU,CAAC;IACC,kBAAgB,GAAG,aAAa,CAAC,IAAI,CAAE,SAAS,gBAAgB,CAExE,OAAgB;QAElB,OAAO,MAAM,iBAAkB,SAAQ,eAAe;YAErD,MAAM,CAAC,OAAO,GAAG,OAAO,CAAA;YAExB,MAAM,CAAC,QAAQ;gBACd,IAAI,IAAI,KAAK,iBAAiB;oBAAG,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAA;gBACxD,OAAO,mBAAmB,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,CAAA;YACrD,CAAC;YAED,MAAM,CAAC,KAAK,CAA4D,KAAY;gBACnF,IAAI,OAAO,CAAC,IAAI,CAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAE,MAAM,EAAE,KAAK,CAAE,CAAE;oBAAG,OAAO,KAAK,CAAA;gBACvE,OAAO,SAAS,CAAE,IAAI,SAAS,CAAE,cAAc,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAE,CAAE,CAAA;YACxF,CAAC;YAED,MAAM,CAAC,IAAI,CAAqD,KAAc;gBAC7E,IAAI,IAAI,CAAC,KAAK,CAAE,KAAK,CAAE;oBAAG,OAAO,KAAK,CAAA;gBACtC,OAAO,OAAO,CAAC,CAAC,CAAwB,CAAA;YACzC,CAAC;YAED,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAoB,CAAA;SAE9C,CAAA;IAEF,CAAC,CAAE,CAAA;AACJ,CAAC,EA7BS,CAAC,KAAD,CAAC,QA6BV;;;;AC7BD,IAAU,CAAC,CAiCV;AAjCD,WAAU,GAAC;IAAC,IAAA,EAAE,CAiCb;IAjCW,WAAA,EAAE;QACb,SAAS,CAAC;YAET,sBAAsB,CAAE,CAAC;gBAExB,iBAAiB,CAAE,gBAAgB,CAAC,CAAE,KAAK,CAAE,CAAC,EAAE,gBAAgB,CAAC,CAAE,KAAK,CAAE,CAAC,CAAE,CAAA;gBAC7E,kBAAkB,CAAE,gBAAgB,CAAC,CAAE,KAAK,CAAE,CAAC,EAAE,gBAAgB,CAAC,CAAE,KAAK,CAAE,CAAC,CAAE,CAAA;YAE/E,CAAC;YAED,cAAc,CAAE,CAAC;gBAEhB,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAE,GAAG,EAAE,KAAK,CAAE,CAAC,CAAA;gBAE/C,iBAAiB,CAAE,+BAA+B,EAAE,MAAM,GAAG,EAAE,EAAE,QAAQ,CAAE,MAAM,CAAE,CAAE,CAAA;gBAErF,iBAAiB,CAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAE,GAAG,CAAE,CAAE,CAAA;gBAC9C,iBAAiB,CAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAE,KAAK,CAAE,CAAE,CAAA;gBAEhD,iBAAiB,CAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAE,IAAI,CAAE,CAAE,CAAA;gBAChD,iBAAiB,CAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAE,GAAG,CAAE,CAAE,CAAA;gBAC/C,iBAAiB,CAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAE,KAAK,CAAE,CAAE,CAAA;gBAEjD,iBAAiB,CAAE,MAAM,CAAC,IAAI,CAAE,GAAG,CAAE,EAAE,GAAG,CAAE,CAAA;gBAC5C,iBAAiB,CAAE,MAAM,CAAC,IAAI,CAAE,KAAK,CAAE,EAAE,KAAK,CAAE,CAAA;gBAChD,iBAAiB,CAAE,MAAM,CAAC,IAAI,CAAE,KAAK,CAAE,EAAE,GAAG,CAAE,CAAA;gBAE9C,iBAAiB,CAAE,GAAG,EAAE,MAAM,CAAC,KAAK,CAAE,GAAG,CAAE,CAAE,CAAA;gBAC7C,gBAAgB,CAAE,GAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAE,GAAG,CAAE,EAAE,cAAc,CAAE,CAAA;YAE7D,CAAC;SAED,CAAC,CAAA;IACH,CAAC,EAjCW,EAAE,GAAF,MAAE,KAAF,MAAE,QAiCb;AAAD,CAAC,EAjCS,CAAC,KAAD,CAAC,QAiCV;;;;AChCD,IAAU,CAAC,CA2PV;AA3PD,WAAU,CAAC;IAEV,8BAA8B;IAC9B,MAAa,gBAAiB,SAAQ,gBAAgB;QAErD,MAAM,CAAC,GAAG,GAAG,yBAAyB,CAAE,yBAAyB,CAAC,IAAI,CAA4C,CAAC;QAEnH,SAAS,CAAE,IAA6B;YACvC,OAAO,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACnC,CAAC;QAED,IAAI,CAAE,IAA4B;YACjC,OAAO,IAAI,CAAC,OAAO,CAAE,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAE,CAAA;QACnD,CAAC;QAGD,OAAO,CAAE,IAA6B,EAAE,IAA4B;YAEnE,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAA;YACtC,IAAI,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,CAAE,SAAS,CAAE,CAAC,CAAC,CAAC,IAAI,CAAA;YAElE,IAAI,IAAI,KAAK,SAAS;gBAAG,OAAO,IAAI,CAAA;YACpC,IAAI,iBAAiB,CAAE,IAAI,EAAG,IAAI,CAAE;gBAAG,OAAO,IAAI,CAAA;YAElD,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CACf,gBAAgB,CAAC,IAAI,EACrB,SAAS,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,EAChC,SAAS,EAAE,IAAI,EAAE,IAAI,IAAI,EACzB,IAAI,CACJ,CAAA;YAED,OAAO,IAAI,CAAC,OAAO,CAAE,IAAI,CAAE,CAAA;QAC5B,CAAC;QAGD,SAAS,CAAE,IAAsB,EAAE,IAA6C;YAE/E,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAA;YACnC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC,IAAI,CAAE,qBAAqB,CAAE,CAAA;YAE/E,IAAI,IAAI,EAAG,CAAC;gBAEX,IAAI,CAAC,KAAK,CAAC,CAAE,CAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAE,EAAE,CAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAE,CAAE,CAAC,CAAA;gBAC1D,OAAO,IAAI,CAAA;YAEZ,CAAC;iBAAM,CAAC;gBAEP,IAAI,CAAC,IAAI,EAAE,CAAA,CAAC,+CAA+C;gBAE3D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;gBAC9B,IAAI,CAAC,SAAS;oBAAG,OAAO,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;gBAEhC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI;oBAAG,OAAO,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;gBAC9C,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI;oBAAG,OAAO,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;gBAE9C,OAAO,CAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAA;YAC5C,CAAC;QAEF,CAAC;QAED,CAAC;QAAA,CAAE,oBAAoB,CAAE;YACxB,OAAO,oBAAoB,CAAE,EAAE,EAC9B,sBAAsB,CAAE,IAAI,CAAE,EAC9B,GAAG,EACH,IAAI,CAAC,IAAI,EAAE,EACX,GAAG,EACH,oBAAoB,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CACnC,CAAA;QACF,CAAC;QAED,wCAAwC;QAEjC,AAAP,MAAM,CAAC,EAAE,CAA+C,IAAU;YAEjE,MAAM,MAAM,GAAG,iBAAiB,CAAE,oBAAoB,CAAE,IAAI,CAAE,CAAE,CAAA;YAGhE,MAAM,mBAAoB,SAAQ,gBAAgB;gBAEjD,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;gBAEvB,kCAAkC;gBAClC,GAAG,CAAE,IAAwB;oBAC5B,OAAO,IAAI,CAAC,MAAM,CAAE,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAE,CAAA;gBAClD,CAAC;gBAGD,MAAM,CAAE,IAA6B,EAAE,IAAwB;oBAE9D,IAAI,IAAI,KAAK,SAAS;wBAAG,MAAM,CAAC,KAAK,CAAE,IAAI,CAAE,CAAA;oBAE7C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAE,IAAI,EAAE,IAAW,CAAE,CAAA;oBAC7C,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAE,GAAG,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAE,IAAI,CAAE,CAAA;gBAErE,CAAC;gBAED,MAAM,CAAC,QAAQ;oBACd,OAAO,IAAI,KAAK,mBAAmB,CAAC,CAAC,CAAC,sBAAsB,GAAG,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAA;gBAC/F,CAAC;;YAXD;gBADE,YAAY;6DAQb;YAQF,OAAO,mBAAmB,CAAA;QAC3B,CAAC;;IAvFD;QADE,YAAY;mDAiBb;IAGD;QADE,YAAY;qDAwBb;IAcM;QADL,aAAa,CAAC,MAAM;oCAgCrB;IApGW,kBAAgB,mBAsG5B,CAAA;IAED,uCAAuC;IAC5B,uBAAqB,GAAG,gBAAgB,CAAA;IAGnD,oBAAoB;IACpB,MAAa,qBAAsB,SAAQ,gBAAgB,CAAC,EAAE,CAAE,UAAU,CAAE;KAAG;IAAlE,uBAAqB,wBAA6C,CAAA;IAE/E,qBAAqB;IACrB,MAAa,qBAAsB,SAAQ,gBAAgB,CAAC,EAAE,CAAE,mBAAmB,CAAE;KAAG;IAA3E,uBAAqB,wBAAsD,CAAA;IAExF,yBAAyB;IACzB,MAAa,qBAAsB,SAAQ,gBAAgB,CAAC,EAAE,CAAE,kBAAkB,CAAE;KAAG;IAA1E,uBAAqB,wBAAqD,CAAA;IAEvF,0BAA0B;IAC1B,MAAa,qBAAsB,SAAQ,gBAAgB,CAAC,EAAE,CAAE,iBAAiB,CAAE;KAAG;IAAzE,uBAAqB,wBAAoD,CAAA;IAEtF,oBAAoB;IACpB,MAAa,qBAAsB,SAAQ,gBAAgB,CAAC,EAAE,CAAE,kBAAkB,CAAE;KAAG;IAA1E,uBAAqB,wBAAqD,CAAA;IAEvF,yBAAyB;IACzB,MAAa,qBAAsB,SAAQ,gBAAgB,CAAC,EAAE,CAAE,gBAAgB,CAAE;KAAG;IAAxE,uBAAqB,wBAAmD,CAAA;IAErF,2BAA2B;IAC3B,MAAa,qBAAsB,SAAQ,gBAAgB,CAAC,EAAE,CAAE,kBAAkB,CAAE;KAAG;IAA1E,uBAAqB,wBAAqD,CAAA;IAEvF,2BAA2B;IAC3B,MAAa,qBAAsB,SAAQ,gBAAgB,CAAC,EAAE,CAAE,kBAAkB,CAAE;KAAG;IAA1E,uBAAqB,wBAAqD,CAAA;IAEvF,wBAAwB;IACxB,MAAa,qBAAsB,SAAQ,gBAAgB,CAAC,EAAE,CAAE,gBAAgB,CAAC,CAAE,kBAAkB,EAAE,eAAe,CAAE,CAAC,CAAE;KAAG;IAAjH,uBAAqB,wBAA4F,CAAA;IAE9H,mBAAmB;IACnB,MAAa,qBAAsB,SAAQ,gBAAgB,CAAC,EAAE,CAAE,gBAAgB,CAAE,eAAe,CAAE,CAAE;KAAG;IAA3F,uBAAqB,wBAAsE,CAAA;IAExG,yBAAyB;IACzB,MAAa,qBAAsB,SAAQ,gBAAgB,CAAC,EAAE,CAAE,QAAQ,CAAC,OAAO,IAAI,MAAM,CAAE;KAAG;IAAlF,uBAAqB,wBAA6D,CAAA;IAE/F,kBAAkB;IAClB,MAAa,qBAAsB,SAAQ,gBAAgB,CAAC,EAAE,CAAE,UAAU,CAAE;KAAG;IAAlE,uBAAqB,wBAA6C,CAAA;IAG/E,kBAAkB;IAClB,MAAa,qBAAsB,SAAQ,gBAAgB,CAAC,EAAE,CAAE,gBAAgB,CAAE;QAEjF,6CAA6C;QAEtC,AAAP,MAAM,CAAC,EAAE,CAA6B,KAAY;YAEjD,MAAM,wBAAyB,SAAQ,qBAAqB;gBAE3D,KAAK,GAAG,SAAS,CAAC,IAAI,CAAE,KAAY,CAAW,CAAC;gBAEhD,MAAM,CAAC,QAAQ;oBACd,OAAO,IAAI,KAAK,wBAAwB,CAAC,CAAC,CAAC,iCAAiC,GAAK,KAAc,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAA;gBAC5H,CAAC;gBAED,kBAAkB;gBAClB,MAAM,CACL,IAAmE;oBAEnE,OAAO,IAAI,CAAC,SAAS,CAAE,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAE,CAAA;gBACrD,CAAC;gBAGD,SAAS,CACR,IAA6B,EAC7B,IAAmE;oBAGnE,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAE,IAAI,EAAI,IAA0B,EAAE,IAAI,EAAE,IAAI,IAAI,CAAE,CAAA;oBAC9E,IAAI,CAAC,IAAI;wBAAG,OAAO,IAAI,CAAA;oBAEvB,OAAO,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAE,IAAI,EAAI,KAAc,EAAE,CAAE,CAAA;gBAEhE,CAAC;gBAED,0CAA0C;gBAC1C,MAAM,CAAE,MAA0D;oBACjE,OAAO,IAAI,CAAC,SAAS,CAAE,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAE,CAAA;gBACvD,CAAC;gBAED,SAAS,CAAE,IAA6B,EAAE,MAA0D;oBAEnG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAE,IAAI,CAAE,EAAG,CAAC;wBAC3B,IAAI,MAAM,KAAK,IAAI;4BAAG,IAAI,CAAC,WAAW,CAAE,IAAI,CAAE,CAAA;6BACzC,IAAI,MAAM,YAAY,gBAAgB;4BAAG,IAAI,CAAC,WAAW,CAAE,IAAI,EAAE,MAAM,CAAE,CAAA;6BACzE,IAAI,MAAM;4BAAG,IAAI,CAAC,WAAW,CAAE,IAAI,EAAE,MAAM,CAAE,CAAA;;4BAC7C,OAAO,IAAI,CAAA;oBACjB,CAAC;oBAED,OAAO,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAA;gBAC9B,CAAC;gBAGD,WAAW,CAAE,IAA6B;oBACzC,MAAM,IAAI,GAAK,KAAc,EAA6B,CAAA;oBAC1D,MAAM,IAAI,GAAG,gBAAgB,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE,CAAA;oBAChD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,SAAS,CAAE,IAAI,CAAE,CAAA;oBAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;oBAClD,IAAI,IAAI,CAAC,IAAI;wBAAG,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,CAAE,CAAA;oBACtC,IAAI,CAAC,SAAS,CAAE,IAAI,EAAE,IAAW,CAAE,CAAA;gBACpC,CAAC;gBAGD,WAAW,CAAE,IAA6B,EAAE,IAAsB;oBACjE,MAAM,IAAI,GAAK,KAAc,EAA6B,CAAA;oBAC1D,MAAM,IAAI,GAAG,gBAAgB,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE,CAAA;oBAChD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAA;oBACnC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;oBAC9B,IAAI,IAAI,CAAC,IAAI;wBAAG,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,CAAE,CAAA;oBACtC,IAAI,CAAC,MAAM,CAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;gBACjC,CAAC;gBAGD,WAAW,CAAE,IAA6B,EAAE,MAA+B;oBAC1E,MAAM,IAAI,GAAK,KAAc,EAA6B,CAAA;oBAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAE,MAAM,CAAE,CAAA;oBACxD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;oBAC9B,IAAI,IAAI,CAAC,IAAI;wBAAG,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,CAAE,CAAA;oBACtC,IAAI,CAAC,MAAM,CAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;gBACjC,CAAC;gBAED,uCAAuC;gBACvC,aAAa,CAAE,MAAgC;oBAC9C,OAAO,IAAI,CAAC,MAAM,CAAE,MAAM,CAAE,CAAA;gBAC7B,CAAC;gBAED,qCAAqC;gBACrC,YAAY;oBACX,OAAO,IAAI,CAAC,MAAM,CAAE,IAAI,CAAE,CAAA;gBAC3B,CAAC;aAED;YApEA;gBADE,YAAY;qEAWb;YAoBD;gBADE,WAAW;uEAQZ;YAGD;gBADE,WAAW;uEAQZ;YAGD;gBADE,WAAW;uEAOZ;YAcF,OAAO,wBAAwB,CAAA;QAChC,CAAC;KAED;IA3FO;QADL,aAAa,CAAC,MAAM;yCA0FrB;IA7FW,uBAAqB,wBA+FjC,CAAA;IAED,yDAAyD;IACzD,SAAgB,wBAAwB,CAA6B,KAAY;QAChF,OAAO,qBAAqB,CAAC,EAAE,CAAE,KAAK,CAAE,CAAA;IACzC,CAAC;IAFe,0BAAwB,2BAEvC,CAAA;AAEF,CAAC,EA3PS,CAAC,KAAD,CAAC,QA2PV;;;;AC5PD,IAAU,CAAC,CAkGV;AAlGD,WAAU,GAAC;IAAC,IAAA,EAAE,CAkGb;IAlGW,WAAA,EAAE;QAEb,SAAS,CAAC;YAET,sBAAsB,CAAE,CAAC;gBAExB,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;gBACzC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,qBAAqB,CAAE,CAAC,IAAI,EAAE,CAAA;gBAErD,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,CAAE,CAAA;gBAEpC,GAAG,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;gBAChB,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,CAAE,CAAA;YAErC,CAAC;YAED,gCAAgC,CAAE,CAAC;gBAElC,MAAM,IAAI,GAAG,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAA;gBAE7C,MAAM,IAAI,GAAG,IAAI,gBAAgB,CAAE,UAAU,CAAE,CAAA;gBAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAC,EAAE,CAAE,iBAAiB,CAAE,kBAAkB,CAAE,CAAE,CAAE,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;gBACpG,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAC,EAAE,CAAE,mBAAmB,CAAE,OAAO,CAAE,CAAE,CAAE,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;gBAE5F,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,CAAE,CAAA;gBACpC,iBAAiB,CAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAE,CAAA;gBAErC,gBAAgB,CAAE,GAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAE,GAAU,CAAE,EAAE,YAAY,CAAE,CAAA;gBAC5D,gBAAgB,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAE,KAAK,CAAE,EAAE,cAAc,CAAE,CAAA;gBAE1D,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,CAAE,CAAA;gBACpC,iBAAiB,CAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAE,CAAA;gBAErC,GAAG,CAAC,GAAG,CAAE,KAAK,CAAE,CAAA;gBAEhB,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,CAAE,CAAA;gBACrC,iBAAiB,CAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAE,CAAA;gBAErC,IAAI,CAAC,GAAG,CAAE,SAAS,CAAE,CAAA;gBAErB,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,SAAS,CAAE,CAAA;gBACzC,iBAAiB,CAAE,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,CAAE,CAAA;YAE3C,CAAC;YAED,4BAA4B,CAAE,CAAC;gBAE9B,MAAM,IAAI,GAAG,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAA;gBAE7C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,qBAAqB,CAAC,EAAE,CAAE,GAAE,EAAE,CAAC,gBAAgB,CAAE,CAAE,CAAC,IAAI,CAAE,IAAI,gBAAgB,CAAE,UAAU,CAAE,CAAE,CAAA;gBACrH,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAE,IAAI,CAAG,CAAA;gBAElC,kBAAkB,CAAE,GAAG,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,CAAE,CAAA;gBAC/C,iBAAiB,CAAE,GAAG,CAAC,IAAI,EAAG,EAAE,MAAM,CAAC,IAAI,EAAE,CAAE,CAAA;gBAC/C,iBAAiB,CAAE,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,CAAE,CAAA;YAE1C,CAAC;YAED,4BAA4B,CAAE,CAAC;gBAE9B,MAAM,IAAI,GAAG,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAA;gBAE7C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,qBAAqB,CAAE,CAAC,IAAI,CAAE,IAAI,gBAAgB,CAAE,UAAU,CAAE,CAAE,CAAA;gBACzF,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,qBAAqB,CAAC,EAAE,CAAE,GAAE,EAAE,CAAC,qBAAqB,CAAE,CAAE,CAAC,IAAI,CAAE,IAAI,gBAAgB,CAAE,UAAU,CAAE,CAAE,CAAA;gBAC3H,iBAAiB,CAAE,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAE,CAAA;gBAExC,IAAI,CAAC,MAAM,CAAE,GAAG,CAAE,CAAA;gBAClB,iBAAiB,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,MAAM,EAAG,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,CAAE,CAAA;YAEpE,CAAC;YAED,qBAAqB,CAAE,CAAC;gBAEvB,MAAM,QAAS,SAAQ,gBAAgB,CAAC,EAAE,CAAE,iBAAiB,CAAE,gBAAgB,CAAC,CAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAE,CAAC,CAAE,CAAE;iBAAG;gBAOjH,MAAM,IAAI,GAAG,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAA;gBAE7C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,QAAQ,CAAE,CAAA;gBAClC,iBAAiB,CAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAE,CAAA;gBAErC,IAAI,CAAC,GAAG,CAAE,MAAM,CAAE,CAAA;gBAClB,iBAAiB,CAAE,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,CAAE,CAAA;gBAEvC,gBAAgB,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAE,OAAc,CAAE,EAAE,cAAc,CAAE,CAAA;gBACnE,iBAAiB,CAAE,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,CAAE,CAAA;gBAEvC,IAAI,CAAC,IAAI,CAAE,OAAO,CAAE,CAAA;gBACpB,iBAAiB,CAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAE,CAAA;YAEtC,CAAC;SAED,CAAC,CAAA;IAEH,CAAC,EAlGW,EAAE,GAAF,MAAE,KAAF,MAAE,QAkGb;AAAD,CAAC,EAlGS,CAAC,KAAD,CAAC,QAkGV;;;;AClGD,IAAU,CAAC,CA4CV;AA5CD,WAAU,CAAC;IAEV,MAAa,uBAAwB,SAAQ,gBAAgB,CAAC,EAAE,CAAE,gBAAgB,CAAE,iBAAiB,CAAE,CAAE;QAGxG,IAAI,CAAE,GAAW,EAAE,GAAW,EAAE,KAAa;YAC5C,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAA;YAChC,OAAO,IAAI,CAAC,MAAM,GAAG,KAAK;gBAAG,IAAI,CAAC,IAAI,CAAE,CAAC,CAAE,CAAA;YAC3C,IAAI,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;YAClC,IAAI,GAAG,CAAE,GAAI,IAAI,CAAC,KAAK,CAAE,GAAG,GAAG,CAAC,CAAE,EAAE,GAAI,IAAI,CAAC,KAAK,CAAE,CAAC,EAAE,GAAG,GAAG,CAAC,CAAE,CAAE,CAAA;YAClE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC;gBAAG,IAAI,IAAI,CAAE,CAAC,CAAE,GAAG,IAAI,CAAG,CAAC,GAAC,CAAC,CAAE;oBAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAE,CAAC,GAAC,CAAC,CAAE,CAAA;YACrF,IAAI,GAAG,CAAE,GAAI,IAAI,CAAC,KAAK,CAAE,CAAC,CAAC,GAAG,GAAG,CAAE,EAAE,GAAI,IAAI,CAAC,KAAK,CAAE,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAE,CAAE,CAAA;YACpE,IAAI,CAAC,MAAM,CAAE,IAAI,CAAE,CAAA;QACpB,CAAC;QAED,QAAQ,CAAS;QAEjB,OAAO;YACN,OAAO,IAAI,CAAC,QAAQ;mBAChB,CAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAE,CAAA;QACnC,CAAC;QAGD,GAAG;YACF,IAAI,GAAG,GAAG,CAAC,CAAA;YACX,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE;gBAAG,IAAI,GAAG,GAAG,GAAG;oBAAG,GAAG,GAAG,GAAG,CAAA;YAC3D,OAAO,GAAG,CAAA;QACX,CAAC;QAGD,MAAM,CAAE,IAAe;YAEtB,IAAI,IAAI,EAAG,CAAC;gBACX,IAAI,IAAI,GAAG,CAAC,CAAA;gBACZ,IAAI,GAAG,IAAI,CAAC,GAAG,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,EAAE,IAAI,CAAE,GAAC,CAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAE,CAAC,CAAE,CAAC,CAAE,CAAE,CAAA;YAC3D,CAAC;YAED,IAAI,IAAI,GAAG,CAAC,CAAA;YACZ,OAAO,CAAE,IAAI,CAAC,GAAG,CAAE,IAAI,CAAE,IAAI,EAAE,CAAE,CAAC,GAAG,CAAE,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAE,CAAA;QAExD,CAAC;KAED;IArCA;QADE,WAAW;uDASZ;IAID;QADE,WAAW;0DAIZ;IAGD;QADE,QAAQ;sDAKT;IAGD;QADE,QAAQ;yDAWT;IAtCW,yBAAuB,0BAwCnC,CAAA;AAEF,CAAC,EA5CS,CAAC,KAAD,CAAC,QA4CV;;;;AC5CD,IAAU,CAAC,CA6EV;AA7ED,WAAU,CAAC;IAEV,MAAa,uBAAwB,SAAQ,gBAAgB,CAAC,IAAI,CAAC;QAClE,OAAO,EAAE,uBAAuB;QAChC,OAAO,EAAE,uBAAuB;QAChC,KAAK,EAAE,uBAAuB;QAC9B,IAAI,EAAE,uBAAuB;QAC7B,MAAM,EAAE,uBAAuB;QAC/B,kCAAkC;KAClC,CAAC;QAED,aAAa,GAAG,CAAC,CAAA;QACjB,YAAY,CAAE,GAAW;YACxB,IAAI,CAAC,aAAa,CAAE,IAAI,CAAC,aAAa,IAAI,GAAG,CAAE,CAAA;QAChD,CAAC;QAED,aAAa,CAAE,GAAW;YAEzB,IAAI,GAAG,GAAG,IAAI,gBAAgB,CAAA;YAE9B,IAAI,CAAC,OAAO,CAAE,IAAI,CAAG,CAAC,IAAI,CAAE,IAAI,CAAC,KAAK,CAAE,GAAG,CAAC,MAAO,CAAE,EAAE,GAAG,EAAE,EAAE,CAAE,CAAA;YAChE,IAAI,CAAC,OAAO,CAAE,IAAI,CAAG,CAAC,IAAI,CAAE,GAAG,CAAC,MAAO,EAAE,GAAG,EAAE,EAAE,CAAE,CAAA;YAClD,IAAI,CAAC,KAAK,CAAE,IAAI,CAAG,CAAC,IAAI,CAAE,GAAG,CAAC,IAAK,EAAE,GAAG,EAAE,EAAE,CAAE,CAAA;YAC9C,IAAI,CAAC,IAAI,CAAE,IAAI,CAAG,CAAC,IAAI,CAAE,GAAG,CAAC,GAAI,EAAE,GAAG,EAAE,EAAE,CAAE,CAAA;YAC5C,IAAI,CAAC,MAAM,CAAE,IAAI,CAAG,CAAC,IAAI,CAAE,GAAG,CAAC,KAAM,EAAE,GAAG,EAAE,EAAE,CAAE,CAAA;YAChD,6CAA6C;QAE9C,CAAC;QAGD,MAAM;YAEL,SAAS,IAAI,CAAE,MAAsC,EAAE,MAAc,EAAE,KAAa;gBAEnF,MAAM,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,IAAI,CAAE,CAAC,CAAE,CAAA;gBACxC,IAAI,MAAM,GAAG,KAAK,CAAC,IAAI,CAAE,EAAE,MAAM,EAAE,EAAE,CAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAE,CAAC,CAAE,CAAE,CAAA;gBAE7D,IAAI,KAAK,GAAG,CAAC,CAAA;gBACb,IAAI,GAAG,GAAG,CAAC,CAAA;gBAEX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAG,CAAC;oBACzC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG;wBAAG,SAAQ;oBAC9B,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;oBACf,KAAK,GAAG,CAAC,GAAG,CAAC,CAAA;gBACd,CAAC;gBAED,IAAI,KAAK;oBAAG,MAAM,GAAG,CAAE,GAAI,MAAM,CAAC,KAAK,CAAE,KAAK,CAAE,EAAE,GAAI,MAAM,CAAC,KAAK,CAAE,CAAC,EAAE,KAAK,GAAG,CAAC,CAAE,CAAE,CAAA;gBAEpF,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;gBAEpB,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAE,GAAG,CAAC,EAAE;oBAEnC,IAAI,CAAC;wBAEJ,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,GAAG,IAAI;4BAAG,OAAO,CAAC,CAAA;wBACvC,OAAO,CAAE,GAAG,GAAG,IAAI,CAAE,GAAG,KAAK,CAAA;oBAE9B,CAAC;4BAAS,CAAC;wBACV,IAAI,GAAG,IAAI,CAAC,GAAG,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;oBAC7B,CAAC;gBAEF,CAAC,CAAE,CAAA;gBAEH,OAAO,MAAM,CAAA;YACd,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAE,CAAA;YACzD,MAAM,IAAI,GAAG,IAAI,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAE,CAAA;YAClD,MAAM,KAAK,GAAG,IAAI,CAAE,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAE,CAAA;YAC/C,MAAM,OAAO,GAAG,IAAI,CAAE,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,CAAA;YAC9C,MAAM,OAAO,GAAG,IAAI,CAAE,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAE,CAAA;YAE7C,OAAO,CAAE,GAAI,MAAM,EAAE,GAAI,IAAI,EAAE,GAAI,KAAK,EAAE,GAAI,OAAO,EAAE,GAAI,OAAO,CAAE,CAAC,OAAO,EAAE,CAAA;QAC/E,CAAC;KAED;IA7CA;QADE,QAAQ;yDA4CT;IAvEW,yBAAuB,0BAyEnC,CAAA;AAEF,CAAC,EA7ES,CAAC,KAAD,CAAC,QA6EV;;;;AC7ED,IAAU,CAAC,CA+CV;AA/CD,WAAU,CAAC;IAIG,yBAAuB,GAAG,IAAI,GAAG,EAA4B,CAAA;IAE1E,SAAS,OAAO,CAAC,KAAqB,EAAE,GAAY,EAAE,IAAa,EAAE,GAAY,EAAE,KAAa;QAC/F,KAAK,MAAM,OAAO,IAAI,EAAA,uBAAuB,EAAE,CAAC;YAC/C,IAAI,CAAC;gBACJ,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;YACtC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;QACf,CAAC;IACF,CAAC;IACD,MAAM,eAAe,GAAG,CAAC,KAA4B,EAAE,EAAE,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,CAAE,CAAA;IACjH,MAAM,oBAAoB,GAAG,CAAC,MAAa,EAAE,EAAE,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAE,CAAA;IAEjG,IAAI,kBAAkB,IAAI,UAAU,EAAG,CAAC;QACvC,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAC7C,UAAU,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAA;IACnE,CAAC;IAED,IAAI,SAAS,IAAI,UAAU,EAAG,CAAC;QAC9B,OAAO,CAAC,EAAE,CAAC,0BAA0B,EAAE,OAAO,CAAC,CAAA;QAC5C,iFAAiF;IACrF,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAA;IAGnC,OAAO,CAAC,KAAK,GAAG,SAAS,oBAAoB,CAAE,GAAI,IAAI;QAEtD,MAAM,MAAM,GAAG,CAAC,GAAY,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ;YACvD,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,6EAA6E,EAAE,EAAE,CAAC;YAChG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QAEtB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC/B,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ;YACxC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAE,uBAAuB,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,CAAE;YACpH,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAEV,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACxB,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAE9C,OAAO,CAAE,MAAM,CAAE,CAAA;QACjB,aAAa,CAAC,KAAK,CAAE,OAAO,EAAE,IAAI,CAAE,CAAA;IACrC,CAAC,CAAA;AAEF,CAAC,EA/CS,CAAC,KAAD,CAAC,QA+CV;;;;;;;AC/CD,IAAU,CAAC,CAoGV;AApGD,WAAU,CAAC;IAEV,4CAA4C;IAC5C,MAAa,cAAe,SAAQ,WAAW;QA0E1B;QAxEpB,MAAM,CAAC,MAAM,GAAG,EAAE,CAAA;QAClB,MAAM,CAAC,SAAS,GAAG,GAAG,CAAA;QAGf,AAAP,MAAM,CAAC,IAAI,CAAE,IAAc;YAC1B,OAAO,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAE,CAAC,CAAE,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;QACnD,CAAC;QAGM,AAAP,MAAM,CAAC,WAAW;YACjB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACrB,CAAC;QAGM,AAAP,MAAM,CAAC,IAAI,CAAE,IAA4C;YACxD,IAAI,IAAI,KAAK,KAAK,CAAC;gBAAG,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAE,CAAA;YAEzD,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YACtB,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAE,GAAG,CAAE,CAAA;YAE9B,IAAI,MAAM,GAAmC,EAAE,CAAA;YAC/C,MAAM,CAAC,OAAO,CACb,KAAK,CAAC,EAAE;gBACP,IAAI,CAAC,KAAK;oBAAG,OAAM;gBACnB,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,CAAE,GAAG,CAAE,CAAC,GAAG,CAAE,kBAAkB,CAAE,CAAA;gBACvD,MAAM,CAAE,IAAI,CAAC,KAAK,EAAG,CAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACzC,CAAC,CACD,CAAA;YAED,OAAO,MAAmC,CAAA;QAC3C,CAAC;QAGM,AAAP,MAAM,CAAC,KAAK,CAAE,GAAY,EAAG,IAAqB;YACjD,IAAI,IAAI,KAAK,KAAK,CAAC;gBAAG,OAAO,IAAI,CAAC,IAAI,EAAE,CAAE,GAAG,CAAE,IAAI,IAAI,CAAA;YACvD,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,CAAE,EAAE,CAAE,GAAG,CAAE,EAAG,IAAI,EAAE,CAAE,CAAE,CAAA;YAC5C,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,MAAM,CAAC,IAAI,CAAE,IAAoC;YAChD,MAAM,MAAM,GAAmC,EAAE,CAAA;YAEjD,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YACtB,KAAK,IAAI,GAAG,IAAI,IAAI,EAAG,CAAC;gBACvB,MAAM,CAAE,GAAG,CAAE,GAAG,IAAI,CAAE,GAAG,CAAE,CAAA;YAC5B,CAAC;YAED,KAAK,IAAI,GAAG,IAAI,IAAI,EAAG,CAAC;gBACvB,MAAM,CAAE,GAAG,CAAE,GAAG,IAAI,CAAE,GAAG,CAAE,CAAA;YAC5B,CAAC;YAED,OAAO,IAAI,CAAC,SAAS,CAAE,MAAM,CAAE,CAAA;QAChC,CAAC;QAED,MAAM,CAAC,SAAS,CAAE,IAAoC;YACrD,MAAM,MAAM,GAAc,EAAE,CAAA;YAC5B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAG,CAAC;gBACzB,IAAI,IAAI,CAAE,GAAG,CAAE,KAAK,IAAI,EAAG,CAAC;oBAC3B,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAE,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;gBACjE,CAAC;YACF,CAAC;YAED,OAAO,MAAM,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;QAC1B,CAAC;QAGM,AAAP,MAAM,CAAC,EAAE,CAAE,IAA2C;YACrD,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAE,CAAA;QAC/B,CAAC;QAED,MAAM,CAAC,MAAM,KAAI,CAAC;QAElB,YAAoB,SAAS,EAAE;YAC9B,KAAK,EAAE,CAAA;YADY,WAAM,GAAN,MAAM,CAAK;QAE/B,CAAC;QAED,KAAK,CAAE,GAAY,EAAG,IAAc;YACnC,OAAS,IAAI,CAAC,WAAsC,CAAC,KAAK,CAAE,IAAI,CAAC,MAAM,GAAG,GAAG,EAAG,IAAI,CAAE,CAAA;QACvF,CAAC;QAED,GAAG,CAAE,OAAgB;YACpB,OAAO,IAAM,IAAI,CAAC,WAAsC,CAAE,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,GAAG,CAAE,CAAA;QACxF,CAAC;QAED,IAAI,CAAE,IAAoC;YACzC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;YAC1B,MAAM,IAAI,GAAmC,EAAE,CAAA;YAC/C,KAAK,IAAI,GAAG,IAAI,IAAI,EAAG,CAAC;gBACvB,IAAI,CAAE,MAAM,GAAG,GAAG,CAAE,GAAG,IAAI,CAAE,GAAG,CAAE,CAAA;YACnC,CAAC;YACD,OAAS,IAAI,CAAC,WAAsC,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;QAClE,CAAC;;IAvFM;QADL,QAAQ;oCAGT;IAGM;QADL,QAAQ;2CAGT;IAGM;QADL,QAAQ;oCAiBT;IAGM;QADL,YAAY;qCAKb;IA6BM;QADL,WAAW;kCAGZ;IAtEW,gBAAc,iBA+F1B,CAAA;AAEF,CAAC,EApGS,CAAC,KAAD,CAAC,QAoGV;;;;ACpGD,IAAU,CAAC,CAmBV;AAnBD,WAAU,CAAC;IAEV,eAAe,CAAC,IAAI,CAAE,OAAO,CAAC,EAAE;QAC/B,MAAM,mBAAoB,SAAQ,cAAc;YAE/C,MAAM,CAAC,CAAC,GAAG,OAAO,CAAA;YAGX,AAAP,MAAM,CAAC,IAAI,CAAE,IAAc,IAAK,OAAO,IAAI,IAAI,EAAE,CAAA,CAAC,CAAC;YAG5C,AAAP,MAAM,CAAC,EAAE,CAAE,IAA2C;gBACrD,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAE,CAAA;YAC/B,CAAC;;QALM;YADL,QAAQ;6CACyC;QAG5C;YADL,WAAW;2CAGZ;QAGF,OAAO,CAAC,cAAc,GAAG,mBAAmB,CAAA;IAC7C,CAAC,CAAE,CAAA;AAEJ,CAAC,EAnBS,CAAC,KAAD,CAAC,QAmBV;;;;ACnBD,IAAU,CAAC,CAIV;AAJD,WAAU,CAAC;IACV,SAAgB,eAAe;QAC9B,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAE,gBAAgB,CAAE,KAAK,IAAI,CAAA;IAC9D,CAAC;IAFe,iBAAe,kBAE9B,CAAA;AACF,CAAC,EAJS,CAAC,KAAD,CAAC,QAIV;;;;ACJD,IAAU,CAAC,CAmIV;AAnID,WAAU,CAAC;IAEV,MAAa,oBAAqB,SAAQ,gBAAgB,CAAC,IAAI,CAAC;QAE/D,MAAM,EAAE,qBAAqB;QAE7B,OAAO,EAAE,gBAAgB,CAAC,EAAE,CAAE,gBAAgB,CAAE,kBAAkB,CAAE,CAAE;QACtE,MAAM,EAAE,gBAAgB,CAAC,EAAE,CAAE,gBAAgB,CAAE,kBAAkB,CAAE,CAAE;QAErE,wBAAwB;QACxB,QAAQ,EAAE,uBAAuB;QACjC,0BAA0B;QAC1B,UAAU,EAAE,uBAAuB;QAEnC,mBAAmB;QACnB,QAAQ,EAAE,uBAAuB;QACjC,mBAAmB;QACnB,QAAQ,EAAE,uBAAuB;QAEjC,cAAc;QACd,OAAO,EAAE,uBAAuB;QAChC,cAAc;QACd,OAAO,EAAE,uBAAuB;QAEhC,oBAAoB;QACpB,QAAQ,EAAE,uBAAuB;QACjC,qBAAqB;QACrB,SAAS,EAAE,uBAAuB;QAElC,0BAA0B;QAC1B,WAAW,EAAE,uBAAuB;QACpC,4BAA4B;QAC5B,YAAY,EAAE,uBAAuB;QAErC,oCAAoC;QACpC,UAAU,EAAE,uBAAuB;QACnC,sCAAsC;QACtC,UAAU,EAAE,uBAAuB;QAEnC,uBAAuB;QACvB,MAAM,EAAE,uBAAuB;KAE/B,CAAC;QAGD,SAAS;YAER,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;YAC/B,IAAI,CAAC,IAAI;gBAAG,OAAO,IAAI,CAAA;YAEvB,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC;gBACpC,KAAK,EAAE,IAAI;gBACX,GAAG,EAAE,IAAI,gBAAgB,CAAE,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAE,IAAI,CAAE,CAAE;aAC/D,CAAC,CAAA;YAEF,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAE,MAAM,CAAE,CAAA;QACtC,CAAC;QAGD,MAAM,CAAE,IAAyB;YAChC,OAAO,IAAI,CAAC,MAAM,CAAE,IAAI,CAAE,EAAE,GAAG,CAAE,IAAI,CAAE,IAAI,IAAI,kBAAkB,CAAE,CAAC,CAAE,CAAA;QACvE,CAAC;QAGD,OAAO,CAAE,IAAe;YACvB,OAAO,IAAI,CAAC,OAAO,CAAE,IAAI,CAAE,EAAE,GAAG,CAAE,IAAI,CAAE,IAAI,EAAE,CAAA;QAC/C,CAAC;QAGD,MAAM,CAAE,IAAe;YACtB,OAAO,IAAI,CAAC,MAAM,CAAE,IAAI,CAAE,EAAE,GAAG,CAAE,IAAI,CAAE,IAAI,EAAE,CAAA;QAC9C,CAAC;QAGD,IAAI;YACH,IAAI,CAAC,MAAM,CAAE,IAAI,CAAG,CAAC,YAAY,CAAE,CAAC,CAAE,CAAA,CAAC,qBAAqB;YAC5D,IAAI,OAAO,GAA6B,GAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAE,IAAI,CAAG,CAAC,YAAY,CAAE,CAAC,CAAE,CAAA;YACnF,uBAAuB,CAAC,GAAG,CAAE,OAAO,CAAE,CAAA;YACtC,OAAO,EAAE,UAAU,EAAE,GAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,CAAE,OAAO,CAAE,EAAE,CAAA;QACtE,CAAC;QAGD,IAAI;YAEH,IAAI,CAAC,IAAI,EAAE,CAAA;YAEX,IAAI,IAAI,CAAC,CAAC,CAAC,eAAe,EAAE,EAAG,CAAC;gBAC/B,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;oBACrB,KAAK,EAAE,IAAI;oBACX,OAAO,EAAE,2BAA2B;oBACpC,IAAI,EAAE,6CAA6C;iBACnD,CAAC,CAAA;gBACF,OAAM;YACP,CAAC;YAED,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;YAElC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAA;YAE3C,IAAI,CAAC,MAAM,CAAE,IAAI,kBAAkB,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAE,OAAO,CAAC,MAAM,EAAE,CAAE,EAAE,CAAC,CAAC,MAAM,CAAE,CAAA;YAExF,IAAI,CAAC,OAAO,CAAE,CAAE,GAAI,IAAI,CAAC,OAAO,EAAE,CAAE,CAAC,GAAG,CAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAE,CAAE,CAAA;YAC1F,IAAI,CAAC,MAAM,CAAE,CAAE,GAAI,IAAI,CAAC,MAAM,CAAE,CAAC,GAAG,CAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAE,CAAE,CAAA;YAEtF,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,EAAE,CAAA;YACnC,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAG,CAAC,aAAa,CAAE,IAAI,CAAC,IAAI,CAAE,GAAG,CAAC,WAAW,GAAG,GAAG,CAAE,CAAE,CAAA,CAAC,IAAI;YAC/E,IAAI,CAAC,UAAU,CAAE,IAAI,CAAG,CAAC,aAAa,CAAE,IAAI,CAAC,IAAI,CAAE,GAAG,CAAC,aAAa,GAAG,GAAG,CAAE,CAAE,CAAA,CAAC,IAAI;YACnF,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAG,CAAC,aAAa,CAAE,GAAG,CAAC,MAAM,CAAE,CAAA,CAAC,MAAM;YACzD,IAAI,CAAC,SAAS,CAAE,IAAI,CAAG,CAAC,aAAa,CAAE,GAAG,CAAC,OAAO,CAAE,CAAA,CAAC,MAAM;YAE3D,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAG,CAAC,YAAY,CAAE,IAAI,CAAC,IAAI,CAAE,CAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,gBAAgB,CAAE,GAAG,IAAI,CAAE,CAAE,CAAA,CAAC,KAAK;YACtG,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAG,CAAC,YAAY,CAAE,IAAI,CAAC,KAAK,CAAE,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,IAAI,CAAE,CAAE,CAAA,CAAC,KAAK;YAE3F,IAAI,CAAC,OAAO,CAAE,IAAI,CAAG,CAAC,YAAY,CAAE,IAAI,CAAC,KAAK,CAAE,YAAY,CAAC,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI,CAAE,CAAE,CAAA,CAAC,KAAK;YAC3F,IAAI,CAAC,OAAO,CAAE,IAAI,CAAG,CAAC,YAAY,CAAE,IAAI,CAAC,KAAK,CAAE,YAAY,CAAC,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI,CAAE,CAAE,CAAA,CAAC,KAAK;YAE3F,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,IAAI,CAAC,CAAA;YAC3C,IAAI,CAAC,YAAY,CAAE,IAAI,CAAG,CAAC,YAAY,CAAE,OAAO,CAAE,CAAA,CAAC,MAAM;YACzD,IAAI,CAAC,WAAW,CAAE,IAAI,CAAG,CAAC,YAAY,CAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAE,CAAA,CAAC,MAAM;YAEjE,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;YACtC,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAE,CAAA;YAC3E,IAAI,CAAC,UAAU,CAAE,IAAI,CAAG,CAAC,YAAY,CAAE,WAAW,CAAC,MAAM,CAAE,CAAA,CAAC,MAAM;YAClE,IAAI,CAAC,UAAU,CAAE,IAAI,CAAG,CAAC,YAAY,CAAE,WAAW,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAE,CAAA,CAAC,MAAM;YAEzF,IAAI,CAAC,MAAM,CAAE,IAAI,CAAG,CAAC,YAAY,CAAE,CAAC,CAAE,CAAA,CAAC,MAAM;QAE9C,CAAC;KAED;IApFA;QADE,QAAQ;yDAYT;IAGD;QADE,QAAQ;sDAGT;IAGD;QADE,QAAQ;uDAGT;IAGD;QADE,QAAQ;sDAGT;IAGD;QADE,QAAQ;oDAMT;IAGD;QADE,QAAQ;oDA8CT;IA7HW,sBAAoB,uBA+HhC,CAAA;AAEF,CAAC,EAnIS,CAAC,KAAD,CAAC,QAmIV;;;;ACnID,IAAU,CAAC,CAIV;AAJD,WAAU,CAAC;IACV,SAAgB,kBAAkB,CAAI,KAAQ;QAC7C,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAA;IAC7C,CAAC;IAFe,oBAAkB,qBAEjC,CAAA;AACF,CAAC,EAJS,CAAC,KAAD,CAAC,QAIV;;;;ACJD,IAAU,CAAC,CAwQV;AAxQD,WAAU,CAAC;IAEG,4BAA0B,GAAG,IAAI,gBAAgB,CAAE,4BAA4B,CAAE,CAAA;IAE9F,0BAA0B;IAC1B,MAAa,qBAAsB,SAAQ,gBAAgB,CAAC,IAAI,CAAE;QACjE,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,qBAAqB;KAC3B,EAAE,MAAM,CAAE;QAEV,MAAM,CAAC,IAAI,GAAG,IAAI,gBAAgB,CAAE,GAAG,EAAA,0BAA0B,CAAC,GAAG,WAAW,CAAE,CAAA;QAElF,IAAI,CAAE,IAAa;YAClB,OAAO,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,EAAE,GAAG,CAAE,IAAI,CAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAA;QACzD,CAAC;QAED,IAAI,CAAE,IAAa;YAClB,OAAO,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,EAAE,GAAG,CAAE,IAAI,CAAE,IAAI,IAAI,CAAA;QAC9C,CAAC;QAED,IAAI,CAAE,IAAa;YAClB,OAAO,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,EAAE,GAAG,CAAE,IAAI,CAAE,IAAI,EAAE,CAAA;QAC5C,CAAC;;IAlBW,uBAAqB,wBAoBjC,CAAA;IAED,8BAA8B;IAC9B,MAAa,0BAA2B,SAAQ,qBAAqB,CAAC,EAAE,CAAE,GAAE,EAAE,CAAC,qBAAqB,CAAE;KAAG;IAA5F,4BAA0B,6BAAkE,CAAA;IAEzG,+BAA+B;IAC/B,MAAa,qBAAsB,SAAQ,qBAAqB,CAAC,IAAI,CAAE;QACtE,KAAK,EAAE,qBAAqB,CAAC,EAAE,CAAE,GAAE,EAAE,CAAC,qBAAqB,CAAE;QAC7D,KAAK,EAAE,qBAAqB,CAAC,EAAE,CAAE,GAAE,EAAE,CAAC,qBAAqB,CAAE;KAC7D,EAAE,MAAM,CAAE;QAEV,MAAM,CAAU,IAAI,GAAG,IAAI,gBAAgB,CAAE,GAAG,EAAA,0BAA0B,CAAC,GAAG,WAAW,CAAE,CAAA;QAG3F,QAAQ,CACP,GAAW,EACX,IAAY,EACZ,IAA4B,EAC5B,IAAuB,EACvB,IAA4B;YAE5B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC,IAAI,CAAE,gBAAgB,CAAE,GAAG,CAAE,CAAE,CAAA;YAE9D,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,CAAE,CAAA;YACpC,IAAI,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;YAChB,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;YAEjB,IAAI,IAAI;gBAAG,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;YAC5B,IAAI,IAAI;gBAAG,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;YAC5B,IAAI,IAAI,KAAK,SAAS;gBAAG,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;YAE1C,OAAO,IAAI,CAAA;QACZ,CAAC;QAGD,QAAQ,CAAE,IAA2B;YACpC,IAAI,CAAC,KAAK,CAAE,IAAI,CAAG,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;QACvC,CAAC;QAGD,QAAQ;YACP,OAAO;gBACN,GAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAE;gBACtD,GAAI,IAAI,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;aACrC,CAAA;QACF,CAAC;QAGD,QAAQ,CAAE,IAA2B;YACpC,IAAI,CAAC,KAAK,CAAE,IAAI,CAAG,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;QACvC,CAAC;QAGD,QAAQ;YACP,OAAO,CAAE,IAAI,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAE,CAAC,GAAG,CAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAE,qBAAqB,CAAE,CAAE,CAAA;QAC/F,CAAC;;IAzCD;QADE,WAAW;yDAmBZ;IAGD;QADE,WAAW;yDAGZ;IAGD;QADE,QAAQ;yDAMT;IAGD;QADE,WAAW;yDAGZ;IAGD;QADE,QAAQ;yDAGT;IAjDW,uBAAqB,wBAmDjC,CAAA;IAED,qCAAqC;IACrC,MAAa,qBAAsB,SAAQ,qBAAqB,CAAC,IAAI,CAAE;QACtE,yBAAyB;QACzB,IAAI,EAAE,qBAAqB;QAC3B,oBAAoB;QACpB,IAAI,EAAE,qBAAqB;QAC3B,kBAAkB;QAClB,IAAI,EAAE,qBAAqB,CAAC,EAAE,CAAE,GAAG,EAAE,CAAC,qBAAqB,CAAE;QAC7D,yBAAyB;QACzB,IAAI,EAAE,qBAAqB,CAAC,EAAE,CAAE,GAAG,EAAE,CAAC,gBAAgB,CAAE;QACxD,iBAAiB;QACjB,IAAI,EAAE,gBAAgB;KACtB,EAAE,MAAM,CAAE;QAEV,MAAM,CAAU,IAAI,GAAG,IAAI,gBAAgB,CAAE,GAAG,EAAA,0BAA0B,CAAC,GAAG,WAAW,CAAE,CAAA;QAE3F,IAAI,CAAE,IAAa;YAClB,OAAO,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,EAAE,GAAG,CAAE,IAAI,CAAE,IAAI,EAAE,CAAA;QAC5C,CAAC;QAED,IAAI,CAAE,IAAa;YAClB,OAAO,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,EAAE,GAAG,CAAE,IAAI,CAAE,IAAI,EAAE,CAAA;QAC5C,CAAC;QAED,IAAI,CAAE,IAA4B;YACjC,OAAO,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,EAAE,IAAI,CAAE,IAAI,CAAE,IAAI,IAAI,CAAA;QAC/C,CAAC;QAED,IAAI,CAAE,IAA4B;YACjC,OAAO,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,EAAE,MAAM,CAAE,IAAI,CAAE,IAAI,IAAI,CAAA;QACjD,CAAC;QAED,IAAI,CAAE,IAAuB;YAC5B,OAAO,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,EAAE,MAAM,CAAE,IAAI,CAAE,IAAI,IAAI,CAAA;QACjD,CAAC;;IAjCW,uBAAqB,wBAmCjC,CAAA;IAED,sCAAsC;IACtC,MAAa,qBAAsB,SAAQ,qBAAqB,CAAC,IAAI,CAAE;QACtE,KAAK,EAAE,qBAAqB,CAAC,EAAE,CAAE,GAAE,EAAE,CAAC,qBAAqB,CAAE;QAC7D,KAAK,EAAE,oBAAoB;KAC3B,EAAE,MAAM,CAAE;QAEV,MAAM,CAAU,IAAI,GAAG,IAAI,gBAAgB,CAAE,GAAG,EAAA,0BAA0B,CAAC,GAAG,WAAW,CAAE,CAAA;QAG3F,QAAQ,CAAE,GAAW,EAAE,IAAY,EAAE,IAAY;YAChD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC,IAAI,CAAE,gBAAgB,CAAE,GAAG,CAAE,CAAE,CAAA;YAC9D,IAAI,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;YAChB,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;YACjB,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;YACjB,OAAO,IAAI,CAAA;QACZ,CAAC;QAGD,QAAQ,CAAE,IAAkC,EAAE,IAAY,EAAE,IAAY;YACvE,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAE,CAAA;YACnD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YACvB,OAAO,IAAI,CAAA;QACZ,CAAC;;IAbD;QADE,WAAW;yDAOZ;IAGD;QADE,WAAW;yDAKZ;IArBW,uBAAqB,wBAuBjC,CAAA;IAED,mCAAmC;IACnC,MAAa,qBAAsB,SAAQ,qBAAqB,CAAC,IAAI,CAAE;QACtE,IAAI,EAAE,qBAAqB,CAAC,EAAE,CAAE,GAAE,EAAE,CAAC,qBAAqB,CAAE;QAC5D,KAAK,EAAE,qBAAqB,CAAC,EAAE,CAAE,GAAE,EAAE,CAAC,qBAAqB,CAAE;KAC7D,EAAE,MAAM,CAAE;QAEV,MAAM,CAAU,IAAI,GAAG,IAAI,gBAAgB,CAAE,GAAG,EAAA,0BAA0B,CAAC,GAAG,WAAW,CAAE,CAAA;QAG3F,IAAI;YACH,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,CAAC,MAAM,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;QAC9C,CAAC;QAGD,KAAK,CAAE,IAAuC;YAC7C,OAAO,IAAI,CAAC,KAAK,CAAE,IAAI,CAAE,EAAE,WAAW,CAAE,IAAI,CAAE,IAAI,EAAE,CAAA;QACrD,CAAC;;IAPD;QADE,QAAQ;qDAGT;IAGD;QADE,QAAQ;sDAGT;IAfW,uBAAqB,wBAiBjC,CAAA;IAED,kCAAkC;IAClC,MAAa,qBAAsB,SAAQ,qBAAqB,CAAC,IAAI,CAAE;QACtE,IAAI,EAAE,oBAAoB;QAC1B,IAAI,EAAE,qBAAqB,CAAC,EAAE,CAAE,GAAE,EAAE,CAAC,oBAAoB,CAAE;KAC3D,EAAE,MAAM,CAAE;QAEV,MAAM,CAAU,IAAI,GAAG,IAAI,gBAAgB,CAAE,GAAG,EAAA,0BAA0B,CAAC,GAAG,WAAW,CAAE,CAAA;QAG3F,IAAI,CAAE,IAAU;YACf,OAAO,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,EAAE,MAAM,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,IAAI,IAAI,CAAA;QACxD,CAAC;QAGD,IAAI,CAAE,IAAe;YACpB,OAAO,CAAE,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,EAAE,KAAK,CAAE,IAAI,CAAE,IAAI,EAAE,CAAE,CAAC,MAAM,CAAE,kBAAkB,CAAE,CAAA;QAC/E,CAAC;;IAPD;QADE,QAAQ;qDAGT;IAGD;QADE,QAAQ;qDAGT;IAfW,uBAAqB,wBAiBjC,CAAA;IAKD,2BAA2B;IAC3B,MAAa,qBAAsB,SAAQ,qBAAqB,CAAC,IAAI,CAAE;QACtE,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAE,gBAAgB,CAAE,eAAe,CAAE,CAAE;KACjE,EAAE,MAAM,CAAE;QAEV,MAAM,CAAU,IAAI,GAAG,IAAI,gBAAgB,CAAE,GAAG,EAAA,0BAA0B,CAAC,GAAG,WAAW,CAAE,CAAA;QAG3F,KAAK,CAAE,IAAgB;YACtB,OAAO,IAAI,CAAC,KAAK,CAAE,IAAI,CAAE,EAAE,GAAG,CAAE,IAAI,CAAsB,IAAI,IAAI,CAAA;QACnE,CAAC;;IAFD;QADE,QAAQ;sDAGT;IATW,uBAAqB,wBAWjC,CAAA;IAED,+BAA+B;IAC/B,SAAgB,qBAAqB;QAEpC,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAA;QACrD,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAE,qBAAqB,CAAE,CAAA;QACpD,IAAI,CAAC,IAAI,CAAE,WAAW,CAAE,CAAA;QAExB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAG,CAAA;QACzB,IAAI,CAAC,IAAI,CAAE,WAAW,CAAE,CAAA;QACxB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC,UAAU,CAAC,CAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAE,CAAC,CAAA;QAEtH,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAE,qBAAqB,EAAE,GAAG,EAAE,yBAAyB,CAAE,CAAA;QACnF,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;QAExB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAE,qBAAqB,EAAE,IAAI,EAAE,cAAc,CAAE,CAAA;QACzE,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAE,qBAAqB,EAAE,IAAI,EAAE,iBAAiB,CAAE,CAAA;QAC5E,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAE,qBAAqB,EAAE,IAAI,EAAE,iBAAiB,CAAE,CAAA;QAC5E,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAE,qBAAqB,EAAE,IAAI,EAAE,qBAAqB,CAAE,CAAA;QAChF,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAE,qBAAqB,EAAE,IAAI,EAAE,iBAAiB,CAAE,CAAA;QAC5E,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAE,qBAAqB,EAAE,IAAI,EAAE,iBAAiB,CAAE,CAAA;QAE5E,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;QACxB,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;QAExB,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAA;QACrB,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAA;QACrB,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAA;QACrB,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAA;QACrB,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAA;QACrB,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAA;QAErB,IAAI,CAAC,QAAQ,CAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAE,CAAA;QACxD,IAAI,CAAC,QAAQ,CAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAE,CAAA;QAC1D,IAAI,CAAC,QAAQ,CAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAE,CAAA;QAExD,IAAI,CAAC,QAAQ,CAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAG,CAAE,CAAA;QACrD,IAAI,CAAC,QAAQ,CAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAE,CAAA;QAEtC,IAAI,CAAC,QAAQ,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAE,CAAA;QACrC,IAAI,CAAC,QAAQ,CAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAE,CAAA;QAEtC,IAAI,CAAC,QAAQ,CAAE,MAAM,EAAE,KAAK,CAAE,CAAA;QAC9B,IAAI,CAAC,QAAQ,CAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAG,EAAE,MAAM,CAAE,CAAA;QACjE,IAAI,CAAC,QAAQ,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAG,EAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;QACjE,IAAI,CAAC,QAAQ,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAE,CAAA;QACrC,IAAI,CAAC,QAAQ,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAE,CAAA;QAErC,IAAI,CAAC,QAAQ,CAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAE,CAAA;QACtC,IAAI,CAAC,QAAQ,CAAE,OAAO,EAAE,MAAM,CAAE,CAAA;QAEhC,IAAI,CAAC,QAAQ,CAAE,MAAM,EAAE,MAAM,CAAE,CAAA;QAC/B,IAAI,CAAC,QAAQ,CAAE,MAAM,EAAE,MAAM,CAAE,CAAA;QAE/B,IAAI,CAAC,QAAQ,CAAE,OAAO,EAAE,MAAM,CAAE,CAAA;QAEhC,OAAO,IAAI,CAAA;IAEZ,CAAC;IAxDe,uBAAqB,wBAwDpC,CAAA;AAEF,CAAC,EAxQS,CAAC,KAAD,CAAC,QAwQV;;;;ACxQD,IAAU,CAAC,CAqHV;AArHD,WAAU,CAAC;IAQV;;;;;OAKI;IACJ,MAAa,gBAAiB,SAAQ,MAAM;QAE3C,KAAK,CAAO;QAEZ,YAAa,IAAI,GAAG,MAAM,CAAC,iBAAiB;YAE3C,KAAK,EAAE,CAAA;YAEP,IAAI,CAAC,KAAK,GAAG;gBACZ,IAAI,EAAE,CAAC,CAAC;gBACR,IAAI,EAAE,CAAC;gBACP,IAAI,EAAE;oBACL,IAAI,EAAE,CAAC;oBACP,IAAI;oBACJ,IAAI,EAAE,IAAK;iBACX;aACD,CAAA;QAEF,CAAC;QAED,6DAA6D;QAC7D,OAAO,CAAE,IAAY;YAEpB,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;YACrB,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;YACpB,IAAI,GAAG,GAAG,CAAC,CAAA;YAEX,OAAO,IAAI,CAAC,IAAI,GAAG,IAAI,EAAG,CAAC;gBAE1B,IAAI,IAAI,CAAC,IAAI,GAAG,GAAG;oBAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAA;gBAErC,IAAI,GAAG,IAAI,CAAA;gBACX,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;gBAEhB,IAAI,CAAC,IAAI;oBAAG,SAAS,CAAE,IAAI,KAAK,CAAE,wBAAyB,IAAK,WAAY,GAAI,EAAE,CAAE,CAAE,CAAA;YAEvF,CAAC;YAED,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;YAEtB,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAG,CAAC;gBACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;YACtB,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,IAAI,IAAI,IAAI,CAAA;gBACjB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAA;YAClB,CAAC;YAED,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,0CAA0C;QAC1C,OAAO,CAAE,IAAY,EAAE,IAAY;YAElC,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;YACrB,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;YAEpB,OAAO,IAAI,CAAC,IAAI,GAAG,IAAI,EAAG,CAAC;gBAC1B,IAAI,GAAG,IAAI,CAAA;gBACX,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;gBAEhB,IAAI,CAAC,IAAI;oBAAG,SAAS,CAAE,IAAI,KAAK,CAAE,0BAA0B,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAE,CAAE,CAAA;YACxG,CAAC;YAED,IAAG,CAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,IAAE,CAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAE,EAAE,CAAC;gBAClE,SAAS,CAAE,IAAI,KAAK,CAAE,gBAAgB,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAE,CAAE,CAAA;YAClF,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAA;YAC5C,MAAM,GAAG,GAAG,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC,IAAI,CAAA;YAErC,IAAI,KAAK,EAAG,CAAC;gBAEZ,IAAI,GAAG,EAAG,CAAC;oBACV,IAAI,CAAC,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;oBAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;gBACtB,CAAC;qBAAM,CAAC;oBACP,IAAI,CAAC,IAAI,IAAI,IAAI,CAAA;gBAClB,CAAC;YAEF,CAAC;iBAAM,CAAC;gBAEP,IAAI,GAAG,EAAG,CAAC;oBACV,IAAI,CAAC,IAAI,IAAI,IAAI,CAAA;oBACjB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAA;gBAClB,CAAC;qBAAM,CAAC;oBACP,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;gBACjC,CAAC;YAEF,CAAC;QAEF,CAAC;QAED,KAAK;YACJ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAA;YAC7B,OAAO,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,CAAA;QAC/C,CAAC;QAED,QAAQ;QAER,CAAC;KAED;IArGY,kBAAgB,mBAqG5B,CAAA;AAEF,CAAC,EArHS,CAAC,KAAD,CAAC,QAqHV;;;;ACrHD,IAAU,CAAC,CAqEV;AArED,WAAU,GAAC;IAAC,IAAA,EAAE,CAqEb;IArEW,WAAA,EAAE;QACb,SAAS,CAAC;YAET,eAAe,CAAE,CAAC;gBAEjB,MAAM,IAAI,GAAG,IAAI,gBAAgB,CAAA;gBACjC,iBAAiB,CAAE,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAE,CAAA;gBAEvC,IAAI,CAAC,OAAO,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;gBACpB,iBAAiB,CAAE,IAAI,CAAC,OAAO,CAAE,CAAC,CAAE,EAAE,CAAC,CAAE,CAAA;gBACzC,iBAAiB,CAAE,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,CAAE,CAAA;gBAExC,IAAI,CAAC,OAAO,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;gBACpB,iBAAiB,CAAE,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAE,CAAA;YAExC,CAAC;YAED,mBAAmB,CAAE,CAAC;gBAErB,MAAM,IAAI,GAAG,IAAI,gBAAgB,CAAA;gBAEjC,iBAAiB,CAAE,IAAI,CAAC,OAAO,CAAE,CAAC,CAAE,EAAE,CAAC,CAAE,CAAA;gBACzC,iBAAiB,CAAE,IAAI,CAAC,OAAO,CAAE,EAAE,CAAE,EAAE,CAAC,CAAE,CAAA;gBAC1C,iBAAiB,CAAE,IAAI,CAAC,OAAO,CAAE,EAAE,CAAE,EAAE,EAAE,CAAE,CAAA;YAE5C,CAAC;YAED,wBAAwB,CAAE,CAAC;gBAE1B,MAAM,IAAI,GAAG,IAAI,gBAAgB,CAAA;gBAEjC,iBAAiB,CAAE,IAAI,CAAC,OAAO,CAAE,CAAC,CAAE,EAAE,CAAC,CAAE,CAAA;gBACzC,iBAAiB,CAAE,IAAI,CAAC,OAAO,CAAE,EAAE,CAAE,EAAE,CAAC,CAAE,CAAA;gBAE1C,IAAI,CAAC,OAAO,CAAE,CAAC,EAAE,EAAE,CAAE,CAAA;gBACrB,iBAAiB,CAAE,IAAI,CAAC,OAAO,CAAE,CAAC,CAAE,EAAE,CAAC,CAAE,CAAA;gBACzC,iBAAiB,CAAE,IAAI,CAAC,OAAO,CAAE,EAAE,CAAE,EAAE,EAAE,CAAE,CAAA;gBAC3C,iBAAiB,CAAE,IAAI,CAAC,OAAO,CAAE,CAAC,CAAE,EAAE,CAAC,CAAE,CAAA;YAE1C,CAAC;YAED,kBAAkB,CAAE,CAAC;gBAEpB,MAAM,IAAI,GAAG,IAAI,gBAAgB,CAAE,EAAE,CAAE,CAAA;gBAEvC,IAAI,CAAC,OAAO,CAAE,CAAC,CAAE,CAAA;gBACjB,IAAI,CAAC,OAAO,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;gBAEpB,gBAAgB,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAE,CAAC,CAAE,EAAE,iCAAiC,CAAE,CAAA;YAE9E,CAAC;YAED,gBAAgB,CAAE,CAAC;gBAElB,MAAM,IAAI,GAAG,IAAI,gBAAgB,CAAA;gBAEjC,gBAAgB,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAE,CAAC,EAAE,CAAC,CAAE,EAAE,gBAAgB,CAAE,CAAA;gBAC/D,gBAAgB,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAE,CAAC,EAAE,CAAC,CAAE,EAAE,0BAA0B,CAAE,CAAA;gBAEzE,IAAI,CAAC,OAAO,CAAE,EAAE,CAAE,CAAA;gBAClB,IAAI,CAAC,OAAO,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;gBAEpB,gBAAgB,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAE,CAAC,EAAE,CAAC,CAAE,EAAE,gBAAgB,CAAE,CAAA;gBAC/D,gBAAgB,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAE,EAAE,EAAE,CAAC,CAAE,EAAE,gBAAgB,CAAE,CAAA;gBAChE,gBAAgB,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAE,CAAC,EAAE,CAAC,CAAE,EAAE,gBAAgB,CAAE,CAAA;YAEhE,CAAC;SAED,CAAC,CAAA;IACH,CAAC,EArEW,EAAE,GAAF,MAAE,KAAF,MAAE,QAqEb;AAAD,CAAC,EArES,CAAC,KAAD,CAAC,QAqEV;;;;ACrED,IAAU,CAAC,CAuQV;AAvQD,WAAU,CAAC;IAEG,4BAA0B,GAAG,mBAAmB,CAAE,MAAM,CAAE,CAAA,CAAC,cAAc;IACzE,4BAA0B,GAAG,CAAC,CAAA,QAAQ,GAAG,EAAE,CAAA,QAAQ,GAAG,CAAC,CAAA,QAAQ,GAAG,CAAC,CAAA,CAAA,QAAQ;IAKxF;;;;;OAKG;IACH,MAAa,qBAAsB,SAAQ,WAAW;QAG7C;QACA;QAFR,YACQ,QAAQ,EAAiC,EACzC,QAAQ,IAAI,oBAAoB;YAEvC,KAAK,EAAE,CAAA;YAHA,UAAK,GAAL,KAAK,CAAoC;YACzC,UAAK,GAAL,KAAK,CAA2B;QAGxC,CAAC;QAGM,AAAP,MAAM,CAAC,IAAI,CAAE,KAAyB,EAAE,KAAK,GAAG,IAAI,oBAAoB;YACvE,OAAO,IAAI,IAAI,CAAE,KAAK,EAAE,KAAK,CAAE,CAAA;QAChC,CAAC;QAED,CAAC,CAAE,MAAM,CAAC,QAAQ,CAAE;YACnB,OAAO;gBACN,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,KAAK,EAAE,IAAI,CAAC,KAAK;aACjB,CAAA;QACF,CAAC;KAED;IAXO;QADL,WAAW;2CAGZ;IAZW,uBAAqB,wBAqBjC,CAAA;IAED,qEAAqE;IACrE,MAAa,gBAAiB,SAAQ,WAAW;QAEhD,MAAM;YACL,OAAO,IAAI,IAAI,CAAE,CAAE,IAAI,CAAE,EAAE,EAAE,IAAI,EAAE,oCAAoC,EAAE,CAAE,CAAA;QAC5E,CAAC;QAGD,KAAK,CAAE,OAAwC,EAAE,IAAuB;YAEvE,MAAM,KAAK,GAAG,IAAI,GAAoC,CAAA;YACtD,IAAI,IAAI,GAAG,IAAoC,CAAA;YAE/C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;YAE1B,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,UAAU,GAAI,CAAC;gBAEjD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAE,MAAM,CAAE,CAAA;gBACjC,QAAQ,qBAAqB,CAAE,IAAI,CAAwC,EAAG,CAAC;oBAE9E,KAAK,MAAM,CAAC,CAAC,CAAC;wBACb,IAAI,EAAE,OAAO,CAAE,MAAM,EAAE,CAAC,CAAE,CAAA;wBAC1B,MAAM,IAAI,CAAC,CAAA;wBACX,SAAQ;oBACT,CAAC;oBAED,KAAK,MAAM,CAAC,CAAC,CAAC;wBAEb,MAAM,IAAI,GAAG,gBAAgB,CAAC,QAAQ,CACrC,IAAI,UAAU,CAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,GAAG,MAAM,GAAG,CAAC,EAAE,EAAE,CAAE,CAC7D,CAAA;wBAED,IAAI,GAAG,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,GAAG,CAAG,CAAA;wBAC7B,IAAI,CAAC,IAAI;4BAAG,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,GAAG,EAAE,IAAI,GAAG,IAAI,qBAAqB,CAAE,CAAA;wBAEnE,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAE,MAAM,GAAG,EAAE,CAAE,CAAA;wBACvC,MAAM,IAAI,EAAE,CAAA;wBAEZ,QAAQ;wBACR,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAG,CAAC;4BAEhC,MAAM,IAAI,GAAG,gBAAgB,CAAC,QAAQ,CACrC,IAAI,UAAU,CAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,GAAG,MAAM,EAAE,CAAC,CAAE,CACxD,CAAA;4BAED,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAE,MAAM,GAAG,CAAC,CAAE,CAAA;4BACtC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAE,MAAM,GAAG,CAAC,CAAE,CAAA;4BACtC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAE,MAAM,GAAG,EAAE,CAAE,CAAA;4BAEvC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAE,CAAA;4BAC5C,IAAI,CAAC,KAAK,CAAC,SAAS,CAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAE,CAAA;4BAEtC,MAAM,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAA;wBAEpC,CAAC;wBAED,SAAQ;oBACT,CAAC;oBAED,KAAK,MAAM,CAAC,CAAC,CAAC;wBAEb,IAAI,CAAC,IAAI;4BAAG,SAAS,CAAE,IAAI,KAAK,CAAE,mBAAmB,CAAE,CAAE,CAAA;wBAEzD,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAI,CACtC,GAAG,CAAC,KAAK,CAAE,MAAM,EAAE,MAAM,GAAG,EAAE,CAAE,CAChC,CAAA;wBAED,OAAO,EAAE,GAAG,CAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAE,CAClC;wBAAE,IAAI,CAAC,KAA6B,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;wBAElD,MAAM,IAAI,IAAI,CAAC,UAAU,CAAA;wBACzB,SAAQ;oBAET,CAAC;oBAED,KAAK,MAAM,CAAC,CAAC,CAAC;wBAEb,IAAI,CAAC,IAAI;4BAAG,SAAS,CAAE,IAAI,KAAK,CAAE,mBAAmB,CAAE,CAAE,CAAA;wBAEzD,MAAM,IAAI,GAAG,IAAI,qBAAqB,CAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,GAAG,MAAM,EAAE,IAAI,CAAC,UAAU,GAAG,MAAM,CAAE,CAAC,IAAI,EAAE,CAAA;wBAChH,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAE,IAAI,CAAE,CAAA;wBAEnD,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAI,CACtC,GAAG,CAAC,KAAK,CAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAE,CACpC,CAAA;wBAED,OAAO,EAAE,GAAG,CAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAE,CAClC;wBAAE,IAAI,CAAC,KAA6B,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;wBAElD,MAAM,IAAI,IAAI,CAAC,UAAU,CAAA;wBACzB,SAAQ;oBAET,CAAC;oBAED,KAAK,MAAM,CAAC,CAAC,CAAC;wBAEb,IAAI,CAAC,IAAI;4BAAG,SAAS,CAAE,IAAI,KAAK,CAAE,mBAAmB,CAAE,CAAE,CAAA;wBAEzD,MAAM,IAAI,GAAG,IAAI,qBAAqB,CAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,GAAG,MAAM,EAAE,EAAE,CAAE,CAAC,IAAI,EAAE,CAAA;wBAC1F,MAAM,WAAW,GAAG,qBAAqB,CAAC,MAAM,CAAE,IAAI,CAAE,CAAA;wBACxD,MAAM,WAAW,GAAG,qBAAqB,CAAC,WAAW,CAAE,IAAI,CAAE,CAAA;wBAE7D,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAE,GAAG,CAAC,KAAK,CAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAAE,CAAE,CAAA;wBAEpF,OAAO,EAAE,GAAG,CAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAE,CAAA;wBACnC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAA;wBAEzB,IAAI,WAAW,EAAG,CAAC;4BAClB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAE,CAAA;4BAC/C,MAAM,IAAI,WAAW,CAAA;wBACtB,CAAC;wBAED,CAAC;wBAAE,IAAI,CAAC,KAA6B,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;wBAElD,SAAQ;oBACT,CAAC;oBAED,KAAK,MAAM,CAAC,CAAC,CAAC;wBAEb,IAAI,CAAC,IAAI;4BAAG,SAAS,CAAE,IAAI,KAAK,CAAE,mBAAmB,CAAE,CAAE,CAAA;wBAEzD,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,EAAE,CAAA;wBAC7C,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAE,GAAG,CAAC,KAAK,CAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAE,CAAE,CAAA;wBAE/E,OAAO,EAAE,GAAG,CAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAE,CAClC;wBAAE,IAAI,CAAC,KAA6B,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;wBAElD,MAAM,IAAI,IAAI,CAAC,UAAU,CAAA;wBACzB,SAAQ;oBAET,CAAC;oBAED,OAAO,CAAC,CAAC,OAAO,SAAS,CAAE,IAAI,KAAK,CAAE,cAAc,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAE,CAAE,CAAA;gBAEtF,CAAC;YAEF,CAAC;YAED,OAAO,CAAE,GAAI,KAAK,CAAE,CAAA;QAErB,CAAC;QAED,MAAM,CAAC,MAAM,CAAE,KAA6B;YAE3C,IAAI,IAAI,GAAG,CAAC,CAAA;YAEZ,KAAK,MAAM,CAAE,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAE,IAAI,KAAK,EAAG,CAAC;gBAEjD,IAAI,IAAI,EAAA,0BAA0B,CAAA;gBAClC,IAAI,IAAI,KAAK,CAAC,IAAI,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAA;gBAE9C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAG,CAAC;oBAE3B,IAAI,IAAI,IAAI,CAAC,UAAU,CAAA;oBAEvB,IAAI,IAAI,YAAY,qBAAqB;wBAAG,SAAQ;oBAEpD,IAAI,CAAC,MAAM,CAAC;wBACX,IAAI,EAAE,IAAI,CAAC,EAAE,GAAE,CAAC;wBAChB,IAAI,EAAE,IAAI,CAAC,EAAE,GAAE,CAAC;wBAChB,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,qBAAqB,CAAC,WAAW,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAE;qBACjF,CAAC,CAAA;gBAEH,CAAC;YAEF,CAAC;YAED,OAAO,IAAI,CAAA;QACZ,CAAC;QAGM,AAAP,MAAM,CAAC,IAAI,CAAE,KAA6B;YAEzC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAE,KAAK,CAAE,CAAA;YACjC,IAAI,MAAM,KAAK,CAAC;gBAAG,SAAS,CAAE,IAAI,KAAK,CAAE,YAAY,CAAE,CAAE,CAAA;YAEzD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAE,MAAM,CAAE,CAAA;YACrC,MAAM,IAAI,GAAG,IAAI,gBAAgB,CAAE,IAAI,CAAC,MAAM,CAAE,CAAA;YAEhD,IAAI,MAAM,GAAG,CAAC,CAAA;YAEd,aAAa;YACb,KAAK,MAAM,CAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAE,IAAI,KAAK,EAAG,CAAC;gBAE/C,OAAO;gBACP,IAAI,CAAC,GAAG,CAAE,EAAA,0BAA0B,EAAE,MAAM,CAAE,CAAA,CAAC,KAAK;gBACpD,IAAI,CAAC,GAAG,CAAE,IAAI,gBAAgB,CAAE,EAAE,CAAE,CAAC,KAAK,EAAE,EAAE,MAAM,GAAG,CAAC,CAAE,CAAA,CAAC,qBAAqB;gBAChF,IAAI,CAAC,MAAM,CAAE,MAAM,GAAG,EAAE,EAAE,KAAK,CAAC,IAAI,CAAE,CAAA,CAAC,OAAO;gBAC9C,MAAM,IAAI,EAAE,CAAA;gBAEZ,2CAA2C;gBAC3C,KAAK,MAAM,CAAE,IAAI,EAAE,IAAI,CAAE,IAAI,KAAK,EAAG,CAAC;oBACrC,IAAI,CAAC,GAAG,CAAE,IAAI,gBAAgB,CAAE,IAAI,CAAE,CAAC,KAAK,EAAE,EAAE,MAAM,CAAE,CAAA;oBACxD,IAAI,CAAC,MAAM,CAAE,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAE,CAAA;oBACpC,IAAI,CAAC,MAAM,CAAE,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAE,CAAA;oBACpC,IAAI,CAAC,MAAM,CAAE,MAAM,GAAG,EAAE,EAAE,IAAI,CAAC,IAAI,CAAE,CAAA;oBACrC,MAAM,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAA;gBACpC,CAAC;gBAED,gBAAgB;gBAChB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAG,CAAC;oBAE3B,IAAI,CAAC,GAAG,CAAE,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,CAAE,CAAA;oBAClC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAA;oBAEzB,IAAI,IAAI,YAAY,qBAAqB;wBAAG,SAAQ;oBAEpD,IAAI,CAAC,MAAM,CAAC;wBACX,IAAI,EAAE,IAAI,CAAC,EAAE,GAAE,CAAC;wBAChB,IAAI,EAAE,IAAI,CAAC,EAAE,GAAE,CAAC;wBAChB,IAAI,EAAE,IAAI,CAAC,EAAE;4BACZ,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gCAAG,OAAM;4BACxB,IAAI,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,CAAE,CAAA;4BAC/B,MAAM,IAAI,qBAAqB,CAAC,WAAW,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;wBAC3D,CAAC;qBACD,CAAC,CAAA;gBAEH,CAAC;YAEF,CAAC;YAED,OAAO,IAAI,CAAA;QACZ,CAAC;KAED;IAxNA;QADE,WAAW;iDAqIZ;IA+BM;QADL,WAAW;sCAoDZ;IA7NW,kBAAgB,mBA+N5B,CAAA;AAEF,CAAC,EAvQS,CAAC,KAAD,CAAC,QAuQV;;;;ACvQD,IAAU,CAAC,CA6DV;AA7DD,WAAU,GAAC;IAAC,IAAA,EAAE,CA6Db;IA7DW,WAAA,EAAE;QACb,SAAS,CAAC;YAET,wBAAwB,CAAE,CAAC;gBAE1B,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAAE,mBAAmB,CAAE,CAAA;gBACzD,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAAE,mBAAmB,CAAE,CAAA;gBACzD,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAAE,mBAAmB,CAAE,CAAA;gBAEzD,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAAE,UAAU,CAAE,CAAA;gBAChD,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAAE,UAAU,CAAE,CAAA;gBAEhD,MAAM,MAAM,GAAG,IAAI,oBAAoB,CAAA;gBACvC,MAAM,CAAC,SAAS,CAAE,KAAK,CAAC,GAAG,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAE,CAAA;gBACxD,MAAM,CAAC,SAAS,CAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAE,CAAA;gBAChC,MAAM,CAAC,SAAS,CAAE,KAAK,CAAC,GAAG,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAE,CAAA;gBACxD,MAAM,CAAC,SAAS,CAAE,KAAK,CAAC,GAAG,EAAE,MAAM,CAAE,CAAA;gBAErC,MAAM,MAAM,GAAG,IAAI,oBAAoB,CAAA;gBACvC,MAAM,CAAC,SAAS,CAAE,KAAK,CAAC,GAAG,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC,CAAA;gBACvD,MAAM,CAAC,SAAS,CAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAE,CAAA;gBAChC,MAAM,CAAC,SAAS,CAAE,KAAK,CAAC,GAAG,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAE,CAAA;gBAExD,MAAM,MAAM,GAAG,IAAI,oBAAoB,CAAA;gBAEvC,MAAM,KAAK,GAAG;oBACb,CAAE,KAAK,CAAC,GAAG,EAAE,IAAI,qBAAqB,CAAE,EAAE,EAAE,MAAM,CAAE,CAAE;oBACtD,CAAE,KAAK,CAAC,GAAG,EAAE,IAAI,qBAAqB,CAAE,EAAE,EAAE,MAAM,CAAE,CAAE;oBACtD,CAAE,KAAK,CAAC,GAAG,EAAE,IAAI,qBAAqB,CAAE,EAAE,EAAE,MAAM,CAAE,CAAE;iBAC5B,CAAA;gBAE3B,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;gBAC3C,iBAAiB,CAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAE,CAAA;YAEzC,CAAC;YAED,wBAAwB,CAAE,CAAC;gBAE1B,MAAM,IAAI,GAAG,IAAI,gBAAgB,CAAE,mBAAmB,CAAE,CAAA;gBAExD,MAAM,IAAI,GAAG,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAA;gBAC7C,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAI,EAAE,CAAA;gBAEzC,MAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,CAAE,CAAC,CAAE,CAAA;gBAElD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAE,qBAAqB,CAAC,YAAY,GAAG,CAAC,CAAE,CAAA;gBACrE,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAE,IAAI,CAAC,UAAU,CAAE,CAAA;gBAC9D,QAAQ,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;gBAErB,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAE,EAAE,EAAE,IAAI,CAAE,CAAA;gBAEnD,MAAM,KAAK,GAAG;oBACb,CAAE,IAAI,CAAC,GAAG,EAAE,IAAI,qBAAqB,CAAC,CAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAE,CAAC,CAAE;iBACzD,CAAA;gBAE3B,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;gBAC3C,iBAAiB,CAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAE,CAAA;YAEzC,CAAC;SAED,CAAC,CAAA;IACH,CAAC,EA7DW,EAAE,GAAF,MAAE,KAAF,MAAE,QA6Db;AAAD,CAAC,EA7DS,CAAC,KAAD,CAAC,QA6DV;;;;AC7DD,IAAU,CAAC,CAkGV;AAlGD,WAAU,CAAC;IACV,wDAAwD;IACxD,MAAa,gBAAiB,SAAQ,WAAW;QAEhD,MAAM,CAAC,aAAa,GAAG,IAAI,aAAa,EAAY,CAAA;QAEpD,yBAAyB;QAElB,AAAP,MAAM,CAAC,IAAI;YACV,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAA;QACnC,CAAC;QAED,uDAAuD;QACvD,MAAM,CAAC,IAAI,CAA8E,IAAW;YACnG,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAE,CAAC,IAAI,CAAE,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAA0B,CAAA;YAC9I,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBAAG,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,CAAE,CAAA;YACvD,OAAO,IAAI,CAAA;QACZ,CAAC;QAGM,AAAP,MAAM,CAAC,SAAS,CAAE,SAAmC,CAAC,CAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAE,CAAC;YAE5F,MAAM,OAAO,GAAG,IAAI,GAAG,CAAE,MAAM,CAAE,CAAA;YAEjC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAA;YAC3C,MAAM,MAAM,GAAK,cAAc,CAAE,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAA+B,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAA;YAC3G,MAAM,CAAC,IAAI,GAAG,UAAU,CAAE,IAAI,CAAE,CAAA;YAEhC,MAAM,CAAC,SAAS,CAAE,CAAE,OAAO,CAAC,GAAG,CAAE,IAAI,CAAE,IAAI,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAE,KAAK,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAE,CAAA;YAE5G,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAA;YACrD,MAAM,CAAC,IAAI,CAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAE,CAAA;YAEjD,KAAK,MAAM,CAAE,GAAG,EAAE,IAAI,CAAE,IAAI,OAAO;gBAAG,MAAM,CAAC,IAAI,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;YAE9D,IAAI,CAAC,IAAI,CAAE,MAAM,CAAC,IAAI,EAAE,CAAE,CAAC,WAAW,CAAE,MAAM,CAAE,CAAA;YAEhD,OAAO,IAAI,CAAA;QACZ,CAAC;QAGM,AAAP,MAAM,CAAC,SAAS,CAAE,SAAmC,CAAC,CAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAE,CAAC;YAC5F,OAAO,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,SAAS,CAAE,MAAM,CAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAE,CAAA;QAC3D,CAAC;QAED,0FAA0F;QAEnF,AAAP,MAAM,CAAC,IAAI,CAAE,IAAsB;YAElC,IAAI,CAAC,IAAI,CAAC,GAAG;gBAAG,SAAS,CAAE,IAAI,KAAK,CAAE,iBAAiB,CAAE,CAAE,CAAA;YAE3D,IAAI,CAAC,aAAa,CAAC,GAAG,CAAE,IAAI,CAAC,GAAG,CAAE,CAAA;YAElC,OAAO,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC;gBACnC,IAAI,EAAE,UAAU,CAAE,IAAI,CAAE;aACxB,CAAC,CAAA;QAEH,CAAC;QAED,gDAAgD;QAChD,MAAM,CAAC,IAAI,CAA2C,IAAsB,EAAE,IAAU;YACvF,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;YACrC,OAAO,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;QAC7C,CAAC;QAGM,AAAP,MAAM,CAAC,IAAI;YACV,MAAM,IAAI,GAAG,0BAA0B,CAAC,IAAI,EAAE,CAAA;YAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,IAAI,EAAE,qBAAqB,CAAE,CAAA;YACrD,uCAAuC;YACvC,IAAI,CAAC,IAAI,EAAE,CAAA;YACX,OAAO,IAAI,CAAA;QACZ,CAAC;QAGM,AAAP,MAAM,CAAC,IAAI;YACV,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAE,UAAU,CAAE,CAAA;YAC7C,MAAM,IAAI,GAAG,cAAc,CAAE,gBAAgB,CAAE,CAAC,IAAI,CAAE,IAAI,CAAC,MAAM,EAAE,CAAsB,CAAA;YACzF,IAAI,CAAC,UAAU,CAAE,IAAI,CAAE,CAAA;QACxB,CAAC;QAGM,AAAP,MAAM,CAAC,UAAU,CAAE,IAAsB;YACxC,OAAO,IAAI,CAAC,WAAW,CAAE,IAAI,CAAC,KAAK,EAAE,CAAE,CAAA;QACxC,CAAC;QAGM,AAAP,MAAM,CAAC,WAAW,CAAE,KAA6B;YAEhD,KAAK,MAAM,CAAE,OAAO,EAAE,IAAI,CAAE,IAAI,KAAK,EAAG,CAAC;gBACxC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,IAAI,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAE,OAAO,CAAE,CAAE,CAAA;gBAChE,IAAI,CAAC,UAAU,CAAE,IAAI,CAAC,KAAK,CAAE,CAAA;YAC9B,CAAC;QAEF,CAAC;;IAtFM;QADL,QAAQ;sCAGT;IAUM;QADL,WAAW;2CAmBZ;IAGM;QADL,WAAW;2CAGZ;IAIM;QADL,YAAY;sCAWb;IASM;QADL,QAAQ;sCAOT;IAGM;QADL,WAAW;sCAKZ;IAGM;QADL,WAAW;4CAGZ;IAGM;QADL,WAAW;6CAQZ;IA5FW,kBAAgB,mBA8F5B,CAAA;AAEF,CAAC,EAlGS,CAAC,KAAD,CAAC,QAkGV;;;;AClGD,IAAU,CAAC,CAUV;AAVD,WAAU,GAAC;IAEV,eAAe,CAAC,IAAI,CAAE,CAAC,CAAA,EAAE;QACxB,MAAM,qBAAsB,SAAQ,CAAC,CAAC,gBAAgB;YACrD,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;YACZ,MAAM,CAAC,aAAa,GAAG,IAAI,aAAa,EAAY,CAAA;;QAErD,CAAC,CAAC,gBAAgB,GAAG,qBAAqB,CAAA;IAC3C,CAAC,CAAE,CAAA;AAEJ,CAAC,EAVS,CAAC,KAAD,CAAC,QAUV;;;;ACVD,IAAU,CAAC,CAwBV;AAxBD,WAAU,CAAC;IAEV,0CAA0C;IAC1C,MAAa,gBAAyB,SAAQ,WAAW;QAG9C;QADV,YACU,SAA4C;YAClD,KAAK,EAAE,CAAA;YADD,cAAS,GAAT,SAAS,CAAmC;QAC1C,CAAC;QAGb,IAAI,CAAE,IAAsB;YAC3B,OAAO,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAA;QAC9B,CAAC;QAED,IAAI;YACH,OAAO,IAAI,CAAC,IAAI,CAAE,qBAAqB,CAAC,IAAI,CAAE,CAAA;QAC/C,CAAC;QAED,IAAI;YACH,OAAO,IAAI,CAAC,IAAI,CAAE,qBAAqB,CAAC,IAAI,CAAE,CAAA;QAC/C,CAAC;KAED;IAZA;QADE,YAAY;gDAGb;IATW,kBAAgB,mBAmB5B,CAAA;AAEF,CAAC,EAxBS,CAAC,KAAD,CAAC,QAwBV;;;;ACxBD,IAAU,CAAC,CAyCV;AAzCD,WAAU,CAAC;IAIV,MAAa,qBAAsB,SAAQ,WAAW;QAG9C,AAAP,MAAM,CAAC,IAAI,CAAE,IAAsB;YAClC,OAAO,IAAI,CAAC,IAAI,CAAC;gBAChB,IAAI,EAAE,UAAU,CAAE,IAAI,CAAE;aACxB,CAAC,CAAA;QACH,CAAC;QAED,IAAI;YACH,OAAO,gBAAgB,CAAC,IAAI,CAAA;QAC7B,CAAC;QAED,YAAY,GAAG,CAAC,CAAA;QAChB,YAAY,GAAG,CAAC,CAAA;QAEhB,YAAY,GAAG,CAAC,CAAA;QAChB,YAAY,GAAG,CAAC,CAAA;QAEhB,eAAe,GAAG,IAAI,OAAO,EAAsB,CAAA;QAEnD,+BAA+B;QAC/B,UAAU,CAAE,IAA2B,IAAU,CAAC;QAElD,+BAA+B;QAC/B,UAAU;YACT,OAAO,EAAE,CAAA;QACV,CAAC;QAED,8BAA8B;QAC9B,SAAS,CAAE,IAA2B;YACrC,OAAO,IAAK,CAAA;QACb,CAAC;KAED;IA/BO;QADL,YAAY;2CAKb;IAPW,uBAAqB,wBAkCjC,CAAA;IAEU,kBAAgB,GAAG,qBAAqB,CAAA;AACpD,CAAC,EAzCS,CAAC,KAAD,CAAC,QAyCV;;;;ACzCD,IAAU,CAAC,CAwQV;AAxQD,WAAU,CAAC;IAEV,0BAA0B;IAC1B,MAAa,2BAA4B,SAAQ,YAAY;QAExC;QAApB,YAAoB,GAA4B;YAC/C,KAAK,EAAE,CAAA;YADY,QAAG,GAAH,GAAG,CAAyB;QAEhD,CAAC;QAED,WAAW,CAAwB;QACnC,WAAW,GAAG,IAAI,OAA8B,CAAA;QAChD,WAAW,GAAG,IAAI,OAA8B,CAAA;QAEhD,8CAA8C;QAE9C,IAAI,CAAE,GAAI,IAA8E;YAEvF,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAE,CAAA;YACnD,IAAI,MAAM,KAAK,SAAS,EAAG,CAAC;gBAE3B,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,CAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAE,CAAA;gBACjD,IAAI,MAAM;oBAAG,OAAO,MAAM,CAAA;gBAE1B,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAE,CAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,CAAE,CAAA;gBAChE,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,IAAI,GAAG,CAAC,CAAE,GAAG,CAAC,CAAA;gBAEhC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAE,IAAI,CAAE,CAAA;gBACxC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAE,CAAA;gBAC9C,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,CAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAE,CAAA;YAEjD,CAAC;YAED,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;gBACtB,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,MAAM;aAChB,CAAC,CAAA;YAEF,OAAO,MAAM,CAAA;QACd,CAAC;QAED,mCAAmC;QAEnC,IAAI,CAAE,IAAoC,EAAE,IAAI,GAAG,IAAI,CAAC,UAAU;YAEjE,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,IAAI,GAAG,CAAC,CAAE,GAAG,CAAC,CAAA;YAEhC,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAE,IAAI,CAAC,MAAM,CAAE,CAAA;YAChD,IAAI,MAAM,KAAK,SAAS,EAAG,CAAC;gBAE3B,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,CAAE,IAAI,CAAC,MAAM,CAAE,CAAA;gBAC9C,IAAI,CAAC,MAAM,EAAG,CAAC;oBACd,OAAO,SAAS,CAAE,IAAI,KAAK,CAAE,uBAAuB,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAG,CAAC,CAAA;gBACpF,CAAC;gBAED,IAAI,CAAC,WAAW,CAAC,GAAG,CAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAE,CAAA;gBAC3C,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAE,MAAM,EAAE,IAAI,CAAE,CAAA;gBACvC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,MAAM,CAAE,IAAI,CAAC,MAAM,CAAE,CAAA;YAEzC,CAAC;YAED,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;gBACtB,MAAM,EAAE,IAAI,UAAU,CAAE,IAAI,CAAE;gBAC9B,QAAQ,EAAE,MAAM;aAChB,CAAC,CAAA;QAEH,CAAC;KAED;IApDA;QADE,WAAW;2DAwBZ;IAID;QADE,WAAW;2DAwBZ;IA9DW,6BAA2B,8BAgEvC,CAAA;IAED,+BAA+B;IAC/B,MAAa,uBAAwB,SAAQ,YAAY;QAkB9C;QAhBV,wBAAwB;QAExB,IAAI,CAAE,KAAY;YACjB,eAAe,EAAE,CAAA;YACjB,OAAO,IAAI,gBAAgB,CAAA;QAC5B,CAAC;QAED,iCAAiC;QAEjC,OAAO,CAAE,KAAY;YACpB,eAAe,EAAE,CAAA;YACjB,OAAO,IAAI,GAA0B,CAAA;QACtC,CAAC;QAED;QACC,+BAA+B;QACtB,KAA+B;YAExC,KAAK,EAAE,CAAA;YAFE,UAAK,GAAL,KAAK,CAA0B;QAGzC,CAAC;QAED,UAAU;YAET,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;gBAAG,OAAM;YAEpC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAE,YAAY,CAAE,CAAC,KAAK,EAAE,CAAA;YAC1C,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAE,KAAK,CAAE,CAAA;YAC7B,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;YACjB,IAAI,CAAC,OAAO,CAAE,IAAI,CAAE,CAAA;QAErB,CAAC;QAED,+BAA+B;QAG/B,SAAS;YACR,MAAM,OAAO,GAAG,CAAE,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;YACrE,IAAI,OAAO,CAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,GAAG,OAAO,CAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE;gBAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAA;QAC/E,CAAC;QAED,uBAAuB;QACvB,IAAI;YACH,IAAI,CAAC,SAAS,EAAE,CAAA;YAChB,IAAI,CAAC;gBACJ,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAE,WAAW,CAAE,CAAA;gBAC5C,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,CAAA;gBACtB,EAAE,CAAC,UAAU,EAAE,CAAA;gBACf,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAE,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,UAAU,GAAG,CAAC,CAAE,GAAG,CAAC,CAAE,CAAA;gBAC3D,OAAO,IAAI,CAAA;YACZ,CAAC;YAAC,OAAO,KAAU,EAAG,CAAC;gBACtB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;oBAAG,OAAO,IAAI,UAAU,EAAE,CAAA;gBACrD,OAAO,gBAAgB,CAAE,KAAK,CAAE,CAAA;YACjC,CAAC;QACF,CAAC;QAED,mCAAmC;QACnC,MAAM,CAAE,IAAiD;YAExD,IAAI,CAAC,SAAS,EAAE,CAAA;YAEhB,MAAM,GAAG,GAAG,IAAI,2BAA2B,CAAE,IAAI,CAAE,CAAA;YACnD,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAE,QAAQ,EAAE,YAAY,CAAE,CAAA;YAC1E,IAAI,CAAE,GAAG,CAAE,CAAA;YACX,GAAG,CAAC,KAAK,EAAE,CAAA;YACX,GAAG,CAAC,UAAU,EAAE,CAAA;YAEhB,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAA;YACpB,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAE,QAAQ,EAAE,YAAY,CAAE,CAAA;YAC1E,IAAI,CAAE,GAAG,CAAE,CAAA;YACX,GAAG,CAAC,UAAU,EAAE,CAAA;QAEjB,CAAC;QAED,iCAAiC;QAEjC,SAAS;YAER,eAAe,EAAE,CAAA;YAEjB,IAAI,CAAC,SAAS,EAAE,CAAA;YAEhB,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAG,CAAC;gBAC7B,cAAc,CAAE,IAAI,CAAC,CAAC,CAAE,CAAC,cAAc,CAAC;oBACvC,KAAK,EAAE,IAAI;oBACX,OAAO,EAAE,cAAc;oBACvB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;iBAC1B,CAAC,CAAA;YACH,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAE,CAAA;QAE5C,CAAC;QAED,KAAK;YACJ,IAAI,CAAC,SAAS,EAAE,CAAA;YAChB,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAA;QAC3B,CAAC;KAED;IAhGA;QADE,QAAQ;uDAIT;IAID;QADE,QAAQ;0DAIT;IAuBD;QAFE,QAAQ;QACR,WAAW;4DAIZ;IAqCD;QADE,QAAQ;4DAiBT;IA7FW,yBAAuB,0BAoGnC,CAAA;IAED,MAAa,mBAAoB,SAAQ,qBAAqB;QAG7D,KAAK;YACJ,eAAe,EAAE,CAAA;YACjB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YACxB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YAExB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAE,OAAO,CAAE,CAAA;YACjD,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,EAAE,CAAC,CAAE,CAAE,CAAA;YAChD,IAAI,IAAI,CAAC,GAAG;gBAAG,GAAG,GAAG,GAAG,CAAC,OAAO,CAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,CAAC,CAAE,CAAE,CAAA;YAExD,GAAG,CAAC,MAAM,CAAE,IAAI,CAAE,CAAA;YAElB,OAAO,IAAI,uBAAuB,CAAC;gBAClC,GAAG,CAAC,OAAO,CAAE,IAAI,CAAC,GAAG,GAAG,WAAW,CAAE;gBACrC,GAAG,CAAC,OAAO,CAAE,IAAI,CAAC,GAAG,GAAG,WAAW,CAAE;aACrC,CAAC,CAAA;QAEH,CAAC;QAGD,UAAU;YAET,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE;gBAAG,OAAM;YAElC,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAE,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,qBAAqB,CAAE,CAAE,CAAC,CAAA;YACtF,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAE,CAAA;QAEjD,CAAC;QAGQ,UAAU,CAAE,IAA2B;YAE/C,IAAI,CAAC,UAAU,EAAE,CAAA;YAEjB,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAE,IAAI,CAAC,EAAE;gBAE3B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,GAAG,EAAG,CAAC;oBAC9B,IAAI,IAAI,YAAY,qBAAqB,IAAI,IAAI,CAAC,GAAG,EAAE,EAAG,CAAC;wBAC1D,IAAI,CAAC,IAAI,CAAE,IAAI,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;oBACjD,CAAC;yBAAM,CAAC;wBACP,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;oBAClB,CAAC;gBACF,CAAC;gBAED,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,GAAG,EAAG,CAAC;oBAC9B,IAAI,IAAI,YAAY,qBAAqB,IAAI,IAAI,CAAC,GAAG,EAAE;wBAAG,IAAI,CAAC,IAAI,CAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;;wBACnF,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;gBACvB,CAAC;YAEF,CAAC,CAAE,CAAA;YAEH,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,GAAG,EAAG,CAAC;gBAC9B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;YACjC,CAAC;QAEF,CAAC;QAGQ,UAAU;YAElB,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;YAEzB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAA;YAC/B,IAAI,CAAC,GAAG,CAAC,MAAM;gBAAG,OAAO,EAAE,CAAA;YAE3B,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;YAEzC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAE,IAAI,CAAC,KAAK,CAAE,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAE,CAAE,CAAA;YAClF,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC;gBAAG,OAAO,SAAS,CAAE,IAAI,KAAK,CAAE,mBAAmB,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAE,CAAE,CAAA;YAE3G,KAAK,MAAM,CAAE,IAAI,EAAE,IAAI,CAAE,IAAI,KAAK,EAAG,CAAC;gBACrC,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG;oBAAG,OAAO,SAAS,CAAE,IAAI,KAAK,CAAE,iBAAiB,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAE,CAAE,CAAA;gBAE1I,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAG,CAAC;oBAChC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;oBAChC,yCAAyC;gBAC1C,CAAC;gBAED,OAAO,IAAI,CAAC,KAAK,CAAA;YAClB,CAAC;YAED,OAAO,EAAE,CAAA;QACV,CAAC;QAED,UAAU;YACT,IAAI,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,CAAA;QAC1B,CAAC;KAED;IAvFA;QADE,QAAQ;oDAiBT;IAGD;QADE,QAAQ;yDAQT;IAGQ;QADP,WAAW;yDA0BZ;IAGQ;QADP,WAAW;yDAyBZ;IApFW,qBAAmB,sBA0F/B,CAAA;AAEF,CAAC,EAxQS,CAAC,KAAD,CAAC,QAwQV;;;;ACxQD,IAAU,CAAC,CAEV;AAFD,WAAU,CAAC;IACV,CAAC,CAAC,gBAAgB,GAAG,mBAAmB,CAAA;AACzC,CAAC,EAFS,CAAC,KAAD,CAAC,QAEV;;;;ACFD,IAAU,CAAC,CAKV;AALD,WAAU,GAAC;IACV,eAAe,CAAC,IAAI,CAAE,CAAC,CAAA,EAAE;QACxB,MAAM,qBAAsB,SAAQ,CAAC,CAAC,qBAAqB;SAAG;QAC9D,CAAC,CAAC,gBAAgB,GAAG,qBAAqB,CAAA;IAC3C,CAAC,CAAE,CAAA;AACJ,CAAC,EALS,CAAC,KAAD,CAAC,QAKV;;;;ACLD,IAAU,CAAC,CA4BV;AA5BD,WAAU,CAAC;IACP,MAAa,QAAiB,SAAQ,WAAW;QAKzC;QACA;QAJK,OAAO,GAAG,IAA+B,CAAA;QAExD,YACU,IAAY,EACZ,MAA6B;YAEtC,KAAK,EAAE,CAAA;YAHE,SAAI,GAAJ,IAAI,CAAQ;YACZ,WAAM,GAAN,MAAM,CAAuB;YAItC,IAAI,CAAC;gBACJ,IAAI,CAAC,OAAO,GAAG,IAAI,gBAAgB,CAAE,IAAI,CAAE,CAAA;gBAC3C,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAE,KAA2B,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAE,KAAK,CAAC,IAAI,CAAE,CAAA;YACrF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACpB,CAAC;QACI,CAAC;QAEP,UAAU;YACT,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAA;QACtB,CAAC;QAED,IAAI,CAAE,IAAU;YACf,IAAI,CAAC,OAAO,EAAE,WAAW,CAAE,IAAI,CAAE,CAAA;QAClC,CAAC;KAEE;IA1BY,UAAQ,WA0BpB,CAAA;AACL,CAAC,EA5BS,CAAC,KAAD,CAAC,QA4BV;;;;AC5BD,IAAU,CAAC,CAOV;AAPD,WAAU,GAAC;IACV,eAAe,CAAC,IAAI,CAAE,CAAC,CAAA,EAAE;QACxB,MAAM,QAAiB,SAAQ,CAAC,CAAC,QAAgB;YAChD,IAAI,KAAI,CAAC;SACT;QACD,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAA;IACtB,CAAC,CAAE,CAAA;AACJ,CAAC,EAPS,CAAC,KAAD,CAAC,QAOV;;;;ACPD,IAAU,CAAC,CAkiDV;AAliDD,WAAU,CAAC;IAEV,SAAS,KAAK,CACb,IAAU,EACV,KAA8B,EAC9B,IAAyC;QAGzC,KAAK,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA,CAAC,aAAa;QAEhC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;QAE9B,OAAO,IAAI,EAAG,CAAC;YAEd,MAAM,IAAI,GAAG,cAAc,CAAE,KAAK,CAAE,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;YACjD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAE,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAE,IAAI,CAAE,CAAE,CAAA;YACrD,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAG,MAAK;YAExB,cAAc,CAAE,IAAI,CAAE,CAAC,IAAI,CAAE,IAAI,EAAE,IAAI,CAAE,CAAA;YACzC,KAAK,MAAM,IAAI,IAAI,IAAI;gBAAG,IAAI,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;QAE3C,CAAC;IAEF,CAAC;IAEY,uBAAqB,GAAG;QACpC,IAAI,EAAE,IAAI,gBAAgB,CAAE,EAAE,CAAE,EAAE,IAAI;QACtC,IAAI,EAAE,IAAI,gBAAgB,CAAE,UAAU,CAAE,EAAE,IAAI;KAC9C,CAAA;IAED,0FAA0F;IAC1F,MAAa,gBAAiB,SAAQ,WAAW;QAEhD,2EAA2E;QAC3E,IAAI;YACH,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAA;QACjC,CAAC;QAED,qDAAqD;QACrD,IAAI;YACH,OAAO,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAA;QACzC,CAAC;QAED,KAAK,GAAG,IAAI,oBAAoB,CAAA;QAEhC,IAAI;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAE,CAAA;QACpD,CAAC;QAED,KAAK,GAAG,IAAI,cAAc,EAA4C,CAAA;QACtE,UAAU,GAAG,IAAI,GAAG,EAAoE,CAAA;QACxF,UAAU,GAAG,IAAI,GAAG,EAA4C,CAAA;QAChE,KAAK,GAAG,IAAI,cAAc,EAA4C,CAAA;QACtE,KAAK,GAAG,IAAI,cAAc,EAAkH,CAAA;QAC5I,UAAU,GAAG,IAAI,GAAG,EAA4C,CAAA;QAEhE,QAAQ,CAAE,IAA2B;YACpC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE;gBAAG,OAAM;YAC9C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,CAAE,CAAA;QACxC,CAAC;QAED,QAAQ,CAAE,IAA2B;YAEpC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE,CAAA;YACnD,IAAI,IAAI;gBAAG,OAAM;YAEjB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,EAAG,CAAC;gBAEtC,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAE,CAAA;gBAEpD,IAAI,qBAAqB,CAAC,OAAO,CAAE,IAAI,EAAE,IAAI,CAAE,IAAI,CAAC;oBAAG,SAAQ;gBAE/D,IAAI,IAAI,EAAE,WAAW,CAAC,GAAG,CAAE,IAAI,CAAC,GAAG,CAAE,EAAG,CAAC;oBACxC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAE,IAAI,CAAC,GAAG,CAAE,CAAA;oBACnC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI;wBAAG,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAA;oBAClD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAE,IAAI,CAAC,GAAG,CAAE,CAAA;gBACjC,CAAC;gBAED,IAAI,CAAC,aAAa,CAAE,IAAI,EAAE,IAAI,CAAE,CAAA;YACjC,CAAC;YAED,IAAI,CAAC,UAAU,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,CAAE,CAAA;QAE7C,CAAC;QAED,QAAQ,CAAE,IAA2B;YAEpC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YAExB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,GAAG,CAAE,CAAA;YACvC,IAAI,qBAAqB,CAAC,OAAO,CAAE,IAAI,EAAE,IAAI,CAAE,IAAI,CAAC;gBAAG,OAAM;YAE7D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAA;YAE/B,IAAI,IAAI;gBAAG,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAA;YAChC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAE,CAAA;YAE1C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAE,CAAA;YAChC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;YAE1D,IAAI,CAAC,aAAa,CAAE,IAAI,CAAE,CAAA;YAE1B,IAAI,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,qBAAqB,CAAE,GAAG,IAAI,CAAC,IAAI,EAAE;gBAAG,IAAI,CAAC,UAAU,EAAE,CAAA;QAEhF,CAAC;QAED,QAAQ,CAAE,IAA2B;YAEpC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE,CAAA;YAC7C,IAAI,CAAC,KAAK;gBAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,cAAc,CAAE,CAAA;YAE1E,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE,CAAA;YACxC,IAAI,CAAC,KAAK;gBAAG,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,cAAc,CAAE,CAAA;YAErE,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE,CAAA;YACzC,IAAI,qBAAqB,CAAC,OAAO,CAAE,IAAI,EAAE,IAAI,CAAE,IAAI,CAAC;gBAAG,OAAM;YAE7D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAA;YAE/B,IAAI,IAAI;gBAAG,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAA;YAChC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAE,CAAA;YAE1C,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,CAAE,CAAA;YAClC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;YAEnD,IAAI,CAAC,KAAK,CAAC,SAAS,CAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;YAE1D,IAAI,CAAC,aAAa,CAAE,IAAI,CAAE,CAAA;QAE3B,CAAC;QAED,aAAa,GAAG,IAAI,GAAG,EAA2B,CAAA;QAElD,SAAS,CAAE,IAA2B;YACrC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,eAAe,CAAC,GAAG,CAAE,IAAI,CAAE;gBAAG,OAAM;YACrD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;QAC/B,CAAC;QAED,aAAa,CAAE,IAA2B;YAEzC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;YAClB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBAAG,OAAM;YAE5B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,CAAE,CAAA;YAE5C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAA;YACnC,IAAI,CAAC,IAAI;gBAAG,OAAM;YAElB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE,CAAA;QAExC,CAAC;QAED,aAAa,CAAE,IAA2B;YAEzC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;YAEnB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBAAG,OAAM;YAE5B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE,CAAA;YAEzC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAA;YACnC,IAAI,CAAC,IAAI;gBAAG,OAAM;YAElB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE,CAAA;YAE1C,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI;gBAAG,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAA;QAEnD,CAAC;QAED,QAAQ,CAAE,IAA2B;YAEpC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YACxB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAE,IAAI,CAAC,GAAG,CAAE;gBAAG,OAAM;YAE7C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAE,IAAI,CAAC,GAAG,CAAE,CAAA;YAElC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,EAAG,CAAC;gBACtC,IAAI,IAAI,CAAC,aAAa,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAE,KAAK,IAAI,EAAG,CAAC;oBACvD,IAAI,CAAC,aAAa,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAE,CAAA;gBACxC,CAAC;YACF,CAAC;YAED,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAA;QAEvB,CAAC;QAED,QAAQ,CAAE,IAA2B;YAEpC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE,CAAA;YAC9C,IAAI,IAAI,KAAK,IAAI;gBAAG,OAAM;YAE1B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAG,CAAA;YACrC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAE,CAAA;YAExD,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAA;YACtB,IAAI,CAAC,aAAa,CAAE,IAAI,CAAE,CAAA;QAE3B,CAAC;QAED,QAAQ,CAAE,IAA2B;YAEpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE,CAAA;YAC/C,IAAI,CAAC,KAAK;gBAAG,OAAM;YAEnB,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE,CAAA;YAC1C,IAAI,CAAC,KAAK;gBAAG,OAAM;YAEnB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE,CAAA;YACzC,IAAI,IAAI,KAAK,IAAI;gBAAG,OAAM;YAE1B,KAAK,CAAC,MAAM,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE,CAAA;YAC/B,IAAI,CAAC,KAAK,CAAC,eAAe,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAE,CAAA;YAExD,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAA;YACtB,IAAI,CAAC,aAAa,CAAE,IAAI,CAAE,CAAA;QAE3B,CAAC;QAGD,SAAS,CAAE,IAAsB;YAChC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,GAAG,CAAE,IAAI,IAAI,CAAA;QAC1C,CAAC;QAED,SAAS,CAAE,IAA2B;YAErC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBAAG,OAAO,IAAI,CAAA;YAEjC,OAAO,IAAI,CAAC,aAAa,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,CAAE,IAAI,IAAI,CAAA;QAE9D,CAAC;QAED,aAAa,CAAE,IAAsB,EAAE,IAAsB;YAC5D,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAE,IAAI,CAAC,GAAG,CAAE,EAAE,GAAG,CAAE,IAAI,CAAC,GAAG,CAAE,CAAA;QACxD,CAAC;QAED,aAAa,CAAE,IAAsB,EAAE,IAAsB;YAC5D,IAAI,CAAC,UAAU,CAAC,GAAG,CAAE,IAAI,CAAC,GAAG,CAAE,EAAE,MAAM,CAAE,IAAI,CAAC,GAAG,CAAE,CAAA;QACpD,CAAC;QAED,aAAa,CAAE,IAA2B,EAAE,IAAsB;YAEjE,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE,CAAA;YAClD,IAAI,CAAC,KAAK;gBAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,CAAE,CAAA;YAEpE,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAE,CAAA;QAE5B,CAAC;QAED,QAAQ,CAAE,IAAsB,EAAE,IAAsB,EAAE,IAAsB;YAC/E,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,GAAG,CAAE,EAAE,GAAG,CAAE,IAAI,CAAC,GAAG,CAAE,EAAE,GAAG,CAAE,IAAI,CAAC,GAAG,CAAE,IAAI,IAAI,CAAA;QAC5E,CAAC;QAED,SAAS,GAAG,IAAI,GAAG,EAAwC,CAAA;QAE3D,wEAAwE;QAExE,SAAS,CAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,IAAE,EAAE,CAAE;YAEpD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YACxB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;YAE1C,IAAI,IAAI,GAAG,qBAAqB,CAAC,IAAI;gBAAG,SAAS,CAAE,IAAI,KAAK,CAAE,iBAAkB,IAAK,GAAG,CAAE,CAAE,CAAA;YAE5F,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAG,CAAC;gBAEhC,IAAI,GAAG,iBAAiB,CAAC,CAAE,IAAI,CAAE,CAAC,CAAA;gBAClC,IAAI,CAAC,IAAI;oBAAG,SAAQ;gBAEpB,MAAM,SAAS,GAAG,gBAAgB,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAA;gBACnD,IAAI,MAAM,CAAC,IAAI,CAAE,SAAS,CAAC,GAAG,CAAE;oBAAG,SAAQ;gBAC3C,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAE,SAAS,CAAC,GAAG,CAAE;oBAAG,SAAQ;gBAElD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAE,SAAS,CAAC,GAAG,EAAE,KAAK,CAAE,CAAA;gBAC1C,OAAO,SAAS,CAAA;YAEjB,CAAC;YAED,SAAS,CAAE,IAAI,KAAK,CAAE,0BAA0B,CAAE,CAAE,CAAA;QACrD,CAAC;QAED,oFAAoF;QAEpF,SAAS,CAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAE,cAAc,CAAE,IAAI,CAAE,CAAC,MAAM,EAAE,GAAG,CAAC,IAAE,EAAE,CAAE;YAEtE,gBAAgB;YAEhB,IAAI,EAAE,GAAG,EAAE,CAAA;YACX,OAAO,IAAI,EAAG,CAAC;gBAEd,IAAI,GAAG,iBAAiB,CAAC,CAAE,IAAI,CAAE,CAAC,CAAA;gBAClC,IAAI,CAAC,IAAI;oBAAG,SAAQ;gBAEpB,EAAE,GAAG,gBAAgB,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAC,GAAG,CAAA;gBAC1C,IAAI,MAAM,CAAC,IAAI,CAAE,EAAE,CAAE;oBAAG,SAAQ;gBAEhC,MAAK;YACN,CAAC;YAED,MAAM,IAAI,GAAG,IAAI,gBAAgB,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,CAAE,CAAA;YAEtE,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;YAEjD,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,GAAG,EAAE,CAAA;YACV,IAAI,CAAC,SAAS,EAAE,CAAA;YAChB,IAAI,CAAC,SAAS,EAAE,CAAA;YAEhB,OAAO,IAAI,CAAA;QACZ,CAAC;QAGD,WAAW;YACV,OAAO,IAAI,cAAc,CAAE,EAAE,EAAE,GAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAE,CAAC,KAAK,EAAE,CAAA;QAC7D,CAAC;QAGD,OAAO;YAEN,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YACxB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAA;YAC/B,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG;gBAAG,OAAM;YAElC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;YACjD,IAAI,CAAC,YAAY,EAAE,CAAA;YAEnB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAA;YAE3C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAG,CAAC;gBAEzC,MAAM,IAAI,GAAG,cAAc,CAAE,IAAI,CAAC,KAAK,CAAE,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE,CAAA;gBAChE,IAAI,qBAAqB,CAAC,OAAO,CAAE,IAAI,EAAE,IAAI,CAAE,IAAI,CAAC;oBAAG,SAAQ;gBAE/D,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAA;gBACnC,IAAI,CAAC,IAAI;oBAAG,SAAQ;gBAEpB,KAAK,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;gBACjB,KAAK,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;gBACjB,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,IAAI,EAAE,CAAG,CAAE,CAAA;gBAE3C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;gBACxB,IAAI,IAAI,CAAC,GAAG;oBAAG,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,SAAS,CAAE,IAAI,CAAG,CAAE,CAAA;YAEpD,CAAC;YAED,IAAI,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAE,GAAI,KAAK,CAAE,CAAC,CAAA;YACpD,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,CAAE,CAAC,CAAC,CAAA;YAE/D,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACzB,IAAI,CAAC,UAAU,CAAE,IAAI,CAAC,KAAK,CAAE,CAAA;QAE9B,CAAC;QAED,gBAAgB;QAEhB,IAAI,CAA0C,IAAU;YACvD,OAAO,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC,IAAI,CAAE,EAAA,qBAAqB,CAAC,IAAI,CAAE,CAAA;QAC5D,CAAC;QAED,4BAA4B;QAE5B,IAAI;YACH,OAAO,IAAI,CAAC,IAAI,CAAE,qBAAqB,CAAE,CAAC,IAAI,CAAE,EAAA,qBAAqB,CAAC,IAAI,CAAE,CAAA;QAC7E,CAAC;QAED,+CAA+C;QAE/C,IAAI,CAA0C,IAAU;YACvD,OAAO,IAAI,gBAAgB,CAAE,CAAE,IAAsB,EAAE,EAAE;gBACxD,OAAS,IAAiC,CAAC,IAAI,CAAC;oBAC/C,IAAI,EAAE,UAAU,CAAE,IAAI,CAAE,EAAC,UAAU;oBACnC,IAAI,EAAE,UAAU,CAAE,IAAI,CAAE;iBACxB,CAAyB,CAAA;YAC3B,CAAC,CAAE,CAAA;QACJ,CAAC;QAED,wCAAwC;QAExC,KAAK;YAEJ,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAA;YAElD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAG,CAAC;gBAC1C,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,EAAG,CAAC;oBACrC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAA;gBACpB,CAAC;YACF,CAAC;YAED,OAAO,KAAK,CAAA;QACb,CAAC;QAGD,SAAS;YACR,OAAO,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAG,CAAA;QAC7C,CAAC;QAED,qCAAqC;QAErC,SAAS,CAAE,IAAkC,EAAE,IAAoC;YAElF,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,CAAE,CAAA;YAEnD,IAAI,IAAI,KAAK,SAAS;gBAAG,OAAO,IAAI,CAAA;YACpC,IAAI,IAAI,KAAK,IAAI;gBAAG,OAAO,IAAI,CAAA;YAE/B,IAAI,CAAC,IAAI,CAAE,IAAI,EAAE,IAAI,CAAE,CAAA;YACvB,OAAO,IAAI,CAAA;QAEZ,CAAC;QAED,SAAS,CAAE,IAAsB;YAChC,OAAO,wBAAwB,CAAE,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAE,CAAA;QAC1D,CAAC;QAED,SAAS,CAAE,IAAsB;YAChC,OAAO,wBAAwB,CAAE,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAE,CAAA;QAC1D,CAAC;QAED,mFAAmF;QACnF,SAAS,CAAE,IAA6B,EAAE,IAAoC;YAE7E,IAAI,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG;gBAAG,OAAO,qBAAqB,CAAA;YAEvE,IAAI,IAAI,KAAK,SAAS,EAAG,CAAC;gBACzB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAE,EAAE,IAAI,EAAE;uBAC5C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAE,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAE,EAAE,IAAI,EAAE;uBACnD,CAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,qBAAqB,CAAE,CAAA;YAEzE,CAAC;YAED,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAC,CAAC,CAAC,IAAI,CAAA;YACjD,gEAAgE;YAEhE,OAAO,IAAI,CAAC,SAAS,CAAE,IAAI,EAAE,IAAI,CAAE,CAAA;QAEpC,CAAC;QAED,kDAAkD;QAClD,UAAU,CAAE,UAAU,GAAG,IAAI,oBAAoB;YAEhD,IAAI,CAAC,aAAa,EAAE,CAAA;YAEpB,MAAM,OAAO,GAAG,IAAI,GAAG,EAA0C,CAAA;YACjE,MAAM,KAAK,GAAG,IAAI,GAAG,EAA2B,CAAA;YAChD,MAAM,MAAM,GAAG,IAAI,GAAG,EAA2B,CAAA;YACjD,MAAM,KAAK,GAAG,IAAI,GAAG,EAA2B,CAAA;YAEhD,SAAS,OAAO,CAAE,IAA2B;gBAE5C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAA;gBACnC,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAE,IAAI,CAAE,EAAE,SAAS,IAAI,CAAC,CAAA;gBAEzD,IAAI,IAAI,CAAC,SAAS,EAAE,GAAG,UAAU;oBAAG,OAAO,KAAK,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;gBAE5D,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;gBAEzC,IAAI,aAAa;oBAAG,aAAa,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;;oBACxC,OAAO,CAAC,GAAG,CAAE,IAAI,EAAE,IAAI,GAAG,CAAC,CAAE,IAAI,CAAE,CAAC,CAAE,CAAA;YAE5C,CAAC;YAGD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAG,CAAC;gBACzC,OAAO,CAAE,IAAI,CAAE,CAAA;gBACf,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,EAAG,CAAC;oBACtB,IAAI,UAAU,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE;wBAAG,SAAQ;oBACvD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;oBAC/C,IAAI,SAAS;wBAAG,MAAM,CAAC,GAAG,CAAE,SAAS,CAAE,CAAA;gBACxC,CAAC;YACF,CAAC;YAED,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAG,CAAC;gBACzC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,EAAG,CAAC;oBACpC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE,EAAG,CAAC;wBACpC,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAA;wBACtB,OAAO,CAAE,IAAI,CAAE,CAAA;oBAChB,CAAC;gBACF,CAAC;YACF,CAAC;YAED,oDAAoD;YACpD,KAAK,MAAM,CAAE,IAAI,EAAE,IAAI,CAAE,IAAI,UAAU,EAAG,CAAC;gBAE1C,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;gBAEzC,MAAM,SAAS,GAAG,aAAa,EAAE,IAAI,IAAI,CAAC,CAAA;gBAC1C,IAAI,SAAS,IAAI,IAAI,CAAC,IAAI;oBAAG,SAAQ;gBAErC,cAAc,CAAE,IAAI,CAAC,CAAC,CAAE,CAAC,cAAc,CAAC;oBACvC,KAAK,EAAE,IAAI;oBACX,OAAO,EAAE,WAAW;oBACpB,IAAI,EAAE,qCAAqC;oBAC3C,IAAI;oBACJ,SAAS;oBACT,SAAS,EAAE,IAAI;oBACf,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAE,IAAI,CAAE;iBACjC,CAAC,CAAA;gBAEF,KAAK,MAAM,IAAI,IAAI,aAAc;oBAAG,KAAK,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;YAEtD,CAAC;YAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAG,CAAC;gBAE3B,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;gBAE3D,IAAI,IAAI;oBAAG,KAAK,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;;oBACvB,KAAK,CAAC,MAAM,CAAE,IAAI,CAAE,CAAA;YAE1B,CAAC;YAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAG,CAAC;gBAE3B,IAAI,UAAU,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE;oBAAG,SAAQ;gBAEvD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;gBAC1C,IAAI,CAAC,IAAI;oBAAG,OAAO,SAAS,CAAE,IAAI,KAAK,CAAE,kBAAkB,CAAE,CAAE,CAAA;gBAE/D,MAAM,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;YAEnB,CAAC;YAED,OAAO,CAAE,GAAI,MAAM,EAAE,GAAI,KAAK,EAAE,GAAI,KAAK,CAAE,CAAA;QAE5C,CAAC;QAED,gEAAgE;QAChE,gBAAgB;QAChB,SAAS,CAAE,UAAU,GAAG,IAAI,oBAAoB;YAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAE,UAAU,CAAE,CAAA;YAE3C,MAAM,KAAK,GAAG,IAAI,oBAAoB,CAAA;YACtC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAG,CAAC;gBAE3B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAA;gBAC/B,IAAI,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,GAAG,CAAE;oBAAG,SAAQ;gBAEpC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,GAAG,CAAE,CAAA;gBACvC,IAAI,CAAC,IAAI;oBAAG,SAAQ;gBAEpB,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,CAAE,CAAA;YAEpC,CAAC;YAED,OAAO,IAAI,qBAAqB,CAAE,KAAK,EAAE,KAAK,CAAE,CAAA;QACjD,CAAC;QAED,iEAAiE;QACjE,gBAAgB;QAChB,UAAU,CAAE,UAAU,GAAG,IAAI,oBAAoB;YAChD,OAAO,CAAC,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAE,UAAU,CAAE,CAAE,CAAC,CAAA;QAC3D,CAAC;QAGD,SAAS;YACR,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;oBAC7B,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG;oBACf,IAAI,qBAAqB,CAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAE;iBACnD,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,uDAAuD;QAEvD,UAAU,CAAE,KAAkC,EAAE,SAAuB;YAEtE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAG,OAAM;YAE/B,IAAI,CAAC,SAAS;gBAAG,IAAI,CAAC,OAAO,EAAE,CAAA;YAE/B,KAAK,GAAG,cAAc,CAAE,IAAI,CAAC,CAAC,CAAE,CAAC,qBAAqB,CAAE,KAAK,CAAE,CAAA;YAE/D,MAAM,MAAM,GAAG,IAAI,GAAG,EAA2C,CAAA;YAEjE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAA;YACtC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAA;YAE7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAG,CAAC;gBAC3B,IAAI,IAAI,YAAY,qBAAqB,EAAG,CAAC;oBAC5C,MAAM,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,CAAE,CAAA;gBACpC,CAAC;YACF,CAAC;YAED,KAAK,MAAM,IAAI,IAAI,KAAK;gBAAG,IAAI,IAAI,YAAY,qBAAqB,EAAG,CAAC;oBAEvE,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,IAAI,MAAM,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE,CAAA;oBAChF,IAAI,CAAC,SAAS;wBAAG,OAAO,IAAI,CAAC,CAAC,CAAC,SAAS,CAAE,IAAI,KAAK,CAAE,kBAAkB,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAE,CAAE,CAAA;oBAEnG,IAAI,IAAI,CAAC,CAAC,CAAC,8BAA8B,CAAE,IAAI,CAAE;wBAAG,SAAQ;oBAE5D,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAA;oBACnD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE,KAAK,CAAE,CAAA;oBAErC,MAAM,OAAO,GAAG,cAAc,CAAE,SAAS,CAAC,OAAO,EAAE,CAAE,CAAC,MAAM,CAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;oBACjF,IAAI,CAAC,OAAO;wBAAG,OAAO,SAAS,CAAE,IAAI,KAAK,CAAE,YAAY,CAAE,CAAE,CAAA;gBAE7D,CAAC;YAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAG,CAAC;gBAC3B,IAAI,IAAI,YAAY,qBAAqB,EAAG,CAAC;oBAC5C,8BAA8B,CAAE,IAAI,CAAE,CAAA;gBACvC,CAAC;YACF,CAAC;YAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAG,CAAC;gBAE3B,IAAI,IAAI,YAAY,qBAAqB;oBAAG,SAAQ;gBAEpD,IAAI,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAG,CAAC;oBACtD,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;wBACrB,OAAO,EAAE,cAAc;wBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;wBACrC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;wBACtD,IAAI,EAAE,yBAAyB;wBAC/B,KAAK,EAAE,GAAG,IAAI,eAAe;qBAC7B,CAAC,CAAA;oBACF,SAAQ;gBACT,CAAC;gBAED,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,IAAI,MAAM,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE,CAAA;gBAChF,IAAI,CAAC,SAAS;oBAAG,OAAO,IAAI,CAAC,CAAC,CAAC,SAAS,CAAE,IAAI,KAAK,CAAE,kBAAkB,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAE,CAAE,CAAA;gBAEnG,QAAQ,IAAI,CAAC,IAAI,EAAE,EAAG,CAAC;oBAEtB,KAAK,MAAM,CAAC,CAAC,CAAC;wBAEb,MAAM,IAAI,GAAG,IAA6B,CAAA;wBAE1C,IAAI,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAG,CAAC;4BACtD,OAAO,IAAI,CAAC,CAAC,CAAC,SAAS,CAAE,IAAI,KAAK,CAAE,cAAc,CAAE,CAAE,CAAA;wBACvD,CAAC;wBAED,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAA;wBAErB,MAAK;oBACN,CAAC;oBAED,KAAK,MAAM,CAAC,CAAC,CAAC;wBAEb,MAAM,IAAI,GAAG,IAA6B,CAAA;wBAE1C,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,8BAA8B,CAAE,IAAI,CAAE,EAAG,CAAC;4BACrD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAA;4BACnC,IAAI,CAAC,IAAI;gCAAG,OAAO,IAAI,CAAC,CAAC,CAAC,SAAS,CAAE,IAAI,KAAK,CAAE,kBAAkB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAE,CAAE,CAAA;wBACxF,CAAC;wBAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,EAAG,CAAC;4BAEtB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,IAAI,MAAM,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE,CAAA;4BAChF,IAAI,CAAC,SAAS;gCAAG,OAAO,IAAI,CAAC,CAAC,CAAC,SAAS,CAAE,IAAI,KAAK,CAAE,kBAAkB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAE,CAAE,CAAA;4BAE5F,IAAI,CAAC,QAAQ,CAAE,SAAS,CAAE,CAAA;wBAE3B,CAAC;wBAED,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAA;wBAErB,MAAK;oBACN,CAAC;oBAED,KAAK,MAAM,CAAC,CAAC,CAAC;wBAEb,MAAM,IAAI,GAAG,IAA6B,CAAA;wBAE1C,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,8BAA8B,CAAE,IAAI,CAAE,EAAG,CAAC;4BACrD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAA;4BACnC,IAAI,CAAC,IAAI;gCAAG,OAAO,IAAI,CAAC,CAAC,CAAC,SAAS,CAAE,IAAI,KAAK,CAAE,kBAAkB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAE,CAAE,CAAA;wBACxF,CAAC;wBAED,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAA;wBAErB,MAAK;oBACN,CAAC;oBAED,OAAO,CAAC,CAAC,CAAC;wBACT,OAAO,IAAI,CAAC,CAAC,CAAC,SAAS,CAAE,IAAI,KAAK,CAAE,kBAAkB,CAAE,CAAE,CAAA;oBAC3D,CAAC;gBAEF,CAAC;gBAED,IAAI,CAAC,QAAQ,CAAE,SAAS,CAAE,CAAA;YAE3B,CAAC;YAED,OAAO,KAAK,CAAA;QACb,CAAC;QAGD,WAAW,CAAE,KAAuB;YACnC,IAAI,CAAC,UAAU,CAAE,KAAK,CAAC,UAAU,EAAE,EAAE,WAAW,CAAE,CAAA;QACnD,CAAC;QAED,UAAU;YAET,KAAK,EAAE,OAAO,IAAI,EAAG,CAAC;gBAErB,KAAK,MAAM,CAAE,IAAI,EAAE,IAAI,CAAE,IAAI,IAAI,CAAC,UAAU,EAAG,CAAC;oBAE/C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;oBAC1C,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;wBAAG,SAAQ;oBAEtC,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAA;gBAEtB,CAAC;gBAED,KAAK,MAAM,CAAE,IAAI,EAAE,IAAI,CAAE,IAAI,IAAI,CAAC,KAAK,EAAG,CAAC;oBAE1C,iCAAiC;oBAChC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;oBAC1C,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;wBAAG,SAAQ;oBACvC,IAAI;oBAEJ,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAA;oBAErB,SAAS,KAAK,CAAA;gBACf,CAAC;gBAED,KAAK,MAAM,CAAE,IAAI,EAAE,KAAK,CAAE,IAAI,IAAI,CAAC,KAAK,EAAG,CAAC;oBAC3C,KAAK,MAAM,CAAE,IAAI,EAAE,KAAK,CAAE,IAAI,KAAK,EAAG,CAAC;wBACtC,KAAK,MAAM,CAAE,IAAI,EAAE,IAAI,CAAE,IAAI,KAAK,EAAG,CAAC;4BAErC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;4BAC1C,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;gCAAG,SAAQ;4BAEtC,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAA;wBAEtB,CAAC;oBACF,CAAC;gBACF,CAAC;gBAED,MAAK;YACN,CAAC;QAEF,CAAC;QAGD,IAAI,CAAE,SAAkC,CAAC,CAAE,IAAI,EAAE,qBAAqB,CAAE,CAAC;YACxE,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAE,MAAM,CAAE,CAAA;YACxD,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAC,CAAA;YACvC,OAAO,IAAI,CAAA;QACZ,CAAC;QAGD,YAAY,CAAE,EAAE,IAAI,EAAE,IAAI,EAA6D;YAEtF,IAAI,CAAC,IAAI,EAAE,CAAA;YACX,uDAAuD;YAEvD,MAAM,KAAK,GAAG,CAAE,IAAI,EAAE,GAAG,CAAE;gBAC1B,CAAC,CAAC,CAAE,GAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,GAAG,CAAE,EAAE,GAAG,CAAE,IAAK,CAAC,GAAG,CAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAE;gBACtE,CAAC,CAAC,CAAE,GAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,GAAG,CAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAE,CAAC,OAAO,CAAE,KAAK,CAAC,EAAE,CAAC,CAAE,GAAI,KAAK,CAAC,MAAM,EAAE,CAAE,CAAE,CAAA;YAEhG,MAAM,MAAM,GAAG,IAAI,GAAG,CAAA;YACtB,KAAK,MAAM,IAAI,IAAI,KAAK;gBAAG,MAAM,CAAC,GAAG,CAAE,IAAI,EAAE,CAAC,CAAE,CAAA;YAEhD,KAAK,EAAE,IAAI,IAAI,CAAC,GAAG,KAAK,EAAA,qBAAqB,CAAC,IAAI,CAAC,GAAG,EAAG,CAAC;gBAEzD,MAAM,KAAK,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAE;qBACjE,GAAG,CAAE,GAAG,CAAC,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAE,GAAG,CAAE,CAAE;qBACjD,MAAM,CAAE,kBAAkB,CAAE,CAAA;gBAC9B,IAAI,CAAC,KAAK,CAAC,MAAM;oBAAG,MAAM,KAAK,CAAA;gBAE/B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAE,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE,CAAE,CAAA;gBAE9D,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAA;gBACpC,IAAI,KAAK,GAAG,CAAC,CAAA;gBACb,KAAK,MAAM,IAAI,IAAI,KAAK,EAAG,CAAC;oBAC3B,EAAG,KAAK,CAAA;oBACR,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;oBAC9B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAG,CAAC;wBAEvD,IAAI,MAAM,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE;4BAAG,SAAQ;wBAC5C,KAAK,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;wBAClB,MAAM,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE,CAAA;wBAC7B,MAAM,CAAC,GAAG,CAAE,IAAI,EAAE,KAAK,CAAE,CAAA;oBAE1B,CAAC;gBAEF,CAAC;YAEF,CAAC;YAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAG,OAAO,KAAK,CAAA;YAEnC,MAAM,OAAO,GAAG,CAAE,IAA2B,EAAE,KAA4B,EAAE,EAAE;gBAC9E,OAAO,CAAE,MAAM,CAAC,GAAG,CAAE,IAAI,CAAE,GAAG,MAAM,CAAC,GAAG,CAAE,KAAK,CAAE,CAAE,IAAI,qBAAqB,CAAC,OAAO,CAAE,IAAI,EAAE,KAAK,CAAE,CAAA;YACpG,CAAC,CAAA;YAED,KAAK,CAAC,IAAI,CAAE,OAAO,CAAE,CAAA;YAErB,IAAI,KAAK,GAAG;gBACX,IAAI,EAAE,IAAoC;gBAC1C,IAAI,EAAE,IAAqB;gBAC3B,IAAI,EAAE,IAAqB;aAC3B,CAAA;YAED,MAAM,GAAG,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAE,IAA2B,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAE,IAA2B,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAA;YAE7H,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAE,CAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAG,CAAE,CAAC,CAAA;YAClD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAE,CAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAE,CAAE,CAAC,CAAA;YAElD,OAAO,KAAK,CAAC,MAAM,EAAG,CAAC;gBAEtB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAG,CAAA;gBACzB,MAAM,CAAC,GAAG,CAAE,KAAK,CAAC,IAAI,CAAG,CAAC,IAAI,GAAG,GAAG,CAAE,IAAI,CAAE,CAAA;gBAE5C,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAA;gBACzD,MAAM,CAAC,GAAG,CAAE,GAAG,CAAE,IAAI,CAAE,EAAE,IAAI,CAAE,CAAA;gBAE/B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE,CAAA;gBAC7C,IAAI,CAAC,MAAM,IAAI,OAAO,CAAE,MAAM,CAAC,IAAK,EAAE,IAAI,CAAE,GAAG,CAAC,EAAG,CAAC;oBACnD,OAAO,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,CAAE,CAAA;gBACrC,CAAC;gBAED,KAAK,CAAC,IAAI,GAAG,GAAG,CAAE,IAAI,CAAE,CAAA;gBAExB,KAAK,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC,EAAE,EAAE,MAAM,EAAG,CAAC;oBAE5D,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAA;oBAEzB,IAAI,IAAI,GAAG,OAAO,CAAC,GAAG,CAAE,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,IAAI,CAAE,CAAA;oBAChD,IAAI,CAAC,IAAI;wBAAG,SAAQ;oBAEpB,OAAO,IAAI,CAAC,IAAI,IAAI,CAAE,OAAO,CAAE,MAAM,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,CAAG,CAAC,IAAK,EAAE,GAAG,CAAE,GAAG,CAAC,CAAE;wBAAG,IAAI,GAAG,MAAM,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,CAAG,CAAA;oBAE5G,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAE,GAAG,CAAE,GAAG,CAAE,CAAE,CAAA;oBACxC,IAAI,OAAO,EAAG,CAAC;wBAEd,IAAI,CAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,CAAE,CAAC,CAAC,CAAC,IAAI,CAAE,KAAK,OAAO,CAAC,IAAI,EAAG,CAAC;4BAC/D,OAAO,CAAC,IAAI,GAAG,GAAG,CAAA;4BAClB,IAAI,MAAM,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC;gCAAG,KAAK,CAAC,GAAG,EAAE,CAAA;4BAC7C,SAAQ;wBACT,CAAC;wBAED,MAAM,CAAC,GAAG,CAAE,OAAO,CAAC,IAAI,CAAG,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;wBAC/C,MAAM,CAAC,GAAG,CAAE,OAAO,CAAC,IAAI,CAAG,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;oBAEhD,CAAC;oBAED,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,CAAG,CAAA;oBACzC,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAE,GAAG,CAAE,CAAA;oBAE1B,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,CAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;oBACtF,MAAM,CAAC,GAAG,CAAE,GAAG,CAAE,GAAG,CAAE,EAAE,IAAI,CAAE,CAAA;oBAE9B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAE,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE,CAAA;oBAC7C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAE,OAAO,CAAC,IAAK,EAAE,GAAG,CAAE,GAAG,CAAC,EAAG,CAAC;wBACpD,OAAO,CAAC,GAAG,CAAE,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,CAAE,CAAA;oBACpC,CAAC;oBAED,IAAI,CAAC,IAAI,GAAG,GAAG,CAAE,GAAG,CAAE,CAAA;oBAEtB,IAAI,MAAM,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC;wBAAG,KAAK,CAAC,GAAG,EAAE,CAAA;oBAC7C,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;gBAEtB,CAAC;YAEF,CAAC;YAED,MAAM,GAAG,GAAG,EAA6B,CAAA;YAEzC,OAAO,KAAK,CAAC,IAAI,KAAK,IAAI,EAAG,CAAC;gBAC7B,KAAK,GAAG,MAAM,CAAC,GAAG,CAAE,KAAK,CAAC,IAAI,CAAG,CAAA;gBACjC,GAAG,CAAC,IAAI,CAAE,KAAK,CAAC,IAAK,CAAE,CAAA;YACxB,CAAC;YAED,OAAO,GAAG,CAAA;QACX,CAAC;QAID,IAAI;YACH,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,SAAS,EAAE,CAAE,CAAA;QACnC,CAAC;QAED;;;WAGG;QAEH,IAAI,CACH,SAAuC,EACvC,IAAmC;YAGnC,IAAI,CAAC,IAAI,EAAE,CAAA;YAEX,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAI,EAAE,CAAA;YACzC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAA;YAEpC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;YAEjB,IAAI,CAAC,IAAI,CAAE,SAAS,CAAC,IAAI,EAAE,CAAE,CAAA;YAC7B,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;YACjB,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,SAAS,CAAE,CAAA;YAEvC,IAAI,SAAS;gBAAG,IAAI,CAAC,IAAI,CAAE,SAAS,CAAC,IAAI,EAAE,CAAE,CAAA;YAE7C,IAAI,IAAI,IAAI,qBAAqB,EAAG,CAAC;gBAEpC,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;gBACjC,IAAI,WAAW,EAAG,CAAC;oBAElB,IAAI,CAAC,SAAS;wBAAG,OAAO,SAAS,CAAE,IAAI,KAAK,CAAE,4CAA4C,CAAE,CAAE,CAAA;oBAE9F,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,aAAa,CAAE,SAAS,CAAE,CAAA;oBAC5D,IAAI,aAAa,EAAG,CAAC;wBACpB,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAE,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAE,CAAA;wBACtF,MAAM,IAAI,GAAG,cAAc,CAAE,aAAa,CAAE,CAAC,KAAK,CAAE,WAAW,EAAE,IAAI,CAAE,CAAA;wBACvE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;oBACxB,CAAC;gBAEF,CAAC;YAEF,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;oBAAG,SAAS,CAAE,IAAI,KAAK,CAAE,mCAAmC,CAAE,CAAE,CAAA;YACtF,CAAC;YAED,8BAA8B,CAAE,IAAI,CAAE,CAAA;YAEtC,IAAI,CAAC,UAAU,CAAE,CAAE,SAAS,EAAE,GAAI,UAAU,CAAE,SAAS,CAAE,EAAE,IAAI,CAAE,CAAE,CAAA;YAEnE,IAAI,CAAC,SAAS,EAAE,CAAA;YAEhB,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,2BAA2B;QAE3B,IAAI,CACH,IAAsB,EACtB,IAAsB,EACtB,IAA6B,EAC7B,IAA2B,EAC3B,MAA8C,MAAM;YAGpD,IAAI,CAAC,IAAI,EAAE,CAAA;YAEX,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAA;YACpC,MAAM,SAAS,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA;YAE1D,IAAI,IAAI,GAAG,qBAAqB,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,GAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAE,IAAI,CAAE,CAAC,CAAE,CAAA;YAErF,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAE,CAAE,IAAI,CAAC,UAAU,GAAG,CAAC,CAAE,GAAG,EAAE,CAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAA;YAC3F,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAE,MAAM,EAAE,GAAG,CAAE,CAAA;YAEtD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;YACjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;YAEjB,8BAA8B,CAAE,IAAI,CAAE,CAAA;YAEtC,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,SAAS,CAAE,CAAA;YACvC,IAAI,CAAC,IAAI,CAAE,SAAS,CAAC,IAAI,EAAE,CAAE,CAAA;YAC7B,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;YACjB,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;YACjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;YAEjB,IAAI,CAAC,IAAI,CAAE,IAAI,IAAI,IAAI,CAAC,SAAS,CAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,CAAE,CAAE,CAAE,CAAA;YAE1G,IAAI,CAAC,UAAU,CAAE,CAAE,SAAS,EAAE,IAAI,CAAE,CAAE,CAAA;YAEtC,IAAI,CAAC,SAAS,EAAE,CAAA;YAChB,OAAO,IAAI,CAAA;QACZ,CAAC;QAGD,SAAS,CACR,IAA2B,EAC3B,IAAsB,EACtB,IAAY,EACZ,OAAO,gBAAgB,CAAC,IAA+B;YAGvD,IAAI,IAAI,CAAC,IAAI,EAAE;gBAAI,SAAS,CAAE,IAAI,UAAU,CAAE,uBAAuB,CAAE,CAAE,CAAA;YAEzE,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAE,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;YAC9E,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM;gBAAG,SAAS,CAAE,IAAI,UAAU,CAAE,SAAS,IAAI,0BAA0B,KAAK,CAAC,MAAM,GAAG,CAAE,CAAE,CAAA;YAE/G,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAE,IAAI,GAAG,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAA;YACpE,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAE,IAAI,CAAE,CAAA;YAErC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,EAAG,CAAC;gBAE3B,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAE,IAAI,CAAE,CAAA;gBAEvC,IAAI,IAAI,KAAK,SAAS;oBAAG,OAAM;gBAC/B,IAAI,IAAI,KAAK,SAAS,GAAG,CAAC;oBAAG,OAAM;gBAEnC,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAE,SAAS,GAAG,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAA;gBAC9E,MAAM,IAAI,GAAG,KAAK,CAAE,SAAS,GAAG,CAAC,CAAE,CAAA;gBAEnC,IAAI,IAAI;oBAAG,IAAI,CAAC,IAAI,CACnB,IAAI,EACJ,IAAI,EACJ,IAAI,CAAC,IAAI,EAAE,EACX,IAAI,CAAC,WAAW,CAAE,IAAI,CAAE,EACxB,IAAI,CAAC,GAAG,EAAE,CACV,CAAA;YAEF,CAAC;iBAAM,CAAC;gBAEP,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAA;YAEvB,CAAC;YAED,OAAO,IAAI,CAAC,IAAI,CACf,IAAI,EACJ,IAAI,EACJ,IAAI,CAAC,IAAI,EAAE,EACX,IAAI,EACJ,IAAI,CAAC,GAAG,EAAE,CACV,CAAA;QAEF,CAAC;QAGD,SAAS,CACR,IAA2B,EAC3B,OAAO,gBAAgB,CAAC,IAA+B;YAGvD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YACxB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAE,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;YAC9E,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAE,IAAI,CAAE,CAAA;YAClC,IAAI,IAAI,GAAG,CAAC;gBAAG,OAAO,IAAI,CAAA;YAE1B,OAAO,IAAI,CAAC,IAAI,CACf,IAAI,CAAC,CAAC,CAAC,KAAK,CAAE,IAAI,GAAG,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,EACvD,IAAI,EACJ,IAAI,CAAC,IAAI,EAAE,EACX,IAAI,EACJ,MAAM,CACN,CAAA;QAEF,CAAC;QAED,SAAS;YACR,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAA;YACtB,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE,CAAA;QACjE,CAAC;QAGD,IAAI;YACH,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,WAAW,EAAE,CAAA;YAClB,IAAI,CAAC,GAAG,EAAE,CAAA;YACV,IAAI,CAAC,SAAS,EAAE,CAAA;YAChB,IAAI,CAAC,SAAS,EAAE,CAAA;YAChB,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,UAAU;YACT,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAE,GAAE,EAAE;gBAC3B,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,WAAW,CAAE,IAAI,CAAE,CAAA;YACnD,CAAC,CAAE,CAAA;QACJ,CAAC;QAGD,IAAI;YACH,eAAe,EAAE,CAAA;YACjB,OAAO,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;QACnD,CAAC;QAGD,SAAS;YACR,OAAO,IAAI,cAAc,CAAE,EAAE,EAAE,GAAE,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,CAAE,CAAC,KAAK,EAAE,CAAA;QAClE,CAAC;QAGD,SAAS;YACR,MAAM,IAAI,GAAG,IAAI,cAAc,CAAE,WAAW,EAAE,GAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,SAAS,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAE,CAAA;YAC5G,UAAU,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAE,CAAA;YAC/B,OAAO,IAAI,CAAA;QACZ,CAAC;QAGD,GAAG;YACF,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CACzB,oBAAqB,IAAI,CAAC,IAAI,EAAG,EAAE,EACnC,eAAe,CAAE,GAAG,CAAC,EAAE;gBAEtB,MAAM,IAAI,GAAG,IAAI,gBAAgB,CAAE,GAAG,CAAE,CAAA;gBACxC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAE,IAAI,CAAC,KAAK,EAAE,CAAE,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAG,CAAA;gBAE5D,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAG,CAAC;oBAChC,8BAA8B,CAAE,IAAI,CAAE,CAAA;oBACtC,IAAI,CAAC,IAAI,EAAE,CAAC,eAAe,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;gBACxC,CAAC;gBAED,IAAI,CAAC,UAAU,CAAE,IAAI,CAAC,KAAK,CAAE,CAAA;YAE9B,CAAC,CAAE,CACH,CAAA;QACF,CAAC;QAGD,OAAO;YACN,eAAe,EAAE,CAAA;YAEjB,IAAI,KAAK,GAAG,cAAc,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAC,UAAU,EAAE,CAAA;YACtD,IAAI,KAAK,CAAC,MAAM;gBAAG,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAA;YAEzC,IAAI,IAAI,CAAC,CAAC,CAAC,eAAe,EAAE;gBAAG,cAAc,CAAE,IAAI,CAAC,CAAC,CAAE,CAAC,cAAc,CAAC;oBACtE,KAAK,EAAE,IAAI;oBACX,OAAO,EAAE,WAAW;oBACpB,KAAK,EAAE,KAAK;iBACZ,CAAC,CAAA;YAEF,cAAc,CAAE,IAAI,CAAE,CAAC,UAAU,CAAE,KAAK,EAAE,WAAW,CAAE,CAAA;QAExD,CAAC;QAGD,eAAe;YAEd,MAAM,KAAK,GAAG,EAA6B,CAAA;YAE3C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAG,CAAC;gBACzC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,EAAG,CAAC;oBACpC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE,EAAG,CAAC;wBAEpC,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;4BAAG,SAAQ;wBACvC,IAAI,IAAI,CAAC,KAAK;4BAAG,SAAQ;wBAEzB,KAAK,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;oBAEnB,CAAC;gBACF,CAAC;YACF,CAAC;YAED,OAAO,KAAK,CAAA;QACb,CAAC;QAGD,aAAa;YACZ,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,KAAK,CAAE,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,YAAY,CAAE,CAAA;QACvD,CAAC;QAGD,cAAc;YAEb,MAAM,OAAO,GAAG,EAA6B,CAAA;YAE7C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAG,CAAC;gBACzC,IAAI,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE;oBAAG,SAAQ;gBACrC,OAAO,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;YACrB,CAAC;YAED,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAG,CAAC;gBACzC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,EAAG,CAAC;oBACpC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE,EAAG,CAAC;wBACpC,IAAI,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE;4BAAG,SAAQ;wBACrC,OAAO,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;oBACrB,CAAC;gBACF,CAAC;YACF,CAAC;YAED,OAAO,OAAO,CAAA;QACf,CAAC;QAGD,aAAa;YACZ,IAAI,CAAC,aAAa,EAAE,CAAA;YACpB,KAAK,CAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAE,CAAA;QACpD,CAAC;QAGD,aAAa;YAEZ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YACxB,MAAM,UAAU,GAAG,IAAI,GAAG,EAAsB,CAAA;YAEhD,MAAM,UAAU,GAAG,CAAE,IAAsB,EAAE,EAAE;gBAE9C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAA;gBACnC,IAAI,CAAC,IAAI;oBAAG,OAAM;gBAElB,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAE,IAAI,CAAE;oBAAG,OAAM;gBAE7C,UAAU,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;YAEvB,CAAC,CAAA;YAED,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAG,CAAC;gBAEzC,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAE,IAAI,CAAE;oBAAG,SAAQ;gBAC/C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE;oBAAG,SAAQ;gBAEtC,UAAU,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;gBACtB,UAAU,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;gBACzB,UAAU,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;YAE1B,CAAC;YAED,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAG,CAAC;gBACzC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,EAAG,CAAC;oBACpC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE,EAAG,CAAC;wBAEpC,IAAI,cAAc,CAAE,IAAI,CAAC,eAAe,CAAE,CAAC,GAAG,CAAE,IAAI,CAAE;4BAAG,SAAQ;wBACjE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE;4BAAG,SAAQ;wBAEtC,UAAU,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;wBACtB,UAAU,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;oBAE1B,CAAC;gBACF,CAAC;YACF,CAAC;YAED,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAG,CAAC;gBAE9C,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI;oBAAG,SAAQ;gBACrC,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAE,IAAI,CAAE;oBAAG,SAAQ;gBAE/C,UAAU,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;YAEvB,CAAC;YAED,OAAO,CAAE,GAAI,UAAU,CAAE,CAAA;QAC1B,CAAC;QAGD,YAAY;YACX,IAAI,CAAC,aAAa,EAAE,CAAA;YACpB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBAAG,OAAM;YAC9B,KAAK,CAAE,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,CAAE,CAAA;QACnD,CAAC;QAED,KAAK,CAAC,UAAU,CAAE,KAAkC;YAEnD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YAExB,MAAM,OAAO,GAAG,CAAE,GAAI,IAAI,CAAC,aAAa,CAAE,CAAA;YAC1C,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAA;YAE1B,MAAM,eAAe,CAAE,IAAI,CAAE,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAA;YAEtE,MAAM,IAAI,GAAG,IAAI,qBAAqB,CAAE,KAAK,CAAE,CAAA;YAC/C,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,CAAE,CAAC,CAAC,CAAA;YAC/D,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAE,IAAI,CAAC,MAAM,CAAE,CAAA;YAE9B,IAAI,IAAI,CAAC,CAAC,CAAC,eAAe,EAAE;gBAAG,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;oBACpD,KAAK,EAAE,IAAI;oBACX,OAAO,EAAE,WAAW;oBACpB,GAAG,EAAE,KAAK;oBACV,GAAG,EAAE,OAAO;iBACZ,CAAC,CAAA;QAEH,CAAC;QAGD,SAAS,CAAE,IAAc;YAExB,eAAe,EAAE,CAAA;YAEjB,IAAI,IAAI,KAAK,SAAS;gBAAG,OAAO,IAAI,CAAA;YAEpC,MAAM,KAAK,GAAG,cAAc,CAAE,IAAI,CAAC,CAAC,CAAC,YAAY,CAAE,CAAC,KAAK,EAAE,CAAA;YAC3D,IAAI,KAAK,IAAI,CAAC;gBAAG,OAAO,IAAI,CAAA;YAC5B,IAAI,KAAK,GAAG,CAAC;gBAAG,OAAO,KAAK,CAAA;YAE5B,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,CAAA;YAEtB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAA;YACtD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAA;YAExC,OAAO,CAAE,IAAI,KAAK,IAAI,CAAE,KAAG,CAAE,IAAI,KAAK,IAAI,CAAE,CAAA;QAE7C,CAAC;QAED,KAAK,CAAC,UAAU,CAAE,KAAuC;YAExD,MAAM,OAAO,CAAC,OAAO,EAAE,CAAA,CAAC,eAAe;YAEvC,MAAM,KAAK,GAAG,IAAI,GAAG,EAA0C,CAAA;YAC/D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAG,CAAC;gBAE3B,IAAI,CAAC,IAAI,CAAC,KAAK;oBAAG,SAAQ;gBAC1B,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,KAAM,CAAE,CAAA;gBACjC,IAAI,EAAE;oBAAG,EAAE,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;;oBAC1B,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,KAAM,EAAE,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAE,CAAA;YAE/C,CAAC;YAED,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAA;YACxC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAG,CAAC;gBAE9C,IAAI,IAAI,CAAC,UAAU,EAAE;oBAAG,SAAQ;gBAChC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,KAAK,EAAE;oBAAG,SAAQ;gBAErC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAA;gBACnB,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;gBAC1B,IAAI,CAAC,EAAE;oBAAG,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,CAAE,CAAA;gBAE1C,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;gBAChC,EAAE,CAAC,IAAI,CAAE,GAAI,MAAM,CAAE,CAAA;gBAErB,wBAAwB;YACzB,CAAC;YAED,MAAM,OAAO,GAAG,CAAE,GAAI,KAAK,CAAC,OAAO,EAAE,CAAE,CAAC,OAAO,CAAE,CAAC,CAAE,IAAI,EAAE,MAAM,CAAE,EAAC,EAAE;gBAEpE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;gBACxB,MAAM,IAAI,GAAG,wBAAwB,CAAE,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAE,CAAA;gBACtE,MAAM,IAAI,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAA;gBAErC,OAAO,iBAAiB,CAAE,MAAM,EAAE,2BAA2B,CAAE,CAAC,GAAG,CAAE,KAAK,EAAE,MAAM,EAAE,EAAE;oBAErF,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAE,CAAA;oBAE9D,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAE,CAAA;oBAC/B,IAAI,CAAC,SAAS,CAAE,MAAM,CAAE,CAAA;oBACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;oBAEjB,GAAG,CAAC;wBAEH,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,SAAS,CAAE,CAAA;wBACvC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;wBAE3C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;wBAC7C,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;oBAElB,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,EAAE;oBAEjC,OAAO,IAAI,CAAA;gBACZ,CAAC,CAAE,CAAA;YAEJ,CAAC,CAAE,CAAA;YAEH,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAE,OAAO,CAAE,CAAA;YAC1C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAG,CAAC;gBAC3B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,EAAG,CAAC;oBACtC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAE,IAAI,CAAC,GAAG,CAAE,EAAG,CAAC;wBACtC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAE,IAAI,CAAC,GAAG,CAAE,CAAA;oBACjC,CAAC;gBACF,CAAC;gBACD,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI;oBAAG,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAA;YAClD,CAAC;YAED,OAAO,KAAK,CAAA;QACb,CAAC;QAED,YAAY,CAAE,KAAuC;YACpD,OAAO,OAAO,CAAC,GAAG,CAAE,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAE,IAAI,CAAE,CAAE,CAAE,CAAA;QACpE,CAAC;QAED,KAAK,CAAC,WAAW,CAAE,IAA2B;YAE7C,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAA;YAEpB,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAG,CAAC;gBAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAM,CAAC,MAAM,EAAG,CAAA;gBACpC,IAAI,MAAM,EAAG,CAAC;oBACb,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAE,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAE,CAAA;oBAC/E,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAE,GAAI,EAAE,IAAI,CAAE,CAAA;gBACzC,CAAC;YACF,CAAC;YAED,IAAI,CAAC,IAAI,CAAE,GAAI,CAAE,CAAA;YAEjB,IAAI,IAAI,CAAC,MAAM;gBAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,CAAE,CAAA;YAE9D,OAAO,IAAI,CAAA;QACZ,CAAC;QAGD,SAAS,CAAE,IAA2B;YACrC,IAAI,IAAI,CAAC,KAAK;gBAAG,OAAM;YACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,cAAc,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAC,SAAS,CAAE,IAAI,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;QACxF,CAAC;QAGD,WAAW,CAAE,IAA2B;YAEvC,IAAI,CAAC;gBACJ,yCAAyC;gBACzC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAM,CAAA;gBACxB,OAAO,qBAAqB,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,GAAE,EAAE,CAAG,gBAAgB,CAAC,IAAI,CAAE,IAAI,CAAW,CAAC,CAAC,CAAC,CAAE,CAAA;YAC9F,CAAC;YAAC,OAAO,KAAK,EAAG,CAAC;gBAEjB,IAAI,KAAK,YAAY,OAAO;oBAAG,OAAO,gBAAgB,CAAE,KAAK,CAAE,CAAA;gBAC/D,IAAI,CAAC,CAAC,CAAC,aAAa,CAAE,KAAK,CAAE,CAAA;gBAC7B,OAAO,IAAI,CAAA;YAEZ,CAAC;QAEF,CAAC;QAED,iBAAiB;QACjB,2EAA2E;QAE3E,2EAA2E;QAC3E,wDAAwD;QACxD,0GAA0G;QAC1G,4BAA4B;QAC5B,MAAM;QACN,sBAAsB;QACtB,KAAK;QAEL,gCAAgC;QAEhC,sCAAsC;QAEtC,6GAA6G;QAC7G,gDAAgD;QAChD,UAAU;QACV,8EAA8E;QAC9E,4BAA4B;QAC5B,sCAAsC;QACtC,oDAAoD;QACpD,8EAA8E;QAC9E,OAAO;QACP,MAAM;QACN,YAAY;QACZ,4BAA4B;QAC5B,KAAK;QAEL,sBAAsB;QAEtB,IAAI;QAGJ,UAAU,CAAE,KAAuC;YAClD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;YAClC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAE,IAAI,CAAC,EAAE;gBACnC,IAAI,IAAI,CAAC,KAAK;oBAAG,OAAO,KAAK,CAAA;gBAC7B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAG,CAAC;oBAClB,IAAI,IAAI,CAAC,GAAG,EAAE;wBAAG,OAAO,IAAI,CAAA;oBAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;gBACzB,CAAC;gBACD,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;oBAAG,OAAO,IAAI,CAAA;gBAC3C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;YACxB,CAAC,CAAE,CAAA;YACH,IAAI,CAAC,MAAM,CAAC,MAAM;gBAAG,OAAM;YAC3B,OAAO,OAAO,CAAC,GAAG,CAAE,MAAM,CAAC,GAAG,CAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAE,CAAE,CAAA;QACnE,CAAC;QAED,KAAK,CAAC,SAAS,CAAE,IAA2B;YAE3C,IAAI,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,CAAE,KAAK,IAAI,EAAG,CAAC;gBACtE,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,EAAG,CAAC;oBAClD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAE,uBAAuB,CAAC,IAAI,CAAE,EAAG,CAAG,CAAE,CAAC,SAAS,CAAE,IAAI,CAAE,CAAA;oBACzG,IAAI,IAAI;wBAAG,OAAO,IAAI,CAAA;gBACvB,CAAC;gBACD,OAAO,SAAU,CAAA;YAClB,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;YAE5B,IAAI,IAAI,CAAC,KAAK;gBAAG,OAAO,IAAI,CAAC,KAAK,CAAA;YAElC,IAAI,CAAC,IAAI,CAAC,KAAK;gBAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,eAAe,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAC,SAAS,CAAE,IAAI,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;YAChH,IAAI,MAAM,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAG,CAAC;gBAC3C,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAE,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAE,CAAA;gBAC/E,IAAI,CAAC;oBACJ,IAAI,CAAC,KAAK,GAAG,MAAM,MAAM,CAAC,OAAO,CAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAE,CAAA;gBACtD,CAAC;gBAAC,OAAO,KAAU,EAAG,CAAC;oBACtB,IAAI,eAAe,CAAE,KAAK,CAAE,EAAG,CAAC;wBAC/B,IAAI,KAAK,CAAC,OAAO;4BAAG,gBAAgB,CAAE,KAAK,CAAE,CAAA;;4BACxC,gBAAgB,CAAE,IAAI,KAAK,CAAE,eAAe,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAE,CAAE,CAAA;oBACxE,CAAC;gBACF,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;YACxB,CAAC;YAED,OAAO,IAAI,CAAC,KAAM,CAAA;QAEnB,CAAC;QAGD,WAAW;YACV,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAA;QACxB,CAAC;QAGD,SAAS,CAAE,IAAc;YAExB,eAAe,EAAE,CAAA;YAEjB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE,CAAA;YAC9C,MAAM,IAAI,GAAG,IAAI,EAAE,WAAW,EAAE,IAAI,KAAK,CAAA;YAEzC,IAAI,IAAI,KAAK,SAAS;gBAAG,OAAO,IAAI,CAAA;YAEpC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAG,CAAC;gBACtB,IAAI,IAAI,KAAK,IAAI;oBAAG,OAAO,IAAI,CAAA;gBAC/B,SAAS,CAAE,IAAI,KAAK,CAAE,gCAAgC,CAAE,CAAE,CAAA;YAC3D,CAAC;YAED,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YAExB,MAAM,IAAI,GAAG,cAAc,CAAE,qBAAqB,CAAE,CAAC,IAAI,EAAE,CAAA;YAC3D,8BAA8B,CAAE,IAAI,CAAE,CAAA;YAEtC,IAAI,CAAC,IAAI,CAAE,qBAAqB,CAAE,CAAA;YAClC,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,SAAS,CAAE,CAAA;YACvC,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAE,CAAA;YAC/B,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAE,CAAA;YAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;YAEjB,IAAI,IAAI,EAAG,CAAC;gBACX,MAAM,MAAM,GAAG,cAAc,CAAE,kBAAkB,CAAE,CAAC,IAAI,EAAE,CAAA;gBAC1D,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;gBACvD,MAAM,aAAa,GAAG,cAAc,CAAE,aAAa,CAAE,CAAC,KAAK,CAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;gBAClF,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE,aAAa,CAAE,CAAA;YACjC,CAAC;YAED,IAAI,CAAC,UAAU,CAAE,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAE,CAAE,CAAA;YAExC,OAAO,IAAI,CAAA;QACZ,CAAC;QAGD,MAAM;YAEL,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBAAG,OAAO,IAAI,CAAA;YAEnC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YACxB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE,CAAA;YACrD,IAAI,CAAC,IAAI;gBAAG,OAAO,SAAS,CAAE,IAAI,KAAK,CAAE,eAAe,CAAE,CAAE,CAAA;YAE5D,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBAAG,OAAO,SAAS,CAAE,IAAI,KAAK,CAAE,mBAAmB,CAAE,CAAE,CAAA;YAE9E,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAE,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,IAAI,EAAE,CAAG,CAAE,CAAA;YAC1E,IAAI,CAAC,aAAa;gBAAG,OAAO,SAAS,CAAE,IAAI,KAAK,CAAE,sBAAsB,CAAE,CAAE,CAAA;YAE5E,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAE,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAE,CAAA;YAEtF,OAAO,IAAI,kBAAkB,CAAE,cAAc,CAAE,aAAa,CAAE,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAE,CAAC,MAAM,CAAE,CAAA;QAElG,CAAC;QAED,IAAI;YAEH,IAAI,CAAC,YAAY,EAAE,CAAA;YAEnB,MAAM,KAAK,GAAG,EAA6B,CAAA;YAE3C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;gBAAG,KAAK,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;YAE3D,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAG,CAAC;gBAC1C,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,EAAG,CAAC;oBACrC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE,EAAG,CAAC;wBACpC,KAAK,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;oBACnB,CAAC;gBACF,CAAC;YACF,CAAC;YAED,OAAO;gBACN,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;gBACjB,KAAK;aACL,CAAA;QAEF,CAAC;QAED,CAAC;QAAA,CAAE,MAAM,CAAC,GAAG,CAAE,4BAA4B,CAAE,CAAE;YAC9C,OAAO,eAAe,CAAC,IAAI,CAAE,kBAAkB,CAAE;kBAC9C,eAAe,CAAC,OAAO,CAAE,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;QACjD,CAAC;QAED,CAAC;QAAA,CAAE,oBAAoB,CAAE;YACxB,OAAO,oBAAoB,CAAE,EAAE,EAC7B,sBAAsB,CAAE,IAAI,CAAE,EAC/B,GAAG,EACH,oBAAoB,CAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAE,CACtC,CAAA;QACF,CAAC;KAEF;IAr0CA;QADE,YAAY;qDAGb;IAmCD;QADE,WAAW;qDAuBZ;IAID;QADE,WAAW;qDA2BZ;IAGD;QADE,QAAQ;uDAGT;IAGD;QADE,QAAQ;mDAmCT;IAID;QADE,YAAY;gDAGb;IAID;QADE,QAAQ;gDAGT;IAID;QADE,YAAY;gDAQb;IAID;QADE,QAAQ;iDAYT;IAGD;QADE,QAAQ;qDAGT;IAID;QADE,YAAY;qDAWb;IAkJD;QADE,WAAW;qDAMZ;IAID;QADE,WAAW;sDA0HZ;IAGD;QADE,WAAW;uDAGZ;IA8CD;QADE,WAAW;gDAKZ;IAGD;QADE,YAAY;wDA6Hb;IAID;QAFE,QAAQ;QACR,WAAW;gDAGZ;IAOD;QADE,WAAW;gDA8CZ;IAID;QADE,WAAW;gDAoCZ;IAGD;QADE,WAAW;qDAgDZ;IAGD;QADE,WAAW;qDAmBZ;IAQD;QADE,QAAQ;gDAQT;IASD;QADE,QAAQ;gDAIT;IAGD;QADE,QAAQ;qDAGT;IAGD;QADE,QAAQ;qDAKT;IAGD;QADE,QAAQ;+CAkBT;IAGD;QADE,QAAQ;mDAeT;IAGD;QADE,QAAQ;2DAmBT;IAGD;QADE,QAAQ;yDAIT;IAGD;QADE,QAAQ;0DAoBT;IAGD;QADE,QAAQ;yDAIT;IAGD;QADE,QAAQ;yDAoDT;IAGD;QADE,QAAQ;wDAKT;IAyBD;QADE,QAAQ;qDAkBT;IAkGD;QADE,YAAY;qDAIb;IAGD;QADE,YAAY;uDAeb;IAoCD;QADE,WAAW;sDAcZ;IAoCD;QADE,QAAQ;uDAGT;IAGD;QADE,QAAQ;qDAoCT;IAGD;QADE,QAAQ;kDAkBT;IA39CW,kBAAgB,mBAigD5B,CAAA;AAEF,CAAC,EAliDS,CAAC,KAAD,CAAC,QAkiDV;;;;ACliDD,IAAU,CAAC,CAuRV;AAvRD,WAAU,GAAC;IAEV,eAAe,CAAC,IAAI,CAAE,CAAC,CAAA,EAAE;QACxB,MAAM,qBAAsB,SAAQ,CAAC,CAAC,gBAAgB;YAErD,IAAI;gBACH,OAAO,IAAI,CAAA;YACZ,CAAC;SAED;QACD,CAAC,CAAC,gBAAgB,GAAG,qBAAqB,CAAA;IAC3C,CAAC,CAAE,CAAA;IAEH,SAAS,CAAC;QAET,KAAK,CAAC,aAAa,CAAE,CAAC;YAErB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAA;YAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAA;YAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAA;YAE7C,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,GAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAA;YAC5D,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,GAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,GAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAA;YAErF,iBAAiB,CAAE,KAAK,CAAC,SAAS,CAAE,KAAK,CAAC,IAAI,EAAE,CAAE,EAAE,qBAAqB,CAAE,CAAA;YAC3E,iBAAiB,CAAE,KAAK,CAAC,SAAS,CAAE,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAE,EAAE,qBAAqB,CAAE,CAAA;YAElF,KAAK,CAAC,IAAI,CAAE,KAAK,CAAC,IAAI,EAAE,EAAE,qBAAqB,CAAE,MAAM,CAAE,CAAE,CAAA;YAC3D,iBAAiB,CAAE,KAAK,CAAC,SAAS,CAAE,KAAK,CAAC,IAAI,EAAE,CAAE,EAAE,qBAAqB,CAAE,CAAA;YAE3E,KAAK,CAAC,IAAI,CAAE,KAAK,CAAC,IAAI,EAAE,EAAE,qBAAqB,CAAE,CAAA;YACjD,iBAAiB,CAAE,KAAK,CAAC,SAAS,CAAE,KAAK,CAAC,IAAI,EAAE,CAAE,EAAE,qBAAqB,CAAE,CAAA;YAE3E,KAAK,CAAC,IAAI,CAAE,KAAK,CAAC,IAAI,EAAE,EAAE,qBAAqB,CAAE,CAAA;YACjD,iBAAiB,CAAE,KAAK,CAAC,SAAS,CAAE,KAAK,CAAC,IAAI,EAAE,CAAE,EAAE,qBAAqB,CAAE,CAAA;YAE3E,KAAK,CAAC,IAAI,CAAE,KAAK,CAAC,IAAI,EAAE,EAAE,qBAAqB,CAAE,MAAM,CAAE,CAAE,CAAA;YAC3D,iBAAiB,CAAE,KAAK,CAAC,SAAS,CAAE,KAAK,CAAC,IAAI,EAAE,CAAE,EAAE,qBAAqB,CAAE,MAAM,CAAE,CAAE,CAAA;YAErF,KAAK,CAAC,IAAI,CAAE,KAAK,CAAC,IAAI,EAAE,EAAE,qBAAqB,CAAE,MAAM,CAAE,CAAE,CAAA;YAC3D,iBAAiB,CAAE,KAAK,CAAC,SAAS,CAAE,KAAK,CAAC,IAAI,EAAE,CAAE,EAAE,qBAAqB,CAAE,MAAM,CAAE,CAAE,CAAA;YAErF,KAAK,CAAC,IAAI,CAAE,KAAK,CAAC,IAAI,EAAE,EAAE,qBAAqB,CAAE,CAAA;YACjD,iBAAiB,CAAE,KAAK,CAAC,SAAS,CAAE,KAAK,CAAC,IAAI,EAAE,CAAE,EAAE,qBAAqB,CAAE,CAAA;YAE3E,KAAK,CAAC,IAAI,CAAE,KAAK,CAAC,IAAI,EAAE,EAAE,qBAAqB,CAAE,MAAM,CAAE,CAAE,CAAA;YAC3D,iBAAiB,CAAE,KAAK,CAAC,SAAS,CAAE,KAAK,CAAC,IAAI,EAAE,CAAE,EAAE,qBAAqB,CAAE,MAAM,CAAE,CAAE,CAAA;YAErF,MAAM,eAAe,CAAE,KAAK,CAAE,CAAC,WAAW,CAAE,KAAK,CAAE,CAAA;YACnD,iBAAiB,CAAE,KAAK,CAAC,SAAS,CAAE,KAAK,CAAC,IAAI,EAAE,CAAE,EAAE,qBAAqB,CAAE,MAAM,CAAE,CAAE,CAAA;YACrF,KAAK,CAAC,IAAI,CAAE,KAAK,CAAC,IAAI,EAAE,EAAE,qBAAqB,CAAE,MAAM,CAAE,CAAE,CAAA;QAE5D,CAAC;QAED,KAAK,CAAC,0BAA0B,CAAE,CAAC;YAElC,MAAM,KAAK,GAAG,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAA;YACvC,MAAM,KAAK,GAAG,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAA;YAEvC,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,GAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAA;YAC5D,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,GAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,GAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAA;YAErF,iBAAiB,CAAE,MAAM,eAAe,CAAE,KAAK,CAAE,CAAC,UAAU,EAAE,EAAE,EAAE,CAAE,CAAA;YAEpE,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,CAAC,IAAI,EAAE,IAAI,gBAAgB,CAAE,UAAU,CAAE,EAAE,IAAI,UAAU,CAAC,CAAE,CAAC,CAAE,CAAC,CAAE,CAAA;YACrH,iBAAiB,CAAE,CAAE,MAAM,eAAe,CAAE,KAAK,CAAE,CAAC,UAAU,EAAE,CAAE,CAAC,MAAM,EAAE,CAAC,CAAE,CAAA;YAE9E,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;YAEhC,KAAK,CAAC,IAAI,CAAE,IAAI,gBAAgB,CAAE,UAAU,CAAE,EAAE,gBAAgB,CAAC,IAAI,EAAE,IAAI,gBAAgB,CAAE,UAAU,CAAE,EAAE,IAAI,UAAU,CAAC,CAAE,CAAC,CAAE,CAAC,CAAE,CAAA;YAClI,iBAAiB,CAAE,CAAE,MAAM,eAAe,CAAE,KAAK,CAAE,CAAC,UAAU,EAAE,CAAE,CAAC,MAAM,EAAE,CAAC,CAAE,CAAA;YAC9E,iBAAiB,CAAE,CAAE,MAAM,eAAe,CAAE,KAAK,CAAE,CAAC,UAAU,CAAE,IAAI,CAAE,CAAE,CAAC,MAAM,EAAE,CAAC,CAAE,CAAA;YAEpF,MAAM,eAAe,CAAE,KAAK,CAAE,CAAC,WAAW,CAAE,KAAK,CAAE,CAAA;YAEnD,KAAK,CAAC,IAAI,CAAE,IAAI,gBAAgB,CAAE,UAAU,CAAE,EAAE,gBAAgB,CAAC,IAAI,EAAE,IAAI,gBAAgB,CAAE,UAAU,CAAE,EAAE,IAAI,UAAU,CAAC,CAAE,CAAC,CAAE,CAAC,CAAE,CAAA;YAClI,iBAAiB,CAAE,CAAE,MAAM,eAAe,CAAE,KAAK,CAAE,CAAC,UAAU,EAAE,CAAE,CAAC,MAAM,EAAE,CAAC,CAAE,CAAA;YAC9E,iBAAiB,CAAE,CAAE,MAAM,eAAe,CAAE,KAAK,CAAE,CAAC,UAAU,CAAE,IAAI,CAAE,CAAE,CAAC,MAAM,EAAE,CAAC,CAAE,CAAA;YAEpF,KAAK,CAAC,IAAI,CAAE,KAAK,CAAC,IAAI,EAAE,EAAE,qBAAqB,CAAE,MAAM,CAAE,CAAE,CAAA;YAC3D,MAAM,eAAe,CAAE,KAAK,CAAE,CAAC,WAAW,CAAE,KAAK,CAAE,CAAA;YACnD,KAAK,CAAC,IAAI,CAAE,IAAI,gBAAgB,CAAE,UAAU,CAAE,EAAE,gBAAgB,CAAC,IAAI,EAAE,IAAI,gBAAgB,CAAE,UAAU,CAAE,EAAE,IAAI,UAAU,CAAC,CAAE,CAAC,CAAE,CAAC,CAAE,CAAA;YAClI,iBAAiB,CAAE,CAAE,MAAM,eAAe,CAAE,KAAK,CAAE,CAAC,UAAU,EAAE,CAAE,CAAC,MAAM,EAAE,CAAC,CAAE,CAAA;YAC9E,iBAAiB,CAAE,CAAE,MAAM,eAAe,CAAE,KAAK,CAAE,CAAC,UAAU,CAAE,IAAI,CAAE,CAAE,CAAC,MAAM,EAAE,CAAC,CAAE,CAAA;YAEpF,KAAK,CAAC,IAAI,CAAE,KAAK,CAAC,IAAI,EAAE,EAAE,qBAAqB,CAAE,CAAA;YACjD,MAAM,eAAe,CAAE,KAAK,CAAE,CAAC,WAAW,CAAE,KAAK,CAAE,CAAA;YACnD,iBAAiB,CAAE,CAAE,MAAM,eAAe,CAAE,KAAK,CAAE,CAAC,UAAU,EAAE,CAAE,CAAC,MAAM,EAAE,CAAC,CAAE,CAAA;QAE/E,CAAC;QAED,KAAK,CAAC,iBAAiB,CAAE,CAAC;YAEzB,MAAM,IAAI,GAAG,eAAe,CAAE,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAA;YAC5D,iBAAiB,CAAE,MAAM,IAAI,CAAC,SAAS,EAAE,EAAE,KAAK,CAAE,CAAA;YAElD,MAAM,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAA;YAC5B,iBAAiB,CAAE,MAAM,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,CAAE,CAAA;YAEjD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAE,CAAA;YAEnH,iBAAiB,CAAE,CAAE,MAAM,IAAI,CAAC,WAAW,CAAE,QAAQ,CAAE,CAAE,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAE,CAAA;YAC7E,iBAAiB,CAAE,MAAM,IAAI,CAAC,WAAW,CAAE,QAAQ,CAAE,EAAE,IAAI,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAE,CAAA;YACpF,iBAAiB,CAAE,CAAE,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAE,CAAC,MAAM,EAAE,CAAC,CAAE,CAAA;YAExH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,CAAE,CAAA;YAExG,iBAAiB,CAAE,CAAE,MAAM,IAAI,CAAC,WAAW,CAAE,SAAS,CAAE,CAAE,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,CAAE,CAAA;YAC7E,iBAAiB,CAAE,MAAM,IAAI,CAAC,WAAW,CAAE,SAAS,CAAE,EAAE,IAAI,CAAE,CAAA;YAC9D,iBAAiB,CAAE,CAAE,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAE,CAAC,MAAM,EAAE,CAAC,CAAE,CAAA;QAEzH,CAAC;QAED,mBAAmB,EAAE,eAAe,CAAE,CAAE,CAAI,EAAE,EAAE;YAE/C,MAAM,IAAI,GAAG,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAA;YAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YAExB,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,CAAC,CAAE,KAAK,EAAE,KAAK,CAAE,CAAC,CAAA;YAC1D,iBAAiB,CAAE,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,EAAE,EAAE,CAAE,KAAK,EAAE,KAAK,CAAE,CAAE,CAAA;YACjF,iBAAiB,CAAE,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,EAAE,EAAE,CAAE,KAAK,EAAE,KAAK,CAAE,CAAE,CAAA;YAEjF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAE,IAAI,CAAC,KAAK,CAAE,CAAA;YAC7B,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,CAAC,CAAE,KAAK,EAAE,KAAK,CAAE,CAAC,CAAA;YAC1D,iBAAiB,CAAE,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,EAAE,EAAE,CAAE,KAAK,EAAE,KAAK,CAAE,CAAE,CAAA;YAEjF,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YACzB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAE,IAAI,CAAC,KAAK,CAAE,CAAA;YAC9B,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,CAAC,CAAE,KAAK,EAAE,KAAK,CAAE,CAAC,CAAA;YAC3D,iBAAiB,CAAE,KAAK,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,EAAE,EAAE,CAAE,KAAK,EAAE,KAAK,CAAE,CAAE,CAAA;YAElF,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YACxB,iBAAiB,CAAE,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,EAAE,EAAE,CAAE,KAAK,EAAE,KAAK,CAAE,CAAE,CAAA;YAEjF,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,CAAE,KAAK,CAAC,IAAI,EAAE,CAAE,CAAC,CAAA;YACxC,iBAAiB,CAAE,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,EAAE,EAAE,CAAE,KAAK,EAAE,KAAK,CAAE,CAAE,CAAA;YAEjF,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAC,CAAA;YACvC,iBAAiB,CAAE,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,EAAE,EAAE,CAAE,KAAK,EAAE,KAAK,CAAE,CAAE,CAAA;YAEjF,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,CAAE,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAC,CAAA;YACrD,iBAAiB,CAAE,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,EAAE,EAAE,CAAE,KAAK,EAAE,KAAK,CAAE,CAAE,CAAA;YAEjF,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAE,CAAC,CAAA;YACrD,iBAAiB,CAAE,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,UAAU,EAAE,EAAE,CAAE,KAAK,EAAE,KAAK,CAAE,CAAE,CAAA;QAElF,CAAC,CAAE;QAEH,yCAAyC,EAAE,eAAe,CAAE,CAAE,CAAI,EAAE,EAAE;YAErE,MAAM,KAAK,GAAG,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAA;YAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;YAE1B,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAE,qBAAqB,CAAE,CAAC,IAAI,CAAE,IAAI,gBAAgB,CAAE,UAAU,CAAE,CAAE,CAAA;YAChG,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAE,qBAAqB,CAAE,CAAC,IAAI,CAAE,IAAI,gBAAgB,CAAE,UAAU,CAAE,CAAE,CAAA;YAEhG,SAAS,CAAC,GAAG,CAAE,OAAO,CAAE,CAAA;YACxB,SAAS,CAAC,GAAG,CAAE,OAAO,CAAE,CAAA;YAExB,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAE,qBAAqB,CAAE,CAAC,IAAI,CAAE,IAAI,gBAAgB,CAAE,UAAU,CAAE,CAAE,CAAA;YACjG,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAE,qBAAqB,CAAE,CAAC,IAAI,CAAE,IAAI,gBAAgB,CAAE,UAAU,CAAE,CAAE,CAAA;YAEjG,UAAU,CAAC,GAAG,CAAE,SAAS,CAAC,IAAI,EAAE,CAAE,CAAA;YAClC,iBAAiB,CAAE,UAAU,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,IAAI,EAAE,CAAE,CAAA;YACvD,kBAAkB,CAAE,UAAU,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,GAAG,EAAE,CAAE,CAAA;YACxD,iBAAiB,CAAE,UAAU,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,IAAI,EAAE,CAAE,CAAA;QAExD,CAAC,CAAE;QAEH,KAAK,CAAC,2BAA2B,CAAE,CAAC;YAEnC,MAAM,IAAI,GAAG,MAAM,eAAe,CAAE,GAAE,EAAE;gBACvC,MAAM,IAAI,GAAG,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAE,IAAI,EAAE,qBAAqB,CAAE,MAAM,CAAE,CAAE,CAAC,CAAC,CAAA;gBACtF,IAAI,CAAC,YAAY,EAAE,CAAA;gBACnB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAA;YACvB,CAAC,CAAE,EAAE,CAAA;YAEN,iBAAiB,CAAE,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAE,EAAE,qBAAqB,CAAE,CAAA;YAChF,iBAAiB,CAAE,IAAI,CAAC,SAAS,CAAE,gBAAgB,CAAC,IAAI,CAAE,EAAE,qBAAqB,CAAE,MAAM,CAAE,CAAE,CAAA;QAE9F,CAAC;QAED,iCAAiC;QAEjC,8CAA8C;QAC9C,mEAAmE;QAEnE,+DAA+D;QAC/D,gEAAgE;QAChE,4CAA4C;QAE5C,mEAAmE;QACnE,kEAAkE;QAElE,mCAAmC;QACnC,qCAAqC;QAErC,6BAA6B;QAC7B,6BAA6B;QAE7B,sBAAsB;QACtB,6CAA6C;QAC7C,8CAA8C;QAC9C,0BAA0B;QAC1B,KAAK;QAEL,KAAK;QAEL,+BAA+B;QAE/B,+CAA+C;QAC/C,sDAAsD;QACtD,wDAAwD;QAExD,mFAAmF;QAEnF,KAAK;QAEL,0CAA0C;QAE1C,+CAA+C;QAC/C,sDAAsD;QACtD,2DAA2D;QAE3D,qFAAqF;QAErF,KAAK;QAEL,oCAAoC;QAEpC,+CAA+C;QAC/C,+DAA+D;QAC/D,6DAA6D;QAE7D,+GAA+G;QAE/G,KAAK;QAEL,gCAAgC;QAEhC,+CAA+C;QAC/C,0DAA0D;QAC1D,2DAA2D;QAE3D,mFAAmF;QAEnF,KAAK;QAEL,+BAA+B;QAE/B,+CAA+C;QAC/C,uDAAuD;QACvD,2DAA2D;QAE3D,6EAA6E;QAE7E,KAAK;QAEL,+BAA+B;QAE/B,+CAA+C;QAC/C,mDAAmD;QACnD,qDAAqD;QAErD,gFAAgF;QAEhF,KAAK;QAEL,mCAAmC;QAEnC,+CAA+C;QAC/C,uDAAuD;QACvD,wDAAwD;QAExD,wFAAwF;QAExF,KAAK;KAEL,CAAC,CAAA;AACH,CAAC,EAvRS,CAAC,KAAD,CAAC,QAuRV;;;;ACvRD,IAAU,CAAC,CAqEV;AArED,WAAU,CAAC;IACV,IAAY,cAkEX;IAlED,WAAY,cAAc;QAEzB,6DAAgB,CAAA;QAChB,mFAA2B,CAAA;QAC3B,iEAAkB,CAAA;QAElB,iDAAU,CAAA;QACV,2DAAe,CAAA;QACf,6DAAgB,CAAA;QAChB,uGAAqC,CAAA;QACrC,iEAAkB,CAAA;QAClB,uEAAqB,CAAA;QACrB,2EAAuB,CAAA;QACvB,qEAAoB,CAAA;QACpB,6EAAwB,CAAA;QACxB,2DAAe,CAAA;QAEf,6EAAwB,CAAA;QACxB,+EAAyB,CAAA;QACzB,uDAAa,CAAA;QACb,+DAAiB,CAAA;QACjB,qEAAoB,CAAA;QACpB,+DAAiB,CAAA;QACjB,iFAA0B,CAAA;QAE1B,mEAAmB,CAAA;QACnB,qEAAoB,CAAA;QACpB,6EAAwB,CAAA;QACxB,+DAAiB,CAAA;QACjB,+DAAiB,CAAA;QACjB,iFAA0B,CAAA;QAC1B,yEAAsB,CAAA;QACtB,uGAAqC,CAAA;QACrC,2EAAuB,CAAA;QACvB,6DAAgB,CAAA;QAChB,qDAAY,CAAA;QACZ,2EAAuB,CAAA;QACvB,mFAA2B,CAAA;QAC3B,6FAAgC,CAAA;QAChC,qFAA4B,CAAA;QAC5B,yFAA8B,CAAA;QAC9B,2GAAuC,CAAA;QACvC,iFAA0B,CAAA;QAC1B,yDAAc,CAAA;QACd,qFAA4B,CAAA;QAC5B,yDAAc,CAAA;QACd,+EAAyB,CAAA;QACzB,6EAAwB,CAAA;QACxB,uFAA6B,CAAA;QAC7B,+EAAyB,CAAA;QACzB,2GAAuC,CAAA;QACvC,uGAAqC,CAAA;QAErC,uFAA6B,CAAA;QAC7B,2EAAuB,CAAA;QACvB,mEAAmB,CAAA;QACnB,mFAA2B,CAAA;QAC3B,2EAAuB,CAAA;QACvB,iGAAkC,CAAA;QAClC,qFAA4B,CAAA;QAC5B,uEAAqB,CAAA;QACrB,qEAAoB,CAAA;QACpB,2GAAuC,CAAA;QACvC,iGAAkC,CAAA;QAClC,uGAAqC,CAAA;IAEtC,CAAC,EAlEW,cAAc,GAAd,gBAAc,KAAd,gBAAc,QAkEzB;AAEF,CAAC,EArES,CAAC,KAAD,CAAC,QAqEV;;;;ACrED,IAAU,CAAC,CAoEV;AApED,WAAU,CAAC;IAQV,MAAa,cAAe,SAAQ,WAAW;QAE9C,SAAS,CAAE,IAAoB,IAAI,CAAC;QACpC,SAAS,CAAE,IAAyB,IAAI,CAAC;QACzC,SAAS,CAAE,IAAY,IAAI,CAAC;QAE5B,MAAM,KAAK,OAAO,SAAS,CAAA,CAAC,CAAC;QAC7B,OAAO,KAAK,OAAO,SAAS,CAAA,CAAC,CAAC;QAG9B,SAAS,CAAE,IAAkE;YAC5E,IAAI,IAAI,KAAK,IAAI;gBAAG,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAA;YAC1C,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAG,OAAO,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAA;YAC5D,IAAI,IAAI,YAAY,UAAU;gBAAG,OAAO,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAA;YAC7D,IAAI,IAAI,YAAY,gBAAgB,CAAC,OAAO;gBAAG,OAAO,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAA;YAC3E,OAAO,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAA;QAC9B,CAAC;QAGD,QAAQ;YACP,IAAI,CAAC,SAAS,CAAE,GAAG,CAAE,CAAA;QACtB,CAAC;QAGD,QAAQ,CAAE,IAA+B;YACxC,IAAI,CAAC,SAAS,CAAE,GAAG,CAAE,CAAA;YACrB,IAAI,CAAC,SAAS,CAAE,0BAA0B,CAAE,CAAA;QAC7C,CAAC;QAGD,SAAS,CAAE,IAAY;YACtB,IAAI,CAAC,SAAS,CAAE,GAAG,CAAE,CAAA;YACrB,IAAI,CAAC,SAAS,CAAE,0BAA0B,CAAE,CAAA;YAC5C,IAAI,CAAC,QAAQ,CAAE,mBAAmB,CAAE,IAAI,CAAE,CAAE,CAAA;QAC7C,CAAC;QAGD,SAAS,CAAE,IAAY;YACtB,IAAI,CAAC,SAAS,CAAE,GAAG,CAAE,CAAA;YACrB,IAAI,CAAC,SAAS,CAAE,kBAAkB,CAAE,CAAA;YACpC,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAE,CAAA;QACzC,CAAC;QAGD,QAAQ,CAAE,IAAa;YACtB,IAAI,CAAC,SAAS,CAAE,GAAG,CAAE,CAAA;YACrB,IAAI,CAAC,SAAS,CAAE,yBAAyB,CAAE,CAAA;YAC3C,IAAI,CAAC,SAAS,CAAE,kBAAkB,CAAE,IAAI,CAAE,CAAE,CAAA;QAC7C,CAAC;QAGa,AAAP,MAAM,CAAC,IAAI,CAEjB,MAAuC;YAEvC,OAAO,KAAK,CAAC,IAAI,CAAE,MAAM,CAA0B,CAAA;QACpD,CAAC;KAED;IAhDA;QADE,WAAW;mDAOZ;IAGD;QADE,WAAW;kDAGZ;IAGD;QADE,WAAW;kDAIZ;IAGD;QADE,WAAW;mDAKZ;IAGD;QADE,WAAW;mDAKZ;IAGD;QADE,WAAW;kDAKZ;IAGa;QADZ,CAAA,WAAuB,CAAA;oCAMxB;IAxDW,gBAAc,iBA0D1B,CAAA;AAEF,CAAC,EApES,CAAC,KAAD,CAAC,QAoEV;;;;ACpED,IAAU,CAAC,CAIV;AAJD,WAAU,CAAC;IAEV,MAAa,iBAAkB,SAAQ,cAAc;KAAG;IAA3C,mBAAiB,oBAA0B,CAAA;AAEzD,CAAC,EAJS,CAAC,KAAD,CAAC,QAIV;;;;ACJD,IAAU,CAAC,CAyGV;AAzGD,WAAU,CAAC;IAEV,MAAa,iBAAkB,SAAQ,WAAW;QAEjD,IAAI,CAAiB;QAErB,MAAM;YACL,OAAO,MAAM,CAAA;QACd,CAAC;QAGD,GAAG;YACF,OAAO,IAAI,GAAG,CAAE,mBAAmB,CAAE,CAAA;QACtC,CAAC;QAED,IAAI;YACH,OAAO,0BAAiD,CAAA;QACzD,CAAC;QAED,MAAM;YACL,OAAO,SAAS,CAAA;QACjB,CAAC;QAED,OAAO;YACN,OAAO,SAAS,CAAA;QACjB,CAAC;QAED,SAAS;YACR,OAAO,EAAuB,CAAA;QAC/B,CAAC;QAED,IAAI;YACH,OAAO,IAAI,CAAA;QACZ,CAAC;QAGD,GAAG;YACF,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YACtB,IAAI,IAAI,YAAY,UAAU;gBAAG,OAAO,IAAI,CAAA;YAC5C,IAAI,IAAI,YAAY,gBAAgB,CAAC,OAAO;gBAAG,IAAI,GAAG,kBAAkB,CAAE,IAAI,CAAE,CAAA;YAChF,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAG,IAAI,GAAG,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAA;YAC5D,OAAO,mBAAmB,CAAE,IAAI,CAAE,CAAA;QACnC,CAAC;QAGD,IAAI;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YACxB,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAG,OAAO,IAAI,CAAA;YAC1C,IAAI,IAAI,YAAY,UAAU;gBAAG,OAAO,mBAAmB,CAAE,IAAI,CAAE,CAAA;YACnE,IAAI,IAAI,YAAY,gBAAgB,CAAC,OAAO;gBAAG,OAAO,kBAAkB,CAAE,IAAI,CAAE,CAAA;YAChF,OAAO,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAA;QAC9B,CAAC;QAED,KAAK,CACJ,IAAkE,EAClE,IAGC;YAED,IAAI,IAAI,EAAE,IAAI;gBAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,IAAI,CAAE,CAAA;YACjD,IAAI,IAAI,EAAE,IAAI;gBAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,IAAI,CAAE,CAAA;YACjD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,CAAA;QAC5B,CAAC;QAGD,KAAK,CAAE,GAAQ;YACd,OAAO,iBAAiB,CAAC,IAAI,CAAC;gBAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,GAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE;gBAC1B,GAAG,EAAE,UAAU,CAAE,GAAG,CAAE;gBACtB,SAAS,EAAE,GAAE,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;gBAChC,IAAI,EAAE,GAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE;gBACtB,MAAM,EAAE,GAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE;gBAC1B,IAAI,EAAE,GAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE;aACtB,CAAC,CAAA;QACH,CAAC;QAGD,MAAM,CACL,MAAc,EACd,IAAkE,EAClE,OAA4B,IAAI,CAAC,IAAI,EAAE;YAEvC,OAAO,iBAAiB,CAAC,IAAI,CAAC;gBAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,UAAU,CAAE,MAAM,CAAE;gBAC5B,GAAG,EAAE,GAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;gBACpB,SAAS,EAAE,GAAE,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;gBAChC,IAAI,EAAE,UAAU,CAAE,IAAI,CAAE;gBACxB,MAAM,EAAE,GAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE;gBAC1B,IAAI,EAAE,UAAU,CAAE,IAAI,CAAE;aACxB,CAAC,CAAA;QACH,CAAC;QAGa,AAAP,MAAM,CAAC,IAAI,CAEjB,MAAuC;YAEvC,OAAO,KAAK,CAAC,IAAI,CAAE,MAAM,CAA0B,CAAA;QACpD,CAAC;KAED;IA5FA;QADE,QAAQ;gDAGT;IAuBD;QADE,QAAQ;gDAOT;IAGD;QADE,QAAQ;iDAOT;IAeD;QADE,WAAW;kDAWZ;IAGD;QADE,WAAW;mDAeZ;IAGa;QADZ,CAAA,WAAuB,CAAA;uCAMxB;IAnGW,mBAAiB,oBAqG7B,CAAA;AAEF,CAAC,EAzGS,CAAC,KAAD,CAAC,QAyGV;;;;ACzGD,IAAU,CAAC,CA2EV;AA3ED,WAAU,CAAC;IACV,MAAa,sBAAuB,SAAQ,iBAAiB;QAE5D,KAAK,CAAmD;QAGxD,MAAM;YACL,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE,CAAA;QAC3C,CAAC;QAGD,GAAG;YACF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,IAAI,KAAK,CAAA;YACrD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,IAAI,IAAI,CAAA;YACjD,OAAO,IAAI,GAAG,CAAE,IAAI,CAAC,KAAK,CAAC,GAAI,EAAE,WAAW,IAAI,KAAK,IAAI,GAAG,CAAE,CAAA;QAC/D,CAAC;QAGD,IAAI;YACH,OAAO,CAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,0BAA0B,CAAyB,CAAA;QACnG,CAAC;QAGD,MAAM;YACL,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAA;QACtD,CAAC;QAGD,OAAO;YACN,OAAO,MAAM,CAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,IAAI,KAAK,CAAC,OAAO,EAAE,CAAA;QACpH,CAAC;QAGD,SAAS;YACR,OAAO,MAAM,CAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAE,CAAC,KAAK,CAAE,GAAG,CAAE,CAAC,GAAG,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAE,CAAC,MAAM,CAAE,OAAO,CAAE,CAAA;QACxH,CAAC;QAGD,IAAI;YAEH,MAAM,OAAO,GAAG,cAAc,CAAE,KAAK,CAAC,kBAAkB,CAAC,CAAE,CAAA;YAE3D,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAE,OAAO,CAAE,EAAG,CAAC;gBAExC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAE,IAAI,CAAC,KAAK,CAAE,CAAA;gBAEvC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,WAAW,EAAG,CAAC;oBAClC,OAAO,cAAc,CAAE,IAAI,EAAE,uBAAuB,CAAE,CAAC,eAAe,CAAA;gBACvE,CAAC;gBAED,OAAO,IAAI,CAAA;YAEZ,CAAC;iBAAM,CAAC;gBAEP,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,kBAAkB,EAAG,CAAC;oBACzC,OAAO,OAAO,CAAC,IAAI,CAAE,IAAI,CAAC,KAAK,CAAY,CAAA;gBAC5C,CAAC;qBAAM,CAAC;oBACP,OAAO,IAAI,UAAU,CAAE,OAAO,CAAC,WAAW,CAAE,IAAI,CAAC,KAAK,CAAE,CAAE,CAAA;gBAC3D,CAAC;YAEF,CAAC;QAEF,CAAC;QAGD,KAAK,CAAE,GAAQ;YACd,OAAO,sBAAsB,CAAC,IAAI,CAAC;gBAClC,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,GAAG,EAAE,UAAU,CAAE,GAAG,CAAE;gBACtB,IAAI,EAAE,GAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE;aACtB,CAAC,CAAA;QACH,CAAC;KAED;IApEA;QADE,QAAQ;wDAGT;IAGD;QADE,QAAQ;qDAKT;IAGD;QADE,QAAQ;sDAGT;IAGD;QADE,QAAQ;wDAGT;IAGD;QADE,QAAQ;yDAGT;IAGD;QADE,QAAQ;2DAGT;IAGD;QADE,QAAQ;sDAyBT;IAGD;QADE,WAAW;uDAQZ;IAvEW,wBAAsB,yBAyElC,CAAA;AACF,CAAC,EA3ES,CAAC,KAAD,CAAC,QA2EV;;;;AC3ED,IAAU,CAAC,CAqHV;AArHD,WAAU,CAAC;IAEV,IAAY,uBAUX;IAVD,WAAY,uBAAuB;QAElC,mEAAO,CAAA;QACP,mEAAO,CAAA;QACP,mEAAO,CAAA;QAEP,qEAAQ,CAAA;QACR,qEAAQ,CAAA;QACR,sEAAS,CAAA;IAEV,CAAC,EAVW,uBAAuB,GAAvB,yBAAuB,KAAvB,yBAAuB,QAUlC;IAED;;;;OAIG;IACH,MAAa,oBAAqB,SAAQ,WAAW;QAEpD,4BAA4B;QAC5B,IAAI,CAAE,IAGL;YACA,IAAI,IAAI,EAAG,CAAC;gBAEX,IAAI,CAAC,QAAQ,CAAE,CAAC,EAAE,MAAM,CAAE,IAAI,CAAC,GAAG,CAAE,IAAI,CAAC,GAAG,uBAAuB,CAAE,IAAI,CAAC,EAAE,CAAE,CAAE,CAAA;gBAChF,OAAO,IAAI,CAAA;YAEZ,CAAC;iBAAM,CAAC;gBAEP,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAE,CAAC,CAAE,CAAA;gBAChC,MAAM,GAAG,GAAG,KAAK,IAAI,CAAC,CAAA;gBAEtB,MAAM,EAAE,GAAG,uBAAuB,CAAE,KAAK,GAAG,MAAM,CAA0C,CAAA;gBAC5F,IAAI,EAAE,KAAK,SAAS;oBAAG,SAAS,CAAE,IAAI,KAAK,CAAE,aAAc,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAE,GAAG,CAAE,CAAE,CAAA;gBAEpF,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,CAAA;YAEnB,CAAC;QACF,CAAC;QAED,oBAAoB;QACpB,IAAI,CAAE,IAAsC;YAC3C,IAAI,IAAI,KAAK,SAAS,EAAG,CAAC;gBAEzB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAE,CAAC,CAAE,CAAA;gBAChC,MAAM,IAAI,GAAG,KAAK,IAAI,CAAC,CAAA;gBAEvB,IAAI,IAAI,GAAG,KAAK,GAAG,WAAW,CAAA;gBAC9B,IAAI,IAAI,KAAK,GAAG;oBAAG,IAAI,GAAG,IAAI,CAAC,SAAS,CAAE,CAAC,CAAE,CAAA;qBACxC,IAAI,IAAI,KAAK,GAAG;oBAAG,IAAI,GAAG,IAAI,CAAC,SAAS,CAAE,CAAC,CAAE,CAAA;gBAElD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;YAEtB,CAAC;iBAAM,CAAC;gBAEP,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAE,EAAE,EAAG,CAAC;oBAEzB,IAAI,CAAC,QAAQ,CAAE,CAAC,EAAE,GAAG,GAAG,MAAM,CAAE,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,CAAE,CAAA;oBAClD,IAAI,CAAC,SAAS,CAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAE,CAAA;gBAE/B,CAAC;qBAAM,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG,EAAG,CAAC;oBAE9B,IAAI,CAAC,QAAQ,CAAE,CAAC,EAAE,GAAG,GAAG,MAAM,CAAE,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,CAAE,CAAA;oBAClD,IAAI,CAAC,SAAS,CAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAE,CAAA;gBAE/B,CAAC;qBAAM,CAAC;oBAEP,IAAI,CAAC,QAAQ,CAAE,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAE,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,CAAE,CAAA;gBAEzD,CAAC;gBAED,OAAO,IAAI,CAAA;YAEZ,CAAC;QACF,CAAC;QAED,2BAA2B;QAC3B,IAAI;YACH,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC;gBAAG,OAAO,CAAC,CAAA;YAClC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAE,CAAC,CAAE,GAAG,WAAW,CAAA;YAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAE,CAAC,CAAE,IAAI,CAAC,CAAA;YACpC,OAAO,CAAE,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,GAAG,CAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAA;QACzE,CAAC;QAED,mBAAmB;QACnB,IAAI;YACH,OAAO,IAAI,UAAU,CAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAE,CAAA;QAC3E,CAAC;QAED,QAAQ;YACP,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YAC/B,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YAClC,OAAO,GAAG,EAAE,GAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAI,GAAI,IAAK,GAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAI,EAAE,CAAA;QACjE,CAAC;QAED,MAAM,CAAC,IAAI,CACV,EAAwC,EACxC,IAAI,GAAG,CAAC,EACR,IAAI,GAAG,KAAK,EACZ,GAAG,GAAG,IAAI;YAGV,MAAM,IAAI,GAAG,CAAE,IAAI,IAAI,CAAC,IAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,GAAG,CAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAA;YAC5E,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;YAE/C,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;YACvB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;YAE1B,OAAO,KAAK,CAAA;QACb,CAAC;KAED;IAhGY,sBAAoB,uBAgGhC,CAAA;AAEF,CAAC,EArHS,CAAC,KAAD,CAAC,QAqHV;;;;ACrHD,IAAU,CAAC,CA+BV;AA/BD,WAAU,CAAC;IAEV,MAAa,qBAAsB,SAAQ,iBAAiB;QAE3D,MAAM,CAAY;QAElB,MAAM;YACL,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAA;QACvB,CAAC;QAGD,QAAQ;YACP,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI;gBAAG,OAAM;YACxD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAE,EAAE,CAAE,CAAA;QACvB,CAAC;QAGD,QAAQ,CAAE,IAA+B;YACxC,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI;gBAAG,OAAM;YACxD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;QACzB,CAAC;QAGD,SAAS,CAAE,IAAY;YACtB,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI;gBAAG,OAAM;YACxD,MAAM,GAAG,GAAG,mBAAmB,CAAE,IAAI,CAAE,CAAA;YACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;QACxB,CAAC;KAED;IAlBA;QADE,WAAW;yDAIZ;IAGD;QADE,WAAW;yDAIZ;IAGD;QADE,WAAW;0DAKZ;IAzBW,uBAAqB,wBA2BjC,CAAA;AAEF,CAAC,EA/BS,CAAC,KAAD,CAAC,QA+BV;;;;AC/BD,IAAU,CAAC,CA6CV;AA7CD,WAAU,CAAC;IAEV,MAAa,sBAAuB,SAAQ,iBAAiB;QAE5D,MAAM,CAAmD;QACzD,MAAM,CAA4C;QAGlD,OAAO;YACN,OAAO,sBAAsB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;QACvE,CAAC;QAED,MAAM;YACL,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,CAAA;QAC/B,CAAC;QAED,OAAO;YACN,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAA;QAChC,CAAC;QAGD,QAAQ;YACP,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa;gBAAG,OAAM;YACtC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAE,oBAAoB,CAAC,IAAI,CAAE,MAAM,EAAE,CAAC,CAAE,CAAC,OAAO,EAAE,CAAE,CAAA;QACtE,CAAC;QAGD,QAAQ,CAAE,IAA+B;YACxC,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa;gBAAG,OAAM;YACtC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAE,oBAAoB,CAAC,IAAI,CAAE,KAAK,EAAE,IAAI,CAAC,UAAU,CAAE,CAAC,OAAO,EAAE,CAAE,CAAA;YAClF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAE,IAAI,CAAE,CAAA;QAC1B,CAAC;QAGD,SAAS,CAAE,IAAY;YACtB,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa;gBAAG,OAAM;YACtC,MAAM,GAAG,GAAG,mBAAmB,CAAE,IAAI,CAAE,CAAA;YACvC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAE,oBAAoB,CAAC,IAAI,CAAE,KAAK,EAAE,GAAG,CAAC,UAAU,CAAE,CAAC,OAAO,EAAE,CAAE,CAAA;YACjF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAE,GAAG,CAAE,CAAA;QACzB,CAAC;KAED;IAjCA;QADE,QAAQ;yDAGT;IAWD;QADE,WAAW;0DAIZ;IAGD;QADE,WAAW;0DAKZ;IAGD;QADE,WAAW;2DAMZ;IArCW,wBAAsB,yBAuClC,CAAA;IAED,CAAC,CAAC,iBAAiB,GAAG,sBAAsB,CAAA;AAE7C,CAAC,EA7CS,CAAC,KAAD,CAAC,QA6CV;;;;AC7CD,IAAU,CAAC,CAwaV;AAxaD,WAAU,CAAC;IAEV,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAmC,CAAA;IAE/D,wBAAwB;IACxB,MAAa,gBAAiB,SAAQ,WAAW;QAEhD,uDAAuD;QAEvD,IAAI;YACH,OAAO,IAAyB,CAAA;QACjC,CAAC;QAED,UAAU,GAAG,IAAI,aAAa,EAAY,CAAA;QAE1C,MAAM,CAAC,eAAe,GAAG,EAAc,CAAA;QAGhC,AAAP,MAAM,CAAC,cAAc;YACpB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAA;YAClD,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAA;YAC5D,MAAM,GAAG,GAAG,GAAG,CAAC,aAAa,CAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAE,CAAA;YACrE,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAE,GAAG,GAAG,CAAC,CAAE,CAAC,OAAO,CAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAE,CAAA;YACjE,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;QACnC,CAAC;QAGM,AAAP,MAAM,CAAC,gBAAgB;YAEtB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAE,yBAAyB,CAAE,CAAA;YACpE,IAAI,GAAG,IAAI,IAAI;gBAAG,OAAO,IAAI,CAAA;YAE7B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAE,GAAG,CAAE,CAAC,MAAM,CAAE,OAAO,CAAE,CAAA;YAChD,OAAO,KAAK,CAAA;QAEb,CAAC;QAGM,AAAP,MAAM,CAAC,OAAO;YACb,OAAO,IAAI,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,eAAe,CAAA;QAChF,CAAC;QAGD,aAAa,CAAE,IAAI,GAAG,CAAC;YACtB,OAAO,IAAI,CAAA;QACZ,CAAC;QAGD,cAAc;YACb,OAAO,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAE,IAAI,CAAC,aAAa,EAAE,CAAE,CAAA;QACjE,CAAC;QAGD,WAAW;YACV,IAAI,CAAC,aAAa,CAAE,CAAE,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,CAAE,GAAG,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,MAAM,CAAE,CAAA;QAC9F,CAAC;QAGD,UAAU,CAAE,KAAY;YACvB,OAAO,CAAE,eAAe,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAE,IAAI,CAAC,CAAE,GAAG,CAAC,CAAA;QAC9D,CAAC;QAGD,MAAM;YAEL,IAAI,CAAC,UAAU,EAAE,CAAA;YAEjB,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;YAClC,IAAI,CAAC,IAAI;gBAAG,OAAO,IAAI,CAAA;YAEvB,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,SAAS,CAAE,IAAI,CAAC,OAAO,CAAE,OAAO,EAAE,IAAI,CAAE,EAAE,CAAE,oBAAoB,CAAE,CAAE,CAAA;YACxG,MAAM,CAAC,UAAU,GAAG,aAAa,CAAA;YAEjC,MAAM,IAAI,GAAG,IAAI,qBAAqB,CAAA;YACtC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;YAEpB,MAAM,CAAC,SAAS,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE;gBAElC,IAAI,KAAK,CAAC,IAAI,YAAY,WAAW,EAAG,CAAC;oBACxC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU;wBAAG,OAAM;oBACnC,MAAM,eAAe,CAAE,IAAI,CAAE,CAAC,WAAW,CAAE,IAAI,EAAE,IAAI,UAAU,CAAE,KAAK,CAAC,IAAI,CAAE,CAAE,CAAA;gBAChF,CAAC;qBAAM,CAAC;oBAEP,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;wBACrB,KAAK,EAAE,IAAI;wBACX,OAAO,EAAE,YAAY;wBACrB,IAAI,EAAE,KAAK,CAAC,IAAI;qBAChB,CAAC,CAAA;gBAEH,CAAC;YAEF,CAAC,CAAA;YAED,IAAI,QAAa,CAAA;YAEjB,MAAM,CAAC,OAAO,GAAG,GAAE,EAAE;gBACpB,aAAa,CAAE,QAAQ,CAAE,CAAA;gBACzB,UAAU,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAE,IAAI,CAAE,EAAE,IAAI,CAAE,CAAA;YACjD,CAAC,CAAA;YAED,IAAI,CAAC,UAAU,GAAG,GAAE,EAAE;gBACrB,MAAM,CAAC,OAAO,GAAG,GAAE,EAAE,GAAE,CAAC,CAAA;gBACxB,aAAa,CAAE,QAAQ,CAAE,CAAA;gBACzB,MAAM,CAAC,KAAK,EAAE,CAAA;YACf,CAAC,CAAA;YAED,OAAO,IAAI,OAAO,CAAoB,CAAE,IAAI,EAAE,IAAI,EAAE,EAAE;gBAErD,MAAM,CAAC,MAAM,GAAG,GAAE,EAAE;oBAEnB,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;wBACrB,KAAK,EAAE,IAAI;wBACX,OAAO,EAAE,WAAW;wBACpB,IAAI,EAAE,QAAQ,CAAE,IAAI,CAAE;wBACtB,MAAM,EAAE,IAAI;qBACZ,CAAC,CAAA;oBAEF,QAAQ,GAAG,WAAW,CAAE,GAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAE,IAAI,UAAU,CAAE,EAAE,KAAK,CAAE,CAAA;oBAEnE,IAAI,CAAE,IAAI,CAAE,CAAA;gBACb,CAAC,CAAA;gBAED,MAAM,CAAC,OAAO,GAAG,GAAE,EAAE;oBAEpB,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE;wBAExB,IAAI,IAAI,CAAC,CAAC,CAAC,eAAe,EAAE;4BAAG,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;gCACpD,KAAK,EAAE,IAAI;gCACX,OAAO,EAAE,oBAAoB;gCAC7B,IAAI,EAAE,8BAA8B;gCACpC,IAAI;gCACJ,IAAI,EAAE,KAAK,CAAC,IAAI;6BAChB,CAAC,CAAA;wBAEF,aAAa,CAAE,QAAQ,CAAE,CAAA;wBAEzB,QAAQ,GAAG,UAAU,CAAE,GAAE,EAAE;4BAC1B,mFAAmF;4BACnF,IAAI,CAAC,WAAW,EAAE,CAAA;4BAClB,IAAI,CAAC,UAAU,CAAE,IAAI,CAAE,CAAA;wBACxB,CAAC,EAAE,IAAI,CAAE,CAAA;oBAEV,CAAC,CAAA;gBAEF,CAAC,CAAA;YAEF,CAAC,CAA2B,CAAA;QAE7B,CAAC;QAED,MAAM,GAAG,IAAI,aAAa,EAAoB,CAAA;QAG9C,IAAI;YACH,IAAI,CAAC,SAAS,EAAE,CAAA;YAChB,IAAI,CAAC,SAAS,EAAE,CAAA;QACjB,CAAC;QAGD,SAAS;YAER,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAA;YACpC,MAAM,KAAK,GAAG,CAAE,GAAI,IAAI,CAAC,UAAU,CAAE,CAAC,GAAG,CAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAE,IAAI,gBAAgB,CAAE,IAAI,CAAE,CAAE,CAAE,CAAA;YAE9F,IAAI,CAAC;gBACJ,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,EAAG,CAAC;oBACpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAG,CAAC;wBAC3B,IAAI,CAAC,cAAc,CAAC,CAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAC,CAAA;oBAC3C,CAAC;gBACF,CAAC;gBACD,KAAK,MAAM,IAAI,IAAI,KAAK;oBAAG,IAAI,CAAC,YAAY,EAAE,CAAA;gBAC9C,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA;YACxB,CAAC;YAAC,OAAO,KAAK,EAAG,CAAC;gBACjB,aAAa,CAAE,KAAK,CAAE,CAAA;YACvB,CAAC;QAEF,CAAC;QAGD,SAAS;YACR,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;gBAAG,IAAI,CAAC,eAAe,CAAE,IAAI,CAAE,CAAA;QAC/D,CAAC;QAGD,eAAe,CAAE,IAAoB;YACpC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;YAC9B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,iBAAiB,CAAE,IAAI,CAAE,EAAG,CAAC;gBAEpD,MAAM,SAAS,GAAG,IAAI,gBAAgB,CAAE,IAAI,CAAE,CAAA;gBAC9C,IAAI,CAAC,cAAc,CAAC,CAAE,IAAI,EAAE,SAAS,CAAE,CAAC,CAAA;gBAExC,KAAK,MAAM,MAAM,IAAI,OAAO;oBAAG,IAAI,CAAC,cAAc,CAAC,CAAE,MAAM,EAAE,SAAS,CAAE,CAAC,CAAA;YAE1E,CAAC;QACF,CAAC;QAGD,KAAK;YACJ,OAAO,CAAE,GAAI,IAAI,CAAC,OAAO,EAAE,EAAE,GAAI,IAAI,CAAC,MAAM,CAAE,CAAA;QAC/C,CAAC;QAGD,OAAO;YACN,IAAI,CAAC;gBACJ,OAAO,CAAE,IAAI,CAAC,MAAM,EAAE,CAAE,CAAC,MAAM,CAAE,kBAAkB,CAAE,CAAA;YACtD,CAAC;YAAC,OAAO,KAAK,EAAG,CAAC;gBACjB,aAAa,CAAE,KAAK,CAAE,CAAA;gBACtB,OAAO,EAAE,CAAA;YACV,CAAC;QACF,CAAC;QAGD,iBAAiB,CAAE,IAAoB;YACtC,OAAO,IAAI,aAAa,EAAY,CAAA;QACrC,CAAC;QAED,kBAAkB,CAAE,IAAoB;YACvC,IAAI,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;YACnC,IAAI,CAAC,QAAQ;gBAAG,QAAQ,CAAC,GAAG,CAAE,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,CAAE,CAAA;YACxD,OAAO,QAAQ,CAAA;QAChB,CAAC;QAGD,WAAW;YACV,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;YAC1B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAE,IAAI,CAAC,EAAE,CAAC,CAAE,GAAG,IAAI,CAAC,iBAAiB,CAAE,IAAI,CAAE,CAAE,CAAE,CAAA;YAC9E,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAE,IAAI,CAAC,EAAE,CAAC,CAAE,GAAG,IAAI,CAAC,kBAAkB,CAAE,IAAI,CAAE,CAAE,CAAE,CAAA;YAChF,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAE,GAAI,OAAO,EAAE,GAAI,QAAQ,CAAE,CAAC,CAAA;YACpD,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAA;YACpC,OAAO,CAAE,GAAI,KAAK,CAAE,CAAC,GAAG,CAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAE,IAAI,gBAAgB,CAAE,EAAE,CAAE,CAAE,CAAE,CAAA;QAC1E,CAAC;QAGD,WAAW,CAAE,IAAoB,EAAE,GAA8B;YAEhE,MAAM,IAAI,GAAG,cAAc,CAAE,gBAAgB,CAAE,CAAC,IAAI,CAAE,GAAG,CAAsB,CAAA;YAC/E,MAAM,KAAK,GAAI,cAAc,CAAE,IAAI,CAAE,CAAC,KAAK,EAAE,CAAA;YAE7C,KAAK,MAAM,CAAE,IAAI,EAAE,IAAI,CAAE,IAAI,KAAK,EAAG,CAAC;gBAErC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAE,IAAI,gBAAgB,CAAE,IAAI,CAAE,CAAE,CAAA;gBAEzE,MAAM,EAAE,CAAC;oBAER,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM;wBAAG,MAAM,MAAM,CAAA;oBACpC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI;wBAAG,MAAM,MAAM,CAAA;oBAClC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAE,IAAI,CAAE,CAAC,GAAG,CAAE,IAAI,CAAE;wBAAG,MAAM,MAAM,CAAA;oBAE9D,IAAI,CAAC,iBAAiB,CAAE,IAAI,CAAE,CAAC,MAAM,CAAE,IAAI,CAAE,CAAA;oBAE7C,IAAI,IAAI,CAAC,CAAC,CAAC,eAAe,EAAE;wBAAG,cAAc,CAAE,IAAI,CAAC,CAAC,CAAE,CAAC,cAAc,CAAC;4BACtE,KAAK,EAAE,IAAI;4BACX,OAAO,EAAE,WAAW;4BACpB,IAAI,EAAE,QAAQ,CAAE,IAAI,CAAE;4BACtB,IAAI,EAAE,IAAI;yBACV,CAAC,CAAA;oBAEF,SAAQ;gBACT,CAAC;gBAED,IAAI,CAAC,cAAc,CAAE,IAAI,EAAE,CAAC,CAAE,IAAI,EAAE,IAAI,CAAE,CAAC,CAAE,CAAA;gBAE7C,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAG,CAAC;oBAExB,IAAI,IAAI,CAAC,CAAC,CAAC,eAAe,EAAE;wBAAG,cAAc,CAAE,IAAI,CAAC,CAAC,CAAE,CAAC,cAAc,CAAC;4BACtE,KAAK,EAAE,IAAI;4BACX,OAAO,EAAE,WAAW;4BACpB,IAAI,EAAE,QAAQ,CAAE,IAAI,CAAE;4BACtB,IAAI,EAAE,IAAI;4BACV,KAAK,EAAE,IAAI,CAAC,KAAK;yBACjB,CAAC,CAAA;oBAEF,IAAI,CAAC,UAAU,CAAE,IAAI,CAAC,KAAK,CAAE,CAAA;gBAE9B,CAAC;qBAAM,CAAC;oBAEP,IAAI,IAAI,CAAC,CAAC,CAAC,eAAe,EAAE;wBAAG,cAAc,CAAE,IAAI,CAAC,CAAC,CAAE,CAAC,cAAc,CAAC;4BACtE,KAAK,EAAE,IAAI;4BACX,OAAO,EAAE,WAAW;4BACpB,IAAI,EAAE,QAAQ,CAAE,IAAI,CAAE;4BACtB,IAAI,EAAE,IAAI;4BACV,KAAK,EAAE,IAAI,CAAC,KAAK;yBACjB,CAAC,CAAA;gBAEH,CAAC;YAEF,CAAC;QAEF,CAAC;QAGD,cAAc,CACb,IAAoB,EACpB,MAA8B;YAG9B,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAE,IAAI,CAAE,CAAA;YAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAE,IAAI,CAAE,CAAA;YAEhD,KAAK,MAAM,CAAE,IAAI,EAAE,IAAI,CAAE,IAAI,MAAM,EAAG,CAAC;gBACtC,MAAM,SAAS,GAAG,IAAI,gBAAgB,CAAE,IAAI,CAAE,CAAA;gBAE9C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAE,IAAI,CAAE;oBAAG,OAAO,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;gBAE/C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;gBACxB,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,CAAE,IAAI,EAAE,SAAS,CAAE,CAAC,CAAA;gBAEzD,IAAI,CAAC,UAAU;oBAAG,IAAI,CAAC,cAAc,CACpC,CAAE,IAAI,EAAE,SAAS,CAAE,EACnB,UAAU,GAAG,IAAI,oBAAoB,CACrC,CAAA;gBACD,UAAU,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;gBAExB,kCAAkC;gBAClC,wDAAwD;gBACxD,4EAA4E;gBAC5E,IAAI;YAEL,CAAC;QAEF,CAAC;QAGD,SAAS,CAAE,IAAsB;YAChC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,EAAG,CAAC;gBACpC,IAAI,CAAC,kBAAkB,CAAE,IAAI,CAAE,CAAC,GAAG,CAAE,IAAI,CAAC,GAAG,CAAE,CAAA;gBAC/C,IAAI,CAAC,cAAc,CAAC,CAAE,IAAI,EAAE,IAAI,CAAE,CAAC,CAAA;YACpC,CAAC;YACD,IAAI,CAAC,IAAI,EAAE,CAAA;QACZ,CAAC;QAGD,WAAW,CAAE,IAAsB;YAElC,MAAM,KAAK,GAAG,IAAI,oBAAoB,CAAA;YACtC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAA;YAEpC,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;oBACnC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG;oBACf,IAAI,qBAAqB,CAAE,EAAE,EAAE,KAAK,CAAE;iBACtC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAA;YAEb,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,EAAG,CAAC;gBAElC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAE,IAAI,CAAE,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE;oBAAG,SAAQ;gBACtE,IAAI,CAAC,kBAAkB,CAAE,IAAI,CAAE,CAAC,MAAM,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE,CAAA;gBAEzD,IAAI,IAAI,CAAC,CAAC,CAAC,eAAe,EAAE;oBAAG,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;wBACpD,KAAK,EAAE,IAAI;wBACX,OAAO,EAAE,WAAW;wBACpB,IAAI,EAAE,QAAQ,CAAE,IAAI,CAAE;wBACtB,IAAI;qBACJ,CAAC,CAAA;gBAEF,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAA;YAEtB,CAAC;QAEF,CAAC;QAGD,cAAc,CAAE,CAAE,IAAI,EAAE,IAAI,CAAwC;YAEnE,IAAI,CAAC;gBAEJ,IAAI,CAAC,cAAc,CAAC,CAAE,IAAI,EAAE,IAAI,CAAE,CAAC,CAAA;gBAEnC,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,CAAE,IAAI,EAAE,IAAI,CAAE,CAAC,CAAA;gBACjD,IAAI,CAAC,KAAK;oBAAG,OAAM;gBAEnB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;gBACjD,IAAI,CAAC,YAAY,EAAE,CAAA;gBAEnB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAE,KAAK,CAAE,CAAA;gBACpC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;oBAAG,OAAM;gBAE/B,IAAI,IAAI,CAAC,CAAC,CAAC,eAAe,EAAE;oBAAG,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;wBACpD,KAAK,EAAE,IAAI;wBACX,OAAO,EAAE,WAAW;wBACpB,IAAI,EAAE,QAAQ,CAAE,IAAI,CAAE;wBACtB,IAAI,EAAE,IAAI;wBACV,IAAI;qBACJ,CAAC,CAAA;gBAEF,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,CAAE,CAAC,CAAC,CAAA;gBAE/D,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAC,OAAO,EAAE,CAAE,CAAA;gBAC/B,KAAK,CAAC,IAAI,CAAE,IAAI,CAAC,KAAK,CAAE,CAAA;YAEzB,CAAC;YAAC,OAAO,KAAK,EAAG,CAAC;gBACjB,aAAa,CAAE,KAAK,CAAE,CAAA;YACvB,CAAC;QAEF,CAAC;QAGD,cAAc,CAAE,CAAE,IAAI,EAAE,IAAI,CAAwC;YACnE,qBAAqB;YACrB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;YACjD,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,IAAI,CAAC,CAAC,CAAC,eAAe,EAAE;gBAAG,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;oBACpD,KAAK,EAAE,IAAI;oBACX,OAAO,EAAE,WAAW;oBACpB,IAAI,EAAE,QAAQ,CAAE,IAAI,CAAE;oBACtB,IAAI,EAAE,IAAI;oBACV,KAAK,EAAE,IAAI,CAAC,KAAK;iBACjB,CAAC,CAAA;YACF,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,CAAE,CAAA;QAC5C,CAAC;QAGD,cAAc,CACb,CAAE,IAAI,EAAE,IAAI,CAAwC,EACpD,OAAO,IAAmC;YAE1C,eAAe,EAAE,CAAA;YACjB,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,CAAC;QAAA,CAAE,MAAM,CAAC,GAAG,CAAE,4BAA4B,CAAE,CAAE;YAC9C,OAAO,eAAe,CAAC,IAAI,CAAE,kBAAkB,CAAE,CAAA;QAClD,CAAC;;IA5ZD;QADE,QAAQ;gDAGT;IAgCD;QADE,QAAQ;yDAGT;IAGD;QADE,QAAQ;0DAGT;IAGD;QADE,WAAW;uDAGZ;IAGD;QADE,QAAQ;sDAGT;IAGD;QADE,QAAQ;kDAsFT;IAKD;QADE,QAAQ;gDAIT;IAGD;QADE,QAAQ;qDAkBT;IAGD;QADE,QAAQ;qDAGT;IAGD;QADE,YAAY;2DAWb;IAGD;QADE,QAAQ;iDAGT;IAGD;QADE,QAAQ;mDAQT;IAGD;QADE,YAAY;6DAGb;IASD;QADE,QAAQ;uDAQT;IAGD;QADE,WAAW;uDAwDZ;IAGD;QADE,WAAW;0DA8BZ;IAGD;QADE,YAAY;qDAOb;IAGD;QADE,WAAW;uDA2BZ;IAGD;QADE,YAAY;0DAiCb;IAGD;QADE,YAAY;0DAab;IAGD;QADE,YAAY;0DAOb;IA/YM;QADL,QAAQ;gDAOT;IAGM;QADL,QAAQ;kDAST;IAGM;QADL,QAAQ;yCAGT;IAnCW,kBAAgB,mBAka5B,CAAA;AACF,CAAC,EAxaS,CAAC,KAAD,CAAC,QAwaV;;;;ACxaD,IAAU,CAAC,CAeV;AAfD,WAAU,GAAC;IAEV,eAAe,CAAC,IAAI,CAAE,CAAC,CAAA,EAAE;QACxB,MAAM,qBAAsB,SAAQ,CAAC,CAAC,gBAAgB;YAErD,MAAM;gBACL,OAAO,IAAI,CAAA;YACZ,CAAC;SAED;QACD,CAAC,CAAC,gBAAgB,GAAG,qBAAqB,CAAA;IAC3C,CAAC,CAAE,CAAA;IAEH,gBAAgB,CAAC,gBAAgB,GAAG,GAAE,EAAE,CAAC,CAAE,wBAAwB,CAAE,CAAA;AAEtE,CAAC,EAfS,CAAC,KAAD,CAAC,QAeV;;;;ACfD,IAAU,CAAC,CAIV;AAJD,WAAU,CAAC;IAEV,aAAa,CAAC,MAAM,EAAE,CAAA;AAEvB,CAAC,EAJS,CAAC,KAAD,CAAC,QAIV;;;;ACJD,IAAU,CAAC,CAoCV;AApCD,WAAU,GAAC;IACV,SAAS,CAAC;QAET,cAAc,CAAE,CAAC;YAEhB,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAGL,AAAP,MAAM,CAAC,GAAG,GAAG,CAAC,CAAA;gBAGP,AAAP,MAAM,KAAK,IAAI;oBACd,OAAO,IAAI,CAAC,GAAG,GAAG,CAAC,CAAA;gBACpB,CAAC;gBACD,MAAM,KAAK,IAAI,CAAE,IAAY;oBAC5B,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,CAAA;gBACpB,CAAC;gBAGM,AAAP,MAAM,CAAC,IAAI;oBAEV,iBAAiB,CAAE,GAAG,CAAC,IAAI,EAAG,CAAC,CAAE,CAAA;oBAEjC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAA;oBACZ,iBAAiB,CAAE,GAAG,CAAC,IAAI,EAAG,CAAC,CAAE,CAAA;gBAElC,CAAC;;YAlBM;gBADL,eAAe;kCACH;YAGP;gBADL,eAAe;iCAGhB;YAMM;gBADL,gBAAgB;iCAQjB;YAIF,GAAG,CAAC,IAAI,EAAE,CAAA;QACX,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EApCS,CAAC,KAAD,CAAC,QAoCV;;;;ACpCD,IAAU,CAAC,CA0CV;AA1CD,WAAU,CAAC;IACV,SAAS,CAAC;QAET,mBAAmB;YAElB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC;gBACvC,GAAG,CAAE,IAAI,GAAG,CAAC,IAAK,OAAO,IAAI,CAAA,CAAC,CAAC;gBAC/B,GAAG,KAAK,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA,CAAC,CAAC;gBAC/B,GAAG,CAAE,IAAa,IAAK,OAAO,IAAI,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA,CAAC,CAAC;aAChD,CAAC,CAAA;YAEF,iBAAiB,CAAE,GAAG,EAAE,EAAE,CAAC,CAAE,CAAA;YAC7B,iBAAiB,CAAE,GAAG,EAAE,EAAE,CAAC,CAAE,CAAA;YAE7B,iBAAiB,CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAE,CAAA;YAC9B,iBAAiB,CAAE,GAAG,EAAE,EAAE,CAAC,CAAE,CAAA;YAE7B,iBAAiB,CAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAE,CAAA;YAChC,iBAAiB,CAAE,GAAG,EAAE,EAAE,EAAE,CAAE,CAAA;QAE/B,CAAC;QAED,oBAAoB;YAEnB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC;gBACvC,GAAG,EAAE,CAAE,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI;gBACxB,GAAG,EAAE,GAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;gBACnB,GAAG,EAAE,CAAE,IAAa,EAAE,EAAE,CAAC,GAAG,CAAE,IAAI,CAAE;aACpC,CAAC,CAAA;YAEF,iBAAiB,CAAE,GAAG,EAAE,EAAE,CAAC,CAAE,CAAA;YAC7B,iBAAiB,CAAE,GAAG,EAAE,EAAE,CAAC,CAAE,CAAA;YAE7B,iBAAiB,CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAE,CAAA;YAC9B,iBAAiB,CAAE,GAAG,EAAE,EAAE,CAAC,CAAE,CAAA;YAE7B,iBAAiB,CAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAE,CAAA;YAChC,iBAAiB,CAAE,GAAG,EAAE,EAAE,EAAE,CAAE,CAAA;QAE/B,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EA1CS,CAAC,KAAD,CAAC,QA0CV;;;;AC1CD,IAAU,CAAC,CA6EV;AA7ED,WAAU,GAAC;IAAC,IAAA,EAAE,CA6Eb;IA7EW,WAAA,EAAE;QACb,SAAS,CAAC;YAET,sBAAsB,CAAE,CAAC;gBAExB,MAAM,MAAM,GAAG,eAAe,CAAE,QAAQ,EAAE;oBACzC,GAAG,EAAE;wBACJ,GAAG,EAAE,GAAG;qBACR;iBACD,CAAC,CAAA;gBAEF,MAAM,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC;oBAC7B,GAAG,KAAK,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,CAAA,CAAC,CAAC;iBAC/B,CAAC,CAAA;gBAEF,iBAAiB,CAAE,GAAG,EAAE,EAAE,GAAG,CAAE,CAAA;gBAE/B,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAA;gBACpB,iBAAiB,CAAE,GAAG,EAAE,EAAE,GAAG,CAAE,CAAA;YAEhC,CAAC;YAED,0BAA0B,CAAE,CAAC;gBAE5B,MAAM,MAAM,GAAG,eAAe,CAAE,QAAQ,EAAE;oBACzC,GAAG,EAAE;wBACJ,GAAG,EAAE,GAAG;qBACD;iBACR,CAAC,CAAA;gBAEF,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,aAAa,CAAC;oBACvC,MAAM,KAAK,OAAO,KAAK,IAAI,MAAM,CAAC,GAAG,CAAA,CAAC,CAAC;oBACvC,KAAK,KAAK,OAAO,MAAM,CAAC,IAAI,CAAE,MAAM,CAAC,GAAG,CAAE,CAAA,CAAC,CAAC;iBAC5C,CAAC,CAAA;gBAEF,iBAAiB,CAAE,MAAM,EAAE,EAAE,IAAI,CAAE,CAAA;gBACnC,iBAAiB,CAAE,KAAK,EAAE,EAAE,CAAE,KAAK,CAAE,CAAE,CAAA;gBAEvC,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,CAAA;gBACrB,iBAAiB,CAAE,MAAM,EAAE,EAAE,KAAK,CAAE,CAAA;gBACpC,iBAAiB,CAAE,KAAK,EAAE,EAAE,EAAE,CAAE,CAAA;gBAEhC,MAAM,CAAC,cAAc,CAAE,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAE,CAAA;gBAC9E,iBAAiB,CAAE,MAAM,EAAE,EAAE,IAAI,CAAE,CAAA;gBACnC,iBAAiB,CAAE,KAAK,EAAE,EAAE,CAAE,KAAK,CAAE,CAAE,CAAA;YAExC,CAAC;YAED,+BAA+B,CAAE,CAAC;gBAEjC,MAAM,MAAM,GAAG,eAAe,CAAE,QAAQ,EAAE;oBACzC,GAAG,EAAE;wBACJ,GAAG,EAAE,GAAG;qBACR;iBACD,CAAC,CAAA;gBAEF,IAAI,KAAK,GAAG,CAAC,CAAA;gBAEb,MAAM,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC;oBAC7B,GAAG;wBACF,EAAG,KAAK,CAAA;wBACR,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,CAAA;oBACtB,CAAC;iBACD,CAAC,CAAA;gBAEF,GAAG,EAAE,CAAC;gBAAC,iBAAiB,CAAE,KAAK,EAAE,CAAC,CAAE,CAAA;gBACpC,GAAG,EAAE,CAAC;gBAAC,iBAAiB,CAAE,KAAK,EAAE,CAAC,CAAE,CAAA;gBAEpC,MAAM,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;gBACzB,GAAG,EAAE,CAAC;gBAAC,iBAAiB,CAAE,KAAK,EAAE,CAAC,CAAE,CAAA;gBAEpC,MAAM,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;gBACzB,GAAG,EAAE,CAAC;gBAAC,iBAAiB,CAAE,KAAK,EAAE,CAAC,CAAE,CAAA;YAErC,CAAC;SAED,CAAC,CAAA;IACH,CAAC,EA7EW,EAAE,GAAF,MAAE,KAAF,MAAE,QA6Eb;AAAD,CAAC,EA7ES,CAAC,KAAD,CAAC,QA6EV;;;;AC7ED,IAAU,CAAC,CAwIV;AAxID,WAAU,CAAC;IAEV,MAAM,OAAO,GAAG,cAAc,CAAE,CAAE,GAAiB,EAAE,IAAmB,EAAE,EAAE,CAAC,IAAI,GAAG,CAAE,GAAG,EAAE,IAAI,CAAE,CAAC,CAAA;IAElG,MAAa,kBAAmB,SAAQ,WAAW;QAGlD,OAAO,CAAE,GAAsB;YAE9B,MAAM,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAE,GAAG,yBAAyB,CAAC,IAAI,CAAE,GAAG,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAE,IAAI,EAAE,CAAA;YACvF,MAAM,KAAK,GAAG,IAAI,EAAE,WAAW,EAAE,CAAA;YAEjC,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,CAAE,KAAK,IAAI,kBAAkB,CAAC,SAAS,CAAE,EAAG,CAAC;gBAE3E,MAAM,IAAI,GAAG,OAAO,CAAE,GAAG,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAE,CAAA;gBAC5C,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAA;gBAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAE,IAAI,CAAE,CAAA;gBAE9B,OAAS,IAAI,CAAE,KAA0B,CAAW,EAAE,CAAC,OAAO,CAAE,IAAI,CAAE,CAAA;YACvE,CAAC;YAED,OAAS,cAAc,CAAE,IAAI,CAAE,CAAE,GAAG,CAAC,MAAM,EAAW,CAAW,CAAE,GAAG,CAAE,CAAA;QACzE,CAAC;QAED,4CAA4C;QAE5C,mEAAmE;QAEnE,6EAA6E;QAC7E,4CAA4C;QAE5C,qGAAqG;QACrG,wDAAwD;QAExD,6CAA6C;QAC7C,iBAAiB;QACjB,qBAAqB;QACrB,oBAAoB;QACpB,4BAA4B;QAC5B,MAAM;QAEN,mCAAmC;QACnC,+BAA+B;QAC/B,KAAK;QAEL,kCAAkC;QAElC,qDAAqD;QACrD,wBAAwB;QAExB,4BAA4B;QAC5B,kBAAkB;QAClB,gCAAgC;QAChC,yBAAyB;QACzB,6BAA6B;QAC7B,OAAO;QAEP,4CAA4C;QAE5C,KAAK;QAEL,4BAA4B;QAE5B,4BAA4B;QAC5B,kBAAkB;QAClB,uBAAuB;QACvB,qBAAqB;QACrB,6BAA6B;QAC7B,OAAO;QAEP,oCAAoC;QACpC,iCAAiC;QACjC,MAAM;QAEN,KAAK;QAEL,mDAAmD;QACnD,iEAAiE;QAEjE,sDAAsD;QACtD,gGAAgG;QAEhG,2CAA2C;QAC3C,0DAA0D;QAE1D,IAAI;QAEJ,UAAU,GAAG,EAAuB,CAAA;QACpC,IAAI,CAAE,GAAsB;YAC3B,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,EAAE,CAAA;YACjC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAG,CAAC;gBACnC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAE,QAAQ,CAAE;oBAAG,OAAO,QAAQ,CAAA;YAC3D,CAAC;YACD,OAAO,EAAE,CAAA;QACV,CAAC;QACD,KAAK,CAAE,GAAsB,IAAI,CAAC;QAElC,IAAI,CAAE,GAAsB,IAAI,CAAC;QACjC,GAAG,CAAE,GAAsB,IAAI,CAAC;QAEhC,GAAG,CAAE,GAAsB,IAAI,CAAC;QAChC,KAAK,CAAE,GAAsB,IAAI,CAAC;QAElC,IAAI,CAAE,GAAsB,IAAI,CAAC;QACjC,MAAM,CAAE,GAAsB,IAAI,CAAC;QAEnC,KAAK,KAAI,CAAC;QAGH,AAAP,MAAM,CAAC,IAAI,CAAE,IAAY;YAExB,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC;gBACpC,IAAI,EAAE,GAAE,EAAE,CAAC,IAAI;aACf,CAAC,CAAA;YAEF,MAAM,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAE,CAAA;YAC5B,MAAM,CAAC,KAAK,EAAE,CAAA;YACd,IAAI,cAAc,CAAE,GAAI,MAAM,CAAC,IAAI,EAAG,UAAU,EAAE,GAAE,EAAE;gBACrD,IAAI,CAAC;oBACJ,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAA;gBACtB,CAAC;gBAAC,OAAO,KAAK,EAAG,CAAC;oBACjB,IAAI,iBAAiB,CAAE,KAAK,CAAE;wBAAG,gBAAgB,CAAE,KAAK,CAAE,CAAA;oBAC1D,aAAa,CAAE,KAAK,CAAE,CAAA;gBACvB,CAAC;YACF,CAAC,CAAE,CAAC,KAAK,EAAE,CAAA;YAEX,OAAO,MAAM,CAAA;QACd,CAAC;QAED,MAAM,CAAC,KAAK;YACX,MAAM,IAAI,GAAG,MAAM,CAAE,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAE,MAAM,CAAE,CAAE,CAAA;YAC5D,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC,CAAC,CAAC,IAAI,CAAA;QACvC,CAAC;KAED;IA/HA;QADE,WAAW;qDAgBZ;IAuFM;QADL,YAAY;wCAmBb;IA3HW,oBAAkB,qBAkI9B,CAAA;AAEF,CAAC,EAxIS,CAAC,KAAD,CAAC,QAwIV;;;;ACxID,IAAU,CAAC,CA+FV;AA/FD,WAAU,CAAC;IAEC,sBAAoB,GAAG;QAEjC,KAAK,EAAE,wBAAwB;QAC/B,KAAK,EAAE,wBAAwB;QAC/B,KAAK,EAAE,yBAAyB;QAChC,MAAM,EAAE,yBAAyB;QACjC,KAAK,EAAE,6BAA6B;QACpC,IAAI,EAAE,+BAA+B;QACrC,KAAK,EAAE,+BAA+B;QACtC,IAAI,EAAE,0BAA0B;QAChC,KAAK,EAAE,+BAA+B;QACtC,IAAI,EAAE,+BAA+B;QACrC,KAAK,EAAE,+BAA+B;QACtC,KAAK,EAAE,0BAA0B;QAEjC,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,YAAY;QACnB,MAAM,EAAE,YAAY;QACpB,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,WAAW;QAClB,MAAM,EAAE,YAAY;QACpB,KAAK,EAAE,WAAW;QAClB,MAAM,EAAE,YAAY;QAEpB,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE,YAAY;QACpB,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,0BAA0B;QACjC,MAAM,EAAE,YAAY;QACpB,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,eAAe;QACtB,MAAM,EAAE,YAAY;QACpB,KAAK,EAAE,YAAY;QACnB,MAAM,EAAE,YAAY;QAEpB,KAAK,EAAE,iBAAiB;QACxB,MAAM,EAAE,YAAY;QACpB,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,WAAW;QAClB,MAAM,EAAE,YAAY;QACpB,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,aAAa;QAEpB,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,WAAW;QACnB,OAAO,EAAE,YAAY;QAErB,KAAK,EAAE,uBAAuB;QAC9B,KAAK,EAAE,uBAAuB;QAC9B,KAAK,EAAE,8BAA8B;QACrC,KAAK,EAAE,0BAA0B;QACjC,IAAI,EAAE,oBAAoB;QAC1B,KAAK,EAAE,qBAAqB;QAC5B,KAAK,EAAE,mBAAmB;QAC1B,MAAM,EAAE,oBAAoB;QAC5B,KAAK,EAAE,mBAAmB;QAC1B,KAAK,EAAE,oBAAoB;QAC3B,MAAM,EAAE,yEAAyE;QACjF,KAAK,EAAE,+BAA+B;QACtC,MAAM,EAAE,sBAAsB;QAC9B,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,0BAA0B;QACjC,MAAM,EAAE,kBAAkB;QAC1B,QAAQ,EAAE,qBAAqB;QAC/B,KAAK,EAAE,kBAAkB;QACzB,MAAM,EAAE,qCAAqC;QAC7C,KAAK,EAAE,iDAAiD;QACxD,KAAK,EAAE,gDAAgD;QACvD,KAAK,EAAE,yCAAyC;QAChD,KAAK,EAAE,iBAAiB;QACxB,KAAK,EAAE,iBAAiB;QACxB,KAAK,EAAE,yBAAyB;QAChC,KAAK,EAAE,+BAA+B;QACtC,MAAM,EAAE,2EAA2E;QACnF,KAAK,EAAE,qBAAqB;QAC5B,KAAK,EAAE,iBAAiB;QACxB,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,mBAAmB;QAC1B,MAAM,EAAE,oBAAoB;QAC5B,KAAK,EAAE,uBAAuB;QAC9B,OAAO,EAAE,uBAAuB;QAChC,KAAK,EAAE,0BAA0B;QACjC,MAAM,EAAE,mEAAmE;QAC3E,KAAK,EAAE,iBAAiB;QACxB,KAAK,EAAE,iCAAiC;QACxC,KAAK,EAAE,iBAAiB;QACxB,IAAI,EAAE,6BAA6B;KAEM,CAAA;AAE3C,CAAC,EA/FS,CAAC,KAAD,CAAC,QA+FV;;;;AC/FD,IAAU,CAAC,CAyCV;AAzCD,WAAU,CAAC;IAEV,MAAa,mBAAoB,SAAQ,cAAc;QAEtD,MAAM,CAAkD;QAGxD,SAAS,CAAE,IAAoB;YAC9B,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa;gBAAG,OAAM;YACtC,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,GAAG;gBAAG,OAAM;YAC3C,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAA;YAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAE,wBAAwB,EAAE,SAAS,CAAE,CAAA;QAC7D,CAAC;QAGD,SAAS,CAAE,IAAyB;YACnC,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa;gBAAG,OAAM;YACtC,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAE,cAAc,CAAE;gBAAG,OAAM;YACpD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAE,cAAc,EAAE,IAAI,CAAE,CAAA;QAC9C,CAAC;QAGD,SAAS,CAAE,IAAY;YACtB,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa;gBAAG,OAAM;YACtC,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAE,qBAAqB,CAAE;gBAAG,OAAM;YAE3D,MAAM,IAAI,GAAG,kBAAkB,CAAE,IAAI,CAAE;iBACrC,OAAO,CAAE,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAE,CAAC,CAAE,CAAC,QAAQ,CAAE,EAAE,CAAE,CAAC,WAAW,EAAE,CAAE,CAAA;YAEvF,IAAI,CAAC,MAAM,CAAC,SAAS,CAAE,qBAAqB,EAAE,4BAA6B,IAAK,EAAE,CAAE,CAAA;QACrF,CAAC;QAGD,QAAQ,CAAE,IAA+B;YACxC,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa;gBAAG,OAAM;YACtC,KAAK,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAA;YACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAE,IAAI,CAAE,CAAA;QAC1B,CAAC;KAED;IAhCA;QADE,WAAW;wDAMZ;IAGD;QADE,WAAW;wDAKZ;IAGD;QADE,WAAW;wDASZ;IAGD;QADE,WAAW;uDAKZ;IAnCW,qBAAmB,sBAqC/B,CAAA;AAEF,CAAC,EAzCS,CAAC,KAAD,CAAC,QAyCV;;;;ACzCD,IAAU,CAAC,CAoVV;AApVD,WAAU,CAAC;IAEV,MAAa,gBAAiB,SAAQ,WAAW;QAEhD,GAAG;YACF,OAAO,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAE,qBAAqB,CAAE,KAAK,IAAI,CAAA;QACrE,CAAC;QAGD,IAAI;YACH,OAAO,CAAC,CAAA;QACT,CAAC;QAGD,KAAK;YACJ,IAAI,CAAC,WAAW,EAAE,CAAA;QACnB,CAAC;QAGD,WAAW;YAEV,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAE,CAAE,GAAG,EAAE,GAAG,EAAE,EAAE;gBACrD,GAAG,CAAC,UAAU,GAAG,GAAG,CAAA;gBACpB,eAAe,CAAE,IAAI,CAAE,CAAC,WAAW,CAAE,GAAG,EAAE,GAAG,CAAE,CAAA;YAChD,CAAC,CAAE,CAAA;YAEH,MAAM,CAAC,EAAE,CAAE,SAAS,EACnB,CAAE,GAAG,EAAE,IAAI,EAAE,IAA2B,EAAE,EAAE,CAAC,eAAe,CAAE,IAAI,CAAE,CAAC,UAAU,CAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAE,CAClG,CAAA;YAED,MAAM,CAAC,MAAM,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,GAAE,EAAE;gBAE/B,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAE;qBAC3D,OAAO,CAAE,CAAC,CAAE,IAAI,EAAE,MAAM,CAAE,EAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CACzC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CACvE,IAAI,EAAE,CAAE,CAAA;gBAEV,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;oBACrB,KAAK,EAAE,IAAI;oBACX,OAAO,EAAE,qBAAqB;oBAC9B,KAAK,EAAE,MAAM,CAAC,GAAG,CAAE,KAAK,CAAC,EAAE,CAAC,UAAW,KAAM,IAAK,IAAI,CAAC,IAAI,EAAG,GAAG,CAAE;iBACnE,CAAC,CAAA;YAEH,CAAC,CAAE,CAAA;YAEH,OAAO,MAAM,CAAA;QACd,CAAC;QAGD,WAAW,CACV,GAAqD,EACrD,GAAoD;YAGpD,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;YACtD,MAAM,GAAG,GAAG,sBAAsB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;YAE7D,IAAI,IAAI,CAAC,GAAG,EAAE;gBAAG,cAAc,CAAE,IAAI,CAAC,CAAC,CAAE,CAAC,cAAc,CAAC;oBACxD,KAAK,EAAE,IAAI;oBACX,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE;oBACrB,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE;oBACd,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE;oBACpB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,aAAa,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU;iBAC9D,CAAC,CAAA;YAEF,cAAc,CAAE,GAAG,CAAE,CAAC,SAAS,CAAE,6BAA6B,EAAE,GAAG,CAAE,CAAA;YACrE,cAAc,CAAE,GAAG,CAAE,CAAC,SAAS,CAAE,8BAA8B,EAAE,GAAG,CAAE,CAAA;YACtE,cAAc,CAAE,GAAG,CAAE,CAAC,SAAS,CAAE,8BAA8B,EAAE,GAAG,CAAE,CAAA;YAEtE,IAAI,CAAC;gBAEJ,cAAc,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAC,OAAO,CAAE,GAAG,CAAE,CAAA;YAE7C,CAAC;YAAC,OAAO,KAAU,EAAG,CAAC;gBAEtB,IAAI,iBAAiB,CAAE,KAAK,CAAE;oBAAG,gBAAgB,CAAE,KAAK,CAAE,CAAA;gBAE1D,cAAc,CAAE,EAAE,CAAE,CAAC,cAAc,CAAC;oBACnC,KAAK,EAAE,IAAI;oBACX,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;oBAC5B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE;oBACpB,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE;oBACtB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,KAAK,EAAE,KAAK,CAAC,KAAK;iBAClB,CAAC,CAAA;gBAEF,cAAc,CAAE,GAAG,CAAE,CAAC,SAAS,CAAE,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,cAAc,CAAE,CAAA;YAErE,CAAC;YAED,GAAG,CAAC,GAAG,EAAE,CAAA;QACV,CAAC;QAGD,UAAU,CACT,GAAqD,EACrD,MAAiD,EACjD,IAA2B;YAG3B,MAAM,IAAI,GAAG,sBAAsB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;YACjE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;YAC9B,IAAI,QAAQ,GAAG,EAAE,CAAA;YAEjB,IAAI,CAAC;gBAEJ,QAAQ,GAAG,cAAc,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAC,OAAO,CAC/C,OAAO,CAAC,MAAM,CAAE,MAAM,EAAE,IAAI,CAAE,CAC9B,CAAA;gBAED,IAAI,CAAC,QAAQ,EAAG,CAAC;oBAChB,MAAM,CAAC,KAAK,CACX,8BAA8B;wBAC9B,MAAM;wBACN,0BAA2B,OAAO,CAAC,SAAS,EAAG,EAAE,CACjD,CAAA;oBACD,MAAM,CAAC,GAAG,EAAE,CAAA;oBACZ,OAAM;gBACP,CAAC;YAEF,CAAC;YAAC,OAAO,KAAU,EAAG,CAAC;gBAEtB,IAAI,iBAAiB,CAAE,KAAK,CAAE;oBAAG,gBAAgB,CAAE,KAAK,CAAE,CAAA;gBAE1D,cAAc,CAAE,EAAE,CAAE,CAAC,cAAc,CAAC;oBACnC,KAAK,EAAE,IAAI;oBACX,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;oBAC5B,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;oBACxB,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE;oBAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,KAAK,EAAE,KAAK,CAAC,KAAK;iBAClB,CAAC,CAAA;gBAEF,MAAM,CAAC,GAAG,EAAE,CAAA;gBACZ,OAAM;YACP,CAAC;YAED,MAAM,OAAO,GAAG,eAAe,CAAE,GAAE,EAAE;gBAEpC,IAAI,IAAI,CAAC,GAAG,EAAE;oBAAG,cAAc,CAAE,IAAI,CAAC,CAAC,CAAE,CAAC,cAAc,CAAC;wBACxD,KAAK,EAAE,IAAI;wBACX,OAAO,EAAE,OAAO;wBAChB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;wBAClB,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;wBACxB,IAAI,EAAE,QAAQ,CAAE,IAAI,CAAE;qBACtB,CAAC,CAAA;gBAEF,IAAI,CAAC;oBAEJ,cAAc,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAC,OAAO,CACpC,OAAO,CAAC,MAAM,CAAE,OAAO,EAAE,IAAI,CAAE,CAC/B,CAAA;gBAEF,CAAC;gBAAC,OAAO,KAAU,EAAG,CAAC;oBAEtB,IAAI,iBAAiB,CAAE,KAAK,CAAE;wBAAG,gBAAgB,CAAE,KAAK,CAAE,CAAA;oBAE1D,cAAc,CAAE,EAAE,CAAE,CAAC,cAAc,CAAC;wBACnC,KAAK,EAAE,IAAI;wBACX,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;wBAC5B,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;wBACxB,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE;wBAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,KAAK,EAAE,KAAK,CAAC,KAAK;qBAClB,CAAC,CAAA;oBAEF,OAAM;gBACP,CAAC;gBAED,MAAM,CAAC,GAAG,EAAE,CAAA;YAEb,CAAC,CAAE,CAAA;YAEH,MAAM,CAAC,EAAE,CAAE,KAAK,EAAE,OAAO,CAAE,CAAA;YAC3B,MAAM,CAAC,EAAE,CAAE,OAAO,EAAE,OAAO,CAAE,CAAA;YAE7B,MAAM,CAAC,EAAE,CAAE,MAAM,EAAE,CAAE,KAA4B,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAE,CAAE,CAAA;YAEhG,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAA;YAC/C,MAAM,KAAK,GAAG,sCAAsC,CAAA;YACpD,MAAM,OAAO,GAAI,kBAAkB,CAAE,iBAAiB,CAAE,mBAAmB,CAAE,MAAM,GAAG,KAAK,CAAE,CAAE,CAAE,CAAA;YAEjG,MAAM,CAAC,KAAK,CACX,gCAAgC;gBAChC,wBAAwB;gBACxB,yBAAyB;gBACzB,yBAAyB,OAAO,MAAM;gBACtC,2BAA2B,QAAQ,MAAM;gBACzC,MAAM,CACN,CAAA;YAED,IAAI,IAAI,CAAC,GAAG,EAAE;gBAAG,cAAc,CAAE,IAAI,CAAC,CAAC,CAAE,CAAC,cAAc,CAAC;oBACxD,KAAK,EAAE,IAAI;oBACX,OAAO,EAAE,MAAM;oBACf,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;oBAClB,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;oBACxB,IAAI,EAAE,QAAQ,CAAE,IAAI,CAAE;iBACtB,CAAC,CAAA;QAEH,CAAC;QAED,iBAAiB,GAAG,IAAI,OAAkF,CAAA;QAC1G,iBAAiB,GAAG,IAAI,OAA+F,CAAA;QAEvH,KAAK,CAAC,SAAS,CACd,KAA4B,EAC5B,OAA0B,EAC1B,IAAgD;YAGhD,IAAI,CAAC,KAAK,EAAE,CAAA;YAEZ,IAAI,CAAC;gBAEJ,IAAI,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAE,IAAI,CAAG,CAAA;gBAChD,IAAI,CAAC,MAAM;oBAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAE,IAAI,EAAE,MAAM,GAAG,EAAE,CAAE,CAAA;gBAE7D,MAAM,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;gBAEpB,IAAI,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAE,MAAM,CAAC,CAAC,CAAC,CAAE,CAAA;gBAClD,IAAI,WAAW,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;gBAE9B,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,WAAW,EAAG,CAAC;oBACzC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;wBAAG,OAAO,UAAU,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAE,EAAE,SAAS,CAAA;oBAE1E,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAE,GAAI,MAAM,CAAC,CAAC,CAAC,EAAE,GAAI,MAAM,CAAC,CAAC,CAAC,CAAE,CAAC,CAAA;oBACrD,MAAM,CAAC,MAAM,CAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAE,CAAA;oBAC5B,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;oBAC1C,WAAW,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;oBAE1B,IAAI,KAAK,CAAC,UAAU,GAAG,WAAW;wBAAG,OAAO,UAAU,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAE,EAAE,SAAS,CAAA;gBACxF,CAAC;gBAED,MAAM,QAAQ,GAAG,WAAW,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAA;gBAChD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAE,CAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,CAAE,CAAA;gBAC3E,IAAI,QAAQ,GAAG,WAAW;oBAAG,OAAO,UAAU,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAE,EAAE,SAAS,CAAA;gBAE/E,KAAK,GAAG,MAAM,CAAC,KAAK,CAAE,WAAW,CAAE,CAAA;gBACnC,IAAI,MAAM,GAAG,CAAC,CAAA;gBACd,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAE,CAAC,CAAE,EAAG,CAAC;oBACvC,KAAK,CAAC,GAAG,CAAE,GAAG,EAAE,MAAM,CAAE,CAAA;oBACxB,MAAM,IAAI,GAAG,CAAC,UAAU,CAAA;gBACzB,CAAC;gBACD,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;gBAE1C,IAAI,QAAQ,GAAG,KAAK,CAAC,UAAU,EAAG,CAAC;oBAClC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAE,CAAA;oBACxE,IAAI,CAAC,OAAO,CAAE,IAAI,CAAE,CAAA;gBACrB,CAAC;gBAED,IAAI,IAAI,GAAuC,IAAI,UAAU,CAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAE,CAAA;gBAEjI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAG,CAAC;oBACxB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;oBACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAG,CAAC;wBACvC,IAAI,CAAE,CAAC,CAAE,IAAI,IAAI,CAAE,CAAC,GAAG,CAAC,CAAE,CAAA;oBAC3B,CAAC;gBACF,CAAC;gBAED,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAA;gBAC1B,IAAI,EAAE,KAAK,KAAK;oBAAG,IAAI,GAAG,mBAAmB,CAAE,IAAI,CAAE,CAAA;gBAErD,IAAI,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAE,IAAI,CAAG,CAAA;gBAChD,IAAI,CAAC,MAAM;oBAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAE,IAAI,EAAE,MAAM,GAAG,EAAE,CAAE,CAAA;gBAE7D,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,EAAG,CAAC;oBACxB,MAAM,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;oBACnB,UAAU,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAE,CAAA;oBAChC,OAAM;gBACP,CAAC;gBAED,IAAI,MAAM,CAAC,MAAM,EAAG,CAAC;oBACpB,MAAM,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;oBACnB,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAG,CAAC;wBACpC,IAAI,GAAK,MAAoB,CAAC,IAAI,CAAE,EAAE,CAAE,CAAA;oBACzC,CAAC;yBAAM,CAAC;wBACP,MAAM,IAAI,GAAK,MAAuC,CAAC,MAAM,CAAE,CAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAE,CAAA;wBAC/F,IAAI,GAAG,IAAI,UAAU,CAAE,IAAI,CAAE,CAAA;wBAC7B,IAAI,MAAM,GAAG,CAAC,CAAA;wBACd,KAAK,MAAM,KAAK,IAAM,MAAuC,EAAG,CAAC;4BAChE,IAAI,CAAC,GAAG,CAAE,KAAK,EAAE,MAAM,CAAE,CAAA;4BACzB,MAAM,IAAI,KAAK,CAAC,UAAU,CAAA;wBAC3B,CAAC;oBACF,CAAC;oBACD,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;gBAClB,CAAC;gBAED,IAAI,EAAE,KAAK,KAAK,IAAI,EAAE,KAAK,KAAK,IAAI,EAAE,KAAK,KAAK,EAAG,CAAC;oBACnD,UAAU,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAE,CAAA;oBAChC,OAAM;gBACP,CAAC;gBAED,MAAM,IAAI,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,0BAA0B,CAAA;gBACjF,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAE,CAAA;gBAEpD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAG,CAAC;oBACxB,IAAI,IAAI,CAAC,GAAG,EAAE;wBAAG,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;4BACtC,KAAK,EAAE,IAAI;4BACX,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE;4BACzB,IAAI,EAAE,QAAQ,CAAE,OAAO,CAAC,IAAI,CAAE;4BAC9B,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;4BAClB,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;4BACxB,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE;yBACvB,CAAC,CAAA;oBACF,MAAM,eAAe,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAC,OAAO,CAAE,OAAO,CAAE,CAAA;gBACxD,CAAC;gBAED,UAAU,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAE,CAAA;YAEjC,CAAC;YAAC,OAAO,KAAU,EAAG,CAAC;gBAEtB,IAAI,iBAAiB,CAAE,KAAK,CAAE;oBAAG,gBAAgB,CAAE,KAAK,CAAE,CAAA;gBAE1D,EAAE,CAAC,cAAc,CAAC;oBACjB,KAAK,EAAE,IAAI;oBACX,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;oBAC5B,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;oBACxB,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE;oBAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,KAAK,EAAE,KAAK,CAAC,KAAK;iBAClB,CAAC,CAAA;gBAEF,IAAI,CAAC,GAAG,EAAE,CAAA;YAEX,CAAC;QAEF,CAAC;QAGD,IAAI,CAAE,QAA6B;YAClC,eAAe,EAAE,CAAA;YACjB,OAAO,QAAQ,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC/C,CAAC;QAED,CAAC;QAAA,CAAE,MAAM,CAAC,GAAG,CAAE,4BAA4B,CAAE,CAAE;YAC9C,OAAO,eAAe,CAAC,IAAI,CAAE,kBAAkB,CAAE,CAAA;QAClD,CAAC;KAED;IAzUA;QADE,QAAQ;gDAGT;IAGD;QADE,QAAQ;iDAGT;IAGD;QADE,QAAQ;uDA4BT;IAGD;QADE,WAAW;uDA2CZ;IAGD;QADE,WAAW;sDA0GZ;IAkID;QADE,QAAQ;gDAIT;IA1UW,kBAAgB,mBAgV5B,CAAA;AAEF,CAAC,EApVS,CAAC,KAAD,CAAC,QAoVV;;;;ACpVD,oBAAoB;AACpB,IAAU,CAAC,CA8DV;AA9DD,WAAU,CAAC;IAEV,MAAa,qBAAsB,SAAQ,kBAAkB;QAG5D,KAAK,KAAK,OAAO,SAAS,CAAC,QAAQ,CAAE,SAAS,CAAE,CAAA,CAAC,CAAC;QAElD,GAAG,CAAE,GAAsB;YAE1B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAA;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAE,GAAG,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAE,CAAA;YAC/C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBAAG,OAAO,GAAG,CAAC,KAAK,CAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAE,CAAA;YAE5D,QAAQ,IAAI,CAAC,IAAI,EAAE,EAAG,CAAC;gBAEtB,KAAK,MAAM,CAAC,CAAC,CAAC;oBAEb,OAAO,GAAG,CAAC,KAAK,CAAE,IAAI,CAAC,MAAM,EAAE,EAAE;wBAChC,IAAI,EAAE,oBAAoB,CAAE,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAE,OAAO,EAAE,EAAE,CAAE,CAAE;qBAC/D,CAAE,CAAA;gBAEJ,CAAC;gBAED,KAAK,KAAK,CAAC,CAAC,CAAC;oBAEZ,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAE,cAAc,CAAE,CAAA;oBAC5C,IAAI,KAAK,CAAC,MAAM,EAAE;wBAAG,OAAO,GAAG,CAAC,KAAK,CAAE,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAE,CAAA;oBAE9E,MAAM,SAAS,GAAG,MAAM,CAAC,mBAAmB,CAAE,MAAM,CAAC,cAAc,CAAE,IAAI,CAAE,CAAE,CAAA;oBAE7E,OAAO,GAAG,CAAC,KAAK,CAAE;wBAEjB,wBAAQ;;;;OAIP,CAAS;wBAER,SAAS,CAAC,GAAG,CAAE,GAAG,CAAC,EAAE;4BACtB,IAAI,GAAG,KAAK,aAAa;gCAAG,OAAO,IAAI,CAAA;4BACvC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAE,GAAG,CAAE;gCAAG,OAAO,IAAI,CAAA;4BAChD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAE,GAAG,CAAE,CAAA;4BAC/B,OAAO,gBAAG,IAAI,EAAG,GAAG,CAAC,MAAM,CAAE,IAAI,CAAE,GAAG,GAAG;;gCAAK,GAAG;;gCAAE,oBAAK,CAAI,CAAA;wBAC7D,CAAC,CAAE;wBAEH,gBAAG,IAAI,EAAC,KAAK;;4BAAI,oBAAK,CAAI;wBAExB,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAE,GAAG,CAAC,EAAE;4BACvB,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,GAAG,CAAE,GAAG,CAAC,IAAI,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAA;4BAC5D,OAAO,gBAAG,IAAI,EAAE,GAAG;gCAAG,GAAG;gCAAC,oBAAK,CAAI,CAAA;wBACpC,CAAC,CAAE,CAEG,CAAE,CAAA;gBAEV,CAAC;YAEF,CAAC;QAEF,CAAC;KAED;IAvDA;QADE,SAAS,CAAC,MAAM;sDACgC;IAHtC,uBAAqB,wBA0DjC,CAAA;AAEF,CAAC,EA9DS,CAAC,KAAD,CAAC,QA8DV;;;;AC/DD,gBAAgB;AAChB,4DAA4D;AAC5D,IAAI;;;;;;;ACFJ,IAAU,CAAC,CAqCV;AArCD,WAAU,CAAC;IAEV,SAAgB,oBAAoB,CAAoC,KAAY;QAEnF,OAAO,MAAM,CAAC,OAAO,CAAE,KAAK,CAAE,CAAC,GAAG,CAAE,CAAC,CAAE,KAAK,EAAE,IAAI,CAAE,EAAC,EAAE;YAEtD,IAAI,KAAK,KAAK,GAAG;gBAAG,OAAO,EAAE,CAAA;YAC7B,IAAI,KAAK,KAAK,GAAG;gBAAG,OAAO,EAAE,CAAA;YAC7B,IAAI,KAAK,KAAK,IAAI;gBAAG,OAAO,EAAE,CAAA;YAC9B,IAAI,CAAC,IAAI;gBAAG,OAAO,EAAE,CAAA;YAErB,MAAM,KAAK,GAAG,IAA6B,CAAA;YAE3C,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;YACzE,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;YACzD,MAAM,IAAI,GAAG,kBAAkB,CAAE,KAAK,CAAE,CAAA;YAExC,IAAI,MAAM,GAAK,CAAE,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAmB,CAAC,GAAG,CAAE,CAAC,CAAE,GAAG,EAAG,GAAG,CAAE,EAAE,EAAE;gBAE1F,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,GAAG;oBAAG,OAAO,kBAAkB,CAAE,MAAM,CAAE,GAAG,CAAE,CAAE,GAAG,GAAG,CAAA;gBAEvF,GAAG,GAAG,CAAE,GAAG,KAAK,SAAS,CAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAE,MAAM,CAAE,GAAG,CAAE,CAAE,CAAA;gBACtE,GAAG,GAAG,CAAE,GAAG,KAAK,SAAS,CAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAE,MAAM,CAAE,GAAG,CAAE,CAAE,CAAA;gBAEtE,OAAO,GAAI,GAAI,IAAK,GAAI,GAAG,CAAA;YAE5B,CAAC,CAAE,CAAC,IAAI,CAAE,EAAE,CAAE,CAAA;YAEd,IAAI,KAAK,GAAG,oBAAoB,CAAE,IAAwB,CAAE,CAAA;YAC5D,IAAI,KAAK;gBAAG,KAAK,GAAG,IAAI,KAAK,GAAG,CAAA;YAEhC,OAAO,GAAG,KAAK,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,EAAE,CAAA;QAEnD,CAAC,CAAC,CAAC,MAAM,CAAE,OAAO,CAAE,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;IAEjC,CAAC;IAjCe,sBAAoB,uBAiCnC,CAAA;AAEF,CAAC,EArCS,CAAC,KAAD,CAAC,QAqCV;;;;ACrCD,IAAU,CAAC,CA+EV;AA/ED,WAAU,CAAC;IAEV,8JAA8J;IAC9J,MAAa,YAAY;QAGhB;QADR,YACQ,MAAe;YAAf,WAAM,GAAN,MAAM,CAAS;YAGtB,KAAK,IAAI,IAAI,IAAI,MAAM,EAAG,CAAC;gBAC1B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;oBACf,IAAI,EAAG,IAAI;oBACX,MAAM,EAAG,MAAM,CAAE,IAAI,CAAE;oBACvB,IAAI,EAAG,MAAM,CAAE,KAAK,GAAG,MAAM,CAAE,IAAI,CAAE,CAAC,MAAM,CAAE,CAAC,IAAI,CAAE,EAAE,CAAG,CAAC,MAAM,GAAG,CAAC;iBACrE,CAAC,CAAA;YACH,CAAC;YAED,MAAM,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAE,CAAC,IAAI,CAAE,KAAK,CAAE,GAAG,GAAG,CAAA;YACpF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAE,mBAAoB,KAAM,aAAa,EAAG,KAAK,CAAE,CAAA;QAExE,CAAC;QAED,KAAK,GAAG,EAIN,CAAA;QAEF,MAAM,CAAS;QAEf,QAAQ,CACP,IAAa,EACb,MAAwF;YAGxF,IAAI,GAAG,GAAG,CAAC,CAAA;YAEX,MAAM,EAAG,OAAO,GAAG,GAAG,IAAI,CAAC,MAAM,EAAG,CAAC;gBAEpC,MAAM,KAAK,GAAG,GAAG,CAAA;gBAEjB,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,KAAK,CAAA;gBAC7B,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAE,IAAI,CAAG,CAAA;gBAErC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAA;gBAC3B,IAAI,KAAK,KAAK,GAAG;oBAAG,MAAM,IAAI,KAAK,CAAE,aAAa,CAAE,CAAA;gBAEpD,IAAI,MAAM,GAAG,KAAK,CAAE,CAAC,CAAE,CAAA;gBACvB,IAAI,MAAM;oBAAG,MAAM,CAAE,EAAE,EAAG,MAAM,EAAG,CAAE,MAAM,CAAE,EAAG,KAAK,CAAE,CAAA;gBAEvD,IAAI,MAAM,GAAG,KAAK,CAAE,CAAC,CAAE,CAAA;gBACvB,IAAI,CAAC,MAAM;oBAAG,SAAQ;gBAEtB,IAAI,MAAM,GAAG,CAAC,CAAA;gBACd,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAG,CAAC;oBAE9B,IAAI,KAAK,CAAE,MAAM,GAAG,CAAC,CAAE,EAAG,CAAC;wBAC1B,MAAM,CAAE,IAAI,CAAC,IAAI,EAAG,MAAM,EAAG,KAAK,CAAC,KAAK,CAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,IAAI,CAAE,EAAG,KAAK,GAAG,MAAM,CAAC,MAAM,CAAE,CAAA;wBAChG,SAAS,MAAM,CAAA;oBAChB,CAAC;oBAED,MAAM,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,CAAA;gBACxB,CAAC;gBAED,SAAS,CAAE,IAAI,KAAK,CAAE,wBAAwB,CAAE,CAAE,CAAA;YAEnD,CAAC;QAEF,CAAC;QAED,KAAK,CACJ,IAAa,EACb,QAA6G;YAE7G,IAAI,CAAC,QAAQ,CAAE,IAAI,EAAG,CAAE,IAAI,EAAG,GAAG,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAE,GAAI,IAAI,CAAE,CAAE,CAAA;QAC1E,CAAC;KAED;IA1EY,cAAY,eA0ExB,CAAA;AAEF,CAAC,EA/ES,CAAC,KAAD,CAAC,QA+EV;;;;AC/ED,IAAU,CAAC,CA2HV;AA3HD,WAAU,CAAC;IAEV,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC;QAC/B,QAAQ,EAAG,KAAK;QAChB,iBAAiB,EAAG,GAAG;QACvB,YAAY,EAAG,IAAI;QACnB,iBAAiB,EAAG,WAAW;QAC/B,aAAa,EAAG,IAAI;KACpB,CAAC,CAAA;IAEF,SAAgB,sBAAsB,CAAE,GAAW;QAElD,IAAI,MAAM,GAAG,EAAsB,CAAA;QACnC,IAAI,IAAI,GAAG,IAA+B,CAAA;QAC1C,IAAI,KAAK,GAAG,CAAE,MAAM,CAAE,CAAA;QACtB,IAAI,KAAK,GAAG,IAAuB,CAAA;QACnC,IAAI,MAAM,GAAG,IAAyB,CAAA;QAEtC,SAAS,OAAO,CAAE,MAAe;YAChC,MAAM,UAAU,GAAG,GAAG,CAAC,SAAS,CAAE,CAAC,EAAG,MAAM,CAAE,GAAG,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAE,MAAM,CAAE,CAAA;YACnF,SAAS,CAAE,IAAI,KAAK,CAAE,uBAAwB,MAAO,QAAS,UAAW,GAAG,CAAE,CAAE,CAAA;QACjF,CAAC;QAED,MAAM,CAAC,KAAK,CAAE,GAAG,EAAG;YAEnB,EAAE,EAAG,CAAE,IAAI,EAAG,MAAM,EAAG,MAAM,EAAG,EAAE;gBAEjC,IAAI,MAAM,EAAG,CAAC;oBAEb,IAAI,GAAG,kBAAkB,CAAE,IAAI,CAAE,CAAA;oBACjC,KAAK,GAAG,CAAE,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE;wBACpC,CAAC,CAAC,CAAE,KAAK,CAAC,CAAC,CAAC,EAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAE;wBAChC,CAAC,CAAC,CAAE,CAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAE,GAAG,IAAI,CAAE,CAAA;gBAEnC,CAAC;qBAAM,CAAC;oBAEP,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAE,GAAG,eAAe,CAAC,IAAI,CAAE,IAAI,CAAG,CAAA;oBACpD,IAAI,GAAG,MAAM,CAAE,kBAAkB,CAAE,IAAI,CAAE,CAAE,GAAG,EAAE,CAAA;oBAChD,IAAI,KAAK;wBAAG,IAAI,CAAE,GAAG,CAAE,GAAG,KAAK,KAAK,GAAG,CAAA;oBACvC,KAAK,CAAC,IAAI,CAAE,MAAM,CAAE,CAAA;gBAErB,CAAC;YAEF,CAAC;YAED,QAAQ,EAAG,CAAE,MAAM,EAAG,MAAM,EAAG,MAAM,EAAE,EAAE;gBAExC,IAAI,MAAM,EAAG,CAAC;oBAEb,IAAI,KAAK,EAAG,CAAC;wBACZ,IAAI,MAAM,KAAK,IAAI;4BAAG,KAAK,CAAC,IAAI,CAAE,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,CAAE,CAAA;wBACrD,MAAO,CAAC,IAAI,CAAE,KAAM,CAAE,CAAA;wBACtB,KAAK,GAAG,IAAI,CAAA;oBACb,CAAC;yBAAM,CAAC;wBACP,KAAK,GAAG,CAAE,MAAM,CAAE,CAAA;oBACnB,CAAC;gBAEF,CAAC;qBAAM,IAAI,IAAI,EAAG,CAAC;oBAElB,MAAM,GAAG,IAAI,CAAE,MAAoB,CAAE,GAAG,EAAgB,CAAA;gBAEzD,CAAC;qBAAM,CAAC;oBAEP,MAAM,GAAG,EAAgB,CAAA;oBACzB,MAAM,CAAE,EAAE,CAAE,GAAG,MAAM,CAAA;gBAEtB,CAAC;YAEF,CAAC;YAED,iBAAiB,EAAG,CAAE,KAAK,EAAG,MAAM,EAAG,MAAM,EAAE,EAAE;gBAEhD,IAAI,CAAC,MAAM;oBAAG,OAAO,CAAE,MAAM,CAAE,CAAA;gBAE/B,KAAK,GAAG,CAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAE,CAAA;YAEjC,CAAC;YAED,YAAY,EAAG,CAAE,KAAK,EAAG,MAAM,EAAG,MAAM,EAAE,EAAE;gBAE3C,IAAI,KAAK,EAAG,CAAC;oBACZ,KAAK,CAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,IAAI,KAAK,CAAA;gBACnC,CAAC;qBAAM,CAAC;oBACP,IAAI,CAAC,IAAI;wBAAG,OAAO,CAAE,MAAM,CAAE,CAAA;oBAC7B,MAAM,GAAG,IAAK,CAAA;oBACd,MAAM,GAAG,IAAI,CAAA;oBACb,IAAI,GAAG,IAAI,CAAA;gBACZ,CAAC;YAEF,CAAC;YAED,iBAAiB,EAAE,CAAE,KAAK,EAAG,MAAM,EAAG,MAAM,EAAE,EAAE;gBAE/C,IAAI,KAAK,EAAG,CAAC;oBACZ,MAAO,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;oBACrB,KAAK,GAAG,IAAI,CAAA;gBACb,CAAC;gBAED,MAAM,GAAG,KAAK,CAAC,GAAG,EAAG,CAAA;gBACrB,MAAM,GAAG,IAAI,CAAA;gBACb,IAAI,GAAG,IAAI,CAAA;YAEZ,CAAC;YAED,aAAa,EAAG,CAAE,KAAK,EAAE,EAAE;gBAE1B,IAAI,KAAK,EAAG,CAAC;oBACZ,KAAK,CAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,IAAI,KAAK,CAAA;gBACnC,CAAC;qBAAM,CAAC;oBACP,MAAM,GAAG,KAAK,CAAC,GAAG,EAAG,CAAA;oBACrB,MAAM,GAAG,IAAI,CAAA;oBACb,IAAI,GAAG,IAAI,CAAA;gBACZ,CAAC;YAEF,CAAC;SAED,CAAE,CAAA;QAEH,IAAI,KAAK;YAAG,MAAO,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;QAEjC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAA;IAChB,CAAC;IA/Ge,wBAAsB,yBA+GrC,CAAA;AAEF,CAAC,EA3HS,CAAC,KAAD,CAAC,QA2HV;;;;AC3HD,IAAU,CAAC,CAmNV;AAnND,WAAU,CAAC;IAEV,SAAS,KAAK,CAAyC,GAAW,EAAE,KAAY;QAC/E,gBAAgB,CAAE,GAAG,EAAE,oBAAoB,CAAE,KAAK,CAAE,CAAE,CAAA;QACtD,gBAAgB,CAAE,KAAK,EAAE,sBAAsB,CAAE,GAAG,CAAE,CAAE,CAAA;IACzD,CAAC;IAED,SAAS,CAAC;QAET,MAAM;YACL,KAAK,CAAE,EAAE,EAAE,EAAE,CAAE,CAAA;QAChB,CAAC;QAED,YAAY;YACX,KAAK,CACJ,YAAY,EACZ;gBACC,UAAU,EAAE,EAAE;aACd,CACD,CAAA;QACF,CAAC;QAED,aAAa;YACZ,KAAK,CACJ,kBAAkB,EAClB;gBACC,IAAI,EAAE;oBACL,GAAG,EAAE,CAAC,CAAE,UAAU,CAAE,CAAC;iBACrB;aACD,CACD,CAAA;QACF,CAAC;QAED,cAAc;YACb,KAAK,CACJ,gBAAgB,EAChB;gBACC,MAAM,EAAE;oBACP,IAAI,EAAE,EAAE;iBACR;aACD,CACD,CAAA;QACF,CAAC;QAED,uBAAuB;YACtB,KAAK,CACJ,qBAAqB,EACrB;gBACC,MAAM,EAAE;oBACP,GAAG,EAAE,CAAC,CAAE,OAAO,CAAE,CAAC;oBAClB,MAAM,EAAE,EAAE;iBACV;aACD,CACD,CAAA;QACF,CAAC;QAED,gBAAgB;YACf,KAAK,CACJ,YAAY,EACZ;gBACC,GAAG,EAAE,EAAE;gBACP,MAAM,EAAE,EAAE;aACV,CACD,CAAA;QACF,CAAC;QAED,qCAAqC;YACpC,gBAAgB,CACf,sBAAsB,CAAE,qBAAqB,CAAE,EAC/C;gBACC,IAAI,EAAE;oBACL,GAAG,EAAE,CAAC,CAAE,KAAK,CAAE,CAAC;iBAChB;gBACD,GAAG,EAAE;oBACJ,GAAG,EAAE,CAAC,CAAE,QAAQ,CAAE,CAAC;iBACnB;aACD,CACD,CAAA;QACF,CAAC;QAED,iCAAiC;YAChC,gBAAgB,CACf,sBAAsB,CAAE,oBAAoB,CAAE,EAC9C;gBACC,KAAK,EAAE,EAAE;gBACT,GAAG,EAAE,EAAE;gBACP,QAAQ,EAAE,EAAE;aACZ,CACD,CAAA;QACF,CAAC;QAED,YAAY;YACX,KAAK,CACJ,2BAA2B,EAC3B;gBACC,EAAE,EAAE;oBACH,MAAM,EAAE;wBACP,GAAG,EAAE,EAAE;qBACP;oBACD,IAAI,EAAE,EAAE;iBACR;gBACD,IAAI,EAAE,EAAE;aACR,CACD,CAAA;QACF,CAAC;QAED,QAAQ;YACP,KAAK,CACJ,YAAY,EACZ;gBACC,GAAG,EAAE;oBACJ,GAAG,EAAE,IAAI;iBACT;gBACD,IAAI,EAAE;oBACL,GAAG,EAAE,KAAK;iBACV;aACD,CACD,CAAA;QACF,CAAC;QAED,cAAc;YACb,KAAK,CACJ,8BAA8B,EAC9B;gBACC,GAAG,EAAE;oBACJ,GAAG,EAAE,CAAC,CAAE,QAAQ,CAAE,CAAC;iBACnB;gBACD,MAAM,EAAE;oBACP,IAAI,EAAE,CAAC,CAAE,SAAS,CAAE,CAAC;iBACrB;aACD,CACD,CAAA;QACF,CAAC;QAED,eAAe;YACd,KAAK,CACJ,sEAAsE,EACtE;gBACC,GAAG,EAAE;oBACJ,GAAG,EAAE,CAAC,CAAE,QAAQ,CAAE,CAAC;iBACnB;gBACD,GAAG,EAAE;oBACJ,GAAG,EAAE,CAAC,CAAE,IAAI,EAAE,IAAI,CAAE,CAAC;iBACrB;gBACD,MAAM,EAAE;oBACP,GAAG,EAAE,CAAC,CAAE,EAAE,EAAE,IAAI,CAAE,CAAC;iBACnB;gBACD,MAAM,EAAE;oBACP,GAAG,EAAE,CAAC,CAAE,KAAK,EAAE,EAAE,CAAE,CAAC;iBACpB;gBACD,KAAK,EAAE;oBACN,GAAG,EAAE,CAAE,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,CAAE;iBAC/B;aACD,CACD,CAAA;QACF,CAAC;QAED,kBAAkB;YACjB,gBAAgB,CACf,sBAAsB,CAAE,4BAA4B,CAAE,EACtD;gBACC,GAAG,EAAE;oBACJ,GAAG,EAAE,CAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAE;iBACzB;gBACD,GAAG,EAAE;oBACJ,GAAG,EAAE,CAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAE;iBAC1B;aACD,CACD,CAAA;QACF,CAAC;QAED,SAAS;YACR,KAAK,CACJ,qBAAqB,EACrB;gBACC,MAAM,EAAE;oBACP,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,CAAE,GAAG,EAAE,KAAK,CAAE,CAAC,EAAE;iBAC/B;aACD,CACD,CAAA;QACF,CAAC;QAED,SAAS;YACR,KAAK,CACJ,qFAAqF,EACrF;gBACC,WAAW,EAAE;oBACZ,KAAK,EAAE;wBACN,GAAG,EAAE;4BACJ,CAAC,QAAQ,CAAC;4BACV,CAAC,QAAQ,CAAC;yBACV;qBACD;oBACD,UAAU,EAAE;wBACX,GAAG,EAAE,IAAI;wBACT,IAAI,EAAE,EAAE;wBACR,OAAO,EAAE,EAAE;qBACX;oBACD,UAAU,EAAE;wBACX,GAAG,EAAE,KAAK;qBACV;oBACD,IAAI,EAAE;wBACL,GAAG,EAAE,CAAC,CAAE,GAAG,EAAE,KAAK,CAAE,CAAC;qBACrB;iBACD;aACD,CACD,CAAA;QACF,CAAC;KAED,CAAC,CAAA;AAEH,CAAC,EAnNS,CAAC,KAAD,CAAC,QAmNV;;;;ACnND,IAAU,CAAC,CAaV;AAbD,WAAU,CAAC;IAEV;;;OAGG;IACQ,kBAAgB,GAAG,CAAE,GAAY,EAAE,EAAE;QAE/C,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAG,OAAO,GAAG,CAAA;QAExC,OAAO,SAAS,CAAE,IAAI,eAAe,CAAE,GAAI,GAAI,kBAAkB,CAAE,CAAE,CAAA;IACtE,CAAC,CAAA;AAEF,CAAC,EAbS,CAAC,KAAD,CAAC,QAaV;;;;ACbD,IAAU,CAAC,CAoBV;AApBD,WAAU,CAAC;IACV,SAAS,CAAC;QAET,WAAW;YACV,gBAAgB,CAAE,EAAE,CAAE,CAAA;QACvB,CAAC;QAED,eAAe;YACd,gBAAgB,CAAE,GAAE,EAAE;gBACrB,gBAAgB,CAAE,CAAQ,CAAE,CAAA;YAC7B,CAAC,EAAG,mBAAmB,CAAE,CAAA;QAC1B,CAAC;QAED,kBAAkB;YACjB,gBAAgB,CAAE,GAAE,EAAE;gBACrB,gBAAgB,CAAE,IAAI,MAAM,CAAE,GAAG,CAAS,CAAE,CAAA;YAC7C,CAAC,EAAG,mBAAmB,CAAE,CAAA;QAC1B,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EApBS,CAAC,KAAD,CAAC,QAoBV;;;;ACpBD,IAAU,CAAC,CA0CV;AA1CD,WAAU,CAAC;IAEV;;;OAGG;IACH,SAAgB,iBAAiB,CAAmC,GAAI,GAAS;QAEhF,OAAO,eAAe,CAAE,CAAE,GAAoC,EAAG,EAAE;YAElE,MAAM,MAAM,GAAG,EAAa,CAAA;YAE5B,KAAK,MAAM,IAAI,IAAI,GAAG,EAAG,CAAC;gBAEzB,IAAI,MAAM,GAAG,CAAC,CAAC,gBAAgB,CAAA;gBAE/B,IAAI,CAAC;oBAEJ,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,gBAAgB,CAAA;oBAEhC,OAAO,IAAI,CAAE,GAAG,CAAiC,CAAA;gBAElD,CAAC;gBAAC,OAAQ,KAAK,EAAG,CAAC;oBAElB,CAAC,CAAC,SAAS,GAAG,MAAM,CAAA;oBAEpB,IAAI,KAAK,YAAY,eAAe,EAAG,CAAC;wBACvC,MAAM,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;oBACrB,CAAC;yBAAM,CAAC;wBACP,OAAO,gBAAgB,CAAE,KAAK,CAAE,CAAA;oBACjC,CAAC;gBAEF,CAAC;YAEF,CAAC;YAED,OAAO,SAAS,CAAE,IAAI,eAAe,CAAE,GAAG,GAAG,yBAAyB,EAAG,EAAE,EAAE,GAAI,MAAM,CAAE,CAAE,CAAA;QAE5F,CAAC,EAAG,GAAG,CAAE,CAAA;IAEV,CAAC;IAlCe,mBAAiB,oBAkChC,CAAA;AAEF,CAAC,EA1CS,CAAC,KAAD,CAAC,QA0CV;;;;AC1CD,IAAU,CAAC,CAkBV;AAlBD,WAAU,CAAC;IACV,SAAS,CAAC;QAET,UAAU;YACT,iBAAiB,CAAE,gBAAgB,EAAG,gBAAgB,CAAE,CAAE,CAAC,CAAE,CAAA;QAC9D,CAAC;QAED,WAAW;YACV,iBAAiB,CAAE,gBAAgB,EAAG,gBAAgB,CAAE,CAAE,EAAE,CAAE,CAAA;QAC/D,CAAC;QAED,UAAU;YACT,gBAAgB,CAAE,GAAE,EAAE;gBACrB,iBAAiB,CAAE,gBAAgB,EAAG,gBAAgB,CAAE,CAAE,KAAY,CAAE,CAAA;YACzE,CAAC,EAAG,8BAA8B,CAAE,CAAA;QACrC,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EAlBS,CAAC,KAAD,CAAC,QAkBV;;;;AClBD,IAAU,CAAC,CA2BV;AA3BD,WAAU,CAAC;IAEV;;;OAGG;IACH,SAAgB,kBAAkB,CAIjC,GAAQ,EACR,QAAmB;QAGnB,OAAO,eAAe,CAAE,CAAE,GAAoC,EAAG,EAAE;YAElE,IAAI,GAAG,KAAK,SAAS,EAAG,CAAC;gBAExB,OAAO,QAAQ,EAAE,EAAS,CAAA;YAC3B,CAAC;YAED,OAAO,GAAG,CAAE,GAAG,CAAqB,CAAA;QAErC,CAAC,EAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAE,CAAA;IAExB,CAAC;IAnBe,oBAAkB,qBAmBjC,CAAA;AAEF,CAAC,EA3BS,CAAC,KAAD,CAAC,QA2BV;;;;AC3BD,IAAU,CAAC,CA8CV;AA9CD,WAAU,CAAC;IAEV,MAAM,GAAG,GAAG,kBAAkB,CAAE,gBAAgB,CAAE,CAAA;IAClD,MAAM,WAAW,GAAG,kBAAkB,CAAE,gBAAgB,EAAE,GAAE,EAAE,CAAC,CAAC,CAAE,CAAA;IAYlE,SAAS,CAAC;QAET,gBAAgB;YACf,iBAAiB,CAChB,GAAG,CAAE,SAAS,CAAE,EAChB,SAAS,CACT,CAAA;QACF,CAAC;QAED,YAAY;YACX,iBAAiB,CAChB,GAAG,CAAE,CAAC,CAAE,EACR,CAAC,CACD,CAAA;QACF,CAAC;QAED,YAAY;YACX,iBAAiB,CAChB,WAAW,CAAE,SAAS,CAAE,EACxB,CAAC,CACD,CAAA;QACF,CAAC;QAED,SAAS;YACR,gBAAgB,CACf,GAAE,EAAE,CAAC,GAAG,CAAE,IAAW,CAAE,EACvB,sBAAsB,CACtB,CAAA;QACF,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EA9CS,CAAC,KAAD,CAAC,QA8CV;;;;;;;;;;;;;;;;AC9CD,IAAU,CAAC,CA4CV;AA5CD,WAAU,CAAC;IAEV;;;OAGG;IACH,SAAgB,gBAAgB,CAE7B,GAAS;QAUX,OAAO,eAAe,CAAE,CAAE,GAAW,EAAG,EAAE;YAEzC,IAAI,GAAG,GAAG,EAAY,CAAA;YAEtB,KAAK,MAAM,KAAK,IAAI,GAAG,EAAG,CAAC;gBAE1B,IAAI,CAAC;oBACJ,GAAG,CAAC,KAA4B,CAAE;wBACjC,GAAG,CAAC,KAAK,CAAC,CAAI,GAAc,CAAE,KAA2B,CAAE,CAAE,CAAA;gBAC/D,CAAC;gBAAC,OAAO,KAAU,EAAG,CAAC;oBAEtB,IAAI,KAAK,YAAY,OAAO;wBAAG,OAAO,gBAAgB,CAAE,KAAK,CAAE,CAAA;oBAE/D,KAAK,CAAC,OAAO,GAAG,IAAK,IAAI,CAAC,SAAS,CAAE,KAAK,CAAG,KAAM,KAAK,CAAC,OAAQ,EAAE,CAAA;oBACnE,OAAO,SAAS,CAAE,KAAK,CAAE,CAAA;gBAE1B,CAAC;YAEF,CAAC;YAED,OAAO,GAAyB,CAAA;QAEjC,CAAC,EAAG,GAAG,CAAE,CAAA;IAEV,CAAC;IApCe,kBAAgB,mBAoC/B,CAAA;AAEF,CAAC,EA5CS,CAAC,KAAD,CAAC,QA4CV;;;;AC5CD,IAAU,CAAC,CAoDV;AApDD,WAAU,CAAC;IAEV,SAAS,CAAC;QAET,eAAe;YACd,MAAM,IAAI,GAAG,gBAAgB,CAAC,EAAE,GAAG,EAAG,gBAAgB,EAAE,CAAC,CAAA;YACzD,IAAI,CAAC,EAAE,GAAG,EAAG,CAAC,EAAE,CAAC,CAAA;QAClB,CAAC;QAED,gBAAgB;YACf,MAAM,IAAI,GAAG,gBAAgB,CAAC,EAAE,GAAG,EAAG,gBAAgB,EAAE,CAAC,CAAA;YACzD,IAAI,CAAE,EAAE,GAAG,EAAG,CAAC,EAAG,IAAI,EAAG,KAAK,EAAS,CAAE,CAAA;QAC1C,CAAC;QAED,0BAA0B;QAE1B,mCAAmC;QACnC,8BAA8B;QAC9B,oDAAoD;QACpD,MAAM;QAEN,UAAU;QACV,mBAAmB;QACnB,aAAa;QACb,OAAO;QACP,sBAAsB;QACtB,kBAAkB;QAClB,OAAO;QACP,QAAQ;QACR,MAAM;QAEN,MAAM;QAEN,gBAAgB;YACf,gBAAgB,CAAE,GAAE,EAAE;gBAErB,MAAM,IAAI,GAAG,gBAAgB,CAAC,EAAE,GAAG,EAAG,gBAAgB,EAAG,IAAI,EAAG,gBAAgB,EAAE,CAAC,CAAA;gBACnF,IAAI,CAAE,EAAE,GAAG,EAAG,CAAC,EAAS,CAAE,CAAA;YAE3B,CAAC,EAAG,oCAAoC,CAAE,CAAA;QAC3C,CAAC;QAED,qBAAqB;YACpB,gBAAgB,CAAE,GAAE,EAAE;gBAErB,MAAM,IAAI,GAAG,gBAAgB,CAAC,EAAE,IAAI,EAAG,gBAAgB,CAAC,EAAE,GAAG,EAAG,gBAAgB,EAAE,CAAC,EAAE,CAAC,CAAA;gBACtF,IAAI,CAAE,EAAE,IAAI,EAAG,EAAG,EAAS,CAAE,CAAA;YAE9B,CAAC,EAAG,4CAA4C,CAAE,CAAA;QACnD,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EApDS,CAAC,KAAD,CAAC,QAoDV;;;;ACpDD,IAAU,CAAC,CA+BV;AA/BD,WAAU,CAAC;IAEV;;;OAGG;IACH,SAAgB,eAAe,CAAiC,GAAS;QAExE,OAAO,eAAe,CAAE,CAAE,GAAqC,EAAG,EAAE;YAEnE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAE,GAAG,CAAE;gBAAG,OAAO,SAAS,CAAE,IAAI,eAAe,CAAE,GAAI,GAAI,kBAAkB,CAAE,CAAE,CAAA;YAEjG,OAAO,GAAG,CAAC,GAAG,CAAE,CAAE,IAAI,EAAG,KAAK,EAAE,EAAE;gBAEjC,IAAI,CAAC;oBACJ,OAAO,GAAG,CAAE,IAAI,CAAE,CAAA;gBACnB,CAAC;gBAAC,OAAO,KAAU,EAAG,CAAC;oBAEtB,IAAI,KAAK,YAAY,OAAO;wBAAG,OAAO,gBAAgB,CAAE,KAAK,CAAE,CAAA;oBAE/D,KAAK,CAAC,OAAO,GAAG,IAAK,KAAM,KAAM,KAAK,CAAC,OAAQ,EAAE,CAAA;oBACjD,OAAO,SAAS,CAAE,KAAK,CAAE,CAAA;gBAE1B,CAAC;YAEF,CAAC,CAAkC,CAAA;QAEpC,CAAC,EAAG,GAAG,CAAE,CAAA;IAEV,CAAC;IAvBe,iBAAe,kBAuB9B,CAAA;AAEF,CAAC,EA/BS,CAAC,KAAD,CAAC,QA+BV;;;;AC/BD,IAAU,CAAC,CA8BV;AA9BD,WAAU,CAAC;IACV,SAAS,CAAC;QAET,gBAAgB;YACf,eAAe,CAAE,gBAAgB,CAAE,CAAE,EAAE,CAAE,CAAA;QAC1C,CAAC;QAED,UAAU;YACT,eAAe,CAAE,gBAAgB,CAAE,CAAE,CAAE,CAAC,EAAG,CAAC,CAAE,CAAE,CAAA;QACjD,CAAC;QAED,cAAc;YACb,gBAAgB,CAAE,GAAE,EAAE;gBACrB,eAAe,CAAE,gBAAgB,CAAE,CAAE,EAAE,CAAC,CAAC,CAAC,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,EAAG,GAAG,EAAG,GAAE,EAAE,GAAE,CAAC,EAAqB,CAAE,CAAA;YACnG,CAAC,EAAG,iCAAiC,CAAE,CAAA;QACxC,CAAC;QAED,gBAAgB;YACf,gBAAgB,CAAE,GAAE,EAAE;gBACrB,eAAe,CAAE,gBAAgB,CAAE,CAAE,CAAE,CAAC,EAAG,GAAoB,CAAE,CAAE,CAAA;YACpE,CAAC,EAAG,uBAAuB,CAAE,CAAA;QAC9B,CAAC;QAED,qBAAqB;YACpB,gBAAgB,CAAE,GAAE,EAAE;gBACrB,eAAe,CAAE,eAAe,CAAE,gBAAgB,CAAE,CAAE,CAAE,CAAE,EAAE,EAAG,CAAE,CAAC,EAAG,CAAC,EAAG,KAAK,CAAE,CAAS,CAAE,CAAA;YAC5F,CAAC,EAAG,+BAA+B,CAAE,CAAA;QACtC,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EA9BS,CAAC,KAAD,CAAC,QA8BV;;;;AC9BD,IAAU,CAAC,CAaV;AAbD,WAAU,CAAC;IAEV;;;OAGG;IACQ,mBAAiB,GAAG,CAAE,GAAa,EAAE,EAAE;QAEjD,IAAI,OAAO,GAAG,KAAK,SAAS;YAAG,OAAO,GAAG,CAAA;QAEzC,OAAO,SAAS,CAAE,IAAI,eAAe,CAAE,GAAI,GAAI,mBAAmB,CAAE,CAAE,CAAA;IACvE,CAAC,CAAA;AAEF,CAAC,EAbS,CAAC,KAAD,CAAC,QAaV;;;;ACbD,IAAU,CAAC,CAwBV;AAxBD,WAAU,CAAC;IACV,SAAS,CAAC;QAET,mBAAmB;YAClB,iBAAiB,CAAE,IAAI,CAAE,CAAA;QAC1B,CAAC;QAED,oBAAoB;YACnB,iBAAiB,CAAE,KAAK,CAAE,CAAA;QAC3B,CAAC;QAED,gBAAgB;YACf,gBAAgB,CAAE,GAAE,EAAE;gBACrB,iBAAiB,CAAE,GAAU,CAAE,CAAA;YAChC,CAAC,EAAG,oBAAoB,CAAE,CAAA;QAC3B,CAAC;QAED,mBAAmB;YAClB,gBAAgB,CAAE,GAAE,EAAE;gBACrB,iBAAiB,CAAE,IAAI,OAAO,CAAE,EAAE,CAAS,CAAE,CAAA;YAC9C,CAAC,EAAG,wBAAwB,CAAE,CAAA;QAC/B,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EAxBS,CAAC,KAAD,CAAC,QAwBV;;;;ACxBD,IAAU,CAAC,CAgCV;AAhCD,WAAU,CAAC;IAEV;;;OAGG;IACH,SAAgB,cAAc,CAE3B,IAAa,EAAG,IAAW;QAI7B,MAAM,KAAK,GAAG,EAAkC,CAAA;QAEhD,KAAK,IAAI,GAAG,IAAI,IAAI,EAAG,CAAC;YACvB,IAAI,MAAM,CAAC,KAAK,CAAE,MAAM,CAAE,GAAG,CAAE,CAAE,EAAG,CAAC;gBACpC,KAAK,CAAE,IAAI,CAAE,GAAG,CAAE,CAAE,GAAG,GAAG,CAAA;YAC3B,CAAC;QACF,CAAC;QAED,OAAO,eAAe,CAAE,CAAE,KAAa,EAAG,EAAE;YAE3C,IAAK,OAAO,KAAK,CAAE,KAAK,CAAE,KAAK,QAAQ,EAAG,CAAC;gBAC1C,OAAO,SAAS,CAAE,IAAI,eAAe,CAAE,GAAG,KAAK,oBAAoB,IAAI,OAAO,CAAE,CAAE,CAAA;YACnF,CAAC;YAED,OAAO,KAAK,CAAA;QAEb,CAAC,EAAG,EAAE,IAAI,EAAG,IAAI,EAAE,CAAE,CAAA;IAEtB,CAAC;IAxBe,gBAAc,iBAwB7B,CAAA;AAEF,CAAC,EAhCS,CAAC,KAAD,CAAC,QAgCV;;;;AChCD,IAAU,CAAC,CA4FV;AA5FD,WAAU,CAAC;IAEV,IAAK,GAAqB;IAA1B,WAAK,GAAG;QAAG,6BAAI,CAAA;QAAG,iCAAM,CAAA;IAAC,CAAC,EAArB,GAAG,KAAH,GAAG,QAAkB;IAE1B,IAAK,MAGJ;IAHD,WAAK,MAAM;QACV,+BAAqB,CAAA;QACrB,+BAAqB,CAAA;IACtB,CAAC,EAHI,MAAM,KAAN,MAAM,QAGV;IAED,yEAAyE;IACzE,4CAA4C;IAC5C,+DAA+D;IAE/D,SAAS,CAAC;QAET,gBAAgB;YAEf,MAAM,GAAG,GAAG,cAAc,CAAE,KAAK,EAAG,GAAG,CAAE,CAAA;YAEzC,gBAAgB,CAAE,GAAG,CAAC,MAAM,EAAG;gBAC9B,IAAI,EAAG,KAAK;gBACZ,IAAI,EAAG,GAAG;aACV,CAAE,CAAA;QAEJ,CAAC;QAED,cAAc;YACb,MAAM,GAAG,GAAG,cAAc,CAAE,KAAK,EAAG,GAAG,CAAE,CAAA;YACzC,iBAAiB,CAAE,GAAG,CAAC,MAAM,CAAC,IAAI,EAAG,KAAK,CAAE,CAAA;QAC7C,CAAC;QAED,wBAAwB;YACvB,MAAM,GAAG,GAAG,cAAc,CAAE,KAAK,EAAG,GAAG,CAAE,CAAA;YACzC,iBAAiB,CAAE,GAAG,CAAC,CAAC,CAAC,EAAG,GAAG,CAAC,IAAI,CAAE,CAAA;QACvC,CAAC;QAED,wBAAwB;YACvB,MAAM,GAAG,GAAG,cAAc,CAAE,KAAK,EAAG,GAAG,CAAE,CAAA;YACzC,gBAAgB,CAAE,GAAE,EAAE,CAAC,GAAG,CAAE,CAAQ,CAAE,EAAG,4BAA4B,CAAE,CAAA;QACxE,CAAC;QAED,0BAA0B;YACzB,MAAM,GAAG,GAAG,cAAc,CAAE,KAAK,EAAG,GAAG,CAAE,CAAA;YACzC,gBAAgB,CAAE,GAAE,EAAE,CAAC,GAAG,CAAE,MAAa,CAAE,EAAG,+BAA+B,CAAE,CAAA;QAChF,CAAC;QAED,wBAAwB;YACvB,MAAM,GAAG,GAAG,cAAc,CAAE,KAAK,EAAG,GAAG,CAAE,CAAA;YACzC,gBAAgB,CAAE,GAAE,EAAE,CAAC,GAAG,CAAE,WAAkB,CAAE,EAAG,oCAAoC,CAAE,CAAA;QAC1F,CAAC;KAED,CAAC,CAAA;IAGF,yEAAyE;IACzE,wEAAwE;IAExE,SAAS,CAAC;QAET,gBAAgB;YAEf,MAAM,MAAM,GAAG,cAAc,CAAE,QAAQ,EAAG,MAAM,CAAE,CAAA;YAElD,gBAAgB,CAAE,MAAM,CAAC,MAAM,EAAG;gBACjC,IAAI,EAAG,QAAQ;gBACf,IAAI,EAAG,MAAM;aACb,CAAE,CAAA;QAEJ,CAAC;QAED,wBAAwB;YACvB,MAAM,MAAM,GAAG,cAAc,CAAE,QAAQ,EAAG,MAAM,CAAE,CAAA;YAClD,iBAAiB,CAAE,MAAM,CAAE,aAAoB,CAAE,EAAG,MAAM,CAAC,KAAK,CAAE,CAAA;QACnE,CAAC;QAED,wBAAwB;YACvB,MAAM,MAAM,GAAG,cAAc,CAAE,QAAQ,EAAG,MAAM,CAAE,CAAA;YAClD,gBAAgB,CAAE,GAAE,EAAE,CAAC,MAAM,CAAE,KAAY,CAAE,EAAG,iCAAiC,CAAE,CAAA;QACpF,CAAC;QAED,0BAA0B;YACzB,MAAM,MAAM,GAAG,cAAc,CAAE,QAAQ,EAAG,MAAM,CAAE,CAAA;YAClD,gBAAgB,CAAE,GAAE,EAAE,CAAC,MAAM,CAAE,OAAc,CAAE,EAAG,mCAAmC,CAAE,CAAA;QACxF,CAAC;QAED,wBAAwB;YACvB,MAAM,MAAM,GAAG,cAAc,CAAE,QAAQ,EAAG,MAAM,CAAE,CAAA;YAClD,gBAAgB,CAAE,GAAE,EAAE,CAAC,MAAM,CAAE,WAAkB,CAAE,EAAG,uCAAuC,CAAE,CAAA;QAChG,CAAC;KAED,CAAC,CAAA;AAEH,CAAC,EA5FS,CAAC,KAAD,CAAC,QA4FV;;;;AC5FD,IAAU,CAAC,CA4CV;AA5CD,WAAU,CAAC;IAEV,MAAM,GAAG,GAAG,cAAc,CAAE,iBAAiB,CAAE,gBAAgB,EAAE,iBAAiB,CAAE,EAAE,MAAM,CAAE,CAAA;IAE9F,SAAgB,iBAAiB,CAG9B,GAAQ,EAAE,QAAQ,iBAA0B;QAE9C,MAAM,KAAK,GAAG,kBAAkB,CAAE,gBAAgB,CAAE,GAAG,CAAE,CAGxD,CAAA;QAED,MAAM,MAAM,GAAG,kBAAkB,CAAE,eAAe,CAAE,eAAe,CAAE,KAAK,CAAE,CAAE,CAAE,CAAA;QAEhF,MAAM,GAAG,GAAG,gBAAgB,CAAC;YAC5B,GAAI,GAAG;YACP,GAAG,EAAE,kBAAkB,CAAE,iBAAiB,CAAE;YAC5C,GAAG,EAAE,MAAM;YACX,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,kBAAkB,CAAE,gBAAgB,CAAC;gBAC5C,GAAG,EAAE,eAAe,CAAE,eAAe,CAAE,GAAG,CAAE,CAAE;aAC9C,CAAC,CAAE;YACJ,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,KAAK;SACb,CAAC,CAAA;QAEF,OAAO,MAAM,CAAC,MAAM,CAAE,GAAG,EAAE;YAE1B,KAAK,CAAE,GAAW;gBACjB,OAAO,GAAG,CAAE,sBAAsB,CAAE,GAAG,CAAS,CAAE,CAAA;YACnD,CAAC;YAED,KAAK,CAAE,KAAkC;gBACxC,OAAO,oBAAoB,CAAE,KAAY,CAAE,CAAA;YAC5C,CAAC;SAED,CAAE,CAAA;IAEJ,CAAC;IAtCe,mBAAiB,oBAsChC,CAAA;AAEF,CAAC,EA5CS,CAAC,KAAD,CAAC,QA4CV;;;;AC5CD,IAAU,CAAC,CAoDV;AApDD,WAAU,CAAC;IAEV,SAAS,CAAC;QAET,yBAAyB;YAExB,IAAK,MAGJ;YAHD,WAAK,MAAM;gBACV,2BAAiB,CAAA;gBACjB,2BAAiB,CAAA;YAClB,CAAC,EAHI,MAAM,KAAN,MAAM,QAGV;YAED,MAAM,KAAK,GAAG,iBAAiB,CAAE,EAAE,EAAE,cAAc,CAAE,QAAQ,EAAE,MAAM,CAAE,CAAE,CAAA;YACzE,MAAM,GAAG,GAAG,iBAAiB,CAAE,EAAE,EAAE,gBAAgB,CAAE,CAAA;YACrD,MAAM,IAAI,GAAG,iBAAiB,CAAE,EAAE,EAAE,iBAAiB,CAAE,CAAA;YAEvD,MAAM,UAAU,GAAG,iBAAiB,CAAC;gBACpC,IAAI,EAAE,kBAAkB,CAAE,GAAG,CAAE;gBAC/B,SAAS,EAAE,kBAAkB,CAAE,IAAI,CAAE;gBACrC,6BAA6B;aAC7B,CAAC,CAAA;YAEF,MAAM,WAAW,GAAG,iBAAiB,CAAC;gBACrC,KAAK,EAAE,kBAAkB,CAAE,KAAK,CAAE;gBAClC,UAAU,EAAE,kBAAkB,CAAE,GAAG,CAAE;gBACrC,UAAU,EAAE,kBAAkB,CAAE,UAAU,CAAE;aAC5C,CAAC,CAAA;YAEF,MAAM,OAAO,GAAG,iBAAiB,CAAC;gBACjC,WAAW,EAAE,kBAAkB,CAAE,WAAW,CAAE;aAC9C,CAAC,CAAA;YAEF,MAAM,GAAG,GAAG,+EAA+E,CAAA;YAE3F,IAAI,KAAK,GAAG,OAAO,CAAC;gBACnB,WAAW,EAAE;oBACZ,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,CAAE,MAAM,CAAC,MAAM,CAAE,CAAC,EAAE,EAAE,SAAS;oBAC9C,UAAU,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,QAAQ;oBACpC,UAAU,EAAE;wBACX,IAAI,EAAE,EAAE;wBACR,SAAS,EAAE,EAAE;qBACb;oBACD,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,CAAE,CAAC,EAAE,GAAG,CAAE,CAAC,EAAE,EAAE,QAAQ;iBACrC;aACD,CAAC,CAAA;YAEF,gBAAgB,CAAE,GAAG,EAAE,OAAO,CAAC,KAAK,CAAE,KAAK,CAAE,CAAE,CAAA;YAC/C,gBAAgB,CAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAE,GAAG,CAAE,CAAE,CAAA;QAEhD,CAAC;KAED,CAAC,CAAA;AAEH,CAAC,EApDS,CAAC,KAAD,CAAC,QAoDV;;;;ACpDD,IAAU,CAAC,CASV;AATD,WAAU,CAAC;IAIC,WAAS,GAAG,CAAE,KAAK,CAAC,MAAM,EAAE,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAGnE,CAAA;AAEF,CAAC,EATS,CAAC,KAAD,CAAC,QASV;;;;ACTD,IAAU,CAAC,CAIV;AAJD,WAAU,CAAC;IAEV,SAAgB,YAAY,KAAK,CAAC;IAAlB,cAAY,eAAM,CAAA;AAEnC,CAAC,EAJS,CAAC,KAAD,CAAC,QAIV;;;;ACJD,IAAU,CAAC,CAMV;AAND,WAAU,CAAC;IACV,IAAI,CAAC;QACJ,YAAY,EAAE,CAAA;IACf,CAAC;IAAC,OAAO,KAAK,EAAG,CAAC;QACjB,OAAO,CAAC,KAAK,CAAE,KAAK,CAAE,CAAA;IACvB,CAAC;AACF,CAAC,EANS,CAAC,KAAD,CAAC,QAMV;;;;ACND,IAAU,CAAC,CAgHV;AAhHD,WAAU,CAAC;IAEV,SAAgB,0BAA0B,CAAE,IAAY;QACvD,OAAO,CAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAE,CAAC,QAAQ,CAAE,IAAI,CAAC,OAAO,CAAE,OAAO,EAAE,EAAE,CAAE,CAAE;YACnF,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,0BAA0B,CAAA;IAC9B,CAAC;IAJe,4BAA0B,6BAIzC,CAAA;IAEY,wBAAsB,GAAG,iBAAiB,CAAC;QACvD,IAAI,EAAE,iBAAiB,CAAC,EAAE,CAAC;QAC3B,IAAI,EAAE,iBAAiB,CAAE,EAAE,EAAE,gBAAgB,CAAE;KAC/C,CAAC,CAAA;IAEF,MAAa,gBAAiB,SAAQ,gBAAgB,CAAC,IAAI,CAAE;QAC5D,gBAAgB;QAChB,IAAI,EAAE,qBAAqB;QAC3B,wBAAwB;QACxB,IAAI,EAAE,qBAAqB;QAC3B,gDAAgD;QAChD,MAAM,EAAE,oBAAoB;KAC5B,CAAC;QAED,qCAAqC;QACrC,GAAG;YACF,OAAO,cAAe,IAAI,CAAC,IAAI,EAAG,SAAU,IAAI,CAAC,IAAI,EAAG,EAAE,CAAA;QAC3D,CAAC;QAED,gBAAgB;QAChB,IAAI,CAAE,IAAoB;YACzB,MAAM,GAAG,GAAG;gBACX,YAAY,EAAE,KAAK;gBACnB,kBAAkB,EAAE,MAAM;aAC1B,CAAE,IAAI,CAAC,IAAI,EAAE,CAAE,IAAI,KAAK,CAAA;YACzB,OAAO,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,EAAE,GAAG,CAAE,IAAI,CAAE,IAAI,GAAI,IAAI,CAAC,IAAI,EAAG,IAAK,GAAI,EAAE,CAAA;QACrE,CAAC;QAED,gBAAgB;QAChB,IAAI,CAAE,IAAoB;YACzB,OAAO,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,EAAE,GAAG,CAAE,IAAI,CAAE,IAAI,0BAA0B,CAAA;QACpE,CAAC;QAED,sBAAsB;QACtB,IAAI,CAAE,IAAgB;YAErB,IAAI,CAAC,IAAI;gBAAG,OAAO,IAAI,SAAS,CAAE,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAE,CAAA;YAExE,MAAM,MAAM,GAAG,IAAI,UAAU,CAAE,cAAc,CAAE,IAAI,CAAE,CAAC,WAAW,EAAE,CAAE,CAAA;YAErE,IAAI,CAAC,MAAM,CAAE,MAAM,CAAE,CAAA;YACrB,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,CAAE,CAAA;YACtB,IAAI,IAAI,YAAY,gBAAgB,CAAC,IAAI;gBAAG,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,CAAE,CAAA;YAElE,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,yBAAyB;QACzB,MAAM,CAAE,IAAgC;YAEvC,IAAI,IAAI,EAAG,CAAC;gBAEX,MAAM,MAAM,GAAG,EAAiC,CAAA;gBAEhD,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,UAAU,GAAI,CAAC;oBACjD,MAAM,CAAC,IAAI,CAAE,IAAI,CAAC,KAAK,CAAE,MAAM,EAAE,MAAM,IAAI,CAAC,IAAE,EAAE,CAAE,CAAE,CAAA,CAAC,iBAAiB;gBACvE,CAAC;gBAED,IAAI,CAAC,MAAM,CAAE,MAAM,CAAE,CAAA;gBAErB,OAAO,IAAI,CAAA;YAEZ,CAAC;iBAAM,CAAC;gBAEP,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;gBAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAE,CAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC,CAAE,CAAA;gBACxE,MAAM,GAAG,GAAG,IAAI,UAAU,CAAE,IAAI,CAAE,CAAA;gBAElC,IAAI,MAAM,GAAG,CAAC,CAAA;gBACd,KAAK,MAAM,KAAK,IAAI,MAAM,EAAG,CAAC;oBAC7B,GAAG,CAAC,GAAG,CAAE,KAAK,EAAE,MAAM,CAAE,CAAA;oBACxB,MAAM,IAAI,KAAK,CAAC,UAAU,CAAA;gBAC3B,CAAC;gBAED,OAAO,GAAG,CAAA;YAEX,CAAC;QAEF,CAAC;QAED,MAAM,CAAE,IAA2C;YAClD,OAAO,CAAE,IAAI,CAAC,MAAM,CAAE,IAAI,CAAE,EAAE,KAAK,CAAE,IAAI,CAAE,EAAE,MAAM,CAAE,kBAAkB,CAAE,IAAI,EAAE,CAAkC,CAAA;QAClH,CAAC;QAED,GAAG,CAAE,IAAa,EAAE,IAAI,GAAG,YAAY;YAEtC,IAAI,IAAI,KAAK,SAAS;gBAAG,OAAO,mBAAmB,CAAE,IAAI,CAAC,MAAM,EAAE,CAAE,CAAA;YAEpE,IAAI,CAAC,MAAM,CAAE,mBAAmB,CAAE,IAAI,CAAE,CAAE,CAAA;YAC1C,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;YAEjB,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,IAAI,CAAE,IAAU,EAAE,IAAI,GAAG,kBAAkB;YAE1C,IAAI,IAAI,KAAK,SAAS;gBAAG,OAAO,IAAI,CAAC,KAAK,CAAE,IAAI,CAAC,GAAG,EAAE,CAAE,CAAA;YAExD,IAAI,CAAC,GAAG,CAAE,IAAI,CAAC,SAAS,CAAE,IAAI,CAAE,EAAE,IAAI,CAAE,CAAA;YAExC,OAAO,IAAI,CAAA;QACZ,CAAC;KAED;IAlGY,kBAAgB,mBAkG5B,CAAA;AACF,CAAC,EAhHS,CAAC,KAAD,CAAC,QAgHV;;;;AChHD,IAAU,CAAC,CAqCV;AArCD,WAAU,GAAC;IACV,SAAS,CAAC;QAET,uBAAuB,CAAE,CAAC;YAEzB,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;YACzC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAA;YAE1C,MAAM,MAAM,GAAG,IAAI,UAAU,CAAE,CAAC,IAAE,EAAE,GAAG,CAAC,CAAE,CAAA;YAC1C,MAAM,CAAE,CAAC,IAAE,EAAE,CAAE,GAAG,GAAG,CAAA;YAErB,IAAI,CAAC,MAAM,CAAE,MAAM,CAAE,CAAA;YAErB,iBAAiB,CAAE,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,CAAE,CAAA;YAC5C,iBAAiB,CAAE,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAE,CAAA;QAE3C,CAAC;QAED,KAAK,CAAC,qBAAqB,CAAE,CAAC;YAE7B,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;YACzC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAA;YAE1C,MAAM,MAAM,GAAG,IAAI,UAAU,CAAE,CAAC,IAAE,EAAE,GAAG,CAAC,CAAE,CAAA;YAC1C,MAAM,CAAE,CAAC,IAAE,EAAE,GAAG,CAAC,CAAE,GAAG,GAAG,CAAA;YAEzB,MAAM,eAAe,CAAE,IAAI,CAAE,CAAC,IAAI,CACjC,IAAI,SAAS,CAAE,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAE,CAChD,CAAA;YAED,iBAAiB,CAAE,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAE,CAAA;YAClD,iBAAiB,CAAE,MAAM,EAAE,IAAI,UAAU,CAAE,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAE,CAAE,CAAA;QAE/E,CAAC;KAED,CAAC,CAAA;AAEH,CAAC,EArCS,CAAC,KAAD,CAAC,QAqCV;;;;ACrCD,IAAU,CAAC,CAgBV;AAhBD,WAAU,CAAC;IAEV,MAAa,oBAAqB,SAAQ,qBAAqB;QAG9D,IAAI;YACH,IAAI,CAAC,IAAI,CAAE,qBAAqB,CAAC,IAAI,CAAE,CAAA;QACxC,CAAC;QAED,IAAI;YACH,IAAI,CAAC,IAAI,EAAE,CAAA;YACX,IAAI,CAAC,IAAI,CAAE,IAAI,CAAG,CAAC,IAAI,EAAE,CAAA;QAC1B,CAAC;KAED;IATA;QADE,QAAQ;oDAGT;IALW,sBAAoB,uBAYhC,CAAA;AAEF,CAAC,EAhBS,CAAC,KAAD,CAAC,QAgBV;;;;AChBD,IAAU,CAAC,CAyBV;AAzBD,WAAU,CAAC;IAEV,MAAa,yBAA0B,SAAQ,oBAAoB;QAGlE,IAAI;YAEH,KAAK,CAAC,IAAI,EAAE,CAAA;YAEZ,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAG,CAAC;gBACnC,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAE,CAAA;gBACvE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAE,IAAI,EAAE,qBAAqB,CAAE,CAAA;YAChD,CAAC;YAED,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAA;YAEjE,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,OAAO,CAAE,WAAW,EAAE,EAAE,CAAE,CAAE,CAAA;YAC5C,IAAI,CAAC,IAAI,CAAC,CAAE,WAAW,IAAI,GAAG,CAAE,CAAC,CAAA;QAElC,CAAC;KAED;IAhBA;QADE,QAAQ;yDAeT;IAjBW,2BAAyB,4BAmBrC,CAAA;IAED,CAAC,CAAC,oBAAoB,GAAG,yBAAyB,CAAA;AAEnD,CAAC,EAzBS,CAAC,KAAD,CAAC,QAyBV;;;;ACzBD,IAAU,CAAC,CA+EV;AA/ED,WAAU,CAAC;IAEV,MAAa,oBAAqB,SAAQ,qBAAqB;QAG9D,IAAI;YACH,OAAO,IAAI,yBAAyB,CAAA;QACrC,CAAC;QAED,UAAU,GAAG,CAAE,oBAAoB,CAAE,CAAA;QAErC,GAAG,CAAE,GAAsB;YAE1B,IAAI,EAAsB,CAAA;YAC1B,IAAI,CAAC;gBACJ,EAAE,GAAG,sBAAsB,CAAC,KAAK,CAAE,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAE,CAAC,IAAI,CAAE,GAAG,CAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAC1E,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;YAEV,IAAI,CAAC,EAAE;gBAAG,OAAO,KAAK,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;YAEjC,MAAM,IAAI,GAAG,IAAI,gBAAgB,CAAE,EAAE,CAAE,CAAA;YACvC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAE,IAAI,EAAE,gBAAgB,CAAE,CAAA;YAEnE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAE,CAAA;YAC/C,GAAG,CAAC,IAAI,CAAC,SAAS,CAAE,0BAA0B,CAAE,IAAI,CAAC,IAAI,EAAE,CAAyB,CAAE,CAAA;YACtF,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAC,MAAM,EAAE,CAAE,CAAA;QAEnC,CAAC;QAED,KAAK;YACJ,OAAO,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAA;QACtC,CAAC;QAED,IAAI,CAAE,GAAsB;YAE3B,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;YAClC,IAAI,CAAC,QAAQ;gBAAG,OAAO,EAAE,CAAA;YAEzB,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAE,GAAG,CAAC,IAAI,CAAE,CAAA;YAEnC,OAAO,QAAQ,CAAA;QAEhB,CAAC;QAED,IAAI,CAAE,GAAsB;YAC3B,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,0BAA0B;gBAAG,OAAO,KAAK,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;YACxE,IAAI,CAAC,KAAK,EAAE,CAAC,WAAW,CAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,CAAE,CAAA;QAChD,CAAC;QAED,KAAK,CAAE,GAAsB;YAC5B,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,CAAE,GAAG,CAAC,IAAI,CAAE,CAAA;YACtC,KAAK,CAAC,KAAK,CAAE,GAAG,CAAE,CAAA;QACnB,CAAC;QAED,KAAK;YACJ,IAAI,CAAC,YAAY,EAAE,CAAA;YACnB,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAA;QACtC,CAAC;QAGD,KAAK;YACJ,OAAO,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAE,oBAAoB,CAAE,CAAA;QAC5D,CAAC;QAGD,YAAY;YACX,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAA;QACpB,CAAC;KAED;IAhEA;QADE,SAAS,CAAC,MAAM;oDAGjB;IAqDD;QADE,QAAQ;qDAGT;IAGD;QADE,QAAQ;4DAGT;IAjEW,sBAAoB,uBAmEhC,CAAA;IAED,MAAa,yBAA0B,SAAQ,kBAAkB;QAEhE,GAAG,CAAE,GAAsB;YAC1B,GAAG,CAAC,KAAK,CAAE,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAE,CAAA;QACjE,CAAC;KAED;IANY,2BAAyB,4BAMrC,CAAA;AAEF,CAAC,EA/ES,CAAC,KAAD,CAAC,QA+EV;;;;AC/ED,IAAU,CAAC,CAqDV;AArDD,WAAU,GAAC;IAAC,IAAA,EAAE,CAqDb;IArDW,WAAA,EAAE;QACb,SAAS,CAAC;YAET,2CAA2C,CAAE,CAAC;gBAE7C,MAAM,IAAI,GAAG,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAA;gBAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAE,CAAC,IAAI,CAAE,IAAI,gBAAgB,CAAE,UAAU,CAAE,CAAE,CAAA;gBAErF,MAAM,OAAO,GAAG,mBAAmB,CAAE,SAAS,CAAE,CAAA;gBAChD,IAAI,CAAC,MAAM,CAAE,OAAO,CAAE,CAAA;gBACtB,IAAI,CAAC,IAAI,CAAE,eAAe,CAAE,CAAA;gBAE5B,MAAM,GAAG,GAAG,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;gBAE5C,MAAM,GAAG,GAAG,EAAW,CAAA;gBAEvB,GAAG,CAAC,GAAG,CAAE,iBAAiB,CAAC,IAAI,CAAC;oBAC/B,MAAM,EAAE,GAAE,EAAE,CAAC,KAAK;oBAClB,GAAG,EAAE,GAAE,EAAE,CAAC,IAAI,GAAG,CAAE,oCAAqC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAI,gBAAgB,CAAE;oBAC1F,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC;wBACzB,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAE,IAAI,CAAE;wBACnC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAE,IAAI,CAAE;wBACnC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAE,GAAG,CAAE;qBAChC,CAAC;iBACF,CAAC,CAAE,CAAA;gBAEJ,iBAAiB,CAAE,GAAG,EAAE,CAAE,GAAG,EAAE,0BAA0B,EAAE,OAAO,CAAE,CAAE,CAAA;YAEvE,CAAC;YAED,sCAAsC,CAAE,CAAC;gBAExC,MAAM,IAAI,GAAG,IAAI,gBAAgB,CAAE,mBAAmB,CAAE,CAAA;gBAExD,MAAM,GAAG,GAAG,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;gBAE5C,MAAM,GAAG,GAAG,EAAW,CAAA;gBAEvB,GAAG,CAAC,GAAG,CAAE,iBAAiB,CAAC,IAAI,CAAC;oBAC/B,MAAM,EAAE,GAAE,EAAE,CAAC,KAAK;oBAClB,GAAG,EAAE,GAAE,EAAE,CAAC,IAAI,GAAG,CAAE,oCAAqC,IAAI,CAAC,GAAI,gBAAgB,CAAE;oBACnF,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC;wBACzB,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAE,IAAI,CAAE;wBACnC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAE,IAAI,CAAE;wBACnC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAE,GAAG,CAAE;qBAChC,CAAC;iBACF,CAAC,CAAE,CAAA;gBAEJ,iBAAiB,CAAE,GAAG,EAAE,CAAE,GAAG,EAAE,0BAA0B,EAAE,IAAI,UAAU,CAAE,CAAE,CAAA;YAE9E,CAAC;SAED,CAAC,CAAA;IACH,CAAC,EArDW,EAAE,GAAF,MAAE,KAAF,MAAE,QAqDb;AAAD,CAAC,EArDS,CAAC,KAAD,CAAC,QAqDV;;","sourcesContent":["Error.stackTraceLimit = 50;\n\ndeclare let _$_: { new(): {} } & typeof globalThis\ndeclare class $ extends _$_ {}\n\nnamespace $ {\n\texport type $ = typeof $$\n\texport declare class $$ extends $ {\n\t\tstatic $: $\n\t}\n\tnamespace $$ {\n\t\texport type $$ = $\n\t}\n}\n\nmodule.exports = $\n","namespace $ {\n\n\t/** Generates unique identifier. */\n\texport function $mol_guid(\n\t\tlength = 8,\n\t\texists: ( id: string )=> boolean = ()=> false,\n\t) {\n\n\t\tfor(;;) {\n\n\t\t\tlet id = Math.random().toString( 36 ).substring( 2, length + 2 ).toUpperCase()\n\t\t\tif( exists( id ) ) continue\n\t\t\t\n\t\t\treturn id\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_fail( error : any ) : never {\n\t\tthrow error\n\t}\n\n}\n","namespace $ {\n\t\n\t/** Special status statuses. */\n\texport enum $mol_wire_cursor {\n\t\t\n\t\t/** Update required. */\n\t\tstale = -1,\n\t\t\n\t\t/** Some of (transitive) pub update required. */\n\t\tdoubt = -2,\n\t\t\n\t\t/** Doubt check in progress, so any incoming quant is noticeable. */\n\t\tcheck = -3,\n\t\t\n\t\t/** Actual state but may be dropped. */\n\t\tfresh = -4,\n\t\t\n\t\t/** State will never be changed. */\n\t\tfinal = -5,\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/**\n\t * Collects subscribers in compact array. 28B\n\t */\n\texport class $mol_wire_pub extends Object {\n\t\t\n\t\tconstructor( id = `$mol_wire_pub:${ $mol_guid() }` ) {\n\t\t\tsuper()\n\t\t\tthis[ Symbol.toStringTag ] = id\n\t\t}\n\t\t\n\t\t[ Symbol.toStringTag ]!: string\n\t\tdata = [] as unknown[]\n\t\t\n\t\t// Derived objects should be Arrays.\n\t\tstatic get [ Symbol.species ]() {\n\t\t\treturn Array\n\t\t}\n\t\t\n\t\t/**\n\t\t * Index of first subscriber.\n\t\t */\n\t\tprotected sub_from = 0 // 4B\n\t\t\n\t\t/**\n\t\t * All current subscribers.\n\t\t */\n\t\tget sub_list() {\n\t\t\tconst res = [] as $mol_wire_sub[]\n\t\t\tfor( let i = this.sub_from; i < this.data.length; i += 2 ) {\n\t\t\t\tres.push( this.data[i] as $mol_wire_sub )\n\t\t\t}\n\t\t\treturn res as readonly $mol_wire_sub[]\n\t\t}\n\t\t\n\t\t/**\n\t\t * Has any subscribers or not.\n\t\t */\n\t\tget sub_empty() {\n\t\t\treturn this.sub_from === this.data.length\n\t\t}\n\t\t\n\t\t/**\n\t\t * Subscribe subscriber to this publisher events and return position of subscriber that required to unsubscribe.\n\t\t */\n\t\tsub_on( sub: $mol_wire_pub, pub_pos: number ) {\n\t\t\tconst pos = this.data.length\n\t\t\tthis.data.push( sub, pub_pos )\n\t\t\treturn pos\n\t\t}\n\t\t\n\t\t/**\n\t\t * Unsubscribe subscriber from this publisher events by subscriber position provided by `on(pub)`.\n\t\t */\n\t\tsub_off( sub_pos: number ) {\n\t\t\t\n\t\t\tif(!( sub_pos < this.data.length )) {\n\t\t\t\t$mol_fail( new Error( `Wrong pos ${ sub_pos }` ) )\n\t\t\t}\n\t\t\t\n\t\t\tconst end = this.data.length - 2\n\t\t\tif( sub_pos !== end ) {\n\t\t\t\tthis.peer_move( end, sub_pos )\n\t\t\t}\n\t\t\t\n\t\t\tthis.data.length = end\n\t\t\t\n\t\t\tif( end === this.sub_from ) this.reap()\n\t\t\t\n\t\t}\n\t\t\n\t\t/**\n\t\t * Called when last sub was unsubscribed.\n\t\t **/\n\t\treap() { }\n\t\t\n\t\t/**\n\t\t * Autowire this publisher with current subscriber.\n\t\t **/\n\t\tpromote() {\n\t\t\t$mol_wire_auto()?.track_next( this )\n\t\t}\n\t\t\n\t\t/**\n\t\t * Enforce actualization. Should not throw errors.\n\t\t */\n\t\tfresh() {}\n\t\t\n\t\t/**\n\t\t * Lives inside single calculation of subscriber or not.\n\t\t */\n\t\tget temp() {\n\t\t\treturn false\n\t\t}\n\t\t\n\t\t/**\n\t\t * Allow to put data to caches in the subtree.\n\t\t */\n\t\tcomplete() {}\n\t\t\n\t\tget incompleted() {\n\t\t\treturn false\n\t\t}\n\t\t\n\t\t/**\n\t\t * Notify subscribers about self changes.\n\t\t */\n\t\temit( quant = $mol_wire_cursor.stale ) {\n\t\t\tfor( let i = this.sub_from; i < this.data.length; i += 2 ) {\n\t\t\t\t;( this.data[i] as $mol_wire_sub ).absorb( quant, this.data[ i + 1 ] as number )\n\t\t\t}\n\t\t}\n\t\t\n\t\t/**\n\t\t * Moves peer from one position to another. Doesn't clear data at old position!\n\t\t */\n\t\tpeer_move( from_pos: number, to_pos: number ) {\n\t\t\t\n\t\t\tconst peer = this.data[ from_pos ] as $mol_wire_pub\n\t\t\tconst self_pos = this.data[ from_pos + 1 ] as number\n\t\t\t\n\t\t\tthis.data[ to_pos ] = peer\n\t\t\tthis.data[ to_pos + 1 ] = self_pos\n\t\t\t\n\t\t\tpeer.peer_repos( self_pos, to_pos )\n\t\t}\n\t\t\n\t\t/**\n\t\t * Updates self position in the peer.\n\t\t */\n\t\tpeer_repos( peer_pos: number, self_pos: number ) {\n\t\t\tthis.data[ peer_pos + 1 ] = self_pos\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport let $mol_wire_auto_sub: $mol_wire_sub | null = null\n\t\n\t/**\n\t * When fulfilled, all publishers are promoted to this subscriber on access to its.\n\t */\n\texport function $mol_wire_auto( next = $mol_wire_auto_sub ) {\n\t\treturn $mol_wire_auto_sub = next\n\t}\n\t\n\t/**\n\t * Affection queue. Used to prevent accidental stack overflow on emit.\n\t */\n\texport const $mol_wire_affected = [] as ( $mol_wire_sub | number )[]\n\t\n}\n","namespace $ {\n\n\texport function $mol_fail_hidden( error : any ) : never {\n\t\tthrow error /// Use 'Never Pause Here' breakpoint in DevTools or simply blackbox this script\n\t}\n\n}\n","namespace $ {\n\n\t// https://docs.google.com/document/d/1FTascZXT9cxfetuPRT2eXPQKXui4nWFivUnS_335T3U/preview#\n\t($ as any)['devtoolsFormatters'] ||= []\n\n\texport function $mol_dev_format_register( config : {\n\t\theader : ( val : any , config : any )=> any\n\t\thasBody : ( val : any , config : any )=> false\n\t} | {\n\t\theader : ( val : any , config : any )=> any\n\t\thasBody : ( val : any , config : any )=> boolean\n\t\tbody : ( val : any , config : any )=> any\n\t} ) {\n\t\t($ as any)['devtoolsFormatters'].push( config )\n\t}\n\n\texport const $mol_dev_format_head = Symbol( '$mol_dev_format_head' )\n\texport const $mol_dev_format_body = Symbol( '$mol_dev_format_body' )\n\t\n\tfunction $mol_dev_format_button( label: any, click: ()=> any ) {\n\t\treturn $mol_dev_format_auto( {\n\t\t\t[ $mol_dev_format_head ]() {\n\t\t\t\treturn $mol_dev_format_span( { color: 'cornflowerblue' }, label )\n\t\t\t},\n\t\t\t[ $mol_dev_format_body ]() {\n\t\t\t\tPromise.resolve().then( click )\n\t\t\t\treturn $mol_dev_format_span({})\n\t\t\t}\n\t\t} )\n\t}\n\n\t$mol_dev_format_register({\n\n\t\theader : ( val : any , config = false ) => {\n\t\t\t\n\t\t\tif( config ) return null\n\n\t\t\tif( !val ) return null\n\t\t\t\n\t\t\tif( $mol_dev_format_head in val ) {\n\t\t\t\ttry {\n\t\t\t\t\treturn val[ $mol_dev_format_head ]()\n\t\t\t\t} catch( error ) {\n\t\t\t\t\treturn $mol_dev_format_accent( $mol_dev_format_native( val ), '💨', $mol_dev_format_native( error ), '' )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif( typeof val === 'function' ) {\n\t\t\t\treturn $mol_dev_format_native( val )\n\t\t\t}\n\t\t\t\n\t\t\tif( val instanceof Error ) {\n\t\t\t\t\n\t\t\t\treturn $mol_dev_format_span( {},\n\t\t\t\t\t$mol_dev_format_native( val ),\n\t\t\t\t\t' ',\n\t\t\t\t\t$mol_dev_format_button( 'throw', ()=> $mol_fail_hidden( val ) ),\n\t\t\t\t)\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tif( val instanceof Promise ) {\n\t\t\t\treturn $mol_dev_format_shade(\n\t\t\t\t\t$mol_dev_format_native( val ),\n\t\t\t\t\t' ',\n\t\t\t\t\tval[ Symbol.toStringTag ] ?? '',\n\t\t\t\t)\n\t\t\t}\n\t\t\t\n\t\t\tif( Symbol.toStringTag in val ) {\n\t\t\t\treturn $mol_dev_format_native( val )\n\t\t\t}\n\t\t\t\n\t\t\treturn null\n\t\t\t\n\t\t} ,\n\t\t\n\t\thasBody : ( val: any , config = false )=> {\n\t\t\t\n\t\t\tif( config ) return false\n\t\t\tif( !val ) return false\n\t\t\t\n\t\t\t// if( Error.isError( val ) ) true\n\t\t\tif( val[ $mol_dev_format_body ] ) return true\n\t\t\t\n\t\t\treturn false\n\t\t},\n\n\t\tbody : ( val: any , config = false )=> {\n\t\t\t\n\t\t\tif( config ) return null\n\n\t\t\tif( !val ) return null\n\t\t\t\n\t\t\tif( $mol_dev_format_body in val ) {\n\t\t\t\ttry {\n\t\t\t\t\treturn val[ $mol_dev_format_body ]()\n\t\t\t\t} catch( error ) {\n\t\t\t\t\treturn $mol_dev_format_accent( $mol_dev_format_native( val ), '💨', $mol_dev_format_native( error ), '' )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t// if( Error.isError( val ) ) {\n\t\t\t// \treturn $mol_dev_format_native( val )\n\t\t\t// }\n\t\t\t\n\t\t\treturn null\n\t\t},\n\n\t})\n\n\texport function $mol_dev_format_native( obj : any ) {\n\t\t\n\t\tif( typeof obj === 'undefined' ) return $mol_dev_format_shade( 'undefined' )\n\t\t\n\t\t// if( ![ 'object', 'function', 'symbol' ].includes( typeof obj ) ) return obj\n\n\t\treturn [\n\t\t\t'object' ,\n\t\t\t{\n\t\t\t\tobject : obj ,\n\t\t\t\tconfig : true ,\n\t\t\t} ,\n\t\t]\n\n\t}\n\n\texport function $mol_dev_format_auto( obj : any ) {\n\t\t\n\t\tif( obj == null ) return $mol_dev_format_shade( String( obj ) )\n\n\t\treturn [\n\t\t\t'object' ,\n\t\t\t{\n\t\t\t\tobject : obj ,\n\t\t\t\tconfig : false ,\n\t\t\t} ,\n\t\t]\n\n\t}\n\n\texport function $mol_dev_format_element( element : string , style : object , ...content : any[] ) {\n\t\t\t\n\t\tconst styles = [] as string[]\n\t\t\n\t\tfor( let key in style ) styles.push( `${ key } : ${ (style as any)[key] }` )\n\t\t\n\t\treturn [\n\t\t\telement ,\n\t\t\t{\n\t\t\t\tstyle : styles.join( ' ; ' ) ,\n\t\t\t} ,\n\t\t\t... content ,\n\t\t]\n\n\t}\n\n\texport let $mol_dev_format_span = $mol_dev_format_element.bind( null , 'span' )\n\texport let $mol_dev_format_div = $mol_dev_format_element.bind( null , 'div' )\n\texport let $mol_dev_format_ol = $mol_dev_format_element.bind( null , 'ol' )\n\texport let $mol_dev_format_li = $mol_dev_format_element.bind( null , 'li' )\n\texport let $mol_dev_format_table = $mol_dev_format_element.bind( null , 'table' )\n\texport let $mol_dev_format_tr = $mol_dev_format_element.bind( null , 'tr' )\n\texport let $mol_dev_format_td = $mol_dev_format_element.bind( null , 'td' )\n\n\texport let $mol_dev_format_accent = $mol_dev_format_span.bind( null , {\n\t\t'color' : 'magenta' ,\n\t} )\n\n\texport let $mol_dev_format_strong = $mol_dev_format_span.bind( null , {\n\t\t'font-weight' : 'bold' ,\n\t} )\n\n\texport let $mol_dev_format_string = $mol_dev_format_span.bind( null , {\n\t\t'color' : 'green',\n\t} )\n\n\texport let $mol_dev_format_shade = $mol_dev_format_span.bind( null , {\n\t\t'color' : 'gray',\n\t} )\n\n\texport let $mol_dev_format_indent = $mol_dev_format_div.bind( null , {\n\t\t'margin-inline-start': '13px'\n\t} )\n\t\n\tclass Stack extends Array< Call > {\n\t\t\n\t\t// [ Symbol.toPrimitive ]() {\n\t\t// \treturn this.toString()\n\t\t// }\n\n\t\tmatch(...args: Parameters<String['match']>) {\n\t\t\treturn this.toString().match(...args)\n\t\t}\n\n\t\tsplit(...args: Parameters<String['split']>) {\n\t\t\treturn this.toString().split(...args)\n\t\t}\n\t\t\n\t\ttoString() {\n\t\t\treturn this.join( '\\n' )\n\t\t}\n\t\t\n\t}\n\t\n\tclass Call extends Object {\n\t\t\n\t\treadonly type: string\n\t\treadonly function: string\n\t\treadonly method: string\n\t\treadonly eval: string\n\t\treadonly source: string\n\t\treadonly offset: number\n\t\treadonly pos: [ number, number ]\n\t\treadonly object: unknown\n\t\treadonly flags: readonly string[]\n\t\t[ Symbol.toStringTag ]!: string\n\t\t\n\t\tconstructor( call: NodeJS.CallSite ) {\n\t\t\tsuper()\n\t\t\t\n\t\t\tthis.type = call.getTypeName() ?? ''\n\t\t\tthis.function = call.getFunctionName() ?? ''\n\t\t\tthis.method = call.getMethodName() ?? ''\n\t\t\tif( this.method === this.function ) this.method = ''\n\t\t\t// const func = c.getFunction()\n\t\t\tthis.pos = [ call.getEnclosingLineNumber() ?? 0, call.getEnclosingColumnNumber() ?? 0 ]\n\t\t\tthis.eval = call.getEvalOrigin() ?? ''\n\t\t\tthis.source = call.getScriptNameOrSourceURL() ?? ''\n\t\t\tthis.object = call.getThis()\n\t\t\tthis.offset = call.getPosition()\n\t\t\t\n\t\t\tconst flags = []\n\t\t\tif( call.isAsync() ) flags.push( 'async' )\n\t\t\tif( call.isConstructor() ) flags.push( 'constructor' )\n\t\t\tif( call.isEval() ) flags.push( 'eval' )\n\t\t\tif( call.isNative() ) flags.push( 'native' )\n\t\t\tif( call.isPromiseAll() ) flags.push( 'PromiseAll' )\n\t\t\tif( call.isToplevel() ) flags.push( 'top' )\n\t\t\tthis.flags = flags\n\t\t\n\t\t\tconst type = this.type ? this.type + '.' : ''\n\t\t\tconst func = this.function || '<anon>'\n\t\t\tconst method = this.method ? ' [' + this.method + '] ' : ''\n\t\t\t\n\t\t\tthis[ Symbol.toStringTag ] = `${type}${func}${method}`\n\t\t}\n\t\t\n\t\t[ Symbol.toPrimitive ]() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\ttoString() {\n\t\t\tconst object = this.object || ''\n\t\t\tconst label = this[ Symbol.toStringTag ]\n\t\t\tconst source = `${ this.source }:${ this.pos.join( ':' ) } #${ this.offset }`\n\t\t\treturn `\\tat ${object}${label} (${source})`\n\t\t}\n\n\t\t[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_div( {},\n\t\t\t\t$mol_dev_format_native( this ),\n\t\t\t\t$mol_dev_format_shade( ' ' ),\n\t\t\t\t... this.object ? [\n\t\t\t\t\t$mol_dev_format_native( this.object ),\n\t\t\t\t] : [],\n\t\t\t\t... this.method ? [ $mol_dev_format_shade( ' ',\n\t\t\t\t\t' [',\n\t\t\t\t\tthis.method,\n\t\t\t\t\t']',\n\t\t\t\t) ] : [],\n\t\t\t\t$mol_dev_format_shade( ' ', this.flags.join( ', ' ) ),\n\t\t\t)\n\t\t}\n\n\t}\n\t\n\tError.prepareStackTrace ??= ( error: Error, stack: NodeJS.CallSite[] )=> new Stack( ... stack.map( call => new Call( call ) ) )\n\n}\n","namespace $ {\n\t\n\t/**\n\t * Publisher that can auto collect other publishers. 32B\n\t * \n\t * \tP1 P2 P3 P4 S1 S2 S3\n\t * \t^ ^\n\t * \tpubs_from subs_from\n\t */\n\texport class $mol_wire_pub_sub extends $mol_wire_pub implements $mol_wire_sub {\n\t\t\n\t\tprotected pub_from = 0 // 4B\n\t\tprotected cursor = $mol_wire_cursor.stale // 4B\n\t\t\n\t\tget pub_list() {\n\t\t\tconst res = [] as $mol_wire_pub[]\n\t\t\tconst max = this.cursor >=0 ? this.cursor : this.sub_from\n\t\t\tfor( let i = this.pub_from; i < max; i += 2 ) {\n\t\t\t\tif( this.data[i] ) res.push( this.data[i] as $mol_wire_pub )\n\t\t\t}\n\t\t\treturn res\n\t\t}\n\t\t\n\t\ttrack_on() {\n\t\t\tthis.cursor = this.pub_from\n\t\t\tconst sub = $mol_wire_auto()\n\t\t\t$mol_wire_auto( this )\n\t\t\treturn sub\n\t\t}\n\t\t\n\t\tpromote() {\n\t\t\t\n\t\t\tif( this.cursor >= this.pub_from ) {\n\t\t\t\t$mol_fail( new Error( 'Circular subscription' ) )\n\t\t\t}\n\t\t\t\n\t\t\tif( this.cursor === $mol_wire_cursor.check ) {\n\t\t\t\t$mol_fail( new Error( 'Circular checking' ) )\n\t\t\t}\n\t\t\t\n\t\t\tsuper.promote()\n\t\t}\n\t\t\n\t\ttrack_next( pub?: $mol_wire_pub ): $mol_wire_pub | null {\n\t\t\t\n\t\t\tif( this.cursor < 0 ) $mol_fail( new Error( 'Promo to non begun sub' ) )\n\t\t\t\n\t\t\tif( this.cursor < this.sub_from ) {\n\t\t\t\n \t\t\t\tconst next = this.data[ this.cursor ] as $mol_wire_pub | undefined\n\t\t\t\tif( pub === undefined ) return next ?? null\n\t\t\t\t\n\t\t\t\tif( next === pub ) {\n\t\t\t\t\tthis.cursor += 2\n\t\t\t\t\treturn next\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( next ) {\n\t\t\t\t\t\n\t\t\t\t\tif( this.sub_from < this.data.length ) {\n\t\t\t\t\t\tthis.peer_move( this.sub_from, this.data.length )\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tthis.peer_move( this.cursor, this.sub_from )\n\t\t\t\t\tthis.sub_from += 2\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tif( pub === undefined ) return null\n\t\t\t\t\n\t\t\t\tif( this.sub_from < this.data.length ) {\n\t\t\t\t\tthis.peer_move( this.sub_from, this.data.length )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tthis.sub_from += 2\n\t\t\t\t\n\t\t\t}\t\t\t\n\t\t\t\n\t\t\tthis.data[ this.cursor ] = pub\n\t\t\tthis.data[ this.cursor + 1 ] = pub.sub_on( this, this.cursor )\n\t\t\t\n\t\t\tthis.cursor += 2\n\t\t\t\n\t\t\treturn pub\n\t\t}\n\t\t\n\t\ttrack_off( sub: $mol_wire_sub | null ) {\n\t\t\t\n\t\t\t$mol_wire_auto( sub )\n\t\t\t\n\t\t\tif( this.cursor < 0 ) {\n\t\t\t\t$mol_fail( new Error( 'End of non begun sub' ) )\n\t\t\t}\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.pub_from;\n\t\t\t\tcursor < this.cursor;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub | undefined\n\t\t\t\t// Slot may be cleared by pub_off when a temp was destroyed mid-calc.\n\t\t\t\tpub?.fresh()\n\t\t\t}\n\t\t\t\n\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\n\t\t}\n\t\t\n\t\tpub_off( sub_pos: number ) {\n\t\t\tthis.data[ sub_pos ] = undefined as any\n\t\t\tthis.data[ sub_pos + 1 ] = undefined as any \n\t\t}\n\t\t\n\t\tdestructor() {\n\t\t\t\n\t\t\t// Mid-calc destroy (absorb restarts a temp): stop promoting into this\n\t\t\t// fiber so track_next does not throw 'Promo to non begun sub'.\n\t\t\tif( $mol_wire_auto() === this ) $mol_wire_auto( null )\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.data.length - 2;\n\t\t\t\tcursor >= this.sub_from;\n\t\t\t\tcursor -= 2\n\t\t\t) {\n\t\t\t\tconst sub = this.data[ cursor ] as $mol_wire_sub\n\t\t\t\tconst pos = this.data[ cursor + 1 ] as number\n\t\t\t\tsub.pub_off( pos )\n\t\t\t}\n\t\t\t\n\t\t\tthis.data.length = this.sub_from \n\t\t\tthis.cursor = this.pub_from\n\t\t\tthis.track_cut()\n\t\t\tthis.cursor = $mol_wire_cursor.stale\n\t\t\t\n\t\t}\n\t\t\n\t\ttrack_cut() {\n\t\t\t\n\t\t\tif( this.cursor < this.pub_from ) {\n\t\t\t\t$mol_fail( new Error( 'Cut of non begun sub' ) )\n\t\t\t}\n\t\t\t\n\t\t\tlet end = this.data.length\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.cursor;\n\t\t\t\tcursor < this.sub_from;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\t\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub | undefined\n\t\t\t\tpub?.sub_off( this.data[ cursor + 1 ] as number )\n\t\t\t\t\n\t\t\t\tend -= 2\n\t\t\t\tif( this.sub_from <= end ) this.peer_move( end, cursor )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tthis.data.length = end\n\t\t\t\n\t\t\tthis.sub_from = this.cursor\n\t\t\t\n\t\t}\n\t\t\n\t\tcomplete() { }\n\t\t\n\t\tcomplete_pubs() {\n\t\t\t\n\t\t\tconst limit = this.cursor < 0 ? this.sub_from : this.cursor \n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.pub_from;\n\t\t\t\tcursor < limit;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\tif( pub?.incompleted ) return \n\t\t\t}\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.pub_from;\n\t\t\t\tcursor < limit;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\tpub?.complete()\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tabsorb( quant = $mol_wire_cursor.stale, pos = -1 ) {\n\t\t\t\n\t\t\tif( this.cursor === $mol_wire_cursor.final ) return\n\t\t\tif( this.cursor >= quant ) return\n\t\t\t\n\t\t\tthis.cursor = quant\n\t\t\tthis.emit( $mol_wire_cursor.doubt )\n\t\t\t\n\t\t\tif( quant !== $mol_wire_cursor.stale ) return\n\t\t\tif( !this.incompleted ) return\n\t\t\t\n\t\t\t// Notice from own task resumes the same calculation, but from a regular\n\t\t\t// pub it makes awaited tasks based on outdated data, so restart them.\n\t\t\t\n\t\t\tconst pub = this.data[ pos ] as $mol_wire_pub\n\n\t\t\tif( pub?.temp ) return\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.pub_from;\n\t\t\t\tcursor < this.sub_from;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\t\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\n\t\t\t\tif( pub?.temp ) {\n\t\t\t\t\t( pub as $mol_wire_fiber< unknown, unknown[], unknown > ).destructor()\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_native( this )\n\t\t}\n\t\t\n\t\t/**\n\t\t * Is subscribed to any publisher or not.\n\t\t */\n\t\tget pub_empty() {\n\t\t\treturn this.sub_from === this.pub_from\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\texport const $mol_ambient_ref : unique symbol = Symbol( '$mol_ambient_ref' )\n\n\t/** @deprecated use $ instead */\n\texport type $mol_ambient_context = $\n\n\texport function $mol_ambient( this : $ | void , overrides : Partial< $ > ) : $ {\n\t\treturn Object.setPrototypeOf( overrides , this || $ )\n\t}\n\n}\n","namespace $ {\n\n\tconst instances = new WeakSet< any >()\n\n\t/**\n\t * Proxy that delegates all to lazy returned target.\n\t * \n\t * \t$mol_delegate( Array.prototype , ()=> fetch_array() )\n\t */\n export function $mol_delegate< Value extends object >(\n\t\tproto : Value ,\n\t\ttarget : ()=> Value ,\n\t) {\n\n\t\tconst proxy = new Proxy( proto , {\n\n\t\t\tget: ( _ , field )=> {\n\t\t\t\tconst obj = target()\n\t\t\t\tlet val = Reflect.get( obj , field )\n\t\t\t\tif( typeof val === 'function' ) {\n\t\t\t\t\tval = val.bind( obj )\n\t\t\t\t} \n\t\t\t\treturn val\n\t\t\t},\n\t\t\thas: ( _ , field )=> Reflect.has( target(), field ),\n\t\t\tset: ( _ , field , value )=> Reflect.set( target() , field , value ),\n\t\t\t\n\t\t\tgetOwnPropertyDescriptor: ( _ , field )=> Reflect.getOwnPropertyDescriptor( target() , field ),\n\t\t\townKeys: ()=> Reflect.ownKeys( target() ),\n\t\t\t\n\t\t\tgetPrototypeOf: ()=> Reflect.getPrototypeOf( target() ),\n\t\t\tsetPrototypeOf: ( _ , donor )=> Reflect.setPrototypeOf( target() , donor ),\n\t\t\t\n\t\t\tisExtensible: ()=> Reflect.isExtensible( target() ),\n\t\t\tpreventExtensions: ()=> Reflect.preventExtensions( target() ),\n\t\t\t\n\t\t\tapply: ( _ , self , args )=> Reflect.apply( target() as Function , self , args ),\n\t\t\tconstruct: ( _ , args , retarget )=> Reflect.construct( target() as Function , args , retarget ),\n\t\t\t\n\t\t\tdefineProperty: ( _ , field , descr )=> Reflect.defineProperty( target() , field , descr ),\n\t\t\tdeleteProperty: ( _ , field )=> Reflect.deleteProperty( target() , field ),\n\n\t\t} )\n\n\t\tinstances.add( proxy )\n\n\t\treturn proxy\n\n\t}\n\n\tReflect.defineProperty(\n\t\t$mol_delegate ,\n\t\tSymbol.hasInstance ,\n\t\t{\n\t\t\tvalue : ( obj : object )=> instances.has( obj ),\n\t\t},\n\t)\n\n}\n","namespace $ {\n\n\texport const $mol_owning_map = new WeakMap< any , any >()\n\n\texport function $mol_owning_allow< Having >(\n\t\thaving : Having ,\n\t) : having is Having & {\n\t\tdestructor() : void\n\t} {\n\t\ttry {\n\t\t\tif( !having ) return false\n\t\t\tif( typeof having !== 'object' && typeof having !== 'function' ) return false\n\t\t\tif( having instanceof $mol_delegate ) return false\n\t\t\tif( typeof (having as any)['destructor'] !== 'function' ) return false\n\t\t\treturn true\n\t\t} catch {\n\t\t\treturn false\n\t\t}\n\t}\n\n\texport function $mol_owning_get< Having , Owner extends object >( having : Having , Owner? : { new() : Owner } ) : Owner | null {\n\t\n\t\tif( !$mol_owning_allow( having ) ) return null\n\n\t\twhile( true ) {\n\n\t\t\tconst owner = $mol_owning_map.get( having )\n\t\t\tif( !owner ) return owner\n\t\t\tif( !Owner ) return owner\n\t\t\t\n\t\t\tif( owner instanceof Owner ) return owner\n\n\t\t\thaving = owner\n\t\t}\n\n\t}\n\t\n\texport function $mol_owning_check< Owner , Having >(\n\t\towner : Owner ,\n\t\thaving : Having ,\n\t) : having is Having & { destructor() : void } {\n\t\tif( !$mol_owning_allow( having ) ) return false\n\t\tif( $mol_owning_map.get( having ) !== owner ) return false\n\t\treturn true\n\t}\n\t\n\texport function $mol_owning_catch< Owner , Having >(\n\t\towner : Owner ,\n\t\thaving : Having ,\n\t) {\n\t\tif( !$mol_owning_allow( having ) ) return false\n\t\tif( $mol_owning_map.get( having ) ) return false\n\n\t\t$mol_owning_map.set( having , owner )\n\t\treturn true\n\t}\n\n}\n","namespace $ {\n\t\n\tconst named = new WeakSet< Function >()\n\t\n\texport function $mol_func_name( this : $ , func : Function ) : string {\n\t\t\n\t\tlet name = func.name\n\t\tif( name?.length > 1 ) return name\n\t\tif( named.has( func ) ) return name\n\n\t\tfor( let key in this ) {\n\t\t\ttry {\n\t\t\t\tif( (this as any)[ key ] !== func ) continue\n\t\t\t\tname = key\n\t\t\t\tObject.defineProperty( func , 'name' , { value : name } )\n\t\t\t\tbreak\n\t\t\t} catch {}\n\t\t}\n\n\t\tnamed.add( func )\n\t\treturn name\n\t\t\n\t}\n\n\texport function $mol_func_name_from< Target extends Function >( target : Target , source : Function ) {\n\t\tObject.defineProperty( target , 'name' , { value : source.name } )\n\t\treturn target\n\t}\n\n}\n","namespace $ {\n\t\n\texport const $mol_key_handle = Symbol.for( '$mol_key_handle' )\n\texport const $mol_key_store = new WeakMap< object, string >()\n\t\n}\n","namespace $ {\n\t\n\tif( !Symbol.dispose ) ( Symbol as any ).dispose = Symbol( 'Symbol.dispose' )\n\n\texport class $mol_object2 {\n\t\t\n\t\tstatic $ = $ as any as $\n\t\t\n\t\t[Symbol.toStringTag]!: string\n\n\t\t[ $mol_ambient_ref ] = null as any as $\n\t\tget $() {\n\t\t\tif( this[ $mol_ambient_ref ] ) return this[ $mol_ambient_ref ]\n\t\t\tconst owner = $mol_owning_get( this ) as any\n\t\t\treturn this[ $mol_ambient_ref ] = owner?.$ || (this.constructor as { $?: $ }).$ || $mol_object2.$ as $\n\t\t}\n\t\tset $( next : $ ) {\n\t\t\tif( this[ $mol_ambient_ref ] ) $mol_fail_hidden( new Error( 'Context already defined' ) )\n\t\t\tthis[ $mol_ambient_ref ] = next\n\t\t}\n\n\t\tpublic static create< Instance >(\n\t\t\tthis : new( init? : ( instance : any )=> void )=> Instance ,\n\t\t\tinit? : ( instance : $mol_type_writable<Instance> )=> void\n\t\t) : Instance {\n\t\t\tconst obj = new this\n\t\t\tif( init ) init( obj )\n\t\t\treturn obj\n\t\t}\n\t\t\n\t\tstatic [ Symbol.toPrimitive ]() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\tstatic toString() {\n\t\t\treturn ( this as any )[ Symbol.toStringTag ] || this.$.$mol_func_name( this )\n\t\t}\n\t\t\n\t\tstatic toJSON() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\tstatic [ $mol_key_handle ]() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\tdestructor() { }\n\t\tstatic destructor() { }\n\t\t\n\t\t[ Symbol.dispose ] () {\n\t\t\tthis.destructor()\n\t\t}\n\t\t\n\t\t//[ Symbol.toPrimitive ]( hint: string ) {\n\t\t//\treturn hint === 'number' ? this.valueOf() : this.toString()\n\t\t//}\n\t\t\n\t\ttoString(): string {\n\t\t\treturn this[ Symbol.toStringTag ] || this.constructor.name + '<>'\n\t\t}\n\t\t\n\t\t// toJSON(): any {\n\t\t// \treturn this.toString()\n\t\t// }\n\n\t}\n}\n","namespace $ {\n\n\texport class $mol_after_tick extends $mol_object2 {\n\n\t\tstatic promise = null as Promise<void> | null\n\t\tcancelled = false\n\n\t\tconstructor(\n\t\t\tpublic task : ()=> void ,\n\t\t) {\n\t\t\tsuper()\n\t\t\t\n\t\t\tif( !$mol_after_tick.promise ) $mol_after_tick.promise = Promise.resolve().then( ()=> {\n\t\t\t\t$mol_after_tick.promise = null\n\t\t\t} )\n\t\t\t\n\t\t\t$mol_after_tick.promise.then( ()=> {\n\t\t\t\tif( this.cancelled ) return\n\t\t\t\ttask()\n\t\t\t} )\n\t\t\t\n\t\t}\n\n\t\tdestructor() {\n\t\t\tthis.cancelled = true\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport function $mol_promise_like( val: any ): val is Promise<any> {\n\t\ttry {\n\t\t\treturn val && typeof val === 'object' && 'then' in val && typeof val.then === 'function'\n\t\t} catch {\n\t\t\treturn false\n\t\t}\n\t}\n\n}\n","namespace $ {\n\t\n\tconst wrappers = new WeakMap< Promise< unknown >, Promise< any > >()\n\t\n\t/**\n\t * Suspendable task with support both sync/async api.\n\t * \n\t * \tA1 A2 A3 A4 P1 P2 P3 P4 S1 S2 S3\n\t * \t^ ^ ^\n\t * \targs_from pubs_from subs_from\n\t **/\n\texport abstract class $mol_wire_fiber<\n\t\tHost,\n\t\tArgs extends readonly unknown[],\n\t\tResult,\n\t> extends $mol_wire_pub_sub {\n\t\n\t\tstatic warm = true\n\t\t\n\t\tstatic planning = new Set< $mol_wire_fiber< any, any, any > >()\n\t\tstatic reaping = new Set< $mol_wire_fiber< any, any, any > >()\n\t\t\n\t\tstatic plan_task: $mol_after_tick | null = null\n\t\tstatic plan() {\n\t\t\t\n\t\t\tif( this.plan_task ) return\n\t\t\t\n\t\t\tthis.plan_task = new $mol_after_tick( ()=> {\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tthis.sync()\n\t\t\t\t} finally {\n\t\t\t\t\t$mol_wire_fiber.plan_task = null\n\t\t\t\t}\n\n\t\t\t} )\n\t\t\t\n\t\t}\n\t\t\n\t\tstatic sync() {\n\t\t\t\n\t\t\t// Sync whole fiber graph\n\t\t\twhile( this.planning.size ) {\n\t\t\t\tfor( const fiber of this.planning ) {\n\t\t\t\t\tthis.planning.delete( fiber )\n\t\t\t\t\tif( fiber.cursor >= 0 ) continue\n\t\t\t\t\tif( fiber.cursor === $mol_wire_cursor.final ) continue\n\t\t\t\t\tfiber.fresh()\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t// Collect garbage\n\t\t\twhile( this.reaping.size ) {\n\t\t\t\t\n\t\t\t\tconst fibers = this.reaping\n\t\t\t\tthis.reaping = new Set\n\t\t\t\t\n\t\t\t\tfor( const fiber of fibers ) {\n\t\t\t\t\tif( !fiber.sub_empty ) continue\n\t\t\t\t\tfiber.destructor()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tpublic cache: Result | Error | Promise< Result | Error > = undefined as any\n\t\t\n\t\tget args() {\n\t\t\treturn this.data.slice( 0 , this.pub_from ) as any as Args\n\t\t}\n\t\t\n\t\tresult() {\n\t\t\tif( $mol_promise_like( this.cache ) ) return\n\t\t\tif( this.cache instanceof Error ) return\n\t\t\treturn this.cache\n\t\t}\n\t\t\n\t\tget incompleted() {\n\t\t\treturn $mol_promise_like( this.cache )\n\t\t}\n\t\t\n\t\tfield() {\n\t\t\treturn this.task.name + '()'\n\t\t}\n\t\t\n\t\tconstructor(\n\t\t\tid: string,\n\t\t\treadonly task: ( this : Host , ... args : Args )=> Result,\n\t\t\treadonly host?: Host,\n\t\t\targs?: Args\n\t\t) {\n\t\t\t\n\t\t\tsuper( id )\n\t\t\tif( args ) this.data.push( ... args )\n\t\t\tthis.pub_from = this.sub_from = args?.length ?? 0\n\t\t\t\n\t\t}\n\t\t\n\t\tplan() {\n\t\t\t$mol_wire_fiber.planning.add( this )\n\t\t\t$mol_wire_fiber.plan()\n\t\t\treturn this\n\t\t}\n\t\t\n\t\treap() {\n\t\t\t$mol_wire_fiber.reaping.add( this )\n\t\t\t$mol_wire_fiber.plan()\n\t\t}\n\t\t\n\t\ttoString() {\n\t\t\treturn this[ Symbol.toStringTag ]\n\t\t}\n\t\t\n\t\ttoJSON() {\n\t\t\treturn this[ Symbol.toStringTag ]\n\t\t}\n\n\t\t[ $mol_dev_format_head ]() {\n\t\t\t\n\t\t\tconst cursor = {\n\t\t\t\t[ $mol_wire_cursor.stale ]: '🔴',\n\t\t\t\t[ $mol_wire_cursor.doubt ]: '🟠',\n\t\t\t\t[ $mol_wire_cursor.check ]: '🟡',\n\t\t\t\t[ $mol_wire_cursor.fresh ]: '🟢',\n\t\t\t\t[ $mol_wire_cursor.final ]: '🔵',\n\t\t\t}[ this.cursor ] ?? this.cursor.toString()\n\t\t\t\n\t\t\treturn $mol_dev_format_div( {},\n\t\t\t\t$mol_owning_check( this, this.cache )\n\t\t\t\t\t? $mol_dev_format_shade( cursor )\n\t\t\t\t\t: $mol_dev_format_shade( this[ Symbol.toStringTag ], cursor ),\n\t\t\t\t$mol_dev_format_auto( this.cache ),\n\t\t\t)\n\t\t\t\n\t\t}\n\t\t[ $mol_dev_format_body ]() { return null }\n\t\t\n\t\tget $() {\n\t\t\treturn ( this.host ?? this.task as any )['$']\n\t\t}\n\t\t\n\t\temit( quant = $mol_wire_cursor.stale ) {\n\t\t\tif( this.sub_empty ) this.plan()\n\t\t\telse super.emit( quant )\n\t\t}\n\t\t\n\t\tfresh() {\n\n\t\t\ttype Result = typeof this.cache\n\t\t\t\n\t\t\tif( this.cursor === $mol_wire_cursor.fresh ) return\n\t\t\tif( this.cursor === $mol_wire_cursor.final ) return\n\t\t\t\n\t\t\tcheck: if( this.cursor === $mol_wire_cursor.doubt ) {\n\t\t\t\t\n\t\t\t\tthis.cursor = $mol_wire_cursor.check\n\t\t\t\t\n\t\t\t\tfor( let i = this.pub_from ; i < this.sub_from; i += 2 ) {\n\t\t\t\t\t;( this.data[i] as $mol_wire_pub )?.fresh()\n\t\t\t\t\tif( this.cursor !== $mol_wire_cursor.check ) break check\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\treturn\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst bu = this.track_on()\n\t\t\tlet result: typeof this.cache\n\n\t\t\ttry {\n\n\t\t\t\ttry {\n\n\t\t\t\t\tswitch( this.pub_from ) {\n\t\t\t\t\t\tcase 0: result = (this.task as any).call( this.host! ); break\n\t\t\t\t\t\tcase 1: result = (this.task as any).call( this.host!, this.data[0] ); break\n\t\t\t\t\t\tdefault: result = (this.task as any).call( this.host!, ... this.args ); break\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif( $mol_promise_like( result ) ) {\n\n\t\t\t\t\t\tif( wrappers.has( result ) ) {\n\t\t\t\t\t\t\tresult = wrappers.get( result )!.then(a=>a)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tconst put = ( res: Result )=> {\n\t\t\t\t\t\t\t\tif( this.cache === result ) this.put( res )\n\t\t\t\t\t\t\t\treturn res\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\twrappers.set( result, result = Object.assign(\n\t\t\t\t\t\t\t\tresult.then( put, put ),\n\t\t\t\t\t\t\t\t{ destructor: ( result as any ).destructor || (()=> {}) }\n\t\t\t\t\t\t\t) )\n\t\t\t\t\t\t\twrappers.set( result, result )\n\n\t\t\t\t\t\t\tconst error = new Error( `Promise in ${ this }` )\n\t\t\t\t\t\t\tObject.defineProperty( result, 'stack', { get: ()=> error.stack } )\n\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t} catch( error: any ) {\n\t\t\t\t\t\n\t\t\t\t\tif( error instanceof Error || $mol_promise_like( error ) ) {\n\t\t\t\t\t\tresult = error\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = new Error( String( error ), { cause: error } )\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif( $mol_promise_like( result ) ) {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( wrappers.has( result ) ) {\n\t\t\t\t\t\t\tresult = wrappers.get( result )!\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tconst put = ( v: any )=> {\n\t\t\t\t\t\t\t\tif( this.cache === result ) this.absorb()\n\t\t\t\t\t\t\t\treturn v\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\twrappers.set( result, result = Object.assign(\n\t\t\t\t\t\t\t\tresult.then( put, put ),\n\t\t\t\t\t\t\t\t{ destructor: ( result as any ).destructor || (()=> {}) }\n\t\t\t\t\t\t\t) )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tconst error = new Error( `Promise in ${ this }` )\n\t\t\t\t\t\t\tObject.defineProperty( result, 'stack', { get: ()=> error.stack } )\n\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t// Temp destroyed mid-calc (absorb restart): cut/off would throw.\n\t\t\t\tif( this.cursor < this.pub_from ) return this\n\t\t\t\t\n\t\t\t\tif( ! $mol_promise_like( result ) ) {\n\t\t\t\t\tthis.track_cut()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tthis.track_off( bu )\n\t\t\t\tthis.put( result )\n\t\t\t\t\n\t\t\t} finally {\n\t\t\t\t\n\t\t\t\t// If cut threw or destructor nulled auto — put outer back\n\t\t\t\t// (else once()/onclose → Promo to non begun sub).\n\t\t\t\tif( $mol_wire_auto() === this || ! $mol_wire_auto() ) {\n\t\t\t\t\t$mol_wire_auto( bu )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn this\n\t\t}\n\t\t\n\t\trefresh() {\n\t\t\tthis.cursor = $mol_wire_cursor.stale\n\t\t\tthis.fresh()\n\t\t}\n\t\t\n\t\tabstract put( next: Result | Error | Promise< Result | Error > ): Result | Error | Promise< Result | Error >\n\t\t\n\t\t/**\n\t\t * Synchronous execution. Throws Promise when waits async task (SuspenseAPI provider).\n\t\t * Should be called inside SuspenseAPI consumer (ie fiber).\n\t\t */\n\t\tsync() {\n\t\t\t\n\t\t\tif( !$mol_wire_fiber.warm ) {\n\t\t\t\treturn this.result() as Awaited< Result >\n\t\t\t}\n\t\t\t\n\t\t\tthis.promote()\n\t\t\tthis.fresh()\n\t\t\t\n\t\t\tif( this.cache instanceof Error ) {\n\t\t\t\treturn $mol_fail_hidden( this.cache )\n\t\t\t}\n\t\t\t\n\t\t\tif( $mol_promise_like( this.cache ) ) {\n\t\t\t\treturn $mol_fail_hidden( this.cache )\n\t\t\t}\n\t\t\t\n\t\t\treturn this.cache as Awaited< Result >\n\t\t}\n\n\t\t/**\n\t\t * Asynchronous execution.\n\t\t * It's SuspenseAPI consumer. So SuspenseAPI providers can be called inside.\n\t\t */\n\t\tasync async_raw() {\n\t\t\t\n\t\t\twhile( true ) {\n\t\t\t\t\n\t\t\t\tthis.fresh()\n\t\t\t\t\n\t\t\t\tif( this.cache instanceof Error ) {\n\t\t\t\t\t$mol_fail_hidden( this.cache )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( ! $mol_promise_like( this.cache ) ) return this.cache\n\t\t\t\t\t\n\t\t\t\tawait Promise.race([ this.cache, this.step() ])\n\t\t\t\tif( ! $mol_promise_like( this.cache ) ) return this.cache\n\t\t\t\t\t\n\t\t\t\tif( this.cursor === $mol_wire_cursor.final ) {\n\t\t\t\t\t// never ends on destructed fiber\n\t\t\t\t\tawait new Promise( ()=> {} )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tasync() {\n\t\t\tconst promise = this.async_raw() as Promise<Result> & { destructor(): void }\n\n\t\t\tif (! promise.destructor) promise.destructor = () => this.destructor()\n\n\t\t\treturn promise\n\t\t}\n\t\t\n\t\tstep() {\n\t\t\treturn new Promise< null >( done => {\n\t\t\t\tconst sub = new $mol_wire_pub_sub\n\t\t\t\tconst prev = sub.track_on()\n\t\t\t\tsub.track_next( this )\n\t\t\t\tsub.track_off( prev )\n\t\t\t\tsub.absorb = ()=> {\n\t\t\t\t\tdone( null )\n\t\t\t\t\tsetTimeout( ()=> sub.destructor() )\n\t\t\t\t}\n\t\t\t} )\n\t\t}\n\n\t\tdestructor() {\n\t\t\t\n\t\t\tsuper.destructor()\n\t\t\t\n\t\t\t$mol_wire_fiber.planning.delete( this )\n\t\t\t\n\t\t\tif( ! $mol_owning_check( this, this.cache ) ) return\n\n\t\t\ttry {\n\t\t\t\tthis.cache.destructor()\n\t\t\t} catch (result) {\n\t\t\t\tif ($mol_promise_like(result)) {\n\t\t\t\t\tconst error = new Error( `Promise in ${ this }.destructor()` )\n\t\t\t\t\tObject.defineProperty( result, 'stack', { get: ()=> error.stack } )\n\t\t\t\t}\n\n\t\t\t\t$mol_fail_hidden(result)\n\t\t\t}\n\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\texport let $mol_compare_deep_cache = new WeakMap< any , WeakMap< any , boolean > >()\n\t\n\t/**\n\t * Deeply compares two values. Returns true if equal.\n\t * Define `Symbol.toPrimitive` to customize.\n\t */\n\texport function $mol_compare_deep< Value >( left: Value, right: Value ): boolean {\n\n\t\tif( Object.is( left , right ) ) return true\n\n\t\tif( left === null ) return false\n\t\tif( right === null ) return false\n\n\t\tif( typeof left !== 'object' ) return false\n\t\tif( typeof right !== 'object' ) return false\n\n\t\tconst left_proto = Reflect.getPrototypeOf( left as any )\n\t\tconst right_proto = Reflect.getPrototypeOf( right as any )\n\t\t\n\t\tif( left_proto !== right_proto ) return false\n\n\t\tif( left instanceof Boolean ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof Number ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof String ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof Date ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof RegExp ) return left.source === (right as any).source && left.flags === (right as any).flags\n\t\tif( left instanceof Error ) return left.message === (right as any).message && $mol_compare_deep( left.stack, (right as any).stack )\n\n\t\tlet left_cache = $mol_compare_deep_cache.get( left )\n\t\tif( left_cache ) {\n\n\t\t\tconst right_cache = left_cache.get( right )\n\t\t\tif( typeof right_cache === 'boolean' ) return right_cache\n\n\t\t} else {\n\t\t\t\n\t\t\tleft_cache = new WeakMap< any , boolean >()\n\t\t\t$mol_compare_deep_cache.set( left , left_cache )\n\n\t\t}\n\n\t\tleft_cache.set(right, true);\n\n\t\tlet result!: boolean\n\n\t\ttry {\n\t\t\t\n\t\t\tif( !left_proto ) result = compare_pojo( left, right as any )\n\t\t\telse if( !Reflect.getPrototypeOf( left_proto ) ) result = compare_pojo( left, right as any )\n\t\t\telse if( Symbol.toPrimitive in left ) result = compare_primitive( left, right )\n\t\t\telse if( Array.isArray( left ) ) result = compare_array( left, right as any )\n\t\t\telse if( left instanceof Set ) result = compare_set( left, right as any )\n\t\t\telse if( left instanceof Map ) result = compare_map( left, right as any )\n\t\t\telse if( ArrayBuffer.isView( left ) ) result = compare_buffer( left, right as any )\n\t\t\telse if( Symbol.iterator in left ) result = compare_iterator( ( left as any )[ Symbol.iterator ](), ( right as any )[ Symbol.iterator ]() )\n\t\t\telse result = false\n\n\t\t} finally {\n\t\t\tleft_cache.set( right , result )\n\t\t}\n\t\t\n\t\treturn result\n\t}\n\n\tfunction compare_array< Value extends any[] >( left: Value, right: Value ): boolean {\n\t\t\n\t\tconst len = left.length\n\t\tif( len !== right.length ) return false\n\t\t\n\t\tfor( let i = 0; i < len; ++i ) {\n\t\t\tif( !$mol_compare_deep( left[i] , right[i] ) ) return false\n\t\t}\n\t\t\n\t\treturn true\n\t}\n\t\n\tfunction compare_buffer( left: ArrayBufferView, right: ArrayBufferView ): boolean {\n\t\t\n\t\tconst len = left.byteLength\n\t\tif( len !== right.byteLength ) return false\n\t\t\n\t\tif( left instanceof DataView ) return compare_buffer(\n\t\t\tnew Uint8Array( left.buffer, left.byteOffset, left.byteLength ),\n\t\t\tnew Uint8Array( right.buffer, right.byteOffset, right.byteLength ),\n\t\t)\n\t\t\n\t\tfor( let i = 0; i < len; ++i ) {\n\t\t\tif( (left as any)[i] !== (right as any)[i] ) return false\n\t\t}\n\t\t\n\t\treturn true\n\t}\n\t\n\tfunction compare_iterator< Value extends IterableIterator<any> >(\n\t\tleft: Value,\n\t\tright: Value,\n\t): boolean {\n\t\t\n\t\twhile( true ) {\n\n\t\t\tconst left_next = left.next()\n\t\t\tconst right_next = right.next()\n\n\t\t\tif( left_next.done !== right_next.done ) return false\n\t\t\tif( left_next.done ) break\n\n\t\t\tif( !$mol_compare_deep( left_next.value , right_next.value ) ) return false\n\n\t\t}\n\n\t\treturn true\n\n\t}\n\t\n\tfunction compare_set< Value extends Set<any> >( left: Value, right: Value ): boolean {\n\t\tif( left.size !== right.size ) return false\n\t\treturn compare_iterator( left.values(), right.values() )\n\t}\n\t\n\tfunction compare_map< Key, Value >( left: Map< Key, Value > , right: Map< Key, Value > ): boolean {\n\t\tif( left.size !== right.size ) return false\n\t\treturn compare_iterator( left.keys(), right.keys() )\n\t\t\t&& compare_iterator( left.values(), right.values() )\n\t}\n\t\n\tfunction compare_pojo( left: {}, right: {} ): boolean {\n\t\t\n\t\tconst left_keys = Object.getOwnPropertyNames( left )\n\t\tconst right_keys = Object.getOwnPropertyNames( right )\n\t\t\n\t\tif( !compare_array( left_keys, right_keys ) ) return false\n\n\t\tfor( let key of left_keys ) {\n\t\t\tif( !$mol_compare_deep( ( left as any )[ key ], ( right as any )[ key ] ) ) return false\n\t\t}\n\n\t\tconst left_syms = Object.getOwnPropertySymbols( left )\n\t\tconst right_syms = Object.getOwnPropertySymbols( right )\n\t\t\n\t\tif( !compare_array( left_syms, right_syms ) ) return false\n\n\t\tfor( let key of left_syms ) {\n\t\t\tif( !$mol_compare_deep( ( left as any )[ key ], ( right as any )[ key ] ) ) return false\n\t\t}\n\n\t\treturn true\n\t}\n\t\n\tfunction compare_primitive( left: {}, right: {} ): boolean {\n\t\treturn Object.is(\n\t\t\t(left as any)[ Symbol.toPrimitive ]( 'default' ),\n\t\t\t(right as any)[ Symbol.toPrimitive ]( 'default' ),\n\t\t)\n\t}\n\t\n}\n","namespace $ {\n\n\t/** Logger event data */\n\texport type $mol_log3_event< Fields > = {\n\t\t[ key in string ] : unknown\n\t} & {\n\t\t\n\t\t/** Time of event creation */\n\t\ttime? : string\n\n\t\t/** Place of event creation */\n\t\tplace : unknown\n\n\t\t/** Short description of event */\n\t\tmessage : string\n\n\t} & Fields\n\n\t/** Logger function */\n\texport type $mol_log3_logger< Fields , Res = void > = (\n\t\tthis : $ ,\n\t\tevent : $mol_log3_event< Fields > ,\n\t)=> Res\n\n\t/** Log begin of some task */\n\texport declare let $mol_log3_come : $mol_log3_logger<{}>\n\t\n\t/** Log end of some task */\n\texport declare let $mol_log3_done : $mol_log3_logger<{}>\n\t\n\t/** Log error */\n\texport declare let $mol_log3_fail : $mol_log3_logger<{}>\n\t\n\t/** Log warning message */\n\texport declare let $mol_log3_warn : $mol_log3_logger<{ hint : string }>\n\t\n\t/** Log some generic event */\n\texport declare let $mol_log3_rise : $mol_log3_logger<{}>\n\n\t/** Log begin of log group, returns func to close group */\n\texport declare let $mol_log3_area : $mol_log3_logger< {} , ()=> void >\n\n\t/** Log begin of collapsed group only when some logged inside, returns func to close group */\n\texport function $mol_log3_area_lazy(\n\t\tthis : $ ,\n\t\tevent : $mol_log3_event<{}> ,\n\t) {\n\n\t\tconst self = this.$\n\t\tconst stack = self.$mol_log3_stack\n\n\t\tconst deep = stack.length\n\t\tlet logged = false\n\n\t\tstack.push( ()=> {\n\t\t\tlogged = true\n\t\t\tself.$mol_log3_area.call( self , event )\n\t\t} )\n\n\t\treturn ()=> {\n\t\t\tif( logged ) self.console.groupEnd()\n\t\t\tif( stack.length > deep ) stack.length = deep\n\t\t}\n\n\t}\n\n\texport let $mol_log3_stack = [] as ( ()=> void )[]\n\n}\n","namespace $ {\n\n\t/** Position in any resource. */\n\texport class $mol_span extends $mol_object2 {\n\n\t\tconstructor(\n\t\t\treadonly uri: string ,\n\t\t\treadonly source: string ,\n\t\t\treadonly row: number ,\n\t\t\treadonly col: number ,\n\t\t\treadonly length: number ,\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis[ Symbol.toStringTag ] = this.uri + ( '#' + this.row + ':' + this.col + '/' + this.length )\n\t\t}\n\n\t\t/** Span for begin of unknown resource */\n\t\tstatic unknown = $mol_span.begin('?')\n\n\t\t/** Makes new span for begin of resource. */\n\t\tstatic begin( uri: string, source = '' ) {\n\t\t\treturn new $mol_span( uri , source, 1 , 1 , 0 )\n\t\t}\n\n\t\t/** Makes new span for end of resource. */\n\t\tstatic end( uri: string , source: string ) {\n\t\t\treturn new $mol_span( uri , source, 1 , source.length + 1 , 0 )\n\t\t}\n\n\t\t/** Makes new span for entire resource. */\n\t\tstatic entire( uri: string , source: string ) {\n\t\t\treturn new $mol_span( uri , source, 1 , 1 , source.length )\n\t\t}\n\n\t\ttoString() {\n\t\t\treturn this[ Symbol.toStringTag ]\n\t\t}\n\n\t\ttoJSON() {\n\t\t\treturn {\n\t\t\t\turi: this.uri,\n\t\t\t\trow: this.row,\n\t\t\t\tcol: this.col,\n\t\t\t\tlength: this.length\n\t\t\t}\n\t\t}\n\n\t\t/** Makes new error for this span. */\n\t\terror( message : string , Class = Error ) {\n\t\t\treturn new Class( `${message} (${this})` )\n\t\t}\n\n\t\t/** Makes new span for same uri. */\n\t\tspan( row : number , col : number , length : number ) {\n\t\t\treturn new $mol_span( this.uri , this.source, row , col , length )\n\t\t}\n\n\t\t/** Makes new span after end of this. */\n\t\tafter( length = 0 ) {\n\t\t\treturn new $mol_span( this.uri , this.source, this.row , this.col + this.length , length )\n\t\t}\n\n\t\t/** Makes new span between begin and end. */\n\t\tslice( begin: number, end = -1 ) {\n\t\t\tlet len = this.length\n\t\t\t\n\t\t\tif( begin < 0 ) begin += len\n\t\t\tif( end < 0 ) end += len\n\n\t\t\tif (begin < 0 || begin > len) this.$.$mol_fail( this.error( `Begin value '${begin}' out of range`, RangeError ) )\n\t\t\tif (end < 0 || end > len) this.$.$mol_fail( this.error( `End value '${end}' out of range`, RangeError ) )\n\t\t\tif (end < begin) this.$.$mol_fail( this.error( `End value '${end}' can't be less than begin value`, RangeError ) )\n\n\t\t\treturn this.span( this.row , this.col + begin , end - begin )\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\t/** Serializes tree to string in tree format. */\n\texport function $mol_tree2_to_string(\n\t\tthis: $,\n\t\ttree: $mol_tree2,\n\t) : string {\n\n\t\tlet output = [] as string[]\n\t\t\n\t\tfunction dump(\n\t\t\ttree: $mol_tree2,\n\t\t\tprefix = '',\n\t\t) {\n\n\t\t\tif( tree.type.length ) {\n\t\t\t\t\n\t\t\t\tif( !prefix.length ) {\n\t\t\t\t\tprefix = \"\\t\";\n\t\t\t\t}\n\n\t\t\t\toutput.push( tree.type )\n\n\t\t\t\tif( tree.kids.length == 1 ) {\n\t\t\t\t\toutput.push( ' ' )\n\t\t\t\t\tdump( tree.kids[ 0 ], prefix )\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\toutput.push( \"\\n\" )\n\n\t\t\t} else if( tree.value.length || prefix.length ) {\n\n\t\t\t\toutput.push( \"\\\\\" + tree.value + \"\\n\" )\n\n\t\t\t}\n\n\t\t\tfor( const kid of tree.kids ) {\n\t\t\t\toutput.push( prefix )\n\t\t\t\tdump( kid, prefix + \"\\t\" )\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tdump( tree )\n\n\t\treturn output.join('')\n\t}\n\t\t\n}\n","namespace $ {\n\t\n\texport function $mol_maybe< Value >( value : Value | null | undefined ) : Value[] {\n\t\treturn ( value == null ) ? [] : [ value ]\n\t}\n\t\n}\n","namespace $ {\n\n\t/** Path by types in tree. */\n\texport type $mol_tree2_path =\n\t\tArray< string | number | null >\n\t\n\t/** Hask tool for processing node. */\n\texport type $mol_tree2_hack< Context > =\n\t\t(\n\t\t\tinput : $mol_tree2 ,\n\t\t\tbelt : $mol_tree2_belt< Context > ,\n\t\t\tcontext : Context ,\n\t\t)=> readonly $mol_tree2[]\n\n\t/** Collection of hask tools for processing tree. */\n\texport type $mol_tree2_belt< Context > =\n\t\tRecord< string , $mol_tree2_hack< Context > >\n\n\t/**\n\t * Abstract Syntax Tree with human readable serialization.\n\t * Avoid direct instantiation. Use static factories instead.\n\t * @see https://github.com/nin-jin/tree.d\n\t */\n\texport class $mol_tree2 extends Object {\n\t\t\n\t\tconstructor(\n\n\t\t\t/** Type of structural node, `value` should be empty */\n\t\t\treadonly type : string,\n\t\t\t\n\t\t\t/** Content of data node, `type` should be empty */\n\t\t\treadonly value : string,\n\n\t\t\t/** Child nodes */\n\t\t\treadonly kids : readonly $mol_tree2[],\n\t\t\t\n\t\t\t/** Position in most far source resource */\n\t\t\treadonly span : $mol_span,\n\n\t\t) {\n\t\t\tsuper()\n\t\t\t;(this as any)[ Symbol.toStringTag ] = type || '\\\\' + value\n\t\t}\n\n\t\t/** Makes collection node. */\n\t\tstatic list(\n\t\t\tkids : readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\t\t\treturn new $mol_tree2( '' , '' , kids , span )\n\t\t}\n\t\t\n\t\t/** Makes new derived collection node. */\n\t\tlist(\n\t\t\tkids : readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.list( kids , this.span )\n\t\t}\n\n\t\t/** Makes data node for any string. */\n\t\tstatic data(\n\t\t\tvalue : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\n\t\t\tconst chunks = value.split( '\\n' )\n\n\t\t\tif( chunks.length > 1 ) {\n\t\t\t\n\t\t\t\tlet kid_span = span.span( span.row , span.col , 0 )\n\n\t\t\t\tconst data = chunks.map( chunk => {\n\t\t\t\t\tkid_span = kid_span.after( chunk.length )\n\t\t\t\t\treturn new $mol_tree2( '' , chunk , [] , kid_span )\n\t\t\t\t} )\n\n\t\t\t\tkids = [ ... data , ... kids ]\n\n\t\t\t\tvalue = ''\n\n\t\t\t}\n\n\t\t\treturn new $mol_tree2( '' , value , kids , span )\n\n\t\t}\n\t\t\n\t\t/** Makes new derived data node. */\n\t\tdata(\n\t\t\tvalue : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.data( value , kids , this.span )\n\t\t}\n\t\t\n\t\t/** Makes struct node. */\n\t\tstatic struct(\n\t\t\ttype : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\n\t\t\tif( /[ \\n\\t\\\\]/.test( type ) ) {\n\t\t\t\t$$.$mol_fail( span.error( `Wrong type ${ JSON.stringify( type ) }` ) )\n\t\t\t}\n\n\t\t\treturn new $mol_tree2( type , '' , kids , span )\n\n\t\t}\n\t\t\n\t\t/** Makes new derived structural node. */\n\t\tstruct(\n\t\t\ttype : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.struct( type , kids , this.span )\n\t\t}\n\n\t\t/** Makes new derived node with different kids id defined. */\n\t\tclone( kids : readonly $mol_tree2[], span = this.span ) {\n\t\t\treturn new $mol_tree2( this.type , this.value , kids , span )\n\t\t}\n\n\t\t/** Returns multiline text content. */\n\t\ttext() {\n\n\t\t\tvar values : string[] = []\n\t\t\t\n\t\t\tfor( var kid of this.kids ) {\n\t\t\t\tif( kid.type ) continue\n\t\t\t\tvalues.push( kid.value )\n\t\t\t}\n\t\t\t\n\t\t\treturn this.value + values.join( '\\n' )\n\n\t\t}\n\t\t\n\t\t/** Parses tree format. */\n\t\t/** @deprecated Use $mol_tree2_from_string */\n\t\tstatic fromString( str : string , uri = 'unknown' ) {\n\t\t\treturn $$.$mol_tree2_from_string( str, uri )\n\t\t}\n\n\t\t/** Serializes to tree format. */\n\t\ttoString() : string {\n\t\t\treturn $$.$mol_tree2_to_string( this )\n\t\t}\n\t\t\n\t\t/** Makes new tree with node overrided by path. */\n\t\tinsert( value : $mol_tree2 | null , ...path : $mol_tree2_path ) : $mol_tree2 {\n\t\t\treturn this.update( $mol_maybe( value ), ... path )[0]\n\t\t}\n\n\t\t/** Makes new tree with node overrided by path. */\n\t\tupdate( value : readonly $mol_tree2[] , ...path : $mol_tree2_path ) : readonly $mol_tree2[] {\n\n\t\t\tif( path.length === 0 ) return value\n\t\t\t\n\t\t\tconst type = path[0]\n\t\t\tif( typeof type === 'string' ) {\n\n\t\t\t\tlet replaced = false\n\t\t\t\tconst sub = this.kids.flatMap( ( item , index )=> {\n\t\t\t\t\tif( item.type !== type ) return item\n\t\t\t\t\treplaced = true\n\t\t\t\t\treturn item.update( value , ... path.slice( 1 ) )\n\t\t\t\t} ).filter( Boolean )\n\t\t\t\t\n\t\t\t\tif( !replaced && value ) {\n\t\t\t\t\tsub.push( ... this.struct( type , [] ).update( value , ... path.slice( 1 ) ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn [ this.clone( sub ) ]\n\n\t\t\t} else if( typeof type === 'number' ) {\n\t\t\t\t\n\t\t\t\tconst ins = ( this.kids[ type ] || this.list([]) )\n\t\t\t\t\t.update( value , ... path.slice( 1 ) )\n\t\t\t\t\n\t\t\t\treturn [ this.clone([\n\t\t\t\t\t... this.kids.slice( 0, type ),\n\t\t\t\t\t... ins,\n\t\t\t\t\t... this.kids.slice( type + 1 ),\n\t\t\t\t]) ]\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tconst kids = ( ( this.kids.length === 0 ) ? [ this.list([]) ] : this.kids )\n\t\t\t\t\t.flatMap( item => item.update( value , ... path.slice( 1 ) ) )\n\n\t\t\t\treturn [ this.clone( kids ) ]\n\n\t\t\t}\n\n\t\t}\n\n\t\t/** Query nodes by path. */\n\t\tselect( ...path : $mol_tree2_path ) {\n\n\t\t\tlet next = [ this as $mol_tree2 ]\n\n\t\t\tfor( const type of path ) {\n\n\t\t\t\tif( !next.length ) break\n\t\t\t\t\n\t\t\t\tconst prev = next\n\t\t\t\tnext = []\n\n\t\t\t\tfor( var item of prev ) {\n\n\t\t\t\t\tswitch( typeof( type ) ) {\n\n\t\t\t\t\t\tcase 'string' :\n\n\t\t\t\t\t\t\tfor( var child of item.kids ) {\n\t\t\t\t\t\t\t\tif( child.type == type ) {\n\t\t\t\t\t\t\t\t\tnext.push( child )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\n\t\t\t\t\t\tcase 'number' :\n\n\t\t\t\t\t\t\tif( type < item.kids.length ) next.push( item.kids[ type ] )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\n\t\t\t\t\t\tdefault : next.push( ... item.kids )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.list( next )\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Filter kids by path or value. */\n\t\tfilter( path : string[] , value? : string ) {\n\n\t\t\tconst sub = this.kids.filter( item => {\n\t\t\t\t\t\n\t\t\t\tvar found = item.select( ...path )\n\t\t\t\t\n\t\t\t\tif( value === undefined ) {\n\t\t\t\t\treturn Boolean( found.kids.length )\n\t\t\t\t} else {\n\t\t\t\t\treturn found.kids.some( child => child.value == value )\n\t\t\t\t}\n\t\t\t\n\t\t\t} )\n\t\t\t\n\t\t\treturn this.clone( sub )\n\n\t\t}\n\n\t\thack_self< Context extends { span?: $mol_span; [ key: string ]: unknown } = {} >(\n\t\t\tbelt: $mol_tree2_belt< Context >,\n\t\t\tcontext = {} as Context,\n\t\t) {\n\t\t\tlet handle = belt[ this.type ] || belt[ '' ]\n\t\t\t\t\n\t\t\tif( !handle || handle === Object.prototype[ this.type as keyof Object ] ) {\n\t\t\t\thandle = ( input, belt, context )=> [\n\t\t\t\t\tinput.clone( input.hack( belt, context ), context.span )\n\t\t\t\t]\n\t\t\t}\n\t\t\t\n\t\t\ttry {\n\t\t\t\treturn handle( this , belt , context! )\n\t\t\t} catch( error: any ) {\n\t\t\t\terror.message += `\\n${ this.clone([]) }${ this.span }`\n\t\t\t\t$mol_fail_hidden( error )\n\t\t\t}\n\t\t}\n\n\t\t/** Transform tree through context with transformers */\n\t\thack< Context extends { span?: $mol_span; [ key: string ]: unknown } = {} >(\n\t\t\tbelt: $mol_tree2_belt< Context >,\n\t\t\tcontext = {} as Context,\n\t\t) {\n\t\t\treturn ( [] as readonly $mol_tree2[] ).concat(\n\t\t\t\t... this.kids.map( child => child.hack_self(belt, context) )\n\t\t\t)\n\n\t\t}\n\n\t\t/** Makes Error with node coordinates. */\n\t\terror( message : string , Class = Error ) {\n\t\t\treturn this.span.error( `${ message }\\n${ this.clone([]) }` , Class )\n\t\t}\n\n\t}\n\n\texport class $mol_tree2_empty extends $mol_tree2 {\n\t\tconstructor() {\n\t\t\tsuper( '' , '' , [] , $mol_span.unknown )\n\t\t}\n\t}\n\t\n}\n","namespace $ {\n\n\t/** Syntax error with cordinates and source line snippet. */\n\texport class $mol_error_syntax extends SyntaxError {\n\t\tconstructor (\n\t\t\tpublic reason: string,\n\t\t\tpublic line: string,\n\t\t\tpublic span: $mol_span,\n\t\t) {\n\t\t\tsuper(`${ reason }\\n${ span }\\n${ line.substring( 0 , span.col - 1 ).replace( /\\S/g, ' ' ) }${ ''.padEnd( span.length, '!' ) }\\n${ line }`)\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\t/** Parses tree format from string. */\n\texport function $mol_tree2_from_string(\n\t\tthis: $,\n\t\tstr: string,\n\t\turi = '?',\n\t) : $mol_tree2 {\n\n\t\tconst span = $mol_span.entire( uri, str )\n\n\t\tvar root = $mol_tree2.list( [], span )\n\t\tvar stack = [ root ]\n\n\t\tvar pos = 0, row = 0, min_indent = 0\n\t\t\n\t\twhile( str.length > pos ) {\n\n\t\t\tvar indent = 0\n\t\t\tvar line_start = pos\n\n\t\t\trow++\n\n\t\t\t// read indent\n\t\t\twhile( str.length > pos && str[ pos ] == '\\t' ) {\n\t\t\t\tindent++\n\t\t\t\tpos++\n\t\t\t}\n\n\t\t\tif( ! root.kids.length ) {\n\t\t\t\tmin_indent = indent\n\t\t\t}\n\n\t\t\tindent -= min_indent\n\n\t\t\t// invalid tab size\n\t\t\tif( indent < 0 || indent >= stack.length ) {\n\n\t\t\t\tconst sp = span.span( row, 1, pos - line_start )\n\n\t\t\t\t// skip error line\n\t\t\t\twhile( str.length > pos && str[ pos ] != '\\n' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\n\t\t\t\tif( indent < 0 ) {\n\t\t\t\t\tif( str.length > pos ) {\n\t\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t\t`Too few tabs`,\n\t\t\t\t\t\t\tstr.substring( line_start, pos ),\n\t\t\t\t\t\t\tsp,\n\t\t\t\t\t\t) )\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t`Too many tabs`,\n\t\t\t\t\t\tstr.substring( line_start, pos ),\n\t\t\t\t\t\tsp,\n\t\t\t\t\t) )\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tstack.length = indent + 1\n\t\t\tvar parent = stack[ indent ]\n\n\t\t\t// parse types\n\t\t\twhile( str.length > pos && str[ pos ] != '\\\\' && str[ pos ] != '\\n' ) {\n\n\t\t\t\t// type can not contain space and tab\n\t\t\t\tvar error_start = pos\n\t\t\t\twhile( str.length > pos && ( str[ pos ] == ' ' || str[ pos ] == '\\t' ) ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\n\t\t\t\tif( pos > error_start ) {\n\t\t\t\t\tlet line_end = str.indexOf( '\\n' , pos )\n\t\t\t\t\tif( line_end === -1 ) line_end = str.length\n\t\t\t\t\tconst sp = span.span( row, error_start - line_start + 1, pos - error_start )\n\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t`Wrong nodes separator`,\n\t\t\t\t\t\tstr.substring( line_start, line_end ),\n\t\t\t\t\t\tsp,\n\t\t\t\t\t) )\n\t\t\t\t}\n\n\t\t\t\t// read type\n\t\t\t\tvar type_start = pos\n\t\t\t\twhile( \n\t\t\t\t\tstr.length > pos && \n\t\t\t\t\tstr[ pos ] != '\\\\' && \n\t\t\t\t\tstr[ pos ] != ' ' && \n\t\t\t\t\tstr[ pos ] != '\\t' && \n\t\t\t\t\tstr[ pos ] != '\\n'\n\t\t\t\t) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t\tif( pos > type_start ) {\n\t\t\t\t\tlet next = new $mol_tree2(\n\t\t\t\t\t\tstr.slice( type_start , pos ),\n\t\t\t\t\t\t'',\n\t\t\t\t\t\t[],\n\t\t\t\t\t\tspan.span( row, type_start - line_start + 1, pos - type_start ),\n\t\t\t\t\t)\n\t\t\t\t\tconst parent_kids = parent.kids as $mol_tree2[]\n\t\t\t\t\tparent_kids.push( next )\n\t\t\t\t\tparent = next\n\t\t\t\t}\n\n\t\t\t\t// read one space if exists\n\t\t\t\tif( str.length > pos && str[ pos ] == ' ' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// read data\n\t\t\tif( str.length > pos && str[ pos ] == '\\\\' ) {\n\t\t\t\tvar data_start = pos\n\t\t\t\twhile( str.length > pos && str[ pos ] != '\\n' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t\tlet next = new $mol_tree2(\n\t\t\t\t\t'',\n\t\t\t\t\tstr.slice( data_start + 1 , pos ),\n\t\t\t\t\t[],\n\t\t\t\t\tspan.span( row, data_start - line_start + 2, pos - data_start - 1 ),\n\t\t\t\t)\n\t\t\t\tconst parent_kids = parent.kids as $mol_tree2[]\n\t\t\t\tparent_kids.push( next )\n\t\t\t\tparent = next\n\t\t\t}\n\n\t\t\t// now must be end of text\n\t\t\tif( str.length === pos && stack.length > 0 ) {\n\t\t\t\tconst sp = span.span( row, pos - line_start + 1, 1 )\n\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t`Unexpected EOF, LF required`,\n\t\t\t\t\tstr.substring( line_start, str.length ),\n\t\t\t\t\tsp,\n\t\t\t\t) )\n\t\t\t}\n\n\t\t\tstack.push( parent )\n\t\t\tpos++\n\t\t}\n\n\t\treturn root\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_array_chunks< Item >(\n\t\tarray : readonly Item[],\n\t\trule: number | ( ( item: Item, index: number )=> boolean ),\n\t) {\n\t\t\n\t\tconst br = typeof rule === 'number' ? ( _: Item, i: number )=> i % rule === 0 : rule\n\n\t\tlet chunk = [] as Item[]\n\t\tconst chunks = []\n\n\t\tfor( let i = 0; i < array.length; ++i ) {\n\n\t\t\tconst item = array[i]\n\t\t\t\n\t\t\tif( br( item, i ) ) {\n\t\t\t\tif( chunk.length ) chunks.push( chunk )\n\t\t\t\tchunk = []\n\t\t\t}\n\n\t\t\tchunk.push( item )\n\t\t\t\n\t\t}\n\n\t\tif( chunk.length ) chunks.push( chunk )\n\n\t\treturn chunks\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_tree2_from_json( json: any, span = $mol_span.unknown ): $mol_tree2 {\n\n\t\tif( typeof json === 'boolean' || typeof json === 'number' || json === null ) {\n\t\t\treturn new $mol_tree2( String( json ) , '' , [] , span )\n\t\t}\n\t\t\n\t\tif( typeof json === 'string' ) {\n\t\t\treturn $mol_tree2.data( json , [], span )\n\t\t}\n\n\t\tif( typeof json.toJSON === 'function' ) {\n\t\t\treturn $mol_tree2_from_json( json.toJSON() )\n\t\t}\n\n\t\tif( Array.isArray( json ) ) {\n\t\t\tconst sub = json.map( json => $mol_tree2_from_json( json , span ) )\n\t\t\treturn new $mol_tree2( '/' , '', sub, span )\n\t\t}\n\t\t\n\t\tif( ArrayBuffer.isView( json ) ) {\n\t\t\tconst buf = new Uint8Array( json.buffer, json.byteOffset, json.byteLength )\n\t\t\tconst codes = [ ... buf ].map( b => b.toString(16).toUpperCase().padStart( 2, '0' ) )\n\t\t\tconst str = $mol_array_chunks( codes, 8 ).map( c => c.join(' ') ).join( '\\n' )\n\t\t\treturn $mol_tree2.data( str , [], span )\n\t\t}\n\t\t\n\t\tif( json instanceof Date ) {\n\t\t\treturn new $mol_tree2( '', json.toISOString() , [] , span )\n\t\t}\n\n\t\tif( json.toString !== Object.prototype.toString ) {\n\t\t\treturn $mol_tree2.data( json.toString() , [], span )\n\t\t}\n\n\t\tif( json instanceof Error ) {\n\t\t\tconst { name , message , stack } = json\n\t\t\tjson = { ... json, name, message, stack }\n\t\t}\n\n\t\tconst sub = [] as $mol_tree2[]\n\t\t\n\t\tfor( var key in json ) {\n\n\t\t\tconst val = json[ key ]\n\n\t\t\tif( val === undefined ) continue\n\n\t\t\tconst subsub = $mol_tree2_from_json( val, span )\n\t\t\t\n\t\t\tif( /^[^\\n\\t\\\\ ]+$/.test( key ) ) {\n\t\t\t\tsub.push( new $mol_tree2( key, '', [ subsub ], span ) )\n\t\t\t} else {\n\t\t\t\tsub.push( $mol_tree2.data( key, [ subsub ], span ) )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\treturn new $mol_tree2( '*' , '', sub , span )\n\t\t\t\n\t}\n\n}\n","namespace $ {\n\t\n\t/** Module for working with terminal. Text coloring when output in terminal */\n\texport class $mol_term_color {\n\t\t\n\t\tstatic reset = this.ansi( 0, 0 )\n\t\tstatic bold = this.ansi( 1, 22 )\n\t\tstatic italic = this.ansi( 3, 23 )\n\t\tstatic underline = this.ansi( 4, 24 )\n\t\tstatic inverse = this.ansi( 7, 27 )\n\t\tstatic hidden = this.ansi( 8, 28 )\n\t\tstatic strike = this.ansi( 9, 29 )\n\t\t\n\t\tstatic gray = this.ansi( 90, 39 )\n\t\tstatic red = this.ansi( 91, 39 )\n\t\tstatic green = this.ansi( 92, 39 )\n\t\tstatic yellow = this.ansi( 93, 39 )\n\t\tstatic blue = this.ansi( 94, 39 )\n\t\tstatic magenta = this.ansi( 95, 39 )\n\t\tstatic cyan = this.ansi( 96, 39 )\n\t\t\n\t\tstatic Gray = ( str: string )=> this.inverse( this.gray( str ) )\n\t\tstatic Red = ( str: string )=> this.inverse( this.red( str ) )\n\t\tstatic Green = ( str: string )=> this.inverse( this.green( str ) )\n\t\tstatic Yellow = ( str: string )=> this.inverse( this.yellow( str ) )\n\t\tstatic Blue = ( str: string )=> this.inverse( this.blue( str ) )\n\t\tstatic Magenta = ( str: string )=> this.inverse( this.magenta( str ) )\n\t\tstatic Cyan = ( str: string )=> this.inverse( this.cyan( str ) )\n\t\t\n\t\tstatic ansi( open: number, close: number ) {\n\t\n\t\t\tif( typeof process === 'undefined' ) return String\n\t\t\tif( !process.stdout.isTTY ) return String\n\t\t\n\t\t\tconst prefix = `\\x1b[${open}m`\n\t\t\tconst postfix = `\\x1b[${close}m`\n\t\t\t\n\t\t\tconst suffix_regexp = new RegExp( postfix.replace( '[', '\\\\[' ), 'g' )\n\t\t\n\t\t\treturn function colorer( str: string ) {\n\t\t\n\t\t\t\tstr = String( str )\n\t\t\t\tif( str === '' ) return str\n\t\t\n\t\t\t\tconst suffix = str.replace( suffix_regexp, prefix )\n\t\t\t\treturn prefix + suffix + postfix\n\t\t\n\t\t\t}\n\t\t\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\texport function $mol_log3_node_make(\n\t\tlevel : keyof Console ,\n\t\toutput : 'stdout' | 'stderr',\n\t\ttype : string ,\n\t\tcolor: ( str: string )=> string ,\n\t) {\n\n\t\treturn function $mol_log3_logger(\n\t\t\tthis : $ ,\n\t\t\tevent : $mol_log3_event<{}> ,\n\t\t) {\n\n\t\t\tif( !event.time ) event = { ... event, time : new Date().toISOString() }\n\n\t\t\tlet tree = this.$mol_tree2_from_json( event )\n\t\t\ttree = tree.struct( type, tree.kids )\n\t\t\t\n\t\t\tlet str = color( tree.toString() )\n\t\t\t;( this.console[ level ] as any )( str )\n\t\n\t\t\tconst self = this\n\t\t\treturn ()=> self.console.groupEnd()\n\n\t\t}\n\n\t}\n\n\t$.$mol_log3_come = $mol_log3_node_make( 'info' , 'stdout' , 'come' , $mol_term_color.blue )\n\t$.$mol_log3_done = $mol_log3_node_make( 'info' , 'stdout' , 'done' , $mol_term_color.green )\n\t$.$mol_log3_fail = $mol_log3_node_make( 'error' , 'stderr' , 'fail' , $mol_term_color.red )\n\t$.$mol_log3_warn = $mol_log3_node_make( 'warn' , 'stderr' , 'warn' , $mol_term_color.yellow )\n\t$.$mol_log3_rise = $mol_log3_node_make( 'log' , 'stdout' , 'rise' , $mol_term_color.magenta )\n\t$.$mol_log3_area = $mol_log3_node_make( 'log' , 'stdout' , 'area' , $mol_term_color.cyan )\n\n}\n","namespace $ {\n\t\n\t/** One-shot fiber */\n\texport class $mol_wire_task<\n\t\tHost,\n\t\tArgs extends readonly unknown[],\n\t\tResult,\n\t> extends $mol_wire_fiber< Host, Args, Result > {\n\t\t\n\t\tstatic getter<\n\t\t\tHost,\n\t\t\tArgs extends readonly unknown[],\n\t\t\tResult,\n\t\t>(\n\t\t\ttask: ( this : Host , ... args : Args )=> Result,\n\t\t): ( host: Host, args: Args )=> $mol_wire_task< Host, Args, Result > {\n\t\t\t\n\t\t\treturn function $mol_wire_task_get( host: Host, args: Args ) {\n\t\t\t\t\n\t\t\t\tconst sub = $mol_wire_auto()\n\t\t\t\tconst existen = sub?.track_next() as $mol_wire_task< Host, Args, Result > | undefined\n\t\t\t\tlet cause = ''\n\t\t\t\t\n\t\t\t\treuse: if( existen ) {\n\t\t\t\t\t\n\t\t\t\t\tif( !existen.temp ) break reuse\n\t\t\t\t\t\n\t\t\t\t\tif( existen.host !== host ) { cause = 'host'; break reuse }\n\t\t\t\t\tif( existen.task !== task ) { cause = 'task'; break reuse }\n\t\t\t\t\tif( !$mol_compare_deep( existen.args, args ) ) { cause = 'args'; break reuse }\n\t\t\t\t\t\n\t\t\t\t\treturn existen\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst key = ( (host as any)?.[ Symbol.toStringTag ] ?? host ) + ( '.' + task.name + '<#>' )\n\t\t\t\tconst next = new $mol_wire_task( key, task, host, args )\n\t\t\t\t\n\t\t\t\t// Disabled because non-idempotency is required for try-catch\n\t\t\t\tif( existen?.temp ) {\n\t\t\t\t\t$$.$mol_log3_warn({\n\t\t\t\t\t\tplace: '$mol_wire_task',\n\t\t\t\t\t\tmessage: `Different ${cause} on restart`,\n\t\t\t\t\t\tsub,\n\t\t\t\t\t\tprev: existen,\n\t\t\t\t\t\tnext,\n\t\t\t\t\t\thint: 'Maybe required additional memoization',\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn next\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tget temp() {\n\t\t\treturn true\n\t\t}\n\t\t\n\t\tcomplete() {\n\t\t\tif( $mol_promise_like( this.cache ) ) return\n\t\t\tthis.destructor()\n\t\t}\n\t\t\n\t\tput( next: Result | Error | Promise< Result | Error > ) {\n\t\t\t\n\t\t\tconst prev = this.cache\n\t\t\tthis.cache = next\n\t\t\t\n\t\t\tif( $mol_promise_like( next ) ) {\n\t\t\t\t\n\t\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\tif( next !== prev ) this.emit()\n\t\t\t\t\n\t\t\t\tif( $mol_owning_catch( this, next ) ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t(next as any)[ Symbol.toStringTag ] = (this as any)[ Symbol.toStringTag ]\n\t\t\t\t\t} catch { // Promises throw in strict mode\n\t\t\t\t\t\tObject.defineProperty( next, Symbol.toStringTag, { value: (this as any)[ Symbol.toStringTag ] } )\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn next\n\t\t\t}\n\t\t\t\n\t\t\tthis.cursor = $mol_wire_cursor.final\n\t\t\t\n\t\t\tif( this.sub_empty ) this.destructor()\n\t\t\telse if( next !== prev ) this.emit()\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tdestructor() {\n\t\t\tsuper.destructor()\n\t\t\tthis.cursor = $mol_wire_cursor.final\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\tconst TypedArray = Object.getPrototypeOf( Uint8Array )\n\n\t/** Returns string key for any value. */\n\texport function $mol_key< Value >( value : Value ) : string {\n\t\t\n\t\tprimitives: {\n\t\t\tif( typeof value === 'bigint' ) return value.toString() + 'n'\n\t\t\tif( typeof value === 'symbol' ) return `Symbol(${ value.description! })`\n\t\t\tif( !value ) return JSON.stringify( value ) // 0, null, \"\"\n\t\t\tif( typeof value !== 'object' && typeof value !== 'function' ) return JSON.stringify( value ) // boolean, number, string\n\t\t}\n\t\t\n\t\tcaching: {\n\t\t\tlet key = $mol_key_store.get( value )\n\t\t\tif( key ) return key\n\t\t}\n\t\t\n\t\tobjects: {\n\t\t\t\n\t\t\tif( value instanceof TypedArray ) {\n\t\t\t\treturn `${ ( value as any )[ Symbol.toStringTag ] }([${ [ ... value as number[] ].map( v => $mol_key( v ) ) }])`\n\t\t\t}\n\t\t\tif( Array.isArray( value ) ) return `[${ value.map( v => $mol_key( v ) ) }]`\n\t\t\tif( value instanceof RegExp ) return value.toString()\n\t\t\tif( value instanceof Date ) return `Date(${ value.valueOf() })`\n\t\t\t\n\t\t}\n\t\t\n\t\tstructures: {\n\t\t\tconst proto = Reflect.getPrototypeOf( value )\n\t\t\tif( !proto || !Reflect.getPrototypeOf( proto ) ) {\n\t\t\t\treturn `{${ Object.entries( value ).map( ([ k, v ]) => JSON.stringify( k ) + ':' + $mol_key( v ) ) }}`\n\t\t\t}\n\t\t}\n\t\t\n\t\thandlers: {\n\t\t\tif( $mol_key_handle in value ) {\n\t\t\t\treturn ( value[ $mol_key_handle ] as any )()\n\t\t\t}\n\t\t}\n\t\t\n\t\tcontainers: {\n\t\t\tconst key = JSON.stringify( '#' + $mol_guid() )\n\t\t\t$mol_key_store.set( value, key )\n\t\t\treturn key\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\n\texport class $mol_after_timeout extends $mol_object2 {\n\n\t\tid : any\n\n\t\tconstructor(\n\t\t\tpublic delay : number ,\n\t\t\tpublic task : ()=> void ,\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis.id = setTimeout( task , delay )\n\t\t}\n\n\t\tdestructor() {\n\t\t\tclearTimeout( this.id )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\n\texport class $mol_after_frame extends $mol_after_timeout {\n\n\t\tconstructor(\n\t\t\tpublic task : ()=> void ,\n\t\t) {\n\t\t\tsuper( 16 , task )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/**\n\t * Decorates method to fiber to ensure it is executed only once inside other fiber.\n\t */\n\texport function $mol_wire_method<\n\t\tHost extends object,\n\t\tArgs extends readonly any[],\n\t>(\n\t\thost : Host,\n\t\tfield : PropertyKey,\n\t\tdescr? : TypedPropertyDescriptor< ( ... args: Args )=> any >,\n\t) {\n\t\t\n\t\tif( !descr ) descr = Reflect.getOwnPropertyDescriptor( host , field ) as any\n\t\tconst orig = descr?.value! ?? (host as any)[ field ]\n\t\t\n\t\tconst sup = Reflect.getPrototypeOf( host )!\t\n\t\tif( typeof (sup as any)[ field ] === 'function' ) {\n\t\t\tObject.defineProperty( orig , 'name' , { value : (sup as any)[ field ].name } )\n\t\t}\n\t\t\n\t\tconst temp = $mol_wire_task.getter( orig )\n\t\tconst value = function( this: Host, ... args: Args ) {\n\t\t\tconst fiber = temp( this ?? null as any, args )\n\t\t\treturn fiber.sync()\n\t\t}\n\t\t\n\t\tObject.defineProperty( value , 'name' , { value : orig.name + ' ' } )\n\t\t\n\t\tObject.assign( value, { orig } )\n\t\tconst descr2 = { ... descr, value }\n\t\tReflect.defineProperty( host, field, descr2 )\n\t\t\n\t\treturn descr2\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\tconst catched = new WeakSet< any >()\n\n\texport function $mol_fail_catch( error: unknown ) {\n\t\t\n\t\tif( typeof error !== 'object' ) return false\n\t\tif( $mol_promise_like( error ) ) $mol_fail_hidden( error )\n\t\tif( catched.has( error ) ) return false\n\t\t\n\t\tcatched.add( error )\n\t\treturn true\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport function $mol_try< Result >( handler : ()=> Result ) : Result|Error {\n\t\ttry {\n\t\t\treturn handler()\n\t\t} catch( error: any ) {\n\t\t\tconsole.error( error )\n\t\t\treturn error\n\t\t}\n\t}\n} \n","namespace $ {\n\t\n\texport function $mol_fail_log( error: unknown ) {\n\t\t\n\t\tif( $mol_promise_like( error ) ) return false\n\t\tif( !$mol_fail_catch( error ) ) return false\n\t\t\n\t\t$mol_try( ()=> { $mol_fail_hidden( error ) } )\n\t\t\n\t\treturn true\n\t\t\n\t}\n\n}\n","namespace $ {\n\n\t/** Long-living fiber. */\n\texport class $mol_wire_atom<\n\t\tHost,\n\t\tArgs extends readonly unknown[],\n\t\tResult,\n\t> extends $mol_wire_fiber< Host, Args, Result > {\n\n\t\tstatic solo<\n\t\t\tHost,\n\t\t\tArgs extends readonly unknown[],\n\t\t\tResult,\n\t\t>(\n\t\t\thost: Host,\n\t\t\ttask: ( this: Host, ... args: Args )=> Result,\n\t\t): $mol_wire_atom< Host, Args, Result > {\n\t\t\t\n\t\t\tconst field = task.name + '()'\n\t\t\t\n\t\t\tconst existen = Object.getOwnPropertyDescriptor( host ?? task, field )?.value\n\t\t\tif( existen ) return existen\n\t\t\t\n\t\t\tconst prefix = (host as any)?.[ Symbol.toStringTag ] ?? ( host instanceof Function ? $$.$mol_func_name( host ) : host )\n\t\t\tconst key = prefix + ( '.' + task.name + '<>' )\n\t\t\t\n\t\t\tconst fiber = new $mol_wire_atom( key, task, host, [] as any as Args )\n\t\t\t;( host as any ?? task )[ field ] = fiber\n\t\t\t\n\t\t\treturn fiber\n\t\t}\n\t\t\n\t\tstatic plex<\n\t\t\tHost,\n\t\t\tArgs extends readonly unknown[],\n\t\t\tResult,\n\t\t>(\n\t\t\thost: Host,\n\t\t\ttask: ( this: Host , ... args: Args )=> Result,\n\t\t\tkey: Args[0],\n\t\t): $mol_wire_atom< Host, Args, Result > {\n\t\t\t\n\t\t\tconst field = task.name + '()'\n\t\t\tlet dict = Object.getOwnPropertyDescriptor( host ?? task, field )?.value\n\t\t\tconst prefix = (host as any)?.[ Symbol.toStringTag ] ?? ( host instanceof Function ? $$.$mol_func_name( host ) : host )\n\t\t\tconst key_str = $mol_key( key )\n\t\t\t\n\t\t\tif( dict ) {\n\t\t\t\tconst existen = dict.get( key_str )\n\t\t\t\tif( existen ) return existen\n\t\t\t} else {\n\t\t\t\tdict = ( host as any ?? task )[ field ] = new Map<any,any>()\n\t\t\t}\n\t\t\t\n\t\t\tconst id = prefix + ( '.' + task.name ) + ( '<' + key_str.replace( /^\"|\"$/g, \"'\" ) + '>' )\n\t\t\tconst fiber = new $mol_wire_atom( id, task, host, [ key ] as any as Args )\n\t\t\tdict.set( key_str, fiber )\n\t\t\t\n\t\t\treturn fiber\n\t\t}\n\t\t\n\t\tstatic watching = new Set< $mol_wire_atom< any, any, any > >()\n\t\tstatic watcher = null as $mol_after_frame | null\n\t\t\n\t\tstatic watch() {\n\t\t\n\t\t\t$mol_wire_atom.watcher = new $mol_after_frame( $mol_wire_atom.watch )\n\t\t\t\n\t\t\tfor( const atom of $mol_wire_atom.watching ) {\n\t\t\t\t\n\t\t\t\tif( atom.cursor === $mol_wire_cursor.final ) {\n\t\t\t\t\t$mol_wire_atom.watching.delete( atom )\n\t\t\t\t} else {\n\t\t\t\t\tatom.cursor = $mol_wire_cursor.stale\n\t\t\t\t\tatom.fresh()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\twatch() {\n\t\t\t\n\t\t\tif( !$mol_wire_atom.watcher ) {\n\t\t\t\t$mol_wire_atom.watcher = new $mol_after_frame( $mol_wire_atom.watch )\n\t\t\t}\n\t\t\t\n\t\t\t$mol_wire_atom.watching.add( this )\n\t\t\t\n\t\t}\n\t\t\n\t\t/**\n\t\t * Update atom value through another temp fiber.\n\t\t */\n\t\t@ $mol_wire_method\n\t\tresync( args: Args ) {\n\t\t\t\n\t\t\t// enforce pulling tasks abort\n\t\t\tfor(\n\t\t\t\tlet cursor = this.pub_from;\n\t\t\t\tcursor < this.sub_from;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\tif( pub && pub instanceof $mol_wire_task ) {\n\t\t\t\t\tpub.destructor()\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn this.put( this.task.call( this.host!, ... args ) )\n\t\t}\n\t\t\n\t\t@ $mol_wire_method\n\t\tonce() {\n\t\t\treturn this.sync()\n\t\t}\n\t\t\n\t\tchannel() {\n\t\t\treturn Object.assign( ( next?: $mol_type_foot< Args > )=> {\n\t\t\t\t\t\n\t\t\t\tif( next !== undefined ) return this.resync( [ ... this.args, next ] as any ) as never\n\t\t\t\tif( !$mol_wire_fiber.warm ) return this.result() as never\n\t\t\t\t\n\t\t\t\tif( $mol_wire_auto()?.temp ) {\n\t\t\t\t\treturn this.once()\n\t\t\t\t} else {\n\t\t\t\t\treturn this.sync()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}, { atom: this as $mol_wire_atom< Host, Args, Result > } )\n\t\t}\n\t\t\n\t\tdestructor() {\n\t\t\t\n\t\t\tsuper.destructor()\n\t\t\t\n\t\t\tif( this.pub_from === 0 ) {\n\t\t\t\t;( this.host as any ?? this.task )[ this.field() ] = null\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tconst key = $mol_key( this.args[0] )\n\t\t\t\tconst map = ( this.host as any ?? this.task )[ this.field() ]\n\t\t\t\t\n\t\t\t\tif( !map.has( key ) ) this.$.$mol_log3_warn({\n\t\t\t\t\tplace: this,\n\t\t\t\t\tmessage: 'Absent key on destruction',\n\t\t\t\t\thint: 'Check for $mol_key(key) is not changed',\n\t\t\t\t})\n\t\t\t\t\n\t\t\t\tmap.delete( key )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tput( next: Result | Error | Promise< Result | Error > ) {\n\t\t\t\n\t\t\tconst prev = this.cache\n\t\t\t\n\t\t\tupdate: if( next !== prev ) {\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tif( $mol_compare_deep( prev, next ) ) break update\n\t\t\t\t} catch( error: any ) {\n\t\t\t\t\t$mol_fail_log( error )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_owning_check( this, prev ) ) {\n\t\t\t\t\tprev.destructor()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_owning_catch( this, next ) ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t(next as any)[ Symbol.toStringTag ] = (this as any)[ Symbol.toStringTag ]\n\t\t\t\t\t} catch { // Promises throw in strict mode\n\t\t\t\t\t\tObject.defineProperty( next, Symbol.toStringTag, { value: (this as any)[ Symbol.toStringTag ] } )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( !this.sub_empty ) this.emit()\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tthis.cache = next\n\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\n\t\t\tif( $mol_promise_like( next ) ) return next\n\t\t\t\n\t\t\tthis.complete_pubs()\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\t\n\t/** Run code without state changes */\n\texport function $mol_wire_probe< Value >(\n\t\ttask : ()=> Value, def?: Value\n\t) : Value | undefined {\n\t\t\n\t\tconst warm = $mol_wire_fiber.warm\n\t\t\n\t\ttry {\n\t\t\t$mol_wire_fiber.warm = false\n\t\t\tconst res = task()\n\t\t\tif( res === undefined ) return def\n\t\t\treturn res\n\t\t} finally {\n\t\t\t$mol_wire_fiber.warm = warm\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/**\n\t * Disable reaping of current subscriber\n\t */\n\texport function $mol_wire_solid() {\n\t\tlet current = $mol_wire_auto() as $mol_wire_fiber< any, any, any >\n\t\tif( current!.temp ) current = current!.host\n\t\tif( current!.reap !== nothing ) {\n\t\t\tcurrent?.sub_on( sub, sub.data.length )\n\t\t}\n\t\tcurrent!.reap = nothing\n\t}\n\t\n\tconst nothing = ()=> {}\n\tconst sub = new $mol_wire_pub_sub\n\t\n}\n","namespace $ {\n\t\n\t/**\n\t * Real-time refresh current atom.\n\t * Don't use if possible. May reduce performance.\n\t */\n\texport function $mol_wire_watch() {\n\t\tconst atom = $mol_wire_auto()\n\t\tif( atom instanceof $mol_wire_atom ) {\n\t\t\tatom.watch()\n\t\t} else {\n\t\t\t$mol_fail( new Error( 'Atom is required for watching' ) )\n\t\t}\n\t}\n\t\n}\n","namespace $ {\n\tconst factories = new WeakMap<Function, Function>()\n\n\tfunction factory<Args extends unknown[], Result>(\n\t\tval: new (...args: Args) => Result\n\t) {\n\t\tlet make = factories.get(val) as null | ((...args: Args) => Result)\n\n\t\tif ( make ) return make\n\n\t\tmake = $mol_func_name_from((...args: Args) => new val(...args), val)\n\t\tfactories.set(val, make)\n\n\t\treturn make\n\t}\n\n\tconst getters = new WeakMap<Object, Record<string | symbol, (next?: unknown) => unknown>>()\n\n\tfunction get_prop(\n\t\thost: Object,\n\t\tfield: string | symbol,\n\t) {\n\t\tlet props = getters.get(host)\n\t\tlet get_val = props?.[field]\n\n\t\tif ( get_val ) return get_val\n\n\t\tget_val = (next?: unknown) => {\n\t\t\tif (next !== undefined) host[field as keyof typeof host] = next as any\n\n\t\t\treturn host[field as keyof typeof host]\n\t\t}\n\n\t\tObject.defineProperty( get_val , 'name' , { value : field } )\n\n\t\tif (! props) {\n\t\t\tprops = {}\n\t\t\tgetters.set(host, props)\n\t\t}\n\t\tprops[field] = get_val\n\n\t\treturn get_val\n\t}\n\n\t/**\n\t * Convert asynchronous (promise-based) API to synchronous by wrapping function and method calls in a fiber.\n\t * @see https://mol.hyoo.ru/#!section=docs/=1fcpsq_1wh0h2\n\t */\n\texport function $mol_wire_sync< Host extends object >( obj: Host ) {\n\t\treturn new Proxy( obj, {\n\t\t\t\n\t\t\tget( obj, field ) {\n\t\t\t\t\n\t\t\t\tlet val = (obj as any)[ field ]\n\t\t\t\tconst temp = $mol_wire_task.getter(typeof val === 'function' ? val : get_prop(obj, field))\n\n\t\t\t\tif (typeof val !== 'function') return temp( obj, [] ).sync()\n\n\t\t\t\treturn function $mol_wire_sync( this: Host, ... args: unknown[] ) {\n\t\t\t\t\tconst fiber = temp( obj, args )\n\t\t\t\t\treturn fiber.sync()\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tset( obj, field, next) {\n\t\t\t\tconst temp = $mol_wire_task.getter(get_prop(obj, field))\n\t\t\t\ttemp( obj, [ next ] ).sync()\n\n\t\t\t\treturn true\n\t\t\t},\n\n\t\t\tconstruct(obj, args) {\n\t\t\t\tconst temp = $mol_wire_task.getter(factory(obj as (new ( ... args: unknown[] )=> unknown)))\n\t\t\t\treturn temp( obj, args ).sync() as object\n\t\t\t},\n\n\t\t\tapply( obj, self, args ) {\n\t\t\t\tconst temp = $mol_wire_task.getter(obj as ( ... args: any[] )=> any)\n\t\t\t\treturn temp(self, args).sync()\n\t\t\t},\n\t\t\t\n\t\t} ) as unknown as ObjectOrFunctionResultAwaited<Host>\n\t}\n\n\ttype FunctionResultAwaited<Some> = Some extends (...args: infer Args) => infer Res\n\t\t? (...args: Args) => Awaited<Res>\n\t\t: Some\n\n\ttype ConstructorResultAwaited<Some> = Some extends new (...args: infer Args) => infer Res\n\t\t? new (...args: Args) => Res\n\t\t: {}\n\n\ttype MethodsResultAwaited<Host extends Object> = {\n\t\t[K in keyof Host]: FunctionResultAwaited<Host[K]>\n\t}\n\n\ttype ObjectOrFunctionResultAwaited<Some> = (\n\t\tSome extends (...args: any) => unknown ? FunctionResultAwaited<Some> : {}\n\t) & ( Some extends Object ? MethodsResultAwaited<Some> & ConstructorResultAwaited<Some> : Some )\n\n}\n","namespace $ {\n\t\n\t/** Convert a pseudo-synchronous (Suspense API) API to an explicit asynchronous one (for integrating with external systems). */\n\texport function $mol_wire_async< Host extends object >( obj: Host ) {\n\t\t\n\t\tlet fiber: $mol_wire_fiber< any, any, any >\n\t\tconst temp = $mol_wire_task.getter( obj as ( ... args: any[] )=> any )\n\t\t\n\t\treturn new Proxy( obj, {\n\t\t\t\n\t\t\tget( obj, field ) {\n\t\t\t\t\n\t\t\t\tconst val = (obj as any)[ field ]\n\t\t\t\tif( typeof val !== 'function' ) return val\n\t\t\t\t\n\t\t\t\tlet fiber: $mol_wire_fiber< any, any, any >\n\t\t\t\tconst temp = $mol_wire_task.getter( val ) \n\t\t\t\t\n\t\t\t\treturn function $mol_wire_async( this: Host, ... args: any[] ) {\n\t\t\t\t\tfiber?.destructor()\n\t\t\t\t\tfiber = temp( obj, args )\n\t\t\t\t\treturn fiber.async()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t},\n\t\t\t\n\t\t\tapply( obj, self, args ) {\n\t\t\t\tfiber?.destructor()\n\t\t\t\tfiber = temp( self, args )\n\t\t\t\treturn fiber.async()\n\t\t\t},\n\t\t\t\n\t\t} ) as unknown as ObjectOrFunctionResultPromisify<Host>\n\t\t\n\t}\n\n\ttype FunctionResultPromisify<Some> = Some extends (...args: infer Args) => infer Res\n\t\t? Res extends PromiseLike<unknown> ? Some : (...args: Args) => Promise<Res>\n\t\t: Some\n\n\ttype MethodsResultPromisify<Host extends Object> = {\n\t\t[K in keyof Host]: FunctionResultPromisify<Host[K]>\n\t}\n\n\ttype ObjectOrFunctionResultPromisify<Some> = (\n\t\tSome extends (...args: any) => unknown ? FunctionResultPromisify<Some> : {}\n\t) & ( Some extends Object ? MethodsResultPromisify<Some> : Some )\n\n}\n","namespace $ {\n\t\n\t/** Starts subtasks concurrently instead of serial. */\n\texport function $mol_wire_race<\n\t\tTasks extends ( ( ... args: any )=> any )[]\n\t>( ... tasks: Tasks ): {\n\t\t[ index in keyof Tasks ]: ReturnType< Tasks[ index ] > \n\t} {\n\t\t\n\t\tconst results = tasks.map( task => {\n\t\t\t\n\t\t\ttry {\n\t\t\t\treturn task()\n\t\t\t} catch( error ) {\n\t\t\t\treturn error\n\t\t\t}\n\t\t\t\n\t\t} )\n\t\t\n\t\tconst promises = results.filter( res => $mol_promise_like( res ) )\n\t\tif( promises.length ) $mol_fail( Promise.race( promises ) )\n\t\t\n\t\tconst error = results.find( res => res instanceof Error )\n\t\tif( error ) $mol_fail( error )\n\t\t\n\t\treturn results as any\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/** Decorates solo object channel to [mol_wire_atom](../atom/atom.ts). */\n\texport function $mol_wire_solo< Args extends any[] >(\n\t\thost: object,\n\t\tfield: string,\n\t\tdescr?: TypedPropertyDescriptor< ( ... args: Args )=> any >\n\t) {\n\n\t\tif( !descr ) descr = Reflect.getOwnPropertyDescriptor( host , field )\n\t\tconst orig = descr?.value! ?? (host as any)[ field ]\n\t\t\n\t\tconst sup = Reflect.getPrototypeOf( host )!\n\t\tif( typeof (sup as any)[ field ] === 'function' ) {\n\t\t\tObject.defineProperty( orig , 'name' , { value : (sup as any)[ field ].name } )\n\t\t}\n\t\t\n\t\tconst descr2 = {\n\t\t\t... descr,\n\t\t\tvalue: function( this: typeof host, ... args: Args ){\n\t\t\t\n\t\t\t\tlet atom = $mol_wire_atom.solo( this, orig )\n\t\t\t\t\n\t\t\t\tif(( args.length === 0 )||( args[0] === undefined )) {\n\t\t\t\t\t\n\t\t\t\t\tif( !$mol_wire_fiber.warm ) return atom.result()\n\t\t\t\t\t\n\t\t\t\t\tif( $mol_wire_auto()?.temp ) {\n\t\t\t\t\t\treturn atom.once()\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn atom.sync()\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn atom.resync( args )\t\n\t\t\t}\n\t\t}\n\t\t\n\t\tReflect.defineProperty( descr2.value , 'name' , { value : orig.name + ' ' } )\n\t\tReflect.defineProperty( descr2.value , 'length' , { value : orig.length } )\n\t\tObject.assign( descr2.value, { orig } )\n\t\t\n\t\tReflect.defineProperty( host, field, descr2 )\n\t\t\n\t\treturn descr2 as any as TypedPropertyDescriptor< ( ... args: First_optional< Args > )=> any >\n\t}\n\n\ttype First_optional< Args extends any[] > = Args extends []\n\t\t? []\n\t\t: [ Args[0] | undefined, ... $mol_type_tail< Args > ]\n\n}\n","namespace $ {\n\t\n\t/** Reactive memoizing multiplexed property decorator. */\n\texport function $mol_wire_plex< Args extends [ any, ... any[] ] >(\n\t\thost: object,\n\t\tfield: string,\n\t\tdescr?: TypedPropertyDescriptor< ( ... args: Args )=> any >\n\t) {\n\n\t\tif( !descr ) descr = Reflect.getOwnPropertyDescriptor( host , field )\n\t\tconst orig = descr?.value! ?? (host as any)[ field ]\n\t\t\n\t\tconst sup = Reflect.getPrototypeOf( host )!\n\t\tif( typeof (sup as any)[ field ] === 'function' ) {\n\t\t\tObject.defineProperty( orig , 'name' , { value : (sup as any)[ field ].name } )\n\t\t}\n\t\t\n\t\tconst descr2 = {\n\t\t\t... descr,\n\t\t\tvalue: function( this: typeof host, ... args: Args ) {\n\t\t\t\n\t\t\t\tlet atom = $mol_wire_atom.plex( this, orig, args[0] )\n\t\t\t\t\n\t\t\t\tif(( args.length === 1 )||( args[1] === undefined )) {\n\t\t\t\t\t\n\t\t\t\t\tif( !$mol_wire_fiber.warm ) return atom.result()\n\t\t\t\t\t\n\t\t\t\t\tif( $mol_wire_auto()?.temp ) {\n\t\t\t\t\t\treturn atom.once()\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn atom.sync()\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn atom.resync( args )\t\n\t\t\t}\n\t\t}\n\t\t\n\t\tReflect.defineProperty( descr2.value , 'name' , { value : orig.name + ' ' } )\n\t\tReflect.defineProperty( descr2.value , 'length' , { value : orig.length } )\n\t\tObject.assign( descr2.value, { orig } )\n\t\t\n\t\tReflect.defineProperty( host, field, descr2 )\n\t\t\n\t\treturn descr2\n\t}\n\t\n}\n","namespace $ { \n\t/**\n\t * Returns closure that returns constant value.\n\t * @example\n\t * const rnd = $mol_const( Math.random() )\n\t */\n\texport function $mol_const< Value >( value : Value ) {\n\t\tconst getter = <{ () : Value , '()' : Value }> ( () => value )\n\t\tgetter['()'] = value\n\t\t;(getter as any)[ Symbol.toStringTag ] = value\n\t\t;(getter as any )[ $mol_dev_format_head ] = ()=> $mol_dev_format_span( {} , '()=> ', $mol_dev_format_auto( value ) )\n\t\treturn getter\n\t}\n}\n","namespace $ {\n\t\n\t/** Incompatible with instance fields with initializators */\n\texport function $mol_wire_field<\n\t\tHost extends object ,\n\t\tField extends keyof Host ,\n\t\tValue extends Host[ Field ],\n\t>(\n\t\thost : Host ,\n\t\tfield : Field ,\n\t\tdescr? : TypedPropertyDescriptor< Value >\n\t): any {\n\n\t\tif( !descr ) descr = Reflect.getOwnPropertyDescriptor( host , field ) as any\n\t\t\n\t\tconst _get = descr?.get || $mol_const( descr?.value )\n\t\tconst _set = descr?.set || function( this : Host , next ) {\n\t\t\t$mol_wire_atom.solo( this, _get ).put( next )\n\t\t}\n\n\t\tconst sup = Reflect.getPrototypeOf( host )!\n\t\tconst sup_descr = Reflect.getOwnPropertyDescriptor( sup, field )\n\t\t\n\t\tObject.defineProperty( _get , 'name' , { value : sup_descr?.get?.name ?? field } )\n\t\tObject.defineProperty( _set , 'name' , { value : sup_descr?.set?.name ?? field } )\n\t\t\n\t\tfunction get( this: Host ) {\n\t\t\treturn $mol_wire_atom.solo( this, _get ).sync()\n\t\t}\n\t\t\n\t\tconst temp = $mol_wire_task.getter( _set )\n\t\tfunction set( this: Host, next: Value ) {\n\t\t\ttemp( this, [ next ] ).sync()\n\t\t}\n\t\t\n\t\tObject.defineProperty( get , 'name' , { value : _get.name + '$' } )\n\t\tObject.defineProperty( set , 'name' , { value : _set.name + '@' } )\n\t\t\n\t\tObject.assign( get, { orig: _get } )\n\t\tObject.assign( set, { orig: _set } )\n\t\t\n\t\tconst { value, writable, ... descr2 } = { ... descr, get, set }\n\t\tReflect.defineProperty( host, field, descr2 )\n\t\t\n\t\treturn descr2\n\t}\n\n}\n","namespace $ {\n\n\texport namespace $$ { let $ }\n\n\texport const $mol_object_field = Symbol( '$mol_object_field' )\n\t\n\texport class $mol_object extends $mol_object2 {\n\t\t\n\t\tpublic static make< This extends typeof $mol_object >(\n\t\t\tthis: This,\n\t\t\tconfig: Partial< InstanceType< This > >,\n\t\t) {\n\t\t\treturn super.create( obj => {\n\t\t\t\tfor( let key in config ) ( obj as any )[ key ] = config[ key ]!\n\t\t\t} ) as InstanceType< This >\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\n\t/**\n\t * Reactive memoizing solo property decorator from [mol_wire](../wire/README.md)\n\t * @example\n\t * '@' $mol_mem\n\t * name(next?: string) {\n\t * \treturn next ?? 'default'\n\t * }\n\t * @see https://mol.hyoo.ru/#!section=docs/=qxmh6t_sinbmb\n\t */\n\texport let $mol_mem = $mol_wire_solo\n\n\t/**\n\t * Reactive memoizing multiplexed property decorator [mol_wire](../wire/README.md)\n\t * @example\n\t * '@' $mol_mem_key\n\t * name(id: number, next?: string) {\n\t * return next ?? 'default'\n\t * }\n\t * @see https://mol.hyoo.ru/#!section=docs/=qxmh6t_sinbmb\n\t */\n\texport let $mol_mem_key = $mol_wire_plex\n}\n","namespace $ {\n\t\n\t/** State of time moment */\n\texport class $mol_state_time extends $mol_object {\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic task( precision: number, reset?: null ): $mol_after_timeout | $mol_after_frame {\n\t\t\t\n\t\t\tif( precision ) {\n\t\t\t\treturn new $mol_after_timeout( precision, ()=> this.task( precision, null ) )\n\t\t\t} else {\n\t\t\t\treturn new $mol_after_frame( ()=> this.task( precision, null ) )\n\t\t\t}\n\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic now( precision: number ) {\n\t\t\tthis.task( precision )\n\t\t\treturn Date.now()\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/** Transition atom value */\n\texport function $mol_wire_easing( next: any ) {\n\t\t\n\t\tconst atom = $mol_wire_auto()\n\t\tif(!( atom instanceof $mol_wire_atom )) $mol_fail( new Error( 'Allowed only inside atom' ) )\n\n\t\tconst prev = atom.result() ?? next\n\t\tif( typeof prev !== 'number' ) return next\n\t\t\n\t\tconst current = ( prev * 2 + next ) / 3\n\t\n\t\tconst diff = Math.abs( current - next )\n\t\tif( diff < 1 ) return next\n\t\n\t\t$mol_state_time.now(0)\n\t\n\t\treturn current\n\t}\n\t\n}\n","namespace $ {\n\texport function $mol_wire_patch( obj: object ) {\n\t\t\n\t\tfor( const field of Reflect.ownKeys( obj ) ) {\n\t\t\t\n\t\t\tconst descr = Reflect.getOwnPropertyDescriptor( obj, field )!\n\t\t\tif( !descr.configurable ) continue\n\t\t\tif( !descr.get ) continue\n\t\t\t\n\t\t\tconst get = descr.get ?? ( ()=> descr.value )\n\t\t\tconst set = descr.set ?? ( next => descr.value = next )\n\t\t\t\n\t\t\tReflect.defineProperty( obj, field, {\n\t\t\t\t\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: descr.enumerable,\n\t\t\t\t\n\t\t\t\tget() {\n\t\t\t\t\tconst atom = $mol_wire_atom.solo( obj, get )\n\t\t\t\t\tatom.watch()\n\t\t\t\t\treturn atom.sync()\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\tset( next ) {\n\t\t\t\t\tconst atom = $mol_wire_atom.solo( obj, get )\n\t\t\t\t\tset.call( this, next )\n\t\t\t\t\tatom.refresh()\n\t\t\t\t},\n\t\t\t\t\n\t\t\t} )\n\t\t\t\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\texport function $mol_wire_let< Host extends {} >( host: Host ) {\n\t\tfor( const field of Object.keys( host ) ) {\n\t\t\t(host as any)[ field ] = new $mol_wire_atom( field, (host as any)[ field ], host ).channel()\n\t\t}\n\t\treturn host as Host & {\n\t\t\t[ Field in keyof Host ]: {\n\t\t\t\tatom: $mol_wire_atom<\n\t\t\t\t\tHost,\n\t\t\t\t\tParameters< Extract< Host[ Field ], ( ... args: any[] )=>any > >,\n\t\t\t\t\t$mol_type_result< Host[ Field ] >\n\t\t\t\t>\n\t\t\t}\n\t\t}\n\t}\n}\n","namespace $ {\n\t/** Reactive Set */\n\texport class $mol_wire_set< Value > extends Set< Value > {\n\n\t\tpub = new $mol_wire_pub\n\t\t\n\t\t// Accessors\n\t\t\n\t\thas( value: Value ) {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.has( value )\n\t\t}\n\t\t\n\t\tentries() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.entries()\n\t\t}\n\t\t\n\t\tkeys() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.keys()\n\t\t}\n\t\t\n\t\tvalues() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.values()\n\t\t}\n\t\t\n\t\tforEach(\n\t\t\ttask: ( value: Value, value2: Value, set: Set< Value > ) => void,\n\t\t\tself?: any\n\t\t) {\n\t\t\tthis.pub.promote()\n\t\t\tsuper.forEach( task, self )\n\t\t}\n\t\t\n\t\t[Symbol.iterator]() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super[Symbol.iterator]()\n\t\t}\n\t\t\n\t\tget size() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.size\t\n\t\t}\n\n\t\t// Mutators\n\n\t\tadd( value: Value ) {\n\t\t\tif( super.has( value ) ) return this\n\t\t\tsuper.add( value )\n\t\t\tthis.pub.emit()\n\t\t\treturn this\n\t\t}\n\n\t\tdelete( value: Value ) {\n\t\t\tconst res = super.delete( value )\n\t\t\tif( res ) this.pub.emit()\n\t\t\treturn res\n\t\t}\n\t\t\n\t\tclear() {\n\t\t\tif( !super.size ) return\n\t\t\tsuper.clear()\n\t\t\tthis.pub.emit()\n\t\t}\n\n\t\t// Extensions\n\t\t\n\t\titem( val: Value, next?: boolean ) {\n\t\t\t\n\t\t\tif( next === undefined ) return this.has( val )\n\t\t\t\n\t\t\tif( next ) this.add( val )\n\t\t\telse this.delete( val )\n\t\t\t\n\t\t\treturn next\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\t\n\tconst pubs = new WeakMap< object, $mol_wire_pub >()\n\t\n\texport function $mol_wire_proxy_pub( id: string, target: object ) {\n\t\tlet pub = pubs.get( target )\n\t\tif( !pub ) pubs.set( target, pub = new $mol_wire_pub( id ) )\n\t\treturn pub\n\t}\n\t\n\texport function $mol_wire_proxy< Target >( id: string, target: Target ): Target {\n\t\t\n\t\tif( !target ) return target\n\t\t\n\t\tconst type = typeof target\n\t\tif( type !== 'object' && type !== 'function' ) return target\n\t\t\n\t\treturn new Proxy( target, {\n\t\t\t\n\t\t\t// Readers\n\t\t\t\n\t\t\tget( target, property ) {\n\t\t\t\t$mol_wire_proxy_pub( id, target ).promote()\n\t\t\t\tconst suffix = '.' + ( typeof property === 'symbol' ? property.description : property )\n\t\t\t\treturn $mol_wire_proxy( id + suffix , Reflect.get( target, property ) )\n\t\t\t},\n\t\t\t\n\t\t\tgetOwnPropertyDescriptor( target, property ) {\n\t\t\t\t$mol_wire_proxy_pub( id, target ).promote()\n\t\t\t\treturn Reflect.getOwnPropertyDescriptor( target, property )\n\t\t\t},\n\t\t\t\n\t\t\townKeys( target ) {\n\t\t\t\t$mol_wire_proxy_pub( id, target ).promote()\n\t\t\t\treturn Reflect.ownKeys( target )\n\t\t\t},\n\t\t\t\n\t\t\thas( target, property ) {\n\t\t\t\t$mol_wire_proxy_pub( id, target ).promote()\n\t\t\t\treturn Reflect.has( target, property )\n\t\t\t},\n\t\t\t\n\t\t\tgetPrototypeOf( target ) {\n\t\t\t\t$mol_wire_proxy_pub( id, target ).promote()\n\t\t\t\treturn $mol_wire_proxy( id, Reflect.getPrototypeOf( target ) )\n\t\t\t},\n\t\t\t\n\t\t\tisExtensible( target ) {\n\t\t\t\t$mol_wire_proxy_pub( id, target ).promote()\n\t\t\t\treturn Reflect.isExtensible( target )\n\t\t\t},\n\t\t\t\n\t\t\t// Writers\n\t\t\t\n\t\t\tset( target, property, next ) {\n\t\t\t\t\n\t\t\t\tconst pub = pubs.get( target )\n\t\t\t\tif( pub ) {\n\t\t\t\t\t\n\t\t\t\t\tconst prev = Reflect.get( target, property )\n\t\t\t\t\tif( $mol_compare_deep( prev, next ) ) return true\n\t\t\t\t\t\n\t\t\t\t\tpub.emit()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn Reflect.set( target, property, next )\n\t\t\t\t\n\t\t\t},\n\t\t\t\n\t\t\tdefineProperty( target, property, attributes ) {\n\t\t\t\tpubs.get( target )?.emit()\n\t\t\t\treturn Reflect.defineProperty( target, property, attributes )\n\t\t\t},\n\t\t\t\n\t\t\tdeleteProperty( target, property ) {\n\t\t\t\tpubs.get( target )?.emit()\n\t\t\t\treturn Reflect.deleteProperty( target, property )\n\t\t\t},\n\t\t\t\n\t\t\tsetPrototypeOf( target, proto ) {\n\t\t\t\tpubs.get( target )?.emit()\n\t\t\t\treturn Reflect.setPrototypeOf( target, proto )\n\t\t\t},\n\t\t\t\n\t\t\tpreventExtensions( target ) {\n\t\t\t\tpubs.get( target )?.emit()\n\t\t\t\treturn Reflect.preventExtensions( target )\n\t\t\t},\n\t\t\t\n\t\t} )\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t/** reactive Dictionary */\n\texport class $mol_wire_dict< Key, Value > extends Map< Key, Value > {\n\n\t\tpub = new $mol_wire_pub\n\t\t\n\t\t// Accessors\n\t\t\n\t\thas( key: Key ) {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.has( key )\n\t\t}\n\t\t\n\t\tget( key: Key ) {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.get( key )\n\t\t}\n\t\t\n\t\tentries() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.entries()\n\t\t}\n\t\t\n\t\tkeys() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.keys()\n\t\t}\n\t\t\n\t\tvalues() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.values()\n\t\t}\n\t\t\n\t\tforEach(\n\t\t\ttask: ( value: Value, key: Key, dict: Map< Key, Value > ) => void,\n\t\t\tself?: any\n\t\t) {\n\t\t\tthis.pub.promote()\n\t\t\tsuper.forEach( task, self )\n\t\t}\n\t\t\n\t\t[Symbol.iterator]() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super[Symbol.iterator]()\n\t\t}\n\t\t\n\t\tget size() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.size\t\n\t\t}\n\n\t\t// Mutators\n\n\t\tset( key: Key, value: Value ) {\n\t\t\tif( super.get( key ) === value ) return this\n\t\t\tsuper.set( key, value )\n\t\t\tthis.pub?.emit() // undefined in constructor\n\t\t\treturn this\n\t\t}\n\n\t\tdelete( key: Key ) {\n\t\t\tconst res = super.delete( key )\n\t\t\tif( res ) this.pub.emit()\n\t\t\treturn res\n\t\t}\n\t\t\n\t\tclear() {\n\t\t\tif( !super.size ) return\n\t\t\tsuper.clear()\n\t\t\tthis.pub.emit()\n\t\t}\n\t\t\n\t\t// Extensions\n\t\t\n\t\titem( key: Key, next?: Value | null ) {\n\t\t\t\n\t\t\tif( next === undefined ) return this.get( key ) ?? null\n\t\t\t\n\t\t\tif( next === null ) this.delete( key )\n\t\t\telse this.set( key, next )\n\t\t\t\n\t\t\treturn next\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\texport class $mol_promise<Result = void> extends Promise<Result> {\n\t\tdone: (value: Result | PromiseLike<Result>) => void\n\t\tfail: (reason?: any) => void\n\n\t\tconstructor(\n\t\t\texecutor?: (\n\t\t\t\tdone: (value: Result | PromiseLike<Result>) => void,\n\t\t\t\tfail: (reason?: any) => void\n\t\t\t) => void\n\t\t) {\n\t\t\tlet done: (value: Result | PromiseLike<Result>) => void\n\t\t\tlet fail: (reason?: any) => void\n\n\t\t\tsuper((d, f) => {\n\t\t\t\tdone = d\n\t\t\t\tfail = f\n\t\t\t\texecutor?.(d, f)\n\t\t\t})\n\n\t\t\tthis.done = done!\n\t\t\tthis.fail = fail!\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport function $mol_wait_timeout_async( this: $, timeout: number ): Promise< void > {\n\t\tconst promise = new $mol_promise()\n\t\tconst task = new this.$mol_after_timeout( timeout , ()=> promise.done() )\n\t\treturn Object.assign( promise, {\n\t\t\tdestructor: ()=> task.destructor()\n\t\t} )\n\t}\n\t\n\texport function $mol_wait_timeout( this: $, timeout: number ) {\n\t\treturn this.$mol_wire_sync( this ).$mol_wait_timeout_async( timeout )\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/** Watch and logs reactive states. Logger automatically added to test bundle which is adding to `test.html`. */\n\texport class $mol_wire_log extends $mol_object2 {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic watch( task?: ()=> any ) {\n\t\t\treturn task\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic track( fiber: $mol_wire_fiber< any, any, any > ) {\n\t\t\t\n\t\t\tconst prev = $mol_wire_probe( ()=> this.track( fiber ) )\n\t\t\tlet next: any\n\t\t\t\n\t\t\ttry {\n\t\t\t\tnext = fiber.sync()\n\t\t\t} finally {\n\t\t\t\t\n\t\t\t\tfor( const pub of fiber.pub_list ) {\n\t\t\t\t\tif( pub instanceof $mol_wire_fiber ) {\n\t\t\t\t\t\tthis.track( pub )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tif( fiber.host === this ) return next\n\t\t\t\n\t\t\tif( $mol_compare_deep( prev, next ) ) {\n\t\t\t\t\n\t\t\t\tthis.$.$mol_log3_rise({\n\t\t\t\t\tmessage: '💧 Same',\n\t\t\t\t\tplace: fiber,\n\t\t\t\t})\n\t\t\t\t\n\t\t\t} else if( prev !== undefined ) {\n\t\t\t\t\n\t\t\t\tthis.$.$mol_log3_rise({\n\t\t\t\t\tmessage: '🔥 Next',\n\t\t\t\t\tplace: fiber,\n\t\t\t\t\tprev,\n\t\t\t\t})\n\t\t\t\t\n\t\t\t}\n\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic active() {\n\t\t\t\n\t\t\ttry {\n\t\t\t\tthis.watch()?.()\n\t\t\t} catch( error ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t} finally {\n\t\t\t\tfor( const pub of ( $mol_wire_auto() as $mol_wire_fiber< any, any, any > ).pub_list ) {\n\t\t\t\t\tif( pub instanceof $mol_wire_fiber ) {\n\t\t\t\t\t\tthis.track( pub )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\texport function $mol_test( set : { [ name : string ] : string | ( ( context : $ )=> void ) } ) {\n\t\t\n\t\tfor( let name in set ) {\n\n\t\t\tconst code = set[ name ]\n\t\t\tconst test = ( typeof code === 'string' ) ? new Function( '' , code ) as ()=> void : code\n\t\t\t\n\t\t\t$mol_test_all.push( test )\n\t\t}\n\n\t\t$mol_test_schedule()\n\t}\n\n\texport let $mol_test_mocks = [] as Array< ( context : $ )=> void >\n\n\texport const $mol_test_all = [] as Array< ( context : $ )=> any >\n\n\texport async function $mol_test_run() {\n\n\t\tfor( var test of $mol_test_all ) {\n\n\t\t\tlet context = Object.create( $$ )\n\t\t\tfor( let mock of $mol_test_mocks ) await mock( context )\n\t\t\t\n\t\t\tconst res = test( context )\n\t\t\tif( $mol_promise_like( res ) ) {\n\t\t\t\tawait new Promise( ( done, fail )=> {\n\t\t\t\t\tres.then( done, fail )\n\t\t\t\t\tsetTimeout( ()=> fail( new Error( 'Test timeout: ' + test.name ) ), 1000 )\n\t\t\t\t} )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t$$.$mol_log3_done({\n\t\t\tplace: '$mol_test',\n\t\t\tmessage: 'All tests passed',\n\t\t\tcount: $mol_test_all.length,\n\t\t})\n\t\t\n\t}\n\t\n\tlet scheduled = false\n\texport function $mol_test_schedule() {\n\n\t\tif( scheduled ) return\n\t\tscheduled = true\n\n\t\tsetTimeout( async ()=> {\n\t\t\t\n\t\t\tscheduled = false\n \t\t\t\n\t\t\tawait $mol_test_run()\n\t\t\t$$.$mol_test_complete()\n\t\t\t\n\t\t} , 1000 )\n\t\t\n\t}\n\n\t$mol_test_mocks.push( context => {\n\t\tlet seed = 0\n\n\t\tcontext.Math = Object.create( Math )\n\t\tcontext.Math.random = ()=> Math.sin( seed++ )\n\n\t\tconst forbidden = [ 'XMLHttpRequest' , 'fetch' ] as const\n\n\t\tfor( let api of forbidden ) {\n\t\t\tcontext[ api ] = new Proxy( function(){} as any , {\n\t\t\t\tget() {\n\t\t\t\t\t$mol_fail_hidden( new Error( `${ api } is forbidden in tests` ) )\n\t\t\t\t} ,\n\t\t\t\tapply() {\n\t\t\t\t\t$mol_fail_hidden( new Error( `${ api } is forbidden in tests` ) )\n\t\t\t\t} ,\n\t\t\t} )\n\t\t}\n\t\t\n\t} )\n\n\t$mol_test({\n\n\t\t'mocked Math.random'( $ ) {\n\t\t\tconsole.assert( $.Math.random() === 0 )\n\t\t\tconsole.assert( $.Math.random() === Math.sin(1) )\n\t\t} ,\n\n\t\t'forbidden XMLHttpRequest'( $ ) {\n\t\t\ttry {\n\t\t\t\tconsole.assert( void new $.XMLHttpRequest )\n\t\t\t} catch( error: any ) {\n\t\t\t\tconsole.assert( error.message === 'XMLHttpRequest is forbidden in tests' )\n\t\t\t}\n\t\t} ,\n\n\t\t'forbidden fetch'( $ ) {\n\t\t\ttry {\n\t\t\t\tconsole.assert( void $.fetch('') )\n\t\t\t} catch( error: any ) {\n\t\t\t\tconsole.assert( error.message === 'fetch is forbidden in tests' )\n\t\t\t}\n\t\t} ,\n\n\t})\n\n}\n","namespace $ {\n\t\n\texport function $mol_test_complete() {\n\t\tprocess.exit(0)\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport var $mol_dom_context : typeof globalThis\n\t\n}\n","namespace $ {\n\n\tconst mod = require/****/( 'module' ) as typeof import/****/( 'module' )\n\tconst internals = mod.builtinModules\n\t\n\texport function $node_internal_check(name: string) {\n\t\tif ( name.startsWith('node:') ) return true\n\t\treturn internals.includes(name)\n\t}\n\n}\n","namespace $ {\n\tconst path = require/****/( 'path' ) as typeof import/****/( 'path' )\n\tconst mod = require/****/( 'module' ) as typeof import/****/( 'module' )\n\tconst localRequire = mod.createRequire(path.join(process.cwd(), 'package.json'))\n\n\texport function $node_autoinstall(this: typeof $, name: string) {\n\t\ttry {\n\t\t\tlocalRequire.resolve( name )\n\t\t} catch {\n\n\t\t\tthis.$mol_run.spawn({ command: [ 'npm' , 'install' , '--omit=dev', name ], dir: '.' })\n\n\t\t\ttry {\n\t\t\t\tthis.$mol_run.spawn({ command: [ 'npm' , 'install' , '--omit=dev', '@types/' + name ], dir: '.' })\n\t\t\t} catch (e) {\n\t\t\t\tif( this.$mol_promise_like( e ) ) this.$mol_fail_hidden( e )\n\t\t\t\tthis.$mol_fail_log(e)\n\t\t\t}\n\n\t\t}\n\t}\n}\n","interface $node {\n\t[key:string]: any\n}\n\nvar $node = new Proxy( { require } as any , {\n\t\n\tget( target , name : string , wrapper ) {\n\n\t\tif( target[ name ] ) return target[ name ]\n\n\t\tif( $.$node_internal_check(name) ) return target.require ( name )\n\t\tif( name[0] === '.' ) return target.require( name )\n\n\t\t$.$node_autoinstall(name)\n\n\t\treturn target.require( name )\n\t},\n\n\tset( target , name : string , value ) {\n\t\ttarget[ name ] = value\n\t\treturn true\n\t},\n\n} ) as $node\n\nrequire = ( req =>\n\tObject.assign( function require( name : string ) {\n\t\treturn $node[ name ]\n\t} , req )\n)( require )\n\n","namespace $ {\n\n\t$mol_test({\n\t\t\n\t\t'FQN of anon function'($) {\n\t\t\tconst $$ = Object.assign( $ , { $mol_func_name_test : ( ()=> ()=> {} )() } )\n\t\t\t$mol_assert_equal( $$.$mol_func_name_test.name , '' )\n\t\t\t$mol_assert_equal( $$.$mol_func_name( $$.$mol_func_name_test ) , '$mol_func_name_test' )\n\t\t\t$mol_assert_equal( $$.$mol_func_name_test.name , '$mol_func_name_test' )\n\t\t},\n\n\t})\n\n}\n","namespace $ {\n\n\tfunction cause_serialize(cause: unknown) {\n\t\treturn JSON.stringify( cause, null, ' ' )\n\t\t\t.replace(/\\(/,'<')\n\t\t\t.replace(/\\)/,' >')\n\t}\n\n\tfunction frame_normalize(frame: string | Object) {\n\t\treturn ( typeof frame === 'string' ? frame : cause_serialize(frame) )\n\t\t\t.trim()\n\t\t\t.replace( /at /gm, ' at ' )\n\t\t\t.replace( /^(?! +at )(.*)/gm, ' at | $1 (#)' )\n\t}\n\n\texport class $mol_error_mix< Cause extends {} = {} > extends AggregateError {\n\t\t\n\t\tname = $$.$mol_func_name( this.constructor ).replace( /^\\$/, '' ) + '_Error'\n\n\t\tconstructor(\n\t\t\tmessage: string,\n\t\t\treadonly cause = {} as Cause,\n\t\t\t... errors: readonly Error[]\n\t\t) {\n\t\t\t\n\t\t\tsuper( errors, message, { cause } )\n\t\t\t\n\t\t\tconst desc = Object.getOwnPropertyDescriptor( this, 'stack' )\n\t\t\tconst stack_get = ()=> desc?.get?.() ?? super.stack ?? desc?.value ?? this.message\n\t\t\t\n\t\t\tObject.defineProperty( this, 'stack', {\n\t\t\t\tget: ()=> stack_get() + '\\n' + [\n\t\t\t\t\t\tthis.cause ?? 'no cause',\n\t\t\t\t\t\t... this.errors.flatMap( e => [\n\t\t\t\t\t\t\tString( e.stack ),\n\t\t\t\t\t\t\t... e instanceof $mol_error_mix || ! e.cause ? [] : [ e.cause ]\n\t\t\t\t\t\t] )\n\t\t\t\t\t].map(frame_normalize).join('\\n')\n\t\t\t} )\n\n\t\t\t// в nodejs, что б не дублировалось cause в консоли\n\t\t\tObject.defineProperty(this, 'cause', {\n\t\t\t\tget: () => cause\n\t\t\t})\t\n\t\t}\n\n\t\tstatic [ Symbol.toPrimitive ]() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\tstatic toString() {\n\t\t\treturn $$.$mol_func_name( this )\n\t\t}\n\n\t\tstatic make(\n\t\t\t...params: ConstructorParameters<typeof $mol_error_mix>\n\t\t) {\n\t\t\treturn new this(...params)\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'auto name'() {\n\t\t\t\n\t\t\tclass Invalid extends $mol_error_mix {}\n\t\t\tconst mix = new Invalid( 'foo' )\n\t\t\t\n\t\t\t$mol_assert_equal( mix.name, 'Invalid_Error' )\n\t\t\t\n\t\t},\n\t\t\n\t\t'simpe mix'() {\n\t\t\t\n\t\t\tconst mix = new $mol_error_mix( 'foo', {},\n\t\t\t\tnew Error( 'bar' ),\n\t\t\t\tnew Error( 'lol' ),\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal( mix.message, 'foo' )\n\t\t\t$mol_assert_equal( mix.errors.map( e => e.message ), [ 'bar', 'lol' ] )\n\t\t\t\n\t\t},\n\t\t\n\t\t'provide additional info'() {\n\t\t\t\n\t\t\tclass Invalid extends $mol_error_mix<{\n\t\t\t\tvalue: string,\n\t\t\t\thint: string,\n\t\t\t}> {}\n\t\t\t\n\t\t\tconst mix: unknown = new $mol_error_mix( 'Wrong password', {},\n\t\t\t\tnew Invalid( 'Too short', { value: 'p@ssw0rd', hint: '> 8 letters' } ),\n\t\t\t\tnew Invalid( 'Too simple', { value: 'p@ssw0rd', hint: 'need capital letter' } ),\n\t\t\t)\n\t\t\t\n\t\t\tconst hints = [] as string[]\n\t\t\t\n\t\t\tif( mix instanceof $mol_error_mix ) {\n\t\t\t\tfor( const er of mix.errors ) {\n\t\t\t\t\tif( er instanceof Invalid ) {\n\t\t\t\t\t\thints.push( er.cause?.hint ?? '' )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( hints, [ '> 8 letters', 'need capital letter' ] )\n\t\t\t\n\t\t},\n\t\t\n\t})\n}\n","namespace $ {\n\t$mol_test( {\n\t\t\n\t\t'init with overload'() {\n\t\t\tclass X extends $mol_object {\n\t\t\t\tfoo() {\n\t\t\t\t\treturn 1\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tvar x = X.make({\n\t\t\t\tfoo : ()=> 2 ,\n\t\t\t})\n\t\t\t\n\t\t\t$mol_assert_equal( x.foo() , 2 )\n\t\t} ,\n\t\t\t\n\t\t'Context in instance inherits from class'($) {\n\t\t\tconst custom = $.$mol_ambient({})\n\t\t\tclass X extends $.$mol_object {\n\t\t\t\tstatic $ = custom\n\t\t\t}\n\n\t\t\t$mol_assert_equal(new X().$, custom)\n\t\t},\n\n\t} )\n}\n","namespace $ {\n\texport function $mol_env() {\n\t\treturn {} as Record< string, string | undefined >\n\t}\n}\n","namespace $ {\n\t$.$mol_env = function $mol_env() {\n\t\treturn this.process.env\n\t}\n}\n","namespace $ {\n\n\t$mol_test({\n\n\t\t'test types'( $ ) {\n\t\t\tclass A {\n\t\t\t\tstatic a() {\n\t\t\t\t\treturn Promise.resolve('')\n\t\t\t\t}\n\n\t\t\t\tstatic b() {\n\t\t\t\t\treturn $mol_wire_sync(this).a()\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttype Check = $mol_type_assert<ReturnType<typeof A['b']>, string>\n\t\t},\n\n\t\tasync 'test method from host'( $ ) {\n\t\t\tlet count = 0\n\t\t\tclass A {\n\t\t\t\tstatic a() {\n\t\t\t\t\treturn $mol_wire_sync(this).b()\n\t\t\t\t}\n\n\t\t\t\tstatic b() { return Promise.resolve(++count) }\n\t\t\t}\n\n\t\t\t\n\t\t\t$mol_assert_equal(await $mol_wire_async(A).a(), 1, count)\n\n\t\t},\n\n\t\tasync 'test function'( $ ) {\n\t\t\tlet count = 0\n\t\t\tclass A {\n\t\t\t\tstatic a() {\n\t\t\t\t\treturn $mol_wire_sync(this.b)()\n\t\t\t\t}\n\n\t\t\t\tstatic b() { return Promise.resolve(++count) }\n\t\t\t}\n\n\t\t\t\n\t\t\t$mol_assert_equal(await $mol_wire_async(A).a(), 1, count)\n\n\t\t},\n\n\t\tasync 'test construct itself'( $ ) {\n\t\t\tclass A {\n\t\t\t\tstatic instances = [] as A[]\n\n\t\t\t\tstatic a() {\n\t\t\t\t\tconst a = new ($mol_wire_sync(A))()\n\t\t\t\t\tthis.instances.push( a )\n\t\t\t\t\t$mol_wire_sync(this).b()\n\t\t\t\t}\n\n\t\t\t\tstatic b() { return Promise.resolve() }\n\t\t\t}\n\n\t\t\tawait $mol_wire_async(A).a()\n\t\t\t$mol_assert_equal(A.instances.length, 2)\n\t\t\t$mol_assert_equal(A.instances[0] instanceof A, true)\n\n\t\t\t$mol_assert_equal(A.instances[0], A.instances[1])\n\n\t\t}\n\t})\n\n}\n\n","namespace $ {\n\n\t$mol_test_mocks.push( $ => {\n\t\t$.$mol_log3_come = ()=> {}\n\t\t$.$mol_log3_done = ()=> {}\n\t\t$.$mol_log3_fail = ()=> {}\n\t\t$.$mol_log3_warn = ()=> {}\n\t\t$.$mol_log3_rise = ()=> {}\n\t\t$.$mol_log3_area = ()=> ()=> {}\n\t} )\n\n}\n","namespace $ {\n\n\texport type $mol_run_error_context = {\n\t\tpid?: number\n\t\tstdout: Buffer | string\n\t\tstderr: Buffer | string\n\t}\n\n\texport class $mol_run_error extends $mol_error_mix<{\n\t\ttimeout_kill?: boolean\n\t\tpid?: number\n\t\tsignal?: NodeJS.Signals | null\n\t\tstatus?: number | null\n\t\tcommand: string\n\t\tdir: string\n\t}> {}\n\n\texport const $mol_run_spawn = (\n\t\t...args: Parameters<typeof $node['child_process']['spawn']>\n\t) => $node['child_process'].spawn(...args)\n\n\texport const $mol_run_spawn_sync = (\n\t\t...args: Parameters<typeof $node['child_process']['spawnSync']>\n\t) => $node['child_process'].spawnSync(...args)\n\n\texport type $mol_run_options = {\n\t\tcommand : readonly string[] | string\n\t\tdir : string\n\t\ttimeout?: number\n\t\tenv?: Record<string, string | undefined>\n\t}\n\n\texport class $mol_run extends $mol_object {\n\n\t\tstatic async_enabled() {\n\t\t\treturn Boolean(this.$.$mol_env()['MOL_RUN_ASYNC'])\n\t\t}\n\n\t\tstatic spawn(options: $mol_run_options) {\n\t\t\tconst sync = ! this.async_enabled() || ! Boolean($mol_wire_auto())\n\t\t\tconst env = options.env ?? this.$.$mol_env()\n\n\t\t\treturn $mol_wire_sync(this).spawn_async( { ...options, sync, env } )\n\t\t}\n\n\t\tstatic spawn_async(\n\t\t\t{ dir, sync, timeout, command, env }: $mol_run_options & { sync?: boolean }\n\t\t) {\n\t\t\tconst args_raw = typeof command === 'string' ? command.split( ' ' ) : command\n\t\t\tconst [ app, ...args ] = args_raw\n\t\t\tconst opts = { shell: true, cwd: dir, env }\n\n\t\t\tconst log_object = {\n\t\t\t\tplace: `${this}.spawn()`,\n\t\t\t\tmessage: 'Run',\n\t\t\t\tcommand: args_raw.join(' ') ,\n\t\t\t\tdir: $node.path.relative( '' , dir ) ,\n\t\t\t}\n\n\t\t\tif (sync) {\n\n\t\t\t\tthis.$.$mol_log3_come({\n\t\t\t\t\thint: 'Run inside fiber',\n\t\t\t\t\t...log_object\n\t\t\t\t})\n\n\t\t\t\tlet error: Error | undefined\n\t\t\t\tlet res\n\n\t\t\t\ttry {\n\t\t\t\t\tres = this.$.$mol_run_spawn_sync(app, args, opts)\n\t\t\t\t\terror = res.error\n\t\t\t\t} catch (err) {\n\t\t\t\t\terror = err as Error\n\t\t\t\t}\n\n\t\t\t\tif (! res || error || res.status) {\n\t\t\t\t\tthrow new $mol_run_error(\n\t\t\t\t\t\tthis.error_message(res),\n\t\t\t\t\t\t{ ...log_object, status: res?.status, signal: res?.signal },\n\t\t\t\t\t\t...(error ? [error] : [])\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tlet sub\n\n\t\t\ttry {\n\t\t\t\tsub = this.$.$mol_run_spawn(app, args, {\n\t\t\t\t\t...opts,\n\t\t\t\t\tstdio: [ 'pipe', 'inherit', 'inherit' ],\n\t\t\t\t})\n\t\t\t} catch (error) {\n\t\t\t\tthrow new $mol_run_error(\n\t\t\t\t\tthis.error_message(undefined),\n\t\t\t\t\tlog_object,\n\t\t\t\t\terror as Error\n\t\t\t\t)\n\t\t\t}\n\t\n\t\t\tconst pid = sub.pid ?? 0\n\n\t\t\tthis.$.$mol_log3_come({\n\t\t\t\t...log_object,\n\t\t\t\tpid,\n\t\t\t})\n\t\n\t\t\tlet timeout_kill = false\n\t\t\tlet timer: undefined | ReturnType<typeof setTimeout>\n\t\n\t\t\tconst std_data = [] as Buffer[]\n\t\t\tconst error_data = [] as Buffer[]\n\t\n\t\t\tconst add = (std_chunk?: Buffer, error_chunk?: Buffer) => {\n\t\t\t\tif (std_chunk) std_data.push(std_chunk)\n\t\t\t\tif (error_chunk) error_data.push(error_chunk)\n\t\t\t\tif (! timeout) return\n\t\n\t\t\t\tclearTimeout(timer)\n\t\n\t\t\t\ttimer = setTimeout(() => {\n\t\t\t\t\tconst signal = timeout_kill ? 'SIGKILL' : 'SIGTERM'\n\t\t\t\t\ttimeout_kill = true\n\t\t\t\t\tadd()\n\t\t\t\t\tsub.kill(signal)\n\t\t\t\t}, timeout)\n\t\t\t}\n\t\n\t\t\tadd()\n\t\n\t\t\tsub.stdout?.on('data', data => add(data) )\n\t\t\tsub.stderr?.on('data', data => add(undefined, data) )\n\t\n\t\t\tconst result_promise = new Promise<$mol_run_error_context>((done, fail) => {\n\t\t\t\tconst close = (error: Error | null, status: number | null = null, signal: NodeJS.Signals | null = null) => {\n\t\t\t\t\tif (! timer && timeout) return\n\t\n\t\t\t\t\tclearTimeout(timer)\n\t\t\t\t\ttimer = undefined\n\t\n\t\t\t\t\tconst res = {\n\t\t\t\t\t\tpid,\n\t\t\t\t\t\tsignal,\n\t\t\t\t\t\tget stdout() { return Buffer.concat(std_data) },\n\t\t\t\t\t\tget stderr() { return Buffer.concat(error_data) }\n\t\t\t\t\t}\n\t\t\n\t\t\t\t\tif (error || status || timeout_kill) return fail( new $mol_run_error(\n\t\t\t\t\t\tthis.error_message(res) + (timeout_kill ? ', timeout' : ''),\n\t\t\t\t\t\t{ ...log_object, pid, status, signal, timeout_kill },\n\t\t\t\t\t\t...error ? [ error ] : []\n\t\t\t\t\t) )\n\n\t\t\t\t\tthis.$.$mol_log3_done({\n\t\t\t\t\t\t...log_object,\n\t\t\t\t\t\tpid,\n\t\t\t\t\t})\n\t\t\t\n\t\t\t\t\tdone(res)\n\t\t\t\t}\n\t\n\t\t\t\tsub.on('disconnect', () => close(new Error('Disconnected')) )\n\t\t\t\tsub.on('error', err => close(err) )\n\t\t\t\tsub.on('exit', (status, signal) => close(null, status, signal) )\n\t\t\t})\n\t\n\t\t\treturn Object.assign(result_promise, { destructor: () => {\n\t\t\t\tclearTimeout(timer)\n\t\t\t\tsub.kill('SIGKILL')\n\t\t\t} })\n\t\t}\n\n\t\tstatic error_message(res?: $mol_run_error_context) {\n\t\t\treturn res?.stderr.toString() || res?.stdout.toString() || 'Run error'\n\t\t}\n\t}\n\n}\n","namespace $ {\n\t$mol_test( {\n\t\tasync 'exec timeout auto kill child process'($) {\n\t\t\tlet close_mock = () => {}\n\t\t\tconst error_message = 'Run error, timeout'\n\n\t\t\tfunction mol_run_spawn_sync_mock() {\n\t\t\t\treturn {\n\t\t\t\t\toutput: [],\n\t\t\t\t\tstdout: error_message,\n\t\t\t\t\tstderr: '',\n\t\t\t\t\tstatus: 0,\n\t\t\t\t\tsignal: null,\n\t\t\t\t\tpid: 123,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction mol_run_spawn_mock() {\n\t\t\t\treturn {\n\t\t\t\t\ton(name: string, cb: () => void) {\n\t\t\t\t\t\tif (name === 'exit') close_mock = cb\n\t\t\t\t\t},\n\t\t\t\t\tkill() { close_mock() }\n\t\t\t\t} as any\n\t\t\t}\n\n\t\t\tconst context_mock = $.$mol_ambient({\n\t\t\t\t$mol_run_spawn_sync: mol_run_spawn_sync_mock,\n\t\t\t\t$mol_run_spawn: mol_run_spawn_mock\n\t\t\t})\n\n\t\t\tclass $mol_run_mock extends $mol_run {\n\t\t\t\tstatic get $() { return context_mock }\n\t\t\t\tstatic override async_enabled() {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet message = ''\n\t\t\ttry {\n\t\t\t\tconst res = await $mol_wire_async($mol_run_mock).spawn({\n\t\t\t\t\tcommand: 'sleep 10',\n\t\t\t\t\tdir: '.',\n\t\t\t\t\ttimeout: 10,\n\t\t\t\t\tenv: { 'MOL_RUN_ASYNC': '1' }\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tmessage= (e as Error).message\n\t\t\t}\n\t\t\t$mol_assert_equal(message, error_message)\n\t\t}\n\t\t\n\t} )\n}\n","namespace $ {\n\t\n\t$.$mol_dom_context = new $node.jsdom.JSDOM( '' , { url : `http://${ process.env.DOMAIN || 'localhost' }/` } ).window as any\n\t\n}\n","namespace $ {\n\t\n\texport var $mol_dom = $mol_dom_context\n\t\n}\n","namespace $ {\n\n\texport function $mol_dom_render_children (\n\t\tel : Element | DocumentFragment ,\n\t\tchildNodes : NodeList | Array< Node | string | null >\n\t) {\n\t\tconst node_set = new Set< Node | string | null >( childNodes )\n\t\t\n\t\tlet nextNode : Node | null = el.firstChild\n\t\tfor( let view of childNodes ) {\n\n\t\t\tif( view == null ) continue\n\n\t\t\tif( view instanceof $mol_dom_context.Node ) {\n\t\t\t\t\n\t\t\t\twhile( true ) {\n\t\t\t\t\tif( !nextNode ) {\n\t\t\t\t\t\tel.appendChild( view )\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tif( nextNode == view ) {\n\t\t\t\t\t\tnextNode = nextNode.nextSibling\n\t\t\t\t\t\tbreak\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif( node_set.has( nextNode ) ) {\n\t\t\t\t\t\t\tel.insertBefore( view , nextNode )\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst nn = nextNode.nextSibling\n\t\t\t\t\t\t\tel.removeChild( nextNode )\n\t\t\t\t\t\t\tnextNode = nn\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\tif( nextNode && nextNode.nodeName === '#text' ) {\n\t\t\t\t\tconst str = String( view )\n\t\t\t\t\tif( nextNode.nodeValue !== str ) nextNode.nodeValue = str\n\t\t\t\t\tnextNode = nextNode.nextSibling\n\t\t\t\t} else {\n\t\t\t\t\tconst textNode = $mol_dom_context.document.createTextNode( String( view ) )\n\t\t\t\t\tel.insertBefore( textNode , nextNode )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\twhile( nextNode ) {\n\t\t\tconst currNode = nextNode\n\t\t\tnextNode = currNode.nextSibling\n\t\t\tel.removeChild( currNode )\n\t\t}\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_dom_serialize(\n\t\tnode: Node\n\t) {\n\t\tconst serializer = new $mol_dom_context.XMLSerializer\n\t\treturn serializer.serializeToString( node )\n\t}\n\n}\n","namespace $ {\n\n\texport let $mol_jsx_prefix = ''\n\texport let $mol_jsx_crumbs = ''\n\n\texport let $mol_jsx_booked = null as null | Set< string >\n\t\n\texport let $mol_jsx_document : $mol_jsx.JSX.ElementClass['ownerDocument'] = {\n\t\tgetElementById : ()=> null ,\n\t\tcreateElementNS : ( space: string, name : string )=> $mol_dom_context.document.createElementNS( space, name ) as any,\n\t\tcreateDocumentFragment : ()=> $mol_dom_context.document.createDocumentFragment(),\n\t}\n\t\n\texport const $mol_jsx_frag = ''\n\n\t/**\n\t * JSX adapter that makes DOM tree.\n\t * Generates global unique ids for every DOM-element by components tree with ids.\n\t * Ensures all local ids are unique.\n\t * Can reuse an existing nodes by GUIDs when used inside [`mol_jsx_attach`](https://github.com/hyoo-ru/mam_mol/tree/master/jsx/attach).\n\t */\n\texport function $mol_jsx<\n\t\tProps extends $mol_jsx.JSX.IntrinsicAttributes,\n\t\tChildren extends Array< Node | string >\n\t>(\n\t\tElem : string\n\t\t\t| ( ( props : Props , ... children : Children ) => Element ) ,\n\t\tprops : Props ,\n\t\t... childNodes : Children\n\t) : Element | DocumentFragment {\n\n\t\tconst id = props && props.id || ''\n\t\tconst guid = id ? $mol_jsx_prefix ? $mol_jsx_prefix + '/'+ id : id : $mol_jsx_prefix\n\t\tconst crumbs_self = id ? $mol_jsx_crumbs.replace( /(\\S+)/g, `$1_${ id.replace( /\\/.*/i, '' ) }` ) : $mol_jsx_crumbs\n\t\t\n\t\tif( Elem && $mol_jsx_booked ) {\n\t\t\tif( $mol_jsx_booked.has( id ) ) {\n\t\t\t\t$mol_fail( new Error( `JSX already has tag with id ${ JSON.stringify( guid ) }` ) )\n\t\t\t} else {\n\t\t\t\t$mol_jsx_booked.add( id )\n\t\t\t}\n\t\t}\n\n\t\tlet node: Element | DocumentFragment | null = guid ? $mol_jsx_document.getElementById( guid ) : null\n\n\t\tif( $mol_jsx_prefix ) {\n\t\t\t\n\t\t\tconst prefix_ext = $mol_jsx_prefix\n\t\t\tconst booked_ext = $mol_jsx_booked\n\t\t\tconst crumbs_ext = $mol_jsx_crumbs\n\t\t\t\n\t\t\tfor( const field in props ) {\n\t\t\t\t\n\t\t\t\tconst func = props[ field ]\n\t\t\t\tif( typeof func !== 'function' ) continue\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tconst wrapper = function( this: any, ... args: any[] ) {\n\t\t\t\t\t\n\t\t\t\t\tconst prefix = $mol_jsx_prefix\n\t\t\t\t\tconst booked = $mol_jsx_booked\n\t\t\t\t\tconst crumbs = $mol_jsx_crumbs\n\t\t\t\t\t\n\t\t\t\t\ttry {\n\t\t\n\t\t\t\t\t\t$mol_jsx_prefix = prefix_ext\n\t\t\t\t\t\t$mol_jsx_booked = booked_ext\n\t\t\t\t\t\t$mol_jsx_crumbs = crumbs_ext\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn func.call( this, ... args )\n\t\t\t\t\t\t\n\t\t\t\t\t} finally {\n\t\t\t\t\t\t\n\t\t\t\t\t\t$mol_jsx_prefix = prefix\n\t\t\t\t\t\t$mol_jsx_booked = booked\n\t\t\t\t\t\t$mol_jsx_crumbs = crumbs\n\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t$mol_func_name_from( wrapper, func )\n\t\t\t\tprops[ field ] = wrapper as any\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tif( typeof Elem !== 'string' ) {\n\n\t\t\tif( 'prototype' in Elem ) {\n\n\t\t\t\tconst view = node && (node as any)[ String(Elem) ] || new ( Elem as any )\n\t\t\t\t\n\t\t\t\tObject.assign( view , props )\n\t\t\t\tview[ Symbol.toStringTag ] = guid\n\t\t\t\t\n\t\t\t\tview.childNodes = childNodes\n\t\t\t\t\n\t\t\t\tif( !view.ownerDocument ) view.ownerDocument = $mol_jsx_document\n\t\t\t\tview.className = ( crumbs_self ? crumbs_self + ' ' : '' ) + ( Elem['name'] || Elem )\n\t\t\t\t\n\t\t\t\tnode = view.valueOf()\n\t\t\t\t\n\t\t\t\t;(node as any)![ String(Elem) ] = view\n\t\t\t\t\n\t\t\t\treturn node!\n\n\t\t\t} else {\n\n\t\t\t\tconst prefix = $mol_jsx_prefix\n\t\t\t\tconst booked = $mol_jsx_booked\n\t\t\t\tconst crumbs = $mol_jsx_crumbs\n\t\t\t\t\n\t\t\t\ttry {\n\t\n\t\t\t\t\t$mol_jsx_prefix = guid\n\t\t\t\t\t$mol_jsx_booked = new Set\n\t\t\t\t\t$mol_jsx_crumbs = ( crumbs_self ? crumbs_self + ' ' : '' ) + ( Elem['name'] || Elem )\n\t\n\t\t\t\t\treturn ( Elem as any )( props , ... childNodes )\n\t\t\t\t\t\n\t\t\t\t} finally {\n\n\t\t\t\t\t$mol_jsx_prefix = prefix\n\t\t\t\t\t$mol_jsx_booked = booked\n\t\t\t\t\t$mol_jsx_crumbs = crumbs\n\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\tif( !node ) {\n\t\t\tnode = Elem\n\t\t\t\t? $mol_jsx_document.createElementNS( props?.xmlns ?? 'http://www.w3.org/1999/xhtml', Elem )\n\t\t\t\t: $mol_jsx_document.createDocumentFragment()\n\t\t}\n\n\t\t$mol_dom_render_children( node , ( [] as ( Node | string )[] ).concat( ... childNodes ) )\n\t\tif( !Elem ) return node\n\n\t\tif( guid ) ( node as Element ).id = guid\n\t\tfor( const key in props ) {\n\t\t\tif( key === 'id' ) continue\n\t\t\t\n\t\t\tif( typeof props[ key ] === 'string' ) {\n\t\t\t\t\n\t\t\t\tif( typeof (node as any)[ key ] === 'string' ) (node as any)[ key ] = props[ key ]\n\t\t\t\t;( node as Element ).setAttribute( key , (props as any)[ key ] )\n\t\t\t\t\n\t\t\t} else if(\n\t\t\t\tprops[ key ] &&\n\t\t\t\ttypeof props[ key ] === 'object' &&\n\t\t\t\tReflect.getPrototypeOf( props[ key ] as any ) === Reflect.getPrototypeOf({})\n\t\t\t) {\n\n\t\t\t\tif( typeof (node as any)[ key ] === 'object' ) {\n\t\t\t\t\tObject.assign( ( node as any )[ key ] , props[ key ] )\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t(node as any)[ key ] = props[ key ]\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\tif( $mol_jsx_crumbs ) ( node as Element ).className = ( (props as any)?.['class'] ? (props as any)['class'] + ' ' : '' ) + crumbs_self\n\n\t\treturn node\n\n\t}\n\n\texport declare namespace $mol_jsx.JSX {\n\n\t\texport interface Element extends HTMLElement {\n\t\t\tclass?: string\n\t\t}\n\t\t\n\t\texport interface ElementClass {\n\t\t\tattributes : {}\n\t\t\townerDocument : Pick< Document , 'getElementById' | 'createElementNS' | 'createDocumentFragment' >\n\t\t\tchildNodes : Array< Node | string >\n\t\t\tvalueOf() : Element\n\t\t}\n\t\t\n\t\ttype OrString< Dict > = {\n\t\t\t[ key in keyof Dict ]: Dict[ key ] | string\n\t\t}\n\t\t\n\t\t/** Props for html elements */\n\t\texport type IntrinsicElements = {\n\t\t\t[ key in keyof ElementTagNameMap ]? : $.$mol_type_partial_deep< OrString<\n\t\t\t\t& Element\n\t\t\t\t& IntrinsicAttributes\n\t\t\t\t& ElementTagNameMap[ key ]\n\t\t\t> >\n\t\t}\n\t\t\n\t\t/** Additional undeclared props */\n\t\texport interface IntrinsicAttributes {\n\t\t\tid? : string\n\t\t\txmlns? : string\n\t\t}\n\t\t\n\t\texport interface ElementAttributesProperty {\n\t\t\tattributes : {\n\t\t\t}\n\t\t}\n\t\t\n\t\t// export type IntrinsicClassAttributes< Class > = $.$mol_type_partial_deep< Omit< Class , 'valueOf' > >\n\t\t\n\t\tinterface ElementChildrenAttribute {\n\t\t}\n\t\n\t}\n\n}\n","/** @jsx $mol_jsx */\n/** @jsxFrag $mol_jsx_frag */\nnamespace $ {\n\t\n\t$mol_test({\n\t\t\n\t\t'Make empty div'() {\n\t\t\t$mol_assert_equal( (<div/>).outerHTML , '<div></div>' )\n\t\t} ,\n\t\t\n\t\t'Define native field'() {\n\t\t\t\n\t\t\tconst dom = <input value='123' /> as HTMLInputElement\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML, '<input value=\"123\">' )\n\t\t\t$mol_assert_equal( dom.value, '123' )\n\n\t\t} ,\n\t\t\n\t\t'Define classes'() {\n\t\t\t\n\t\t\tconst dom = <div class={ 'foo bar' } />\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML, '<div class=\"foo bar\"></div>' )\n\n\t\t} ,\n\t\t\n\t\t'Define styles'() {\n\t\t\t\n\t\t\tconst dom = <div style={{ color: 'red' }} />\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML, '<div style=\"color: red;\"></div>' )\n\n\t\t} ,\n\t\t\n\t\t'Define dataset'() {\n\t\t\t\n\t\t\tconst dom = <div dataset={{ foo: 'bar' }} />\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML, '<div data-foo=\"bar\"></div>' )\n\n\t\t} ,\n\t\t\n\t\t'Define attributes'() {\n\t\t\t\n\t\t\tconst dom = <div lang=\"ru\" hidden />\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML, '<div lang=\"ru\" hidden=\"\"></div>' )\n\n\t\t} ,\n\t\t\n\t\t'Define child nodes'() {\n\n\t\t\tconst dom =\n\t\t\t\t<div>\n\t\t\t\t\thello\n\t\t\t\t\t<strong>world</strong>\n\t\t\t\t\t!\n\t\t\t\t</div>\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML, '<div>hello<strong>world</strong>!</div>' )\n\n\t\t} ,\n\n\t\t'Make fragment'() {\n\n\t\t\tconst dom =\n\t\t\t\t<>\n\t\t\t\t\t<br />\n\t\t\t\t\t<hr />\n\t\t\t\t</>\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_dom_serialize( dom ), '<br xmlns=\"http://www.w3.org/1999/xhtml\" /><hr xmlns=\"http://www.w3.org/1999/xhtml\" />' )\n\n\t\t} ,\n\n\t\t'Spread fragment'() {\n\n\t\t\tconst dom =\n\t\t\t\t<div>\n\t\t\t\t\t<>\n\t\t\t\t\t\t<br />\n\t\t\t\t\t\t<hr />\n\t\t\t\t\t</>\n\t\t\t\t</div>\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML, '<div><br><hr></div>' )\n\n\t\t} ,\n\n\t\t'Function as component'() {\n\n\t\t\tconst Button = (\n\t\t\t\tprops: { hint: string },\n\t\t\t\ttarget: ()=> string,\n\t\t\t) => {\n\t\t\t\treturn <button title={ props.hint } >{ target() }</button>\n\t\t\t}\n\n\t\t\tconst dom = <Button id=\"foo\" hint=\"click me\">{ ()=> 'hey!' }</Button>\n\n\t\t\t$mol_assert_equal( dom.outerHTML, '<button id=\"foo\" title=\"click me\" class=\"Button\">hey!</button>' )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t'Nested guid generation'() {\n\n\t\t\tconst Foo = ()=> {\n\t\t\t\treturn <div>\n\t\t\t\t\t<Bar id=\"bar\">\n\t\t\t\t\t\t<img id=\"icon\" />\n\t\t\t\t\t</Bar>\n\t\t\t\t</div>\n\t\t\t}\n\n\t\t\tconst Bar = ( props: {}, icon: Element )=> {\n\t\t\t\treturn <span>{ icon }<i id=\"label\"/></span>\n\t\t\t}\n\n\t\t\tconst dom = <Foo id=\"foo\" />\n\n\t\t\t$mol_assert_equal( dom.outerHTML, '<div id=\"foo\" class=\"Foo\"><span id=\"foo/bar\" class=\"Foo_bar Bar\"><img id=\"foo/icon\" class=\"Foo_icon\"><i id=\"foo/bar/label\" class=\"Foo_bar_label Bar_label\"></i></span></div>' )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t'Fail on non unique ids'() {\n\n\t\t\tconst App = ()=> {\n\t\t\t\treturn <div>\n\t\t\t\t\t<span id=\"bar\" />\n\t\t\t\t\t<span id=\"bar\" />\n\t\t\t\t</div>\n\t\t\t}\n\n\t\t\t$mol_assert_fail( ()=> <App id=\"foo\" />, 'JSX already has tag with id \"foo/bar\"' )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t'Owner based guid generationn'() {\n\n\t\t\tconst Foo = ()=> {\n\t\t\t\treturn <div>\n\t\t\t\t\t<Bar id=\"middle\" icon={ ()=> <img id=\"icon\" /> } />\n\t\t\t\t</div>\n\t\t\t}\n\n\t\t\tconst Bar = ( props: { icon: ()=> Element } )=> {\n\t\t\t\treturn <span>{ props.icon() }</span>\n\t\t\t}\n\n\t\t\tconst dom = <Foo id=\"app\" />\n\n\t\t\t$mol_assert_equal( dom.outerHTML, '<div id=\"app\" class=\"Foo\"><span id=\"app/middle\" class=\"Foo_middle Bar\"><img id=\"app/icon\" class=\"Foo_icon\"></span></div>' )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t'Fail on same ids from different caller'() {\n\n\t\t\tconst Foo = ()=> {\n\t\t\t\treturn <div>\n\t\t\t\t\t<img id=\"icon\" />\n\t\t\t\t\t<Bar id=\"bar\" icon={ ()=> <img id=\"icon\" /> } />\n\t\t\t\t</div>\n\t\t\t}\n\n\t\t\tconst Bar = ( props: { icon: ()=> Element } )=> {\n\t\t\t\treturn <span>{ props.icon() }</span>\n\t\t\t}\n\n\t\t\t$mol_assert_fail( ()=> <Foo id=\"foo\" />, 'JSX already has tag with id \"foo/icon\"' )\n\t\t\t\n\t\t} ,\n\t\t\n\t})\n\t\n}\n","namespace $ {\n\n\t/** Lazy computed lists with native Array interface. $mol_range2_array is mutable but all derived ranges are immutable. */\n\texport function $mol_range2< Item = number >(\n\t\titem: Item[] | ( ( index : number )=> Item ) = index => index as any ,\n\t\tsize = ()=> Number.POSITIVE_INFINITY ,\n\t): Item[] {\n\t\t\n\t\tconst source = typeof item === 'function' ? new $mol_range2_array< Item >() : item\n\t\t\n\t\tif( typeof item !== 'function' ) {\n\t\t\titem = index => source[ index ]\n\t\t\tsize = ()=> source.length\n\t\t}\n\n\t\treturn new Proxy( source , {\n\n\t\t\tget( target , field ) {\n\n\t\t\t\tif( typeof field === 'string' ) {\n\t\t\t\t\tif( field === 'length' ) return size()\n\t\t\t\t\t\n\t\t\t\t\tconst index = Number( field )\n\t\t\t\t\tif( index < 0 ) return undefined\n\t\t\t\t\tif( index >= size() ) return undefined\n\t\t\t\t\tif( index === Math.trunc( index ) ) return ( item as any )( index )\n\t\t\t\t}\n\n\t\t\t\treturn $mol_range2_array.prototype[ field as any ]\n\t\t\t} ,\n\n\t\t\tset( target , field ) {\n\t\t\t\treturn $mol_fail( new TypeError( `Lazy range is read only (trying to set field ${ JSON.stringify( field ) })` ) )\n\t\t\t} ,\n\n\t\t\townKeys( target ) {\n\t\t\t\treturn [ ... Array( size() ) ].map( ( v, i ) => String( i ) ).concat( 'length' )\n\t\t\t} ,\n\n\t\t\tgetOwnPropertyDescriptor( target , field ) : PropertyDescriptor | undefined {\n\t\t\t\t\n\t\t\t\tif( field === \"length\" ) return {\n\t\t\t\t\tvalue : size() ,\n\t\t\t\t\twritable : true ,\n\t\t\t\t\tenumerable : false ,\n\t\t\t\t\tconfigurable : false ,\n\t\t\t\t}\n\n\t\t\t\tconst index = Number( field )\n\t\t\t\tif( index === Math.trunc( index ) ) return {\n\t\t\t\t\tget : ()=> this.get!( target , field , this ) ,\n\t\t\t\t\tenumerable : true ,\n\t\t\t\t\tconfigurable : true ,\n\t\t\t\t}\n\n\t\t\t\treturn Object.getOwnPropertyDescriptor( target , field )\n\t\t\t}\n\n\t\t} )\n\n\t}\n\n\texport class $mol_range2_array< Item > extends Array< Item > {\n\t\t\n\t\t// Lazy\n\t\tconcat( ... tail : Item[][] ) : Item[] {\n\t\t\tif( tail.length === 0 ) return this as any\n\n\t\t\tif( tail.length > 1 ) {\n\t\t\t\tlet list = this as any\n\t\t\t\tfor( let item of tail ) list = list.concat( item )\n\t\t\t\treturn list\n\t\t\t}\n\t\t\t\n\t\t\treturn $mol_range2(\n\t\t\t\tindex => index < this.length ? this[ index ] : tail[0][ index - this.length ] ,\n\t\t\t\t()=> this.length + tail[0].length ,\n\t\t\t)\n\t\t}\n\n\t\t// Lazy\n\t\tfilter< Context > (\n\t\t\tcheck : ( val : Item , index : number , list : Item[] )=> boolean ,\n\t\t\tcontext? : Context ,\n\t\t) {\n\t\t\t\n\t\t\tconst filtered = [] as Item[]\n\t\t\tlet cursor = -1\n\t\t\t\n\t\t\treturn $mol_range2(\n\t\t\t\tindex => {\n\t\t\t\t\t\n\t\t\t\t\twhile( cursor < this.length && index >= filtered.length - 1 ) {\n\t\t\t\t\t\tconst val = this[ ++ cursor ]\n\t\t\t\t\t\tif( check( val, cursor, this ) ) filtered.push( val )\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\treturn filtered[ index ]\n\t\t\t\t},\n\t\t\t\t()=> cursor < this.length ? Number.POSITIVE_INFINITY : filtered.length,\n\t\t\t)\n\t\t\t\n\t\t}\n\n\t\t// Diligent\n\t\tforEach< Context > (\n\t\t\tproceed : ( this : Context , val : Item , index : number , list : Item[] )=> void ,\n\t\t\tcontext? : Context,\n\t\t) {\n\t\t\tfor( let [ key , value ] of this.entries() ) proceed.call( context as Context , value , key , this )\n\t\t}\n\n\t\t// Lazy\n\t\tmap< Item_out , Context > (\n\t\t\tproceed : ( this : Context , val : Item , index : number , list : Item[] )=> Item_out ,\n\t\t\tcontext? : Context ,\n\t\t) : Item_out[] {\n\t\t\treturn $mol_range2(\n\t\t\t\tindex => proceed.call( context as Context , this[ index ] , index , this ) ,\n\t\t\t\t()=> this.length ,\n\t\t\t)\n\t\t}\n\n\t\t// Diligent\n\t\treduce< Result > (\n\t\t\tmerge : ( result : Result , val : Item , index : number , list : Item[] )=> Result ,\n\t\t\tresult? : Result ,\n\t\t) {\n\t\t\tlet index = 0\n\n\t\t\tif( arguments.length === 1 ) {\n\t\t\t\tresult = this[ index ++ ] as any\n\t\t\t}\n\t\t\t\n\t\t\tfor( ; index < this.length ; ++ index ) {\n\t\t\t\tresult = merge( result as Result , this[ index ] , index , this as any )\n\t\t\t}\n\t\t\t\n\t\t\treturn result\n\t\t}\n\n\t\t// Lazy\n\t\ttoReversed(): Item[] {\n\t\t\treturn $mol_range2(\n\t\t\t\tindex => this[ this.length - 1 - index ] ,\n\t\t\t\t()=> this.length ,\n\t\t\t)\n\t\t}\n\n\t\t// Lazy\n\t\tslice( from = 0 , to = this.length ) {\n\t\t\treturn $mol_range2(\n\t\t\t\tindex => this[ from + index ] ,\n\t\t\t\t()=> Math.min( to , this.length ) - from ,\n\t\t\t)\n\t\t}\n\n\t\t// Lazy\n\t\tsome< Context > (\n\t\t\tcheck : ( this : Context , val : Item , index : number , list : Item[] )=> boolean ,\n\t\t\tcontext? : Context ,\n\t\t) {\n\t\t\tfor( let index = 0 ; index < this.length ; ++ index ) {\n\t\t\t\tif( check.call( context as Context , this[ index ] , index , this ) ) return true\n\t\t\t}\n\t\t\treturn false\n\t\t}\n\n\t\t// Lazy\n\t\tevery< Narrow extends Item, Context = null >( check: ( value: Item, index: number, array: Item[] )=> value is Narrow, context?: Context ): this is Narrow[]\n\t\tevery< Context = null > (\n\t\t\tcheck : ( this : Context , val : Item , index : number , list : Item[] )=> boolean ,\n\t\t\tcontext? : Context ,\n\t\t) {\n\t\t\tfor( let index = 0 ; index < this.length ; ++ index ) {\n\t\t\t\tif( !check.call( context as Context , this[ index ] , index , this as any as Item[] ) ) return false\n\t\t\t}\n\t\t\treturn true\n\t\t}\n\n\t\treverse() {\n\t\t\treturn $mol_fail( new TypeError( `Mutable reverse is forbidden. Use toReversed instead.` ) )\n\t\t}\n\n\t\tsort() {\n\t\t\treturn $mol_fail( new TypeError( `Mutable sort is forbidden. Use toSorted instead.` ) )\n\t\t}\n\t\t\n\t\tindexOf( needle: Item ) {\n\t\t\treturn this.findIndex( item => item === needle )\n\t\t}\n\t\t\n\t\t[Symbol.toPrimitive]() {\n\t\t\treturn $mol_guid()\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\t$mol_test({\n\n\t\t'lazy calls'() {\n\n\t\t\tlet calls = 0\n\t\t\t\n\t\t\tconst list = $mol_range2( index => ( ++ calls , index ) , ()=> 10 )\n\n\t\t\t$mol_assert_equal( true, list instanceof Array )\n\t\t\t$mol_assert_equal( list.length , 10 )\n\n\t\t\t$mol_assert_equal( list[-1] , undefined )\n\t\t\t$mol_assert_equal( list[0] , 0 )\n\t\t\t$mol_assert_equal( list[9] , 9 )\n\t\t\t$mol_assert_equal( list[9.5] , undefined )\n\t\t\t$mol_assert_equal( list[10] , undefined )\n\n\t\t\t$mol_assert_equal( calls , 2 )\n\n\t\t} ,\n\n\t\t'infinity list'() {\n\n\t\t\tlet calls = 0\n\t\t\t\n\t\t\tconst list = $mol_range2( index => ( ++ calls , index ) )\n\n\t\t\t$mol_assert_equal( list.length , Number.POSITIVE_INFINITY )\n\n\t\t\t$mol_assert_equal( list[0] , 0 )\n\t\t\t$mol_assert_equal( list[4] , 4 )\n\t\t\t$mol_assert_equal( list[Number.MAX_SAFE_INTEGER] , Number.MAX_SAFE_INTEGER )\n\t\t\t$mol_assert_equal( list[Number.POSITIVE_INFINITY] , undefined )\n\t\t\t\n\t\t\t$mol_assert_equal( calls , 3 )\n\n\t\t} ,\n\n\t\t'stringify'() {\n\n\t\t\tconst list = $mol_range2( i => i , ()=> 5 )\n\n\t\t\t$mol_assert_equal( list.toString() , '0,1,2,3,4' )\n\t\t\t$mol_assert_equal( list.join(';') , '0;1;2;3;4' )\n\n\t\t} ,\n\n\t\t'for-of'() {\n\n\t\t\tlet log = ''\n\n\t\t\tfor( let i of $mol_range2( i => i + 1 , ()=> 5 ) ) {\n\t\t\t\tlog += i\n\t\t\t}\n\n\t\t\t$mol_assert_equal( log , '12345' )\n\n\t\t} ,\n\n\t\t'for-in'() {\n\n\t\t\tlet log = ''\n\n\t\t\tfor( let i in $mol_range2( i => i , ()=> 5 ) ) {\n\t\t\t\tlog += i\n\t\t\t}\n\n\t\t\t$mol_assert_equal( log , '01234' )\n\n\t\t} ,\n\n\t\t'forEach'() {\n\n\t\t\tlet log = ''\n\n\t\t\t$mol_range2( i => i , ()=> 5 ).forEach( i => log += i )\n\n\t\t\t$mol_assert_equal( log , '01234' )\n\n\t\t} ,\n\n\t\t'reduce'() {\n\n\t\t\tlet calls = 0\n\t\t\t\n\t\t\tconst list = $mol_range2().slice( 1 , 6 )\n\n\t\t\t$mol_assert_equal( list.reduce( ( s , v )=> s + v ) , 15 )\n\t\t\t$mol_assert_equal( list.reduce( ( s , v )=> s + v , 5 ) , 20 )\n\n\t\t} ,\n\n\t\t'lazy concat'() {\n\n\t\t\tlet calls1 = 0\n\t\t\tlet calls2 = 0\n\t\t\t\n\t\t\tconst list = $mol_range2( index => ( ++ calls1 , index ) , ()=> 5 ).concat(\n\t\t\t\t[ 0 , 1 , 2 , 3 , 4 ] ,\n\t\t\t\t$mol_range2( index => ( ++ calls2 , index ) , ()=> 5 ) ,\n\t\t\t)\n\n\t\t\t$mol_assert_equal( true, list instanceof Array )\n\t\t\t$mol_assert_equal( list.length , 15 )\n\n\t\t\t$mol_assert_equal( list[0] , 0 )\n\t\t\t$mol_assert_equal( list[4] , 4 )\n\t\t\t$mol_assert_equal( list[5] , 0 )\n\t\t\t$mol_assert_equal( list[9] , 4 )\n\t\t\t$mol_assert_equal( list[10] , 0 )\n\t\t\t$mol_assert_equal( list[14] , 4 )\n\t\t\t$mol_assert_equal( list[15] , undefined )\n\t\t\t\n\t\t\t$mol_assert_equal( calls1 , 2 )\n\t\t\t$mol_assert_equal( calls2 , 2 )\n\n\t\t} ,\n\n\t\t'lazy filter'() {\n\n\t\t\tlet calls = 0\n\t\t\t\n\t\t\tconst list = $mol_range2( index => ( ++ calls , index ) , ()=> 15 ).filter( v => v % 2 ).slice( 0 , 3 )\n\n\t\t\t$mol_assert_equal( true, list instanceof Array )\n\t\t\t$mol_assert_equal( list.length , 3 )\n\n\t\t\t$mol_assert_equal( list[0] , 1 )\n\t\t\t$mol_assert_equal( list[2] , 5 )\n\t\t\t$mol_assert_equal( list[3] , undefined )\n\t\t\t\n\t\t\t$mol_assert_equal( calls , 8 )\n\n\t\t} ,\n\n\t\t'lazy reverse'() {\n\t\t\tlet calls = 0\n\n\t\t\tconst list = $mol_range2( index => ( ++ calls , index ) , ()=> 10 ).toReversed().slice(0, 3)\n\n\t\t\t$mol_assert_equal( true, list instanceof Array )\n\t\t\t$mol_assert_equal( list.length , 3 )\n\n\t\t\t$mol_assert_equal( list[0] , 9 )\n\t\t\t$mol_assert_equal( list[2] , 7 )\n\t\t\t$mol_assert_equal( list[3] , undefined )\n\t\t\t$mol_assert_equal( calls , 2 )\n\n\t\t} ,\n\n\t\t'lazy map'() {\n\n\t\t\tlet calls1 = 0\n\t\t\tlet calls2 = 0\n\t\t\t\n\t\t\tconst source = $mol_range2( index => ( ++ calls1 , index ) , ()=> 5 )\n\t\t\tconst target = source.map(\n\t\t\t\t( item , index , self )=> {\n\t\t\t\t\t++ calls2\n\t\t\t\t\t$mol_assert_equal( source , self )\n\t\t\t\t\treturn index + 10\n\t\t\t\t} ,\n\t\t\t\t()=> 5 ,\n\t\t\t)\n\n\t\t\t$mol_assert_equal( true, target instanceof Array )\n\t\t\t$mol_assert_equal( target.length , 5 )\n\n\t\t\t$mol_assert_equal( target[0] , 10 )\n\t\t\t$mol_assert_equal( target[4] , 14 )\n\t\t\t$mol_assert_equal( target[5] , undefined )\n\t\t\t\n\t\t\t$mol_assert_equal( calls1 , 2 )\n\t\t\t$mol_assert_equal( calls2 , 2 )\n\n\t\t} ,\n\n\t\t'lazy slice'() {\n\n\t\t\tlet calls = 0\n\t\t\t\n\t\t\tconst list = $mol_range2( index => ( ++ calls , index ) , ()=> 10 ).slice( 3 , 7 )\n\n\t\t\t$mol_assert_equal( true, list instanceof Array )\n\t\t\t$mol_assert_equal( list.length , 4 )\n\n\t\t\t$mol_assert_equal( list[0] , 3 )\n\t\t\t$mol_assert_equal( list[3] , 6 )\n\t\t\t$mol_assert_equal( list[4] , undefined )\n\t\t\t\n\t\t\t$mol_assert_equal( calls , 2 )\n\n\t\t} ,\n\n\t\t'lazy some'() {\n\n\t\t\tlet calls = 0\n\t\t\t\n\t\t\t$mol_assert_equal( true, $mol_range2( index => ( ++ calls , index ) , ()=> 5 ).some( v => v >= 2 ) )\n\n\t\t\t$mol_assert_equal( calls , 3 )\n\n\t\t\t$mol_assert_equal( false, $mol_range2( i => i , ()=> 0 ).some( v => true ) )\n\t\t\t$mol_assert_equal( true, $mol_range2( i => i ).some( v => v > 5 ) )\n\t\t} ,\n\n\t\t'lazy every'() {\n\n\t\t\tlet calls = 0\n\t\t\t\n\t\t\t$mol_assert_equal( false, $mol_range2( index => ( ++ calls , index ) , ()=> 5 ).every( v => v < 2 ) )\n\n\t\t\t$mol_assert_equal( calls , 3 )\n\n\t\t\t$mol_assert_equal( true, $mol_range2( i => i , ()=> 0 ).every( v => false ) )\n\t\t\t$mol_assert_equal( false, $mol_range2( i => i ).every( v => v < 5 ) )\n\t\t} ,\n\n\t\t'lazyfy'() {\n\n\t\t\tlet calls = 0\n\t\t\t\n\t\t\tconst list = $mol_range2([ 0 , 1 , 2 , 3 , 4 , 5 ]).map( i => ( ++ calls , i + 10 ) ).slice( 2 )\n\n\t\t\t$mol_assert_equal( true, list instanceof Array )\n\t\t\t$mol_assert_equal( list.length , 4 )\n\n\t\t\t$mol_assert_equal( calls , 0 )\n\t\t\t\n\t\t\t$mol_assert_equal( list[0] , 12 )\n\t\t\t$mol_assert_equal( list[3] , 15 )\n\t\t\t$mol_assert_equal( list[4] , undefined )\n\t\t\t\n\t\t\t$mol_assert_equal( calls , 2 )\n\n\t\t} ,\n\n\t\t'prevent modification'() {\n\n\t\t\tconst list = $mol_range2( i => i , ()=> 5 )\n\n\t\t\t$mol_assert_fail( ()=> list.push( 4 ) , TypeError )\n\t\t\t$mol_assert_fail( ()=> list.pop() , TypeError )\n\t\t\t\n\t\t\t$mol_assert_fail( ()=> list.unshift( 4 ) , TypeError )\n\t\t\t$mol_assert_fail( ()=> list.shift() , TypeError )\n\t\t\t\n\t\t\t$mol_assert_fail( ()=> list.splice( 1 , 2 ) , TypeError )\n\t\t\t$mol_assert_fail( ()=> list[ 1 ] = 2 , TypeError )\n\t\t\t\n\t\t\t$mol_assert_fail( ()=> list.reverse() , TypeError )\n\t\t\t$mol_assert_fail( ()=> list.sort() , TypeError )\n\n\t\t\t$mol_assert_equal( list.toString() , '0,1,2,3,4' )\n\n\t\t}\n\n\t})\n\n}\n","/** @jsx $mol_jsx */\nnamespace $ {\n\n\t$mol_test({\n\n\t\t'nulls & undefineds'() {\n\n\t\t\t$mol_assert_ok( $mol_compare_deep( null , null ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( undefined , undefined ) )\n\t\t\t\n\t\t\t$mol_assert_not( $mol_compare_deep( undefined , null ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( {} , null ) )\n\t\t\t\n\t\t} ,\n\n\t\t'number'() {\n\t\t\t\n\t\t\t$mol_assert_ok( $mol_compare_deep( 1 , 1 ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( Number.NaN , Number.NaN ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( 1 , 2 ) )\n\t\t\t\n\t\t\t$mol_assert_ok( $mol_compare_deep( Object( 1 ) , Object( 1 ) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( Object( 1 ) , Object( 2 ) ) )\n\t\t\t\n\t\t} ,\n\n\t\t'POJO'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( {} , {} ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( { a : 1 } , { b : 2 } ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( { a : 1 } , { a : 2 } ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( {} , { a : undefined } ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( { a: 1, b: 2 } , { b: 2, a: 1 } ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( { a : { b : 1 } } , { a : { b : 1 } } ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( Object.create(null), Object.create(null) ) )\n\t\t} ,\n\n\t\t'Array'() {\n\t\t\t\n\t\t\t$mol_assert_ok( $mol_compare_deep( [] , [] ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( [ 1 , [2] ] , [ 1 , [2] ] ) )\n\t\t\t\n\t\t\t$mol_assert_not( $mol_compare_deep( [ 1 , 2 ] , [ 1 , 3 ] ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( [ 1 , 2 , ] , [ 1 , 3 , undefined ] ) )\n\t\t\t\n\t\t\t$mol_assert_not( $mol_compare_deep( $mol_range2().slice(0,0), new Array() ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( $mol_range2(), $mol_range2() ) )\n\t\t\t\n\t\t} ,\n\n\t\t'Non POJO are different'() {\n\t\t\t\n\t\t\tclass Thing extends Object {}\n\t\t\t$mol_assert_not( $mol_compare_deep( new Thing , new Thing ) )\n\t\t\t\n\t\t\t$mol_assert_not( $mol_compare_deep( ()=> 1 , ()=>1 ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new RangeError( 'Test error' ) , new RangeError( 'Test error' ) ) )\n\t\t\t\n\t\t} ,\n\n\t\t'POJO with symbols'() {\n\t\t\tconst sym = Symbol()\n\t\t\t$mol_assert_ok( $mol_compare_deep( { [ sym ]: true }, { [ sym ]: true } ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( { [ Symbol() ]: true }, { [ Symbol() ]: true } ) )\n\t\t} ,\n\n\t\t'same POJOs with cyclic reference'() {\n\n\t\t\tconst a = { foo : {} }\n\t\t\t;(a as any)['self'] = a\n\n\t\t\tconst b = { foo : {} }\n\t\t\t;(b as any)['self'] = b\n\n\t\t\t$mol_assert_ok( $mol_compare_deep( a , b ) )\n\n\t\t} ,\n\n\t\t'same POJOs with cyclic reference with cache warmup'() {\n\t\t\tconst obj1 = { test: 1, obj3: null as unknown as Object }\n\t\t\tconst obj1_copy = { test: 1, obj3: null as unknown as Object }\n\t\t\tconst obj2 = { test: 2, obj1 }\n\t\t\tconst obj2_copy = { test: 2, obj1: obj1_copy }\n\t\t\tconst obj3 = { test: 3, obj2 }\n\t\t\tconst obj3_copy = { test: 3, obj2: obj2_copy }\n\n\t\t\tobj1.obj3 = obj3\n\t\t\tobj1_copy.obj3 = obj3_copy\n\n\t\t\t// warmup cache\n\t\t\t$mol_assert_not( $mol_compare_deep( obj1 , {} as any ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( obj2 , {} as any ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( obj3 , {} as any ) )\n\n\t\t\t$mol_assert_ok( $mol_compare_deep( obj3 , obj3_copy ) )\n\n\t\t} ,\n\n\t\t'Date'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Date( 12345 ) , new Date( 12345 ) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new Date( 12345 ) , new Date( 12346 ) ) )\n\t\t} ,\n\n\t\t'RegExp'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( /\\x22/mig , /\\x22/mig ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( /\\x22/mig , /\\x21/mig ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( /\\x22/mig , /\\x22/mg ) )\n\t\t} ,\n\n\t\t'Error'() {\n\t\t\t\n\t\t\t$mol_assert_not( $mol_compare_deep( new Error( 'xxx' ) , new Error( 'xxx' ) ) )\n\n\t\t\tconst fail = ( message: string )=> new Error( message )\n\t\t\t\n\t\t\t$mol_assert_ok( $mol_compare_deep(\n\t\t\t\t... [ 'xxx' , 'xxx' ].map( msg => new Error( msg ) ) as [ Error, Error ]\n\t\t\t) )\n\t\t\t\n\t\t\t$mol_assert_not( $mol_compare_deep(\n\t\t\t\t... [ 'xxx' , 'yyy' ].map( msg => new Error( msg ) ) as [ Error, Error ]\n\t\t\t) )\n\t\t\t\n\t\t} ,\n\n\t\t'Map'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Map , new Map ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Map([ [ 1 , [2] ] ]) , new Map([ [ 1 , [2] ] ]) ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Map([ [ [1] , 2 ] ]) , new Map([ [ [1] , 2 ] ]) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new Map([ [ 1 , 2 ] ]) , new Map([ [ 1 , 3 ] ]) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new Map([ [ [1] , 2 ] ]) , new Map([ [ [3] , 2 ] ]) ) )\n\t\t} ,\n\t\t\n\t\t'Set'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Set , new Set ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Set([ 1 , [2] ]) , new Set([ 1 , [2] ]) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new Set([ 1 ]) , new Set([ 2 ]) ) )\n\t\t} ,\n\t\t\n\t\t'Uint8Array'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Uint8Array , new Uint8Array ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Uint8Array([ 0 ]) , new Uint8Array([ 0 ]) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new Uint8Array([ 0 ]) , new Uint8Array([ 1 ]) ) )\n\t\t} ,\n\t\t\n\t\t'DataView'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( new DataView( new Uint8Array().buffer ) , new DataView( new Uint8Array().buffer ) ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( new DataView( new Uint8Array([ 0 ]).buffer ) , new DataView( new Uint8Array([ 0 ]).buffer ) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new DataView( new Uint8Array([ 0 ]). buffer ) , new DataView( new Uint8Array([ 1 ]).buffer ) ) )\n\t\t} ,\n\t\t\n\t\t'Serializale'() {\n\t\t\t\n\t\t\tclass User {\n\t\t\t\t\n\t\t\t\tconstructor(\n\t\t\t\t\treadonly name: string,\n\t\t\t\t\treadonly rand = Math.random(),\n\t\t\t\t) {}\n\t\t\t\t\n\t\t\t\t[ Symbol.toPrimitive ]( mode: 'default' | 'number' | 'string' ) {\n\t\t\t\t\treturn this.name\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_ok( $mol_compare_deep( new User( 'Jin' ), new User( 'Jin' ) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new User( 'Jin' ), new User( 'John' ) ) )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t'Iterable'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( new URLSearchParams({ foo: 'bar' }), new URLSearchParams({ foo: 'bar' }) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new URLSearchParams({ foo: 'xxx' }), new URLSearchParams({ foo: 'yyy' }) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new URLSearchParams({ foo: 'xxx', bar: 'yyy' }), new URLSearchParams({ bar: 'yyy', foo: 'xxx' }) ) )\n\t\t} ,\n\t\t\n\t})\n\n}\n","namespace $ {\n\t\n\t/**\n\t * Argument must be Truthy\n\t * @deprecated use $mol_assert_equal instead\n\t */\n\texport function $mol_assert_ok( value : any ) {\n\t\tif( value ) return\n\t\t$mol_fail( new Error( `${value} ≠ true` ) )\n\t}\n\t\n\t/**\n\t * Argument must be Falsy\n\t * @deprecated use $mol_assert_equal instead\n\t */\n\texport function $mol_assert_not( value : any ) {\n\t\tif( !value ) return\n\t\t$mol_fail( new Error( `${value} ≠ false` ) )\n\t}\n\t\n\t/**\n\t * Handler must throw an error.\n\t * @example\n\t * $mol_assert_fail( ()=>{ throw new Error( 'Parse error' ) } ) // Passes because throws error\n\t * $mol_assert_fail( ()=>{ throw new Error( 'Parse error' ) } , 'Parse error' ) // Passes because throws right message\n\t * $mol_assert_fail( ()=>{ throw new Error( 'Parse error' ) } , Error ) // Passes because throws right class\n\t * @see https://mol.hyoo.ru/#!section=docs/=9q9dv3_fgxjsf\n\t */\n\texport function $mol_assert_fail(\n\t\thandler: ()=> any ,\n\t\tErrorRight: string | typeof Error | typeof Promise\n\t) {\n\t\t\n\t\tconst fail = $.$mol_fail\n\t\t\n\t\ttry {\n\t\t\t$.$mol_fail = $.$mol_fail_hidden\n\t\t\t\n\t\t\thandler()\n\n\t\t} catch( error: any ) {\n\t\t\t\n\t\t\t$.$mol_fail = fail\n\n\t\t\tif( typeof ErrorRight === 'string' ) {\n\t\t\t\t$mol_assert_equal( error.message ?? error, ErrorRight )\n\t\t\t} else {\n\t\t\t\t$mol_assert_equal( error instanceof ErrorRight, true )\n\t\t\t}\n\t\t\t\n\t\t\treturn error\n\n\t\t} finally {\n\t\t\t$.$mol_fail = fail\n\t\t}\n\n\t\t$mol_fail( new Error( 'Not failed', { cause: { expect: ErrorRight } } ) )\n\t}\n\t\n\t/** @deprecated Use $mol_assert_equal */\n\texport function $mol_assert_like< Value >( ... args : [ Value, Value, ...Value[] ] ) {\n\t\t$mol_assert_equal( ... args )\n\t}\n\t\n\t/**\n\t * All arguments must not be structural equal to each other.\n\t * @example\n\t * $mol_assert_unique( 1 , 2 , 3 ) // Passes\n\t * $mol_assert_unique( 1 , 1 , 2 ) // Fails because 1 === 1\n\t * @see https://mol.hyoo.ru/#!section=docs/=9q9dv3_fgxjsf\n\t */\n\texport function $mol_assert_unique( ... args : [ any, any, ...any[] ] ) {\n\t\t\n\t\tfor( let i = 0 ; i < args.length ; ++i ) {\n\t\t\tfor( let j = 0 ; j < args.length ; ++j ) {\n\t\t\t\t\n\t\t\t\tif( i === j ) continue\n\t\t\t\tif( !$mol_compare_deep( args[i], args[j] ) ) continue\n\t\t\t\t\n\t\t\t\treturn $mol_fail( new Error(\n\t\t\t\t\t`Uniquesess assertion failure`,\n\t\t\t\t\t{ cause: { [i]: args[i], [i]: args[i] } },\n\t\t\t\t) )\n\t\t\t\t\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\t\n\t/**\n\t * All arguments must be structural equal each other.\n\t * @example\n\t * $mol_assert_like( [1] , [1] , [1] ) // Passes\n\t * $mol_assert_like( [1] , [1] , [2] ) // Fails because 1 !== 2\n\t * @see https://mol.hyoo.ru/#!section=docs/=9q9dv3_fgxjsf\n\t */\n\texport function $mol_assert_equal< Value >( ... args : [ Value, Value, ... Value[] ] ) {\n\t\tfor( let i = 1 ; i < args.length ; ++i ) {\n\t\t\t\n\t\t\tif( $mol_compare_deep( args[0] , args[i] ) ) continue\n\t\t\t\n\t\t\treturn $mol_fail( new Error(\n\t\t\t\t`Equality assertion failure`,\n\t\t\t\t{ cause: { 0: args[0], [i]: args[i] } },\n\t\t\t) )\n\t\t\t\n\t\t}\n\t}\n\t\n}\n","namespace $ {\n\t$mol_test( {\n\t\t\n\t\t'must be false'() {\n\t\t\t$mol_assert_not( 0 )\n\t\t} ,\n\t\t\n\t\t'must be true'() {\n\t\t\t$mol_assert_ok( 1 )\n\t\t} ,\n\t\t\n\t\t'two must be equal'() {\n\t\t\t$mol_assert_equal( 2 , 2 )\n\t\t} ,\n\t\t\n\t\t'three must be equal'() {\n\t\t\t$mol_assert_equal( 2 , 2 , 2 )\n\t\t} ,\n\t\t\n\t\t'two must be unique'() {\n\t\t\t$mol_assert_unique( [ 2 ] , [ 3 ] )\n\t\t} ,\n\t\t\n\t\t'three must be unique'() {\n\t\t\t$mol_assert_unique( [ 1 ] , [ 2 ] , [ 3 ] )\n\t\t} ,\n\t\t\n\t\t'two must be alike'() {\n\t\t\t$mol_assert_equal( [ 3 ] , [ 3 ] )\n\t\t} ,\n\t\t\n\t\t'three must be alike'() {\n\t\t\t$mol_assert_equal( [ 3 ] , [ 3 ] , [ 3 ] )\n\t\t} ,\n\n\t\t'two object must be alike'() {\n\t\t\t$mol_assert_equal( { a: 1 }, { a: 1 } )\n\t\t} ,\n\n\t\t'three object must be alike'() {\n\t\t\t$mol_assert_equal( { a: 1 }, { a: 1 }, { a: 1 } )\n\t\t} ,\n\t\t\n\t} )\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'get'() {\n\t\t\tconst proxy = $mol_delegate( {} as any , ()=> ({ foo : 777 }) )\n\t\t\t$mol_assert_equal( proxy.foo , 777 )\n\t\t},\n\n\t\t'has'() {\n\t\t\tconst proxy = $mol_delegate( {} as any , ()=> ({ foo : 777 }) )\n\t\t\t$mol_assert_equal( 'foo' in proxy , true )\n\t\t},\n\n\t\t'set'() {\n\t\t\tconst target = { foo : 777 }\n\t\t\tconst proxy = $mol_delegate( {} as any , ()=> target )\n\t\t\tproxy.foo = 123\n\t\t\t$mol_assert_equal( target.foo , 123 )\n\t\t},\n\t\t\n\t\t'getOwnPropertyDescriptor'() {\n\n\t\t\tconst proxy = $mol_delegate( {} as any , ()=> ({ foo : 777 }) )\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\tObject.getOwnPropertyDescriptor( proxy , 'foo' ),\n\t\t\t\t{\n\t\t\t\t\tvalue: 777,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t},\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'ownKeys'() {\n\n\t\t\tconst proxy = $mol_delegate(\n\t\t\t\t{} as any ,\n\t\t\t\t()=> ({ foo : 777 , [ Symbol.toStringTag ] : 'bar' }),\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\tReflect.ownKeys( proxy ),\n\t\t\t\t[ 'foo' , Symbol.toStringTag ],\n\t\t\t)\n\n\t\t},\n\n\t\t'getPrototypeOf'() {\n\n\t\t\tclass Foo {}\n\n\t\t\tconst proxy = $mol_delegate(\n\t\t\t\t{} as any ,\n\t\t\t\t()=> new Foo,\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tObject.getPrototypeOf( proxy ),\n\t\t\t\tFoo.prototype,\n\t\t\t)\n\n\t\t},\n\n\t\t'setPrototypeOf'() {\n\n\t\t\tclass Foo {}\n\t\t\tconst target = {}\n\n\t\t\tconst proxy = $mol_delegate(\n\t\t\t\t{} ,\n\t\t\t\t()=> target,\n\t\t\t)\n\n\t\t\tObject.setPrototypeOf( proxy , Foo.prototype )\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tObject.getPrototypeOf( target ),\n\t\t\t\tFoo.prototype,\n\t\t\t)\n\n\t\t},\n\n\t\t'instanceof'() {\n\n\t\t\tclass Foo {}\n\n\t\t\tconst proxy = $mol_delegate(\n\t\t\t\t{} ,\n\t\t\t\t()=> new Foo,\n\t\t\t)\n\n\t\t\t$mol_assert_ok( proxy instanceof Foo )\n\t\t\t$mol_assert_ok( proxy instanceof $mol_delegate )\n\n\t\t},\n\n\t\t'autobind'() {\n\n\t\t\tclass Foo {}\n\n\t\t\tconst proxy = $mol_delegate(\n\t\t\t\t{} ,\n\t\t\t\t()=> new Foo,\n\t\t\t)\n\n\t\t\t$mol_assert_ok( proxy instanceof Foo )\n\t\t\t$mol_assert_ok( proxy instanceof $mol_delegate )\n\n\t\t},\n\n\t})\n}\n","namespace $ {\n\t$mol_test( {\n\t\t'span for same uri'( $ ) {\n\t\t\tconst span = new $mol_span('test.ts', '', 1, 3, 4)\n\t\t\tconst child = span.span(4, 5, 8)\n\n\t\t\t$mol_assert_equal(child.uri, 'test.ts')\n\t\t\t$mol_assert_equal(child.row, 4)\n\t\t\t$mol_assert_equal(child.col, 5)\n\t\t\t$mol_assert_equal(child.length, 8)\n\t\t},\n\n\t\t'span after of given position'( $ ) {\n\t\t\tconst span = new $mol_span('test.ts', '', 1, 3, 4)\n\t\t\tconst child = span.after(11)\n\n\t\t\t$mol_assert_equal(child.uri, 'test.ts')\n\t\t\t$mol_assert_equal(child.row, 1)\n\t\t\t$mol_assert_equal(child.col, 7)\n\t\t\t$mol_assert_equal(child.length, 11)\n\t\t},\n\n\t\t'slice span - regular'( $ ) {\n\t\t\tconst span = new $mol_span('test.ts', '', 1, 3, 5)\n\t\t\tconst child = span.slice(1, 4)\n\n\t\t\t$mol_assert_equal(child.row, 1)\n\t\t\t$mol_assert_equal(child.col, 4)\n\t\t\t$mol_assert_equal(child.length, 3)\n\n\t\t\tconst child2 = span.slice(2, 2)\n\n\t\t\t$mol_assert_equal(child2.col, 5)\n\t\t\t$mol_assert_equal(child2.length, 0)\n\t\t},\n\n\t\t'slice span - negative'( $ ) {\n\t\t\tconst span = new $mol_span('test.ts', '', 1, 3, 5)\n\t\t\tconst child = span.slice(-3, -1)\n\n\t\t\t$mol_assert_equal(child.row, 1)\n\t\t\t$mol_assert_equal(child.col, 5)\n\t\t\t$mol_assert_equal(child.length, 2)\n\t\t},\n\n\t\t'slice span - out of range'( $ ) {\n\t\t\tconst span = new $mol_span('test.ts', '', 1, 3, 5)\n\n\t\t\t$mol_assert_fail( ()=> span.slice(-1, 3), `End value '3' can't be less than begin value (test.ts#1:3/5)` )\n\t\t\t$mol_assert_fail( ()=> span.slice(1, 6), `End value '6' out of range (test.ts#1:3/5)` )\n\t\t\t$mol_assert_fail( ()=> span.slice(1, 10), `End value '10' out of range (test.ts#1:3/5)` )\n\t\t},\n\n\t\t'error handling'( $ ) {\n\t\t\tconst span = new $mol_span('test.ts', '', 1, 3, 4)\n\t\t\tconst error = span.error('Some error')\n\n\t\t\t$mol_assert_equal(error.message, 'Some error (test.ts#1:3/4)')\n\t\t}\n\n\t} )\n}\n","namespace $ {\n\t$mol_test( {\n\t\t\n\t\t'all cases of using maybe'() {\n\t\t\t$mol_assert_equal( $mol_maybe( 0 )[ 0 ] , 0 )\n\t\t\t$mol_assert_equal( $mol_maybe( false )[ 0 ] , false )\n\t\t\t$mol_assert_equal( $mol_maybe( null )[ 0 ] , void 0 )\n\t\t\t$mol_assert_equal( $mol_maybe( void 0 )[ 0 ] , void 0 )\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_maybe< number >( void 0 ).map( v => v.toString() )[ 0 ] , void 0 )\n\t\t\t$mol_assert_equal( $mol_maybe( 0 ).map( v => v.toString() )[ 0 ] , '0' )\n\t\t} ,\n\t\t\n\t} )\n}\n","namespace $ {\n\t\n\tfunction check( tree: $mol_tree2, ideal: string ) {\n\t\t$mol_assert_equal(\n\t\t\ttree.toString(),\n\t\t\t$$.$mol_tree2_from_string( ideal ).toString(),\n\t\t)\n\t}\n\t\n\t$mol_test( {\n\t\t\n\t\t'inserting'($) {\n\t\t\t\n\t\t\tcheck(\n\t\t\t\t$.$mol_tree2_from_string( `\n\t\t\t\t\ta b c d\n\t\t\t\t`).insert( $mol_tree2.struct('x') , 'a' , 'b' , 'c' ),\n\t\t\t\t`\n\t\t\t\t\ta b x\n\t\t\t\t`,\n\t\t\t)\n\t\t\tcheck(\n\t\t\t\t$.$mol_tree2_from_string(`\n\t\t\t\t\ta b\n\t\t\t\t`).insert( $mol_tree2.struct('x') , 'a' , 'b' , 'c' , 'd' ),\n\t\t\t\t`\n\t\t\t\t\ta b c x\n\t\t\t\t`,\n\t\t\t)\n\n\t\t\tcheck(\n\t\t\t\t$.$mol_tree2_from_string(`\n\t\t\t\t\ta b c d\n\t\t\t\t`)\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , 0 , 0 , 0 ),\n\t\t\t\t`\n\t\t\t\t\ta b x\n\t\t\t\t`,\n\t\t\t)\n\t\t\tcheck(\n\t\t\t\t$.$mol_tree2_from_string(`\n\t\t\t\t\ta b\n\t\t\t\t`)\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , 0 , 0 , 0 , 0 ),\n\t\t\t\t`\n\t\t\t\t\ta b \\\\\n\t\t\t\t\t\tx\n\t\t\t\t`,\n\t\t\t)\n\n\t\t\tcheck(\n\t\t\t\t$.$mol_tree2_from_string(`\n\t\t\t\t\ta b c d\n\t\t\t\t`)\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , null , null , null ),\n\t\t\t\t`\n\t\t\t\t\ta b x\n\t\t\t\t`,\n\t\t\t)\n\t\t\tcheck(\n\t\t\t\t$.$mol_tree2_from_string(`\n\t\t\t\t\ta b\n\t\t\t\t`)\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , null , null , null , null ),\n\t\t\t\t`\n\t\t\t\t\ta b \\\\\n\t\t\t\t\t\tx\n\t\t\t\t`,\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t'updating'($) {\n\n\t\t\tcheck(\n\t\t\t\t$.$mol_tree2_from_string(`\n\t\t\t\t\ta b c d\n\t\t\t\t`).update( [], 'a', 'b', 'c' )[0],\n\t\t\t\t`\n\t\t\t\t\ta b\n\t\t\t\t`,\n\t\t\t)\n\t\t\t\n\t\t\tcheck(\n\t\t\t\t$.$mol_tree2_from_string(`\n\t\t\t\t\ta b c d\n\t\t\t\t`).update( [ $mol_tree2.struct('x') ] )[0],\n\t\t\t\t`\n\t\t\t\t\tx\n\t\t\t\t`,\n\t\t\t)\n\t\t\t\n\t\t\tcheck(\n\t\t\t\t$.$mol_tree2_from_string(`\n\t\t\t\t\ta b c d\n\t\t\t\t`).update( [ $mol_tree2.struct('x'), $mol_tree2.struct('y') ], 'a', 'b', 'c' )[0],\n\t\t\t\t`\n\t\t\t\t\ta b\n\t\t\t\t\t\tx\n\t\t\t\t\t\ty\n\t\t\t\t`,\n\t\t\t)\n\t\t\t\n\t\t} ,\n\n\t\t'deleting'($) {\n\t\t\t\n\t\t\tconst base = $.$mol_tree2_from_string(`\n\t\t\t\ta b c d\n\t\t\t`)\n\n\t\t\tcheck(\n\t\t\t\tbase.insert( null , 'a' , 'b' , 'c' ),\n\t\t\t\t`\n\t\t\t\t\ta b\n\t\t\t\t`,\n\t\t\t)\n\t\t\t\n\t\t\tcheck(\n\t\t\t\tbase.update( base.select( 'a', 'b', 'c', null ).kids , 'a' , 'b' , 'c' )[0],\n\t\t\t\t`\n\t\t\t\t\ta b d\n\t\t\t\t`,\n\t\t\t)\n\t\t\t\n\t\t\tcheck(\n\t\t\t\tbase.insert( null , 0, 0, 0 ),\n\t\t\t\t`\n\t\t\t\t\ta b\n\t\t\t\t`,\n\t\t\t)\n\t\t\t\n\t\t} ,\n\n\t\t'hack'($) {\n\n\t\t\tconst res = $.$mol_tree2_from_string(`\n\t\t\t\tfoo bar xxx\n\t\t\t`)\n\t\t\t.hack({\n\t\t\t\t'bar' : ( input , belt )=> [ input.struct( '777' , input.hack( belt ) ) ] ,\n\t\t\t})\n\n\t\t\t$mol_assert_equal( res.map( String ) , [ 'foo 777 xxx\\n' ] )\n\n\t\t} ,\n\n\t} )\t\n}\n","namespace $ {\n\n\t$mol_test({\n\n\t\t'empty array'() {\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_array_chunks( [], ()=> true ),\n\t\t\t\t[],\n\t\t\t)\n\n\t\t},\n\n\t\t'one chunk'() {\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_array_chunks( [ 1, 2, 3, 4, 5 ], ()=> false ),\n\t\t\t\t[ [ 1, 2, 3, 4, 5 ] ],\n\t\t\t)\n\n\t\t},\n\n\t\t'fixed size chunk'() {\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_array_chunks( [ 1, 2, 3, 4, 5 ], 3 ),\n\t\t\t\t[ [ 1, 2, 3 ], [ 4, 5 ] ],\n\t\t\t)\n\n\t\t},\n\n\t\t'first empty chunk'() {\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_array_chunks( [ 1, 2, 3, 4, 5 ], (_,i)=> i === 0 ),\n\t\t\t\t[ [ 1, 2, 3, 4, 5 ] ],\n\t\t\t)\n\n\t\t},\n\n\t\t'chunk for every item'() {\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_array_chunks( [ 1, 2, 3, 4, 5 ], ()=> true ),\n\t\t\t\t[ [1], [2], [3], [4], [5] ],\n\t\t\t)\n\n\t\t},\n\n\t})\n\n}\n","namespace $ {\n\t$mol_test( {\n\t\t\n\t\t'tree parsing'( $ ) {\n\t\t\t\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"foo\\nbar\\n\" ).kids.length , 2 )\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"foo\\nbar\\n\" ).kids[ 1 ].type , \"bar\" )\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"foo\\n\\n\\n\" ).kids.length , 1 )\n\t\t\t\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"=foo\\n\\\\bar\\n\" ).kids.length , 2 )\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"=foo\\n\\\\bar\\n\" ).kids[ 1 ].value , \"bar\" )\n\t\t\t\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"foo bar \\\\pol\\n\" ).kids[ 0 ].kids[ 0 ].kids[ 0 ].value , \"pol\" )\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"foo bar\\n\\t\\\\pol\\n\\t\\\\men\\n\" ).kids[ 0 ].kids[ 0 ].kids[ 1 ].value , \"men\" )\n\t\t\t\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( 'foo bar \\\\text\\n' ).toString() , 'foo bar \\\\text\\n' )\n\t\t} ,\n\n\t\t'Too many tabs'( $ ) {\n\n\t\t\tconst tree = `\n\t\t\t\tfoo\n\t\t\t\t\t\tbar\n\t\t\t`\n\n\t\t\t$mol_assert_fail( ()=> {\n\t\t\t\t$.$mol_tree2_from_string( tree , 'test' )\n\t\t\t}, 'Too many tabs\\ntest#3:1/6\\n!!!!!!\\n\\t\\t\\t\\t\\t\\tbar' )\n\n\t\t},\n\n\t\t'Too few tabs'( $ ) {\n\n\t\t\tconst tree = `\n\t\t\t\t\tfoo\n\t\t\t\tbar\n\t\t\t`\n\n\t\t\t$mol_assert_fail( ()=> {\n\t\t\t\t$.$mol_tree2_from_string( tree , 'test' )\n\t\t\t}, 'Too few tabs\\ntest#3:1/4\\n!!!!\\n\\t\\t\\t\\tbar' )\n\n\t\t},\n\n\t\t'Wrong nodes separator at start'( $ ) {\n\n\t\t\tconst tree = `foo\\n \\tbar\\n`\n\n\t\t\t$mol_assert_fail( ()=> {\n\t\t\t\t$.$mol_tree2_from_string( tree , 'test' )\n\t\t\t}, 'Wrong nodes separator\\ntest#2:1/2\\n!!\\n \\tbar' )\n\n\t\t},\n\n\t\t'Wrong nodes separator in the middle'( $ ) {\n\n\t\t\tconst tree = `foo bar\\n`\n\n\t\t\t$mol_assert_fail( ()=> {\n\t\t\t\t$.$mol_tree2_from_string( tree , 'test' )\n\t\t\t}, 'Wrong nodes separator\\ntest#1:5/1\\n !\\nfoo bar' )\n\n\t\t},\n\n\t\t'Unexpected EOF, LF required'( $ ) {\n\n\t\t\tconst tree = `\tfoo`\n\n\t\t\t$mol_assert_fail( ()=> {\n\t\t\t\t$.$mol_tree2_from_string( tree , 'test' )\n\t\t\t}, 'Unexpected EOF, LF required\\ntest#1:5/1\\n\t !\\n\tfoo' )\n\n\t\t},\n\n\t\t'Errors skip and collect'( $ ) {\n\n\t\t\tconst tree = `foo bar`\n\t\t\tconst errors = [] as string[]\n\n\t\t\tconst $$ = $.$mol_ambient({\n\t\t\t\t$mol_fail: ( error: any ) => {\n\t\t\t\t\terrors.push( error.message )\n\t\t\t\t\treturn null as never\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tconst res = $$.$mol_tree2_from_string( tree , 'test' )\n\n\t\t\t$mol_assert_like( errors, [\n\t\t\t\t'Wrong nodes separator\\ntest#1:5/1\\n !\\nfoo bar',\n\t\t\t\t'Unexpected EOF, LF required\\ntest#1:9/1\\n !\\nfoo bar',\n\t\t\t] )\n\n\t\t\t$mol_assert_equal( res.toString(), 'foo bar\\n' )\n\n\t\t},\n\n\t} )\t\n}\n","namespace $ {\n\t$mol_test( {\n\t\t\n\t\t'fromJSON'() {\n\t\t\t$mol_assert_equal( $mol_tree2_from_json([]).toString() , '/\\n' )\n\t\t\t$mol_assert_equal( $mol_tree2_from_json([ false , true ]).toString() , '/\\n\\tfalse\\n\\ttrue\\n' )\n\t\t\t$mol_assert_equal( $mol_tree2_from_json([ 0 , 1 , 2.3 ]).toString() , '/\\n\\t0\\n\\t1\\n\\t2.3\\n' )\n\t\t\t$mol_assert_equal( $mol_tree2_from_json( new Uint16Array([ 1, 10, 255, 256, 65535 ]) ).toString() , '\\\\01 00 0A 00 FF 00 00 01\\n\\\\FF FF\\n' )\n\t\t\t$mol_assert_equal( $mol_tree2_from_json([ '' , 'foo' , 'bar\\nbaz' ]).toString() , '/\\n\\t\\\\\\n\\t\\\\foo\\n\\t\\\\\\n\\t\\t\\\\bar\\n\\t\\t\\\\baz\\n' )\n\t\t\t$mol_assert_equal( $mol_tree2_from_json({ 'foo' : false , 'bar\\nbaz' : 'lol' }).toString() , '*\\n\\tfoo false\\n\\t\\\\\\n\\t\\t\\\\bar\\n\\t\\t\\\\baz\\n\\t\\t\\\\lol\\n' )\n\t\t} ,\n\t\t\n\t} )\t\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'return result without errors'() {\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_try( ()=> false ) , false )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t//'return error if thrown'() {\n\t\t//\t\n\t\t//\tconst error = new Error( '$mol_try test error' )\n\t\t//\t$mol_assert_equal( $mol_try( ()=> { throw error } ) , error )\n\t\t//\t\n\t\t//} ,\n\t\t\n\t})\t\n}\n","namespace $ {\n\t$mol_test_mocks.push( $=> $.$mol_fail_log = ()=> false )\n}\n\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'Collect deps'() {\n\t\t\t\n\t\t\tconst pub1 = new $mol_wire_pub\n\t\t\tconst pub2 = new $mol_wire_pub\n\t\t\tconst sub = new $mol_wire_pub_sub\n\t\t\t\n\t\t\tconst bu1 = sub.track_on()\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\tpub1.promote()\n\t\t\t\tpub2.promote()\n\t\t\t\tpub2.promote()\n\t\t\t\t\n\t\t\t} finally {\n\t\t\t\t\n\t\t\t\tsub.track_cut()\n\t\t\t\tsub.track_off( bu1 )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tpub1.emit()\n\t\t\tpub2.emit()\n\t\t\t\n\t\t\t$mol_assert_like( sub.pub_list, [ pub1, pub2, pub2 ] )\n\t\t\t\n\t\t\tconst bu2 = sub.track_on()\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\tpub1.promote()\n\t\t\t\tpub1.promote()\n\t\t\t\tpub2.promote()\n\t\t\t\t\n\t\t\t} finally {\n\t\t\t\t\n\t\t\t\tsub.track_cut()\n\t\t\t\tsub.track_off( bu2 )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tpub1.emit()\n\t\t\tpub2.emit()\n\t\t\t\n\t\t\t$mol_assert_like( sub.pub_list, [ pub1, pub1, pub2 ] )\n\t\t\t\n\t\t},\n\t\t\n\t\t'cyclic detection'( $ ) {\n\t\t\t\n\t\t\tconst sub1 = new $mol_wire_pub_sub\n\t\t\tconst sub2 = new $mol_wire_pub_sub\n\t\t\t\n\t\t\tconst bu1 = sub1.track_on()\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\tconst bu2 = sub2.track_on()\n\t\t\t\ttry {\n\t\t\t\t\t\n\t\t\t\t\t$mol_assert_fail( ()=> sub1.promote(), 'Circular subscription' )\n\t\t\t\t\t\n\t\t\t\t} finally {\n\t\t\t\t\t\n\t\t\t\t\tsub2.track_cut()\n\t\t\t\t\tsub2.track_off( bu2 )\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} finally {\n\t\t\t\t\n\t\t\t\tsub1.track_cut()\n\t\t\t\tsub1.track_off( bu1 )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t},\n\n\t})\n}\n","namespace $ {\n\n\t/// @todo right orderinng\n\texport let $mol_after_mock_queue = [] as ( ()=> void )[]\n\n\texport function $mol_after_mock_warp() {\n\t\tconst queue = $mol_after_mock_queue.splice( 0 )\n\t\tfor( const task of queue ) task()\n\t}\n\n\texport class $mol_after_mock_commmon extends $mol_object2 {\n\n\t\tpromise = Promise.resolve()\n\t\tcancelled = false\n\t\tid : any\n\n\t\tconstructor( public task : ()=> void ) {\n\t\t\tsuper()\n\t\t\t$mol_after_mock_queue.push( task )\n\t\t}\n\n\t\tdestructor() {\n\t\t\tconst index = $mol_after_mock_queue.indexOf( this.task )\n\t\t\tif( index >= 0 )$mol_after_mock_queue.splice( index , 1 )\n\t\t}\n\n\t}\n\n\texport class $mol_after_mock_timeout extends $mol_after_mock_commmon {\n\n\t\tconstructor(\n\t\t\tpublic delay : number ,\n\t\t\ttask : ()=> void ,\n\t\t) {\n\t\t\tsuper( task )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\n\t$mol_test_mocks.push( $ => {\n\t\t$.$mol_after_tick = $mol_after_mock_commmon as any as typeof $mol_after_tick\n\t})\n\n}\n","namespace $ {\n\n\t$mol_test({\n\t\t\n\t\t'Sync execution'() {\n\n\t\t\tclass Sync extends $mol_object2 {\n\t\t\t\t\n\t\t\t\t@ $mol_wire_method\n\t\t\t\tstatic calc( a: number, b: number ) {\n\t\t\t\t\treturn a + b\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( Sync.calc( 1, 2 ), 3 )\n\t\t\t\n\t\t},\n\n\t\tasync 'async <=> sync'() {\n\t\t\t\n\t\t\tclass SyncAsync extends $mol_object2 {\n\t\t\t\t\n\t\t\t\tstatic async val( a: number ) {\n\t\t\t\t\treturn a\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstatic sum( a: number, b: number ) {\n\t\t\t\t\tconst syn = $mol_wire_sync( this )\n\t\t\t\t\treturn syn.val( a ) + syn.val( b )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstatic async calc( a: number, b: number ) {\n\t\t\t\t\treturn 5 + await $mol_wire_async( this ).sum( a, b )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( await SyncAsync.calc( 1, 2 ), 8 )\n\n\t\t},\n\n\t\tasync 'Idempotence control'() {\n\n\t\t\tclass Idempotence extends $mol_object2 {\n\t\t\t\t\n\t\t\t\tstatic logs_idemp = 0\n\t\t\t\tstatic logs_unidemp = 0\n\t\t\t\t\n\t\t\t\t@ $mol_wire_method\n\t\t\t\tstatic log_idemp() {\n\t\t\t\t\tthis.logs_idemp += 1\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstatic log_unidemp() {\n\t\t\t\t\tthis.logs_unidemp += 1\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstatic async val( a: number ) {\n\t\t\t\t\treturn a\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstatic sum( a: number, b: number ) {\n\t\t\t\t\tthis.log_idemp()\n\t\t\t\t\tthis.log_unidemp()\n\t\t\t\t\tconst syn = $mol_wire_sync( this )\n\t\t\t\t\treturn syn.val( a ) + syn.val( b )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstatic async calc( a: number, b: number ) {\n\t\t\t\t\treturn 5 + await $mol_wire_async( this ).sum( a, b )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( await Idempotence.calc( 1, 2 ), 8 )\n\t\t\t$mol_assert_equal( Idempotence.logs_idemp, 1 )\n\t\t\t$mol_assert_equal( Idempotence.logs_unidemp, 3 )\n\n\t\t},\n\n\t\tasync 'Error handling'() {\n\t\t\t\n\t\t\tclass Handle extends $mol_object2 {\n\t\t\t\t\n\t\t\t\tstatic async sum( a: number, b: number ){\n\t\t\t\t\t$mol_fail( new Error( 'test error ' + ( a + b ) ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstatic check() {\n\t\t\t\t\ttry {\n\t\t\t\t\t\treturn $mol_wire_sync( Handle ).sum( 1, 2 )\n\t\t\t\t\t} catch( error: any ) {\n\t\t\t\t\t\tif( $mol_promise_like( error ) ) $mol_fail_hidden( error )\n\t\t\t\t\t\t$mol_assert_equal( error.message, 'test error 3' )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\t\n\t\t\tawait $mol_wire_async( Handle ).check()\n\t\t\t\n\t\t},\n\t\t\n\t})\n\t\n}\n","/** @jsx $mol_jsx */\nnamespace $ {\n\t$mol_test({\n\t\t\n\t\t'Primitives'() {\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_key( null ), 'null' )\n\t\t\t$mol_assert_equal( $mol_key( false ), 'false' )\n\t\t\t$mol_assert_equal( $mol_key( true ), 'true' )\n\t\t\t$mol_assert_equal( $mol_key( 0 ), '0' )\n\t\t\t$mol_assert_equal( $mol_key( 1n<<64n ), '18446744073709551616n' )\n\t\t\t$mol_assert_equal( $mol_key( '' ), '\"\"' )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Array & POJO'() {\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_key([ null ]), '[null]' )\n\t\t\t$mol_assert_equal( $mol_key({ foo: 0 }), '{\"foo\":0}' )\n\t\t\t$mol_assert_equal( $mol_key({ foo: [false] }), '{\"foo\":[false]}' )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Uint8Array'() {\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_key( new Uint8Array([ 1, 2 ]) ), 'Uint8Array([1,2])' )\n\t\t\t$mol_assert_equal( $mol_key([ new Uint8Array([ 1, 2 ]) ]), '[Uint8Array([1,2])]' )\n\t\t\t$mol_assert_equal( $mol_key({ foo: new Uint8Array([ 1, 2 ]) }), '{\"foo\":Uint8Array([1,2])}' )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Function'() {\n\t\t\t\n\t\t\tconst func = ()=> {}\n\t\t\t$mol_assert_equal( $mol_key( func ), $mol_key( func ) )\n\t\t\t$mol_assert_unique( $mol_key( func ), $mol_key( ()=> {} ) )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Objects'() {\n\t\t\t\n\t\t\tclass User {}\n\t\t\tconst jin = new User()\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_key( jin ), $mol_key( jin ) )\n\t\t\t$mol_assert_unique( $mol_key( jin ), $mol_key( new User() ) )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Elements'() {\n\t\t\t\n\t\t\tconst foo = <div>bar</div>\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_key( foo ), $mol_key( foo ) )\n\t\t\t$mol_assert_unique( $mol_key( foo ), $mol_key( <div>bar</div> ) )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Custom JSON representation'() {\n\t\t\t\n\t\t\tclass User {\n\t\t\t\ttoJSON() { return 'jin' }\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_unique( [ $mol_key( new User ) ], [ $mol_key( new User ) ] )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Custom key handler'() {\n\t\t\t\n\t\t\tclass User {\n\t\t\t\tconstructor( public name: string, public age: number ) {}\n\t\t\t\t[ $mol_key_handle ]() { return `User(${ JSON.stringify( this.name ) })` }\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_key( [ new User( 'jin', 16 ) ] ),\n\t\t\t\t$mol_key( [ new User( 'jin', 18 ) ] ),\n\t\t\t\t'[User(\"jin\")]'\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t'Special native classes'() {\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_key( new Date( 'xyz' ) ), 'Date(NaN)' )\n\t\t\t$mol_assert_equal( $mol_key( new Date( 12345 ) ), 'Date(12345)' )\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_key( /./ ), '/./' )\n\t\t\t$mol_assert_equal( $mol_key( /\\./gimsu ), '/\\\\./gimsu' )\n\t\t\t\n\t\t},\n\t\t\n\t})\n}\n","namespace $ {\n\n\t$mol_test_mocks.push( $ => {\n\t\t$.$mol_after_timeout = $mol_after_mock_timeout as any as typeof $mol_after_timeout\n\t})\n\n}\n","namespace $ {\n\n\t$mol_test_mocks.push( $ => {\n\t\t$.$mol_after_frame = $mol_after_mock_commmon as any as typeof $mol_after_frame\n\t})\n\n}\n","namespace $ {\n\n\tdeclare function requestIdleCallback( task : ()=> void , options? : { timeout : number } ) : any\n\tdeclare function cancelIdleCallback( id : any ) : void\n\n\texport class $mol_after_work extends $mol_object2 {\n\n\t\tid : any\n\n\t\tconstructor(\n\t\t\tpublic delay : number ,\n\t\t\tpublic task : ()=> void ,\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis.id = requestIdleCallback( task , { timeout : delay } )\n\t\t}\n\n\t\tdestructor() {\n\t\t\tcancelIdleCallback( this.id )\n\t\t}\n\n\t}\n\t\n\tif( typeof requestIdleCallback !== 'function' ) {\n\t\t$.$mol_after_work = $mol_after_timeout\n\t}\n\t\n}\n","namespace $ {\n\n\t$mol_test_mocks.push( $ => {\n\t\t$.$mol_after_work = $mol_after_mock_timeout as any as typeof $mol_after_work\n\t})\n\n}\n","namespace $ {\n\t\n\texport function $mol_wait_rest_async( this: $ ) {\n\t\treturn new Promise( done => {\n\t\t\tnew this.$mol_after_work( 16 , ()=> done( null ) )\n\t\t} )\n\t}\n\t\n\texport function $mol_wait_rest( this: $ ) {\n\t\treturn this.$mol_wire_sync( this ).$mol_wait_rest_async()\n\t}\n\t\n}\n","namespace $.$$ {\n\t\n\t$mol_test_mocks.push( $ => {\n\t\t$.$mol_wait_timeout = function $mol_wait_timeout_mock( this: $, timeout: number ) { }\n\t\t$.$mol_wait_timeout_async = async function $mol_wait_timeout_async_mock( this: $, timeout: number ) {}\n\t} )\n\n}\n","namespace $.$$ {\n\t\n\t$mol_test_mocks.push( $ => {\n\t\t$.$mol_wait_rest = function $mol_wait_rest_mock( this: $ ) { }\n\t\t$.$mol_wait_rest_async = async function $mol_wait_rest_async_mock( this: $ ) {}\n\t} )\n\n}\n","namespace $ {\n\n\t$mol_test({\n\t\t'test types'( $ ) {\n\t\t\tclass A {\n\t\t\t\tstatic a() {\n\t\t\t\t\treturn ''\n\t\t\t\t}\n\t\t\t\tstatic b() {\n\t\t\t\t\treturn $mol_wire_async(this).a()\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttype Check = $mol_type_assert<ReturnType<typeof A['b']>, Promise<string>>\n\t\t},\n\t\t\n\t\tasync 'Latest method calls wins'( $ ) {\n\t\t\t\n\t\t\tclass NameLogger extends $mol_object2 {\n\t\t\t\t\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\tstatic first = [] as string[]\n\t\t\t\tstatic last = [] as string[]\n\t\t\t\t\n\t\t\t\tstatic send( next: string ) {\n\t\t\t\t\t$mol_wire_sync( this.first ).push( next )\n\t\t\t\t\t$$.$mol_wait_timeout(0)\n\t\t\t\t\tthis.last.push( next )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst name = $mol_wire_async( NameLogger ).send\n\t\t\t\n\t\t\tname( 'john' )\n\t\t\tconst promise = name( 'jin' )\n\t\t\t\n\t\t\t$.$mol_after_mock_warp()\n\t\t\tawait promise\n\t\t\t\n\t\t\t$mol_assert_equal( NameLogger.first, [ 'john', 'jin' ] )\n\t\t\t$mol_assert_equal( NameLogger.last, [ 'jin' ] )\n\n\t\t},\n\n\t\tasync 'Latest function calls wins'( $ ) {\n\t\t\t\n\t\t\tconst first = [] as string[]\n\t\t\tconst last = [] as string[]\n\t\t\t\n\t\t\tfunction send_name( next: string ) {\n\t\t\t\t$mol_wire_sync( first ).push( next )\n\t\t\t\t$$.$mol_wait_timeout(0)\n\t\t\t\tlast.push( next )\n\t\t\t}\n\t\t\t\n\t\t\tconst name = $mol_wire_async( send_name )\n\t\t\t\n\t\t\tname( 'john' )\n\t\t\tconst promise = name( 'jin' )\n\t\t\t\n\t\t\t$.$mol_after_mock_warp()\n\t\t\tawait promise\n\t\t\t\n\t\t\t$mol_assert_equal( first, [ 'john', 'jin' ] )\n\t\t\t$mol_assert_equal( last, [ 'jin' ] )\n\t\t\t\n\t\t},\n\n\t})\n\t\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#component-states\n\t\t'Cached channel' ($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic value( next = 1 ) {\n\t\t\t\t\treturn next + 1\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( App.value(), 2 )\n\n\t\t\tApp.value( 2 )\n\t\t\t$mol_assert_equal( App.value(), 3 )\n\n\t\t},\n\n\t\t'Read Pushed' ($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic value( next = 0 ) {\n\t\t\t\t\treturn next\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( App.value( 1 ), 1 )\n\t\t\t$mol_assert_equal( App.value(), 1 )\n\n\t\t},\n\n\t\t'Mem overrides mem' ($) {\n\n\t\t\tclass Base extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic value( next = 1 ) {\n\t\t\t\t\treturn next + 1\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tclass Middle extends Base {\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic value( next?: number ) {\n\t\t\t\t\treturn super.value( next ) + 1\n\t\t\t\t}\n\t\t\t\n\t\t\t}\n\t\t\t\t\n\t\t\tclass App extends Middle {\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic value( next?: number ) {\n\t\t\t\t\treturn super.value( next ) * 3\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( App.value(), 9 )\n\t\t\t\n\t\t\t$mol_assert_equal( App.value( 5 ), 21 )\n\t\t\t$mol_assert_equal( App.value(), 21 )\n\n\t\t},\n\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#wish-consistency\n\t\t'Auto recalculation of cached values'( $ ) {\n\t\t\t\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic xxx( next? : number ) {\n\t\t\t\t\treturn next || 1\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic yyy() {\n\t\t\t\t\treturn this.xxx() + 1\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic zzz() {\n\t\t\t\t\treturn this.yyy() + 1\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( App.yyy(), 2 )\n\t\t\t$mol_assert_equal( App.zzz(), 3 )\n\n\t\t\tApp.xxx( 5 )\n\t\t\t$mol_assert_equal( App.zzz(), 7 )\n\n\t\t},\n\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#wish-reasonability\n\t\t'Skip recalculation when actually no dependency changes'( $ ) {\n\t\t\t\n\t\t\tconst log = [] as string[]\n\t\t\t\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic xxx( next? : number ) {\n\t\t\t\t\tlog.push( 'xxx' )\n\t\t\t\t\treturn next || 1\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic yyy() {\n\t\t\t\t\tlog.push( 'yyy' )\n\t\t\t\t\treturn [ Math.sign( this.xxx() ) ]\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic zzz() {\n\t\t\t\t\tlog.push( 'zzz' )\n\t\t\t\t\treturn this.yyy()[0] + 1\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\tApp.zzz()\n\t\t\t$mol_assert_like( log, [ 'zzz', 'yyy', 'xxx' ] )\n\t\t\t\n\t\t\tApp.xxx( 5 )\n\t\t\t$mol_assert_like( log, [ 'zzz', 'yyy', 'xxx', 'xxx' ] )\n\t\t\t\n\t\t\tApp.zzz()\n\t\t\t$mol_assert_like( log, [ 'zzz', 'yyy', 'xxx', 'xxx', 'yyy' ] )\n\n\t\t},\n\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#flow-auto\n\t\t'Flow: Auto'( $ ) {\n\n\t\t\tclass App extends $mol_object2 {\n\t\t\t\t\n\t\t\t\tstatic get $() { return $ }\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic source( next = 1 ) { return next }\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic condition( next = true ) { return next }\n\t\t\t\t\n\t\t\t\tstatic counter = 0\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic result() {\n\t\t\t\t\tconst res = this.condition() ? this.source() : 0\n\t\t\t\t\treturn res + this.counter ++\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\n\t\t\t$mol_assert_equal( App.result() , 1 )\n\t\t\t$mol_assert_equal( App.counter , 1 )\n\t\t\t\n\t\t\tApp.source( 10 )\n\t\t\t$mol_assert_equal( App.result() , 11 )\n\t\t\t$mol_assert_equal( App.counter , 2 )\n\t\t\t\n\t\t\tApp.condition( false )\n\t\t\t$mol_assert_equal( App.result() , 2 )\n\t\t\t$mol_assert_equal( App.counter , 3 )\n\n\t\t\t$mol_wire_fiber.sync()\n\t\t\t$mol_assert_equal( App.source() , 1 )\n\t\t\t\n\t\t\tApp.source( 20 )\n\t\t\t$mol_assert_equal( App.result() , 2 )\n\t\t\t$mol_assert_equal( App.counter , 3 )\n\n\t\t\tApp.condition( true )\n\t\t\t$mol_assert_equal( App.result() , 23 )\n\t\t\t$mol_assert_equal( App.counter , 4 )\n\n\t\t} ,\n\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#dupes-equality\n\t\t'Dupes: Equality'( $ ) {\n\t\t\t\n\t\t\tlet counter = 0\n\t\t\t\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic foo( next? : { numbs: number[] } ) {\n\t\t\t\t\treturn next ?? { numbs: [ 1 ] }\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic bar() {\n\t\t\t\t\treturn { ... this.foo(), count: ++ counter }\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_like( App.bar(), { numbs: [ 1 ], count: 1 } )\n\n\t\t\tApp.foo({ numbs: [ 1 ] })\n\t\t\t$mol_assert_like( App.bar(), { numbs: [ 1 ], count: 1 } )\n\t\t\t\n\t\t\tApp.foo({ numbs: [ 2 ] })\n\t\t\t$mol_assert_like( App.bar(), { numbs: [ 2 ], count: 2 } )\n\n\t\t},\n\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#cycle-fail\n\t\t'Cycle: Fail'( $ ) {\n\t\t\n\t\t\tclass App extends $mol_object2 {\n\t\t\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic foo() : number {\n\t\t\t\t\treturn this.bar() + 1\n\t\t\t\t}\n\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic bar() : number {\n\t\t\t\t\treturn this.foo() + 1\n\t\t\t\t}\n\t\t\n\t\t\t\t@ $mol_wire_method\n\t\t\t\tstatic test() {\n\t\t\t\t\t$mol_assert_fail( ()=> App.foo(), 'Circular subscription' )\n\t\t\t\t}\t\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tApp.test()\n\t\t} ,\n\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#wish-stability\n\t\t// 'Update deps on push'( $ ) {\n\t\t\n\t\t// \tclass App extends $mol_object2 {\n\t\t\n\t\t// \t\tstatic $ = $\n\t\t\t\t\n\t\t// \t\t@ $mol_wire_solo\n\t\t// \t\tstatic left( next = false ) {\n\t\t// \t\t\treturn next\n\t\t// \t\t}\n\t\t\n\t\t// \t\t@ $mol_wire_solo\n\t\t// \t\tstatic right( next = false ) {\n\t\t// \t\t\treturn next\n\t\t// \t\t}\n\t\t\n\t\t// \t\t@ $mol_wire_solo\n\t\t// \t\tstatic res( next?: boolean ) {\n\t\t// \t\t\treturn this.left( next ) && this.right()\n\t\t// \t\t}\n\t\t\n\t\t// \t}\n\t\t\t\n\t\t// \t$mol_assert_equal( App.res(), false )\n\t\t// \t$mol_assert_equal( App.res( true ), false )\n\t\t\t\n\t\t// \t$mol_assert_equal( App.right( true ), true )\n\t\t// \t$mol_assert_equal( App.res(), true )\n\t\t\t\n\t\t// } ,\n\t\t\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#wish-stability\n\t\t'Different order of pull and push'( $ ) {\n\t\t\n\t\t\tclass App extends $mol_object2 {\n\t\t\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic store( next = 0 ) {\n\t\t\t\t\treturn next\n\t\t\t\t}\n\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic fast( next?: number ) {\n\t\t\t\t\treturn this.store( next )\n\t\t\t\t}\n\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic slow( next?: number ) {\n\t\t\t\t\tif( next !== undefined ) this.slow() // enforce pull before push\n\t\t\t\t\treturn this.store( next )\n\t\t\t\t}\n\t\t\n\t\t\t}\n\t\t\t\n\t\t\tApp.fast()\n\t\t\t$mol_assert_equal( App.slow( 666 ), 666 )\n\t\t\t$mol_assert_equal( App.fast(), App.slow(), 666 )\n\t\t\t\n\t\t\tApp.store( 777 )\n\t\t\t$mol_assert_equal( App.fast(), App.slow(), 777 )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#wish-stability\n\t\t'Actions inside invariant'( $ ) {\n\t\t\n\t\t\tclass App extends $mol_object2 {\n\t\t\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic count( next = 0 ) {\n\t\t\t\t\treturn next\n\t\t\t\t}\n\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic count2() {\n\t\t\t\t\treturn this.count()\n\t\t\t\t}\n\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic res() {\n\t\t\t\t\tconst count = this.count2()\n\t\t\t\t\tif( !count ) this.count( count + 1 )\n\t\t\t\t\treturn count + 1\n\t\t\t\t}\n\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_like( App.res(), 1 )\n\t\t\t\n\t\t\tApp.count( 5 )\n\t\t\t$mol_assert_like( App.res(), 6 )\n\n\t\t} ,\n\t\t\n\t\tasync 'Toggle with async'( $ ) {\n\t\t\n\t\t\tclass App extends $mol_object2 {\n\t\t\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic checked( next = false ) {\n\t\t\t\t\t$$.$mol_wait_timeout(0)\n\t\t\t\t\treturn next\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_wire_method\n\t\t\t\tstatic toggle() {\n\t\t\t\t\tconst prev = this.checked()\n\t\t\t\t\t$mol_assert_unique( this.checked( !prev ), prev )\n\t\t\t\t\t// $mol_assert_equal( this.checked() , prev )\n\t\t\t\t}\n\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic res() {\n\t\t\t\t\treturn this.checked()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_wire_method\n\t\t\t\tstatic test() {\n\t\t\t\t\t\n\t\t\t\t\t$mol_assert_equal( App.res(), false )\n\t\t\t\t\t\n\t\t\t\t\tApp.toggle()\n\t\t\t\t\t$mol_assert_equal( App.res(), true )\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\n\t\t\t}\n\t\t\t\n\t\t\tawait $mol_wire_async( App ).test()\n\t\t\t\n\t\t} ,\n\n\t\t// // https://github.com/nin-jin/slides/tree/master/reactivity#wish-stability\n\t\t// 'Stable order of multiple root'( $ ) {\n\t\t\n\t\t// \tclass App extends $mol_object2 {\n\t\t\n\t\t// \t\tstatic $ = $\n\t\t\t\t\n\t\t// \t\tstatic counter = 0\n\t\t\t\t\n\t\t// \t\t@ $mol_wire_solo\n\t\t// \t\tstatic left_trigger( next = 0 ) {\n\t\t// \t\t\treturn next\n\t\t// \t\t}\n\t\t\n\t\t// \t\t@ $mol_wire_solo\n\t\t// \t\tstatic left_root() {\n\t\t// \t\t\tthis.left_trigger()\n\t\t// \t\t\treturn ++ this.counter\n\t\t// \t\t}\n\t\t\t\t\n\t\t// \t\t@ $mol_wire_solo\n\t\t// \t\tstatic right_trigger( next = 0 ) {\n\t\t// \t\t\treturn next\n\t\t// \t\t}\n\t\t\t\t\n\t\t// \t\t@ $mol_wire_solo\n\t\t// \t\tstatic right_root() {\n\t\t// \t\t\tthis.right_trigger()\n\t\t// \t\t\treturn ++ this.counter\n\t\t// \t\t}\n\t\t\n\t\t// \t}\n\t\t\t\n\t\t// \t$mol_assert_equal( App.left_root(), 1 )\n\t\t// \t$mol_assert_equal( App.right_root(), 2 )\n\t\t\t\n\t\t// \tApp.right_trigger( 1 )\n\t\t// \tApp.left_trigger( 1 )\n\t\t\t\n\t\t// \t$mol_wire_fiber.sync()\n\t\t\t\n\t\t// \t$mol_assert_equal( App.right_root(), 4 )\n\t\t// \t$mol_assert_equal( App.left_root(), 3 )\n\n\t\t// } ,\n\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#error-store\n\t\t'Restore after error'( $ ) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic get $() { return $ }\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic condition( next = false ) { return next }\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic broken() {\n\t\t\t\t\t\n\t\t\t\t\tif( this.condition() ) {\n\t\t\t\t\t\t$mol_fail( new Error( 'test error' ) )\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\treturn 1\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic result() {\n\t\t\t\t\treturn this.broken()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\n\t\t\t$mol_assert_equal( App.result() , 1 )\n\t\t\t\n\t\t\tApp.condition( true )\n\t\t\t$mol_assert_fail( ()=> App.result(), 'test error' )\n\t\t\t\n\t\t\tApp.condition( false )\n\t\t\t$mol_assert_equal( App.result() , 1 )\n\n\t\t} ,\n\t\n\t\tasync 'Wait for data'($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\tstatic async source() {\n\t\t\t\t\treturn 'Jin'\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic middle() {\n\t\t\t\t\treturn $mol_wire_sync( this ).source()\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic target() {\n\t\t\t\t\treturn this.middle()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_wire_method\n\t\t\t\tstatic test() {\n\t\t\t\t\t$mol_assert_equal( App.target() , 'Jin' )\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tawait $mol_wire_async( App ).test()\n\t\t},\n\n\t\t'Auto destroy on long alone'( $ ) {\n\n\t\t\tlet destroyed = false\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic showing( next = true ) {\n\t\t\t\t\treturn next\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic details() {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdestructor() {\n\t\t\t\t\t\t\tdestroyed = true\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic render() {\n\t\t\t\t\treturn this.showing() ? this.details() : null\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst details = App.render()\n\t\t\t$mol_assert_ok( details )\n\n\t\t\tApp.showing( false )\n\t\t\t$mol_assert_not( App.render() )\n\t\t\t\n\t\t\tApp.showing( true )\n\t\t\t$mol_assert_equal( App.render() , details )\n\t\t\t\n\t\t\t$mol_wire_fiber.sync()\n\t\t\t$mol_assert_not( destroyed )\n\t\t\t\n\t\t\tApp.showing( false )\n\t\t\t$mol_wire_fiber.sync()\n\t\t\t$mol_assert_ok( destroyed )\n\n\t\t\tApp.showing( true )\n\t\t\t$mol_assert_unique( App.render() , details )\n\t\t\t\n\t\t},\n\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#wish-stability\n\t\tasync 'Hold pubs while wait async task'($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\tstatic counter = 0\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic resets( next?: null ): number {\n\t\t\t\t\treturn ( $mol_wire_probe( ()=> this.resets() ) ?? -1 ) + 1\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstatic async wait() { }\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic value() {\n\t\t\t\t\treturn ++ this.counter\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic result() {\n\t\t\t\t\tif( this.resets() ) $mol_wire_sync( this ).wait()\n\t\t\t\t\treturn this.value()\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( App.result() , 1 )\n\t\t\t\n\t\t\tApp.resets( null )\n\t\t\t$mol_wire_fiber.sync()\n\t\t\t$mol_assert_equal( await $mol_wire_async( App ).result() , 1 )\n\t\t\t\n\t\t},\n\n\t\tasync 'Restart awaited task when pub changed'( $ ) {\n\n\t\t\tconst loads = [] as number[]\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic param( next = 0 ) { return next }\n\n\t\t\t\t/** Snapshots param without subscription, like a request url. */\n\t\t\t\tstatic async load() {\n\t\t\t\t\tconst param = $mol_wire_probe( ()=> this.param() ) ?? 0\n\t\t\t\t\tloads.push( param )\n\t\t\t\t\treturn param\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic data(): number {\n\t\t\t\t\tthis.param()\n\t\t\t\t\treturn $mol_wire_sync( this ).load()\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst wait = $mol_wire_async( App ).data()\n\t\t\tApp.param( 1 )\n\n\t\t\t$mol_assert_equal( await $mol_wire_async( App ).data(), 1 )\n\t\t\t$mol_assert_like( loads, [ 0, 1 ] )\n\n\t\t\tawait wait.catch( ()=> {} )\n\n\t\t} ,\n\n\t\t'Pub outdated by side effect of own check'( $ ) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic trigger( next = 0 ) { return next }\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic source( next = 0 ) { return next }\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic data() { return this.source() }\n\n\t\t\t\t/** Pushes to `source` without changing own value. */\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic writer() {\n\t\t\t\t\tthis.source( this.trigger() )\n\t\t\t\t\treturn null\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic view() {\n\t\t\t\t\tconst data = this.data()\n\t\t\t\t\tthis.writer()\n\t\t\t\t\treturn data\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t$mol_assert_equal( App.view(), 0 )\n\n\t\t\tApp.trigger( 1 )\n\t\t\t$mol_assert_equal( App.view(), 1 )\n\n\t\t} ,\n\n\t\t/**\n\t\t * Like $giper_baza_land.diff_apply destroyed mid-flight: Cursor goes\n\t\t * non-tracking while auto still points at the temp → mem read uses\n\t\t * once() → task_get → Promo; outer track_cut → Cut. Also leaks auto\n\t\t * so later ws onclose / $mol_state_time hit Promo again.\n\t\t */\n\t\t'Destroy running action does not Promo or Cut'( $ ) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic flag( next = 0 ) { return next }\n\n\t\t\t\t@ $mol_wire_method\n\t\t\t\tstatic work() {\n\t\t\t\t\tconst fiber = $mol_wire_auto()!\n\t\t\t\t\tfiber.destructor()\n\t\t\t\t\t// channel() → once() while auto was this temp\n\t\t\t\t\treturn this.flag()\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic view() {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tthis.work()\n\t\t\t\t\t\treturn 'ok'\n\t\t\t\t\t} catch( error: any ) {\n\t\t\t\t\t\treturn error?.message ?? String( error )\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t$mol_assert_equal( App.view(), 'ok' )\n\t\t\t// auto must not stay as the dead temp (would Promo on once/task_get)\n\t\t\t$mol_assert_equal( App.flag( 1 ), 1 )\n\n\t\t} ,\n\n\t\t'Mutually writing pubs settle their sub'( $ ) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\n\t\t\t\tstatic runs = { left: 0, right: 0 }\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic left_value( next = 0 ) { return next }\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic right_value( next = 0 ) { return next }\n\n\t\t\t\t/** Pushes a new value to the pub of `right` on every run. */\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic left() {\n\t\t\t\t\tthis.right_value( ++ this.runs.left )\n\t\t\t\t\treturn this.left_value() > 1e9 ? 1 : 0\n\t\t\t\t}\n\n\t\t\t\t/** Pushes a new value to the pub of `left` on every run. */\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic right() {\n\t\t\t\t\tthis.left_value( ++ this.runs.right )\n\t\t\t\t\treturn this.right_value() > 1e9 ? 1 : 0\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic view() {\n\t\t\t\t\treturn this.left() + this.right()\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t$mol_assert_equal( App.view(), 0 )\n\n\t\t\tconst settled = { ... App.runs }\n\n\t\t\tfor( let i = 0; i < 10; ++ i ) $mol_assert_equal( App.view(), 0 )\n\n\t\t\t$mol_assert_like( App.runs, settled )\n\n\t\t} ,\n\n\t\t'Owned value has js-path name' () {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic title() {\n\t\t\t\t\treturn new $mol_object2\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t$mol_assert_equal( `${ App.title() }` , 'App.title<>' )\n\n\t\t} ,\n\n\t\t'Unsubscribe from temp pubs on complete' ($) {\n\n\t\t\tclass Random extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\n\t\t\t\t@ $mol_wire_method\n\t\t\t\tstatic seed() {\n\t\t\t\t\treturn Math.random()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic resets( next?: null ) {\n\t\t\t\t\treturn Math.random()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic value() {\n\t\t\t\t\tthis.resets()\n\t\t\t\t\treturn this.seed()\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\tconst first = Random.value()\n\t\t\t\n\t\t\tRandom.resets( null )\n\t\t\t$mol_assert_unique( Random.value(), first )\n\n\t\t} ,\n\n\t})\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\tasync 'Error caching' ($) {\n\t\t\tconst next_cached = 123\n\n\t\t\tclass Some extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\n\t\t\t\t@ $mol_wire_plex\n\t\t\t\tstatic data( id: string, next?: unknown): unknown {\n\t\t\t\t\tif (next) return next as never\n\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t$mol_wire_async(this).data(id, next_cached)\n\t\t\t\t\t}, 10)\n\n\t\t\t\t\t$mol_fail_hidden(new Promise(() => {}))\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_method\n\t\t\t\tstatic run() {\n\t\t\t\t\treturn this.data('1')\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst val = await $mol_wire_async(Some).run()\n\t\t\t$mol_assert_equal(val, next_cached)\n\t\t} ,\n\n\t\t'Memoize by single simple key' ($) {\n\n\t\t\tclass Team extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\n\t\t\t\t@ $mol_wire_plex\n\t\t\t\tstatic user_name( user: string , next?: string ) {\n\t\t\t\t\treturn next ?? user\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic user_names() {\n\t\t\t\t\treturn [\n\t\t\t\t\t\tthis.user_name( 'jin' ),\n\t\t\t\t\t\tthis.user_name( 'john' ),\n\t\t\t\t\t]\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_like( Team.user_names(), [ 'jin', 'john' ] )\n\t\t\t\n\t\t\tTeam.user_name( 'jin', 'JIN' )\n\t\t\t$mol_assert_like( Team.user_names(), [ 'JIN', 'john' ] )\n\n\t\t} ,\n\n\t\t'Memoize by single complex key' ($) {\n\n\t\t\tclass Map extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\n\t\t\t\t@ $mol_wire_plex\n\t\t\t\tstatic tile( pos: [ number, number ] ) {\n\t\t\t\t\treturn new String( `/tile=${pos}` )\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_method\n\t\t\t\tstatic test() {\n\t\t\t\t\t\n\t\t\t\t\t$mol_assert_like( this.tile([0,1]), new String( '/tile=0,1' ) )\n\t\t\t\t\t$mol_assert_equal( this.tile([0,1]), this.tile([0,1]) )\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\n\t\t\tMap.test()\n\t\t} ,\n\n\t\t'Owned value has js-path name' () {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\t@ $mol_wire_plex\n\t\t\t\tstatic like( friend: number ) {\n\t\t\t\t\treturn new $mol_object2\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_plex\n\t\t\t\tstatic relation( [ friend, props ]: [ number, [ number ] ] ) {\n\t\t\t\t\treturn new $mol_object2\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t$mol_assert_equal( `${ App.like(123) }` , 'App.like<123>' )\n\t\t\t$mol_assert_equal( `${ App.relation([123,[456]]) }` , 'App.relation<[123,[456]]>' )\n\n\t\t} ,\n\n\t\t'Deep deps' ($) {\n\n\t\t\tclass Fib extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\tstatic sums = 0\n\n\t\t\t\t@ $mol_wire_plex\n\t\t\t\tstatic value( index: number , next?: number ): number {\n\t\t\t\t\tif( next ) return next\n\t\t\t\t\tif( index < 2 ) return 1\n\t\t\t\t\t++ this.sums\n\t\t\t\t\treturn this.value( index - 1 ) + this.value( index - 2 )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( Fib.value( 4 ), 5 )\n\t\t\t$mol_assert_equal( Fib.sums, 3 )\n\t\t\t\n\t\t\tFib.value( 1, 2 )\n\t\t\t$mol_assert_equal( Fib.value( 4 ), 8 )\n\t\t\t$mol_assert_equal( Fib.sums, 6 )\n\n\t\t} ,\n\n\t})\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'Previous value'() {\n\n\t\t\tclass Cache extends $mol_object2 {\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic store( next?: Record< string, number > ): typeof next {\n\t\t\t\t\tif( !next ) return {}\n\t\t\t\t\treturn {\n\t\t\t\t\t\t... $mol_wire_probe( ()=> this.store() ) ?? {},\n\t\t\t\t\t\t... next,\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_like( Cache.store(), {} )\n\t\t\t\n\t\t\t$mol_assert_like( Cache.store({ foo: 666 }), { foo: 666 } )\n\t\t\t$mol_assert_like( Cache.store({ bar: 777 }), { foo: 666, bar: 777 } )\n\n\t\t} ,\n\t\t\n\t})\n}\n","namespace $ {\n\texport function $mol_base64_encode(src: Uint8Array< ArrayBuffer >): string {\n\t\treturn (src as unknown as { toBase64(): string }).toBase64()\n}\n}\n","namespace $ {\n\t\n\tlet buf = new Uint8Array( 2**12 ) // 4KB Mem Page\n\t\n\t/** Temporary buffer. Recursive usage isn't supported. */\n\texport function $mol_charset_buffer( size: number ) {\n\t\tif( buf.byteLength < size ) buf = new Uint8Array( size )\n\t\treturn buf\n\t}\n\t\n}\n","namespace $ {\n\n\texport function $mol_charset_encode( str: string ) {\n\t\tconst buf = $mol_charset_buffer( str.length * 3 )\n\t\treturn buf.slice( 0, $mol_charset_encode_to( str, buf ) )\n\t}\n\n\texport function $mol_charset_encode_to( str: string, buf: Uint8Array< ArrayBuffer >, from = 0 ) {\n\n\t\tlet pos = from\n\n\t\tfor( let i = 0; i < str.length; i++ ) {\n\t\t\t\n\t\t\tlet code = str.charCodeAt( i )\n\t\t\t\n\t\t\tif( code < 0x80 ) { // ASCII - 1 octet\n\t\t\t\t\n\t\t\t\tbuf[ pos ++ ] = code\n\t\t\t\t\n\t\t\t} else if( code < 0x800 ) { // 2 octet\n\t\t\t\t\n\t\t\t\tbuf[ pos ++ ] = 0xc0 | ( code >> 6 )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( code & 0x3f )\n\t\t\t\t\n\t\t\t} else if( code < 0xd800 || code >= 0xe000 ) { // 3 octet\n\t\t\t\t\n\t\t\t\tbuf[ pos ++ ] = 0xe0 | ( code >> 12 )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( ( code >> 6 ) & 0x3f )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( code & 0x3f )\n\t\t\t\t\n\t\t\t} else { // surrogate pair\n\t\t\t\t\n\t\t\t\tconst point = ( ( code - 0xd800 ) << 10 ) + str.charCodeAt( ++ i ) + 0x2400\n\t\t\t\t\n\t\t\t\tbuf[ pos ++ ] = 0xf0 | ( point >> 18 )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( ( point >> 12 ) & 0x3f )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( ( point >> 6 ) & 0x3f )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( point & 0x3f )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\treturn pos - from\n\t}\n\n\texport function $mol_charset_encode_size( str: string ) {\n\n\t\tlet size = 0\n\n\t\tfor( let i = 0; i < str.length; i++ ) {\n\t\t\t\n\t\t\tlet code = str.charCodeAt( i )\n\t\t\t\n\t\t\tif( code < 0x80 ) size += 1\n\t\t\telse if( code < 0x800 ) size += 2\n\t\t\telse if( code < 0xd800 || code >= 0xe000 ) size += 3\n\t\t\telse size += 4\n\t\t\t\n\t\t}\n\n\t\treturn size\n\t}\n\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'encode empty'() {\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_charset_encode( '' ),\n\t\t\t\tnew Uint8Array( [] ),\n\t\t\t)\n\t\t},\n\t\t\n\t\t'encode 1 octet'() {\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_charset_encode( 'F' ),\n\t\t\t\tnew Uint8Array([ 0x46 ]),\n\t\t\t)\n\t\t},\n\t\t\n\t\t'encode 2 octet'() {\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_charset_encode( 'Б' ),\n\t\t\t\tnew Uint8Array([ 0xd0, 0x91 ]),\n\t\t\t)\n\t\t},\n\t\t\n\t\t'encode 3 octet'() {\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_charset_encode( 'ह' ),\n\t\t\t\tnew Uint8Array([ 0xe0, 0xa4, 0xb9 ]),\n\t\t\t)\n\t\t},\n\t\t\n\t\t'encode 4 octet'() {\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_charset_encode( '𐍈' ),\n\t\t\t\tnew Uint8Array([ 0xf0, 0x90, 0x8d, 0x88 ]),\n\t\t\t)\n\t\t},\n\t\t\n\t\t'encode surrogate pair'() {\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_charset_encode( '😀' ),\n\t\t\t\tnew Uint8Array([ 0xf0, 0x9f, 0x98, 0x80 ]),\n\t\t\t)\n\t\t},\n\t\t\n\t})\n}\n","namespace $ {\n\n\texport function $mol_base64_encode_node(str: Uint8Array< ArrayBuffer >): string {\n\t\tif (! str) return ''\n\n\t\tconst buf = Buffer.isBuffer(str) ? str : Buffer.from(str)\n\n\t\treturn buf.toString('base64')\n\t}\n\n\tif ( ! ( 'toBase64' in Uint8Array.prototype ) ) {\n\t\t$.$mol_base64_encode = $mol_base64_encode_node\n\t}\n}\n","namespace $ {\n\tconst png = new Uint8Array([ 0x1a, 0x0a, 0x00, 0x49, 0x48, 0x78, 0xda ])\n\n\t$mol_test({\n\t\t'base64 encode string'() {\n\t\t\t$mol_assert_equal($mol_base64_encode($mol_charset_encode('Hello, ΧΨΩЫ')), 'SGVsbG8sIM6nzqjOqdCr')\n\t\t},\n\n\t\t'base64 encode binary'() {\n\t\t\t$mol_assert_equal($mol_base64_encode(png), 'GgoASUh42g==')\n\t\t},\n\n\t\t'base64 encode string with plus'() {\n\t\t\t$mol_assert_equal($mol_base64_encode($mol_charset_encode('шоешпо')), '0YjQvtC10YjQv9C+')\n\t\t},\n\t})\n}\n","namespace $ {\n\texport function $mol_base64_decode(base64: string): Uint8Array< ArrayBuffer > {\n\t\treturn (Uint8Array as unknown as {\n\t\t\tfromBase64(str: string): Uint8Array<ArrayBuffer>\n\t\t}).fromBase64(base64)\n\t}\n}\n","namespace $ {\n\texport function $mol_base64_decode_node(base64Str: string): Uint8Array< ArrayBuffer > {\n\n\t\t// without Uint8Array breaks $mol_compare_deep\n\t\tconst buffer = Buffer.from(base64Str, 'base64')\n\n\t\treturn new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength)\n\t}\n\n\tif ( ! ( 'fromBase64' in Uint8Array ) ) {\n\t\t$.$mol_base64_decode = $mol_base64_decode_node\n\t}\n}\n","namespace $ {\n\tconst png = new Uint8Array([ 0x1a, 0x0a, 0x00, 0x49, 0x48, 0x78, 0xda ])\n\n\tconst with_plus = new TextEncoder().encode('шоешпо')\n\n\t$mol_test({\n\t\t'base64 decode string'() {\n\t\t\t$mol_assert_equal($mol_base64_decode('SGVsbG8sIM6nzqjOqdCr'), new TextEncoder().encode('Hello, ΧΨΩЫ'))\n\t\t},\n\n\t\t'base64 decode binary'() {\n\t\t\t$mol_assert_equal($mol_base64_decode('GgoASUh42g=='), png)\n\t\t},\n\n\t\t'base64 decode binary - without equals'() {\n\t\t\t$mol_assert_equal($mol_base64_decode('GgoASUh42g'), png)\n\t\t},\n\n\t\t'base64 decode with plus'() {\n\t\t\t$mol_assert_equal($mol_base64_decode('0YjQvtC10YjQv9C+'), with_plus)\n\t\t},\n\t})\n}\n","namespace $ {\n\t\n\texport function $mol_base64_ae_encode( buffer: Uint8Array< ArrayBuffer > ) {\n\t\treturn $mol_base64_encode( buffer ).replace( /\\+/g, 'æ' ).replace( /\\//g, 'Æ' ).replace(/=/g,'')\n\t}\n\t\n\texport function $mol_base64_ae_decode( str: string ) {\n\t\treturn $mol_base64_decode( str.replace( /æ/g, '+' ).replace( /Æ/g, '/' ) )\n\t}\n\t\n}\n","namespace $ {\n\texport var $mol_crypto_native = $node.crypto.webcrypto as any as Crypto\n}\n","namespace $ {\n\t\n\tlet sponge = new Uint32Array(80)\n\t\n\t/** Fast small sync SHA-1 (20 bytes, 160 bits) */\n\texport function $mol_crypto2_hash( input: ArrayBufferView ) {\n\t\t\n\t\tconst data = input instanceof Uint8Array\n\t\t\t? input\n\t\t\t: new Uint8Array( input.buffer, input.byteOffset, input.byteLength )\n\t\t\n\t\tconst bits = data.byteLength << 3\n\t\tconst kbits = bits >> 5\n\t\tconst kword = 0x80 << ( 24 - bits & 0b11111 )\n\t\t\n\t\tconst bytes = 16 + ( ( bits + 64 ) >>> 9 << 4 )\n\t\tconst klens = bytes - 1\n\t\tconst wlen = data.byteLength >> 2 << 2\n\t\t\n\t\tlet tail = 0\n\t\tfor( let i = wlen; i < data.length; ++i ) {\n\t\t\ttail |= data[i] << ( ( 3 - i & 0b11 ) << 3 )\n\t\t}\n\t\t\n\t\t// Initial\n\t\tconst hash = new Int32Array([ 1732584193, -271733879, -1732584194, 271733878, -1009589776 ])\n\t\t\n\t\t// Digest\n\t\tfor( let i = 0; i < bytes; i += 16 ) {\n\t\t\t\n\t\t\tlet h0 = hash[0]\n\t\t\tlet h1 = hash[1]\n\t\t\tlet h2 = hash[2]\n\t\t\tlet h3 = hash[3]\n\t\t\tlet h4 = hash[4]\n\n\t\t\tfor( let j = 0; j < 16; ++j ) {\n\t\t\t\t\n\t\t\t\tconst k = i + j\n\t\t\t\tif( k === klens ) {\n\t\t\t\t\t\n\t\t\t\t\tsponge[j] = bits\n\t\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\t\n\t\t\t\t\tconst pos = k << 2\n\t\t\t\t\tlet word =\n\t\t\t\t\t\tpos === wlen ? tail :\n\t\t\t\t\t\tpos > wlen ? 0 :\n\t\t\t\t\t\t( data[pos] << 24 | data[pos+1] << 16 | data[pos+2] << 8 | data[pos+3] )\n\t\t\t\t\t\n\t\t\t\t\tif( k === kbits ) word |= kword\n\t\t\t\t\t\n\t\t\t\t\tsponge[j] = word\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst next = ( ( h1 & h2 | ~h1 & h3 ) + 1518500249 + h4 + ( sponge[j] >>> 0 ) + (( h0 << 5 )|( h0 >>> 27 )) )|0\n\n\t\t\t\th4 = h3\n\t\t\t\th3 = h2\n\t\t\t\th2 = ( h1 << 30 )|( h1 >>> 2 )\n\t\t\t\th1 = h0\n\t\t\t\th0 = next\n\t\t\t\t\n\t\t\t}\n\n\t\t\tfor( let j = 16; j < 20; ++j ) {\n\t\t\t\t\n\t\t\t\tconst shuffle = sponge[j-3] ^ sponge[j-8] ^ sponge[j-14] ^ sponge[j-16]\n\t\t\t\tsponge[j] = shuffle << 1 | shuffle >>> 31\n\t\t\t\t\n\t\t\t\tconst next = ( ( h1 & h2 | ~h1 & h3 ) + 1518500249 + h4 + ( sponge[j] >>> 0 ) + (( h0 << 5 )|( h0 >>> 27 )) )|0\n\n\t\t\t\th4 = h3\n\t\t\t\th3 = h2\n\t\t\t\th2 = ( h1 << 30 )|( h1 >>> 2 )\n\t\t\t\th1 = h0\n\t\t\t\th0 = next\n\t\t\t\t\n\t\t\t}\n\n\t\t\tfor( let j = 20; j < 40; ++j ) {\n\t\t\t\t\n\t\t\t\tconst shuffle = sponge[j-3] ^ sponge[j-8] ^ sponge[j-14] ^ sponge[j-16]\n\t\t\t\tsponge[j] = shuffle << 1 | shuffle >>> 31\n\t\t\t\t\n\t\t\t\tconst next = ( ( h1 ^ h2 ^ h3 ) + 1859775393 + h4 + ( sponge[j] >>> 0 ) + (( h0 << 5 )|( h0 >>> 27 )) )|0\n\n\t\t\t\th4 = h3\n\t\t\t\th3 = h2\n\t\t\t\th2 = ( h1 << 30 )|( h1 >>> 2 )\n\t\t\t\th1 = h0\n\t\t\t\th0 = next\n\t\t\t\t\n\t\t\t}\n\n\t\t\tfor( let j = 40; j < 60; ++j ) {\n\t\t\t\t\n\t\t\t\tconst shuffle = sponge[j-3] ^ sponge[j-8] ^ sponge[j-14] ^ sponge[j-16]\n\t\t\t\tsponge[j] = shuffle << 1 | shuffle >>> 31\n\t\t\t\t\n\t\t\t\tconst next = ( ( h1 & h2 | h1 & h3 | h2 & h3 ) - 1894007588 + h4 + ( sponge[j] >>> 0 ) + (( h0 << 5 )|( h0 >>> 27 )) )|0\n\n\t\t\t\th4 = h3\n\t\t\t\th3 = h2\n\t\t\t\th2 = ( h1 << 30 )|( h1 >>> 2 )\n\t\t\t\th1 = h0\n\t\t\t\th0 = next\n\t\t\t\t\n\t\t\t}\n\n\t\t\tfor( let j = 60; j < 80; ++j ) {\n\t\t\t\t\n\t\t\t\tconst shuffle = sponge[j-3] ^ sponge[j-8] ^ sponge[j-14] ^ sponge[j-16]\n\t\t\t\tsponge[j] = shuffle << 1 | shuffle >>> 31\n\t\t\t\t\n\t\t\t\tconst next = ( ( h1 ^ h2 ^ h3 ) - 899497514 + h4 + ( sponge[j] >>> 0 ) + (( h0 << 5 )|( h0 >>> 27 )) )|0\n\n\t\t\t\th4 = h3\n\t\t\t\th3 = h2\n\t\t\t\th2 = ( h1 << 30 )|( h1 >>> 2 )\n\t\t\t\th1 = h0\n\t\t\t\th0 = next\n\t\t\t\t\n\t\t\t}\n\n\t\t\thash[0] += h0\n\t\t\thash[1] += h1\n\t\t\thash[2] += h2\n\t\t\thash[3] += h3\n\t\t\thash[4] += h4\n\t\t\t\n\t\t}\n\t\t\n\t\tfor( let i = 0; i < 20; ++i ) {\n\t\t\tconst word = hash[i]\n\t\t\thash[i] = word << 24 | word << 8 & 0xFF0000 | word >>> 8 & 0xFF00 | word >>> 24 & 0xFF // BE -> LE\n\t\t}\n\n\t\treturn new Uint8Array( hash.buffer )\n\t}\n\t\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'empty hash'() {\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_crypto2_hash( new Uint8Array([]) ),\n\t\t\t\tnew Uint8Array([ 218, 57, 163, 238, 94, 107, 75, 13, 50, 85, 191, 239, 149, 96, 24, 144, 175, 216, 7, 9 ]),\n\t\t\t)\n\t\t},\n\t\t\n\t\t'three bytes hash'() {\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_crypto2_hash( new Uint8Array([ 255, 254, 253 ]) ),\n\t\t\t\tnew Uint8Array([ 240, 150, 38, 243, 255, 128, 96, 0, 72, 215, 207, 228, 19, 149, 113, 52, 2, 125, 27, 77 ]),\n\t\t\t)\n\t\t},\n\t\t\n\t\t'six bytes hash'() {\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_crypto2_hash( new Uint8Array([ 0, 255, 10, 250, 32, 128 ]) ),\n\t\t\t\tnew Uint8Array([ 23, 25, 155, 181, 46, 200, 221, 83, 254, 0, 166, 68, 91, 255, 67, 140, 114, 88, 218, 155 ]),\n\t\t\t)\n\t\t},\n\t\t\n\t\t'seven bytes hash'() {\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_crypto2_hash( new Uint8Array([ 1, 2, 3, 4, 5, 6, 7 ]) ),\n\t\t\t\tnew Uint8Array([ 140, 31, 40, 252, 47, 72, 194, 113, 214, 196, 152, 240, 242, 73, 205, 222, 54, 92, 84, 197 ]),\n\t\t\t)\n\t\t},\n\t\t\n\t\t'unaligned hash'() {\n\t\t\tconst data = new Uint8Array([ 0, 1, 2, 3, 4, 5, 6, 7 ])\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_crypto2_hash( new Uint8Array( data.buffer, 1, 7 ) ),\n\t\t\t\tnew Uint8Array([ 140, 31, 40, 252, 47, 72, 194, 113, 214, 196, 152, 240, 242, 73, 205, 222, 54, 92, 84, 197 ]),\n\t\t\t)\n\t\t},\n\t\t\n\t\tasync 'reference'() {\n\t\t\tconst data = new Uint8Array([255,254,253])\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_crypto2_hash(data),\n\t\t\t\tnew Uint8Array( await $mol_crypto_native.subtle.digest( 'SHA-1', data ) ),\n\t\t\t)\n\t\t},\n\t\t\n\t})\n}\n","namespace $ {\n\texport class $mol_buffer extends DataView< ArrayBuffer > {\n\t\t\n\t\t[ Symbol.toStringTag ] = this.constructor.name + '<>'\n\t\t\n\t\tstatic from<\n\t\t\tThis extends typeof $mol_buffer\n\t\t>(\n\t\t\tthis: This,\n\t\t\tarray: number | string | ArrayBufferView< ArrayBuffer > | ArrayBuffer,\n\t\t) {\n\t\t\tif( typeof array === 'number' ) array = new Uint8Array( array )\n\t\t\tif( typeof array === 'string' ) array = $mol_base64_ae_decode( array )\n\t\t\tif( !ArrayBuffer.isView( array ) ) array = new Uint8Array( array )\n\t\t\treturn new this( array.buffer, array.byteOffset, array.byteLength ) as InstanceType< This >\n\t\t}\n\t\t\n\t\tstatic toString() {\n\t\t\treturn $$.$mol_func_name( this )\n\t\t}\n\n\t\tgetUint48( offset: number, LE = false ) {\n\t\t\tif( offset % 4 ) {\n\t\t\t\treturn this.getUint16( offset, LE ) + this.getUint32( offset + 2, LE ) * 2**16\n\t\t\t} else {\n\t\t\t\treturn this.getUint32( offset, LE ) + this.getUint16( offset + 4, LE ) * 2**32\n\t\t\t}\n\t\t}\n\t\t\n\t\tsetUint48( offset: number, value: number, LE = false ) {\n\t\t\tif( offset % 4 ) {\n\t\t\t\tthis.setUint16( offset, value & ( (1<<16) - 1 ), LE )\n\t\t\t\tthis.setUint32( offset + 2, ( value / 2**16 )|0, LE )\n\t\t\t} else {\n\t\t\t\tthis.setUint32( offset, value |0, LE )\n\t\t\t\tthis.setUint16( offset + 4, ( value / 2**32 )|0, LE )\n\t\t\t}\n\t\t}\n\t\t\n\t\t/** 1-byte signed integer channel for offset. */\n\t\tint8( offset: number, next?: number ) {\n\t\t\tif( next === undefined ) return this.getInt8( offset )\n\t\t\tif( next >= -(2**7) && next < 2**7 ) return this.setInt8( offset, next ), next\n\t\t\t$mol_fail( new Error( `Wrong int8 value ${ next }` ) )\n\t\t}\n\t\t\n\t\t/** 1-byte unsigned integer channel for offset. */\n\t\tuint8( offset: number, next?: number ) {\n\t\t\tif( next === undefined ) return this.getUint8( offset )\n\t\t\tif( next >= 0 && next < 2**8 ) return this.setUint8( offset, next ), next\n\t\t\t$mol_fail( new Error( `Wrong uint8 value ${ next }` ) )\n\t\t}\n\t\t\n\t\t/** 2-byte signed integer little-endian channel for offset. */\n\t\tint16( offset: number, next?: number ) {\n\t\t\tif( next === undefined ) return this.getInt16( offset, true )\n\t\t\tif( next >= -(2**15) && next < 2**15 ) return this.setInt16( offset, next, true ), next\n\t\t\t$mol_fail( new Error( `Wrong int16 value ${ next }` ) )\n\t\t}\n\t\t\n\t\t/** 2-byte unsigned integer little-endian channel for offset. */\n\t\tuint16( offset: number, next?: number ) {\n\t\t\tif( next === undefined ) return this.getUint16( offset, true )\n\t\t\tif( next >= 0 && next < 2**16 ) return this.setUint16( offset, next, true ), next\n\t\t\t$mol_fail( new Error( `Wrong uint16 value ${ next }` ) )\n\t\t}\n\t\t\n\t\t/** 4-byte signed integer little-endian channel for offset. */\n\t\tint32( offset: number, next?: number ) {\n\t\t\tif( next === undefined ) return this.getInt32( offset, true )\n\t\t\tif( next >= -(2**31) && next < 2**31 ) return this.setInt32( offset, next, true ), next\n\t\t\t$mol_fail( new Error( `Wrong int32 value ${ next }` ) )\n\t\t}\n\t\n\t\t/** 4-byte unsigned integer little-endian channel for offset. */\n\t\tuint32( offset: number, next?: number ) {\n\t\t\tif( next === undefined ) return this.getUint32( offset, true )\n\t\t\tif( next >= 0 && next < 2**32 ) return this.setUint32( offset, next, true ), next\n\t\t\t$mol_fail( new Error( `Wrong uint32 value ${ next }` ) )\n\t\t}\n\t\t\n\t\t/** 8-byte signed integer little-endian channel for offset. */\n\t\tint64( offset: number, next?: bigint ) {\n\t\t\tif( next === undefined ) return this.getBigInt64( offset, true )\n\t\t\tif( next >= -(2n**63n) && next < 2n**63n ) return this.setBigInt64( offset, next, true ), next\n\t\t\t$mol_fail( new Error( `Wrong int64 value ${ next }` ) )\n\t\t}\n\t\t\n\t\t/** 6-byte unsigned integer little-endian channel for offset. */\n\t\tuint48( offset: number, next?: number ) {\n\t\t\tif( next === undefined ) return this.getUint48( offset, true )\n\t\t\tif( next >= 0 && next < 2**48 ) return this.setUint48( offset, next, true ), next\n\t\t\t$mol_fail( new Error( `Wrong uint48 value ${ next }` ) )\n\t\t}\n\t\t\n\t\t/** 8-byte unsigned integer little-endian channel for offset. */\n\t\tuint64( offset: number, next?: bigint ) {\n\t\t\tif( next === undefined ) return this.getBigUint64( offset, true )\n\t\t\tif( next >= 0n && next < 2n**64n ) return this.setBigUint64( offset, next, true ), next\n\t\t\t$mol_fail( new Error( `Wrong uint64 value ${ next }` ) )\n\t\t}\n\t\t\n\t\t/** 2-byte float little-endian channel for offset. */\n\t\tfloat16( offset: number, next?: number ) {\n\t\t\tif( next !== undefined ) this.setFloat16( offset, next, true )\n\t\t\treturn this.getFloat16( offset, true )\n\t\t}\n\t\t\n\t\t/** 4-byte float little-endian channel for offset. */\n\t\tfloat32( offset: number, next?: number ) {\n\t\t\tif( next !== undefined ) this.setFloat32( offset, next, true )\n\t\t\treturn this.getFloat32( offset, true )\n\t\t}\n\t\t\n\t\t/** 8-byte float little-endian channel for offset. */\n\t\tfloat64( offset: number, next?: number ) {\n\t\t\tif( next !== undefined ) this.setFloat64( offset, next, true )\n\t\t\treturn this.getFloat64( offset, true )\n\t\t}\n\t\t\n\t\tmix( mixin: Uint8Array< ArrayBuffer > ) {\n\t\t\tconst arr = this.asArray()\n\t\t\tfor( let i = 0; i < mixin.length; ++i ) arr[ i % arr.byteLength ] ^= mixin[ i ]\n\t\t\treturn this\n\t\t}\n\t\t\n\t\t/** A Uint8Array view for the same buffer. */\n\t\tasArray() {\n\t\t\treturn new Uint8Array( this.buffer, this.byteOffset, this.byteLength )\n\t\t}\n\t\t\n\t\t/** base64ae string from buffer. */\n\t\ttoString() {\n\t\t\treturn $mol_base64_ae_encode( this.asArray() )\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\n\texport class $mol_wrapper extends $mol_object2 {\n\n\t\tstatic wrap : ( task : ( ... ags : any[] )=> any )=> ( ... ags : any[] )=> any\n\t\t\n\t\tstatic run< Result >( task : ()=> Result ) : Result {\n\t\t\treturn this.func( task )()\n\t\t}\n\t\n\t\tstatic func< Args extends any[] , Result , Host = void >(\n\t\t\tfunc : ( this : Host , ... args : Args )=> Result\n\t\t) : ( this : Host , ... args : Args )=> Result {\n\t\t\treturn this.wrap( func )\n\t\t}\n\n\t\tstatic get class() {\n\n\t\t\treturn < Class extends new ( ... args : any[] )=> any >(\n\t\t\t\tClass : Class\n\t\t\t) => {\n\n\t\t\t\ttype Args = ConstructorParameters< Class >\n\t\t\t\ttype Result = InstanceType< Class >\n\n\t\t\t\tconst construct = ( target : Class , args : Args )=> new Class( ... args )\n\n\t\t\t\tconst handler: ProxyHandler<Class> = {\n\t\t\t\t\tconstruct : this.func( construct )\n\t\t\t\t} \n\n\t\t\t\t;(handler as any)[ Symbol.toStringTag ] = Class.name + '#'\n\n\t\t\t\treturn new Proxy( Class , handler )\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\tstatic get method() {\n\t\t\t\n\t\t\treturn (\n\t\t\t\tobj : object,\n\t\t\t\tname : PropertyKey,\n\t\t\t\tdescr = Reflect.getOwnPropertyDescriptor( obj, name )!,\n\t\t\t) => {\n\t\t\t\tdescr.value = this.func( descr.value! )\n\t\t\t\treturn descr\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tstatic get field() {\n\t\t\t\n\t\t\treturn <\n\t\t\t\tHost extends object ,\n\t\t\t\tField extends keyof Host ,\n\t\t\t\tArgs extends any[] ,\n\t\t\t\tResult ,\n\t\t\t>(\n\t\t\t\tobj : Host ,\n\t\t\t\tname : Field ,\n\t\t\t\tdescr = Reflect.getOwnPropertyDescriptor( obj, name )! as TypedPropertyDescriptor< Result >\n\t\t\t) => {\n\t\t\t\tdescr.get = descr.set = this.func( descr.get! )\n\t\t\t\treturn descr\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\t$mol_test({\n\n\t\t'run callback' () {\n\n\t\t\tclass Plus1 extends $mol_wrapper {\n\t\t\n\t\t\t\tstatic wrap< This , Args extends any[] >( task : ( this : This , ... args : Args )=> number ) {\n\t\t\n\t\t\t\t\treturn function( this : This , ... args : Args ) {\n\t\t\t\t\t\treturn task.call( this , ... args ) + 1 as number\n\t\t\t\t\t}\n\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\n\t\t\t$mol_assert_equal( Plus1.run( ()=> 2 ) , 3 )\n\n\t\t} ,\n\n\t\t'wrap function' () {\n\t\t\n\t\t\tclass Plus1 extends $mol_wrapper {\n\t\t\n\t\t\t\tstatic wrap< This , Args extends any[] >( task : ( this : This , ... args : Args )=> number ) {\n\t\t\n\t\t\t\t\treturn function( this : This , ... args : Args ) {\n\t\t\t\t\t\treturn task.call( this , ... args ) + 1 as number\n\t\t\t\t\t}\n\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\t\n\t\t\tconst obj = {\n\t\t\t\tlevel : 2 ,\n\t\t\t\tpow : Plus1.func( function( this : { level : number } , a ) {\n\t\t\t\t\treturn a ** this.level\n\t\t\t\t} )\n\t\t\t}\n\n\t\t\t$mol_assert_equal( obj.pow( 2 ) , 5 )\n\n\t\t} ,\n\n\t\t'decorate field getter' () {\n\n\t\t\tclass Plus1 extends $mol_wrapper {\n\n\t\t\t\tstatic last = 0\n\t\t\n\t\t\t\tstatic wrap< This , Args extends any[] >( task : ( this : This , ... args : Args )=> number ) {\n\t\t\n\t\t\t\t\treturn function( this : This , ... args : Args ) {\n\t\t\t\t\t\treturn Plus1.last = ( task.call( this , ... args ) || 0 ) + 1 as number\n\t\t\t\t\t}\n\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\n\t\t\tclass Foo {\n\n\t\t\t\t@ Plus1.field\n\t\t\t\tstatic get two() {\n\t\t\t\t\treturn 1\n\t\t\t\t}\n\t\t\t\tstatic set two( next : number ) {}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( Foo.two , 2 )\n\t\t\t\n\t\t\tFoo.two = 3\n\t\t\t$mol_assert_equal( Plus1.last , 2 )\n\t\t\t$mol_assert_equal( Foo.two , 2 )\n\n\t\t} ,\n\n\t\t'decorate instance method' () {\n\n\t\t\tclass Plus1 extends $mol_wrapper {\n\t\t\n\t\t\t\tstatic wrap< This , Args extends any[] >( task : ( this : This , ... args : Args )=> number ) {\n\t\t\n\t\t\t\t\treturn function( this : This , ... args : Args ) {\n\t\t\t\t\t\treturn task.call( this , ... args ) + 1 as number\n\t\t\t\t\t}\n\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\n\t\t\tclass Foo1 {\n\n\t\t\t\tlevel = 2\n\n\t\t\t\t@ Plus1.method\n\t\t\t\tpow( a : number ) {\n\t\t\t\t\treturn a ** this.level\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst Foo2 = Foo1\n\t\t\tconst foo = new Foo2\n\n\t\t\t$mol_assert_equal( foo.pow( 2 ) , 5 )\n\n\t\t} ,\n\n\t\t'decorate static method' () {\n\t\t\t\n\t\t\tclass Plus1 extends $mol_wrapper {\n\t\t\n\t\t\t\tstatic wrap< This , Args extends any[] >( task : ( this : This , ... args : Args )=> number ) {\n\t\t\n\t\t\t\t\treturn function( this : This , ... args : Args ) {\n\t\t\t\t\t\treturn task.call( this , ... args ) + 1 as number\n\t\t\t\t\t}\n\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\n\t\t\tclass Foo {\n\n\t\t\t\tstatic level = 2\n\n\t\t\t\t@ Plus1.method\n\t\t\t\tstatic pow( a : number ) {\n\t\t\t\t\treturn a ** this.level\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t$mol_assert_equal( Foo.pow( 2 ) , 5 )\n\n\t\t} ,\n\n\t\t'decorate class' () {\n\t\t\t\n\t\t\tclass BarInc extends $mol_wrapper {\n\n\t\t\t\tstatic wrap< This , Args extends any[] >( task : ( this : This , ... args : Args )=> Foo ) {\n\t\t\t\t\t\n\t\t\t\t\treturn function( this : This , ... args : Args ) {\n\n\t\t\t\t\t\tconst foo = task.call( this , ...args )\n\t\t\t\t\t\tfoo.bar ++\n\t\t\t\t\t\treturn foo\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\t@ BarInc.class\n\t\t\tclass Foo {\n\t\t\t\tconstructor( public bar : number ) {}\n\t\t\t}\n\n\t\t\t$mol_assert_equal( new Foo( 2 ).bar , 3 )\n\n\t\t} ,\n\n\t})\n}\n","namespace $ {\n\n\texport class $mol_memo extends $mol_wrapper {\n\t\t\n\t\tstatic wrap< This extends object , Value >( task : ( this : This , next? : Value )=> Value ) {\n\n\t\t\tconst store = new WeakMap< This , Value >()\n\n\t\t\tconst fun = function( this : This , next? : Value ) {\n\n\t\t\t\tif( next === undefined && store.has( this ?? fun ) ) return store.get( this ?? fun )\n\t\t\t\t\n\t\t\t\tconst val = task.call( this , next ) ?? next\n\t\t\t\t\n\t\t\t\tstore.set( this ?? fun , val! )\n\t\t\t\t\n\t\t\t\treturn val\n\n\t\t\t}\n\n\t\t\tReflect.defineProperty( fun , 'name' , { value : task.name + ' ' } )\n\n\t\t\treturn fun\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\n\t$mol_test({\n\n\t\t'memoize field' () {\n\n\t\t\tclass Foo {\n\n\t\t\t\tstatic one = 1\n\n\t\t\t\t@ $mol_memo.field\n\t\t\t\tstatic get two() {\n\t\t\t\t\treturn ++ this.one\n\t\t\t\t}\n\t\t\t\tstatic set two( next : number ) {} \n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( Foo.two , 2 )\n\t\t\t$mol_assert_equal( Foo.two , 2 )\n\n\t\t\tFoo.two = 3\n\t\t\t\n\t\t\t$mol_assert_equal( Foo.two , 3 )\n\t\t\t$mol_assert_equal( Foo.two , 3 )\n\n\t\t} ,\n\n\t})\n\n}\n","namespace $ {\n\texport class $mol_memo_key extends $mol_wrapper {\n\t\t\n\t\tstatic wrap< This extends object, Key, Value >(\n\t\t\ttask: ( this: This, key: Key, next?: Value )=> Value\n\t\t) {\n\t\t\t\n\t\t\tconst store = new WeakMap< This, Map< string, Value > >()\n\t\t\t\n\t\t\tconst fun = function( this: This, key: Key, next?: Value ) {\n\t\t\t\t\n\t\t\t\tlet store2 = store.get( this ?? fun )\n\t\t\t\tif( !store2 ) store.set( this ?? fun, store2 = new Map )\n\t\t\t\t\n\t\t\t\tconst key_str = $mol_key( key )\n\t\t\t\t\n\t\t\t\tif( next === undefined && store2.has( key_str ) ) return store2.get( key_str )\n\t\t\t\t\n\t\t\t\tconst val = task.call( this, key, next ) ?? next\n\t\t\t\t\n\t\t\t\tstore2.set( key_str, val! )\n\t\t\t\t\n\t\t\t\treturn val\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tReflect.defineProperty( fun , 'name' , { value : task.name + ' ' } )\n\t\t\t\n\t\t\treturn fun\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\texport class $mol_schema_any extends Object {\n\t\t\n\t\tstatic [ Symbol.toStringTag ]: string\n\t\t\n\t\tstatic [ $mol_key_handle ]() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\t/** Short user-readable identity. */\n\t\tstatic toString() {\n\t\t\treturn $$.$mol_func_name( this )\n\t\t}\n\t\t\n\t\t/** Type-predicate that checks value by schema. */\n\t\tstatic check< This extends typeof $mol_schema_any, Value >( this: This, value: Value ): value is Value & This['default'] {\n\t\t\ttry {\n\t\t\t\tthis.guard( value )\n\t\t\t\treturn true\n\t\t\t} catch( error ) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\t\n\t\t/** `instanceof` support */\n\t\tstatic [ Symbol.hasInstance ]< This extends typeof $mol_schema_any, Value >( this: This, value: Value ): value is Value & This['default'] {\n\t\t\treturn this.check( value )\n\t\t}\n\t\t\n\t\t/** Type-parser that fails of wrong values. */\n\t\tstatic guard< This extends typeof $mol_schema_any, Value >( this: This, value: Value ): Value & This['default'] {\n\t\t\treturn value\n\t\t}\n\t\t\n\t\t/** Type-caster that normalizes wrong values. */\n\t\tstatic cast< This extends typeof $mol_schema_any >( this: This, value: unknown ): This['default'] {\n\t\t\ttry {\n\t\t\t\tthis.guard( value )\n\t\t\t\treturn value\n\t\t\t} catch ( error ) {\n\t\t\t\treturn this.default\n\t\t\t}\n\t\t}\n\t\t\n\t\t/** Default value which conforms schema. */\n\t\tstatic default = null as unknown\n\t\t\n\t}\n}\n","namespace $ {\n\texport class $mol_schema_float extends $mol_schema_any {\n\t\t\n\t\tstatic guard< This extends typeof $mol_schema_any, Value >( this: This, value: Value ): Value & This['default'] {\n\t\t\tif( typeof value === 'number' ) return value\n\t\t\treturn $mol_fail( new TypeError( 'Wrong type', { cause: { value, schema: this } } ) )\n\t\t}\n\t\t\n\t\tstatic default = Number.NaN\n\t\t\n\t}\n}\n","namespace $.$$ {\n\t$mol_test({\n\t\t\n\t\t\"Float schema\"( $ ) {\n\t\t\t\n\t\t\t$mol_assert_equal( '$mol_schema_float', $mol_schema_float + '', $mol_key( $mol_schema_float ) )\n\t\t\t\n\t\t\t$mol_assert_equal( true, $mol_schema_float.check( 0 ) )\n\t\t\t$mol_assert_equal( true, $mol_schema_float.check( Number.NaN ) )\n\t\t\t$mol_assert_equal( true, $mol_schema_float.check( Number.POSITIVE_INFINITY ) )\n\t\t\t$mol_assert_equal( false, $mol_schema_float.check( null ) )\n\t\t\t\n\t\t\t$mol_assert_equal( 1.5, $mol_schema_float.cast( 1.5 ) )\n\t\t\t$mol_assert_equal( Number.NaN, $mol_schema_float.cast( '0' ) )\n\t\t\t\n\t\t\t$mol_assert_equal( Number.EPSILON, $mol_schema_float.guard( Number.EPSILON ) )\n\t\t\t$mol_assert_fail( ()=> $mol_schema_float.guard( '0' ), 'Wrong type' )\n\t\t\t\n\t\t},\n\t\t\n\t})\n}\n","namespace $ {\n\texport class $mol_schema_string extends $mol_schema_any {\n\t\t\n\t\tstatic guard< This extends typeof $mol_schema_any, Value >( this: This, value: Value ): Value & This['default'] {\n\t\t\tif( typeof value === 'string' ) return value\n\t\t\treturn $mol_fail( new TypeError( 'Wrong type', { cause: { value, schema: this } } ) )\n\t\t}\n\t\t\n\t\tstatic cast< This extends typeof $mol_schema_any >( this: This, value: unknown ): This['default'] {\n\t\t\treturn super.cast( value )\n\t\t}\n\t\t\n\t\tstatic default = ''\n\t\t\n\t}\n}\n","namespace $.$$ {\n\t$mol_test({\n\t\t\n\t\t\"String schema\"( $ ) {\n\t\t\t\n\t\t\t$mol_assert_equal( '$mol_schema_string', $mol_schema_string + '', $mol_key( $mol_schema_string ) )\n\t\t\t\n\t\t\t$mol_assert_equal( true, $mol_schema_string.check( 'foo' ) )\n\t\t\t$mol_assert_equal( false, $mol_schema_string.check( 123 ) )\n\t\t\t\n\t\t\t$mol_assert_equal( 'foo', $mol_schema_string.cast( 'foo' ) )\n\t\t\t$mol_assert_equal( '', $mol_schema_string.cast( 123 ) )\n\t\t\t\n\t\t\t$mol_assert_equal( 'foo', $mol_schema_string.guard( 'foo' ) )\n\t\t\t$mol_assert_fail( ()=> $mol_schema_string.guard( 123 ), 'Wrong type' )\n\t\t\t\n\t\t},\n\t\t\n\t})\n}\n","namespace $ {\n\texport let $mol_schema_maybe = $mol_memo_key.func( function $mol_schema_maybe<\n\t\tSome extends typeof $mol_schema_any\n\t>( Some: Some ) {\n\t\t\n\t\treturn class $mol_schema_maybe_ extends $mol_schema_any {\n\t\t\t\n\t\t\tstatic Some = Some\n\t\t\t\n\t\t\tstatic toString(): string {\n\t\t\t\tif( this !== $mol_schema_maybe_ ) return super.toString()\n\t\t\t\treturn '$mol_schema_maybe<' + $mol_key(Some) + '>'\n\t\t\t}\n\t\t\t\n\t\t\tstatic guard< This extends typeof $mol_schema_any, Value >( this: This, value: Value ): Value & This['default'] {\n\t\t\t\tif( value == null ) return value\n\t\t\t\treturn Some.guard( value )\n\t\t\t}\n\t\t\t\n\t\t\tstatic default = null as Some['default'] | null\n\t\t\t\n\t\t}\n\t\t\n\t} )\n}\n","namespace $.$$ {\n\t$mol_test({\n\t\t\n\t\t\"Cache of maybe schema\"( $ ) {\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_schema_maybe( $mol_schema_float ), $mol_schema_maybe( $mol_schema_float ) )\n\t\t\t$mol_assert_unique( $mol_schema_maybe( $mol_schema_float ), $mol_schema_maybe( $mol_schema_string ) )\n\t\t\t\n\t\t},\n\t\t\n\t\t\"Optional value\"( $ ) {\n\t\t\t\n\t\t\tconst Config = $mol_schema_maybe( $mol_schema_string )\n\t\t\t\n\t\t\t$mol_assert_equal( '$mol_schema_maybe<$mol_schema_string>', Config + '' )\n\t\t\t\n\t\t\t$mol_assert_equal( true, Config.check( 'foo' ) )\n\t\t\t$mol_assert_equal( true, Config.check( undefined ) )\n\t\t\t$mol_assert_equal( true, Config.check( null ) )\n\t\t\t$mol_assert_equal( false, Config.check( 0 ) )\n\t\t\t\n\t\t\t$mol_assert_equal( 'foo', Config.cast( 'foo' ) )\n\t\t\t$mol_assert_equal( undefined, Config.cast( undefined ) )\n\t\t\t$mol_assert_equal( null, Config.cast( null ) )\n\t\t\t$mol_assert_equal( null, Config.cast( 0 ) )\n\t\t\t\n\t\t\t$mol_assert_equal( 'foo', Config.guard( 'foo' ) )\n\t\t\t$mol_assert_fail( ()=> Config.guard( 123 ), 'Wrong type' )\n\t\t\t\n\t\t},\n\t\t\n\t})\n}\n","namespace $ {\n\texport let $mol_schema_instance = $mol_memo_key.func( function $mol_schema_instance<\n\t\tClass extends new( ... args: any[] )=> any,\n\t>(\n\t\tClass: Class,\n\t) {\n\t\t\n\t\tclass $mol_schema_instance_ extends $mol_schema_any {\n\t\t\t\n\t\t\tstatic Class = Class\n\t\t\t\n\t\t\tstatic toString(): string {\n\t\t\t\tif( this !== $mol_schema_instance_ ) return super.toString()\n\t\t\t\treturn '$mol_schema_instance<' + $$.$mol_func_name(Class) + '>'\n\t\t\t}\n\t\t\t\n\t\t\tstatic guard< This extends typeof $mol_schema_any, Value >( this: This, value: Value ): Value & This['default'] {\n\t\t\t\tif( value != null && Object( value ) instanceof Class ) return value\n\t\t\t\treturn $mol_fail( new TypeError( 'Wrong class', { cause: { value, schema: this } } ) )\n\t\t\t}\n\t\t\t\n\t\t\tstatic cast< This extends typeof $mol_schema_any >( this: This, value: unknown ): This['default'] {\n\t\t\t\treturn this.guard( value )\n\t\t\t}\n\t\t\t\n\t\t\tstatic default: InstanceType< Class >\n\t\t\t\n\t\t}\n\t\t\n\t\treturn ( ( Class?.[ Symbol.hasInstance ] === $mol_schema_any[ Symbol.hasInstance ] )\n\t\t\t? Class\n\t\t\t: $mol_schema_instance_\n\t\t) as Class extends typeof $mol_schema_any ? Class : typeof $mol_schema_instance_\n\t\t\n\t} )\n}\n","namespace $.$$ {\n\t$mol_test({\n\t\t\n\t\t\"Cache of instance schema\"( $ ) {\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_schema_instance( Uint8Array ), $mol_schema_instance( Uint8Array ) )\n\t\t\t$mol_assert_unique( $mol_schema_instance( Uint8Array ), $mol_schema_instance( Int8Array ) )\n\t\t\t\n\t\t},\n\t\t\n\t\t\"Class instance schema\"( $ ) {\n\t\t\t\n\t\t\tconst Blob = $mol_schema_instance( Uint8Array )\n\t\t\t\n\t\t\t$mol_assert_equal( '$mol_schema_instance<Uint8Array>', Blob + '', $mol_key( Blob ) )\n\t\t\t\n\t\t\t$mol_assert_equal( true, Blob.check( new Uint8Array ) )\n\t\t\t$mol_assert_equal( false, Blob.check( new Int8Array ) )\n\t\t\t$mol_assert_equal( false, Blob.check( null ) )\n\t\t\t\n\t\t\t$mol_assert_equal( new Uint8Array([ 0, 1 ]), Blob.cast( new Uint8Array([ 0, 1 ]) ) )\n\t\t\t$mol_assert_fail( ()=> Blob.cast( new Int8Array ), 'Wrong class' )\n\t\t\t\n\t\t\t$mol_assert_equal( new Uint8Array, Blob.guard( new Uint8Array ) )\n\t\t\t$mol_assert_fail( ()=> Blob.guard( new Int8Array ), 'Wrong class' )\n\t\t\t\n\t\t},\n\t\t\n\t\t\"Boxed instance schema\"( $ ) {\n\t\t\t\n\t\t\tconst Str = $mol_schema_instance( String )\n\t\t\t\n\t\t\t$mol_assert_equal( '$mol_schema_instance<String>', Str + '', $mol_key( Str ) )\n\t\t\t\n\t\t\t$mol_assert_equal( true, Str.check( Object( '' ) ) )\n\t\t\t$mol_assert_equal( true, Str.check( '' ) )\n\t\t\t$mol_assert_equal( true, Object('') instanceof Str )\n\t\t\t\n\t\t},\n\t\t\n\t\t\"Schema instance schema\"( $ ) {\n\t\t\t\n\t\t\tconst Str = $mol_schema_instance( $mol_schema_instance( String ) )\n\t\t\t\n\t\t\t$mol_assert_equal( '$mol_schema_instance<String>', Str + '', $mol_key( Str ) )\n\t\t\t\n\t\t\t$mol_assert_equal( true, Str.check( Object( '' ) ) )\n\t\t\t$mol_assert_equal( true, Str.check( '' ) )\n\t\t\t$mol_assert_equal( true, Object('') instanceof Str )\n\t\t\t\n\t\t},\n\t\t\n\t})\n}\n","namespace $ {\n\t\n\texport function $giper_baza_link_compare( left: $giper_baza_link, right: $giper_baza_link ) {\n\t\treturn ( right.str > left.str ? 1 : right.str < left.str ? -1 : 0 )\n\t}\n\t\n\tconst regexp = /(?<![\\p{L}_])(?:(?:[a-zæA-ZÆ0-9]{8})?_){0,3}(?:[a-zæA-ZÆ0-9]{8})(?![\\p{L}_])/gu\n\t\n\texport class $giper_baza_link extends Object {\n\t\t\n\t\tconstructor( readonly str: string ) {\n\t\t\tsuper()\n\t\t\t\n\t\t\tconst short = str.replace( /AAAAAAAA/g, '' ).replace( /_+$/, '' )\n\t\t\tconst found = short && ( short.match( regexp )?.[0] ?? null )\n\t\t\tif( found !== short ) $mol_fail( new Error( 'Wrong Link', { cause: str } ) )\n\t\t\n\t\t\tthis.str = found\n\t\t}\n\t\t\n\t\tstatic [ Symbol.match ]( str: string ) {\n\t\t\treturn str.match( regexp )\n\t\t}\n\t\t\n\t\tstatic [ Symbol.matchAll ]( str: string ) {\n\t\t\treturn str.matchAll( regexp )\n\t\t}\n\t\t\n\t\tstatic hole = new this( '' )\n\t\t\n\t\tstatic check( val: string ) {\n\t\t\ttry {\n\t\t\t\treturn new this( val )\n\t\t\t} catch {\n\t\t\t\treturn null\n\t\t\t}\n\t\t}\n\t\t\n\t\t[ $mol_key_handle ]() {\n\t\t\treturn this.str\n\t\t}\n\t\t\n\t\ttoString() {\n\t\t\treturn this.str\n\t\t}\n\t\t\n\t\ttoJSON() {\n\t\t\treturn this.str\n\t\t}\n\t\t\n\t\t[ Symbol.toPrimitive ]() {\n\t\t\treturn this.str\n\t\t}\n\t\t\n\t\t[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_span( { 'color': 'darkorange' }, this.str || '_' )\n\t\t}\n\t\t\n\t\t_bin = null as null | Uint8Array< ArrayBuffer >\n\t\t\n\t\t/** Binary representation (6/12/18/24 bytes). */\n\t\ttoBin(): Uint8Array< ArrayBuffer > {\n\t\t\tif( this._bin ) return this._bin\n\t\t\tconst str = this.relate( _base ).str\n\t\t\tconst norm = str && str\n\t\t\t\t.replace( /^___/, '' )\n\t\t\t\t.split( '_' )\n\t\t\t\t.map( numb => numb || 'AAAAAAAA' )\n\t\t\t\t.join( '' )\n\t\t\treturn this._bin = $mol_base64_ae_decode( norm )\n\t\t}\n\t\t\n\t\t/** Make from integer (6 bytes). */\n\t\tstatic from_int( int: number ) {\n\t\t\tconst bin = new Uint8Array( new BigUint64Array([ BigInt( int ) ]).buffer, 0, 6 )\n\t\t\tconst link = new this( $mol_base64_ae_encode( bin ) )\n\t\t\tlink._bin = bin\n\t\t\treturn link\n\t\t}\n\t\t\n\t\t/** Read from binary (6/12/18/24 bytes). */\n\t\tstatic from_bin( bin: Uint8Array< ArrayBuffer > ) {\n\t\t\tconst str = [ ... $mol_base64_ae_encode( bin ).match( /(.{8})/g ) ?? [] ].join( '_' )\n\t\t\tconst link = new this( str ).resolve( _base )\n\t\t\tlink._bin = bin\n\t\t\treturn link\n\t\t}\n\t\t\n\t\tstatic _hash_cache = new WeakMap< ArrayBufferView, $giper_baza_link >()\n\t\t\n\t\t/** Make hash from binary (12 bytes). */\n\t\tstatic hash_bin( bin: ArrayBufferView ) {\n\t\t\t\n\t\t\tlet link = this._hash_cache.get( bin )\n\t\t\tif( link ) return link\n\t\t\t\n\t\t\tconst hash = $mol_crypto2_hash( bin )\n\t\t\tlink = this.from_bin( new Uint8Array( hash.buffer, 0, 12 ) )\n\t\t\tthis._hash_cache.set( bin, link )\n\t\t\t\n\t\t\treturn link\n\t\t}\n\t\t\n\t\t/** Make hash from string (12 bytes). */\n\t\tstatic hash_str( str: string ) {\n\t\t\treturn this.hash_bin( $mol_charset_encode( str ) )\n\t\t}\n\t\t\n\t\t/** Land-local Peer id. */\n\t\tpeer() {\n\t\t\treturn new $giper_baza_link( this.str.split( '_' )[ 0 ] ?? '' )\n\t\t}\n\n\t\t/** Lord-local Area id. */\n\t\tarea() {\n\t\t\treturn new $giper_baza_link( this.str.split( '_' )[ 2 ] ?? '' )\n\t\t}\n\t\t\n\t\t/** Land-local Head id. */\n\t\thead() {\n\t\t\treturn new $giper_baza_link( this.str.split( '_' )[ 3 ] ?? '' )\n\t\t}\n\t\t\n\t\t/** Link to Lord Home. */\n\t\tlord() {\n\t\t\treturn new $giper_baza_link( this.str.split( '_' ).slice( 0, 2 ).join( '_' ) )\n\t\t}\n\t\t\n\t\t/** Link to Land Root. */\n\t\tland() {\n\t\t\treturn new $giper_baza_link( this.str.split( '_' ).slice( 0, 3 ).join( '_' ) )\n\t\t}\n\t\t\n\t\t/** Pawn Link relative to base Land: `___QWERTYUI` */\n\t\trelate( base: $giper_baza_link ) {\n\t\t\tif( base.str === '' ) return this\n\t\t\tbase = base.land()\n\t\t\tif( this.land().str !== base.str ) return this\n\t\t\tconst head = this.head()\n\t\t\treturn new $giper_baza_link( '___' + head )\n\t\t}\n\n\t\t/** Absolute Pawn Link from relative (`___QWERTYUI`) using base Land Link. */\n\t\tresolve( base: $giper_baza_link ) {\n\t\t\t\n\t\t\tif( base.str === '' ) return this\n\t\t\tif( this.str === '' ) return base.land()\n\t\t\tif( this.str.length > 16 ) return this\n\t\t\t\n\t\t\tconst parts = base.land().toString().split( '_' )\n\t\t\twhile( parts.length < 3 ) parts.push( '' )\n\t\t\tparts.push( this.str.replace( /^___/, '' ) )\n\t\t\t\n\t\t\treturn new $giper_baza_link( parts.join( '_' ) )\n\t\t}\n\t\t\n\t\tmix( mixin: Uint8Array< ArrayBuffer > | $giper_baza_link ) {\n\t\t\tif( mixin instanceof $giper_baza_link ) mixin = mixin.toBin()\n\t\t\tconst mixout = $mol_buffer.from( this.toBin().slice() )\n\t\t\tmixout.mix( mixin )\n\t\t\treturn mixout.asArray()\n\t\t}\n\t\n\t}\n\t\n\tlet _base = $giper_baza_link.hole\n\texport function $giper_baza_link_base< Res >( base: $giper_baza_link, task: ()=> Res ): Res {\n\t\t\n\t\tconst prev = _base\n\t\t_base = base\n\t\t\n\t\ttry {\n\t\t\treturn task()\n\t\t} finally {\n\t\t\t_base = prev\n\t\t}\n\t\t\n\t}\n\t\n\texport let $giper_baza_link_schema = $mol_schema_maybe( $mol_schema_instance( $giper_baza_link ) )\n\t\n}\n","namespace $.$$ {\n\t$mol_test({\n\t\t\n\t\t\"Validation\"( $ ) {\n\t\t\t\n\t\t\t$mol_assert_fail(\n\t\t\t\t()=> new $giper_baza_link( 'qwertyui_asdfghjk123' ),\n\t\t\t\t'Wrong Link',\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t\"From integer\"( $ ) {\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$giper_baza_link.from_int( 178308648732587 ),\n\t\t\t\tnew $giper_baza_link( 'qwertyui' ),\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t\"Pick Lord only\"( $ ) {\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk_qazwsxed_zxcvbnm0' ).lord(),\n\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk_qazwsxed' ).lord(),\n\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk' ).lord(),\n\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk' ),\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t\"Pick Land only\"( $ ) {\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk__zxcvbnm0' ).land(),\n\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk' ).land(),\n\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk' ),\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk_qazwsxed_zxcvbnm0' ).land(),\n\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk_qazwsxed' ).land(),\n\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk_qazwsxed' ),\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t\"Pick Peer only\"( $ ) {\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk_qazwsxed_zxcvbnm0' ).peer(),\n\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk__zxcvbnm0' ).peer(),\n\t\t\t\tnew $giper_baza_link( 'qwertyui' ),\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tnew $giper_baza_link( '___qazwsxed' ).peer(),\n\t\t\t\tnew $giper_baza_link( '' ),\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t\"Pick Head only\"( $ ) {\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk_qazwsxed_zxcvbnm0' ).head(),\n\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk__zxcvbnm0' ).head(),\n\t\t\t\tnew $giper_baza_link( 'zxcvbnm0' ),\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk_qazwsxed' ).head(),\n\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk' ).head(),\n\t\t\t\tnew $giper_baza_link( '' ),\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t\"Pick Area only\"( $ ) {\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk_qazwsxed' ).area(),\n\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk_qazwsxed_zxcvbnm0' ).area(),\n\t\t\t\tnew $giper_baza_link( 'qazwsxed' ),\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk__zxcvbnm0' ).area(),\n\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk' ).area(),\n\t\t\t\tnew $giper_baza_link( '' ).area(),\n\t\t\t\tnew $giper_baza_link( '' ),\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t\"Binary encoding\"( $ ) {\n\t\t\t\n\t\t\tconst pawn = new $giper_baza_link( 'qwertyui_asdfghjk_qazwsxed_zxcvbnm0' ).toBin()\n\t\t\tconst land = new $giper_baza_link( 'qwertyui_asdfghjk_qazwsxed' ).toBin()\n\t\t\tconst lord = new $giper_baza_link( 'qwertyui_asdfghjk' ).toBin()\n\t\t\t\n\t\t\tconst rel_pawn = new $giper_baza_link( '___zxcvbnm0' ).toBin()\n\t\t\tconst rel_root = new $giper_baza_link( '' ).toBin()\n\t\t\t\n\t\t\t$mol_assert_equal( pawn.length, 24 )\n\t\t\t$mol_assert_equal( land.length, 18 )\n\t\t\t$mol_assert_equal( lord.length, 12 )\n\t\t\t\n\t\t\t$mol_assert_equal( rel_pawn.length, 6 )\n\t\t\t$mol_assert_equal( rel_root.length, 0 )\n\t\t\t\n\t\t\t$mol_assert_equal( $giper_baza_link.from_bin( pawn ), new $giper_baza_link( 'qwertyui_asdfghjk_qazwsxed_zxcvbnm0' ) )\n\t\t\t$mol_assert_equal( $giper_baza_link.from_bin( land ), new $giper_baza_link( 'qwertyui_asdfghjk_qazwsxed' ) )\n\t\t\t$mol_assert_equal( $giper_baza_link.from_bin( lord ), new $giper_baza_link( 'qwertyui_asdfghjk' ) )\n\t\t\t\n\t\t\t$mol_assert_equal( $giper_baza_link.from_bin( rel_pawn ), new $giper_baza_link( 'zxcvbnm0' ) )\n\t\t\t$mol_assert_equal( $giper_baza_link.from_bin( rel_root ), new $giper_baza_link( '' ) )\n\t\t\t\n\t\t},\n\t\t\n\t\t\"Relate to base\"( $ ) {\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk__zxcvbnm0' ).relate(\n\t\t\t\t\tnew $giper_baza_link( 'QWERTYUI_ASDFGHJK' ),\n\t\t\t\t),\n\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk__zxcvbnm0' ).relate(\n\t\t\t\t\tnew $giper_baza_link( 'QWERTYUI_ASDFGHJK__ZXCVBNM0' ),\n\t\t\t\t),\n\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk__zxcvbnm0' ),\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk_qazwsxed_zxcvbnm0' ).relate(\n\t\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk_qazwsxed' ),\n\t\t\t\t),\n\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk_qazwsxed_zxcvbnm0' ).relate(\n\t\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk_qazwsxed_12345678' ),\n\t\t\t\t),\n\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk__zxcvbnm0' ).relate(\n\t\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk' ),\n\t\t\t\t),\n\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk__zxcvbnm0' ).relate(\n\t\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk__12345678' ),\n\t\t\t\t),\n\t\t\t\tnew $giper_baza_link( '___zxcvbnm0' ),\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk_qazwsxed' ).relate(\n\t\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk_qazwsxed_zxcvbnm0' ),\n\t\t\t\t),\n\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk_qazwsxed' ).relate(\n\t\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk_qazwsxed' ),\n\t\t\t\t),\n\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk' ).relate(\n\t\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk__zxcvbnm0' ),\n\t\t\t\t),\n\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk' ).relate(\n\t\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk' ),\n\t\t\t\t),\n\t\t\t\tnew $giper_baza_link( '' ),\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t\"Resolve Link from base\"( $ ) {\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk__zxcvbnm0' ).resolve(\n\t\t\t\t\tnew $giper_baza_link( 'QWERTYUI_ASDFGHJK__ZXCVBNM0' ),\n\t\t\t\t),\n\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk__zxcvbnm0' ).resolve(\n\t\t\t\t\tnew $giper_baza_link( 'QWERTYUI_ASDFGHJK' ),\n\t\t\t\t),\n\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk__zxcvbnm0' ).resolve(\n\t\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk' ),\n\t\t\t\t),\n\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk__zxcvbnm0' ),\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tnew $giper_baza_link( '___12345678' ).resolve(\n\t\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk' ),\n\t\t\t\t),\n\t\t\t\tnew $giper_baza_link( '___12345678' ).resolve(\n\t\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk__zxcvbnm0' ),\n\t\t\t\t),\n\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk__12345678' ),\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tnew $giper_baza_link( '___12345678' ).resolve(\n\t\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk_qazwsxed' ),\n\t\t\t\t),\n\t\t\t\tnew $giper_baza_link( '___12345678' ).resolve(\n\t\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk_qazwsxed_zxcvbnm0' ),\n\t\t\t\t),\n\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk_qazwsxed_12345678' ),\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tnew $giper_baza_link( '' ).resolve(\n\t\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk' ),\n\t\t\t\t),\n\t\t\t\tnew $giper_baza_link( '' ).resolve(\n\t\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk__zxcvbnm0' ),\n\t\t\t\t),\n\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk' ),\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tnew $giper_baza_link( '' ).resolve(\n\t\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk_qazwsxed' ),\n\t\t\t\t),\n\t\t\t\tnew $giper_baza_link( '' ).resolve(\n\t\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk_qazwsxed_zxcvbnm0' ),\n\t\t\t\t),\n\t\t\t\tnew $giper_baza_link( 'qwertyui_asdfghjk_qazwsxed' ),\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t'Hashing'() {\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$giper_baza_link.hash_bin( new Uint8Array([ 1, 2, 3 ]) ),\n\t\t\t\tnew $giper_baza_link( 'cDeAcZjC_Kn0rCAc3' ),\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$giper_baza_link.hash_str( 'foo bar' ),\n\t\t\t\tnew $giper_baza_link( 'N3PeplFW_kJg4æmwi' ),\n\t\t\t)\n\t\t\t\n\t\t}\n\t\t\n\t})\n}\n\n","namespace $ {\n\t\n\texport function $mol_base64_url_encode( buffer: Uint8Array< ArrayBuffer > ) {\n\t\treturn (\n\t\t\tbuffer as unknown as { toBase64(options: {\n\t\t\t\talphabet?: 'base64url' | 'base64'\n\t\t\t\tomitPadding?: boolean\n\t\t\t}): string }\n\t\t).toBase64({ alphabet: 'base64url', omitPadding: true })\n\t}\n\t\n\texport function $mol_base64_url_decode( str: string ) {\n\t\treturn (\n\t\t\tUint8Array as unknown as { fromBase64(str: string, options: {\n\t\t\t\talphabet?: 'base64url' | 'base64'\n\t\t\t}): Uint8Array<ArrayBuffer> }\n\t\t).fromBase64(str, { alphabet: 'base64url' })\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport function $mol_base64_url_encode_node( str: Uint8Array< ArrayBuffer > ) {\n\t\tif (! str) return ''\n\n\t\tconst buf = Buffer.isBuffer(str) ? str : Buffer.from(str)\n\n\t\treturn buf.toString('base64url').replace( /=/g, '' )\n\t}\n\n\tif ( ! ( 'toBase64' in Uint8Array.prototype ) ) {\n\t\t$.$mol_base64_url_encode = $mol_base64_url_encode_node\n\t}\n\n\texport function $mol_base64_url_decode_node( str: string ) {\n\t\t// without Uint8Array breaks $mol_compare_deep\n\t\tconst buffer = Buffer.from(str, 'base64url')\n\n\t\treturn new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength)\n\t}\n\n\tif ( ! ( 'fromBase64' in Uint8Array ) ) {\n\t\t$.$mol_base64_url_decode = $mol_base64_url_decode_node\n\t}\n\t\n}\n","namespace $ {\n\t/** Base class for crypto keys. */\n\texport class $mol_crypto2_key extends $mol_buffer {\n\t\t\n\t\tstatic size_str = 43\n\t\tstatic size_bin = 32\n\t\t\n\t\t/** Kakes key from different params. */\n\t\tstatic from< This extends typeof $mol_buffer >(\n\t\t\tthis: This,\n\t\t\tserial: number | string | ArrayBufferView< ArrayBuffer > | ArrayBuffer,\n\t\t) {\n\t\t\t\n\t\t\tif( typeof serial === 'string' ) {\n\t\t\t\tserial = new Uint8Array(\n\t\t\t\t\tserial.match( /.{43}/g )\n\t\t\t\t\t\t?.flatMap( chunk => [ ... $mol_base64_url_decode( chunk ) ] )\n\t\t\t\t\t?? $mol_fail( new Error( 'Str key too short', { cause: {\n\t\t\t\t\t\tmin: 43,\n\t\t\t\t\t\treal: serial.length,\n\t\t\t\t\t} } ) )\n\t\t\t\t)\n\t\t\t}\n\t\t\t\n\t\t\treturn super.from( serial ) as InstanceType< This >\n\t\t}\n\t\t\n\t\t/** Array view of public part. */\n\t\tasArray() {\n\t\t\t\n\t\t\tconst size = ( this.constructor as typeof $mol_crypto2_key ).size_bin\n\t\t\tif( this.byteLength < size ) {\n\t\t\t\treturn $mol_fail( new Error( 'Bin key too short', { cause: {\n\t\t\t\t\tmin: size,\n\t\t\t\t\treal: this.byteLength,\n\t\t\t\t} } ) )\n\t\t\t}\n\t\t\t\n\t\t\treturn new Uint8Array( this.buffer, this.byteOffset, size )\n\t\t}\n\t\t\n\t\t/** String representation of public part. */\n\t\t@ $mol_memo.method\n\t\ttoString() {\n\t\t\treturn $mol_base64_url_encode( this.asArray() )\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\t\n\t/** Derived debuggable error with stack */\n\texport function $mol_crypto_restack( error: any ): never {\n\t\terror = new Error( error instanceof Error ? error.message : String( error ), { cause: error } )\n\t\t$mol_fail_hidden( error )\n\t}\n\t\n}\n","namespace $ {\n\t/** Ed25519 public key for sign verifying. */\n\texport class $mol_crypto2_auditor extends $mol_crypto2_key {\n\t\t\n\t\t/** Native WebAPI public key. */\n\t\t@ $mol_memo.method\n\t\tasync native() {\n\t\t\t\n\t\t\treturn $mol_crypto_native.subtle.importKey(\n\t\t\t\t'jwk',\n\t\t\t\t{\n\t\t\t\t\tcrv: \"Ed25519\",\n\t\t\t\t\text: true,\n\t\t\t\t\tkey_ops: [ 'verify' ],\n\t\t\t\t\tkty: \"OKP\",\n\t\t\t\t\tx: this.toString(),\n\t\t\t\t},\n\t\t\t\t\"Ed25519\",\n\t\t\t\tBoolean( 'extractable' ),\n\t\t\t\t[ 'verify' ],\n\t\t\t).catch( $mol_crypto_restack )\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Verifies signature of data. */\n\t\tasync verify( data: BufferSource, sign: BufferSource ) {\n\t\t\t\n\t\t\treturn await $mol_crypto_native.subtle.verify(\n\t\t\t\t\"Ed25519\",\n\t\t\t\tawait this.native(),\n\t\t\t\tsign,\n\t\t\t\tdata,\n\t\t\t).catch( $mol_crypto_restack )\n\t\t\t\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\t/** x25519 public key for data encryption. */\n\texport class $mol_crypto2_socket extends $mol_crypto2_key {\n\t\t\n\t\t/** Native WebAPI public key. */\n\t\t@ $mol_memo.method\n\t\tasync native() {\n\t\t\t\n\t\t\treturn await $mol_crypto_native.subtle.importKey(\n\t\t\t\t'jwk',\n\t\t\t\t{\n\t\t\t\t\tcrv: 'X25519',\n\t\t\t\t\text: true,\n\t\t\t\t\tkty: 'OKP',\n\t\t\t\t\tkey_ops: [],\n\t\t\t\t\tx: this.toString(),\n\t\t\t\t},\n\t\t\t\t\"X25519\",\n\t\t\t\ttrue,\n\t\t\t\t[],\n\t\t\t).catch( $mol_crypto_restack )\n\t\t\t\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\t/** Compose public key for verifying and encryption, based on Curve25519. */\n\texport class $mol_crypto2_public extends $mol_crypto2_key {\n\t\t\n\t\tstatic size_str = 86\n\t\tstatic size_bin = 64\n\t\t\n\t\t/** Return Auditor part. */\n\t\t@ $mol_memo.method\n\t\tauditor() {\n\t\t\treturn $mol_crypto2_auditor.from( this.asArray().subarray( 0, 32 ) )\n\t\t}\n\t\t\n\t\t/** Return Socket part. */\n\t\t@ $mol_memo.method\n\t\tsocket() {\n\t\t\treturn $mol_crypto2_socket.from( this.asArray().subarray( 32, 64 ) )\n\t\t}\n\t\t\n\t\t@ $mol_memo.method\n\t\ttoString() {\n\t\t\treturn this.auditor().toString() + this.socket().toString()\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\t/** Ed25519 private key for data signing. */\n\texport class $mol_crypto2_signer extends $mol_crypto2_auditor {\n\t\t\n\t\tstatic size_sign = 64\n\t\t\n\t\t/** Generates new Signer. */\n\t\tstatic async generate() {\n\t\t\t\n\t\t\tconst pair = await $mol_crypto_native.subtle.generateKey(\n\t\t\t\t\"Ed25519\",\n\t\t\t\tBoolean( 'extractable' ),\n\t\t\t\t[ 'sign', 'verify' ]\n\t\t\t).catch( $mol_crypto_restack )\n\t\t\t\n\t\t\tconst { x, d } = await $mol_crypto_native.subtle.exportKey( 'jwk', pair.privateKey ).catch( $mol_crypto_restack )\n\t\t\treturn this.from( x + d! )\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Native WebAPI private key. */\n\t\t@ $mol_memo.method\n\t\tasync nativePrivate() {\n\t\t\t\n\t\t\treturn await $mol_crypto_native.subtle.importKey(\n\t\t\t\t'jwk',\n\t\t\t\t{\n\t\t\t\t\tcrv: \"Ed25519\",\n\t\t\t\t\text: true,\n\t\t\t\t\tkey_ops: [ 'sign' ],\n\t\t\t\t\tkty: \"OKP\",\n\t\t\t\t\tx: this.toString(),\n\t\t\t\t\td: this.toStringPrivate(),\n\t\t\t\t},\n\t\t\t\t\"Ed25519\",\n\t\t\t\tBoolean( 'extractable' ),\n\t\t\t\t[ 'sign' ],\n\t\t\t).catch( $mol_crypto_restack )\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Array view of private part. */\n\t\tasArrayPrivate() {\n\t\t\treturn new Uint8Array( this.buffer, this.byteOffset + 32, 32 )\n\t\t}\n\t\t\n\t\t/** String representation of private part. */\n\t\t@ $mol_memo.method\n\t\ttoStringPrivate() {\n\t\t\treturn $mol_base64_url_encode( this.asArrayPrivate() )\n\t\t}\n\t\t\n\t\t/** Returns Auditor from this Signer. */\n\t\t@ $mol_memo.method\n\t\tauditor() {\n\t\t\treturn $mol_crypto2_auditor.from( this.asArray() )\n\t\t}\n\t\t\n\t\t/** Makes Signature for data. */\n\t\tasync sign( data: BufferSource ) {\n\t\t\t\n\t\t\treturn new Uint8Array( await $mol_crypto_native.subtle.sign(\n\t\t\t\t\"Ed25519\",\n\t\t\t\tawait this.nativePrivate(),\n\t\t\t\tdata\n\t\t\t).catch( $mol_crypto_restack ) )\n\t\t\t\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\tasync 'str & bin sizes'() {\n\t\t\t\n\t\t\tconst signer = await $$.$mol_crypto2_signer.generate()\n\t\t\tconst auditor = signer.auditor()\n\t\t\t\n\t\t\t$mol_assert_equal( signer.toStringPrivate().length, $mol_crypto2_signer.size_str )\n\t\t\t$mol_assert_equal( auditor.toString().length, $mol_crypto2_auditor.size_str )\n\t\t\t\n\t\t\t$mol_assert_equal( signer.asArrayPrivate().length, $mol_crypto2_signer.size_bin )\n\t\t\t$mol_assert_equal( auditor.asArray().length, $mol_crypto2_auditor.size_bin )\n\t\t\t\n\t\t\tconst data = new Uint8Array([ 1, 2, 3 ])\n\t\t\tconst sign = await signer.sign( data )\n\t\t\t$mol_assert_equal( sign.byteLength, $mol_crypto2_signer.size_sign )\n\t\t\t\n\t\t},\n\t\t\n\t\tasync 'verify self signed with auto generated key'() {\n\t\t\t\n\t\t\tconst Alice = await $$.$mol_crypto2_signer.generate()\n\t\t\tconst data = new Uint8Array([ 1, 2, 3 ])\n\t\t\tconst sign = await Alice.sign( data )\n\t\t\t\n\t\t\t$mol_assert_equal( true, await Alice.auditor().verify( data, sign ) )\n\t\t\t\n\t\t},\n\t\t\n\t\tasync 'verify signed with str exported auto generated key'() {\n\t\t\t\n\t\t\tconst Alice = await $$.$mol_crypto2_signer.generate()\n\t\t\tconst data = new Uint8Array([ 1, 2, 3 ])\n\t\t\t\n\t\t\tconst Bella = $mol_crypto2_signer.from( Alice.toString() + Alice.toStringPrivate() )\n\t\t\tconst sign = await Bella.sign( data )\n\t\t\t\n\t\t\tconst Catie = $mol_crypto2_auditor.from( Alice.auditor().toString() )\n\t\t\t$mol_assert_equal( true, await Catie.verify( data, sign ) )\n\t\t\t\n\t\t\tconst Diana = $mol_crypto2_auditor.from( Alice.toString() )\n\t\t\t$mol_assert_equal( true, await Diana.verify( data, sign ) )\n\t\t\t\n\t\t},\n\t\t\n\t\tasync 'verify signed with bin exported auto generated key'() {\n\t\t\t\n\t\t\tconst Alice = await $$.$mol_crypto2_signer.generate()\n\t\t\tconst data = new Uint8Array([ 1, 2, 3 ])\n\t\t\t\n\t\t\tconst Bella = $mol_crypto2_signer.from( new Uint8Array([ ... Alice.asArray(), ... Alice.asArrayPrivate() ]) )\n\t\t\tconst sign = await Bella.sign( data )\n\t\t\t\n\t\t\tconst Catie = $mol_crypto2_auditor.from( Alice.auditor().asArray() )\n\t\t\t$mol_assert_equal( true, await Catie.verify( data, sign ) )\n\t\t\t\n\t\t\tconst Diana = $mol_crypto2_auditor.from( Alice.asArray() )\n\t\t\t$mol_assert_equal( true, await Diana.verify( data, sign ) )\n\t\t\t\n\t\t},\n\t\t\n\t})\n}\n","namespace $ {\n\t\n\t/** 16 unique bytes. */\n\texport function $mol_crypto2_nonce() {\n\t\treturn $mol_crypto_native.getRandomValues(\n\t\t\tnew Uint8Array( 16 )\n\t\t)\n\t}\n\t\n}\n","namespace $ {\n\t/** @deprecated Use $mol_crypto2_nonce */\n\texport let $mol_crypto_salt = $mol_crypto2_nonce\n}\n","namespace $ {\n\t\n\ttype BufferSource = ArrayBufferView< ArrayBuffer > | ArrayBuffer\n\t\n\t/** Symmetric cipher with shortest payload. */\n\texport class $mol_crypto_sacred extends $mol_buffer {\n\t\t\n\t\t/** Key size in bytes. */\n\t\tstatic size = 16 as const\n\t\t\n\t\t/** Makes new random secret. */\n\t\tstatic make() {\n\t\t\treturn this.from( $mol_crypto_salt() )\n\t\t}\n\t\t\n\t\t/** Makes from string of buffer view. */\n\t\tstatic from< This extends typeof $mol_buffer >(\n\t\t\tthis: This,\n\t\t\tserial: string | ArrayBufferView< ArrayBuffer >,\n\t\t) {\n\t\t\t\n\t\t\tif( typeof serial === 'string' ) {\n\t\t\t\tserial = new Uint8Array([\n\t\t\t\t\t... $mol_base64_url_decode( serial ),\n\t\t\t\t]) as Uint8Array< ArrayBuffer >\n\t\t\t}\n\t\t\t\n\t\t\tif(!( serial instanceof Uint8Array )) {\n\t\t\t\tserial = new Uint8Array( serial.buffer, serial.byteOffset, serial.byteLength )\n\t\t\t}\n\t\t\t\n\t\t\t;( serial as Uint8Array )[0] = 0xFF\n\t\t\t\n\t\t\tconst sacred = super.from( serial ) as InstanceType< This >\n\t\t\n\t\t\treturn sacred\n\t\t}\n\t\t\n\t\tstatic async from_native( native: CryptoKey ) {\n\t\t\t\n\t\t\tconst buf = await $mol_crypto_native.subtle.exportKey( 'raw', native ).catch( $mol_crypto_restack )\n\t\t\t\n\t\t\tconst sacred = this.from( new Uint8Array( buf ) )\n\t\t\tsacred._native = native as CryptoKey & { type: 'secret' }\n\t\t\t\n\t\t\treturn sacred\n\t\t}\n\t\t\n\t\tconstructor( buffer: ArrayBuffer, byteOffset?: number, byteLength?: number ) {\n\t\t\tsuper( buffer, byteOffset, byteLength )\n\t\t\tif( this.getUint8( 0 ) !== 0xFF ) $mol_fail( new Error( 'Buffer should starts with 0xFF byte' ) )\n\t\t}\n\t\t\n\t\t@ $mol_memo.method\n\t\ttoString() {\n\t\t\treturn $mol_base64_url_encode( this.asArray() )\n\t\t}\n\t\t\n\t\t_native: undefined | CryptoKey & { type: 'secret' }\n\t\t/** Native crypto secret */\n\t\tasync native() {\n\t\t\treturn this._native ?? ( this._native = await $mol_crypto_native.subtle.importKey(\n\t\t\t\t'raw',\n\t\t\t\tthis,\n\t\t\t\t{\n\t\t\t\t\tname: 'AES-CBC',\n\t\t\t\t\tlength: 128,\n\t\t\t\t},\n\t\t\t\ttrue,\n\t\t\t\t[ 'encrypt', 'decrypt' ],\n\t\t\t).catch( $mol_crypto_restack ) as CryptoKey & { type: 'secret' } )\n\t\t}\n\t\t\n\t\t/** Encrypt any binary message. 16n bytes */\n\t\tasync encrypt( open: BufferSource, salt: BufferSource ) {\n\t\t\treturn new Uint8Array( await $mol_crypto_native.subtle.encrypt(\n\t\t\t\t{\n\t\t\t\t\tname: 'AES-CBC',\n\t\t\t\t\tlength: 128,\n\t\t\t\t\ttagLength: 32,\n\t\t\t\t\tiv: salt,\n\t\t\t\t},\n\t\t\t\tawait this.native(),\n\t\t\t\topen\n\t\t\t).catch( $mol_crypto_restack ) )\n\t\t}\n\t\t\n\t\t/** Decrypt any binary message. */\n\t\tasync decrypt( closed: BufferSource, salt : BufferSource ) {\n\t\t\treturn new Uint8Array( await $mol_crypto_native.subtle.decrypt(\n\t\t\t\t{\n\t\t\t\t\tname: 'AES-CBC',\n\t\t\t\t\tlength: 128,\n\t\t\t\t\ttagLength: 32,\n\t\t\t\t\tiv: salt,\n\t\t\t\t},\n\t\t\t\tawait this.native(),\n\t\t\t\tclosed\n\t\t\t).catch( $mol_crypto_restack ) )\n\t\t}\n\t\t\n\t\t/** Encrypts 0xFF prefixed buffer. 16 bytes */\n\t\tasync close( opened: DataView< ArrayBuffer >, salt: BufferSource ) {\n\t\t\tif( opened.getUint8(0) !== 0xFF ) throw new Error( 'Closable buffer should starts with 0xFF' )\n\t\t\tconst trimed = new Uint8Array( opened.buffer, opened.byteOffset + 1, opened.byteLength - 1 )\n\t\t\treturn this.encrypt( trimed, salt )\n\t\t}\n\t\t\n\t\t/** Decrypts 0xFF prefixed buffer. 16 bytes */\n\t\tasync open( closed: Uint8Array< ArrayBuffer >, salt: BufferSource ) {\n\t\t\t\n\t\t\tconst trimed = await this.decrypt( closed, salt )\n\t\t\tif( trimed.byteLength !== closed.byteLength - 1 ) throw new Error( 'Length of opened buffer should be ' + ( closed.byteLength - 1 ) )\n\t\t\t\n\t\t\tconst opened = new Uint8Array( closed.byteLength )\n\t\t\topened[0] = 0xFF\n\t\t\topened.set( trimed, 1 )\n\t\t\t\n\t\t\treturn opened\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\tasync 'Sizes'() {\n\t\t\t\n\t\t\tconst secret = $mol_crypto_sacred.make()\n\t\t\t\n\t\t\tconst key = secret.asArray()\n\t\t\t$mol_assert_equal( key.byteLength, $mol_crypto_sacred.size )\n\t\t\t\n\t\t\tconst data = new Uint8Array([1,2,3])\n\t\t\tconst salt = $mol_crypto_salt()\n\t\t\t\n\t\t\tconst closed = await secret.encrypt( data, salt )\n\t\t\t$mol_assert_equal( closed.byteLength, $mol_crypto_sacred.size )\n\t\t\t\n\t\t\tconst self_closed = await secret.close( secret, salt )\n\t\t\t$mol_assert_equal( self_closed.byteLength, $mol_crypto_sacred.size )\n\t\t\t\n\t\t},\n\t\t\n\t\tasync 'Decrypt self encrypted'() {\n\t\t\t\n\t\t\tconst secret = $mol_crypto_sacred.make()\n\t\t\t\n\t\t\tconst data = new Uint8Array([1,2,3])\n\t\t\tconst salt = $mol_crypto_salt()\n\t\t\t\n\t\t\tconst closed = await secret.encrypt( data, salt )\n\t\t\tconst opened = await secret.decrypt( closed, salt )\n\t\t\t\n\t\t\t$mol_assert_equal( data, opened )\n\t\t\t\n\t\t},\n\t\t\n\t\tasync 'Decrypt encrypted with exported key'() {\n\t\t\t\n\t\t\tconst data = new Uint8Array([1,2,3])\n\t\t\tconst salt = $mol_crypto_salt()\n\t\t\t\n\t\t\tconst Alice = $mol_crypto_sacred.make()\n\t\t\tconst closed = await Alice.encrypt( data, salt )\n\t\t\t\n\t\t\tconst Bob = $mol_crypto_sacred.from( Alice.asArray() )\n\t\t\tconst opened = await Bob.decrypt( closed, salt )\n\t\t\t\n\t\t\t$mol_assert_equal( data, opened )\n\t\t\t\n\t\t},\n\t\t\n\t})\n}\n","namespace $ {\n\t/** x25519 private key for data encryption. */\n\texport class $mol_crypto2_cipher extends $mol_crypto2_socket {\n\t\t\n\t\tstatic size_secret = 16\n\t\t\n\t\t/** Generates new Cipher. */\n\t\tstatic async generate() {\n\t\t\t\n\t\t\tconst pair = await $mol_crypto_native.subtle.generateKey(\n\t\t\t\t\"X25519\",\n\t\t\t\tBoolean( 'extractable' ),\n\t\t\t\t[ 'deriveKey' ]\n\t\t\t).catch( $mol_crypto_restack ) as CryptoKeyPair\n\t\t\t\n\t\t\tconst { x, d } = await $mol_crypto_native.subtle.exportKey( 'jwk', pair.privateKey ).catch( $mol_crypto_restack )\n\t\t\treturn this.from( x + d! )\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Native WebAPI private key. */\n\t\t@ $mol_memo.method\n\t\tasync nativePrivate() {\n\t\t\t\n\t\t\treturn $mol_crypto_native.subtle.importKey(\n\t\t\t\t'jwk',\n\t\t\t\t{\n\t\t\t\t\tcrv: 'X25519',\n\t\t\t\t\text: true,\n\t\t\t\t\tkty: 'OKP',\n\t\t\t\t\tkey_ops: [ 'deriveKey', 'deriveBits' ],\n\t\t\t\t\tx: this.toString(),\n\t\t\t\t\td: this.toStringPrivate(),\n\t\t\t\t},\n\t\t\t\t\"X25519\",\n\t\t\t\tBoolean( 'extractable' ),\n\t\t\t\t[ 'deriveKey', 'deriveBits' ],\n\t\t\t).catch( $mol_crypto_restack )\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Array view of private part. */\n\t\tasArrayPrivate() {\n\t\t\treturn new Uint8Array( this.buffer, this.byteOffset + 32, 32 )\n\t\t}\n\t\t\n\t\t/** String representation of private part. */\n\t\t@ $mol_memo.method\n\t\ttoStringPrivate() {\n\t\t\treturn $mol_base64_url_encode( this.asArrayPrivate() )\n\t\t}\n\t\t\n\t\t/** Returns Socket from this Chipher. */\n\t\t@ $mol_memo.method\n\t\tsocket() {\n\t\t\treturn $mol_crypto2_socket.from( this.asArray() )\n\t\t}\n\t\t\n\t\t/** Makes shared secret for combination of Chiper and Soacket. */\n\t\tasync secret( pub: $mol_crypto2_socket ) {\n\t\t\t\t\n\t\t\treturn $mol_crypto_sacred.from( new Uint8Array(\n\t\t\t\tawait $mol_crypto_native.subtle.deriveBits(\n\t\t\t\t\t{\n\t\t\t\t\t\tname: \"X25519\",\n\t\t\t\t\t\tpublic: await pub.native(),\n\t\t\t\t\t},\n\t\t\t\t\tawait this.nativePrivate(),\n\t\t\t\t\t$mol_crypto_sacred.size * 8,\n\t\t\t\t).catch( $mol_crypto_restack )\n\t\t\t) )\n\t\t\t\n\t\t}\n\t\n\t}\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\tasync 'str & bin sizes'() {\n\t\t\t\n\t\t\tconst cipher = await $$.$mol_crypto2_cipher.generate()\n\t\t\tconst socket = cipher.socket()\n\t\t\t\n\t\t\t$mol_assert_equal( cipher.toStringPrivate().length, $mol_crypto2_cipher.size_str )\n\t\t\t$mol_assert_equal( socket.toString().length, $mol_crypto2_socket.size_str )\n\t\t\t\n\t\t\t$mol_assert_equal( cipher.asArrayPrivate().length, $mol_crypto2_cipher.size_bin )\n\t\t\t$mol_assert_equal( socket.asArray().length, $mol_crypto2_socket.size_bin )\n\t\t\t\n\t\t\tconst secret = await cipher.secret( socket )\n\t\t\t$mol_assert_equal( secret.byteLength, $mol_crypto2_cipher.size_secret )\n\t\t\t\n\t\t},\n\t\t\n\t\tasync 'Shared secret from public & private keys'() {\n\t\t\t\n\t\t\tconst A = await $mol_crypto2_cipher.generate()\n\t\t\tconst B = await $mol_crypto2_cipher.generate()\n\t\t\t\n\t\t\tconst SA = await A.secret( B.socket() )\n\t\t\tconst SB = await B.secret( A.socket() )\n\t\t\t\n\t\t\t$mol_assert_equal( SA.asArray(), SB.asArray() )\n\t\t\t\n\t\t},\n\t\t\n\t})\n}\n","namespace $ {\n\t/** Compose private key for signing and encryption, based on Curve25519. */\n\texport class $mol_crypto2_private extends $mol_crypto2_public {\n\t\t\n\t\t/** Generates new private key. */\n\t\tstatic async generate() {\n\t\t\t\n\t\t\tconst [ signer, cipher ] = await Promise.all([\n\t\t\t\t$mol_crypto2_signer.generate(),\n\t\t\t\t$mol_crypto2_cipher.generate(),\n\t\t\t])\n\t\t\t\n\t\t\tconst key = $mol_crypto2_private.from( $mol_crypto2_public.size_bin + $mol_crypto2_private.size_bin )\n\t\t\t\n\t\t\tkey.asArray().set( signer.asArray(), 0 )\n\t\t\tkey.asArray().set( cipher.asArray(), 32 )\n\t\t\t\n\t\t\tkey.asArrayPrivate().set( signer.asArrayPrivate(), 0 )\n\t\t\tkey.asArrayPrivate().set( cipher.asArrayPrivate(), 32 )\n\t\t\t\n\t\t\treturn key\n\t\t}\n\t\t\n\t\t/** Return Signer part. */\n\t\t@ $mol_memo.method\n\t\tsigner() {\n\t\t\tconst signer = $mol_crypto2_signer.from( $mol_crypto2_auditor.size_bin + $mol_crypto2_signer.size_bin )\n\t\t\tsigner.asArray().set( this.asArray().subarray( 0, 32 ) )\n\t\t\tsigner.asArrayPrivate().set( this.asArrayPrivate().subarray( 0, 32 ) )\n\t\t\treturn signer\n\t\t}\n\t\t\n\t\t/** Return Cipher part. */\n\t\t@ $mol_memo.method\n\t\tcipher() {\n\t\t\tconst cipher = $mol_crypto2_cipher.from( $mol_crypto2_socket.size_bin + $mol_crypto2_cipher.size_bin )\n\t\t\tcipher.asArray().set( this.asArray().subarray( 32, 64 ) )\n\t\t\tcipher.asArrayPrivate().set( this.asArrayPrivate().subarray( 32, 64 ) )\n\t\t\treturn cipher\n\t\t}\n\t\t\n\t\t/** Return Public part. */\n\t\t@ $mol_memo.method\n\t\tpublic() {\n\t\t\treturn $mol_crypto2_public.from( this.asArray() )\n\t\t}\n\t\t\n\t\t/** Array view of private part. */\n\t\tasArrayPrivate() {\n\t\t\treturn new Uint8Array( this.buffer, this.byteOffset + 64, 64 )\n\t\t}\n\t\t\n\t\t/** String representation of private part. */\n\t\t@ $mol_memo.method\n\t\ttoStringPrivate() {\n\t\t\treturn this.signer().toStringPrivate() + this.cipher().toStringPrivate()\n\t\t}\n\t\t\n\t}\n}\n","namespace $.$$ {\n\t$mol_test({\n\t\t\n\t\tasync \"Signing & encryption\"( $ ) {\n\t\t\t\n\t\t\tconst Alice = await $mol_crypto2_private.generate()\n\t\t\tconst Bella = await $mol_crypto2_private.generate()\n\n\t\t\tconst secretA = await Alice.cipher().secret( Bella.socket() )\n\t\t\tconst secretB = await Bella.cipher().secret( Alice.socket() )\n\t\t\t$mol_assert_equal( secretA, secretB )\n\n\t\t\tconst data = new Uint8Array([ 1, 2, 3 ])\n\t\t\tconst nonce = $mol_crypto2_nonce()\n\n\t\t\tconst closed = await secretA.encrypt( data, nonce )\n\t\t\tconst digest = $mol_crypto2_hash( closed )\n\t\t\tconst sign = await Alice.signer().sign( digest )\n\n\t\t\t$mol_assert_equal( true, await Alice.auditor().verify( digest, sign ) )\n\t\t\t$mol_assert_equal( data, await secretA.decrypt( closed, nonce ) )\n\t\t\t\n\t\t},\n\t\t\n\t\tasync \"Serial & Deserial\"( $ ) {\n\t\t\t\n\t\t\tconst orig = await $mol_crypto2_private.generate()\n\t\t\t\n\t\t\tconst bin = new Uint8Array([ ... orig.asArray(), ... orig.asArrayPrivate() ])\n\t\t\tconst str = orig.toString() + orig.toStringPrivate()\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\torig,\n\t\t\t\t$mol_crypto2_private.from( bin ),\n\t\t\t\t$mol_crypto2_private.from( str ),\n\t\t\t)\n\n\t\t},\n\t\t\n\t})\n}\n","namespace $ {\n\texport class $mol_storage extends $mol_object2 {\n\t\t\n\t\t/** Is storage a long term. */\n\t\tstatic persisted( next?: boolean ) {\n\t\t\treturn false\n\t\t}\n\t\t\n\t\t/** Total storage quota in bytes. */\n\t\tstatic total() {\n\t\t\treturn 0\n\t\t}\n\t\t\n\t\t/** Total storage usage in bytes. */\n\t\tstatic used() {\n\t\t\treturn 0\n\t\t}\n\t\t\n\t\t/** Minimum available free space in bytes. */\n\t\tstatic free() {\n\t\t\treturn this.total() - this.used()\n\t\t}\n\t\t\n\t\t/** Fulfillness of storage. */\n\t\tstatic portion() {\n\t\t\t\n\t\t\tconst total = this.total()\n\t\t\tif( !total ) return 1\n\t\t\t\n\t\t\treturn this.used() / total\n\t\t}\n\t\t\n\t\t/**\n\t\t * Fulfillness logarithmic level.\n\t\t * `0` - empty\n\t\t * `1` - half free\n\t\t * `2` - quart free\n\t\t * `Infinity` - fulfilled\n\t\t */\n\t\tstatic level() {\n\t\t\treturn Math.floor( - Math.log2( 1 - this.portion() ) )\n\t\t}\n\t\t\n\t}\n}\n\n","namespace $ {\n\texport class $mol_storage_node extends $mol_storage {\n\t\t\n\t\tstatic override persisted() {\n\t\t\treturn true\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic stats() {\n\t\t\t$mol_state_time.now( 1000 )\n\t\t\treturn $node.fs.statfsSync( '.' )\n\t\t}\n\t\t\n\t\tstatic override total() {\n\t\t\tconst { blocks, bsize } = this.stats()\n\t\t\treturn blocks * bsize\n\t\t}\n\t\t\n\t\tstatic override used() {\n\t\t\tconst { blocks, bfree, bsize } = this.stats()\n\t\t\treturn ( blocks - bfree ) * bsize\n\t\t}\n\t\t\n\t\tstatic override free() {\n\t\t\tconst { bfree, bsize } = this.stats()\n\t\t\treturn bfree * bsize\n\t\t}\n\t\t\n\t\tstatic override portion() {\n\t\t\t\n\t\t\tconst { blocks, bfree } = this.stats()\n\t\t\tif( !blocks ) return 1\n\t\t\t\n\t\t\treturn ( blocks - bfree ) / blocks\n\t\t}\n\t\t\n\t}\n\t$.$mol_storage = $.$mol_storage_node\n}\n","namespace $ {\n\t\n\texport class $mol_state_local< Value > extends $mol_object {\n\t\t\n\t\tstatic 'native()' : Pick< Storage , 'getItem'|'setItem'|'removeItem' >\n\t\tstatic native() {\n\t\t\tif( this['native()'] ) return this['native()']\n\n\t\t\tcheck : try {\n\t\t\t\tconst native = $mol_dom_context.localStorage\n\t\t\t\tif( !native ) break check\n\t\t\t\t\n\t\t\t\tnative.setItem( '' , '' )\n\t\t\t\tnative.removeItem( '' )\n\t\t\t\treturn this['native()'] = native\n\t\t\t} catch( error: any ) {\n\t\t\t\tconsole.warn( error )\n\t\t\t}\n\n\t\t\treturn this['native()'] = {\n\t\t\t\tgetItem( key : string ) {\n\t\t\t\t\treturn (this as any)[ ':' + key ]\n\t\t\t\t} ,\n\t\t\t\tsetItem( key : string , value : string ) {\n\t\t\t\t\t(this as any)[ ':' + key ] = value\n\t\t\t\t} ,\n\t\t\t\tremoveItem( key : string ) {\n\t\t\t\t\t(this as any)[ ':' + key ] = void 0\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic changes( next?: StorageEvent ) { return next }\n\n\t\t@ $mol_mem_key\n\t\tstatic value< Value >(\n\t\t\tkey : string ,\n\t\t\tnext? : Value | null ,\n\t\t) : Value | null {\n\t\t\t\n\t\t\tthis.changes()\n\t\t\t\n\t\t\tif( next === void 0 ) return JSON.parse( this.native().getItem( key ) || 'null' )\n\t\t\t\n\t\t\tif( next === null ) {\n\t\t\t\tthis.native().removeItem( key )\n\t\t\t} else {\n\t\t\t\tthis.native().setItem( key , JSON.stringify( next ) )\n\t\t\t\tthis.$.$mol_storage.persisted( true )\n\t\t\t}\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tprefix() { return '' }\n\t\t\n\t\tvalue( key : string , next? : Value ) {\n\t\t\treturn $mol_state_local.value( this.prefix() + '.' + key , next )\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t$mol_test( { \n\t\t\n\t\t'const returns stored value'() {\n\t\t\n\t\t\tconst foo = { bar : $mol_const( Math.random() ) }\n\t\t\t\n\t\t\t$mol_assert_equal( foo.bar() , foo.bar() )\n\t\t\t$mol_assert_equal( foo.bar() , foo.bar['()'] )\n\t\t\t\n\t\t} ,\n\n\t} )\n}\n","namespace $ {\n\t/**\n\t * Decorates method to fiber to ensure it is executed only once inside other fiber from [mol_wire](../wire/README.md)\n\t * @see https://mol.hyoo.ru/#!section=docs/=1fcpsq_1wh0h2\n\t */\n\texport let $mol_action = $mol_wire_method\n}\n","namespace $ {\n\texport class $mol_lock extends $mol_object {\n\t\tprotected promise = null as null | Promise<void>\n\n\t\tasync wait() {\n let next = () => {}\n\t\t\tlet destructed = false\n const task = $mol_wire_auto()\n\t\t\tif (! task) return next\n\n\t\t\tconst destructor = task.destructor.bind(task)\n task.destructor = ()=> {\n\t\t\t\tdestructor()\n\t\t\t\tdestructed = true\n next()\n }\n\n\t\t\tlet promise\n\n\t\t\tdo {\n\t\t\t\tpromise = this.promise\n\t\t\t\tawait promise\n\t\t\t\tif (destructed) return next\n\t\t\t} while (promise !== this.promise)\n\n\t\t\tthis.promise = new Promise(done => { next = done })\n\t\t\treturn next\n\t\t}\n\n\t\tgrab() { return $mol_wire_sync(this).wait() }\n\t}\n}\n","namespace $ {\n\texport let $mol_mem_cached = $mol_wire_probe\n}\n","namespace $ {\n export function $mol_compare_array<Value extends ArrayLike<unknown>>(a: Value, b: Value): boolean {\n\t\tif (a === b) return true\n\t\tif (Object.getPrototypeOf(a) !== Object.getPrototypeOf(b)) return false\n\t\tif (a.length !== b.length) return false\n\n\t\tfor (let i = 0; i < a.length; i++)\n\t\t\tif (a[i] !== b[i]) return false\n\n\t\treturn true\n\t}\n}\n","namespace $ {\n\n\tclass TestClass extends Uint8Array {}\n\n\t$mol_test({\n\t\t'Uint8Array vs itself'() {\n\t\t\t$mol_assert_ok( $mol_compare_array( new Uint8Array , new Uint8Array ) )\n\t\t\t$mol_assert_ok( $mol_compare_array( new Uint8Array([ 0 ]) , new Uint8Array([ 0 ]) ) )\n\t\t\t$mol_assert_not( $mol_compare_array( new Uint8Array([ 0 ]) , new Uint8Array([ 1 ]) ) )\n\t\t} ,\n\n\t\t'Uint8Array vs subclassed array'() {\n\t\t\t$mol_assert_not( $mol_compare_array( new Uint8Array , new TestClass ) )\n\t\t} ,\n\n\t})\n}\n","namespace $ {\n\n\tconst decoders = {} as { [ key in $mol_charset_encoding ]?: TextDecoder }\n\n\texport function $mol_charset_decode(\n\t\tbuffer: AllowSharedBufferSource,\n\t\tencoding: $mol_charset_encoding = 'utf8',\n\t) {\n\t\t\n\t\tlet decoder = decoders[ encoding ]\n\t\tif( !decoder ) decoder = decoders[ encoding ] = new TextDecoder( encoding )\n\t\t\n\t\treturn decoder.decode( buffer )\n\t}\n\n}\n","namespace $ {\n\t$mol_test({\n\t\t'decode utf8 string'() {\n\t\t\tconst str = 'Hello, ΧΨΩЫ'\n\t\t\tconst encoded = new Uint8Array( [ 72, 101, 108, 108, 111, 44, 32, 206, 167, 206, 168, 206, 169, 208, 171 ] )\n\n\t\t\t$mol_assert_equal( $mol_charset_decode(encoded), str )\n\t\t\t$mol_assert_equal( $mol_charset_decode(encoded, 'utf8'), str )\n\t\t},\n\n\t\t'decode empty string'() {\n\t\t\tconst encoded = new Uint8Array( [] )\n\n\t\t\t$mol_assert_equal( $mol_charset_decode(encoded), '' )\n\t\t},\n\t})\n}\n","namespace $ {\n\n\texport type $mol_file_transaction_mode = 'create' | 'exists_truncate' | 'exists_fail' | 'read_only' | 'write_only' | 'read_write' | 'append'\n\n\texport type $mol_file_transaction_buffer = ArrayBufferView\n\n\texport class $mol_file_transaction extends $mol_object {\n\t\t\n\t\tpath() { return '' }\n\n\t\tmodes() { return [] as readonly $mol_file_transaction_mode[] }\n\n\t\twrite(options: {\n\t\t\tbuffer: ArrayBufferView | string | readonly ArrayBufferView[],\n\t\t\toffset?: number | null,\n\t\t\tlength?: number | null,\n\t\t\tposition?: number | null,\n\t\t}): number {\n\t\t\tthrow new Error('Not implemented')\n\t\t}\n\n\t\tread(): Uint8Array< ArrayBuffer > {\n\t\t\tthrow new Error('Not implemented')\n\t\t}\n\n\t\ttruncate(size: number) {\n\t\t\tthrow new Error('Not implemented')\n\t\t}\n\n\t\tflush() {\n\t\t\tthrow new Error('Not implemented')\n\t\t}\n\t\t\n\t\tclose() {\n\t\t\tthrow new Error('Not implemented')\n\t\t}\n\n\t\toverride destructor() {\n\t\t\tthis.close()\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\tenum file_modes {\n\t\t/** create if it doesn't already exist */\n\t\tcreate = $node.fs.constants.O_CREAT,\n\t\t/** truncate to zero size if it already exists */\n\t\texists_truncate = $node.fs.constants.O_TRUNC,\n\t\t/** throw exception if it already exists */\n\t\texists_fail = $node.fs.constants.O_EXCL,\n\t\tread_only = $node.fs.constants.O_RDONLY,\n\t\twrite_only = $node.fs.constants.O_WRONLY,\n\t\tread_write = $node.fs.constants.O_RDWR,\n\t\t/** data will be appended to the end */\n\t\tappend = $node.fs.constants.O_APPEND,\n\t}\n\n\tfunction mode_mask(modes: readonly $mol_file_transaction_mode[]) {\n\t\treturn modes.reduce( ( res, mode )=> res | file_modes[ mode ], 0 )\n\t}\n\n\texport class $mol_file_transaction_node extends $mol_file_transaction {\n\t\t@ $mol_mem\n\t\tprotected descr() {\n\t\t\t$mol_wire_solid()\n\t\t\treturn $node.fs.openSync(this.path(), mode_mask(this.modes()) )\n\t\t}\n\n\t\toverride write({ buffer, offset = 0, length, position = null }: {\n\t\t\tbuffer: ArrayBufferView | string | readonly ArrayBufferView[],\n\t\t\toffset?: number | null,\n\t\t\tlength?: number | null,\n\t\t\tposition?: number | null,\n\t\t}) {\n\t\t\tif (Array.isArray(buffer)) {\n\t\t\t\treturn $node.fs.writevSync( this.descr(), buffer, position ?? undefined)\n\t\t\t}\n\n\t\t\tif (typeof buffer === 'string') {\n\t\t\t\treturn $node.fs.writeSync( this.descr(), buffer, position )\n\t\t\t}\n\n\t\t\tlength = length ?? (buffer as ArrayBufferView).byteLength\n\n\t\t\treturn $node.fs.writeSync( this.descr(), buffer as NodeJS.ArrayBufferView, offset, length, position )\n\t\t}\n\n\t\toverride truncate(size: number) {\n\t\t\t$node.fs.ftruncateSync(this.descr())\n\t\t}\n\n\t\toverride read() {\n\t\t\treturn $mol_file_node_buffer_normalize($node.fs.readFileSync(this.descr()) as Buffer< ArrayBuffer >)\n\t\t}\n\n\t\toverride flush() {\n\t\t\t$node.fs.fsyncSync( this.descr() )\n\t\t}\n\n\t\toverride close() {\n\t\t\t$node.fs.closeSync( this.descr() )\n\t\t}\t\n\n\t}\n\n\t$.$mol_file_transaction = $mol_file_transaction_node\n}\n","namespace $ {\n\n\texport class $mol_file_base extends $mol_object {\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic absolute<This extends typeof $mol_file_base>(this: This, path : string ) {\n\t\t\treturn this.make<typeof $mol_file_base>({\n\t\t\t\tpath : $mol_const( path )\n\t\t\t}) as InstanceType< This >\n\t\t}\n\n\t\tstatic relative<This extends typeof $mol_file_base>(this: This, path : string ) : InstanceType<This> {\n\t\t\tthrow new Error( 'Not implemented yet' )\n\t\t}\n\t\t\n\t\tstatic base = ''\n\t\t\n\t\tpath() {\n\t\t\treturn '.'\n\t\t}\n\t\t\n\t\tparent() {\n\t\t\treturn this.resolve( '..' )\n\t\t}\n\n\t\t@ $mol_action\n\t\texists_cut() { return this.exists() }\n\n\t\tprotected root() {\n\t\t\tconst path = this.path()\n\t\t\tconst base = (this.constructor as typeof $mol_file_base).base\n\n\t\t\t// Если путь выше или равен base или если parent такойже как и this - считаем это корнем\n\t\t\treturn base.startsWith(path) || this == this.parent()\n\t\t}\n\n\t\t@ $mol_mem\n\t\tprotected stat(next? : $mol_file_stat | null, virt?: 'virt') {\n\n\t\t\tconst path = this.path()\n\t\t\tconst parent = this.parent()\n\n\t\t\t// Отслеживать проверку наличия родительской папки не стоит до корня диска\n\t\t\t// Лучше ограничить mam-ом\n\t\t\tif ( ! this.root() ) {\n\t\t\t\t/*\n\t\t\t\tЕсли parent папка удалилась, надо ресетнуть все объекты в ней на любой глубине.\n\t\t\t\tНапример, rm -rf с последующим git pull: parent папка может удалиться, потом создасться,\n\t\t\t\tа текущая папка успеет только удалиться до момента выполнения stat.\n\t\t\t\tПоэтому parent.exists() не запустит перевычисления, нужна именно parent.version()\n\n\t\t\t\tОднако, parent.version() меняется не только при удалении, будет ложное срабатывание\n\t\t\t\tС этим придется мириться, красивого решения пока нет.\n\t\t\t\t*/\n\n\t\t\t\tparent.version()\n\t\t\t}\n\t\t\tparent.watcher()\n\n\t\t\tif( virt ) return next ?? null\n\t\t\t\n\t\t\treturn next ?? this.info(path)\n\t\t}\n\n\t\tprotected static changed = new Set<$mol_file_base>\n\n\t\tprotected static frame = null as null | $mol_after_timeout\n\n\t\tprotected static changed_add(type: 'change' | 'rename', path: string) {\n\t\t\tif (/([\\/\\\\]\\.|___$)/.test( path )) return\n\n\t\t\tconst file = this.relative( path.at(-1) === '/' ? path.slice(0, -1) : path )\n\t\t\t// console.log(type, path)\n\n\t\t\t// add (change): добавился файл - у parent надо обновить список sub, если он был заюзан\n\t\t\t// change, unlink (rename): обновился или удалился файл - ресетим\n\t\t\t// addDir (change), добавилась папка, у parent обновляем список директорий в sub\n\t\t\t// дочерние ресетим\n\n\t\t\t// unlinkDir (rename), удалилась папка, ресетим ее\n\t\t\t// stat у всех дочерних обновится сам, т.к. связан с parent.version()\n\t\t\tthis.changed.add(file)\n\n\t\t\tif (! this.watching) return\n\n\t\t\t// throttle, пока события поступают не сбрасываем.\n\t\t\t// аналог awaitWriteFinish из chokidar\n\t\t\t// интервалы между change-сообщениями модифицируемого файла должны быть меньше watch_debounce\n\t\t\tthis.frame?.destructor()\n\t\t\tthis.frame = new this.$.$mol_after_timeout(this.watch_debounce(), () => {\n\t\t\t\tif (! this.watching) return\n\t\t\t\tthis.watching = false\n\t\t\t\t$mol_wire_async(this).flush()\n\t\t\t} )\n\t\t}\n\n\t\t/**\n\t\t * Должно быть больше, чем время между событиями от вотчера при записи внешним процессом.\n\t\t * Иначе запуск ресетов паралельно с изменением может привести к неконсистентности.\n\t\t */\n\t\tstatic watch_debounce() { return 500 }\n\n\t\t@ $mol_action\n\t\tstatic flush() {\n\t\t\t// Пока flush работает, вотчер сюда не заходит, но может добавлять новые изменения\n\t\t\t// на каждом перезапуске они применятся\n\t\t\t// Пока run выполняется, изменения накапливаются, в конце run вызывается flush\n\t\t\t// Пока применяются изменения, run должен ожидать конца flush\n\n\t\t\tfor (const file of this.changed) {\n\t\t\t\tconst parent = file.parent()\n\n\t\t\t\ttry {\n\t\t\t\t\tif ( $mol_wire_probe(() => parent.sub()) ) parent.sub(null)\n\t\t\t\t\tfile.reset()\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif ($mol_fail_catch(error)) $mol_fail_log(error)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.changed.clear()\n\t\t\tthis.watching = true\n\n\t\t\t// this.watch_wd?.destructor()\n\t\t\t// this.watch_wd = null\n\t}\n\n\t\tprotected static watching = true\n\n\t\tprotected static lock = new $mol_lock\n\n\t\t@ $mol_action\n\t\tprotected static watch_off(path: string) {\n\t\t\tthis.watching = false\n\t\t\t// run должен ожидать конца flush\n\t\t\tthis.flush()\n\t\t\tthis.watching = false\n\n\t\t\t/*\n\t\t\twatch запаздывает и событие может прилететь через 3 сек после окончания сайд эффекта\n\t\t\tпоэтому добавляем папку, которую меняет side_effect\n\t\t\tКогда дойдет до выполнения flush, он ресетнет ее\n\t\t\t\n\t\t\tИначе будут лишние срабатывания\n\t\t\tНапример, удалили hyoo/board, watch ресетит и exists начинает отдавать false, срабатывает git clone\n\t\t\tСразу после него событие addDir еще не успело прийти,\n\t\t\tна следующем перезапуске вызывается git pull, т.к.\n\t\t\tс точки зрения реактивной системы hyoo/board еще не существует.\n\t\t\t*/\n\t\t\tthis.changed.add(this.absolute(path))\n\t\t}\n\t\n\t\t// protected static watch_wd = null as null | $mol_after_timeout\n\n\t\tstatic unwatched<Result>(side_effect: () => Result, affected_dir: string) {\n\t\t\t// ждем, пока выполнится предыдущий unwatched\n\t\t\tconst unlock = this.lock.grab()\n\t\t\tthis.watch_off(affected_dir)\n\n\t\t\ttry {\n\t\t\t\tconst result = side_effect()\n\t\t\t\tthis.flush()\n\t\t\t\tunlock()\n\t\t\t\treturn result\n\t\t\t} catch(e) {\n\t\t\t\tif (! $mol_promise_like(e)) {\n\t\t\t\t\tthis.flush()\n\t\t\t\t\tunlock()\n\t\t\t\t}\n\t\t\t\t$mol_fail_hidden(e)\n\t\t\t}\n\t\t}\n\n\t\treset() {\n\t\t\tthis.stat( null )\n\t\t}\n\n\t\t@ $mol_mem\n\t\tmodified() { return this.stat()?.mtime ?? null }\n\n\t\t@ $mol_mem\n\t\tversion() {\n\t\t\tconst next = this.stat()?.mtime.getTime().toString( 36 ).toUpperCase() ?? ''\n\t\t\t// console.log('version', next, this.path())\n\t\t\treturn next\n\t\t}\n\n\t\tprotected info( path: string ) { return null as null | $mol_file_stat }\n\t\tprotected ensure() {}\n\t\tprotected drop() {}\n\t\tprotected copy(to: string) {}\n\t\tprotected read(): Uint8Array<ArrayBuffer> { return new Uint8Array }\n\t\tprotected write(buffer: Uint8Array<ArrayBuffer>) { }\n\t\tprotected kids() {\n\t\t\treturn [] as readonly this[]\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\treadable(opts: { start?: number, end?: number }) {\n\t\t\treturn new ReadableStream<Uint8Array<ArrayBuffer>>\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\twritable(opts: { start?: number }) {\n\t\t\treturn new WritableStream<Uint8Array<ArrayBuffer>>\n\t\t}\n\n\t\t// open( ... modes: readonly $mol_file_mode[] ) { return 0 }\n\n\t\t@ $mol_mem\n\t\tbuffer( next? : Uint8Array<ArrayBuffer> ): Uint8Array<ArrayBuffer> {\n\n\t\t\t// Если версия пустая - возвращаем пустой буфер\n\t\t\tlet readed: Uint8Array<ArrayBuffer> = new Uint8Array()\n\n\t\t\tif( next === undefined ) {\n\t\t\t\t// Если меняется версия файла, буфер надо перечитать\n\t\t\t\tif ( this.version() ) readed = this.read()\n\t\t\t}\n\n\t\t\tconst prev = $mol_mem_cached( ()=> this.buffer() )\n\t\t\tconst changed = prev === undefined || ! $mol_compare_array( prev, next ?? readed)\n\n\t\t\tif( prev !== undefined && changed ) {\n\t\t\t\t// Логируем, если повторно читаем/пишем и буфер поменялся\n\t\t\t\tthis.$.$mol_log3_rise({\n\t\t\t\t\tplace: `$mol_file_node.buffer()`,\n\t\t\t\t\tmessage: 'Changed' ,\n\t\t\t\t\tpath: this.relate() ,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (next === undefined) return changed ? readed : prev\n\n\t\t\t// Если буфер при записи не поменялся и файл не удаляли перед этим - не записываем новую версию.\n\t\t\t// Если записывать, это приведет к смене mtime и вотчер снова триггернется, даже если содержимое файла не поменялось.\n\n\t\t\t// В этом алгоритме есть изъян.\n\t\t\t// Если файл записали, потом отключили вотчер, кто-то из вне его поменял, потом включили вотчер, снова записали тот же буфер,\n\t\t\t// то буфер не запишется на диск, т.к. кэш не консистентен с диском.\n\t\t\t\n\t\t\tif (! changed && this.exists()) return prev\n\t\t\t\n\t\t\tthis.parent().exists( true )\n\t\t\tthis.stat( this.stat_make(next.length), 'virt' )\n\n\t\t\tthis.write(next)\n\n\t\t\treturn next\n\n\t\t}\n\n\t\t@ $mol_action\n\t\tstat_make(size: number) {\n\t\t\tconst now = new Date()\n\t\t\treturn {\n\t\t\t\ttype: 'file',\n\t\t\t\tsize,\n\t\t\t\tatime: now,\n\t\t\t\tmtime: now,\n\t\t\t\tctime: now,\n\t\t\t} as const\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tclone(to: string) {\n\t\t\tif (! this.exists() ) return null\n\n\t\t\tconst target = (this.constructor as typeof $mol_file_base).absolute(to) as this\n\n\t\t\ttry {\n\t\t\t\tthis.version()\n\t\t\t\ttarget.parent().exists(true)\n\t\t\t\tthis.copy(to)\n\t\t\t\ttarget.reset()\n\t\t\t\treturn target\n\t\t\t} catch (error) {\n\t\t\t\tif ( $mol_fail_catch(error)) {\n\t\t\t\t\tconsole.error(error)\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null\n\t\t}\n\n\t\t// static watch_root = ''\n\n\t\t// static watcher_warned = false\n\t\twatcher() {\n\t\t\t// const constructor = this.constructor as typeof $mol_file_base\n\t\t\t// if (! constructor.watcher_warned) {\n\t\t\t// \tconsole.warn(`${constructor}.watcher() not implemented`)\n\t\t\t// \tconstructor.watcher_warned = true\n\t\t\t// }\n\n\t\t\treturn {\n\t\t\t\tdestructor() {}\n\t\t\t}\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\texists( next? : boolean ) {\n\t\t\t\n\t\t\tconst exists = Boolean( this.stat() )\n\n\t\t\t// console.log('exists current', exists, 'next', next, this.path())\n\t\t\tif( next === undefined ) return exists\n\t\t\tif( next === exists ) return exists\n\n\t\t\tif( next ) {\n\t\t\t\tthis.parent().exists( true )\n\t\t\t\tthis.ensure()\n\t\t\t} else {\n\t\t\t\tthis.drop()\n\t\t\t}\n\n\t\t\tthis.reset()\n\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\ttype() {\n\t\t\treturn this.stat()?.type ?? ''\n\t\t}\n\t\t\n\t\tname() {\n\t\t\treturn this.path().replace( /^.*\\//, '' )\n\t\t}\n\t\t\n\t\text() {\n\t\t\tconst match = /((?:\\.\\w+)+)$/.exec( this.path() )\n\t\t\treturn match ? match[ 1 ].substring( 1 ) : ''\n\t\t}\n\n\t\ttext(next?: string, virt?: 'virt') {\n\t\t\t// Если записываем text, и вотчер ресетнул записанный файл,\n\t\t\t// то надо снова его обновить, вызвать логику, которая делала пуш в text.\n\t\t\t// Например файл удалили, потом снова создали, версия поменялась - перезаписываем\n\t\t\t// Если использовать version, то вновь созданный файл, через вотчер запустит свое пересоздание\n\t\t\tif (next !== undefined) this.exists()\n\t\t\treturn this.text_int(next, virt)\n\t\t}\n\n\t\t@ $mol_mem\n\t\ttext_int(next?: string, virt?: 'virt') {\n\t\t\tif( virt ) {\n\t\t\t\tthis.stat( this.stat_make(0), 'virt' )\n\t\t\t\treturn next!\n\t\t\t}\n\n\t\t\tif( next === undefined ) {\n\t\t\t\treturn $mol_charset_decode( this.buffer( ) )\t\n\t\t\t} else {\n\t\t\t\tconst buffer = $mol_charset_encode( next )\n\t\t\t\tthis.buffer( buffer )\n\t\t\t\treturn next\n\t\t\t}\n\t\t}\n\n\t\t@ $mol_mem\n\t\tsub(reset?: null) {\n\t\t\tif (! this.exists() ) return []\n\t\t\tif ( this.type() !== 'dir') return []\n\n\t\t\tthis.version()\n\n\t\t\t// Если дочерний file удалился, список надо обновить\n\t\t\treturn this.kids().filter(file => file.exists())\n\t\t}\n\n\t\tresolve(path: string): this {\n\t\t\tthrow new Error('implement')\n\t\t}\n\n\t\trelate( base = ( this.constructor as typeof $mol_file_base ).relative( '.' )): string {\n\t\t\tconst base_path = base.path()\n\t\t\tconst path = this.path()\n\t\t\treturn path.startsWith(base_path) ? path.slice(base_path.length) : path\n\t\t}\n\n\t\tfind(\n\t\t\tinclude? : RegExp ,\n\t\t\texclude? : RegExp\n\t\t) {\n\t\t\tconst found = [] as typeof this[]\n\t\t\tconst sub = this.sub()\n\n\t\t\tfor (const child of sub) {\n\t\t\t\tconst child_path = child.path()\n\n\t\t\t\tif( exclude && child_path.match( exclude ) ) continue\n\n\t\t\t\tif( !include || child_path.match( include ) ) found.push( child )\n\n\t\t\t\tif( child.type() === 'dir' ) {\n\t\t\t\t\tconst sub_child = child.find( include , exclude )\n\t\t\t\t\tfor (const child of sub_child) found.push(child)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn found\n\t\t}\n\n\t\t@ $mol_mem\n\t\tsize() {\n\t\t\tswitch( this.type() ) {\n\t\t\t\tcase 'file': return this.stat()?.size ?? 0\n\t\t\t\tdefault: return 0\n\t\t\t}\n\t\t}\n\t\t\n\t\ttoJSON() {\n\t\t\treturn this.path()\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\topen( ... modes: readonly $mol_file_transaction_mode[] ) {\n\t\t\treturn this.$.$mol_file_transaction.make({\n\t\t\t\tpath: () => this.path(),\n\t\t\t\tmodes: () => modes\n\t\t\t})\n\t\t}\n\t}\n\n}\n","namespace $ {\n\n\texport type $mol_file_type = 'file' | 'dir' | 'link'\n\n\texport interface $mol_file_stat {\n\t\ttype: $mol_file_type\n\t\tsize: number\n\t\tatime: Date\n\t\tmtime: Date\n\t\tctime: Date\n\t}\n\n\texport class $mol_file extends $mol_file_base {}\n\n}\n","namespace $ {\n\n\tfunction stat_convert(stat: ReturnType<typeof $node.fs.statSync>): null | $mol_file_stat {\n\t\t\n\t\tif( !stat ) return null\n\t\t\n\t\tlet type: $mol_file_type | undefined\n\t\tif (stat.isDirectory()) type = 'dir'\n\t\tif (stat.isFile()) type = 'file'\n\t\tif (stat.isSymbolicLink()) type = 'link'\n\n\t\tif (! type) return $mol_fail( new Error(`Unsupported file type`) )\n\n\t\treturn {\n\t\t\ttype, \n\t\t\tsize: Number(stat.size),\n\t\t\tatime: stat.atime,\n\t\t\tmtime: stat.mtime,\n\t\t\tctime: stat.ctime\n\t\t}\n\t}\n\n\texport function $mol_file_node_buffer_normalize(buf: Buffer< ArrayBuffer >): Uint8Array< ArrayBuffer > {\n\t\treturn new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength)\n\t}\n\n\texport class $mol_file_node extends $mol_file {\n\n\t\tstatic relative<This extends typeof $mol_file>(this: This, path : string ) {\n\t\t\treturn this.absolute<This>( $node.path.resolve( this.base, path ).replace( /\\\\/g , '/' ) )\n\t\t}\n\n\t\t@ $mol_mem\n\t\toverride watcher(reset?: null) {\n\t\t\tconst path = this.path()\n\t\t\tconst root = this.root()\n\t\t\t// Если папки/файла нет, watch упадет с ошибкой\n\t\t\t// exists обратится к parent.version и parent.watcher\n\t\t\t// Поэтому у root-папки и выше не надо вызывать exists, иначе поднимется выше base до корня диска\n\t\t\t// exists вызывать надо, что б пересоздавать вотчер при появлении папки или файла\n\t\t\tif (! root && ! this.exists() ) return super.watcher()\n\n\t\t\tlet watcher\n\n\t\t\ttry {\n\t\t\t\t// Между exists и watch файл может удалиться, в любом случае надо обрабатывать ENOENT\n\t\t\t\twatcher = $node.fs.watch( path )\n\t\t\t} catch (error: any) {\n\t\t\t\tif ( ! (error instanceof Error) ) error = new Error('Unknown watch error', {cause: error})\n\t\t\t\terror.message += '\\n' + path\n\n\t\t\t\tif ( root || error.code !== 'ENOENT' ) {\n\t\t\t\t\tthis.$.$mol_fail_log(error)\n\t\t\t\t}\n\n\t\t\t\t// Если файла нет - вотчер не создается, создастся потом, когда exists поменяется на true.\n\t\t\t\t// Если создание упало с другой ошибкой - не ломаем работу mol_file, деградируем до не реактивной fs.\n\n\t\t\t\treturn super.watcher()\n\t\t\t}\n\n\t\t\twatcher.on('change', (type: 'change' | 'rename', name) => {\n\t\t\t\tif (! name) return\n\t\t\t\tconst path = $node.path.join( this.path(), name.toString() )\n\t\t\t\t;(this.constructor as typeof $mol_file_base).changed_add(type, path)\n\t\t\t})\n\n\t\t\twatcher.on('error', e => this.$.$mol_fail_log(e) )\n\n\t\t\tlet destructed = false\n\n\t\t\twatcher.on('close', () => {\n\t\t\t\t// Если в процессе работы вотчер сам закрылся, надо его переоткрыть\n\t\t\t\tif (! destructed) setTimeout(() => $mol_wire_async(this).watcher(null), 500)\n\t\t\t})\n\n\t\t\treturn {\n\t\t\t\tdestructor() {\n\t\t\t\t\tdestructed = true\n\t\t\t\t\twatcher.close()\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t@ $mol_action\n\t\tprotected override info( path: string ) {\n\t\t\ttry {\n\t\t\t\treturn stat_convert($node.fs.statSync(path))\n\t\t\t} catch( error: any ) {\n\t\t\t\tif (this.$.$mol_fail_catch(error)) {\n\t\t\t\t\tif (error.code === 'ENOENT') return null\n\t\t\t\t\tif (error.code === 'EPERM') return null\n\t\t\t\t\terror.message += '\\n' + path\n\t\t\t\t\tthis.$.$mol_fail_hidden(error)\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null\n\t\t}\n\n\t\t@ $mol_action\n\t\tprotected override ensure() {\n\t\t\tconst path = this.path()\n\t\t\ttry {\n\t\t\t\t$node.fs.mkdirSync( path, { recursive: true } )\n\t\t\t\treturn null\n\t\t\t} catch( e: any ) {\n\t\t\t\tif (this.$.$mol_fail_catch(e)) {\n\t\t\t\t\tif (e.code === 'EEXIST') return null\n\t\t\t\t\te.message += '\\n' + path\n\t\t\t\t\tthis.$.$mol_fail_hidden(e)\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t@ $mol_action\n\t\tprotected override copy(to: string) {\n\t\t\t$node.fs.copyFileSync(this.path(), to)\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tprotected override drop() {\n\t\t\t$node.fs.unlinkSync( this.path() )\n\t\t}\n\n\t\t@ $mol_action\n\t\tprotected override read() {\n\t\t\tconst path = this.path()\n\n\t\t\ttry {\n\t\t\t\treturn $mol_file_node_buffer_normalize($node.fs.readFileSync( path ) as Buffer< ArrayBuffer >)\n\t\t\t} catch( error: any ) {\n\t\t\t\tif (! $mol_promise_like(error)) {\n\t\t\t\t\terror.message += '\\n' + path\n\t\t\t\t}\n\n\t\t\t\t$mol_fail_hidden( error )\n\t\t\t}\n\t\t}\n\n\t\t@ $mol_action\n\t\tprotected override write(buffer: Uint8Array< ArrayBuffer >) {\n\t\t\tconst path = this.path()\n\n\t\t\ttry {\n\n\t\t\t\t$node.fs.writeFileSync( path, buffer )\n\n\t\t\t} catch( error: any ) {\n\t\t\t\tif (this.$.$mol_fail_catch(error)) {\n\t\t\t\t\terror.message += '\\n' + path\n\t\t\t\t}\n\t\t\t\treturn this.$.$mol_fail_hidden( error )\n\t\t\t}\n\n\t\t}\n\n\t\tprotected override kids() {\n\t\t\tconst path = this.path()\n\n\t\t\ttry {\n\t\t\t\tconst kids = $node.fs.readdirSync( path )\n\t\t\t\t\t.filter( name => !/^\\.+$/.test( name ) )\n\t\t\t\t\t.map( name => this.resolve( name ) )\n\n\t\t\t\treturn kids\n\t\t\t} catch( e: any ) {\n\t\t\t\tif (this.$.$mol_fail_catch(e)) {\n\t\t\t\t\tif (e.code === 'ENOENT') return []\n\t\t\t\t\te.message += '\\n' + path\n\t\t\t\t}\n\t\t\t\t$mol_fail_hidden(e)\n\t\t\t}\n\t\t}\n\t\t\n\t\toverride resolve( path : string ) {\n\t\t\treturn ( this.constructor as typeof $mol_file )\n\t\t\t\t.relative( $node.path.join( this.path() , path ) ) as this\n\t\t}\n\t\t\n\t\toverride relate( base = ( this.constructor as typeof $mol_file ).relative( '.' )) {\n\t\t\treturn $node.path.relative( base.path() , this.path() ).replace( /\\\\/g , '/' )\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\toverride readable(opts: { start?: number, end?: number }) {\n\t\t\tconst { Readable } = $node['node:stream'] as typeof import('node:stream')\n\t\t\tconst stream = $node.fs.createReadStream(this.path(), {\n\t\t\t\tflags: 'r',\n\t\t\t\tautoClose: true,\n\t\t\t\tstart: opts?.start,\n\t\t\t\tend: opts?.end,\n\t\t\t\tencoding: 'binary',\n\t\t\t})\n\n\t\t\treturn Readable.toWeb(stream) as ReadableStream<Uint8Array<ArrayBuffer>>\n\t\t}\n\n\t\t@ $mol_mem\n\t\toverride writable(opts?: { start?: number }) {\n\t\t\tconst { Writable } = $node['node:stream'] as typeof import('node:stream')\n\t\t\tconst stream = $node.fs.createWriteStream(this.path(), {\n\t\t\t\tflags: 'w+',\n\t\t\t\tautoClose: true,\n\t\t\t\tstart: opts?.start,\n\t\t\t\tencoding: 'binary',\n\t\t\t})\n\n\t\t\treturn Writable.toWeb(stream) as WritableStream<Uint8Array<ArrayBuffer>>\n\t\t}\n\n\t}\n\n\n\t$.$mol_file = $mol_file_node\n}\n","namespace $ {\n\texport class $mol_state_local_node< Value > extends $mol_state_local< Value > {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic dir() {\n\t\t\tconst base = process.env.XDG_DATA_HOME || ( $node.os.homedir() + '/.local/share' )\n\t\t\treturn $mol_file.absolute( base ).resolve( './mol_state_local' )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic value< Value >(\n\t\t\tkey : string ,\n\t\t\tnext? : Value | null ,\n\t\t) : Value | null {\n\t\t\t\n\t\t\tconst file = this.dir().resolve( encodeURIComponent( key ) + '.json' )\n\t\t\t\n\t\t\tif( next === null ) {\n\t\t\t\tfile.exists( false )\n\t\t\t\treturn null\n\t\t\t}\n\t\t\t\n\t\t\tconst arg = next === undefined ? undefined : JSON.stringify( next )\n\t\t\treturn JSON.parse( file.text( arg ) || 'null' )\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t$.$mol_state_local = $mol_state_local_node\n}\n","namespace $ {\n\t$mol_test( {\n\t\t\n\t\t'local get set delete'() {\n\t\t\t\t\t\n\t\t\tvar key = '$mol_state_local_test:' + Math.random()\n\t\t\t$mol_assert_equal( $mol_state_local.value( key ) , null )\n\t\t\t\n\t\t\t$mol_state_local.value( key , 123 )\n\t\t\t$mol_assert_equal( $mol_state_local.value( key ) , 123 )\n\t\t\t\n\t\t\t$mol_state_local.value( key , null )\n\t\t\t$mol_assert_equal( $mol_state_local.value( key ) , null )\n\t\t} ,\n\t\t\n\t} )\n}\n","namespace $ {\n\n\t$mol_test_mocks.push( context => {\n\t\tclass $mol_state_local_mock< Value > extends $mol_state_local< Value > {\n\n\t\t\tstatic state = {} as Record< string , any >\n\t\t\t\t\t\t\n\t\t\t@ $mol_mem_key\n\t\t\tstatic value< Value >(\n\t\t\t\tkey : string ,\n\t\t\t\tnext = this.state[ key ] as Value ,\n\t\t\t) {\n\t\t\t\treturn this.state[ key ] = ( next || null )\n\t\t\t}\n\n\t\t}\n\t\tcontext.$mol_state_local = $mol_state_local_mock\n\t} )\n\t\n}\n","namespace $ {\n\t\n\t/** Public key generated with Proof of Work */\n\texport class $giper_baza_auth_pass extends $mol_crypto2_public {\n\t\t\n\t\tstatic like( bin: Uint8Array< ArrayBuffer > ) {\n\t\t\tconst pass = this.from( bin )\n\t\t\tif( pass.byteLength !== $giper_baza_auth_pass.size_bin ) return null\n\t\t\tif( pass.uint8(0) !== 0xFF ) return null\n\t\t\treturn pass\n\t\t}\n\t\t\n\t\t@ $mol_memo.method\n\t\thash() {\n\t\t\treturn $giper_baza_link.hash_bin( this.asArray() )\n\t\t}\n\t\t\n\t\t@ $mol_memo.method\n\t\tpath() {\n\t\t\treturn `pass:${ this.hash().str }`\n\t\t}\n\t\t\n\t\t/** Independent actor with global unique id generated from Auth key */\n\t\t@ $mol_memo.method\n\t\tlord() {\n\t\t\treturn this.hash().lord()\n\t\t}\n\t\t\n\t\t/** Land local unique identifier of independent actor (first half of Lord) */\n\t\t@ $mol_memo.method\n\t\tpeer() {\n\t\t\treturn this.hash().peer()\n\t\t}\n\t\t\n\t\ttoJSON() {\n\t\t\treturn '@' + this.lord().str\n\t\t}\n\t\t\n\t\t[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_span( {} ,\n\t\t\t\t$mol_dev_format_native( this ) ,\n\t\t\t\t' 👾',\n\t\t\t\t$mol_dev_format_auto( this.lord() ),\n\t\t\t\t' 🎫',\n\t\t\t)\n\t\t}\n\t\t\n\t}\n\n\t/** Private key generated with Proof of Work */\n\texport class $giper_baza_auth extends $mol_crypto2_private {\n\t\t\n\t\t/** Current Private key generated with Proof of Work */\n\t\t@ $mol_mem\n\t\tstatic current( next?: $giper_baza_auth | null ) {\n\t\t\t\n\t\t\t$mol_wire_solid()\n\t\t\t\n\t\t\tif( next === undefined ) {\n\t\t\t\tconst key = String( $mol_state_local.value( '$giper_baza_auth' ) ?? '' )\n\t\t\t\tif( key ) {\n\t\t\t\t\t\n\t\t\t\t\tconst auth = $giper_baza_auth.from( key )\n\t\t\t\t\tif( auth.byteLength === 128 ) return auth\n\t\t\t\t\t\n\t\t\t\t\t$$.$mol_log3_warn({\n\t\t\t\t\t\tmessage: 'Wrong Auth size',\n\t\t\t\t\t\thint: 'Relax. Right Auth is created.',\n\t\t\t\t\t\tplace: `${this}.current()`,\n\t\t\t\t\t})\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif( !next ) next = this.grab()\n\t\t\t\n\t\t\t$mol_state_local.value( '$giper_baza_auth', next.toString() + next.toStringPrivate() )\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tstatic embryos = [] as string[]\n\t\t\n\t\t@ $mol_action\n\t\tstatic grab() {\n\t\t\tif( this.embryos.length ) return this.from( this.embryos.pop()! )\n\t\t\treturn $mol_wire_sync( this as typeof $giper_baza_auth )._generate()\n\t\t}\n\t\t\n\t\tstatic async _generate() {\n\t\t\tfor( let i = 0; i < 4096; ++i ) {\n\t\t\t\tconst auth = this.from( await super.generate() )\n\t\t\t\tif( auth.uint8(0) !== 0xFF ) continue\n\t\t\t\tif( /[æÆ]/.test( auth.pass().lord().str ) ) continue\n\t\t\t\treturn auth\n\t\t\t}\n\t\t\t$mol_fail( new Error( `Too long key generation` ) )\n\t\t}\n\t\t\n\t\t@ $mol_memo.method\n\t\tpass() {\n\t\t\treturn $giper_baza_auth_pass.from( this.public() )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tsecret_mutual( pass: $giper_baza_auth_pass ) {\n\t\t\treturn $mol_wire_sync( this.cipher() ).secret( pass.socket() )\n\t\t}\n\t\t\n\t\t[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_span( {} ,\n\t\t\t\t$mol_dev_format_native( this ) ,\n\t\t\t\t' ',\n\t\t\t\t$mol_dev_format_auto( this.pass().lord() ),\n\t\t\t\t' 🔑',\n\t\t\t)\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t$mol_test_mocks.push( $=> {\n\t\tclass $giper_baza_auth_mock extends $.$giper_baza_auth {\n\n\t\t\t@ $mol_mem\n\t\t\tstatic override current() {\n\t\t\t\treturn this.from( '_7uaNxSijvQDjZ-9a9r22hpcROZwhgBTaWZrcDIMwkU3e6xFHq_7h9-Dfxgif7E_szNlubYXJLUWFNt8x5ko3wb0YsrNPmwb8tahStoyKB_J5_gj8LqmJItGnwJHsGmRs17BgVIMzCEMbNqhiBiz6-dkW9PFWp346RUya2lNHzpk' )\n\t\t\t}\n\t\t\t\n\t\t\tstatic override embryos = [\n\t\t\t\t'_7bJySpjwMJr-9xpQtl3XIQhiiHIAJ3mJGJ9Z8XJXOMbKLhjUHMrA4RZzmscCgO0c7xnXnw_UFhwhDN7CRHOTca4x_vAJdIvjnNNRkBaYqJJRHBiLn6Cjf1Iv7ZYsHBZQZ72WxwYK8xKs8L3Kokv5RZ-jqBoozqc8JIFI1DWayJM',\n\t\t\t\t'_zOldFN6un21Kk9V_Z51D84ZJXdDoSfkxZZl5iNdSJ8mN-zcOuKh0tUTajmynoVmYG73krPQXIkIlGLAEwx5n03Fju-SIG0_fENxSNDRH8Pukvibs6nnMDPgXCYRvJi6gL8ZVwedP7LYkwa1qpsaUN7nmjWvhkkgVcVMLYK0Jk7g',\n\t\t\t\t'_8-GDFlnyEYoMzoeCiH1H7lBLuqMyZ1S_2ZEt0o4YIE4frZ1syTbDar0RqkFzC78BhVCYVykYxDTewnzyq4nEwG3y1Al3BskP59eYuDeaH0UKbBNF407K7kGJrMpJXZtMj0kZdX16E3aKfUmeLp0NL9VWFrAg6QiVQd1jJ5-MU5w',\n\t\t\t\t'_9GnExCEqMmBM5nBUnfdGBPjYSVHOUjHygAFipsPU0UU8mOgMS9JC8Wwkv0waX-JgfPrI_em3gPznH-2_C9MDcP03zEmIAoLRltMEBftax-lHJ52kciH3GUFAdQ1glc9Ej8ypgYHvfvO5gkQA6q0DhCEcWUPkOok5OvJre6iO358',\n\t\t\t\t'_y1XB55LywSvOEtuyr_hh3wjRaW7gFW_aebG1eSQFmcFTzFvw50xd9Vft_jXFvP3Cd9T4jL-eIPMizBX9gafRcaW8XDdjaWW6GDCJLeXBSoFQH4PpNjufNT7BaPCZfAwY_12rLEO66Pse1GrzdVHU6wSOciL99w56zQLgzFLHErc',\n\t\t\t\t'_62jup6y61Rt8SN8Oq1Lzu5GXA_WL7oxoRPkRPQNkiwvKz8z4D2p8g_Qa5QWvBYmFrgBwAZmarD1UJ1ucA_zUQbrgMUBmEiYv7S4AApUa1Obo6r2KQ_70BebGOo_F3lNUtzfNxEnMh4FRLShzu0hLlp6gZyFjW7aZKoqLRXR68bw',\n\t\t\t\t'_yXB4FEZnF35nrJxHpsiS3YB18ADNOwbrKIYKcXAdpAIjWy6A4-Nx6K44RWNvgnreWlACm6PaaymM6he1TaCAAyS8ouYHqSezBbGRPyKmKVXjcyHYfQ33W3tQvipwLM8YB3VcOAuvRBNaiQLLzPb9saE5HT2cU25EJE34hpAVm6I',\n\t\t\t\t'_6iVZXF5fD2ztELDFvmhTAJWMRNLBMRv3W6GArqcVLwcCM6WeoqPAySo05cG-XaqXTme0iC3Pzf5jvlHqY1GgAO4qfQcF3EWV66Uw9sYD1T_tu_rmKYjYT5YXyaxtki08r50YHA-Jw4obKcDHt6_sDONANUA7pCYjIeFGt0mv1Zs',\n\t\t\t\t'_yPV-YZgPu0_edJc3I8o1SUKqUucgYVKlbTrKqVyl3sxjQo3u73nGtQq190q3W_ebhVnQWLC8A4JFhbjWDCTzY8i7shadOvvSEeAfuPqsyK5JERqw-tbJm_0nvR8bShIcXzyrYDIg_ZBU_wNKbFzoCXHmh-CNsuKpb6NyBQPsIrU',\n\t\t\t\t'_-67MXDuic5c7e4Febc1QuI456bgmfeMnmp3rWcGWzcMIPytythDMqmZISsGGsLVFUOQxsGjm7s3ULV-307L3wd47B4K4BtUhTR5cyKMI4y5Ld-UstbevtgOURqLsc_XIhyFilGTJ8ORTRW7RI3O83xtRu-_0lRg9WcmnhWERBIU',\n\t\t\t]\n\t\t\t\n\t\t}\n\t\t$.$giper_baza_auth = $giper_baza_auth_mock\n\t} )\n}\n\n","namespace $ {\n\n\texport class $mol_time_base {\n\n\t\tstatic patterns = {} as Record< string , ( arg : any )=> string >\n\n\t\tstatic formatter( pattern : string ) {\n\n\t\t\tif( this.patterns[ pattern ] ) return this.patterns[ pattern ]\n\n\t\t\tvar tokens = Object.keys( this.patterns )\n\t\t\t\t.sort()\n\t\t\t\t.reverse()\n\t\t\t\t.map( ( token : string ) => token.replace( /([-+*.\\[\\]()\\^])/g , '\\\\$1' ) )\n\t\t\tvar lexer = RegExp( '(.*?)(' + tokens.join( '|' ) + '|$)', 'g' )\n\n\t\t\tvar funcs = [] as ( ( arg : any, lang?: string )=> string )[]\n\n\t\t\tpattern.replace( lexer, ( str : string , text : string , token : string ) => {\n\t\t\t\tif( text ) funcs.push( () => text )\n\t\t\t\tif( token ) funcs.push( this.patterns[ token ] )\n\t\t\t\treturn str\n\t\t\t} )\n\n\t\t\treturn this.patterns[ pattern ] = ( arg : any, lang?: string )=> {\n\t\t\t\treturn funcs.reduce( ( res , func )=> res + func( arg, lang ) , '' )\n\t\t\t}\n\t\t\n\t\t}\n\n\t\ttoString( pattern : string, lang?: string ) : string {\n\t\t\tconst Base = this.constructor as typeof $mol_time_base\n\t\t\tconst formatter = Base.formatter( pattern )\n\t\t\treturn formatter( this, lang )\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\texport type $mol_time_duration_config = number | string | readonly[ number, number, number, number, number, number ] | {\n\t\tyear? : number\n\t\tmonth? : number\n\t\tday? : number\n\t\thour? : number\n\t\tminute? : number\n\t\tsecond? : number\n\t}\n\n\t/**\n\t * Small, simple, powerful, and fast TypeScript/JavaScript library for proper date/time/duration/interval arithmetic.\n\t *\n\t * Immutable iso8601 time duration representation.\n\t * @see http://localhost:9080/mol/app/docs/-/test.html#!demo=mol_time_demo\n\t */\n\texport class $mol_time_duration extends $mol_time_base {\n\n\t\tconstructor( config : $mol_time_duration_config = 0 ) {\n\t\t\t\n\t\t\tsuper()\n\t\t\t\n\t\t\tif( typeof config === 'number' ) {\n\t\t\t\tif( !Number.isFinite( config ) ) throw new RangeError( `Wrong ms count` )\n\t\t\t\tthis.second = config / 1000\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif( typeof config === 'string' ) {\n\t\t\t\t\n\t\t\t\tif( config === 'Z' ) {\n\t\t\t\t\t\n\t\t\t\t\tthis.hour = 0\n\t\t\t\t\tthis.minute = 0\n\t\t\t\t\t\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tduration: {\n\t\t\t\t\tconst parser = /^(-?)P(?:([+-]?\\d+(?:\\.\\d+)?)Y)?(?:([+-]?\\d+(?:\\.\\d+)?)M)?(?:([+-]?\\d+(?:\\.\\d+)?)D)?(?:T(?:([+-]?\\d+(?:\\.\\d+)?)h)?(?:([+-]?\\d+(?:\\.\\d+)?)m)?(?:([+-]?\\d+(?:\\.\\d+)?)s)?)?$/i\n\t\t\t\t\t\n\t\t\t\t\tconst found = parser.exec( config )\n\t\t\t\t\tif( !found ) break duration\n\t\t\t\t\t\t\n\t\t\t\t\tconst sign = found[1] ? -1 : 1\n\t\t\t\t\tif( found[2] ) this.year = sign * Number( found[2] )\n\t\t\t\t\tif( found[3] ) this.month = sign * Number( found[3] )\n\t\t\t\t\tif( found[4] ) this.day = sign * Number( found[4] )\n\t\t\t\t\tif( found[5] ) this.hour = sign * Number( found[5] )\n\t\t\t\t\tif( found[6] ) this.minute = sign * Number( found[6] )\n\t\t\t\t\tif( found[7] ) this.second = sign * Number( found[7] )\n\t\t\t\t\t\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\toffset: {\n\t\t\t\t\tvar parser = /^[+-](\\d\\d)(?::?(\\d\\d))?$/i\n\t\t\t\t\t\n\t\t\t\t\tvar found = parser.exec( config )\n\t\t\t\t\tif( !found ) break offset\n\t\t\t\t\t\t\n\t\t\t\t\tif( found[1] ) this.hour = Number( found[1] )\n\t\t\t\t\tif( found[2] ) this.minute = Number( found[2] )\n\t\t\t\t\t\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tthrow new Error( `Can not parse time duration (${ config })` )\n\t\t\t}\n\t\t\t\n\t\t\tif( config instanceof Array ) {\n\t\t\t\t;[ this.year, this.month, this.day, this.hour, this.minute, this.second ] = config\n\t\t\t\treturn\n\t\t\t}\n\t\t\t\n\t\t\tthis.year = config.year || 0\n\t\t\tthis.month = config.month || 0\n\t\t\tthis.day = config.day || 0\n\t\t\tthis.hour = config.hour || 0\n\t\t\tthis.minute = config.minute || 0\n\t\t\tthis.second = config.second || 0\n\t\t\t\n\t\t}\n\n\t\treadonly year : number= 0\n\t\treadonly month : number = 0\n\t\treadonly day : number = 0\n\t\treadonly hour : number = 0\n\t\treadonly minute : number = 0\n\t\treadonly second : number = 0\n\t\t\n\t\tget normal() {\n\t\t\t\n\t\t\tlet second = this.second ?? 0\n\t\t\tlet minute = this.minute ?? 0\n\t\t\tlet hour = this.hour ?? 0\n\t\t\tlet day = this.day ?? 0\n\t\t\t\n\t\t\tminute += Math.trunc( second / 60 )\n\t\t\tsecond = second % 60\n\t\t\t\n\t\t\thour += Math.trunc( minute / 60 )\n\t\t\tminute = minute % 60\n\t\t\t\n\t\t\tday += Math.trunc( hour / 24 )\n\t\t\thour = hour % 24\n\t\t\t\n\t\t\treturn new $mol_time_duration({\n\t\t\t\tyear: this.year,\n\t\t\t\tmonth: this.month,\n\t\t\t\tday: day,\n\t\t\t\thour: hour,\n\t\t\t\tminute: minute,\n\t\t\t\tsecond: second,\n\t\t\t})\n\t\t\t\n\t\t}\n\n\t\tsumm( config : $mol_time_duration_config ) {\n\t\t\tconst duration = new $mol_time_duration( config )\n\t\t\t\n\t\t\treturn new $mol_time_duration({\n\t\t\t\tyear : this.year + duration.year ,\n\t\t\t\tmonth : this.month + duration.month ,\n\t\t\t\tday : this.day + duration.day ,\n\t\t\t\thour : this.hour + duration.hour ,\n\t\t\t\tminute : this.minute + duration.minute ,\n\t\t\t\tsecond : this.second + duration.second ,\n\t\t\t})\n\t\t}\n\n\t\tmult( numb : number ) {\n\t\t\treturn new $mol_time_duration({\n\t\t\t\tyear : this.year && this.year * numb ,\n\t\t\t\tmonth : this.month && this.month * numb ,\n\t\t\t\tday : this.day && this.day * numb ,\n\t\t\t\thour : this.hour && this.hour * numb ,\n\t\t\t\tminute : this.minute && this.minute * numb ,\n\t\t\t\tsecond : this.second && this.second * numb ,\n\t\t\t})\n\t\t}\n\n\t\tcount( config : $mol_time_duration_config ) {\n\t\t\tconst duration = new $mol_time_duration( config )\n\t\t\treturn this.valueOf() / duration.valueOf()\n\t\t}\n\n\t\tvalueOf() {\n\t\t\tvar day = this.year * 365 + this.month * 30.4 + this.day\n\t\t\tvar second = ( ( day * 24 + this.hour ) * 60 + this.minute ) * 60 + this.second\n\t\t\treturn second * 1000\n\t\t}\n\n\t\ttoJSON() { return this.toString() }\n\n\t\ttoString( pattern = 'P#Y#M#DT#h#m#s' ) {\n\t\t\treturn super.toString( pattern )\n\t\t}\n\n\t\ttoArray() {\n\t\t\treturn [ this.year, this.month, this.day, this.hour, this.minute, this.second ] as const\n\t\t\n\t\t}\n\t\t\n\t\t[ Symbol.toPrimitive ]( mode: 'default' | 'number' | 'string' ) {\n\t\t\treturn mode === 'number' ? this.valueOf() : this.toString()\n\t\t}\n\t\t\n\t\tstatic patterns = {\n\n\t\t\t'#Y' : ( duration : $mol_time_duration )=> {\n\t\t\t\tif( !duration.year ) return ''\n\t\t\t\treturn duration.year + 'Y'\n\t\t\t} ,\n\t\t\t\n\t\t\t'#M' : ( duration : $mol_time_duration )=> {\n\t\t\t\tif( !duration.month ) return ''\n\t\t\t\treturn duration.month + 'M'\n\t\t\t} ,\n\t\t\t\n\t\t\t'#D' : ( duration : $mol_time_duration )=> {\n\t\t\t\tif( !duration.day ) return ''\n\t\t\t\treturn duration.day + 'D'\n\t\t\t} ,\n\t\t\t\n\t\t\t'#h' : ( duration : $mol_time_duration )=> {\n\t\t\t\tif( !duration.hour ) return ''\n\t\t\t\treturn duration.hour + 'H'\n\t\t\t} ,\n\t\t\t\n\t\t\t'#m' : ( duration : $mol_time_duration )=> {\n\t\t\t\tif( !duration.minute ) return ''\n\t\t\t\treturn duration.minute + 'M'\n\t\t\t} ,\n\t\t\t\n\t\t\t'#s' : ( duration : $mol_time_duration )=> {\n\t\t\t\tif( !duration.second ) return ''\n\t\t\t\treturn duration.second + 'S'\n\t\t\t} ,\n\t\t\t\n\t\t\t'hh' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.hour == null ) return ''\n\t\t\t\treturn String( 100 + moment.hour ).slice(1)\n\t\t\t} ,\n\t\t\t\n\t\t\t'h' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.hour == null ) return ''\n\t\t\t\treturn String( moment.hour )\n\t\t\t} ,\n\t\t\t\n\t\t\t':mm' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.minute == null ) return ''\n\t\t\t\treturn ':' + $mol_time_moment.patterns[ 'mm' ]( moment )\n\t\t\t} ,\n\t\t\t\n\t\t\t'mm' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.minute == null ) return ''\n\t\t\t\treturn String( 100 + moment.minute ).slice(1)\n\t\t\t} ,\n\t\t\t\n\t\t\t'm' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.minute == null ) return ''\n\t\t\t\treturn String( moment.minute )\n\t\t\t},\n\t\t\t\n\t\t\t':ss' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.second == null ) return ''\n\t\t\t\treturn ':' + $mol_time_moment.patterns[ 'ss' ]( moment )\n\t\t\t},\n\t\t\t\n\t\t\t'ss' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.second == null ) return ''\n\t\t\t\treturn String( 100 + moment.second | 0 ).slice(1)\n\t\t\t},\n\t\t\t\n\t\t\t's' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.second == null ) return ''\n\t\t\t\treturn String( moment.second | 0 )\n\t\t\t} ,\n\t\t\t\n\t\t\t'.sss' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.second == null ) return ''\n\t\t\t\t// if( moment.second === ( moment.second | 0 ) ) return ''\n\t\t\t\treturn '.' + $mol_time_moment.patterns[ 'sss' ]( moment )\n\t\t\t},\n\t\t\t\n\t\t\t'sss' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.second == null ) return ''\n\t\t\t\tconst millisecond = ( moment.second - Math.trunc( moment.second ) ).toFixed( 3 )\n\t\t\t\treturn millisecond.slice(2)\n\t\t\t},\n\t\t\t\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\t$mol_test( {\n\t\t\n\t\t'parse and serial'() {\n\t\t\t$mol_assert_equal( new $mol_time_duration( 'P42.1Y' ).toString() , 'P42.1YT' )\n\t\t\t$mol_assert_equal( new $mol_time_duration( 'P42.1M' ).toString() , 'P42.1MT' )\n\t\t\t$mol_assert_equal( new $mol_time_duration( 'P42.1D' ).toString() , 'P42.1DT' )\n\t\t\t$mol_assert_equal( new $mol_time_duration( 'PT42.1h' ).toString() , 'PT42.1H' )\n\t\t\t$mol_assert_equal( new $mol_time_duration( 'PT42.1m' ).toString() , 'PT42.1M' )\n\t\t\t$mol_assert_equal( new $mol_time_duration( 'PT42.1s' ).toString() , 'PT42.1S' )\n\t\t\t$mol_assert_equal( new $mol_time_duration( 'P1Y2M3DT4h5m6.7s' ).toString() , 'P1Y2M3DT4H5M6.7S' )\n\t\t} ,\n\t\t\n\t\t'negatives'() {\n\t\t\t$mol_assert_equal(\n\t\t\t\tnew $mol_time_duration( 'P-1Y-2M-3DT-4h-5m-6.7s' ).toString() ,\n\t\t\t\tnew $mol_time_duration( '-P1Y2M3DT4h5m6.7s' ).toString() ,\n\t\t\t\t'P-1Y-2M-3DT-4H-5M-6.7S',\n\t\t\t)\n\t\t\t$mol_assert_equal(\n\t\t\t\tnew $mol_time_duration( '-P-1Y-2M-3DT-4h-5m-6.7s' ).toString() ,\n\t\t\t\t'P1Y2M3DT4H5M6.7S',\n\t\t\t)\n\t\t},\n\t\t\n\t\t'format typed'() {\n\t\t\t$mol_assert_equal(\n\t\t\t\tnew $mol_time_duration( 'P1Y2M3DT4h5m6s' ).toString( 'P#Y#M#DT#h#m#s' ) ,\n\t\t\t\t'P1Y2M3DT4H5M6S'\n\t\t\t)\n\t\t} ,\n\t\n\t\t'format readable'() {\n\t\t\t$mol_assert_equal(\n\t\t\t\tnew $mol_time_duration( 'P1Y2M3DT4h5m6s' ).toString( 'hh:mm:ss.sss' ) ,\n\t\t\t\t'04:05:06.000'\n\t\t\t)\n\t\t} ,\n\t\n\t\t'normalization'() {\n\t\t\t$mol_assert_equal(\n\t\t\t\tnew $mol_time_duration( 'P1Y2M3DT44h55m66s' ).normal.toString() ,\n\t\t\t\t'P1Y2M4DT20H56M6S'\n\t\t\t)\n\t\t\t$mol_assert_equal(\n\t\t\t\tnew $mol_time_duration( 'P-1Y-2M-3DT-44h-55m-66s' ).normal.toString() ,\n\t\t\t\t'P-1Y-2M-4DT-20H-56M-6S'\n\t\t\t)\n\t\t} ,\n\t\n\t\t'comparison'() {\n\t\t\tconst iso = 'P1Y1M1DT1h1m1s'\n\t\t\t$mol_assert_equal( new $mol_time_duration( iso ), new $mol_time_duration( iso ) )\n\t\t},\n\t\t\n\t} )\n}\n","namespace $ {\n\n\texport enum $mol_time_moment_weekdays {\n\t\tmonday,\n\t\ttuesday,\n\t\twednesday,\n\t\tthursday,\n\t\tfriday,\n\t\tsaturday,\n\t\tsunday\n\t}\n\t\n\texport type $mol_time_moment_config = number | Date | string | readonly( number | undefined )[] | {\n\t\tyear? : number\n\t\tmonth? : number\n\t\tday? : number\n\t\thour? : number\n\t\tminute? : number\n\t\tsecond? : number\n\t\toffset? : $mol_time_duration_config\n\t}\n\t\n\tfunction numb( str: string, max: number ) {\n\t\tconst numb = Number( str )\n\t\tif( numb < max ) return numb\n\t\t$mol_fail( new Error( `Wrong time component ${ str }` ) )\n\t}\n\n\t/**\n\t * Small, simple, powerful, and fast TypeScript/JavaScript library for proper date/time/duration/interval arithmetic.\n\t *\n\t * Immutable iso8601 time moment representation.\n\t * @see http://localhost:9080/mol/app/docs/-/test.html#!demo=mol_time_demo\n\t */\n\texport class $mol_time_moment extends $mol_time_base {\n\n\t\tconstructor( config : $mol_time_moment_config = new Date ) {\n\t\t\t\n\t\t\tsuper()\n\n\t\t\tif( typeof config === 'number' ) {\n\t\t\t\tconfig = new Date( config )\n\t\t\t\tif( Number.isNaN( config.valueOf() ) ) throw new RangeError( `Wrong ms count` )\n\t\t\t}\n\t\t\t\n\t\t\tif( typeof config === 'string' ) {\n\t\t\t\t\n\t\t\t\tconst parsed = /^(?:(\\d\\d?\\d?\\d?)(?:-?(\\d\\d?)(?:-?(\\d\\d?))?)?)?(?:[T ](?:(\\d\\d?)(?::?(\\d\\d?)(?::?(\\d\\d?(?:\\.\\d+)?))?)?)?(Z|[\\+\\-]\\d\\d?(?::?(?:\\d\\d?)?)?)?)?$/.exec( config )\n\t\t\t\tif( !parsed ) throw new Error( `Can not parse time moment (${ config })` )\n\n\t\t\t\tif( parsed[1] ) this.year = numb( parsed[1], 9999 )\n\t\t\t\tif( parsed[2] ) this.month = numb( parsed[2], 13 ) - 1\n\t\t\t\tif( parsed[3] ) this.day = numb( parsed[3], 32 ) - 1\n\t\t\t\tif( parsed[4] ) this.hour = numb( parsed[4], 60 )\n\t\t\t\tif( parsed[5] ) this.minute = numb( parsed[5], 60 )\n\t\t\t\tif( parsed[6] ) this.second = numb( parsed[6], 60 )\n\t\t\t\tif( parsed[7] ) this.offset = new $mol_time_duration( parsed[7] )\n\t\t\t\t\n\t\t\t\treturn\n\t\t\t}\n\t\t\t\n\t\t\tif( config instanceof Date ) {\n\t\t\t\t\n\t\t\t\tthis.year = config.getFullYear()\n\t\t\t\tthis.month = config.getMonth()\n\t\t\t\tthis.day = config.getDate() - 1\n\t\t\t\tthis.hour = config.getHours()\n\t\t\t\tthis.minute = config.getMinutes()\n\t\t\t\tthis.second = config.getSeconds() + config.getMilliseconds() / 1000\n\t\t\t\tthis.offset = new $mol_time_duration({ minute: - config.getTimezoneOffset() })\n\t\t\t\t\n\t\t\t\treturn\n\t\t\t}\n\t\t\t\n\t\t\tif( config instanceof Array ) {\n\t\t\t\t;[ this.year, this.month, this.day, this.hour, this.minute, this.second ] = config\n\t\t\t\tif( config[6] !== undefined ) this.offset = new $mol_time_duration( config[6] * 60_000 )\n\t\t\t\treturn\n\t\t\t}\n\t\t\t\n\t\t\tthis.year = config.year\n\t\t\tthis.month = config.month\n\t\t\tthis.day = config.day\n\t\t\tthis.hour = config.hour\n\t\t\tthis.minute = config.minute\n\t\t\tthis.second = config.second\n\t\t\t\n\t\t\tthis.offset = config.offset == null ? config.offset as undefined : new $mol_time_duration( config.offset ) \n\n\t\t}\n\n\t\treadonly year : number | undefined\n\t\treadonly month : number | undefined\n\t\treadonly day : number | undefined\n\t\treadonly hour : number | undefined\n\t\treadonly minute : number | undefined\n\t\treadonly second : number | undefined\n\t\treadonly offset : $mol_time_duration | undefined\n\n\t\tget weekday() {\n\t\t\treturn ( this.native.getDay() + 6 ) % 7\n\t\t}\n\n\t\t_native : Date | undefined\n\t\tget native() {\n\t\t\t\n\t\t\tif( this._native ) return this._native\n\t\t\t\n\t\t\tconst second = Math.floor( this.second ?? 0 )\n\t\t\t\n\t\t\tconst current = new Date()\n\t\t\t\n\t\t\tconst native = new Date(\n\t\t\t\tthis.year ?? current.getFullYear() ,\n\t\t\t\tthis.month ?? ( this.year === undefined ? current.getMonth() : 0 ),\n\t\t\t\t( this.day ?? ( this.year === undefined && this.month === undefined ? current.getDate() - 1 : 0 ) ) + 1 ,\n\t\t\t\tthis.hour ?? 0 ,\n\t\t\t\tthis.minute ?? 0 ,\n\t\t\t\tsecond,\n\t\t\t\tMath.floor( ( ( this.second ?? 0 ) - second ) * 1000 ),\n\t\t\t)\n\t\t\t\n\t\t\tconst offset = - native.getTimezoneOffset()\n\t\t\tshift: if( this.offset ) {\n\t\t\t\tconst target = this.offset.count( 'PT1m' )\n\t\t\t\tif( target === offset ) break shift\n\t\t\t\tnative.setMinutes( native.getMinutes() + offset - target )\n\t\t\t}\n\t\t\t\n\t\t\treturn this._native = native\n\t\t}\n\n\t\t_normal : $mol_time_moment | undefined\n\t\tget normal() {\n\t\t\tif( this._normal ) return this._normal\n\t\t\t\n\t\t\tconst moment = new $mol_time_moment( this.native ).toOffset( this.offset )\n\t\t\t\n\t\t\treturn this._normal = new $mol_time_moment({\n\t\t\t\tyear : this.year === undefined ? undefined : moment.year ,\n\t\t\t\tmonth : this.month === undefined ? undefined : moment.month ,\n\t\t\t\tday : this.day === undefined ? undefined : moment.day ,\n\t\t\t\thour : this.hour === undefined ? undefined : moment.hour ,\n\t\t\t\tminute : this.minute === undefined ? undefined : moment.minute ,\n\t\t\t\tsecond : this.second === undefined ? undefined : moment.second ,\n\t\t\t\toffset : this.offset === undefined ? undefined : moment.offset ,\n\t\t\t})\n\t\t}\n\n\t\tmerge( config : $mol_time_moment_config ) {\n\t\t\tconst moment = new $mol_time_moment( config )\n\t\t\treturn new $mol_time_moment({\n\t\t\t\tyear : moment.year === undefined ? this.year : moment.year ,\n\t\t\t\tmonth : moment.month === undefined ? this.month : moment.month ,\n\t\t\t\tday : moment.day === undefined ? this.day : moment.day ,\n\t\t\t\thour : moment.hour === undefined ? this.hour : moment.hour ,\n\t\t\t\tminute : moment.minute === undefined ? this.minute : moment.minute ,\n\t\t\t\tsecond : moment.second === undefined ? this.second : moment.second ,\n\t\t\t\toffset : moment.offset === undefined ? this.offset : moment.offset ,\n\t\t\t})\n\t\t}\n\n\t\tshift( config : $mol_time_duration_config ) {\n\t\t\tconst duration = new $mol_time_duration( config )\n\t\t\tconst moment = new $mol_time_moment().merge({\n\t\t\t\tyear: this.year ?? 0,\n\t\t\t\tmonth: this.month ?? 0,\n\t\t\t\tday: this.day ?? 0,\n\t\t\t\thour: this.hour ?? 0,\n\t\t\t\tminute: this.minute ?? 0,\n\t\t\t\tsecond: this.second ?? 0,\n\t\t\t\toffset: this.offset ?? 0\n\t\t\t})\n\n\t\t\tconst second = moment.second! + ( duration.second ?? 0 )\n\t\t\tconst native = new Date(\n\t\t\t\tmoment.year! + ( duration.year ?? 0 ) ,\n\t\t\t\tmoment.month! + ( duration.month ?? 0 ) ,\n\t\t\t\tmoment.day! + 1 + ( duration.day ?? 0 ) ,\n\t\t\t\tmoment.hour! + ( duration.hour ?? 0 ) ,\n\t\t\t\tmoment.minute! + ( duration.minute ?? 0 ) ,\n\t\t\t\tMath.floor( second ) ,\n\t\t\t\t( second - Math.floor( second ) ) * 1000\n\t\t\t)\n\n\t\t\tif( isNaN( native.valueOf() ) ) throw new Error( 'Wrong time' )\n\n\t\t\treturn new $mol_time_moment({\n\t\t\t\tyear : this.year === undefined ? undefined : native.getFullYear(),\n\t\t\t\tmonth : this.month === undefined ? undefined : native.getMonth(),\n\t\t\t\tday : this.day === undefined ? undefined : native.getDate() - 1,\n\t\t\t\thour : this.hour === undefined ? undefined : native.getHours(),\n\t\t\t\tminute : this.minute === undefined ? undefined : native.getMinutes(),\n\t\t\t\tsecond : this.second === undefined ? undefined : native.getSeconds() + native.getMilliseconds() / 1000,\n\t\t\t\toffset : this.offset,\n\t\t\t})\n\t\t}\n\n\t\tmask( config : $mol_time_moment_config ) {\n\n\t\t\tconst mask = new $mol_time_moment( config )\n\t\t\t\n\t\t\treturn new $mol_time_moment({\n\t\t\t\tyear : mask.year === undefined ? undefined : this.year ,\n\t\t\t\tmonth : mask.month === undefined ? undefined : this.month ,\n\t\t\t\tday : mask.day === undefined ? undefined : this.day ,\n\t\t\t\thour : mask.hour === undefined ? undefined : this.hour ,\n\t\t\t\tminute : mask.minute === undefined ? undefined : this.minute ,\n\t\t\t\tsecond : mask.second === undefined ? undefined : this.second ,\n\t\t\t\toffset : mask.offset === undefined ? undefined : this.offset ,\n\t\t\t})\n\t\t\t\n\t\t}\n\n\t\ttoOffset( config: $mol_time_duration_config = new $mol_time_moment().offset! ) {\n\t\t\t\n\t\t\tconst duration = new $mol_time_duration( config )\n\t\t\tconst offset = this.offset || new $mol_time_moment().offset!\n\t\t\t\n\t\t\tlet with_time = new $mol_time_moment( '0001-01-01T00:00:00' ).merge( this ) \n\t\t \tconst moment = with_time.shift( duration.summ( offset.mult( -1 ) ) )\n\n\t\t\treturn moment.merge({ offset : duration })\n\t\t}\n\n\t\tvalueOf() { return this.native.getTime() }\n\n\t\ttoJSON() { return this.toString() }\n\n\t\ttoString( pattern = 'YYYY-MM-DDThh:mm:ss.sssZ', lang?: string ) {\n\t\t\treturn super.toString( pattern, lang )\n\t\t}\n\t\t\n\t\ttoArray() {\n\t\t\treturn [ this.year, this.month, this.day, this.hour, this.minute, this.second, this.offset?.count( 'PT1m' ) ] as const\n\t\t}\n\t\t\n\t\t[ Symbol.toPrimitive ]( mode: 'default' | 'number' | 'string' ) {\n\t\t\treturn mode === 'number' ? this.valueOf() : this.toString()\n\t\t}\n\t\t\n\t\t[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_span( {},\n\t\t\t\t$mol_dev_format_native( this ),\n\t\t\t\t' ',\n\t\t\t\t$mol_dev_format_accent( this.toString( 'YYYY-MM-DD hh:mm:ss.sss Z' ) ),\n\t\t\t)\n\t\t}\n\n\t\tprotected static formatters = {} as Record<string, Record<string, Intl.DateTimeFormat>>\n\n\t\tstatic intl(lang: string | undefined, pattern: string, options: Intl.DateTimeFormatOptions) {\n\t\t\tconst group = this.formatters[lang ?? ''] ?? ( this.formatters[lang ?? ''] = {} )\n\t\t\tgroup[pattern] = group[pattern] ?? new Intl.DateTimeFormat(lang, options)\n\n\t\t\treturn group[pattern]\n\t\t}\n\n\t\t/// Mnemonics:\n\t\t/// * single letter for numbers: M - month number, D - day of month.\n\t\t/// * uppercase letters for dates, lowercase for times: M - month number , m - minutes number\n\t\t/// * repeated letters for define register count: YYYY - full year, YY - shot year, MM - padded month number\n\t\t/// * words for word representation: Month - month name, WeekDay - day of week name\n\t\t/// * shortcuts: WD - short day of week, Mon - short month name.\n\t\tstatic patterns = {\n\n\t\t\t'YYYY' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.year == null ) return ''\n\t\t\t\treturn String( moment.year )\n\t\t\t} ,\n\t\t\t\n\t\t\t'AD' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.year == null ) return ''\n\t\t\t\treturn String( Math.floor( moment.year / 100 ) + 1 )\n\t\t\t} ,\n\t\t\t\n\t\t\t'YY' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.year == null ) return ''\n\t\t\t\treturn String( moment.year % 100 )\n\t\t\t} ,\n\t\t\t\n\t\t\t'Month' : ( moment : $mol_time_moment, lang?: string )=> {\n\t\t\t\tif( moment.month == null ) return ''\n\t\t\t\treturn $mol_time_moment.intl(lang, 'Month', { month: 'long' }).format(moment.native)\n\t\t\t},\n\t\t\t\n\t\t\t'DD Month' : ( moment : $mol_time_moment, lang?: string )=> {\n\t\t\t\tif( moment.month == null ) {\n\t\t\t\t\tif( moment.day == null ) {\n\t\t\t\t\t\treturn ''\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn $mol_time_moment.patterns[ 'DD' ]( moment )\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif( moment.day == null ) {\n\t\t\t\t\t\treturn $mol_time_moment.patterns[ 'Month' ]( moment, lang )\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn $mol_time_moment.intl(lang, 'DD Month', { day : '2-digit' , month : 'long' }).format(moment.native)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t\n\t\t\t'D Month' : ( moment : $mol_time_moment, lang?: string )=> {\n\t\t\t\tif( moment.month == null ) {\n\t\t\t\t\tif( moment.day == null ) {\n\t\t\t\t\t\treturn ''\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn $mol_time_moment.patterns[ 'D' ]( moment )\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif( moment.day == null ) {\n\t\t\t\t\t\treturn $mol_time_moment.patterns[ 'Month' ]( moment )\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn $mol_time_moment.intl(lang, 'D Month', { day : 'numeric' , month : 'long' }).format(moment.native)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\n\t\t\t'Mon' : ( moment : $mol_time_moment, lang?: string )=> {\n\t\t\t\tif( moment.month == null ) return ''\n\t\t\t\treturn $mol_time_moment.intl(lang, 'Mon', { month : 'short' }).format(moment.native)\n\t\t\t},\n\t\t\t\n\t\t\t'DD Mon' : ( moment : $mol_time_moment, lang?: string )=> {\n\t\t\t\tif( moment.month == null ) {\n\t\t\t\t\tif( moment.day == null ) {\n\t\t\t\t\t\treturn ''\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn $mol_time_moment.patterns[ 'DD' ]( moment )\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif( moment.day == null ) {\n\t\t\t\t\t\treturn $mol_time_moment.patterns[ 'Mon' ]( moment, lang )\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn $mol_time_moment.intl(lang, 'DD Mon', { day : '2-digit' , month : 'short' }).format(moment.native)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t\n\t\t\t'D Mon' : ( moment : $mol_time_moment, lang?: string )=> {\n\t\t\t\tif( moment.month == null ) {\n\t\t\t\t\tif( moment.day == null ) {\n\t\t\t\t\t\treturn ''\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn $mol_time_moment.patterns[ 'D' ]( moment )\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif( moment.day == null ) {\n\t\t\t\t\t\treturn $mol_time_moment.patterns[ 'Mon' ]( moment, lang )\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn $mol_time_moment.intl(lang, 'D Mon', { day : 'numeric' , month : 'short' }).format(moment.native)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t\n\t\t\t'-MM' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.month == null ) return ''\n\t\t\t\treturn '-' + $mol_time_moment.patterns[ 'MM' ]( moment )\n\t\t\t} ,\n\t\t\t\n\t\t\t'MM' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.month == null ) return ''\n\t\t\t\treturn String( 100 + moment.month + 1 ).slice(1)\n\t\t\t} ,\n\t\t\t\n\t\t\t'M' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.month == null ) return ''\n\t\t\t\treturn String( moment.month + 1 )\n\t\t\t} ,\n\t\t\t\n\t\t\t'WeekDay' : ( moment : $mol_time_moment, lang?: string )=> {\n\t\t\t\tif( moment.day == null ) return ''\n\t\t\t\tif( moment.month == null ) return ''\n\t\t\t\tif( moment.year == null ) return ''\n\t\t\t\treturn $mol_time_moment.intl(lang, 'WeekDay', { weekday : 'long' }).format(moment.native)\n\t\t\t},\n\n\t\t\t'WD' : ( moment : $mol_time_moment, lang?: string )=> {\n\t\t\t\tif( moment.day == null ) return ''\n\t\t\t\tif( moment.month == null ) return ''\n\t\t\t\tif( moment.year == null ) return ''\n\t\t\t\treturn $mol_time_moment.intl(lang, 'WD', { weekday : 'short' }).format(moment.native)\n\t\t\t},\n\t\t\t\n\t\t\t'-DD' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.day == null ) return ''\n\t\t\t\treturn '-' + $mol_time_moment.patterns[ 'DD' ]( moment )\n\t\t\t} ,\n\t\t\t\n\t\t\t'DD' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.day == null ) return ''\n\t\t\t\treturn String( 100 + moment.day + 1 ).slice(1)\n\t\t\t} ,\n\t\t\t\n\t\t\t'D' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.day == null ) return ''\n\t\t\t\treturn String( moment.day + 1 )\n\t\t\t} ,\n\t\t\t\n\t\t\t'Thh' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.hour == null ) return ''\n\t\t\t\treturn 'T' + $mol_time_moment.patterns[ 'hh' ]( moment )\n\t\t\t} ,\n\t\t\t\n\t\t\t'hh' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.hour == null ) return ''\n\t\t\t\treturn String( 100 + moment.hour ).slice(1)\n\t\t\t} ,\n\t\t\t\n\t\t\t'h' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.hour == null ) return ''\n\t\t\t\treturn String( moment.hour )\n\t\t\t} ,\n\t\t\t\n\t\t\t':mm' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.minute == null ) return ''\n\t\t\t\treturn ':' + $mol_time_moment.patterns[ 'mm' ]( moment )\n\t\t\t} ,\n\t\t\t\n\t\t\t'mm' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.minute == null ) return ''\n\t\t\t\treturn String( 100 + moment.minute ).slice(1)\n\t\t\t} ,\n\t\t\t\n\t\t\t'm' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.minute == null ) return ''\n\t\t\t\treturn String( moment.minute )\n\t\t\t},\n\t\t\t\n\t\t\t':ss' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.second == null ) return ''\n\t\t\t\treturn ':' + $mol_time_moment.patterns[ 'ss' ]( moment )\n\t\t\t},\n\t\t\t\n\t\t\t'ss' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.second == null ) return ''\n\t\t\t\treturn String( 100 + moment.second | 0 ).slice(1)\n\t\t\t},\n\t\t\t\n\t\t\t's' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.second == null ) return ''\n\t\t\t\treturn String( moment.second | 0 )\n\t\t\t} ,\n\t\t\t\n\t\t\t'.sss' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.second == null ) return ''\n\t\t\t\tif( moment.second === ( moment.second | 0 ) ) return ''\n\t\t\t\treturn '.' + $mol_time_moment.patterns[ 'sss' ]( moment )\n\t\t\t},\n\t\t\t\n\t\t\t'sss' : ( moment : $mol_time_moment )=> {\n\t\t\t\tif( moment.second == null ) return ''\n\t\t\t\tconst millisecond = ( moment.second - Math.trunc( moment.second ) ).toFixed( 3 )\n\t\t\t\treturn millisecond.slice(2)\n\t\t\t},\n\t\t\t\n\t\t\t'Z' : ( moment : $mol_time_moment )=> {\n\t\t\t\t\n\t\t\t\tconst offset = moment.offset?.normal\n\t\t\t\tif( !offset ) return ''\n\t\t\t\t\n\t\t\t\tlet hour = offset.hour\n\n\t\t\t\tlet sign = '+'\n\t\t\t\tif( hour < 0 ) {\n\t\t\t\t\tsign = '-'\n\t\t\t\t\thour = -hour\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn sign + hour.toString().padStart( 2, '0' ) + ':' + offset.minute.toString().padStart( 2, '0' )\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\t$mol_test( {\n\t\t\n\t\t'parse and serial'() {\n\t\t\t$mol_assert_equal( new $mol_time_moment( '2014' ).toString() , '2014' )\n\t\t\t$mol_assert_equal( new $mol_time_moment( '2014-01' ).toString() , '2014-01' )\n\t\t\t$mol_assert_equal( new $mol_time_moment( '2014-01-02' ).toString() , '2014-01-02' )\n\t\t\t$mol_assert_equal( new $mol_time_moment( '2014-01-02T03' ).toString() , '2014-01-02T03' )\n\t\t\t$mol_assert_equal( new $mol_time_moment( '2014-01-02T03:04' ).toString() , '2014-01-02T03:04' )\n\t\t\t$mol_assert_equal( new $mol_time_moment( '2014-01-02T03:04:05' ).toString() , '2014-01-02T03:04:05' )\n\t\t\t$mol_assert_equal( new $mol_time_moment( '2014-01-02T03:04:05.006' ).toString() , '2014-01-02T03:04:05.006' )\n\t\t\t$mol_assert_equal( new $mol_time_moment( '2014-01-02T03:04:05.006Z' ).toString() , '2014-01-02T03:04:05.006+00:00' )\n\t\t\t$mol_assert_equal( new $mol_time_moment( '2014-01-02T03:04:05.006+07:00' ).toString() , '2014-01-02T03:04:05.006+07:00' )\n\t\t\t$mol_assert_equal( new $mol_time_moment( '2014-01-02T03:04:05+07:08' ).toString() , '2014-01-02T03:04:05+07:08' )\n\t\t\t$mol_assert_equal( new $mol_time_moment( '2014-01-02T03:04+07:08' ).toString() , '2014-01-02T03:04+07:08' )\n\t\t\t$mol_assert_equal( new $mol_time_moment( 'T03:04+07:08' ).toString() , 'T03:04+07:08' )\n\t\t\t$mol_assert_equal( new $mol_time_moment( 'T03:04:05' ).toString() , 'T03:04:05' )\n\t\t\t$mol_assert_equal( new $mol_time_moment( 'T03:04' ).toString() , 'T03:04' )\n\t\t\t$mol_assert_equal( new $mol_time_moment( 'T03' ).toString() , 'T03' )\n\t\t} ,\n\t\t\n\t\t'format simple'() {\n\t\t\t$mol_assert_equal(\n\t\t\t\tnew $mol_time_moment( '2014-01-02T01:02:03.000000' ).toString( 'AD YY-M-D h:m:s' ) ,\n\t\t\t\t'21 14-1-2 1:2:3'\n\t\t\t)\n\t\t} ,\n\t\t\n\t\t'format padded'() {\n\t\t\t$mol_assert_equal(\n\t\t\t\tnew $mol_time_moment( '2014-01-02T01:02:03.000' ).toString( 'YYYY-MM-DD hh:mm:ss' ) ,\n\t\t\t\t'2014-01-02 01:02:03'\n\t\t\t)\n\t\t} ,\n\t\t\n\t\t'format time zone'() {\n\t\t\t$mol_assert_equal(\n\t\t\t\tnew $mol_time_moment( '2014-01-02T01:02:03+05:00' ).toString( 'Z' ) ,\n\t\t\t\t'+05:00'\n\t\t\t)\n\t\t} ,\n\t\t\n\t\t'format names'() {\n\t\t\tnew $mol_time_moment( '2014-01-02T01:02:03.000' ).toString( 'Month Mon | WeekDay WD' )\n\t\t} ,\n\t\t\n\t\t'shifting'() {\n\t\t\t$mol_assert_equal( new $mol_time_moment( 'T15:54:58.243+03:00' ).shift( {} ).toString() , 'T15:54:58.243+03:00' )\n\t\t\t$mol_assert_equal( new $mol_time_moment( '2014-01-02' ).shift( 'P1Y' ).toString() , '2015-01-02' )\n\t\t\t$mol_assert_equal( new $mol_time_moment( '2014-01-02' ).shift( 'P12M' ).toString() , '2015-01-02' )\n\t\t\t$mol_assert_equal( new $mol_time_moment( '2014-01-02' ).shift( 'P365D' ).toString() , '2015-01-02' )\n\t\t\t$mol_assert_equal( new $mol_time_moment( '2014-01-02' ).shift( 'PT8760h' ).toString() , '2015-01-02' )\n\t\t\t$mol_assert_equal( new $mol_time_moment( '2014-01' ).shift( 'PT8760h' ).toString() , '2015-01' )\n\t\t\t$mol_assert_equal( new $mol_time_moment( '2014-01' ).shift( 'PT-8760h' ).toString() , '2013-01' )\n\t\t} ,\n\t\t\n\t\t'native from reduced'() {\n\t\t\t$mol_assert_equal(\n\t\t\t\tnew $mol_time_moment( 'T15:00' ).native.toISOString().slice( 0, -5 ),\n\t\t\t\tnew $mol_time_moment().merge( 'T15:00:00' ).toOffset('Z').toString().slice( 0, -6 )\n\t\t\t)\n\t\t},\n\t\t\n\t\t'normalization'() {\n\t\t\t$mol_assert_equal(\n\t\t\t\tnew $mol_time_moment({ year: 2015, month: 6, day: 34 }).normal.toString() ,\n\t\t\t\t'2015-08-04'\n\t\t\t)\n\t\t\t$mol_assert_equal(\n\t\t\t\tnew $mol_time_moment('2024-09-30 19:00+03:00').normal.month ,\n\t\t\t\t8\n\t\t\t)\n\t\t} , \n\t\n\t\t'renormalization'() {\n\t\t\t$mol_assert_equal( new $mol_time_moment( '2024-08' ).normal.toString(), '2024-08' )\n\t\t\t$mol_assert_equal( new $mol_time_moment( '2024-11' ).normal.toString(), '2024-11' )\n\t\t} , \n\t\n\t\t'iso week day'() {\n\t\t\t$mol_assert_equal( new $mol_time_moment( '2017-09-17' ).weekday , $mol_time_moment_weekdays.sunday )\n\t\t\t$mol_assert_equal( new $mol_time_moment( '2017-09-18' ).weekday , $mol_time_moment_weekdays.monday )\n\t\t} ,\n\t\t\n\t\t'change offset'() {\n\t\t\t$mol_assert_equal( new $mol_time_moment( '2021-04-10 +03:00' ).toOffset( 'Z' ).toString(), '2021-04-09T21:00:00+00:00' )\n\t\t} ,\n\t\t\n\t\t'comparison'() {\n\t\t\tconst iso = '2021-01-02T03:04:05.678+09:10'\n\t\t\t$mol_assert_equal( new $mol_time_moment( iso ), new $mol_time_moment( iso ) )\n\t\t},\n\n\t\t'array keeps zero offset'() {\n\t\t\tconst moment = new $mol_time_moment( '2026-01-25T16:37:36.129+00:00' )\n\t\t\tconst restored = new $mol_time_moment( moment.toArray() )\n\t\t\t$mol_assert_equal( restored.offset?.count( 'PT1m' ), 0 )\n\t\t},\n\n\t} )\n}\n","namespace $ {\n\t\n\t/** Moment from time. */\n\texport function $giper_baza_time_moment( time: number ) {\n\t\tconst stamp = time * 1000\n\t\treturn new $mol_time_moment( stamp )\n\t}\n\t\n\t/** User readable time+tick view. */\n\texport function $giper_baza_time_dump( time: number, tick?: number ) {\n\t\tlet res = $giper_baza_time_moment( time ).toString( 'YYYY-MM-DD hh:mm:ss Z' )\n\t\tif( tick !== undefined ) res += ' !' + tick.toString(16).toUpperCase().padStart( 2, '0' )\n\t\treturn res\n\t}\n\n\t/** Current time with 0 tick. */\n\texport function $giper_baza_time_now() {\n\t\treturn now || Math.floor( Date.now() / 1000 )\n\t}\n\t\n\tlet now = 0\n\n\t/** Run atomic transaction by temp freezing time. */\n\texport function $giper_baza_time_freeze( task: ()=> void ) {\n\n\t\tif( now ) return task()\n\t\t\n\t\tnow = $giper_baza_time_now()\n\t\ttry {\n\t\t\treturn task()\n\t\t} finally {\n\t\t\tnow = 0\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport type $giper_baza_face_data = Iterable< readonly [ peer: string, face: $giper_baza_face ] >\n\t\n\texport class $giper_baza_face extends Object {\n\t\t\n\t\tstatic length() {\n\t\t\treturn 16 as const\n\t\t}\n\t\t\n\t\tconstructor(\n\t\t\tpublic time = 0,\n\t\t\tpublic tick = 0,\n\t\t\tpublic summ = 0,\n\t\t) {\n\t\t\tsuper()\n\t\t}\n\t\t\n\t\tclone() {\n\t\t\treturn new $giper_baza_face( this.time, this.tick, this.summ )\n\t\t}\n\t\t\n\t\tget moment() {\n\t\t\treturn $giper_baza_time_moment( this.time )\n\t\t}\n\t\t\n\t\tget time_tick() {\n\t\t\treturn this.time * 2**16 + this.tick\n\t\t}\n\t\t\n\t\tsync_time( time: number, tick: number ) {\n\t\t\tif( this.time < time ) {\n\t\t\t\tthis.time = time\n\t\t\t\tthis.tick = tick\n\t\t\t\treturn true\n\t\t\t} else if( this.time === time && this.tick < tick ) {\n\t\t\t\tthis.tick = tick\n\t\t\t\treturn true\n\t\t\t} else {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\t\n\t\tsync_summ( summ: number ) {\n\t\t\tif( this.summ < summ ) this.summ = summ\n\t\t}\n\t\t\n\t\ttoJSON() {\n\t\t\tconst time = $giper_baza_time_dump( this.time, this.tick )\n\t\t\tconst summ = '%' + this.summ\n\t\t\treturn `${time} ${summ}`\n\t\t}\n\t\t\n\t\t;[ Symbol.for( 'nodejs.util.inspect.custom' ) ]() {\n\t\t\treturn $mol_term_color.blue( '$giper_baza_face ' )\n\t\t\t\t+ $mol_term_color.gray( \n\t\t\t\t\t$giper_baza_time_dump( this.time, this.tick )\n\t\t\t\t\t+ ' %' + this.summ\n\t\t\t\t)\n\t\t}\n\t\t\n\t\t[ $mol_dev_format_head ]() {\n\t\t\t\n\t\t\treturn $mol_dev_format_span( {},\n\t\t\t\t$mol_dev_format_native( this ),\n\t\t\t\t$mol_dev_format_shade(\n\t\t\t\t\t' ', $giper_baza_time_dump( this.time, this.tick ),\n\t\t\t\t\t' %', this.summ,\n\t\t\t\t)\n\t\t\t)\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n\t/** Statistics about Units in Land. it's total Units count & dictionary which maps Peer to Time */\n\texport class $giper_baza_face_map extends Map< string, $giper_baza_face > {\n\t\t\n\t\t/** Cumulative face for all peers. */\n\t\tstat = new $giper_baza_face\n\t\t\n\t\t_peer_last = ''\n\t\t\n\t\tconstructor(\n\t\t\tentries?: $giper_baza_face_data\n\t\t) {\n\t\t\tsuper()\n\t\t\tif( entries ) this.sync( entries )\n\t\t}\n\t\n\t\t\n\t\tclone() {\n\t\t\treturn new $giper_baza_face_map( this )\n\t\t}\n\t\t\n\t\t/** Synchronize this clock with another. */\n\t\tsync( right: $giper_baza_face_data ) {\n\t\t\t// if( right instanceof $giper_baza_face_map ) this.stat = right.stat.clone()\n\t\t\tfor( const [ peer, face ] of right ) {\n\t\t\t\tthis.peer_time( peer, face.time, face.tick )\n\t\t\t\tthis.peer_summ( peer, face.summ )\n\t\t\t}\n\t\t}\n\t\t\n\t\t/** Update last time for peer. */\n\t\tpeer_time(\n\t\t\tpeer: string,\n\t\t\ttime: number,\n\t\t\ttick: number,\n\t\t) {\n\t\t\t\n\t\t\tif( this.stat.sync_time( time, tick ) ) {\n\t\t\t\tthis._peer_last = peer\n\t\t\t}\n\t\t\t\n\t\t\tlet prev = this.get( peer )\n\t\t\tif( prev ) prev.sync_time( time, tick )\n\t\t\telse this.set( peer, new $giper_baza_face( time, tick ) )\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Update Summ for Peer. */\n\t\tpeer_summ(\n\t\t\tpeer: string,\n\t\t\tsumm: number,\n\t\t) {\n\t\t\tconst prev = this.get( peer )\n\t\t\tthis.stat.summ = ( this.stat.summ ?? 0 ) + summ - ( prev?.summ ?? 0 )\n\t\t\tif( this.stat.summ < 0 ) $mol_fail( new Error( 'Negative summ' ) )\n\n\t\t\tif( prev ) prev.summ = summ\n\t\t\telse this.set( peer, new $giper_baza_face( 0, 0, summ ) )\n\t\t\t\n\t\t}\n\t\t\n\t\tpeer_summ_shift(\n\t\t\tpeer: string,\n\t\t\tdiff: number,\n\t\t) {\n\t\t\tthis.peer_summ( peer, ( this.get( peer )?.summ ?? 0 ) + diff )\n\t\t}\n\t\t\n\t\t/** Generates new time for peer that greater then other seen. */\n\t\t@ $mol_action\n\t\ttick( peer: $giper_baza_link ) {\n\t\t\t\n\t\t\tconst now = $giper_baza_time_now()\n\t\t\t\n\t\t\tif( this.stat.time < now ) {\n\t\t\t\t\n\t\t\t\tthis.stat.time = now\n\t\t\t\tthis.stat.tick = 0\n\t\t\t\t\n\t\t\t} else if( this._peer_last !== peer.str ) {\n\t\t\t\t\n\t\t\t\tthis.stat.time += 1\n\t\t\t\tthis.stat.tick = 0\n\t\t\t\tthis._peer_last = peer.str\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tthis.stat.tick = ( this.stat.tick + 1 ) % 2**16\n\t\t\t\tif( !this.stat.tick ) ++ this.stat.time\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn this.stat\n\t\t}\n\t\t\n\t\ttoJSON() {\n\t\t\treturn Object.fromEntries( this.entries() )\n\t\t}\n\n\t\t;[ Symbol.for( 'nodejs.util.inspect.custom' ) ]() {\n\t\t\treturn $mol_term_color.blue( '$giper_baza_face_map ' )\n\t\t\t\t+ $mol_term_color.gray( this.stat.toJSON() )\n\t\t}\n\t\t\n\t\t[ $mol_dev_format_head ]() {\n\t\t\t\n\t\t\treturn $mol_dev_format_span( {},\n\t\t\t\t$mol_dev_format_native( this ),\n\t\t\t\t' ',\n\t\t\t\t$mol_dev_format_auto( this.stat ),\n\t\t\t)\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'Watch one value' ($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\tstatic dict = new $mol_wire_dict< number, number >()\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic lucky() {\n\t\t\t\t\treturn this.dict.get( 777 )\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t$mol_assert_equal( App.lucky(), undefined )\n\n\t\t\tApp.dict.set( 666, 6666 )\n\t\t\t$mol_assert_equal( App.lucky(), undefined )\n\n\t\t\tApp.dict.set( 777, 7777 )\n\t\t\t$mol_assert_equal( App.lucky(), 7777 )\n\n\t\t\tApp.dict.delete( 777 )\n\t\t\t$mol_assert_equal( App.lucky(), undefined )\n\n\t\t},\n\n\t\t'Watch item channel' ($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\tstatic dict = new $mol_wire_dict< number, number >()\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic lucky() {\n\t\t\t\t\treturn this.dict.item( 777 )\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t$mol_assert_equal( App.lucky(), null )\n\n\t\t\tApp.dict.item( 666, 6666 )\n\t\t\t$mol_assert_equal( App.lucky(), null )\n\n\t\t\tApp.dict.item( 777, 7777 )\n\t\t\t$mol_assert_equal( App.lucky(), 7777 )\n\n\t\t\tApp.dict.item( 777, null )\n\t\t\t$mol_assert_equal( App.lucky(), null )\n\n\t\t},\n\n\t\t'Watch size' ($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\tstatic dict = new $mol_wire_dict< number, number >()\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic size() {\n\t\t\t\t\treturn this.dict.size\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t$mol_assert_equal( App.size(), 0 )\n\n\t\t\tApp.dict.set( 666, 6666 )\n\t\t\t$mol_assert_equal( App.size(), 1 )\n\n\t\t\tApp.dict.set( 777, 7777 )\n\t\t\t$mol_assert_equal( App.size(), 2 )\n\n\t\t\tApp.dict.delete( 777 )\n\t\t\t$mol_assert_equal( App.size(), 1 )\n\n\t\t},\n\n\t\t'Watch for-of' ($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\tstatic dict = new $mol_wire_dict< number, number >()\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic sum() {\n\t\t\t\t\tlet keys = 0\n\t\t\t\t\tlet vals = 0\n\t\t\t\t\tfor( const [ key, val ] of this.dict ) {\n\t\t\t\t\t\tkeys += key\n\t\t\t\t\t\tvals += val\n\t\t\t\t\t}\n\t\t\t\t\treturn [ keys, vals ]\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t$mol_assert_like( App.sum(), [ 0, 0 ] )\n\n\t\t\tApp.dict.set( 111, 1111 )\n\t\t\t$mol_assert_like( App.sum(), [ 111, 1111 ] )\n\n\t\t\tApp.dict.set( 222, 2222 )\n\t\t\t$mol_assert_like( App.sum(), [ 333, 3333 ] )\n\n\t\t\tApp.dict.delete( 111 )\n\t\t\t$mol_assert_like( App.sum(), [ 222, 2222 ] )\n\n\t\t},\n\n\t\t'Watch forEach' ($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\tstatic dict = new $mol_wire_dict< number, number >()\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic sum() {\n\t\t\t\t\tlet keys = 0\n\t\t\t\t\tlet vals = 0\n\t\t\t\t\tthis.dict.forEach( ( val, key )=> {\n\t\t\t\t\t\tkeys += key\n\t\t\t\t\t\tvals += val\n\t\t\t\t\t} )\n\t\t\t\t\treturn [ keys, vals ]\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t$mol_assert_like( App.sum(), [ 0, 0 ] )\n\n\t\t\tApp.dict.set( 111, 1111 )\n\t\t\t$mol_assert_like( App.sum(), [ 111, 1111 ] )\n\n\t\t\tApp.dict.set( 222, 2222 )\n\t\t\t$mol_assert_like( App.sum(), [ 333, 3333 ] )\n\n\t\t\tApp.dict.delete( 111 )\n\t\t\t$mol_assert_like( App.sum(), [ 222, 2222 ] )\n\t\t\t\n\t\t},\n\n\t})\n}\n","namespace $ {\n\t\n\texport enum $giper_baza_slot_kind {\n\t\t\n\t\t/** Free Unit Slot */\n\t\tfree = 0,\n\t\t\n\t\t/** Land header for the following parts. */\n\t\tland = 76, // L\n\t\t\n\t\t/** Unit of data. */\n\t\tsand = 252,\n\t\t\n\t\t/** Rights/Keys sharing. */\n\t\tgift = 253,\n\t\t\n\t\t/** Sign for hash list. */\n\t\tseal = 254,\n\t\t\n\t\t/** Public key. */\n\t\tpass = 255,\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/**\n\t * # Generic Graph model\n\t * - Supports any type of Nodes and Edges.\n\t * - All links are ordered, but this may be ignored.\n\t * - Multigraph supported using arrays of Edges.\n\t * - Hypergraph supported by reusing same Edge on set of links.\n\t * - Ubergraph supported using Edges as Nodes to.\n\t **/\n\texport class $mol_graph< Node , Edge > {\n\t\t\n\t\t/** All registered Nodes */\n\t\tnodes = new Set< Node >()\n\t\t\n\t\t/** Edges for Nodes pairs (from-to-edge) */\n\t\tedges_out = new Map< Node , Map< Node , Edge > >()\n\t\t/** Edges for Nodes pairs (to-from-edge) */\n\t\tedges_in = new Map< Node , Map< Node , Edge > >()\n\t\t\n\t\t// LINKING NODES\n\t\t\n\t\t/** Full connect two Nodes */\n\t\tlink( from : Node , to : Node , edge : Edge ) {\n\t\t\tthis.link_out( from , to , edge )\n\t\t\tthis.link_in( to , from , edge )\n\t\t}\n\t\t\n\t\t/** Full disconnect two Nodes */\n\t\tunlink( from : Node , to : Node ) {\n\t\t\tthis.edges_in.get( to )?.delete( from )\n\t\t\tthis.edges_out.get( from )?.delete( to )\n\t\t}\n\t\t\n\t\t/** Forward connect two Nodes */\n\t\tlink_out( from : Node , to : Node , edge : Edge ) {\n\t\t\t\n\t\t\tlet pair = this.edges_out.get( from )\n\t\t\t\n\t\t\tif( !pair ) {\n\t\t\t\tpair = new Map< Node , Edge >()\n\t\t\t\tthis.edges_out.set( from , pair )\n\t\t\t\tthis.nodes.add( from )\n\t\t\t}\n\t\t\t\n\t\t\tpair.set( to , edge )\n\t\t\tthis.nodes.add( to )\n\n\t\t}\n\t\t\n\t\t/** Backward connect two Nodes */\n\t\tlink_in( to : Node , from : Node , edge : Edge ) {\n\n\t\t\tlet pair = this.edges_in.get( to )\n\t\t\t\n\t\t\tif( !pair ) {\n\t\t\t\tpair = new Map< Node , Edge >()\n\t\t\t\tthis.edges_in.set( to , pair )\n\t\t\t\tthis.nodes.add( to )\n\t\t\t}\n\t\t\t\n\t\t\tpair.set( from , edge )\n\t\t\tthis.nodes.add( to )\n\n\t\t}\n\t\t\n\t\t// GETTING EDGES\n\t\t\n\t\t/** Return any Edge for two Nodes or null */\n\t\tedge( from : Node , to : Node ) {\n\t\t\treturn this.edge_out( from, to ) ?? this.edge_in( to, from )\n\t\t}\n\t\t\n\t\t/** Return output Edge for two Nodes or null */\n\t\tedge_out( from : Node , to : Node ) {\n\t\t\treturn this.edges_out.get( from )?.get( to ) ?? null\n\t\t}\n\t\t\n\t\t/** Return input Edge for two Nodes or null */\n\t\tedge_in( to : Node , from : Node ) {\n\t\t\treturn this.edges_in.get( to )?.get( from ) ?? null\n\t\t}\n\t\t\n\t\t// MUTATIONS\n\t\t\n\t\t/** Cut cycles at lowest priority of Edges */\n\t\tacyclic( get_weight : ( edge : Edge )=> number ) {\n\t\t\t\n\t\t\tconst checked = [] as Node[]\n\t\t\t\n\t\t\tfor( const start of this.nodes ) {\n\t\t\t\t\n\t\t\t\tconst path = [] as Node[]\n\t\t\t\t\n\t\t\t\tconst visit = ( from : Node ) : number => {\n\n\t\t\t\t\tif( checked.includes( from ) ) return Number.MAX_SAFE_INTEGER\n\n\t\t\t\t\tconst index = path.lastIndexOf( from )\n\t\t\t\t\tif( index > -1 ) {\n\n\t\t\t\t\t\tconst cycle = path.slice( index )\n\n\t\t\t\t\t\treturn cycle.reduce(\n\t\t\t\t\t\t\t( weight , node , index )=> Math.min(\n\t\t\t\t\t\t\t\tweight ,\n\t\t\t\t\t\t\t\tget_weight( this.edge_out( node , cycle[ ( index + 1 ) % cycle.length ] )! ) ,\n\t\t\t\t\t\t\t) ,\n\t\t\t\t\t\t\tNumber.MAX_SAFE_INTEGER ,\n\t\t\t\t\t\t)\n\n\t\t\t\t\t}\n\n\t\t\t\t\tpath.push( from )\n\n\t\t\t\t\tdive: try {\n\n\t\t\t\t\t\tconst deps = this.edges_out.get( from )\n\t\t\t\t\t\tif( !deps ) break dive\n\n\t\t\t\t\t\tfor( const [ to , edge ] of deps ) {\n\n\t\t\t\t\t\t\tif( to === from ) {\n\t\t\t\t\t\t\t\tthis.unlink( from , to )\n\t\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst weight_out = get_weight( edge )\n\t\t\t\t\t\t\tconst min = visit( to )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( weight_out > min ) return min\n\t\t\t\t\t\t\tif( weight_out === min ) {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tthis.unlink( from , to )\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif( path.length > 1 ) {\n\t\t\t\t\t\t\t\t\tconst enter = path[ path.length - 2 ]\n\t\t\t\t\t\t\t\t\tthis.link( enter , to , edge )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tpath.pop()\n\t\t\t\t\t}\n\n\t\t\t\t\tchecked.push( from )\n\n\t\t\t\t\treturn Number.MAX_SAFE_INTEGER\n\t\t\t\t}\n\n\t\t\t\tvisit( start )\n\n\t\t\t}\n\n\t\t}\n\t\t\n\t\t// NODES SELECTION\n\t\t\n\t\t/** Topoligical ordered set of all Nodes for acyclic graph */\n\t\tget sorted() {\n\n\t\t\tconst sorted = new Set< Node >()\n\t\t\t\n\t\t\tconst visit = ( node : Node ) => {\n\t\t\t\t\n\t\t\t\tif( sorted.has( node ) ) return\n\n\t\t\t\tconst deps = this.edges_out.get( node )\n\n\t\t\t\tif( deps ) {\n\t\t\t\t\tfor( const [dep] of deps ) visit( dep )\n\t\t\t\t}\n\n\t\t\t\tsorted.add( node )\n\t\t\t}\n\t\t\t\n\t\t\tfor( const node of this.nodes ) {\n\t\t\t\tvisit( node )\n\t\t\t}\n\t\t\t\n\t\t\treturn sorted\n\t\t}\n\t\t\n\t\t/** All Nodes which don't have input Edges */\n\t\tget roots() {\n\t\t\t\n\t\t\tconst roots = [] as Node[]\n\t\t\tfor( const node of this.nodes ) {\n\t\t\t\t\n\t\t\t\tif( this.edges_in.get( node )?.size ) continue\n\t\t\t\troots.push( node )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn roots\n\t\t}\n\t\t\n\t\t// DEPTH STATS\n\t\t\n\t\t/**\n\t\t * Nodes depth statistics for acyclic graph\n\t\t * @example\n\t\t * graph.depth_stat( Math.min )\n\t\t * graph.depth_stat( Math.max )\n\t\t **/\n\t\tnodes_depth( select: ( left: number, right: number )=> number ) {\n\t\t\t\n\t\t\tconst stat = new Map< Node, number >()\n\t\t\tconst visit = ( node: Node, depth = 0 )=> {\n\t\t\t\t\n\t\t\t\tif( stat.has( node ) ) stat.set( node, select( depth, stat.get( node )! ) )\n\t\t\t\telse stat.set( node, depth )\n\t\t\t\t\n\t\t\t\tfor( const kid of this.edges_out.get( node )?.keys() ?? [] ) visit( kid, depth + 1 )\n\t\t\t\t\n\t\t\t}\n\t\t\tfor( const root of this.roots ) visit( root )\n\t\t\t\n\t\t\treturn stat\n\t\t}\n\t\t\n\t\t/**\n\t\t * Depth's Nodes statistics for acyclic graph\n\t\t * @example\n\t\t * graph.depth_nodes( Math.min )\n\t\t * graph.depth_nodes( Math.max )\n\t\t **/\n\t\tdepth_nodes( select: ( left: number, right: number )=> number ) {\n\t\t\t\n\t\t\tconst groups = [] as Node[][]\n\t\t\tfor( const [ node, depth ] of this.nodes_depth( select ).entries() ) {\n\t\t\t\t\n\t\t\t\tif( groups[ depth ] ) groups[ depth ].push( node )\n\t\t\t\telse groups[ depth ] = [ node ]\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn groups\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t$mol_test( {\n\n\t\t'ordered links'() {\n\n\t\t\tvar graph = new $mol_graph< string , 'E' >()\n\t\t\t\n\t\t\tgraph.link( 'A' , 'B' , 'E' )\n\t\t\t\n\t\t\t$mol_assert_equal( graph.edge_out( 'A' , 'B' ) , 'E' )\n\t\t\t$mol_assert_equal( graph.edge_in( 'B' , 'A' ) , 'E' )\n\t\t\t\n\t\t\t$mol_assert_equal( graph.edge_out( 'B' , 'A' ) , null )\n\t\t\t$mol_assert_equal( graph.edge_in( 'A' , 'B' ) , null )\n\n\t\t},\n\t\t\n\t\t'nodes without edges'() {\n\n\t\t\tvar graph = new $mol_graph< string , {} >()\n\t\t\t\n\t\t\tgraph.nodes.add( 'A' )\n\t\t\tgraph.nodes.add( 'B' )\n\t\t\tgraph.nodes.add( 'C' )\n\t\t\tgraph.nodes.add( 'D' )\n\t\t\tgraph.acyclic( edge => 0 )\n\t\t\t\n\t\t\t$mol_assert_equal( [ ... graph.sorted ].join( '' ) , 'ABCD' )\n\t\t} ,\n\t\n\t\t'partial ordering'() {\n\n\t\t\tvar graph = new $mol_graph< string , { priority : number } >()\n\t\t\t\n\t\t\tgraph.nodes.add( 'A' )\n\t\t\tgraph.nodes.add( 'B' )\n\t\t\tgraph.nodes.add( 'C' )\n\t\t\tgraph.nodes.add( 'D' )\n\t\t\t\n\t\t\tgraph.link( 'B' , 'C' , { priority : 0 } )\n\t\t\tgraph.acyclic( edge => edge.priority )\n\t\t\t\n\t\t\t$mol_assert_equal( [ ... graph.sorted ].join( '' ) , 'ACBD' )\n\t\t} ,\n\t\n\t\t'sorting must cut cycles at low priority edges A'() {\n\n\t\t\tvar graph = new $mol_graph< string , { priority : number } >()\n\t\t\t\n\t\t\tgraph.link( 'A' , 'B' , { priority : 0 } )\n\t\t\tgraph.link( 'B' , 'C' , { priority : -2 } )\n\t\t\tgraph.link( 'C' , 'D' , { priority : 0 } )\n\t\t\tgraph.link( 'D' , 'A' , { priority : -1 } )\n\t\t\tgraph.acyclic( edge => edge.priority )\n\t\t\t\n\t\t\t$mol_assert_equal( [ ... graph.sorted ].join( '' ) , 'BADC' )\n\t\t} ,\n\t\n\t\t'sorting must cut cycles at low priority edges B'() {\n\t\t\t\n\t\t\tvar graph = new $mol_graph< string , { priority : number } >()\n\t\t\t\n\t\t\tgraph.link( 'B' , 'C' , { priority : -2 } )\n\t\t\tgraph.link( 'C' , 'D' , { priority : 0 } )\n\t\t\tgraph.link( 'D' , 'A' , { priority : -1 } )\n\t\t\tgraph.link( 'A' , 'B' , { priority : 0 } )\n\t\t\tgraph.acyclic( edge => edge.priority )\n\t\t\t\n\t\t\t$mol_assert_equal( [ ... graph.sorted ].join( '' ) , 'BADC' )\n\t\t} ,\n\t\n\t\t'sorting must cut cycles at low priority edges C'() {\n\t\t\t\n\t\t\tvar graph = new $mol_graph< string , { priority : number } >()\n\t\t\t\n\t\t\tgraph.link( 'C' , 'D' , { priority : 0 } )\n\t\t\tgraph.link( 'D' , 'A' , { priority : -1 } )\n\t\t\tgraph.link( 'A' , 'B' , { priority : 0 } )\n\t\t\tgraph.link( 'B' , 'C' , { priority : -2 } )\n\t\t\tgraph.acyclic( edge => edge.priority )\n\t\t\t\n\t\t\t$mol_assert_equal( [ ... graph.sorted ].join( '' ) , 'BADC' )\n\t\t} ,\n\t\n\t\t'sorting must cut cycles at low priority edges D'() {\n\t\t\t\n\t\t\tvar graph = new $mol_graph< string , { priority : number } >()\n\t\t\t\n\t\t\tgraph.link( 'D' , 'A' , { priority : -1 } )\n\t\t\tgraph.link( 'A' , 'B' , { priority : 0 } )\n\t\t\tgraph.link( 'B' , 'C' , { priority : -2 } )\n\t\t\tgraph.link( 'C' , 'D' , { priority : 0 } )\n\t\t\tgraph.acyclic( edge => edge.priority )\n\t\t\t\n\t\t\t$mol_assert_equal( [ ... graph.sorted ].join( '' ) , 'BADC' )\n\t\t} ,\n\t\n\t\t'sorting must group cutted cycles'() {\n\t\t\t\n\t\t\tvar graph = new $mol_graph< string , number >()\n\t\t\t\n\t\t\tgraph.link( 'A' , 'B' , 0 )\n\t\t\tgraph.link( 'B' , 'C' , 0 )\n\t\t\tgraph.link( 'C' , 'D' , -2 )\n\t\t\tgraph.link( 'D' , 'E' , 0 )\n\t\t\tgraph.link( 'E' , 'C' , 0 )\n\t\t\tgraph.acyclic( edge => edge )\n\t\t\t\n\t\t\t$mol_assert_equal( [ ... graph.sorted ].join( '' ) , 'CEDBA' )\n\t\t} ,\n\t\n\t} )\n}\n","namespace $ {\n\n\texport class $mol_data_error extends $mol_error_mix {}\n\n}\n","namespace $ {\n\n\t/**\n\t * Checks for number and returns number type.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_data_number_demo\n\t */\n\texport let $mol_data_number = ( val : number )=> {\n\t\t\n\t\tif( typeof val === 'number' ) return val\n\t\t\n\t\treturn $mol_fail( new $mol_data_error( `${ val } is not a number` ) )\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t$mol_test({\n\n\t\t'Is number' () {\n\t\t\t$mol_data_number( 0 )\n\t\t} ,\n\n\t\t'Is not number' () {\n\t\t\t$mol_assert_fail( ()=> {\n\t\t\t\t$mol_data_number( 'x' as any )\n\t\t\t} , 'x is not a number' )\n\t\t} ,\n\n\t\t'Is object number' () {\n\t\t\t$mol_assert_fail( ()=> {\n\t\t\t\t$mol_data_number( new Number( '' ) as any )\n\t\t\t} , '0 is not a number' )\n\t\t} ,\n\n\t})\n}\n","namespace $ {\n\n\t/**\n\t * Checks for integer and returns number type.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_data_integer_demo\n\t */\n\texport function $mol_data_integer( val : number ) {\n\n\t\tconst val2 = $mol_data_number( val )\n\t\tif( Math.floor( val2 ) === val2 ) return val2\n\t\t\n\t\treturn $mol_fail( new $mol_data_error( `${ val } is not an integer` ) )\n\t}\n\t\n}\n","namespace $ {\n\t$mol_test({\n\n\t\t'Is integer' () {\n\t\t\t$mol_data_integer( 0 )\n\t\t} ,\n\n\t\t'Is float' () {\n\t\t\t$mol_assert_fail( ()=> {\n\t\t\t\t$mol_data_integer( 1.1 )\n\t\t\t} , '1.1 is not an integer' )\n\t\t} ,\n\n\t})\n}\n","namespace $ {\n\t\n\ttype $mol_data_tagged_type< Value, Tag extends PropertyKey > = Value & { [ Key in Tag ]: Value }\n\t\n\ttype $mol_data_tagged_parser< Input, Output > = {\n\t\tValue: Output\n\t} & (\n\t\t( val: $mol_data_tagged_type< Input, never > )=> Output\n\t)\n\n\t/**\n\t * Checks for given runtype and returns tagged version of returned type.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_data_tagged_demo\n\t */\n\texport function $mol_data_tagged<\n\t\tConfig extends Record< string, $mol_data_value >,\n\t>(\n\t\tconfig: Config\n\t) {\n\t\treturn config as any as {\n\t\t\t[ Type in keyof Config ]: $mol_data_tagged_parser<\n\t\t\t\tParameters< Config[ Type ] >[0],\n\t\t\t\t$mol_data_tagged_type< ReturnType< Config[ Type ] >, Type >\n\t\t\t>\n\t\t}\n\t}\n\n}\n","namespace $ {\n\t$mol_test({\n\n\t\t'tagged typing' () {\n\n\t\t\tconst { Weight, Length } = $mol_data_tagged({\n\t\t\t\tWeight: $mol_data_integer,\n\t\t\t\tLength: $mol_data_integer,\n\t\t\t})\n\t\t\t\n\t\t\tLength( 20 ) // Validate\n\t\t\tlet len = Length( 10 ) // Inferred type\n\t\t\t\n\t\t\tlen = 20 as typeof Length.Value // Explicit type\n\t\t\tlet num: number = len // Implicit cast\n\t\t\tlen = Length( Weight( 20 ) ) // Explicit cast\n\t\t\t\n\t\t\t// len = 20 // Compile time error\n\t\t\t// len = Weight( 20 ) // Compile time error\n\t\t\t// len = Length( 20.1 ) // Run time error\n\t\t\t\n\t\t} ,\n\n\t})\n}\n","namespace $ {\n\n\texport function $mol_data_setup<\n\t\tValue extends $mol_data_value ,\n\t\tConfig = never\n\t>(\n\t\tvalue : Value ,\n\t\tconfig : Config ,\n\t) {\n\t\t\n\t\treturn Object.assign( value , {\n\t\t\tconfig ,\n\t\t\tValue : null as any as ReturnType< Value >\n\t\t} )\n\n\t}\n\n}\n","namespace $ {\n\n\t$mol_test({\n\n\t\t'config by value'() {\n\n\t\t\tconst N = $mol_data_setup( ( a : number )=> a , 5 )\n\t\t\t\n\t\t\t$mol_assert_equal( N.config , 5 )\n\t\t\t\n\t\t\ttype record_value = $mol_type_assert<\n\t\t\t\ttypeof N.Value ,\n\t\t\t\tnumber\n\t\t\t>\n\t\t\t\n\t\t} ,\n\n\t})\n\n}\n","namespace $ {\n\n\texport function $mol_func_is_class<\n\t\tFunc extends Function\n\t>(\n\t\tfunc: Func\n\t): func is Func & ( new( ...args: any[] )=> any ) {\n\t\treturn Object.getOwnPropertyDescriptor( func, 'prototype' )?.writable === false\n\t}\n\n}\n","namespace $ {\n\t$mol_test({\n\n\t\t'function'() {\n\t\t\t$mol_assert_not( $mol_func_is_class( function() {} ) )\n\t\t},\n\t\t\n\t\t'generator'() {\n\t\t\t$mol_assert_not( $mol_func_is_class( function*(){} ) )\n\t\t},\n\n\t\t'async'() {\n\t\t\t$mol_assert_not( $mol_func_is_class( async function(){} ) )\n\t\t},\n\n\t\t'arrow'() {\n\t\t\t$mol_assert_not( $mol_func_is_class( ()=> null ) )\n\t\t},\n\n\t\t'named class'() {\n\t\t\t$mol_assert_ok( $mol_func_is_class( class Foo {} ) )\n\t\t},\n\n\t\t'unnamed class'() {\n\t\t\t$mol_assert_ok( $mol_func_is_class( class {} ) )\n\t\t},\n\n\t})\n}\n","namespace $ {\n\n\ttype Guard_value<\n\t\tFuncs extends $mol_type_unary[] ,\n\t\tIndex extends keyof Funcs\n\t> = $mol_type_param<\n\t\tIndex extends keyof $mol_type_tail< Funcs >\n\t\t\t? $mol_type_tail< Funcs >[ Index ]\n\t\t\t: any ,\n\t\t0\n\t>\n\n\ttype Guard<\n\t\tFuncs extends $mol_type_unary[]\n\t> = {\n\t\t[ Index in keyof Funcs ] : (\n\t\t\tFuncs[Index] extends $mol_type_unary_func\n\t\t\t\t? (\n\t\t\t\t\tinput : $mol_type_param< Funcs[Index] , 0 >\n\t\t\t\t) => Guard_value< Funcs , Index >\n\t\t\t\t: new(\n\t\t\t\t\tinput : $mol_type_param< Funcs[Index] , 0 >\n\t\t\t\t) => Guard_value< Funcs , Index >\n\t\t)\n\t}\n\n\t/**\n\t * Combines list of unary functions/classes to one function.\n\t * \n\t * \tconst reparse = $mol_data_pipe( JSON.stringify , JSON.parse )\n\t **/\n\texport function $mol_data_pipe<\n\t\tFuncs extends $mol_type_unary[]\n\t>(\n\t\t... funcs : Funcs & Guard< Funcs >\n\t) {\n\n\t\treturn $mol_data_setup(\n\t\t\tfunction( this: any, input : $mol_type_param< Funcs[0] , 0 > ) {\n\t\t\t\tlet value : any = input\n\t\t\t\tfor( const func of funcs ) value = $mol_func_is_class( func ) ? new func( value ) : ( func as any ).call( this, value )\n\t\t\t\treturn value as $mol_type_result<\n\t\t\t\t\t$mol_type_foot< Funcs >\n\t\t\t\t>\n\t\t\t},\n\t\t\t{ funcs }\n\t\t)\n\n\t}\n\n}\n","namespace $ {\n\n\t$mol_test({\n\n\t\t// @todo enable on strict\n\t\t// 'no functions'() {\n\t\t\t\n\t\t// \tconst stringify = $mol_data_pipe()\n\t\t\t\n\t\t// \ttype Type = $mol_type_assert<\n\t\t// \t\ttypeof stringify,\n\t\t// \t\t( input : never )=> never\n\t\t// \t>\n\t\n\t\t// },\n\n\t\t'single function'() {\n\t\t\t\n\t\t\tconst stringify = $mol_data_pipe(\n\t\t\t\t( input : number )=> input.toString() ,\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal( stringify( 5 ) , '5' )\n\t\t\t\n\t\t},\n\n\t\t'two functions'() {\n\n\t\t\tconst isLong = $mol_data_pipe(\n\t\t\t\t( input : number )=> input.toString() ,\n\t\t\t\t( input : string )=> input.length > 2 ,\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal( isLong( 5.0 ) , false )\n\t\t\t$mol_assert_equal( isLong( 5.1 ) , true )\n\t\t\t\n\t\t},\n\n\t\t'three functions'() {\n\n\t\t\tconst pattern = $mol_data_pipe(\n\t\t\t\t( input : number )=> input.toString() ,\n\t\t\t\t( input : string )=> new RegExp( input ) ,\n\t\t\t\t( input : RegExp )=> input.toString() ,\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal( pattern( 5 ) , '/5/' )\n\t\t\t\n\t\t},\n\n\t\t'classes'() {\n\n\t\t\tclass Box {\n\t\t\t\tconstructor( public value : string ) {}\n\t\t\t}\n\n\t\t\tconst boxify = $mol_data_pipe(\n\t\t\t\t( input : number )=> input.toString() ,\n\t\t\t\tBox\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_ok( boxify( 5 ) instanceof Box )\n\t\t\t$mol_assert_like( boxify( 5 ).value, '5' )\n\t\t\t\n\t\t},\n\n\t})\n\n}\n","namespace $ {\n\t\n\texport const { $giper_baza_rank } = $mol_data_tagged({\n\t\t$giper_baza_rank: $mol_data_pipe(\n\t\t\t$mol_data_integer,\n\t\t\t( rank: number )=> {\n\t\t\t\tif( rank >= $giper_baza_rank_deny && rank <= $giper_baza_rank_rule ) return rank\n\t\t\t\t$mol_fail( new $mol_data_error( `${rank} is out of Ran range` ) )\n\t\t\t}\n\t\t),\n\t}) \n\t\n\t/** Makes Rank from Tier and Fame names. */\n\texport function $giper_baza_rank_make(\n\t\ttier: keyof typeof $giper_baza_rank_tier,\n\t\tfame: keyof typeof $giper_baza_rank_rate,\n\t) {\n\t\treturn ( $giper_baza_rank_tier[ tier ] | $giper_baza_rank_rate[ fame ] ) as typeof $giper_baza_rank.Value\n\t}\n\n\t/** Access level: deny, read, post, pull, rule */\n\texport enum $giper_baza_rank_tier {\n\n\t\t/** Forbidden. There is no access, neither read nor write. */\n\t\tdeny = 0b0_0000_0000,\n\n\t\t/** Read only */\n\t\tread = 0b0_0001_0000,\n\n\t\t/** Post changes (Sand) */\n\t\tpost = 0b0_0011_0000,\n\n\t\t/** Pull forks (Sand) */\n\t\tpull = 0b0_0111_0000,\n\n\t\t/** Full control (Sand, Gift) */\n\t\trule = 0b0_1111_0000,\n\n\t}\n\t\n\texport function $giper_baza_rank_tier_of( rank: typeof $giper_baza_rank.Value ): $giper_baza_rank_tier {\n\t\treturn rank & 0b1111_0000\n\t}\n\t\n\t/** Work as bits count by Rate */\n\texport const $giper_baza_rank_work_rates = [\n\t\t0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF,\n\t\t0xE, 0xE, 0xE, 0xE, 0xD, 0xD, 0xD, 0xD,\n\t\t0xC, 0xC, 0xB, 0xB, 0xA, 0xA, 0x9, 0x9,\n\t\t0x8, 0x7, 0x6, 0x5, 0x4, 0x3, 0x2, 0x1,\n\t\t0x0,\n\t] as const\n\t\n\t/** Ease of making changes, depends on fame: evil, harm, even, nice, good */\n\texport enum $giper_baza_rank_rate {\n\n\t\t/** Days delay. */\n\t\tlate = 0x0,\n\t\t\n\t\t/** Seconds delay. */\n\t\tlong = 0xC,\n\n\t\t/** Half-second delay. */\n\t\tslow = 0xD,\n\n\t\t/** Milli-seconds delay. */\n\t\tfast = 0xE,\n\n\t\t/** Micro-seconds delay. */\n\t\tjust = 0xF,\n\n\t}\n\t\n\texport function $giper_baza_rank_rate_of( rank: typeof $giper_baza_rank.Value ): $giper_baza_rank_rate {\n\t\treturn rank & 0b0000_1111\n\t}\n\n\texport const $giper_baza_rank_deny = $giper_baza_rank_make( 'deny', 'late' )\n\texport const $giper_baza_rank_read = $giper_baza_rank_make( 'read', 'late' )\n\texport const $giper_baza_rank_rule = $giper_baza_rank_make( 'rule', 'just' )\n\t\n\texport function $giper_baza_rank_pull(\n\t\trate: keyof typeof $giper_baza_rank_rate\n\t) {\n\t\treturn $giper_baza_rank_make( 'pull', rate )\n\t}\n\n\texport function $giper_baza_rank_post(\n\t\trate: keyof typeof $giper_baza_rank_rate\n\t) {\n\t\treturn $giper_baza_rank_make( 'post', rate )\n\t}\n\n\t/** Mapping Pass to Rank */\n\texport type $giper_baza_rank_preset = [ $giper_baza_auth_pass | null, typeof $giper_baza_rank.Value ][]\n\n}\n","namespace $ {\n\t\n\t/** Kind of Unit */\n\texport enum $giper_baza_unit_kind {\n\t\t\n\t\t/** Unit of data. */\n\t\tsand = $giper_baza_slot_kind.sand,\n\t\t\n\t\t/** Rights/Keys sharing. */\n\t\tgift = $giper_baza_slot_kind.gift,\n\t\t\n\t\t/** Sign for hash list. */\n\t\tseal = $giper_baza_slot_kind.seal,\n\t\t\n\t\t/** Public key. */\n\t\tpass = $giper_baza_slot_kind.pass,\n\t\t\n\t}\n\t\n\texport let $giper_baza_unit_trusted = new WeakSet< $giper_baza_unit_base >()\n\t\n\texport function $giper_baza_unit_trusted_grant( unit: $giper_baza_unit ) {\n\t\tif( unit instanceof $giper_baza_auth_pass ) return\n\t\t$giper_baza_unit_trusted.add( unit )\n\t}\n\t\n\texport function $giper_baza_unit_trusted_check( unit: $giper_baza_unit ) {\n\t\tif( unit instanceof $giper_baza_auth_pass ) return true\n\t\treturn $giper_baza_unit_trusted.has( unit )\n\t}\n\t\n\texport type $giper_baza_unit = $giper_baza_unit_base | $giper_baza_auth_pass\n\t\n\t/** Order units: lord / seal / gift / sand */\n\texport function $giper_baza_unit_sort( units: readonly $giper_baza_unit[] ) {\n\t\t\n\t\tconst nodes = new Map< string, $giper_baza_unit >()\n\t\tconst graph = new $mol_graph< $giper_baza_unit | null, number >()\n\t\t\n\t\tfor( const unit of units ) {\n\t\t\tif( unit instanceof $giper_baza_auth_pass ) {\n\t\t\t\tnodes.set( unit.lord().str, unit )\n\t\t\t} else {\n\t\t\t\tif( unit instanceof $giper_baza_unit_sand && !unit.encoded() ) continue\n\t\t\t\tconst self = unit.hash().str\n\t\t\t\tnodes.set( self, unit )\n\t\t\t}\n\t\t}\n\t\t\n\t\tfor( const unit of units ) {\n\t\t\tif( unit instanceof $giper_baza_auth_pass ) continue\n\t\t\t\n\t\t\tunit.choose({\n\t\t\t\tgift: gift => {\n\t\t\t\t\t\n\t\t\t\t\tgraph.link( gift, nodes.get( gift.lord().str ) ?? null, 1 ) // gift => lord\n\t\t\t\t\tgraph.link( gift, null, 0 ) // gift -> every\n\t\t\t\t\t\n\t\t\t\t\tif( gift.lord().str === gift.mate().str ) return\n\t\t\t\t\tgraph.link( nodes.get( gift.mate().str ) ?? null, gift, 1 ) // mate => gift\n\t\t\t\t\t\n\t\t\t\t},\n\t\t\t\tsand: sand => {\n\t\t\t\t\t\n\t\t\t\t\tgraph.link( sand, nodes.get( sand.lord().str ) ?? null, 1 ) // sand => lord\n\t\t\t\t\tgraph.link( sand, null, 1 ) // sand => every\n\t\t\t\t\t\n\t\t\t\t},\n\t\t\t\tseal: seal => {\n\t\t\t\t\t\n\t\t\t\t\tgraph.link( seal, nodes.get( seal.lord().str ) ?? null, 0 ) // seal -> lord\n\t\t\t\t\tgraph.link( seal, null, 0 ) // seal -> every\n\t\t\t\t\t\n\t\t\t\t\tfor( const hash of seal.hash_list() ) {\n\t\t\t\t\t\tgraph.link( nodes.get( hash.str ) ?? null, seal, 1 ) // unit => seal\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t})\n\t\t\t\n\t\t}\n\t\t\n\t\tgraph.acyclic( e => e )\n\t\t\n\t\treturn [ ... graph.sorted ].filter( Boolean ) as $giper_baza_unit[]\n\n\t}\n\t\n\t/** Minimal independent stable part of information. */\n\texport class $giper_baza_unit_base extends $mol_buffer {\n\t\t\n\t\t/**\n\t\t * Compare Seals on timeline ( right - left )\n\t\t * Priority: time > lord > tick\n\t\t */\n\t\tstatic compare(\n\t\t\tleft: $giper_baza_unit_base | undefined,\n\t\t\tright: $giper_baza_unit_base | undefined,\n\t\t) {\n\t\t\t\n\t\t\tif( !left && !right ) return 0\n\t\t\tif( !left ) return +1\n\t\t\tif( !right ) return -1\n\t\t\t\n\t\t\treturn ( right.time() - left.time() )\n\t\t\t\t|| $giper_baza_link_compare( left.lord(), right.lord() )\n\t\t\t\t|| ( right.tick() - left.tick() )\n\t\t\t\n\t\t}\n\t\t\n\t\tstatic narrow( buf: ArrayBuffer ) {\n\t\t\tconst kind = $giper_baza_unit_kind[ new $mol_buffer( buf ).uint8( 0 ) ] as keyof typeof $giper_baza_unit_kind\n\t\t\tconst Type = {\n\t\t\t\tsand: $giper_baza_unit_sand,\n\t\t\t\tgift: $giper_baza_unit_gift,\n\t\t\t\tseal: $giper_baza_unit_seal,\n\t\t\t\tpass: $giper_baza_auth_pass,\n\t\t\t}[ kind ]\n\t\t\treturn new Type( buf )\n\t\t}\n\n\t\tconstructor(\n\t\t\tbuffer: ArrayBuffer,\n\t\t\tbyteOffset = 0,\n\t\t\tbyteLength = buffer.byteLength,\n\t\t) {\n\t\t\tsuper( buffer, byteOffset, byteLength )\n\t\t}\n\t\t\n\t\tkind( next?: keyof typeof $giper_baza_unit_kind ): Exclude< keyof typeof $giper_baza_unit_kind, 'pass' > {\n\t\t\t\n\t\t\tconst val = this.uint8( 0, next && $giper_baza_unit_kind[ next ] )\n\t\t\t\n\t\t\tconst kind = $giper_baza_unit_kind[ val ] as Exclude< keyof typeof $giper_baza_unit_kind, 'pass' >\n\t\t\tif( kind ) return kind\n\t\t\t\n\t\t\t$mol_fail( new Error( `Unknown unit kind (${val})` ) )\n\t\t}\n\t\t\n\t\tchoose< Res >( ways: {\n\t\t\tgift: ( unit: $giper_baza_unit_gift )=> Res,\n\t\t\tsand: ( unit: $giper_baza_unit_sand )=> Res,\n\t\t\tseal: ( unit: $giper_baza_unit_seal )=> Res,\n\t\t} ) {\n\t\t\treturn ways[ this.kind() ]( this as any )\n\t\t}\n\t\t\n\t\tpath(): string {\n\t\t\tthrow new Error( 'Unimplemented' )\n\t\t}\n\t\t\n\t\tid6( offset: number, next?: $giper_baza_link ) {\n\t\t\tif( next === undefined ) {\n\t\t\t\treturn $giper_baza_link.from_bin( new Uint8Array( this.buffer, this.byteOffset + offset, 6 ) )\n\t\t\t} else {\n\t\t\t\tconst bin = next.toBin()\n\t\t\t\tif( bin.byteLength === 0 ) return next\n\t\t\t\tif( bin.byteLength !== 6 ) $mol_fail( new Error( `Wrong Link size (${ next })` ) )\n\t\t\t\tthis.asArray().set( bin, this.byteOffset + offset )\n\t\t\t\treturn next\n\t\t\t}\n\t\t}\n\t\t\n\t\tid12( offset: number, next?: $giper_baza_link ) {\n\t\t\tif( next === undefined ) {\n\t\t\t\treturn $giper_baza_link.from_bin( new Uint8Array( this.buffer, this.byteOffset + offset, 12 ) )\n\t\t\t} else {\n\t\t\t\tconst bin = next.toBin()\n\t\t\t\tif( bin.byteLength === 0 ) return next\n\t\t\t\tif( bin.byteLength !== 12 ) $mol_fail( new Error( `Wrong Link size (${ next })` ) )\n\t\t\t\tthis.asArray().set( bin, this.byteOffset + offset )\n\t\t\t\treturn next\n\t\t\t}\n\t\t}\n\t\t\n\t\t/** Seconds from UNIX epoch */\n\t\ttime( next?: number ) {\n\t\t\treturn this.uint32( 4, next )\n\t\t}\n\t\t\n\t\tmoment() {\n\t\t\treturn new $mol_time_moment( Number( this.time() * 1000 ) )\n\t\t}\n\t\t\n\t\t/** Step in transaction */\n\t\ttick( next?: number ) {\n\t\t\treturn this.uint16( 2, next )\n\t\t}\n\t\t\n\t\t/** Monotonic Real+Logic Time */\n\t\ttime_tick( next?: number ) {\n\t\t\tif( !next ) return this.tick() + this.time() * 2**16\n\t\t\tthis.tick( next % 2**16 )\n\t\t\tthis.time( Math.floor( next / 2**16 ) )\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t_lord = null as $giper_baza_link | null\n\t\tlord( next?: $giper_baza_link ) {\n\t\t\tif( next ) return this._lord = this.id12( 8, next )\n\t\t\treturn this._lord ?? ( this._lord = this.id12( 8 ) )\n\t\t}\n\t\t\n\t\t/** Unique number for encryption */\n\t\tsalt() {\n\t\t\treturn new Uint8Array( this.buffer, this.byteOffset + 2, 16 ) /* tick(2), time(4), lord(10) */\n\t\t}\n\t\t\n\t\thash() {\n\t\t\treturn $giper_baza_link.hash_bin( this.asArray() )\n\t\t}\n\t\t\n\t\ttier_min() {\n\t\t\treturn $giper_baza_rank_tier.rule\n\t\t}\n\t\t\n\t\tencoded() {\n\t\t\treturn true\n\t\t}\n\t\t\n\t\t_land = null as null | $giper_baza_land\n\t\t_alive = false\n\t\t\n\t\tdump() {\n\t\t\treturn {}\n\t\t}\n\t\t\n\t\t[ Symbol.for( 'nodejs.util.inspect.custom' ) ]() {\n\t\t\treturn this.inspect()\n\t\t}\n\t\t\n\t\tinspect() {\n\t\t\tconst hash = $mol_term_color.cyan( '#' + this.hash().str )\n\t\t\tconst lord = $mol_term_color.magenta( '@' + this.lord().str )\n\t\t\tconst time = $mol_term_color.gray( $giper_baza_time_dump( this.time(), this.tick() ) )\n\t\t\treturn `${lord} ${hash} ${time}`\n\t\t}\n\t\t\n\t\ttoJSON() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\ttoString() {\n\t\t\tconst hash = '#' + this.hash().str\n\t\t\tconst lord = '@' + this.lord().str\n\t\t\tconst time = $giper_baza_time_dump( this.time(), this.tick() )\n\t\t\treturn `${lord} ${hash} ${time}`\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'gift unit type'() {\n\t\t\t\n\t\t\tconst gift = $giper_baza_unit_gift.make()\n\t\t\tgift.rank( $giper_baza_rank_rule )\n\t\t\t\n\t\t\t$mol_assert_equal( gift.kind(), 'gift' )\n\t\t\t$mol_assert_equal( gift.rank(), $giper_baza_rank_rule )\n\t\t\t\n\t\t},\n\t\t\n\t\t'data unit type'() {\n\t\t\t\n\t\t\tconst unit = $giper_baza_unit_sand.make( 2 )\n\t\t\tunit.ball( new Uint8Array([ 0xFF, 0xFF ]) )\n\t\t\t\n\t\t\t$mol_assert_equal( unit.kind(), 'sand' )\n\t\t\t$mol_assert_equal( unit.size(), 2 )\n\t\t\t$mol_assert_equal( unit.ball(), new Uint8Array([ 0xFF, 0xFF ]) )\n\t\t\t\n\t\t},\n\t\t\n\t\t'big data unit type'() {\n\t\t\t\n\t\t\tconst unit = $giper_baza_unit_sand.make( 1000 )\n\t\t\tunit.ball( new Uint8Array( 1000 ) )\n\t\t\t\n\t\t\t$mol_assert_equal( unit.kind(), 'sand' )\n\t\t\t$mol_assert_equal( unit.size(), 1000 )\n\t\t\t$mol_assert_equal( unit.ball(), new Uint8Array( 1000 ) )\n\t\t\t\n\t\t},\n\t\t\n\t\t'gift unit fields'() {\n\t\t\t\n\t\t\tconst unit = $giper_baza_unit_gift.make()\n\t\t\t\n\t\t\t$mol_assert_equal( unit.time(), 0 )\n\t\t\t$mol_assert_equal( unit.mate(), $giper_baza_link.hole )\n\t\t\t\n\t\t\tunit.time_tick( 0xd1d2d3d4d5d6 )\n\t\t\tunit.mate( new $giper_baza_link( 'ÆPv6æfj3_9vX08ÆLx' ) )\n\t\t\t\n\t\t\t$mol_assert_equal( unit.time_tick(), 0xd1d2d3d4d5d6 )\n\t\t\t$mol_assert_equal( unit.mate(), new $giper_baza_link( 'ÆPv6æfj3_9vX08ÆLx' ) )\n\t\t\t\n\t\t},\n\t\t\n\t\t'data unit fields'() {\n\t\t\t\n\t\t\tconst unit = $giper_baza_unit_sand.make( 0 )\n\t\t\t\n\t\t\t$mol_assert_equal( unit.time(), 0 )\n\t\t\t$mol_assert_equal( unit.head(), $giper_baza_link.hole )\n\t\t\t$mol_assert_equal( unit.self(), $giper_baza_link.hole )\n\t\t\t$mol_assert_equal( unit.lead(), $giper_baza_link.hole )\n\t\t\t\n\t\t\tunit.time_tick( 0xd1d2d3d4d5d6 )\n\t\t\tunit.head( new $giper_baza_link( 'ÆPv6æfj3' ) )\n\t\t\tunit.self( new $giper_baza_link( 'Pv6æfj39' ) )\n\t\t\tunit.lead( new $giper_baza_link( 'v6æfj39v' ) )\n\t\t\t\n\t\t\t$mol_assert_equal( unit.time_tick(), 0xd1d2d3d4d5d6 )\n\t\t\t$mol_assert_equal( unit.head(), new $giper_baza_link( 'ÆPv6æfj3' ) )\n\t\t\t$mol_assert_equal( unit.self(), new $giper_baza_link( 'Pv6æfj39' ) )\n\t\t\t$mol_assert_equal( unit.lead(), new $giper_baza_link( 'v6æfj39v' ) )\n\t\t\t\n\t\t},\n\t\t\n\t})\n}\n","namespace $ {\n\n\texport type $mol_time_interval_config = string | {\n\t\tstart? : $mol_time_moment_config\n\t\tend? : $mol_time_moment_config\n\t\tduration? : $mol_time_duration_config\n\t}\n\n\t/**\n\t * Small, simple, powerful, and fast TypeScript/JavaScript library for proper date/time/duration/interval arithmetic.\n\t *\n\t * Immutable iso8601 time interval representation.\n\t * @see http://localhost:9080/mol/app/docs/-/test.html#!demo=mol_time_demo\n\t */\n\texport class $mol_time_interval extends $mol_time_base {\n\n\t\tconstructor( config : $mol_time_interval_config ) {\n\t\t\t\n\t\t\tsuper()\n\t\t\t\n\t\t\tif( typeof config === 'string' ) {\n\t\t\t\t\n\t\t\t\tvar chunks = config.split( '/' )\n\t\t\t\t\n\t\t\t\tif( chunks[0] ) {\n\t\t\t\t\tif( chunks[0][0].toUpperCase() === 'P' ) {\n\t\t\t\t\t\tthis._duration = new $mol_time_duration( chunks[0] )\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._start = new $mol_time_moment( chunks[0] )\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis._start = new $mol_time_moment()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( chunks[1] ) {\n\t\t\t\t\tif( chunks[1][0].toUpperCase() === 'P' ) {\n\t\t\t\t\t\tthis._duration = new $mol_time_duration( chunks[1] )\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._end = new $mol_time_moment( chunks[1] )\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis._end = new $mol_time_moment()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif( config.start !== undefined ) this._start = new $mol_time_moment( config.start )\n\t\t\tif( config.end !== undefined ) this._end = new $mol_time_moment( config.end )\n\t\t\tif( config.duration !== undefined ) this._duration = new $mol_time_duration( config.duration )\n\t\t}\n\n\t\tprivate _start : $mol_time_moment | undefined\n\t\tget start() {\n\t\t\tif( this._start ) return this._start\n\t\t\t\n\t\t\treturn this._start = this._end!.shift( this._duration!.mult( -1 ) )\n\t\t}\n\n\t\tprivate _end : $mol_time_moment | undefined\n\t\tget end() {\n\t\t\tif( this._end ) return this._end\n\t\t\t\n\t\t\treturn this._end = this._start!.shift( this._duration! )\n\t\t}\n\n\t\tprivate _duration : $mol_time_duration | undefined\n\t\tget duration() {\n\t\t\tif( this._duration ) return this._duration\n\t\t\t\n\t\t\treturn this._duration = new $mol_time_duration( this._end!.valueOf() - this._start!.valueOf() )\n\t\t}\n\n\t\ttoJSON() { return this.toString() }\n\n\t\ttoString( ) {\n\t\t\treturn ( this._start || this._duration || '' ).toString() + '/' + ( this._end || this._duration || '' ).toString()\n\t\t}\n\n\t\t[ Symbol.toPrimitive ]( mode: 'default' | 'number' | 'string' ) {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'triplets'() {\n\t\t\t$mol_assert_equal(\n\t\t\t\tnew $mol_time_interval( '2015-01-01/P1M' ).end.toString() ,\n\t\t\t\t'2015-02-01'\n\t\t\t)\n\t\t\t$mol_assert_equal(\n\t\t\t\tnew $mol_time_interval( 'P1M/2015-02-01' ).start.toString() ,\n\t\t\t\t'2015-01-01'\n\t\t\t)\n\t\t\t$mol_assert_equal(\n\t\t\t\tnew $mol_time_interval( '2015-01-01/2015-02-01' ).duration.toString() ,\n\t\t\t\t'PT2678400S'\n\t\t\t)\n\t\t},\n\t\t\n\t\t'comparison'() {\n\t\t\tconst iso = '2021-01-02/2022-03-04'\n\t\t\t$mol_assert_like( new $mol_time_interval( iso ), new $mol_time_interval( iso ) )\n\t\t},\n\t\t\n\t})\n}\n","namespace $ {\n\t\n\texport function $mol_bigint_encode( num: bigint ) {\n\n\t\tconst minus = num < 0n ? 255 : 0;\n\t\tnum = minus ? -num - 1n : num\n\t\t\n\t\tconst bytes = [] as number[]\n\t\tdo {\n\t\t\t\n\t\t\tlet byte = minus ^ Number( num & 255n )\n\t\t\tbytes.push( byte )\n\t\t\t\n\t\t\tif( num >>= 8n ) continue\n\t\t\t\n\t\t\tif(( minus & 128 )!==( byte & 128 ))\n\t\t\t\tbytes.push( minus )\n\t\t\t\n\t\t\tbreak\n\t\t\t\n\t\t} while( num )\n\t\n\t\treturn new Uint8Array(bytes);\n\t}\n\t\n}\n","namespace $.$$ {\n\t$mol_test({\n\t\t\n\t\t\"1 byte int\"( $ ) {\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_encode( 0n ),\n\t\t\t\tnew Uint8Array( new Int8Array([ 0 ]).buffer ),\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_encode( 1n ),\n\t\t\t\tnew Uint8Array( new Int8Array([ 1 ]).buffer ),\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_encode( -1n ),\n\t\t\t\tnew Uint8Array( new Int8Array([ -1 ]).buffer ),\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_encode( 127n ),\n\t\t\t\tnew Uint8Array( new Int8Array([ 127 ]).buffer ),\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_encode( -128n ),\n\t\t\t\tnew Uint8Array( new Int8Array([ -128 ]).buffer ),\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t\"2 byte int\"( $ ) {\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_encode( 128n ),\n\t\t\t\tnew Uint8Array( new Int16Array([ 128 ]).buffer ),\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_encode( -129n ),\n\t\t\t\tnew Uint8Array( new Int16Array([ -129 ]).buffer ),\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_encode( 128n * 256n - 1n ),\n\t\t\t\tnew Uint8Array( new Int16Array([ 128 * 256 - 1 ]).buffer ),\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_encode( -128n * 256n ),\n\t\t\t\tnew Uint8Array( new Int16Array([ -128 * 256 ]).buffer ),\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t\"3 byte int\"( $ ) {\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_encode( 128n * 256n ),\n\t\t\t\tnew Uint8Array( new Int32Array([ 128 * 256 ]).buffer ).slice( 0, 3 ),\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_encode( -128n * 256n - 1n ),\n\t\t\t\tnew Uint8Array( new Int32Array([ -128 * 256 - 1 ]).buffer ).slice( 0, 3 ),\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_encode( 128n * 256n ** 2n - 1n ),\n\t\t\t\tnew Uint8Array( new Int32Array([ 128 * 256 ** 2 - 1 ]).buffer ).slice( 0, 3 ),\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_encode( -128n * 256n ** 2n ),\n\t\t\t\tnew Uint8Array( new Int32Array([ -128 * 256 ** 2 ]).buffer ).slice( 0, 3 ),\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t\"4 byte int\"( $ ) {\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_encode( 128n * 256n ** 2n ),\n\t\t\t\tnew Uint8Array( new Int32Array([ 128 * 256 ** 2 ]).buffer ),\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_encode( -128n * 256n ** 2n - 1n ),\n\t\t\t\tnew Uint8Array( new Int32Array([ -128 * 256 ** 2 - 1 ]).buffer ),\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_encode( 128n * 256n ** 3n - 1n ),\n\t\t\t\tnew Uint8Array( new Int32Array([ 128 * 256 ** 3 - 1 ]).buffer ),\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_encode( -128n * 256n ** 3n ),\n\t\t\t\tnew Uint8Array( new Int32Array([ -128 * 256 ** 3 ]).buffer ),\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t\"8 byte int\"( $ ) {\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_encode( 128n * 256n ** 7n - 1n ),\n\t\t\t\tnew Uint8Array( new BigInt64Array([ 128n * 256n ** 7n - 1n ]).buffer ),\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_encode( -128n * 256n ** 7n ),\n\t\t\t\tnew Uint8Array( new BigInt64Array([ -128n * 256n ** 7n ]).buffer ),\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t})\n}\n","namespace $ {\n\t\n\tconst ascii_set = [ ... `0123456789.,:;()'\"- \\n` ].map( c => c.charCodeAt(0) )\n\tconst ascii_map = new Array< number >( 0x80 ).fill( 0 )\n\tfor( let i = 0; i < ascii_set.length; ++i ) ascii_map[ ascii_set[ i ] ] = i | 0x80\n\t\n\tconst diacr_set = [\n\t\t0x00, 0x01, 0x0F, 0x0B, 0x07, 0x08, 0x12, 0x13, // up\n\t\t0x02, 0x0C, 0x06, 0x11, 0x03, 0x09, 0x0A, 0x04, // up\n\t\t0x28, 0x31, 0x27, 0x26, 0x23, // down\n\t]\n\tconst diacr_map = new Array< number >( 0x80 ).fill( 0 )\n\tfor( let i = 0; i < diacr_set.length; ++i ) diacr_map[ diacr_set[ i ] ] = i | 0x80\n\t\n\tconst wide_offset = 0x0E_00\n\tconst wide_limit = 128 * 128 * 8 + wide_offset\n\tconst tiny_limit = 128 * 98\n\t\n\tconst full_mode = 0x95\n\tconst wide_mode = 0x96\n\tconst tiny_mode = 0x9E\n\t\n\t/** Encode text to Unicode Compact Format. */\n\texport function $mol_charset_ucf_encode( str: string ) {\n\t\tconst buf = $mol_charset_buffer( str.length * 3 )\n\t\treturn buf.slice( 0, $mol_charset_ucf_encode_to( str, buf ) )\n\t}\t\n\t\n\texport function $mol_charset_ucf_encode_to( str: string, buf: Uint8Array< ArrayBuffer >, from = 0 ) {\n\n\t\tlet pos = from\n\t\tlet mode = tiny_mode\n\t\t\n\t\tconst write_high = ( code: number )=> {\n\t\t\tbuf[ pos ++ ] = ( ( code + 128 - mode ) & 0x7F ) | 0x80\n\t\t}\n\t\t\n\t\tconst write_remap = ( code: number )=> {\n\t\t\tconst fast = ascii_map[ code ]\n\t\t\tif( fast ) write_high( fast )\n\t\t\telse buf[ pos ++ ] = code\n\t\t}\n\t\t\n\t\tconst write_mode = ( m: number )=> {\n\t\t\twrite_high( m )\n\t\t\tmode = m\n\t\t}\n\t\t\n\t\tfor( let i = 0; i < str.length; i++ ) {\n\t\t\t\n\t\t\tlet code = str.charCodeAt( i )\n\t\t\tif( code >= 0xD8_00 && code < 0xDC_00 ) code = ( ( code - 0xd800 ) << 10 ) + str.charCodeAt( ++ i ) + 0x2400\n\t\t\t\n\t\t\tif( code < 0x80 ) { // ASCII\n\t\t\t\t\n\t\t\t\tif( mode !== tiny_mode ) {\n\t\t\t\t\tconst fast = ascii_map[ code ]\n\t\t\t\t\tif( !fast ) write_mode( tiny_mode )\n\t\t\t\t}\n\t\t\t\tbuf[ pos ++ ] = code\n\t\t\t\t\n\t\t\t} else if( code < tiny_limit ) { // Tiny\n\t\t\t\t\n\t\t\t\tconst page = ( code >> 7 ) + tiny_mode\n\t\t\t\tcode &= 0x7F\n\t\t\t\t\n\t\t\t\tif( page === 164 ) { // diacritics\n\t\t\t\t\tconst fast = diacr_map[ code ]\n\t\t\t\t\tif( fast ) {\n\t\t\t\t\t\tif( mode !== tiny_mode ) write_mode( tiny_mode )\n\t\t\t\t\t\twrite_high( fast )\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( mode !== page ) write_mode( page )\n\t\t\t\twrite_remap( code )\n\t\t\t\t\n\t\t\t} else if( code < wide_limit ) { // Wide\n\t\t\t\t\n\t\t\t\tcode -= wide_offset\n\t\t\t\tconst page = ( code >> 14 ) + wide_mode\n\t\t\t\tif( mode !== page ) write_mode( page )\n\t\t\t\twrite_remap( code & 0x7F )\n\t\t\t\twrite_remap( ( code >> 7 ) & 0x7F )\n\t\t\t\t\n\t\t\t} else { // Full\n\t\t\t\t\n\t\t\t\tif( mode !== full_mode ) write_mode( full_mode )\n\t\t\t\twrite_remap( code & 0x7F )\n\t\t\t\twrite_remap( ( code >> 7 ) & 0x7F )\n\t\t\t\twrite_remap( code >> 14 )\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\t\t\n\t\tif( mode !== tiny_mode ) write_mode( tiny_mode )\n\n\t\treturn pos - from\n\t}\n\t\n\t/** Decode text from Unicode Compact Format. */\n\texport function $mol_charset_ucf_decode( buffer: Uint8Array< ArrayBuffer >, mode = tiny_mode ) {\n\t\t\n\t\tlet text = ''\n\t\tlet pos = 0\n\t\tlet page_offset = 0\n\t\t\n\t\t/** Char by char concatenation builds a rope with ~32 bytes per char, kept until flattened. */\n\t\tconst codes = [] as number[]\n\t\tconst flush = ()=> {\n\t\t\ttext += String.fromCodePoint( ... codes )\n\t\t\tcodes.length = 0\n\t\t\treturn text\n\t\t}\n\t\t\n\t\tconst read_code = ()=> {\n\t\t\tlet code = buffer[ pos ++ ]\n\t\t\tif( code >= 0x80 ) code = ( ( mode + code ) & 0x7F ) | 0x80\n\t\t\treturn code\n\t\t}\n\t\t\n\t\tconst read_remap = ()=> {\n\t\t\tlet code = read_code()\n\t\t\tif( code >= 0x80 ) code = ascii_set[ code - 0x80 ]\n\t\t\tif( code === undefined ) $mol_fail( new Error( 'Wrong byte', { cause: { text: flush(), pos: pos - 1 } } ) )\n\t\t\treturn code\n\t\t}\n\t\t\n\t\twhile( pos < buffer.length ) {\n\t\t\t\n\t\t\tlet code = read_code()\n\t\t\t\n\t\t\tif( code < full_mode ) { // Char Code\n\t\t\t\t\n\t\t\t\tif( mode === tiny_mode ) {\n\t\t\t\t\tif( code >= 0x80 ) {\n\t\t\t\t\t\tcode = diacr_set[ code - 0x080 ] | ( 6 << 7 )\n\t\t\t\t\t}\n\t\t\t\t} else if( !ascii_map[ code ] ) {\n\t\t\t\t\tif( code >= 0x80 ) code = ascii_set[ code - 0x80 ]\n\t\t\t\t\tif( mode < tiny_mode ) {\n\t\t\t\t\t\tif( pos === buffer.length ) $mol_fail( new Error( 'Expected 2 bytes', { cause: { text: flush(), pos: pos - 1 } } ) )\n\t\t\t\t\t\tcode |= read_remap() << 7\n\t\t\t\t\t}\n\t\t\t\t\tif( mode === full_mode ) {\n\t\t\t\t\t\tif( pos === buffer.length ) $mol_fail( new Error( 'Expected 3 bytes', { cause: { text: flush(), pos: pos - 2 } } ) )\n\t\t\t\t\t\tcode |= read_remap() << 14\n\t\t\t\t\t}\n\t\t\t\t\tcode += page_offset\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tcodes.push( code )\n\t\t\t\tif( codes.length === 1024 ) flush()\n\t\t\t\t\n\t\t\t} else if( code >= tiny_mode ) { // Tiny Set\n\t\t\t\t\n\t\t\t\tmode = code\n\t\t\t\tpage_offset = ( mode - tiny_mode ) << 7\n\t\t\t\t\n\t\t\t} else if( code === full_mode ) { // Full Set\n\t\t\t\t\n\t\t\t\tmode = code\n\t\t\t\tpage_offset = 0\n\t\t\t\t\n\t\t\t} else { // Wide Set\n\t\t\t\t\n\t\t\t\tmode = code\n\t\t\t\tpage_offset = ( ( mode - wide_mode ) << 14 ) + wide_offset\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tif( mode !== tiny_mode ) {\n\t\t\treturn $mol_fail( new Error( 'Wrong ending', { cause: { text: flush(), mode } } ) )\n\t\t}\n\t\t\n\t\treturn flush()\n\t}\n\n}\n","namespace $.$$ {\n\t\n\tfunction check( text: string, bytes: number[] ) {\n\t\t\n\t\tconst ideal = new Uint8Array( bytes )\n\t\tconst actual = $mol_charset_ucf_encode( text )\n\t\t\n\t\t$mol_assert_equal( $mol_charset_ucf_decode( actual ), text )\n\t\t$mol_assert_equal( actual, ideal )\n\t\t\n\t}\n\t\n\t$mol_test({\n\t\t\n\t\t\"Full ASCII compatible\"( $ ) {\n\t\t\tcheck( 'hi', [ 0x68, 0x69 ] )\n\t\t},\n\t\t\n\t\t\"1B ASCII with diacritic\"( $ ) {\n\t\t\tcheck( 'allo\\u0300', [ 0x61, 0x6C, 0x6C, 0x6F, 0xE2 ] )\n\t\t},\n\t\t\n\t\t\"1B Cyrillic\"( $ ) {\n\t\t\tcheck( 'мир', [ 0x88, 0x3C, 0xE2, 0x40, 0xF8 ] )\n\t\t},\n\t\t\n\t\t\"1B Cyrillic with nummbers and punctuation\"( $ ) {\n\t\t\tcheck( 'м.1', [ 0x88, 0x3C, 0x2E, 0x31, 0xF8 ] )\n\t\t},\n\t\t\n\t\t\"2B Kanji\"( $ ) {\n\t\t\tcheck( '美', [ 0xF9, 0x0E, 0x63, 0x87 ] )\n\t\t},\n\t\t\n\t\t\"3B rare Kanji\"( $ ) {\n\t\t\tcheck( '𲎯', [ 0xF7, 0x2F, 0x47, 0x0C, 0x89 ] )\n\t\t},\n\t\t\n\t\t\"1B Kana\"( $ ) {\n\t\t\tcheck( 'しい', [ 0xE0, 0x57, 0x44, 0xA0 ] )\n\t\t},\n\t\t\n\t\t\"2B Emoji\"( $ ) {\n\t\t\tcheck( '🏴', [ 0xFF, 0x74, 0x4B, 0x81 ] )\n\t\t},\n\t\t\n\t\t\"2B Emoji with 1B modifiers\"( $ ) {\n\t\t\tcheck( '🏴☠', [ 0xFF, 0x74, 0x4B, 0xC1, 0x0D, 0x8C, 0xA9, 0xB4 ] )\n\t\t},\n\t\t\n\t\t\"2B Emoji with 3B Tag\"( $ ) {\n\t\t\tcheck( '🏴\\u{E007F}', [ 0xFF, 0x74, 0x4B, 0xF8, 0x7F, 0x00, 0xF3, 0x89 ] )\n\t\t},\n\t\t\n\t\t\"Mixed scripts\"( $ ) {\n\t\t\tcheck( 'allô 美しい мир, 🏴☠\\n', [\n\t\t\t\t0x61, 0x6C, 0x6C, 0x6F, 0xEA, 0x20, // allô \n\t\t\t\t0xF9, 0x0E, 0x63, 0xE7, 0x57, 0x44, 0x20, // 美しい \n\t\t\t\t0xA8, 0x3C, 0xE2, 0x40, 0x2C, 0x20, // мир, \n\t\t\t\t0xF7, 0x74, 0x4B, 0xC1, 0x0D, 0x8C, 0xA9, 0x0A, // 🏴☠\\n\n\t\t\t\t0xB4,\n\t\t\t] )\n\t\t},\n\t\t\n\t\t\"Wrong ending\"( $ ) {\n\t\t\tconst bin = new Uint8Array([ 0x88, 0x3C, 0xE2, 0x40 ])\n\t\t\tconst error = $mol_assert_fail( ()=> $mol_charset_ucf_decode( bin ), 'Wrong ending' )\n\t\t\t$mol_assert_equal( error.cause.mode, 166 )\n\t\t\t$mol_assert_equal( error.cause.text, 'мир' )\n\t\t},\n\t\t\n\t\t\"Wrong byte\"( $ ) {\n\t\t\tconst bin = new Uint8Array([ 0xFF, 0x74, 0x4B, 0x74, 0x9B, 0x81 ])\n\t\t\tconst error = $mol_assert_fail( ()=> $mol_charset_ucf_decode( bin ), 'Wrong byte' )\n\t\t\t$mol_assert_equal( error.cause.pos, 4 )\n\t\t\t$mol_assert_equal( error.cause.text, '🏴' )\n\t\t},\n\t\t\n\t\t\"Wrong 2B sequence length\"( $ ) {\n\t\t\tconst bin = new Uint8Array([ 0x78, 0xF9, 0x0E ])\n\t\t\tconst error = $mol_assert_fail( ()=> $mol_charset_ucf_decode( bin ), 'Expected 2 bytes' )\n\t\t\t$mol_assert_equal( error.cause.pos, 2 )\n\t\t\t$mol_assert_equal( error.cause.text, 'x' )\n\t\t},\n\t\t\n\t\t\"Wrong 3B sequence length\"( $ ) {\n\t\t\tconst bin = new Uint8Array([ 0x78, 0xF7, 0x2F, 0x47 ])\n\t\t\tconst error = $mol_assert_fail( ()=> $mol_charset_ucf_decode( bin ), 'Expected 3 bytes' )\n\t\t\t$mol_assert_equal( error.cause.pos, 2 )\n\t\t\t$mol_assert_equal( error.cause.text, 'x' )\n\t\t},\n\t\t\n\t})\n}\n","namespace $ {\n\t\n\texport function $mol_bigint_decode( buf: Uint8Array< ArrayBuffer > ) {\n\t\t\n\t\tif( buf.length === 8 ) return new BigInt64Array( buf.buffer, buf.byteOffset, 1 )[0]\n\t\tif( buf.length === 4 ) return BigInt( new Int32Array( buf.buffer, buf.byteOffset, 1 )[0] )\n\t\tif( buf.length === 2 ) return BigInt( new Int16Array( buf.buffer, buf.byteOffset, 1 )[0] )\n\t\tif( buf.length === 1 ) return BigInt( new Int8Array( buf.buffer, buf.byteOffset, 1 )[0] )\n\t\t\n\t\tconst minus = ( buf.at(-1)! & 128 ) ? 255 : 0\n\t\t\n\t\tlet result = 0n\n\t\tlet offset = 0n\n\t\t\n\t\tfor( let i = 0; i < buf.length; i++, offset += 8n ) {\n\t\t\tresult |= BigInt( buf[i] ^ minus ) << offset\n\t\t}\n\t\t\n\t\tif( minus ) result = ( result + 1n ) * -1n\n\t\n\t\treturn result\n\t}\n\t\n}\n","namespace $.$$ {\n\t$mol_test({\n\t\t\n\t\t\"1 byte int\"( $ ) {\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_decode( new Uint8Array ),\n\t\t\t\t0n,\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_decode( new Uint8Array( new Int8Array([ 1 ]).buffer ) ),\n\t\t\t\t1n,\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_decode( new Uint8Array( new Int8Array([ -1 ]).buffer ) ),\n\t\t\t\t-1n,\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_decode( new Uint8Array( new Int8Array([ 127 ]).buffer ) ),\n\t\t\t\t127n,\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_decode( new Uint8Array( new Int8Array([ -128 ]).buffer ) ),\n\t\t\t\t-128n,\n\t\t\t)\n\n\t\t},\n\t\t\n\t\t\"2 byte int\"( $ ) {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_decode( new Uint8Array( new Int16Array([ 128 ]).buffer ) ),\n\t\t\t\t128n,\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_decode( new Uint8Array( new Int16Array([ -129 ]).buffer ) ),\n\t\t\t\t-129n,\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_decode( new Uint8Array( new Int16Array([ 128 * 256 - 1 ]).buffer ) ),\n\t\t\t\t128n * 256n - 1n,\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_decode( new Uint8Array( new Int16Array([ -128 * 256 ]).buffer ) ),\n\t\t\t\t-128n * 256n,\n\t\t\t)\n\n\t\t},\n\n\t\t\"3 byte int\"( $ ) {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_decode( new Uint8Array( new Int32Array([ 128 * 256 ]).buffer ).slice( 0, 3 ) ),\n\t\t\t\t128n * 256n,\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_decode( new Uint8Array( new Int32Array([ -128 * 256 - 1 ]).buffer ).slice( 0, 3 ) ),\n\t\t\t\t-128n * 256n - 1n,\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_decode( new Uint8Array( new Int32Array([ 128 * 256 ** 2 - 1 ]).buffer ).slice( 0, 3 ) ),\n\t\t\t\t128n * 256n ** 2n - 1n,\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_decode( new Uint8Array( new Int32Array([ -128 * 256 ** 2 ]).buffer ).slice( 0, 3 ) ),\n\t\t\t\t-128n * 256n ** 2n,\n\t\t\t)\n\n\t\t},\n\n\t\t\"4 byte int\"( $ ) {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_decode( new Uint8Array( new Int32Array([ 128 * 256 ** 2 ]).buffer ) ),\n\t\t\t\t128n * 256n ** 2n,\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_decode( new Uint8Array( new Int32Array([ -128 * 256 ** 2 - 1 ]).buffer ) ),\n\t\t\t\t-128n * 256n ** 2n - 1n,\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_decode( new Uint8Array( new Int32Array([ 128 * 256 ** 3 - 1 ]).buffer ) ),\n\t\t\t\t128n * 256n ** 3n - 1n,\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_decode( new Uint8Array( new Int32Array([ -128 * 256 ** 3 ]).buffer ) ),\n\t\t\t\t-128n * 256n ** 3n,\n\t\t\t)\n\n\t\t},\n\n\t\t\"8 byte int\"( $ ) {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_decode( new Uint8Array( new BigInt64Array([ 128n * 256n ** 7n - 1n ]).buffer ) ),\n\t\t\t\t128n * 256n ** 7n - 1n,\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_decode( new Uint8Array( new BigInt64Array([ -128n * 256n ** 7n ]).buffer ) ),\n\t\t\t\t-128n * 256n ** 7n,\n\t\t\t)\n\n\t\t},\n\n\t})\n}\n","namespace $ {\n\n\texport function $mol_dom_parse(\n\t\ttext : string ,\n\t\ttype : DOMParserSupportedType = 'application/xhtml+xml' ,\n\t) {\n\n\t\tconst parser = new $mol_dom_context.DOMParser()\n\t\tconst doc = parser.parseFromString( text , type )\n\t\t\n\t\tconst error = doc.getElementsByTagName( 'parsererror' )\n\t\tif( error.length ) throw new Error( error[0].textContent! )\n\n\t\treturn doc\n\t}\n\n}\n","namespace $.$$ {\n\t$mol_test({\n\n\t\t\"Zero int\"( $ ) {\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_decode( $mol_bigint_encode( 0n ) ),\n\t\t\t\t0n,\n\t\t\t)\n\t\t},\n\n\t\t\"Large positive int\"( $ ) {\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_decode( $mol_bigint_encode( 12345678901234567890n ) ),\n\t\t\t\t12345678901234567890n,\n\t\t\t)\n\t\t},\n\n\t\t\"Large negative int\"( $ ) {\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_bigint_decode( $mol_bigint_encode( -12345678901234567890n ) ),\n\t\t\t\t-12345678901234567890n,\n\t\t\t)\n\t\t},\n\n\t});\n}\n","namespace $ {\n\t\n\texport enum $mol_vary_tip {\n\t\tuint = 0b000 << 5,\n\t\tlink = 0b001 << 5,\n\t\tspec = 0b010 << 5,\n\t\tlist = 0b011 << 5,\n\t\tblob = 0b100 << 5,\n\t\ttext = 0b101 << 5,\n\t\ttupl = 0b110 << 5,\n\t\tsint = 0b111 << 5,\n\t}\n\t\n\texport enum $mol_vary_len {\n\t\tL1 = 28,\n\t\tL2 = 29,\n\t\tL4 = 30,\n\t\tL8 = 31,\n\t\tLA = 32,\n\t}\n\t\n\texport enum $mol_vary_spec {\n\t\tnone = 'N'.charCodeAt(0),\n\t\ttrue = 'T'.charCodeAt(0),\n\t\tfake = 'F'.charCodeAt(0),\n\t\tboth = 'B'.charCodeAt(0),\n\t\tfp16 = 'H'.charCodeAt(0),\n\t\tfp32 = 'S'.charCodeAt(0),\n\t\tfp64 = 'D'.charCodeAt(0),\n\t\tf128 = 'Q'.charCodeAt(0),\n\t\tf256 = 'O'.charCodeAt(0),\n\t}\n\t\n\tconst pojo_maker = ( keys: readonly any[] )=> ( vals: readonly any[] )=> {\n\t\tconst obj = {} as any\n\t\tfor( let i = 0; i < keys.length; ++i ) obj[ keys[i] ] = vals[i]\n\t\treturn obj\n\t}\n\t\n\t/** VaryPack - simple fast compact data binarization format. */\n\texport class $mol_vary_class extends Object {\n\t\t\n\t\tlean_symbol = Symbol( '$mol_vary_lean' )\n\t\n\t\tarray = new Uint8Array( 256 )\n\t\tbuffer = new DataView( this.array.buffer )\n\t\t\n\t\t/** Packs any data to Uint8Array with deduplication. */\n\t\tpack( data: readonly unknown[] ) {\n\t\t\t\n\t\t\tlet pos = 0\n\t\t\tlet capacity = 0\n\t\t\tconst offsets = new Map< unknown, number >()\n\t\t\tconst stack = [] as any[]\n\t\t\t\n\t\t\tconst acquire = ( size: number )=> {\n\t\t\t\tif( size < 0 ) return\n\t\t\t\tcapacity += size\n\t\t\t\tif( this.array.byteLength >= capacity ) return\n\t\t\t\tconst buffer2 = new Uint8Array( Math.ceil( capacity / 4096 ) * 4096 )\n\t\t\t\tbuffer2.set( this.array )\n\t\t\t\tthis.array = buffer2\n\t\t\t\tthis.buffer = new DataView( this.array.buffer )\n\t\t\t}\n\t\t\t\n\t\t\tconst release = ( size: number )=> {\n\t\t\t\tcapacity -= size\n\t\t\t}\n\t\t\t\n\t\t\tconst calc_size = ( val: number ) => {\n\t\t\t\tif( val < $mol_vary_len.L1 ) return 1\n\t\t\t\tif( val < 2**8 ) return 2\n\t\t\t\tif( val < 2**16 ) return 3\n\t\t\t\tif( val < 2**32 ) return 5\n\t\t\t\tif( val < 2n**64n ) return 9\n\t\t\t\treturn $mol_fail( new Error( 'Too large number' ) )\n\t\t\t}\n\t\t\t\n\t\t\tconst dump_unum = ( tip: number, val: number | bigint, max = val )=> {\n\t\t\t\t\n\t\t\t\tif( max < $mol_vary_len.L1 ) {\n\t\t\t\t\tthis.array[ pos ++ ] = tip | Number( val )\n\t\t\t\t\trelease(8)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( tip == $mol_vary_tip.uint ) {\n\t\t\t\t\tconst offset = offsets.get( val )\n\t\t\t\t\tif( offset !== undefined ) return dump_unum( $mol_vary_tip.link, offset )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( max < 2**8 ) {\n\t\t\t\t\tthis.array[ pos ++ ] = tip | $mol_vary_len.L1\n\t\t\t\t\tthis.array[ pos ++ ] = Number( val )\n\t\t\t\t\trelease(7)\n\t\t\t\t} else if( max < 2**16 ) {\n\t\t\t\t\tthis.array[ pos ++ ] = tip | $mol_vary_len.L2\n\t\t\t\t\tthis.buffer.setUint16( pos, Number( val ), true )\n\t\t\t\t\tpos += 2\n\t\t\t\t\trelease(6)\n\t\t\t\t} else if( max < 2**32 ) {\n\t\t\t\t\tthis.array[ pos ++ ] = tip | $mol_vary_len.L4\n\t\t\t\t\tthis.buffer.setUint32( pos, Number( val ), true )\n\t\t\t\t\tpos += 4\n\t\t\t\t\trelease(4)\n\t\t\t\t} else if( max < 2n**64n ) {\n\t\t\t\t\tthis.array[ pos ++ ] = tip | $mol_vary_len.L8\n\t\t\t\t\tthis.buffer.setBigUint64( pos, BigInt( val ), true )\n\t\t\t\t\tpos += 8\n\t\t\t\t} else {\n\t\t\t\t\tdump_bint( val as bigint )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( tip == $mol_vary_tip.uint ) offsets.set( val, offsets.size )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst dump_snum = ( val: number | bigint )=> {\n\t\t\t\t\n\t\t\t\tif( val > - $mol_vary_len.L1 ) {\n\t\t\t\t\tthis.array[ pos ++ ] = Number( val )\n\t\t\t\t\trelease(8)\n\t\t\t\t\treturn \n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst offset = offsets.get( val )\n\t\t\t\tif( offset !== undefined ) return dump_unum( $mol_vary_tip.link, offset )\n\t\t\t\t\n\t\t\t\tif( val >= -(2**7) ) {\n\t\t\t\t\tthis.array[ pos ++ ] = - $mol_vary_len.L1\n\t\t\t\t\tthis.array[ pos ++ ] = Number( val )\n\t\t\t\t\trelease(7)\n\t\t\t\t} else if( val >= -(2**15) ) {\n\t\t\t\t\tthis.array[ pos ++ ] = -$mol_vary_len.L2\n\t\t\t\t\tthis.buffer.setInt16( pos, Number( val ), true )\n\t\t\t\t\tpos += 2\n\t\t\t\t\trelease(6)\n\t\t\t\t} else if( val >= -(2**31) ) {\n\t\t\t\t\tthis.array[ pos ++ ] = - $mol_vary_len.L4\n\t\t\t\t\tthis.buffer.setInt32( pos, Number( val ), true )\n\t\t\t\t\tpos += 4\n\t\t\t\t\trelease(4)\n\t\t\t\t} else if( val >= -(2n**63n) ) {\n\t\t\t\t\tthis.array[ pos ++ ] = - $mol_vary_len.L8\n\t\t\t\t\tthis.buffer.setBigInt64( pos, BigInt( val ), true )\n\t\t\t\t\tpos += 8\n\t\t\t\t} else {\n\t\t\t\t\tdump_bint( val as bigint )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\toffsets.set( val, offsets.size )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst dump_bint = ( val: bigint )=> {\n\t\t\t\t\n\t\t\t\tconst buf = $mol_bigint_encode( val as bigint )\n\t\t\t\t\n\t\t\t\tif( buf.byteLength > ( 2**16 + 8 ) ) $mol_fail( new Error( 'Number too high', { cause: { val } } ) )\n\t\t\t\tacquire( buf.byteLength - 6 )\n\t\t\t\t\n\t\t\t\tthis.array[ pos ++ ] = - $mol_vary_len.LA\n\t\t\t\tthis.buffer.setUint16( pos, buf.byteLength - 9, true )\n\t\t\t\tpos += 2\n\t\t\t\t\n\t\t\t\tthis.array.set( buf, pos )\n\t\t\t\tpos += buf.byteLength\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst dump_float = ( val: number )=> {\n\t\t\t\t\n\t\t\t\tconst offset = offsets.get( val )\n\t\t\t\tif( offset !== undefined ) return dump_unum( $mol_vary_tip.link, offset )\n\t\t\t\t\t\n\t\t\t\tthis.array[ pos ++ ] = $mol_vary_spec.fp64\n\t\t\t\tthis.buffer.setFloat64( pos, val, true )\n\t\t\t\tpos += 8\n\t\t\t\t\n\t\t\t\toffsets.set( val, offsets.size )\n\t\t\t}\n\t\t\t\n\t\t\tconst dump_string = ( val: string )=> {\n\t\t\t\t\n\t\t\t\tconst offset = offsets.get( val )\n\t\t\t\tif( offset !== undefined ) return dump_unum( $mol_vary_tip.link, offset )\n\t\t\t\t\n\t\t\t\tconst len_max = val.length * 3 + 2\n\t\t\t\tconst len_size = calc_size( len_max )\n\t\t\t\t\n\t\t\t\tacquire( len_max )\n\t\t\t\tconst len = $mol_charset_ucf_encode_to( val, this.array, pos + len_size )\n\t\t\t\tdump_unum( $mol_vary_tip.text, len, len_max )\n\t\t\t\tpos += len\n\t\t\t\trelease( len_max - len )\n\t\t\t\t\n\t\t\t\toffsets.set( val, offsets.size )\n\t\t\t\treturn\n\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst dump_buffer = ( val: ArrayBufferView< ArrayBuffer > )=> {\n\t\t\t\t\n\t\t\t\tconst offset = offsets.get( val )\n\t\t\t\tif( offset !== undefined ) return dump_unum( $mol_vary_tip.link, offset )\n\t\t\t\t\n\t\t\t\tdump_unum( $mol_vary_tip.blob, val.byteLength )\n\t\t\t\tacquire( 1 + val.byteLength )\n\t\t\t\t\n\t\t\t\tif( val instanceof Uint8Array ) this.array[ pos ++ ] = $mol_vary_tip.uint | $mol_vary_len.L1\n\t\t\t\telse if( val instanceof Uint16Array ) this.array[ pos ++ ] = $mol_vary_tip.uint | $mol_vary_len.L2\n\t\t\t\telse if( val instanceof Uint32Array ) this.array[ pos ++ ] = $mol_vary_tip.uint | $mol_vary_len.L4\n\t\t\t\telse if( val instanceof BigUint64Array ) this.array[ pos ++ ] = $mol_vary_tip.uint | $mol_vary_len.L8\n\t\t\t\t\n\t\t\t\telse if( val instanceof Int8Array ) this.array[ pos ++ ] = $mol_vary_tip.sint | ~$mol_vary_len.L1\n\t\t\t\telse if( val instanceof Int16Array ) this.array[ pos ++ ] = $mol_vary_tip.sint | ~$mol_vary_len.L2\n\t\t\t\telse if( val instanceof Int32Array ) this.array[ pos ++ ] = $mol_vary_tip.sint | ~$mol_vary_len.L4\n\t\t\t\telse if( val instanceof BigInt64Array ) this.array[ pos ++ ] = $mol_vary_tip.sint | ~$mol_vary_len.L8\n\t\t\t\t\n\t\t\t\telse if( typeof Float16Array === 'function' && val instanceof Float16Array ) this.array[ pos ++ ] = $mol_vary_spec.fp16\n\t\t\t\telse if( val instanceof Float32Array ) this.array[ pos ++ ] = $mol_vary_spec.fp32\n\t\t\t\telse if( val instanceof Float64Array ) this.array[ pos ++ ] = $mol_vary_spec.fp64\n\t\t\t\n\t\t\t\telse $mol_fail( new Error( `Unsupported type` ) )\n\t\t\t\t\n\t\t\t\tconst src = ( val instanceof Uint8Array ) ? val : new Uint8Array( val.buffer, val.byteOffset, val.byteLength )\n\t\t\t\tthis.array.set( src, pos )\n\t\t\t\tpos += val.byteLength\n\t\t\t\t\n\t\t\t\toffsets.set( val, offsets.size )\n\t\t\t}\n\t\t\t\n\t\t\tconst dump_list = ( val: any[] )=> {\n\t\t\t\t\n\t\t\t\tconst offset = offsets.get( val )\n\t\t\t\tif( offset !== undefined ) return dump_unum( $mol_vary_tip.link, offset )\n\t\t\t\t\n\t\t\t\tdump_unum( $mol_vary_tip.list, val.length )\n\t\t\t\tacquire( val.length * 9 )\n\t\t\t\t\n\t\t\t\tif( stack.includes( val ) ) $mol_fail( new Error( 'Cyclic refs', { cause: { stack, val } } ) ) \n\t\t\t\tstack.push( val )\n\t\t\t\t\n\t\t\t\tfor( let i = 0; i < val.length; ++ i ) dump( val[i] )\n\t\t\t\t\n\t\t\t\tif( stack.at(-1) !== val ) $mol_fail( new Error( 'Broken stack', { cause: { stack, val } } ) )\n\t\t\t\tstack.pop()\n\t\t\t\n\t\t\t\toffsets.set( val, offsets.size )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst shapes = new Map< string, any[] >()\n\t\t\tconst shape = ( val: any )=> {\n\t\t\t\tconst keys1 = Object.keys( val )\n\t\t\t\tconst key = keys1.join('\\0')\n\t\t\t\tconst keys2 = shapes.get( key ) \n\t\t\t\tif( keys2 ) return keys2\n\t\t\t\tshapes.set( key, keys1 )\n\t\t\t\treturn keys1\n\t\t\t}\n\t\t\t\n\t\t\tconst dump_object = ( val: object )=> {\n\t\t\t\t\n\t\t\t\tconst offset = offsets.get( val )\n\t\t\t\tif( offset !== undefined ) return dump_unum( $mol_vary_tip.link, offset )\n\t\t\t\t\n\t\t\t\tconst { 0: keys, 1: vals } = this.lean_find( val )?.( val ) ?? [ shape( val ), Object.values( val ) ]\n\t\t\t\n\t\t\t\tdump_unum( $mol_vary_tip.tupl, vals.length )\n\t\t\t\tacquire( (vals.length+1) * 9 )\n\t\t\t\tdump_list( keys )\n\t\t\t\t\n\t\t\t\tif( stack.includes( val ) ) $mol_fail( new Error( 'Cyclic refs', { cause: { stack, val } } ) ) \n\t\t\t\tstack.push( val )\n\t\t\t\t\n\t\t\t\tfor( let i = 0; i < vals.length; ++ i ) dump( vals[i] )\n\t\t\t\t\n\t\t\t\tif( stack.at(-1) !== val ) $mol_fail( new Error( 'Broken stack', { cause: { stack, val } } ) )\n\t\t\t\tstack.pop()\n\t\t\t\t\n\t\t\t\toffsets.set( val, offsets.size )\n\t\t\t}\n\t\t\t\n\t\t\tconst dumpers: Record< string, ( val: unknown )=> void > = {\n\t\t\t\tundefined: ()=> {\n\t\t\t\t\tthis.array[ pos ++ ] = $mol_vary_spec.both\n\t\t\t\t\tcapacity -= 8\n\t\t\t\t},\n\t\t\t\tboolean: val => {\n\t\t\t\t\tthis.array[ pos ++ ] = val ? $mol_vary_spec.true : $mol_vary_spec.fake\n\t\t\t\t\tcapacity -= 8\n\t\t\t\t},\n\t\t\t\tnumber: val => {\n\t\t\t\t\tif( !Number.isInteger( val ) ) dump_float( val as number )\n\t\t\t\t\telse dumpers.bigint( val )\n\t\t\t\t},\n\t\t\t\tbigint: val => {\n\t\t\t\t\tif( val as bigint < 0 ) {\n\t\t\t\t\t\tdump_snum( val as bigint )\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdump_unum( $mol_vary_tip.uint, val as bigint )\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tstring: val => dump_string( val as string ),\n\t\t\t\tobject: val => {\n\t\t\t\t\tif( !val ) {\n\t\t\t\t\t\tcapacity -= 8\n\t\t\t\t\t\treturn this.array[ pos ++ ] = $mol_vary_spec.none\n\t\t\t\t\t}\n\t\t\t\t\tif( Array.isArray( val ) ) return dump_list( val )\n\t\t\t\t\tif( ArrayBuffer.isView( val ) ) return dump_buffer( val as ArrayBufferView< ArrayBuffer > )\n\t\t\t\t\t\n\t\t\t\t\treturn dump_object( val )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t/** Recursive fills buffer with data. */\n\t\t\tconst dump = ( val: unknown )=> {\n\t\t\t\tconst dumper = dumpers[ typeof val ]\n\t\t\t\tif( !dumper ) $mol_fail( new Error( `Unsupported type` ) )\n\t\t\t\tdumper( val )\n\t\t\t}\n\t\t\t\n\t\t\tfor( let i = 0; i < data.length; ++ i ) {\n\t\t\t\tcapacity += 9\n\t\t\t\tdump( data[i] )\n\t\t\t\tif( stack.length ) $mol_fail( new Error( 'Stack underflow', { cause: { stack, item: data[i] } } ) )\n\t\t\t\toffsets.clear()\n\t\t\t}\n\t\t\t\n\t\t\tif( pos !== capacity ) $mol_fail( new Error( 'Wrong reserved capacity', { cause: { capacity, size: pos, data } } ) )\n\t\t\t\n\t\t\treturn this.array.slice( 0, pos )\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Parses buffer to rich runtime structures. */\n\t\ttake( array: Uint8Array< ArrayBuffer > ): unknown[] {\n\t\t\t\n\t\t\tconst buffer = new DataView( array.buffer, array.byteOffset, array.byteLength )\n\t\t\tconst stream = [] as unknown[]\n\t\t\tlet pos = 0;\n\t\t\t\n\t\t\tconst read_unum = ( kind: number )=> {\n\t\t\t\t\n\t\t\t\t++ pos\n\t\t\t\tconst num = kind & 0b11111\n\t\t\t\tif( num < $mol_vary_len.L1 ) return num\n\t\t\t\t\n\t\t\t\tlet res = 0 as number | bigint\n\t\t\t\t\n\t\t\t\tif( num === $mol_vary_len.L1 ) {\n\t\t\t\t\tres = buffer.getUint8( pos ++ )\n\t\t\t\t} else if( num === $mol_vary_len.L2 ) {\n\t\t\t\t\tres = buffer.getUint16( pos, true )\n\t\t\t\t\tpos += 2\n\t\t\t\t} else if( num === $mol_vary_len.L4 ) {\n\t\t\t\t\tres = buffer.getUint32( pos, true )\n\t\t\t\t\tpos += 4\n\t\t\t\t} else if( num === $mol_vary_len.L8 ) {\n\t\t\t\t\tres = buffer.getBigUint64( pos, true )\n\t\t\t\t\tif( res <= Number.MAX_SAFE_INTEGER ) res = Number( res )\n\t\t\t\t\tpos += 8\n\t\t\t\t} else {\n\t\t\t\t\t$mol_fail( new Error( 'Unsupported unum', { cause: { num } } ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( ( kind & 0b111_00000 ) === $mol_vary_tip.uint ) stream.push( res )\n\t\t\t\t\n\t\t\t\treturn res\n\t\t\t}\n\t\t\t\n\t\t\tconst read_snum = ( kind: number )=> {\n\t\t\t\t\n\t\t\t\tconst num = buffer.getInt8( pos ++ )\n\t\t\t\tif( num > - $mol_vary_len.L1 ) return num\n\t\t\t\t\n\t\t\t\tlet res = 0 as number | bigint\n\t\t\t\t\n\t\t\t\tif( num === - $mol_vary_len.L1 ) {\n\t\t\t\t\tres = buffer.getInt8( pos ++ )\n\t\t\t\t} else if( num === - $mol_vary_len.L2 ) {\n\t\t\t\t\tres= buffer.getInt16( pos, true )\n\t\t\t\t\tpos += 2\n\t\t\t\t} else if( num === - $mol_vary_len.L4 ) {\n\t\t\t\t\tres = buffer.getInt32( pos, true )\n\t\t\t\t\tpos += 4\n\t\t\t\t} else if( num === - $mol_vary_len.L8 ) {\n\t\t\t\t\tres = buffer.getBigInt64( pos, true )\n\t\t\t\t\tif( res >= Number.MIN_SAFE_INTEGER && res <= Number.MAX_SAFE_INTEGER ) res = Number( res )\n\t\t\t\t\tpos += 8\n\t\t\t\t} else if( num === - $mol_vary_len.LA ) {\n\t\t\t\t\tconst len = buffer.getUint16( pos, true ) + 9\n\t\t\t\t\tpos += 2\n\t\t\t\t\tres = $mol_bigint_decode( new Uint8Array( buffer.buffer, buffer.byteOffset + pos, len ) )\n\t\t\t\t\tpos += len\n\t\t\t\t} else {\n\t\t\t\t\t$mol_fail( new Error( 'Unsupported snum', { cause: { num } } ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstream.push( res )\n\t\t\t\t\n\t\t\t\treturn res\n\t\t\t}\n\t\t\t\n\t\t\tconst read_text = ( kind: number )=> {\n\t\t\t\tconst len = read_unum( kind ) as number\n\t\t\t\tconst text = $mol_charset_ucf_decode( new Uint8Array( array.buffer, array.byteOffset + pos, len ) )\n\t\t\t\tpos += len\n\t\t\t\tstream.push( text )\n\t\t\t\treturn text\n\t\t\t}\n\t\t\t\n\t\t\tconst read_buffer = ( len: number, TypedArray: new( buf: ArrayBuffer )=> ArrayBufferView< ArrayBuffer > )=> {\n\t\t\t\tconst bin = new TypedArray( array.slice( pos, pos + len ).buffer )\n\t\t\t\tpos += len\n\t\t\t\tstream.push( bin )\n\t\t\t\treturn bin\n\t\t\t}\n\t\t\t\n\t\t\tconst read_blob = ( kind: number )=> {\n\t\t\t\t\n\t\t\t\tconst len = read_unum( kind ) as number\n\t\t\t\tconst kind_item = buffer.getUint8( pos ++ )\n\t\t\t\t\n\t\t\t\tswitch( kind_item ) {\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_len.L1: return read_buffer( len, Uint8Array )\n\t\t\t\t\tcase $mol_vary_len.L2: return read_buffer( len, Uint16Array )\n\t\t\t\t\tcase $mol_vary_len.L4: return read_buffer( len, Uint32Array )\n\t\t\t\t\tcase $mol_vary_len.L8: return read_buffer( len, BigUint64Array )\n\t\t\t\t\t\n\t\t\t\t\tcase ~$mol_vary_len.L1 + 256: return read_buffer( len, Int8Array )\n\t\t\t\t\tcase ~$mol_vary_len.L2 + 256: return read_buffer( len, Int16Array )\n\t\t\t\t\tcase ~$mol_vary_len.L4 + 256: return read_buffer( len, Int32Array )\n\t\t\t\t\tcase ~$mol_vary_len.L8 + 256: return read_buffer( len, BigInt64Array )\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_tip.spec | $mol_vary_spec.fp16: return read_buffer( len, Float16Array )\n\t\t\t\t\tcase $mol_vary_tip.spec | $mol_vary_spec.fp32: return read_buffer( len, Float32Array )\n\t\t\t\t\tcase $mol_vary_tip.spec | $mol_vary_spec.fp64: return read_buffer( len, Float64Array )\n\t\t\t\t\t\n\t\t\t\t\tdefault:\n\t\t\t\t\t\t$mol_fail( new Error( 'Unsupported blob item kind', { cause: { kind_item } } ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst read_list = ( kind: number )=> {\n\t\t\t\tconst len = read_unum( kind ) as number\n\t\t\t\tconst list = new Array( len ) as any[]\n\t\t\t\tfor( let i = 0; i < len; ++i ) list[i] = read_vary()\n\t\t\t\tstream.push( list )\n\t\t\t\treturn list\n\t\t\t}\n\t\t\t\n\t\t\tconst read_link = ( kind: number )=> {\n\t\t\t\tconst index = read_unum( kind ) as number\n\t\t\t\tif( index >= stream.length ) $mol_fail( new Error( 'Too large index', { cause: { index, exists: stream.length } } ) )\n\t\t\t\treturn stream[ index ]\n\t\t\t}\n\t\t\t\n\t\t\tconst read_tupl = ( kind: number )=> {\n\t\t\t\t\n\t\t\t\tconst len = read_unum( kind ) as number\n\t\t\t\t\n\t\t\t\tconst keys = read_vary() as readonly string[]\n\t\t\t\tconst vals = new Array( len ) as any[]\n\t\t\t\tfor( let i = 0; i < len; ++i ) vals[i] = read_vary()\n\t\t\t\t\n\t\t\t\tconst obj = this.rich( keys, vals )\n\t\t\t\t\n\t\t\t\tstream.push( obj )\n\t\t\t\t\n\t\t\t\treturn obj\n\t\t\t}\n\t\t\t\n\t\t\tconst read_spec = ( kind: number )=> {\n\t\t\t\t\n\t\t\t\tswitch( kind ) {\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_spec.none:\n\t\t\t\t\t\t++ pos\n\t\t\t\t\t\treturn null\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_spec.fake:\n\t\t\t\t\t\t++ pos\n\t\t\t\t\t\treturn false\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_spec.true:\n\t\t\t\t\t\t++ pos\n\t\t\t\t\t\treturn true\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_spec.both:\n\t\t\t\t\t\t++ pos\n\t\t\t\t\t\treturn undefined\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_spec.fp64: {\n\t\t\t\t\t\tconst val = buffer.getFloat64( ++ pos, true )\n\t\t\t\t\t\tstream.push( val )\n\t\t\t\t\t\tpos += 8\n\t\t\t\t\t\treturn val\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_spec.fp32: {\n\t\t\t\t\t\tconst val = buffer.getFloat32( ++ pos, true )\n\t\t\t\t\t\tstream.push( val )\n\t\t\t\t\t\tpos += 4\n\t\t\t\t\t\treturn val\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_spec.fp16: {\n\t\t\t\t\t\tconst val = buffer.getFloat16( ++ pos, true )\n\t\t\t\t\t\tstream.push( val )\n\t\t\t\t\t\tpos += 2\n\t\t\t\t\t\treturn val\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tdefault:\n\t\t\t\t\t\t$mol_fail( new Error( 'Unsupported spec', { cause: { kind } } ) )\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst read_vary = ()=> {\n\t\t\t\t\n\t\t\t\tconst kind = buffer.getUint8( pos )\n\t\t\t\tconst tip = kind & 0b111_00000\n\t\t\t\t\n\t\t\t\tswitch( tip ) {\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_tip.uint: return read_unum( kind )\n\t\t\t\t\tcase $mol_vary_tip.sint: return read_snum( kind )\n\t\t\t\t\tcase $mol_vary_tip.link: return read_link( kind )\n\t\t\t\t\tcase $mol_vary_tip.text: return read_text( kind )\n\t\t\t\t\tcase $mol_vary_tip.list: return read_list( kind )\n\t\t\t\t\tcase $mol_vary_tip.blob: return read_blob( kind )\n\t\t\t\t\tcase $mol_vary_tip.tupl: return read_tupl( kind )\n\t\t\t\t\tcase $mol_vary_tip.spec: return read_spec( kind )\n\t\t\t\t\t\n\t\t\t\t\tdefault: $mol_fail( new Error( 'Unsupported tip', { cause: { tip } } ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst result = [] as unknown[]\n\t\t\twhile( pos < array.byteLength ) {\n\t\t\t\tresult.push( read_vary() )\n\t\t\t\tstream.length = 0\t\n\t\t\t}\n\t\t\t\n\t\t\treturn result\n\t\t}\n\t\t\n\t\trich_index = new Map< string | null, any >([\n\t\t\t[ null, ()=> ({}) ]\n\t\t])\n\t\t\n\t\t/** Isolated Vary for custom types */\n\t\tzone() {\n\t\t\tconst room = new $mol_vary_class\n\t\t\tObject.setPrototypeOf( room, this )\n\t\t\tconst index_clone = ( map: Map< string | null, any > ): Map<any,any> => new Map(\n\t\t\t\t[ ... map ].map(\n\t\t\t\t\t([ k, v ])=> [ k, k === null ? v : index_clone( v ) ]\n\t\t\t\t)\n\t\t\t)\n\t\t\troom.rich_index = index_clone( this.rich_index )\n\t\t\treturn room\n\t\t}\n\t\t\n\t\trich( keys: readonly string[], vals: readonly unknown[] ) {\n\t\t\t\n\t\t\tconst node = this.rich_node( keys )\n\t\t\tlet rich = node.get( null )\n\t\t\t\n\t\t\tif( !rich ) node.set( null, rich = pojo_maker( keys ) )\n\t\t\t\n\t\t\treturn rich( vals )\n\t\t}\n\t\t\n\t\trich_node( keys: readonly string[] ) {\n\t\t\t\n\t\t\tlet node = this.rich_index\n\t\t\tfor( let i = 0; i < keys.length; ++ i ) {\n\t\t\t\tlet sub = node.get( keys[i] )\n\t\t\t\t\n\t\t\t\tif( sub ) node = sub\n\t\t\t\telse node.set( keys[i], node = new Map )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn node\n\t\t}\n\t\t\n\t\tlean( obj: {} ) {\n\t\t\treturn this.lean_find( obj )?.( obj ) ?? [ Object.keys( obj ), Object.values( obj ) ]\n\t\t}\n\t\t\n\t\tlean_find( val: any ) {\n\t\t\t\n\t\t\tconst lean = val[ this.lean_symbol ]\n\t\t\tif( lean ) return lean\n\t\t\t\n\t\t\tconst sup = Object.getPrototypeOf( this )\n\t\t\tif( sup === Object.prototype ) return\n\t\t\t\n\t\t\treturn sup.lean_find( val )\n\t\t}\n\t\t\n\t\t/** Adds custom types support. */\n\t\ttype<\n\t\t\tconst Instance extends object,\n\t\t\tconst Keys extends readonly any[],\n\t\t\tconst Vals extends readonly any[],\n\t\t>( { type, keys, rich, lean }: {\n\t\t\ttype: new( ... vals: any[] )=> Instance,\n\t\t\tkeys: Keys,\n\t\t\tlean: ( obj: Instance )=> Vals,\n\t\t\trich: ( vals: Vals )=> Instance,\n\t\t}) {\n\t\t\tthis.rich_node( keys ).set( null, rich )\n\t\t\t;( type.prototype as any )[ this.lean_symbol ] = ( val: Instance )=> [ keys, lean( val ) ]\n\t\t}\n\t\t\n\t}\n\t\n\texport let $mol_vary = new $mol_vary_class\n\t\t\n\t/** Native Map support */\n\t$mol_vary.type({\n\t\ttype: Map,\n\t\tkeys: [ 'keys', 'vals' ],\n\t\tlean: obj => [ [ ... obj.keys() ], [ ... obj.values() ] ],\n\t\trich: ([ keys, vals ])=> new Map( ( keys ?? [] ).map( ( k, i )=> [ k, vals?.[i] ] ) ),\n\t})\n\t\n\t/** Native Set support */\n\t$mol_vary.type({\n\t\ttype: Set,\n\t\tkeys: [ 'set' ],\n\t\tlean: obj => [ [ ... obj.values() ] ],\n\t\trich: ([ vals ])=> new Set( vals ),\n\t})\n\t\n\t/** Native Date support */\n\t$mol_vary.type({\n\t\ttype: Date,\n\t\tkeys: [ 'unix_time' ],\n\t\tlean: obj => [ obj.valueOf() / 1000 ],\n\t\trich: ([ ts ])=> new Date( ts * 1000 ),\n\t})\n\t\n\tif( 'Element' in $mol_dom ) { // Absent in workers\n\t\t/** Native Element support */\n\t\t$mol_vary.type({\n\t\t\ttype: $mol_dom.Element,\n\t\t\tkeys: [ 'XML' ],\n\t\t\tlean: node => [ $mol_dom_serialize( node ) ],\n\t\t\trich: ([ text ]) => $mol_dom_parse( text, 'application/xml' ).documentElement,\n\t\t})\n\t}\n\t\n}\n","/** @jsx $mol_jsx */\nnamespace $.$$ {\n\t\n\tconst { uint, link, spec, blob, text, list, tupl, sint } = $mol_vary_tip\n\tconst { none, both, fp16, fp32, fp64 } = $mol_vary_spec\n\tconst { L1, L2, L4, L8, LA } = $mol_vary_len\n\tconst str = $mol_charset_ucf_encode\n\t\n\tfunction check( vary: readonly unknown[], ideal: readonly number[], Vary = $mol_vary ) {\n\t\tconst pack = Vary.pack( vary )\n\t\t$mol_assert_equal( Vary.take( pack ), vary )\n\t\t$mol_assert_equal( pack, new Uint8Array( ideal ) )\n\t}\n\t\n\t$mol_test({\n\t\t\n\t\t\"vary pack logical\"( $ ) {\n\t\t\tcheck( [ null ], [ spec|none ] )\n\t\t\tcheck( [ true ], [ $mol_vary_spec.true ] )\n\t\t\tcheck( [ false ], [ $mol_vary_spec.fake ] )\n\t\t\tcheck( [ undefined ], [ spec|both ] )\n\t\t},\n\t\t\n\t\t\"vary pack uint0\"( $ ) {\n\t\t\tcheck( [ 0 ], [ 0 ] )\n\t\t\tcheck( [ 27 ], [ 27 ] )\n\t\t},\n\t\t\n\t\t\"vary pack uint1\"( $ ) {\n\t\t\tcheck( [ 28 ], [ uint|L1, 28 ] )\n\t\t\tcheck( [ 255 ], [ uint|L1, 255 ] )\n\t\t},\n\t\t\n\t\t\"vary pack uint2\"( $ ) {\n\t\t\tcheck( [ 256 ], [ uint|L2, 0, 1 ] )\n\t\t\tcheck( [ 256**2-1 ], [ uint|L2, 255, 255 ] )\n\t\t},\n\t\t\n\t\t\"vary pack uint4\"( $ ) {\n\t\t\tcheck( [ 256**2 ], [ uint|L4, 0, 0, 1, 0 ] )\n\t\t\tcheck( [ 256**4-1 ], [ uint|L4, 255, 255, 255, 255 ] )\n\t\t},\n\t\t\n\t\t\"vary pack uint8\"( $ ) {\n\t\t\tcheck( [ 256**4 ], [ uint|L8, 0, 0, 0, 0, 1, 0, 0, 0 ] )\n\t\t\tcheck( [ Number.MAX_SAFE_INTEGER ], [ uint|L8, 255, 255, 255, 255, 255, 255, 31, 0 ] )\n\t\t\tcheck( [ 256n**8n-1n ], [ uint|L8, 255, 255, 255, 255, 255, 255, 255, 255 ] )\n\t\t},\n\t\t\n\t\t\"vary pack sint0\"( $ ) {\n\t\t\tcheck( [ -1 ], [ -1 ] )\n\t\t\tcheck( [ -27 ], [ -27 ] )\n\t\t},\n\t\t\n\t\t\"vary pack sint1\"( $ ) {\n\t\t\tcheck( [ -28, ], [ sint|-L1, -28 ] )\n\t\t\tcheck( [ -256/2 ] , [ sint|-L1, 128 ] )\n\t\t},\n\t\t\n\t\t\"vary pack sint2\"( $ ) {\n\t\t\tcheck( [ -256/2-1 ], [ sint|-L2, 127, 255 ] )\n\t\t\tcheck( [ -(256**2)/2 ], [ sint|-L2, 0, 128 ] )\n\t\t},\n\t\t\n\t\t\"vary pack sint4\"( $ ) {\n\t\t\tcheck( [ -(256**2)/2-1 ], [ sint|-L4, 255, 127, 255, 255 ] )\n\t\t\tcheck( [ -(256**4)/2 ], [ sint|-L4, 0, 0, 0, 128 ] )\n\t\t},\n\t\t\n\t\t\"vary pack sint8\"( $ ) {\n\t\t\tcheck( [ -(256**4)/2-1 ], [ sint|-L8, 255, 255, 255, 127, 255, 255, 255, 255 ] )\n\t\t\tcheck( [ Number.MIN_SAFE_INTEGER ], [ sint|-L8, 1, 0, 0, 0, 0, 0, 224, 255 ] )\n\t\t\tcheck( [ -(2n**63n) ], [ sint|-L8, 0, 0, 0, 0, 0, 0, 0, 128 ] )\n\t\t},\n\t\t\n\t\t\"vary pack bigint\"( $ ) {\n\t\t\tcheck( [ 2n**64n ], [ sint|-LA, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 ] )\n\t\t\tcheck( [ 2n**2111n ], [ sint|-LA, 0, 1, ... Array.from( { length: 263 }, () => 0 ), 128, 0 ] )\n\t\t\tcheck( [ -1n - 2n**64n ], [ sint|-LA, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 254 ] )\n\t\t\tcheck( [ -1n - 2n**2111n ], [ sint|-LA, 0, 1, ... Array.from( { length: 263 }, () => 255 ), -129, 255 ] )\n\t\t},\n\t\t\n\t\t\"vary pack float\"( $ ) {\n\t\t\tcheck( [ 1.5 ], [ fp64, ... new Uint8Array( new Float64Array([ 1.5 ]).buffer ) ] )\n\t\t},\n\t\t\n\t\t\"vary pack list\"( $ ) {\n\t\t\tcheck(\n\t\t\t\t[ [ 1, 2, 3 ] ],\n\t\t\t\t[ list|3, 1, 2, 3 ],\n\t\t\t)\n\t\t\tcheck(\n\t\t\t\t[ [ [], [1], [2,3] ] ],\n\t\t\t\t[ list|3, list|0, list|1, 1, list|2, 2, 3 ],\n\t\t\t)\n\t\t},\n\t\t\n\t\t\"vary pack dedup list\"( $ ) {\n\t\t\tconst pair = [ 1, 2 ]\n\t\t\tcheck(\n\t\t\t\t[ [ pair, pair ] ],\n\t\t\t\t[ list|2, list|2, 1, 2, link|0 ],\n\t\t\t)\n\t\t\tconst seven = [7]\n\t\t\tconst box = [seven]\n\t\t\tcheck(\n\t\t\t\t[ [ box, box, seven ] ],\n\t\t\t\t[ list|3, list|1, list|1, 7, link|1, link|0 ],\n\t\t\t)\n\t\t},\n\t\t\n\t\t\"vary pack cyclic list\"( $ ) {\n\t\t\tconst foo = [] as any[]\n\t\t\tfoo.push([ foo ])\n\t\t\t$mol_assert_fail( ()=> $mol_vary.pack([ foo ]), 'Cyclic refs' )\n\t\t},\n\t\t\n\t\t\"vary pack dedup uint\"( $ ) {\n\t\t\tcheck(\n\t\t\t\t[ [ 28, 28 ] ],\n\t\t\t\t[ list|2, uint|L1, 28, link|0 ],\n\t\t\t)\n\t\t\tcheck(\n\t\t\t\t[ [ 2n**64n, 2n**64n ] ],\n\t\t\t\t[ list|2, sint|-LA, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, link|0 ],\n\t\t\t)\n\t\t},\n\t\t\n\t\t\"vary pack dedup float\"( $ ) {\n\t\t\tcheck(\n\t\t\t\t[ [ 1.5, 1.5 ] ],\n\t\t\t\t[ list|2, fp64, ... new Uint8Array( new Float64Array([ 1.5 ]).buffer ), link|0 ],\n\t\t\t)\n\t\t},\n\t\t\n\t\t\"vary pack text\"( $ ) {\n\t\t\t\n\t\t\tcheck( [ 'foo' ], [ text|3, ... str('foo') ] )\n\t\t\tcheck( [ 'абв' ], [ text|5, ... str('абв') ] )\n\t\t\t\n\t\t\tconst long_lat = 'abcdefghijklmnopqrst'\n\t\t\tcheck( [ long_lat ], [ text|L1, 20, ... str(long_lat) ] )\n\t\t\t\n\t\t\tconst long_cyr = 'абвгдеёжзийклмнопрст'\n\t\t\tcheck( [ long_cyr ], [ text|L1, 22, ... str(long_cyr) ] )\n\t\t\t\n\t\t},\n\t\t\n\t\t\"vary pack dedup text\"( $ ) {\n\t\t\tcheck(\n\t\t\t\t[ [ \"f\", \"f\" ] ],\n\t\t\t\t[ list|2, text|1, ... str('f'), link|0 ],\n\t\t\t)\n\t\t},\n\t\t\n\t\t\"vary pack blob\"( $ ) {\n\t\t\tcheck(\n\t\t\t\t[ new Uint8Array([ 1, 255 ]) ],\n\t\t\t\t[ blob|2, uint|L1, 1, 255 ],\n\t\t\t)\n\t\t\tcheck(\n\t\t\t\t[ new Int8Array([ -128, 127 ]) ],\n\t\t\t\t[ blob|2, sint|~L1, -128, 127 ],\n\t\t\t)\n\t\t\tcheck(\n\t\t\t\t[ new Uint32Array([ 255 ]) ],\n\t\t\t\t[ blob|4, uint|L4, 255, 0, 0, 0 ],\n\t\t\t)\n\t\t\tcheck(\n\t\t\t\t[ new Int32Array([ -128 ]) ],\n\t\t\t\t[ blob|4, sint|~L4, -128, 255, 255, 255 ],\n\t\t\t)\n\t\t\tcheck(\n\t\t\t\t[ new BigUint64Array([ 255n ]) ],\n\t\t\t\t[ blob|8, uint|L8, 255, 0, 0, 0, 0, 0, 0, 0 ],\n\t\t\t)\n\t\t\tcheck(\n\t\t\t\t[ new BigInt64Array([ -128n ]) ],\n\t\t\t\t[ blob|8, sint|~L8, -128, 255, 255, 255, 255, 255, 255, 255 ],\n\t\t\t)\n\t\t\tcheck(\n\t\t\t\t[ new Float32Array([ 1.5 ]) ],\n\t\t\t\t[ blob|4, fp32, ... new Uint8Array( new Float32Array([ 1.5 ]).buffer ) ],\n\t\t\t)\n\t\t\tcheck(\n\t\t\t\t[ new Float64Array([ 1.5 ]) ],\n\t\t\t\t[ blob|8, fp64, ... new Uint8Array( new Float64Array([ 1.5 ]).buffer ) ],\n\t\t\t)\n\t\t},\n\t\t\n\t\t\"vary pack dedup blob\"( $ ) {\n\t\t\tconst part = new Uint8Array([ 1, 2 ])\n\t\t\tcheck(\n\t\t\t\t[ [ part, part ] ],\n\t\t\t\t[ list|2, blob|2, uint|L1, 1, 2, link|0 ],\n\t\t\t)\n\t\t},\n\t\t\n\t\t\"vary pack struct\"( $ ) {\n\t\t\tcheck(\n\t\t\t\t[ { x: 1, y: 2 } ],\n\t\t\t\t[ tupl|2, list|2, text|1, ... str('x'), text|1, ... str('y'), 1, 2 ],\n\t\t\t)\n\t\t\tcheck(\n\t\t\t\t[ { x: {}, y: { a: 1 } } ],\n\t\t\t\t[ tupl|2, list|2, text|1, ... str('x'), text|1, ... str('y'), tupl|0, list|0, tupl|1, list|1, text|1, ... str('a'), 1 ],\n\t\t\t)\n\t\t},\n\t\t\n\t\t\"vary pack struct shape dedup\"( $ ) {\n\t\t\tcheck(\n\t\t\t\t[ [ {}, { foo: 1 }, { foo: 2 } ] ],\n\t\t\t\t[ list|3, tupl|0, list|0, tupl|1, list|1, text|3, ... str('foo'), 1, tupl|1, link|3, 2 ],\n\t\t\t)\n\t\t\tcheck(\n\t\t\t\t[ { x: 1, y: { x: 2, y: 3 } } ],\n\t\t\t\t[ tupl|2, list|2, text|1, ... str('x'), text|1, ... str('y'), 1, tupl|2, link|2, 2, 3 ],\n\t\t\t)\n\t\t},\n\t\t\n\t\t\"vary pack struct full dedup\"( $ ) {\n\t\t\tconst item = { x: 1 }\n\t\t\tcheck(\n\t\t\t\t[ [ item, item ] ],\n\t\t\t\t[ list|2, tupl|1, list|1, text|1, ... str('x'), 1, link|2 ],\n\t\t\t)\n\t\t\tconst part = { x: 1, y : 2 }\n\t\t\tcheck(\n\t\t\t\t[ { x: part, y: part } ],\n\t\t\t\t[ tupl|2, list|2, text|1, ... str('x'), text|1, ... str('y'), tupl|2, link|2, 1, 2, link|3 ],\n\t\t\t)\n\t\t},\n\t\t\n\t\t\"vary pack cyclic struct\"( $ ) {\n\t\t\tconst foo = { bar: null as any }\n\t\t\tfoo.bar = foo\n\t\t\t$mol_assert_fail( ()=> $mol_vary.pack([ foo ]), 'Cyclic refs' )\n\t\t},\n\t\t\n\t\t\"vary pack Map\"( $ ) {\n\t\t\t\n\t\t\tcheck(\n\t\t\t\t[ new Map< any, any >([ [ 'foo', 1 ], [ 2, 'bar' ] ]) ],\n\t\t\t\t[ tupl|2, list|2, text|4, ... str('keys'), text|4, ... str('vals'), list|2, text|3, ... str('foo'), 2, list|2, 1, text|3, ... str('bar') ],\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t\"vary pack Set\"( $ ) {\n\t\t\t\n\t\t\tcheck(\n\t\t\t\t[ new Set([ 7, 'foo' ]) ],\n\t\t\t\t[ tupl|1, list|1, text|3, ... str('set'), list|2, 7, text|3, ... str('foo') ],\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t\"vary pack Date\"( $ ) {\n\t\t\t\n\t\t\tconst date1 = new Date( '2025-01-02T03:04:05' )\n\t\t\tcheck(\n\t\t\t\t[ date1 ],\n\t\t\t\t[ tupl|1, list|1, text|$mol_vary_len.L1, 9, ... str('unix_time'), uint|L4, ... new Uint8Array( new Uint32Array([ date1.valueOf() / 1000 ]).buffer ) ],\n\t\t\t)\n\t\t\t\n\t\t\tconst date2 = new Date( '2025-01-02T03:04:05.678' )\n\t\t\tcheck(\n\t\t\t\t[ date2 ],\n\t\t\t\t[ tupl|1, list|1, text|$mol_vary_len.L1, 9, ... str('unix_time'), fp64, ... new Uint8Array( new Float64Array([ date2.valueOf() / 1000 ]).buffer ) ],\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t\"vary pack DOM Element\"( $ ) {\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_dom_serialize( <div><span/><br/> </div> ),\n\t\t\t\t$mol_dom_serialize( ( $mol_vary.take( $mol_vary.pack([ <div><span/><br/> </div> ]) ) as Element[] )[0] ),\n\t\t\t)\n\t\t},\n\t\t\n\t\t\"vary pack custom types in rooms\"( $ ) {\n\t\t\t\n\t\t\tclass Foo {\n\t\t\t\t\n\t\t\t\tconstructor(\n\t\t\t\t\treadonly a: number,\n\t\t\t\t\treadonly b: number,\n\t\t\t\t) {}\n\t\t\t\t\n\t\t\t\t;[ Symbol.iterator ]() { // deep comparable\n\t\t\t\t\treturn [ this.a, this.b ].values()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst Vary = $mol_vary.zone()\n\t\t\t\n\t\t\tVary.type({\n\t\t\t\ttype: Foo,\n\t\t\t\tkeys: [ 'summ', 'diff' ],\n\t\t\t\tlean: foo => [ foo.a + foo.b, foo.a - foo.b ],\n\t\t\t\trich: ([ summ, diff ])=> new Foo( ( summ + diff )/2, ( summ - diff )/2 ),\n\t\t\t})\n\t\t\t\n\t\t\t// restore\n\t\t\tcheck(\n\t\t\t\t[ new Foo( 4, 2 ) ],\n\t\t\t\t[ tupl|2, list|2, text|4, ... str('summ'), text|4, ... str('diff'), 6, 2 ],\n\t\t\t\tVary,\n\t\t\t)\n\t\t\t\n\t\t\t// isolated\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_vary.take( $mol_vary.pack([ new Foo( 4, 2 ) ]) ),\n\t\t\t\t[ { a: 4, b: 2 } ],\n\t\t\t)\n\t\t\t\n\t\t\t// inherited\n\t\t\t$mol_assert_equal(\n\t\t\t\tVary.take( Vary.pack([ new Map([[ 1, 2 ]]) ]) ),\n\t\t\t\t[ new Map([[ 1, 2 ]]) ],\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t\"vary pack sequences\"( $ ) {\n\t\t\t\n\t\t\tcheck( [], [] )\n\t\t\tcheck( [ 7 ], [ 7 ] )\n\t\t\tcheck( [ 3, 4 ], [ 3, 4 ] )\n\t\t\t\n\t\t\tcheck(\n\t\t\t\t[ [ 'foo', 'foo' ], [ 'bar', 'bar' ] ],\n\t\t\t\t[ list|2, text|3, ... str('foo'), link|0, list|2, text|3, ... str('bar'), link|0 ],\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t})\n}\n","namespace $ {\n\t\n\t/** Supported primitive types. */\n\texport type $giper_baza_vary_type =\n\t| null | boolean | number | bigint | string\n\t| Uint8Array< ArrayBuffer > | Uint16Array< ArrayBuffer > | Uint32Array< ArrayBuffer > | BigUint64Array< ArrayBuffer >\n\t| Int8Array< ArrayBuffer > | Int16Array< ArrayBuffer > | Int32Array< ArrayBuffer > | BigInt64Array< ArrayBuffer >\n\t| Float64Array< ArrayBuffer > | Float32Array< ArrayBuffer > | Float64Array< ArrayBuffer >\n\t| $mol_time_moment | $mol_time_duration | $mol_time_interval\n\t| $mol_tree2 | $giper_baza_link | Element\n\t| readonly $giper_baza_vary_type[] | Readonly<{ [ key in string ]: $giper_baza_vary_type }>\n\t\n\t// export let $giper_baza_vary_schema = $mol_schema_some([\n\t// \t$mol_schema_boolean, $mol_schema_float, $mol_schema_bigint, $mol_schema_string,\n\t// \tUint8Array, Uint16Array, Uint32Array, BigUint64Array,\n\t// \tInt8Array, Int16Array, Int32Array, BigInt64Array,\n\t// \tFloat64Array, Float32Array, Float64Array,\n\t// \t$mol_time_moment, $mol_time_duration, $mol_time_interval,\n\t// \t$mol_tree2, $giper_baza_link, Element,\n\t// \t$mol_schema_list( ()=> $giper_baza_vary_schema ),\n\t// \t$mol_schema_dict([ ()=> $giper_baza_vary_schema, ()=> $giper_baza_vary_schema ]),\n\t// ].map( klass => $mol_schema_instance( klass ) )\n\t\n\texport let $giper_baza_vary = $mol_vary.zone()\n\t\n\t$giper_baza_vary.type({\n\t\ttype: $giper_baza_link,\n\t\tkeys: [ 'link' ],\n\t\tlean: obj => [ obj.toBin() ],\n\t\trich: ([ bin ])=> $giper_baza_link.from_bin( bin ),\n\t})\n\t\n\t$giper_baza_vary.type({\n\t\ttype: $mol_time_duration,\n\t\tkeys: [ 'dura' ],\n\t\tlean: obj => obj.toArray(),\n\t\trich: data => new $mol_time_duration( data ),\n\t})\n\t\n\t$giper_baza_vary.type({\n\t\ttype: $mol_time_moment,\n\t\tkeys: [ 'time' ],\n\t\tlean: obj => obj.toArray(),\n\t\trich: data => new $mol_time_moment( data ),\n\t})\n\t\n\t$giper_baza_vary.type({\n\t\ttype: $mol_time_interval,\n\t\tkeys: [ 'span' ],\n\t\tlean: obj => [ obj.toString() ],\n\t\trich: ([ str ])=> new $mol_time_interval( str ),\n\t})\n\t\n\t$giper_baza_vary.type({\n\t\ttype: $mol_tree2,\n\t\tkeys: [ 'tree' ],\n\t\tlean: obj => [ $$.$mol_tree2_to_string( obj ) ],\n\t\trich: ([ str ])=> $$.$mol_tree2_from_string( str ),\n\t})\n\t\n}\n","/** @jsx $mol_jsx */\nnamespace $.$$ {\n\t\n\tfunction check( vary: $giper_baza_vary_type ) {\n\t\t$mol_assert_equal(\n\t\t\tvary,\n\t\t\t( $giper_baza_vary.take( $giper_baza_vary.pack([ vary ]) ) as any[] )[0],\n\t\t)\n\t}\t\n\t\n\t$mol_test({\n\t\t\n\t\t\"Bin\"( $ ) {\n\t\t\tcheck( null )\n\t\t\tcheck( new Uint8Array([ 1, 2, 3 ]) )\n\t\t},\n\t\t\n\t\t\"Bool\"( $ ) {\n\t\t\tcheck( false )\n\t\t\tcheck( true )\n\t\t},\n\t\t\n\t\t\"Int\"( $ ) {\n\t\t\tcheck( 0 )\n\t\t\tcheck( 4611686018427387904n )\n\t\t},\n\t\t\n\t\t\"Real\"( $ ) {\n\t\t\tcheck( 0 )\n\t\t\tcheck( Math.PI )\n\t\t\tcheck( Number.NaN )\n\t\t\tcheck( Number.POSITIVE_INFINITY )\n\t\t\tcheck( Number.NEGATIVE_INFINITY )\n\t\t\tcheck( Number.MAX_SAFE_INTEGER )\n\t\t\tcheck( Number.MIN_SAFE_INTEGER )\n\t\t\tcheck( BigInt( Number.MAX_VALUE ) )\n\t\t\tcheck( Number.MIN_VALUE )\n\t\t},\n\t\t\n\t\t\"Link\"( $ ) {\n\t\t\tcheck( new $giper_baza_link('') )\n\t\t\tcheck( $giper_baza_link.from_int( 123456789 ) )\n\t\t},\n\t\t\n\t\t\"Str\"( $ ) {\n\t\t\tcheck( '' )\n\t\t\tcheck( '123' )\n\t\t\tcheck( '🐱👤' )\n\t\t},\n\t\t\n\t\t\"Time\"( $ ) {\n\t\t\tcheck( new $mol_time_moment( '1984-08-04T09:05:13.666+03:00' ) )\n\t\t\tcheck( new $mol_time_moment )\n\t\t},\n\t\t\n\t\t\"Dura\"( $ ) {\n\t\t\tcheck( new $mol_time_duration( 'P1Y2M3DT4h5m6.6s' ) )\n\t\t},\n\t\t\n\t\t\"Span\"( $ ) {\n\t\t\tcheck( new $mol_time_interval( 'T09:00/PT9h' ) )\n\t\t},\n\t\t\n\t\t\"JSON\"( $ ) {\n\t\t\tcheck({ foo: [ 'bar' ] })\n\t\t\tcheck([ { foo: 'bar' } ])\n\t\t},\n\t\t\n\t\t\"DOM\"( $ ) {\n\t\t\t\n\t\t\tconst xml = (\n\t\t\t\t<div>\n\t\t\t\t\t<span class=\"bar\">xxx</span>\n\t\t\t\t</div>\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_dom_serialize( ( $giper_baza_vary.take( $giper_baza_vary.pack([ xml ]) ) as any[] )[0] as Node ),\n\t\t\t\t$mol_dom_serialize( xml ),\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t\"Tree\"( $ ) {\n\t\t\t\n\t\t\tconst tree = $.$mol_tree2_from_string(`\n\t\t\t\tfoo \\\\bar\n\t\t\t\t\tfoo \\\\bar\n\t\t\t`)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$.$mol_tree2_to_string( ( $giper_baza_vary.take( $giper_baza_vary.pack([ tree ]) ) as any[] )[0] as $mol_tree2 ),\n\t\t\t\t$.$mol_tree2_to_string( tree ),\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t})\n\t\n\t\n}\n","namespace $ {\n\n\t/**\n\t * 48-bit streamable array hash function\n\t * Based on cyrb53: https://stackoverflow.com/a/52171480\n\t */\n\texport function $mol_hash_numbers( buff: ArrayLike< number >, seed = 0 ) {\n\t\t\n\t\tlet h1 = 0xdeadbeef ^ seed\n\t\tlet h2 = 0x41c6ce57 ^ seed\n\t\t\n\t\tfor( let i = 0; i < buff.length; ++i ) {\n\t\t\tconst item = buff[i]\n\t\t\th1 = Math.imul( h1 ^ item, 2654435761 )\n\t\t\th2 = Math.imul( h2 ^ item, 1597334677 )\n\t\t}\n\t\t\n\t\th1 = Math.imul( h1 ^ ( h1 >>> 16 ), 2246822507 ) ^ Math.imul( h2 ^ ( h2 >>> 13 ), 3266489909 )\n\t\th2 = Math.imul( h2 ^ ( h2 >>> 16 ), 2246822507 ) ^ Math.imul( h1 ^ ( h1 >>> 13 ), 3266489909 )\n\t\t\n\t\treturn 4294967296 * ( ( ( 1 << 16 ) - 1 ) & h2 ) + ( h1 >>> 0 )\n\t}\n\n}\n","namespace $ {\n\n\t/** Hint how interpret inner Units: term, solo, vals, keys */\n\texport enum $giper_baza_unit_sand_tag {\n\t\t/** Itself value. Ignore */\n\t\tterm = 0b00_000_000,\n\t\t/** Value in first sub node. Ignore all after first */\n\t\tsolo = 0b01_000_000,\n\t\t/** List of values */\n\t\tvals = 0b10_000_000,\n\t\t/** List of keys */\n\t\tkeys = 0b11_000_000,\n\t}\n\t\n\t/** Data. Actually it's edge between nodes in graph model. */\n\texport class $giper_baza_unit_sand extends $giper_baza_unit_base {\n\n\t\tstatic size_equator = 63\n\t\tstatic size_max = 2 ** 16\n\n\t\t_vary = undefined as undefined | $giper_baza_vary_type\n\t\t_open = null as Uint8Array< ArrayBuffer > | null\n\t\t\n\t\tstatic length( size: number ) {\n\t\t\tif( size > 2**16 ) throw new Error( `Size too large (${ size })` )\n\t\t\treturn size > $giper_baza_unit_sand.size_equator ? 52 : Math.ceil( ( 38 + size ) / 8 ) * 8\n\t\t}\n\t\t\n\t\tstatic length_ball( size: number ) {\n\t\t\tif( size > 2**16 ) throw new Error( `Size too large (${ size })` )\n\t\t\treturn size > $giper_baza_unit_sand.size_equator ? Math.ceil( ( size - 4 ) / 8 ) * 8 + 4 : 0\n\t\t}\n\n\t\t@ $mol_action\n\t\tstatic make( size: number, tag: keyof typeof $giper_baza_unit_sand_tag = 'term' ) {\n\t\t\t\n\t\t\tif( size >= 2**16 ) throw new Error( `Size too large (${ size })` )\n\t\t\t\n\t\t\tconst sand = this.from( this.length( size ) )\n\t\t\tsand.kind( 'sand' )\n\t\t\t\n\t\t\tif( size > $giper_baza_unit_sand.size_equator ) {\n\t\t\t\tsand.uint16( 38, size % 2**16 )\n\t\t\t\tsize = 0\n\t\t\t}\n\t\t\t\n\t\t\tsand.uint8( 1, size | $giper_baza_unit_sand_tag[ tag ] )\n\t\t\t\n\t\t\treturn sand\n\t\t}\n\n\t\ttag() {\n\t\t\treturn $giper_baza_unit_sand_tag[ this.uint8( 1 ) & 0b11_00_0000 ] as keyof typeof $giper_baza_unit_sand_tag\n\t\t}\n\t\t\n\t\tbig() {\n\t\t\treturn this.size() > $giper_baza_unit_sand.size_equator\n\t\t}\n\n\t\tsize() {\n\t\t\tlet hint = this.uint8( 1 ) & 0b111_111\n\t\t\treturn hint || this.uint16( 38 ) || 2**16\n\t\t}\n\t\t\n\t\tdead() {\n\t\t\tif( this._vary === null ) return true\n\t\t\tif( this.size() > 1 ) return false\n\t\t\tif( this.uint8( 38 ) !== 78/*N*/ ) return false\n\t\t\treturn true\n\t\t}\n\n\t\t_self!: $giper_baza_link\n\t\tself( next?: $giper_baza_link ) {\n\t\t\tif( next === undefined && this._self !== undefined ) return this._self\n\t\t\telse return this._self = this.id6( 20, next )\n\t\t}\n\n\t\t_head!: $giper_baza_link\n\t\thead( next?: $giper_baza_link ) {\n\t\t\tif( next === undefined && this._head !== undefined ) return this._head\n\t\t\telse return this._head = this.id6( 26, next )\n\t\t}\t\n\n\t\t_lead!: $giper_baza_link\n\t\tlead( next?: $giper_baza_link ) {\n\t\t\tif( next === undefined && this._lead !== undefined ) return this._lead\n\t\t\telse return this._lead = this.id6( 32, next )\n\t\t}\n\n\t\tpath(): string {\n\t\t\treturn `sand:${ this.head().str || '__root__' }/${ this.lord() }/${ this.self().str || '__meta__' }`\n\t\t}\n\t\t\n\t\t_shot!: $giper_baza_link\n\t\tshot( next?: $giper_baza_link ) {\n\t\t\tif( !this.big() ) throw new Error( 'Access to Shot of small Sand is unavailable' )\n\t\t\tif( next ) return this._shot = this.id12( 40, next )\n\t\t\telse return this._shot = this._shot ?? this.id12( 40 )\n\t\t}\n\t\t\n\t\t_data!: Uint8Array< ArrayBuffer >\n\t\tdata( next?: Uint8Array< ArrayBuffer > ) {\n\t\t\t\n\t\t\tif( this.big() ) throw new Error( 'Access to Data of large Sand is unavailable' )\n\t\t\t\t\n\t\t\tconst data = this._data ?? new Uint8Array( this.buffer, this.byteOffset + 38, this.size() )\n\t\t\tif( next ) data.set( next )\n\t\t\t\n\t\t\treturn data\n\t\t}\n\n\t\t_ball!: Uint8Array< ArrayBuffer >\n\t\tball( next?: Uint8Array< ArrayBuffer > ) {\n\t\t\tif( next === undefined ) {\n\t\t\t\t\n\t\t\t\tif( this._ball ) return this._ball\n\t\t\t\tif( this.big() ) return this._ball\n\t\t\t\t\n\t\t\t\treturn this._ball = this.data()\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tif( this.big() ) {\n\t\t\t\t\t\n\t\t\t\t\tthis.shot( $giper_baza_link.hash_bin( next ) )\n\t\t\t\t\treturn this._ball = next\n\t\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\t\n\t\t\t\t\treturn this._ball = this.data( next )\n\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t}\n\t\t\n\t\tencoded() {\n\t\t\treturn !this._open || !!this._ball\n\t\t}\n\n\t\thash() {\n\t\t\tif( !this.encoded() ) return $mol_fail(\n\t\t\t\tnew Error( 'No Hash for incompleted Sand', { cause: { sand: this } } )\n\t\t\t)\n\t\t\treturn super.hash()\n\t\t}\n\t\t\n\t\tidea_seed() {\n\t\t\treturn $mol_hash_numbers( new Uint8Array( this.buffer, this.byteOffset + 26, 12 ) ) // head + lead\n\t\t}\n\n\t\tdump() {\n\t\t\treturn {\n\t\t\t\tkind: this.kind(),\n\t\t\t\tlord: this.lord(),\n\t\t\t\tlead: this.lead(),\n\t\t\t\thead: this.head(),\n\t\t\t\tself: this.self(),\n\t\t\t\ttag: this.tag(),\n\t\t\t\tsize: this.size(),\n\t\t\t\ttime: this.moment().toString( 'YYYY-MM-DD hh:mm:ss' ),\n\t\t\t}\n\t\t}\n\n\t\ttier_min() {\n\t\t\treturn ( this.head().str === $giper_baza_land_root.tine.str )\n\t\t\t\t? $giper_baza_rank_tier.pull\n\t\t\t\t: $giper_baza_rank_tier.post\n\t\t}\n\t\t\n\t\tinspect() {\n\t\t\t\n\t\t\tconst lead = $mol_term_color.blue( this.lead().str || '__knot__' )\n\t\t\tconst head = $mol_term_color.blue( this.head().str || '__root__' )\n\t\t\tconst self = $mol_term_color.blue( this.self().str || '__meta__' )\n\t\t\tconst tag = $mol_term_color.green( {\n\t\t\t\tterm: 'T',\n\t\t\t\tsolo: 'S',\n\t\t\t\tvals: 'V',\n\t\t\t\tkeys: 'K',\n\t\t\t}[ this.tag() ] )\n\t\t\tconst vary = this._vary === undefined ? '' : $mol_term_color.yellow( String( this._vary ) )\n\t\t\t\n\t\t\treturn `${ super.inspect() } ${tag} ${lead}\\\\${head}/${self} ${vary}`\n\t\t}\n\t\t\n\t\ttoString() {\n\t\t\t\n\t\t\tconst lead = this.lead().str || '__knot__'\n\t\t\tconst head = this.head().str || '__root__'\n\t\t\tconst self = this.self().str || '__meta__'\n\t\t\tconst tag = {\n\t\t\t\tterm: 'T',\n\t\t\t\tsolo: 'S',\n\t\t\t\tvals: 'V',\n\t\t\t\tkeys: 'K',\n\t\t\t}[ this.tag() ]\n\t\t\tconst vary = this._vary === undefined ? '' : String( this._vary )\n\t\t\t\n\t\t\treturn `${ super.toString() } ${tag} ${lead}\\\\${head}/${self} ${vary}`\n\t\t}\n\t\t\n\t\t[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_span( {},\n\t\t\t\t$mol_dev_format_native( this ),\n\t\t\t\t' 👾',\n\t\t\t\t$mol_dev_format_auto( this.lord() ),\n\t\t\t\t' 📦 ',\n\t\t\t\t$mol_dev_format_shade( $giper_baza_time_dump( this.time(), this.tick() ) ),\n\t\t\t\t' #',\n\t\t\t\tthis.encoded() ? $mol_dev_format_auto( this.hash() ) : $mol_dev_format_shade( '___incompleted___' ),\n\t\t\t\t' ',\n\t\t\t\tthis.lead().str || '__knot__',\n\t\t\t\t$mol_dev_format_shade( '\\\\' ),\n\t\t\t\t$mol_dev_format_accent( this.head().str || '__root__' ),\n\t\t\t\t$mol_dev_format_shade( '/' ),\n\t\t\t\tthis.self().str || '__meta__',\n\t\t\t\t' ',\n\t\t\t\t{\n\t\t\t\t\tterm: '💼',\n\t\t\t\t\tsolo: '1️⃣',\n\t\t\t\t\tvals: '🎹',\n\t\t\t\t\tkeys: '🔑',\n\t\t\t\t}[ this.tag() ],\n\t\t\t\t' ',\n\t\t\t\t$mol_dev_format_auto( this._vary ), //??\n\t\t\t\t// ( this.size() > 32\n\t\t\t\t// \t? $mol_dev_format_shade( this.hash() )\n\t\t\t\t// \t: $mol_dev_format_native( $giper_baza_vary_decode({ tip: this.tip(), bin: this.data() }) )\n\t\t\t\t// ),\n\t\t\t)\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $giper_baza_unit_gift_sort( gifts: $giper_baza_unit_gift[] ) {\n\t\t\n\t\tconst dict = new Map< string, $giper_baza_unit_gift >()\n\t\tconst graph = new $mol_graph< string, void >()\n\t\t\n\t\tfor( const gift of gifts ) {\n\t\t\tconst key = gift.mate().str\n\t\t\tdict.set( key, gift )\n\t\t\tgraph.link( key, gift.lord().str )\n\t\t\tgraph.link( key, '' )\n\t\t}\n\t\t\n\t\tgraph.acyclic( ()=> 1 )\n\t\tconst keys = [ ... graph.sorted ]\n\t\t\n\t\treturn keys.map( key => dict.get( key )! ).filter( Boolean )\n\n\t}\n\t\n\t/** Given Rank and Secret */\n\texport class $giper_baza_unit_gift extends $giper_baza_unit_base {\n\t\t\n\t\tstatic length() {\n\t\t\treturn 48\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tstatic make() {\n\t\t\tconst sand = this.from( this.length() )\n\t\t\tsand.kind( 'gift' )\n\t\t\treturn sand\n\t\t}\n\t\t\n\t\trank( next?: typeof $giper_baza_rank.Value ) {\n\t\t\t\n\t\t\tif( next !== undefined ) this.uint8( 0, $giper_baza_unit_kind.gift )\n\t\t\t\n\t\t\tconst res = this.uint8( 1, next ) as typeof $giper_baza_rank.Value\n\t\t\t\n\t\t\tif( res < $giper_baza_rank_deny || res > $giper_baza_rank_rule ) {\n\t\t\t\t$mol_fail( new RangeError( `Wrong rank ${ res }` ) )\n\t\t\t}\n\t\t\t\n\t\t\treturn res\n\t\t}\n\t\t\n\t\ttier() {\n\t\t\treturn ( this.rank() & $giper_baza_rank_tier.rule ) as $giper_baza_rank_tier\n\t\t}\n\t\t\n\t\trate() {\n\t\t\treturn ( this.rank() & $giper_baza_rank_rate.just ) as $giper_baza_rank_rate\n\t\t}\n\t\t\n\t\tmate( next?: $giper_baza_link ) {\n\t\t\treturn this.id12( 20, next )\n\t\t}\n\t\t\n\t\tpath(): string {\n\t\t\treturn `gift:${ this.mate().str || '______every______' }`\n\t\t}\n\t\t\n\t\t_code!: Uint8Array< ArrayBuffer >\n\t\tcode() {\n\t\t\treturn this._code ?? ( this._code = new Uint8Array( this.buffer, this.byteOffset + 32, 16 ) )\n\t\t}\n\t\t\n\t\tcode_exists() {\n\t\t\treturn this.code().some( b => b )\n\t\t}\n\t\t\n\t\tdump() {\n\t\t\treturn {\n\t\t\t\tkind: this.kind(),\n\t\t\t\tlord: this.lord(),\n\t\t\t\tmate: this.mate(),\n\t\t\t\ttier: $giper_baza_rank_tier[ this.tier() ],\n\t\t\t\trate: this.rate(),\n\t\t\t\ttime: this.moment().toString( 'YYYY-MM-DD hh:mm:ss' ),\n\t\t\t}\n\t\t}\n\t\t\n\t\ttier_min() {\n\t\t\treturn $giper_baza_rank_tier.rule\n\t\t}\n\t\t\n\t\tinspect() {\n\t\t\t\n\t\t\tconst mate = $mol_term_color.magenta( '@' + ( this.mate().str || '______every______' ) )\n\t\t\tconst read = $mol_term_color.green( this.code().some( v => v ) ? 'X' : 'O' )\n\t\t\tconst rank = $mol_term_color.cyan( $giper_baza_rank_tier[ this.tier() ] + ':' + this.rate().toString( 16 ).toUpperCase() )\n\t\t\t\n\t\t\treturn `${ super.inspect() } ${read} ${mate} ${rank}`\n\t\t}\n\t\t\n\t\ttoString() {\n\t\t\t\n\t\t\tconst mate = '@' + ( this.mate().str || '______every______' )\n\t\t\tconst read = this.code().some( v => v ) ? 'X' : 'O'\n\t\t\tconst rank = $giper_baza_rank_tier[ this.tier() ] + ':' + this.rate().toString( 16 ).toUpperCase()\n\t\t\t\n\t\t\treturn `${ super.toString() } ${read} ${mate} ${rank}`\n\t\t}\n\t\t\n\t\t[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_span( {} ,\n\t\t\t\t$mol_dev_format_native( this ) ,\n\t\t\t\t' 👾',\n\t\t\t\t$mol_dev_format_auto( this.lord() ),\n\t\t\t\t' 🏅',\n\t\t\t\t' ',\n\t\t\t\t$mol_dev_format_shade( $giper_baza_time_dump( this.time(), this.tick() ) ),\n\t\t\t\t' #',\n\t\t\t\t$mol_dev_format_auto( this.hash() ),\n\t\t\t\t' 👾',\n\t\t\t\t$mol_dev_format_accent( this.mate().str || '______every______' ),\n\t\t\t\tthis.code().some( v => v ) ? ' 🔐' : ' 👀',\n\t\t\t\t$giper_baza_rank_tier[ this.tier() ],\n\t\t\t\t':',\n\t\t\t\tthis.rate().toString( 16 ).toUpperCase(),\n\t\t\t)\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport let $giper_baza_unit_seal_limit = 10\n\t\n\t/** Sign for hash list */\n\texport class $giper_baza_unit_seal extends $giper_baza_unit_base {\n\t\t\n\t\tstatic length( size: number ) {\n\t\t\treturn Math.ceil( ( 84 + size * 12 ) / 8 ) * 8\n\t\t}\n\n\t\t@ $mol_action\n\t\tstatic make( size: number, wide: boolean ) {\n\t\t\tconst seal = this.from( this.length( size ) )\n\t\t\tseal.kind( 'seal' )\n\t\t\tseal.meta({ size, wide })\n\t\t\treturn seal\n\t\t}\n\n\t\tmeta( next?: { size: number, wide: boolean } ) {\n\t\t\treturn this.uint8( 1, next && ( next.size | ( next.wide ? 0b1000_0000 : 0 ) ) )\n\t\t}\n\n\t\tsize() {\n\t\t\treturn this.meta() & 0b1111\n\t\t}\n\n\t\twide() {\n\t\t\treturn Boolean( this.meta() & 0b1000_0000 )\n\t\t}\n\n\t\talive_items = new Set< string >\n\t\t\n\t\talive_full() {\n\t\t\treturn this.alive_items.size === $giper_baza_unit_seal_limit\n\t\t}\n\t\t\n\t\talive_list() {\n\t\t\tconst alive = this.alive_items\n\t\t\treturn this.hash_list().filter( hash => alive.has( hash.str ) )\n\t\t}\n\t\t\n\t\thash_item( index: number, next?: $giper_baza_link ) {\n\t\t\treturn this.id12( 20 + index * 12, next )\n\t\t}\n\t\t\n\t\t_hash_list!: readonly $giper_baza_link[]\n\t\thash_list( next?: $giper_baza_link[] ) {\n\t\t\t\n\t\t\tif( next ) {\n\t\t\t\t\n\t\t\t\tfor( let i = 0; i < next.length; ++i ) {\n\t\t\t\t\tthis.hash_item( i, next[i] )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t// this.size( next.length )\n\t\t\t\t\n\t\t\t\treturn this._hash_list = next\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tconst list = []\n\t\t\t\tconst count = this.size()\n\t\t\t\t\n\t\t\t\tfor( let i = 0; i < count; ++ i ) {\n\t\t\t\t\tlist.push( this.hash_item( i ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn this._hash_list = list\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Hash for signing. */\n\t\tshot() {\n\t\t\treturn $giper_baza_link.hash_bin( new Uint8Array( this.buffer, this.byteOffset, this.byteLength - 64 ) )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tsign( next?: Uint8Array< ArrayBuffer > ) {\n\t\t\tconst buf = new Uint8Array( this.buffer, this.byteOffset + this.byteLength - 64, 64 )\n\t\t\tif( next ) buf.set( next )\n\t\t\treturn buf\n\t\t}\n\t\t\n\t\t// @ $mol_memo.method\n\t\twork() {\n\t\t\t\n\t\t\tlet int = new Uint32Array( this.hash().toBin().buffer )[0]\n\t\t\t\n\t\t\tlet count = 0\n\t\t\twhile( int & 1 ) {\n\t\t\t\tint >>>= 1\n\t\t\t\t++ count\n\t\t\t}\n\t\t\t\n\t\t\treturn count\n\t\t}\n\t\t\n\t\trate_min() {\n\t\t\treturn $giper_baza_rank_work_rates[ this.work() ]\n\t\t}\n\t\t\n\t\ttier_min() {\n\t\t\treturn $giper_baza_rank_tier.post\n\t\t}\n\t\t\n\t\trank_min() {\n\t\t\treturn this.tier_min() | this.rate_min()\n\t\t}\n\t\t\n\t\tpath(): string {\n\t\t\treturn `seal:${ this.lord() }/${ this.hash().str }`\n\t\t}\n\t\t\n\t\tinspect() {\n\t\t\tconst items = this.hash_list().map( hash => $mol_term_color.cyan( '#' + hash.str ) ).join( ', ' )\n\t\t\tconst kind = $mol_term_color.green( '%' )\n\t\t\treturn `${ super.inspect() } ${kind} ${items}`\n\t\t}\n\t\t\n\t\ttoString() {\n\t\t\tconst items = this.hash_list().map( hash => '#' + hash.str ).join( ', ' )\n\t\t\treturn `${ super.toString() } % ${items}`\n\t\t}\n\t\t\n\t\t[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_span( {} ,\n\t\t\t\t$mol_dev_format_native( this ) ,\n\t\t\t\t' 👾',\n\t\t\t\t$mol_dev_format_auto( this.lord() ),\n\t\t\t\t' ✍ ',\n\t\t\t\t$mol_dev_format_shade( $giper_baza_time_dump( this.time(), this.tick() ) ),\n\t\t\t\t' #',\n\t\t\t\t$mol_dev_format_auto( this.hash() ),\n\t\t\t\t' ',\n\t\t\t\t$mol_dev_format_auto( this.hash_list() ),\n\t\t\t)\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'Watch one value' ($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\tstatic set = new $mol_wire_set< number >()\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic lucky() {\n\t\t\t\t\treturn this.set.has( 777 )\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t$mol_assert_equal( App.lucky(), false )\n\n\t\t\tApp.set.add( 666 )\n\t\t\t$mol_assert_equal( App.lucky(), false )\n\n\t\t\tApp.set.add( 777 )\n\t\t\t$mol_assert_equal( App.lucky(), true )\n\n\t\t\tApp.set.delete( 777 )\n\t\t\t$mol_assert_equal( App.lucky(), false )\n\n\t\t},\n\n\t\t'Watch item channel' ($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\tstatic set = new $mol_wire_set< number >()\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic lucky() {\n\t\t\t\t\treturn this.set.item( 777 )\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t$mol_assert_equal( App.lucky(), false )\n\n\t\t\tApp.set.item( 666, true )\n\t\t\t$mol_assert_equal( App.lucky(), false )\n\n\t\t\tApp.set.item( 777, true )\n\t\t\t$mol_assert_equal( App.lucky(), true )\n\n\t\t\tApp.set.item( 777, false )\n\t\t\t$mol_assert_equal( App.lucky(), false )\n\n\t\t},\n\n\t\t'Watch size' ($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\tstatic set = new $mol_wire_set< number >()\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic size() {\n\t\t\t\t\treturn this.set.size\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t$mol_assert_equal( App.size(), 0 )\n\n\t\t\tApp.set.add( 666 )\n\t\t\t$mol_assert_equal( App.size(), 1 )\n\n\t\t\tApp.set.add( 777 )\n\t\t\t$mol_assert_equal( App.size(), 2 )\n\n\t\t\tApp.set.delete( 777 )\n\t\t\t$mol_assert_equal( App.size(), 1 )\n\n\t\t},\n\n\t\t'Watch for-of' ($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\tstatic set = new $mol_wire_set< number >()\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic sum() {\n\t\t\t\t\tlet res = 0\n\t\t\t\t\tfor( const val of this.set ) {\n\t\t\t\t\t\tres += val\n\t\t\t\t\t}\n\t\t\t\t\treturn res\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t$mol_assert_equal( App.sum(), 0 )\n\n\t\t\tApp.set.add( 111 )\n\t\t\t$mol_assert_equal( App.sum(), 111 )\n\n\t\t\tApp.set.add( 222 )\n\t\t\t$mol_assert_equal( App.sum(), 333 )\n\n\t\t\tApp.set.delete( 111 )\n\t\t\t$mol_assert_equal( App.sum(), 222 )\n\n\t\t},\n\n\t\t'Watch forEach' ($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\tstatic set = new $mol_wire_set< number >()\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic sum() {\n\t\t\t\t\tlet res = 0\n\t\t\t\t\tthis.set.forEach( val => res += val )\n\t\t\t\t\treturn res\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t$mol_assert_equal( App.sum(), 0 )\n\n\t\t\tApp.set.add( 111 )\n\t\t\t$mol_assert_equal( App.sum(), 111 )\n\n\t\t\tApp.set.add( 222 )\n\t\t\t$mol_assert_equal( App.sum(), 333 )\n\n\t\t\tApp.set.delete( 111 )\n\t\t\t$mol_assert_equal( App.sum(), 222 )\n\t\t\t\n\t\t},\n\n\t})\n}\n","namespace $ {\n\t\n\t/** Virtual Pawn that represents contained units as high-level data types. */\n\texport class $giper_baza_pawn extends $mol_object {\n\t\t\n\t\tstatic tag: keyof typeof $giper_baza_unit_sand_tag = 'vals'\n\t\tstatic meta = null as null | $giper_baza_link\n\t\t\n\t\t/** Standalone part of Glob which syncs separately, have own rights, and contains Units */\n\t\tland() {\n\t\t\treturn null as any as $giper_baza_land\n\t\t}\n\t\t\n\t\t/** Land local Pawn id */\n\t\thead() {\n\t\t\treturn $giper_baza_link.hole\n\t\t}\n\t\t\n\t\t/** Link to Land/Lord. */\n\t\tland_link() {\n\t\t\treturn this.land()?.link() ?? this.$.$giper_baza_auth.current().pass().lord()\n\t\t}\n\t\t\n\t\t/** Link to Pawn/Land/Lord. */\n\t\t@ $mol_memo.method\n\t\tlink() {\n\t\t\treturn new $giper_baza_link( '___' + this.head() ).resolve( this.land_link() )\n\t\t}\n\t\t\n\t\ttoJSON() {\n\t\t\treturn this.link().str\n\t\t}\n\t\t\n\t\t/** Returns another representation of this Pawn. */\n\t\t@ $mol_mem_key\n\t\tcast< Pawn extends typeof $giper_baza_pawn >( Pawn: Pawn ): InstanceType< Pawn > {\n\t\t\treturn this.land().Pawn( Pawn ).Head( this.head() )\n\t\t}\n\t\t\n\t\t/** Ordered inner alive Pawn. */\n\t\t@ $mol_mem_key\n\t\tpawns< Pawn extends typeof $giper_baza_pawn >( Pawn: Pawn | null ): readonly InstanceType< Pawn >[] {\n\t\t\tconst land = this.land()\n\t\t\tconst map = {\n\t\t\t\tterm: ()=> land.Pawn( Pawn || $giper_baza_atom ),\n\t\t\t\tsolo: ()=> land.Pawn( Pawn || $giper_baza_atom ),\n\t\t\t\tvals: ()=> land.Pawn( Pawn || $giper_baza_list ),\n\t\t\t\tkeys: ()=> land.Pawn( Pawn || $giper_baza_dict ),\n\t\t\t}\n\t\t\treturn this.units().map( unit => map[ unit.tag() ]().Head( unit.self() ) ) as any\n\t\t}\n\t\t\n\t\t/** All ordered alive Units */\n\t\tunits() {\n\t\t\treturn this.units_of( $giper_baza_link.hole )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tunits_of( peer: $giper_baza_link | null ) {\n\t\t\tconst head = this.head()\n\t\t\tconst units = this.land().sand_ordered({ head, peer }).filter( unit => !unit.dead() && unit.self().str !== '' )\n\t\t\tthis.land().sands_open( units )\n\t\t\treturn units\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tmeta( next?: $giper_baza_link ) {\n\t\t\t\n\t\t\tconst prev = this.meta_of( $giper_baza_link.hole )\n\t\t\tif( !next ) return prev\n\t\t\tif( prev?.str === next?.str ) return prev\n\t\t\t\n\t\t\tconst head = this.head()\n\t\t\tthis.land().post( $giper_baza_link.hole, head, $giper_baza_link.hole, next )\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tmeta_of( peer: $giper_baza_link | null ) {\n\t\t\tconst head = this.head()\n\t\t\tconst unit = this.land().sand_ordered({ head, peer }).find( unit => !unit.dead() && unit.self().str === '' ) ?? null\n\t\t\tif( unit ) this.land().sands_open([ unit ])\n\t\t\treturn unit ? $giper_baza_link_schema.cast( this.land().sand_decode( unit ) ) : null\n\t\t}\n\t\t\n\t\tfilled() {\n\t\t\treturn this.units().length > 0\n\t\t}\n\t\t\n\t\t/** Ability to make changes by current peer. */\n\t\tcan_change() {\n\t\t\treturn this.land().pass_rank( this.land().auth().pass() ) >= $giper_baza_rank_post( 'late' )\n\t\t}\n\t\t\n\t\t/** Time of last changed unit inside Pawn subtree */\n\t\t@ $mol_mem\n\t\tlast_change() {\n\t\t\t\n\t\t\tconst land = this.land()\n\t\t\tlet last = 0\n\t\t\t\n\t\t\tconst visit = ( sand: $giper_baza_unit_sand )=> {\n\t\t\t\tif( sand.time() > last ) last = sand.time()\n\t\t\t\tif( sand.tag() === 'term' ) return\n\t\t\t\tland.Pawn( $giper_baza_pawn ).Head( sand.self() ).units().forEach( visit )\n\t\t\t}\n\t\t\tthis.units().forEach( visit )\n\t\t\t\n\t\t\treturn last ? $giper_baza_time_moment( last ) : null\n\t\t\t\n\t\t}\n\t\t\n\t\t/** All author Passes of Pawn subtree */\n\t\t@ $mol_mem\n\t\tauthors() {\n\t\t\t\n\t\t\tconst land = this.land()\n\t\t\tconst peers = new Set< $giper_baza_auth_pass >()\n\t\t\t\n\t\t\tconst visit = ( sand: $giper_baza_unit_sand )=> {\n\t\t\t\tpeers.add( land.lord_pass( sand.lord() )! )\n\t\t\t\tif( sand.tag() === 'term' ) return\n\t\t\t\tland.Pawn( $giper_baza_pawn ).Head( sand.self() ).units_of( null ).forEach( visit )\n\t\t\t}\n\t\t\tthis.units_of( null ).forEach( visit )\n\t\t\t\n\t\t\treturn [ ... peers ]\n\t\t\t\n\t\t}\n\t\t\n\t\t;[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_span( {} ,\n\t\t\t\t$mol_dev_format_native( this ) ,\n\t\t\t\t' ',\n\t\t\t\tthis.head(),\n\t\t\t)\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_reconcile< Prev, Next >( {\n\t\tprev,\n\t\tfrom,\n\t\tto,\n\t\tnext,\n\t\tequal,\n\t\tdrop,\n\t\tinsert,\n\t\tupdate,\n\t\treplace,\n\t}: {\n\t\tprev: readonly Prev[],\n\t\tfrom: number,\n\t\tto: number,\n\t\tnext: ArrayLike<Next>,\n\t\tequal: ( next: Next, prev: Prev )=> boolean,\n\t\tdrop: ( prev: Prev, lead: Prev | null )=> Prev | null,\n\t\tinsert: ( next: Next, lead: Prev | null )=> Prev,\n\t\tupdate?: ( next: Next, prev: Prev, lead: Prev | null )=> Prev,\n\t\treplace?: ( next: Next, prev: Prev, lead: Prev | null )=> Prev,\n\t} ) {\n\t\t\n\t\tif( !update ) update = ( next, prev, lead )=> prev\n\t\tif( !replace ) replace = ( next, prev, lead )=> insert( next, drop( prev, lead ) )\n\t\t\n\t\tif( to > prev.length ) to = prev.length // $mol_fail( new RangeError( `To(${ to }) greater then length(${ prev.length })` ) )\n\t\tif( from > to ) from = to // $mol_fail( new RangeError( `From(${ to }) greater then to(${ to })` ) )\n\t\n\t\tlet p = from\n\t\tlet n = 0\n\t\tlet lead = p ? prev[ p - 1 ] : null\n\t\t\n\t\twhile( p < to || n < next.length ) {\n\t\t\t\n\t\t\tif( p < to && n < next.length && equal( next[n], prev[p] ) ) {\n\t\t\t\t\n\t\t\t\tlead = update( next[n], prev[p], lead )\n\t\t\t\t++ p\n\t\t\t\t++ n\n\t\t\t\t\n\t\t\t} else if( next.length - n > to - p ) {\n\t\t\t\t\n\t\t\t\tlead = insert( next[n], lead )\n\t\t\t\t++ n\n\t\t\t\t\n\t\t\t} else if( next.length - n < to - p ) {\n\t\t\t\t\n\t\t\t\tlead = drop( prev[p], lead )\n\t\t\t\t++ p\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tlead = replace( next[n], prev[p], lead )\n\t\t\t\t++ p\n\t\t\t\t++ n\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n}\n","/** @jsx $mol_jsx */\n/** @jsxFrag $mol_jsx_frag */\nnamespace $ {\n\n\t$mol_test({\n\t\t\n\t\t'same list'() {\n\t\t\t\n\t\t\tconst list = <body>\n\t\t\t\t<p data-rev=\"old\">a</p>\n\t\t\t\t<p data-rev=\"old\">b</p>\n\t\t\t\t<p data-rev=\"old\">c</p>\n\t\t\t</body>\n\t\t\t\n\t\t\t$mol_reconcile({\n\t\t\t\tprev: [ ... list.children ],\n\t\t\t\tfrom: 0,\n\t\t\t\tto: 3,\n\t\t\t\tnext: 'abc',\n\t\t\t\tequal: ( next, prev )=> prev.textContent === next,\n\t\t\t\tdrop: ( prev, lead )=> list.removeChild( prev ),\n\t\t\t\tinsert: ( next, lead )=> list.insertBefore( <p data-rev=\"new\">{ next }</p>, lead ? lead.nextSibling : list.firstChild ),\n\t\t\t\treplace: ( next, prev, lead )=> {\n\t\t\t\t\tprev.textContent = next\n\t\t\t\t\tprev.setAttribute( 'data-rev', 'up' )\n\t\t\t\t\treturn prev\n\t\t\t\t},\n\t\t\t})\n\t\t\t\n\t\t\t$mol_assert_equal( list.outerHTML, (\n\t\t\t\t<body>\n\t\t\t\t\t<p data-rev=\"old\">a</p>\n\t\t\t\t\t<p data-rev=\"old\">b</p>\n\t\t\t\t\t<p data-rev=\"old\">c</p>\n\t\t\t\t</body>\n\t\t\t).outerHTML )\n\t\t\t\n\t\t},\n\t\t\n\t\t'insert items'() {\n\t\t\t\n\t\t\tconst list = <body>\n\t\t\t\t<p data-rev=\"old\">a</p>\n\t\t\t\t<p data-rev=\"old\">b</p>\n\t\t\t\t<p data-rev=\"old\">c</p>\n\t\t\t\t<p data-rev=\"old\">d</p>\n\t\t\t</body>\n\t\t\t\n\t\t\t$mol_reconcile({\n\t\t\t\tprev: [ ... list.children ],\n\t\t\t\tfrom: 1,\n\t\t\t\tto: 3,\n\t\t\t\tnext: 'bXYc',\n\t\t\t\tequal: ( next, prev )=> prev.textContent === next,\n\t\t\t\tdrop: ( prev, lead )=> list.removeChild( prev ),\n\t\t\t\tinsert: ( next, lead )=> list.insertBefore( <p data-rev=\"new\">{ next }</p>, lead ? lead.nextSibling : list.firstChild ),\n\t\t\t\treplace: ( next, prev, lead )=> {\n\t\t\t\t\tprev.textContent = next\n\t\t\t\t\tprev.setAttribute( 'data-rev', 'up' )\n\t\t\t\t\treturn prev\n\t\t\t\t},\n\t\t\t})\n\t\t\t\n\t\t\t$mol_assert_equal( list.outerHTML, (\n\t\t\t\t<body>\n\t\t\t\t\t<p data-rev=\"old\">a</p>\n\t\t\t\t\t<p data-rev=\"old\">b</p>\n\t\t\t\t\t<p data-rev=\"new\">X</p>\n\t\t\t\t\t<p data-rev=\"new\">Y</p>\n\t\t\t\t\t<p data-rev=\"old\">c</p>\n\t\t\t\t\t<p data-rev=\"old\">d</p>\n\t\t\t\t</body>\n\t\t\t).outerHTML )\n\t\t\t\n\t\t},\n\t\t\n\t\t'append items'() {\n\t\t\t\n\t\t\tconst list = <body>\n\t\t\t\t<p data-rev=\"old\">a</p>\n\t\t\t</body>\n\t\t\t\n\t\t\t$mol_reconcile({\n\t\t\t\tprev: [ ... list.children ],\n\t\t\t\tfrom: 2,\n\t\t\t\tto: 3,\n\t\t\t\tnext: 'bc',\n\t\t\t\tequal: ( next, prev )=> prev.textContent === next,\n\t\t\t\tdrop: ( prev, lead )=> list.removeChild( prev ),\n\t\t\t\tinsert: ( next, lead )=> list.insertBefore( <p data-rev=\"new\">{ next }</p>, lead ? lead.nextSibling : list.firstChild ),\n\t\t\t\treplace: ( next, prev, lead )=> {\n\t\t\t\t\tprev.textContent = next\n\t\t\t\t\tprev.setAttribute( 'data-rev', 'up' )\n\t\t\t\t\treturn prev\n\t\t\t\t},\n\t\t\t})\n\t\t\t\n\t\t\t$mol_assert_equal( list.outerHTML, (\n\t\t\t\t<body>\n\t\t\t\t\t<p data-rev=\"old\">a</p>\n\t\t\t\t\t<p data-rev=\"new\">b</p>\n\t\t\t\t\t<p data-rev=\"new\">c</p>\n\t\t\t\t</body>\n\t\t\t).outerHTML )\n\t\t\t\n\t\t},\n\t\t\n\t\t'split item'() {\n\t\t\t\n\t\t\tconst list = <body>\n\t\t\t\t<p data-rev=\"old\">a</p>\n\t\t\t\t<p data-rev=\"old\">bc</p>\n\t\t\t\t<p data-rev=\"old\">d</p>\n\t\t\t</body>\n\t\t\t\n\t\t\t$mol_reconcile({\n\t\t\t\tprev: [ ... list.children ],\n\t\t\t\tfrom: 0,\n\t\t\t\tto: 3,\n\t\t\t\tnext: 'abcd',\n\t\t\t\tequal: ( next, prev )=> prev.textContent === next,\n\t\t\t\tdrop: ( prev, lead )=> list.removeChild( prev ),\n\t\t\t\tinsert: ( next, lead )=> list.insertBefore( <p data-rev=\"new\">{ next }</p>, lead ? lead.nextSibling : list.firstChild ),\n\t\t\t\treplace: ( next, prev, lead )=> {\n\t\t\t\t\tprev.textContent = next\n\t\t\t\t\tprev.setAttribute( 'data-rev', 'up' )\n\t\t\t\t\treturn prev\n\t\t\t\t},\n\t\t\t})\n\t\t\t\n\t\t\t$mol_assert_equal( list.outerHTML, (\n\t\t\t\t<body>\n\t\t\t\t\t<p data-rev=\"old\">a</p>\n\t\t\t\t\t<p data-rev=\"new\">b</p>\n\t\t\t\t\t<p data-rev=\"up\">c</p>\n\t\t\t\t\t<p data-rev=\"old\">d</p>\n\t\t\t\t</body>\n\t\t\t).outerHTML )\n\t\t\t\n\t\t},\n\t\t\n\t\t'drop items'() {\n\t\t\t\n\t\t\tconst list = <body>\n\t\t\t\t<p data-rev=\"old\">A</p>\n\t\t\t\t<p data-rev=\"old\">B</p>\n\t\t\t\t<p data-rev=\"old\">x</p>\n\t\t\t\t<p data-rev=\"old\">y</p>\n\t\t\t\t<p data-rev=\"old\">C</p>\n\t\t\t\t<p data-rev=\"old\">D</p>\n\t\t\t</body>\n\t\t\t\n\t\t\t$mol_reconcile({\n\t\t\t\tprev: [ ... list.children ],\n\t\t\t\tfrom: 1,\n\t\t\t\tto: 5,\n\t\t\t\tnext: 'BC',\n\t\t\t\tequal: ( next, prev )=> prev.textContent === next,\n\t\t\t\tdrop: ( prev, lead )=> list.removeChild( prev ),\n\t\t\t\tinsert: ( next, lead )=> list.insertBefore( <p data-rev=\"new\">{ next }</p>, lead ? lead.nextSibling : list.firstChild ),\n\t\t\t\treplace: ( next, prev, lead )=> {\n\t\t\t\t\tprev.textContent = next\n\t\t\t\t\tprev.setAttribute( 'data-rev', 'up' )\n\t\t\t\t\treturn prev\n\t\t\t\t},\n\t\t\t})\n\t\t\t\n\t\t\t$mol_assert_equal( list.outerHTML, (\n\t\t\t\t<body>\n\t\t\t\t\t<p data-rev=\"old\">A</p>\n\t\t\t\t\t<p data-rev=\"old\">B</p>\n\t\t\t\t\t<p data-rev=\"old\">C</p>\n\t\t\t\t\t<p data-rev=\"old\">D</p>\n\t\t\t\t</body>\n\t\t\t).outerHTML )\n\t\t\t\n\t\t},\n\t\t\n\t\t'update items'() {\n\t\t\t\n\t\t\tconst list = <body>\n\t\t\t\t<p data-rev=\"old\">a</p>\n\t\t\t\t<p data-rev=\"old\">B</p>\n\t\t\t\t<p data-rev=\"old\">C</p>\n\t\t\t\t<p data-rev=\"old\">d</p>\n\t\t\t</body>\n\t\t\t\n\t\t\t$mol_reconcile({\n\t\t\t\tprev: [ ... list.children ],\n\t\t\t\tfrom: 1,\n\t\t\t\tto: 3,\n\t\t\t\tnext: 'XY',\n\t\t\t\tequal: ( next, prev )=> prev.textContent === next,\n\t\t\t\tdrop: ( prev, lead )=> list.removeChild( prev ),\n\t\t\t\tinsert: ( next, lead )=> list.insertBefore( <p data-rev=\"new\">{ next }</p>, lead ? lead.nextSibling : list.firstChild ),\n\t\t\t\treplace: ( next, prev, lead )=> {\n\t\t\t\t\tprev.textContent = next\n\t\t\t\t\tprev.setAttribute( 'data-rev', 'up' )\n\t\t\t\t\treturn prev\n\t\t\t\t},\n\t\t\t})\n\t\t\t\n\t\t\t$mol_assert_equal( list.outerHTML, (\n\t\t\t\t<body>\n\t\t\t\t\t<p data-rev=\"old\">a</p>\n\t\t\t\t\t<p data-rev=\"up\">X</p>\n\t\t\t\t\t<p data-rev=\"up\">Y</p>\n\t\t\t\t\t<p data-rev=\"old\">d</p>\n\t\t\t\t</body>\n\t\t\t).outerHTML )\n\t\t\t\n\t\t},\n\t\t\n\t})\n}\n","namespace $ {\n\texport class $mol_schema_boolean extends $mol_schema_any {\n\t\t\n\t\tstatic guard< This extends typeof $mol_schema_any, Value >( this: This, value: Value ): Value & This['default'] {\n\t\t\tif( typeof value === 'boolean' ) return value\n\t\t\treturn $mol_fail( new TypeError( 'Wrong type', { cause: { value, schema: this } } ) )\n\t\t}\n\t\t\n\t\tstatic default = false\n\t\t\n\t}\n}\n","namespace $.$$ {\n\t$mol_test({\n\t\t\n\t\t\"Boolean schema\"( $ ) {\n\t\t\t\n\t\t\t$mol_assert_equal( '$mol_schema_boolean', $mol_schema_boolean + '', $mol_key( $mol_schema_boolean ) )\n\t\t\t\n\t\t\t$mol_assert_equal( true, $mol_schema_boolean.check( false ) )\n\t\t\t$mol_assert_equal( true, $mol_schema_boolean.check( true ) )\n\t\t\t$mol_assert_equal( false, $mol_schema_boolean.check( 'true' ) )\n\t\t\t$mol_assert_equal( false, $mol_schema_boolean.check( 0 ) )\n\t\t\t\n\t\t\t$mol_assert_equal( false, $mol_schema_boolean.cast( false ) )\n\t\t\t$mol_assert_equal( false, $mol_schema_boolean.cast( 'true' ) )\n\t\t\t\n\t\t\t$mol_assert_equal( false, $mol_schema_boolean.guard( false ) )\n\t\t\t$mol_assert_fail( ()=> $mol_schema_boolean.guard( null ), 'Wrong type' )\n\t\t\t\n\t\t},\n\t\t\n\t})\n}\n","namespace $ {\n\texport class $mol_schema_integer extends $mol_schema_float {\n\t\t\n\t\t$mol_schema_integer = true\n\t\t\n\t\tstatic guard< This extends typeof $mol_schema_any, Value >( this: This, value: Value ): Value & This['default'] {\n\t\t\tconst val = super.guard( value )\n\t\t\tif( !Number.isFinite( val ) ) return $mol_fail( new TypeError( 'Non finite', { cause: { value, schema: this } } ) )\n\t\t\tif( Math.trunc( val ) !== val ) return $mol_fail( new TypeError( 'Non integer', { cause: { value, schema: this } } ) )\n\t\t\treturn val as Value & typeof this.default\n\t\t}\n\t\t\n\t\tstatic default = 0 as number & $mol_schema_integer\n\t\t\n\t}\n\t\n}\n","namespace $.$$ {\n\t$mol_test({\n\t\t\n\t\t\"Integer schema\"( $ ) {\n\t\t\t\n\t\t\t$mol_assert_equal( '$mol_schema_integer', $mol_schema_integer + '', $mol_key( $mol_schema_integer ) )\n\t\t\t\n\t\t\t$mol_assert_equal( true, $mol_schema_integer.check( Number.MAX_SAFE_INTEGER ) )\n\t\t\t$mol_assert_equal( true, $mol_schema_integer.check( Number.MIN_SAFE_INTEGER ) )\n\t\t\t$mol_assert_equal( true, $mol_schema_integer.check( 0 ) )\n\t\t\t\n\t\t\t$mol_assert_equal( false, $mol_schema_integer.check( Number.EPSILON ) )\n\t\t\t$mol_assert_equal( false, $mol_schema_integer.check( Number.POSITIVE_INFINITY ) )\n\t\t\t$mol_assert_equal( false, $mol_schema_integer.check( Number.NEGATIVE_INFINITY ) )\n\t\t\t\n\t\t\t$mol_assert_equal( Number.MAX_SAFE_INTEGER, $mol_schema_integer.cast( Number.MAX_SAFE_INTEGER ) )\n\t\t\t$mol_assert_equal( 0, $mol_schema_integer.cast( Number.EPSILON ) )\n\t\t\t$mol_assert_equal( 0, $mol_schema_integer.cast( 1.5 ) )\n\t\t\t\n\t\t\t$mol_assert_equal( 0, $mol_schema_integer.guard( 0 ) )\n\t\t\t$mol_assert_fail( ()=> $mol_schema_integer.guard( '' ), 'Wrong type' )\n\t\t\t$mol_assert_fail( ()=> $mol_schema_integer.guard( Number.NaN ), 'Non finite' )\n\t\t\t$mol_assert_fail( ()=> $mol_schema_integer.guard( 1.5 ), 'Non integer' )\n\t\t\t\n\t\t},\n\t\t\n\t\t\n\t})\n}\n","namespace $ {\n\texport class $mol_schema_bigint extends $mol_schema_any {\n\t\t\n\t\tstatic guard< This extends typeof $mol_schema_any, Value >( this: This, value: Value ): Value & This['default'] {\n\t\t\tif( typeof value === 'bigint' ) return value\n\t\t\treturn $mol_fail( new TypeError( 'Wrong type', { cause: { value, schema: this } } ) )\n\t\t}\n\t\t\n\t\tstatic cast< This extends typeof $mol_schema_any >( this: This, value: unknown ): This['default'] {\n\t\t\tif( typeof value === 'number' ) return BigInt( $mol_schema_integer.cast( value ) )\n\t\t\treturn super.cast( value )\n\t\t}\n\t\t\n\t\tstatic default = 0n\n\t\t\n\t}\n}\n","namespace $.$$ {\n\t$mol_test({\n\t\t\n\t\t\"BigInt schema\"( $ ) {\n\t\t\t\n\t\t\t$mol_assert_equal( '$mol_schema_bigint', $mol_schema_bigint + '', $mol_key( $mol_schema_bigint ) )\n\t\t\t\n\t\t\t$mol_assert_equal( true, $mol_schema_bigint.check( 0n ) )\n\t\t\t$mol_assert_equal( false, $mol_schema_bigint.check( 0 ) )\n\t\t\t\n\t\t\t$mol_assert_equal( 1n, $mol_schema_bigint.cast( 1n ) )\n\t\t\t$mol_assert_equal( 1n, $mol_schema_bigint.cast( 1 ) )\n\t\t\t\n\t\t\t$mol_assert_equal( 0n, $mol_schema_bigint.guard( 0n ) )\n\t\t\t$mol_assert_fail( ()=> $mol_schema_bigint.guard( 1 ), 'Wrong type' )\n\t\t\t\n\t\t},\n\t\t\n\t})\n}\n","namespace $ {\n\texport let $mol_schema_pattern = $mol_memo_key.func( function $mol_schema_pattern< Pattern extends RegExp >( Pattern: Pattern ) {\n\t\treturn class $mol_schema_pattern_ extends $mol_schema_string {\n\t\t\t\n\t\t\tstatic Pattern = Pattern\n\t\t\t\n\t\t\tstatic toString(): string {\n\t\t\t\tif( this !== $mol_schema_pattern_ ) return super.toString()\n\t\t\t\treturn '$mol_schema_pattern<' + $mol_key(Pattern) + '>'\n\t\t\t}\n\t\t\t\n\t\t\tstatic guard< This extends typeof $mol_schema_any, Value >( this: This, value: Value ): Value & This['default'] {\n\t\t\t\tif( Pattern.test( super.guard( value ) ) ) return value\n\t\t\t\treturn $mol_fail( new TypeError( 'Wrong string', { cause: { value, schema: this } } ) )\n\t\t\t}\n\t\t\t\n\t\t\tstatic cast< This extends typeof $mol_schema_any >( this: This, value: unknown ): This['default'] {\n\t\t\t\treturn super.cast( value )\n\t\t\t}\n\t\t\t\n\t\t\tstatic default = ''\n\t\t\t\n\t\t}\n\t} )\n}\n","namespace $.$$ {\n\t$mol_test({\n\t\t\n\t\t\"Cache of pattern schema\"( $ ) {\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_schema_pattern( /foo/ ), $mol_schema_pattern( /foo/ ) )\n\t\t\t$mol_assert_unique( $mol_schema_pattern( /foo/ ), $mol_schema_pattern( /bar/ ) )\n\t\t\t\n\t\t},\n\t\t\n\t\t\"String pattern schema\"( $ ) {\n\t\t\t\n\t\t\tconst Email = $mol_schema_pattern( /^.*@.*$/ )\n\t\t\t\n\t\t\t$mol_assert_equal( '$mol_schema_pattern</^.*@.*$/>', Email + '', $mol_key( Email ) )\n\t\t\t\n\t\t\t$mol_assert_equal( true, Email.check( 'foo@bar' ) )\n\t\t\t$mol_assert_equal( false, Email.check( 'foo' ) )\n\t\t\t$mol_assert_equal( false, Email.check( 123 ) )\n\t\t\t\n\t\t\t$mol_assert_equal( 'foo@bar', Email.cast( 'foo@bar' ) )\n\t\t\t$mol_assert_equal( '', Email.cast( 'foo' ) )\n\t\t\t$mol_assert_equal( '', Email.cast( 123 ) )\n\t\t\t\n\t\t\t$mol_assert_equal( 'foo@bar', Email.guard( 'foo@bar' ) )\n\t\t\t$mol_assert_fail( ()=> Email.guard( 'foo' ), 'Wrong string' )\n\t\t\t\n\t\t},\n\t\t\n\t})\n}\n","namespace $ {\n\texport let $mol_schema_dict = $mol_memo_key.func( function $mol_schema_dict< Pair extends [\n\t\tKey: typeof $mol_schema_any & { default: PropertyKey },\n\t\tVal: typeof $mol_schema_any,\n\t] >( Pair: Pair ) {\n\t\t\n\t\treturn class $mol_schema_dict_ extends $mol_schema_any {\n\t\t\t\n\t\t\tstatic Pair = Pair\n\t\t\t\n\t\t\tstatic toString(): string {\n\t\t\t\tif( this !== $mol_schema_dict_ ) return super.toString()\n\t\t\t\treturn '$mol_schema_dict<' + $mol_key( Pair ) + '>'\n\t\t\t}\n\t\t\t\n\t\t\tstatic guard< This extends typeof $mol_schema_any, Value >( this: This, value: Value ): Value & This['default'] {\n\t\t\t\t\n\t\t\t\tif( Object.getPrototypeOf( Object.getPrototypeOf( value ) ) ) {\n\t\t\t\t\treturn $mol_fail( new TypeError( 'Non dictionary', { cause: { value, schema: this } } ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfor( const key in value ) {\n\t\t\t\t\t\n\t\t\t\t\ttry {\n\t\t\t\t\t\tPair[0].guard( key )\n\t\t\t\t\t} catch( error ) {\n\t\t\t\t\t\treturn $mol_fail( new TypeError( 'Wrong key', { cause: { key, error, value, schema: this } } ) )\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\ttry {\n\t\t\t\t\t\tPair[1].guard( ( value as any )[ key ] )\n\t\t\t\t\t} catch( error ) {\n\t\t\t\t\t\treturn $mol_fail( new TypeError( 'Wrong val', { cause: { key, error, value, schema: this } } ) )\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn value\n\t\t\t}\n\t\t\t\n\t\t\tstatic cast< This extends typeof $mol_schema_any >( this: This, value: unknown ): This['default'] {\n\t\t\t\t\n\t\t\t\tif( Object.getPrototypeOf( Object.getPrototypeOf( value ) ) ) return this.default\n\t\t\t\t\n\t\t\t\tconst res = {} as any\n\t\t\t\tfor( const key in value as any ) {\n\t\t\t\t\tif( !Pair[0].check( key ) ) continue\n\t\t\t\t\tres[ key ] = Pair[1].cast( ( value as any )[ key ] )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn res\n\t\t\t}\n\t\t\t\n\t\t\tstatic default = {} as Record< Pair[0]['default'], Pair[1]['default'] > \n\t\t\t\n\t\t}\n\t\t\n\t} )\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t\"Cache of dict schema\"( $ ) {\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_schema_dict([ $mol_schema_string, $mol_schema_float ]), $mol_schema_dict([ $mol_schema_string, $mol_schema_float ]) )\n\t\t\t$mol_assert_unique( $mol_schema_dict([ $mol_schema_string, $mol_schema_float ]), $mol_schema_dict([ $mol_schema_string, $mol_schema_string ]) )\n\t\t\t\n\t\t},\n\t\t\n\t\t\"Dictionary schema\"( $ ) {\n\t\t\t\n\t\t\tconst Flags = $mol_schema_dict([ $mol_schema_pattern( /^[a-z]+$/ ), $mol_schema_boolean ])\n\t\t\t\n\t\t\t$mol_assert_equal( true, Flags.check( {} ) )\n\t\t\t$mol_assert_equal( true, Flags.check( { foo: false } ) )\n\t\t\t$mol_assert_equal( false, Flags.check( { f00: false } ) )\n\t\t\t$mol_assert_equal( false, Flags.check( [] ) )\n\t\t\t$mol_assert_equal( false, Flags.check( { foo: 0 } ) )\n\t\t\t\n\t\t\t$mol_assert_equal( { foo: false }, Flags.cast({ foo: false, f00: true }) )\n\t\t\t$mol_assert_equal( { foo: false }, Flags.cast({ foo: 123 }) )\n\t\t\t\n\t\t\t$mol_assert_equal( {}, Flags.guard( {} ) )\n\t\t\t$mol_assert_equal( { foo: false }, Flags.guard({ foo: false }) )\n\t\t\t$mol_assert_fail( ()=> Flags.guard({ foo: 123 }), 'Wrong val' )\n\t\t\t$mol_assert_fail( ()=> Flags.guard({ f00: 123 }), 'Wrong key' )\n\t\t\t\n\t\t},\n\t\t\n\t})\n}\n","namespace $ {\n\texport let $mol_schema_list = $mol_memo_key.func( function $mol_schema_list<\n\t\tItem extends typeof $mol_schema_any\n\t>( Item: Item ) {\n\t\t\n\t\treturn class $mol_schema_list_ extends $mol_schema_any {\n\t\t\t\n\t\t\tstatic Item = Item\n\t\t\t\n\t\t\tstatic toString(): string {\n\t\t\t\tif( this !== $mol_schema_list_ ) return super.toString()\n\t\t\t\treturn '$mol_schema_list<' + $mol_key(Item) + '>'\n\t\t\t}\t\n\t\t\t\n\t\t\tstatic guard< This extends typeof $mol_schema_any, Value >( this: This, value: Value ): Value & This['default'] {\n\t\t\t\t\n\t\t\t\tif( !Array.isArray( value ) ) return $mol_fail( new TypeError( 'Non array', { cause: { value, schema: this } } ) )\n\t\t\t\t\n\t\t\t\tfor( const [ index, item ] of super.guard( value ).entries() ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tItem.guard( item )\n\t\t\t\t\t} catch( error ) {\n\t\t\t\t\t\treturn $mol_fail( new TypeError( 'Wrong item', { cause: { index, error, value, schema: this } } ) )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn value\n\t\t\t}\n\t\t\t\n\t\t\tstatic cast< This extends typeof $mol_schema_any >( this: This, value: unknown ): This['default'] {\n\t\t\t\tif( !Array.isArray( value ) ) return this.default\n\t\t\t\treturn value.map( item => Item.cast( item ) ) as typeof this.default\n\t\t\t}\n\t\t\t\n\t\t\tstatic default = [] as readonly( Item['default'] )[]\n\t\t\t\n\t\t}\n\t\t\n\t} )\n}\n","namespace $.$$ {\n\t$mol_test({\n\t\t\n\t\t\"Cache of list schema\"( $ ) {\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_schema_list( $mol_schema_float ), $mol_schema_list( $mol_schema_float ) )\n\t\t\t$mol_assert_unique( $mol_schema_list( $mol_schema_float ), $mol_schema_list( $mol_schema_string ) )\n\t\t\t\n\t\t},\n\t\t\n\t\t\"Array schema\"( $ ) {\n\t\t\t\n\t\t\tconst Vector = $mol_schema_list( $mol_schema_float )\n\t\t\t\n\t\t\t$mol_assert_equal( '$mol_schema_list<$mol_schema_float>', Vector + '' )\n\t\t\t\n\t\t\t$mol_assert_equal( true, Vector.check( [] ) )\n\t\t\t$mol_assert_equal( true, Vector.check( [ 123 ] ) )\n\t\t\t$mol_assert_equal( false, Vector.check( [ 'foo' ] ) )\n\t\t\t\n\t\t\t$mol_assert_equal( [ 123 ], Vector.cast( [ 123 ] ) )\n\t\t\t$mol_assert_equal( [ 123, Number.NaN ], Vector.cast( [ 123, 'foo' ] ) )\n\t\t\t\n\t\t\t$mol_assert_equal( [], Vector.guard( [] ) )\n\t\t\t$mol_assert_equal( [ 123 ], Vector.guard( [ 123 ] ) )\n\t\t\t$mol_assert_fail( ()=> Vector.guard( 0 ), 'Non array' )\n\t\t\t$mol_assert_fail( ()=> Vector.guard( [ false ] ), 'Wrong item' )\n\t\t\t\n\t\t},\n\t\t\n\t})\n}\n","namespace $ {\n\t\n\tfunction clone( base: $giper_baza_land ) {\n\t\tconst land = $mol_wire_sync( base.$.$giper_baza_land ).make({ $: base.$ }) as $giper_baza_land\n\t\tland.units_steal( base )\n\t\treturn land\n\t}\n\t\n\tfunction sync( left: $giper_baza_land, right: $giper_baza_land ) {\n\t\tleft.units_steal( right )\n\t\tright.units_steal( left )\n\t}\n\t\n\t$mol_test({\n\t\t\n\t\t'Basic list ops'( $ ) {\n\t\t\t\n\t\t\tconst land = $.$giper_baza_land.make({ $ })\n\t\t\tconst list = land.Pawn( $giper_baza_list ).Data()\n\t\t\t$mol_assert_equal( list.items_vary(), [] )\n\t\t\t\n\t\t\tlist.items_vary([ 2, 3 ])\n\t\t\t$mol_assert_equal( list.items_vary(), [ 2, 3 ] )\n\t\t\t$mol_assert_equal( list.has( 1 ), false )\n\t\t\t\n\t\t\tlist.add( 1 )\n\t\t\t$mol_assert_equal( list.items_vary(), [ 1, 2, 3 ] )\n\t\t\t$mol_assert_equal( list.has( 1 ), true )\n\t\t\t\n\t\t\tlist.add( 3 )\n\t\t\t$mol_assert_equal( list.items_vary(), [ 1, 2, 3 ] )\n\t\t\t\n\t\t\tlist.splice([ 2 ])\n\t\t\t$mol_assert_equal( list.items_vary(), [ 1, 2, 3, 2 ] )\n\t\t\t\n\t\t\tlist.splice( [ 2 ], 0 )\n\t\t\t$mol_assert_equal( list.items_vary(), [ 2, 1, 2, 3, 2 ] )\n\t\t\t\n\t\t\tlist.wipe( 2 )\n\t\t\t$mol_assert_equal( list.items_vary(), [ 2, 1, 3, 2 ] )\n\t\t\t\n\t\t\tlist.move( 2, 1 )\n\t\t\t$mol_assert_equal( list.items_vary(), [ 2, 3, 1, 2 ] )\n\t\t\t\n\t\t\tlist.move( 1, 3 )\n\t\t\t$mol_assert_equal( list.items_vary(), [ 2, 1, 3, 2 ] )\n\t\t\t\n\t\t\tlist.cut( 2 )\n\t\t\t$mol_assert_equal( list.items_vary(), [ 1, 3 ] )\n\t\t\t$mol_assert_equal( list.has( 2 ), false )\n\t\t\t\n\t\t\tlist.cut( 2 )\n\t\t\t$mol_assert_equal( list.items_vary(), [ 1, 3 ] )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Different types'( $ ) {\n\t\t\t\n\t\t\tconst land = $.$giper_baza_land.make({ $ })\n\t\t\tconst list = land.Pawn( $.$giper_baza_list ).Data()\n\t\t\t\n\t\t\tlist.items_vary([\n\t\t\t\tnull,\n\t\t\t\tfalse,\n\t\t\t\ttrue,\n\t\t\t\t0n,\n\t\t\t\t4611686018427387904n,\n\t\t\t\t0,\n\t\t\t\tMath.PI,\n\t\t\t\tNumber.NaN,\n\t\t\t\tNumber.NEGATIVE_INFINITY,\n\t\t\t\t'',\n\t\t\t\t'1234567890123456789012345678901234567890',\n\t\t\t\tnew Uint8Array([]),\n\t\t\t\tnew Uint8Array([ 1, 2, 3 ]),\n\t\t\t\tnew Uint8Array([ 1,2,3,4,5,6,7,8,9,0, 1,2,3,4,5,6,7,8,9,0, 1,2,3,4,5,6,7,8,9,0, 1,2,3,4,5,6,7,8,9,0 ]),\n\t\t\t\tlist.link(),\n\t\t\t])\n\t\t\t\n\t\t\t$mol_assert_equal( list.items_vary(), [\n\t\t\t\tfalse,\n\t\t\t\ttrue,\n\t\t\t\t0,\n\t\t\t\t4611686018427387904n,\n\t\t\t\t0,\n\t\t\t\tMath.PI,\n\t\t\t\tNumber.NaN,\n\t\t\t\tNumber.NEGATIVE_INFINITY,\n\t\t\t\t'',\n\t\t\t\t'1234567890123456789012345678901234567890',\n\t\t\t\tnew Uint8Array([]),\n\t\t\t\tnew Uint8Array([ 1, 2, 3 ]),\n\t\t\t\tnew Uint8Array([ 1,2,3,4,5,6,7,8,9,0, 1,2,3,4,5,6,7,8,9,0, 1,2,3,4,5,6,7,8,9,0, 1,2,3,4,5,6,7,8,9,0 ]),\n\t\t\t\tlist.link(),\n\t\t\t] )\n\t\t\t\n\t\t},\n\t\t\n\t\tasync 'List merge'( $ ) {\n\t\t\t\n\t\t\tconst land1 = $.$giper_baza_land.make({ $ })\n\t\t\tconst land2 = $.$giper_baza_land.make({ $ })\n\t\t\t\n\t\t\tconst list1 = land1.Pawn( $giper_baza_list ).Data()\n\t\t\tconst list2 = land2.Pawn( $giper_baza_list ).Data()\n\n\t\t\tlist1.items_vary([ 'foo', 'xxx' ])\n\t\t\tland2.tick()\n\t\t\tlist2.items_vary([ 'foo', 'yyy' ])\n\t\t\tawait $mol_wire_async( land1 ).units_steal( land2 )\n\t\t\t$mol_assert_equal( list1.items_vary(), [ 'foo', 'yyy', 'foo', 'xxx' ] )\n\n\t\t},\n\t\t\n\t\t'Insert before removed before changed'( $ ) {\n\t\t\t\n\t\t\tconst land = $.$giper_baza_land.make({ $ })\n\t\t\tconst list = land.Pawn( $giper_baza_list ).Data()\n\t\t\t\n\t\t\tlist.items_vary([ 'foo', 'bar' ])\n\t\t\tlist.items_vary([ 'xxx', 'foo', 'bar' ])\n\t\t\tlist.items_vary([ 'xxx', 'bars' ])\n\t\t\t\n\t\t\t$mol_assert_equal( list.items_vary(), [ 'xxx', 'bars' ] )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Many moves'( $ ) {\n\t\t\t\n\t\t\tconst land = $.$giper_baza_land.make({ $ })\n\t\t\tconst list = land.Pawn( $giper_baza_list ).Data()\n\t\t\t\n\t\t\tlist.items_vary([ 'foo', 'bar', 'lol' ])\n\t\t\tlist.move( 2, 1 )\n\t\t\tlist.move( 2, 1 )\n\t\t\tlist.move( 0, 3 )\n\t\t\tlist.move( 2, 1 )\n\t\t\t\n\t\t\t$mol_assert_equal( list.items_vary(), [ 'bar', 'foo', 'lol' ] )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Reorder separated sublists'( $ ) {\n\t\t\t\n\t\t\tconst land = $.$giper_baza_land.make({ $ })\n\t\t\tconst list = land.Pawn( $giper_baza_list ).Data()\n\t\t\t\n\t\t\tlist.items_vary([ 1, 2, 3, 4, 5, 6 ])\n\t\t\t\n\t\t\tlist.move( 3, 5 )\n\t\t\tlist.move( 3, 5 )\n\t\t\tlist.move( 5, 4 )\n\t\t\t\n\t\t\tlist.move( 0, 2 )\n\t\t\tlist.move( 0, 2 )\n\t\t\tlist.move( 2, 1 )\n\t\t\t\n\t\t\t$mol_assert_equal( list.items_vary(), [ 1, 3, 2, 4, 6, 5 ] )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Insert after moved right': $mol_wire_async( ( $: $ )=> {\n\t\t\t\n\t\t\tconst base = $mol_wire_sync( $.$giper_baza_land ).make({ $ }) as $giper_baza_land\n\t\t\tbase.Data( $giper_baza_list ).items_vary([ 1, 2, 3, 4 ])\n\t\t\t\n\t\t\tconst left = clone( base )\n\t\t\tleft.Data( $giper_baza_list ).items_vary([ 1, 7, 2, 3, 4 ])\n\t\t\t\n\t\t\tconst right = clone( base )\n\t\t\tright.Data( $giper_baza_list ).move( 0, 2 )\n\t\t\t\n\t\t\tsync( left, right )\n\t\t\t$mol_assert_equal(\n\t\t\t\tleft.Data( $giper_baza_list ).items_vary(),\n\t\t\t\tright.Data( $giper_baza_list ).items_vary(),\n\t\t\t\t[ 2, 1, 7, 3, 4 ],\n\t\t\t)\n\t\t\t\n\t\t} ),\n\t\t\n\t\t'Insert before moved left': $mol_wire_async( ( $: $ )=> {\n\t\t\t\n\t\t\tconst base = $mol_wire_sync( $.$giper_baza_land ).make({ $ }) as $giper_baza_land\n\t\t\tbase.Data( $giper_baza_list ).items_vary([ 1, 2, 3, 4 ])\n\t\t\t\n\t\t\tconst left = clone( base )\n\t\t\tleft.Data( $giper_baza_list ).move( 1, 0 )\n\t\t\t\n\t\t\tconst right = clone( base )\n\t\t\tright.faces.sync( left.faces )\n\t\t\tright.Data( $giper_baza_list ).items_vary([ 1, 7, 2, 3, 4 ])\n\t\t\t\n\t\t\tsync( left, right )\n\t\t\t$mol_assert_equal(\n\t\t\t\tleft.Data( $giper_baza_list ).items_vary(),\n\t\t\t\tright.Data( $giper_baza_list ).items_vary(),\n\t\t\t\t[ 2, 1, 7, 3, 4 ],\n\t\t\t)\n\t\t\t\n\t\t} ),\n\t\t\n\t\t'Move left after inserted': $mol_wire_async( ( $: $ )=> {\n\t\t\t\n\t\t\tconst base = $mol_wire_sync( $.$giper_baza_land ).make({ $ }) as $giper_baza_land\n\t\t\tbase.Data( $giper_baza_list ).items_vary([ 1, 2, 3, 4 ])\n\t\t\t\n\t\t\tconst left = clone( base )\n\t\t\tleft.Data( $giper_baza_list ).items_vary([ 1, 7, 2, 3, 4 ])\n\t\t\t\n\t\t\tconst right = clone( base )\n\t\t\tright.faces.sync( left.faces )\n\t\t\tright.Data( $giper_baza_list ).move( 1, 0 )\n\t\t\t\n\t\t\tsync( left, right )\n\t\t\t$mol_assert_equal(\n\t\t\t\tleft.Data( $giper_baza_list ).items_vary(),\n\t\t\t\tright.Data( $giper_baza_list ).items_vary(),\n\t\t\t\t[ 2, 1, 3, 7, 4 ], // extra change (3) => unexpected result (7 after 3)\n\t\t\t)\n\t\t\t\n\t\t} ),\n\t\t\n\t\t'Insert before moved right': $mol_wire_async( ( $: $ )=> {\n\t\t\t\n\t\t\tconst base = $mol_wire_sync( $.$giper_baza_land ).make({ $ }) as $giper_baza_land\n\t\t\tbase.Data( $giper_baza_list ).items_vary([ 1, 2, 3, 4 ])\n\t\t\t\n\t\t\tconst left = clone( base )\n\t\t\tleft.Data( $giper_baza_list ).move( 1, 4 )\n\t\t\t\n\t\t\tconst right = clone( base )\n\t\t\tright.faces.sync( left.faces )\n\t\t\tright.Data( $giper_baza_list ).items_vary([ 1, 7, 2, 3, 4 ])\n\t\t\t\n\t\t\tsync( left, right )\n\t\t\t$mol_assert_equal(\n\t\t\t\tleft.Data( $giper_baza_list ).items_vary(),\n\t\t\t\tright.Data( $giper_baza_list ).items_vary(),\n\t\t\t\t[ 1, 7, 3, 4, 2 ],\n\t\t\t)\n\t\t\t\n\t\t} ),\n\t\t\n\t\t'Move right after inserted': $mol_wire_async( ( $: $ )=> {\n\t\t\t\n\t\t\tconst base = $mol_wire_sync( $.$giper_baza_land ).make({ $ }) as $giper_baza_land\n\t\t\tbase.Data( $giper_baza_list ).items_vary([ 1, 2, 3, 4 ])\n\t\t\t\n\t\t\tconst left = clone( base )\n\t\t\tleft.Data( $giper_baza_list ).items_vary([ 1, 7, 2, 3, 4 ])\n\t\t\t\n\t\t\tconst right = clone( base )\n\t\t\tright.faces.sync( left.faces )\n\t\t\tright.Data( $giper_baza_list ).move( 1, 4 )\n\t\t\t\n\t\t\tsync( left, right )\n\t\t\t$mol_assert_equal(\n\t\t\t\tleft.Data( $giper_baza_list ).items_vary(),\n\t\t\t\tright.Data( $giper_baza_list ).items_vary(),\n\t\t\t\t[ 1, 3, 7, 4, 2 ], // extra change (3) => unexpected result (7 after 3)\n\t\t\t)\n\t\t\t\n\t\t} ),\n\t\t\n\t\t'Insert after wiped': $mol_wire_async( ( $: $ )=> {\n\t\t\t\n\t\t\tconst base = $mol_wire_sync( $.$giper_baza_land ).make({ $ }) as $giper_baza_land\n\t\t\tbase.Data( $giper_baza_list ).items_vary([ 1, 2, 3, 4 ])\n\t\t\t\n\t\t\tconst left = clone( base )\n\t\t\tleft.Data( $giper_baza_list ).items_vary([ 1, 3, 4 ])\n\t\t\t\n\t\t\tconst right = clone( base )\n\t\t\tright.faces.sync( left.faces )\n\t\t\tright.Data( $giper_baza_list ).items_vary([ 1, 2, 7, 3, 4 ])\n\t\t\t\n\t\t\tsync( left, right )\n\t\t\t$mol_assert_equal(\n\t\t\t\tleft.Data( $giper_baza_list ).items_vary(),\n\t\t\t\tright.Data( $giper_baza_list ).items_vary(),\n\t\t\t\t[ 1, 7, 3, 4 ],\n\t\t\t)\n\t\t\t\n\t\t} ),\n\t\t\n\t\t'Wiped before inserted': $mol_wire_async( ( $: $ )=> {\n\t\t\t\n\t\t\tconst base = $mol_wire_sync( $.$giper_baza_land ).make({ $ }) as $giper_baza_land\n\t\t\tbase.Data( $giper_baza_list ).items_vary([ 1, 2, 3, 4 ])\n\t\t\t\n\t\t\tconst left = clone( base )\n\t\t\tleft.Data( $giper_baza_list ).items_vary([ 1, 2, 7, 3, 4 ])\n\t\t\t\n\t\t\tconst right = clone( base )\n\t\t\tright.faces.sync( left.faces )\n\t\t\tright.Data( $giper_baza_list ).items_vary([ 1, 3, 4 ])\n\t\t\t\n\t\t\tsync( left, right )\n\t\t\t$mol_assert_equal(\n\t\t\t\tleft.Data( $giper_baza_list ).items_vary(),\n\t\t\t\tright.Data( $giper_baza_list ).items_vary(),\n\t\t\t\t[ 1, 7, 3, 4 ],\n\t\t\t)\n\t\t\t\n\t\t} ),\n\t\t\n\t\t'Insert before wiped': $mol_wire_async( ( $: $ )=> {\n\t\t\t\n\t\t\tconst base = $mol_wire_sync( $.$giper_baza_land ).make({ $ }) as $giper_baza_land\n\t\t\tbase.Data( $giper_baza_list ).items_vary([ 1, 2, 3, 4 ])\n\t\t\t\n\t\t\tconst left = clone( base )\n\t\t\tleft.Data( $giper_baza_list ).wipe( 2 )\n\t\t\t\n\t\t\tconst right = clone( base )\n\t\t\tright.faces.sync( left.faces )\n\t\t\tright.Data( $giper_baza_list ).items_vary([ 1, 2, 7, 3, 4 ])\n\t\t\t\n\t\t\tsync( left, right )\n\t\t\t$mol_assert_equal(\n\t\t\t\tleft.Data( $giper_baza_list ).items_vary(),\n\t\t\t\tright.Data( $giper_baza_list ).items_vary(),\n\t\t\t\t[ 1, 2, 7, 4 ],\n\t\t\t)\n\t\t\t\n\t\t} ),\n\t\t\n\t\t'Wiped after inserted': $mol_wire_async( ( $: $ )=> {\n\t\t\t\n\t\t\tconst base = $mol_wire_sync( $.$giper_baza_land ).make({ $ }) as $giper_baza_land\n\t\t\tbase.Data( $giper_baza_list ).items_vary([ 1, 2, 3, 4 ])\n\t\t\t\n\t\t\tconst left = clone( base )\n\t\t\tleft.Data( $giper_baza_list ).items_vary([ 1, 2, 7, 3, 4 ])\n\t\t\t\n\t\t\tconst right = clone( base )\n\t\t\tright.faces.sync( left.faces )\n\t\t\tright.Data( $giper_baza_list ).wipe( 2 )\n\t\t\t\n\t\t\tsync( left, right )\n\t\t\t$mol_assert_equal(\n\t\t\t\tleft.Data( $giper_baza_list ).items_vary(),\n\t\t\t\tright.Data( $giper_baza_list ).items_vary(),\n\t\t\t\t[ 1, 2, 7, 4 ],\n\t\t\t)\n\t\t\t\n\t\t} ),\n\t\t\n\t\t'Insert after moved out': $mol_wire_async( ( $: $ )=> {\n\t\t\t\n\t\t\tconst base = $mol_wire_sync( $.$giper_baza_land ).make({ $ }) as $giper_baza_land\n\t\t\tbase.Data( $giper_baza_list ).items_vary([ 1, 2, 3, 4 ])\n\t\t\t\n\t\t\tconst left = clone( base )\n\t\t\tleft.sand_move( left.Data( $giper_baza_list ).units()[1], new $giper_baza_link( '11111111' ), 0 )\n\t\t\t\n\t\t\tconst right = clone( base )\n\t\t\tright.faces.sync( left.faces )\n\t\t\tright.Data( $giper_baza_list ).items_vary([ 1, 2, 7, 3, 4 ])\n\t\t\t\n\t\t\tsync( left, right )\n\t\t\t$mol_assert_equal(\n\t\t\t\tleft.Data( $giper_baza_list ).items_vary(),\n\t\t\t\tright.Data( $giper_baza_list ).items_vary(),\n\t\t\t\t[ 1, 7, 3, 4 ],\n\t\t\t)\n\t\t\t$mol_assert_equal(\n\t\t\t\tleft.Pawn( $giper_baza_list ).Head( new $giper_baza_link( '11111111' ) ).items_vary(),\n\t\t\t\tright.Pawn( $giper_baza_list ).Head( new $giper_baza_link( '11111111' ) ).items_vary(),\n\t\t\t\t[ 2 ],\n\t\t\t)\n\t\t\t\n\t\t} ),\n\t\t\n\t\t'Move out before inserted': $mol_wire_async( ( $: $ )=> {\n\t\t\t\n\t\t\tconst base = $mol_wire_sync( $.$giper_baza_land ).make({ $ }) as $giper_baza_land\n\t\t\tbase.Data( $giper_baza_list ).items_vary([ 1, 2, 3, 4 ])\n\t\t\t\n\t\t\tconst left = clone( base )\n\t\t\tleft.Data( $giper_baza_list ).items_vary([ 1, 2, 7, 3, 4 ])\n\t\t\t\n\t\t\tconst right = clone( base )\n\t\t\tright.faces.sync( left.faces )\n\t\t\tright.sand_move( right.Data( $giper_baza_list ).units()[1], new $giper_baza_link( '11111111' ), 0 )\n\t\t\t\n\t\t\tsync( left, right )\n\t\t\t$mol_assert_equal(\n\t\t\t\tleft.Data( $giper_baza_list ).items_vary(),\n\t\t\t\tright.Data( $giper_baza_list ).items_vary(),\n\t\t\t\t[ 1, 7, 3, 4 ],\n\t\t\t)\n\t\t\t$mol_assert_equal(\n\t\t\t\tleft.Pawn( $giper_baza_list ).Head( new $giper_baza_link( '11111111' ) ).items_vary(),\n\t\t\t\tright.Pawn( $giper_baza_list ).Head( new $giper_baza_link( '11111111' ) ).items_vary(),\n\t\t\t\t[ 2 ],\n\t\t\t)\n\t\t\t\n\t\t} ),\n\t\t\n\t\t'Insert before changed': $mol_wire_async( ( $: $ )=> {\n\t\t\t\n\t\t\tconst base = $mol_wire_sync( $.$giper_baza_land ).make({ $ }) as $giper_baza_land\n\t\t\tbase.Data( $giper_baza_list ).items_vary([ 1, 2, 3, 4 ])\n\t\t\t\n\t\t\tconst left = clone( base )\n\t\t\tleft.Data( $giper_baza_list ).items_vary([ 1, 2, 7, 4 ])\n\t\t\t\n\t\t\tconst right = clone( base )\n\t\t\tright.faces.sync( left.faces )\n\t\t\tright.Data( $giper_baza_list ).items_vary([ 1, 2, 13, 3, 4 ])\n\t\t\t\n\t\t\tsync( left, right )\n\t\t\t$mol_assert_equal(\n\t\t\t\tleft.Data( $giper_baza_list ).items_vary(),\n\t\t\t\tright.Data( $giper_baza_list ).items_vary(),\n\t\t\t\t[ 1, 2, 13, 7, 4 ],\n\t\t\t)\n\t\t\t\n\t\t} ),\n\t\t\n\t\t'Change after inserted': $mol_wire_async( ( $: $ )=> {\n\t\t\t\n\t\t\tconst base = $mol_wire_sync( $.$giper_baza_land ).make({ $ }) as $giper_baza_land\n\t\t\tbase.Data( $giper_baza_list ).items_vary([ 1, 2, 3, 4 ])\n\t\t\t\n\t\t\tconst left = clone( base )\n\t\t\tleft.Data( $giper_baza_list ).items_vary([ 1, 2, 13, 3, 4 ])\n\t\t\t\n\t\t\tconst right = clone( base )\n\t\t\tright.faces.sync( left.faces )\n\t\t\tright.Data( $giper_baza_list ).items_vary([ 1, 2, 7, 4 ])\n\t\t\t\n\t\t\tsync( left, right )\n\t\t\t$mol_assert_equal(\n\t\t\t\tleft.Data( $giper_baza_list ).items_vary(),\n\t\t\t\tright.Data( $giper_baza_list ).items_vary(),\n\t\t\t\t[ 1, 2, 7, 13, 4 ],\n\t\t\t)\n\t\t\t\n\t\t} ),\n\t\t\n\t\t'Insert between moved': $mol_wire_async( ( $: $ )=> {\n\t\t\t\n\t\t\tconst base = $mol_wire_sync( $.$giper_baza_land ).make({ $ }) as $giper_baza_land\n\t\t\tbase.Data( $giper_baza_list ).items_vary([ 1, 2, 3, 4, 5, 6 ])\n\t\t\t\n\t\t\tconst left = clone( base )\n\t\t\tleft.Data( $giper_baza_list ).move( 1, 5 )\n\t\t\tleft.Data( $giper_baza_list ).move( 1, 5 )\n\t\t\t\n\t\t\tconst right = clone( base )\n\t\t\tright.faces.sync( left.faces )\n\t\t\tright.Data( $giper_baza_list ).items_vary([ 1, 2, 7, 3, 4, 5, 6 ])\n\t\t\t\n\t\t\tsync( left, right )\n\t\t\t$mol_assert_equal(\n\t\t\t\tleft.Data( $giper_baza_list ).items_vary(),\n\t\t\t\tright.Data( $giper_baza_list ).items_vary(),\n\t\t\t\t[ 1, 4, 5, 2, 7, 3, 6 ],\n\t\t\t)\n\t\t\t\n\t\t} ),\n\t\t\n\t\t'Move near inserted': $mol_wire_async( ( $: $ )=> {\n\t\t\t\n\t\t\tconst base = $mol_wire_sync( $.$giper_baza_land ).make({ $ }) as $giper_baza_land\n\t\t\tbase.Data( $giper_baza_list ).items_vary([ 1, 2, 3, 4, 5, 6 ])\n\t\t\t\n\t\t\tconst left = clone( base )\n\t\t\tleft.Data( $giper_baza_list ).items_vary([ 1, 2, 7, 3, 4, 5, 6 ])\n\t\t\t\n\t\t\tconst right = clone( base )\n\t\t\tright.faces.sync( left.faces )\n\t\t\tright.Data( $giper_baza_list ).move( 1, 5 )\n\t\t\tright.Data( $giper_baza_list ).move( 1, 5 )\n\t\t\t\n\t\t\tsync( left, right )\n\t\t\t$mol_assert_equal(\n\t\t\t\tleft.Data( $giper_baza_list ).items_vary(),\n\t\t\t\tright.Data( $giper_baza_list ).items_vary(),\n\t\t\t\t[ 1, 4, 5, 2, 3, 7, 6 ],\n\t\t\t)\n\t\t\t\n\t\t} ),\n\t\t\n\t\tasync '3 transactions in same second must keep ordering'( $ ) {\n\n\t\t\tconst auth_left = $.$giper_baza_auth.grab()\n\t\t\tconst auth_right = $.$giper_baza_auth.grab()\n\n\t\t\tconst land_left = $.$giper_baza_land.make({ $, auth: ()=> auth_left })\n\t\t\tland_left.give( auth_right.pass(), $giper_baza_rank_post( 'just' ) )\n\n\t\t\tconst land_right = $.$giper_baza_land.make({ $, auth: ()=> auth_right, link: ()=> land_left.link() })\n\n\t\t\tconst list_left = land_left.Data( $giper_baza_list )\n\t\t\tconst list_right = land_right.Data( $giper_baza_list )\n\t\t\t\n\t\t\tlist_left.items_vary([ 'a', 'b', 'c', 'd' ])\n\t\t\t$mol_assert_equal( list_left.items_vary(), [ 'a', 'b', 'c', 'd' ] )\n\t\t\t\n\t\t\tawait $mol_wire_async( land_right ).units_steal( land_left )\n\t\t\t$mol_assert_equal( list_right.items_vary(), [ 'a', 'b', 'c', 'd' ] )\n\n\t\t\tlist_right.splice( [ 'x' ], 0, 0 )\n\t\t\t$mol_assert_equal( list_right.items_vary(), [ 'x', 'a', 'b', 'c', 'd' ] )\n\t\t\t\n\t\t\tawait $mol_wire_async( land_left ).units_steal( land_right )\n\t\t\t$mol_assert_equal( list_left.items_vary(), [ 'x', 'a', 'b', 'c', 'd' ] )\n\n\t\t\tlist_left.items_vary([ 'd', 'x', 'a', 'b', 'c' ])\n\t\t\t$mol_assert_equal( list_left.items_vary(), [ 'd', 'x', 'a', 'b', 'c' ] )\n\n\t\t},\n\t\t\n\t})\n\t\n}\n","namespace $ {\n\n\t/** Reactive convergent list. */\n\texport class $giper_baza_list extends $giper_baza_pawn {\n\t\t\n\t\tstatic tag = $giper_baza_unit_sand_tag[ $giper_baza_unit_sand_tag.vals ] as keyof typeof $giper_baza_unit_sand_tag\n\t\t\n\t\t/** All Vary in the list. */\n\t\t@ $mol_mem\n\t\titems_vary(\n\t\t\tnext?: readonly $giper_baza_vary_type[],\n\t\t\ttag: keyof typeof $giper_baza_unit_sand_tag = 'term',\n\t\t): readonly $giper_baza_vary_type[] {\n\t\t\t\n\t\t\tconst units = this.units()\n\t\t\tif( next === undefined ) return units.map( unit => this.land().sand_decode( unit ) )\n\t\t\t\n\t\t\tthis.splice( next, 0, units.length, tag )\n\t\t\treturn this.items_vary()\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Replace sublist by new one with reconciliation. */\n\t\t@ $mol_action\n\t\tsplice(\n\t\t\tnext: readonly $giper_baza_vary_type[],\n\t\t\tfrom = this.units().length,\n\t\t\tto = from,\n\t\t\ttag: keyof typeof $giper_baza_unit_sand_tag = 'term',\n\t\t) {\n\t\t\tconst land = this.land()\n\t\t\t$mol_reconcile({\n\t\t\t\tprev: this.units(),\n\t\t\t\tfrom,\n\t\t\t\tto,\n\t\t\t\tnext,\n\t\t\t\tequal: ( next, prev )=> $mol_compare_deep( this.land().sand_decode( prev ), next ),\n\t\t\t\tdrop: ( prev, lead )=> this.land().post( lead?.self() ?? $giper_baza_link.hole, prev.head(), prev.self(), null ),\n\t\t\t\tinsert: ( next, lead )=> this.land().post( lead?.self() ?? $giper_baza_link.hole, this.head(), land.self_make(), next, tag ),\n\t\t\t\treplace: ( next, prev, lead )=> this.land().post( lead?.self() ?? $giper_baza_link.hole, prev.head(), prev.self(), next, prev.tag() ),\n\t\t\t})\n\t\t}\n\t\t\n\t\t/** Unit by Vary. */\n\t\tfind( vary: $giper_baza_vary_type ) {\n\t\t\tfor( const unit of this.units() ) {\n\t\t\t\tif( $mol_compare_deep( this.land().sand_decode( unit ), vary ) ) return unit\n\t\t\t}\n\t\t\treturn null\n\t\t}\n\t\t\n\t\t/** Existence of Vary in the list. */\n\t\thas(\n\t\t\tvary: $giper_baza_vary_type,\n\t\t\tnext?: boolean,\n\t\t\ttag: keyof typeof $giper_baza_unit_sand_tag = 'term',\n\t\t) {\n\t\t\tif( next === undefined ) return Boolean( this.find( vary ) )\n\t\t\tif( next ) this.add( vary, tag )\n\t\t\telse this.cut( vary )\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t/** Add Vary a the beginning if it doesn't exists. */\n\t\tadd(\n\t\t\tvary: $giper_baza_vary_type,\n\t\t\ttag: keyof typeof $giper_baza_unit_sand_tag = 'term',\n\t\t) {\n\t\t\tif( this.has( vary ) ) return\n\t\t\tthis.land().post( $giper_baza_link.hole, this.head(), null, vary, tag )\n\t\t}\n\t\t\n\t\t/** Removes all Vary presence. */\n\t\tcut( vary: $giper_baza_vary_type ) {\n\t\t\t\n\t\t\tconst units = [ ... this.units() ]\n\t\t\tfor( let i = 0; i < units.length; ++ i ) {\n\t\t\t\t\n\t\t\t\tif( ! $mol_compare_deep( this.land().sand_decode( units[i] ), vary ) ) continue\n\t\t\t\t\n\t\t\t\tthis.land().post(\n\t\t\t\t\tunits[i-1]?.self() ?? $giper_baza_link.hole,\n\t\t\t\t\tunits[i].head(),\n\t\t\t\t\tunits[i].self(),\n\t\t\t\t\tnull,\n\t\t\t\t)\n\t\t\t\t\n\t\t\t\tunits.splice( i, 1 )\n\t\t\t\t-- i\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Moves item from one Seat to another. */\n\t\tmove( from: number, to: number ) {\n\t\t\tthis.land().sand_move( this.units()[ from ], this.head(), to )\n\t\t}\n\t\t\n\t\t/** Remove item by Seat. */\n\t\twipe( seat: number ) {\n\t\t\tthis.land().sand_wipe( this.units()[ seat ] )\n\t\t}\n\t\t\n\t\t/** Add vary at the end and use maked Self as Pawn Head. */\n\t\tpawn_make< Pawn extends typeof $giper_baza_pawn >(\n\t\t\tPawn: Pawn,\n\t\t\tvary: $giper_baza_vary_type,\n\t\t\ttag: keyof typeof $giper_baza_unit_sand_tag = 'term',\n\t\t) {\n\t\t\tthis.splice( [ vary ], undefined, undefined, tag )\n\t\t\treturn this.land().Pawn( Pawn ).Head( this.units().at(-1)!.self() )\n\t\t}\n\t\t\n\t\t;[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_span( {} ,\n\t\t\t\t$mol_dev_format_native( this ) ,\n\t\t\t\t' ',\n\t\t\t\tthis.head(),\n\t\t\t\t' ',\n\t\t\t\t$mol_dev_format_auto( this.items_vary() ),\n\t\t\t)\n\t\t}\n\t\t\n\t\t/** Mergeable list of atomic vary type factory */\n\t\t@ $mol_memo_key.method\n\t\tstatic of< Init extends new( ... args: any[] )=> any >( init: Init ) {\n\t\n\t\t\tconst Item = $mol_schema_instance( init )\n\t\t\ttype Item = typeof Item\n\t\t\t\n\t\t\tclass $giper_baza_list_of extends $giper_baza_list {\n\t\n\t\t\t\tstatic Item = Item\n\t\n\t\t\t\t@ $mol_mem\n\t\t\t\titems( next?: readonly Item['default'][] ): readonly Item['default'][] {\n\t\t\t\t\tif( next === undefined ) return this.items_vary().map( item => Item.cast( item ) )\n\t\t\t\t\tfor( const item of next ) Item.guard( item )\n\t\t\t\t\tthis.items_vary( next )\n\t\t\t\t\treturn this.items()\n\t\t\t\t}\n\t\n\t\t\t\tstatic toString() {\n\t\t\t\t\treturn this === $giper_baza_list_of ? '$giper_baza_list.of<' + Item + '>' : super.toString()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn $giper_baza_list_of\n\t\t}\n\n\t}\n\n\t\n\t/** Mergeable list of atomic buffers */\n\texport class $giper_baza_list_bin extends $giper_baza_list.of( Uint8Array ) {}\n\t\n\t/** Mergeable list of atomic booleans */\n\texport class $giper_baza_list_bool extends $giper_baza_list.of( $mol_schema_boolean ) {}\n\t\n\t/** Mergeable list of atomic big integers */\n\texport class $giper_baza_list_int extends $giper_baza_list.of( $mol_schema_bigint ) {}\n\t\n\t/** Mergeable list of atomic floats */\n\texport class $giper_baza_list_real extends $giper_baza_list.of( $mol_schema_float ) {}\n\t\n\t/** Mergeable list of atomic strings */\n\texport class $giper_baza_list_str extends $giper_baza_list.of( $mol_schema_string ) {}\n\t\n\t/** Mergeable list of atomic time moments */\n\texport class $giper_baza_list_time extends $giper_baza_list.of( $mol_time_moment ) {}\n\t\n\t/** Mergeable list of atomic time durations */\n\texport class $giper_baza_list_dur extends $giper_baza_list.of( $mol_time_duration ) {}\n\t\n\t/** Mergeable list of atomic time intervals */\n\texport class $giper_baza_list_range extends $giper_baza_list.of( $mol_time_interval ) {}\n\t\n\t/** Mergeable list of atomic dictionaries */\n\texport class $giper_baza_list_dict extends $giper_baza_list.of( $mol_schema_dict([ $mol_schema_string, $mol_schema_any ]) ) {}\n\t\n\t/** Mergeable list of atomic arrays */\n\texport class $giper_baza_list_list extends $giper_baza_list.of( $mol_schema_list( $mol_schema_any ) ) {}\n\t\n\t/** Mergeable list of atomic DOM elements */\n\texport class $giper_baza_list_dom extends $giper_baza_list.of( $mol_dom.Element ?? Object ) {}\n\t\n\t/** Mergeable list of atomic Trees */\n\texport class $giper_baza_list_tree extends $giper_baza_list.of( $mol_tree2 ) {}\n\t\n\t\n\t/** Mergeable list of atomic Links */\n\texport class $giper_baza_list_link extends $giper_baza_list.of( $giper_baza_link ) {\n\t\n\t\t/** Mergeable List of atomic Links to some Pawn type */\n\t\tstatic to< const Value extends any >( Value: Value ) {\n\t\t\t\n\t\t\tclass $giper_baza_list_link_to extends $giper_baza_list_link {\n\t\t\t\t\n\t\t\t\tValue = $mol_memo.func( Value as any ) as Value\n\t\t\t\t\n\t\t\t\tstatic toString() {\n\t\t\t\t\treturn this === $giper_baza_list_link_to ? '$giper_baza_list_link_to[ []=> ' + ( Value as any )() + ' ]' : super.toString()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t/** List of linked Pawns */\n\t\t\t\t@ $mol_mem\n\t\t\t\tremote_list( next?: readonly $mol_type_result< $mol_type_result< this['Value'] > >[] ) {\n\t\t\t\t\tconst glob = this.$.$giper_baza_glob\n\t\t\t\t\tconst Pawn = ( Value as any )()\n\t\t\t\t\treturn this.items( next?.map( item => ( item as $giper_baza_pawn ).link() ) )\n\t\t\t\t\t\t.map( link => glob.Pawn( link, Pawn ) ) as readonly any[] as readonly $mol_type_result< $mol_type_result< this['Value'] > >[]\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_action\n\t\t\t\tremote_add( item: $mol_type_result< $mol_type_result< this['Value'] > > & $giper_baza_pawn ) {\n\t\t\t\t\tthis.add( item.link() )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t/** Make new Pawn and place it at end. */\n\t\t\t\t@ $mol_action\n\t\t\t\tmake( config: null | number | $giper_baza_rank_preset | $giper_baza_land ): $mol_type_result< $mol_type_result< this['Value'] > > {\n\t\t\t\t\t\n\t\t\t\t\tconst Pawn = ( Value as any )() as typeof $giper_baza_pawn\n\t\t\t\t\tlet pawn: $giper_baza_pawn\n\t\t\t\t\t\n\t\t\t\t\tif( config === null || typeof config === 'number' ) {\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst self = this.land().self_make( config || undefined )\n\t\t\t\t\t\tpawn = this.land().Pawn( Pawn ).Head( self )\n\t\t\t\t\t\tthis.splice([ pawn.link() ])\n\t\t\t\t\t\t\n\t\t\t\t\t} else if( config instanceof $giper_baza_land ) {\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst land = config.area_make()\n\t\t\t\t\t\tthis.splice([ land.link() ])\n\t\t\t\t\t\tpawn = land.Pawn( Pawn ).Data()\n\t\t\t\t\t\t\n\t\t\t\t\t} else if( config ) {\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst land = this.$.$giper_baza_glob.land_grab( config )\n\t\t\t\t\t\tthis.splice([ land.link() ])\n\t\t\t\t\t\tpawn = land.Pawn( Pawn ).Data()\n\t\t\t\t\t\t\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn $mol_fail( new Error( 'Wrong config' ) )\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif( Pawn.meta ) pawn.meta( Pawn.meta )\n\t\t\t\t\treturn pawn as $mol_type_result< $mol_type_result< this['Value'] > >\n\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn $giper_baza_list_link_to\n\t\t}\n\t\t\n\t}\n\t\n\t/** @deprecated Use $giper_baza_list_link.to( Target ) */\n\texport function $giper_baza_list_link_to< const Value extends any >( Value: Value ) {\n\t\treturn $giper_baza_list_link.to( Value )\n\t}\n\t\n}\n","namespace $ {\n\t/** Mergeable dictionary Pawn with any keys mapped to any embedded Pawn types */\n\texport class $giper_baza_dict extends $giper_baza_list {\n\t\t\n\t\tstatic tag = $giper_baza_unit_sand_tag[ $giper_baza_unit_sand_tag.keys ] as keyof typeof $giper_baza_unit_sand_tag\n\t\t\n\t\t/** List of Vary keys. */\n\t\t@ $mol_mem\n\t\tkeys(): readonly $giper_baza_vary_type[] {\n\t\t\treturn this.items_vary()\n\t\t}\n\t\t\n\t\t/** Inner Pawn by key. */\n\t\tdive< Pawn extends typeof $giper_baza_pawn >(\n\t\t\tkey: $giper_baza_vary_type,\n\t\t\tPawn: Pawn,\n\t\t\tauto?: any,\n\t\t) {\n\t\t\tif( this.can_change() && auto !== undefined ) this.has( key, true, Pawn.tag )\n\t\t\tconst unit = this.find( key )\n\t\t\treturn unit ? this.land().Pawn( Pawn ).Head( unit.self() ) : null\n\t\t}\n\t\t\n\t\tstatic schema = {} as Record< string, typeof $giper_baza_pawn >\n\t\t\n\t\t/** Mergeable dictionary Pawn with defined keys mapped to different embedded Pawn types */\n\t\tstatic with<\n\t\t\tThis extends typeof $giper_baza_dict,\n\t\t\tconst Schema extends Record< string, { tag: keyof typeof $giper_baza_unit_sand_tag, new(): {} } >\n\t\t>( this: This, schema: Schema, path = '' ) {\n\t\t\t\n\t\t\tconst prefix = path ? path + ':' : ''\n\t\t\t\n\t\t\tconst $giper_baza_dict_with = class $giper_baza_dict_with extends ( this as any ) {\n\t\t\t\t// static get schema() { return { ... this.schema, ... schema } }\n\t\t\t\t\n\t\t\t\tstatic path = path\n\t\t\t\t\n\t\t\t\tstatic toString() {\n\t\t\t\t\t\n\t\t\t\t\tif( this !== $giper_baza_dict_with ) return super.toString()\n\t\t\t\t\t\n\t\t\t\t\tconst params = Object.entries( schema ).map( ([ name, type ])=> `${name}: ${type}` )\n\t\t\t\t\treturn '$giper_baza_dict.with<{' + params.join( ', ' ) + '}>'\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} as Omit< This, 'prototype' > & {\n\t\t\t\tpath: string\n\t\t\t\tnew( ...args: any[] ): $mol_type_override< InstanceType< This >, {\n\t\t\t\t\treadonly [ Key in keyof Schema ]: ( auto?: any )=> InstanceType< Schema[ Key ] > | null\n\t\t\t\t} >\n\t\t\t}\n\n\t\t\tfor( const Field in schema ) {\n\t\t\t\t\n\t\t\t\tObject.defineProperty( $giper_baza_dict_with.prototype, Field, {\n\t\t\t\t\tvalue: function( this: InstanceType< This >, auto?: any ) {\n\t\t\t\t\t\treturn this.dive( prefix + Field, schema[ Field ] as any, auto )\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t\t\t\n\t\t\t\t// $mol_wire_field( Entity.prototype, Field as any )\n\t\t\t}\n\t\t\t\n\t\t\treturn Object.assign( $giper_baza_dict_with, { schema: { ... this.schema, ... schema } } )\n\t\t\t\n\t\t}\n\t\t\n\t\t;[ $mol_dev_format_head ]() {\n\t\t\t\n\t\t\tconst keys = $mol_wire_probe( ()=> this.keys() )\n\t\t\tconst pawns = $mol_wire_probe( ()=> this.pawns(null) ) ?? []\n\t\t\t\n\t\t\treturn $mol_dev_format_span( {} ,\n\t\t\t\t$mol_dev_format_native( this ) ,\n\t\t\t\t' ',\n\t\t\t\tthis.head(),\n\t\t\t\t' ',\n\t\t\t\t$mol_dev_format_auto( keys?.map( ( key, index )=> new Pair( key, pawns[ index ] ) ) ),\n\t\t\t)\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n\tclass Pair {\n\t\tconstructor( readonly key: any, readonly val: any ) {\n\t\t}\n\t\t;[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_tr( {} ,\n\t\t\t\t$mol_dev_format_td( {}, $mol_dev_format_auto(this.key) ),\n\t\t\t\t$mol_dev_format_td( {},': '),\n\t\t\t\t$mol_dev_format_td( {}, $mol_dev_format_auto(this.val) ),\n\t\t\t)\n\t\t}\n\t}\n\t\n\t/** Mergeable dictionary with any keys mapped to any embedded Pawn types */\n\texport function $giper_baza_dict_to<\n\t\tValue extends { tag: keyof typeof $giper_baza_unit_sand_tag, new(): {} }\n\t>( Value: Value ) {\n\t\t\n\t\treturn class $giper_baza_dict_to extends $giper_baza_dict {\n\t\t\t\n\t\t\tValue = Value\n\t\t\t\n\t\t\tkey( key: $giper_baza_vary_type, auto?: any ) {\n\t\t\t\treturn this.dive( key, this.Value as any as typeof $giper_baza_pawn, auto ) as InstanceType< Value >\n\t\t\t}\n\t\t\t\n\t\t\tstatic toString() {\n\t\t\t\treturn this === $giper_baza_dict_to ? '$giper_baza_dict_to<' + Value + '>' : super.toString()\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $.$$ {\n\t\n\t$mol_test({\n\t\t\n\t\tasync 'Dictionary invariants'( $ ) {\n\t\t\t\n\t\t\tconst land = $giper_baza_land.make({ $ })\n\t\t\tconst dict = land.Pawn( $giper_baza_dict ).Data()\n\t\t\t$mol_assert_equal( dict.keys(), [] )\n\t\t\t\n\t\t\tdict.dive( 123, $giper_baza_atom, null )\n\t\t\tdict.dive( 'xxx', $giper_baza_atom, null )\n\t\t\t$mol_assert_equal( dict.keys(), [ 'xxx', 123 ] )\n\t\t\t$mol_assert_equal( dict.has( 123 ), true )\n\t\t\t$mol_assert_equal( dict.has( 'xxx' ), true )\n\t\t\t$mol_assert_equal( dict.has( 'yyy' ), false )\n\t\t\t$mol_assert_equal( dict.dive( 123, $giper_baza_atom )!.vary(), null )\n\t\t\t$mol_assert_equal( dict.dive( 'xxx', $giper_baza_atom )!.vary(), null )\n\t\t\t\n\t\t\tdict.dive( 123, $giper_baza_atom )!.vary( 777 )\n\t\t\t$mol_assert_equal( dict.dive( 123, $giper_baza_atom )!.vary(), 777 )\n\n\t\t\tdict.dive( 'xxx', $giper_baza_list )!.items_vary([ 'foo', 'bar' ])\n\t\t\t$mol_assert_equal( dict.dive( 'xxx', $giper_baza_list )!.items_vary(), [ 'foo', 'bar' ] )\n\t\t\t\n\t\t\tdict.has( 123, false )\n\t\t\t$mol_assert_equal( dict.keys(), [ 'xxx' ] )\n\n\t\t},\n\t\t\n\t\tasync 'Dictionary merge'( $ ) {\n\t\t\t\n\t\t\tconst land1 = $giper_baza_land.make({ $ })\n\t\t\tconst land2 = $giper_baza_land.make({ $ })\n\t\t\t\n\t\t\tconst dict1 = land1.Pawn( $giper_baza_dict ).Data()\n\t\t\tconst dict2 = land2.Pawn( $giper_baza_dict ).Data()\n\n\t\t\tdict1.dive( 123, $giper_baza_atom, null )!.vary( 666 )\n\t\t\tland2.tick()\n\t\t\tdict2.dive( 123, $giper_baza_atom, null )!.vary( 777 )\n\t\t\tawait $mol_wire_async( land1 ).units_steal( land2 )\n\t\t\t$mol_assert_equal( dict1.dive( 123, $giper_baza_atom )!.vary(), 777 )\n\t\t\t\n\t\t\tdict1.dive( 'xxx', $giper_baza_list, null )!.items_vary([ 'foo' ])\n\t\t\tland2.tick()\n\t\t\tdict2.dive( 'xxx', $giper_baza_list, null )!.items_vary([ 'bar' ])\n\t\t\tawait $mol_wire_async( land1 ).units_steal( land2 )\n\t\t\t$mol_assert_equal( dict1.dive( 'xxx', $giper_baza_list )!.items_vary(), [ 'bar', 'foo' ] )\n\n\t\t},\n\t\t\n\t\tasync \"Narrowed Dictionary with linked Dictionaries and others\"( $ ) {\n\t\t\t\n\t\t\tclass User extends $giper_baza_dict.with({\n\t\t\t\tTitle: $giper_baza_atom_text,\n\t\t\t\tAccount: $giper_baza_atom_link.to( ()=> Account ),\n\t\t\t\tArticles: $giper_baza_list_link.to( ()=> Article ),\n\t\t\t}) {}\n\t\t\t\n\t\t\tclass Account extends $giper_baza_dict.with({\n\t\t\t\tTitle: $giper_baza_atom_text,\n\t\t\t\tUser: $giper_baza_atom_link.to( ()=> User ),\n\t\t\t}) {}\n\t\t\t\n\t\t\tclass Article extends $giper_baza_dict.with({\n\t\t\t\tTitle: $giper_baza_dict_to( $giper_baza_atom_text ),\n\t\t\t\tAuthor: $giper_baza_atom_link.to( ()=> User ),\n\t\t\t}) {}\n\t\t\t\n\t\t\tconst land = $.$giper_baza_glob.home().land()\n\t\t\t\n\t\t\tconst user = land.Pawn( User ).Head( new $giper_baza_link( '11111111' ) )\n\t\t\t$mol_assert_equal( user.Title()?.val() ?? null, null )\n\t\t\t$mol_assert_equal( user.Account()?.remote() ?? null, null )\n\t\t\t$mol_assert_equal( user.Articles()?.remote_list() ?? [], [] )\n\t\t\t\n\t\t\tuser.Title(null)!.val( 'Jin' )\n\t\t\t$mol_assert_equal( user.Title()!.val() ?? '', 'Jin' )\n\t\t\t\n\t\t\tconst account = ( await $mol_wire_async( user.Account(null)! ).ensure([[ null, $giper_baza_rank_read ]]) )!\n\t\t\t$mol_assert_equal( user.Account()?.remote() ?? null, account )\n\t\t\t$mol_assert_equal( account.User()?.remote() ?? null, null )\n\t\t\t\n\t\t\taccount.User(null)!.remote( user )\n\t\t\t$mol_assert_equal( account.User()?.remote(), user )\n\t\t\t\n\t\t\tconst articles = [\n\t\t\t\tawait $mol_wire_async( user.Articles(null)! ).make([[ null, $giper_baza_rank_read ]]),\n\t\t\t\tawait $mol_wire_async( user.Articles(null)! ).make([[ null, $giper_baza_rank_read ]]),\n\t\t\t]\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tuser.Articles()?.remote_list().map( n => n[Symbol.toStringTag] ),\n\t\t\t\tarticles.map( n => n[Symbol.toStringTag] ),\n\t\t\t)\n\t\t\t\n\t\t\tarticles[0].Title(null)!.key( 'en', 'auto' )!.val( 'Hello!' )\n\t\t\t$mol_assert_equal(\n\t\t\t\tarticles[0].Title()?.key( 'en' )!.val(),\n\t\t\t\t'Hello!',\n\t\t\t)\n\t\t\t$mol_assert_equal( articles[1].Title()?.key( 'ru' )?.val() ?? null, null )\n\t\t\t$mol_assert_equal(\n\t\t\t\tarticles[1].Title()?.key( 'ru' )?.val() ?? null,\n\t\t\t\tnull,\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_unique( user.land(), account.land(), ... articles.map( article => article.land() ) )\n\t\t\t\n\t\t},\n\t\t\n\t})\n\t\n}\n","namespace $ {\n\n\t/**\n\t * 48-bit streamable string hash function\n\t * Based on cyrb53: https://stackoverflow.com/a/52171480\n\t */\n\texport function $mol_hash_string( str: string, seed = 0 ) {\n\t\tlet nums = new Array( str.length )\n\t\tfor( let i = 0; i < str.length; ++i ) nums[i] = str.charCodeAt(i)\n\t\treturn $mol_hash_numbers( nums )\n\t}\n\n}\n","namespace $ {\n\texport let $mol_schema_enum = $mol_memo_key.func( function $mol_schema_enum<\n\t\tconst Options extends readonly unknown[]\n\t>( Options: Options ) {\n\t\t\n\t\treturn class $mol_schema_enum_ extends $mol_schema_any {\n\t\t\t\n\t\t\tstatic Options = Options\n\t\t\t\n\t\t\tstatic toString(): string {\n\t\t\t\tif( this !== $mol_schema_enum_ ) return super.toString()\n\t\t\t\treturn '$mol_schema_enum<' + $mol_key(Options) + '>'\n\t\t\t}\t\n\t\t\t\n\t\t\tstatic guard< This extends typeof $mol_schema_any, Value >( this: This, value: Value ): Value & This['default'] {\n\t\t\t\tif( Options.some( Option => Object.is( Option, value ) ) ) return value\n\t\t\t\treturn $mol_fail( new TypeError( 'Wrong option', { cause: { value, schema: this } } ) )\n\t\t\t}\n\t\t\t\n\t\t\tstatic cast< This extends typeof $mol_schema_any >( this: This, value: unknown ): This['default'] {\n\t\t\t\tif( this.check( value ) ) return value\n\t\t\t\treturn Options[0] as typeof this.default\n\t\t\t}\n\t\t\t\n\t\t\tstatic default = Options[0] as Options[number]\n\t\t\t\n\t\t}\n\t\t\n\t} )\n}\n","namespace $.$$ {\n\t$mol_test({\n\t\t\n\t\t\"Cache of enum schema\"( $ ) {\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_schema_enum([ 'foo' ]), $mol_schema_enum([ 'foo' ]) )\n\t\t\t$mol_assert_unique( $mol_schema_enum([ 'foo' ]), $mol_schema_enum([ 'bar' ]) )\n\t\t\t\n\t\t},\n\t\t\n\t\t\"Enum options\"( $ ) {\n\t\t\t\n\t\t\tconst Config = $mol_schema_enum([ 123, 'foo' ])\n\t\t\t\n\t\t\t$mol_assert_equal( '$mol_schema_enum<[123,\"foo\"]>', Config + '', $mol_key( Config ) )\n\t\t\t\n\t\t\t$mol_assert_equal( true, Config.check( 123 ) )\n\t\t\t$mol_assert_equal( true, Config.check( 'foo' ) )\n\t\t\t\n\t\t\t$mol_assert_equal( false, Config.check( true ) )\n\t\t\t$mol_assert_equal( false, Config.check( 321 ) )\n\t\t\t$mol_assert_equal( false, Config.check( 'bar' ) )\n\t\t\t\n\t\t\t$mol_assert_equal( Config.cast( 123 ), 123 )\n\t\t\t$mol_assert_equal( Config.cast( 'foo' ), 'foo' )\n\t\t\t$mol_assert_equal( Config.cast( 'bar' ), 123 )\n\t\t\t\n\t\t\t$mol_assert_equal( 123, Config.guard( 123 ) )\n\t\t\t$mol_assert_fail( ()=> Config.guard( 321 ), 'Wrong option' )\n\t\t\t\n\t\t},\n\t\t\n\t})\n}\n","\nnamespace $ {\n\n\t/** Atomic dynamic register */\n\texport class $giper_baza_atom extends $giper_baza_pawn {\n\n\t\tstatic tag = $giper_baza_unit_sand_tag[ $giper_baza_unit_sand_tag.solo ] as keyof typeof $giper_baza_unit_sand_tag;\n\t\t\n\t\tpick_unit( peer: $giper_baza_link | null ) {\n\t\t\treturn this.units_of( peer ).at(0)\n\t\t}\n\t\t\n\t\tvary( next?: $giper_baza_vary_type ): $giper_baza_vary_type {\n\t\t\treturn this.vary_of( $giper_baza_link.hole, next )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tvary_of( peer: $giper_baza_link | null, next?: $giper_baza_vary_type ): $giper_baza_vary_type {\n\t\t\t\n\t\t\tlet unit_prev = this.pick_unit( peer )\n\t\t\tlet prev = unit_prev ? this.land().sand_decode( unit_prev ) : null\n\t\t\t\n\t\t\tif( next === undefined ) return prev\n\t\t\tif( $mol_compare_deep( prev , next ) ) return next\n\t\t\t\n\t\t\tthis.land().post(\n\t\t\t\t$giper_baza_link.hole, \n\t\t\t\tunit_prev?.head() ?? this.head(),\n\t\t\t\tunit_prev?.self() ?? null,\n\t\t\t\tnext,\n\t\t\t)\n\t\t\t\n\t\t\treturn this.vary_of( peer )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tselection( lord: $giper_baza_link, next?: readonly[ begin: number, end: number ] ) {\n\t\t\t\n\t\t\tconst link = this.link().head().str\n\t\t\tconst user = this.$.$giper_baza_glob.Land( lord ).Data( $giper_baza_flex_user )\n\t\t\t\n\t\t\tif( next ) {\n\t\t\t\t\n\t\t\t\tuser.caret([ [ link, next[0], 0 ], [ link, next[1], 0 ] ])\n\t\t\t\treturn next\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tthis.vary() // track text to recalc selection on its change\n\t\t\t\t\n\t\t\t\tconst selection = user.caret()\n\t\t\t\tif( !selection ) return [ 0, 0 ]\n\t\t\t\t\n\t\t\t\tif( selection[0][0] !== link ) return [ 0, 0 ]\n\t\t\t\tif( selection[1][0] !== link ) return [ 0, 0 ]\n\t\t\t\t\n\t\t\t\treturn [ selection[0][1], selection[0][1] ]\n\t\t\t}\n\n\t\t}\n\t\t\n\t\t;[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_span( {} ,\n\t\t\t\t$mol_dev_format_native( this ) ,\n\t\t\t\t' ',\n\t\t\t\tthis.head(),\n\t\t\t\t' ',\n\t\t\t\t$mol_dev_format_auto( this.vary() ),\n\t\t\t)\n\t\t}\n\t\t\n\t\t/** Atom which typed by Schema/Class. */\n\t\t@ $mol_memo_key.method\n\t\tstatic of< Init extends new( ... args: any[] )=> any >( init: Init ) {\n\t\t\t\n\t\t\tconst Schema = $mol_schema_maybe( $mol_schema_instance( init ) )\n\t\t\ttype Schema = typeof Schema\n\t\t\t\n\t\t\tclass $giper_baza_atom_of extends $giper_baza_atom {\n\n\t\t\t\tstatic Schema = Schema;\n\n\t\t\t\t/** Get/Set value of Pawn field */\n\t\t\t\tval( next?: Schema['default'] ): Schema['default'] | null {\n\t\t\t\t\treturn this.val_of( $giper_baza_link.hole, next )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_mem_key\n\t\t\t\tval_of( peer: $giper_baza_link | null, next?: Schema['default'] ): Schema['default'] | null {\n\t\t\t\t\t\n\t\t\t\t\tif( next !== undefined ) Schema.guard( next )\n\t\t\t\t\t\n\t\t\t\t\tconst res = this.vary_of( peer, next as any )\n\t\t\t\t\treturn next === undefined ? Schema.cast( res ) : this.val_of( peer )\n\t\t\t\t\t\n\t\t\t\t}\n\n\t\t\t\tstatic toString() {\n\t\t\t\t\treturn this === $giper_baza_atom_of ? '$giper_baza_atom.of<' + Schema + '>' : super.toString()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\n\t\t\treturn $giper_baza_atom_of\n\t\t}\n\t\t\n\t}\n\t\n\t/** @deprecated Use $giper_baza_atom */\n\texport let $giper_baza_atom_vary = $giper_baza_atom\n\t\n\t\n\t/** Atomic buffer */\n\texport class $giper_baza_atom_blob extends $giper_baza_atom.of( Uint8Array ) {}\n\t\n\t/** Atomic boolean */\n\texport class $giper_baza_atom_bool extends $giper_baza_atom.of( $mol_schema_boolean ) {}\n\t\n\t/** Atomic big integer */\n\texport class $giper_baza_atom_bint extends $giper_baza_atom.of( $mol_schema_bigint ) {}\n\t\n\t/** Atomic float number */\n\texport class $giper_baza_atom_real extends $giper_baza_atom.of( $mol_schema_float ) {}\n\t\n\t/** Atomic string */\n\texport class $giper_baza_atom_text extends $giper_baza_atom.of( $mol_schema_string ) {}\n\t\n\t/** Atomic time moment */\n\texport class $giper_baza_atom_time extends $giper_baza_atom.of( $mol_time_moment ) {}\n\t\n\t/** Atomic time duration */\n\texport class $giper_baza_atom_dura extends $giper_baza_atom.of( $mol_time_duration ) {}\n\t\n\t/** Atomic time interval */\n\texport class $giper_baza_atom_span extends $giper_baza_atom.of( $mol_time_interval ) {}\n\t\n\t/** Atomic dictionary */\n\texport class $giper_baza_atom_dict extends $giper_baza_atom.of( $mol_schema_dict([ $mol_schema_string, $mol_schema_any ]) ) {}\n\t\n\t/** Atomic array */\n\texport class $giper_baza_atom_list extends $giper_baza_atom.of( $mol_schema_list( $mol_schema_any ) ) {}\n\t\n\t/** Atomic DOM element */\n\texport class $giper_baza_atom_elem extends $giper_baza_atom.of( $mol_dom.Element ?? Object ) {}\n\t\n\t/** Atomic Tree */\n\texport class $giper_baza_atom_tree extends $giper_baza_atom.of( $mol_tree2 ) {}\n\t\n\t\n\t/** Atomic Link */\n\texport class $giper_baza_atom_link extends $giper_baza_atom.of( $giper_baza_link ) {\n\t\t\n\t\t/** Atomic link to some Pawn type register */\n\t\t@ $mol_memo_key.method\n\t\tstatic to< const Value extends any >( Value: Value ) {\n\n\t\t\tclass $giper_baza_atom_link_to extends $giper_baza_atom_link {\n\n\t\t\t\tValue = $mol_memo.func( Value as any ) as Value;\n\n\t\t\t\tstatic toString() {\n\t\t\t\t\treturn this === $giper_baza_atom_link_to ? '$giper_baza_atom_link.to[ []=> ' + ( Value as any )() + ' ]' : super.toString()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t/** Target Pawn */\n\t\t\t\tremote(\n\t\t\t\t\tnext?: null | $mol_type_result< $mol_type_result< this['Value'] > >\n\t\t\t\t): null | $mol_type_result< $mol_type_result< this['Value'] > > {\n\t\t\t\t\treturn this.remote_of( $giper_baza_link.hole, next )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_mem_key\n\t\t\t\tremote_of(\n\t\t\t\t\tpeer: $giper_baza_link | null,\n\t\t\t\t\tnext?: null | $mol_type_result< $mol_type_result< this['Value'] > >\n\t\t\t\t): null | $mol_type_result< $mol_type_result< this['Value'] > > {\n\t\t\t\t\t\n\t\t\t\t\tconst link = this.val_of( peer, ( next as $giper_baza_pawn )?.link() ?? next )\n\t\t\t\t\tif( !link ) return null\n\t\t\t\t\t\n\t\t\t\t\treturn this.$.$giper_baza_glob.Pawn( link, ( Value as any )() )\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t/** Target Pawn. Creates if not exists. */\n\t\t\t\tensure( config?: null | $giper_baza_rank_preset | $giper_baza_land ) {\n\t\t\t\t\treturn this.ensure_of( $giper_baza_link.hole, config )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tensure_of( peer: $giper_baza_link | null, config?: null | $giper_baza_rank_preset | $giper_baza_land ) {\n\t\t\t\t\t\n\t\t\t\t\tif( !this.val_of( peer ) ) {\n\t\t\t\t\t\tif( config === null ) this.ensure_here( peer )\n\t\t\t\t\t\telse if( config instanceof $giper_baza_land ) this.ensure_area( peer, config )\n\t\t\t\t\t\telse if( config ) this.ensure_lord( peer, config )\n\t\t\t\t\t\telse return null\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\treturn this.remote_of( peer )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_action\n\t\t\t\tensure_here( peer: $giper_baza_link | null ) {\n\t\t\t\t\tconst Pawn = ( Value as any )() as typeof $giper_baza_pawn\n\t\t\t\t\tconst idea = $mol_hash_string( this.link().str )\n\t\t\t\t\tconst head = this.land().self_make( idea )\n\t\t\t\t\tconst pawn = this.land().Pawn( Pawn ).Head( head )\n\t\t\t\t\tif( Pawn.meta ) pawn.meta( Pawn.meta )\n\t\t\t\t\tthis.remote_of( peer, pawn as any )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_action\n\t\t\t\tensure_area( peer: $giper_baza_link | null, land: $giper_baza_land ) {\n\t\t\t\t\tconst Pawn = ( Value as any )() as typeof $giper_baza_pawn\n\t\t\t\t\tconst idea = $mol_hash_string( this.link().str )\n\t\t\t\t\tconst area = land.area_make( idea )\n\t\t\t\t\tconst pawn = area.Data( Pawn )\n\t\t\t\t\tif( Pawn.meta ) pawn.meta( Pawn.meta )\n\t\t\t\t\tthis.val_of( peer, pawn.link() )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_action\n\t\t\t\tensure_lord( peer: $giper_baza_link | null, preset: $giper_baza_rank_preset ) {\n\t\t\t\t\tconst Pawn = ( Value as any )() as typeof $giper_baza_pawn\n\t\t\t\t\tconst land = this.$.$giper_baza_glob.land_grab( preset )\n\t\t\t\t\tconst pawn = land.Data( Pawn )\n\t\t\t\t\tif( Pawn.meta ) pawn.meta( Pawn.meta )\n\t\t\t\t\tthis.val_of( peer, pawn.link() )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t/** @deprecated Use ensure( preset ) */\n\t\t\t\tremote_ensure( preset?: $giper_baza_rank_preset ) {\n\t\t\t\t\treturn this.ensure( preset )\n\t\t\t\t}\n\n\t\t\t\t/** @deprecated Use ensure( null ) */\n\t\t\t\tlocal_ensure() {\n\t\t\t\t\treturn this.ensure( null )\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn $giper_baza_atom_link_to\n\t\t}\n\t\t\n\t}\n\t\n\t/** @deprecated Use $giper_baza_atom_link.to( Target ) */\n\texport function $giper_baza_atom_link_to< const Value extends any >( Value: Value ) {\n\t\treturn $giper_baza_atom_link.to( Value )\n\t}\n\t\n}\n","namespace $.$$ {\n\t\n\t$mol_test({\n\t\t\n\t\t\"Empty representation\"( $ ) {\n\t\t\t\n\t\t\tconst land = $giper_baza_land.make({ $ })\n\t\t\tconst reg = land.Pawn( $giper_baza_atom_time ).Data()\n\t\t\t\n\t\t\t$mol_assert_equal( reg.val(), null )\n\t\t\t\n\t\t\treg.vary( null )\n\t\t\t$mol_assert_equal( reg.val(), null )\n\t\t\t\n\t\t},\n\t\t\n\t\t\"Validation on set, cast on get\"( $ ) {\n\t\t\t\n\t\t\tconst land = $.$giper_baza_glob.home().land()\n\t\t\t\n\t\t\tconst head = new $giper_baza_link( '22222222' )\n\t\t\tconst str = land.Pawn( $giper_baza_atom.of( $mol_schema_maybe( $mol_schema_string ) ) ).Head( head )\n\t\t\tconst mail = land.Pawn( $giper_baza_atom.of( $mol_schema_pattern( /.+@.+/ ) ) ).Head( head )\n\t\t\t\n\t\t\t$mol_assert_equal( str.val(), null )\n\t\t\t$mol_assert_equal( mail.val(), null )\n\t\t\t\n\t\t\t$mol_assert_fail( ()=> str.val( 123 as any ), 'Wrong type' )\n\t\t\t$mol_assert_fail( ()=> mail.val( 'foo' ), 'Wrong string' )\n\t\t\t\n\t\t\t$mol_assert_equal( str.val(), null )\n\t\t\t$mol_assert_equal( mail.val(), null )\n\n\t\t\tstr.val( 'foo' )\n\t\t\t\n\t\t\t$mol_assert_equal( str.val(), 'foo' )\n\t\t\t$mol_assert_equal( mail.val(), null )\n\t\t\t\n\t\t\tmail.val( 'foo@bar' )\n\t\t\t\n\t\t\t$mol_assert_equal( str.val(), 'foo@bar' )\n\t\t\t$mol_assert_equal( mail.val(), 'foo@bar' )\n\t\t\t\n\t\t},\n\t\t\n\t\t\"Hyper link to another land\"( $ ) {\n\t\t\t\n\t\t\tconst land = $.$giper_baza_glob.home().land()\n\t\t\t\n\t\t\tconst reg = land.Pawn( $giper_baza_atom_link.to( ()=> $giper_baza_atom ) ).Head( new $giper_baza_link( '11111111' ) )\n\t\t\tconst remote = reg.ensure( land )!\n\t\t\t\n\t\t\t$mol_assert_unique( reg.land(), remote.land() )\n\t\t\t$mol_assert_equal( reg.vary()!, remote.link() )\n\t\t\t$mol_assert_equal( reg.remote(), remote )\n\t\t\t\n\t\t},\n\t\t\n\t\t\"Register with linked Pawns\"( $ ) {\n\t\t\t\n\t\t\tconst land = $.$giper_baza_glob.home().land()\n\t\t\t\n\t\t\tconst str = land.Pawn( $giper_baza_atom_text ).Head( new $giper_baza_link( '11111111' ) )\n\t\t\tconst link = land.Pawn( $giper_baza_atom_link.to( ()=> $giper_baza_atom_text ) ).Head( new $giper_baza_link( '11111111' ) )\n\t\t\t$mol_assert_equal( link.remote(), null )\n\t\t\t\n\t\t\tlink.remote( str )\n\t\t\t$mol_assert_equal( link.vary(), link.remote()!.link(), str.link() )\n\t\t\t\n\t\t},\n\t\t\n\t\t\"Enumerated reg type\"( $ ) {\n\t\t\t\n\t\t\tclass FileType extends $giper_baza_atom.of( $mol_schema_maybe( $mol_schema_enum([ 'file', 'dir', 'link' ]) ) ) {}\n\t\t\t\n\t\t\ttype Infered = $mol_type_assert<\n\t\t\t\tReturnType< FileType['val'] >,\n\t\t\t\t'file' | 'dir' | 'link' | null\n\t\t\t>\n\t\t\t\n\t\t\tconst land = $.$giper_baza_glob.home().land()\n\t\t\t\n\t\t\tconst type = land.Data( FileType )\n\t\t\t$mol_assert_equal( type.val(), null )\n\t\t\t\n\t\t\ttype.val( 'file' )\n\t\t\t$mol_assert_equal( type.val(), 'file' )\n\t\t\t\n\t\t\t$mol_assert_fail( ()=> type.val( 'drive' as any ), 'Wrong option' )\n\t\t\t$mol_assert_equal( type.val(), 'file' )\n\t\t\t\n\t\t\ttype.vary( 'drive' )\n\t\t\t$mol_assert_equal( type.val(), null )\n\t\t\t\n\t\t},\n\t\t\n\t})\n\t\n}\n","namespace $ {\n\t\n\texport class $giper_baza_stat_series extends $giper_baza_atom.of( $mol_schema_list( $mol_schema_float ) ) {\n\t\t\n\t\t@ $mol_action\n\t\ttick( key: number, val: number, count: number ) {\n\t\t\tlet vals = this.values().slice()\n\t\t\twhile( vals.length < count ) vals.push( 0 )\n\t\t\tvals[ key ] = val + this.initial()\n\t\t\tvals = [ ... vals.slice( key + 1 ), ... vals.slice( 0, key + 1 ) ]\n\t\t\tfor( let i = 1; i < count; ++i ) if( vals[ i ] < vals [ i-1 ] ) vals[i] = vals[ i-1 ]\n\t\t\tvals = [ ... vals.slice( -1 - key ), ... vals.slice( 0, -1 - key ) ]\n\t\t\tthis.values( vals )\n\t\t}\n\t\t\n\t\t_initial!: number\n\t\t@ $mol_action\n\t\tinitial() {\n\t\t\treturn this._initial\n\t\t\t\t?? ( this._initial = this.max() )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tmax() {\n\t\t\tlet max = 0\n\t\t\tfor( const val of this.values() ) if( val > max ) max = val\n\t\t\treturn max\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tvalues( next?: number[] ) {\n\t\t\t\n\t\t\tif( next ) {\n\t\t\t\tlet last = 0\n\t\t\t\tnext = next.map( v => ([ v, last ]=[ v - last, v ])[ 0 ] )\n\t\t\t}\n\n\t\t\tlet last = 0\n\t\t\treturn ( this.val( next ) ?? [] ).map( v => last += v )\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\texport class $giper_baza_stat_ranges extends $giper_baza_dict.with({\n\t\tSeconds: $giper_baza_stat_series,\n\t\tMinutes: $giper_baza_stat_series,\n\t\tHours: $giper_baza_stat_series,\n\t\tDays: $giper_baza_stat_series,\n\t\tMonths: $giper_baza_stat_series,\n\t\t// Years: $giper_baza_stat_series,\n\t}) {\n\t\t\n\t\t_last_instant = 0\n\t\ttick_instant( val: number ) {\n\t\t\tthis.tick_integral( this._last_instant += val )\n\t\t}\n\t\t\n\t\ttick_integral( val: number ) {\n\t\t\t\n\t\t\tlet now = new $mol_time_moment\n\t\t\t\n\t\t\tthis.Seconds( null )!.tick( Math.floor( now.second! ), val, 60 )\n\t\t\tthis.Minutes( null )!.tick( now.minute!, val, 60 )\n\t\t\tthis.Hours( null )!.tick( now.hour!, val, 24 )\n\t\t\tthis.Days( null )!.tick( now.day!, val, 31 )\n\t\t\tthis.Months( null )!.tick( now.month!, val, 12 )\n\t\t\t// this.Years( null )!.tick( now.year!, val )\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tseries() {\n\t\t\t\n\t\t\tfunction pick( Series: $giper_baza_stat_series | null, length: number, range: number ) {\n\t\t\t\t\n\t\t\t\tconst values = Series?.values() ?? [ 0 ]\n\t\t\t\tlet series = Array.from( { length }, ( _, i )=> values[ i ] )\n\t\t\t\t\n\t\t\t\tlet start = 0\n\t\t\t\tlet max = 0\n\t\t\t\t\n\t\t\t\tfor( let i = 0; i < series.length; ++i ) {\n\t\t\t\t\tif( series[i] < max ) continue\n\t\t\t\t\tmax = series[i]\n\t\t\t\t\tstart = i + 1\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( start ) series = [ ... series.slice( start ), ... series.slice( 0, start - 1 ) ]\n\t\t\t\t\n\t\t\t\tlet last = series[0]\n\t\t\t\t\n\t\t\t\tseries = series.slice(1).map( val => {\n\t\t\t\t\t\n\t\t\t\t\ttry {\n\t\t\t\t\t\n\t\t\t\t\t\tif( last === 0 || val < last ) return 0\n\t\t\t\t\t\treturn ( val - last ) / range\n\t\t\t\t\t\t\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tlast = Math.max( val, last )\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t} )\n\t\t\t\t\n\t\t\t\treturn series\n\t\t\t}\n\t\t\t\n\t\t\tconst months = pick( this.Days(), 12, 60 * 60 * 24 * 31 )\n\t\t\tconst days = pick( this.Days(), 31, 60 * 60 * 24 )\n\t\t\tconst hours = pick( this.Hours(), 24, 60 * 60 )\n\t\t\tconst minutes = pick( this.Minutes(), 60, 60 )\n\t\t\tconst seconds = pick( this.Seconds(), 60, 1 )\n\t\t\t\n\t\t\treturn [ ... months, ... days, ... hours, ... minutes, ... seconds ].reverse()\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\n\texport type $mol_report_handler_type = (event: Event | string, url?: string, line?: number, col?: number, error?: Error) => void\n\n\texport const $mol_report_handler_all = new Set<$mol_report_handler_type>()\n\n\tfunction handler(event: Event | string, url?: string, line?: number, col?: number, error?: Error) {\n\t\tfor (const handler of $mol_report_handler_all) {\n\t\t\ttry {\n\t\t\t\thandler(event, url, line, col, error)\n\t\t\t} catch (e) {}\n\t\t}\n\t}\n\tconst handler_promise = (event: PromiseRejectionEvent) => handler('Unhandled Rejection', '', 0, 0, event.reason )\n\tconst handler_promise_node = (reason: Error) => handler('Unhandled Rejection', '', 0, 0, reason )\n\n\tif( 'addEventListener' in globalThis ) {\n\t\tglobalThis.addEventListener('error', handler)\n\t\tglobalThis.addEventListener('unhandledrejection', handler_promise)\n\t}\n\t\n\tif( 'process' in globalThis ) {\n\t\tprocess.on('uncaughtExceptionMonitor', handler)\n \t// process.on('unhandledRejection', handler_promise_node) // revents process halt\n\t}\n\n\tconst console_error = console.error\n\n\n\tconsole.error = function console_error_custom( ... args ) {\n\n\t\tconst format = (val: unknown) => typeof val === 'string'\n\t\t\t? val.replace(/[\\u001b\\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g, '')\n\t\t\t: JSON.stringify(val)\n\n\t\tconst secondary = args.slice(1)\n\t\tconst first = typeof args[0] === 'string'\n\t\t\t? args[0].replaceAll( /%(?:\\.\\d+)?[disfcoO]/g, spec => spec === '%c' ? (secondary.shift(), '') : secondary.shift() )\n\t\t\t: args[0]\n\n\t\tsecondary.unshift(first)\n\t\tconst result = secondary.map(format).join(' ')\n\n\t\thandler( result )\n\t\tconsole_error.apply( console, args )\n\t}\n\n}\n","namespace $ {\n\n\t/** State of arguments like `foo=bar xxx` */\n\texport class $mol_state_arg extends $mol_object {\n\t\t\n\t\tstatic prolog = ''\n\t\tstatic separator = ' '\n\t\t\n\t\t@ $mol_mem\n\t\tstatic href( next? : string ) {\n\t\t\treturn next || process.argv.slice( 2 ).join( ' ' )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic href_normal() {\n\t\t\treturn this.link({})\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic dict( next? : { [ key : string ] : string | null } ) {\n\t\t\tif( next !== void 0 ) this.href( this.make_link( next ) )\n\t\t\t\n\t\t\tvar href = this.href()\n\t\t\tvar chunks = href.split( ' ' )\n\t\t\t\n\t\t\tvar params : { [ key : string ] : string } = {}\n\t\t\tchunks.forEach(\n\t\t\t\tchunk => {\n\t\t\t\t\tif( !chunk ) return\n\t\t\t\t\tvar vals = chunk.split( '=' ).map( decodeURIComponent )\n\t\t\t\t\tparams[ vals.shift()! ] = vals.join('=')\n\t\t\t\t}\n\t\t\t)\n\t\t\t\n\t\t\treturn params as Readonly< typeof params >\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic value( key : string , next? : string | null ) {\n\t\t\tif( next === void 0 ) return this.dict()[ key ] ?? null\n\t\t\tthis.href( this.link( { [ key ] : next } ) )\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tstatic link( next : Record<string, string | null> ) {\n\t\t\tconst params : Record<string, string | null> = {}\n\t\t\t\n\t\t\tvar prev = this.dict()\n\t\t\tfor( var key in prev ) {\n\t\t\t\tparams[ key ] = prev[ key ]\n\t\t\t}\n\t\t\t\n\t\t\tfor( var key in next ) {\n\t\t\t\tparams[ key ] = next[ key ]\n\t\t\t}\n\t\t\t\n\t\t\treturn this.make_link( params )\n\t\t}\n\t\t\n\t\tstatic make_link( next : Record<string, string | null>) {\n\t\t\tconst chunks : string[] = []\n\t\t\tfor( const key in next ) {\n\t\t\t\tif( next[ key ] !== null ) {\n\t\t\t\t\tchunks.push([key, next[key]!].map(encodeURIComponent).join('='))\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn chunks.join( ' ' )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tstatic go( next : { [ key : string ] : string | null } ) {\n\t\t\tthis.href( this.link( next ) )\n\t\t}\n\t\t\n\t\tstatic commit() {}\n\t\t\n\t\tconstructor( public prefix = '' ) {\n\t\t\tsuper()\n\t\t}\n\t\t\n\t\tvalue( key : string , next? : string ) {\n\t\t\treturn ( this.constructor as typeof $mol_state_arg ).value( this.prefix + key , next )\n\t\t}\n\t\t\n\t\tsub( postfix : string ) {\n\t\t\treturn new ( this.constructor as typeof $mol_state_arg )( this.prefix + postfix + '.' )\n\t\t}\n\t\t\n\t\tlink( next : Record<string, string | null> ) {\n\t\t\tconst prefix = this.prefix\n\t\t\tconst dict : Record<string, string | null> = {}\n\t\t\tfor( var key in next ) {\n\t\t\t\tdict[ prefix + key ] = next[ key ]\n\t\t\t}\n\t\t\treturn ( this.constructor as typeof $mol_state_arg ).link( dict )\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\t$mol_test_mocks.push( context => {\n\t\tclass $mol_state_arg_mock extends $mol_state_arg {\n\n\t\t\tstatic $ = context\n\t\t\t\t\t\t\n\t\t\t@ $mol_mem\n\t\t\tstatic href( next? : string ) { return next || '' }\n\t\n\t\t\t@ $mol_action\n\t\t\tstatic go( next : { [ key : string ] : string | null } ) {\n\t\t\t\tthis.href( this.link( next ) )\n\t\t\t}\n\n\t\t}\n\t\tcontext.$mol_state_arg = $mol_state_arg_mock\n\t} )\n\t\n}\n","namespace $ {\n\texport function $giper_baza_log( this: $ ) {\n\t\treturn this.$mol_state_arg.value( 'giper_baza_log' ) !== null\n\t}\n}\n","namespace $ {\n\t\n\texport class $giper_baza_app_stat extends $giper_baza_dict.with({\n\t\t\n\t\tUptime: $giper_baza_atom_dura,\n\t\t\n\t\tMasters: $giper_baza_atom.of( $mol_schema_list( $mol_schema_string ) ),\n\t\tSlaves: $giper_baza_atom.of( $mol_schema_list( $mol_schema_string ) ),\n\t\t\n\t\t/** User time in secs */\n\t\tCpu_user: $giper_baza_stat_ranges,\n\t\t/** System time in secs */\n\t\tCpu_system: $giper_baza_stat_ranges,\n\t\t\n\t\t/** Memory in MB */\n\t\tMem_used: $giper_baza_stat_ranges,\n\t\t/** Memory in MB */\n\t\tMem_free: $giper_baza_stat_ranges,\n\t\t\n\t\t/** FS used */\n\t\tFs_used: $giper_baza_stat_ranges,\n\t\t/** FS free */\n\t\tFs_free: $giper_baza_stat_ranges,\n\t\t\n\t\t/** FS read count */\n\t\tFs_reads: $giper_baza_stat_ranges,\n\t\t/** FS write count */\n\t\tFs_writes: $giper_baza_stat_ranges,\n\t\t\n\t\t/** Slave sockets count */\n\t\tPort_slaves: $giper_baza_stat_ranges,\n\t\t/** Masters sockets count */\n\t\tPort_masters: $giper_baza_stat_ranges,\n\t\t\n\t\t/** Alive (in-memory) lands count */\n\t\tLand_alive: $giper_baza_stat_ranges,\n\t\t/** Ghost (non-persist) lands count */\n\t\tLand_ghost: $giper_baza_stat_ranges,\n\t\t\n\t\t/** Unhandled errors */\n\t\tErrors: $giper_baza_stat_ranges,\n\t\t\n\t}) {\n\n\t\t@ $mol_mem\n\t\tfreshness() {\n\t\t\t\n\t\t\tconst last = this.last_change()\n\t\t\tif( !last ) return null\n\t\t\t\n\t\t\tconst range = new $mol_time_interval({\n\t\t\t\tstart: last,\n\t\t\t\tend: new $mol_time_moment( this.$.$mol_state_time.now( 1000 ) ),\n\t\t\t})\n\t\t\t\n\t\t\treturn range.duration.count( 'PT1s' )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tuptime( next?: $mol_time_duration ) {\n\t\t\treturn this.Uptime( next )?.val( next ) ?? new $mol_time_duration( 0 )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tmasters( next?: string[] ) {\n\t\t\treturn this.Masters( next )?.val( next ) ?? []\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tslaves( next?: string[] ) {\n\t\t\treturn this.Slaves( next )?.val( next ) ?? []\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tinit() {\n\t\t\tthis.Errors( null )!.tick_instant( 1 ) // restarts as errors\n\t\t\tlet handler: $mol_report_handler_type = ()=> this.Errors( null )!.tick_instant( 1 )\n\t\t\t$mol_report_handler_all.add( handler )\n\t\t\treturn { destructor: ()=> $mol_report_handler_all.delete( handler ) }\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\ttick() {\n\t\t\t\n\t\t\tthis.init()\n\t\t\t\n\t\t\tif( this.$.$giper_baza_log() ) {\n\t\t\t\tthis.$.$mol_log3_warn({\n\t\t\t\t\tplace: this,\n\t\t\t\t\tmessage: 'Stat disabled due logging',\n\t\t\t\t\thint: 'Disable $giper_baza_log to start monitoring'\n\t\t\t\t})\n\t\t\t\treturn\n\t\t\t}\n\t\t\t\n\t\t\tthis.$.$mol_state_time.now( 1000 )\n\t\t\t\n\t\t\tconst yard = this.$.$giper_baza_glob.yard()\n\t\t\t\n\t\t\tthis.uptime( new $mol_time_duration({ second: Math.floor( process.uptime() ) }).normal )\n\t\t\t\n\t\t\tthis.masters( [ ... yard.masters() ].map( port => port.address() + ' ' + port.origin() ) )\n\t\t\tthis.slaves( [ ... yard.slaves ].map( port => port.address() + ' ' + port.origin() ) )\n\t\t\t\n\t\t\tconst res = process.resourceUsage()\n\t\t\tthis.Cpu_user( null )!.tick_integral( Math.ceil( res.userCPUTime / 1e4 ) ) // %\n\t\t\tthis.Cpu_system( null )!.tick_integral( Math.ceil( res.systemCPUTime / 1e4 ) ) // %\n\t\t\tthis.Fs_reads( null )!.tick_integral( res.fsRead ) // pct\n\t\t\tthis.Fs_writes( null )!.tick_integral( res.fsWrite ) // pct\n\t\t\t\n\t\t\tthis.Mem_used( null )!.tick_instant( Math.ceil( ( res.maxRSS - res.sharedMemorySize ) / 1024 ) ) // MB\n\t\t\tthis.Mem_free( null )!.tick_instant( Math.floor( $node.os.freemem() / 1024 / 1024 ) ) // MB\n\t\t\t\n\t\t\tthis.Fs_used( null )!.tick_instant( Math.floor( $mol_storage.used() / 1024 / 1024 ) ) // MB\n\t\t\tthis.Fs_free( null )!.tick_instant( Math.floor( $mol_storage.free() / 1024 / 1024 ) ) // MB\n\t\t\t\n\t\t\tconst masters = yard.masters()?.length ?? 0\n\t\t\tthis.Port_masters( null )!.tick_instant( masters ) // pct\n\t\t\tthis.Port_slaves( null )!.tick_instant( yard.slaves.size ) // pct\n\t\t\t\n\t\t\tconst lands_alive = yard.lands_alive()\n\t\t\tconst lands_persist = yard.lands_alive().filter( land => land.persisted() )\n\t\t\tthis.Land_alive( null )!.tick_instant( lands_alive.length ) // pct\n\t\t\tthis.Land_ghost( null )!.tick_instant( lands_alive.length - lands_persist.length ) // pct\n\t\t\t\n\t\t\tthis.Errors( null )!.tick_instant( 0 ) // pct\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\texport function $mol_guard_defined<T>(value: T): value is NonNullable<T> {\n\t\treturn value !== null && value !== undefined\n\t}\n}\n","namespace $ {\n\t\n\texport const $giper_baza_flex_deck_link = new $giper_baza_link( '6NUPZgrR_Itnhu9N1_WPsQDQWa' )\n\t\n\t/** Subj - named entity */\n\texport class $giper_baza_flex_subj extends $giper_baza_dict.with( {\n\t\tName: $giper_baza_atom_text,\n\t\tIcon: $giper_baza_atom_text,\n\t\tHint: $giper_baza_atom_text,\n\t}, 'Subj' ) {\n\t\t\n\t\tstatic meta = new $giper_baza_link( `${$giper_baza_flex_deck_link.str}_U2e5XejQ` )\n\t\t\n\t\tname( next?: string ) {\n\t\t\treturn this.Name( next )?.val( next ) ?? this.link().str\n\t\t}\n\t\t\n\t\ticon( next?: string ) {\n\t\t\treturn this.Icon( next )?.val( next ) ?? '💫'\n\t\t}\n\t\t\n\t\thint( next?: string ) {\n\t\t\treturn this.Hint( next )?.val( next ) ?? ''\n\t\t}\n\t\t\n\t}\n\t\n\t/** Atomic Link to any Subj */\n\texport class $giper_baza_flex_subj_link extends $giper_baza_atom_link.to( ()=> $giper_baza_flex_subj ) {}\n\t\n\t/** Meta - schema of entitiy */\n\texport class $giper_baza_flex_meta extends $giper_baza_flex_subj.with( {\n\t\tPulls: $giper_baza_list_link.to( ()=> $giper_baza_flex_subj ),\n\t\tProps: $giper_baza_list_link.to( ()=> $giper_baza_flex_prop ),\n\t}, 'Meta' ) {\n\t\t\n\t\tstatic override meta = new $giper_baza_link( `${$giper_baza_flex_deck_link.str}_Atd6Ty7F` )\n\t\t\n\t\t@ $mol_action\n\t\tprop_new(\n\t\t\tkey: string,\n\t\t\ttype: string,\n\t\t\tkind?: $giper_baza_flex_meta,\n\t\t\tvars?: $giper_baza_list,\n\t\t\tbase?: $giper_baza_vary_type,\n\t\t) {\n\t\t\tconst prop = this.Props(null)!.make( $mol_hash_string( key ) )\n\t\t\t\n\t\t\tprop.path( this.name() + ':' + key )\n\t\t\tprop.name( key )\n\t\t\tprop.type( type )\n\t\t\t\n\t\t\tif( kind ) prop.kind( kind )\n\t\t\tif( vars ) prop.enum( vars )\n\t\t\tif( base !== undefined ) prop.base( base )\n\t\t\t\n\t\t\treturn prop\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tprop_add( prop: $giper_baza_flex_prop ) {\n\t\t\tthis.Props( prop )!.add( prop.link() )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tprop_all(): readonly $giper_baza_flex_prop[] {\n\t\t\treturn [\n\t\t\t\t... this.pull_all().flatMap( meta => meta.prop_all() ),\n\t\t\t\t... this.Props()?.remote_list() ?? [],\n\t\t\t]\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tpull_add( meta: $giper_baza_flex_meta ) {\n\t\t\tthis.Pulls( meta )!.add( meta.link() )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tpull_all() {\n\t\t\treturn ( this.Pulls()?.remote_list() ?? [] ).map( subj => subj.cast( $giper_baza_flex_meta ) )\n\t\t}\n\t\t\n\t}\n\t\n\t/** Property - attribute of entity */\n\texport class $giper_baza_flex_prop extends $giper_baza_flex_subj.with( {\n\t\t/** Key to store value */\n\t\tPath: $giper_baza_atom_text,\n\t\t/** Type of value */\n\t\tType: $giper_baza_atom_text,\n\t\t/** Target Meta */\n\t\tKind: $giper_baza_atom_link.to( () => $giper_baza_flex_meta ),\n\t\t/** Variants of values */\n\t\tEnum: $giper_baza_atom_link.to( () => $giper_baza_list ),\n\t\t/** Base value */\n\t\tBase: $giper_baza_atom,\n\t}, 'Prop' ) {\n\t\t\n\t\tstatic override meta = new $giper_baza_link( `${$giper_baza_flex_deck_link.str}_DOnW7Ah9` )\n\t\t\n\t\tpath( next?: string ) {\n\t\t\treturn this.Path( next )?.val( next ) ?? ''\n\t\t}\n\t\t\n\t\ttype( next?: string ) {\n\t\t\treturn this.Type( next )?.val( next ) ?? ''\n\t\t}\n\t\t\n\t\tbase( next?: $giper_baza_vary_type ) {\n\t\t\treturn this.Base( next )?.vary( next ) ?? null\n\t\t}\n\t\t\n\t\tkind( next?: $giper_baza_flex_meta ) {\n\t\t\treturn this.Kind( next )?.remote( next ) ?? null\n\t\t}\n\t\t\n\t\tenum( next?: $giper_baza_list ) {\n\t\t\treturn this.Enum( next )?.remote( next ) ?? null\n\t\t}\n\t\t\n\t}\n\t\n\t/** Deck - set of schemes and types */\n\texport class $giper_baza_flex_deck extends $giper_baza_flex_subj.with( {\n\t\tMetas: $giper_baza_list_link.to( ()=> $giper_baza_flex_meta ),\n\t\tTypes: $giper_baza_list_str,\n\t}, 'Deck' ) {\n\t\t\n\t\tstatic override meta = new $giper_baza_link( `${$giper_baza_flex_deck_link.str}_3AvnmQ4q` )\n\t\t\n\t\t@ $mol_action\n\t\tmeta_new( key: string, icon: string, hint: string ) {\n\t\t\tconst meta = this.Metas(null)!.make( $mol_hash_string( key ) )\n\t\t\tmeta.name( key )\n\t\t\tmeta.icon( icon )\n\t\t\tmeta.hint( hint )\n\t\t\treturn meta\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tmeta_for( Meta: typeof $giper_baza_flex_subj, icon: string, hint: string ) {\n\t\t\tconst meta = this.meta_new( Meta.path, icon, hint )\n\t\t\tMeta.meta = meta.link()\n\t\t\treturn meta\n\t\t}\n\t\t\n\t}\n\t\n\t/** Seed - global network config */\n\texport class $giper_baza_flex_seed extends $giper_baza_flex_subj.with( {\n\t\tDeck: $giper_baza_atom_link.to( ()=> $giper_baza_flex_deck ),\n\t\tPeers: $giper_baza_list_link.to( ()=> $giper_baza_flex_peer ),\n\t}, 'Seed' ) {\n\t\t\n\t\tstatic override meta = new $giper_baza_link( `${$giper_baza_flex_deck_link.str}_nrUK4ZIW` )\n\t\t\n\t\t@ $mol_mem\n\t\tdeck() {\n\t\t\treturn this.Deck(null)!.ensure( this.land() )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tpeers( next?: readonly $giper_baza_flex_peer[] ) {\n\t\t\treturn this.Peers( next )?.remote_list( next ) ?? []\n\t\t}\n\t\t\n\t}\n\t\n\t/** Peer - network peering info */\n\texport class $giper_baza_flex_peer extends $giper_baza_flex_subj.with( {\n\t\tUrls: $giper_baza_list_str,\n\t\tStat: $giper_baza_atom_link.to( ()=> $giper_baza_app_stat ),\n\t}, 'Peer' ) {\n\t\t\n\t\tstatic override meta = new $giper_baza_link( `${$giper_baza_flex_deck_link.str}_xEibvNCP` )\n\t\t\n\t\t@ $mol_mem\n\t\tstat( auto?: any ) {\n\t\t\treturn this.Stat( auto )?.ensure( this.land() ) ?? null\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\turls( next?: string[] ) {\n\t\t\treturn ( this.Urls( next )?.items( next ) ?? [] ).filter( $mol_guard_defined )\n\t\t}\n\t\t\n\t}\n\t\n\ttype Point = readonly[ head: string, x: number, y: number ]\n\ttype Selection = readonly [ from: Point, to: Point ]\n\t\n\t/** User - human profile */\n\texport class $giper_baza_flex_user extends $giper_baza_flex_subj.with( {\n\t\tCaret: $giper_baza_atom.of( $mol_schema_list( $mol_schema_any ) ),\n\t}, 'User' ) {\n\t\t\n\t\tstatic override meta = new $giper_baza_link( `${$giper_baza_flex_deck_link.str}_csm0VtAK` )\n\t\t\n\t\t@ $mol_mem\n\t\tcaret( next?: Selection ): Selection | null {\n\t\t\treturn this.Caret( next )?.val( next ) as any as Selection ?? null\n\t\t}\n\t\t\n\t}\n\t\n\t/** Makes new Seed with Deck */\n\texport function $giper_baza_flex_init( this: $ ): $giper_baza_flex_seed {\n\t\t\t\n\t\tconst seed_land = this.$.$giper_baza_glob.land_grab()\n\t\tconst seed = seed_land.Data( $giper_baza_flex_seed )\n\t\tseed.name( 'Base Seed' )\n\t\t\n\t\tconst deck = seed.deck()!\n\t\tdeck.name( 'Base Deck' )\n\t\tdeck.Types(null)!.items_vary([ 'vary', 'enum', 'bool', 'int', 'real', 'str', 'link', 'time', 'dict', 'text', 'list' ])\n\t\t\n\t\tconst Meta = deck.meta_for( $giper_baza_flex_meta, '✨', 'Meta schema of entities' )\n\t\tMeta.meta( Meta.link() )\n\t\t\n\t\tconst Subj = deck.meta_for( $giper_baza_flex_subj, '💎', 'Named entity' )\n\t\tconst Seed = deck.meta_for( $giper_baza_flex_seed, '🌱', 'Seed of network' )\n\t\tconst Prop = deck.meta_for( $giper_baza_flex_prop, '🔖', 'Property schema' )\n\t\tconst Deck = deck.meta_for( $giper_baza_flex_deck, '📚', 'Collection of Metas' )\n\t\tconst Peer = deck.meta_for( $giper_baza_flex_peer, '🔆', 'Peer of network' )\n\t\tconst User = deck.meta_for( $giper_baza_flex_user, '👤', 'Profile of user' )\n\t\t\n\t\tseed.meta( Seed.link() )\n\t\tdeck.meta( Deck.link() )\n\t\t\n\t\tMeta.pull_add( Subj )\n\t\tSeed.pull_add( Subj )\n\t\tProp.pull_add( Subj )\n\t\tDeck.pull_add( Subj )\n\t\tPeer.pull_add( Subj )\n\t\tUser.pull_add( Subj )\n\t\t\n\t\tSubj.prop_new( 'Name', 'str', undefined, undefined, '' )\n\t\tSubj.prop_new( 'Icon', 'str', undefined, undefined, '💫' )\n\t\tSubj.prop_new( 'Hint', 'str', undefined, undefined, '' )\n\t\t\n\t\tMeta.prop_new( 'Pulls', 'list', Meta, deck.Metas()! )\n\t\tMeta.prop_new( 'Props', 'list', Prop )\n\t\t\n\t\tSeed.prop_new( 'Deck', 'link', Deck )\n\t\tSeed.prop_new( 'Peers', 'list', Peer )\n\t\t\n\t\tProp.prop_new( 'Path', 'str' )\n\t\tProp.prop_new( 'Type', 'enum', undefined, deck.Types()!, 'vary' )\n\t\tProp.prop_new( 'Kind', 'link', Meta, deck.Metas()!, Subj.link() )\n\t\tProp.prop_new( 'Enum', 'link', Subj )\n\t\tProp.prop_new( 'Base', 'vary', Subj )\n\t\t\n\t\tDeck.prop_new( 'Metas', 'list', Meta )\n\t\tDeck.prop_new( 'Types', 'list' )\n\t\t\n\t\tPeer.prop_new( 'Urls', 'list' )\n\t\tPeer.prop_new( 'Stat', 'link' )\n\t\t\n\t\tUser.prop_new( 'Caret', 'list' )\n\t\t\n\t\treturn seed\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\ttype Block = {\n\t\tfrom: number\n\t\tsize: number\n\t\tnext: Block\n\t}\n\t\n\t/**\n\t * Simple memory allocator.\n\t * Holds linked list of free blocks.\n\t * Prefers blocks from the beginning.\n\t * Near blocks are joined automatically.\n \t */\n\texport class $mol_memory_pool extends Object {\n\t\t\n\t\t_free: Block\n\t\t\n\t\tconstructor( size = Number.POSITIVE_INFINITY ) {\n\t\t\t\n\t\t\tsuper()\n\t\t\t\n\t\t\tthis._free = {\n\t\t\t\tfrom: -1,\n\t\t\t\tsize: 0,\n\t\t\t\tnext: {\n\t\t\t\t\tfrom: 0,\n\t\t\t\t\tsize,\n\t\t\t\t\tnext: null!,\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Returns offset of first free block with required size. */\n\t\tacquire( size: number ) {\n\t\t\t\n\t\t\tlet prev = this._free\n\t\t\tlet next = prev.next\n\t\t\tlet max = 0\n\t\t\t\n\t\t\twhile( next.size < size ) {\n\t\t\t\t\n\t\t\t\tif( next.size > max ) max = next.size\n\t\t\t\t\n\t\t\t\tprev = next\n\t\t\t\tnext = next.next\n\t\t\t\t\n\t\t\t\tif( !next ) $mol_fail( new Error( `No free space\\nneed: ${ size }\\nhave: ${ max }` ) )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst from = next.from\n\t\t\t\n\t\t\tif( next.size === size ) {\n\t\t\t\tprev.next = next.next\n\t\t\t} else {\n\t\t\t\tnext.from += size\n\t\t\t\tnext.size -= size\n\t\t\t}\n\t\t\t\n\t\t\treturn from\n\t\t}\n\t\t\n\t\t/** Allows memory range to be acquired. */\n\t\trelease( from: number, size: number ) {\n\t\t\t\n\t\t\tlet prev = this._free\n\t\t\tlet next = prev.next\n\t\t\t\n\t\t\twhile( next.from < from ) {\n\t\t\t\tprev = next\n\t\t\t\tnext = next.next\n\t\t\t\t\n\t\t\t\tif( !next ) $mol_fail( new Error( 'Release out of allocated', { cause: { last: prev, from, size } } ) )\n\t\t\t}\n\t\t\t\n\t\t\tif(( from + size > next.from )||( prev.from + prev.size > from )) {\n\t\t\t\t$mol_fail( new Error( 'Double release', { cause: { prev, next, from, size } } ) )\n\t\t\t}\n\t\t\t\n\t\t\tconst begin = prev.from + prev.size === from\n\t\t\tconst end = from + size === next.from\n\t\t\t\n\t\t\tif( begin ) {\n\t\t\t\t\n\t\t\t\tif( end ) {\n\t\t\t\t\tprev.size += size + next.size\n\t\t\t\t\tprev.next = next.next\n\t\t\t\t} else {\n\t\t\t\t\tprev.size += size\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tif( end ) {\n\t\t\t\t\tnext.from -= size\n\t\t\t\t\tnext.size += size\n\t\t\t\t} else {\n\t\t\t\t\tprev.next = { from, size, next }\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tempty() {\n\t\t\tconst first = this._free.next\n\t\t\treturn first.next === null && first.from === 0\n\t\t}\n\t\t\n\t\tacquired() {\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $.$$ {\n\t$mol_test({\n\t\t\n\t\t\"Empty release\"( $ ) {\n\t\t\t\n\t\t\tconst pool = new $mol_memory_pool\n\t\t\t$mol_assert_equal( pool.empty(), true )\n\t\t\t\n\t\t\tpool.release( 0, 0 )\n\t\t\t$mol_assert_equal( pool.acquire( 8 ), 0 )\n\t\t\t$mol_assert_equal( pool.empty(), false )\n\t\t\t\n\t\t\tpool.release( 0, 8 )\n\t\t\t$mol_assert_equal( pool.empty(), true )\n\t\t\t\n\t\t},\n\t\t\n\t\t\"linear allocation\"( $ ) {\n\t\t\t\n\t\t\tconst pool = new $mol_memory_pool\n\t\t\t\n\t\t\t$mol_assert_equal( pool.acquire( 8 ), 0 )\n\t\t\t$mol_assert_equal( pool.acquire( 16 ), 8 )\n\t\t\t$mol_assert_equal( pool.acquire( 32 ), 24 )\n\t\t\t\n\t\t},\n\t\t\n\t\t\"allocation in released\"( $ ) {\n\t\t\t\n\t\t\tconst pool = new $mol_memory_pool\n\t\t\t\n\t\t\t$mol_assert_equal( pool.acquire( 8 ), 0 )\n\t\t\t$mol_assert_equal( pool.acquire( 16 ), 8 )\n\t\t\t\n\t\t\tpool.release( 0, 16 )\n\t\t\t$mol_assert_equal( pool.acquire( 8 ), 0 )\n\t\t\t$mol_assert_equal( pool.acquire( 16 ), 24 )\n\t\t\t$mol_assert_equal( pool.acquire( 8 ), 8 )\n\t\t\t\n\t\t},\n\t\t\n\t\t\"space limitation\"( $ ) {\n\t\t\t\n\t\t\tconst pool = new $mol_memory_pool( 10 )\n\t\t\t\n\t\t\tpool.acquire( 8 )\n\t\t\tpool.release( 2, 4 )\n\t\t\t\n\t\t\t$mol_assert_fail( ()=> pool.acquire( 6 ), 'No free space\\nneed: 6\\nhave: 4' )\n\t\t\t\n\t\t},\n\t\t\n\t\t\"double release\"( $ ) {\n\t\t\t\n\t\t\tconst pool = new $mol_memory_pool\n\t\t\t\n\t\t\t$mol_assert_fail( ()=> pool.release( 0, 2 ), 'Double release' )\n\t\t\t$mol_assert_fail( ()=> pool.release( 2, 2 ), 'Release out of allocated' )\n\t\t\t\n\t\t\tpool.acquire( 16 )\n\t\t\tpool.release( 4, 8 )\n\t\t\t\n\t\t\t$mol_assert_fail( ()=> pool.release( 4, 8 ), 'Double release' )\n\t\t\t$mol_assert_fail( ()=> pool.release( 10, 4 ), 'Double release' )\n\t\t\t$mol_assert_fail( ()=> pool.release( 2, 4 ), 'Double release' )\n\t\t\t\n\t\t},\n\t\t\n\t})\n}\n","namespace $ {\n\t\n\texport const $giper_baza_pack_four_code = $mol_charset_encode( 'LAND' ) // 76 65 78 68\n\texport const $giper_baza_pack_head_size = 4/*BAZA*/ + 12/*Lord*/ + 6/*Area*/ + 2/*Size*/\n\t\n\t/** Universal binary package which contains some Faces/Units/Rocks */\n\texport type $giper_baza_pack_parts = [ string, $giper_baza_pack_part ][]\n\t\n\t/**\n\t * One Land info (Faces+Units) to Pack.\n\t * Sync: +Faces -Units\n\t * Diff: -Faces +Units\n\t * Stop: -Faces -Units\n\t */\n\texport class $giper_baza_pack_part extends $mol_object {\n\t\t\n\t\tconstructor(\n\t\t\tpublic units = [] as readonly $giper_baza_unit[],\n\t\t\tpublic faces = new $giper_baza_face_map,\n\t\t) {\n\t\t\tsuper()\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tstatic from( units: $giper_baza_unit[], faces = new $giper_baza_face_map ) {\n\t\t\treturn new this( units, faces )\n\t\t}\n\t\t\n\t\t*[ Symbol.iterator ]() {\n\t\t\treturn {\n\t\t\t\tunits: this.units,\n\t\t\t\tfaces: this.faces,\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\t\n\t/** Universal binary package which contains some Faces/Units/Rocks */\n\texport class $giper_baza_pack extends $mol_buffer {\n\t\t\n\t\ttoBlob() {\n\t\t\treturn new Blob( [ this ], { type: 'application/vnd.giper_baza_pack.v1' } )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tparts( offsets?: WeakMap< ArrayBuffer, number >, pool?: $mol_memory_pool ) {\n\t\t\t\n\t\t\tconst parts = new Map< string, $giper_baza_pack_part >\n\t\t\tlet part = null as null | $giper_baza_pack_part\n\t\t\t\n\t\t\tconst buf = this.asArray()\n\t\t\t\n\t\t\tfor( let offset = 0; offset < this.byteLength; ) {\n\t\t\t\t\n\t\t\t\tconst kind = this.uint8( offset )\n\t\t\t\tswitch( $giper_baza_slot_kind[ kind ] as keyof typeof $giper_baza_slot_kind ) {\n\t\t\t\t\t\n\t\t\t\t\tcase 'free': {\n\t\t\t\t\t\tpool?.release( offset, 8 )\n\t\t\t\t\t\toffset += 8\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase 'land': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst link = $giper_baza_link.from_bin(\n\t\t\t\t\t\t\tnew Uint8Array( buf.buffer, buf.byteOffset + offset + 4, 18 )\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\n\t\t\t\t\t\tpart = parts.get( link.str )!\n\t\t\t\t\t\tif( !part ) parts.set( link.str, part = new $giper_baza_pack_part )\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst size = this.uint16( offset + 22 )\n\t\t\t\t\t\toffset += 24\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Faces\n\t\t\t\t\t\tfor( let i = 0; i < size; ++i ) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tconst peer = $giper_baza_link.from_bin(\n\t\t\t\t\t\t\t\tnew Uint8Array( buf.buffer, buf.byteOffset + offset, 6 )\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tconst tick = this.uint16( offset + 6 )\n\t\t\t\t\t\t\tconst time = this.uint32( offset + 8 )\n\t\t\t\t\t\t\tconst summ = this.uint32( offset + 12 )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tpart.faces.peer_time( peer.str, time, tick )\n\t\t\t\t\t\t\tpart.faces.peer_summ( peer.str, summ )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\toffset += $giper_baza_face.length()\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase 'pass': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( !part ) $mol_fail( new Error( 'Land is undefined' ) )\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst pass = $giper_baza_auth_pass.from(\n\t\t\t\t\t\t\tbuf.slice( offset, offset + 64 )\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\n\t\t\t\t\t\toffsets?.set( pass.buffer, offset )\n\t\t\t\t\t\t;( part.units as $giper_baza_unit[] ).push( pass )\n\t\t\t\t\t\t\n\t\t\t\t\t\toffset += pass.byteLength\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase 'seal': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( !part ) $mol_fail( new Error( 'Land is undefined' ) )\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst size = new $giper_baza_unit_seal( this.buffer, this.byteOffset + offset, this.byteLength - offset ).size()\n\t\t\t\t\t\tconst length = $giper_baza_unit_seal.length( size )\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst seal = $giper_baza_unit_seal.from(\n\t\t\t\t\t\t\tbuf.slice( offset, offset + length )\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\n\t\t\t\t\t\toffsets?.set( seal.buffer, offset )\n\t\t\t\t\t\t;( part.units as $giper_baza_unit[] ).push( seal )\n\t\t\t\t\t\t\n\t\t\t\t\t\toffset += seal.byteLength\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase 'sand': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( !part ) $mol_fail( new Error( 'Land is undefined' ) )\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst size = new $giper_baza_unit_sand( this.buffer, this.byteOffset + offset, 40 ).size()\n\t\t\t\t\t\tconst length_sand = $giper_baza_unit_sand.length( size )\n\t\t\t\t\t\tconst length_ball = $giper_baza_unit_sand.length_ball( size )\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst sand = $giper_baza_unit_sand.from( buf.slice( offset, offset + length_sand ) )\n\t\t\t\t\t\t\n\t\t\t\t\t\toffsets?.set( sand.buffer, offset )\n\t\t\t\t\t\toffset += sand.byteLength\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( length_ball ) {\n\t\t\t\t\t\t\tsand._ball = buf.slice( offset, offset + size )\n\t\t\t\t\t\t\toffset += length_ball\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t;( part.units as $giper_baza_unit[] ).push( sand )\n\t\t\t\t\t\t\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase 'gift': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( !part ) $mol_fail( new Error( 'Land is undefined' ) )\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst length = $giper_baza_unit_gift.length()\n\t\t\t\t\t\tconst gift = $giper_baza_unit_gift.from( buf.slice( offset, offset + length ) )\n\t\t\t\t\t\t\n\t\t\t\t\t\toffsets?.set( gift.buffer, offset )\n\t\t\t\t\t\t;( part.units as $giper_baza_unit[] ).push( gift )\n\t\t\t\t\t\t\n\t\t\t\t\t\toffset += gift.byteLength\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tdefault: return $mol_fail( new Error( 'Unknown Kind', { cause: { kind, offset } } ) )\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn [ ... parts ]\n\t\t\t\n\t\t}\n\t\n\t\tstatic length( parts: $giper_baza_pack_parts ) {\n\t\t\t\n\t\t\tlet size = 0\n\t\t\t\n\t\t\tfor( const [ land, { units, faces } ] of parts ) {\n\t\t\t\t\n\t\t\t\tsize += $giper_baza_pack_head_size\n\t\t\t\tsize += faces.size * $giper_baza_face.length()\n\t\t\t\t\n\t\t\t\tfor( const unit of units ) {\n\t\t\t\t\t\n\t\t\t\t\tsize += unit.byteLength\n\t\t\t\t\t\n\t\t\t\t\tif( unit instanceof $giper_baza_auth_pass ) continue\n\t\t\t\t\t\n\t\t\t\t\tunit.choose({\n\t\t\t\t\t\tgift: gift => {},\n\t\t\t\t\t\tseal: seal => {},\n\t\t\t\t\t\tsand: sand => size += $giper_baza_unit_sand.length_ball( sand.ball().byteLength ),\n\t\t\t\t\t})\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn size\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tstatic make( parts: $giper_baza_pack_parts ) {\n\t\t\t\n\t\t\tlet length = this.length( parts )\n\t\t\tif( length === 0 ) $mol_fail( new Error( 'Empty Pack' ) )\n\t\t\t\n\t\t\tconst buff = new Uint8Array( length )\n\t\t\tconst pack = new $giper_baza_pack( buff.buffer )\n\t\t\t\n\t\t\tlet offset = 0\n\t\t\t\n\t\t\t// fill Lands\n\t\t\tfor( const [ id, { units, faces } ] of parts ) {\n\t\t\t\t\n\t\t\t\t// Head\n\t\t\t\tbuff.set( $giper_baza_pack_four_code, offset ) // 4B\n\t\t\t\tbuff.set( new $giper_baza_link( id ).toBin(), offset + 4 ) // Land = Lord + Area\n\t\t\t\tpack.uint16( offset + 22, faces.size ) // Vers\n\t\t\t\toffset += 24\n\t\t\t\t\n\t\t\t\t// Peer + Tick + Time + Summ for every Face\n\t\t\t\tfor( const [ peer, face ] of faces ) {\n\t\t\t\t\tbuff.set( new $giper_baza_link( peer ).toBin(), offset )\n\t\t\t\t\tpack.uint16( offset + 6, face.tick )\n\t\t\t\t\tpack.uint32( offset + 8, face.time )\n\t\t\t\t\tpack.uint32( offset + 12, face.summ )\n\t\t\t\t\toffset += $giper_baza_face.length()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t// Units + Balls\n\t\t\t\tfor( const unit of units ) {\n\t\t\t\t\t\n\t\t\t\t\tbuff.set( unit.asArray(), offset )\n\t\t\t\t\toffset += unit.byteLength\n\t\t\t\t\t\n\t\t\t\t\tif( unit instanceof $giper_baza_auth_pass ) continue\n\t\t\t\t\t\n\t\t\t\t\tunit.choose({\n\t\t\t\t\t\tgift: gift => {},\n\t\t\t\t\t\tseal: seal => {},\n\t\t\t\t\t\tsand: sand => {\n\t\t\t\t\t\t\tif( !sand.big() ) return\n\t\t\t\t\t\t\tbuff.set( sand.ball(), offset )\n\t\t\t\t\t\t\toffset += $giper_baza_unit_sand.length_ball( sand.size() )\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn pack\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $.$$ {\n\t$mol_test({\n\t\t\n\t\t\"faces serial and parse\"( $ ) {\n\t\t\t\n\t\t\tconst land1 = new $giper_baza_link( '12345678_12345678' )\n\t\t\tconst land2 = new $giper_baza_link( '87654321_87654321' )\n\t\t\tconst land3 = new $giper_baza_link( '87654321_00000000' )\n\t\t\t\n\t\t\tconst peer1 = new $giper_baza_link( '12345678' )\n\t\t\tconst peer2 = new $giper_baza_link( '87654321' )\n\t\t\t\n\t\t\tconst faces1 = new $giper_baza_face_map\n\t\t\tfaces1.peer_time( peer1.str, $giper_baza_time_now(), 0 )\n\t\t\tfaces1.peer_summ( peer1.str, 0 )\n\t\t\tfaces1.peer_time( peer2.str, $giper_baza_time_now(), 0 )\n\t\t\tfaces1.peer_summ( peer2.str, 64_000 )\n\t\t\t\n\t\t\tconst faces2 = new $giper_baza_face_map\n\t\t\tfaces2.peer_time( peer1.str, $giper_baza_time_now(), 0)\n\t\t\tfaces2.peer_summ( peer1.str, 1 )\n\t\t\tfaces2.peer_time( peer2.str, $giper_baza_time_now(), 1 )\n\t\t\t\n\t\t\tconst faces3 = new $giper_baza_face_map\n\t\t\t\n\t\t\tconst parts = [\n\t\t\t\t[ land1.str, new $giper_baza_pack_part( [], faces1 ) ],\n\t\t\t\t[ land2.str, new $giper_baza_pack_part( [], faces2 ) ],\n\t\t\t\t[ land3.str, new $giper_baza_pack_part( [], faces3 ) ],\n\t\t\t] as $giper_baza_pack_parts\n\t\t\t\n\t\t\tconst pack = $giper_baza_pack.make( parts )\n\t\t\t$mol_assert_equal( parts, pack.parts() )\n\t\t\t\n\t\t},\n\t\t\n\t\t\"units serial and parse\"( $ ) {\n\t\t\t\n\t\t\tconst land = new $giper_baza_link( '12345678_12345678' )\n\t\t\t\n\t\t\tconst pass = $.$giper_baza_auth.grab().pass()\n\t\t\tconst gift = $giper_baza_unit_gift.make()\n\t\t\t\n\t\t\tconst sand_small = $giper_baza_unit_sand.make( 5 )\n\t\t\t\n\t\t\tconst ball = new Uint8Array( $giper_baza_unit_sand.size_equator + 5 )\n\t\t\tconst sand_big = $giper_baza_unit_sand.make( ball.byteLength )\n\t\t\tsand_big.ball( ball )\n\t\t\t\n\t\t\tconst seal = $giper_baza_unit_seal.make( 15, true )\n\t\t\t\n\t\t\tconst parts = [\n\t\t\t\t[ land.str, new $giper_baza_pack_part([ pass, gift, sand_small, sand_big, seal ]) ],\n\t\t\t] as $giper_baza_pack_parts\n\t\t\t\n\t\t\tconst pack = $giper_baza_pack.make( parts )\n\t\t\t$mol_assert_equal( parts, pack.parts() )\n\t\t\t\n\t\t},\n\t\t\n\t})\n}\n","namespace $ {\n\t/** Whole global graph database which contains Lands. */\n\texport class $giper_baza_glob extends $mol_object {\n\t\t\n\t\tstatic lands_touched = new $mol_wire_set< string >()\n\t\t\n\t\t/** Glob synchronizer. */\n\t\t@ $mol_mem\n\t\tstatic yard() {\n\t\t\treturn new this.$.$giper_baza_yard\n\t\t}\n\t\t\n\t\t/** Land where Lord is King. Contains only main info */\n\t\tstatic home< Home extends typeof $giper_baza_flex_subj = typeof $giper_baza_flex_subj >( Home?: Home ) {\n\t\t\tconst home = this.Land( this.$.$giper_baza_auth.current().pass().lord() ).Data( Home ?? this.$.$giper_baza_flex_subj ) as InstanceType< Home >\n\t\t\tif( Home?.meta && !home.meta() ) home.meta( Home.meta )\n\t\t\treturn home\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tstatic king_grab( preset : $giper_baza_rank_preset = [[ null, this.$.$giper_baza_rank_read ]] ) {\n\t\t\t\n\t\t\tconst mapping = new Map( preset )\n\t\t\t\n\t\t\tconst king = this.$.$giper_baza_auth.grab()\n\t\t\tconst colony = ( $mol_wire_sync( this.$.$giper_baza_land ) as typeof $giper_baza_land ).make({ $: this.$ })\n\t\t\tcolony.auth = $mol_const( king )\n\t\t\t\n\t\t\tcolony.encrypted( ( mapping.get( null ) ?? this.$.$giper_baza_rank_deny ) === this.$.$giper_baza_rank_deny )\n\t\t\t\n\t\t\tconst self = this.$.$giper_baza_auth.current().pass()\n\t\t\tcolony.give( self, this.$.$giper_baza_rank_rule )\n\t\t\t\n\t\t\tfor( const [ key, rank ] of mapping ) colony.give( key, rank )\n\t\t\t\n\t\t\tthis.Land( colony.link() ).units_steal( colony )\n\t\t\t\n\t\t\treturn king\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tstatic land_grab( preset : $giper_baza_rank_preset = [[ null, this.$.$giper_baza_rank_read ]] ) {\n\t\t\treturn this.Land( this.king_grab( preset ).pass().lord() )\n\t\t}\n\t\t\n\t\t/** Standalone part of Glob which syncs separately, have own rights, and contains Units */\n\t\t@ $mol_mem_key\n\t\tstatic Land( link: $giper_baza_link ): $giper_baza_land {\n\t\t\t\n\t\t\tif( !link.str ) $mol_fail( new Error( 'Empty Land Link' ) )\n\t\t\t\n\t\t\tthis.lands_touched.add( link.str )\n\t\t\t\n\t\t\treturn this.$.$giper_baza_land.make({\n\t\t\t\tlink: $mol_const( link ),\n\t\t\t})\n\t\t\t\n\t\t}\n\t\t\n\t\t/** High level representation of stored data. */\n\t\tstatic Pawn< Pawn extends typeof $giper_baza_pawn > ( link: $giper_baza_link, Pawn: Pawn ) {\n\t\t\tconst land = this.Land( link.land() )\n\t\t\treturn land.Pawn( Pawn ).Head( link.head() )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic Seed() {\n\t\t\tconst link = $giper_baza_flex_deck_link.lord()\n\t\t\tconst seed = this.Pawn( link, $giper_baza_flex_seed ) \n\t\t\t// if( !$mol_wire_sync( seed ).meta() )\n\t\t\tthis.boot()\n\t\t\treturn seed\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tstatic boot() {\n\t\t\tconst file = $mol_file.relative( 'web.baza' )\n\t\t\tconst pack = $mol_wire_sync( $giper_baza_pack ).from( file.buffer() ) as $giper_baza_pack\n\t\t\tthis.apply_pack( pack )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tstatic apply_pack( pack: $giper_baza_pack ) {\n\t\t\treturn this.apply_parts( pack.parts() )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tstatic apply_parts( parts: $giper_baza_pack_parts ) {\n\t\t\t\n\t\t\tfor( const [ land_id, part ] of parts ) {\n\t\t\t\tconst land = this.Land( new this.$.$giper_baza_link( land_id ) )\n\t\t\t\tland.diff_apply( part.units )\n\t\t\t}\n\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\t$mol_test_mocks.push( $=> {\n\t\tclass $giper_baza_glob_mock extends $.$giper_baza_glob {\n\t\t\tstatic $ = $\n\t\t\tstatic lands_touched = new $mol_wire_set< string >()\n\t\t}\n\t\t$.$giper_baza_glob = $giper_baza_glob_mock\n\t} )\n\t\n}\n","namespace $ {\n\t\n\t/** Registry of Pawns as Deck entities. */\n\texport class $giper_baza_fund< Pawn > extends $mol_object {\n\t\t\n\t\tconstructor(\n\t\t\treadonly item_make: ( head: $giper_baza_link )=> Pawn\n\t\t) { super() }\n\t\t\n\t\t@ $mol_mem_key\n\t\tHead( head: $giper_baza_link ) {\n\t\t\treturn this.item_make( head )\n\t\t}\n\t\t\n\t\tData() {\n\t\t\treturn this.Head( $giper_baza_land_root.data )\n\t\t}\n\t\t\n\t\tTine() {\n\t\t\treturn this.Head( $giper_baza_land_root.tine )\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport type $giper_baza_mine_diff = { ins: readonly $giper_baza_unit[], del: readonly $giper_baza_unit[] }\n\t\n\texport class $giper_baza_mine_temp extends $mol_object {\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic land( land: $giper_baza_link ) {\n\t\t\treturn this.make({\n\t\t\t\tland: $mol_const( land )\n\t\t\t})\n\t\t}\n\t\t\n\t\tland() {\n\t\t\treturn $giper_baza_link.hole\n\t\t}\n\t\t\n\t\tunit_deletes = 0\n\t\tunit_inserts = 0\n\t\t\n\t\tball_inserts = 0\n\t\tball_deletes = 0\n\t\t\n\t\tunits_persisted = new WeakSet< $giper_baza_unit >()\n\t\t\n\t\t/** Updates Units in storage */\n\t\tunits_save( diff: $giper_baza_mine_diff ): void {}\n\t\t\n\t\t/** Loads Units from storage */\n\t\tunits_load(): readonly $giper_baza_unit[] {\n\t\t\treturn []\n\t\t}\n\t\t\n\t\t/** Loads Ball from storage */\n\t\tball_load( sand: $giper_baza_unit_sand ): Uint8Array< ArrayBuffer > {\n\t\t\treturn null!\n\t\t}\n\t\t\n\t}\n\t\n\texport let $giper_baza_mine = $giper_baza_mine_temp\n}\n","namespace $ {\n\t\n\t/** Atomic transaction. */\n\texport class $giper_baza_mine_fs_yym_act extends $mol_object2 {\n\t\t\n\t\tconstructor( public yym: $giper_baza_mine_fs_yym ) {\n\t\t\tsuper()\n\t\t}\n\t\t\n\t\ttransaction!: $mol_file_transaction\n\t\toffsets_del = new WeakMap< ArrayBuffer, number >\n\t\toffsets_ins = new WeakMap< ArrayBuffer, number >\n\t\t\n\t\t/** Stores data and returns offset in file. */\n\t\t@ $mol_action\n\t\tsave( ... data: [ ArrayBufferView< ArrayBuffer >, ... ArrayBufferView< ArrayBuffer >[] ] ) {\n\t\t\t\n\t\t\tlet offset = this.offsets_ins.get( data[0].buffer )\n\t\t\tif( offset === undefined ) {\n\t\t\t\t\n\t\t\t\toffset = this.yym.offsets().get( data[0].buffer )\n\t\t\t\tif( offset ) return offset\n\t\t\t\t\n\t\t\t\tlet size = data.reduce( ( sum, buf )=> sum + buf.byteLength, 0 )\n\t\t\t\tsize = Math.ceil( size / 8 ) * 8\n\t\t\t\t\n\t\t\t\toffset = this.yym.pool().acquire( size )\n\t\t\t\tthis.offsets_ins.set( data[0].buffer, offset )\n\t\t\t\tthis.yym.offsets().set( data[0].buffer, offset )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tthis.transaction.write({\n\t\t\t\tbuffer: data,\n\t\t\t\tposition: offset,\n\t\t\t})\n\t\t\t\n\t\t\treturn offset\n\t\t}\n\t\t\n\t\t/** Marks slice of file as free. */\n\t\t@ $mol_action\n\t\tfree( data: ArrayBufferView< ArrayBuffer >, size = data.byteLength ) {\n\t\t\t\n\t\t\tsize = Math.ceil( size / 8 ) * 8\n\t\t\t\n\t\t\tlet offset = this.offsets_del.get( data.buffer )\n\t\t\tif( offset === undefined ) {\n\t\t\t\t\n\t\t\t\toffset = this.yym.offsets().get( data.buffer )\n\t\t\t\tif( !offset ) {\n\t\t\t\t\treturn $mol_fail( new Error( 'Try to free non saved', { cause: { data, size } }, ))\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tthis.offsets_del.set( data.buffer, offset )\n\t\t\t\tthis.yym.pool().release( offset, size )\n\t\t\t\tthis.yym.offsets().delete( data.buffer )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tthis.transaction.write({\n\t\t\t\tbuffer: new Uint8Array( size ),\n\t\t\t\tposition: offset,\n\t\t\t})\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n\t/** Yin-Yan Mirrors Storage. */\n\texport class $giper_baza_mine_fs_yym extends $mol_object2 {\n\n\t\t/** Memory allocator. */\n\t\t@ $mol_mem\n\t\tpool( reset?: null ) {\n\t\t\t$mol_wire_solid()\n\t\t\treturn new $mol_memory_pool\n\t\t}\n\t\t\n\t\t/** Offsets of stored buffers. */\n\t\t@ $mol_mem\n\t\toffsets( reset?: null ) {\n\t\t\t$mol_wire_solid()\n\t\t\treturn new Map< ArrayBuffer, number >\n\t\t}\n\t\t\n\t\tconstructor(\n\t\t\t/** Yin & Yan mirrors files. */\n\t\t\treadonly sides: [ $mol_file, $mol_file ],\n\t\t) {\n\t\t\tsuper()\n\t\t}\n\t\t\n\t\tdestructor() {\n\t\t\t\n\t\t\tif( !this.sides[1].exists() ) return\n\t\t\t\n\t\t\tthis.sides[1].open( 'write_only' ).flush()\n\t\t\tthis.sides[0].exists( false )\n\t\t\tthis.pool( null )\n\t\t\tthis.offsets( null )\n\t\t\t\n\t\t} \n\t\t\n\t\t/** Prepare mirrors to read. */\n\t\t@ $mol_mem\n\t\t@ $mol_action\n\t\tload_init() {\n\t\t\tconst version = ( file: $mol_file )=> file.modified()?.valueOf() ?? 0\n\t\t\tif( version( this.sides[0] ) < version( this.sides[1] ) ) this.sides.reverse()\n\t\t}\n\t\t\n\t\t/** Load whole data. */\n\t\tload() {\n\t\t\tthis.load_init()\n\t\t\ttry {\n\t\t\t\tconst tx = this.sides[0].open( 'read_only' )\n\t\t\t\tconst data = tx.read()\n\t\t\t\ttx.destructor()\n\t\t\t\tthis.pool().acquire( Math.ceil( data.byteLength / 8 ) * 8 )\n\t\t\t\treturn data\n\t\t\t} catch( error: any ) {\n\t\t\t\tif( error.code === 'ENOENT' ) return new Uint8Array()\n\t\t\t\treturn $mol_fail_hidden( error )\n\t\t\t}\n\t\t}\n\t\t\n\t\t/** Safe writes to both mirrors. */\n\t\tatomic( task: ( act: $giper_baza_mine_fs_yym_act )=> void ) {\n\t\t\t\n\t\t\tthis.save_init()\n\t\t\t\n\t\t\tconst act = new $giper_baza_mine_fs_yym_act( this )\n\t\t\tconst tx1 = act.transaction = this.sides[1].open( 'create', 'write_only' )\n\t\t\ttask( act )\n\t\t\ttx1.flush()\n\t\t\ttx1.destructor()\n\t\t\t\n\t\t\tthis.sides.reverse()\n\t\t\tconst tx2 = act.transaction = this.sides[1].open( 'create', 'write_only' )\n\t\t\ttask( act )\n\t\t\ttx2.destructor()\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Prepares mirrors to write. */\n\t\t@ $mol_mem\n\t\tsave_init() {\n\t\t\t\n\t\t\t$mol_wire_solid()\n\t\t\t\n\t\t\tthis.load_init()\n\t\t\t\n\t\t\tif( this.sides[1].exists() ) {\n\t\t\t\t$mol_wire_sync( this.$ ).$mol_log3_rise({\n\t\t\t\t\tplace: this,\n\t\t\t\t\tmessage: 'Reset mirror',\n\t\t\t\t\tfile: this.sides[1].path(),\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tthis.sides[0].clone( this.sides[1].path() )\n\t\t\t\n\t\t}\n\t\t\n\t\tempty() {\n\t\t\tthis.load_init()\n\t\t\treturn this.pool().empty()\n\t\t}\n\t\t\n\t}\n\t\n\texport class $giper_baza_mine_fs extends $giper_baza_mine_temp {\n\t\t\n\t\t@ $mol_mem \n\t\tstore() {\n\t\t\t$mol_wire_solid()\n\t\t\tconst land = this.land()\n\t\t\tconst area = land.area()\n\t\t\t\n\t\t\tconst root = this.$.$mol_file.relative( '.baza' )\n\t\t\tlet dir = root.resolve( land.str.slice( 0, 2 ) )\n\t\t\tif( area.str ) dir = dir.resolve( area.str.slice( -2 ) )\n\t\t\t\n\t\t\tdir.exists( true )\n\t\t\t\n\t\t\treturn new $giper_baza_mine_fs_yym([\n\t\t\t\tdir.resolve( land.str + '.yin.baza' ),\n\t\t\t\tdir.resolve( land.str + '.yan.baza' ),\n\t\t\t])\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstore_init() {\n\t\t\t\n\t\t\tif( !this.store().empty() ) return\n\t\t\t\n\t\t\tconst head = $giper_baza_pack.make([ [ this.land().str, new $giper_baza_pack_part ] ])\n\t\t\tthis.store().atomic( side => side.save( head ) )\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\toverride units_save( diff: $giper_baza_mine_diff ) {\n\t\t\t\n\t\t\tthis.store_init()\n\t\t\t\n\t\t\tthis.store().atomic( side => {\n\t\t\t\t\n\t\t\t\tfor( const unit of diff.del ) {\n\t\t\t\t\tif( unit instanceof $giper_baza_unit_sand && unit.big() ) {\n\t\t\t\t\t\tside.free( unit, unit.byteLength + unit.size() )\n\t\t\t\t\t} else {\n\t\t\t\t\t\tside.free( unit )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfor( const unit of diff.ins ) {\n\t\t\t\t\tif( unit instanceof $giper_baza_unit_sand && unit.big() ) side.save( unit, unit.ball() )\n\t\t\t\t\telse side.save( unit )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} )\n\t\t\t\n\t\t\tfor( const unit of diff.ins ) {\n\t\t\t\tthis.units_persisted.add( unit )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\toverride units_load() {\n\t\t\t\n\t\t\tthis.store().pool( null )\n\t\t\t\n\t\t\tconst buf = this.store().load()\n\t\t\tif( !buf.length ) return []\n\t\t\t\n\t\t\tconst pack = $giper_baza_pack.from( buf )\n\t\t\t\n\t\t\tconst parts = new Map( pack.parts( this.store().offsets(), this.store().pool() ) )\n\t\t\tif( parts.size > 1 ) return $mol_fail( new Error( 'Wrong lands count', { cause: { count: parts.size } } ) )\n\t\t\t\n\t\t\tfor( const [ land, part ] of parts ) {\n\t\t\t\tif( land !== this.land().str ) return $mol_fail( new Error( 'Unexpected land', { cause: { expected: this.land().str, existen: land } } ) )\n\t\t\t\t\n\t\t\t\tfor( const unit of part.units ) {\n\t\t\t\t\tthis.units_persisted.add( unit )\n\t\t\t\t\t// $giper_baza_unit_trusted_grant( unit )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn part.units\n\t\t\t}\n\t\t\t\n\t\t\treturn []\n\t\t}\n\t\t\n\t\tdestructor() {\n\t\t\tthis.store().destructor()\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t$.$giper_baza_mine = $giper_baza_mine_fs\n}\n","namespace $ {\n\t$mol_test_mocks.push( $=> {\n\t\tclass $giper_baza_mine_mock extends $.$giper_baza_mine_temp {}\n\t\t$.$giper_baza_mine = $giper_baza_mine_mock\n\t} )\n}\n","namespace $ {\n export class $mol_bus< Data > extends $mol_object {\n\t\t\n readonly channel = null as null | BroadcastChannel\n\t\t\n\t\tconstructor(\n\t\t\treadonly name: string,\n\t\t\treadonly handle: ( data: Data )=> void\n\t\t) {\n\t\t\tsuper()\n\n\t\t\ttry {\n\t\t\t\tthis.channel = new BroadcastChannel( name )\n\t\t\t\tthis.channel.onmessage = ( event: MessageEvent< Data > )=> this.handle( event.data )\n\t\t\t} catch (error) {\n\t\t\t\tconsole.warn(error)\n\t\t\t}\n }\n\t\t\n\t\tdestructor() {\n\t\t\tthis.channel?.close()\n\t\t}\n\t\t\n\t\tsend( data: Data ) {\n\t\t\tthis.channel?.postMessage( data )\n\t\t}\n\t\t\n }\n}\n","namespace $ {\n\t$mol_test_mocks.push( $=> {\n\t\tclass $mol_bus< Data > extends $.$mol_bus< Data > {\n\t\t\tsend() {}\n\t\t}\n\t\t$.$mol_bus = $mol_bus\n\t} )\n}\n","namespace $ {\n\t\n\tfunction batch< Host, Item >(\n\t\thost: Host,\n\t\titems: ( this: Host )=> Item[],\n\t\ttask: ( this: Host, item: Item[] )=> void,\n\t) {\n\n\t\titems.call( host ) // track deps\n\t\t\n\t\tconst skip = new Set< Item >()\n\t\t\n\t\twhile( true ) {\n\t\t\t\n\t\t\tconst snap = $mol_wire_sync( items ).call( host )\n\t\t\tconst news = snap.filter( item => !skip.has( item ) )\n\t\t\tif( !news.length ) break\n\t\t\t\n\t\t\t$mol_wire_sync( task ).call( host, news )\n\t\t\tfor( const item of news ) skip.add( item )\n\n\t\t}\n\t\t\n\t}\n\n\texport const $giper_baza_land_root = {\n\t\tdata: new $giper_baza_link( '' ), // 0\n\t\ttine: new $giper_baza_link( 'AQAAAAAA' ), // 1\n\t}\n\t\n\t/** Standalone part of Glob which syncs separately, have own rights, and contains Units */\n\texport class $giper_baza_land extends $mol_object {\n\t\t\n\t\t/** Auth Independent actor with global unique id generated from Auth key */\n\t\tlink() {\n\t\t\treturn this.auth().pass().lord()\n\t\t}\n\t\t\n\t\t/** Auth Private key generated with Proof of Work */\n\t\tauth() {\n\t\t\treturn this.$.$giper_baza_auth.current()\n\t\t}\n\t\t\n\t\tfaces = new $giper_baza_face_map\n\t\t\n\t\ttick() {\n\t\t\treturn this.faces.tick( this.auth().pass().peer() )\n\t\t}\n\n\t\t_pass = new $mol_wire_dict< string /*Lord*/, $giper_baza_auth_pass >()\n\t\t_seal_item = new Map< string /*Lord*/, Map< string /*Item*/, $giper_baza_unit_seal > >()\n\t\t_seal_shot = new Map< string /*Shot*/, $giper_baza_unit_seal >()\n\t\t_gift = new $mol_wire_dict< string /*Lord*/, $giper_baza_unit_gift >()\n\t\t_sand = new $mol_wire_dict< string /*Head*/, $mol_wire_dict< string /*Lord*/, $mol_wire_dict< string /*Self*/, $giper_baza_unit_sand > > >()\n\t\t_unit_hash = new Map< string /*Hash*/, $giper_baza_unit_base >()\n\t\t\n\t\tpass_add( pass: $giper_baza_auth_pass ) {\n\t\t\tif( this._pass.has( pass.lord().str ) ) return\n\t\t\tthis._pass.set( pass.lord().str, pass )\n\t\t}\n\t\t\n\t\tseal_add( seal: $giper_baza_unit_seal ) {\n\t\t\t\n\t\t\tconst prev = this._seal_shot.get( seal.shot().str )\n\t\t\tif( prev ) return\n\t\t\t\n\t\t\tfor( const hash of seal.hash_list() ) {\n\t\t\t\t\n\t\t\t\tconst prev = this.seal_item_get( seal.lord(), hash )\n\t\t\t\t\n\t\t\t\tif( $giper_baza_unit_seal.compare( prev, seal ) <= 0 ) continue\n\t\t\t\t\n\t\t\t\tif( prev?.alive_items.has( hash.str ) ) {\n\t\t\t\t\tprev.alive_items.delete( hash.str )\n\t\t\t\t\tif( !prev.alive_items.size ) this.seal_del( prev )\n\t\t\t\t\tseal.alive_items.add( hash.str )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tthis.seal_item_set( seal, hash )\n\t\t\t}\n\t\t\t\n\t\t\tthis._seal_shot.set( seal.shot().str, seal )\n\t\t\t\n\t\t}\n\t\t\n\t\tgift_add( gift: $giper_baza_unit_gift ) {\n\t\t\t\n\t\t\tconst mate = gift.mate()\n\t\t\t\n\t\t\tconst prev = this._gift.get( mate.str )\n\t\t\tif( $giper_baza_unit_gift.compare( prev, gift ) <= 0 ) return\n\t\t\t\n\t\t\tconst peer = gift.lord().peer()\n\t\t\t\n\t\t\tif( prev ) this.gift_del( prev )\n\t\t\tthis.faces.peer_summ_shift( peer.str, +1 )\n\t\t\t\n\t\t\tthis._gift.set( mate.str, gift )\n\t\t\tthis.faces.peer_time( peer.str, gift.time(), gift.tick() )\n\t\t\t\n\t\t\tthis.unit_seal_inc( gift )\n\t\t\t\n\t\t\tif( ( prev?.rank() ?? $giper_baza_rank_deny ) > gift.rank() ) this.rank_audit()\n\t\t\t\n\t\t}\n\t\t\n\t\tsand_add( sand: $giper_baza_unit_sand ) {\n\t\t\t\n\t\t\tlet peers = this._sand.get( sand.head().str )\n\t\t\tif( !peers ) this._sand.set( sand.head().str, peers = new $mol_wire_dict )\n\t\t\t\n\t\t\tlet sands = peers.get( sand.lord().str )\n\t\t\tif( !sands ) peers.set( sand.lord().str, sands = new $mol_wire_dict )\n\t\t\t\n\t\t\tconst prev = sands.get( sand.self().str )\n\t\t\tif( $giper_baza_unit_sand.compare( prev, sand ) <= 0 ) return\n\t\t\t\n\t\t\tconst peer = sand.lord().peer()\n\t\t\t\n\t\t\tif( prev ) this.sand_del( prev )\n\t\t\tthis.faces.peer_summ_shift( peer.str, +1 )\n\t\t\n\t\t\tsands.set( sand.self().str, sand )\n\t\t\tthis._self_all.set( sand.self().str, !sand.dead() )\n\t\t\t\n\t\t\tthis.faces.peer_time( peer.str, sand.time(), sand.tick() )\n\t\t\t\n\t\t\tthis.unit_seal_inc( sand )\n\t\t\t\n\t\t}\n\t\t\n\t\tunits_reaping = new Set< $giper_baza_unit_base >()\n\t\t\n\t\tunit_reap( unit: $giper_baza_unit_base ) {\n\t\t\tif( !this.mine().units_persisted.has( unit ) ) return\n\t\t\tthis.units_reaping.add( unit )\n\t\t}\n\t\t\n\t\tunit_seal_inc( unit: $giper_baza_unit_base ) {\n\t\t\t\n\t\t\tunit._alive = true\n\t\t\tif( !unit.encoded() ) return\n\t\t\t\n\t\t\tthis._unit_hash.set( unit.hash().str, unit )\n\t\t\t\n\t\t\tconst seal = this.unit_seal( unit )\n\t\t\tif( !seal ) return\n\t\t\t\n\t\t\tseal.alive_items.add( unit.hash().str )\n\t\t\t\n\t\t}\n\t\t\n\t\tunit_seal_dec( unit: $giper_baza_unit_base ) {\n\t\t\t\n\t\t\tunit._alive = false\n\t\t\t\n\t\t\tif( !unit.encoded() ) return\n\t\t\t\n\t\t\tthis._unit_hash.delete( unit.hash().str )\n\t\t\t\n\t\t\tconst seal = this.unit_seal( unit )\n\t\t\tif( !seal ) return\n\t\t\t\n\t\t\tseal.alive_items.delete( unit.hash().str )\n\t\t\t\n\t\t\tif( !seal.alive_items.size ) this.seal_del( seal )\n\t\t\t\n\t\t}\n\t\t\n\t\tseal_del( seal: $giper_baza_unit_seal ) {\n\t\t\t\n\t\t\tconst shot = seal.shot()\n\t\t\tif( !this._seal_shot.has( shot.str ) ) return\n\t\t\t\n\t\t\tthis._seal_shot.delete( shot.str )\n\t\t\t\n\t\t\tfor( const hash of seal.hash_list() ) {\n\t\t\t\tif( this.seal_item_get( seal.lord(), hash ) === seal ) {\n\t\t\t\t\tthis.seal_item_del( seal.lord(), hash )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tthis.unit_reap( seal )\n\t\t\t\n\t\t}\n\t\t\n\t\tgift_del( gift: $giper_baza_unit_gift ) {\n\t\t\t\n\t\t\tconst prev = this._gift.get( gift.mate().str )\n\t\t\tif( prev !== gift ) return\n\t\t\t\n\t\t\tthis._gift.delete( gift.mate().str )\n\t\t\tthis.faces.peer_summ_shift( gift.lord().peer().str, -1 )\n\t\t\t\n\t\t\tthis.unit_reap( gift )\n\t\t\tthis.unit_seal_dec( gift )\n\t\t\t\n\t\t}\n\t\t\n\t\tsand_del( sand: $giper_baza_unit_sand ) {\n\t\t\t\n\t\t\tconst peers = this._sand.get( sand.head().str )\n\t\t\tif( !peers ) return\n\t\t\t\n\t\t\tconst sands = peers.get( sand.lord().str )\n\t\t\tif( !sands ) return\n\t\t\t\n\t\t\tconst prev = sands.get( sand.self().str )\n\t\t\tif( prev !== sand ) return\n\t\t\t\n\t\t\tsands.delete( sand.self().str )\n\t\t\tthis.faces.peer_summ_shift( sand.lord().peer().str, -1 )\n\t\t\t\n\t\t\tthis.unit_reap( sand )\n\t\t\tthis.unit_seal_dec( sand )\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tlord_pass( lord: $giper_baza_link ) {\n\t\t\treturn this._pass.get( lord.str ) ?? null\n\t\t}\n\t\t\n\t\tunit_seal( unit: $giper_baza_unit_base ) {\n\t\t\t\n\t\t\tif( !unit.encoded() ) return null\n\t\t\t\n\t\t\treturn this.seal_item_get( unit.lord(), unit.hash() ) ?? null\n\t\t\t\n\t\t}\n\t\t\n\t\tseal_item_get( lord: $giper_baza_link, hash: $giper_baza_link ) {\n\t\t\treturn this._seal_item.get( lord.str )?.get( hash.str )\n\t\t}\n\t\t\n\t\tseal_item_del( lord: $giper_baza_link, hash: $giper_baza_link ) {\n\t\t\tthis._seal_item.get( lord.str )?.delete( hash.str )\n\t\t}\n\t\t\n\t\tseal_item_set( seal: $giper_baza_unit_seal, hash: $giper_baza_link ) {\n\t\t\t\n\t\t\tlet seals = this._seal_item.get( seal.lord().str )\n\t\t\tif( !seals ) this._seal_item.set( seal.lord().str, seals = new Map )\n\t\t\t\n\t\t\tseals.set( hash.str, seal )\n\t\t\t\n\t\t}\n\t\t\n\t\tsand_get( head: $giper_baza_link, lord: $giper_baza_link, self: $giper_baza_link ) {\n\t\t\treturn this._sand.get( head.str )?.get( lord.str )?.get( self.str ) ?? null\n\t\t}\n\t\t\n\t\t_self_all = new Map< string /*Self*/, boolean /*alive*/ >()\n\t\t\n\t\t/** Generates unique local id base on optional idea number or random. */\n\t\t@ $mol_action\n\t\tself_make( idea = Math.floor( Math.random() * 2**48 ) ): $giper_baza_link {\n\t\t\t\n\t\t\tconst auth = this.auth()\n\t\t\tconst rank = this.pass_rank( auth.pass() )\n\t\t\t\n\t\t\tif( rank < $giper_baza_rank_tier.post ) $mol_fail( new Error( `Rank too low (${ rank })` ) )\n\t\t\t\n\t\t\tfor( let i = 0; i < 4096; ++i ) {\n\t\t\t\t\n\t\t\t\tidea = $mol_hash_numbers([ idea ])\n\t\t\t\tif( !idea ) continue\n\t\t\t\t\n\t\t\t\tconst idea_link = $giper_baza_link.from_int( idea )\n\t\t\t\tif( /[æÆ]/.test( idea_link.str ) ) continue\n\t\t\t\tif( this._self_all.has( idea_link.str ) ) continue\n\t\t\t\t\n\t\t\t\tthis._self_all.set( idea_link.str, false )\n\t\t\t\treturn idea_link\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_fail( new Error( `Too long self generation` ) )\n\t\t}\n\t\t\n\t\t/** Makes new Area based on Idea or random. Once transfers rights from this Land. */\n\t\t@ $mol_action\n\t\tarea_make( idea = Math.floor( $mol_wire_sync( Math ).random() * 2**48 ) ) {\n\t\t\t\n\t\t\t// this.saving()\n\t\t\t\n\t\t\tlet id = ''\n\t\t\twhile( true ) {\n\t\t\t\t\n\t\t\t\tidea = $mol_hash_numbers([ idea ])\n\t\t\t\tif( !idea ) continue\n\t\t\t\t\n\t\t\t\tid = $giper_baza_link.from_int( idea ).str\n\t\t\t\tif( /[æÆ]/.test( id ) ) continue\n\t\t\t\t\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t\n\t\t\tconst link = new $giper_baza_link( this.link().lord().str + '_' + id )\n\t\t\t\n\t\t\tconst area = this.$.$giper_baza_glob.Land( link )\n\t\t\t\n\t\t\tarea.inherit()\n\t\t\tarea.bus()\n\t\t\tarea.sync_mine()\n\t\t\tarea.sync_yard()\n\t\t\t\n\t\t\treturn area\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tsync_rights() {\n\t\t\treturn new $mol_wire_atom( '', ()=> this.inherit() ).fresh()\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tinherit() {\n\t\t\t\n\t\t\tconst area = this.link()\n\t\t\tconst lord = this.link().lord()\n\t\t\tif( area.str === lord.str ) return\n\t\t\t\n\t\t\tconst Lord = this.$.$giper_baza_glob.Land( lord )\n\t\t\tLord.units_saving()\n\t\t\t\n\t\t\tconst units = new Set< $giper_baza_unit >()\n\t\t\t\n\t\t\tfor( const gift of Lord._gift.values() ) {\n\t\t\t\t\n\t\t\t\tconst prev = $mol_wire_sync( this._gift ).get( gift.mate().str )\n\t\t\t\tif( $giper_baza_unit_gift.compare( prev, gift ) <= 0 ) continue\n\t\t\t\t\n\t\t\t\tconst seal = Lord.unit_seal( gift )\n\t\t\t\tif( !seal ) continue\n\t\t\t\t\n\t\t\t\tunits.add( gift )\n\t\t\t\tunits.add( seal )\n\t\t\t\tunits.add( Lord.lord_pass( gift.lord() )! )\n\t\t\t\t\n\t\t\t\tconst mate = gift.mate()\n\t\t\t\tif( mate.str ) units.add( Lord.lord_pass( mate )! )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tlet part = $giper_baza_pack_part.from([ ... units ])\n\t\t\tconst pack = $giper_baza_pack.make([[ this.link().str, part ]])\n\t\t\t\n\t\t\tpart = pack.parts()[0][1]\n\t\t\tthis.diff_apply( part.units )\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Data root */\n\t\t@ $mol_mem_key\n\t\tData< Pawn extends typeof $giper_baza_pawn >( Pawn: Pawn ) {\n\t\t\treturn this.Pawn( Pawn ).Head( $giper_baza_land_root.data )\n\t\t} \n\t\t\n\t\t/** Lands for inheritance */\n\t\t@ $mol_mem\n\t\tTine() {\n\t\t\treturn this.Pawn( $giper_baza_list_link ).Head( $giper_baza_land_root.tine ) \n\t\t} \n\t\t\n\t\t/** High level representation of stored data */\n\t\t@ $mol_mem_key\n\t\tPawn< Pawn extends typeof $giper_baza_pawn >( Pawn: Pawn ): $giper_baza_fund< InstanceType< Pawn > > {\n\t\t\treturn new $giper_baza_fund( ( head: $giper_baza_link )=> {\n\t\t\t\treturn ( Pawn as typeof $giper_baza_pawn ).make({\n\t\t\t\t\tland: $mol_const( this ),//.sync(),\n\t\t\t\t\thead: $mol_const( head ),\n\t\t\t\t}) as InstanceType< Pawn >\n\t\t\t} )\n\t\t} \n\t\t\n\t\t/** Total count of Units inside Land. */\n\t\t@ $mol_mem\n\t\ttotal() {\n\t\t\t\n\t\t\tlet total = this._gift.size + this._seal_shot.size\n\t\t\t\n\t\t\tfor( const peers of this._sand.values() ) {\n\t\t\t\tfor( const units of peers.values() ) {\n\t\t\t\t\ttotal += units.size\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn total\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tking_pass() {\n\t\t\treturn this.lord_pass( this.link().lord() )!\n\t\t}\n\t\t\n\t\t/** Rights level of Pass for Land. */\n\t\t@ $mol_mem_key\n\t\tpass_rank( pass: $giper_baza_auth_pass | null, next?: typeof $giper_baza_rank.Value ): typeof $giper_baza_rank.Value {\n\t\t\t\n\t\t\tconst prev = this.lord_rank( pass?.lord() ?? null )\n\t\t\t\n\t\t\tif( next === undefined ) return prev\n\t\t\tif( next === prev ) return prev\n\t\t\t\n\t\t\tthis.give( pass, next )\n\t\t\treturn next\n\t\t\t\n\t\t}\n\t\t\n\t\tlord_tier( lord: $giper_baza_link ) {\n\t\t\treturn $giper_baza_rank_tier_of( this.lord_rank( lord ) )\n\t\t}\n\t\t\n\t\tlord_rate( lord: $giper_baza_link ) {\n\t\t\treturn $giper_baza_rank_rate_of( this.lord_rank( lord ) )\n\t\t}\n\t\t\n\t\t/** Rights level of Lord for Land. Works only when Pass for Lord exists in Land. */\n\t\tlord_rank( lord: $giper_baza_link | null, next?: typeof $giper_baza_rank.Value ) {\n\t\t\t\n\t\t\tif( lord?.str === this.link().lord().str ) return $giper_baza_rank_rule\n\t\t\t\n\t\t\tif( next === undefined ) {\n\t\t\t\treturn this._gift.get( lord?.str ?? '' )?.rank()\n\t\t\t\t\t?? this._gift.get( $giper_baza_link.hole.str )?.rank()\n\t\t\t\t\t?? ( this.encrypted() ? $giper_baza_rank_deny : $giper_baza_rank_read )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst pass = lord ? this.lord_pass( lord ) : null\n\t\t\t// if( !pass ) $mol_fail( new Error( `No Pass for ${ lord }` ) )\n\t\t\t\n\t\t\treturn this.pass_rank( pass, next )\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Picks units between Face and current state. */\n\t\tdiff_units( skip_faces = new $giper_baza_face_map ): $giper_baza_unit[] {\n\t\t\t\n\t\t\tthis.units_signing()\n\t\t\t\n\t\t\tconst skipped = new Map< string, Set< $giper_baza_unit_base > >()\n\t\t\tconst delta = new Set< $giper_baza_unit_base >()\n\t\t\tconst passes = new Set< $giper_baza_auth_pass >()\n\t\t\tconst seals = new Set< $giper_baza_unit_seal >()\n\t\t\t\n\t\t\tfunction collect( unit: $giper_baza_unit_base ) {\n\t\t\t\t\n\t\t\t\tconst peer = unit.lord().peer().str\n\t\t\t\tconst face_limit = skip_faces.get( peer )?.time_tick ?? 0\n\t\t\t\t\n\t\t\t\tif( unit.time_tick() > face_limit ) return delta.add( unit )\n\n\t\t\t\tconst skipped_units = skipped.get( peer )\n\t\t\t\t\n\t\t\t\tif( skipped_units ) skipped_units.add( unit )\n\t\t\t\telse skipped.set( peer, new Set([ unit ]) )\n\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t\n\t\t\tfor( const gift of this._gift.values() ) {\n\t\t\t\tcollect( gift )\n\t\t\t\tif( gift.mate().str ) {\n\t\t\t\t\tif( skip_faces.has( gift.lord().peer().str ) ) continue\n\t\t\t\t\tconst mate_pass = this.lord_pass( gift.mate() )\n\t\t\t\t\tif( mate_pass ) passes.add( mate_pass )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tfor( const kids of this._sand.values() ) {\n\t\t\t\tfor( const peers of kids.values() ) {\n\t\t\t\t\tfor( const sand of peers.values() ) {\n\t\t\t\t\t\tthis.sand_load( sand )\n\t\t\t\t\t\tcollect( sand )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t// detect Unit absence and then restore all for Peer\n\t\t\tfor( const [ peer, face ] of skip_faces ) {\n\t\t\t\t\n\t\t\t\tconst skipped_units = skipped.get( peer )\n\t\t\t\t\n\t\t\t\tconst skip_mass = skipped_units?.size ?? 0\n\t\t\t\tif( skip_mass <= face.summ ) continue\n\t\t\t\t\n\t\t\t\t$mol_wire_sync( this.$ ).$mol_log3_warn({\n\t\t\t\t\tplace: this,\n\t\t\t\t\tmessage: 'Fail Summ',\n\t\t\t\t\thint: 'Relax and wait for full peer resync',\n\t\t\t\t\tpeer,\n\t\t\t\t\tskip_mass,\n\t\t\t\t\tpeer_face: face,\n\t\t\t\t\tself_face: this.faces.get( peer ),\n\t\t\t\t})\n\t\t\t\t\n\t\t\t\tfor( const unit of skipped_units! ) delta.add( unit )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tfor( const unit of delta ) {\n\t\t\t\t\n\t\t\t\tconst seal = this.seal_item_get( unit.lord(), unit.hash() )\n\t\t\t\t\n\t\t\t\tif( seal ) seals.add( seal )\n\t\t\t\telse delta.delete( unit )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tfor( const unit of delta ) {\n\t\t\t\t\n\t\t\t\tif( skip_faces.has( unit.lord().peer().str ) ) continue\n\t\t\t\t\n\t\t\t\tconst pass = this.lord_pass( unit.lord() )\n\t\t\t\tif( !pass ) return $mol_fail( new Error( 'No pass for lord' ) )\n\t\t\t\t\n\t\t\t\tpasses.add( pass )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn [ ... passes, ... seals, ... delta ]\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Picks units between Face and current state and make Part. */\n\t\t// @ $mol_action\n\t\tdiff_part( skip_faces = new $giper_baza_face_map ): $giper_baza_pack_part {\n\t\t\tconst units = this.diff_units( skip_faces )\n\t\t\t\n\t\t\tconst faces = new $giper_baza_face_map\n\t\t\tfor( const unit of units ) {\n\t\t\t\t\n\t\t\t\tconst peer = unit.lord().peer()\n\t\t\t\tif( faces.has( peer.str ) ) continue\n\t\t\t\t\n\t\t\t\tconst face = this.faces.get( peer.str )\n\t\t\t\tif( !face ) continue\n\t\t\t\t\n\t\t\t\tfaces.set( peer.str, face.clone() )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn new $giper_baza_pack_part( units, faces )\n\t\t}\n\t\t\n\t\t/** Picks units between Face and current state and make Parts. */\n\t\t// @ $mol_action\n\t\tdiff_parts( skip_faces = new $giper_baza_face_map ): $giper_baza_pack_parts {\n\t\t\treturn [[ this.link().str, this.diff_part( skip_faces ) ]]\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tface_pack(): $giper_baza_pack {\n\t\t\treturn $giper_baza_pack.make([[\n\t\t\t\tthis.link().str,\n\t\t\t\tnew $giper_baza_pack_part( [], this.faces.clone() ),\n\t\t\t]])\n\t\t}\n\t\t\n\t\t/** Applies Diff to current state with verification. */\n\t\t@ $mol_action\n\t\tdiff_apply( units: readonly $giper_baza_unit[], skip_load?: 'skip_load' ) {\n\t\t\t\n\t\t\tif( units.length === 0 ) return\n\t\t\t\n\t\t\tif( !skip_load ) this.loading()\n\t\t\t\n\t\t\tunits = $mol_wire_sync( this.$ ).$giper_baza_unit_sort( units )\n\t\t\t\n\t\t\tconst passes = new Map< string/*Lord*/, $giper_baza_auth_pass >()\n\t\t\t\n\t\t\tconst mixin_area = this.link().toBin()\n\t\t\tconst mixin_lord = this.link().lord().toBin()\n\t\t\t\n\t\t\tfor( const unit of units ) {\n\t\t\t\tif( unit instanceof $giper_baza_auth_pass ) {\n\t\t\t\t\tpasses.set( unit.hash().str, unit )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tfor( const unit of units ) if( unit instanceof $giper_baza_unit_seal ) {\n\t\t\t\t\n\t\t\t\tconst lord_pass = this.lord_pass( unit.lord() ) ?? passes.get( unit.lord().str )\n\t\t\t\tif( !lord_pass ) return this.$.$mol_fail( new Error( `No Pass for Lord`, { cause: unit.lord() } ) )\n\t\t\t\t\n\t\t\t\tif( this.$.$giper_baza_unit_trusted_check( unit ) ) continue\n\t\t\t\t\n\t\t\t\tconst mixin = unit.wide() ? mixin_lord : mixin_area\n\t\t\t\tconst sens = unit.shot().mix( mixin )\n\t\t\t\t\n\t\t\t\tconst checked = $mol_wire_sync( lord_pass.auditor() ).verify( sens, unit.sign() )\n\t\t\t\tif( !checked ) return $mol_fail( new Error( `Wrong Sign` ) )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tfor( const unit of units ) {\n\t\t\t\tif( unit instanceof $giper_baza_unit_seal ) {\n\t\t\t\t\t$giper_baza_unit_trusted_grant( unit )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tfor( const unit of units ) {\n\t\t\t\t\n\t\t\t\tif( unit instanceof $giper_baza_auth_pass ) continue\n\t\t\t\t\n\t\t\t\tif( this.lord_tier( unit.lord() ) < unit.tier_min() ) {\n\t\t\t\t\tthis.$.$mol_log3_warn({\n\t\t\t\t\t\tmessage: 'Too low Tier',\n\t\t\t\t\t\ttier_min: unit.tier_min().toString(2),\n\t\t\t\t\t\ttier_actual: this.lord_tier( unit.lord() ).toString(2),\n\t\t\t\t\t\thint: 'Relax. Unit is skipped.',\n\t\t\t\t\t\tplace: `${this}.diff_apply()`,\n\t\t\t\t\t})\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst lord_pass = this.lord_pass( unit.lord() ) ?? passes.get( unit.lord().str )\n\t\t\t\tif( !lord_pass ) return this.$.$mol_fail( new Error( `No Pass for Lord`, { cause: unit.lord() } ) )\n\t\t\t\t\n\t\t\t\tswitch( unit.kind() ) {\n\t\t\t\t\t\n\t\t\t\t\tcase 'seal': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst seal = unit as $giper_baza_unit_seal\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( this.lord_rate( unit.lord() ) < seal.rate_min() ) {\n\t\t\t\t\t\t\treturn this.$.$mol_fail( new Error( 'Too low Rate' ) )\n\t\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\t\tthis.seal_add( seal )\n\t\t\t\t\t\t\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase 'gift': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst gift = unit as $giper_baza_unit_gift\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( !this.$.$giper_baza_unit_trusted_check( gift ) ) {\n\t\t\t\t\t\t\tconst seal = this.unit_seal( gift )\n\t\t\t\t\t\t\tif( !seal ) return this.$.$mol_fail( new Error( `No Seal for Gift`, { cause: gift } ) )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( gift.mate().str ) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tconst mate_pass = this.lord_pass( gift.mate() ) ?? passes.get( gift.mate().str )\n\t\t\t\t\t\t\tif( !mate_pass ) return this.$.$mol_fail( new Error( `No Pass for Mate`, { cause: gift } ) )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tthis.pass_add( mate_pass )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis.gift_add( gift )\n\t\t\t\t\t\t\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase 'sand': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst sand = unit as $giper_baza_unit_sand\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( !this.$.$giper_baza_unit_trusted_check( sand ) ) {\n\t\t\t\t\t\t\tconst seal = this.unit_seal( sand )\n\t\t\t\t\t\t\tif( !seal ) return this.$.$mol_fail( new Error( `No Seal for Sand`, { cause: sand } ) )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis.sand_add( sand )\n\t\t\t\t\t\t\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tdefault: {\n\t\t\t\t\t\treturn this.$.$mol_fail( new Error( `Unsupported Kind` ) )\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tthis.pass_add( lord_pass )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn units\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tunits_steal( donor: $giper_baza_land ) {\n\t\t\tthis.diff_apply( donor.diff_units(), 'skip_load' )\n\t\t}\n\t\t\n\t\trank_audit() {\n\t\t\t\n\t\t\tstart: while( true ) {\n\t\t\t\n\t\t\t\tfor( const [ shot, seal ] of this._seal_shot ) {\n\t\t\t\t\t\n\t\t\t\t\tconst rank = this.lord_rank( seal.lord() )\n\t\t\t\t\tif( rank >= seal.rank_min() ) continue\n\t\t\t\t\t\n\t\t\t\t\tthis.seal_del( seal )\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfor( const [ lord, gift ] of this._gift ) {\n\t\t\t\t\t\n\t\t\t\t\t// if( this.unit_seal( gift ) ) {\n\t\t\t\t\t\tconst tier = this.lord_tier( gift.lord() )\n\t\t\t\t\t\tif( tier >= gift.tier_min() ) continue\n\t\t\t\t\t// }\n\t\t\t\t\t\n\t\t\t\t\tthis.gift_del( gift )\n\t\t\t\t\t\n\t\t\t\t\tcontinue start\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfor( const [ head, peers ] of this._sand ) {\n\t\t\t\t\tfor( const [ peer, sands ] of peers ) {\n\t\t\t\t\t\tfor( const [ self, sand ] of sands ) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tconst tier = this.lord_tier( sand.lord() )\n\t\t\t\t\t\t\tif( tier >= sand.tier_min() ) continue\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tthis.sand_del( sand )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tfork( preset: $giper_baza_rank_preset = [[ null, $giper_baza_rank_read ]] ) {\n\t\t\tconst land = this.$.$giper_baza_glob.land_grab( preset )\n\t\t\tland.Tine().items_vary([ this.link() ])\n\t\t\treturn land\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tsand_ordered( { head, peer }: { head: $giper_baza_link, peer: $giper_baza_link | null } ) {\n\t\t\t\n\t\t\tthis.sync()\n\t\t\t// this.secret() // early async to prevent async on put\n\t\t\t\n\t\t\tconst queue = ( peer?.str )\n\t\t\t\t? [ ... this._sand.get( head.str )?.get( peer!.str )?.values() ?? [] ]\n\t\t\t\t: [ ... this._sand.get( head.str )?.values() ?? [] ].flatMap( units => [ ... units.values() ] )\n\t\t\t\n\t\t\tconst slices = new Map\n\t\t\tfor( const sand of queue ) slices.set( sand, 0 )\n\t\t\t\n\t\t\tmerge: if( head.str !== $giper_baza_land_root.tine.str ) {\n\t\t\t\t\n\t\t\t\tconst tines = ( this.Tine()?.items_vary().slice().reverse() ?? [] )\n\t\t\t\t\t.map( val => $giper_baza_link_schema.cast( val ) )\n\t\t\t\t\t.filter( $mol_guard_defined )\n\t\t\t\tif( !tines.length ) break merge\n\t\t\t\t\n\t\t\t\tconst exists = new Set( queue.map( sand => sand.self().str ) )\n\t\t\t\t\n\t\t\t\tconst glob = this.$.$giper_baza_glob\n\t\t\t\tlet slice = 0\n\t\t\t\tfor( const link of tines ) {\n\t\t\t\t\t++ slice\n\t\t\t\t\tconst land = glob.Land( link )\n\t\t\t\t\tfor( const sand of land.sand_ordered({ head, peer }) ) {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( exists.has( sand.self().str ) ) continue\n\t\t\t\t\t\tqueue.push( sand )\n\t\t\t\t\t\texists.add( sand.self().str )\n\t\t\t\t\t\tslices.set( sand, slice )\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tif( queue.length < 2 ) return queue\n\t\t\t\n\t\t\tconst compare = ( left: $giper_baza_unit_sand, right: $giper_baza_unit_sand )=> {\n\t\t\t\treturn ( slices.get( left ) - slices.get( right ) ) || $giper_baza_unit_sand.compare( left, right )\n\t\t\t}\n\t\t\t\n\t\t\tqueue.sort( compare )\n\t\t\t\n\t\t\tlet entry = {\n\t\t\t\tsand: null as null | $giper_baza_unit_sand,\n\t\t\t\tnext: null as null | string,\n\t\t\t\tprev: null as null | string,\n\t\t\t}\n\t\t\t\n\t\t\tconst key = peer === null ? ( sand: $giper_baza_unit_sand )=> sand.path() : ( sand: $giper_baza_unit_sand )=> sand.self().str\n\t\t\t\n\t\t\tconst by_key = new Map([ [ entry.prev, entry ] ])\n\t\t\tconst by_self = new Map([ [ entry.prev, entry ] ])\n\t\t\t\n\t\t\twhile( queue.length ) {\n\t\t\t\t\n\t\t\t\tconst last = queue.pop()!\n\t\t\t\tby_key.get( entry.prev )!.next = key( last )\n\t\t\t\t\n\t\t\t\tconst item = { sand: last, next: null, prev: entry.prev }\n\t\t\t\tby_key.set( key( last ), item )\n\t\t\t\t\n\t\t\t\tconst exists = by_self.get( last.self().str )\n\t\t\t\tif( !exists || compare( exists.sand!, last ) < 0 ) {\n\t\t\t\t\tby_self.set( last.self().str, item )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tentry.prev = key( last )\n\t\t\t\t\n\t\t\t\tfor( let cursor = queue.length - 1; cursor >= 0; --cursor ) {\n\t\t\t\t\t\n\t\t\t\t\tconst kid = queue[cursor]\n\t\t\t\t\t\n\t\t\t\t\tlet lead = by_self.get( kid.lead().str || null )\n\t\t\t\t\tif( !lead ) continue\n\t\t\t\t\t\n\t\t\t\t\twhile( lead.next && ( compare( by_key.get( lead.next )!.sand!, kid ) < 0 ) ) lead = by_key.get( lead.next )!\n\t\t\t\t\t\n\t\t\t\t\tconst exists1 = by_key.get( key( kid ) )\n\t\t\t\t\tif( exists1 ) {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( ( lead.sand ? key( lead.sand ) : null ) === exists1.prev ) {\n\t\t\t\t\t\t\texists1.sand = kid\n\t\t\t\t\t\t\tif( cursor === queue.length - 1 ) queue.pop()\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tby_key.get( exists1.prev )!.next = exists1.next\n\t\t\t\t\t\tby_key.get( exists1.next )!.prev = exists1.prev\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tconst follower = by_key.get( lead.next )!\n\t\t\t\t\tfollower.prev = key( kid )\n\t\t\t\t\t\n\t\t\t\t\tconst item = { sand: kid, next: lead.next, prev: lead.sand ? key( lead.sand ) : null }\n\t\t\t\t\tby_key.set( key( kid ), item )\n\t\t\t\t\t\n\t\t\t\t\tconst exists2 = by_self.get( kid.self().str )\n\t\t\t\t\tif( !exists2 || compare( exists2.sand!, kid ) < 0 ) {\n\t\t\t\t\t\tby_self.set( kid.self().str, item )\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tlead.next = key( kid )\n\t\t\t\t\t\n\t\t\t\t\tif( cursor === queue.length - 1 ) queue.pop()\n\t\t\t\t\tcursor = queue.length\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst res = [] as $giper_baza_unit_sand[]\n\t\t\t\n\t\t\twhile( entry.next !== null ) {\n\t\t\t\tentry = by_key.get( entry.next )!\n\t\t\t\tres.push( entry.sand! )\n\t\t\t}\n\t\t\t\n\t\t\treturn res\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\t@ $mol_action\n\t\tjoin() {\n\t\t\tthis.encrypted( this.encrypted() )\n\t\t}\n\t\t\n\t\t/**\n\t\t * Gives access rights to Lord by Auth key.\n\t\t * `null` - gives rights for all Peers.\n\t\t */\n\t\t@ $mol_action\n\t\tgive(\n\t\t\tmate_pass: $giper_baza_auth_pass | null,\n\t\t\trank: typeof $giper_baza_rank.Value,\n\t\t) {\n\t\t\t\n\t\t\tthis.join()\n\t\t\t\n\t\t\tconst gift = $giper_baza_unit_gift.make()\n\t\t\tconst lord_pass = this.auth().pass()\n\t\t\t\n\t\t\tgift._land = this\n\t\t\t\n\t\t\tgift.lord( lord_pass.lord() )\n\t\t\tgift.rank( rank )\n\t\t\tgift.time_tick( this.tick().time_tick )\n\t\t\t\n\t\t\tif( mate_pass ) gift.mate( mate_pass.lord() )\n\t\t\t\n\t\t\tif( rank >= $giper_baza_rank_read ) {\n\t\t\t\t\n\t\t\t\tconst secret_land = this.secret()\n\t\t\t\tif( secret_land ) {\n\t\t\t\t\t\n\t\t\t\t\tif( !mate_pass ) return $mol_fail( new Error( `Encrypted land can't be shared to everyone` ) )\n\t\t\t\t\t\n\t\t\t\t\tconst secret_mutual = this.auth().secret_mutual( mate_pass )\n\t\t\t\t\tif( secret_mutual ) {\n\t\t\t\t\t\tconst salt = $mol_buffer.from( gift.salt().slice() ).mix( this.link().lord().toBin() )\n\t\t\t\t\t\tconst code = $mol_wire_sync( secret_mutual ).close( secret_land, salt )\n\t\t\t\t\t\tgift.code().set( code )\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\tif( !this.encrypted() ) $mol_fail( new Error( 'Unencrypted Land is always public' ) )\n\t\t\t}\n\t\t\t\n\t\t\t$giper_baza_unit_trusted_grant( gift )\n\t\t\t\n\t\t\tthis.diff_apply( [ lord_pass, ... $mol_maybe( mate_pass ), gift ] )\n\t\t\t\n\t\t\tthis.broadcast()\n\t\t\t\n\t\t\treturn gift\n\t\t}\n\t\t\n\t\t/** Places data to tree. */\n\t\t@ $mol_action\n\t\tpost(\n\t\t\tlead: $giper_baza_link,\n\t\t\thead: $giper_baza_link,\n\t\t\tself: $giper_baza_link | null,\n\t\t\tvary: $giper_baza_vary_type,\n\t\t\ttag: keyof typeof $giper_baza_unit_sand_tag = 'term',\n\t\t) {\n\t\t\t\n\t\t\tthis.join()\n\t\t\t\n\t\t\tconst lord_pass = this.auth().pass()\n\t\t\tconst encrypted = vary === null ? false : this.encrypted()\n\t\t\t\n\t\t\tlet open = $giper_baza_link_base( this.link(), ()=> $giper_baza_vary.pack([ vary ]) )\n\t\t\t\n\t\t\tconst length = encrypted ? Math.ceil( ( open.byteLength + 1 ) / 16 ) * 16 : open.byteLength\n\t\t\tconst sand = $giper_baza_unit_sand.make( length, tag )\n\t\t\t\n\t\t\tsand._open = open\n\t\t\tsand._land = this\n\t\t\t\n\t\t\t$giper_baza_unit_trusted_grant( sand )\n\t\t\t\n\t\t\tsand.time_tick( this.tick().time_tick )\n\t\t\tsand.lord( lord_pass.lord() )\n\t\t\tsand.lead( lead )\n\t\t\tsand.head( head )\n\t\t\tsand._vary = vary\n\t\t\t\n\t\t\tsand.self( self ?? this.self_make( encrypted ? undefined : $mol_hash_numbers( open, sand.idea_seed() ) ) )\n\t\t\t\n\t\t\tthis.diff_apply( [ lord_pass, sand ] )\n\t\t\t\n\t\t\tthis.broadcast()\n\t\t\treturn sand\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tsand_move(\n\t\t\tsand: $giper_baza_unit_sand,\n\t\t\thead: $giper_baza_link,\n\t\t\tseat: number,\n\t\t\tpeer = $giper_baza_link.hole as $giper_baza_link | null\n\t\t) {\n\t\t\t\n\t\t\tif( sand.dead() ) $mol_fail( new RangeError( `Can't move wiped sand` ) )\n\t\t\t\n\t\t\tconst units = this.sand_ordered({ head, peer }).filter( unit => !unit.dead() )\n\t\t\tif( seat > units.length ) $mol_fail( new RangeError( `Seat (${seat}) out of units length (${units.length})` ) )\n\t\t\t\n\t\t\tconst lead = seat ? units[ seat - 1 ].self() : $giper_baza_link.hole\n\t\t\tconst vary = this.sand_decode( sand )\n\t\t\t\n\t\t\tif( sand.head() === head ) {\n\t\t\t\t\n\t\t\t\tconst seat_prev = units.indexOf( sand )\n\t\t\t\t\n\t\t\t\tif( seat === seat_prev ) return\n\t\t\t\tif( seat === seat_prev + 1 ) return\n\t\t\t\t\n\t\t\t\tconst prev = seat_prev ? units[ seat_prev - 1 ].self() : $giper_baza_link.hole\n\t\t\t\tconst next = units[ seat_prev + 1 ]\n\t\t\t\t\n\t\t\t\tif( next ) this.post(\n\t\t\t\t\tprev,\n\t\t\t\t\thead,\n\t\t\t\t\tnext.self(),\n\t\t\t\t\tthis.sand_decode( next ),\n\t\t\t\t\tnext.tag(),\n\t\t\t\t)\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tthis.sand_wipe( sand )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn this.post(\n\t\t\t\tlead,\n\t\t\t\thead,\n\t\t\t\tsand.self(),\n\t\t\t\tvary,\n\t\t\t\tsand.tag(),\n\t\t\t)\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tsand_wipe(\n\t\t\tsand: $giper_baza_unit_sand,\n\t\t\tpeer = $giper_baza_link.hole as $giper_baza_link | null\n\t\t) {\n\t\t\t\n\t\t\tconst head = sand.head()\n\t\t\tconst units = this.sand_ordered({ head, peer }).filter( unit => !unit.dead() )\n\t\t\tconst seat = units.indexOf( sand )\n\t\t\tif( seat < 0 ) return sand\n\t\t\t\n\t\t\treturn this.post(\n\t\t\t\tseat ? units[ seat - 1 ].self() : $giper_baza_link.hole,\n\t\t\t\thead,\n\t\t\t\tsand.self(),\n\t\t\t\tnull,\n\t\t\t\t'term',\n\t\t\t)\n\t\t\t\n\t\t}\n\t\t\n\t\tbroadcast() {\n\t\t\tthis.persisted( true )\n\t\t\tthis.$.$giper_baza_glob.yard().lands_news.add( this.link().str )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tsync() {\n\t\t\tthis.loading()\n\t\t\tthis.sync_rights()\n\t\t\tthis.bus()\n\t\t\tthis.sync_mine()\n\t\t\tthis.sync_yard()\n\t\t\treturn this\n\t\t}\n\t\t\n\t\tdestructor() {\n\t\t\tPromise.resolve().then( ()=> {\n\t\t\t\tthis.$.$giper_baza_glob.yard().forget_land( this )\n\t\t\t} )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tmine() {\n\t\t\t$mol_wire_solid()\n\t\t\treturn this.$.$giper_baza_mine.land( this.link() )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tsync_mine() {\n\t\t\treturn new $mol_wire_atom( '', ()=> this.units_saving() ).fresh()\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tsync_yard() {\n\t\t\tconst root = new $mol_wire_atom( 'sync_yard', ()=> this.$.$giper_baza_glob.yard().sync_land( this.link() ) )\n\t\t\tsetTimeout( ()=> root.fresh() )\n\t\t\treturn root\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tbus() {\n\t\t\treturn new this.$.$mol_bus< ArrayBuffer >(\n\t\t\t\t`$giper_baza_land:${ this.link() }`,\n\t\t\t\t$mol_wire_async( buf => {\n\t\t\t\t\t\n\t\t\t\t\tconst pack = new $giper_baza_pack( buf )\n\t\t\t\t\tconst part = new Map( pack.parts() ).get( this.link().str )!\n\t\t\t\t\t\n\t\t\t\t\tfor( const unit of part.units ) {\n\t\t\t\t\t\t$giper_baza_unit_trusted_grant( unit )\n\t\t\t\t\t\tthis.mine().units_persisted.add( unit )\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tthis.diff_apply( part.units )\n\t\t\t\t\t\n\t\t\t\t} ),\n\t\t\t)\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tloading() {\n\t\t\t$mol_wire_solid()\n\t\t\t\n\t\t\tlet units = $mol_wire_sync( this.mine() ).units_load()\n\t\t\tif( units.length ) this.persisted( true )\n\t\t\t\n\t\t\tif( this.$.$giper_baza_log() ) $mol_wire_sync( this.$ ).$mol_log3_rise({\n\t\t\t\tplace: this,\n\t\t\t\tmessage: 'Load Unit',\n\t\t\t\tunits: units,\n\t\t\t})\n\t\t\t\n\t\t\t$mol_wire_sync( this ).diff_apply( units, 'skip_load' )\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tsands_unencoded() {\n\t\t\t\n\t\t\tconst sands = [] as $giper_baza_unit_sand[]\n\t\t\t\n\t\t\tfor( const kids of this._sand.values() ) {\n\t\t\t\tfor( const units of kids.values() ) {\n\t\t\t\t\tfor( const sand of units.values() ) {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( sand._vary === undefined ) continue\n\t\t\t\t\t\tif( sand._ball ) continue\n\t\t\t\t\t\t\n\t\t\t\t\t\tsands.push( sand )\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn sands\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tsand_encoding() {\n\t\t\tthis.loading()\n\t\t\tbatch( this, this.sands_unencoded, this.sands_encode )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tunits_unsigned() {\n\t\t\t\n\t\t\tconst signing = [] as $giper_baza_unit_base[]\n\t\t\t\n\t\t\tfor( const gift of this._gift.values() ) {\n\t\t\t\tif( this.unit_seal( gift ) ) continue\n\t\t\t\tsigning.push( gift )\n\t\t\t}\n\t\t\t\n\t\t\tfor( const kids of this._sand.values() ) {\n\t\t\t\tfor( const units of kids.values() ) {\n\t\t\t\t\tfor( const sand of units.values() ) {\n\t\t\t\t\t\tif( this.unit_seal( sand ) ) continue\n\t\t\t\t\t\tsigning.push( sand )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn signing\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tunits_signing() {\n\t\t\tthis.sand_encoding()\n\t\t\tbatch( this, this.units_unsigned, this.units_sign )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tunits_unsaved() {\n\t\t\t\n\t\t\tconst mine = this.mine()\n\t\t\tconst persisting = new Set< $giper_baza_unit >()\n\t\t\t\n\t\t\tconst check_lord = ( lord: $giper_baza_link )=> {\n\t\t\t\t\n\t\t\t\tconst pass = this.lord_pass( lord )\n\t\t\t\tif( !pass ) return\n\t\t\t\t\n\t\t\t\tif( mine.units_persisted.has( pass ) ) return\n\t\t\t\t\n\t\t\t\tpersisting.add( pass )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tfor( const gift of this._gift.values() ) {\n\t\t\t\t\n\t\t\t\tif( mine.units_persisted.has( gift ) ) continue\n\t\t\t\tif( !this.unit_seal( gift ) ) continue\n\t\t\t\t\n\t\t\t\tpersisting.add( gift )\n\t\t\t\tcheck_lord( gift.lord() )\n\t\t\t\tcheck_lord( gift.mate() )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tfor( const kids of this._sand.values() ) {\n\t\t\t\tfor( const units of kids.values() ) {\n\t\t\t\t\tfor( const sand of units.values() ) {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( $mol_wire_sync( mine.units_persisted ).has( sand ) ) continue\n\t\t\t\t\t\tif( !this.unit_seal( sand ) ) continue\n\t\t\t\t\t\t\n\t\t\t\t\t\tpersisting.add( sand )\n\t\t\t\t\t\tcheck_lord( sand.lord() )\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tfor( const seal of this._seal_shot.values() ) {\n\t\t\t\t\n\t\t\t\tif( !seal.alive_items.size ) continue\n\t\t\t\tif( mine.units_persisted.has( seal ) ) continue\n\t\t\t\t\n\t\t\t\tpersisting.add( seal )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn [ ... persisting ]\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tunits_saving() {\n\t\t\tthis.units_signing()\n\t\t\tif( !this.persisted() ) return\n\t\t\tbatch( this, this.units_unsaved, this.units_save )\n\t\t}\n\t\t\n\t\tasync units_save( units: readonly $giper_baza_unit[] ) {\n\t\t\t\n\t\t\tconst mine = this.mine()\n\t\t\t\n\t\t\tconst reaping = [ ... this.units_reaping ]\n\t\t\tthis.units_reaping.clear()\n\t\t\t\n\t\t\tawait $mol_wire_async( mine ).units_save({ ins: units, del: reaping })\n\t\t\t\n\t\t\tconst part = new $giper_baza_pack_part( units )\n\t\t\tconst pack = $giper_baza_pack.make([[ this.link().str, part ]])\n\t\t\tthis.bus().send( pack.buffer )\n\t\t\t\n\t\t\tif( this.$.$giper_baza_log() ) this.$.$mol_log3_done({\n\t\t\t\tplace: this,\n\t\t\t\tmessage: 'Save Unit',\n\t\t\t\tins: units,\n\t\t\t\tdel: reaping,\n\t\t\t})\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tpersisted( next?: boolean ): boolean {\n\t\t\t\n\t\t\t$mol_wire_solid()\n\t\t\t\n\t\t\tif( next !== undefined ) return next\n\t\t\t\n\t\t\tconst level = $mol_wire_sync( this.$.$mol_storage ).level()\n\t\t\tif( level <= 0 ) return true\n\t\t\tif( level > 6 ) return false\n\t\t\t\n\t\t\tconst crop = 8 - level\n\t\t\t\n\t\t\tconst self = this.auth().pass().lord().toBin().at(-1)!\n\t\t\tconst land = this.link().toBin().at(-1)!\n\t\t\t\n\t\t\treturn ( self >>> crop )===( land >>> crop )\n\t\t\t\n\t\t}\n\t\t\n\t\tasync units_sign( units: readonly $giper_baza_unit_base[] ) {\n\t\t\t\n\t\t\tawait Promise.resolve() // prevent deps\n\t\t\t\n\t\t\tconst lands = new Map< $giper_baza_land, $giper_baza_link[] >()\n\t\t\tfor( const unit of units ) {\n\t\t\t\t\n\t\t\t\tif( !unit._land ) continue\n\t\t\t\tlet us = lands.get( unit._land! )\n\t\t\t\tif( us ) us.push( unit.hash() )\n\t\t\t\telse lands.set( unit._land!, [ unit.hash() ] )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst me = this.auth().pass().lord().str\n\t\t\tfor( const seal of this._seal_shot.values() ) {\n\t\t\t\t\n\t\t\t\tif( seal.alive_full() ) continue\n\t\t\t\tif( seal.lord().str !== me ) continue\n\t\t\t\t\n\t\t\t\tseal._land ??= this\n\t\t\t\tlet us = lands.get( this )\n\t\t\t\tif( !us ) lands.set( seal._land, us = [] )\n\t\t\t\t\n\t\t\t\tconst hashes = seal.alive_list()\n\t\t\t\tus.push( ... hashes )\n\t\t\t\t\n\t\t\t\t// this.seal_del( seal )\n\t\t\t}\n\t\t\t\n\t\t\tconst threads = [ ... lands.entries() ].flatMap( ([ land, hashes ])=> {\n\t\t\t\t\n\t\t\t\tconst auth = land.auth()\n\t\t\t\tconst rate = $giper_baza_rank_rate_of( land.pass_rank( auth.pass() ) )\n\t\t\t\tconst wide = ! land.link().area().str\n\t\t\t\t\n\t\t\t\treturn $mol_array_chunks( hashes, $giper_baza_unit_seal_limit ).map( async( hashes )=> {\n\t\t\t\t\n\t\t\t\t\tconst seal = $giper_baza_unit_seal.make( hashes.length, wide )\n\t\t\t\t\t\n\t\t\t\t\tseal.lord( auth.pass().lord() )\n\t\t\t\t\tseal.hash_list( hashes )\n\t\t\t\t\tseal._land = this\n\t\t\t\t\t\n\t\t\t\t\tdo {\n\t\t\t\t\t\t\n\t\t\t\t\t\tseal.time_tick( this.tick().time_tick )\n\t\t\t\t\t\tconst sens = seal.shot().mix( this.link() )\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst sign = await auth.signer().sign( sens )\n\t\t\t\t\t\tseal.sign( sign )\n\t\t\t\t\t\t\n\t\t\t\t\t} while( seal.rate_min() > rate )\n\t\t\t\t\t\n\t\t\t\t\treturn seal\n\t\t\t\t} )\n\t\t\t\t\n\t\t\t} )\n\t\t\t\n\t\t\tconst seals = await Promise.all( threads )\n\t\t\tfor( const seal of seals ) {\n\t\t\t\tfor( const hash of seal.hash_list() ) {\n\t\t\t\t\tif( this._unit_hash.has( hash.str ) ) {\n\t\t\t\t\t\tseal.alive_items.add( hash.str )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif( seal.alive_items.size ) this.seal_add( seal )\n\t\t\t}\n\t\t\t\n\t\t\treturn seals\n\t\t}\n\t\t\n\t\tsands_encode( sands: readonly $giper_baza_unit_sand[] ) {\n\t\t\treturn Promise.all( sands.map( sand => this.sand_encode( sand ) ) )\n\t\t}\n\t\t\n\t\tasync sand_encode( sand: $giper_baza_unit_sand ) {\n\t\t\t\n\t\t\tlet bin = sand._open\n\t\t\t\n\t\t\tif( sand._vary !== null ) {\n\t\t\t\tconst secret = sand._land!.secret()!\n\t\t\t\tif( secret ) {\n\t\t\t\t\tconst salt = $mol_buffer.from( sand.salt().slice() ).mix( this.link().toBin() )\n\t\t\t\t\tbin = await secret.encrypt( bin!, salt )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tsand.ball( bin! )\n\t\t\t\n\t\t\tif( sand._alive ) this._unit_hash.set( sand.hash().str, sand )\n\t\t\t\n\t\t\treturn sand\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tsand_load( sand: $giper_baza_unit_sand ) {\n\t\t\tif( sand._ball ) return\n\t\t\tsand._ball = sand.big() ? $mol_wire_sync( this.mine() ).ball_load( sand ) : sand.data()\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tsand_decode( sand: $giper_baza_unit_sand ): $giper_baza_vary_type {\n\t\t\t\n\t\t\ttry {\n\t\t\t\t// const open = this.sand_decrypt( sand )\n\t\t\t\tconst open = sand._open!\n\t\t\t\treturn $giper_baza_link_base( this.link(), ()=> ( $giper_baza_vary.take( open ) as any )[0] )\n\t\t\t} catch( error ) {\n\t\t\t\t\n\t\t\t\tif( error instanceof Promise ) return $mol_fail_hidden( error )\n\t\t\t\tthis.$.$mol_fail_log( error )\n\t\t\t\treturn null\n\n\t\t\t}\n\n\t\t}\n\t\t\n\t\t// @ $mol_mem_key\n\t\t// sand_decrypt( sand: $giper_baza_unit_sand ): Uint8Array< ArrayBuffer > {\n\t\t\t\n\t\t// \tif( this.sand_get( sand.head(), sand.lord(), sand.self() ) !== sand ) {\n\t\t// \t\tfor( const id of this.Tine().items_vary() ?? [] ) {\n\t\t// \t\t\tconst open = this.$.$giper_baza_glob.Land( $giper_baza_vary_cast_link( id! )! ).sand_decrypt( sand )\n\t\t// \t\t\tif( open ) return open\n\t\t// \t\t}\n\t\t// \t\treturn undefined!\n\t\t// \t}\n\t\t\t\n\t\t// \tconst secret = this.secret()\n\t\t\t\n\t\t// \tif( sand._open ) return sand._open\n\t\t\t\n\t\t// \tif( !sand._ball ) sand._ball = sand.big() ? $mol_wire_sync( this.mine() ).ball_load( sand ) : sand.data()\n\t\t// \tif( secret && sand._ball && !sand.dead() ) {\n\t\t// \t\ttry {\n\t\t// \t\t\tsand._open = $mol_wire_sync( secret ).decrypt( sand._ball, sand.salt() )\n\t\t// \t\t} catch( error: any ) {\n\t\t// \t\t\tif( $mol_fail_catch( error ) ) {\n\t\t// \t\t\t\tif( error.message ) $mol_fail_hidden( error )\n\t\t// \t\t\t\telse $mol_fail_hidden( new Error( `Can't decrypt`, { cause: error } ) )\n\t\t// \t\t\t}\n\t\t// \t\t}\n\t\t// \t} else {\n\t\t// \t\tsand._open = sand._ball\n\t\t// \t}\n\t\t\t\n\t\t// \treturn sand._open!\n\t\t\t\n\t\t// }\n\t\t\n\t\t@ $mol_action\n\t\tsands_open( sands: readonly $giper_baza_unit_sand[] ) {\n\t\t\tconst encrypted = this.encrypted()\n\t\t\tconst closed = sands.filter( sand => {\n\t\t\t\tif( sand._open ) return false\n\t\t\t\tif( !sand._ball ) {\n\t\t\t\t\tif( sand.big() ) return true\n\t\t\t\t\tsand._ball = sand.data()\n\t\t\t\t}\n\t\t\t\tif( encrypted && !sand.dead() ) return true\n\t\t\t\tsand._open = sand._ball\n\t\t\t} )\n\t\t\tif( !closed.length ) return\n\t\t\treturn Promise.all( closed.map( sand => this.sand_open( sand ) ) )\n\t\t}\n\t\t\n\t\tasync sand_open( sand: $giper_baza_unit_sand ): Promise< Uint8Array< ArrayBuffer > > {\n\t\t\t\n\t\t\tif( this.sand_get( sand.head(), sand.lord(), sand.self() ) !== sand ) {\n\t\t\t\tfor( const id of this.Tine().items_vary() ?? [] ) {\n\t\t\t\t\tconst open = await this.$.$giper_baza_glob.Land( $giper_baza_link_schema.cast( id! )! ).sand_open( sand )\n\t\t\t\t\tif( open ) return open\n\t\t\t\t}\n\t\t\t\treturn undefined!\n\t\t\t}\n\t\t\t\n\t\t\tconst secret = this.secret()\n\t\t\t\n\t\t\tif( sand._open ) return sand._open\n\t\t\t\n\t\t\tif( !sand._ball ) sand._ball = sand.big() ? await $mol_wire_async( this.mine() ).ball_load( sand ) : sand.data()\n\t\t\tif( secret && sand._ball && !sand.dead() ) {\n\t\t\t\tconst salt = $mol_buffer.from( sand.salt().slice() ).mix( this.link().toBin() )\n\t\t\t\ttry {\n\t\t\t\t\tsand._open = await secret.decrypt( sand._ball, salt )\n\t\t\t\t} catch( error: any ) {\n\t\t\t\t\tif( $mol_fail_catch( error ) ) {\n\t\t\t\t\t\tif( error.message ) $mol_fail_hidden( error )\n\t\t\t\t\t\telse $mol_fail_hidden( new Error( `Can't decrypt`, { cause: error } ) )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsand._open = sand._ball\n\t\t\t}\n\t\t\t\n\t\t\treturn sand._open!\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tencryptable() {\n\t\t\treturn !this._sand.size\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tencrypted( next?: boolean ) {\n\t\t\t\n\t\t\t$mol_wire_solid()\n\t\t\t\n\t\t\tconst gift = this._gift.get( this.link().str )\n\t\t\tconst prev = gift?.code_exists() ?? false\n\t\t\t\n\t\t\tif( next === undefined ) return prev\n\t\t\t\n\t\t\tif( this.faces.size ) {\n\t\t\t\tif( prev === next ) return prev\n\t\t\t\t$mol_fail( new Error( `Change encryption is forbidden` ) )\n\t\t\t}\n\t\t\t\n\t\t\tconst auth = this.auth()\n\t\t\t\n\t\t\tconst unit = $mol_wire_sync( $giper_baza_unit_gift ).make()\n\t\t\t$giper_baza_unit_trusted_grant( unit )\n\t\t\t\n\t\t\tunit.rank( $giper_baza_rank_rule )\n\t\t\tunit.time_tick( this.tick().time_tick )\n\t\t\tunit.lord( auth.pass().lord() )\n\t\t\tunit.mate( auth.pass().lord() )\n\t\t\tunit._land = this\n\t\t\t\n\t\t\tif( next ) {\n\t\t\t\tconst secret = $mol_wire_sync( $mol_crypto_sacred ).make()\n\t\t\t\tconst secret_mutual = auth.secret_mutual( auth.pass() )\n\t\t\t\tconst secret_closed = $mol_wire_sync( secret_mutual ).close( secret, unit.salt() )\n\t\t\t\tunit.code().set( secret_closed )\n\t\t\t}\n\t\t\t\n\t\t\tthis.diff_apply( [ auth.pass(), unit ] )\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tsecret() {\n\t\t\t\n\t\t\tif( !this.encrypted() ) return null\n\t\t\t\n\t\t\tconst auth = this.auth()\n\t\t\tconst gift = this._gift.get( auth.pass().lord().str )\n\t\t\tif( !gift ) return $mol_fail( new Error( `Access denied` ) )\n\t\t\t\n\t\t\tif( !gift.code_exists() ) return $mol_fail( new Error( `No key to decrypt` ) )\n\t\t\t\n\t\t\tconst secret_mutual = auth.secret_mutual( this.lord_pass( gift.lord() )! )\n\t\t\tif( !secret_mutual ) return $mol_fail( new Error( `Can't decrypt secret` ) )\n\t\t\t\n\t\t\tconst salt = $mol_buffer.from( gift.salt().slice() ).mix( this.link().lord().toBin() )\n\t\t\t\n\t\t\treturn new $mol_crypto_sacred( $mol_wire_sync( secret_mutual ).open( gift.code(), salt ).buffer )\n\t\t\t\n\t\t}\n\t\t\n\t\tdump() {\n\t\t\t\n\t\t\tthis.units_saving()\n\t\t\t\n\t\t\tconst units = [] as $giper_baza_unit_base[]\n\t\t\t\n\t\t\tfor( const gift of this._gift.values() ) units.push( gift )\n\t\t\t\n\t\t\tfor( const heads of this._sand.values() ) {\n\t\t\t\tfor( const sands of heads.values() ) {\n\t\t\t\t\tfor( const sand of sands.values() ) {\n\t\t\t\t\t\tunits.push( sand )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn {\n\t\t\t\tland: this.link(),\n\t\t\t\tunits\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t;[ Symbol.for( 'nodejs.util.inspect.custom' ) ]() {\n\t\t\treturn $mol_term_color.blue( '$giper_baza_land' )\n\t\t\t\t+ $mol_term_color.magenta( ` @` + this.link() )\n\t\t}\n\t\t\n\t\t;[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_span( {},\n\t\t \t\t$mol_dev_format_native( this ),\n\t\t\t\t' ',\n\t\t\t\t$mol_dev_format_auto( this.faces.stat ),\n\t\t \t)\n\t\t }\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\t$mol_test_mocks.push( $=> {\n\t\tclass $giper_baza_land_mock extends $.$giper_baza_land {\n\t\t\t\n\t\t\tsync() {\n\t\t\t\treturn this\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t$.$giper_baza_land = $giper_baza_land_mock\n\t} )\n\t\n\t$mol_test({\n\t\t\n\t\tasync 'Give rights'( $ ) {\n\t\t\t\n\t\t\tconst auth0 = await $.$giper_baza_auth.grab()\n\t\t\tconst auth1 = await $.$giper_baza_auth.grab()\n\t\t\tconst auth2 = await $.$giper_baza_auth.grab()\n\t\t\t\n\t\t\tconst land0 = $giper_baza_land.make({ $, auth: ()=> auth0 })\n\t\t\tconst land1 = $giper_baza_land.make({ $, link: ()=> land0.link(), auth: ()=> auth1 })\n\t\t\t\n\t\t\t$mol_assert_equal( land0.lord_rank( land0.link() ), $giper_baza_rank_rule )\n\t\t\t$mol_assert_equal( land0.lord_rank( auth1.pass().lord() ), $giper_baza_rank_read )\n\t\t\t\n\t\t\tland1.give( auth2.pass(), $giper_baza_rank_post( 'just' ) )\n\t\t\t$mol_assert_equal( land0.pass_rank( auth1.pass() ), $giper_baza_rank_read )\n\t\t\t\n\t\t\tland0.give( auth1.pass(), $giper_baza_rank_read )\n\t\t\t$mol_assert_equal( land0.pass_rank( auth1.pass() ), $giper_baza_rank_read )\n\t\t\t\n\t\t\tland0.give( auth1.pass(), $giper_baza_rank_read )\n\t\t\t$mol_assert_equal( land0.pass_rank( auth1.pass() ), $giper_baza_rank_read )\n\t\t\t\n\t\t\tland0.give( auth1.pass(), $giper_baza_rank_post( 'just' ) )\n\t\t\t$mol_assert_equal( land0.pass_rank( auth1.pass() ), $giper_baza_rank_post( 'just' ) )\n\t\t\t\n\t\t\tland0.give( auth1.pass(), $giper_baza_rank_pull( 'just' ) )\n\t\t\t$mol_assert_equal( land0.pass_rank( auth1.pass() ), $giper_baza_rank_pull( 'just' ) )\n\t\t\t\n\t\t\tland0.give( auth1.pass(), $giper_baza_rank_rule )\n\t\t\t$mol_assert_equal( land0.pass_rank( auth1.pass() ), $giper_baza_rank_rule )\n\t\t\t\n\t\t\tland0.give( auth1.pass(), $giper_baza_rank_post( 'just' ) )\n\t\t\t$mol_assert_equal( land0.pass_rank( auth1.pass() ), $giper_baza_rank_post( 'just' ) )\n\t\t\t\n\t\t\tawait $mol_wire_async( land1 ).units_steal( land0 )\n\t\t\t$mol_assert_equal( land1.pass_rank( auth1.pass() ), $giper_baza_rank_post( 'just' ) )\n\t\t\tland1.give( auth2.pass(), $giper_baza_rank_post( 'just' ) )\n\t\t\t\n\t\t},\n\t\t\n\t\tasync 'Post Data and pick Delta'( $ ) {\n\t\t\t\n\t\t\tconst auth1 = $.$giper_baza_auth.grab()\n\t\t\tconst auth2 = $.$giper_baza_auth.grab()\n\t\t\t\n\t\t\tconst land1 = $giper_baza_land.make({ $, auth: ()=> auth1 })\n\t\t\tconst land2 = $giper_baza_land.make({ $, link: ()=> land1.link(), auth: ()=> auth2 })\n\t\t\t\n\t\t\t$mol_assert_equal( await $mol_wire_async( land1 ).diff_units(), [] )\n\t\t\t\n\t\t\tland1.post( $giper_baza_link.hole, $giper_baza_link.hole, new $giper_baza_link( 'AA111111' ), new Uint8Array([ 1 ]) )\n\t\t\t$mol_assert_equal( ( await $mol_wire_async( land1 ).diff_units() ).length, 4 )\n\t\t\t\n\t\t\tconst face = land1.faces.clone()\n\t\t\t\n\t\t\tland1.post( new $giper_baza_link( 'AA111111' ), $giper_baza_link.hole, new $giper_baza_link( 'AA222222' ), new Uint8Array([ 2 ]) )\n\t\t\t$mol_assert_equal( ( await $mol_wire_async( land1 ).diff_units() ).length, 5 )\n\t\t\t$mol_assert_equal( ( await $mol_wire_async( land1 ).diff_units( face ) ).length, 2 )\n\t\t\t\n\t\t\tawait $mol_wire_async( land2 ).units_steal( land1 )\n\t\t\t\n\t\t\tland2.post( new $giper_baza_link( 'AA222222' ), $giper_baza_link.hole, new $giper_baza_link( 'AA333333' ), new Uint8Array([ 3 ]) )\n\t\t\t$mol_assert_equal( ( await $mol_wire_async( land2 ).diff_units() ).length, 5 )\n\t\t\t$mol_assert_equal( ( await $mol_wire_async( land2 ).diff_units( face ) ).length, 2 )\n\t\t\t\n\t\t\tland1.give( auth2.pass(), $giper_baza_rank_post( 'just' ) )\n\t\t\tawait $mol_wire_async( land2 ).units_steal( land1 )\n\t\t\tland2.post( new $giper_baza_link( 'AA222222' ), $giper_baza_link.hole, new $giper_baza_link( 'AA333333' ), new Uint8Array([ 5 ]) )\n\t\t\t$mol_assert_equal( ( await $mol_wire_async( land2 ).diff_units() ).length, 9 )\n\t\t\t$mol_assert_equal( ( await $mol_wire_async( land2 ).diff_units( face ) ).length, 6 )\n\t\t\t\n\t\t\tland1.give( auth2.pass(), $giper_baza_rank_read )\n\t\t\tawait $mol_wire_async( land2 ).units_steal( land1 )\n\t\t\t$mol_assert_equal( ( await $mol_wire_async( land2 ).diff_units() ).length, 7 )\n\t\t\t\n\t\t},\n\t\t\n\t\tasync 'Land encryption'( $ ) {\n\t\t\t\n\t\t\tconst land = $mol_wire_async( $giper_baza_land.make({ $ }) )\n\t\t\t$mol_assert_equal( await land.encrypted(), false )\n\t\t\t\n\t\t\tawait land.encrypted( true )\n\t\t\t$mol_assert_equal( await land.encrypted(), true )\n\t\t\t\n\t\t\tconst material = await land.post( $giper_baza_link.hole, $giper_baza_link.hole, null, new Uint8Array([ 1, 2, 3 ]) )\n\t\t\t\n\t\t\t$mol_assert_equal( ( await land.sand_encode( material ) ).data().length, 16 )\n\t\t\t$mol_assert_equal( await land.sand_decode( material ), new Uint8Array([ 1, 2, 3 ]) )\n\t\t\t$mol_assert_equal( ( await land.sand_ordered({ head: $giper_baza_link.hole, peer: $giper_baza_link.hole }) ).length, 1 )\n\t\t\t\n\t\t\tconst tombstone = await land.post( $giper_baza_link.hole, $giper_baza_link.hole, material.self(), null )\n\t\t\t\n\t\t\t$mol_assert_equal( ( await land.sand_encode( tombstone ) ).data().length, 1 )\n\t\t\t$mol_assert_equal( await land.sand_decode( tombstone ), null )\n\t\t\t$mol_assert_equal( ( await land.sand_ordered({ head: $giper_baza_link.hole, peer: $giper_baza_link.hole }) ).length, 1 )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Land fork & merge': $mol_wire_async( ( $: $ )=> {\n\t\t\t\n\t\t\tconst home = $.$giper_baza_glob.home().land()\n\t\t\tconst left = home.fork()\n\t\t\t\n\t\t\thome.Data( $giper_baza_list ).items_vary([ 'foo', 'xxx' ])\n\t\t\t$mol_assert_equal( home.Data( $giper_baza_list ).items_vary(), [ 'foo', 'xxx' ] )\n\t\t\t$mol_assert_equal( left.Data( $giper_baza_list ).items_vary(), [ 'foo', 'xxx' ] )\n\t\t\t\n\t\t\tleft.faces.sync( home.faces )\n\t\t\tleft.Data( $giper_baza_list ).items_vary([ 'foo', 'yyy' ])\n\t\t\t$mol_assert_equal( left.Data( $giper_baza_list ).items_vary(), [ 'foo', 'yyy' ] )\n\t\t\t\n\t\t\tconst right = home.fork()\n\t\t\tright.faces.sync( left.faces )\n\t\t\tright.Data( $giper_baza_list ).items_vary([ 'foo', 'zzz' ])\n\t\t\t$mol_assert_equal( right.Data( $giper_baza_list ).items_vary(), [ 'foo', 'zzz' ] )\n\t\t\t\n\t\t\tconst both = home.fork()\n\t\t\t$mol_assert_equal( both.Data( $giper_baza_list ).items_vary(), [ 'foo', 'xxx' ] )\n\t\t\t\n\t\t\tboth.Tine().items_vary([ right.link() ])\n\t\t\t$mol_assert_equal( both.Data( $giper_baza_list ).items_vary(), [ 'foo', 'zzz' ] )\n\t\t\t\n\t\t\tboth.Tine().items_vary([ left.link() ])\n\t\t\t$mol_assert_equal( both.Data( $giper_baza_list ).items_vary(), [ 'foo', 'yyy' ] )\n\t\t\t\n\t\t\tboth.Tine().items_vary([ right.link(), left.link() ])\n\t\t\t$mol_assert_equal( both.Data( $giper_baza_list ).items_vary(), [ 'foo', 'yyy' ] )\n\t\t\t\n\t\t\tboth.Tine().items_vary([ left.link(), right.link() ])\n\t\t\t$mol_assert_equal( both.Data( $giper_baza_list ).items_vary(), [ 'foo', 'zzz' ] )\n\t\t\t\n\t\t} ),\n\t\t\n\t\t'Inner Links are relative to forked Land': $mol_wire_async( ( $: $ )=> {\n\t\t\t\n\t\t\tconst Alice = $.$giper_baza_glob.home().land()\n\t\t\tconst Bella = Alice.fork()\n\t\t\t\n\t\t\tconst alice_val = Alice.Pawn( $giper_baza_atom_text ).Head( new $giper_baza_link( 'qwertyui' ) )\n\t\t\tconst bella_val = Bella.Pawn( $giper_baza_atom_text ).Head( new $giper_baza_link( 'qwertyui' ) )\n\t\t\t\n\t\t\talice_val.val( 'Alice' )\n\t\t\tbella_val.val( 'Bella' )\n\t\t\t\n\t\t\tconst alice_link = Alice.Pawn( $giper_baza_atom_link ).Head( new $giper_baza_link( 'asdfghjk' ) )\n\t\t\tconst bella_link = Bella.Pawn( $giper_baza_atom_link ).Head( new $giper_baza_link( 'asdfghjk' ) )\n\t\t\t\n\t\t\talice_link.val( alice_val.link() )\n\t\t\t$mol_assert_equal( alice_link.val(), alice_val.link() )\n\t\t\t$mol_assert_unique( alice_link.val(), bella_link.val() )\n\t\t\t$mol_assert_equal( bella_link.val(), bella_val.link() )\n\t\t\t\n\t\t} ),\n\t\t\n\t\tasync 'Land Area inherits rights'( $ ) {\n\t\t\t\n\t\t\tconst area = await $mol_wire_async( ()=> {\n\t\t\t\tconst base = $.$giper_baza_glob.land_grab([[ null, $giper_baza_rank_post( 'just' ) ]])\n\t\t\t\tbase.units_saving()\n\t\t\t\treturn base.area_make()\n\t\t \t} )()\n\t\t\t\n\t\t\t$mol_assert_equal( area.pass_rank( area.auth().pass() ), $giper_baza_rank_rule )\n\t\t\t$mol_assert_equal( area.lord_rank( $giper_baza_link.hole ), $giper_baza_rank_post( 'just' ) )\n\t\t\t\n\t\t},\n\t\t\n\t\t// async 'Merge text changes'() {\n\t\t\t\n\t\t// \tconst base = new $giper_baza_land( 1n, 1 )\n\t\t// \tbase.chief.as( $hyoo_crowd_text ).str( 'Hello World and fun!' )\n\t\t\t\n\t\t// \tconst left = base.fork( await $hyoo_crowd_peer.generate() )\n\t\t// \tconst right = base.fork( await $hyoo_crowd_peer.generate() )\n\t\t// \tright.clock_data.tick( right.peer().id )\n\t\t\t\n\t\t// \tleft.chief.as( $hyoo_crowd_text ).str( 'Hello Alice and fun!' )\n\t\t// \tright.chief.as( $hyoo_crowd_text ).str( 'Bye World and fun!' )\n\t\t\t\n\t\t// \tconst left_delta = left.delta()\n\t\t// \tconst right_delta = right.delta()\n\t\t\t\n\t\t// \tleft.apply( right_delta )\n\t\t// \tright.apply( left_delta )\n\n\t\t// \t$mol_assert_equal(\n\t\t// \t\tleft.chief.as( $hyoo_crowd_text ).str(),\n\t\t// \t\tright.chief.as( $hyoo_crowd_text ).str(),\n\t\t// \t\t'Bye Alice and fun!',\n\t\t// \t)\n\n\t\t// },\n\t\t\n\t\t// async 'Write into token'() {\n\t\t\t\n\t\t// \tconst store = new $giper_baza_land( 1n, 1 )\n\t\t// \tstore.chief.as( $hyoo_crowd_text ).str( 'foobar' )\n\t\t// \tstore.chief.as( $hyoo_crowd_text ).write( 'xyz', 3 )\n\t\t\t\n\t\t// \t$mol_assert_equal( store.chief.as( $hyoo_crowd_list ).list(), [ 'fooxyzbar' ] )\n\t\t\t\n\t\t// },\n\t\t\n\t\t// async 'Write into token with split'() {\n\t\t\t\n\t\t// \tconst store = new $giper_baza_land( 1n, 1 )\n\t\t// \tstore.chief.as( $hyoo_crowd_text ).str( 'foobar' )\n\t\t// \tstore.chief.as( $hyoo_crowd_text ).write( 'XYZ', 2, 4 )\n\t\t\t\n\t\t// \t$mol_assert_equal( store.chief.as( $hyoo_crowd_list ).list(), [ 'fo', 'XYZar' ] )\n\t\t\t\n\t\t// },\n\t\t\n\t\t// async 'Write over few tokens'() {\n\t\t\t\n\t\t// \tconst store = new $giper_baza_land( 1n, 1 )\n\t\t// \tstore.chief.as( $hyoo_crowd_text ).str( 'xxx foo bar yyy' )\n\t\t// \tstore.chief.as( $hyoo_crowd_text ).write( 'X Y Z', 6, 9 )\n\t\t\t\n\t\t// \t$mol_assert_equal( store.chief.as( $hyoo_crowd_list ).list(), [ 'xxx', ' fo', 'X', ' Y', ' Zar', ' yyy' ] )\n\t\t\t\n\t\t// },\n\t\t\n\t\t// async 'Write whole token'() {\n\t\t\t\n\t\t// \tconst store = new $giper_baza_land( 1n, 1 )\n\t\t// \tstore.chief.as( $hyoo_crowd_text ).str( 'xxxFoo yyy' )\n\t\t// \tstore.chief.as( $hyoo_crowd_text ).write( 'bar', 3, 7 )\n\t\t\t\n\t\t// \t$mol_assert_equal( store.chief.as( $hyoo_crowd_list ).list(), [ 'xxxbaryyy' ] )\n\t\t\t\n\t\t// },\n\t\t\n\t\t// async 'Write whole text'() {\n\t\t\t\n\t\t// \tconst store = new $giper_baza_land( 1n, 1 )\n\t\t// \tstore.chief.as( $hyoo_crowd_text ).str( 'foo bar' )\n\t\t// \tstore.chief.as( $hyoo_crowd_text ).write( 'xxx', 0, 7 )\n\t\t\t\n\t\t// \t$mol_assert_equal( store.chief.as( $hyoo_crowd_list ).list(), [ 'xxx' ] )\n\t\t\t\n\t\t// },\n\t\t\n\t\t// async 'Write at the end'() {\n\t\t\t\n\t\t// \tconst store = new $giper_baza_land( 1n, 1 )\n\t\t// \tstore.chief.as( $hyoo_crowd_text ).str( 'foo' )\n\t\t// \tstore.chief.as( $hyoo_crowd_text ).write( 'bar' )\n\t\t\t\n\t\t// \t$mol_assert_equal( store.chief.as( $hyoo_crowd_list ).list(), [ 'foobar' ] )\n\t\t\t\n\t\t// },\n\t\t\n\t\t// async 'Write between tokens'() {\n\t\t\t\n\t\t// \tconst store = new $giper_baza_land( 1n, 1 )\n\t\t// \tstore.chief.as( $hyoo_crowd_text ).str( 'foo bar' )\n\t\t// \tstore.chief.as( $hyoo_crowd_text ).write( 'xxx', 4 )\n\t\t\t\n\t\t// \t$mol_assert_equal( store.chief.as( $hyoo_crowd_list ).list(), [ 'foo', ' xxxbar' ] )\n\t\t\t\n\t\t// },\n\n\t})\n}\n","namespace $ {\n\texport enum $mol_rest_code {\n\t\n\t\t'Continue' = 100,\n\t\t'Switching protocols' = 101,\n\t\t'Processing' = 102,\n\t\t\n\t\t'OK' = 200,\n\t\t'Created' = 201,\n\t\t'Accepted' = 202,\n\t\t'Non-Authoritative Information' = 203,\n\t\t'No Content' = 204,\n\t\t'Reset Content' = 205,\n\t\t'Partial Content' = 206,\n\t\t'Multi Status' = 207,\n\t\t'Already Reported' = 208,\n\t\t'IM Used' = 226,\n\t\t\n\t\t'Multiple Choices' = 300,\n\t\t'Moved Permanently' = 301,\n\t\t'Found' = 302,\n\t\t'See Other' = 303,\n\t\t'Not Modified' = 304,\n\t\t'Use Proxy' = 305,\n\t\t'Temporary Redirect' = 307,\n\t\t\n\t\t'Bad Request' = 400,\n\t\t'Unauthorized' = 401,\n\t\t'Payment Required' = 402,\n\t\t'Forbidden' = 403,\n\t\t'Not Found' = 404,\n\t\t'Method Not Allowed' = 405,\n\t\t'Not Acceptable' = 406,\n\t\t'Proxy Authentication Required' = 407,\n\t\t'Request Timeout' = 408,\n\t\t'Conflict' = 409,\n\t\t'Gone' = 410,\n\t\t'Length Required' = 411,\n\t\t'Precondition Failed' = 412,\n\t\t'Request Entity Too Large' = 413,\n\t\t'Request URI Too Long' = 414,\n\t\t'Unsupported Media Type' = 415,\n\t\t'Requested Range Not Satisfiable' = 416,\n\t\t'Expectation Failed' = 417,\n\t\t'Teapot' = 418,\n\t\t'Unprocessable Entity' = 422,\n\t\t'Locked' = 423,\n\t\t'Failed Dependency' = 424,\n\t\t'Upgrade Required' = 426,\n\t\t'Precondition Required' = 428,\n\t\t'Too Many Requests' = 429,\n\t\t'Request Header Fields Too Large' = 431,\n\t\t'Unavailable For Legal Reasons' = 451,\n\t\t\n\t\t'Internal Server Error' = 500,\n\t\t'Not Implemented' = 501,\n\t\t'Bad Gateway' = 502,\n\t\t'Service Unavailable' = 503,\n\t\t'Gateway Timeout' = 504,\n\t\t'HTTP Version Not Supported' = 505,\n\t\t'Insufficient Storage' = 507,\n\t\t'Loop Detected' = 508,\n\t\t'Not Extended' = 510,\n\t\t'Network Authentication Required' = 511,\n\t\t'Network Read Timeout Error' = 598,\n\t\t'Network Connect Timeout Error' = 599,\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport type $mol_rest_port_mime_hi =\n\t\t| 'text' | 'application' | 'font'\n\t\t| 'audio' | 'video' | 'image' | 'model'\n\t\n\texport type $mol_rest_port_mime = `${ $mol_rest_port_mime_hi }/${ string }`\n\t\n\texport class $mol_rest_port extends $mol_object {\n\t\t\n\t\tsend_code( code: $mol_rest_code ) {}\n\t\tsend_type( mime: $mol_rest_port_mime ) {}\n\t\tsend_name( name: string ) {}\n\t\t\n\t\torigin() { return 'unknown' }\n\t\taddress() { return 'unknown' }\n\t\t\n\t\t@ $mol_action\n\t\tsend_data( data: null | string | Uint8Array< ArrayBuffer > | Element | object ) {\n\t\t\tif( data === null ) return this.send_nil()\n\t\t\tif( typeof data === 'string' ) return this.send_text( data )\n\t\t\tif( data instanceof Uint8Array ) return this.send_bin( data )\n\t\t\tif( data instanceof $mol_dom_context.Element ) return this.send_dom( data )\n\t\t\treturn this.send_json( data )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tsend_nil() {\n\t\t\tthis.send_code( 204 )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tsend_bin( data: Uint8Array< ArrayBuffer > ) {\n\t\t\tthis.send_code( 200 )\n\t\t\tthis.send_type( 'application/octet-stream' )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tsend_text( data: string ) {\n\t\t\tthis.send_code( 200 )\n\t\t\tthis.send_type( 'text/plain;charset=utf-8' )\n\t\t\tthis.send_bin( $mol_charset_encode( data ) )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tsend_json( data: object ) {\n\t\t\tthis.send_code( 200 )\n\t\t\tthis.send_type( 'application/json' )\n\t\t\tthis.send_text( JSON.stringify( data ) )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tsend_dom( data: Element ) {\n\t\t\tthis.send_code( 200 )\n\t\t\tthis.send_type( 'text/html;charset=utf-8' )\n\t\t\tthis.send_text( $mol_dom_serialize( data ) )\n\t\t}\n\t\t\n\t\t@ $mol_action< any, any >\n\t\tpublic static make< This extends typeof $mol_object >(\n\t\t\tthis: This,\n\t\t\tconfig: Partial< InstanceType< This > >,\n\t\t) {\n\t\t\treturn super.make( config ) as InstanceType< This >\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport class $mol_rest_port_ws extends $mol_rest_port {}\n\t\n}\n","namespace $ {\n\t\n\texport class $mol_rest_message extends $mol_object {\n\t\t\n\t\tport!: $mol_rest_port\n\t\t\n\t\tmethod() {\n\t\t\treturn 'POST'\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\turi() {\n\t\t\treturn new URL( `rest://localhost/` )\n\t\t}\n\t\t\n\t\ttype() {\n\t\t\treturn 'application/octet-stream' as $mol_rest_port_mime\n\t\t}\n\t\t\n\t\torigin() {\n\t\t\treturn 'unknown'\n\t\t}\n\t\t\n\t\taddress() {\n\t\t\treturn 'unknown'\n\t\t}\n\t\t\n\t\tprotocols() {\n\t\t\treturn [] as readonly string[]\n\t\t}\n\t\t\n\t\tdata(): null | string | Uint8Array< ArrayBuffer > | Element | object {\n\t\t\treturn null\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tbin() {\n\t\t\tlet data = this.data()\n\t\t\tif( data instanceof Uint8Array ) return data\n\t\t\tif( data instanceof $mol_dom_context.Element ) data = $mol_dom_serialize( data )\n\t\t\tif( typeof data !== 'string' ) data = JSON.stringify( data )\n\t\t\treturn $mol_charset_encode( data )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\ttext() {\n\t\t\tconst data = this.data()\n\t\t\tif( typeof data === 'string' ) return data\n\t\t\tif( data instanceof Uint8Array ) return $mol_charset_decode( data )\n\t\t\tif( data instanceof $mol_dom_context.Element ) return $mol_dom_serialize( data )\n\t\t\treturn JSON.stringify( data )\n\t\t}\n\t\t\n\t\treply(\n\t\t\tdata: null | string | Uint8Array< ArrayBuffer > | Element | object,\n\t\t\tmeta?: {\n\t\t\t\ttype?: $mol_rest_port_mime,\n\t\t\t\tcode?: $mol_rest_code,\n\t\t\t},\n\t\t) {\n\t\t\tif( meta?.code ) this.port.send_code( meta.code )\n\t\t\tif( meta?.type ) this.port.send_type( meta.type )\n\t\t\tthis.port.send_data( data )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\troute( uri: URL ) {\n\t\t\treturn $mol_rest_message.make({\n\t\t\t\tport: this.port,\n\t\t\t\tmethod: ()=> this.method(),\n\t\t\t\turi: $mol_const( uri ),\n\t\t\t\tprotocols: ()=> this.protocols(),\n\t\t\t\ttype: ()=> this.type(),\n\t\t\t\torigin: ()=> this.origin(),\n\t\t\t\tdata: ()=> this.data(),\n\t\t\t})\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tderive(\n\t\t\tmethod: string,\n\t\t\tdata: null | string | Uint8Array< ArrayBuffer > | Element | object,\n\t\t\ttype: $mol_rest_port_mime = this.type(),\n\t\t) {\n\t\t\treturn $mol_rest_message.make({\n\t\t\t\tport: this.port,\n\t\t\t\tmethod: $mol_const( method ),\n\t\t\t\turi: ()=> this.uri(),\n\t\t\t\tprotocols: ()=> this.protocols(),\n\t\t\t\ttype: $mol_const( type ),\n\t\t\t\torigin: ()=> this.origin(),\n\t\t\t\tdata: $mol_const( data ),\n\t\t\t})\n\t\t}\n\t\t\n\t\t@ $mol_action< any, any >\n\t\tpublic static make< This extends typeof $mol_object >(\n\t\t\tthis: This,\n\t\t\tconfig: Partial< InstanceType< This > >,\n\t\t) {\n\t\t\treturn super.make( config ) as InstanceType< This >\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\texport class $mol_rest_message_http extends $mol_rest_message {\n\t\t\n\t\tinput!: InstanceType< $node['http']['IncomingMessage'] >\n\t\t\n\t\t@ $mol_mem\n\t\tmethod() {\n\t\t\treturn this.input.method ?? super.method()\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\turi() {\n\t\t\tconst addr = this.input.socket?.localAddress ?? '::1'\n\t\t\tconst port = this.input.socket?.localPort ?? '80'\n\t\t\treturn new URL( this.input.url!, `http://[${addr}]:${port}/` )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\ttype() {\n\t\t\treturn ( this.input.headers['content-type'] ?? 'application/octet-stream' ) as $mol_rest_port_mime\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\torigin() {\n\t\t\treturn this.input.headers['origin'] ?? super.origin()\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\taddress() {\n\t\t\treturn String( this.input.headers['x-forwarded-for'] ?? '' ) || this.input.socket?.remoteAddress || super.address()\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tprotocols() {\n\t\t\treturn String( this.input.headers['sec-websocket-protocol'] ?? '' ).split( ',' ).map( p => p.trim() ).filter( Boolean )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tdata(): null | string | Uint8Array< ArrayBuffer > | Element | object {\n\t\t\t\n\t\t\tconst consume = $mol_wire_sync( $node['stream/consumers'] )\n\t\t\t\n\t\t\tif( this.type().startsWith( 'text/' ) ) {\n\t\t\t\t\n\t\t\t\tconst text = consume.text( this.input )\n\t\t\t\t\n\t\t\t\tif( this.type() === 'text/html' ) {\n\t\t\t\t\treturn $mol_dom_parse( text, 'application/xhtml+xml' ).documentElement\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn text\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tif( this.type() === 'application/json' ) {\n\t\t\t\t\treturn consume.json( this.input ) as object\n\t\t\t\t} else {\n\t\t\t\t\treturn new Uint8Array( consume.arrayBuffer( this.input ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\t@ $mol_action\n\t\troute( uri: URL ) {\n\t\t\treturn $mol_rest_message_http.make({\n\t\t\t\tport: this.port,\n\t\t\t\tinput: this.input,\n\t\t\t\turi: $mol_const( uri ),\n\t\t\t\tdata: ()=> this.data(),\n\t\t\t})\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\t\n\texport enum $mol_websocket_frame_op {\n\t\t\n\t\tcon = 0,\n\t\ttxt = 1,\n\t\tbin = 2,\n\t\t\n\t\tstop = 8,\n\t\tping = 9,\n\t\tpong = 10,\n\t\t\n\t}\n\t\n\t/**\n\t * WebSocket frame header.\n\t * https://datatracker.ietf.org/doc/html/rfc6455#section-5.2\n\t * Payload >= 2^32 isn't supported\n\t */\n\texport class $mol_websocket_frame extends $mol_buffer {\n\t\t\n\t\t/** Kind of socket frame. */\n\t\tkind( next?: {\n\t\t\top: keyof typeof $mol_websocket_frame_op\n\t\t\tfin: boolean,\n\t\t} ) {\n\t\t\tif( next ) {\n\t\t\t\t\n\t\t\t\tthis.setUint8( 0, Number( next.fin ) << 7 | $mol_websocket_frame_op[ next.op ] )\n\t\t\t\treturn next\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tconst state = this.getUint8( 0 )\n\t\t\t\tconst fin = state >> 7\n\t\t\t\t\n\t\t\t\tconst op = $mol_websocket_frame_op[ state & 0b1111 ] as keyof typeof $mol_websocket_frame_op\n\t\t\t\tif( op === undefined ) $mol_fail( new Error( `Wrong op (${ state.toString(2) })` ) )\n\t\t\t\t\n\t\t\t\treturn { op, fin }\n\t\t\t\t\n\t\t\t}\n\t\t}\n\t\t\n\t\t/** Payload info. */\n\t\tdata( next?: { size: number, mask: boolean } ) {\n\t\t\tif( next === undefined ) {\n\t\t\t\t\n\t\t\t\tconst state = this.getUint8( 1 )\n\t\t\t\tconst mask = state >> 7\n\t\t\t\t\n\t\t\t\tlet size = state & 0b0111_1111\n\t\t\t\tif( size === 126 ) size = this.getUint16( 2 )\n\t\t\t\telse if( size === 127 ) size = this.getUint32( 6 )\n\t\t\t\n\t\t\t\treturn { size, mask }\n\t\t\t\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tif( next.size >= 2**16 ) {\n\t\t\t\t\t\n\t\t\t\t\tthis.setUint8( 1, 127 | Number( next.mask ) << 7 )\n\t\t\t\t\tthis.setUint32( 6, next.size )\n\t\t\t\t\t\n\t\t\t\t} else if( next.size >= 126 ) {\n\t\t\t\t\t\n\t\t\t\t\tthis.setUint8( 1, 126 | Number( next.mask ) << 7 )\n\t\t\t\t\tthis.setUint16( 2, next.size )\n\t\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\t\n\t\t\t\t\tthis.setUint8( 1, next.size | Number( next.mask ) << 7 )\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn next\n\t\t\t\t\n\t\t\t}\n\t\t}\n\t\t\n\t\t/** Header size (2..14). */\n\t\tsize() {\n\t\t\tif( this.byteLength < 2 ) return 2\n\t\t\tconst short = this.getUint8( 1 ) & 0b0111_1111\n\t\t\tconst mask = this.getUint8( 1 ) >> 7\n\t\t\treturn ( short === 127 ? 10 : short === 126 ? 4 : 2 ) + ( mask ? 4 : 0 )\n\t\t}\n\t\t\n\t\t/** 4 byte mask. */\n\t\tmask() {\n\t\t\treturn new Uint8Array( this.buffer, this.byteOffset + this.size() - 4, 4 )\n\t\t}\n\t\t\n\t\ttoString() {\n\t\t\tconst { op, fin } = this.kind()\n\t\t\tconst { size, mask } = this.data()\n\t\t\treturn `${op}${ fin ? '!' : '+' }${ size }${ mask ? '@' : '#' }`\n\t\t}\n\t\t\n\t\tstatic make(\n\t\t\top: keyof typeof $mol_websocket_frame_op,\n\t\t\tsize = 0,\n\t\t\tmask = false,\n\t\t\tfin = true,\n\t\t) {\n\t\t\t\n\t\t\tconst head = ( size >= 2**16 ? 10 : size >= 126 ? 4 : 2 ) + ( mask ? 4 : 0 )\n\t\t\tconst frame = $mol_websocket_frame.from( head ) \n\t\t\t\n\t\t\tframe.kind({ op, fin })\n\t\t\tframe.data({ size, mask })\n\t\t\t\n\t\t\treturn frame\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport class $mol_rest_port_ws_std extends $mol_rest_port_ws {\n\t\t\n\t\tsocket!: WebSocket\n\t\t\n\t\torigin() {\n\t\t\treturn this.socket.url\n\t\t}\n\n\t\t@ $mol_action\n\t\tsend_nil() {\n\t\t\tif( this.socket.readyState !== this.socket.OPEN ) return\n\t\t\tthis.socket.send( '' )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tsend_bin( data: Uint8Array< ArrayBuffer > ) {\n\t\t\tif( this.socket.readyState !== this.socket.OPEN ) return\n\t\t\tthis.socket.send( data )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tsend_text( data: string ) {\n\t\t\tif( this.socket.readyState !== this.socket.OPEN ) return\n\t\t\tconst bin = $mol_charset_encode( data )\n\t\t\tthis.socket.send( bin )\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport class $mol_rest_port_ws_node extends $mol_rest_port_ws {\n\t\t\n\t\tprolog!: InstanceType< $node['http']['IncomingMessage'] >\n\t\tsocket!: InstanceType< $node['stream']['Duplex'] >\n\t\t\n\t\t@ $mol_mem\n\t\tupgrade(): $mol_rest_message_http {\n\t\t\treturn $mol_rest_message_http.make({ port: this, input: this.prolog })\n\t\t}\n\t\t\n\t\torigin() {\n\t\t\treturn this.upgrade().origin()\n\t\t}\n\n\t\taddress() {\n\t\t\treturn this.upgrade().address()\n\t\t}\n\n\t\t@ $mol_action\n\t\tsend_nil() {\n\t\t\tif( this.socket.writableEnded ) return\n\t\t\tthis.socket.write( $mol_websocket_frame.make( 'pong', 0 ).asArray() )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tsend_bin( data: Uint8Array< ArrayBuffer > ) {\n\t\t\tif( this.socket.writableEnded ) return\n\t\t\tthis.socket.write( $mol_websocket_frame.make( 'bin', data.byteLength ).asArray() )\n\t\t\tthis.socket.write( data )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tsend_text( data: string ) {\n\t\t\tif( this.socket.writableEnded ) return\n\t\t\tconst bin = $mol_charset_encode( data )\n\t\t\tthis.socket.write( $mol_websocket_frame.make( 'txt', bin.byteLength ).asArray() )\n\t\t\tthis.socket.write( bin )\n\t\t}\n\t\t\n\t}\n\t\n\t$.$mol_rest_port_ws = $mol_rest_port_ws_node\n\t\n}\n","namespace $ {\n\t\n\tconst Passives = new WeakMap< $mol_rest_port, Set< string > >()\n\t\n\t/** Glob synchronizer */\n\texport class $giper_baza_yard extends $mol_object {\n\t\t\n\t\t/** Whole global graph database which contains Lands */\n\t\t@ $mol_mem\n\t\tglob() {\n\t\t\treturn null! as $giper_baza_glob\n\t\t}\n\t\t\n\t\tlands_news = new $mol_wire_set< string >()\n\t\t\n\t\tstatic masters_default = [] as string[]\n\t\t\n\t\t@ $mol_mem\n\t\tstatic masters_seeded() {\n\t\t\tconst all = this.$.$giper_baza_glob.Seed().peers()\n\t\t\tconst self = this.$.$giper_baza_auth.current().pass().lord()\n\t\t\tconst pos = all.findLastIndex( peer => peer.link().str === self.str )\n\t\t\tconst links = all.slice( pos + 1 ).flatMap( peer => peer.urls() )\n\t\t\treturn links.length ? links : null\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic masters_override() {\n\t\t\t\n\t\t\tconst arg = this.$.$mol_state_arg.value( 'giper_baza_yard_masters' )\n\t\t\tif( arg == null ) return null\n\t\t\t\n\t\t\tconst links = arg.split( ',' ).filter( Boolean )\n\t\t\treturn links\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic masters() {\n\t\t\treturn this.masters_override() ?? this.masters_seeded() ?? this.masters_default\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tmaster_cursor( next = 0 ) {\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tmaster_current() {\n\t\t\treturn this.$.$giper_baza_yard.masters()[ this.master_cursor() ]\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tmaster_next() {\n\t\t\tthis.master_cursor( ( this.master_cursor() + 1 ) % this.$.$giper_baza_yard.masters().length )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\treconnects( reset?: null ): number {\n\t\t\treturn ( $mol_wire_probe( ()=> this.reconnects() ) ?? 0 ) + 1\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tmaster() {\n\t\t\t\n\t\t\tthis.reconnects()\n\t\t\t\n\t\t\tconst link = this.master_current()\n\t\t\tif( !link ) return null\n\t\t\t\n\t\t\tconst socket = new $mol_dom_context.WebSocket( link.replace( /^http/, 'ws' ), [ '$giper_baza_yard_2' ] )\n\t\t\tsocket.binaryType = 'arraybuffer'\n\t\t\t\n\t\t\tconst port = new $mol_rest_port_ws_std\n\t\t\tport.socket = socket\n\t\t\t\n\t\t\tsocket.onmessage = async( event )=> {\n\t\t\t\t\n\t\t\t\tif( event.data instanceof ArrayBuffer ) {\n\t\t\t\t\tif( !event.data.byteLength ) return\n\t\t\t\t\tawait $mol_wire_async( this ).port_income( port, new Uint8Array( event.data ) )\n\t\t\t\t} else {\n\t\t\t\t\t\n\t\t\t\t\tthis.$.$mol_log3_fail({\t\n\t\t\t\t\t\tplace: this,\n\t\t\t\t\t\tmessage: 'Wrong data',\n\t\t\t\t\t\tdata: event.data\n\t\t\t\t\t})\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tlet interval: any\n\n\t\t\tsocket.onclose = ()=> {\n\t\t\t\tclearInterval( interval )\n\t\t\t\tsetTimeout( ()=> this.reconnects( null ), 1000 )\n\t\t\t}\n\t\t\t\n\t\t\tport.destructor = ()=> {\n\t\t\t\tsocket.onclose = ()=> {}\n\t\t\t\tclearInterval( interval )\n\t\t\t\tsocket.close()\n\t\t\t}\n\t\t\t\n\t\t\treturn new Promise< $mol_rest_port >( ( done, fail )=> {\n\t\t\t\t\n\t\t\t\tsocket.onopen = ()=> {\n\t\t\t\t\t\n\t\t\t\t\tthis.$.$mol_log3_come({\n\t\t\t\t\t\tplace: this,\n\t\t\t\t\t\tmessage: 'Connected',\n\t\t\t\t\t\tport: $mol_key( port ),\n\t\t\t\t\t\tserver: link,\n\t\t\t\t\t})\n\t\t\t\t\t\n\t\t\t\t\tinterval = setInterval( ()=> socket.send( new Uint8Array ), 30000 )\n\t\t\t\t\t\n\t\t\t\t\tdone( port )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tsocket.onerror = ()=> {\n\t\t\t\t\t\n\t\t\t\t\tsocket.onclose = event => {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( this.$.$giper_baza_log() ) this.$.$mol_log3_warn({\n\t\t\t\t\t\t\tplace: this,\n\t\t\t\t\t\t\tmessage: 'Master unavailable',\n\t\t\t\t\t\t\thint: 'Relax and wait for reconnect',\n\t\t\t\t\t\t\tlink,\n\t\t\t\t\t\t\tcode: event.code,\n\t\t\t\t\t\t})\n\n\t\t\t\t\t\tclearInterval( interval )\n\t\t\t\t\t\t\n\t\t\t\t\t\tinterval = setTimeout( ()=> {\n\t\t\t\t\t\t\t// fail( new Error( `Master unavailable`, { cause: { link, code: event.code } } ) )\n\t\t\t\t\t\t\tthis.master_next()\n\t\t\t\t\t\t\tthis.reconnects( null )\n\t\t\t\t\t\t}, 1000 )\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} ) as any as $mol_rest_port\n\t\t\t\n\t\t}\n\t\t\n\t\tslaves = new $mol_wire_set< $mol_rest_port >()\n\t\t\n\t\t@ $mol_mem\n\t\tsync() {\n\t\t\tthis.sync_news()\n\t\t\tthis.sync_port()\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tsync_news() {\n\t\t\t\n\t\t\tconst glob = this.$.$giper_baza_glob\n\t\t\tconst lands = [ ... this.lands_news ].map( link => glob.Land( new $giper_baza_link( link ) ) )\n\t\t\t\n\t\t\ttry {\n\t\t\t\tfor( const port of this.masters() ) {\n\t\t\t\t\tfor( const land of lands ) {\n\t\t\t\t\t\tthis.sync_port_land([ port, land.link() ])\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor( const land of lands ) land.units_saving()\n\t\t\t\tthis.lands_news.clear()\n\t\t\t} catch( error ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tsync_port() {\n\t\t\tfor( const port of this.ports() ) this.sync_port_lands( port )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tsync_port_lands( port: $mol_rest_port ) {\n\t\t\tconst masters = this.masters()\n\t\t\tfor( const land of this.port_lands_active( port ) ) {\n\t\t\t\t\n\t\t\t\tconst land_link = new $giper_baza_link( land )\n\t\t\t\tthis.sync_port_land([ port, land_link ])\n\t\t\t\t\n\t\t\t\tfor( const master of masters ) this.sync_port_land([ master, land_link ])\n\t\t\t\t\n\t\t\t}\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tports() {\n\t\t\treturn [ ... this.masters(), ... this.slaves ]\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tmasters() {\n\t\t\ttry {\n\t\t\t\treturn [ this.master() ].filter( $mol_guard_defined )\n\t\t\t} catch( error ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t\treturn []\n\t\t\t}\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tport_lands_active( port: $mol_rest_port ) {\n\t\t\treturn new $mol_wire_set< string >()\n\t\t}\n\t\t\n\t\tport_lands_passive( port: $mol_rest_port ) {\n\t\t\tlet passives = Passives.get( port )\n\t\t\tif( !passives ) Passives.set( port, passives = new Set )\n\t\t\treturn passives\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tlands_alive() {\n\t\t\tconst ports = this.ports()\n\t\t\tconst actives = ports.flatMap( port => [ ...this.port_lands_active( port ) ] )\n\t\t\tconst passives = ports.flatMap( port => [ ...this.port_lands_passive( port ) ] )\n\t\t\tconst lands = new Set([ ... actives, ... passives ])\n\t\t\tconst glob = this.$.$giper_baza_glob\n\t\t\treturn [ ... lands ].map( id => glob.Land( new $giper_baza_link( id ) ) )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tport_income( port: $mol_rest_port, msg: Uint8Array< ArrayBuffer > ) {\n\t\t\t\n\t\t\tconst pack = $mol_wire_sync( $giper_baza_pack ).from( msg ) as $giper_baza_pack\n\t\t\tconst parts = $mol_wire_sync( pack ).parts()\n\t\t\t\n\t\t\tfor( const [ land, part ] of parts ) {\n\t\t\t\t\t\n\t\t\t\tconst Land = this.$.$giper_baza_glob.Land( new $giper_baza_link( land ) )\n\t\t\t\t\n\t\t\t\tforget: {\n\t\t\t\t\t\n\t\t\t\t\tif( part.units.length ) break forget\n\t\t\t\t\tif( part.faces.size ) break forget\n\t\t\t\t\tif( !this.port_lands_active( port ).has( land ) ) break forget\n\t\t\t\t\t\n\t\t\t\t\tthis.port_lands_active( port ).delete( land )\n\t\t\t\t\t\n\t\t\t\t\tif( this.$.$giper_baza_log() ) $mol_wire_sync( this.$ ).$mol_log3_done({\n\t\t\t\t\t\tplace: this,\n\t\t\t\t\t\tmessage: 'Take Free',\n\t\t\t\t\t\tport: $mol_key( port ),\n\t\t\t\t\t\tland: Land,\n\t\t\t\t\t})\n\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tthis.face_port_sync( port, [[ land, part ]] )\n\t\t\t\t\n\t\t\t\tif( part.units.length ) {\n\t\t\t\t\t\n\t\t\t\t\tif( this.$.$giper_baza_log() ) $mol_wire_sync( this.$ ).$mol_log3_rise({\n\t\t\t\t\t\tplace: this,\n\t\t\t\t\t\tmessage: 'Take Unit',\n\t\t\t\t\t\tport: $mol_key( port ),\n\t\t\t\t\t\tland: Land,\n\t\t\t\t\t\tunits: part.units,\n\t\t\t\t\t})\n\t\t\t\t\t\n\t\t\t\t\tLand.diff_apply( part.units )\n\t\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\t\n\t\t\t\t\tif( this.$.$giper_baza_log() ) $mol_wire_sync( this.$ ).$mol_log3_rise({\n\t\t\t\t\t\tplace: this,\n\t\t\t\t\t\tmessage: 'Take Face',\n\t\t\t\t\t\tport: $mol_key( port ),\n\t\t\t\t\t\tland: Land,\n\t\t\t\t\t\tfaces: part.faces,\n\t\t\t\t\t})\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tface_port_sync(\n\t\t\tport: $mol_rest_port,\n\t\t\tincome: $giper_baza_pack_parts, \n\t\t) {\n\t\t\t\n\t\t\tconst actives = this.port_lands_active( port )\n\t\t\tconst passives = this.port_lands_passive( port )\n\t\t\t\n\t\t\tfor( const [ land, part ] of income ) {\n\t\t\t\tconst land_link = new $giper_baza_link( land )\n\t\t\t\t\n\t\t\t\tif( !passives.has( land ) ) actives.add( land )\n\t\t\t\t\n\t\t\t\tconst faces = part.faces\n\t\t\t\tlet port_faces = this.face_port_land([ port, land_link ])\n\t\t\t\t\n\t\t\t\tif( !port_faces ) this.face_port_land(\n\t\t\t\t\t[ port, land_link ],\n\t\t\t\t\tport_faces = new $giper_baza_face_map,\n\t\t\t\t)\n\t\t\t\tport_faces.sync( faces )\n\t\t\t\n\t\t\t\t// for( let unit of part.units ) {\n\t\t\t\t// \tif( unit instanceof $giper_baza_auth_pass ) continue\n\t\t\t\t// \tport_faces.peer_time( unit.lord().peer().str, unit.time(), unit.tick() )\n\t\t\t\t// }\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tsync_land( land: $giper_baza_link ) {\n\t\t\tfor( const port of this.masters() ) {\n\t\t\t\tthis.port_lands_passive( port ).add( land.str )\n\t\t\t\tthis.sync_port_land([ port, land ])\n\t\t\t}\n\t\t\tthis.sync()\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tforget_land( land: $giper_baza_land ) {\n\t\t\t\n\t\t\tconst faces = new $giper_baza_face_map\n\t\t\tfaces.stat = land.faces.stat.clone()\n\t\t\t\n\t\t\tconst pack = $giper_baza_pack.make([[\n\t\t\t\tland.link().str,\n\t\t\t\tnew $giper_baza_pack_part( [], faces )\n\t\t\t]]).asArray()\n\t\t\t\n\t\t\tfor( const port of this.ports() ) {\n\t\t\t\t\n\t\t\t\tif( !this.port_lands_passive( port ).has( land.link().str ) ) continue\n\t\t\t\tthis.port_lands_passive( port ).delete( land.link().str )\n\t\t\t\t\n\t\t\t\tif( this.$.$giper_baza_log() ) this.$.$mol_log3_done({\n\t\t\t\t\tplace: this,\n\t\t\t\t\tmessage: 'Send Free',\n\t\t\t\t\tport: $mol_key( port ),\n\t\t\t\t\tland,\n\t\t\t\t})\n\t\t\t\t\n\t\t\t\tport.send_bin( pack )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tsync_port_land( [ port, land ]: [ $mol_rest_port, $giper_baza_link ] ) {\n\t\t\t\n\t\t\ttry {\n\t\t\t\n\t\t\t\tthis.init_port_land([ port, land ])\n\t\t\t\t\n\t\t\t\tconst faces = this.face_port_land([ port, land ])\n\t\t\t\tif( !faces ) return\n\t\t\t\t\n\t\t\t\tconst Land = this.$.$giper_baza_glob.Land( land )\n\t\t\t\tLand.units_saving()\n\t\t\t\t\n\t\t\t\tconst part = Land.diff_part( faces )\n\t\t\t\tif( !part.units.length ) return\n\t\t\t\t\n\t\t\t\tif( this.$.$giper_baza_log() ) this.$.$mol_log3_rise({\n\t\t\t\t\tplace: this,\n\t\t\t\t\tmessage: 'Send Unit',\n\t\t\t\t\tport: $mol_key( port ),\n\t\t\t\t\tland: Land,\n\t\t\t\t\tpart,\n\t\t\t\t})\n\t\t\t\t\n\t\t\t\tconst pack = $giper_baza_pack.make([[ Land.link().str, part ]])\n\t\t\t\t\n\t\t\t\tport.send_bin( pack.asArray() )\n\t\t\t\tfaces.sync( part.faces )\n\t\t\t\n\t\t\t} catch( error ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tinit_port_land( [ port, land ]: [ $mol_rest_port, $giper_baza_link ] ) {\n\t\t\t// $mol_wire_solid() \n\t\t\tconst Land = this.$.$giper_baza_glob.Land( land )\n\t\t\tLand.loading()\n\t\t\tif( this.$.$giper_baza_log() ) this.$.$mol_log3_come({\n\t\t\t\tplace: this,\n\t\t\t\tmessage: 'Send Face',\n\t\t\t\tport: $mol_key( port ),\n\t\t\t\tland: Land,\n\t\t\t\tfaces: Land.faces,\n\t\t\t})\n\t\t\tport.send_bin( Land.face_pack().asArray() )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tface_port_land(\n\t\t\t[ port, land ]: [ $mol_rest_port, $giper_baza_link ],\n\t\t\tnext = null as null | $giper_baza_face_map\n\t\t) {\n\t\t\t$mol_wire_solid()\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t;[ Symbol.for( 'nodejs.util.inspect.custom' ) ]() {\n\t\t\treturn $mol_term_color.blue( `$giper_baza_yard` )\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\t\n\t$mol_test_mocks.push( $=> {\n\t\tclass $giper_baza_yard_mock extends $.$giper_baza_yard {\n\t\t\t\n\t\t\tmaster() {\n\t\t\t\treturn null\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t$.$giper_baza_yard = $giper_baza_yard_mock\n\t} )\n\t\n\t$giper_baza_yard.masters_override = ()=> [ 'http://localhost:9090/' ]\n\t\n}\n","namespace $ {\n\t\n\t$mol_wire_log.active()\n\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'Cached field' ($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_field\n\t\t\t\tstatic low = 1\n\t\t\t\t\n\t\t\t\t@ $mol_wire_field\n\t\t\t\tstatic get high() {\n\t\t\t\t\treturn this.low + 1\n\t\t\t\t}\n\t\t\t\tstatic set high( next: number ) {\n\t\t\t\t\tthis.low = next - 1\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_wire_method\n\t\t\t\tstatic test() {\n\t\t\t\t\t\n\t\t\t\t\t$mol_assert_equal( App.high , 2 )\n\t\t\n\t\t\t\t\tApp.high = 3\n\t\t\t\t\t$mol_assert_equal( App.high , 3 )\n\t\t\t\t\t\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\tApp.test()\n\t\t},\n\n\t})\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'define as methods'() {\n\t\t\t\n\t\t\tconst { foo, bar, lol } = $mol_wire_let({\n\t\t\t\tfoo( next = 1 ) { return next },\n\t\t\t\tbar() { return this.foo() + 1 },\n\t\t\t\tlol( next?: number ) { return this.foo( next ) },\n\t\t\t})\n\t\t\t\n\t\t\t$mol_assert_equal( foo(), 1 )\n\t\t\t$mol_assert_equal( bar(), 2 )\n\t\t\t\n\t\t\t$mol_assert_equal( foo(5), 5 )\n\t\t\t$mol_assert_equal( bar(), 6 )\n\t\t\t\n\t\t\t$mol_assert_equal( lol(10), 10 )\n\t\t\t$mol_assert_equal( bar(), 11 )\n\t\t\t\n\t\t},\n\t\t\n\t\t'define as closures'() {\n\t\t\t\n\t\t\tconst { foo, bar, lol } = $mol_wire_let({\n\t\t\t\tfoo: ( next = 1 )=> next,\n\t\t\t\tbar: ()=> foo() + 1,\n\t\t\t\tlol: ( next?: number )=> foo( next ),\n\t\t\t})\n\t\t\t\n\t\t\t$mol_assert_equal( foo(), 1 )\n\t\t\t$mol_assert_equal( bar(), 2 )\n\t\t\t\n\t\t\t$mol_assert_equal( foo(5), 5 )\n\t\t\t$mol_assert_equal( bar(), 6 )\n\t\t\t\n\t\t\t$mol_assert_equal( lol(10), 10 )\n\t\t\t$mol_assert_equal( bar(), 11 )\n\t\t\t\n\t\t},\n\t\t\n\t})\n}\n\n\n","namespace $.$$ {\n\t$mol_test({\n\t\t\n\t\t\"Deep property change\"( $ ) {\n\t\t\t\n\t\t\tconst source = $mol_wire_proxy( 'source', {\n\t\t\t\tfoo: {\n\t\t\t\t\tbar: 123,\n\t\t\t\t}\n\t\t\t})\n\t\t\t\n\t\t\tconst { res } = $mol_wire_let({\n\t\t\t\tres() { return source.foo.bar }\n\t\t\t})\n\t\t\t\n\t\t\t$mol_assert_equal( res(), 123 )\n\t\t\t\n\t\t\tsource.foo.bar = 321\n\t\t\t$mol_assert_equal( res(), 321 )\n\t\t\t\n\t\t},\n\t\t\n\t\t\"Deep property add/remove\"( $ ) {\n\t\t\t\n\t\t\tconst source = $mol_wire_proxy( 'source', {\n\t\t\t\tfoo: {\n\t\t\t\t\tbar: 123,\n\t\t\t\t} as any\n\t\t\t})\n\t\t\t\n\t\t\tconst { exists, props } = $mol_wire_let({\n\t\t\t\texists() { return 'bar' in source.foo },\n\t\t\t\tprops() { return Object.keys( source.foo ) },\n\t\t\t})\n\t\t\t\n\t\t\t$mol_assert_equal( exists(), true )\n\t\t\t$mol_assert_equal( props(), [ 'bar' ] )\n\t\t\t\n\t\t\tdelete source.foo.bar\n\t\t\t$mol_assert_equal( exists(), false )\n\t\t\t$mol_assert_equal( props(), [] )\n\t\t\t\n\t\t\tObject.defineProperty( source.foo, 'bar', { value: 'xxx', enumerable: true } )\n\t\t\t$mol_assert_equal( exists(), true )\n\t\t\t$mol_assert_equal( props(), [ 'bar' ] )\n\t\t\t\n\t\t},\n\t\t\n\t\t\"Deep property change to equal\"( $ ) {\n\t\t\t\n\t\t\tconst source = $mol_wire_proxy( 'source', {\n\t\t\t\tfoo: {\n\t\t\t\t\tbar: 123,\n\t\t\t\t}\n\t\t\t})\n\t\t\t\n\t\t\tlet count = 0\n\t\t\t\n\t\t\tconst { res } = $mol_wire_let({\n\t\t\t\tres() {\n\t\t\t\t\t++ count\n\t\t\t\t\treturn source.foo.bar\n\t\t\t\t}\n\t\t\t})\n\t\t\t\n\t\t\tres(); $mol_assert_equal( count, 1 )\n\t\t\tres(); $mol_assert_equal( count, 1 )\n\t\t\t\n\t\t\tsource.foo = { bar: 123 }\n\t\t\tres(); $mol_assert_equal( count, 1 )\n\t\t\t\n\t\t\tsource.foo = { bar: 321 }\n\t\t\tres(); $mol_assert_equal( count, 2 )\n\t\t\t\n\t\t},\n\t\t\n\t})\n}\n","namespace $ {\n\t\n\tconst makeURL = $mol_wire_sync( ( url: string | URL, base?: string | URL )=> new URL( url, base ))\n\t\n\texport class $mol_rest_resource extends $mol_object {\n\t\t\n\t\t@ $mol_action\n\t\tREQUEST( msg: $mol_rest_message ) {\n\t\t\t\n\t\t\tconst [ path, nest, tail ] = /^\\/([a-zA-Z][^/]*)(.*)$/.exec( msg.uri().pathname ) ?? []\n\t\t\tconst field = nest?.toLowerCase()\n\t\t\t\n\t\t\tif( field && field in this && !( field in $mol_rest_resource.prototype ) ) {\n\t\t\t\t\n\t\t\t\tconst uri2 = makeURL( msg.uri().toString() )\n\t\t\t\turi2.pathname = tail ?? msg.uri().pathname\n\t\t\t\tconst msg2 = msg.route( uri2 )\n\t\t\t\t\n\t\t\t\treturn ( this[ field as keyof typeof this ] as any )().REQUEST( msg2 )\n\t\t\t}\n\t\t\t\n\t\t\treturn ( $mol_wire_sync( this )[ msg.method() as never ] as any )( msg )\n\t\t}\n\t\t\n\t\t// async OPTIONS( msg: $mol_rest_message ) {\n\t\t\t\n\t\t// \tif( msg.type() !== 'application/sdp' ) return msg.reply( null )\n\t\t\t\n\t\t// \tconst { RTCPeerConnection } = await import( 'node-datachannel/polyfill' )\n\t\t// \tconst connection = new RTCPeerConnection\n\t\t\t\n\t\t// \tconst channel = connection.createDataChannel( msg.uri().toString(), { negotiated: true, id: 0 } )\n\t\t// \tconst port = $mol_rest_port_webrtc.make({ channel })\n\t\t\t\n\t\t// \t$mol_wire_sync( this.$ ).$mol_log3_come({\n\t\t// \t\tplace: this,\n\t\t// \t\tmessage: 'OPEN',\n\t\t// \t\turl: msg.uri(),\n\t\t// \t\tport: $mol_key( port ),\n\t\t// \t})\n\t\t\t\n\t\t// \t$mol_wire_sync( this ).REQUEST(\n\t\t// \t\tmsg.derive( 'OPEN', null )\n\t\t// \t)\n\t\t\t\n\t\t// \tchannel.onmessage = event => {\n\t\t\t\t\n\t\t// \t\tconst message = msg.derive( 'POST', event.data )\n\t\t// \t\tmessage.port = port\n\t\t\t\t\n\t\t// \t\tthis.$.$mol_log3_rise({\n\t\t// \t\t\tplace: this,\n\t\t// \t\t\tmessage: message.method(),\n\t\t// \t\t\turl: message.uri(),\n\t\t// \t\t\tport: $mol_key( port ),\n\t\t// \t\t})\n\n\t\t// \t\t$mol_wire_async( this ).POST( message )\n\t\t\t\t\n\t\t// \t}\n\t\t\t\n\t\t// \tchannel.onclose = ()=> {\n\t\t\t\t\n\t\t// \t\tthis.$.$mol_log3_done({\n\t\t// \t\t\tplace: this,\n\t\t// \t\t\tmessage: 'CLOSE',\n\t\t// \t\t\turl: msg.uri(),\n\t\t// \t\t\tport: $mol_key( port ),\n\t\t// \t\t})\n\t\t\t\t\n\t\t// \t\t$mol_wire_sync( this ).REQUEST(\n\t\t// \t\t\tmsg.derive( 'CLOSE', null )\n\t\t// \t\t)\n\t\t\t\t\n\t\t// \t}\n\t\t\t\n\t\t// \tconst sdp = await $mol_wire_async( msg ).text()\n\t\t// \tawait connection.setRemoteDescription({ sdp, type: 'offer' })\n\t\t\t\n\t\t// \tconnection.setLocalDescription({ type: 'answer' })\n\t\t// \tawait new Promise( done => connection.onicecandidate = ({ candidate })=> done( candidate ) )\n\t\t\t\n\t\t// \tmsg.port.send_type( 'application/sdp' )\n\t\t// \tmsg.port.send_text( connection.localDescription!.sdp )\n\t\t\t\n\t\t// }\n\t\t\n\t\t_protocols = [] as readonly string[]\n\t\tOPEN( msg: $mol_rest_message ) {\n\t\t\tconst protocols = msg.protocols()\n\t\t\tfor( const protocol of protocols ) {\n\t\t\t\tif( this._protocols.includes( protocol ) ) return protocol\n\t\t\t}\n\t\t\treturn ''\n\t\t}\n\t\tCLOSE( msg: $mol_rest_message ) {}\n\t\t\n\t\tHEAD( msg: $mol_rest_message ) {}\n\t\tGET( msg: $mol_rest_message ) {}\n\t\t\n\t\tPUT( msg: $mol_rest_message ) {}\n\t\tPATCH( msg: $mol_rest_message ) {}\n\t\t\n\t\tPOST( msg: $mol_rest_message ) {}\n\t\tDELETE( msg: $mol_rest_message ) {}\n\t\t\n\t\t_auto() {}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic port( port: number ) {\n\t\t\t\n\t\t\tconst server = $mol_rest_server.make({\n\t\t\t\tport: ()=> port,\n\t\t\t})\n\t\t\t\n\t\t\tserver.root( this.make({}) )\n\t\t\tserver.start()\n\t\t\tnew $mol_wire_atom( `${ server.root() }._auto<>`, ()=> {\n\t\t\t\ttry {\n\t\t\t\t\tserver.root()._auto()\n\t\t\t\t} catch( error ) {\n\t\t\t\t\tif( $mol_promise_like( error ) ) $mol_fail_hidden( error )\n\t\t\t\t\t$mol_fail_log( error )\n\t\t\t\t}\n\t\t\t} ).fresh()\n\t\t\t\n\t\t\treturn server\n\t\t}\n\t\t\n\t\tstatic serve() {\n\t\t\tconst port = Number( this.$.$mol_state_arg.value( 'port' ) )\n\t\t\treturn port ? this.port( port ) : null\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport let $mol_file_extensions = {\n\t\t\n\t\t'css': 'text/css;charset=utf-8',\n\t\t'csv': 'text/csv;charset=utf-8',\n\t\t'htm': 'text/html;charset=utf-8',\n\t\t'html': 'text/html;charset=utf-8',\n\t\t'ics': 'text/calendar;charset=utf-8',\n\t\t'js': 'text/javascript;charset=utf-8',\n\t\t'jsx': 'text/javascript;charset=utf-8',\n\t\t'md': 'text/plain;charset=utf-8',\n\t\t'mjs': 'text/javascript;charset=utf-8',\n\t\t'ts': 'text/typescript;charset=utf-8',\n\t\t'tsx': 'text/typescript;charset=utf-8',\n\t\t'txt': 'text/plain;charset=utf-8',\n\t\t\n\t\t'aac': 'audio/aac',\n\t\t'mid': 'audio/midi',\n\t\t'midi': 'audio/midi',\n\t\t'mp3': 'audio/mpeg',\n\t\t'oga': 'audio/ogg',\n\t\t'opus': 'audio/opus',\n\t\t'wav': 'audio/wav',\n\t\t'weba': 'audio/webm',\n\t\t\n\t\t'apng': 'image/apng',\n\t\t'avif': 'image/avif',\n\t\t'bmp': 'image/bmp',\n\t\t'gif': 'image/gif',\n\t\t'ico': 'image/vnd.microsoft.icon',\n\t\t'jpeg': 'image/jpeg',\n\t\t'jpg': 'image/jpeg',\n\t\t'png': 'image/png',\n\t\t'svg': 'image/svg+xml',\n\t\t'tiff': 'image/tiff',\n\t\t'tif': 'image/tiff',\n\t\t'webp': 'image/webp',\n\t\t\n\t\t'avi': 'video/x-msvideo',\n\t\t'mpeg': 'video/mpeg',\n\t\t'mp4': 'video/mp4',\n\t\t'ogv': 'video/ogg',\n\t\t'webm': 'video/webm',\n\t\t'3gp': 'video/3gpp',\n\t\t'3g2': 'video/3gpp2',\n\t\t\n\t\t'otf': 'font/otf',\n\t\t'ttf': 'font/ttf',\n\t\t'woff': 'font/woff',\n\t\t'woff2': 'font/woff2',\n\t\t\n\t\t'abw': 'application/x-abiword',\n\t\t'arc': 'application/x-freearc',\n\t\t'azw': 'application/vnd.amazon.ebook',\n\t\t'bin': 'application/octet-stream',\n\t\t'bz': 'application/x-bzip',\n\t\t'bz2': 'application/x-bzip2',\n\t\t'cda': 'application/x-cdf',\n\t\t'crus': 'application/x-crus',\n\t\t'csh': 'application/x-csh',\n\t\t'doc': 'application/msword',\n\t\t'docx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n\t\t'eot': 'application/vnd.ms-fontobject',\n\t\t'epub': 'application/epub+zip',\n\t\t'gz': 'application/gzip',\n\t\t'jar': 'application/java-archive',\n\t\t'json': 'application/json',\n\t\t'jsonld': 'application/ld+json',\n\t\t'map': 'application/json',\n\t\t'mpkg': 'application/vnd.apple.installer+xml',\n\t\t'odp': 'application/vnd.oasis.opendocument.presentation',\n\t\t'ods': 'application/vnd.oasis.opendocument.spreadsheet',\n\t\t'odt': 'application/vnd.oasis.opendocument.text',\n\t\t'ogx': 'application/ogg',\n\t\t'pdf': 'application/pdf',\n\t\t'php': 'application/x-httpd-php',\n\t\t'ppt': 'application/vnd.ms-powerpoint',\n\t\t'pptx': 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n\t\t'rar': 'application/vnd.rar',\n\t\t'rtf': 'application/rtf',\n\t\t'sh': 'application/x-sh',\n\t\t'tar': 'application/x-tar',\n\t\t'tree': 'application/x-tree',\n\t\t'vsd': 'application/vnd.visio',\n\t\t'xhtml': 'application/xhtml+xml',\n\t\t'xls': 'application/vnd.ms-excel',\n\t\t'xlsx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n\t\t'xml': 'application/xml',\n\t\t'xul': 'application/vnd.mozilla.xul+xml',\n\t\t'zip': 'application/zip',\n\t\t'7z': 'application/x-7z-compressed',\n\t\t\n\t} as Record< string, $mol_rest_port_mime >\n\t\n}\n","namespace $ {\n\t\n\texport class $mol_rest_port_http extends $mol_rest_port {\n\t\t\n\t\toutput!: InstanceType< $node['http']['ServerResponse'] >\n\t\t\n\t\t@ $mol_action\n\t\tsend_code( code: $mol_rest_code ) {\n\t\t\tif( this.output.writableEnded ) return\n\t\t\tif( this.output.statusCode !== 400 ) return\n\t\t\tthis.output.statusCode = code\n\t\t\tthis.output.setHeader( 'x-content-type-options', 'nosniff' )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tsend_type( mime: $mol_rest_port_mime ) {\n\t\t\tif( this.output.writableEnded ) return\n\t\t\tif( this.output.getHeader( 'content-type' ) ) return\n\t\t\tthis.output.setHeader( 'content-type', mime )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tsend_name( name: string ) {\n\t\t\tif( this.output.writableEnded ) return\n\t\t\tif( this.output.getHeader( 'content-disposition' ) ) return\n\t\t\t\n\t\t\tconst utf8 = encodeURIComponent( name )\n\t\t\t\t.replace( /['()*]/g, char => '%' + char.charCodeAt( 0 ).toString( 16 ).toUpperCase() )\n\t\t\t\n\t\t\tthis.output.setHeader( 'content-disposition', `inline; filename*=UTF-8''${ utf8 }` )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tsend_bin( data: Uint8Array< ArrayBuffer > ) {\n\t\t\tif( this.output.writableEnded ) return\n\t\t\tsuper.send_bin( data )\n\t\t\tthis.output.write( data )\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport class $mol_rest_server extends $mol_object {\n\t\t\n\t\tlog() {\n\t\t\treturn this.$.$mol_state_arg.value( 'mol_rest_server_log' ) !== null\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tport() {\n\t\t\treturn 0\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstart() {\n\t\t\tthis.http_server()\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\thttp_server() {\n\t\t\t\n\t\t\tconst server = $node.http.createServer( ( req, res )=> {\n\t\t\t\tres.statusCode = 400\n\t\t\t\t$mol_wire_async( this ).http_income( req, res )\n\t\t\t} )\n\t\t\t\n\t\t\tserver.on( 'upgrade',\n\t\t\t\t( req, sock, head: Buffer< ArrayBuffer > )=> $mol_wire_async( this ).ws_upgrade( req, sock, head )\n\t\t\t)\n\t\t\t\n\t\t\tserver.listen( this.port(), ()=> {\n\t\t\t\t\n\t\t\t\tconst ifaces = Object.entries( $node.os.networkInterfaces() )\n\t\t\t\t\t.flatMap( ([ type, ifaces ])=> ifaces?.map(\n\t\t\t\t\t\tiface => iface.family === 'IPv6' ? `[${iface.address}]` : iface.address\n\t\t\t\t\t) ?? [] )\n\t\t\t\t\n\t\t\t\tthis.$.$mol_log3_done({\n\t\t\t\t\tplace: this,\n\t\t\t\t\tmessage: 'HTTP Server Started',\n\t\t\t\t\tlinks: ifaces.map( iface => `http://${ iface }:${ this.port() }/` ),\n\t\t\t\t})\n\t\t\t\t\n\t\t\t} )\n\t\t\t\n\t\t\treturn server\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\thttp_income(\n\t\t\treq: InstanceType< $node['http']['IncomingMessage'] >,\n\t\t\tres: InstanceType< $node['http']['ServerResponse'] >,\n\t\t) {\n\t\t\t\n\t\t\tconst port = $mol_rest_port_http.make({ output: res })\n\t\t\tconst msg = $mol_rest_message_http.make({ port, input: req })\n\t\t\t\n\t\t\tif( this.log() ) $mol_wire_sync( this.$ ).$mol_log3_rise({\n\t\t\t\tplace: this,\n\t\t\t\tmessage: msg.method(),\n\t\t\t\turl: msg.uri(),\n\t\t\t\torigin: msg.origin(),\n\t\t\t\tremote: req.socket.remoteAddress + ':' + req.socket.remotePort\n\t\t\t})\n\t\t\t\n\t\t\t$mol_wire_sync( res ).setHeader( 'Access-Control-Allow-Origin', '*' )\n\t\t\t$mol_wire_sync( res ).setHeader( 'Access-Control-Allow-Methods', '*' )\n\t\t\t$mol_wire_sync( res ).setHeader( 'Access-Control-Allow-Headers', '*' )\n\t\t\t\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\t$mol_wire_sync( this.root() ).REQUEST( msg )\n\t\t\t\t\n\t\t\t} catch( error: any ) {\n\t\t\t\t\n\t\t\t\tif( $mol_promise_like( error ) ) $mol_fail_hidden( error )\n\t\t\t\t\t\n\t\t\t\t$mol_wire_sync( $$ ).$mol_log3_fail({\n\t\t\t\t\tplace: this,\n\t\t\t\t\tmessage: error.message ?? '',\n\t\t\t\t\torigin: msg.origin(),\n\t\t\t\t\taddress: msg.address(),\n\t\t\t\t\tcause: error.cause,\n\t\t\t\t\tstack: error.stack,\n\t\t\t\t})\n\t\t\t\t\n\t\t\t\t$mol_wire_sync( res ).writeHead( 500, error.name || 'Server Error' )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tres.end()\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tws_upgrade(\n\t\t\treq: InstanceType< $node['http']['IncomingMessage'] >,\n\t\t\tsocket: InstanceType< $node['stream']['Duplex'] >,\n\t\t\thead: Buffer< ArrayBuffer >,\n\t\t) {\n\t\t\t\n\t\t\tconst port = $mol_rest_port_ws_node.make({ socket, prolog: req })\n\t\t\tconst upgrade = port.upgrade()\n\t\t\tlet protocol = ''\n\t\t\t\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\tprotocol = $mol_wire_sync( this.root() ).REQUEST(\n\t\t\t\t\tupgrade.derive( 'OPEN', null )\n\t\t\t\t)\n\t\t\t\t\n\t\t\t\tif( !protocol ) {\n\t\t\t\t\tsocket.write(\n\t\t\t\t\t\t'HTTP/1.1 400 Bad Request\\r\\n' +\n\t\t\t\t\t\t'\\r\\n' +\n\t\t\t\t\t\t`Unsupported Protocols: ${ upgrade.protocols() }`\n\t\t\t\t\t)\n\t\t\t\t\tsocket.end()\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} catch( error: any ) {\n\t\t\t\t\n\t\t\t\tif( $mol_promise_like( error ) ) $mol_fail_hidden( error )\n\t\t\t\t\t\n\t\t\t\t$mol_wire_sync( $$ ).$mol_log3_fail({\n\t\t\t\t\tplace: this,\n\t\t\t\t\tmessage: error.message ?? '',\n\t\t\t\t\torigin: upgrade.origin(),\n\t\t\t\t\taddress: upgrade.address(),\n\t\t\t\t\tcause: error.cause,\n\t\t\t\t\tstack: error.stack,\n\t\t\t\t})\n\t\t\t\t\n\t\t\t\tsocket.end()\n\t\t\t\treturn\n\t\t\t}\n\t\t\t\n\t\t\tconst onclose = $mol_wire_async( ()=> {\n\t\t\t\t\n\t\t\t\tif( this.log() ) $mol_wire_sync( this.$ ).$mol_log3_done({\n\t\t\t\t\tplace: this,\n\t\t\t\t\tmessage: 'CLOSE',\n\t\t\t\t\turl: upgrade.uri(),\n\t\t\t\t\torigin: upgrade.origin(),\n\t\t\t\t\tport: $mol_key( port ),\n\t\t\t\t})\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\t\n\t\t\t\t\t$mol_wire_sync( this.root() ).REQUEST(\n\t\t\t\t\t\tupgrade.derive( 'CLOSE', null )\n\t\t\t\t\t)\n\t\t\t\t\t\n\t\t\t\t} catch( error: any ) {\n\t\t\t\t\t\n\t\t\t\t\tif( $mol_promise_like( error ) ) $mol_fail_hidden( error )\n\t\t\t\t\t\t\n\t\t\t\t\t$mol_wire_sync( $$ ).$mol_log3_fail({\n\t\t\t\t\t\tplace: this,\n\t\t\t\t\t\tmessage: error.message ?? '',\n\t\t\t\t\t\torigin: upgrade.origin(),\n\t\t\t\t\t\taddress: upgrade.address(),\n\t\t\t\t\t\tcause: error.cause,\n\t\t\t\t\t\tstack: error.stack,\n\t\t\t\t\t})\n\t\t\t\t\t\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tsocket.end()\n\t\t\t\t\n\t\t\t} )\n\t\t\t\n\t\t\tsocket.on( 'end', onclose )\n\t\t\tsocket.on( 'error', onclose )\n\t\t\t\n\t\t\tsocket.on( 'data', ( chunk: Buffer< ArrayBuffer > )=> this.ws_income( chunk, upgrade, socket ) )\n\t\t\t\n\t\t\tconst key_in = req.headers[\"sec-websocket-key\"]\n\t\t\tconst magic = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'\n\t\t\tconst key_out = $mol_base64_encode( $mol_crypto2_hash( $mol_charset_encode( key_in + magic ) ) )\n\t\t\t\n\t\t\tsocket.write(\n\t\t\t\t'HTTP/1.1 101 WS Handshaked\\r\\n' +\n\t\t\t\t'Upgrade: WebSocket\\r\\n' +\n\t\t\t\t'Connection: Upgrade\\r\\n' +\n\t\t\t\t`Sec-WebSocket-Accept: ${key_out}\\r\\n` +\n\t\t\t\t`Sec-WebSocket-Protocol: ${protocol}\\r\\n` +\n\t\t\t\t'\\r\\n'\n\t\t\t)\n\t\t\t\n\t\t\tif( this.log() ) $mol_wire_sync( this.$ ).$mol_log3_come({\n\t\t\t\tplace: this,\n\t\t\t\tmessage: 'OPEN',\n\t\t\t\turl: upgrade.uri(),\n\t\t\t\torigin: upgrade.origin(),\n\t\t\t\tport: $mol_key( port ),\n\t\t\t})\n\t\t\t\n\t\t}\n\t\t\n\t\t_ws_income_chunks = new WeakMap< InstanceType< typeof $node.stream.Duplex >, Uint8Array< ArrayBuffer >[] >\n\t\t_ws_income_frames = new WeakMap< InstanceType< typeof $node.stream.Duplex >, ( string | Uint8Array< ArrayBuffer > )[] >\n\t\t\n\t\tasync ws_income(\n\t\t\tchunk: Buffer< ArrayBuffer >,\n\t\t\tupgrade: $mol_rest_message,\n\t\t\tsock: InstanceType< typeof $node.stream.Duplex >,\n\t\t) {\n\t\t\t\n\t\t\tsock.pause()\n\t\t\t\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\tlet chunks = this._ws_income_chunks.get( sock )!\n\t\t\t\tif( !chunks ) this._ws_income_chunks.set( sock, chunks = [] )\n\t\t\t\t\n\t\t\t\tchunks.push( chunk )\n\t\t\t\t\n\t\t\t\tlet frame = $mol_websocket_frame.from( chunks[0] )\n\t\t\t\tlet header_size = frame.size()\n\t\t\t\t\n\t\t\t\tif( chunks[0].byteLength < header_size ) {\n\t\t\t\t\tif( chunks.length < 2 ) return setTimeout( ()=> sock.resume() ), undefined\n\t\t\t\t\t\n\t\t\t\t\tchunk = Buffer.from([ ... chunks[0], ... chunks[1] ])\n\t\t\t\t\tchunks.splice( 0, 2, chunk )\n\t\t\t\t\tframe = $mol_websocket_frame.from( chunk )\n\t\t\t\t\theader_size = frame.size()\n\t\t\t\t\t\n\t\t\t\t\tif( chunk.byteLength < header_size ) return setTimeout( ()=> sock.resume() ), undefined\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst msg_size = header_size + frame.data().size\n\t\t\t\tconst patial_size = chunks.reduce( ( sum, buf )=> sum + buf.byteLength, 0 )\n\t\t\t\tif( msg_size > patial_size ) return setTimeout( ()=> sock.resume() ), undefined\n\t\t\t\t\n\t\t\t\tchunk = Buffer.alloc( patial_size )\n\t\t\t\tlet offset = 0\n\t\t\t\tfor( const buf of chunks.splice( 0 ) ) {\n\t\t\t\t\tchunk.set( buf, offset )\n\t\t\t\t\toffset += buf.byteLength\n\t\t\t\t}\n\t\t\t\tframe = $mol_websocket_frame.from( chunk )\n\t\t\t\t\n\t\t\t\tif( msg_size < chunk.byteLength ) {\n\t\t\t\t\tconst tail = new Uint8Array( chunk.buffer, chunk.byteOffset + msg_size )\n\t\t\t\t\tsock.unshift( tail )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tlet data: string | Uint8Array< ArrayBuffer > = new Uint8Array( chunk.buffer, chunk.byteOffset + frame.size(), frame.data().size )\n\t\t\t\t\n\t\t\t\tif( frame.data().mask ) {\n\t\t\t\t\tconst mask = frame.mask()\n\t\t\t\t\tfor( let i = 0; i < data.length; ++i ) {\n\t\t\t\t\t\tdata[ i ] ^= mask[ i % 4 ]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst op = frame.kind().op\n\t\t\t\tif( op === 'txt' ) data = $mol_charset_decode( data )\n\t\t\t\t\n\t\t\t\tlet frames = this._ws_income_frames.get( sock )!\n\t\t\t\tif( !frames ) this._ws_income_frames.set( sock, frames = [] )\n\t\t\t\t\n\t\t\t\tif( !frame.kind().fin ) {\n\t\t\t\t\tframes.push( data )\n\t\t\t\t\tsetTimeout( ()=> sock.resume() )\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( frames.length ) {\n\t\t\t\t\tframes.push( data )\n\t\t\t\t\tif( typeof frames[0] === 'string' ) {\n\t\t\t\t\t\tdata = ( frames as string[] ).join( '' )\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst size = ( frames as Uint8Array< ArrayBuffer >[] ).reduce( ( s, f )=> s + f.byteLength, 0 )\n\t\t\t\t\t\tdata = new Uint8Array( size )\n\t\t\t\t\t\tlet offset = 0\n\t\t\t\t\t\tfor( const frame of ( frames as Uint8Array< ArrayBuffer >[] ) ) {\n\t\t\t\t\t\t\tdata.set( frame, offset )\n\t\t\t\t\t\t\toffset += frame.byteLength\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tframes.length = 0\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( op !== 'txt' && op !== 'bin' && op !== 'con' ) {\n\t\t\t\t\tsetTimeout( ()=> sock.resume() )\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\n\t\t\t\tconst type = typeof data === 'string' ? 'text/plain' : 'application/octet-stream'\n\t\t\t\tconst message = upgrade.derive( 'POST', data, type )\n\t\t\t\t\n\t\t\t\tif( data.length !== 0 ) {\n\t\t\t\t\tif( this.log() ) this.$.$mol_log3_rise({\n\t\t\t\t\t\tplace: this,\n\t\t\t\t\t\tmessage: message.method(),\n\t\t\t\t\t\tport: $mol_key( message.port ),\n\t\t\t\t\t\turl: message.uri(),\n\t\t\t\t\t\torigin: message.origin(),\n\t\t\t\t\t\tframe: frame.toString(),\n\t\t\t\t\t})\n\t\t\t\t\tawait $mol_wire_async( this.root() ).REQUEST( message )\n\t\t\t\t}\n\t\t\t\n\t\t\t\tsetTimeout( ()=> sock.resume() )\n\t\t\t\t\n\t\t\t} catch( error: any ) {\n\t\t\t\t\n\t\t\t\tif( $mol_promise_like( error ) ) $mol_fail_hidden( error )\n\t\t\t\t\n\t\t\t\t$$.$mol_log3_fail({\n\t\t\t\t\tplace: this,\n\t\t\t\t\tmessage: error.message ?? '',\n\t\t\t\t\torigin: upgrade.origin(),\n\t\t\t\t\taddress: upgrade.address(),\n\t\t\t\t\tcause: error.cause,\n\t\t\t\t\tstack: error.stack,\n\t\t\t\t})\n\t\t\t\t\n\t\t\t\tsock.end()\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\troot( resource?: $mol_rest_resource ) {\n\t\t\t$mol_wire_solid()\n\t\t\treturn resource ?? $mol_rest_resource.make({})\n\t\t}\n\t\t\n\t\t;[ Symbol.for( 'nodejs.util.inspect.custom' ) ]() {\n\t\t\treturn $mol_term_color.blue( '$mol_rest_server' )\n\t\t}\n\t\t\n\t}\n\t\n}\n","/** @jsx $mol_jsx */\nnamespace $ {\n\t\n\texport class $mol_rest_resource_fs extends $mol_rest_resource {\n\t\t\n\t\t@ $mol_memo.method\n\t\t_root() { return $mol_file.relative( __dirname ) }\n\t\t\n\t\tGET( msg: $mol_rest_message ) {\n\t\t\t\n\t\t\tconst root = this._root()\n\t\t\tconst file = root.resolve( msg.uri().pathname )\n\t\t\tif( !file.exists() ) return msg.reply( null, { code: 404 } )\n\t\t\t\n\t\t\tswitch( file.type() ) {\n\t\t\t\t\n\t\t\t\tcase 'file': {\n\t\t\t\t\t\n\t\t\t\t\treturn msg.reply( file.buffer(), {\n\t\t\t\t\t\ttype: $mol_file_extensions[ file.ext().replace( /^.*\\./, '' ) ],\n\t\t\t\t\t} )\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tcase 'dir': {\n\t\t\t\t\t\n\t\t\t\t\tconst index = file.resolve( './index.html' )\n\t\t\t\t\tif( index.exists() ) return msg.reply( index.buffer(), { type: 'text/html' } )\n\t\t\t\t\t\n\t\t\t\t\tconst resources = Object.getOwnPropertyNames( Object.getPrototypeOf( this ) )\n\t\t\t\t\n\t\t\t\t\treturn msg.reply( <body>\n\t\t\t\t\t\t\n\t\t\t\t\t\t<style>{`\n\t\t\t\t\t\t\tbody { background: black; font: 1rem/1.5rem monospace }\n\t\t\t\t\t\t\ta { color: royalblue; text-decoration: none }\n\t\t\t\t\t\t\ta:hover { color: skyblue }\n\t\t\t\t\t\t`}</style>\n\t\t\t\t\t\t\n\t\t\t\t\t\t{ resources.map( res => {\n\t\t\t\t\t\t\tif( res === 'constructor' ) return null\n\t\t\t\t\t\t\tif( !/^[a-z][a-z_-]*$/.test( res ) ) return null\n\t\t\t\t\t\t\tconst uri = root.resolve( res )\n\t\t\t\t\t\t\treturn <a href={ uri.relate( file ) + '/' }>/{res}/<br/></a>\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\n\t\t\t\t\t\t<a href=\"../\">../<br/></a>\n\t\t\t\t\t\t\n\t\t\t\t\t\t{ file.sub().map( kid => {\n\t\t\t\t\t\t\tconst uri = kid.name() + ( kid.type() === 'dir' ? '/' : '' )\n\t\t\t\t\t\t\treturn <a href={uri}>{uri}<br/></a>\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\n\t\t\t\t\t</body> )\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n}\n","// namespace $ {\n// \t$mol_report_bugsnag = '18acf016ed2a2a4cc4445daa9dd2dd3c'\n// }\n","namespace $ {\n\t\n\texport function $hyoo_harp_to_string< Query extends $hyoo_harp_query >( query: Query ): string {\n\n\t\treturn Object.entries( query ).map( ([ field, harp ])=> {\n\t\t\t\n\t\t\tif( field === '+' ) return ''\n\t\t\tif( field === '=' ) return ''\n\t\t\tif( field === '!=' ) return ''\n\t\t\tif( !harp ) return ''\n\t\t\t\n\t\t\tconst harp2 = harp as $hyoo_harp_query<any>\n\t\t\t\n\t\t\tconst order = harp2['+'] === true ? '+' : harp2['+'] === false ? '-' : ''\n\t\t\tconst filter = harp2['='] ? '=' : harp2['!='] ? '!=' : ''\n\t\t\tconst name = encodeURIComponent( field )\n\t\t\t\n\t\t\tlet values = ( ( harp2['='] || harp2['!='] || [] ) as unknown[][] ).map( ([ min , max ]) => {\n\n\t\t\t\tif( max === undefined || min === max ) return encodeURIComponent( String( min ) ) + '='\n\t\t\t\t\n\t\t\t\tmin = ( min === undefined ) ? '' : encodeURIComponent( String( min ) )\n\t\t\t\tmax = ( max === undefined ) ? '' : encodeURIComponent( String( max ) )\n\t\t\t\t\n\t\t\t\treturn `${ min }@${ max }=`\n\n\t\t\t} ).join( '' )\n\t\t\t\n\t\t\tlet fetch = $hyoo_harp_to_string( harp as $hyoo_harp_query )\n\t\t\tif( fetch ) fetch = `(${fetch})`\n\n\t\t\treturn `${order}${name}${filter}${values}${fetch}`\n\t\t\t\n\t\t}).filter( Boolean ).join( ';' )\n\n\t}\n\n}\n","namespace $ {\n\n\t/** Creates lexer by dictionary of lexems. Lexem that started first wins. Then lexem that declared earlier wins. Use regexp capture to take parts of token. */\n\texport class $mol_syntax2< Lexems extends { [ name : string ] : RegExp } = {} > {\n\t\t\n\t\tconstructor(\n\t\t\tpublic lexems : Lexems\n\t\t) {\n\n\t\t\tfor( let name in lexems ) {\n\t\t\t\tthis.rules.push({\n\t\t\t\t\tname : name ,\n\t\t\t\t\tregExp : lexems[ name ] ,\n\t\t\t\t\tsize : RegExp( '^$|' + lexems[ name ].source ).exec( '' )!.length - 1 , \n\t\t\t\t})\n\t\t\t}\n\n\t\t\tconst parts = '(' + this.rules.map( rule => rule.regExp.source ).join( ')|(' ) + ')'\n\t\t\tthis.regexp = RegExp( `([\\\\s\\\\S]*?)(?:(${ parts })|$(?![^]))` , 'gmu' ) \n\t\t\t\n\t\t}\n\t\t\n\t\trules = [] as Array<{\n\t\t\tregExp : RegExp ,\n\t\t\tname : string ,\n\t\t\tsize : number\n\t\t}>\n\t\t\n\t\tregexp : RegExp\n\n\t\ttokenize(\n\t\t\ttext : string ,\n\t\t\thandle : ( name : string , found : string , chunks : string[] , offset : number )=> void ,\n\t\t) {\n\t\t\t\n\t\t\tlet end = 0\n\t\t\t\t\n\t\t\tlexing : while( end < text.length ) {\n\n\t\t\t\tconst start = end\n\n\t\t\t\tthis.regexp.lastIndex = start\n\t\t\t\tvar found = this.regexp.exec( text )!\n\t\t\t\t\n\t\t\t\tend = this.regexp.lastIndex\n\t\t\t\tif( start === end ) throw new Error( 'Empty token' )\n\t\t\t\t\n\t\t\t\tvar prefix = found[ 1 ]\n\t\t\t\tif( prefix ) handle( '' , prefix , [ prefix ] , start )\n\t\t\t\t\n\t\t\t\tvar suffix = found[ 2 ]\n\t\t\t\tif( !suffix ) continue\n\n\t\t\t\tlet offset = 4\n\t\t\t\tfor( let rule of this.rules ) {\n\n\t\t\t\t\tif( found[ offset - 1 ] ) {\n\t\t\t\t\t\thandle( rule.name , suffix , found.slice( offset, offset + rule.size ) , start + prefix.length )\n\t\t\t\t\t\tcontinue lexing\n\t\t\t\t\t}\n\n\t\t\t\t\toffset += rule.size + 1\n\t\t\t\t}\n\n\t\t\t\t$mol_fail( new Error( '$mol_syntax2 is broken' ) )\n\n\t\t\t}\n\n\t\t}\n\t\t\n\t\tparse(\n\t\t\ttext : string ,\n\t\t\thandlers : { [ key in keyof Lexems | '' ] : ( found : string , chunks : string[] , offset : number )=> void } ,\n\t\t) : void {\n\t\t\tthis.tokenize( text , ( name , ...args )=> handlers[ name ]( ... args ) )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\t\n\tconst syntax = new $mol_syntax2({\n\t\t'filter' : /!?=/ ,\n\t\t'range_separator' : /@/ ,\n\t\t'fetch_open' : /\\(/ ,\n\t\t'fetch_separator' : /[:;&\\/?#]/ ,\n\t\t'fetch_close' : /\\)/ ,\n\t})\n\n\texport function $hyoo_harp_from_string( uri: string ): $hyoo_harp_query {\n\t\t\n\t\tlet parent = {} as $hyoo_harp_query\n\t\tlet prev = null as null | $hyoo_harp_query\n\t\tlet stack = [ parent ]\n\t\tlet range = null as null | string[]\n\t\tlet values = null as null | string[][]\n\n\t\tfunction fail_at( offset : number ) {\n\t\t\tconst uri_marked = uri.substring( 0 , offset ) + '\\u035C' + uri.substring( offset )\n\t\t\t$mol_fail( new Error( `Unexpected token at ${ offset } of \"${ uri_marked }\"` ) )\n\t\t}\n\t\t\n\t\tsyntax.parse( uri , {\n\n\t\t\t'' : ( text , chunks , offset ) => {\n\n\t\t\t\tif( values ) {\n\n\t\t\t\t\ttext = decodeURIComponent( text )\n\t\t\t\t\trange = ( range && range.length > 1 )\n\t\t\t\t\t\t? [ range[0] , range[1] + text ]\n\t\t\t\t\t\t: [ ( range?.[0] ?? '' ) + text ]\n\t\t\t\t\t\n\t\t\t\t} else {\n\n\t\t\t\t\tlet [, order, name ] = /^([+-]?)(.*)$/.exec( text )!\n\t\t\t\t\tprev = parent[ decodeURIComponent( name ) ] = {}\n\t\t\t\t\tif( order ) prev[ '+' ] = order === '+'\n\t\t\t\t\tstack.push( parent )\n\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} ,\n\t\t\t\n\t\t\t'filter' : ( filter , chinks , offset )=> {\n\t\t\t\t\n\t\t\t\tif( values ) {\n\t\t\t\t\t\n\t\t\t\t\tif( range ) {\n\t\t\t\t\t\tif( filter === '!=' ) range.push( range.pop() + '!' )\n\t\t\t\t\t\tvalues!.push( range! )\n\t\t\t\t\t\trange = null\n\t\t\t\t\t} else {\n\t\t\t\t\t\trange = [ filter ]\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t} else if( prev ) {\n\t\t\t\t\t\n\t\t\t\t\tvalues = prev[ filter as '=' | '!=' ] = [] as string[][]\n\t\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\t\n\t\t\t\t\tvalues = [] as string[][]\n\t\t\t\t\tparent[ '' ] = values\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} ,\n\n\t\t\t'range_separator' : ( found , chunks , offset )=> {\n\t\t\t\t\n\t\t\t\tif( !values ) fail_at( offset )\n\t\t\t\t\n\t\t\t\trange = [ range?.[0] ?? '', '' ]\n\t\t\t\t\n\t\t\t} ,\n\t\t\t\n\t\t\t'fetch_open' : ( found , chunks , offset )=> {\n\n\t\t\t\tif( range ) {\n\t\t\t\t\trange[ range.length - 1 ] += found\n\t\t\t\t} else {\n\t\t\t\t\tif( !prev ) fail_at( offset )\n\t\t\t\t\tparent = prev!\n\t\t\t\t\tvalues = null\n\t\t\t\t\tprev = null\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} ,\n\t\t\t\n\t\t\t'fetch_separator': ( found , chunks , offset )=> {\n\t\t\t\t\n\t\t\t\tif( range ) {\n\t\t\t\t\tvalues!.push( range )\n\t\t\t\t\trange = null\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tparent = stack.pop()!\n\t\t\t\tvalues = null\n\t\t\t\tprev = null\n\t\t\t\t\n\t\t\t},\n\t\t\t\n\t\t\t'fetch_close' : ( found )=> {\n\n\t\t\t\tif( range ) {\n\t\t\t\t\trange[ range.length - 1 ] += found\n\t\t\t\t} else {\n\t\t\t\t\tparent = stack.pop()!\n\t\t\t\t\tvalues = null\n\t\t\t\t\tprev = null\n\t\t\t\t}\n\n\t\t\t} ,\n\n\t\t} )\n\n\t\tif( range ) values!.push( range )\n\t\t\n\t\treturn stack[0]\n\t}\n\n}\n","namespace $ {\n\t\n\tfunction check< Query extends $hyoo_harp_query<any> >( str: string, query: Query ) {\n\t\t$mol_assert_like( str, $hyoo_harp_to_string( query ) )\n\t\t$mol_assert_like( query, $hyoo_harp_from_string( str ) )\n\t}\n\t\n\t$mol_test({\n\n\t\t'root' () {\n\t\t\tcheck( '', {} )\n\t\t} ,\n\n\t\t'only field' () {\n\t\t\tcheck(\n\t\t\t\t'user%3D777',\n\t\t\t\t{\n\t\t\t\t\t'user=777': {},\n\t\t\t\t},\n\t\t\t)\n\t\t} ,\n\t\t\n\t\t'primary key' () {\n\t\t\tcheck(\n\t\t\t\t'user=jin%2C777!=',\n\t\t\t\t{\n\t\t\t\t\tuser: {\n\t\t\t\t\t\t'=': [[ 'jin,777!' ]],\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t)\n\t\t} ,\n\t\t\n\t\t'single fetch' () {\n\t\t\tcheck(\n\t\t\t\t'friend(age%24)',\n\t\t\t\t{\n\t\t\t\t\tfriend: {\n\t\t\t\t\t\tage$: {},\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t)\n\t\t} ,\n\t\t\n\t\t'fetch and primary key' () {\n\t\t\tcheck(\n\t\t\t\t'user=jin()=(friend)',\n\t\t\t\t{\n\t\t\t\t\t'user': {\n\t\t\t\t\t\t'=': [[ 'jin()' ]],\n\t\t\t\t\t\tfriend: {},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t)\n\t\t} ,\n\t\t\n\t\t'multiple fetch' () {\n\t\t\tcheck(\n\t\t\t\t'age;friend',\n\t\t\t\t{\n\t\t\t\t\tage: {},\n\t\t\t\t\tfriend: {},\n\t\t\t\t},\n\t\t\t)\n\t\t} ,\n\t\t\n\t\t'common query string back compatible' () {\n\t\t\t$mol_assert_like(\n\t\t\t\t$hyoo_harp_from_string( 'user=jin&age=100500' ),\n\t\t\t\t{\n\t\t\t\t\tuser: {\n\t\t\t\t\t\t'=': [[ 'jin' ]],\n\t\t\t\t\t},\n\t\t\t\t\tage: {\n\t\t\t\t\t\t'=': [[ '100500' ]],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t)\n\t\t} ,\n\t\t\n\t\t'common pathname back compatible' () {\n\t\t\t$mol_assert_like(\n\t\t\t\t$hyoo_harp_from_string( 'users/jin/comments' ),\n\t\t\t\t{\n\t\t\t\t\tusers: {},\n\t\t\t\t\tjin: {},\n\t\t\t\t\tcomments: {},\n\t\t\t\t},\n\t\t\t)\n\t\t} ,\n\t\t\n\t\t'deep fetch' () {\n\t\t\tcheck(\n\t\t\t\t'my(friend(age);name);stat',\n\t\t\t\t{\n\t\t\t\t\tmy: {\n\t\t\t\t\t\tfriend: {\n\t\t\t\t\t\t\tage: {},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tname: {},\n\t\t\t\t\t},\n\t\t\t\t\tstat: {},\n\t\t\t\t},\n\t\t\t)\n\t\t} ,\n\t\t\n\t\t'orders' () {\n\t\t\tcheck(\n\t\t\t\t'+age;-name',\n\t\t\t\t{\n\t\t\t\t\tage: {\n\t\t\t\t\t\t'+': true\n\t\t\t\t\t},\n\t\t\t\t\tname: {\n\t\t\t\t\t\t'+': false\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t)\n\t\t} ,\n\t\t\n\t\t'filter types' () {\n\t\t\tcheck(\n\t\t\t\t'sex=female=;status!=married=',\n\t\t\t\t{\n\t\t\t\t\tsex: {\n\t\t\t\t\t\t'=': [[ 'female' ]],\n\t\t\t\t\t},\n\t\t\t\t\tstatus: {\n\t\t\t\t\t\t'!=': [[ 'married' ]],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t)\n\t\t} ,\n\t\t\n\t\t'filter ranges' () {\n\t\t\tcheck(\n\t\t\t\t'sex=female=;age=18@25=;weight=@50=;height=150@=;hobby=paint=singing=',\n\t\t\t\t{\n\t\t\t\t\tsex: {\n\t\t\t\t\t\t'=': [[ 'female' ]],\n\t\t\t\t\t},\n\t\t\t\t\tage: {\n\t\t\t\t\t\t'=': [[ '18', '25' ]],\n\t\t\t\t\t},\n\t\t\t\t\tweight: {\n\t\t\t\t\t\t'=': [[ '', '50' ]],\n\t\t\t\t\t},\n\t\t\t\t\theight: {\n\t\t\t\t\t\t'=': [[ '150', '' ]],\n\t\t\t\t\t},\n\t\t\t\t\thobby: {\n\t\t\t\t\t\t'=': [ ['paint'], ['singing'] ],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t)\n\t\t} ,\n\t\t\n\t\t'unescaped values' () {\n\t\t\t$mol_assert_like(\n\t\t\t\t$hyoo_harp_from_string( 'foo=jin=777=;bar=jin!=666=' ),\n\t\t\t\t{\n\t\t\t\t\tfoo: {\n\t\t\t\t\t\t'=': [ ['jin'], ['777'] ],\n\t\t\t\t\t},\n\t\t\t\t\tbar: {\n\t\t\t\t\t\t'=': [ ['jin!'], ['666'] ],\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t)\n\t\t} ,\n\t\t\n\t\t'slicing' () {\n\t\t\tcheck(\n\t\t\t\t'friend(_num=0@100=)',\n\t\t\t\t{\n\t\t\t\t\tfriend: {\n\t\t\t\t\t\t_num: { '=': [[ '0', '100' ]] },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t)\n\t\t} ,\n\t\t\n\t\t'complex' () {\n\t\t\tcheck(\n\t\t\t\t'pullRequest(state=closed=merged=;+repository(name;private);-updateTime;_num=0@100=)',\n\t\t\t\t{\n\t\t\t\t\tpullRequest: {\n\t\t\t\t\t\tstate: {\n\t\t\t\t\t\t\t'=': [\n\t\t\t\t\t\t\t\t['closed'],\n\t\t\t\t\t\t\t\t['merged'],\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\trepository: {\n\t\t\t\t\t\t\t'+': true,\n\t\t\t\t\t\t\tname: {},\n\t\t\t\t\t\t\tprivate: {},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tupdateTime: {\n\t\t\t\t\t\t\t'+': false,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t_num: {\n\t\t\t\t\t\t\t'=': [[ '0', '100' ]],\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t)\n\t\t} ,\n\t\t\n\t})\n\t\n}\n","namespace $ {\n\n\t/**\n\t * Checks for string and returns string type.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_data_string_demo\n\t */\n\texport let $mol_data_string = ( val : string )=> {\n\t\t\n\t\tif( typeof val === 'string' ) return val\n\t\t\n\t\treturn $mol_fail( new $mol_data_error( `${ val } is not a string` ) )\n\t}\n\t\n}\n","namespace $ {\n\t$mol_test({\n\n\t\t'Is string' () {\n\t\t\t$mol_data_string( '' )\n\t\t} ,\n\n\t\t'Is not string' () {\n\t\t\t$mol_assert_fail( ()=> {\n\t\t\t\t$mol_data_string( 0 as any )\n\t\t\t} , '0 is not a string' )\n\t\t} ,\n\n\t\t'Is object string' () {\n\t\t\t$mol_assert_fail( ()=> {\n\t\t\t\t$mol_data_string( new String( 'x' ) as any )\n\t\t\t} , 'x is not a string' )\n\t\t} ,\n\n\t})\n}\n","namespace $ {\n\n\t/**\n\t * Checks for some of given runtype or throws error.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_data_variant_demo\n\t */\n\texport function $mol_data_variant< Sub extends $mol_data_value[] >( ... sub : Sub ) {\n\n\t\treturn $mol_data_setup( ( val : Parameters< Sub[ number ] >[0] ) => {\n\t\t\t\n\t\t\tconst errors = [] as Error[]\n\t\t\t\n\t\t\tfor( const type of sub ) {\n\n\t\t\t\tlet hidden = $.$mol_fail_hidden\n\n\t\t\t\ttry {\n\n\t\t\t\t\t$.$mol_fail = $.$mol_fail_hidden\n\n\t\t\t\t\treturn type( val ) as ReturnType< Sub[ number ] >\n\n\t\t\t\t} catch ( error ) {\n\n\t\t\t\t\t$.$mol_fail = hidden\n\n\t\t\t\t\tif( error instanceof $mol_data_error ) {\n\t\t\t\t\t\terrors.push( error )\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn $mol_fail_hidden( error )\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\treturn $mol_fail( new $mol_data_error( `${val} is not any of variants` , {}, ... errors ) )\n\n\t\t} , sub )\n\n\t}\n\t\n}\n","namespace $ {\n\t$mol_test({\n\n\t\t'Is first' () {\n\t\t\t$mol_data_variant( $mol_data_number , $mol_data_string )( 0 )\n\t\t} ,\n\n\t\t'Is second' () {\n\t\t\t$mol_data_variant( $mol_data_number , $mol_data_string )( '' )\n\t\t} ,\n\n\t\t'Is false' () {\n\t\t\t$mol_assert_fail( ()=> {\n\t\t\t\t$mol_data_variant( $mol_data_number , $mol_data_string )( false as any )\n\t\t\t} , 'false is not any of variants' )\n\t\t} ,\n\n\t})\n}\n","namespace $ {\n\n\t/**\n\t * Checks for undefined or passing given runtype.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_data_optional_demo\n\t */\n\texport function $mol_data_optional<\n\t\tSub extends $mol_data_value,\n\t\tFallback extends undefined | ( ()=> ReturnType< Sub > )\n\t>( \n\t\tsub: Sub,\n\t\tfallback?: Fallback\n\t) {\n\n\t\treturn $mol_data_setup( ( val : Parameters<Sub>[0] | undefined ) => {\n\t\t\t\n\t\t\tif( val === undefined ) {\n\t\t\t\ttype Res = Fallback extends undefined ? undefined : ReturnType< Extract< Fallback, ()=> any > >\n\t\t\t\treturn fallback?.() as Res\n\t\t\t}\n\t\t\t\n\t\t\treturn sub( val ) as ReturnType<Sub>\n\t\t\t\n\t\t} , { sub, fallback } )\n\n\t}\n\t\n}\n","namespace $ {\n\t\n\tconst Age = $mol_data_optional( $mol_data_number )\n\tconst Age_or_zero = $mol_data_optional( $mol_data_number, ()=> 0 )\n\t\n\ttype result_type_of_optional = $mol_type_assert<\n\t\ttypeof Age.Value,\n\t\tnumber | undefined\n\t>\n\t\n\ttype result_type_of_fallbacked = $mol_type_assert<\n\t\ttypeof Age_or_zero.Value,\n\t\tnumber\n\t>\n\t\n\t$mol_test({\n\n\t\t'Is not present'() {\n\t\t\t$mol_assert_equal(\n\t\t\t\tAge( undefined ),\n\t\t\t\tundefined,\n\t\t\t)\n\t\t} ,\n\n\t\t'Is present'() {\n\t\t\t$mol_assert_equal(\n\t\t\t\tAge( 0 ),\n\t\t\t\t0,\n\t\t\t)\n\t\t} ,\n\n\t\t'Fallbacked'() {\n\t\t\t$mol_assert_equal(\n\t\t\t\tAge_or_zero( undefined ),\n\t\t\t\t0,\n\t\t\t)\n\t\t} ,\n\n\t\t'Is null'() {\n\t\t\t$mol_assert_fail(\n\t\t\t\t()=> Age( null as any ),\n\t\t\t\t'null is not a number',\n\t\t\t)\n\t\t} ,\n\n\t})\n}\n","namespace $ {\n\n\t/**\n\t * Checks for record of given fields with by its runtypes and returns expected type.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_data_record_demo\n\t */\n\texport function $mol_data_record<\n\t\tSub extends Record< string , $mol_data_value >\n\t>( sub : Sub ) {\n\n\t\ttype Input = $mol_type_partial_undefined<{\n\t\t\t[ key in keyof Sub ] : Parameters< Sub[key] >[0]\n\t\t}>\n\n\t\ttype Output = $mol_type_partial_undefined<{\n\t\t\t[ key in keyof Sub ] : ReturnType< Sub[key] >\n\t\t}>\n\n\t\treturn $mol_data_setup( ( val : Input ) => {\n\n\t\t\tlet res = {} as Output\n\t\t\t\n\t\t\tfor( const field in sub ) {\n\n\t\t\t\ttry {\n\t\t\t\t\tres[field as any as keyof Output ] =\n\t\t\t\t\t\tsub[field]( ( val as Input )[ field as any as keyof Input ] )\n\t\t\t\t} catch( error: any ) {\n\n\t\t\t\t\tif( error instanceof Promise ) return $mol_fail_hidden( error )\n\t\t\t\t\t\n\t\t\t\t\terror.message = `[${ JSON.stringify( field ) }] ${ error.message }`\n\t\t\t\t\treturn $mol_fail( error )\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\treturn res as Readonly< Output >\n\t\t\t\n\t\t} , sub )\n\n\t}\n\t\n}\n","namespace $ {\n\n\t$mol_test({\n\n\t\t'Fit to record' () {\n\t\t\tconst User = $mol_data_record({ age : $mol_data_number })\n\t\t\tUser({ age : 0 })\n\t\t} ,\n\n\t\t'Extends record' () {\n\t\t\tconst User = $mol_data_record({ age : $mol_data_number })\n\t\t\tUser( { age : 0 , name : 'Jin' } as any )\n\t\t} ,\n\n\t\t// 'Recursive record' () {\n\n\t\t// \tconst User = $mol_data_record({\n\t\t// \t\tname : $mol_data_string ,\n\t\t// \t\tget kids() { return $mol_data_array( User ) } ,\n\t\t// \t})\n\n\t\t// \tUser({\n\t\t// \t\tname : 'Jin' ,\n\t\t// \t\tkids : [\n\t\t// \t\t\t{\n\t\t// \t\t\t\tname : 'John' ,\n\t\t// \t\t\t\tkids : [] ,\n\t\t// \t\t\t}\n\t\t// \t\t] ,\n\t\t// \t})\n\t\t\n\t\t// } ,\n\n\t\t'Shrinks record' () {\n\t\t\t$mol_assert_fail( ()=> {\n\n\t\t\t\tconst User = $mol_data_record({ age : $mol_data_number , name : $mol_data_string })\n\t\t\t\tUser( { age : 0 } as any )\n\n\t\t\t} , '[\"name\"] undefined is not a string' )\n\t\t} ,\n\n\t\t'Shrinks deep record' () {\n\t\t\t$mol_assert_fail( ()=> {\n\n\t\t\t\tconst User = $mol_data_record({ wife : $mol_data_record({ age : $mol_data_number }) })\n\t\t\t\tUser( { wife : { } } as any )\n\n\t\t\t} , '[\"wife\"] [\"age\"] undefined is not a number' )\n\t\t} ,\n\n\t})\n}\n","namespace $ {\n\n\t/**\n\t * Checks for array of given runtype and returns expected type.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_data_array_demo\n\t */\n\texport function $mol_data_array< Sub extends $mol_data_value >( sub : Sub ) {\n\n\t\treturn $mol_data_setup( ( val : readonly Parameters< Sub >[0][] ) => {\n\t\t\t\n\t\t\tif( !Array.isArray( val ) ) return $mol_fail( new $mol_data_error( `${ val } is not an array` ) )\n\t\t\t\n\t\t\treturn val.map( ( item , index )=> {\n\n\t\t\t\ttry {\n\t\t\t\t\treturn sub( item )\n\t\t\t\t} catch( error: any ) {\n\n\t\t\t\t\tif( error instanceof Promise ) return $mol_fail_hidden( error )\n\t\t\t\t\t\n\t\t\t\t\terror.message = `[${ index }] ${ error.message }`\n\t\t\t\t\treturn $mol_fail( error )\n\n\t\t\t\t}\n\n\t\t\t} ) as readonly ReturnType< Sub >[]\n\t\t\t\n\t\t} , sub )\n\n\t}\n\t\t\t\n}\n","namespace $ {\n\t$mol_test({\n\n\t\t'Is empty array' () {\n\t\t\t$mol_data_array( $mol_data_number )( [] )\n\t\t} ,\n\n\t\t'Is array' () {\n\t\t\t$mol_data_array( $mol_data_number )( [ 1 , 2 ] )\n\t\t} ,\n\n\t\t'Is not array' () {\n\t\t\t$mol_assert_fail( ()=> {\n\t\t\t\t$mol_data_array( $mol_data_number )( { [0] : 1 , length : 1 , map : ()=> {} } as any as number[] )\n\t\t\t} , '[object Object] is not an array' )\n\t\t} ,\n\n\t\t'Has wrong item' () {\n\t\t\t$mol_assert_fail( ()=> {\n\t\t\t\t$mol_data_array( $mol_data_number )( [ 1 , '1' as any as number ] )\n\t\t\t} , '[1] 1 is not a number' )\n\t\t} ,\n\n\t\t'Has wrong deep item' () {\n\t\t\t$mol_assert_fail( ()=> {\n\t\t\t\t$mol_data_array( $mol_data_array( $mol_data_number ) )( [ [] , [ 0 , 0 , false ] ] as any )\n\t\t\t} , '[1] [2] false is not a number' )\n\t\t} ,\n\n\t})\n}\n","namespace $ {\n\n\t/**\n\t * Checks for boolean and returns boolean type.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_data_boolean_demo\n\t */\n\texport let $mol_data_boolean = ( val : boolean )=> {\n\t\t\n\t\tif( typeof val === 'boolean' ) return val\n\t\t\n\t\treturn $mol_fail( new $mol_data_error( `${ val } is not a boolean` ) )\n\t}\n\t\n}\n","namespace $ {\n\t$mol_test({\n\n\t\t'Is boolean - true' () {\n\t\t\t$mol_data_boolean( true )\n\t\t} ,\n\n\t\t'Is boolean - false' () {\n\t\t\t$mol_data_boolean( false )\n\t\t} ,\n\n\t\t'Is not boolean' () {\n\t\t\t$mol_assert_fail( ()=> {\n\t\t\t\t$mol_data_boolean( 'x' as any )\n\t\t\t} , 'x is not a boolean' )\n\t\t} ,\n\n\t\t'Is object boolean' () {\n\t\t\t$mol_assert_fail( ()=> {\n\t\t\t\t$mol_data_boolean( new Boolean( '' ) as any )\n\t\t\t} , 'false is not a boolean' )\n\t\t} ,\n\n\t})\n}\n","namespace $ {\n\n\t/**\n\t * Checks for value of given enum and returns expected type.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_data_enum_demo\n\t */\n\texport function $mol_data_enum<\n\t\tDict extends Record< number | string , number | string >\n\t>( name : string , dict : Dict ) {\n\n\t\ttype Value = Dict[ keyof Dict ]\n\n\t\tconst index = {} as Record< Value , keyof Dict >\n\n\t\tfor( let key in dict ) {\n\t\t\tif( Number.isNaN( Number( key ) ) ) {\n\t\t\t\tindex[ dict[ key ] ] = key\n\t\t\t}\n\t\t}\n\n\t\treturn $mol_data_setup( ( value : Value ) => {\n\n\t\t\tif ( typeof index[ value ] !== 'string' ) {\n\t\t\t\treturn $mol_fail( new $mol_data_error( `${value} is not value of ${name} enum` ) )\n\t\t\t}\n\n\t\t\treturn value\n\n\t\t} , { name , dict } )\n\n\t}\n\t\n}\n","namespace $ {\n\n\tenum sex { male , female }\n\t\n\tenum gender {\n\t\tbisexual = 'bisexual' ,\n\t\ttrans = 'transgender' ,\n\t}\n\t\n\t// Test disabled due https://github.com/microsoft/TypeScript/issues/46112\n\t// const Sex = $mol_data_enum( 'sex' , sex )\n\t// type sex_value = $mol_type_assert< typeof Sex.Value , sex >\n\t\n\t$mol_test({\n\t\t\n\t\t'config of enum' () {\n\t\t\t\n\t\t\tconst Sex = $mol_data_enum( 'sex' , sex )\n\n\t\t\t$mol_assert_like( Sex.config , {\n\t\t\t\tname : 'sex' ,\n\t\t\t\tdict : sex ,\n\t\t\t} )\n\t\t\t\n\t\t} ,\n\n\t\t'name of enum' () {\n\t\t\tconst Sex = $mol_data_enum( 'sex' , sex )\n\t\t\t$mol_assert_equal( Sex.config.name , 'sex' )\n\t\t} ,\n\n\t\t'Is right value of enum' () {\n\t\t\tconst Sex = $mol_data_enum( 'sex' , sex )\n\t\t\t$mol_assert_equal( Sex(0) , sex.male )\n\t\t} ,\n\n\t\t'Is wrong value of enum' () {\n\t\t\tconst Sex = $mol_data_enum( 'sex' , sex )\n\t\t\t$mol_assert_fail( ()=> Sex( 2 as any ) , `2 is not value of sex enum` )\n\t\t} ,\n\n\t\t'Is name instead of value' () {\n\t\t\tconst Sex = $mol_data_enum( 'sex' , sex )\n\t\t\t$mol_assert_fail( ()=> Sex( 'male' as any ) , `male is not value of sex enum` )\n\t\t} ,\n\n\t\t'Is common object field' () {\n\t\t\tconst Sex = $mol_data_enum( 'sex' , sex )\n\t\t\t$mol_assert_fail( ()=> Sex( '__proto__' as any ) , `__proto__ is not value of sex enum` )\n\t\t} ,\n\n\t})\n\n\n\t// Test disabled due https://github.com/microsoft/TypeScript/issues/46112\n\t// type gender_value = $mol_type_assert< typeof Gender.Value , gender >\n\n\t$mol_test({\n\t\t\n\t\t'config of enum' () {\n\n\t\t\tconst Gender = $mol_data_enum( 'gender' , gender )\n\t\t\t\n\t\t\t$mol_assert_like( Gender.config , {\n\t\t\t\tname : 'gender' ,\n\t\t\t\tdict : gender ,\n\t\t\t} )\n\n\t\t} ,\n\n\t\t'Is right value of enum' () {\n\t\t\tconst Gender = $mol_data_enum( 'gender' , gender )\n\t\t\t$mol_assert_equal( Gender( 'transgender' as any ) , gender.trans )\n\t\t} ,\n\n\t\t'Is wrong value of enum' () {\n\t\t\tconst Gender = $mol_data_enum( 'gender' , gender )\n\t\t\t$mol_assert_fail( ()=> Gender( 'xxx' as any ) , `xxx is not value of gender enum` )\n\t\t} ,\n\n\t\t'Is name instead of value' () {\n\t\t\tconst Gender = $mol_data_enum( 'gender' , gender )\n\t\t\t$mol_assert_fail( ()=> Gender( 'trans' as any ) , `trans is not value of gender enum` )\n\t\t} ,\n\n\t\t'Is common object field' () {\n\t\t\tconst Gender = $mol_data_enum( 'gender' , gender )\n\t\t\t$mol_assert_fail( ()=> Gender( '__proto__' as any ) , `__proto__ is not value of gender enum` )\n\t\t} ,\n\n\t})\n\n}\n","namespace $ {\n\t\n\tconst Int = $mol_data_pipe( $mol_data_variant( $mol_data_string, $mol_data_integer ), Number )\n\t\n\texport function $hyoo_harp_scheme<\n\t\tSub extends Record< string , $mol_data_value< any, any > >,\n\t\tValue extends $mol_data_value< any, any > = typeof $mol_data_integer,\n\t>( sub: Sub, value = $mol_data_integer as Value ) {\n\t\t\n\t\tconst inner = $mol_data_optional( $mol_data_record( sub ) ) as $mol_data_value<\n\t\t\tundefined | Readonly<{ [Key in keyof Sub ]: Parameters< Sub[Key] >[0] }>,\n\t\t\tundefined | Readonly<{ [Key in keyof Sub ]: ReturnType< Sub[Key] > }>\n\t\t>\n\t\t\n\t\tconst values = $mol_data_optional( $mol_data_array( $mol_data_array( value ) ) )\n\t\t\n\t\tconst val = $mol_data_record({\n\t\t\t... sub,\n\t\t\t'+': $mol_data_optional( $mol_data_boolean ),\n\t\t\t'=': values,\n\t\t\t'!=': values,\n\t\t\t'_num': $mol_data_optional( $mol_data_record({\n\t\t\t\t'=': $mol_data_array( $mol_data_array( Int ) )\n\t\t\t}) ),\n\t\t\t'_len': inner,\n\t\t\t'_max': inner,\n\t\t\t'_min': inner,\n\t\t\t'_sum': inner,\n\t\t})\n\t\t\n\t\treturn Object.assign( val, {\n\t\t\t\n\t\t\tparse( str: string ) {\n\t\t\t\treturn val( $hyoo_harp_from_string( str ) as any )\n\t\t\t},\n\t\t\t\n\t\t\tbuild( query: Parameters< typeof val >[0] ) {\n\t\t\t\treturn $hyoo_harp_to_string( query as any )\n\t\t\t},\n\t\t\t\n\t\t} )\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\t$mol_test({\n\t\t\n\t\t'type safe build & parse'() {\n\t\t\t\n\t\t\tenum States {\n\t\t\t\topened = 'opened',\n\t\t\t\tclosed = 'closed',\n\t\t\t}\n\t\t\t\n\t\t\tconst State = $hyoo_harp_scheme( {}, $mol_data_enum( 'States', States ) )\n\t\t\tconst Str = $hyoo_harp_scheme( {}, $mol_data_string )\n\t\t\tconst Bool = $hyoo_harp_scheme( {}, $mol_data_boolean )\n\t\t\t\n\t\t\tconst Repository = $hyoo_harp_scheme({\n\t\t\t\tname: $mol_data_optional( Str ),\n\t\t\t\tisPrivate: $mol_data_optional( Bool ),\n\t\t\t\t// pullRequests: PullRequest,\n\t\t\t})\n\t\t\t\n\t\t\tconst PullRequest = $hyoo_harp_scheme({\n\t\t\t\tstate: $mol_data_optional( State ),\n\t\t\t\tupdated_at: $mol_data_optional( Str ),\n\t\t\t\trepository: $mol_data_optional( Repository ),\n\t\t\t})\n\t\t\t\n\t\t\tconst Request = $hyoo_harp_scheme({\n\t\t\t\tpullRequest: $mol_data_optional( PullRequest ),\n\t\t\t})\n\t\t\t\n\t\t\tconst uri = 'pullRequest(state=closed=;-updated_at;repository(name;isPrivate);_num=0@100=)'\n\t\t\t\n\t\t\tlet query = Request({\n\t\t\t\tpullRequest: {\n\t\t\t\t\tstate: { '=': [[ States.closed ]] }, // filter\n\t\t\t\t\tupdated_at: { '+': false }, // order\n\t\t\t\t\trepository: { // fetch\n\t\t\t\t\t\tname: {},\n\t\t\t\t\t\tisPrivate: {},\n\t\t\t\t\t},\n\t\t\t\t\t_num: { '=': [[ 0, 100 ]] }, // slice\n\t\t\t\t}\n\t\t\t})\n\t\t\t\n\t\t\t$mol_assert_like( uri, Request.build( query ) )\n\t\t\t$mol_assert_like( query, Request.parse( uri ) )\n\t\t\t\n\t\t},\n\t\t\n\t})\n\t\n}\n","namespace $ {\n\n\texport type $mol_blob = Blob\n\n\texport let $mol_blob = ( $node.buffer?.Blob ?? $mol_dom_context.Blob ) as any as {\n\t\tprototype: Blob;\n\t\tnew(blobParts?: readonly BlobPart[], options?: BlobPropertyBag): Blob;\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_offline( ) {}\n\n}\n","namespace $ {\n\ttry {\n\t\t$mol_offline()\n\t} catch( error ) {\n\t\tconsole.error( error )\n\t}\n}\n","namespace $ {\n\n\texport function $giper_baza_file_mime_safe( type: string ) {\n\t\treturn [ 'audio', 'video', 'image', 'font' ].includes( type.replace( /\\/.*$/, '' ) )\n\t\t\t? type\n\t\t\t: 'application/octet-stream'\n\t}\n\t\n\texport const $giper_baza_file_query = $hyoo_harp_scheme({\n\t\tBAZA: $hyoo_harp_scheme({}),\n\t\tfile: $hyoo_harp_scheme( {}, $mol_data_string ),\n\t})\n\n\texport class $giper_baza_file extends $giper_baza_dict.with( {\n\t\t/** File name */\n\t\tName: $giper_baza_atom_text,\n\t\t/** File Content-Type */\n\t\tType: $giper_baza_atom_text,\n\t\t/** File content in chunks - list of binaries */\n\t\tChunks: $giper_baza_list_bin,\n\t}) {\n\t\t\n\t\t/** Persistent URI to file content */\n\t\turi() {\n\t\t\treturn `?BAZA:file=${ this.link() };name=${ this.name() }`\n\t\t}\n\t\t\n\t\t/** File name */\n\t\tname( next?: string | null ) {\n\t\t\tconst ext = {\n\t\t\t\t'text/plain': 'txt',\n\t\t\t\t'application/json': 'json',\n\t\t\t}[ this.type() ] ?? 'bin'\n\t\t\treturn this.Name( next )?.val( next ) ?? `${ this.link() }.${ ext }`\n\t\t}\n\t\t\n\t\t/** Mime type */\n\t\ttype( next?: string | null ) {\n\t\t\treturn this.Type( next )?.val( next ) ?? 'application/octet-stream'\n\t\t}\n\t\t\n\t\t/** Blob, File etc. */\n\t\tblob( next?: $mol_blob ): $mol_blob {\n\t\t\t\n\t\t\tif( !next ) return new $mol_blob( this.chunks(), { type: this.type() } )\n\t\t\t\n\t\t\tconst buffer = new Uint8Array( $mol_wire_sync( next ).arrayBuffer() )\n\t\t\t\n\t\t\tthis.buffer( buffer )\n\t\t\tthis.type( next.type )\n\t\t\tif( next instanceof $mol_dom_context.File ) this.name( next.name )\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t/** Solid byte buffer. */\n\t\tbuffer( next?: Uint8Array< ArrayBuffer > ) {\n\t\t\t\n\t\t\tif( next ) {\n\t\t\t\t\n\t\t\t\tconst chunks = [] as Uint8Array< ArrayBuffer >[]\n\t\t\t\t\n\t\t\t\tfor( let offset = 0; offset < next.byteLength; ) {\n\t\t\t\t\tchunks.push( next.slice( offset, offset += 2**15 ) ) // split by 32 KB\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tthis.chunks( chunks )\n\t\t\t\t\n\t\t\t\treturn next\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tconst chunks = this.chunks()\n\t\t\t\tconst size = chunks.reduce( ( sum, chunk )=> sum + chunk.byteLength, 0 )\n\t\t\t\tconst res = new Uint8Array( size )\n\t\t\t\t\n\t\t\t\tlet offset = 0\n\t\t\t\tfor( const chunk of chunks ) {\n\t\t\t\t\tres.set( chunk, offset )\n\t\t\t\t\toffset += chunk.byteLength\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn res\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tchunks( next?: readonly Uint8Array< ArrayBuffer >[] ) {\n\t\t\treturn ( this.Chunks( next )?.items( next )?.filter( $mol_guard_defined ) ?? [] ) as Uint8Array< ArrayBuffer >[]\n\t\t}\n\t\t\n\t\tstr( next?: string, type = 'text/plain' ) {\n\t\t\t\n\t\t\tif( next === undefined ) return $mol_charset_decode( this.buffer() )\n\t\t\t\t\n\t\t\tthis.buffer( $mol_charset_encode( next ) )\n\t\t\tthis.type( type )\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tjson( next?: any, type = 'application/json' ) {\n\t\t\t\n\t\t\tif( next === undefined ) return JSON.parse( this.str() )\n\t\t\t\t\n\t\t\tthis.str( JSON.stringify( next ), type )\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'save and load buffers'( $ ) {\n\t\t\t\n\t\t\tconst land = $giper_baza_land.make({ $ })\n\t\t\tconst file = land.Data( $giper_baza_file )\n\t\t\t\n\t\t\tconst source = new Uint8Array( 2**15 + 1 )\n\t\t\tsource[ 2**15 ] = 255 \n\t\t\t\n\t\t\tfile.buffer( source )\n\t\t\t\n\t\t\t$mol_assert_equal( file.chunks().length, 2 )\n\t\t\t$mol_assert_equal( file.buffer(), source )\n\t\t\t\n\t\t},\n\t\t\n\t\tasync 'save and load blobs'( $ ) {\n\t\t\t\n\t\t\tconst land = $giper_baza_land.make({ $ })\n\t\t\tconst file = land.Data( $giper_baza_file )\n\t\t\t\t\n\t\t\tconst source = new Uint8Array( 2**16 + 1 )\n\t\t\tsource[ 2**16 + 1 ] = 255 \n\t\t\t\n\t\t\tawait $mol_wire_async( file ).blob(\n\t\t\t\tnew $mol_blob( [source], { type: 'test/test' } )\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal( 'test/test', file.blob().type )\n\t\t\t$mol_assert_equal( source, new Uint8Array( await file.blob().arrayBuffer() ) )\n\t\t\t\n\t\t},\n\t\t\n\t})\n\n}\n","namespace $ {\n\t\n\texport class $giper_baza_app_home extends $giper_baza_flex_peer {\n\t\t\n\t\t@ $mol_mem\n\t\tinit() {\n\t\t\tthis.meta( $giper_baza_flex_peer.meta )\n\t\t}\n\t\t\n\t\ttick() {\n\t\t\tthis.init()\n\t\t\tthis.stat( null )!.tick()\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport class $giper_baza_app_home_node extends $giper_baza_app_home {\n\t\t\n\t\t@ $mol_mem\n\t\tinit() {\n\t\t\t\n\t\t\tsuper.init()\n\t\t\t\n\t\t\tif( process.env.GIPER_BAZA_ADMIN ) {\n\t\t\t\tconst pass = $giper_baza_auth_pass.from( process.env.GIPER_BAZA_ADMIN )\n\t\t\t\tthis.land().give( pass, $giper_baza_rank_rule )\n\t\t\t}\n\t\t\t\n\t\t\tconst host = process.env.GIPER_BAZA_DOMAIN || $node.os.hostname()\n\t\t\t\n\t\t\tthis.name( host.replace( /\\.ip\\..*$/, '' ) )\n\t\t\tthis.urls([ `https://${host}/` ])\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n\t$.$giper_baza_app_home = $giper_baza_app_home_node\n\t\n}\n","namespace $ {\n\n\texport class $giper_baza_app_node extends $mol_rest_resource_fs {\n\n\t\t@ $mol_memo.method\n\t\tlink() {\n\t\t\treturn new $giper_baza_app_node_link\n\t\t}\n\n\t\t_protocols = [ '$giper_baza_yard_2' ]\n\n\t\tGET( msg: $mol_rest_message ) {\n\n\t\t\tlet id: string | undefined\n\t\t\ttry {\n\t\t\t\tid = $giper_baza_file_query.parse( msg.uri().search ).file[ '=' ]?.[0][0]\n\t\t\t} catch {}\n\n\t\t\tif( !id ) return super.GET( msg )\n\n\t\t\tconst link = new $giper_baza_link( id )\n\t\t\tconst file = this.$.$giper_baza_glob.Pawn( link, $giper_baza_file )\n\n\t\t\tmsg.port.send_code( file.filled() ? 200 : 404 )\n\t\t\tmsg.port.send_type( $giper_baza_file_mime_safe( file.type() ) as $mol_rest_port_mime )\n\t\t\tmsg.port.send_bin( file.buffer() )\n\n\t\t}\n\t\t\n\t\t_yard() {\n\t\t\treturn this.$.$giper_baza_glob.yard()\n\t\t}\n\n\t\tOPEN( msg: $mol_rest_message ) {\n\t\t\t\n\t\t\tconst protocol = super.OPEN( msg )\n\t\t\tif( !protocol ) return ''\n\t\t\t\n\t\t\tthis._yard().slaves.add( msg.port )\n\t\t\t\n\t\t\treturn protocol\n\t\t\t\n\t\t}\n\t\t\n\t\tPOST( msg: $mol_rest_message ) {\n\t\t\tif( msg.type() !== 'application/octet-stream' ) return super.POST( msg )\n\t\t\tthis._yard().port_income( msg.port, msg.bin() )\n\t\t}\n\t\t\n\t\tCLOSE( msg: $mol_rest_message ) {\n\t\t\tthis._yard().slaves.delete( msg.port )\n\t\t\tsuper.CLOSE( msg )\n\t\t}\n\t\t\n\t\t_auto() {\n\t\t\tthis._stat_update()\n\t\t\tthis.$.$giper_baza_glob.yard().sync()\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\t_home() {\n\t\t\treturn this.$.$giper_baza_glob.home( $giper_baza_app_home )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\t_stat_update() {\n\t\t\tthis._home().tick()\n\t\t}\n\t\t\n\t}\n\t\n\texport class $giper_baza_app_node_link extends $mol_rest_resource {\n\t\t\n\t\tGET( msg: $mol_rest_message ) {\n\t\t\tmsg.reply( this.$.$giper_baza_auth.current().pass().lord().str )\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $.$$ {\n\t$mol_test({\n\n\t\t'GET ?BAZA:file=<id> serves file from glob'( $ ) {\n\n\t\t\tconst land = $.$giper_baza_glob.home().land()\n\t\t\tconst file = land.Pawn( $giper_baza_file ).Head( new $giper_baza_link( '11111111' ) )\n\n\t\t\tconst content = $mol_charset_encode( '# Hello' )\n\t\t\tfile.buffer( content )\n\t\t\tfile.type( 'text/markdown' )\n\n\t\t\tconst app = $giper_baza_app_node.make({ $ })\n\n\t\t\tconst res = [] as any[]\n\n\t\t\tapp.GET( $mol_rest_message.make({\n\t\t\t\tmethod: ()=> 'GET',\n\t\t\t\turi: ()=> new URL( `http://baza.giper.dev/?BAZA:file=${ file.link().str };name=hello.md` ),\n\t\t\t\tport: $mol_rest_port.make({\n\t\t\t\t\tsend_code: code => res.push( code ),\n\t\t\t\t\tsend_type: type => res.push( type ),\n\t\t\t\t\tsend_bin: bin => res.push( bin ),\n\t\t\t\t}),\n\t\t\t}) )\n\n\t\t\t$mol_assert_equal( res, [ 200, 'application/octet-stream', content ] )\n\n\t\t},\n\n\t\t'GET ?BAZA:file=<unknown> returns 404'( $ ) {\n\n\t\t\tconst link = new $giper_baza_link( '99999999_99999999' )\n\n\t\t\tconst app = $giper_baza_app_node.make({ $ })\n\n\t\t\tconst res = [] as any[]\n\n\t\t\tapp.GET( $mol_rest_message.make({\n\t\t\t\tmethod: ()=> 'GET',\n\t\t\t\turi: ()=> new URL( `http://baza.giper.dev/?BAZA:file=${ link.str };name=ghost.md` ),\n\t\t\t\tport: $mol_rest_port.make({\n\t\t\t\t\tsend_code: code => res.push( code ),\n\t\t\t\t\tsend_type: type => res.push( type ),\n\t\t\t\t\tsend_bin: bin => res.push( bin ),\n\t\t\t\t}),\n\t\t\t}) )\n\n\t\t\t$mol_assert_equal( res, [ 404, 'application/octet-stream', new Uint8Array ] )\n\n\t\t},\n\n\t})\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../mam.ts","../../../../mol/guid/guid.ts","../../../../mol/fail/fail.ts","../../../../mol/wire/cursor/cursor.ts","../../../../mol/wire/pub/pub.ts","../../../../mol/wire/wire.ts","../../../../mol/fail/hidden/hidden.ts","../../../../mol/dev/format/format.ts","../../../../mol/wire/pub/sub/sub.ts","../../../../mol/ambient/ambient.ts","../../../../mol/delegate/delegate.ts","../../../../mol/owning/owning.ts","../../../../mol/func/name/name.ts","../../../../mol/key/key.ts","../../../../mol/object2/object2.ts","../../../../mol/after/tick/tick.ts","../../../../mol/promise/like/like.ts","../../../../mol/wire/fiber/fiber.ts","../../../../mol/compare/deep/deep.ts","../../../../mol/log3/log3.ts","../../../../mol/span/span.ts","../../../../mol/tree2/to/string/string.ts","../../../../mol/maybe/maybe.ts","../../../../mol/tree2/tree2.ts","../../../../mol/error/syntax/syntax.ts","../../../../mol/tree2/from/string/string.ts","../../../../mol/array/chunks/chunks.ts","../../../../mol/tree2/from/json/json.ts","../../../../mol/term/color/color.ts","../../../../mol/log3/log3.node.ts","../../../../mol/wire/task/task.ts","../../../../mol/key/key/key.ts","../../../../mol/after/timeout/timeout.ts","../../../../mol/after/frame/frame.node.ts","../../../../mol/wire/method/method.ts","../../../../mol/fail/catch/catch.ts","../../../../mol/try/try.ts","../../../../mol/fail/log/log.ts","../../../../mol/wire/atom/atom.ts","../../../../mol/wire/probe/probe.ts","../../../../mol/wire/solid/solid.ts","../../../../mol/wire/watch/watch.ts","../../../../mol/wire/sync/sync.ts","../../../../mol/wire/async/async.ts","../../../../mol/wire/race/race.ts","../../../../mol/wire/solo/solo.ts","../../../../mol/wire/plex/plex.ts","../../../../mol/const/const.ts","../../../../mol/wire/field/field.ts","../../../../mol/object/object.ts","../../../../mol/mem/mem.ts","../../../../mol/state/time/time.ts","../../../../mol/wire/easing/easing.ts","../../../../mol/wire/patch/patch.ts","../../../../mol/wire/let/let.ts","../../../../mol/wire/set/set.ts","../../../../mol/wire/proxy/proxy.ts","../../../../mol/wire/dict/dict.ts","../../../../mol/promise/promise/promise.ts","../../../../mol/wait/timeout/timeout.ts","../../../../mol/wire/log/log.ts","../../../../mol/test/test.test.ts","../../../../mol/test/test.node.test.ts","../../../../mol/dom/context/context.ts","../../../../node/internal/check/check.node.ts","../../../../node/autoinstall/autoinstall.node.ts","../../../../node/node.node.ts","../../../../mol/func/name/name.test.ts","../../../../mol/error/mix/mix.ts","../../../../mol/error/mix/mix.test.ts","../../../../mol/object/object.test.ts","../../../../mol/env/env.ts","../../../../mol/env/env.node.ts","../../../../mol/wire/sync/sync.test.ts","../../../../mol/log3/log3.test.ts","../../../../mol/run/run.node.ts","../../../../mol/run/run.node.test.ts","../../../../mol/dom/context/context.node.ts","../../../../mol/dom/dom.ts","../../../../mol/dom/render/children/children.ts","../../../../mol/dom/serialize/serialize.ts","../../../../mol/jsx/jsx.ts","../../../../mol/jsx/jsx.test.tsx","../../../../mol/range2/range2.ts","../../../../mol/range2/range2.test.ts","../../../../mol/compare/deep/deep.test.tsx","../../../../mol/assert/assert.ts","../../../../mol/assert/assert.test.ts","../../../../mol/delegate/delegate.test.ts","../../../../mol/span/span.test.ts","../../../../mol/maybe/maybe.test.ts","../../../../mol/tree2/tree2.test.ts","../../../../mol/array/chunks/chunks.test.ts","../../../../mol/tree2/from/string/string.test.ts","../../../../mol/tree2/from/json/json.test.ts","../../../../mol/try/try.test.ts","../../../../mol/fail/log/log.test.ts","../../../../mol/wire/pub/sub/sub.test.ts","../../../../mol/after/mock/mock.test.ts","../../../../mol/after/tick/tick.test.ts","../../../../mol/wire/fiber/fiber.test.ts","../../../../mol/key/key/key.test.tsx","../../../../mol/after/timeout/timeout.test.ts","../../../../mol/after/frame/frame.test.ts","../../../../mol/after/work/work.ts","../../../../mol/after/work/work.test.ts","../../../../mol/wait/rest/rest.ts","../../../../mol/wait/rest/rest.test.ts","../../../../mol/wait/timeout/timeout.test.ts","../../../../mol/wire/async/async.test.ts","../../../../mol/wire/solo/solo.test.ts","../../../../mol/wire/plex/plex.test.ts","../../../../mol/wire/probe/probe.test.ts","../../../../mol/wire/atom/atom.test.ts","../../../../mol/const/const.test.ts","../../../../mol/wire/field/field.test.ts","../../../../mol/wire/let/let.test.ts","../../../../mol/wire/set/set.test.ts","../../../../mol/wire/proxy/proxy.test.ts","../../../../mol/wire/dict/dict.test.ts"],"names":[],"mappings":";;AAAA,KAAK,CAAC,eAAe,GAAG,EAAE,CAAC;AAK3B,IAAU,CAAC,CAQV;AARD,WAAU,CAAC;AAQX,CAAC,EARS,CAAC,KAAD,CAAC,QAQV;AAED,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;;;;;;;;;;;;;;;;;ACflB,IAAU,CAAC,CAkBV;AAlBD,WAAU,CAAC;IAEV,mCAAmC;IACnC,SAAgB,SAAS,CACxB,MAAM,GAAG,CAAC,EACV,SAAmC,GAAE,EAAE,CAAC,KAAK;QAG7C,SAAQ,CAAC;YAER,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAE,EAAE,CAAE,CAAC,SAAS,CAAE,CAAC,EAAE,MAAM,GAAG,CAAC,CAAE,CAAC,WAAW,EAAE,CAAA;YAC9E,IAAI,MAAM,CAAE,EAAE,CAAE;gBAAG,SAAQ;YAE3B,OAAO,EAAE,CAAA;QACV,CAAC;IAEF,CAAC;IAbe,WAAS,YAaxB,CAAA;AAEF,CAAC,EAlBS,CAAC,KAAD,CAAC,QAkBV;;;;AClBD,IAAU,CAAC,CAMV;AAND,WAAU,CAAC;IAEV,SAAgB,SAAS,CAAE,KAAW;QACrC,MAAM,KAAK,CAAA;IACZ,CAAC;IAFe,WAAS,YAExB,CAAA;AAEF,CAAC,EANS,CAAC,KAAD,CAAC,QAMV;;;;ACND,IAAU,CAAC,CAmBV;AAnBD,WAAU,CAAC;IAEV,+BAA+B;IAC/B,IAAY,gBAcX;IAdD,WAAY,gBAAgB;QAE3B,uBAAuB;QACvB,0DAAU,CAAA;QAEV,gDAAgD;QAChD,0DAAU,CAAA;QAEV,uCAAuC;QACvC,0DAAU,CAAA;QAEV,mCAAmC;QACnC,0DAAU,CAAA;IAEX,CAAC,EAdW,gBAAgB,GAAhB,kBAAgB,KAAhB,kBAAgB,QAc3B;AAEF,CAAC,EAnBS,CAAC,KAAD,CAAC,QAmBV;;;;ACnBD,IAAU,CAAC,CAkIV;AAlID,WAAU,CAAC;IAEV;;OAEG;IACH,MAAa,aAAc,SAAQ,MAAM;QAExC,YAAa,EAAE,GAAG,iBAAkB,SAAS,EAAG,EAAE;YACjD,KAAK,EAAE,CAAA;YACP,IAAI,CAAE,MAAM,CAAC,WAAW,CAAE,GAAG,EAAE,CAAA;QAChC,CAAC;QAED,CAAE,MAAM,CAAC,WAAW,CAAE,CAAS;QAC/B,IAAI,GAAG,EAAe,CAAA;QAEtB,oCAAoC;QACpC,MAAM,KAAK,CAAE,MAAM,CAAC,OAAO,CAAE;YAC5B,OAAO,KAAK,CAAA;QACb,CAAC;QAED;;WAEG;QACO,QAAQ,GAAG,CAAC,CAAA,CAAC,KAAK;QAE5B;;WAEG;QACH,IAAI,QAAQ;YACX,MAAM,GAAG,GAAG,EAAqB,CAAA;YACjC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAG,CAAC;gBAC3D,GAAG,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAkB,CAAE,CAAA;YAC1C,CAAC;YACD,OAAO,GAA+B,CAAA;QACvC,CAAC;QAED;;WAEG;QACH,IAAI,SAAS;YACZ,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAA;QAC1C,CAAC;QAED;;WAEG;QACH,MAAM,CAAE,GAAkB,EAAE,OAAe;YAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAA;YAC5B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,OAAO,CAAE,CAAA;YAC9B,OAAO,GAAG,CAAA;QACX,CAAC;QAED;;WAEG;QACH,OAAO,CAAE,OAAe;YAEvB,IAAG,CAAC,CAAE,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAE,EAAE,CAAC;gBACpC,SAAS,CAAE,IAAI,KAAK,CAAE,aAAc,OAAQ,EAAE,CAAE,CAAE,CAAA;YACnD,CAAC;YAED,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;YAChC,IAAI,OAAO,KAAK,GAAG,EAAG,CAAC;gBACtB,IAAI,CAAC,SAAS,CAAE,GAAG,EAAE,OAAO,CAAE,CAAA;YAC/B,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAA;YAEtB,IAAI,GAAG,KAAK,IAAI,CAAC,QAAQ;gBAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QAExC,CAAC;QAED;;YAEI;QACJ,IAAI,KAAK,CAAC;QAEV;;YAEI;QACJ,OAAO;YACN,cAAc,EAAE,EAAE,UAAU,CAAE,IAAI,CAAE,CAAA;QACrC,CAAC;QAED;;WAEG;QACH,KAAK,KAAI,CAAC;QAEV;;WAEG;QACH,QAAQ,KAAI,CAAC;QAEb,IAAI,WAAW;YACd,OAAO,KAAK,CAAA;QACb,CAAC;QAED;;WAEG;QACH,IAAI,CAAE,KAAK,GAAG,gBAAgB,CAAC,KAAK;YACnC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAG,CAAC;gBAC3D,CAAC;gBAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAoB,CAAC,MAAM,CAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAE,CAAC,GAAG,CAAC,CAAY,CAAE,CAAA;YACjF,CAAC;QACF,CAAC;QAED;;WAEG;QACH,SAAS,CAAE,QAAgB,EAAE,MAAc;YAE1C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,QAAQ,CAAmB,CAAA;YACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAE,QAAQ,GAAG,CAAC,CAAY,CAAA;YAEpD,IAAI,CAAC,IAAI,CAAE,MAAM,CAAE,GAAG,IAAI,CAAA;YAC1B,IAAI,CAAC,IAAI,CAAE,MAAM,GAAG,CAAC,CAAE,GAAG,QAAQ,CAAA;YAElC,IAAI,CAAC,UAAU,CAAE,QAAQ,EAAE,MAAM,CAAE,CAAA;QACpC,CAAC;QAED;;WAEG;QACH,UAAU,CAAE,QAAgB,EAAE,QAAgB;YAC7C,IAAI,CAAC,IAAI,CAAE,QAAQ,GAAG,CAAC,CAAE,GAAG,QAAQ,CAAA;QACrC,CAAC;KAED;IA3HY,eAAa,gBA2HzB,CAAA;AAEF,CAAC,EAlIS,CAAC,KAAD,CAAC,QAkIV;;;;;;;AClID,IAAU,CAAC,CAgBV;AAhBD,WAAU,CAAC;IAEC,oBAAkB,GAAyB,IAAI,CAAA;IAE1D;;OAEG;IACH,SAAgB,cAAc,CAAE,IAAI,GAAG,EAAA,kBAAkB;QACxD,OAAO,EAAA,kBAAkB,GAAG,IAAI,CAAA;IACjC,CAAC;IAFe,gBAAc,iBAE7B,CAAA;IAED;;OAEG;IACU,oBAAkB,GAAG,EAAkC,CAAA;AAErE,CAAC,EAhBS,CAAC,KAAD,CAAC,QAgBV;;;;AChBD,IAAU,CAAC,CAMV;AAND,WAAU,CAAC;IAEV,SAAgB,gBAAgB,CAAE,KAAW;QAC5C,MAAM,KAAK,CAAA,CAAC,gFAAgF;IAC7F,CAAC;IAFe,kBAAgB,mBAE/B,CAAA;AAEF,CAAC,EANS,CAAC,KAAD,CAAC,QAMV;;;;ACND,IAAU,CAAC,CAuRV;AAvRD,WAAU,CAAC;IAEV,2FAA2F;IAC1F,CAAS,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAA;IAEvC,SAAgB,wBAAwB,CAAE,MAOzC;QACC,CAAS,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAE,MAAM,CAAE,CAAA;IAChD,CAAC;IATe,0BAAwB,2BASvC,CAAA;IAEY,sBAAoB,GAAG,MAAM,CAAE,sBAAsB,CAAE,CAAA;IACvD,sBAAoB,GAAG,MAAM,CAAE,sBAAsB,CAAE,CAAA;IAEpE,SAAS,sBAAsB,CAAE,KAAU,EAAE,KAAe;QAC3D,OAAO,oBAAoB,CAAE;YAC5B,CAAE,EAAA,oBAAoB,CAAE;gBACvB,OAAO,EAAA,oBAAoB,CAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,KAAK,CAAE,CAAA;YAClE,CAAC;YACD,CAAE,EAAA,oBAAoB,CAAE;gBACvB,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;gBAC/B,OAAO,EAAA,oBAAoB,CAAC,EAAE,CAAC,CAAA;YAChC,CAAC;SACD,CAAE,CAAA;IACJ,CAAC;IAED,wBAAwB,CAAC;QAExB,MAAM,EAAG,CAAE,GAAS,EAAG,MAAM,GAAG,KAAK,EAAG,EAAE;YAEzC,IAAI,MAAM;gBAAG,OAAO,IAAI,CAAA;YAExB,IAAI,CAAC,GAAG;gBAAG,OAAO,IAAI,CAAA;YAEtB,IAAI,EAAA,oBAAoB,IAAI,GAAG,EAAG,CAAC;gBAClC,IAAI,CAAC;oBACJ,OAAO,GAAG,CAAE,EAAA,oBAAoB,CAAE,EAAE,CAAA;gBACrC,CAAC;gBAAC,OAAO,KAAK,EAAG,CAAC;oBACjB,OAAO,EAAA,sBAAsB,CAAE,sBAAsB,CAAE,GAAG,CAAE,EAAE,IAAI,EAAE,sBAAsB,CAAE,KAAK,CAAE,EAAE,EAAE,CAAE,CAAA;gBAC1G,CAAC;YACF,CAAC;YAED,IAAI,OAAO,GAAG,KAAK,UAAU,EAAG,CAAC;gBAChC,OAAO,sBAAsB,CAAE,GAAG,CAAE,CAAA;YACrC,CAAC;YAED,IAAI,GAAG,YAAY,KAAK,EAAG,CAAC;gBAE3B,OAAO,EAAA,oBAAoB,CAAE,EAAE,EAC9B,sBAAsB,CAAE,GAAG,CAAE,EAC7B,GAAG,EACH,sBAAsB,CAAE,OAAO,EAAE,GAAE,EAAE,CAAC,gBAAgB,CAAE,GAAG,CAAE,CAAE,CAC/D,CAAA;YAEF,CAAC;YAED,IAAI,GAAG,YAAY,OAAO,EAAG,CAAC;gBAC7B,OAAO,EAAA,qBAAqB,CAC3B,sBAAsB,CAAE,GAAG,CAAE,EAC7B,GAAG,EACH,GAAG,CAAE,MAAM,CAAC,WAAW,CAAE,IAAI,EAAE,CAC/B,CAAA;YACF,CAAC;YAED,IAAI,MAAM,CAAC,WAAW,IAAI,GAAG,EAAG,CAAC;gBAChC,OAAO,sBAAsB,CAAE,GAAG,CAAE,CAAA;YACrC,CAAC;YAED,OAAO,IAAI,CAAA;QAEZ,CAAC;QAED,OAAO,EAAG,CAAE,GAAQ,EAAG,MAAM,GAAG,KAAK,EAAE,EAAE;YAExC,IAAI,MAAM;gBAAG,OAAO,KAAK,CAAA;YACzB,IAAI,CAAC,GAAG;gBAAG,OAAO,KAAK,CAAA;YAEvB,kCAAkC;YAClC,IAAI,GAAG,CAAE,EAAA,oBAAoB,CAAE;gBAAG,OAAO,IAAI,CAAA;YAE7C,OAAO,KAAK,CAAA;QACb,CAAC;QAED,IAAI,EAAI,CAAE,GAAQ,EAAG,MAAM,GAAG,KAAK,EAAE,EAAE;YAEtC,IAAI,MAAM;gBAAG,OAAO,IAAI,CAAA;YAExB,IAAI,CAAC,GAAG;gBAAG,OAAO,IAAI,CAAA;YAEtB,IAAI,EAAA,oBAAoB,IAAI,GAAG,EAAG,CAAC;gBAClC,IAAI,CAAC;oBACJ,OAAO,GAAG,CAAE,EAAA,oBAAoB,CAAE,EAAE,CAAA;gBACrC,CAAC;gBAAC,OAAO,KAAK,EAAG,CAAC;oBACjB,OAAO,EAAA,sBAAsB,CAAE,sBAAsB,CAAE,GAAG,CAAE,EAAE,IAAI,EAAE,sBAAsB,CAAE,KAAK,CAAE,EAAE,EAAE,CAAE,CAAA;gBAC1G,CAAC;YACF,CAAC;YAED,+BAA+B;YAC/B,wCAAwC;YACxC,IAAI;YAEJ,OAAO,IAAI,CAAA;QACZ,CAAC;KAED,CAAC,CAAA;IAEF,SAAgB,sBAAsB,CAAE,GAAS;QAEhD,IAAI,OAAO,GAAG,KAAK,WAAW;YAAG,OAAO,EAAA,qBAAqB,CAAE,WAAW,CAAE,CAAA;QAE5E,+EAA+E;QAE/E,OAAO;YACN,QAAQ;YACR;gBACC,MAAM,EAAG,GAAG;gBACZ,MAAM,EAAG,IAAI;aACb;SACD,CAAA;IAEF,CAAC;IAde,wBAAsB,yBAcrC,CAAA;IAED,SAAgB,oBAAoB,CAAE,GAAS;QAE9C,IAAI,GAAG,IAAI,IAAI;YAAG,OAAO,EAAA,qBAAqB,CAAE,MAAM,CAAE,GAAG,CAAE,CAAE,CAAA;QAE/D,OAAO;YACN,QAAQ;YACR;gBACC,MAAM,EAAG,GAAG;gBACZ,MAAM,EAAG,KAAK;aACd;SACD,CAAA;IAEF,CAAC;IAZe,sBAAoB,uBAYnC,CAAA;IAED,SAAgB,uBAAuB,CAAE,OAAgB,EAAG,KAAc,EAAG,GAAG,OAAe;QAE9F,MAAM,MAAM,GAAG,EAAc,CAAA;QAE7B,KAAK,IAAI,GAAG,IAAI,KAAK;YAAG,MAAM,CAAC,IAAI,CAAE,GAAI,GAAI,MAAQ,KAAa,CAAC,GAAG,CAAE,EAAE,CAAE,CAAA;QAE5E,OAAO;YACN,OAAO;YACP;gBACC,KAAK,EAAG,MAAM,CAAC,IAAI,CAAE,KAAK,CAAE;aAC5B;YACD,GAAI,OAAO;SACX,CAAA;IAEF,CAAC;IAde,yBAAuB,0BActC,CAAA;IAEU,sBAAoB,GAAG,uBAAuB,CAAC,IAAI,CAAE,IAAI,EAAG,MAAM,CAAE,CAAA;IACpE,qBAAmB,GAAG,uBAAuB,CAAC,IAAI,CAAE,IAAI,EAAG,KAAK,CAAE,CAAA;IAClE,oBAAkB,GAAG,uBAAuB,CAAC,IAAI,CAAE,IAAI,EAAG,IAAI,CAAE,CAAA;IAChE,oBAAkB,GAAG,uBAAuB,CAAC,IAAI,CAAE,IAAI,EAAG,IAAI,CAAE,CAAA;IAChE,uBAAqB,GAAG,uBAAuB,CAAC,IAAI,CAAE,IAAI,EAAG,OAAO,CAAE,CAAA;IACtE,oBAAkB,GAAG,uBAAuB,CAAC,IAAI,CAAE,IAAI,EAAG,IAAI,CAAE,CAAA;IAChE,oBAAkB,GAAG,uBAAuB,CAAC,IAAI,CAAE,IAAI,EAAG,IAAI,CAAE,CAAA;IAEhE,wBAAsB,GAAG,EAAA,oBAAoB,CAAC,IAAI,CAAE,IAAI,EAAG;QACrE,OAAO,EAAG,SAAS;KACnB,CAAE,CAAA;IAEQ,wBAAsB,GAAG,EAAA,oBAAoB,CAAC,IAAI,CAAE,IAAI,EAAG;QACrE,aAAa,EAAG,MAAM;KACtB,CAAE,CAAA;IAEQ,wBAAsB,GAAG,EAAA,oBAAoB,CAAC,IAAI,CAAE,IAAI,EAAG;QACrE,OAAO,EAAG,OAAO;KACjB,CAAE,CAAA;IAEQ,uBAAqB,GAAG,EAAA,oBAAoB,CAAC,IAAI,CAAE,IAAI,EAAG;QACpE,OAAO,EAAG,MAAM;KAChB,CAAE,CAAA;IAEQ,wBAAsB,GAAG,EAAA,mBAAmB,CAAC,IAAI,CAAE,IAAI,EAAG;QACpE,qBAAqB,EAAE,MAAM;KAC7B,CAAE,CAAA;IAEH,MAAM,KAAM,SAAQ,KAAa;QAEhC,6BAA6B;QAC7B,0BAA0B;QAC1B,IAAI;QAEJ,KAAK,CAAC,GAAG,IAAiC;YACzC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAA;QACtC,CAAC;QAED,KAAK,CAAC,GAAG,IAAiC;YACzC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAA;QACtC,CAAC;QAED,QAAQ;YACP,OAAO,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;QACzB,CAAC;KAED;IAED,MAAM,IAAK,SAAQ,MAAM;QAEf,IAAI,CAAQ;QACZ,QAAQ,CAAQ;QAChB,MAAM,CAAQ;QACd,IAAI,CAAQ;QACZ,MAAM,CAAQ;QACd,MAAM,CAAQ;QACd,GAAG,CAAoB;QACvB,MAAM,CAAS;QACf,KAAK,CAAmB;QACjC,CAAE,MAAM,CAAC,WAAW,CAAE,CAAS;QAE/B,YAAa,IAAqB;YACjC,KAAK,EAAE,CAAA;YAEP,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAA;YACpC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,CAAA;YAC5C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,CAAA;YACxC,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ;gBAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;YACpD,+BAA+B;YAC/B,IAAI,CAAC,GAAG,GAAG,CAAE,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAE,CAAA;YACvF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,CAAA;YACtC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,wBAAwB,EAAE,IAAI,EAAE,CAAA;YACnD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;YAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;YAEhC,MAAM,KAAK,GAAG,EAAE,CAAA;YAChB,IAAI,IAAI,CAAC,OAAO,EAAE;gBAAG,KAAK,CAAC,IAAI,CAAE,OAAO,CAAE,CAAA;YAC1C,IAAI,IAAI,CAAC,aAAa,EAAE;gBAAG,KAAK,CAAC,IAAI,CAAE,aAAa,CAAE,CAAA;YACtD,IAAI,IAAI,CAAC,MAAM,EAAE;gBAAG,KAAK,CAAC,IAAI,CAAE,MAAM,CAAE,CAAA;YACxC,IAAI,IAAI,CAAC,QAAQ,EAAE;gBAAG,KAAK,CAAC,IAAI,CAAE,QAAQ,CAAE,CAAA;YAC5C,IAAI,IAAI,CAAC,YAAY,EAAE;gBAAG,KAAK,CAAC,IAAI,CAAE,YAAY,CAAE,CAAA;YACpD,IAAI,IAAI,CAAC,UAAU,EAAE;gBAAG,KAAK,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;YAC3C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;YAElB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;YAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAA;YACtC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;YAE3D,IAAI,CAAE,MAAM,CAAC,WAAW,CAAE,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,EAAE,CAAA;QACvD,CAAC;QAED,CAAE,MAAM,CAAC,WAAW,CAAE;YACrB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAA;QACvB,CAAC;QAED,QAAQ;YACP,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAA;YAChC,MAAM,KAAK,GAAG,IAAI,CAAE,MAAM,CAAC,WAAW,CAAE,CAAA;YACxC,MAAM,MAAM,GAAG,GAAI,IAAI,CAAC,MAAO,IAAK,IAAI,CAAC,GAAG,CAAC,IAAI,CAAE,GAAG,CAAG,KAAM,IAAI,CAAC,MAAO,EAAE,CAAA;YAC7E,OAAO,QAAQ,MAAM,GAAG,KAAK,KAAK,MAAM,GAAG,CAAA;QAC5C,CAAC;QAED,CAAE,EAAA,oBAAoB,CAAE;YACvB,OAAO,EAAA,mBAAmB,CAAE,EAAE,EAC7B,sBAAsB,CAAE,IAAI,CAAE,EAC9B,EAAA,qBAAqB,CAAE,GAAG,CAAE,EAC5B,GAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBACjB,sBAAsB,CAAE,IAAI,CAAC,MAAM,CAAE;aACrC,CAAC,CAAC,CAAC,EAAE,EACN,GAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,EAAA,qBAAqB,CAAE,GAAG,EAC7C,IAAI,EACJ,IAAI,CAAC,MAAM,EACX,GAAG,CACH,CAAE,CAAC,CAAC,CAAC,EAAE,EACR,EAAA,qBAAqB,CAAE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAE,IAAI,CAAE,CAAE,CACrD,CAAA;QACF,CAAC;KAED;IAED,KAAK,CAAC,iBAAiB,KAAK,CAAE,KAAY,EAAE,KAAwB,EAAE,EAAE,CAAC,IAAI,KAAK,CAAE,GAAI,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAE,IAAI,CAAE,CAAE,CAAE,CAAA;AAEhI,CAAC,EAvRS,CAAC,KAAD,CAAC,QAuRV;;;;ACvRD,IAAU,CAAC,CAuOV;AAvOD,WAAU,CAAC;IAEV;;;;;;OAMG;IACH,MAAa,iBAAkB,SAAQ,aAAa;QAEzC,QAAQ,GAAG,CAAC,CAAA,CAAC,KAAK;QAClB,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAA,CAAC,KAAK;QAE/C,IAAI,IAAI;YACP,OAAO,KAAK,CAAA;QACb,CAAC;QAED,IAAI,QAAQ;YACX,MAAM,GAAG,GAAG,EAAqB,CAAA;YACjC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,IAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAA;YACzD,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAG,CAAC;gBAC9C,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;oBAAG,GAAG,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAkB,CAAE,CAAA;YAC7D,CAAC;YACD,OAAO,GAAG,CAAA;QACX,CAAC;QAED,QAAQ;YACP,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAA;YAC3B,MAAM,GAAG,GAAG,cAAc,EAAE,CAAA;YAC5B,cAAc,CAAE,IAAI,CAAE,CAAA;YACtB,OAAO,GAAG,CAAA;QACX,CAAC;QAED,OAAO;YAEN,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAG,CAAC;gBACnC,SAAS,CAAE,IAAI,KAAK,CAAE,uBAAuB,CAAE,CAAE,CAAA;YAClD,CAAC;YAED,KAAK,CAAC,OAAO,EAAE,CAAA;QAChB,CAAC;QAED,UAAU,CAAE,GAAmB;YAE9B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAG,SAAS,CAAE,IAAI,KAAK,CAAE,wBAAwB,CAAE,CAAE,CAAA;YAExE,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAG,CAAC;gBAEjC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,MAAM,CAA+B,CAAA;gBACnE,IAAI,GAAG,KAAK,SAAS;oBAAG,OAAO,IAAI,IAAI,IAAI,CAAA;gBAE3C,IAAI,IAAI,KAAK,GAAG,EAAG,CAAC;oBACnB,IAAI,CAAC,MAAM,IAAI,CAAC,CAAA;oBAChB,OAAO,IAAI,CAAA;gBACZ,CAAC;gBAED,IAAI,IAAI,EAAG,CAAC;oBAEX,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAG,CAAC;wBACvC,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAE,CAAA;oBAClD,CAAC;oBAED,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAE,CAAA;oBAC5C,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAA;gBAEnB,CAAC;YAEF,CAAC;iBAAM,CAAC;gBAEP,IAAI,GAAG,KAAK,SAAS;oBAAG,OAAO,IAAI,CAAA;gBAEnC,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAG,CAAC;oBACvC,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAE,CAAA;gBAClD,CAAC;gBAED,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAA;YAEnB,CAAC;YAED,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,MAAM,CAAE,GAAG,GAAG,CAAA;YAC9B,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAE,GAAG,GAAG,CAAC,MAAM,CAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAE,CAAA;YAE9D,IAAI,CAAC,MAAM,IAAI,CAAC,CAAA;YAEhB,OAAO,GAAG,CAAA;QACX,CAAC;QAED,SAAS,CAAE,GAAyB;YAEnC,cAAc,CAAE,GAAG,CAAE,CAAA;YAErB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAG,CAAC;gBACtB,SAAS,CAAE,IAAI,KAAK,CAAE,sBAAsB,CAAE,CAAE,CAAA;YACjD,CAAC;YAED,KACC,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,EAC1B,MAAM,GAAG,IAAI,CAAC,MAAM,EACpB,MAAM,IAAI,CAAC,EACV,CAAC;gBACF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,MAAM,CAAmB,CAAA;gBAChD,GAAG,CAAC,KAAK,EAAE,CAAA;YACZ,CAAC;YAED,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAA;QAErC,CAAC;QAED,OAAO,CAAE,OAAe;YACvB,IAAI,CAAC,IAAI,CAAE,OAAO,CAAE,GAAG,SAAgB,CAAA;YACvC,IAAI,CAAC,IAAI,CAAE,OAAO,GAAG,CAAC,CAAE,GAAG,SAAgB,CAAA;QAC5C,CAAC;QAED,UAAU;YAET,KACC,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EACjC,MAAM,IAAI,IAAI,CAAC,QAAQ,EACvB,MAAM,IAAI,CAAC,EACV,CAAC;gBACF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,MAAM,CAAmB,CAAA;gBAChD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,MAAM,GAAG,CAAC,CAAY,CAAA;gBAC7C,GAAG,CAAC,OAAO,CAAE,GAAG,CAAE,CAAA;YACnB,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAA;YAChC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAA;YAC3B,IAAI,CAAC,SAAS,EAAE,CAAA;YAChB,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAA;QAErC,CAAC;QAED,SAAS;YAER,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAG,CAAC;gBAClC,SAAS,CAAE,IAAI,KAAK,CAAE,sBAAsB,CAAE,CAAE,CAAA;YACjD,CAAC;YAED,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAA;YAE1B,KACC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,EACxB,MAAM,GAAG,IAAI,CAAC,QAAQ,EACtB,MAAM,IAAI,CAAC,EACV,CAAC;gBAEF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,MAAM,CAA+B,CAAA;gBAC5D,GAAG,EAAE,OAAO,CAAE,IAAI,CAAC,IAAI,CAAE,MAAM,GAAG,CAAC,CAAY,CAAE,CAAA;gBAEjD,GAAG,IAAI,CAAC,CAAA;gBACR,IAAI,IAAI,CAAC,QAAQ,IAAI,GAAG;oBAAG,IAAI,CAAC,SAAS,CAAE,GAAG,EAAE,MAAM,CAAE,CAAA;YAEzD,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAA;YAEtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAA;QAE5B,CAAC;QAED,QAAQ,KAAK,CAAC;QAEd,aAAa;YAEZ,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAA;YAE3D,KACC,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,EAC1B,MAAM,GAAG,KAAK,EACd,MAAM,IAAI,CAAC,EACV,CAAC;gBACF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,MAAM,CAAmB,CAAA;gBAChD,IAAI,GAAG,EAAE,WAAW;oBAAG,OAAM;YAC9B,CAAC;YAED,KACC,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,EAC1B,MAAM,GAAG,KAAK,EACd,MAAM,IAAI,CAAC,EACV,CAAC;gBACF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,MAAM,CAAmB,CAAA;gBAChD,GAAG,EAAE,QAAQ,EAAE,CAAA;YAChB,CAAC;QAEF,CAAC;QAED,MAAM,CAAE,KAAK,GAAG,gBAAgB,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC;YAE/C,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,KAAK;gBAAG,OAAM;YACnD,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK;gBAAG,OAAM;YAEjC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;YACnB,IAAI,CAAC,IAAI,CAAE,gBAAgB,CAAC,KAAK,CAAE,CAAA;YAEnC,8CAA8C;YAE9C,iDAAiD;YACjD,8CAA8C;YAE9C,QAAQ;YACR,gCAAgC;YAChC,4BAA4B;YAC5B,gBAAgB;YAChB,OAAO;YAEP,qDAAqD;YAErD,0CAA0C;YAC1C,sBAAsB;YACtB,MAAM;YAEN,KAAK;YAEL,IAAI;QAEL,CAAC;QAED,CAAE,oBAAoB,CAAE;YACvB,OAAO,sBAAsB,CAAE,IAAI,CAAE,CAAA;QACtC,CAAC;QAED;;WAEG;QACH,IAAI,SAAS;YACZ,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAA;QACvC,CAAC;KAED;IA5NY,mBAAiB,oBA4N7B,CAAA;AAEF,CAAC,EAvOS,CAAC,KAAD,CAAC,QAuOV;;;;ACvOD,IAAU,CAAC,CAWV;AAXD,WAAU,CAAC;IAEG,kBAAgB,GAAmB,MAAM,CAAE,kBAAkB,CAAE,CAAA;IAK5E,SAAgB,YAAY,CAAoB,SAAwB;QACvE,OAAO,MAAM,CAAC,cAAc,CAAE,SAAS,EAAG,IAAI,IAAI,CAAC,CAAE,CAAA;IACtD,CAAC;IAFe,cAAY,eAE3B,CAAA;AAEF,CAAC,EAXS,CAAC,KAAD,CAAC,QAWV;;;;ACXD,IAAU,CAAC,CA0DV;AA1DD,WAAU,CAAC;IAEV,MAAM,SAAS,GAAG,IAAI,OAAO,EAAS,CAAA;IAEtC;;;;OAIG;IACA,SAAgB,aAAa,CAC/B,KAAa,EACb,MAAmB;QAGnB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAE,KAAK,EAAG;YAEhC,GAAG,EAAE,CAAE,CAAC,EAAG,KAAK,EAAE,EAAE;gBACnB,MAAM,GAAG,GAAG,MAAM,EAAE,CAAA;gBACpB,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,CAAE,GAAG,EAAG,KAAK,CAAE,CAAA;gBACpC,IAAI,OAAO,GAAG,KAAK,UAAU,EAAG,CAAC;oBAChC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;gBACtB,CAAC;gBACD,OAAO,GAAG,CAAA;YACX,CAAC;YACD,GAAG,EAAE,CAAE,CAAC,EAAG,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAE,MAAM,EAAE,EAAE,KAAK,CAAE;YACnD,GAAG,EAAE,CAAE,CAAC,EAAG,KAAK,EAAG,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAE,MAAM,EAAE,EAAG,KAAK,EAAG,KAAK,CAAE;YAEpE,wBAAwB,EAAE,CAAE,CAAC,EAAG,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,wBAAwB,CAAE,MAAM,EAAE,EAAG,KAAK,CAAE;YAC9F,OAAO,EAAE,GAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAE,MAAM,EAAE,CAAE;YAEzC,cAAc,EAAE,GAAE,EAAE,CAAC,OAAO,CAAC,cAAc,CAAE,MAAM,EAAE,CAAE;YACvD,cAAc,EAAE,CAAE,CAAC,EAAG,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,CAAE,MAAM,EAAE,EAAG,KAAK,CAAE;YAE1E,YAAY,EAAE,GAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAE,MAAM,EAAE,CAAE;YACnD,iBAAiB,EAAE,GAAE,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAE,MAAM,EAAE,CAAE;YAE7D,KAAK,EAAE,CAAE,CAAC,EAAG,IAAI,EAAG,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAE,MAAM,EAAc,EAAG,IAAI,EAAG,IAAI,CAAE;YAChF,SAAS,EAAE,CAAE,CAAC,EAAG,IAAI,EAAG,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAE,MAAM,EAAc,EAAG,IAAI,EAAG,QAAQ,CAAE;YAEhG,cAAc,EAAE,CAAE,CAAC,EAAG,KAAK,EAAG,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,CAAE,MAAM,EAAE,EAAG,KAAK,EAAG,KAAK,CAAE;YAC1F,cAAc,EAAE,CAAE,CAAC,EAAG,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,CAAE,MAAM,EAAE,EAAG,KAAK,CAAE;SAE1E,CAAE,CAAA;QAEH,SAAS,CAAC,GAAG,CAAE,KAAK,CAAE,CAAA;QAEtB,OAAO,KAAK,CAAA;IAEb,CAAC;IAvCkB,eAAa,gBAuC/B,CAAA;IAED,OAAO,CAAC,cAAc,CACrB,aAAa,EACb,MAAM,CAAC,WAAW,EAClB;QACC,KAAK,EAAG,CAAE,GAAY,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAE,GAAG,CAAE;KAC/C,CACD,CAAA;AAEF,CAAC,EA1DS,CAAC,KAAD,CAAC,QA0DV;;;;AC1DD,IAAU,CAAC,CAyDV;AAzDD,WAAU,CAAC;IAEG,iBAAe,GAAG,IAAI,OAAO,EAAe,CAAA;IAEzD,SAAgB,iBAAiB,CAChC,MAAe;QAIf,IAAI,CAAC;YACJ,IAAI,CAAC,MAAM;gBAAG,OAAO,KAAK,CAAA;YAC1B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,UAAU;gBAAG,OAAO,KAAK,CAAA;YAC7E,IAAI,MAAM,YAAY,aAAa;gBAAG,OAAO,KAAK,CAAA;YAClD,IAAI,OAAQ,MAAc,CAAC,YAAY,CAAC,KAAK,UAAU;gBAAG,OAAO,KAAK,CAAA;YACtE,OAAO,IAAI,CAAA;QACZ,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,KAAK,CAAA;QACb,CAAC;IACF,CAAC;IAde,mBAAiB,oBAchC,CAAA;IAED,SAAgB,eAAe,CAAmC,MAAe,EAAG,KAA0B;QAE7G,IAAI,CAAC,iBAAiB,CAAE,MAAM,CAAE;YAAG,OAAO,IAAI,CAAA;QAE9C,OAAO,IAAI,EAAG,CAAC;YAEd,MAAM,KAAK,GAAG,EAAA,eAAe,CAAC,GAAG,CAAE,MAAM,CAAE,CAAA;YAC3C,IAAI,CAAC,KAAK;gBAAG,OAAO,KAAK,CAAA;YACzB,IAAI,CAAC,KAAK;gBAAG,OAAO,KAAK,CAAA;YAEzB,IAAI,KAAK,YAAY,KAAK;gBAAG,OAAO,KAAK,CAAA;YAEzC,MAAM,GAAG,KAAK,CAAA;QACf,CAAC;IAEF,CAAC;IAfe,iBAAe,kBAe9B,CAAA;IAED,SAAgB,iBAAiB,CAChC,KAAa,EACb,MAAe;QAEf,IAAI,CAAC,iBAAiB,CAAE,MAAM,CAAE;YAAG,OAAO,KAAK,CAAA;QAC/C,IAAI,EAAA,eAAe,CAAC,GAAG,CAAE,MAAM,CAAE,KAAK,KAAK;YAAG,OAAO,KAAK,CAAA;QAC1D,OAAO,IAAI,CAAA;IACZ,CAAC;IAPe,mBAAiB,oBAOhC,CAAA;IAED,SAAgB,iBAAiB,CAChC,KAAa,EACb,MAAe;QAEf,IAAI,CAAC,iBAAiB,CAAE,MAAM,CAAE;YAAG,OAAO,KAAK,CAAA;QAC/C,IAAI,EAAA,eAAe,CAAC,GAAG,CAAE,MAAM,CAAE;YAAG,OAAO,KAAK,CAAA;QAEhD,EAAA,eAAe,CAAC,GAAG,CAAE,MAAM,EAAG,KAAK,CAAE,CAAA;QACrC,OAAO,IAAI,CAAA;IACZ,CAAC;IATe,mBAAiB,oBAShC,CAAA;AAEF,CAAC,EAzDS,CAAC,KAAD,CAAC,QAyDV;;;;;;;ACzDD,IAAU,CAAC,CA6BV;AA7BD,WAAU,CAAC;IAEV,MAAM,KAAK,GAAG,IAAI,OAAO,EAAc,CAAA;IAEvC,SAAgB,cAAc,CAAa,IAAe;QAEzD,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACpB,IAAI,IAAI,EAAE,MAAM,GAAG,CAAC;YAAG,OAAO,IAAI,CAAA;QAClC,IAAI,KAAK,CAAC,GAAG,CAAE,IAAI,CAAE;YAAG,OAAO,IAAI,CAAA;QAEnC,KAAK,IAAI,GAAG,IAAI,IAAI,EAAG,CAAC;YACvB,IAAI,CAAC;gBACJ,IAAK,IAAY,CAAE,GAAG,CAAE,KAAK,IAAI;oBAAG,SAAQ;gBAC5C,IAAI,GAAG,GAAG,CAAA;gBACV,MAAM,CAAC,cAAc,CAAE,IAAI,EAAG,MAAM,EAAG,EAAE,KAAK,EAAG,IAAI,EAAE,CAAE,CAAA;gBACzD,MAAK;YACN,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACX,CAAC;QAED,KAAK,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;QACjB,OAAO,IAAI,CAAA;IAEZ,CAAC;IAlBe,gBAAc,iBAkB7B,CAAA;IAED,SAAgB,mBAAmB,CAA6B,MAAe,EAAG,MAAiB;QAClG,MAAM,CAAC,cAAc,CAAE,MAAM,EAAG,MAAM,EAAG,EAAE,KAAK,EAAG,MAAM,CAAC,IAAI,EAAE,CAAE,CAAA;QAClE,OAAO,MAAM,CAAA;IACd,CAAC;IAHe,qBAAmB,sBAGlC,CAAA;AAEF,CAAC,EA7BS,CAAC,KAAD,CAAC,QA6BV;;;;AC7BD,IAAU,CAAC,CAKV;AALD,WAAU,CAAC;IAEG,iBAAe,GAAG,MAAM,CAAC,GAAG,CAAE,iBAAiB,CAAE,CAAA;IACjD,gBAAc,GAAG,IAAI,OAAO,EAAoB,CAAA;AAE9D,CAAC,EALS,CAAC,KAAD,CAAC,QAKV;;;;ACLD,IAAU,CAAC,CAkEV;AAlED,WAAU,CAAC;IAEV,IAAI,CAAC,MAAM,CAAC,OAAO;QAAK,MAAe,CAAC,OAAO,GAAG,MAAM,CAAE,gBAAgB,CAAE,CAAA;IAE5E,MAAa,YAAY;QAExB,MAAM,CAAC,CAAC,GAAG,CAAa,CAAA;QAExB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAS;QAE7B,CAAE,gBAAgB,CAAE,GAAG,IAAgB,CAAA;QACvC,IAAI,CAAC;YACJ,IAAI,IAAI,CAAE,gBAAgB,CAAE;gBAAG,OAAO,IAAI,CAAE,gBAAgB,CAAE,CAAA;YAC9D,MAAM,KAAK,GAAG,eAAe,CAAE,IAAI,CAAS,CAAA;YAC5C,OAAO,IAAI,CAAE,gBAAgB,CAAE,GAAG,KAAK,EAAE,CAAC,IAAK,IAAI,CAAC,WAAyB,CAAC,CAAC,IAAI,YAAY,CAAC,CAAM,CAAA;QACvG,CAAC;QACD,IAAI,CAAC,CAAE,IAAQ;YACd,IAAI,IAAI,CAAE,gBAAgB,CAAE;gBAAG,gBAAgB,CAAE,IAAI,KAAK,CAAE,yBAAyB,CAAE,CAAE,CAAA;YACzF,IAAI,CAAE,gBAAgB,CAAE,GAAG,IAAI,CAAA;QAChC,CAAC;QAEM,MAAM,CAAC,MAAM,CAEnB,IAA0D;YAE1D,MAAM,GAAG,GAAG,IAAI,IAAI,CAAA;YACpB,IAAI,IAAI;gBAAG,IAAI,CAAE,GAAG,CAAE,CAAA;YACtB,OAAO,GAAG,CAAA;QACX,CAAC;QAED,MAAM,CAAC,CAAE,MAAM,CAAC,WAAW,CAAE;YAC5B,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAA;QACvB,CAAC;QAED,MAAM,CAAC,QAAQ;YACd,OAAS,IAAa,CAAE,MAAM,CAAC,WAAW,CAAE,IAAI,IAAI,CAAC,CAAC,CAAC,cAAc,CAAE,IAAI,CAAE,CAAA;QAC9E,CAAC;QAED,MAAM,CAAC,MAAM;YACZ,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAA;QACvB,CAAC;QAED,MAAM,CAAC,CAAE,eAAe,CAAE;YACzB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAA;QACvB,CAAC;QAED,UAAU,KAAK,CAAC;QAChB,MAAM,CAAC,UAAU,KAAK,CAAC;QAEvB,CAAE,MAAM,CAAC,OAAO,CAAE;YACjB,IAAI,CAAC,UAAU,EAAE,CAAA;QAClB,CAAC;QAED,0CAA0C;QAC1C,8DAA8D;QAC9D,GAAG;QAEH,QAAQ;YACP,OAAO,IAAI,CAAE,MAAM,CAAC,WAAW,CAAE,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAA;QAClE,CAAC;;IAvDW,cAAY,eA6DxB,CAAA;AACF,CAAC,EAlES,CAAC,KAAD,CAAC,QAkEV;;;;AClED,IAAU,CAAC,CA6BV;AA7BD,WAAU,CAAC;IAEV,MAAa,eAAgB,SAAQ,YAAY;QAMxC;QAJR,MAAM,CAAC,OAAO,GAAG,IAA4B,CAAA;QAC7C,SAAS,GAAG,KAAK,CAAA;QAEjB,YACQ,IAAgB;YAEvB,KAAK,EAAE,CAAA;YAFA,SAAI,GAAJ,IAAI,CAAY;YAIvB,IAAI,CAAC,eAAe,CAAC,OAAO;gBAAG,eAAe,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAE,GAAE,EAAE;oBACpF,eAAe,CAAC,OAAO,GAAG,IAAI,CAAA;gBAC/B,CAAC,CAAE,CAAA;YAEH,eAAe,CAAC,OAAO,CAAC,IAAI,CAAE,GAAE,EAAE;gBACjC,IAAI,IAAI,CAAC,SAAS;oBAAG,OAAM;gBAC3B,IAAI,EAAE,CAAA;YACP,CAAC,CAAE,CAAA;QAEJ,CAAC;QAED,UAAU;YACT,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QACtB,CAAC;;IAvBW,iBAAe,kBAyB3B,CAAA;AAEF,CAAC,EA7BS,CAAC,KAAD,CAAC,QA6BV;;;;AC7BD,IAAU,CAAC,CAUV;AAVD,WAAU,CAAC;IAEV,SAAgB,iBAAiB,CAAE,GAAQ;QAC1C,IAAI,CAAC;YACJ,OAAO,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,UAAU,CAAA;QACzF,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,KAAK,CAAA;QACb,CAAC;IACF,CAAC;IANe,mBAAiB,oBAMhC,CAAA;AAEF,CAAC,EAVS,CAAC,KAAD,CAAC,QAUV;;;;ACVD,IAAU,CAAC,CAyVV;AAzVD,WAAU,CAAC;IAEV,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAwC,CAAA;IAEpE;;;;;;QAMI;IACJ,MAAsB,eAIpB,SAAQ,iBAAiB;QAyEhB;QACA;QAxEV,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QAElB,MAAM,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAsC,CAAA;QAC/D,MAAM,CAAC,OAAO,GAAG,IAAI,GAAG,EAAsC,CAAA;QAE9D,MAAM,CAAC,SAAS,GAA2B,IAAI,CAAA;QAC/C,MAAM,CAAC,IAAI;YAEV,IAAI,IAAI,CAAC,SAAS;gBAAG,OAAM;YAE3B,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAAE,GAAE,EAAE;gBAEzC,IAAI,CAAC;oBACJ,IAAI,CAAC,IAAI,EAAE,CAAA;gBACZ,CAAC;wBAAS,CAAC;oBACV,eAAe,CAAC,SAAS,GAAG,IAAI,CAAA;gBACjC,CAAC;YAEF,CAAC,CAAE,CAAA;QAEJ,CAAC;QAED,MAAM,CAAC,IAAI;YAEV,yBAAyB;YACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAG,CAAC;gBAC5B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAG,CAAC;oBACpC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAE,KAAK,CAAE,CAAA;oBAC7B,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;wBAAG,SAAQ;oBAChC,IAAI,KAAK,CAAC,MAAM,KAAK,gBAAgB,CAAC,KAAK;wBAAG,SAAQ;oBACtD,KAAK,CAAC,KAAK,EAAE,CAAA;gBACd,CAAC;YACF,CAAC;YAED,kBAAkB;YAClB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAG,CAAC;gBAE3B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAA;gBAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,CAAA;gBAEtB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAG,CAAC;oBAC7B,IAAI,CAAC,KAAK,CAAC,SAAS;wBAAG,SAAQ;oBAC/B,KAAK,CAAC,UAAU,EAAE,CAAA;gBACnB,CAAC;YAEF,CAAC;QAEF,CAAC;QAEM,KAAK,GAA+C,SAAgB,CAAA;QAE3E,IAAI,IAAI;YACP,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAE,CAAC,EAAG,IAAI,CAAC,QAAQ,CAAiB,CAAA;QAC3D,CAAC;QAED,MAAM;YACL,IAAI,iBAAiB,CAAE,IAAI,CAAC,KAAK,CAAE;gBAAG,OAAM;YAC5C,IAAI,IAAI,CAAC,KAAK,YAAY,KAAK;gBAAG,OAAM;YACxC,OAAO,IAAI,CAAC,KAAK,CAAA;QAClB,CAAC;QAED,IAAI,WAAW;YACd,OAAO,iBAAiB,CAAE,IAAI,CAAC,KAAK,CAAE,CAAA;QACvC,CAAC;QAED,KAAK;YACJ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAC7B,CAAC;QAED,YACC,EAAU,EACD,IAAgD,EAChD,IAAW,EACpB,IAAW;YAGX,KAAK,CAAE,EAAE,CAAE,CAAA;YALF,SAAI,GAAJ,IAAI,CAA4C;YAChD,SAAI,GAAJ,IAAI,CAAO;YAKpB,IAAI,IAAI;gBAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,GAAI,IAAI,CAAE,CAAA;YACrC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,EAAE,MAAM,IAAI,CAAC,CAAA;QAElD,CAAC;QAED,IAAI;YACH,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;YACpC,eAAe,CAAC,IAAI,EAAE,CAAA;YACtB,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,IAAI;YACH,eAAe,CAAC,OAAO,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;YACnC,eAAe,CAAC,IAAI,EAAE,CAAA;QACvB,CAAC;QAED,QAAQ;YACP,OAAO,IAAI,CAAE,MAAM,CAAC,WAAW,CAAE,CAAA;QAClC,CAAC;QAED,MAAM;YACL,OAAO,IAAI,CAAE,MAAM,CAAC,WAAW,CAAE,CAAA;QAClC,CAAC;QAED,CAAE,oBAAoB,CAAE;YAEvB,MAAM,MAAM,GAAG;gBACd,CAAE,gBAAgB,CAAC,KAAK,CAAE,EAAE,IAAI;gBAChC,CAAE,gBAAgB,CAAC,KAAK,CAAE,EAAE,IAAI;gBAChC,CAAE,gBAAgB,CAAC,KAAK,CAAE,EAAE,IAAI;gBAChC,CAAE,gBAAgB,CAAC,KAAK,CAAE,EAAE,IAAI;aAChC,CAAE,IAAI,CAAC,MAAM,CAAE,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAA;YAE1C,OAAO,mBAAmB,CAAE,EAAE,EAC7B,iBAAiB,CAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAE;gBACpC,CAAC,CAAC,qBAAqB,CAAE,MAAM,CAAE;gBACjC,CAAC,CAAC,qBAAqB,CAAE,IAAI,CAAE,MAAM,CAAC,WAAW,CAAE,EAAE,MAAM,CAAE,EAC9D,oBAAoB,CAAE,IAAI,CAAC,KAAK,CAAE,CAClC,CAAA;QAEF,CAAC;QACD,CAAE,oBAAoB,CAAE,KAAK,OAAO,IAAI,CAAA,CAAC,CAAC;QAE1C,IAAI,CAAC;YACJ,OAAO,CAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAW,CAAE,CAAC,GAAG,CAAC,CAAA;QAC9C,CAAC;QAED,IAAI,CAAE,KAAK,GAAG,gBAAgB,CAAC,KAAK;YACnC,IAAI,IAAI,CAAC,SAAS;gBAAG,IAAI,CAAC,IAAI,EAAE,CAAA;;gBAC3B,KAAK,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;QACzB,CAAC;QAED,KAAK;YAIJ,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,KAAK;gBAAG,OAAM;YACnD,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,KAAK;gBAAG,OAAM;YAEnD,KAAK,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,KAAK,EAAG,CAAC;gBAEpD,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAG,CAAC;oBACzD,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAoB,EAAE,KAAK,EAAE,CAAA;oBAC3C,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,KAAK;wBAAG,MAAM,KAAK,CAAA;gBACzD,CAAC;gBAED,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAA;gBACpC,OAAM;YAEP,CAAC;YAED,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;YAC1B,IAAI,MAAyB,CAAA;YAE7B,IAAI,CAAC;gBAEJ,QAAQ,IAAI,CAAC,QAAQ,EAAG,CAAC;oBACxB,KAAK,CAAC;wBAAE,MAAM,GAAI,IAAI,CAAC,IAAY,CAAC,IAAI,CAAE,IAAI,CAAC,IAAK,CAAE,CAAC;wBAAC,MAAK;oBAC7D,KAAK,CAAC;wBAAE,MAAM,GAAI,IAAI,CAAC,IAAY,CAAC,IAAI,CAAE,IAAI,CAAC,IAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,CAAC;wBAAC,MAAK;oBAC3E;wBAAS,MAAM,GAAI,IAAI,CAAC,IAAY,CAAC,IAAI,CAAE,IAAI,CAAC,IAAK,EAAE,GAAI,IAAI,CAAC,IAAI,CAAE,CAAC;wBAAC,MAAK;gBAC9E,CAAC;gBAED,IAAI,iBAAiB,CAAE,MAAM,CAAE,EAAG,CAAC;oBAElC,IAAI,QAAQ,CAAC,GAAG,CAAE,MAAM,CAAE,EAAG,CAAC;wBAC7B,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAE,MAAM,CAAG,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,CAAA;oBAC5C,CAAC;yBAAM,CAAC;wBAEP,MAAM,GAAG,GAAG,CAAE,GAAW,EAAE,EAAE;4BAC5B,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM;gCAAG,IAAI,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;4BAC3C,OAAO,GAAG,CAAA;wBACX,CAAC,CAAA;wBAED,QAAQ,CAAC,GAAG,CAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAC3C,MAAM,CAAC,IAAI,CAAE,GAAG,EAAE,GAAG,CAAE,EACvB,EAAE,UAAU,EAAI,MAAe,CAAC,UAAU,IAAI,CAAC,GAAE,EAAE,GAAE,CAAC,CAAC,EAAE,CACzD,CAAE,CAAA;wBACH,QAAQ,CAAC,GAAG,CAAE,MAAM,EAAE,MAAM,CAAE,CAAA;wBAE9B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAE,cAAe,IAAK,EAAE,CAAE,CAAA;wBACjD,MAAM,CAAC,cAAc,CAAE,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,GAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAE,CAAA;oBAEpE,CAAC;gBACF,CAAC;YAEF,CAAC;YAAC,OAAO,KAAU,EAAG,CAAC;gBAEtB,IAAI,KAAK,YAAY,KAAK,IAAI,iBAAiB,CAAE,KAAK,CAAE,EAAG,CAAC;oBAC3D,MAAM,GAAG,KAAK,CAAA;gBACf,CAAC;qBAAM,CAAC;oBACP,MAAM,GAAG,IAAI,KAAK,CAAE,MAAM,CAAE,KAAK,CAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAE,CAAA;gBACxD,CAAC;gBAED,IAAI,iBAAiB,CAAE,MAAM,CAAE,EAAG,CAAC;oBAElC,IAAI,QAAQ,CAAC,GAAG,CAAE,MAAM,CAAE,EAAG,CAAC;wBAC7B,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAE,MAAM,CAAG,CAAA;oBACjC,CAAC;yBAAM,CAAC;wBAEP,MAAM,GAAG,GAAG,CAAE,CAAM,EAAE,EAAE;4BACvB,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM;gCAAG,IAAI,CAAC,MAAM,EAAE,CAAA;4BACzC,OAAO,CAAC,CAAA;wBACT,CAAC,CAAA;wBAED,QAAQ,CAAC,GAAG,CAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAC3C,MAAM,CAAC,IAAI,CAAE,GAAG,EAAE,GAAG,CAAE,EACvB,EAAE,UAAU,EAAI,MAAe,CAAC,UAAU,IAAI,CAAC,GAAE,EAAE,GAAE,CAAC,CAAC,EAAE,CACzD,CAAE,CAAA;wBAEH,MAAM,KAAK,GAAG,IAAI,KAAK,CAAE,cAAe,IAAK,EAAE,CAAE,CAAA;wBACjD,MAAM,CAAC,cAAc,CAAE,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,GAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAE,CAAA;oBAEpE,CAAC;gBAEF,CAAC;YAEF,CAAC;YAED,IAAI,CAAE,iBAAiB,CAAE,MAAM,CAAE,EAAG,CAAC;gBACpC,IAAI,CAAC,SAAS,EAAE,CAAA;YACjB,CAAC;YAED,IAAI,CAAC,SAAS,CAAE,EAAE,CAAE,CAAA;YACpB,IAAI,CAAC,GAAG,CAAE,MAAM,CAAE,CAAA;YAElB,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,OAAO;YACN,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAA;YACpC,IAAI,CAAC,KAAK,EAAE,CAAA;QACb,CAAC;QAID;;;WAGG;QACH,IAAI;YAEH,IAAI,CAAC,eAAe,CAAC,IAAI,EAAG,CAAC;gBAC5B,OAAO,IAAI,CAAC,MAAM,EAAuB,CAAA;YAC1C,CAAC;YAED,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,KAAK,EAAE,CAAA;YAEZ,IAAI,IAAI,CAAC,KAAK,YAAY,KAAK,EAAG,CAAC;gBAClC,OAAO,gBAAgB,CAAE,IAAI,CAAC,KAAK,CAAE,CAAA;YACtC,CAAC;YAED,IAAI,iBAAiB,CAAE,IAAI,CAAC,KAAK,CAAE,EAAG,CAAC;gBACtC,OAAO,gBAAgB,CAAE,IAAI,CAAC,KAAK,CAAE,CAAA;YACtC,CAAC;YAED,OAAO,IAAI,CAAC,KAA0B,CAAA;QACvC,CAAC;QAED;;;WAGG;QACH,KAAK,CAAC,SAAS;YAEd,OAAO,IAAI,EAAG,CAAC;gBAEd,IAAI,CAAC,KAAK,EAAE,CAAA;gBAEZ,IAAI,IAAI,CAAC,KAAK,YAAY,KAAK,EAAG,CAAC;oBAClC,gBAAgB,CAAE,IAAI,CAAC,KAAK,CAAE,CAAA;gBAC/B,CAAC;gBAED,IAAI,CAAE,iBAAiB,CAAE,IAAI,CAAC,KAAK,CAAE;oBAAG,OAAO,IAAI,CAAC,KAAK,CAAA;gBAEzD,MAAM,OAAO,CAAC,IAAI,CAAC,CAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAE,CAAC,CAAA;gBAC/C,IAAI,CAAE,iBAAiB,CAAE,IAAI,CAAC,KAAK,CAAE;oBAAG,OAAO,IAAI,CAAC,KAAK,CAAA;gBAEzD,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,KAAK,EAAG,CAAC;oBAC7C,iCAAiC;oBACjC,MAAM,IAAI,OAAO,CAAE,GAAE,EAAE,GAAE,CAAC,CAAE,CAAA;gBAC7B,CAAC;YAEF,CAAC;QAEF,CAAC;QAED,KAAK;YACJ,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAA8C,CAAA;YAE5E,IAAI,CAAE,OAAO,CAAC,UAAU;gBAAE,OAAO,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAA;YAEtE,OAAO,OAAO,CAAA;QACf,CAAC;QAED,IAAI;YACH,OAAO,IAAI,OAAO,CAAU,IAAI,CAAC,EAAE;gBAClC,MAAM,GAAG,GAAG,IAAI,iBAAiB,CAAA;gBACjC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAA;gBAC3B,GAAG,CAAC,UAAU,CAAE,IAAI,CAAE,CAAA;gBACtB,GAAG,CAAC,SAAS,CAAE,IAAI,CAAE,CAAA;gBACrB,GAAG,CAAC,MAAM,GAAG,GAAE,EAAE;oBAChB,IAAI,CAAE,IAAI,CAAE,CAAA;oBACZ,UAAU,CAAE,GAAE,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,CAAE,CAAA;gBACpC,CAAC,CAAA;YACF,CAAC,CAAE,CAAA;QACJ,CAAC;QAED,UAAU;YAET,KAAK,CAAC,UAAU,EAAE,CAAA;YAElB,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAE,IAAI,CAAE,CAAA;YAEvC,IAAI,CAAE,iBAAiB,CAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAE;gBAAG,OAAM;YAEpD,IAAI,CAAC;gBACJ,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAA;YACxB,CAAC;YAAC,OAAO,MAAM,EAAE,CAAC;gBACjB,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC/B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAE,cAAe,IAAK,eAAe,CAAE,CAAA;oBAC9D,MAAM,CAAC,cAAc,CAAE,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,GAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAE,CAAA;gBACpE,CAAC;gBAED,gBAAgB,CAAC,MAAM,CAAC,CAAA;YACzB,CAAC;QAEF,CAAC;;IA1UoB,iBAAe,kBA4UpC,CAAA;AAEF,CAAC,EAzVS,CAAC,KAAD,CAAC,QAyVV;;;;ACzVD,IAAU,CAAC,CA6JV;AA7JD,WAAU,CAAC;IAEC,yBAAuB,GAAG,IAAI,OAAO,EAAoC,CAAA;IAEpF;;;OAGG;IACH,SAAgB,iBAAiB,CAAW,IAAW,EAAE,KAAY;QAEpE,IAAI,MAAM,CAAC,EAAE,CAAE,IAAI,EAAG,KAAK,CAAE;YAAG,OAAO,IAAI,CAAA;QAE3C,IAAI,IAAI,KAAK,IAAI;YAAG,OAAO,KAAK,CAAA;QAChC,IAAI,KAAK,KAAK,IAAI;YAAG,OAAO,KAAK,CAAA;QAEjC,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAG,OAAO,KAAK,CAAA;QAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAG,OAAO,KAAK,CAAA;QAE5C,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,CAAE,IAAW,CAAE,CAAA;QACxD,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,CAAE,KAAY,CAAE,CAAA;QAE1D,IAAI,UAAU,KAAK,WAAW;YAAG,OAAO,KAAK,CAAA;QAE7C,IAAI,IAAI,YAAY,OAAO;YAAG,OAAO,MAAM,CAAC,EAAE,CAAE,IAAI,CAAC,OAAO,EAAE,EAAI,KAAc,CAAC,SAAS,CAAC,EAAE,CAAE,CAAA;QAC/F,IAAI,IAAI,YAAY,MAAM;YAAG,OAAO,MAAM,CAAC,EAAE,CAAE,IAAI,CAAC,OAAO,EAAE,EAAI,KAAc,CAAC,SAAS,CAAC,EAAE,CAAE,CAAA;QAC9F,IAAI,IAAI,YAAY,MAAM;YAAG,OAAO,MAAM,CAAC,EAAE,CAAE,IAAI,CAAC,OAAO,EAAE,EAAI,KAAc,CAAC,SAAS,CAAC,EAAE,CAAE,CAAA;QAC9F,IAAI,IAAI,YAAY,IAAI;YAAG,OAAO,MAAM,CAAC,EAAE,CAAE,IAAI,CAAC,OAAO,EAAE,EAAI,KAAc,CAAC,SAAS,CAAC,EAAE,CAAE,CAAA;QAC5F,IAAI,IAAI,YAAY,MAAM;YAAG,OAAO,IAAI,CAAC,MAAM,KAAM,KAAa,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,KAAM,KAAa,CAAC,KAAK,CAAA;QAChH,IAAI,IAAI,YAAY,KAAK;YAAG,OAAO,IAAI,CAAC,OAAO,KAAM,KAAa,CAAC,OAAO,IAAI,iBAAiB,CAAE,IAAI,CAAC,KAAK,EAAG,KAAa,CAAC,KAAK,CAAE,CAAA;QAEnI,IAAI,UAAU,GAAG,EAAA,uBAAuB,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;QACpD,IAAI,UAAU,EAAG,CAAC;YAEjB,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAE,KAAK,CAAE,CAAA;YAC3C,IAAI,OAAO,WAAW,KAAK,SAAS;gBAAG,OAAO,WAAW,CAAA;QAE1D,CAAC;aAAM,CAAC;YAEP,UAAU,GAAG,IAAI,OAAO,EAAmB,CAAA;YAC3C,EAAA,uBAAuB,CAAC,GAAG,CAAE,IAAI,EAAG,UAAU,CAAE,CAAA;QAEjD,CAAC;QAED,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAE5B,IAAI,MAAgB,CAAA;QAEpB,IAAI,CAAC;YAEJ,IAAI,CAAC,UAAU;gBAAG,MAAM,GAAG,YAAY,CAAE,IAAI,EAAE,KAAY,CAAE,CAAA;iBACxD,IAAI,CAAC,OAAO,CAAC,cAAc,CAAE,UAAU,CAAE;gBAAG,MAAM,GAAG,YAAY,CAAE,IAAI,EAAE,KAAY,CAAE,CAAA;iBACvF,IAAI,MAAM,CAAC,WAAW,IAAI,IAAI;gBAAG,MAAM,GAAG,iBAAiB,CAAE,IAAI,EAAE,KAAK,CAAE,CAAA;iBAC1E,IAAI,KAAK,CAAC,OAAO,CAAE,IAAI,CAAE;gBAAG,MAAM,GAAG,aAAa,CAAE,IAAI,EAAE,KAAY,CAAE,CAAA;iBACxE,IAAI,IAAI,YAAY,GAAG;gBAAG,MAAM,GAAG,WAAW,CAAE,IAAI,EAAE,KAAY,CAAE,CAAA;iBACpE,IAAI,IAAI,YAAY,GAAG;gBAAG,MAAM,GAAG,WAAW,CAAE,IAAI,EAAE,KAAY,CAAE,CAAA;iBACpE,IAAI,WAAW,CAAC,MAAM,CAAE,IAAI,CAAE;gBAAG,MAAM,GAAG,cAAc,CAAE,IAAI,EAAE,KAAY,CAAE,CAAA;iBAC9E,IAAI,MAAM,CAAC,QAAQ,IAAI,IAAI;gBAAG,MAAM,GAAG,gBAAgB,CAAI,IAAa,CAAE,MAAM,CAAC,QAAQ,CAAE,EAAE,EAAI,KAAc,CAAE,MAAM,CAAC,QAAQ,CAAE,EAAE,CAAE,CAAA;;gBACtI,MAAM,GAAG,KAAK,CAAA;QAEpB,CAAC;gBAAS,CAAC;YACV,UAAU,CAAC,GAAG,CAAE,KAAK,EAAG,MAAM,CAAE,CAAA;QACjC,CAAC;QAED,OAAO,MAAM,CAAA;IACd,CAAC;IAxDe,mBAAiB,oBAwDhC,CAAA;IAED,SAAS,aAAa,CAAyB,IAAW,EAAE,KAAY;QAEvE,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAA;QACvB,IAAI,GAAG,KAAK,KAAK,CAAC,MAAM;YAAG,OAAO,KAAK,CAAA;QAEvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAG,CAAC;YAC/B,IAAI,CAAC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,KAAK,CAAC,CAAC,CAAC,CAAE;gBAAG,OAAO,KAAK,CAAA;QAC5D,CAAC;QAED,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,SAAS,cAAc,CAAE,IAAqB,EAAE,KAAsB;QAErE,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAA;QAC3B,IAAI,GAAG,KAAK,KAAK,CAAC,UAAU;YAAG,OAAO,KAAK,CAAA;QAE3C,IAAI,IAAI,YAAY,QAAQ;YAAG,OAAO,cAAc,CACnD,IAAI,UAAU,CAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAE,EAC/D,IAAI,UAAU,CAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAE,CAClE,CAAA;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAG,CAAC;YAC/B,IAAK,IAAY,CAAC,CAAC,CAAC,KAAM,KAAa,CAAC,CAAC,CAAC;gBAAG,OAAO,KAAK,CAAA;QAC1D,CAAC;QAED,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,SAAS,gBAAgB,CACxB,IAAW,EACX,KAAY;QAGZ,OAAO,IAAI,EAAG,CAAC;YAEd,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YAC7B,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;YAE/B,IAAI,SAAS,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI;gBAAG,OAAO,KAAK,CAAA;YACrD,IAAI,SAAS,CAAC,IAAI;gBAAG,MAAK;YAE1B,IAAI,CAAC,iBAAiB,CAAE,SAAS,CAAC,KAAK,EAAG,UAAU,CAAC,KAAK,CAAE;gBAAG,OAAO,KAAK,CAAA;QAE5E,CAAC;QAED,OAAO,IAAI,CAAA;IAEZ,CAAC;IAED,SAAS,WAAW,CAA4B,IAAW,EAAE,KAAY;QACxE,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;YAAG,OAAO,KAAK,CAAA;QAC3C,OAAO,gBAAgB,CAAE,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,CAAE,CAAA;IACzD,CAAC;IAED,SAAS,WAAW,CAAgB,IAAuB,EAAG,KAAwB;QACrF,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;YAAG,OAAO,KAAK,CAAA;QAC3C,OAAO,gBAAgB,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAE;eAChD,gBAAgB,CAAE,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,CAAE,CAAA;IACtD,CAAC;IAED,SAAS,YAAY,CAAE,IAAQ,EAAE,KAAS;QAEzC,MAAM,SAAS,GAAG,MAAM,CAAC,mBAAmB,CAAE,IAAI,CAAE,CAAA;QACpD,MAAM,UAAU,GAAG,MAAM,CAAC,mBAAmB,CAAE,KAAK,CAAE,CAAA;QAEtD,IAAI,CAAC,aAAa,CAAE,SAAS,EAAE,UAAU,CAAE;YAAG,OAAO,KAAK,CAAA;QAE1D,KAAK,IAAI,GAAG,IAAI,SAAS,EAAG,CAAC;YAC5B,IAAI,CAAC,iBAAiB,CAAI,IAAa,CAAE,GAAG,CAAE,EAAI,KAAc,CAAE,GAAG,CAAE,CAAE;gBAAG,OAAO,KAAK,CAAA;QACzF,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,qBAAqB,CAAE,IAAI,CAAE,CAAA;QACtD,MAAM,UAAU,GAAG,MAAM,CAAC,qBAAqB,CAAE,KAAK,CAAE,CAAA;QAExD,IAAI,CAAC,aAAa,CAAE,SAAS,EAAE,UAAU,CAAE;YAAG,OAAO,KAAK,CAAA;QAE1D,KAAK,IAAI,GAAG,IAAI,SAAS,EAAG,CAAC;YAC5B,IAAI,CAAC,iBAAiB,CAAI,IAAa,CAAE,GAAG,CAAE,EAAI,KAAc,CAAE,GAAG,CAAE,CAAE;gBAAG,OAAO,KAAK,CAAA;QACzF,CAAC;QAED,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,SAAS,iBAAiB,CAAE,IAAQ,EAAE,KAAS;QAC9C,OAAO,MAAM,CAAC,EAAE,CACd,IAAY,CAAE,MAAM,CAAC,WAAW,CAAE,CAAE,SAAS,CAAE,EAC/C,KAAa,CAAE,MAAM,CAAC,WAAW,CAAE,CAAE,SAAS,CAAE,CACjD,CAAA;IACF,CAAC;AAEF,CAAC,EA7JS,CAAC,KAAD,CAAC,QA6JV;;;;AC7JD,IAAU,CAAC,CAoEV;AApED,WAAU,CAAC;IA0CV,6FAA6F;IAC7F,SAAgB,mBAAmB,CAElC,KAA2B;QAG3B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAA;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAA;QAElC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAA;QACzB,IAAI,MAAM,GAAG,KAAK,CAAA;QAElB,KAAK,CAAC,IAAI,CAAE,GAAE,EAAE;YACf,MAAM,GAAG,IAAI,CAAA;YACb,IAAI,CAAC,cAAc,CAAC,IAAI,CAAE,IAAI,EAAG,KAAK,CAAE,CAAA;QACzC,CAAC,CAAE,CAAA;QAEH,OAAO,GAAE,EAAE;YACV,IAAI,MAAM;gBAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAA;YACpC,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI;gBAAG,KAAK,CAAC,MAAM,GAAG,IAAI,CAAA;QAC9C,CAAC,CAAA;IAEF,CAAC;IArBe,qBAAmB,sBAqBlC,CAAA;IAEU,iBAAe,GAAG,EAAqB,CAAA;AAEnD,CAAC,EApES,CAAC,KAAD,CAAC,QAoEV;;;;ACpED,IAAU,CAAC,CA8EV;AA9ED,WAAU,CAAC;IAEV,gCAAgC;IAChC,MAAa,SAAU,SAAQ,YAAY;QAGhC;QACA;QACA;QACA;QACA;QALV,YACU,GAAW,EACX,MAAc,EACd,GAAW,EACX,GAAW,EACX,MAAc;YAEvB,KAAK,EAAE,CAAA;YANE,QAAG,GAAH,GAAG,CAAQ;YACX,WAAM,GAAN,MAAM,CAAQ;YACd,QAAG,GAAH,GAAG,CAAQ;YACX,QAAG,GAAH,GAAG,CAAQ;YACX,WAAM,GAAN,MAAM,CAAQ;YAGvB,IAAI,CAAE,MAAM,CAAC,WAAW,CAAE,GAAG,IAAI,CAAC,GAAG,GAAG,CAAE,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAE,CAAA;QAChG,CAAC;QAED,yCAAyC;QACzC,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAErC,4CAA4C;QAC5C,MAAM,CAAC,KAAK,CAAE,GAAW,EAAE,MAAM,GAAG,EAAE;YACrC,OAAO,IAAI,SAAS,CAAE,GAAG,EAAG,MAAM,EAAE,CAAC,EAAG,CAAC,EAAG,CAAC,CAAE,CAAA;QAChD,CAAC;QAED,0CAA0C;QAC1C,MAAM,CAAC,GAAG,CAAE,GAAW,EAAG,MAAc;YACvC,OAAO,IAAI,SAAS,CAAE,GAAG,EAAG,MAAM,EAAE,CAAC,EAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAG,CAAC,CAAE,CAAA;QAChE,CAAC;QAED,0CAA0C;QAC1C,MAAM,CAAC,MAAM,CAAE,GAAW,EAAG,MAAc;YAC1C,OAAO,IAAI,SAAS,CAAE,GAAG,EAAG,MAAM,EAAE,CAAC,EAAG,CAAC,EAAG,MAAM,CAAC,MAAM,CAAE,CAAA;QAC5D,CAAC;QAED,QAAQ;YACP,OAAO,IAAI,CAAE,MAAM,CAAC,WAAW,CAAE,CAAA;QAClC,CAAC;QAED,MAAM;YACL,OAAO;gBACN,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,MAAM,EAAE,IAAI,CAAC,MAAM;aACnB,CAAA;QACF,CAAC;QAED,qCAAqC;QACrC,KAAK,CAAE,OAAgB,EAAG,KAAK,GAAG,KAAK;YACtC,OAAO,IAAI,KAAK,CAAE,GAAG,OAAO,KAAK,IAAI,GAAG,CAAE,CAAA;QAC3C,CAAC;QAED,mCAAmC;QACnC,IAAI,CAAE,GAAY,EAAG,GAAY,EAAG,MAAe;YAClD,OAAO,IAAI,SAAS,CAAE,IAAI,CAAC,GAAG,EAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAG,GAAG,EAAG,MAAM,CAAE,CAAA;QACnE,CAAC;QAED,wCAAwC;QACxC,KAAK,CAAE,MAAM,GAAG,CAAC;YAChB,OAAO,IAAI,SAAS,CAAE,IAAI,CAAC,GAAG,EAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAG,MAAM,CAAE,CAAA;QAC3F,CAAC;QAED,4CAA4C;QAC5C,KAAK,CAAE,KAAa,EAAE,GAAG,GAAG,CAAC,CAAC;YAC7B,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAA;YAErB,IAAI,KAAK,GAAG,CAAC;gBAAG,KAAK,IAAI,GAAG,CAAA;YAC5B,IAAI,GAAG,GAAG,CAAC;gBAAG,GAAG,IAAI,GAAG,CAAA;YAExB,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,GAAG;gBAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAE,IAAI,CAAC,KAAK,CAAE,gBAAgB,KAAK,gBAAgB,EAAE,UAAU,CAAE,CAAE,CAAA;YACjH,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG;gBAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAE,IAAI,CAAC,KAAK,CAAE,cAAc,GAAG,gBAAgB,EAAE,UAAU,CAAE,CAAE,CAAA;YACzG,IAAI,GAAG,GAAG,KAAK;gBAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAE,IAAI,CAAC,KAAK,CAAE,cAAc,GAAG,kCAAkC,EAAE,UAAU,CAAE,CAAE,CAAA;YAElH,OAAO,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,GAAG,EAAG,IAAI,CAAC,GAAG,GAAG,KAAK,EAAG,GAAG,GAAG,KAAK,CAAE,CAAA;QAC9D,CAAC;;IAvEW,WAAS,YAyErB,CAAA;AAEF,CAAC,EA9ES,CAAC,KAAD,CAAC,QA8EV;;;;AC9ED,IAAU,CAAC,CAiDV;AAjDD,WAAU,CAAC;IAEV,gDAAgD;IAChD,SAAgB,oBAAoB,CAEnC,IAAgB;QAGhB,IAAI,MAAM,GAAG,EAAc,CAAA;QAE3B,SAAS,IAAI,CACZ,IAAgB,EAChB,MAAM,GAAG,EAAE;YAGX,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAG,CAAC;gBAEvB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAG,CAAC;oBACrB,MAAM,GAAG,IAAI,CAAC;gBACf,CAAC;gBAED,MAAM,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,CAAE,CAAA;gBAExB,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,EAAG,CAAC;oBAC5B,MAAM,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;oBAClB,IAAI,CAAE,IAAI,CAAC,IAAI,CAAE,CAAC,CAAE,EAAE,MAAM,CAAE,CAAA;oBAC9B,OAAM;gBACP,CAAC;gBAED,MAAM,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;YAEpB,CAAC;iBAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAG,CAAC;gBAEhD,MAAM,CAAC,IAAI,CAAE,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAE,CAAA;YAExC,CAAC;YAED,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAG,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAE,MAAM,CAAE,CAAA;gBACrB,IAAI,CAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAE,CAAA;YAC3B,CAAC;QAEF,CAAC;QAED,IAAI,CAAE,IAAI,CAAE,CAAA;QAEZ,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACvB,CAAC;IA5Ce,sBAAoB,uBA4CnC,CAAA;AAEF,CAAC,EAjDS,CAAC,KAAD,CAAC,QAiDV;;;;ACjDD,IAAU,CAAC,CAMV;AAND,WAAU,CAAC;IAEV,SAAgB,UAAU,CAAW,KAAgC;QACpE,OAAO,CAAE,KAAK,IAAI,IAAI,CAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,KAAK,CAAE,CAAA;IAC1C,CAAC;IAFe,YAAU,aAEzB,CAAA;AAEF,CAAC,EANS,CAAC,KAAD,CAAC,QAMV;;;;ACND,IAAU,CAAC,CA4SV;AA5SD,WAAU,CAAC;IAkBV;;;;OAIG;IACH,MAAa,UAAW,SAAQ,MAAM;QAK3B;QAGA;QAGA;QAGA;QAZV;QAEC,uDAAuD;QAC9C,IAAa;QAEtB,mDAAmD;QAC1C,KAAc;QAEvB,kBAAkB;QACT,IAA4B;QAErC,2CAA2C;QAClC,IAAgB;YAGzB,KAAK,EAAE,CACN;YAbQ,SAAI,GAAJ,IAAI,CAAS;YAGb,UAAK,GAAL,KAAK,CAAS;YAGd,SAAI,GAAJ,IAAI,CAAwB;YAG5B,SAAI,GAAJ,IAAI,CAAY;YAIvB,IAAY,CAAE,MAAM,CAAC,WAAW,CAAE,GAAG,IAAI,IAAI,IAAI,GAAG,KAAK,CAAA;QAC5D,CAAC;QAED,6BAA6B;QAC7B,MAAM,CAAC,IAAI,CACV,IAA4B,EAC5B,IAAI,GAAG,SAAS,CAAC,OAAO;YAExB,OAAO,IAAI,UAAU,CAAE,EAAE,EAAG,EAAE,EAAG,IAAI,EAAG,IAAI,CAAE,CAAA;QAC/C,CAAC;QAED,yCAAyC;QACzC,IAAI,CACH,IAA4B;YAE5B,OAAO,UAAU,CAAC,IAAI,CAAE,IAAI,EAAG,IAAI,CAAC,IAAI,CAAE,CAAA;QAC3C,CAAC;QAED,sCAAsC;QACtC,MAAM,CAAC,IAAI,CACV,KAAc,EACd,OAAO,EAA2B,EAClC,IAAI,GAAG,SAAS,CAAC,OAAO;YAGxB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAE,IAAI,CAAE,CAAA;YAElC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAG,CAAC;gBAExB,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,GAAG,EAAG,IAAI,CAAC,GAAG,EAAG,CAAC,CAAE,CAAA;gBAEnD,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAE,KAAK,CAAC,EAAE;oBAChC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAE,KAAK,CAAC,MAAM,CAAE,CAAA;oBACzC,OAAO,IAAI,UAAU,CAAE,EAAE,EAAG,KAAK,EAAG,EAAE,EAAG,QAAQ,CAAE,CAAA;gBACpD,CAAC,CAAE,CAAA;gBAEH,IAAI,GAAG,CAAE,GAAI,IAAI,EAAG,GAAI,IAAI,CAAE,CAAA;gBAE9B,KAAK,GAAG,EAAE,CAAA;YAEX,CAAC;YAED,OAAO,IAAI,UAAU,CAAE,EAAE,EAAG,KAAK,EAAG,IAAI,EAAG,IAAI,CAAE,CAAA;QAElD,CAAC;QAED,mCAAmC;QACnC,IAAI,CACH,KAAc,EACd,OAAO,EAA2B;YAElC,OAAO,UAAU,CAAC,IAAI,CAAE,KAAK,EAAG,IAAI,EAAG,IAAI,CAAC,IAAI,CAAE,CAAA;QACnD,CAAC;QAED,yBAAyB;QACzB,MAAM,CAAC,MAAM,CACZ,IAAa,EACb,OAAO,EAA2B,EAClC,IAAI,GAAG,SAAS,CAAC,OAAO;YAGxB,IAAI,WAAW,CAAC,IAAI,CAAE,IAAI,CAAE,EAAG,CAAC;gBAC/B,EAAE,CAAC,SAAS,CAAE,IAAI,CAAC,KAAK,CAAE,cAAe,IAAI,CAAC,SAAS,CAAE,IAAI,CAAG,EAAE,CAAE,CAAE,CAAA;YACvE,CAAC;YAED,OAAO,IAAI,UAAU,CAAE,IAAI,EAAG,EAAE,EAAG,IAAI,EAAG,IAAI,CAAE,CAAA;QAEjD,CAAC;QAED,yCAAyC;QACzC,MAAM,CACL,IAAa,EACb,OAAO,EAA2B;YAElC,OAAO,UAAU,CAAC,MAAM,CAAE,IAAI,EAAG,IAAI,EAAG,IAAI,CAAC,IAAI,CAAE,CAAA;QACpD,CAAC;QAED,6DAA6D;QAC7D,KAAK,CAAE,IAA4B,EAAE,IAAI,GAAG,IAAI,CAAC,IAAI;YACpD,OAAO,IAAI,UAAU,CAAE,IAAI,CAAC,IAAI,EAAG,IAAI,CAAC,KAAK,EAAG,IAAI,EAAG,IAAI,CAAE,CAAA;QAC9D,CAAC;QAED,sCAAsC;QACtC,IAAI;YAEH,IAAI,MAAM,GAAc,EAAE,CAAA;YAE1B,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAG,CAAC;gBAC5B,IAAI,GAAG,CAAC,IAAI;oBAAG,SAAQ;gBACvB,MAAM,CAAC,IAAI,CAAE,GAAG,CAAC,KAAK,CAAE,CAAA;YACzB,CAAC;YAED,OAAO,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;QAExC,CAAC;QAED,0BAA0B;QAC1B,6CAA6C;QAC7C,MAAM,CAAC,UAAU,CAAE,GAAY,EAAG,GAAG,GAAG,SAAS;YAChD,OAAO,EAAE,CAAC,sBAAsB,CAAE,GAAG,EAAE,GAAG,CAAE,CAAA;QAC7C,CAAC;QAED,iCAAiC;QACjC,QAAQ;YACP,OAAO,EAAE,CAAC,oBAAoB,CAAE,IAAI,CAAE,CAAA;QACvC,CAAC;QAED,kDAAkD;QAClD,MAAM,CAAE,KAAyB,EAAG,GAAG,IAAsB;YAC5D,OAAO,IAAI,CAAC,MAAM,CAAE,UAAU,CAAE,KAAK,CAAE,EAAE,GAAI,IAAI,CAAE,CAAC,CAAC,CAAC,CAAA;QACvD,CAAC;QAED,kDAAkD;QAClD,MAAM,CAAE,KAA6B,EAAG,GAAG,IAAsB;YAEhE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAG,OAAO,KAAK,CAAA;YAEpC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YACpB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAG,CAAC;gBAE/B,IAAI,QAAQ,GAAG,KAAK,CAAA;gBACpB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAE,CAAE,IAAI,EAAG,KAAK,EAAE,EAAE;oBAChD,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;wBAAG,OAAO,IAAI,CAAA;oBACpC,QAAQ,GAAG,IAAI,CAAA;oBACf,OAAO,IAAI,CAAC,MAAM,CAAE,KAAK,EAAG,GAAI,IAAI,CAAC,KAAK,CAAE,CAAC,CAAE,CAAE,CAAA;gBAClD,CAAC,CAAE,CAAC,MAAM,CAAE,OAAO,CAAE,CAAA;gBAErB,IAAI,CAAC,QAAQ,IAAI,KAAK,EAAG,CAAC;oBACzB,GAAG,CAAC,IAAI,CAAE,GAAI,IAAI,CAAC,MAAM,CAAE,IAAI,EAAG,EAAE,CAAE,CAAC,MAAM,CAAE,KAAK,EAAG,GAAI,IAAI,CAAC,KAAK,CAAE,CAAC,CAAE,CAAE,CAAE,CAAA;gBAC/E,CAAC;gBAED,OAAO,CAAE,IAAI,CAAC,KAAK,CAAE,GAAG,CAAE,CAAE,CAAA;YAE7B,CAAC;iBAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAG,CAAC;gBAEtC,MAAM,GAAG,GAAG,CAAE,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAE;qBAChD,MAAM,CAAE,KAAK,EAAG,GAAI,IAAI,CAAC,KAAK,CAAE,CAAC,CAAE,CAAE,CAAA;gBAEvC,OAAO,CAAE,IAAI,CAAC,KAAK,CAAC;wBACnB,GAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAE,CAAC,EAAE,IAAI,CAAE;wBAC9B,GAAI,GAAG;wBACP,GAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAE,IAAI,GAAG,CAAC,CAAE;qBAC/B,CAAC,CAAE,CAAA;YAEL,CAAC;iBAAM,CAAC;gBAEP,MAAM,IAAI,GAAG,CAAE,CAAE,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAE,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAE;qBACzE,OAAO,CAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAE,KAAK,EAAG,GAAI,IAAI,CAAC,KAAK,CAAE,CAAC,CAAE,CAAE,CAAE,CAAA;gBAE/D,OAAO,CAAE,IAAI,CAAC,KAAK,CAAE,IAAI,CAAE,CAAE,CAAA;YAE9B,CAAC;QAEF,CAAC;QAED,2BAA2B;QAC3B,MAAM,CAAE,GAAG,IAAsB;YAEhC,IAAI,IAAI,GAAG,CAAE,IAAkB,CAAE,CAAA;YAEjC,KAAK,MAAM,IAAI,IAAI,IAAI,EAAG,CAAC;gBAE1B,IAAI,CAAC,IAAI,CAAC,MAAM;oBAAG,MAAK;gBAExB,MAAM,IAAI,GAAG,IAAI,CAAA;gBACjB,IAAI,GAAG,EAAE,CAAA;gBAET,KAAK,IAAI,IAAI,IAAI,IAAI,EAAG,CAAC;oBAExB,QAAQ,OAAM,CAAE,IAAI,CAAE,EAAG,CAAC;wBAEzB,KAAK,QAAQ;4BAEZ,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,EAAG,CAAC;gCAC9B,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,EAAG,CAAC;oCACzB,IAAI,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;gCACnB,CAAC;4BACF,CAAC;4BAED,MAAK;wBAEN,KAAK,QAAQ;4BAEZ,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM;gCAAG,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAE,CAAA;4BAE5D,MAAM;wBAEP,OAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAE,GAAI,IAAI,CAAC,IAAI,CAAE,CAAA;oBACrC,CAAC;gBACF,CAAC;YACF,CAAC;YAED,OAAO,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;QAEzB,CAAC;QAED,oCAAoC;QACpC,MAAM,CAAE,IAAe,EAAG,KAAe;YAExC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAE,IAAI,CAAC,EAAE;gBAEpC,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAE,GAAG,IAAI,CAAE,CAAA;gBAElC,IAAI,KAAK,KAAK,SAAS,EAAG,CAAC;oBAC1B,OAAO,OAAO,CAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAE,CAAA;gBACpC,CAAC;qBAAM,CAAC;oBACP,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAE,CAAA;gBACxD,CAAC;YAEF,CAAC,CAAE,CAAA;YAEH,OAAO,IAAI,CAAC,KAAK,CAAE,GAAG,CAAE,CAAA;QAEzB,CAAC;QAED,SAAS,CACR,IAAgC,EAChC,UAAU,EAAa;YAEvB,IAAI,MAAM,GAAG,IAAI,CAAE,IAAI,CAAC,IAAI,CAAE,IAAI,IAAI,CAAE,EAAE,CAAE,CAAA;YAE5C,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,MAAM,CAAC,SAAS,CAAE,IAAI,CAAC,IAAoB,CAAE,EAAG,CAAC;gBAC1E,MAAM,GAAG,CAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;oBACnC,KAAK,CAAC,KAAK,CAAE,KAAK,CAAC,IAAI,CAAE,IAAI,EAAE,OAAO,CAAE,EAAE,OAAO,CAAC,IAAI,CAAE;iBACxD,CAAA;YACF,CAAC;YAED,IAAI,CAAC;gBACJ,OAAO,MAAM,CAAE,IAAI,EAAG,IAAI,EAAG,OAAQ,CAAE,CAAA;YACxC,CAAC;YAAC,OAAO,KAAU,EAAG,CAAC;gBACtB,KAAK,CAAC,OAAO,IAAI,KAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAE,GAAI,IAAI,CAAC,IAAK,EAAE,CAAA;gBACtD,gBAAgB,CAAE,KAAK,CAAE,CAAA;YAC1B,CAAC;QACF,CAAC;QAED,uDAAuD;QACvD,IAAI,CACH,IAAgC,EAChC,UAAU,EAAa;YAEvB,OAAS,EAA6B,CAAC,MAAM,CAC5C,GAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAE,CAC5D,CAAA;QAEF,CAAC;QAED,yCAAyC;QACzC,KAAK,CAAE,OAAgB,EAAG,KAAK,GAAG,KAAK;YACtC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAE,GAAI,OAAQ,KAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAE,EAAE,EAAG,KAAK,CAAE,CAAA;QACtE,CAAC;KAED;IA7QY,YAAU,aA6QtB,CAAA;IAED,MAAa,gBAAiB,SAAQ,UAAU;QAC/C;YACC,KAAK,CAAE,EAAE,EAAG,EAAE,EAAG,EAAE,EAAG,SAAS,CAAC,OAAO,CAAE,CAAA;QAC1C,CAAC;KACD;IAJY,kBAAgB,mBAI5B,CAAA;AAEF,CAAC,EA5SS,CAAC,KAAD,CAAC,QA4SV;;;;AC5SD,IAAU,CAAC,CAcV;AAdD,WAAU,CAAC;IAEV,4DAA4D;IAC5D,MAAa,iBAAkB,SAAQ,WAAW;QAEzC;QACA;QACA;QAHR,YACQ,MAAc,EACd,IAAY,EACZ,IAAe;YAEtB,KAAK,CAAC,GAAI,MAAO,KAAM,IAAK,KAAM,IAAI,CAAC,SAAS,CAAE,CAAC,EAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAE,CAAC,OAAO,CAAE,KAAK,EAAE,GAAG,CAAG,GAAI,EAAE,CAAC,MAAM,CAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAG,KAAM,IAAK,EAAE,CAAC,CAAA;YAJpI,WAAM,GAAN,MAAM,CAAQ;YACd,SAAI,GAAJ,IAAI,CAAQ;YACZ,SAAI,GAAJ,IAAI,CAAW;QAGvB,CAAC;KAED;IATY,mBAAiB,oBAS7B,CAAA;AAEF,CAAC,EAdS,CAAC,KAAD,CAAC,QAcV;;;;ACdD,IAAU,CAAC,CAqJV;AArJD,WAAU,CAAC;IAEV,sCAAsC;IACtC,SAAgB,sBAAsB,CAErC,GAAW,EACX,GAAG,GAAG,GAAG;QAGT,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAE,GAAG,EAAE,GAAG,CAAE,CAAA;QAEzC,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,CAAE,EAAE,EAAE,IAAI,CAAE,CAAA;QACtC,IAAI,KAAK,GAAG,CAAE,IAAI,CAAE,CAAA;QAEpB,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,UAAU,GAAG,CAAC,CAAA;QAEpC,OAAO,GAAG,CAAC,MAAM,GAAG,GAAG,EAAG,CAAC;YAE1B,IAAI,MAAM,GAAG,CAAC,CAAA;YACd,IAAI,UAAU,GAAG,GAAG,CAAA;YAEpB,GAAG,EAAE,CAAA;YAEL,cAAc;YACd,OAAO,GAAG,CAAC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAE,GAAG,CAAE,IAAI,IAAI,EAAG,CAAC;gBAChD,MAAM,EAAE,CAAA;gBACR,GAAG,EAAE,CAAA;YACN,CAAC;YAED,IAAI,CAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAG,CAAC;gBACzB,UAAU,GAAG,MAAM,CAAA;YACpB,CAAC;YAED,MAAM,IAAI,UAAU,CAAA;YAEpB,mBAAmB;YACnB,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,IAAI,KAAK,CAAC,MAAM,EAAG,CAAC;gBAE3C,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,UAAU,CAAE,CAAA;gBAEhD,kBAAkB;gBAClB,OAAO,GAAG,CAAC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAE,GAAG,CAAE,IAAI,IAAI,EAAG,CAAC;oBAChD,GAAG,EAAE,CAAA;gBACN,CAAC;gBAED,IAAI,MAAM,GAAG,CAAC,EAAG,CAAC;oBACjB,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,EAAG,CAAC;wBACvB,IAAI,CAAC,SAAS,CAAE,IAAI,IAAI,CAAC,iBAAiB,CACzC,cAAc,EACd,GAAG,CAAC,SAAS,CAAE,UAAU,EAAE,GAAG,CAAE,EAChC,EAAE,CACF,CAAE,CAAA;oBACJ,CAAC;gBACF,CAAC;qBAAM,CAAC;oBACP,IAAI,CAAC,SAAS,CAAE,IAAI,IAAI,CAAC,iBAAiB,CACzC,eAAe,EACf,GAAG,CAAC,SAAS,CAAE,UAAU,EAAE,GAAG,CAAE,EAChC,EAAE,CACF,CAAE,CAAA;gBACJ,CAAC;YAEF,CAAC;YAED,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,CAAA;YACzB,IAAI,MAAM,GAAG,KAAK,CAAE,MAAM,CAAE,CAAA;YAE5B,cAAc;YACd,OAAO,GAAG,CAAC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAE,GAAG,CAAE,IAAI,IAAI,IAAI,GAAG,CAAE,GAAG,CAAE,IAAI,IAAI,EAAG,CAAC;gBAEtE,qCAAqC;gBACrC,IAAI,WAAW,GAAG,GAAG,CAAA;gBACrB,OAAO,GAAG,CAAC,MAAM,GAAG,GAAG,IAAI,CAAE,GAAG,CAAE,GAAG,CAAE,IAAI,GAAG,IAAI,GAAG,CAAE,GAAG,CAAE,IAAI,IAAI,CAAE,EAAG,CAAC;oBACzE,GAAG,EAAE,CAAA;gBACN,CAAC;gBAED,IAAI,GAAG,GAAG,WAAW,EAAG,CAAC;oBACxB,IAAI,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAE,IAAI,EAAG,GAAG,CAAE,CAAA;oBACxC,IAAI,QAAQ,KAAK,CAAC,CAAC;wBAAG,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAA;oBAC3C,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,WAAW,GAAG,UAAU,GAAG,CAAC,EAAE,GAAG,GAAG,WAAW,CAAE,CAAA;oBAC5E,IAAI,CAAC,SAAS,CAAE,IAAI,IAAI,CAAC,iBAAiB,CACzC,uBAAuB,EACvB,GAAG,CAAC,SAAS,CAAE,UAAU,EAAE,QAAQ,CAAE,EACrC,EAAE,CACF,CAAE,CAAA;gBACJ,CAAC;gBAED,YAAY;gBACZ,IAAI,UAAU,GAAG,GAAG,CAAA;gBACpB,OACC,GAAG,CAAC,MAAM,GAAG,GAAG;oBAChB,GAAG,CAAE,GAAG,CAAE,IAAI,IAAI;oBAClB,GAAG,CAAE,GAAG,CAAE,IAAI,GAAG;oBACjB,GAAG,CAAE,GAAG,CAAE,IAAI,IAAI;oBAClB,GAAG,CAAE,GAAG,CAAE,IAAI,IAAI,EACjB,CAAC;oBACF,GAAG,EAAE,CAAA;gBACN,CAAC;gBACD,IAAI,GAAG,GAAG,UAAU,EAAG,CAAC;oBACvB,IAAI,IAAI,GAAG,IAAI,UAAU,CACxB,GAAG,CAAC,KAAK,CAAE,UAAU,EAAG,GAAG,CAAE,EAC7B,EAAE,EACF,EAAE,EACF,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,UAAU,GAAG,UAAU,GAAG,CAAC,EAAE,GAAG,GAAG,UAAU,CAAE,CAC/D,CAAA;oBACD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAoB,CAAA;oBAC/C,WAAW,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;oBACxB,MAAM,GAAG,IAAI,CAAA;gBACd,CAAC;gBAED,2BAA2B;gBAC3B,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAE,GAAG,CAAE,IAAI,GAAG,EAAG,CAAC;oBAC5C,GAAG,EAAE,CAAA;gBACN,CAAC;YACF,CAAC;YAED,YAAY;YACZ,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAE,GAAG,CAAE,IAAI,IAAI,EAAG,CAAC;gBAC7C,IAAI,UAAU,GAAG,GAAG,CAAA;gBACpB,OAAO,GAAG,CAAC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAE,GAAG,CAAE,IAAI,IAAI,EAAG,CAAC;oBAChD,GAAG,EAAE,CAAA;gBACN,CAAC;gBACD,IAAI,IAAI,GAAG,IAAI,UAAU,CACxB,EAAE,EACF,GAAG,CAAC,KAAK,CAAE,UAAU,GAAG,CAAC,EAAG,GAAG,CAAE,EACjC,EAAE,EACF,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,UAAU,GAAG,UAAU,GAAG,CAAC,EAAE,GAAG,GAAG,UAAU,GAAG,CAAC,CAAE,CACnE,CAAA;gBACD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAoB,CAAA;gBAC/C,WAAW,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;gBACxB,MAAM,GAAG,IAAI,CAAA;YACd,CAAC;YAED,0BAA0B;YAC1B,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAG,CAAC;gBAC7C,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,GAAG,GAAG,UAAU,GAAG,CAAC,EAAE,CAAC,CAAE,CAAA;gBACpD,IAAI,CAAC,SAAS,CAAE,IAAI,IAAI,CAAC,iBAAiB,CACzC,6BAA6B,EAC7B,GAAG,CAAC,SAAS,CAAE,UAAU,EAAE,GAAG,CAAC,MAAM,CAAE,EACvC,EAAE,CACF,CAAE,CAAA;YACJ,CAAC;YAED,KAAK,CAAC,IAAI,CAAE,MAAM,CAAE,CAAA;YACpB,GAAG,EAAE,CAAA;QACN,CAAC;QAED,OAAO,IAAI,CAAA;IACZ,CAAC;IAhJe,wBAAsB,yBAgJrC,CAAA;AAEF,CAAC,EArJS,CAAC,KAAD,CAAC,QAqJV;;;;ACrJD,IAAU,CAAC,CA8BV;AA9BD,WAAU,CAAC;IAEV,SAAgB,iBAAiB,CAChC,KAAuB,EACvB,IAA0D;QAG1D,MAAM,EAAE,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAE,CAAO,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAEpF,IAAI,KAAK,GAAG,EAAY,CAAA;QACxB,MAAM,MAAM,GAAG,EAAE,CAAA;QAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAG,CAAC;YAExC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YAErB,IAAI,EAAE,CAAE,IAAI,EAAE,CAAC,CAAE,EAAG,CAAC;gBACpB,IAAI,KAAK,CAAC,MAAM;oBAAG,MAAM,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;gBACvC,KAAK,GAAG,EAAE,CAAA;YACX,CAAC;YAED,KAAK,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;QAEnB,CAAC;QAED,IAAI,KAAK,CAAC,MAAM;YAAG,MAAM,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;QAEvC,OAAO,MAAM,CAAA;IACd,CAAC;IA1Be,mBAAiB,oBA0BhC,CAAA;AAEF,CAAC,EA9BS,CAAC,KAAD,CAAC,QA8BV;;;;AC9BD,IAAU,CAAC,CA+DV;AA/DD,WAAU,CAAC;IAEV,SAAgB,oBAAoB,CAAE,IAAS,EAAE,IAAI,GAAG,SAAS,CAAC,OAAO;QAExE,IAAI,OAAO,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAG,CAAC;YAC7E,OAAO,IAAI,UAAU,CAAE,MAAM,CAAE,IAAI,CAAE,EAAG,EAAE,EAAG,EAAE,EAAG,IAAI,CAAE,CAAA;QACzD,CAAC;QAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAG,CAAC;YAC/B,OAAO,UAAU,CAAC,IAAI,CAAE,IAAI,EAAG,EAAE,EAAE,IAAI,CAAE,CAAA;QAC1C,CAAC;QAED,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,UAAU,EAAG,CAAC;YACxC,OAAO,oBAAoB,CAAE,IAAI,CAAC,MAAM,EAAE,CAAE,CAAA;QAC7C,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAE,IAAI,CAAE,EAAG,CAAC;YAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAE,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAE,IAAI,EAAG,IAAI,CAAE,CAAE,CAAA;YACnE,OAAO,IAAI,UAAU,CAAE,GAAG,EAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAE,CAAA;QAC7C,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,CAAE,IAAI,CAAE,EAAG,CAAC;YACjC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAE,CAAA;YAC3E,MAAM,KAAK,GAAG,CAAE,GAAI,GAAG,CAAE,CAAC,GAAG,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAE,CAAC,EAAE,GAAG,CAAE,CAAE,CAAA;YACrF,MAAM,GAAG,GAAG,iBAAiB,CAAE,KAAK,EAAE,CAAC,CAAE,CAAC,GAAG,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;YAC9E,OAAO,UAAU,CAAC,IAAI,CAAE,GAAG,EAAG,EAAE,EAAE,IAAI,CAAE,CAAA;QACzC,CAAC;QAED,IAAI,IAAI,YAAY,IAAI,EAAG,CAAC;YAC3B,OAAO,IAAI,UAAU,CAAE,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,EAAG,EAAE,EAAG,IAAI,CAAE,CAAA;QAC5D,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAG,CAAC;YAClD,OAAO,UAAU,CAAC,IAAI,CAAE,IAAI,CAAC,QAAQ,EAAE,EAAG,EAAE,EAAE,IAAI,CAAE,CAAA;QACrD,CAAC;QAED,IAAI,IAAI,YAAY,KAAK,EAAG,CAAC;YAC5B,MAAM,EAAE,IAAI,EAAG,OAAO,EAAG,KAAK,EAAE,GAAG,IAAI,CAAA;YACvC,IAAI,GAAG,EAAE,GAAI,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;QAC1C,CAAC;QAED,MAAM,GAAG,GAAG,EAAkB,CAAA;QAE9B,KAAK,IAAI,GAAG,IAAI,IAAI,EAAG,CAAC;YAEvB,MAAM,GAAG,GAAG,IAAI,CAAE,GAAG,CAAE,CAAA;YAEvB,IAAI,GAAG,KAAK,SAAS;gBAAG,SAAQ;YAEhC,MAAM,MAAM,GAAG,oBAAoB,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;YAEhD,IAAI,eAAe,CAAC,IAAI,CAAE,GAAG,CAAE,EAAG,CAAC;gBAClC,GAAG,CAAC,IAAI,CAAE,IAAI,UAAU,CAAE,GAAG,EAAE,EAAE,EAAE,CAAE,MAAM,CAAE,EAAE,IAAI,CAAE,CAAE,CAAA;YACxD,CAAC;iBAAM,CAAC;gBACP,GAAG,CAAC,IAAI,CAAE,UAAU,CAAC,IAAI,CAAE,GAAG,EAAE,CAAE,MAAM,CAAE,EAAE,IAAI,CAAE,CAAE,CAAA;YACrD,CAAC;QAEF,CAAC;QAED,OAAO,IAAI,UAAU,CAAE,GAAG,EAAG,EAAE,EAAE,GAAG,EAAG,IAAI,CAAE,CAAA;IAE9C,CAAC;IA3De,sBAAoB,uBA2DnC,CAAA;AAEF,CAAC,EA/DS,CAAC,KAAD,CAAC,QA+DV;;;;AC/DD,IAAU,CAAC,CAqDV;AArDD,WAAU,CAAC;IAEV,8EAA8E;IAC9E,MAAa,eAAe;QAE3B,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;QAChC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,CAAC,EAAE,EAAE,CAAE,CAAA;QAChC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAE,CAAC,EAAE,EAAE,CAAE,CAAA;QAClC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAE,CAAC,EAAE,EAAE,CAAE,CAAA;QACrC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAE,CAAC,EAAE,EAAE,CAAE,CAAA;QACnC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAE,CAAC,EAAE,EAAE,CAAE,CAAA;QAClC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAE,CAAC,EAAE,EAAE,CAAE,CAAA;QAElC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,EAAE,EAAE,EAAE,CAAE,CAAA;QACjC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,EAAE,EAAE,EAAE,CAAE,CAAA;QAChC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAE,EAAE,EAAE,EAAE,CAAE,CAAA;QAClC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAE,EAAE,EAAE,EAAE,CAAE,CAAA;QACnC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,EAAE,EAAE,EAAE,CAAE,CAAA;QACjC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAE,EAAE,EAAE,EAAE,CAAE,CAAA;QACpC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAE,EAAE,EAAE,EAAE,CAAE,CAAA;QAEjC,MAAM,CAAC,IAAI,GAAG,CAAE,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAE,IAAI,CAAC,IAAI,CAAE,GAAG,CAAE,CAAE,CAAA;QAChE,MAAM,CAAC,GAAG,GAAG,CAAE,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAE,IAAI,CAAC,GAAG,CAAE,GAAG,CAAE,CAAE,CAAA;QAC9D,MAAM,CAAC,KAAK,GAAG,CAAE,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAE,IAAI,CAAC,KAAK,CAAE,GAAG,CAAE,CAAE,CAAA;QAClE,MAAM,CAAC,MAAM,GAAG,CAAE,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAE,IAAI,CAAC,MAAM,CAAE,GAAG,CAAE,CAAE,CAAA;QACpE,MAAM,CAAC,IAAI,GAAG,CAAE,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAE,IAAI,CAAC,IAAI,CAAE,GAAG,CAAE,CAAE,CAAA;QAChE,MAAM,CAAC,OAAO,GAAG,CAAE,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAE,IAAI,CAAC,OAAO,CAAE,GAAG,CAAE,CAAE,CAAA;QACtE,MAAM,CAAC,IAAI,GAAG,CAAE,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAE,IAAI,CAAC,IAAI,CAAE,GAAG,CAAE,CAAE,CAAA;QAEhE,MAAM,CAAC,IAAI,CAAE,IAAY,EAAE,KAAa;YAEvC,IAAI,OAAO,OAAO,KAAK,WAAW;gBAAG,OAAO,MAAM,CAAA;YAClD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;gBAAG,OAAO,MAAM,CAAA;YAEzC,MAAM,MAAM,GAAG,QAAQ,IAAI,GAAG,CAAA;YAC9B,MAAM,OAAO,GAAG,QAAQ,KAAK,GAAG,CAAA;YAEhC,MAAM,aAAa,GAAG,IAAI,MAAM,CAAE,OAAO,CAAC,OAAO,CAAE,GAAG,EAAE,KAAK,CAAE,EAAE,GAAG,CAAE,CAAA;YAEtE,OAAO,SAAS,OAAO,CAAE,GAAW;gBAEnC,GAAG,GAAG,MAAM,CAAE,GAAG,CAAE,CAAA;gBACnB,IAAI,GAAG,KAAK,EAAE;oBAAG,OAAO,GAAG,CAAA;gBAE3B,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAE,aAAa,EAAE,MAAM,CAAE,CAAA;gBACnD,OAAO,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;YAEjC,CAAC,CAAA;QAEF,CAAC;;IA9CW,iBAAe,kBAgD3B,CAAA;AAEF,CAAC,EArDS,CAAC,KAAD,CAAC,QAqDV;;;;ACrDD,IAAU,CAAC,CAoCV;AApCD,WAAU,CAAC;IAEV,SAAgB,mBAAmB,CAClC,KAAqB,EACrB,MAA4B,EAC5B,IAAa,EACb,KAA+B;QAG/B,OAAO,SAAS,gBAAgB,CAE/B,KAA2B;YAG3B,IAAI,CAAC,KAAK,CAAC,IAAI;gBAAG,KAAK,GAAG,EAAE,GAAI,KAAK,EAAE,IAAI,EAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAA;YAExE,IAAI,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAE,KAAK,CAAE,CAAA;YAC7C,IAAI,GAAG,IAAI,CAAC,MAAM,CAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAE,CAAA;YAErC,IAAI,GAAG,GAAG,KAAK,CAAE,IAAI,CAAC,QAAQ,EAAE,CAAE,CACjC;YAAE,IAAI,CAAC,OAAO,CAAE,KAAK,CAAW,CAAE,GAAG,CAAE,CAAA;YAExC,MAAM,IAAI,GAAG,IAAI,CAAA;YACjB,OAAO,GAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAA;QAEpC,CAAC,CAAA;IAEF,CAAC;IAzBe,qBAAmB,sBAyBlC,CAAA;IAED,CAAC,CAAC,cAAc,GAAG,mBAAmB,CAAE,MAAM,EAAG,QAAQ,EAAG,MAAM,EAAG,eAAe,CAAC,IAAI,CAAE,CAAA;IAC3F,CAAC,CAAC,cAAc,GAAG,mBAAmB,CAAE,MAAM,EAAG,QAAQ,EAAG,MAAM,EAAG,eAAe,CAAC,KAAK,CAAE,CAAA;IAC5F,CAAC,CAAC,cAAc,GAAG,mBAAmB,CAAE,OAAO,EAAG,QAAQ,EAAG,MAAM,EAAG,eAAe,CAAC,GAAG,CAAE,CAAA;IAC3F,CAAC,CAAC,cAAc,GAAG,mBAAmB,CAAE,MAAM,EAAG,QAAQ,EAAG,MAAM,EAAG,eAAe,CAAC,MAAM,CAAE,CAAA;IAC7F,CAAC,CAAC,cAAc,GAAG,mBAAmB,CAAE,KAAK,EAAG,QAAQ,EAAG,MAAM,EAAG,eAAe,CAAC,OAAO,CAAE,CAAA;IAC7F,CAAC,CAAC,cAAc,GAAG,mBAAmB,CAAE,KAAK,EAAG,QAAQ,EAAG,MAAM,EAAG,eAAe,CAAC,IAAI,CAAE,CAAA;AAE3F,CAAC,EApCS,CAAC,KAAD,CAAC,QAoCV;;;;ACpCD,IAAU,CAAC,CAmGV;AAnGD,WAAU,CAAC;IAEV,qBAAqB;IACrB,MAAa,cAIX,SAAQ,eAAqC;QAE9C,MAAM,CAAC,MAAM,CAKZ,IAAgD;YAGhD,OAAO,SAAS,kBAAkB,CAAE,IAAU,EAAE,IAAU;gBAEzD,MAAM,GAAG,GAAG,cAAc,EAAE,CAAA;gBAC5B,MAAM,OAAO,GAAG,GAAG,EAAE,UAAU,EAAsD,CAAA;gBACrF,IAAI,KAAK,GAAG,EAAE,CAAA;gBAEd,KAAK,EAAE,IAAI,OAAO,EAAG,CAAC;oBAErB,IAAI,CAAC,OAAO,CAAC,IAAI;wBAAG,MAAM,KAAK,CAAA;oBAE/B,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAG,CAAC;wBAAC,KAAK,GAAG,MAAM,CAAC;wBAAC,MAAM,KAAK,CAAA;oBAAC,CAAC;oBAC3D,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAG,CAAC;wBAAC,KAAK,GAAG,MAAM,CAAC;wBAAC,MAAM,KAAK,CAAA;oBAAC,CAAC;oBAC3D,IAAI,CAAC,iBAAiB,CAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAE,EAAG,CAAC;wBAAC,KAAK,GAAG,MAAM,CAAC;wBAAC,MAAM,KAAK,CAAA;oBAAC,CAAC;oBAE9E,OAAO,OAAO,CAAA;gBACf,CAAC;gBAED,MAAM,GAAG,GAAG,CAAG,IAAY,EAAE,CAAE,MAAM,CAAC,WAAW,CAAE,IAAI,IAAI,CAAE,GAAG,CAAE,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,KAAK,CAAE,CAAA;gBAC3F,MAAM,IAAI,GAAG,IAAI,cAAc,CAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAE,CAAA;gBAExD,6DAA6D;gBAC7D,IAAI,OAAO,EAAE,IAAI,EAAG,CAAC;oBACpB,EAAE,CAAC,cAAc,CAAC;wBACjB,KAAK,EAAE,gBAAgB;wBACvB,OAAO,EAAE,aAAa,KAAK,aAAa;wBACxC,GAAG;wBACH,IAAI,EAAE,OAAO;wBACb,IAAI;wBACJ,IAAI,EAAE,uCAAuC;qBAC7C,CAAC,CAAA;gBACH,CAAC;gBAED,OAAO,IAAI,CAAA;YACZ,CAAC,CAAA;QAEF,CAAC;QAED,IAAI,IAAI;YACP,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,QAAQ;YACP,IAAI,iBAAiB,CAAE,IAAI,CAAC,KAAK,CAAE;gBAAG,OAAM;YAC5C,IAAI,CAAC,UAAU,EAAE,CAAA;QAClB,CAAC;QAED,GAAG,CAAE,IAAgD;YAEpD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;YACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;YAEjB,IAAI,iBAAiB,CAAE,IAAI,CAAE,EAAG,CAAC;gBAEhC,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAA;gBACpC,IAAI,IAAI,KAAK,IAAI;oBAAG,IAAI,CAAC,IAAI,EAAE,CAAA;gBAE/B,IAAI,iBAAiB,CAAE,IAAI,EAAE,IAAI,CAAE,EAAG,CAAC;oBACtC,IAAI,CAAC;wBACH,IAAY,CAAE,MAAM,CAAC,WAAW,CAAE,GAAI,IAAY,CAAE,MAAM,CAAC,WAAW,CAAE,CAAA;oBAC1E,CAAC;oBAAC,MAAM,CAAC,CAAC,gCAAgC;wBACzC,MAAM,CAAC,cAAc,CAAE,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,KAAK,EAAG,IAAY,CAAE,MAAM,CAAC,WAAW,CAAE,EAAE,CAAE,CAAA;oBAClG,CAAC;gBACF,CAAC;gBAED,OAAO,IAAI,CAAA;YACZ,CAAC;YAED,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAA;YAEpC,IAAI,IAAI,CAAC,SAAS;gBAAG,IAAI,CAAC,UAAU,EAAE,CAAA;iBACjC,IAAI,IAAI,KAAK,IAAI;gBAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YAEpC,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,UAAU;YACT,KAAK,CAAC,UAAU,EAAE,CAAA;YAClB,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAA;QACrC,CAAC;KAED;IA9FY,gBAAc,iBA8F1B,CAAA;AAEF,CAAC,EAnGS,CAAC,KAAD,CAAC,QAmGV;;;;ACnGD,IAAU,CAAC,CAmDV;AAnDD,WAAU,CAAC;IAEV,MAAM,UAAU,GAAG,MAAM,CAAC,cAAc,CAAE,UAAU,CAAE,CAAA;IAEtD,wCAAwC;IACxC,SAAgB,QAAQ,CAAW,KAAa;QAE/C,UAAU,EAAE,CAAC;YACZ,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAG,OAAO,KAAK,CAAC,QAAQ,EAAE,GAAG,GAAG,CAAA;YAC7D,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAG,OAAO,UAAW,KAAK,CAAC,WAAa,GAAG,CAAA;YACxE,IAAI,CAAC,KAAK;gBAAG,OAAO,IAAI,CAAC,SAAS,CAAE,KAAK,CAAE,CAAA,CAAC,cAAc;YAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU;gBAAG,OAAO,IAAI,CAAC,SAAS,CAAE,KAAK,CAAE,CAAA,CAAC,0BAA0B;QACzH,CAAC;QAED,OAAO,EAAE,CAAC;YACT,IAAI,GAAG,GAAG,cAAc,CAAC,GAAG,CAAE,KAAK,CAAE,CAAA;YACrC,IAAI,GAAG;gBAAG,OAAO,GAAG,CAAA;QACrB,CAAC;QAED,OAAO,EAAE,CAAC;YAET,IAAI,KAAK,YAAY,UAAU,EAAG,CAAC;gBAClC,OAAO,GAAM,KAAc,CAAE,MAAM,CAAC,WAAW,CAAG,KAAM,CAAE,GAAI,KAAiB,CAAE,CAAC,GAAG,CAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAE,CAAC,CAAE,CAAG,IAAI,CAAA;YACjH,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAE,KAAK,CAAE;gBAAG,OAAO,IAAK,KAAK,CAAC,GAAG,CAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAE,CAAC,CAAE,CAAG,GAAG,CAAA;YAC5E,IAAI,KAAK,YAAY,MAAM;gBAAG,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAA;YACrD,IAAI,KAAK,YAAY,IAAI;gBAAG,OAAO,QAAS,KAAK,CAAC,OAAO,EAAG,GAAG,CAAA;QAEhE,CAAC;QAED,UAAU,EAAE,CAAC;YACZ,MAAM,KAAK,GAAG,OAAO,CAAC,cAAc,CAAE,KAAK,CAAE,CAAA;YAC7C,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,cAAc,CAAE,KAAK,CAAE,EAAG,CAAC;gBACjD,OAAO,IAAK,MAAM,CAAC,OAAO,CAAE,KAAK,CAAE,CAAC,GAAG,CAAE,CAAC,CAAE,CAAC,EAAE,CAAC,CAAE,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAE,CAAC,CAAE,GAAG,GAAG,GAAG,QAAQ,CAAE,CAAC,CAAE,CAAG,GAAG,CAAA;YACvG,CAAC;QACF,CAAC;QAED,QAAQ,EAAE,CAAC;YACV,IAAI,eAAe,IAAI,KAAK,EAAG,CAAC;gBAC/B,OAAS,KAAK,CAAE,eAAe,CAAW,EAAE,CAAA;YAC7C,CAAC;QACF,CAAC;QAED,UAAU,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAE,GAAG,GAAG,SAAS,EAAE,CAAE,CAAA;YAC/C,cAAc,CAAC,GAAG,CAAE,KAAK,EAAE,GAAG,CAAE,CAAA;YAChC,OAAO,GAAG,CAAA;QACX,CAAC;IAEF,CAAC;IA5Ce,UAAQ,WA4CvB,CAAA;AAEF,CAAC,EAnDS,CAAC,KAAD,CAAC,QAmDV;;;;ACnDD,IAAU,CAAC,CAoBV;AApBD,WAAU,CAAC;IAEV,MAAa,kBAAmB,SAAQ,YAAY;QAK3C;QACA;QAJR,EAAE,CAAM;QAER,YACQ,KAAc,EACd,IAAgB;YAEvB,KAAK,EAAE,CAAA;YAHA,UAAK,GAAL,KAAK,CAAS;YACd,SAAI,GAAJ,IAAI,CAAY;YAGvB,IAAI,CAAC,EAAE,GAAG,UAAU,CAAE,IAAI,EAAG,KAAK,CAAE,CAAA;QACrC,CAAC;QAED,UAAU;YACT,YAAY,CAAE,IAAI,CAAC,EAAE,CAAE,CAAA;QACxB,CAAC;KAED;IAhBY,oBAAkB,qBAgB9B,CAAA;AAEF,CAAC,EApBS,CAAC,KAAD,CAAC,QAoBV;;;;ACpBD,IAAU,CAAC,CAYV;AAZD,WAAU,CAAC;IAEV,MAAa,gBAAiB,SAAQ,kBAAkB;QAG/C;QADR,YACQ,IAAgB;YAEvB,KAAK,CAAE,EAAE,EAAG,IAAI,CAAE,CAAA;YAFX,SAAI,GAAJ,IAAI,CAAY;QAGxB,CAAC;KAED;IARY,kBAAgB,mBAQ5B,CAAA;AAEF,CAAC,EAZS,CAAC,KAAD,CAAC,QAYV;;;;ACZD,IAAU,CAAC,CAsCV;AAtCD,WAAU,CAAC;IAEV;;OAEG;IACH,SAAgB,gBAAgB,CAI/B,IAAW,EACX,KAAmB,EACnB,KAA4D;QAG5D,IAAI,CAAC,KAAK;YAAG,KAAK,GAAG,OAAO,CAAC,wBAAwB,CAAE,IAAI,EAAG,KAAK,CAAS,CAAA;QAC5E,MAAM,IAAI,GAAG,KAAK,EAAE,KAAM,IAAK,IAAY,CAAE,KAAK,CAAE,CAAA;QAEpD,MAAM,GAAG,GAAG,OAAO,CAAC,cAAc,CAAE,IAAI,CAAG,CAAA;QAC3C,IAAI,OAAQ,GAAW,CAAE,KAAK,CAAE,KAAK,UAAU,EAAG,CAAC;YAClD,MAAM,CAAC,cAAc,CAAE,IAAI,EAAG,MAAM,EAAG,EAAE,KAAK,EAAI,GAAW,CAAE,KAAK,CAAE,CAAC,IAAI,EAAE,CAAE,CAAA;QAChF,CAAC;QAED,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAE,IAAI,CAAE,CAAA;QAC1C,MAAM,KAAK,GAAG,UAAsB,GAAI,IAAU;YACjD,MAAM,KAAK,GAAG,IAAI,CAAE,IAAI,IAAI,IAAW,EAAE,IAAI,CAAE,CAAA;YAC/C,OAAO,KAAK,CAAC,IAAI,EAAE,CAAA;QACpB,CAAC,CAAA;QAED,MAAM,CAAC,cAAc,CAAE,KAAK,EAAG,MAAM,EAAG,EAAE,KAAK,EAAG,IAAI,CAAC,IAAI,GAAG,GAAG,EAAE,CAAE,CAAA;QAErE,MAAM,CAAC,MAAM,CAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAE,CAAA;QAChC,MAAM,MAAM,GAAG,EAAE,GAAI,KAAK,EAAE,KAAK,EAAE,CAAA;QACnC,OAAO,CAAC,cAAc,CAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAE,CAAA;QAE7C,OAAO,MAAM,CAAA;IAEd,CAAC;IA/Be,kBAAgB,mBA+B/B,CAAA;AAEF,CAAC,EAtCS,CAAC,KAAD,CAAC,QAsCV;;;;;;;;;;ACtCD,IAAU,CAAC,CAeV;AAfD,WAAU,CAAC;IAEV,MAAM,OAAO,GAAG,IAAI,OAAO,EAAS,CAAA;IAEpC,SAAgB,eAAe,CAAE,KAAc;QAE9C,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAG,OAAO,KAAK,CAAA;QAC5C,IAAI,iBAAiB,CAAE,KAAK,CAAE;YAAG,gBAAgB,CAAE,KAAK,CAAE,CAAA;QAC1D,IAAI,OAAO,CAAC,GAAG,CAAE,KAAK,CAAE;YAAG,OAAO,KAAK,CAAA;QAEvC,OAAO,CAAC,GAAG,CAAE,KAAK,CAAG,CAAA;QACrB,OAAO,IAAI,CAAA;IAEZ,CAAC;IATe,iBAAe,kBAS9B,CAAA;AAEF,CAAC,EAfS,CAAC,KAAD,CAAC,QAeV;;;;ACfD,IAAU,CAAC,CAUV;AAVD,WAAU,CAAC;IAEV,SAAgB,QAAQ,CAAY,OAAqB;QACxD,IAAI,CAAC;YACJ,OAAO,OAAO,EAAE,CAAA;QACjB,CAAC;QAAC,OAAO,KAAU,EAAG,CAAC;YACtB,OAAO,CAAC,KAAK,CAAE,KAAK,CAAE,CAAA;YACtB,OAAO,KAAK,CAAA;QACb,CAAC;IACF,CAAC;IAPe,UAAQ,WAOvB,CAAA;AACF,CAAC,EAVS,CAAC,KAAD,CAAC,QAUV;;;;ACVD,IAAU,CAAC,CAaV;AAbD,WAAU,CAAC;IAEV,SAAgB,aAAa,CAAE,KAAc;QAE5C,IAAI,iBAAiB,CAAE,KAAK,CAAE;YAAG,OAAO,KAAK,CAAA;QAC7C,IAAI,CAAC,eAAe,CAAE,KAAK,CAAE;YAAG,OAAO,KAAK,CAAA;QAE5C,QAAQ,CAAE,GAAE,EAAE,GAAG,gBAAgB,CAAE,KAAK,CAAE,CAAA,CAAC,CAAC,CAAE,CAAA;QAE9C,OAAO,IAAI,CAAA;IAEZ,CAAC;IATe,eAAa,gBAS5B,CAAA;AAEF,CAAC,EAbS,CAAC,KAAD,CAAC,QAaV;;;;ACbD,IAAU,CAAC,CAiMV;AAjMD,WAAU,CAAC;IAEV,yBAAyB;IACzB,MAAa,cAIX,SAAQ,eAAqC;QAE9C,MAAM,CAAC,IAAI,CAKV,IAAU,EACV,IAA6C;YAG7C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;YAE9B,MAAM,OAAO,GAAG,MAAM,CAAC,wBAAwB,CAAE,IAAI,IAAI,IAAI,EAAE,KAAK,CAAE,EAAE,KAAK,CAAA;YAC7E,IAAI,OAAO;gBAAG,OAAO,OAAO,CAAA;YAE5B,MAAM,MAAM,GAAI,IAAY,EAAE,CAAE,MAAM,CAAC,WAAW,CAAE,IAAI,CAAE,IAAI,YAAY,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAE,IAAI,CAAE,CAAC,CAAC,CAAC,IAAI,CAAE,CAAA;YACvH,MAAM,GAAG,GAAG,MAAM,GAAG,CAAE,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAE,CAAA;YAE/C,MAAM,KAAK,GAAG,IAAI,cAAc,CAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAiB,CAAE,CACrE;YAAA,CAAE,IAAW,IAAI,IAAI,CAAE,CAAE,KAAK,CAAE,GAAG,KAAK,CAAA;YAEzC,OAAO,KAAK,CAAA;QACb,CAAC;QAED,MAAM,CAAC,IAAI,CAKV,IAAU,EACV,IAA8C,EAC9C,GAAY;YAGZ,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;YAC9B,IAAI,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAE,IAAI,IAAI,IAAI,EAAE,KAAK,CAAE,EAAE,KAAK,CAAA;YACxE,MAAM,MAAM,GAAI,IAAY,EAAE,CAAE,MAAM,CAAC,WAAW,CAAE,IAAI,CAAE,IAAI,YAAY,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAE,IAAI,CAAE,CAAC,CAAC,CAAC,IAAI,CAAE,CAAA;YACvH,MAAM,OAAO,GAAG,QAAQ,CAAE,GAAG,CAAE,CAAA;YAE/B,IAAI,IAAI,EAAG,CAAC;gBACX,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAE,OAAO,CAAE,CAAA;gBACnC,IAAI,OAAO;oBAAG,OAAO,OAAO,CAAA;YAC7B,CAAC;iBAAM,CAAC;gBACP,IAAI,GAAG,CAAE,IAAW,IAAI,IAAI,CAAE,CAAE,KAAK,CAAE,GAAG,IAAI,GAAG,EAAW,CAAA;YAC7D,CAAC;YAED,MAAM,EAAE,GAAG,MAAM,GAAG,CAAE,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,GAAG,CAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAE,QAAQ,EAAE,GAAG,CAAE,GAAG,GAAG,CAAE,CAAA;YAC1F,MAAM,KAAK,GAAG,IAAI,cAAc,CAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAE,GAAG,CAAiB,CAAE,CAAA;YAC1E,IAAI,CAAC,GAAG,CAAE,OAAO,EAAE,KAAK,CAAE,CAAA;YAE1B,OAAO,KAAK,CAAA;QACb,CAAC;QAED,MAAM,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAqC,CAAA;QAC9D,MAAM,CAAC,OAAO,GAAG,IAA+B,CAAA;QAEhD,MAAM,CAAC,KAAK;YAEX,cAAc,CAAC,OAAO,GAAG,IAAI,gBAAgB,CAAE,cAAc,CAAC,KAAK,CAAE,CAAA;YAErE,KAAK,MAAM,IAAI,IAAI,cAAc,CAAC,QAAQ,EAAG,CAAC;gBAE7C,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,KAAK,EAAG,CAAC;oBAC7C,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAE,IAAI,CAAE,CAAA;gBACvC,CAAC;qBAAM,CAAC;oBACP,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAA;oBACpC,IAAI,CAAC,KAAK,EAAE,CAAA;gBACb,CAAC;YAEF,CAAC;QAEF,CAAC;QAED,KAAK;YAEJ,IAAI,CAAC,cAAc,CAAC,OAAO,EAAG,CAAC;gBAC9B,cAAc,CAAC,OAAO,GAAG,IAAI,gBAAgB,CAAE,cAAc,CAAC,KAAK,CAAE,CAAA;YACtE,CAAC;YAED,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;QAEpC,CAAC;QAED;;WAEG;QAEH,MAAM,CAAE,IAAU;YAEjB,8BAA8B;YAC9B,KACC,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,EAC1B,MAAM,GAAG,IAAI,CAAC,QAAQ,EACtB,MAAM,IAAI,CAAC,EACV,CAAC;gBACF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,MAAM,CAAmB,CAAA;gBAChD,IAAI,GAAG,IAAI,GAAG,YAAY,cAAc,EAAG,CAAC;oBAC3C,GAAG,CAAC,UAAU,EAAE,CAAA;gBACjB,CAAC;YACF,CAAC;YAED,OAAO,IAAI,CAAC,GAAG,CAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,IAAK,EAAE,GAAI,IAAI,CAAE,CAAE,CAAA;QAC1D,CAAC;QAGD,IAAI;YACH,OAAO,IAAI,CAAC,IAAI,EAAE,CAAA;QACnB,CAAC;QAED,OAAO;YACN,OAAO,MAAM,CAAC,MAAM,CAAE,CAAE,IAA6B,EAAE,EAAE;gBAExD,IAAI,IAAI,KAAK,SAAS;oBAAG,OAAO,IAAI,CAAC,MAAM,CAAE,CAAE,GAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAS,CAAW,CAAA;gBACtF,IAAI,CAAC,eAAe,CAAC,IAAI;oBAAG,OAAO,IAAI,CAAC,MAAM,EAAW,CAAA;gBAEzD,IAAI,cAAc,EAAE,EAAE,IAAI,EAAG,CAAC;oBAC7B,OAAO,IAAI,CAAC,IAAI,EAAE,CAAA;gBACnB,CAAC;qBAAM,CAAC;oBACP,OAAO,IAAI,CAAC,IAAI,EAAE,CAAA;gBACnB,CAAC;YAEF,CAAC,EAAE,EAAE,IAAI,EAAE,IAA4C,EAAE,CAAE,CAAA;QAC5D,CAAC;QAED,UAAU;YAET,KAAK,CAAC,UAAU,EAAE,CAAA;YAElB,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAG,CAAC;gBAC1B,CAAC;gBAAA,CAAE,IAAI,CAAC,IAAW,IAAI,IAAI,CAAC,IAAI,CAAE,CAAE,IAAI,CAAC,KAAK,EAAE,CAAE,GAAG,IAAI,CAAA;YAC1D,CAAC;iBAAM,CAAC;gBAEP,MAAM,GAAG,GAAG,QAAQ,CAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,CAAA;gBACpC,MAAM,GAAG,GAAG,CAAE,IAAI,CAAC,IAAW,IAAI,IAAI,CAAC,IAAI,CAAE,CAAE,IAAI,CAAC,KAAK,EAAE,CAAE,CAAA;gBAE7D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAE,GAAG,CAAE;oBAAG,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;wBAC3C,KAAK,EAAE,IAAI;wBACX,OAAO,EAAE,2BAA2B;wBACpC,IAAI,EAAE,wCAAwC;qBAC9C,CAAC,CAAA;gBAEF,GAAG,CAAC,MAAM,CAAE,GAAG,CAAE,CAAA;YAClB,CAAC;QAEF,CAAC;QAED,GAAG,CAAE,IAAgD;YAEpD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;YAEvB,MAAM,EAAE,IAAI,IAAI,KAAK,IAAI,EAAG,CAAC;gBAE5B,IAAI,CAAC;oBACJ,IAAI,iBAAiB,CAAE,IAAI,EAAE,IAAI,CAAE;wBAAG,MAAM,MAAM,CAAA;gBACnD,CAAC;gBAAC,OAAO,KAAU,EAAG,CAAC;oBACtB,aAAa,CAAE,KAAK,CAAE,CAAA;gBACvB,CAAC;gBAED,IAAI,iBAAiB,CAAE,IAAI,EAAE,IAAI,CAAE,EAAG,CAAC;oBACtC,IAAI,CAAC,UAAU,EAAE,CAAA;gBAClB,CAAC;gBAED,IAAI,iBAAiB,CAAE,IAAI,EAAE,IAAI,CAAE,EAAG,CAAC;oBACtC,IAAI,CAAC;wBACH,IAAY,CAAE,MAAM,CAAC,WAAW,CAAE,GAAI,IAAY,CAAE,MAAM,CAAC,WAAW,CAAE,CAAA;oBAC1E,CAAC;oBAAC,MAAM,CAAC,CAAC,gCAAgC;wBACzC,MAAM,CAAC,cAAc,CAAE,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,KAAK,EAAG,IAAY,CAAE,MAAM,CAAC,WAAW,CAAE,EAAE,CAAE,CAAA;oBAClG,CAAC;gBACF,CAAC;gBAED,IAAI,CAAC,IAAI,CAAC,SAAS;oBAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YAElC,CAAC;YAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;YACjB,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAA;YAEpC,IAAI,iBAAiB,CAAE,IAAI,CAAE;gBAAG,OAAO,IAAI,CAAA;YAE3C,IAAI,CAAC,aAAa,EAAE,CAAA;YAEpB,OAAO,IAAI,CAAA;QACZ,CAAC;;IA/FD;QADE,gBAAgB;gDAgBjB;IAGD;QADE,gBAAgB;8CAGjB;IAhHW,gBAAc,iBA6L1B,CAAA;AACF,CAAC,EAjMS,CAAC,KAAD,CAAC,QAiMV;;;;ACjMD,IAAU,CAAC,CAoBV;AApBD,WAAU,CAAC;IAEV,qCAAqC;IACrC,SAAgB,eAAe,CAC9B,IAAiB,EAAE,GAAW;QAG9B,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAA;QAEjC,IAAI,CAAC;YACJ,eAAe,CAAC,IAAI,GAAG,KAAK,CAAA;YAC5B,MAAM,GAAG,GAAG,IAAI,EAAE,CAAA;YAClB,IAAI,GAAG,KAAK,SAAS;gBAAG,OAAO,GAAG,CAAA;YAClC,OAAO,GAAG,CAAA;QACX,CAAC;gBAAS,CAAC;YACV,eAAe,CAAC,IAAI,GAAG,IAAI,CAAA;QAC5B,CAAC;IAEF,CAAC;IAfe,iBAAe,kBAe9B,CAAA;AAEF,CAAC,EApBS,CAAC,KAAD,CAAC,QAoBV;;;;ACpBD,IAAU,CAAC,CAiBV;AAjBD,WAAU,CAAC;IAEV;;OAEG;IACH,SAAgB,eAAe;QAC9B,IAAI,OAAO,GAAG,cAAc,EAAsC,CAAA;QAClE,IAAI,OAAQ,CAAC,IAAI;YAAG,OAAO,GAAG,OAAQ,CAAC,IAAI,CAAA;QAC3C,IAAI,OAAQ,CAAC,IAAI,KAAK,OAAO,EAAG,CAAC;YAChC,OAAO,EAAE,MAAM,CAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAE,CAAA;QACxC,CAAC;QACD,OAAQ,CAAC,IAAI,GAAG,OAAO,CAAA;IACxB,CAAC;IAPe,iBAAe,kBAO9B,CAAA;IAED,MAAM,OAAO,GAAG,GAAE,EAAE,GAAE,CAAC,CAAA;IACvB,MAAM,GAAG,GAAG,IAAI,iBAAiB,CAAA;AAElC,CAAC,EAjBS,CAAC,KAAD,CAAC,QAiBV;;;;ACjBD,IAAU,CAAC,CAeV;AAfD,WAAU,CAAC;IAEV;;;OAGG;IACH,SAAgB,eAAe;QAC9B,MAAM,IAAI,GAAG,cAAc,EAAE,CAAA;QAC7B,IAAI,IAAI,YAAY,cAAc,EAAG,CAAC;YACrC,IAAI,CAAC,KAAK,EAAE,CAAA;QACb,CAAC;aAAM,CAAC;YACP,SAAS,CAAE,IAAI,KAAK,CAAE,+BAA+B,CAAE,CAAE,CAAA;QAC1D,CAAC;IACF,CAAC;IAPe,iBAAe,kBAO9B,CAAA;AAEF,CAAC,EAfS,CAAC,KAAD,CAAC,QAeV;;;;ACfD,IAAU,CAAC,CAoGV;AApGD,WAAU,CAAC;IACV,MAAM,SAAS,GAAG,IAAI,OAAO,EAAsB,CAAA;IAEnD,SAAS,OAAO,CACf,GAAkC;QAElC,IAAI,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAuC,CAAA;QAEnE,IAAK,IAAI;YAAG,OAAO,IAAI,CAAA;QAEvB,IAAI,GAAG,mBAAmB,CAAC,CAAC,GAAG,IAAU,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;QACpE,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QAExB,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAgE,CAAA;IAE3F,SAAS,QAAQ,CAChB,IAAY,EACZ,KAAsB;QAEtB,IAAI,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC7B,IAAI,OAAO,GAAG,KAAK,EAAE,CAAC,KAAK,CAAC,CAAA;QAE5B,IAAK,OAAO;YAAG,OAAO,OAAO,CAAA;QAE7B,OAAO,GAAG,CAAC,IAAc,EAAE,EAAE;YAC5B,IAAI,IAAI,KAAK,SAAS;gBAAE,IAAI,CAAC,KAA0B,CAAC,GAAG,IAAW,CAAA;YAEtE,OAAO,IAAI,CAAC,KAA0B,CAAC,CAAA;QACxC,CAAC,CAAA;QAED,MAAM,CAAC,cAAc,CAAE,OAAO,EAAG,MAAM,EAAG,EAAE,KAAK,EAAG,KAAK,EAAE,CAAE,CAAA;QAE7D,IAAI,CAAE,KAAK,EAAE,CAAC;YACb,KAAK,GAAG,EAAE,CAAA;YACV,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QACzB,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAA;QAEtB,OAAO,OAAO,CAAA;IACf,CAAC;IAED;;;OAGG;IACH,SAAgB,cAAc,CAAyB,GAAS;QAC/D,OAAO,IAAI,KAAK,CAAE,GAAG,EAAE;YAEtB,GAAG,CAAE,GAAG,EAAE,KAAK;gBAEd,IAAI,GAAG,GAAI,GAAW,CAAE,KAAK,CAAE,CAAA;gBAC/B,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;gBAE1F,IAAI,OAAO,GAAG,KAAK,UAAU;oBAAE,OAAO,IAAI,CAAE,GAAG,EAAE,EAAE,CAAE,CAAC,IAAI,EAAE,CAAA;gBAE5D,OAAO,SAAS,cAAc,CAAc,GAAI,IAAe;oBAC9D,MAAM,KAAK,GAAG,IAAI,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;oBAC/B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAA;gBACpB,CAAC,CAAA;YACF,CAAC;YAED,GAAG,CAAE,GAAG,EAAE,KAAK,EAAE,IAAI;gBACpB,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;gBACxD,IAAI,CAAE,GAAG,EAAE,CAAE,IAAI,CAAE,CAAE,CAAC,IAAI,EAAE,CAAA;gBAE5B,OAAO,IAAI,CAAA;YACZ,CAAC;YAED,SAAS,CAAC,GAAG,EAAE,IAAI;gBAClB,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,GAA8C,CAAC,CAAC,CAAA;gBAC3F,OAAO,IAAI,CAAE,GAAG,EAAE,IAAI,CAAE,CAAC,IAAI,EAAY,CAAA;YAC1C,CAAC;YAED,KAAK,CAAE,GAAG,EAAE,IAAI,EAAE,IAAI;gBACrB,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,GAAgC,CAAC,CAAA;gBACpE,OAAO,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;YAC/B,CAAC;SAED,CAAoD,CAAA;IACtD,CAAC;IAlCe,gBAAc,iBAkC7B,CAAA;AAkBF,CAAC,EApGS,CAAC,KAAD,CAAC,QAoGV;;;;ACpGD,IAAU,CAAC,CAgDV;AAhDD,WAAU,CAAC;IAEV,+HAA+H;IAC/H,SAAgB,eAAe,CAAyB,GAAS;QAEhE,IAAI,KAAuC,CAAA;QAC3C,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAE,GAAgC,CAAE,CAAA;QAEtE,OAAO,IAAI,KAAK,CAAE,GAAG,EAAE;YAEtB,GAAG,CAAE,GAAG,EAAE,KAAK;gBAEd,MAAM,GAAG,GAAI,GAAW,CAAE,KAAK,CAAE,CAAA;gBACjC,IAAI,OAAO,GAAG,KAAK,UAAU;oBAAG,OAAO,GAAG,CAAA;gBAE1C,IAAI,KAAuC,CAAA;gBAC3C,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAE,GAAG,CAAE,CAAA;gBAEzC,OAAO,SAAS,eAAe,CAAc,GAAI,IAAW;oBAC3D,KAAK,EAAE,UAAU,EAAE,CAAA;oBACnB,KAAK,GAAG,IAAI,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;oBACzB,OAAO,KAAK,CAAC,KAAK,EAAE,CAAA;gBACrB,CAAC,CAAA;YAEF,CAAC;YAED,KAAK,CAAE,GAAG,EAAE,IAAI,EAAE,IAAI;gBACrB,KAAK,EAAE,UAAU,EAAE,CAAA;gBACnB,KAAK,GAAG,IAAI,CAAE,IAAI,EAAE,IAAI,CAAE,CAAA;gBAC1B,OAAO,KAAK,CAAC,KAAK,EAAE,CAAA;YACrB,CAAC;SAED,CAAuD,CAAA;IAEzD,CAAC;IA/Be,iBAAe,kBA+B9B,CAAA;AAcF,CAAC,EAhDS,CAAC,KAAD,CAAC,QAgDV;;;;AChDD,IAAU,CAAC,CA4BV;AA5BD,WAAU,CAAC;IAEV,sDAAsD;IACtD,SAAgB,cAAc,CAE3B,GAAI,KAAY;QAIlB,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAE,IAAI,CAAC,EAAE;YAEjC,IAAI,CAAC;gBACJ,OAAO,IAAI,EAAE,CAAA;YACd,CAAC;YAAC,OAAO,KAAK,EAAG,CAAC;gBACjB,OAAO,KAAK,CAAA;YACb,CAAC;QAEF,CAAC,CAAE,CAAA;QAEH,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAE,GAAG,CAAC,EAAE,CAAC,iBAAiB,CAAE,GAAG,CAAE,CAAE,CAAA;QAClE,IAAI,QAAQ,CAAC,MAAM;YAAG,SAAS,CAAE,OAAO,CAAC,IAAI,CAAE,QAAQ,CAAE,CAAE,CAAA;QAE3D,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAE,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,KAAK,CAAE,CAAA;QACzD,IAAI,KAAK;YAAG,SAAS,CAAE,KAAK,CAAE,CAAA;QAE9B,OAAO,OAAc,CAAA;IACtB,CAAC;IAvBe,gBAAc,iBAuB7B,CAAA;AAEF,CAAC,EA5BS,CAAC,KAAD,CAAC,QA4BV;;;;AC5BD,IAAU,CAAC,CAoDV;AApDD,WAAU,CAAC;IAEV,yEAAyE;IACzE,SAAgB,cAAc,CAC7B,IAAY,EACZ,KAAa,EACb,KAA2D;QAG3D,IAAI,CAAC,KAAK;YAAG,KAAK,GAAG,OAAO,CAAC,wBAAwB,CAAE,IAAI,EAAG,KAAK,CAAE,CAAA;QACrE,MAAM,IAAI,GAAG,KAAK,EAAE,KAAM,IAAK,IAAY,CAAE,KAAK,CAAE,CAAA;QAEpD,MAAM,GAAG,GAAG,OAAO,CAAC,cAAc,CAAE,IAAI,CAAG,CAAA;QAC3C,IAAI,OAAQ,GAAW,CAAE,KAAK,CAAE,KAAK,UAAU,EAAG,CAAC;YAClD,MAAM,CAAC,cAAc,CAAE,IAAI,EAAG,MAAM,EAAG,EAAE,KAAK,EAAI,GAAW,CAAE,KAAK,CAAE,CAAC,IAAI,EAAE,CAAE,CAAA;QAChF,CAAC;QAED,MAAM,MAAM,GAAG;YACd,GAAI,KAAK;YACT,KAAK,EAAE,UAA6B,GAAI,IAAU;gBAEjD,IAAI,IAAI,GAAG,cAAc,CAAC,IAAI,CAAE,IAAI,EAAE,IAAI,CAAE,CAAA;gBAE5C,IAAG,CAAE,IAAI,CAAC,MAAM,KAAK,CAAC,CAAE,IAAE,CAAE,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,CAAE,EAAE,CAAC;oBAErD,IAAI,CAAC,eAAe,CAAC,IAAI;wBAAG,OAAO,IAAI,CAAC,MAAM,EAAE,CAAA;oBAEhD,IAAI,cAAc,EAAE,EAAE,IAAI,EAAG,CAAC;wBAC7B,OAAO,IAAI,CAAC,IAAI,EAAE,CAAA;oBACnB,CAAC;yBAAM,CAAC;wBACP,OAAO,IAAI,CAAC,IAAI,EAAE,CAAA;oBACnB,CAAC;gBAEF,CAAC;gBAED,OAAO,IAAI,CAAC,MAAM,CAAE,IAAI,CAAE,CAAA;YAC3B,CAAC;SACD,CAAA;QAED,OAAO,CAAC,cAAc,CAAE,MAAM,CAAC,KAAK,EAAG,MAAM,EAAG,EAAE,KAAK,EAAG,IAAI,CAAC,IAAI,GAAG,GAAG,EAAE,CAAE,CAAA;QAC7E,OAAO,CAAC,cAAc,CAAE,MAAM,CAAC,KAAK,EAAG,QAAQ,EAAG,EAAE,KAAK,EAAG,IAAI,CAAC,MAAM,EAAE,CAAE,CAAA;QAC3E,MAAM,CAAC,MAAM,CAAE,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAE,CAAA;QAEvC,OAAO,CAAC,cAAc,CAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAE,CAAA;QAE7C,OAAO,MAAsF,CAAA;IAC9F,CAAC;IA3Ce,gBAAc,iBA2C7B,CAAA;AAMF,CAAC,EApDS,CAAC,KAAD,CAAC,QAoDV;;;;ACpDD,IAAU,CAAC,CAgDV;AAhDD,WAAU,CAAC;IAEV,yDAAyD;IACzD,SAAgB,cAAc,CAC7B,IAAY,EACZ,KAAa,EACb,KAA2D;QAG3D,IAAI,CAAC,KAAK;YAAG,KAAK,GAAG,OAAO,CAAC,wBAAwB,CAAE,IAAI,EAAG,KAAK,CAAE,CAAA;QACrE,MAAM,IAAI,GAAG,KAAK,EAAE,KAAM,IAAK,IAAY,CAAE,KAAK,CAAE,CAAA;QAEpD,MAAM,GAAG,GAAG,OAAO,CAAC,cAAc,CAAE,IAAI,CAAG,CAAA;QAC3C,IAAI,OAAQ,GAAW,CAAE,KAAK,CAAE,KAAK,UAAU,EAAG,CAAC;YAClD,MAAM,CAAC,cAAc,CAAE,IAAI,EAAG,MAAM,EAAG,EAAE,KAAK,EAAI,GAAW,CAAE,KAAK,CAAE,CAAC,IAAI,EAAE,CAAE,CAAA;QAChF,CAAC;QAED,MAAM,MAAM,GAAG;YACd,GAAI,KAAK;YACT,KAAK,EAAE,UAA6B,GAAI,IAAU;gBAEjD,IAAI,IAAI,GAAG,cAAc,CAAC,IAAI,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAE,CAAA;gBAErD,IAAG,CAAE,IAAI,CAAC,MAAM,KAAK,CAAC,CAAE,IAAE,CAAE,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,CAAE,EAAE,CAAC;oBAErD,IAAI,CAAC,eAAe,CAAC,IAAI;wBAAG,OAAO,IAAI,CAAC,MAAM,EAAE,CAAA;oBAEhD,IAAI,cAAc,EAAE,EAAE,IAAI,EAAG,CAAC;wBAC7B,OAAO,IAAI,CAAC,IAAI,EAAE,CAAA;oBACnB,CAAC;yBAAM,CAAC;wBACP,OAAO,IAAI,CAAC,IAAI,EAAE,CAAA;oBACnB,CAAC;gBAEF,CAAC;gBAED,OAAO,IAAI,CAAC,MAAM,CAAE,IAAI,CAAE,CAAA;YAC3B,CAAC;SACD,CAAA;QAED,OAAO,CAAC,cAAc,CAAE,MAAM,CAAC,KAAK,EAAG,MAAM,EAAG,EAAE,KAAK,EAAG,IAAI,CAAC,IAAI,GAAG,GAAG,EAAE,CAAE,CAAA;QAC7E,OAAO,CAAC,cAAc,CAAE,MAAM,CAAC,KAAK,EAAG,QAAQ,EAAG,EAAE,KAAK,EAAG,IAAI,CAAC,MAAM,EAAE,CAAE,CAAA;QAC3E,MAAM,CAAC,MAAM,CAAE,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAE,CAAA;QAEvC,OAAO,CAAC,cAAc,CAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAE,CAAA;QAE7C,OAAO,MAAM,CAAA;IACd,CAAC;IA3Ce,gBAAc,iBA2C7B,CAAA;AAEF,CAAC,EAhDS,CAAC,KAAD,CAAC,QAgDV;;;;AChDD,IAAU,CAAC,CAaV;AAbD,WAAU,CAAC;IACV;;;;OAIG;IACH,SAAgB,UAAU,CAAW,KAAa;QACjD,MAAM,MAAM,GAAG,AAAD,CAAmC,GAAG,EAAE,CAAC,KAAK,CAAE,CAAA;QAC9D,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CACnB;QAAC,MAAc,CAAE,MAAM,CAAC,WAAW,CAAE,GAAG,KAAK,CAC7C;QAAC,MAAe,CAAE,oBAAoB,CAAE,GAAG,GAAE,EAAE,CAAC,oBAAoB,CAAE,EAAE,EAAG,OAAO,EAAE,oBAAoB,CAAE,KAAK,CAAE,CAAE,CAAA;QACpH,OAAO,MAAM,CAAA;IACd,CAAC;IANe,YAAU,aAMzB,CAAA;AACF,CAAC,EAbS,CAAC,KAAD,CAAC,QAaV;;;;ACbD,IAAU,CAAC,CA+CV;AA/CD,WAAU,CAAC;IAEV,4DAA4D;IAC5D,SAAgB,eAAe,CAK9B,IAAW,EACX,KAAa,EACb,KAAyC;QAGzC,IAAI,CAAC,KAAK;YAAG,KAAK,GAAG,OAAO,CAAC,wBAAwB,CAAE,IAAI,EAAG,KAAK,CAAS,CAAA;QAE5E,MAAM,IAAI,GAAG,KAAK,EAAE,GAAG,IAAI,UAAU,CAAE,KAAK,EAAE,KAAK,CAAE,CAAA;QACrD,MAAM,IAAI,GAAG,KAAK,EAAE,GAAG,IAAI,UAAwB,IAAI;YACtD,cAAc,CAAC,IAAI,CAAE,IAAI,EAAE,IAAI,CAAE,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA;QAC9C,CAAC,CAAA;QAED,MAAM,GAAG,GAAG,OAAO,CAAC,cAAc,CAAE,IAAI,CAAG,CAAA;QAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,wBAAwB,CAAE,GAAG,EAAE,KAAK,CAAE,CAAA;QAEhE,MAAM,CAAC,cAAc,CAAE,IAAI,EAAG,MAAM,EAAG,EAAE,KAAK,EAAG,SAAS,EAAE,GAAG,EAAE,IAAI,IAAI,KAAK,EAAE,CAAE,CAAA;QAClF,MAAM,CAAC,cAAc,CAAE,IAAI,EAAG,MAAM,EAAG,EAAE,KAAK,EAAG,SAAS,EAAE,GAAG,EAAE,IAAI,IAAI,KAAK,EAAE,CAAE,CAAA;QAElF,SAAS,GAAG;YACX,OAAO,cAAc,CAAC,IAAI,CAAE,IAAI,EAAE,IAAI,CAAE,CAAC,IAAI,EAAE,CAAA;QAChD,CAAC;QAED,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAE,IAAI,CAAE,CAAA;QAC1C,SAAS,GAAG,CAAc,IAAW;YACpC,IAAI,CAAE,IAAI,EAAE,CAAE,IAAI,CAAE,CAAE,CAAC,IAAI,EAAE,CAAA;QAC9B,CAAC;QAED,MAAM,CAAC,cAAc,CAAE,GAAG,EAAG,MAAM,EAAG,EAAE,KAAK,EAAG,IAAI,CAAC,IAAI,GAAG,GAAG,EAAE,CAAE,CAAA;QACnE,MAAM,CAAC,cAAc,CAAE,GAAG,EAAG,MAAM,EAAG,EAAE,KAAK,EAAG,IAAI,CAAC,IAAI,GAAG,GAAG,EAAE,CAAE,CAAA;QAEnE,MAAM,CAAC,MAAM,CAAE,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAE,CAAA;QACpC,MAAM,CAAC,MAAM,CAAE,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAE,CAAA;QAEpC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAI,MAAM,EAAE,GAAG,EAAE,GAAI,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;QAC/D,OAAO,CAAC,cAAc,CAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAE,CAAA;QAE7C,OAAO,MAAM,CAAA;IACd,CAAC;IA1Ce,iBAAe,kBA0C9B,CAAA;AAEF,CAAC,EA/CS,CAAC,KAAD,CAAC,QA+CV;;;;AC/CD,IAAU,CAAC,CAmBV;AAnBD,WAAU,GAAC;IAEV,IAAiB,EAAE,CAAU;IAA7B,WAAiB,EAAE;QAAG,IAAI,CAAC,CAAA;IAAC,CAAC,EAAZ,EAAE,GAAF,MAAE,KAAF,MAAE,QAAU;IAEhB,qBAAiB,GAAG,MAAM,CAAE,mBAAmB,CAAE,CAAA;IAE9D,MAAa,WAAY,SAAQ,YAAY;QAErC,MAAM,CAAC,IAAI,CAEjB,MAAuC;YAEvC,OAAO,KAAK,CAAC,MAAM,CAAE,GAAG,CAAC,EAAE;gBAC1B,KAAK,IAAI,GAAG,IAAI,MAAM;oBAAK,GAAY,CAAE,GAAG,CAAE,GAAG,MAAM,CAAE,GAAG,CAAG,CAAA;YAChE,CAAC,CAA0B,CAAA;QAC5B,CAAC;KAED;IAXY,eAAW,cAWvB,CAAA;AAEF,CAAC,EAnBS,CAAC,KAAD,CAAC,QAmBV;;;;ACnBD,IAAU,CAAC,CAuBV;AAvBD,WAAU,CAAC;IAEV;;;;;;;;OAQG;IACQ,UAAQ,GAAG,cAAc,CAAA;IAEpC;;;;;;;;OAQG;IACQ,cAAY,GAAG,cAAc,CAAA;AACzC,CAAC,EAvBS,CAAC,KAAD,CAAC,QAuBV;;;;ACvBD,IAAU,CAAC,CAwBV;AAxBD,WAAU,CAAC;IAEV,2BAA2B;IAC3B,MAAa,eAAgB,SAAQ,WAAW;QAGxC,AAAP,MAAM,CAAC,IAAI,CAAE,SAAiB,EAAE,KAAY;YAE3C,IAAI,SAAS,EAAG,CAAC;gBAChB,OAAO,IAAI,kBAAkB,CAAE,SAAS,EAAE,GAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAE,SAAS,EAAE,IAAI,CAAE,CAAE,CAAA;YAC9E,CAAC;iBAAM,CAAC;gBACP,OAAO,IAAI,gBAAgB,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAE,SAAS,EAAE,IAAI,CAAE,CAAE,CAAA;YACjE,CAAC;QAEF,CAAC;QAGM,AAAP,MAAM,CAAC,GAAG,CAAE,SAAiB;YAC5B,IAAI,CAAC,IAAI,CAAE,SAAS,CAAE,CAAA;YACtB,OAAO,IAAI,CAAC,GAAG,EAAE,CAAA;QAClB,CAAC;KAED;IAhBO;QADL,YAAY;qCASb;IAGM;QADL,YAAY;oCAIb;IAjBW,iBAAe,kBAmB3B,CAAA;AAEF,CAAC,EAxBS,CAAC,KAAD,CAAC,QAwBV;;;;ACxBD,IAAU,CAAC,CAqBV;AArBD,WAAU,CAAC;IAEV,4BAA4B;IAC5B,SAAgB,gBAAgB,CAAE,IAAS;QAE1C,MAAM,IAAI,GAAG,cAAc,EAAE,CAAA;QAC7B,IAAG,CAAC,CAAE,IAAI,YAAY,cAAc,CAAE;YAAE,SAAS,CAAE,IAAI,KAAK,CAAE,0BAA0B,CAAE,CAAE,CAAA;QAE5F,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAA;QAClC,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAG,OAAO,IAAI,CAAA;QAE1C,MAAM,OAAO,GAAG,CAAE,IAAI,GAAG,CAAC,GAAG,IAAI,CAAG,GAAG,CAAC,CAAA;QAExC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAE,OAAO,GAAG,IAAI,CAAE,CAAA;QACvC,IAAI,IAAI,GAAG,CAAC;YAAG,OAAO,IAAI,CAAA;QAE1B,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAEtB,OAAO,OAAO,CAAA;IACf,CAAC;IAhBe,kBAAgB,mBAgB/B,CAAA;AAEF,CAAC,EArBS,CAAC,KAAD,CAAC,QAqBV;;;;ACrBD,IAAU,CAAC,CAkCV;AAlCD,WAAU,CAAC;IACV,SAAgB,eAAe,CAAE,GAAW;QAE3C,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,CAAE,GAAG,CAAE,EAAG,CAAC;YAE7C,MAAM,KAAK,GAAG,OAAO,CAAC,wBAAwB,CAAE,GAAG,EAAE,KAAK,CAAG,CAAA;YAC7D,IAAI,CAAC,KAAK,CAAC,YAAY;gBAAG,SAAQ;YAClC,IAAI,CAAC,KAAK,CAAC,GAAG;gBAAG,SAAQ;YAEzB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,CAAE,GAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAE,CAAA;YAC7C,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,CAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAE,CAAA;YAEvD,OAAO,CAAC,cAAc,CAAE,GAAG,EAAE,KAAK,EAAE;gBAEnC,YAAY,EAAE,IAAI;gBAClB,UAAU,EAAE,KAAK,CAAC,UAAU;gBAE5B,GAAG;oBACF,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAE,GAAG,EAAE,GAAG,CAAE,CAAA;oBAC5C,IAAI,CAAC,KAAK,EAAE,CAAA;oBACZ,OAAO,IAAI,CAAC,IAAI,EAAE,CAAA;gBACnB,CAAC;gBAED,GAAG,CAAE,IAAI;oBACR,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAE,GAAG,EAAE,GAAG,CAAE,CAAA;oBAC5C,GAAG,CAAC,IAAI,CAAE,IAAI,EAAE,IAAI,CAAE,CAAA;oBACtB,IAAI,CAAC,OAAO,EAAE,CAAA;gBACf,CAAC;aAED,CAAE,CAAA;QAEJ,CAAC;IAEF,CAAC;IAhCe,iBAAe,kBAgC9B,CAAA;AACF,CAAC,EAlCS,CAAC,KAAD,CAAC,QAkCV;;;;;;;AClCD,IAAU,CAAC,CAeV;AAfD,WAAU,CAAC;IACV,SAAgB,aAAa,CAAqB,IAAU;QAC3D,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAE,IAAI,CAAE,EAAG,CAAC;YACzC,IAAY,CAAE,KAAK,CAAE,GAAG,IAAI,cAAc,CAAE,KAAK,EAAG,IAAY,CAAE,KAAK,CAAE,EAAE,IAAI,CAAE,CAAC,OAAO,EAAE,CAAA;QAC7F,CAAC;QACD,OAAO,IAQN,CAAA;IACF,CAAC;IAbe,eAAa,gBAa5B,CAAA;AACF,CAAC,EAfS,CAAC,KAAD,CAAC,QAeV;;;;ACfD,IAAU,CAAC,CAiFV;AAjFD,WAAU,CAAC;IACV,mBAAmB;IACnB,MAAa,aAAuB,SAAQ,GAAY;QAEvD,GAAG,GAAG,IAAI,aAAa,CAAA;QAEvB,YAAY;QAEZ,GAAG,CAAE,KAAY;YAChB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;YAClB,OAAO,KAAK,CAAC,GAAG,CAAE,KAAK,CAAE,CAAA;QAC1B,CAAC;QAED,OAAO;YACN,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;YAClB,OAAO,KAAK,CAAC,OAAO,EAAE,CAAA;QACvB,CAAC;QAED,IAAI;YACH,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;YAClB,OAAO,KAAK,CAAC,IAAI,EAAE,CAAA;QACpB,CAAC;QAED,MAAM;YACL,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;YAClB,OAAO,KAAK,CAAC,MAAM,EAAE,CAAA;QACtB,CAAC;QAED,OAAO,CACN,IAAgE,EAChE,IAAU;YAEV,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;YAClB,KAAK,CAAC,OAAO,CAAE,IAAI,EAAE,IAAI,CAAE,CAAA;QAC5B,CAAC;QAED,CAAC,MAAM,CAAC,QAAQ,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;YAClB,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAA;QAChC,CAAC;QAED,IAAI,IAAI;YACP,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;YAClB,OAAO,KAAK,CAAC,IAAI,CAAA;QAClB,CAAC;QAED,WAAW;QAEX,GAAG,CAAE,KAAY;YAChB,IAAI,KAAK,CAAC,GAAG,CAAE,KAAK,CAAE;gBAAG,OAAO,IAAI,CAAA;YACpC,KAAK,CAAC,GAAG,CAAE,KAAK,CAAE,CAAA;YAClB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;YACf,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,MAAM,CAAE,KAAY;YACnB,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAE,KAAK,CAAE,CAAA;YACjC,IAAI,GAAG;gBAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;YACzB,OAAO,GAAG,CAAA;QACX,CAAC;QAED,KAAK;YACJ,IAAI,CAAC,KAAK,CAAC,IAAI;gBAAG,OAAM;YACxB,KAAK,CAAC,KAAK,EAAE,CAAA;YACb,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QAChB,CAAC;QAED,aAAa;QAEb,IAAI,CAAE,GAAU,EAAE,IAAc;YAE/B,IAAI,IAAI,KAAK,SAAS;gBAAG,OAAO,IAAI,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;YAE/C,IAAI,IAAI;gBAAG,IAAI,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;;gBACrB,IAAI,CAAC,MAAM,CAAE,GAAG,CAAE,CAAA;YAEvB,OAAO,IAAI,CAAA;QACZ,CAAC;KAED;IA7EY,eAAa,gBA6EzB,CAAA;AAEF,CAAC,EAjFS,CAAC,KAAD,CAAC,QAiFV;;;;ACjFD,IAAU,CAAC,CA6FV;AA7FD,WAAU,CAAC;IAEV,MAAM,IAAI,GAAG,IAAI,OAAO,EAA2B,CAAA;IAEnD,SAAgB,mBAAmB,CAAE,EAAU,EAAE,MAAc;QAC9D,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAE,MAAM,CAAE,CAAA;QAC5B,IAAI,CAAC,GAAG;YAAG,IAAI,CAAC,GAAG,CAAE,MAAM,EAAE,GAAG,GAAG,IAAI,aAAa,CAAE,EAAE,CAAE,CAAE,CAAA;QAC5D,OAAO,GAAG,CAAA;IACX,CAAC;IAJe,qBAAmB,sBAIlC,CAAA;IAED,SAAgB,eAAe,CAAY,EAAU,EAAE,MAAc;QAEpE,IAAI,CAAC,MAAM;YAAG,OAAO,MAAM,CAAA;QAE3B,MAAM,IAAI,GAAG,OAAO,MAAM,CAAA;QAC1B,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,UAAU;YAAG,OAAO,MAAM,CAAA;QAE5D,OAAO,IAAI,KAAK,CAAE,MAAM,EAAE;YAEzB,UAAU;YAEV,GAAG,CAAE,MAAM,EAAE,QAAQ;gBACpB,mBAAmB,CAAE,EAAE,EAAE,MAAM,CAAE,CAAC,OAAO,EAAE,CAAA;gBAC3C,MAAM,MAAM,GAAG,GAAG,GAAG,CAAE,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAE,CAAA;gBACvF,OAAO,eAAe,CAAE,EAAE,GAAG,MAAM,EAAG,OAAO,CAAC,GAAG,CAAE,MAAM,EAAE,QAAQ,CAAE,CAAE,CAAA;YACxE,CAAC;YAED,wBAAwB,CAAE,MAAM,EAAE,QAAQ;gBACzC,mBAAmB,CAAE,EAAE,EAAE,MAAM,CAAE,CAAC,OAAO,EAAE,CAAA;gBAC3C,OAAO,OAAO,CAAC,wBAAwB,CAAE,MAAM,EAAE,QAAQ,CAAE,CAAA;YAC5D,CAAC;YAED,OAAO,CAAE,MAAM;gBACd,mBAAmB,CAAE,EAAE,EAAE,MAAM,CAAE,CAAC,OAAO,EAAE,CAAA;gBAC3C,OAAO,OAAO,CAAC,OAAO,CAAE,MAAM,CAAE,CAAA;YACjC,CAAC;YAED,GAAG,CAAE,MAAM,EAAE,QAAQ;gBACpB,mBAAmB,CAAE,EAAE,EAAE,MAAM,CAAE,CAAC,OAAO,EAAE,CAAA;gBAC3C,OAAO,OAAO,CAAC,GAAG,CAAE,MAAM,EAAE,QAAQ,CAAE,CAAA;YACvC,CAAC;YAED,cAAc,CAAE,MAAM;gBACrB,mBAAmB,CAAE,EAAE,EAAE,MAAM,CAAE,CAAC,OAAO,EAAE,CAAA;gBAC3C,OAAO,eAAe,CAAE,EAAE,EAAE,OAAO,CAAC,cAAc,CAAE,MAAM,CAAE,CAAE,CAAA;YAC/D,CAAC;YAED,YAAY,CAAE,MAAM;gBACnB,mBAAmB,CAAE,EAAE,EAAE,MAAM,CAAE,CAAC,OAAO,EAAE,CAAA;gBAC3C,OAAO,OAAO,CAAC,YAAY,CAAE,MAAM,CAAE,CAAA;YACtC,CAAC;YAED,UAAU;YAEV,GAAG,CAAE,MAAM,EAAE,QAAQ,EAAE,IAAI;gBAE1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAE,MAAM,CAAE,CAAA;gBAC9B,IAAI,GAAG,EAAG,CAAC;oBAEV,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAE,MAAM,EAAE,QAAQ,CAAE,CAAA;oBAC5C,IAAI,iBAAiB,CAAE,IAAI,EAAE,IAAI,CAAE;wBAAG,OAAO,IAAI,CAAA;oBAEjD,GAAG,CAAC,IAAI,EAAE,CAAA;gBACX,CAAC;gBAED,OAAO,OAAO,CAAC,GAAG,CAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAE,CAAA;YAE7C,CAAC;YAED,cAAc,CAAE,MAAM,EAAE,QAAQ,EAAE,UAAU;gBAC3C,IAAI,CAAC,GAAG,CAAE,MAAM,CAAE,EAAE,IAAI,EAAE,CAAA;gBAC1B,OAAO,OAAO,CAAC,cAAc,CAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAE,CAAA;YAC9D,CAAC;YAED,cAAc,CAAE,MAAM,EAAE,QAAQ;gBAC/B,IAAI,CAAC,GAAG,CAAE,MAAM,CAAE,EAAE,IAAI,EAAE,CAAA;gBAC1B,OAAO,OAAO,CAAC,cAAc,CAAE,MAAM,EAAE,QAAQ,CAAE,CAAA;YAClD,CAAC;YAED,cAAc,CAAE,MAAM,EAAE,KAAK;gBAC5B,IAAI,CAAC,GAAG,CAAE,MAAM,CAAE,EAAE,IAAI,EAAE,CAAA;gBAC1B,OAAO,OAAO,CAAC,cAAc,CAAE,MAAM,EAAE,KAAK,CAAE,CAAA;YAC/C,CAAC;YAED,iBAAiB,CAAE,MAAM;gBACxB,IAAI,CAAC,GAAG,CAAE,MAAM,CAAE,EAAE,IAAI,EAAE,CAAA;gBAC1B,OAAO,OAAO,CAAC,iBAAiB,CAAE,MAAM,CAAE,CAAA;YAC3C,CAAC;SAED,CAAE,CAAA;IAEJ,CAAC;IAjFe,iBAAe,kBAiF9B,CAAA;AAEF,CAAC,EA7FS,CAAC,KAAD,CAAC,QA6FV;;;;AC7FD,IAAU,CAAC,CAsFV;AAtFD,WAAU,CAAC;IACV,0BAA0B;IAC1B,MAAa,cAA6B,SAAQ,GAAiB;QAElE,GAAG,GAAG,IAAI,aAAa,CAAA;QAEvB,YAAY;QAEZ,GAAG,CAAE,GAAQ;YACZ,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;YAClB,OAAO,KAAK,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;QACxB,CAAC;QAED,GAAG,CAAE,GAAQ;YACZ,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;YAClB,OAAO,KAAK,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;QACxB,CAAC;QAED,OAAO;YACN,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;YAClB,OAAO,KAAK,CAAC,OAAO,EAAE,CAAA;QACvB,CAAC;QAED,IAAI;YACH,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;YAClB,OAAO,KAAK,CAAC,IAAI,EAAE,CAAA;QACpB,CAAC;QAED,MAAM;YACL,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;YAClB,OAAO,KAAK,CAAC,MAAM,EAAE,CAAA;QACtB,CAAC;QAED,OAAO,CACN,IAAiE,EACjE,IAAU;YAEV,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;YAClB,KAAK,CAAC,OAAO,CAAE,IAAI,EAAE,IAAI,CAAE,CAAA;QAC5B,CAAC;QAED,CAAC,MAAM,CAAC,QAAQ,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;YAClB,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAA;QAChC,CAAC;QAED,IAAI,IAAI;YACP,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;YAClB,OAAO,KAAK,CAAC,IAAI,CAAA;QAClB,CAAC;QAED,WAAW;QAEX,GAAG,CAAE,GAAQ,EAAE,KAAY;YAC1B,IAAI,KAAK,CAAC,GAAG,CAAE,GAAG,CAAE,KAAK,KAAK;gBAAG,OAAO,IAAI,CAAA;YAC5C,KAAK,CAAC,GAAG,CAAE,GAAG,EAAE,KAAK,CAAE,CAAA;YACvB,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,CAAA,CAAC,2BAA2B;YAC5C,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,MAAM,CAAE,GAAQ;YACf,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAE,GAAG,CAAE,CAAA;YAC/B,IAAI,GAAG;gBAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;YACzB,OAAO,GAAG,CAAA;QACX,CAAC;QAED,KAAK;YACJ,IAAI,CAAC,KAAK,CAAC,IAAI;gBAAG,OAAM;YACxB,KAAK,CAAC,KAAK,EAAE,CAAA;YACb,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QAChB,CAAC;QAED,aAAa;QAEb,IAAI,CAAE,GAAQ,EAAE,IAAmB;YAElC,IAAI,IAAI,KAAK,SAAS;gBAAG,OAAO,IAAI,CAAC,GAAG,CAAE,GAAG,CAAE,IAAI,IAAI,CAAA;YAEvD,IAAI,IAAI,KAAK,IAAI;gBAAG,IAAI,CAAC,MAAM,CAAE,GAAG,CAAE,CAAA;;gBACjC,IAAI,CAAC,GAAG,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;YAE1B,OAAO,IAAI,CAAA;QACZ,CAAC;KAED;IAlFY,gBAAc,iBAkF1B,CAAA;AAEF,CAAC,EAtFS,CAAC,KAAD,CAAC,QAsFV;;;;ACtFD,IAAU,CAAC,CA0BV;AA1BD,WAAU,CAAC;IACV,MAAa,YAA4B,SAAQ,OAAe;QAC/D,IAAI,CAA+C;QACnD,IAAI,CAAwB;QAE5B,YACC,QAGS;YAET,IAAI,IAAmD,CAAA;YACvD,IAAI,IAA4B,CAAA;YAEhC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACd,IAAI,GAAG,CAAC,CAAA;gBACR,IAAI,GAAG,CAAC,CAAA;gBACR,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YACjB,CAAC,CAAC,CAAA;YAEF,IAAI,CAAC,IAAI,GAAG,IAAK,CAAA;YACjB,IAAI,CAAC,IAAI,GAAG,IAAK,CAAA;QAClB,CAAC;KAED;IAvBY,cAAY,eAuBxB,CAAA;AAEF,CAAC,EA1BS,CAAC,KAAD,CAAC,QA0BV;;;;AC1BD,IAAU,CAAC,CAcV;AAdD,WAAU,CAAC;IAEV,SAAgB,uBAAuB,CAAW,OAAe;QAChE,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAA;QAClC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,kBAAkB,CAAE,OAAO,EAAG,GAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAE,CAAA;QACzE,OAAO,MAAM,CAAC,MAAM,CAAE,OAAO,EAAE;YAC9B,UAAU,EAAE,GAAE,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE;SAClC,CAAE,CAAA;IACJ,CAAC;IANe,yBAAuB,0BAMtC,CAAA;IAED,SAAgB,iBAAiB,CAAW,OAAe;QAC1D,OAAO,IAAI,CAAC,cAAc,CAAE,IAAI,CAAE,CAAC,uBAAuB,CAAE,OAAO,CAAE,CAAA;IACtE,CAAC;IAFe,mBAAiB,oBAEhC,CAAA;AAEF,CAAC,EAdS,CAAC,KAAD,CAAC,QAcV;;;;ACdD,IAAU,CAAC,CAqEV;AArED,WAAU,CAAC;IAEV,gHAAgH;IAChH,MAAa,aAAc,SAAQ,YAAY;QAGvC,AAAP,MAAM,CAAC,KAAK,CAAE,IAAe;YAC5B,OAAO,IAAI,CAAA;QACZ,CAAC;QAGM,AAAP,MAAM,CAAC,KAAK,CAAE,KAAuC;YAEpD,MAAM,IAAI,GAAG,eAAe,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAE,KAAK,CAAE,CAAE,CAAA;YACxD,IAAI,IAAS,CAAA;YAEb,IAAI,CAAC;gBACJ,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;YACpB,CAAC;oBAAS,CAAC;gBAEV,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAG,CAAC;oBACnC,IAAI,GAAG,YAAY,eAAe,EAAG,CAAC;wBACrC,IAAI,CAAC,KAAK,CAAE,GAAG,CAAE,CAAA;oBAClB,CAAC;gBACF,CAAC;YAEF,CAAC;YAED,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI;gBAAG,OAAO,IAAI,CAAA;YAErC,IAAI,iBAAiB,CAAE,IAAI,EAAE,IAAI,CAAE,EAAG,CAAC;gBAEtC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;oBACrB,OAAO,EAAE,SAAS;oBAClB,KAAK,EAAE,KAAK;iBACZ,CAAC,CAAA;YAEH,CAAC;iBAAM,IAAI,IAAI,KAAK,SAAS,EAAG,CAAC;gBAEhC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;oBACrB,OAAO,EAAE,SAAS;oBAClB,KAAK,EAAE,KAAK;oBACZ,IAAI;iBACJ,CAAC,CAAA;YAEH,CAAC;YAED,OAAO,IAAI,CAAA;QACZ,CAAC;QAGM,AAAP,MAAM,CAAC,MAAM;YAEZ,IAAI,CAAC;gBACJ,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,CAAA;YACjB,CAAC;YAAC,OAAO,KAAK,EAAG,CAAC;gBACjB,aAAa,CAAE,KAAK,CAAE,CAAA;YACvB,CAAC;oBAAS,CAAC;gBACV,KAAK,MAAM,GAAG,IAAM,cAAc,EAAwC,CAAC,QAAQ,EAAG,CAAC;oBACtF,IAAI,GAAG,YAAY,eAAe,EAAG,CAAC;wBACrC,IAAI,CAAC,KAAK,CAAE,GAAG,CAAE,CAAA;oBAClB,CAAC;gBACF,CAAC;YACF,CAAC;QAEF,CAAC;KAED;IA7DO;QADL,QAAQ;oCAGT;IAGM;QADL,YAAY;oCAsCb;IAGM;QADL,QAAQ;qCAeT;IA9DW,eAAa,gBAgEzB,CAAA;AAEF,CAAC,EArES,CAAC,KAAD,CAAC,QAqEV;;;;ACrED,IAAU,CAAC,CA2GV;AA3GD,WAAU,GAAC;IAEV,SAAgB,SAAS,CAAE,GAAiE;QAE3F,KAAK,IAAI,IAAI,IAAI,GAAG,EAAG,CAAC;YAEvB,MAAM,IAAI,GAAG,GAAG,CAAE,IAAI,CAAE,CAAA;YACxB,MAAM,IAAI,GAAG,CAAE,OAAO,IAAI,KAAK,QAAQ,CAAE,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAE,EAAE,EAAG,IAAI,CAAe,CAAC,CAAC,CAAC,IAAI,CAAA;YAEzF,IAAA,aAAa,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;QAC3B,CAAC;QAED,kBAAkB,EAAE,CAAA;IACrB,CAAC;IAXe,aAAS,YAWxB,CAAA;IAEU,mBAAe,GAAG,EAAqC,CAAA;IAErD,iBAAa,GAAG,EAAoC,CAAA;IAE1D,KAAK,UAAU,aAAa;QAElC,KAAK,IAAI,IAAI,IAAI,IAAA,aAAa,EAAG,CAAC;YAEjC,IAAI,OAAO,GAAG,MAAM,CAAC,MAAM,CAAE,EAAE,CAAE,CAAA;YACjC,KAAK,IAAI,IAAI,IAAI,IAAA,eAAe;gBAAG,MAAM,IAAI,CAAE,OAAO,CAAE,CAAA;YAExD,MAAM,GAAG,GAAG,IAAI,CAAE,OAAO,CAAE,CAAA;YAC3B,IAAI,iBAAiB,CAAE,GAAG,CAAE,EAAG,CAAC;gBAC/B,MAAM,IAAI,OAAO,CAAE,CAAE,IAAI,EAAE,IAAI,EAAE,EAAE;oBAClC,GAAG,CAAC,IAAI,CAAE,IAAI,EAAE,IAAI,CAAE,CAAA;oBACtB,UAAU,CAAE,GAAE,EAAE,CAAC,IAAI,CAAE,IAAI,KAAK,CAAE,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAE,CAAE,EAAE,IAAI,CAAE,CAAA;gBAC3E,CAAC,CAAE,CAAA;YACJ,CAAC;QAEF,CAAC;QAED,EAAE,CAAC,cAAc,CAAC;YACjB,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE,kBAAkB;YAC3B,KAAK,EAAE,IAAA,aAAa,CAAC,MAAM;SAC3B,CAAC,CAAA;IAEH,CAAC;IAvBqB,iBAAa,gBAuBlC,CAAA;IAED,IAAI,SAAS,GAAG,KAAK,CAAA;IACrB,SAAgB,kBAAkB;QAEjC,IAAI,SAAS;YAAG,OAAM;QACtB,SAAS,GAAG,IAAI,CAAA;QAEhB,UAAU,CAAE,KAAK,IAAG,EAAE;YAErB,SAAS,GAAG,KAAK,CAAA;YAEjB,MAAM,aAAa,EAAE,CAAA;YACrB,EAAE,CAAC,kBAAkB,EAAE,CAAA;QAExB,CAAC,EAAG,IAAI,CAAE,CAAA;IAEX,CAAC;IAde,sBAAkB,qBAcjC,CAAA;IAED,IAAA,eAAe,CAAC,IAAI,CAAE,OAAO,CAAC,EAAE;QAC/B,IAAI,IAAI,GAAG,CAAC,CAAA;QAEZ,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAE,IAAI,CAAE,CAAA;QACpC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,GAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAE,IAAI,EAAE,CAAE,CAAA;QAE7C,MAAM,SAAS,GAAG,CAAE,gBAAgB,EAAG,OAAO,CAAW,CAAA;QAEzD,KAAK,IAAI,GAAG,IAAI,SAAS,EAAG,CAAC;YAC5B,OAAO,CAAE,GAAG,CAAE,GAAG,IAAI,KAAK,CAAE,cAAW,CAAQ,EAAG;gBACjD,GAAG;oBACF,gBAAgB,CAAE,IAAI,KAAK,CAAE,GAAI,GAAI,wBAAwB,CAAE,CAAE,CAAA;gBAClE,CAAC;gBACD,KAAK;oBACJ,gBAAgB,CAAE,IAAI,KAAK,CAAE,GAAI,GAAI,wBAAwB,CAAE,CAAE,CAAA;gBAClE,CAAC;aACD,CAAE,CAAA;QACJ,CAAC;IAEF,CAAC,CAAE,CAAA;IAEH,SAAS,CAAC;QAET,oBAAoB,CAAE,CAAC;YACtB,OAAO,CAAC,MAAM,CAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAE,CAAA;YACvC,OAAO,CAAC,MAAM,CAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAA;QAClD,CAAC;QAED,0BAA0B,CAAE,CAAC;YAC5B,IAAI,CAAC;gBACJ,OAAO,CAAC,MAAM,CAAE,KAAK,IAAI,CAAC,CAAC,cAAc,CAAE,CAAA;YAC5C,CAAC;YAAC,OAAO,KAAU,EAAG,CAAC;gBACtB,OAAO,CAAC,MAAM,CAAE,KAAK,CAAC,OAAO,KAAK,sCAAsC,CAAE,CAAA;YAC3E,CAAC;QACF,CAAC;QAED,iBAAiB,CAAE,CAAC;YACnB,IAAI,CAAC;gBACJ,OAAO,CAAC,MAAM,CAAE,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAE,CAAA;YACnC,CAAC;YAAC,OAAO,KAAU,EAAG,CAAC;gBACtB,OAAO,CAAC,MAAM,CAAE,KAAK,CAAC,OAAO,KAAK,6BAA6B,CAAE,CAAA;YAClE,CAAC;QACF,CAAC;KAED,CAAC,CAAA;AAEH,CAAC,EA3GS,CAAC,KAAD,CAAC,QA2GV;;;;AC3GD,IAAU,CAAC,CAMV;AAND,WAAU,CAAC;IAEV,SAAgB,kBAAkB;QACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAChB,CAAC;IAFe,oBAAkB,qBAEjC,CAAA;AAEF,CAAC,EANS,CAAC,KAAD,CAAC,QAMV;;;;ACND,IAAU,CAAC,CAIV;AAJD,WAAU,CAAC;AAIX,CAAC,EAJS,CAAC,KAAD,CAAC,QAIV;;;;;;;ACJD,IAAU,CAAC,CAUV;AAVD,WAAU,CAAC;IAEV,MAAM,GAAG,GAAG,OAAO,CAAA,MAAM,CAAE,QAAQ,CAAqC,CAAA;IACxE,MAAM,SAAS,GAAG,GAAG,CAAC,cAAc,CAAA;IAEpC,SAAgB,oBAAoB,CAAC,IAAY;QAChD,IAAK,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAAG,OAAO,IAAI,CAAA;QAC3C,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAHe,sBAAoB,uBAGnC,CAAA;AAEF,CAAC,EAVS,CAAC,KAAD,CAAC,QAUV;;;;ACVD,IAAU,CAAC,CAqBV;AArBD,WAAU,CAAC;IACV,MAAM,IAAI,GAAG,OAAO,CAAA,MAAM,CAAE,MAAM,CAAmC,CAAA;IACrE,MAAM,GAAG,GAAG,OAAO,CAAA,MAAM,CAAE,QAAQ,CAAqC,CAAA;IACxE,MAAM,YAAY,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC,CAAA;IAEhF,SAAgB,iBAAiB,CAAiB,IAAY;QAC7D,IAAI,CAAC;YACJ,YAAY,CAAC,OAAO,CAAE,IAAI,CAAE,CAAA;QAC7B,CAAC;QAAC,MAAM,CAAC;YAER,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAE,KAAK,EAAG,SAAS,EAAG,YAAY,EAAE,IAAI,CAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAA;YAEtF,IAAI,CAAC;gBACJ,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAE,KAAK,EAAG,SAAS,EAAG,YAAY,EAAE,SAAS,GAAG,IAAI,CAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAA;YACnG,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,IAAI,IAAI,CAAC,iBAAiB,CAAE,CAAC,CAAE;oBAAG,IAAI,CAAC,gBAAgB,CAAE,CAAC,CAAE,CAAA;gBAC5D,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA;YACtB,CAAC;QAEF,CAAC;IACF,CAAC;IAfe,mBAAiB,oBAehC,CAAA;AACF,CAAC,EArBS,CAAC,KAAD,CAAC,QAqBV;;;;ACjBD,IAAI,KAAK,GAAG,IAAI,KAAK,CAAE,EAAE,OAAO,EAAS,EAAG;IAE3C,GAAG,CAAE,MAAM,EAAG,IAAa,EAAG,OAAO;QAEpC,IAAI,MAAM,CAAE,IAAI,CAAE;YAAG,OAAO,MAAM,CAAE,IAAI,CAAE,CAAA;QAE1C,IAAI,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC;YAAG,OAAO,MAAM,CAAC,OAAO,CAAG,IAAI,CAAE,CAAA;QACjE,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG;YAAG,OAAO,MAAM,CAAC,OAAO,CAAE,IAAI,CAAE,CAAA;QAEnD,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;QAEzB,OAAO,MAAM,CAAC,OAAO,CAAE,IAAI,CAAE,CAAA;IAC9B,CAAC;IAED,GAAG,CAAE,MAAM,EAAG,IAAa,EAAG,KAAK;QAClC,MAAM,CAAE,IAAI,CAAE,GAAG,KAAK,CAAA;QACtB,OAAO,IAAI,CAAA;IACZ,CAAC;CAED,CAAW,CAAA;AAEZ,OAAO,GAAG,CAAE,GAAG,CAAC,EAAE,CACjB,MAAM,CAAC,MAAM,CAAE,SAAS,OAAO,CAAE,IAAa;IAC7C,OAAO,KAAK,CAAE,IAAI,CAAE,CAAA;AACrB,CAAC,EAAG,GAAG,CAAE,CACT,CAAE,OAAO,CAAE,CAAA;;;;AC7BZ,IAAU,CAAC,CAaV;AAbD,WAAU,GAAC;IAEV,SAAS,CAAC;QAET,sBAAsB,CAAC,CAAC;YACvB,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAE,CAAC,EAAG,EAAE,mBAAmB,EAAG,CAAE,GAAE,EAAE,CAAC,GAAE,EAAE,GAAE,CAAC,CAAE,EAAE,EAAE,CAAE,CAAA;YAC5E,iBAAiB,CAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,EAAG,EAAE,CAAE,CAAA;YACrD,iBAAiB,CAAE,EAAE,CAAC,cAAc,CAAE,EAAE,CAAC,mBAAmB,CAAE,EAAG,qBAAqB,CAAE,CAAA;YACxF,iBAAiB,CAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,EAAG,qBAAqB,CAAE,CAAA;QACzE,CAAC;KAED,CAAC,CAAA;AAEH,CAAC,EAbS,CAAC,KAAD,CAAC,QAaV;;;;ACbD,IAAU,CAAC,CA8DV;AA9DD,WAAU,CAAC;IAEV,SAAS,eAAe,CAAC,KAAc;QACtC,OAAO,IAAI,CAAC,SAAS,CAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAE;aACxC,OAAO,CAAC,IAAI,EAAC,GAAG,CAAC;aACjB,OAAO,CAAC,IAAI,EAAC,IAAI,CAAC,CAAA;IACrB,CAAC;IAED,SAAS,eAAe,CAAC,KAAsB;QAC9C,OAAO,CAAE,OAAO,KAAK,KAAM,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAE;aACpE,IAAI,EAAE;aACN,OAAO,CAAE,OAAO,EAAE,QAAQ,CAAE;aAC5B,OAAO,CAAE,qBAAqB,EAAE,iBAAiB,CAAE,CAAA;IACtD,CAAC;IAED,MAAa,cAAwC,SAAQ,cAAc;QAMhE;QAJV,IAAI,GAAG,EAAE,CAAC,cAAc,CAAE,IAAI,CAAC,WAAW,CAAE,CAAC,OAAO,CAAE,KAAK,EAAE,EAAE,CAAE,GAAG,QAAQ,CAAA;QAE5E,YACC,OAAe,EACN,QAAQ,EAAW,EAC5B,GAAI,MAAwB;YAG5B,KAAK,CAAE,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,CAAE,CAAA;YAJ1B,UAAK,GAAL,KAAK,CAAc;YAM5B,MAAM,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAE,IAAI,EAAE,OAAO,CAAE,CAAA;YAC7D,MAAM,SAAS,GAAG,GAAE,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,OAAO,CAAA;YAElF,MAAM,CAAC,cAAc,CAAE,IAAI,EAAE,OAAO,EAAE;gBACrC,GAAG,EAAE,GAAE,EAAE,CAAC,SAAS,EAAE,GAAG,IAAI,GAAG;oBAC7B,IAAI,CAAC,KAAK,IAAI,UAAU;oBACxB,GAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAE,CAAC,CAAC,EAAE,CAAC;wBAC7B,MAAM,CAAE,CAAC,CAAC,KAAK,CAAE;wBACjB,GAAI,CAAC,YAAY,cAAc,IAAI,CAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,KAAK,CAAE;qBAC/D,CAAE;iBACH,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;aAClC,CAAE,CAAA;YAEH,mDAAmD;YACnD,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE;gBACpC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK;aAChB,CAAC,CAAA;QACH,CAAC;QAED,MAAM,CAAC,CAAE,MAAM,CAAC,WAAW,CAAE;YAC5B,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAA;QACvB,CAAC;QAED,MAAM,CAAC,QAAQ;YACd,OAAO,EAAE,CAAC,cAAc,CAAE,IAAI,CAAE,CAAA;QACjC,CAAC;QAED,MAAM,CAAC,IAAI,CACV,GAAG,MAAoD;YAEvD,OAAO,IAAI,IAAI,CAAC,GAAG,MAAM,CAAC,CAAA;QAC3B,CAAC;KAED;IA7CY,gBAAc,iBA6C1B,CAAA;AAEF,CAAC,EA9DS,CAAC,KAAD,CAAC,QA8DV;;;;AC9DD,IAAU,CAAC,CAmDV;AAnDD,WAAU,CAAC;IACV,SAAS,CAAC;QAET,WAAW;YAEV,MAAM,OAAQ,SAAQ,cAAc;aAAG;YACvC,MAAM,GAAG,GAAG,IAAI,OAAO,CAAE,KAAK,CAAE,CAAA;YAEhC,iBAAiB,CAAE,GAAG,CAAC,IAAI,EAAE,eAAe,CAAE,CAAA;QAE/C,CAAC;QAED,WAAW;YAEV,MAAM,GAAG,GAAG,IAAI,cAAc,CAAE,KAAK,EAAE,EAAE,EACxC,IAAI,KAAK,CAAE,KAAK,CAAE,EAClB,IAAI,KAAK,CAAE,KAAK,CAAE,CAClB,CAAA;YAED,iBAAiB,CAAE,GAAG,CAAC,OAAO,EAAE,KAAK,CAAE,CAAA;YACvC,iBAAiB,CAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAE,EAAE,CAAE,KAAK,EAAE,KAAK,CAAE,CAAE,CAAA;QAExE,CAAC;QAED,yBAAyB;YAExB,MAAM,OAAQ,SAAQ,cAGpB;aAAG;YAEL,MAAM,GAAG,GAAY,IAAI,cAAc,CAAE,gBAAgB,EAAE,EAAE,EAC5D,IAAI,OAAO,CAAE,WAAW,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,CAAE,EACtE,IAAI,OAAO,CAAE,YAAY,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAE,CAC/E,CAAA;YAED,MAAM,KAAK,GAAG,EAAc,CAAA;YAE5B,IAAI,GAAG,YAAY,cAAc,EAAG,CAAC;gBACpC,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,MAAM,EAAG,CAAC;oBAC9B,IAAI,EAAE,YAAY,OAAO,EAAG,CAAC;wBAC5B,KAAK,CAAC,IAAI,CAAE,EAAE,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE,CAAE,CAAA;oBACnC,CAAC;gBACF,CAAC;YACF,CAAC;YAED,iBAAiB,CAAE,KAAK,EAAE,CAAE,aAAa,EAAE,qBAAqB,CAAE,CAAE,CAAA;QAErE,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EAnDS,CAAC,KAAD,CAAC,QAmDV;;;;;;;;;;;;;;;;;;;;;;ACnDD,IAAU,CAAC,CA2BV;AA3BD,WAAU,GAAC;IACV,SAAS,CAAE;QAEV,oBAAoB;YACnB,MAAM,CAAE,SAAQ,WAAW;gBAC1B,GAAG;oBACF,OAAO,CAAC,CAAA;gBACT,CAAC;aACD;YAED,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACd,GAAG,EAAG,GAAE,EAAE,CAAC,CAAC;aACZ,CAAC,CAAA;YAEF,iBAAiB,CAAE,CAAC,CAAC,GAAG,EAAE,EAAG,CAAC,CAAE,CAAA;QACjC,CAAC;QAED,yCAAyC,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;YACjC,MAAM,CAAE,SAAQ,CAAC,CAAC,WAAW;gBAC5B,MAAM,CAAC,CAAC,GAAG,MAAM,CAAA;;YAGlB,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;QACrC,CAAC;KAED,CAAE,CAAA;AACJ,CAAC,EA3BS,CAAC,KAAD,CAAC,QA2BV;;;;AC3BD,IAAU,CAAC,CAIV;AAJD,WAAU,CAAC;IACV,SAAgB,QAAQ;QACvB,OAAO,EAA0C,CAAA;IAClD,CAAC;IAFe,UAAQ,WAEvB,CAAA;AACF,CAAC,EAJS,CAAC,KAAD,CAAC,QAIV;;;;ACJD,IAAU,CAAC,CAIV;AAJD,WAAU,CAAC;IACV,CAAC,CAAC,QAAQ,GAAG,SAAS,QAAQ;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAA;IACxB,CAAC,CAAA;AACF,CAAC,EAJS,CAAC,KAAD,CAAC,QAIV;;;;ACJD,IAAU,CAAC,CAsEV;AAtED,WAAU,GAAC;IAEV,SAAS,CAAC;QAET,YAAY,CAAE,CAAC;YACd,MAAM,CAAC;gBACN,MAAM,CAAC,CAAC;oBACP,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;gBAC3B,CAAC;gBAED,MAAM,CAAC,CAAC;oBACP,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;gBAChC,CAAC;aACD;QAGF,CAAC;QAED,KAAK,CAAC,uBAAuB,CAAE,CAAC;YAC/B,IAAI,KAAK,GAAG,CAAC,CAAA;YACb,MAAM,CAAC;gBACN,MAAM,CAAC,CAAC;oBACP,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;gBAChC,CAAC;gBAED,MAAM,CAAC,CAAC,KAAK,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAA,CAAC,CAAC;aAC9C;YAGD,iBAAiB,CAAC,MAAM,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;QAE1D,CAAC;QAED,KAAK,CAAC,eAAe,CAAE,CAAC;YACvB,IAAI,KAAK,GAAG,CAAC,CAAA;YACb,MAAM,CAAC;gBACN,MAAM,CAAC,CAAC;oBACP,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;gBAChC,CAAC;gBAED,MAAM,CAAC,CAAC,KAAK,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAA,CAAC,CAAC;aAC9C;YAGD,iBAAiB,CAAC,MAAM,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;QAE1D,CAAC;QAED,KAAK,CAAC,uBAAuB,CAAE,CAAC;YAC/B,MAAM,CAAC;gBACN,MAAM,CAAC,SAAS,GAAG,EAAS,CAAA;gBAE5B,MAAM,CAAC,CAAC;oBACP,MAAM,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;oBACnC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAE,CAAC,CAAE,CAAA;oBACxB,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;gBACzB,CAAC;gBAED,MAAM,CAAC,CAAC,KAAK,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA,CAAC,CAAC;;YAGxC,MAAM,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;YAC5B,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;YACxC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,CAAA;YAEpD,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;QAElD,CAAC;KACD,CAAC,CAAA;AAEH,CAAC,EAtES,CAAC,KAAD,CAAC,QAsEV;;;;ACtED,IAAU,CAAC,CAWV;AAXD,WAAU,GAAC;IAEV,eAAe,CAAC,IAAI,CAAE,CAAC,CAAC,EAAE;QACzB,CAAC,CAAC,cAAc,GAAG,GAAE,EAAE,GAAE,CAAC,CAAA;QAC1B,CAAC,CAAC,cAAc,GAAG,GAAE,EAAE,GAAE,CAAC,CAAA;QAC1B,CAAC,CAAC,cAAc,GAAG,GAAE,EAAE,GAAE,CAAC,CAAA;QAC1B,CAAC,CAAC,cAAc,GAAG,GAAE,EAAE,GAAE,CAAC,CAAA;QAC1B,CAAC,CAAC,cAAc,GAAG,GAAE,EAAE,GAAE,CAAC,CAAA;QAC1B,CAAC,CAAC,cAAc,GAAG,GAAE,EAAE,CAAC,GAAE,EAAE,GAAE,CAAC,CAAA;IAChC,CAAC,CAAE,CAAA;AAEJ,CAAC,EAXS,CAAC,KAAD,CAAC,QAWV;;;;ACXD,IAAU,CAAC,CAmLV;AAnLD,WAAU,CAAC;IAQV,MAAa,cAAe,SAAQ,cAOlC;KAAG;IAPQ,gBAAc,iBAOtB,CAAA;IAEQ,gBAAc,GAAG,CAC7B,GAAG,IAAwD,EAC1D,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAA;IAE7B,qBAAmB,GAAG,CAClC,GAAG,IAA4D,EAC9D,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAA;IAS9C,MAAa,QAAS,SAAQ,WAAW;QAExC,MAAM,CAAC,aAAa;YACnB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,eAAe,CAAC,CAAC,CAAA;QACnD,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,OAAyB;YACrC,MAAM,IAAI,GAAG,CAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAA;YAClE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;YAE5C,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,WAAW,CAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAE,CAAA;QACrE,CAAC;QAED,MAAM,CAAC,WAAW,CACjB,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAyC;YAE3E,MAAM,QAAQ,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAE,GAAG,CAAE,CAAC,CAAC,CAAC,OAAO,CAAA;YAC7E,MAAM,CAAE,GAAG,EAAE,GAAG,IAAI,CAAE,GAAG,QAAQ,CAAA;YACjC,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;YAE3C,MAAM,UAAU,GAAG;gBAClB,KAAK,EAAE,GAAG,IAAI,UAAU;gBACxB,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC3B,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAE,EAAE,EAAG,GAAG,CAAE;aACpC,CAAA;YAED,IAAI,IAAI,EAAE,CAAC;gBAEV,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;oBACrB,IAAI,EAAE,kBAAkB;oBACxB,GAAG,UAAU;iBACb,CAAC,CAAA;gBAEF,IAAI,KAAwB,CAAA;gBAC5B,IAAI,GAAG,CAAA;gBAEP,IAAI,CAAC;oBACJ,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;oBACjD,KAAK,GAAG,GAAG,CAAC,KAAK,CAAA;gBAClB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,KAAK,GAAG,GAAY,CAAA;gBACrB,CAAC;gBAED,IAAI,CAAE,GAAG,IAAI,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;oBAClC,MAAM,IAAI,cAAc,CACvB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EACvB,EAAE,GAAG,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAC3D,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CACzB,CAAA;gBACF,CAAC;gBAED,OAAO,GAAG,CAAA;YACX,CAAC;YAED,IAAI,GAAG,CAAA;YAEP,IAAI,CAAC;gBACJ,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE;oBACtC,GAAG,IAAI;oBACP,KAAK,EAAE,CAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAE;iBACvC,CAAC,CAAA;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,IAAI,cAAc,CACvB,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAC7B,UAAU,EACV,KAAc,CACd,CAAA;YACF,CAAC;YAED,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;YAExB,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;gBACrB,GAAG,UAAU;gBACb,GAAG;aACH,CAAC,CAAA;YAEF,IAAI,YAAY,GAAG,KAAK,CAAA;YACxB,IAAI,KAAgD,CAAA;YAEpD,MAAM,QAAQ,GAAG,EAAc,CAAA;YAC/B,MAAM,UAAU,GAAG,EAAc,CAAA;YAEjC,MAAM,GAAG,GAAG,CAAC,SAAkB,EAAE,WAAoB,EAAE,EAAE;gBACxD,IAAI,SAAS;oBAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;gBACvC,IAAI,WAAW;oBAAE,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;gBAC7C,IAAI,CAAE,OAAO;oBAAE,OAAM;gBAErB,YAAY,CAAC,KAAK,CAAC,CAAA;gBAEnB,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;oBACvB,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;oBACnD,YAAY,GAAG,IAAI,CAAA;oBACnB,GAAG,EAAE,CAAA;oBACL,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBACjB,CAAC,EAAE,OAAO,CAAC,CAAA;YACZ,CAAC,CAAA;YAED,GAAG,EAAE,CAAA;YAEL,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAE,CAAA;YAC1C,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAE,CAAA;YAErD,MAAM,cAAc,GAAG,IAAI,OAAO,CAAyB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;gBACzE,MAAM,KAAK,GAAG,CAAC,KAAmB,EAAE,SAAwB,IAAI,EAAE,SAAgC,IAAI,EAAE,EAAE;oBACzG,IAAI,CAAE,KAAK,IAAI,OAAO;wBAAE,OAAM;oBAE9B,YAAY,CAAC,KAAK,CAAC,CAAA;oBACnB,KAAK,GAAG,SAAS,CAAA;oBAEjB,MAAM,GAAG,GAAG;wBACX,GAAG;wBACH,MAAM;wBACN,IAAI,MAAM,KAAK,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA,CAAC,CAAC;wBAC/C,IAAI,MAAM,KAAK,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA,CAAC,CAAC;qBACjD,CAAA;oBAED,IAAI,KAAK,IAAI,MAAM,IAAI,YAAY;wBAAE,OAAO,IAAI,CAAE,IAAI,cAAc,CACnE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAC3D,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,EACpD,GAAG,KAAK,CAAC,CAAC,CAAC,CAAE,KAAK,CAAE,CAAC,CAAC,CAAC,EAAE,CACzB,CAAE,CAAA;oBAEH,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;wBACrB,GAAG,UAAU;wBACb,GAAG;qBACH,CAAC,CAAA;oBAEF,IAAI,CAAC,GAAG,CAAC,CAAA;gBACV,CAAC,CAAA;gBAED,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAE,CAAA;gBAC7D,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAE,CAAA;gBACnC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAE,CAAA;YACjE,CAAC,CAAC,CAAA;YAEF,OAAO,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE;oBACvD,YAAY,CAAC,KAAK,CAAC,CAAA;oBACnB,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;gBACpB,CAAC,EAAE,CAAC,CAAA;QACL,CAAC;QAED,MAAM,CAAC,aAAa,CAAC,GAA4B;YAChD,OAAO,GAAG,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,GAAG,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,WAAW,CAAA;QACvE,CAAC;KACD;IAjJY,UAAQ,WAiJpB,CAAA;AAEF,CAAC,EAnLS,CAAC,KAAD,CAAC,QAmLV;;;;ACnLD,IAAU,CAAC,CAqDV;AArDD,WAAU,GAAC;IACV,SAAS,CAAE;QACV,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC7C,IAAI,UAAU,GAAG,GAAG,EAAE,GAAE,CAAC,CAAA;YACzB,MAAM,aAAa,GAAG,oBAAoB,CAAA;YAE1C,SAAS,uBAAuB;gBAC/B,OAAO;oBACN,MAAM,EAAE,EAAE;oBACV,MAAM,EAAE,aAAa;oBACrB,MAAM,EAAE,EAAE;oBACV,MAAM,EAAE,CAAC;oBACT,MAAM,EAAE,IAAI;oBACZ,GAAG,EAAE,GAAG;iBACR,CAAA;YACF,CAAC;YAED,SAAS,kBAAkB;gBAC1B,OAAO;oBACN,EAAE,CAAC,IAAY,EAAE,EAAc;wBAC9B,IAAI,IAAI,KAAK,MAAM;4BAAE,UAAU,GAAG,EAAE,CAAA;oBACrC,CAAC;oBACD,IAAI,KAAK,UAAU,EAAE,CAAA,CAAC,CAAC;iBAChB,CAAA;YACT,CAAC;YAED,MAAM,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC;gBACnC,mBAAmB,EAAE,uBAAuB;gBAC5C,cAAc,EAAE,kBAAkB;aAClC,CAAC,CAAA;YAEF,MAAM,aAAc,SAAQ,QAAQ;gBACnC,MAAM,KAAK,CAAC,KAAK,OAAO,YAAY,CAAA,CAAC,CAAC;gBACtC,MAAM,CAAU,aAAa;oBAC5B,OAAO,IAAI,CAAA;gBACZ,CAAC;aACD;YAED,IAAI,OAAO,GAAG,EAAE,CAAA;YAChB,IAAI,CAAC;gBACJ,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC;oBACtD,OAAO,EAAE,UAAU;oBACnB,GAAG,EAAE,GAAG;oBACR,OAAO,EAAE,EAAE;oBACX,GAAG,EAAE,EAAE,eAAe,EAAE,GAAG,EAAE;iBAC7B,CAAC,CAAA;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,OAAO,GAAG,CAAW,CAAC,OAAO,CAAA;YAC9B,CAAC;YACD,iBAAiB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;QAC1C,CAAC;KAED,CAAE,CAAA;AACJ,CAAC,EArDS,CAAC,KAAD,CAAC,QAqDV;;;;ACrDD,IAAU,CAAC,CAIV;AAJD,WAAU,CAAC;IAEV,CAAC,CAAC,gBAAgB,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAE,EAAE,EAAG,EAAE,GAAG,EAAG,UAAW,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,WAAY,GAAG,EAAE,CAAE,CAAC,MAAa,CAAA;AAE5H,CAAC,EAJS,CAAC,KAAD,CAAC,QAIV;;;;ACJD,IAAU,CAAC,CAIV;AAJD,WAAU,CAAC;IAEC,UAAQ,GAAG,gBAAgB,CAAA;AAEvC,CAAC,EAJS,CAAC,KAAD,CAAC,QAIV;;;;ACJD,IAAU,CAAC,CAuDV;AAvDD,WAAU,CAAC;IAEV,SAAgB,wBAAwB,CACvC,EAA+B,EAC/B,UAAqD;QAErD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAA0B,UAAU,CAAE,CAAA;QAE9D,IAAI,QAAQ,GAAiB,EAAE,CAAC,UAAU,CAAA;QAC1C,KAAK,IAAI,IAAI,IAAI,UAAU,EAAG,CAAC;YAE9B,IAAI,IAAI,IAAI,IAAI;gBAAG,SAAQ;YAE3B,IAAI,IAAI,YAAY,gBAAgB,CAAC,IAAI,EAAG,CAAC;gBAE5C,OAAO,IAAI,EAAG,CAAC;oBACd,IAAI,CAAC,QAAQ,EAAG,CAAC;wBAChB,EAAE,CAAC,WAAW,CAAE,IAAI,CAAE,CAAA;wBACtB,MAAK;oBACN,CAAC;oBACD,IAAI,QAAQ,IAAI,IAAI,EAAG,CAAC;wBACvB,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAA;wBAC/B,MAAK;oBACN,CAAC;yBAAM,CAAC;wBACP,IAAI,QAAQ,CAAC,GAAG,CAAE,QAAQ,CAAE,EAAG,CAAC;4BAC/B,EAAE,CAAC,YAAY,CAAE,IAAI,EAAG,QAAQ,CAAE,CAAA;4BAClC,MAAK;wBACN,CAAC;6BAAM,CAAC;4BACP,MAAM,EAAE,GAAG,QAAQ,CAAC,WAAW,CAAA;4BAC/B,EAAE,CAAC,WAAW,CAAE,QAAQ,CAAE,CAAA;4BAC1B,QAAQ,GAAG,EAAE,CAAA;wBACd,CAAC;oBACF,CAAC;gBACF,CAAC;YAEF,CAAC;iBAAM,CAAC;gBACP,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,KAAK,OAAO,EAAG,CAAC;oBAChD,MAAM,GAAG,GAAG,MAAM,CAAE,IAAI,CAAE,CAAA;oBAC1B,IAAI,QAAQ,CAAC,SAAS,KAAK,GAAG;wBAAG,QAAQ,CAAC,SAAS,GAAG,GAAG,CAAA;oBACzD,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAA;gBAChC,CAAC;qBAAM,CAAC;oBACP,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAE,MAAM,CAAE,IAAI,CAAE,CAAE,CAAA;oBAC3E,EAAE,CAAC,YAAY,CAAE,QAAQ,EAAG,QAAQ,CAAE,CAAA;gBACvC,CAAC;YACF,CAAC;QAEF,CAAC;QAED,OAAO,QAAQ,EAAG,CAAC;YAClB,MAAM,QAAQ,GAAG,QAAQ,CAAA;YACzB,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAA;YAC/B,EAAE,CAAC,WAAW,CAAE,QAAQ,CAAE,CAAA;QAC3B,CAAC;IACF,CAAC;IAnDe,0BAAwB,2BAmDvC,CAAA;AAEF,CAAC,EAvDS,CAAC,KAAD,CAAC,QAuDV;;;;;;;;;;ACvDD,IAAU,CAAC,CASV;AATD,WAAU,CAAC;IAEV,SAAgB,kBAAkB,CACjC,IAAU;QAEV,MAAM,UAAU,GAAG,IAAI,gBAAgB,CAAC,aAAa,CAAA;QACrD,OAAO,UAAU,CAAC,iBAAiB,CAAE,IAAI,CAAE,CAAA;IAC5C,CAAC;IALe,oBAAkB,qBAKjC,CAAA;AAEF,CAAC,EATS,CAAC,KAAD,CAAC,QASV;;;;ACTD,IAAU,CAAC,CA6NV;AA7ND,WAAU,CAAC;IAEC,iBAAe,GAAG,EAAE,CAAA;IACpB,iBAAe,GAAG,EAAE,CAAA;IAEpB,iBAAe,GAAG,IAA4B,CAAA;IAE9C,mBAAiB,GAAgD;QAC3E,cAAc,EAAG,GAAE,EAAE,CAAC,IAAI;QAC1B,eAAe,EAAG,CAAE,KAAa,EAAE,IAAa,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAE,KAAK,EAAE,IAAI,CAAS;QACpH,sBAAsB,EAAG,GAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,sBAAsB,EAAE;KAChF,CAAA;IAEY,eAAa,GAAG,EAAE,CAAA;IAE/B;;;;;OAKG;IACH,SAAgB,QAAQ,CAIvB,IAC6D,EAC7D,KAAa,EACb,GAAI,UAAqB;QAGzB,MAAM,EAAE,GAAG,KAAK,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,CAAA;QAClC,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EAAA,eAAe,CAAC,CAAC,CAAC,EAAA,eAAe,GAAG,GAAG,GAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAA,eAAe,CAAA;QACpF,MAAM,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC,EAAA,eAAe,CAAC,OAAO,CAAE,QAAQ,EAAE,MAAO,EAAE,CAAC,OAAO,CAAE,OAAO,EAAE,EAAE,CAAG,EAAE,CAAE,CAAC,CAAC,CAAC,EAAA,eAAe,CAAA;QAEnH,IAAI,IAAI,IAAI,EAAA,eAAe,EAAG,CAAC;YAC9B,IAAI,EAAA,eAAe,CAAC,GAAG,CAAE,EAAE,CAAE,EAAG,CAAC;gBAChC,SAAS,CAAE,IAAI,KAAK,CAAE,+BAAgC,IAAI,CAAC,SAAS,CAAE,IAAI,CAAG,EAAE,CAAE,CAAE,CAAA;YACpF,CAAC;iBAAM,CAAC;gBACP,EAAA,eAAe,CAAC,GAAG,CAAE,EAAE,CAAE,CAAA;YAC1B,CAAC;QACF,CAAC;QAED,IAAI,IAAI,GAAsC,IAAI,CAAC,CAAC,CAAC,EAAA,iBAAiB,CAAC,cAAc,CAAE,IAAI,CAAE,CAAC,CAAC,CAAC,IAAI,CAAA;QAEpG,IAAI,EAAA,eAAe,EAAG,CAAC;YAEtB,MAAM,UAAU,GAAG,EAAA,eAAe,CAAA;YAClC,MAAM,UAAU,GAAG,EAAA,eAAe,CAAA;YAClC,MAAM,UAAU,GAAG,EAAA,eAAe,CAAA;YAElC,KAAK,MAAM,KAAK,IAAI,KAAK,EAAG,CAAC;gBAE5B,MAAM,IAAI,GAAG,KAAK,CAAE,KAAK,CAAE,CAAA;gBAC3B,IAAI,OAAO,IAAI,KAAK,UAAU;oBAAG,SAAQ;gBAGzC,MAAM,OAAO,GAAG,UAAqB,GAAI,IAAW;oBAEnD,MAAM,MAAM,GAAG,EAAA,eAAe,CAAA;oBAC9B,MAAM,MAAM,GAAG,EAAA,eAAe,CAAA;oBAC9B,MAAM,MAAM,GAAG,EAAA,eAAe,CAAA;oBAE9B,IAAI,CAAC;wBAEJ,EAAA,eAAe,GAAG,UAAU,CAAA;wBAC5B,EAAA,eAAe,GAAG,UAAU,CAAA;wBAC5B,EAAA,eAAe,GAAG,UAAU,CAAA;wBAE5B,OAAO,IAAI,CAAC,IAAI,CAAE,IAAI,EAAE,GAAI,IAAI,CAAE,CAAA;oBAEnC,CAAC;4BAAS,CAAC;wBAEV,EAAA,eAAe,GAAG,MAAM,CAAA;wBACxB,EAAA,eAAe,GAAG,MAAM,CAAA;wBACxB,EAAA,eAAe,GAAG,MAAM,CAAA;oBAEzB,CAAC;gBAEF,CAAC,CAAA;gBAED,mBAAmB,CAAE,OAAO,EAAE,IAAI,CAAE,CAAA;gBACpC,KAAK,CAAE,KAAK,CAAE,GAAG,OAAc,CAAA;YAEhC,CAAC;QAEF,CAAC;QAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAG,CAAC;YAE/B,IAAI,WAAW,IAAI,IAAI,EAAG,CAAC;gBAE1B,MAAM,IAAI,GAAG,IAAI,IAAK,IAAY,CAAE,MAAM,CAAC,IAAI,CAAC,CAAE,IAAI,IAAM,IAAa,CAAA;gBAEzE,MAAM,CAAC,MAAM,CAAE,IAAI,EAAG,KAAK,CAAE,CAAA;gBAC7B,IAAI,CAAE,MAAM,CAAC,WAAW,CAAE,GAAG,IAAI,CAAA;gBAEjC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;gBAE5B,IAAI,CAAC,IAAI,CAAC,aAAa;oBAAG,IAAI,CAAC,aAAa,GAAG,EAAA,iBAAiB,CAAA;gBAChE,IAAI,CAAC,SAAS,GAAG,CAAE,WAAW,CAAC,CAAC,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,GAAG,CAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAE,CAAA;gBAEpF,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAEpB;gBAAC,IAAa,CAAE,MAAM,CAAC,IAAI,CAAC,CAAE,GAAG,IAAI,CAAA;gBAEtC,OAAO,IAAK,CAAA;YAEb,CAAC;iBAAM,CAAC;gBAEP,MAAM,MAAM,GAAG,EAAA,eAAe,CAAA;gBAC9B,MAAM,MAAM,GAAG,EAAA,eAAe,CAAA;gBAC9B,MAAM,MAAM,GAAG,EAAA,eAAe,CAAA;gBAE9B,IAAI,CAAC;oBAEJ,EAAA,eAAe,GAAG,IAAI,CAAA;oBACtB,EAAA,eAAe,GAAG,IAAI,GAAG,CAAA;oBACzB,EAAA,eAAe,GAAG,CAAE,WAAW,CAAC,CAAC,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,GAAG,CAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAE,CAAA;oBAErF,OAAS,IAAa,CAAE,KAAK,EAAG,GAAI,UAAU,CAAE,CAAA;gBAEjD,CAAC;wBAAS,CAAC;oBAEV,EAAA,eAAe,GAAG,MAAM,CAAA;oBACxB,EAAA,eAAe,GAAG,MAAM,CAAA;oBACxB,EAAA,eAAe,GAAG,MAAM,CAAA;gBAEzB,CAAC;YAEF,CAAC;QAEF,CAAC;QAED,IAAI,CAAC,IAAI,EAAG,CAAC;YACZ,IAAI,GAAG,IAAI;gBACV,CAAC,CAAC,EAAA,iBAAiB,CAAC,eAAe,CAAE,KAAK,EAAE,KAAK,IAAI,8BAA8B,EAAE,IAAI,CAAE;gBAC3F,CAAC,CAAC,EAAA,iBAAiB,CAAC,sBAAsB,EAAE,CAAA;QAC9C,CAAC;QAED,wBAAwB,CAAE,IAAI,EAAK,EAA2B,CAAC,MAAM,CAAE,GAAI,UAAU,CAAE,CAAE,CAAA;QACzF,IAAI,CAAC,IAAI;YAAG,OAAO,IAAI,CAAA;QAEvB,IAAI,IAAI;YAAK,IAAiB,CAAC,EAAE,GAAG,IAAI,CAAA;QACxC,KAAK,MAAM,GAAG,IAAI,KAAK,EAAG,CAAC;YAC1B,IAAI,GAAG,KAAK,IAAI;gBAAG,SAAQ;YAE3B,IAAI,OAAO,KAAK,CAAE,GAAG,CAAE,KAAK,QAAQ,EAAG,CAAC;gBAEvC,IAAI,OAAQ,IAAY,CAAE,GAAG,CAAE,KAAK,QAAQ;oBAAI,IAAY,CAAE,GAAG,CAAE,GAAG,KAAK,CAAE,GAAG,CAAE,CACjF;gBAAE,IAAiB,CAAC,YAAY,CAAE,GAAG,EAAI,KAAa,CAAE,GAAG,CAAE,CAAE,CAAA;YAEjE,CAAC;iBAAM,IACN,KAAK,CAAE,GAAG,CAAE;gBACZ,OAAO,KAAK,CAAE,GAAG,CAAE,KAAK,QAAQ;gBAChC,OAAO,CAAC,cAAc,CAAE,KAAK,CAAE,GAAG,CAAS,CAAE,KAAK,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,EAC3E,CAAC;gBAEF,IAAI,OAAQ,IAAY,CAAE,GAAG,CAAE,KAAK,QAAQ,EAAG,CAAC;oBAC/C,MAAM,CAAC,MAAM,CAAI,IAAa,CAAE,GAAG,CAAE,EAAG,KAAK,CAAE,GAAG,CAAE,CAAE,CAAA;oBACtD,SAAQ;gBACT,CAAC;YAEF,CAAC;iBAAM,CAAC;gBAEN,IAAY,CAAE,GAAG,CAAE,GAAG,KAAK,CAAE,GAAG,CAAE,CAAA;YAEpC,CAAC;QAEF,CAAC;QAED,IAAI,EAAA,eAAe;YAAK,IAAiB,CAAC,SAAS,GAAG,CAAG,KAAa,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAE,KAAa,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,GAAG,WAAW,CAAA;QAEtI,OAAO,IAAI,CAAA;IAEZ,CAAC;IA1Je,UAAQ,WA0JvB,CAAA;AA8CF,CAAC,EA7NS,CAAC,KAAD,CAAC,QA6NV;;;;AC7ND,oBAAoB;AACpB,6BAA6B;AAC7B,IAAU,CAAC,CA6KV;AA7KD,WAAU,CAAC;IAEV,SAAS,CAAC;QAET,gBAAgB;YACf,iBAAiB,CAAE,CAAC,qBAAM,CAAC,CAAC,SAAS,EAAG,aAAa,CAAE,CAAA;QACxD,CAAC;QAED,qBAAqB;YAEpB,MAAM,GAAG,GAAG,oBAAO,KAAK,EAAC,KAAK,GAAuB,CAAA;YAErD,iBAAiB,CAAE,GAAG,CAAC,SAAS,EAAE,qBAAqB,CAAE,CAAA;YACzD,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,KAAK,CAAE,CAAA;QAEtC,CAAC;QAED,gBAAgB;YAEf,MAAM,GAAG,GAAG,kBAAK,KAAK,EAAG,SAAS,GAAK,CAAA;YAEvC,iBAAiB,CAAE,GAAG,CAAC,SAAS,EAAE,6BAA6B,CAAE,CAAA;QAElE,CAAC;QAED,eAAe;YAEd,MAAM,GAAG,GAAG,kBAAK,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAI,CAAA;YAE5C,iBAAiB,CAAE,GAAG,CAAC,SAAS,EAAE,iCAAiC,CAAE,CAAA;QAEtE,CAAC;QAED,gBAAgB;YAEf,MAAM,GAAG,GAAG,kBAAK,OAAO,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAI,CAAA;YAE5C,iBAAiB,CAAE,GAAG,CAAC,SAAS,EAAE,4BAA4B,CAAE,CAAA;QAEjE,CAAC;QAED,mBAAmB;YAElB,MAAM,GAAG,GAAG,kBAAK,IAAI,EAAC,IAAI,EAAC,MAAM,SAAG,CAAA;YAEpC,iBAAiB,CAAE,GAAG,CAAC,SAAS,EAAE,iCAAiC,CAAE,CAAA;QAEtE,CAAC;QAED,oBAAoB;YAEnB,MAAM,GAAG,GACR;;gBAEC,iCAAsB;oBAEjB,CAAA;YAEP,iBAAiB,CAAE,GAAG,CAAC,SAAS,EAAE,yCAAyC,CAAE,CAAA;QAE9E,CAAC;QAED,eAAe;YAEd,MAAM,GAAG,GACR;gBACC,oBAAM;gBACN,oBAAM,CACJ,CAAA;YAEJ,iBAAiB,CAAE,kBAAkB,CAAE,GAAG,CAAE,EAAE,wFAAwF,CAAE,CAAA;QAEzI,CAAC;QAED,iBAAiB;YAEhB,MAAM,GAAG,GACR;gBACC;oBACC,oBAAM;oBACN,oBAAM,CACJ,CACE,CAAA;YAEP,iBAAiB,CAAE,GAAG,CAAC,SAAS,EAAE,qBAAqB,CAAE,CAAA;QAE1D,CAAC;QAED,uBAAuB;YAEtB,MAAM,MAAM,GAAG,CACd,KAAuB,EACvB,MAAmB,EAClB,EAAE;gBACH,OAAO,qBAAQ,KAAK,EAAG,KAAK,CAAC,IAAI,IAAM,MAAM,EAAE,CAAW,CAAA;YAC3D,CAAC,CAAA;YAED,MAAM,GAAG,GAAG,SAAC,MAAM,IAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,UAAU,IAAG,GAAE,EAAE,CAAC,MAAM,CAAW,CAAA;YAErE,iBAAiB,CAAE,GAAG,CAAC,SAAS,EAAE,gEAAgE,CAAE,CAAA;QAErG,CAAC;QAED,wBAAwB;YAEvB,MAAM,GAAG,GAAG,GAAE,EAAE;gBACf,OAAO;oBACN,SAAC,GAAG,IAAC,EAAE,EAAC,KAAK;wBACZ,kBAAK,EAAE,EAAC,MAAM,GAAG,CACZ,CACD,CAAA;YACP,CAAC,CAAA;YAED,MAAM,GAAG,GAAG,CAAE,KAAS,EAAE,IAAa,EAAE,EAAE;gBACzC,OAAO;oBAAQ,IAAI;oBAAE,gBAAG,EAAE,EAAC,OAAO,GAAE,CAAO,CAAA;YAC5C,CAAC,CAAA;YAED,MAAM,GAAG,GAAG,SAAC,GAAG,IAAC,EAAE,EAAC,KAAK,GAAG,CAAA;YAE5B,iBAAiB,CAAE,GAAG,CAAC,SAAS,EAAE,8KAA8K,CAAE,CAAA;QAEnN,CAAC;QAED,wBAAwB;YAEvB,MAAM,GAAG,GAAG,GAAE,EAAE;gBACf,OAAO;oBACN,mBAAM,EAAE,EAAC,KAAK,GAAG;oBACjB,mBAAM,EAAE,EAAC,KAAK,GAAG,CACZ,CAAA;YACP,CAAC,CAAA;YAED,gBAAgB,CAAE,GAAE,EAAE,CAAC,SAAC,GAAG,IAAC,EAAE,EAAC,KAAK,GAAG,EAAE,uCAAuC,CAAE,CAAA;QAEnF,CAAC;QAED,8BAA8B;YAE7B,MAAM,GAAG,GAAG,GAAE,EAAE;gBACf,OAAO;oBACN,SAAC,GAAG,IAAC,EAAE,EAAC,QAAQ,EAAC,IAAI,EAAG,GAAE,EAAE,CAAC,kBAAK,EAAE,EAAC,MAAM,GAAG,GAAK,CAC9C,CAAA;YACP,CAAC,CAAA;YAED,MAAM,GAAG,GAAG,CAAE,KAA6B,EAAE,EAAE;gBAC9C,OAAO,uBAAQ,KAAK,CAAC,IAAI,EAAE,CAAS,CAAA;YACrC,CAAC,CAAA;YAED,MAAM,GAAG,GAAG,SAAC,GAAG,IAAC,EAAE,EAAC,KAAK,GAAG,CAAA;YAE5B,iBAAiB,CAAE,GAAG,CAAC,SAAS,EAAE,0HAA0H,CAAE,CAAA;QAE/J,CAAC;QAED,wCAAwC;YAEvC,MAAM,GAAG,GAAG,GAAE,EAAE;gBACf,OAAO;oBACN,kBAAK,EAAE,EAAC,MAAM,GAAG;oBACjB,SAAC,GAAG,IAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAG,GAAE,EAAE,CAAC,kBAAK,EAAE,EAAC,MAAM,GAAG,GAAK,CAC3C,CAAA;YACP,CAAC,CAAA;YAED,MAAM,GAAG,GAAG,CAAE,KAA6B,EAAE,EAAE;gBAC9C,OAAO,uBAAQ,KAAK,CAAC,IAAI,EAAE,CAAS,CAAA;YACrC,CAAC,CAAA;YAED,gBAAgB,CAAE,GAAE,EAAE,CAAC,SAAC,GAAG,IAAC,EAAE,EAAC,KAAK,GAAG,EAAE,wCAAwC,CAAE,CAAA;QAEpF,CAAC;KAED,CAAC,CAAA;AAEH,CAAC,EA7KS,CAAC,KAAD,CAAC,QA6KV;;;;AC/KD,IAAU,CAAC,CAsMV;AAtMD,WAAU,CAAC;IAEV,0HAA0H;IAC1H,SAAgB,WAAW,CAC1B,OAA+C,KAAK,CAAC,EAAE,CAAC,KAAY,EACpE,IAAI,GAAG,GAAE,EAAE,CAAC,MAAM,CAAC,iBAAiB;QAGpC,MAAM,MAAM,GAAG,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,iBAAiB,EAAU,CAAC,CAAC,CAAC,IAAI,CAAA;QAElF,IAAI,OAAO,IAAI,KAAK,UAAU,EAAG,CAAC;YACjC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,MAAM,CAAE,KAAK,CAAE,CAAA;YAC/B,IAAI,GAAG,GAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAA;QAC1B,CAAC;QAED,OAAO,IAAI,KAAK,CAAE,MAAM,EAAG;YAE1B,GAAG,CAAE,MAAM,EAAG,KAAK;gBAElB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAG,CAAC;oBAChC,IAAI,KAAK,KAAK,QAAQ;wBAAG,OAAO,IAAI,EAAE,CAAA;oBAEtC,MAAM,KAAK,GAAG,MAAM,CAAE,KAAK,CAAE,CAAA;oBAC7B,IAAI,KAAK,GAAG,CAAC;wBAAG,OAAO,SAAS,CAAA;oBAChC,IAAI,KAAK,IAAI,IAAI,EAAE;wBAAG,OAAO,SAAS,CAAA;oBACtC,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,CAAE,KAAK,CAAE;wBAAG,OAAS,IAAa,CAAE,KAAK,CAAE,CAAA;gBACpE,CAAC;gBAED,OAAO,iBAAiB,CAAC,SAAS,CAAE,KAAY,CAAE,CAAA;YACnD,CAAC;YAED,GAAG,CAAE,MAAM,EAAG,KAAK;gBAClB,OAAO,SAAS,CAAE,IAAI,SAAS,CAAE,gDAAiD,IAAI,CAAC,SAAS,CAAE,KAAK,CAAG,GAAG,CAAG,CAAE,CAAA;YACnH,CAAC;YAED,OAAO,CAAE,MAAM;gBACd,OAAO,CAAE,GAAI,KAAK,CAAE,IAAI,EAAE,CAAE,CAAE,CAAC,GAAG,CAAE,CAAE,CAAC,EAAE,CAAC,EAAG,EAAE,CAAC,MAAM,CAAE,CAAC,CAAE,CAAE,CAAC,MAAM,CAAE,QAAQ,CAAE,CAAA;YACjF,CAAC;YAED,wBAAwB,CAAE,MAAM,EAAG,KAAK;gBAEvC,IAAI,KAAK,KAAK,QAAQ;oBAAG,OAAO;wBAC/B,KAAK,EAAG,IAAI,EAAE;wBACd,QAAQ,EAAG,IAAI;wBACf,UAAU,EAAG,KAAK;wBAClB,YAAY,EAAG,KAAK;qBACpB,CAAA;gBAED,MAAM,KAAK,GAAG,MAAM,CAAE,KAAK,CAAE,CAAA;gBAC7B,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,CAAE,KAAK,CAAE;oBAAG,OAAO;wBAC1C,GAAG,EAAG,GAAE,EAAE,CAAC,IAAI,CAAC,GAAI,CAAE,MAAM,EAAG,KAAK,EAAG,IAAI,CAAE;wBAC7C,UAAU,EAAG,IAAI;wBACjB,YAAY,EAAG,IAAI;qBACnB,CAAA;gBAED,OAAO,MAAM,CAAC,wBAAwB,CAAE,MAAM,EAAG,KAAK,CAAE,CAAA;YACzD,CAAC;SAED,CAAE,CAAA;IAEJ,CAAC;IAzDe,aAAW,cAyD1B,CAAA;IAED,MAAa,iBAA0B,SAAQ,KAAa;QAE3D,OAAO;QACP,MAAM,CAAE,GAAI,IAAe;YAC1B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAG,OAAO,IAAW,CAAA;YAE1C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAG,CAAC;gBACtB,IAAI,IAAI,GAAG,IAAW,CAAA;gBACtB,KAAK,IAAI,IAAI,IAAI,IAAI;oBAAG,IAAI,GAAG,IAAI,CAAC,MAAM,CAAE,IAAI,CAAE,CAAA;gBAClD,OAAO,IAAI,CAAA;YACZ,CAAC;YAED,OAAO,WAAW,CACjB,KAAK,CAAC,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAE,KAAK,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,KAAK,GAAG,IAAI,CAAC,MAAM,CAAE,EAC7E,GAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CACjC,CAAA;QACF,CAAC;QAED,OAAO;QACP,MAAM,CACL,KAAiE,EACjE,OAAkB;YAGlB,MAAM,QAAQ,GAAG,EAAY,CAAA;YAC7B,IAAI,MAAM,GAAG,CAAC,CAAC,CAAA;YAEf,OAAO,WAAW,CACjB,KAAK,CAAC,EAAE;gBAEP,OAAO,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAG,CAAC;oBAC9D,MAAM,GAAG,GAAG,IAAI,CAAE,EAAG,MAAM,CAAE,CAAA;oBAC7B,IAAI,KAAK,CAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAE;wBAAG,QAAQ,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;gBACtD,CAAC;gBAED,OAAO,QAAQ,CAAE,KAAK,CAAE,CAAA;YACzB,CAAC,EACD,GAAE,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CACtE,CAAA;QAEF,CAAC;QAED,WAAW;QACX,OAAO,CACN,OAAiF,EACjF,OAAkB;YAElB,KAAK,IAAI,CAAE,GAAG,EAAG,KAAK,CAAE,IAAI,IAAI,CAAC,OAAO,EAAE;gBAAG,OAAO,CAAC,IAAI,CAAE,OAAkB,EAAG,KAAK,EAAG,GAAG,EAAG,IAAI,CAAE,CAAA;QACrG,CAAC;QAED,OAAO;QACP,GAAG,CACF,OAAqF,EACrF,OAAkB;YAElB,OAAO,WAAW,CACjB,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAE,OAAkB,EAAG,IAAI,CAAE,KAAK,CAAE,EAAG,KAAK,EAAG,IAAI,CAAE,EAC1E,GAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAChB,CAAA;QACF,CAAC;QAED,WAAW;QACX,MAAM,CACL,KAAkF,EAClF,MAAgB;YAEhB,IAAI,KAAK,GAAG,CAAC,CAAA;YAEb,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAG,CAAC;gBAC7B,MAAM,GAAG,IAAI,CAAE,KAAK,EAAG,CAAS,CAAA;YACjC,CAAC;YAED,OAAO,KAAK,GAAG,IAAI,CAAC,MAAM,EAAG,EAAG,KAAK,EAAG,CAAC;gBACxC,MAAM,GAAG,KAAK,CAAE,MAAgB,EAAG,IAAI,CAAE,KAAK,CAAE,EAAG,KAAK,EAAG,IAAW,CAAE,CAAA;YACzE,CAAC;YAED,OAAO,MAAM,CAAA;QACd,CAAC;QAED,OAAO;QACP,UAAU;YACT,OAAO,WAAW,CACjB,KAAK,CAAC,EAAE,CAAC,IAAI,CAAE,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAE,EACxC,GAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAChB,CAAA;QACF,CAAC;QAED,OAAO;QACP,KAAK,CAAE,IAAI,GAAG,CAAC,EAAG,EAAE,GAAG,IAAI,CAAC,MAAM;YACjC,OAAO,WAAW,CACjB,KAAK,CAAC,EAAE,CAAC,IAAI,CAAE,IAAI,GAAG,KAAK,CAAE,EAC7B,GAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAE,EAAE,EAAG,IAAI,CAAC,MAAM,CAAE,GAAG,IAAI,CACxC,CAAA;QACF,CAAC;QAED,OAAO;QACP,IAAI,CACH,KAAkF,EAClF,OAAkB;YAElB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAG,KAAK,GAAG,IAAI,CAAC,MAAM,EAAG,EAAG,KAAK,EAAG,CAAC;gBACtD,IAAI,KAAK,CAAC,IAAI,CAAE,OAAkB,EAAG,IAAI,CAAE,KAAK,CAAE,EAAG,KAAK,EAAG,IAAI,CAAE;oBAAG,OAAO,IAAI,CAAA;YAClF,CAAC;YACD,OAAO,KAAK,CAAA;QACb,CAAC;QAID,KAAK,CACJ,KAAkF,EAClF,OAAkB;YAElB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAG,KAAK,GAAG,IAAI,CAAC,MAAM,EAAG,EAAG,KAAK,EAAG,CAAC;gBACtD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAE,OAAkB,EAAG,IAAI,CAAE,KAAK,CAAE,EAAG,KAAK,EAAG,IAAqB,CAAE;oBAAG,OAAO,KAAK,CAAA;YACrG,CAAC;YACD,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,OAAO;YACN,OAAO,SAAS,CAAE,IAAI,SAAS,CAAE,uDAAuD,CAAG,CAAE,CAAA;QAC9F,CAAC;QAED,IAAI;YACH,OAAO,SAAS,CAAE,IAAI,SAAS,CAAE,kDAAkD,CAAG,CAAE,CAAA;QACzF,CAAC;QAED,OAAO,CAAE,MAAY;YACpB,OAAO,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,MAAM,CAAE,CAAA;QACjD,CAAC;QAED,CAAC,MAAM,CAAC,WAAW,CAAC;YACnB,OAAO,SAAS,EAAE,CAAA;QACnB,CAAC;KAED;IAtIY,mBAAiB,oBAsI7B,CAAA;AAEF,CAAC,EAtMS,CAAC,KAAD,CAAC,QAsMV;;;;ACtMD,IAAU,CAAC,CAqQV;AArQD,WAAU,CAAC;IAEV,SAAS,CAAC;QAET,YAAY;YAEX,IAAI,KAAK,GAAG,CAAC,CAAA;YAEb,MAAM,IAAI,GAAG,WAAW,CAAE,KAAK,CAAC,EAAE,CAAC,CAAE,EAAG,KAAK,EAAG,KAAK,CAAE,EAAG,GAAE,EAAE,CAAC,EAAE,CAAE,CAAA;YAEnE,iBAAiB,CAAE,IAAI,EAAE,IAAI,YAAY,KAAK,CAAE,CAAA;YAChD,iBAAiB,CAAE,IAAI,CAAC,MAAM,EAAG,EAAE,CAAE,CAAA;YAErC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAG,SAAS,CAAE,CAAA;YACzC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,CAAC,CAAE,CAAA;YAChC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,CAAC,CAAE,CAAA;YAChC,iBAAiB,CAAE,IAAI,CAAC,GAAG,CAAC,EAAG,SAAS,CAAE,CAAA;YAC1C,iBAAiB,CAAE,IAAI,CAAC,EAAE,CAAC,EAAG,SAAS,CAAE,CAAA;YAEzC,iBAAiB,CAAE,KAAK,EAAG,CAAC,CAAE,CAAA;QAE/B,CAAC;QAED,eAAe;YAEd,IAAI,KAAK,GAAG,CAAC,CAAA;YAEb,MAAM,IAAI,GAAG,WAAW,CAAE,KAAK,CAAC,EAAE,CAAC,CAAE,EAAG,KAAK,EAAG,KAAK,CAAE,CAAE,CAAA;YAEzD,iBAAiB,CAAE,IAAI,CAAC,MAAM,EAAG,MAAM,CAAC,iBAAiB,CAAE,CAAA;YAE3D,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,CAAC,CAAE,CAAA;YAChC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,CAAC,CAAE,CAAA;YAChC,iBAAiB,CAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAG,MAAM,CAAC,gBAAgB,CAAE,CAAA;YAC5E,iBAAiB,CAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAG,SAAS,CAAE,CAAA;YAE/D,iBAAiB,CAAE,KAAK,EAAG,CAAC,CAAE,CAAA;QAE/B,CAAC;QAED,WAAW;YAEV,MAAM,IAAI,GAAG,WAAW,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,GAAE,EAAE,CAAC,CAAC,CAAE,CAAA;YAE3C,iBAAiB,CAAE,IAAI,CAAC,QAAQ,EAAE,EAAG,WAAW,CAAE,CAAA;YAClD,iBAAiB,CAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAG,WAAW,CAAE,CAAA;QAElD,CAAC;QAED,QAAQ;YAEP,IAAI,GAAG,GAAG,EAAE,CAAA;YAEZ,KAAK,IAAI,CAAC,IAAI,WAAW,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAG,GAAE,EAAE,CAAC,CAAC,CAAE,EAAG,CAAC;gBACnD,GAAG,IAAI,CAAC,CAAA;YACT,CAAC;YAED,iBAAiB,CAAE,GAAG,EAAG,OAAO,CAAE,CAAA;QAEnC,CAAC;QAED,QAAQ;YAEP,IAAI,GAAG,GAAG,EAAE,CAAA;YAEZ,KAAK,IAAI,CAAC,IAAI,WAAW,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,GAAE,EAAE,CAAC,CAAC,CAAE,EAAG,CAAC;gBAC/C,GAAG,IAAI,CAAC,CAAA;YACT,CAAC;YAED,iBAAiB,CAAE,GAAG,EAAG,OAAO,CAAE,CAAA;QAEnC,CAAC;QAED,SAAS;YAER,IAAI,GAAG,GAAG,EAAE,CAAA;YAEZ,WAAW,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,GAAE,EAAE,CAAC,CAAC,CAAE,CAAC,OAAO,CAAE,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAE,CAAA;YAEvD,iBAAiB,CAAE,GAAG,EAAG,OAAO,CAAE,CAAA;QAEnC,CAAC;QAED,QAAQ;YAEP,IAAI,KAAK,GAAG,CAAC,CAAA;YAEb,MAAM,IAAI,GAAG,WAAW,EAAE,CAAC,KAAK,CAAE,CAAC,EAAG,CAAC,CAAE,CAAA;YAEzC,iBAAiB,CAAE,IAAI,CAAC,MAAM,CAAE,CAAE,CAAC,EAAG,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAE,EAAG,EAAE,CAAE,CAAA;YAC1D,iBAAiB,CAAE,IAAI,CAAC,MAAM,CAAE,CAAE,CAAC,EAAG,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAG,CAAC,CAAE,EAAG,EAAE,CAAE,CAAA;QAE/D,CAAC;QAED,aAAa;YAEZ,IAAI,MAAM,GAAG,CAAC,CAAA;YACd,IAAI,MAAM,GAAG,CAAC,CAAA;YAEd,MAAM,IAAI,GAAG,WAAW,CAAE,KAAK,CAAC,EAAE,CAAC,CAAE,EAAG,MAAM,EAAG,KAAK,CAAE,EAAG,GAAE,EAAE,CAAC,CAAC,CAAE,CAAC,MAAM,CACzE,CAAE,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,CAAE,EACrB,WAAW,CAAE,KAAK,CAAC,EAAE,CAAC,CAAE,EAAG,MAAM,EAAG,KAAK,CAAE,EAAG,GAAE,EAAE,CAAC,CAAC,CAAE,CACtD,CAAA;YAED,iBAAiB,CAAE,IAAI,EAAE,IAAI,YAAY,KAAK,CAAE,CAAA;YAChD,iBAAiB,CAAE,IAAI,CAAC,MAAM,EAAG,EAAE,CAAE,CAAA;YAErC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,CAAC,CAAE,CAAA;YAChC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,CAAC,CAAE,CAAA;YAChC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,CAAC,CAAE,CAAA;YAChC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,CAAC,CAAE,CAAA;YAChC,iBAAiB,CAAE,IAAI,CAAC,EAAE,CAAC,EAAG,CAAC,CAAE,CAAA;YACjC,iBAAiB,CAAE,IAAI,CAAC,EAAE,CAAC,EAAG,CAAC,CAAE,CAAA;YACjC,iBAAiB,CAAE,IAAI,CAAC,EAAE,CAAC,EAAG,SAAS,CAAE,CAAA;YAEzC,iBAAiB,CAAE,MAAM,EAAG,CAAC,CAAE,CAAA;YAC/B,iBAAiB,CAAE,MAAM,EAAG,CAAC,CAAE,CAAA;QAEhC,CAAC;QAED,aAAa;YAEZ,IAAI,KAAK,GAAG,CAAC,CAAA;YAEb,MAAM,IAAI,GAAG,WAAW,CAAE,KAAK,CAAC,EAAE,CAAC,CAAE,EAAG,KAAK,EAAG,KAAK,CAAE,EAAG,GAAE,EAAE,CAAC,EAAE,CAAE,CAAC,MAAM,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,KAAK,CAAE,CAAC,EAAG,CAAC,CAAE,CAAA;YAEvG,iBAAiB,CAAE,IAAI,EAAE,IAAI,YAAY,KAAK,CAAE,CAAA;YAChD,iBAAiB,CAAE,IAAI,CAAC,MAAM,EAAG,CAAC,CAAE,CAAA;YAEpC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,CAAC,CAAE,CAAA;YAChC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,CAAC,CAAE,CAAA;YAChC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,SAAS,CAAE,CAAA;YAExC,iBAAiB,CAAE,KAAK,EAAG,CAAC,CAAE,CAAA;QAE/B,CAAC;QAED,cAAc;YACb,IAAI,KAAK,GAAG,CAAC,CAAA;YAEb,MAAM,IAAI,GAAG,WAAW,CAAE,KAAK,CAAC,EAAE,CAAC,CAAE,EAAG,KAAK,EAAG,KAAK,CAAE,EAAG,GAAE,EAAE,CAAC,EAAE,CAAE,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YAE5F,iBAAiB,CAAE,IAAI,EAAE,IAAI,YAAY,KAAK,CAAE,CAAA;YAChD,iBAAiB,CAAE,IAAI,CAAC,MAAM,EAAG,CAAC,CAAE,CAAA;YAEpC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,CAAC,CAAE,CAAA;YAChC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,CAAC,CAAE,CAAA;YAChC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,SAAS,CAAE,CAAA;YACxC,iBAAiB,CAAE,KAAK,EAAG,CAAC,CAAE,CAAA;QAE/B,CAAC;QAED,UAAU;YAET,IAAI,MAAM,GAAG,CAAC,CAAA;YACd,IAAI,MAAM,GAAG,CAAC,CAAA;YAEd,MAAM,MAAM,GAAG,WAAW,CAAE,KAAK,CAAC,EAAE,CAAC,CAAE,EAAG,MAAM,EAAG,KAAK,CAAE,EAAG,GAAE,EAAE,CAAC,CAAC,CAAE,CAAA;YACrE,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CACxB,CAAE,IAAI,EAAG,KAAK,EAAG,IAAI,EAAE,EAAE;gBACxB,EAAG,MAAM,CAAA;gBACT,iBAAiB,CAAE,MAAM,EAAG,IAAI,CAAE,CAAA;gBAClC,OAAO,KAAK,GAAG,EAAE,CAAA;YAClB,CAAC,EACD,GAAE,EAAE,CAAC,CAAC,CACN,CAAA;YAED,iBAAiB,CAAE,IAAI,EAAE,MAAM,YAAY,KAAK,CAAE,CAAA;YAClD,iBAAiB,CAAE,MAAM,CAAC,MAAM,EAAG,CAAC,CAAE,CAAA;YAEtC,iBAAiB,CAAE,MAAM,CAAC,CAAC,CAAC,EAAG,EAAE,CAAE,CAAA;YACnC,iBAAiB,CAAE,MAAM,CAAC,CAAC,CAAC,EAAG,EAAE,CAAE,CAAA;YACnC,iBAAiB,CAAE,MAAM,CAAC,CAAC,CAAC,EAAG,SAAS,CAAE,CAAA;YAE1C,iBAAiB,CAAE,MAAM,EAAG,CAAC,CAAE,CAAA;YAC/B,iBAAiB,CAAE,MAAM,EAAG,CAAC,CAAE,CAAA;QAEhC,CAAC;QAED,YAAY;YAEX,IAAI,KAAK,GAAG,CAAC,CAAA;YAEb,MAAM,IAAI,GAAG,WAAW,CAAE,KAAK,CAAC,EAAE,CAAC,CAAE,EAAG,KAAK,EAAG,KAAK,CAAE,EAAG,GAAE,EAAE,CAAC,EAAE,CAAE,CAAC,KAAK,CAAE,CAAC,EAAG,CAAC,CAAE,CAAA;YAElF,iBAAiB,CAAE,IAAI,EAAE,IAAI,YAAY,KAAK,CAAE,CAAA;YAChD,iBAAiB,CAAE,IAAI,CAAC,MAAM,EAAG,CAAC,CAAE,CAAA;YAEpC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,CAAC,CAAE,CAAA;YAChC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,CAAC,CAAE,CAAA;YAChC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,SAAS,CAAE,CAAA;YAExC,iBAAiB,CAAE,KAAK,EAAG,CAAC,CAAE,CAAA;QAE/B,CAAC;QAED,WAAW;YAEV,IAAI,KAAK,GAAG,CAAC,CAAA;YAEb,iBAAiB,CAAE,IAAI,EAAE,WAAW,CAAE,KAAK,CAAC,EAAE,CAAC,CAAE,EAAG,KAAK,EAAG,KAAK,CAAE,EAAG,GAAE,EAAE,CAAC,CAAC,CAAE,CAAC,IAAI,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAE,CAAE,CAAA;YAEpG,iBAAiB,CAAE,KAAK,EAAG,CAAC,CAAE,CAAA;YAE9B,iBAAiB,CAAE,KAAK,EAAE,WAAW,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,GAAE,EAAE,CAAC,CAAC,CAAE,CAAC,IAAI,CAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAE,CAAE,CAAA;YAC5E,iBAAiB,CAAE,IAAI,EAAE,WAAW,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,IAAI,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAE,CAAE,CAAA;QACpE,CAAC;QAED,YAAY;YAEX,IAAI,KAAK,GAAG,CAAC,CAAA;YAEb,iBAAiB,CAAE,KAAK,EAAE,WAAW,CAAE,KAAK,CAAC,EAAE,CAAC,CAAE,EAAG,KAAK,EAAG,KAAK,CAAE,EAAG,GAAE,EAAE,CAAC,CAAC,CAAE,CAAC,KAAK,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAE,CAAE,CAAA;YAErG,iBAAiB,CAAE,KAAK,EAAG,CAAC,CAAE,CAAA;YAE9B,iBAAiB,CAAE,IAAI,EAAE,WAAW,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,GAAE,EAAE,CAAC,CAAC,CAAE,CAAC,KAAK,CAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAE,CAAE,CAAA;YAC7E,iBAAiB,CAAE,KAAK,EAAE,WAAW,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,KAAK,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAE,CAAE,CAAA;QACtE,CAAC;QAED,QAAQ;YAEP,IAAI,KAAK,GAAG,CAAC,CAAA;YAEb,MAAM,IAAI,GAAG,WAAW,CAAC,CAAE,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,CAAE,CAAC,CAAC,GAAG,CAAE,CAAC,CAAC,EAAE,CAAC,CAAE,EAAG,KAAK,EAAG,CAAC,GAAG,EAAE,CAAE,CAAE,CAAC,KAAK,CAAE,CAAC,CAAE,CAAA;YAEhG,iBAAiB,CAAE,IAAI,EAAE,IAAI,YAAY,KAAK,CAAE,CAAA;YAChD,iBAAiB,CAAE,IAAI,CAAC,MAAM,EAAG,CAAC,CAAE,CAAA;YAEpC,iBAAiB,CAAE,KAAK,EAAG,CAAC,CAAE,CAAA;YAE9B,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,EAAE,CAAE,CAAA;YACjC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,EAAE,CAAE,CAAA;YACjC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,SAAS,CAAE,CAAA;YAExC,iBAAiB,CAAE,KAAK,EAAG,CAAC,CAAE,CAAA;QAE/B,CAAC;QAED,sBAAsB;YAErB,MAAM,IAAI,GAAG,WAAW,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAG,GAAE,EAAE,CAAC,CAAC,CAAE,CAAA;YAE3C,gBAAgB,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAE,CAAC,CAAE,EAAG,SAAS,CAAE,CAAA;YACnD,gBAAgB,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,EAAG,SAAS,CAAE,CAAA;YAE/C,gBAAgB,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAE,CAAC,CAAE,EAAG,SAAS,CAAE,CAAA;YACtD,gBAAgB,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAG,SAAS,CAAE,CAAA;YAEjD,gBAAgB,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAE,CAAC,EAAG,CAAC,CAAE,EAAG,SAAS,CAAE,CAAA;YACzD,gBAAgB,CAAE,GAAE,EAAE,CAAC,IAAI,CAAE,CAAC,CAAE,GAAG,CAAC,EAAG,SAAS,CAAE,CAAA;YAElD,gBAAgB,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAG,SAAS,CAAE,CAAA;YACnD,gBAAgB,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAG,SAAS,CAAE,CAAA;YAEhD,iBAAiB,CAAE,IAAI,CAAC,QAAQ,EAAE,EAAG,WAAW,CAAE,CAAA;QAEnD,CAAC;KAED,CAAC,CAAA;AAEH,CAAC,EArQS,CAAC,KAAD,CAAC,QAqQV;;;;ACrQD,oBAAoB;AACpB,IAAU,CAAC,CAiLV;AAjLD,WAAU,CAAC;IAEV,SAAS,CAAC;QAET,oBAAoB;YAEnB,cAAc,CAAE,iBAAiB,CAAE,IAAI,EAAG,IAAI,CAAE,CAAE,CAAA;YAClD,cAAc,CAAE,iBAAiB,CAAE,SAAS,EAAG,SAAS,CAAE,CAAE,CAAA;YAE5D,eAAe,CAAE,iBAAiB,CAAE,SAAS,EAAG,IAAI,CAAE,CAAE,CAAA;YACxD,eAAe,CAAE,iBAAiB,CAAE,EAAE,EAAG,IAAI,CAAE,CAAE,CAAA;QAElD,CAAC;QAED,QAAQ;YAEP,cAAc,CAAE,iBAAiB,CAAE,CAAC,EAAG,CAAC,CAAE,CAAE,CAAA;YAC5C,cAAc,CAAE,iBAAiB,CAAE,MAAM,CAAC,GAAG,EAAG,MAAM,CAAC,GAAG,CAAE,CAAE,CAAA;YAC9D,eAAe,CAAE,iBAAiB,CAAE,CAAC,EAAG,CAAC,CAAE,CAAE,CAAA;YAE7C,cAAc,CAAE,iBAAiB,CAAE,MAAM,CAAE,CAAC,CAAE,EAAG,MAAM,CAAE,CAAC,CAAE,CAAE,CAAE,CAAA;YAChE,eAAe,CAAE,iBAAiB,CAAE,MAAM,CAAE,CAAC,CAAE,EAAG,MAAM,CAAE,CAAC,CAAE,CAAE,CAAE,CAAA;QAElE,CAAC;QAED,MAAM;YACL,cAAc,CAAE,iBAAiB,CAAE,EAAE,EAAG,EAAE,CAAE,CAAE,CAAA;YAC9C,eAAe,CAAE,iBAAiB,CAAE,EAAE,CAAC,EAAG,CAAC,EAAE,EAAG,EAAE,CAAC,EAAG,CAAC,EAAE,CAAE,CAAE,CAAA;YAC7D,eAAe,CAAE,iBAAiB,CAAE,EAAE,CAAC,EAAG,CAAC,EAAE,EAAG,EAAE,CAAC,EAAG,CAAC,EAAE,CAAE,CAAE,CAAA;YAC7D,eAAe,CAAE,iBAAiB,CAAE,EAAE,EAAG,EAAE,CAAC,EAAG,SAAS,EAAE,CAAE,CAAE,CAAA;YAC9D,eAAe,CAAE,iBAAiB,CAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAE,CAAE,CAAA;YACvE,cAAc,CAAE,iBAAiB,CAAE,EAAE,CAAC,EAAG,EAAE,CAAC,EAAG,CAAC,EAAE,EAAE,EAAG,EAAE,CAAC,EAAG,EAAE,CAAC,EAAG,CAAC,EAAE,EAAE,CAAE,CAAE,CAAA;YAC5E,cAAc,CAAE,iBAAiB,CAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAE,CAAE,CAAA;QAChF,CAAC;QAED,OAAO;YAEN,cAAc,CAAE,iBAAiB,CAAE,EAAE,EAAG,EAAE,CAAE,CAAE,CAAA;YAC9C,cAAc,CAAE,iBAAiB,CAAE,CAAE,CAAC,EAAG,CAAC,CAAC,CAAC,CAAE,EAAG,CAAE,CAAC,EAAG,CAAC,CAAC,CAAC,CAAE,CAAE,CAAE,CAAA;YAEhE,eAAe,CAAE,iBAAiB,CAAE,CAAE,CAAC,EAAG,CAAC,CAAE,EAAG,CAAE,CAAC,EAAG,CAAC,CAAE,CAAE,CAAE,CAAA;YAC7D,eAAe,CAAE,iBAAiB,CAAE,CAAE,CAAC,EAAG,CAAC,EAAI,EAAG,CAAE,CAAC,EAAG,CAAC,EAAG,SAAS,CAAE,CAAE,CAAE,CAAA;YAE3E,eAAe,CAAE,iBAAiB,CAAE,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,IAAI,KAAK,EAAE,CAAE,CAAE,CAAA;YAC7E,eAAe,CAAE,iBAAiB,CAAE,WAAW,EAAE,EAAE,WAAW,EAAE,CAAE,CAAE,CAAA;QAErE,CAAC;QAED,wBAAwB;YAEvB,MAAM,KAAM,SAAQ,MAAM;aAAG;YAC7B,eAAe,CAAE,iBAAiB,CAAE,IAAI,KAAK,EAAG,IAAI,KAAK,CAAE,CAAE,CAAA;YAE7D,eAAe,CAAE,iBAAiB,CAAE,GAAE,EAAE,CAAC,CAAC,EAAG,GAAE,EAAE,CAAA,CAAC,CAAE,CAAE,CAAA;YACtD,eAAe,CAAE,iBAAiB,CAAE,IAAI,UAAU,CAAE,YAAY,CAAE,EAAG,IAAI,UAAU,CAAE,YAAY,CAAE,CAAE,CAAE,CAAA;QAExG,CAAC;QAED,mBAAmB;YAClB,MAAM,GAAG,GAAG,MAAM,EAAE,CAAA;YACpB,cAAc,CAAE,iBAAiB,CAAE,EAAE,CAAE,GAAG,CAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,IAAI,EAAE,CAAE,CAAE,CAAA;YAC3E,eAAe,CAAE,iBAAiB,CAAE,EAAE,CAAE,MAAM,EAAE,CAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAE,MAAM,EAAE,CAAE,EAAE,IAAI,EAAE,CAAE,CAAE,CAAA;QACvF,CAAC;QAED,kCAAkC;YAEjC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAG,EAAE,EAAE,CACrB;YAAC,CAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAEvB,MAAM,CAAC,GAAG,EAAE,GAAG,EAAG,EAAE,EAAE,CACrB;YAAC,CAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAEvB,cAAc,CAAE,iBAAiB,CAAE,CAAC,EAAG,CAAC,CAAE,CAAE,CAAA;QAE7C,CAAC;QAED,oDAAoD;YACnD,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAyB,EAAE,CAAA;YACzD,MAAM,SAAS,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAyB,EAAE,CAAA;YAC9D,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAA;YAC9B,MAAM,SAAS,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;YAC9C,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAA;YAC9B,MAAM,SAAS,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;YAE9C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;YAChB,SAAS,CAAC,IAAI,GAAG,SAAS,CAAA;YAE1B,eAAe;YACf,eAAe,CAAE,iBAAiB,CAAE,IAAI,EAAG,EAAS,CAAE,CAAE,CAAA;YACxD,eAAe,CAAE,iBAAiB,CAAE,IAAI,EAAG,EAAS,CAAE,CAAE,CAAA;YACxD,eAAe,CAAE,iBAAiB,CAAE,IAAI,EAAG,EAAS,CAAE,CAAE,CAAA;YAExD,cAAc,CAAE,iBAAiB,CAAE,IAAI,EAAG,SAAS,CAAE,CAAE,CAAA;QAExD,CAAC;QAED,MAAM;YACL,cAAc,CAAE,iBAAiB,CAAE,IAAI,IAAI,CAAE,KAAK,CAAE,EAAG,IAAI,IAAI,CAAE,KAAK,CAAE,CAAE,CAAE,CAAA;YAC5E,eAAe,CAAE,iBAAiB,CAAE,IAAI,IAAI,CAAE,KAAK,CAAE,EAAG,IAAI,IAAI,CAAE,KAAK,CAAE,CAAE,CAAE,CAAA;QAC9E,CAAC;QAED,QAAQ;YACP,cAAc,CAAE,iBAAiB,CAAE,SAAS,EAAG,SAAS,CAAE,CAAE,CAAA;YAC5D,eAAe,CAAE,iBAAiB,CAAE,SAAS,EAAG,SAAS,CAAE,CAAE,CAAA;YAC7D,eAAe,CAAE,iBAAiB,CAAE,SAAS,EAAG,QAAQ,CAAE,CAAE,CAAA;QAC7D,CAAC;QAED,OAAO;YAEN,eAAe,CAAE,iBAAiB,CAAE,IAAI,KAAK,CAAE,KAAK,CAAE,EAAG,IAAI,KAAK,CAAE,KAAK,CAAE,CAAE,CAAE,CAAA;YAE/E,MAAM,IAAI,GAAG,CAAE,OAAe,EAAE,EAAE,CAAC,IAAI,KAAK,CAAE,OAAO,CAAE,CAAA;YAEvD,cAAc,CAAE,iBAAiB,CAChC,GAAI,CAAE,KAAK,EAAG,KAAK,CAAE,CAAC,GAAG,CAAE,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAE,GAAG,CAAE,CAAsB,CACxE,CAAE,CAAA;YAEH,eAAe,CAAE,iBAAiB,CACjC,GAAI,CAAE,KAAK,EAAG,KAAK,CAAE,CAAC,GAAG,CAAE,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAE,GAAG,CAAE,CAAsB,CACxE,CAAE,CAAA;QAEJ,CAAC;QAED,KAAK;YACJ,cAAc,CAAE,iBAAiB,CAAE,IAAI,GAAG,EAAG,IAAI,GAAG,CAAE,CAAE,CAAA;YACxD,cAAc,CAAE,iBAAiB,CAAE,IAAI,GAAG,CAAC,CAAE,CAAE,CAAC,EAAG,CAAC,CAAC,CAAC,CAAE,CAAE,CAAC,EAAG,IAAI,GAAG,CAAC,CAAE,CAAE,CAAC,EAAG,CAAC,CAAC,CAAC,CAAE,CAAE,CAAC,CAAE,CAAE,CAAA;YAC1F,cAAc,CAAE,iBAAiB,CAAE,IAAI,GAAG,CAAC,CAAE,CAAE,CAAC,CAAC,CAAC,EAAG,CAAC,CAAE,CAAE,CAAC,EAAG,IAAI,GAAG,CAAC,CAAE,CAAE,CAAC,CAAC,CAAC,EAAG,CAAC,CAAE,CAAE,CAAC,CAAE,CAAE,CAAA;YAC1F,eAAe,CAAE,iBAAiB,CAAE,IAAI,GAAG,CAAC,CAAE,CAAE,CAAC,EAAG,CAAC,CAAE,CAAE,CAAC,EAAG,IAAI,GAAG,CAAC,CAAE,CAAE,CAAC,EAAG,CAAC,CAAE,CAAE,CAAC,CAAE,CAAE,CAAA;YACvF,eAAe,CAAE,iBAAiB,CAAE,IAAI,GAAG,CAAC,CAAE,CAAE,CAAC,CAAC,CAAC,EAAG,CAAC,CAAE,CAAE,CAAC,EAAG,IAAI,GAAG,CAAC,CAAE,CAAE,CAAC,CAAC,CAAC,EAAG,CAAC,CAAE,CAAE,CAAC,CAAE,CAAE,CAAA;QAC5F,CAAC;QAED,KAAK;YACJ,cAAc,CAAE,iBAAiB,CAAE,IAAI,GAAG,EAAG,IAAI,GAAG,CAAE,CAAE,CAAA;YACxD,cAAc,CAAE,iBAAiB,CAAE,IAAI,GAAG,CAAC,CAAE,CAAC,EAAG,CAAC,CAAC,CAAC,CAAE,CAAC,EAAG,IAAI,GAAG,CAAC,CAAE,CAAC,EAAG,CAAC,CAAC,CAAC,CAAE,CAAC,CAAE,CAAE,CAAA;YAClF,eAAe,CAAE,iBAAiB,CAAE,IAAI,GAAG,CAAC,CAAE,CAAC,CAAE,CAAC,EAAG,IAAI,GAAG,CAAC,CAAE,CAAC,CAAE,CAAC,CAAE,CAAE,CAAA;QACxE,CAAC;QAED,YAAY;YACX,cAAc,CAAE,iBAAiB,CAAE,IAAI,UAAU,EAAG,IAAI,UAAU,CAAE,CAAE,CAAA;YACtE,cAAc,CAAE,iBAAiB,CAAE,IAAI,UAAU,CAAC,CAAE,CAAC,CAAE,CAAC,EAAG,IAAI,UAAU,CAAC,CAAE,CAAC,CAAE,CAAC,CAAE,CAAE,CAAA;YACpF,eAAe,CAAE,iBAAiB,CAAE,IAAI,UAAU,CAAC,CAAE,CAAC,CAAE,CAAC,EAAG,IAAI,UAAU,CAAC,CAAE,CAAC,CAAE,CAAC,CAAE,CAAE,CAAA;QACtF,CAAC;QAED,UAAU;YACT,cAAc,CAAE,iBAAiB,CAAE,IAAI,QAAQ,CAAE,IAAI,UAAU,EAAE,CAAC,MAAM,CAAE,EAAG,IAAI,QAAQ,CAAE,IAAI,UAAU,EAAE,CAAC,MAAM,CAAE,CAAE,CAAE,CAAA;YACxH,cAAc,CAAE,iBAAiB,CAAE,IAAI,QAAQ,CAAE,IAAI,UAAU,CAAC,CAAE,CAAC,CAAE,CAAC,CAAC,MAAM,CAAE,EAAG,IAAI,QAAQ,CAAE,IAAI,UAAU,CAAC,CAAE,CAAC,CAAE,CAAC,CAAC,MAAM,CAAE,CAAE,CAAE,CAAA;YAClI,eAAe,CAAE,iBAAiB,CAAE,IAAI,QAAQ,CAAE,IAAI,UAAU,CAAC,CAAE,CAAC,CAAE,CAAC,CAAE,MAAM,CAAE,EAAG,IAAI,QAAQ,CAAE,IAAI,UAAU,CAAC,CAAE,CAAC,CAAE,CAAC,CAAC,MAAM,CAAE,CAAE,CAAE,CAAA;QACrI,CAAC;QAED,aAAa;YAEZ,MAAM,IAAI;gBAGC;gBACA;gBAFV,YACU,IAAY,EACZ,OAAO,IAAI,CAAC,MAAM,EAAE;oBADpB,SAAI,GAAJ,IAAI,CAAQ;oBACZ,SAAI,GAAJ,IAAI,CAAgB;gBAC3B,CAAC;gBAEJ,CAAE,MAAM,CAAC,WAAW,CAAE,CAAE,IAAqC;oBAC5D,OAAO,IAAI,CAAC,IAAI,CAAA;gBACjB,CAAC;aAED;YAED,cAAc,CAAE,iBAAiB,CAAE,IAAI,IAAI,CAAE,KAAK,CAAE,EAAE,IAAI,IAAI,CAAE,KAAK,CAAE,CAAE,CAAE,CAAA;YAC3E,eAAe,CAAE,iBAAiB,CAAE,IAAI,IAAI,CAAE,KAAK,CAAE,EAAE,IAAI,IAAI,CAAE,MAAM,CAAE,CAAE,CAAE,CAAA;QAE9E,CAAC;QAED,UAAU;YACT,cAAc,CAAE,iBAAiB,CAAE,IAAI,eAAe,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,eAAe,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAE,CAAE,CAAA;YAC/G,eAAe,CAAE,iBAAiB,CAAE,IAAI,eAAe,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,eAAe,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAE,CAAE,CAAA;YAChH,eAAe,CAAE,iBAAiB,CAAE,IAAI,eAAe,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,eAAe,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAE,CAAE,CAAA;QACzI,CAAC;KAED,CAAC,CAAA;AAEH,CAAC,EAjLS,CAAC,KAAD,CAAC,QAiLV;;;;AClLD,IAAU,CAAC,CA6GV;AA7GD,WAAU,CAAC;IAEV;;;OAGG;IACH,SAAgB,cAAc,CAAE,KAAW;QAC1C,IAAI,KAAK;YAAG,OAAM;QAClB,SAAS,CAAE,IAAI,KAAK,CAAE,GAAG,KAAK,SAAS,CAAE,CAAE,CAAA;IAC5C,CAAC;IAHe,gBAAc,iBAG7B,CAAA;IAED;;;OAGG;IACH,SAAgB,eAAe,CAAE,KAAW;QAC3C,IAAI,CAAC,KAAK;YAAG,OAAM;QACnB,SAAS,CAAE,IAAI,KAAK,CAAE,GAAG,KAAK,UAAU,CAAE,CAAE,CAAA;IAC7C,CAAC;IAHe,iBAAe,kBAG9B,CAAA;IAED;;;;;;;OAOG;IACH,SAAgB,gBAAgB,CAC/B,OAAiB,EACjB,UAAkD;QAGlD,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,CAAA;QAExB,IAAI,CAAC;YACJ,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,gBAAgB,CAAA;YAEhC,OAAO,EAAE,CAAA;QAEV,CAAC;QAAC,OAAO,KAAU,EAAG,CAAC;YAEtB,CAAC,CAAC,SAAS,GAAG,IAAI,CAAA;YAElB,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAG,CAAC;gBACrC,iBAAiB,CAAE,KAAK,CAAC,OAAO,IAAI,KAAK,EAAE,UAAU,CAAE,CAAA;YACxD,CAAC;iBAAM,CAAC;gBACP,iBAAiB,CAAE,KAAK,YAAY,UAAU,EAAE,IAAI,CAAE,CAAA;YACvD,CAAC;YAED,OAAO,KAAK,CAAA;QAEb,CAAC;gBAAS,CAAC;YACV,CAAC,CAAC,SAAS,GAAG,IAAI,CAAA;QACnB,CAAC;QAED,SAAS,CAAE,IAAI,KAAK,CAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAE,CAAE,CAAA;IAC1E,CAAC;IA7Be,kBAAgB,mBA6B/B,CAAA;IAED,wCAAwC;IACxC,SAAgB,gBAAgB,CAAW,GAAI,IAAmC;QACjF,iBAAiB,CAAE,GAAI,IAAI,CAAE,CAAA;IAC9B,CAAC;IAFe,kBAAgB,mBAE/B,CAAA;IAED;;;;;;OAMG;IACH,SAAgB,kBAAkB,CAAE,GAAI,IAA6B;QAEpE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAG,EAAE,CAAC,EAAG,CAAC;YACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAG,EAAE,CAAC,EAAG,CAAC;gBAEzC,IAAI,CAAC,KAAK,CAAC;oBAAG,SAAQ;gBACtB,IAAI,CAAC,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAE;oBAAG,SAAQ;gBAErD,OAAO,SAAS,CAAE,IAAI,KAAK,CAC1B,8BAA8B,EAC9B,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACzC,CAAE,CAAA;YAEJ,CAAC;QACF,CAAC;IAEF,CAAC;IAhBe,oBAAkB,qBAgBjC,CAAA;IAED;;;;;;OAMG;IACH,SAAgB,iBAAiB,CAAW,GAAI,IAAoC;QACnF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAG,EAAE,CAAC,EAAG,CAAC;YAEzC,IAAI,iBAAiB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAG,IAAI,CAAC,CAAC,CAAC,CAAE;gBAAG,SAAQ;YAErD,OAAO,SAAS,CAAE,IAAI,KAAK,CAC1B,4BAA4B,EAC5B,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACvC,CAAE,CAAA;QAEJ,CAAC;IACF,CAAC;IAXe,mBAAiB,oBAWhC,CAAA;AAEF,CAAC,EA7GS,CAAC,KAAD,CAAC,QA6GV;;;;AC7GD,IAAU,CAAC,CA4CV;AA5CD,WAAU,CAAC;IACV,SAAS,CAAE;QAEV,eAAe;YACd,eAAe,CAAE,CAAC,CAAE,CAAA;QACrB,CAAC;QAED,cAAc;YACb,cAAc,CAAE,CAAC,CAAE,CAAA;QACpB,CAAC;QAED,mBAAmB;YAClB,iBAAiB,CAAE,CAAC,EAAG,CAAC,CAAE,CAAA;QAC3B,CAAC;QAED,qBAAqB;YACpB,iBAAiB,CAAE,CAAC,EAAG,CAAC,EAAG,CAAC,CAAE,CAAA;QAC/B,CAAC;QAED,oBAAoB;YACnB,kBAAkB,CAAE,CAAE,CAAC,CAAE,EAAG,CAAE,CAAC,CAAE,CAAE,CAAA;QACpC,CAAC;QAED,sBAAsB;YACrB,kBAAkB,CAAE,CAAE,CAAC,CAAE,EAAG,CAAE,CAAC,CAAE,EAAG,CAAE,CAAC,CAAE,CAAE,CAAA;QAC5C,CAAC;QAED,mBAAmB;YAClB,iBAAiB,CAAE,CAAE,CAAC,CAAE,EAAG,CAAE,CAAC,CAAE,CAAE,CAAA;QACnC,CAAC;QAED,qBAAqB;YACpB,iBAAiB,CAAE,CAAE,CAAC,CAAE,EAAG,CAAE,CAAC,CAAE,EAAG,CAAE,CAAC,CAAE,CAAE,CAAA;QAC3C,CAAC;QAED,0BAA0B;YACzB,iBAAiB,CAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAE,CAAA;QACxC,CAAC;QAED,4BAA4B;YAC3B,iBAAiB,CAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAE,CAAA;QAClD,CAAC;KAED,CAAE,CAAA;AACJ,CAAC,EA5CS,CAAC,KAAD,CAAC,QA4CV;;;;AC5CD,IAAU,CAAC,CAkHV;AAlHD,WAAU,CAAC;IACV,SAAS,CAAC;QAET,KAAK;YACJ,MAAM,KAAK,GAAG,aAAa,CAAE,EAAS,EAAG,GAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAG,GAAG,EAAE,CAAC,CAAE,CAAA;YAC/D,iBAAiB,CAAE,KAAK,CAAC,GAAG,EAAG,GAAG,CAAE,CAAA;QACrC,CAAC;QAED,KAAK;YACJ,MAAM,KAAK,GAAG,aAAa,CAAE,EAAS,EAAG,GAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAG,GAAG,EAAE,CAAC,CAAE,CAAA;YAC/D,iBAAiB,CAAE,KAAK,IAAI,KAAK,EAAG,IAAI,CAAE,CAAA;QAC3C,CAAC;QAED,KAAK;YACJ,MAAM,MAAM,GAAG,EAAE,GAAG,EAAG,GAAG,EAAE,CAAA;YAC5B,MAAM,KAAK,GAAG,aAAa,CAAE,EAAS,EAAG,GAAE,EAAE,CAAC,MAAM,CAAE,CAAA;YACtD,KAAK,CAAC,GAAG,GAAG,GAAG,CAAA;YACf,iBAAiB,CAAE,MAAM,CAAC,GAAG,EAAG,GAAG,CAAE,CAAA;QACtC,CAAC;QAED,0BAA0B;YAEzB,MAAM,KAAK,GAAG,aAAa,CAAE,EAAS,EAAG,GAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAG,GAAG,EAAE,CAAC,CAAE,CAAA;YAE/D,gBAAgB,CACf,MAAM,CAAC,wBAAwB,CAAE,KAAK,EAAG,KAAK,CAAE,EAChD;gBACC,KAAK,EAAE,GAAG;gBACV,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,IAAI;gBAChB,YAAY,EAAE,IAAI;aAClB,CACD,CAAA;QAEF,CAAC;QAED,SAAS;YAER,MAAM,KAAK,GAAG,aAAa,CAC1B,EAAS,EACT,GAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAG,GAAG,EAAG,CAAE,MAAM,CAAC,WAAW,CAAE,EAAG,KAAK,EAAE,CAAC,CACrD,CAAA;YAED,gBAAgB,CACf,OAAO,CAAC,OAAO,CAAE,KAAK,CAAE,EACxB,CAAE,KAAK,EAAG,MAAM,CAAC,WAAW,CAAE,CAC9B,CAAA;QAEF,CAAC;QAED,gBAAgB;YAEf,MAAM,GAAG;aAAG;YAEZ,MAAM,KAAK,GAAG,aAAa,CAC1B,EAAS,EACT,GAAE,EAAE,CAAC,IAAI,GAAG,CACZ,CAAA;YAED,iBAAiB,CAChB,MAAM,CAAC,cAAc,CAAE,KAAK,CAAE,EAC9B,GAAG,CAAC,SAAS,CACb,CAAA;QAEF,CAAC;QAED,gBAAgB;YAEf,MAAM,GAAG;aAAG;YACZ,MAAM,MAAM,GAAG,EAAE,CAAA;YAEjB,MAAM,KAAK,GAAG,aAAa,CAC1B,EAAE,EACF,GAAE,EAAE,CAAC,MAAM,CACX,CAAA;YAED,MAAM,CAAC,cAAc,CAAE,KAAK,EAAG,GAAG,CAAC,SAAS,CAAE,CAAA;YAE9C,iBAAiB,CAChB,MAAM,CAAC,cAAc,CAAE,MAAM,CAAE,EAC/B,GAAG,CAAC,SAAS,CACb,CAAA;QAEF,CAAC;QAED,YAAY;YAEX,MAAM,GAAG;aAAG;YAEZ,MAAM,KAAK,GAAG,aAAa,CAC1B,EAAE,EACF,GAAE,EAAE,CAAC,IAAI,GAAG,CACZ,CAAA;YAED,cAAc,CAAE,KAAK,YAAY,GAAG,CAAE,CAAA;YACtC,cAAc,CAAE,KAAK,YAAY,aAAa,CAAE,CAAA;QAEjD,CAAC;QAED,UAAU;YAET,MAAM,GAAG;aAAG;YAEZ,MAAM,KAAK,GAAG,aAAa,CAC1B,EAAE,EACF,GAAE,EAAE,CAAC,IAAI,GAAG,CACZ,CAAA;YAED,cAAc,CAAE,KAAK,YAAY,GAAG,CAAE,CAAA;YACtC,cAAc,CAAE,KAAK,YAAY,aAAa,CAAE,CAAA;QAEjD,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EAlHS,CAAC,KAAD,CAAC,QAkHV;;;;AClHD,IAAU,CAAC,CA6DV;AA7DD,WAAU,GAAC;IACV,SAAS,CAAE;QACV,mBAAmB,CAAE,CAAC;YACrB,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YAClD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YAEhC,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;YACvC,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;YAC/B,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;YAC/B,iBAAiB,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;QACnC,CAAC;QAED,8BAA8B,CAAE,CAAC;YAChC,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YAClD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YAE5B,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;YACvC,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;YAC/B,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;YAC/B,iBAAiB,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QACpC,CAAC;QAED,sBAAsB,CAAE,CAAC;YACxB,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YAClD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YAE9B,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;YAC/B,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;YAC/B,iBAAiB,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;YAElC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YAE/B,iBAAiB,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;YAChC,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;QACpC,CAAC;QAED,uBAAuB,CAAE,CAAC;YACzB,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YAClD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;YAEhC,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;YAC/B,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;YAC/B,iBAAiB,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;QACnC,CAAC;QAED,2BAA2B,CAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YAElD,gBAAgB,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,8DAA8D,CAAE,CAAA;YAC1G,gBAAgB,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,4CAA4C,CAAE,CAAA;YACvF,gBAAgB,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,6CAA6C,CAAE,CAAA;QAC1F,CAAC;QAED,gBAAgB,CAAE,CAAC;YAClB,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YAClD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;YAEtC,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAA;QAC/D,CAAC;KAED,CAAE,CAAA;AACJ,CAAC,EA7DS,CAAC,KAAD,CAAC,QA6DV;;;;AC7DD,IAAU,CAAC,CAcV;AAdD,WAAU,CAAC;IACV,SAAS,CAAE;QAEV,0BAA0B;YACzB,iBAAiB,CAAE,UAAU,CAAE,CAAC,CAAE,CAAE,CAAC,CAAE,EAAG,CAAC,CAAE,CAAA;YAC7C,iBAAiB,CAAE,UAAU,CAAE,KAAK,CAAE,CAAE,CAAC,CAAE,EAAG,KAAK,CAAE,CAAA;YACrD,iBAAiB,CAAE,UAAU,CAAE,IAAI,CAAE,CAAE,CAAC,CAAE,EAAG,KAAK,CAAC,CAAE,CAAA;YACrD,iBAAiB,CAAE,UAAU,CAAE,KAAK,CAAC,CAAE,CAAE,CAAC,CAAE,EAAG,KAAK,CAAC,CAAE,CAAA;YAEvD,iBAAiB,CAAE,UAAU,CAAY,KAAK,CAAC,CAAE,CAAC,GAAG,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAE,CAAE,CAAC,CAAE,EAAG,KAAK,CAAC,CAAE,CAAA;YAC1F,iBAAiB,CAAE,UAAU,CAAE,CAAC,CAAE,CAAC,GAAG,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAE,CAAE,CAAC,CAAE,EAAG,GAAG,CAAE,CAAA;QACzE,CAAC;KAED,CAAE,CAAA;AACJ,CAAC,EAdS,CAAC,KAAD,CAAC,QAcV;;;;ACdD,IAAU,CAAC,CAoJV;AApJD,WAAU,GAAC;IAEV,SAAS,KAAK,CAAE,IAAgB,EAAE,KAAa;QAC9C,iBAAiB,CAChB,IAAI,CAAC,QAAQ,EAAE,EACf,EAAE,CAAC,sBAAsB,CAAE,KAAK,CAAE,CAAC,QAAQ,EAAE,CAC7C,CAAA;IACF,CAAC;IAED,SAAS,CAAE;QAEV,WAAW,CAAC,CAAC;YAEZ,KAAK,CACJ,CAAC,CAAC,sBAAsB,CAAE;;KAEzB,CAAC,CAAC,MAAM,CAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAG,GAAG,EAAG,GAAG,EAAG,GAAG,CAAE,EACrD;;KAEC,CACD,CAAA;YACD,KAAK,CACJ,CAAC,CAAC,sBAAsB,CAAC;;KAExB,CAAC,CAAC,MAAM,CAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAG,GAAG,EAAG,GAAG,EAAG,GAAG,EAAG,GAAG,CAAE,EAC3D;;KAEC,CACD,CAAA;YAED,KAAK,CACJ,CAAC,CAAC,sBAAsB,CAAC;;KAExB,CAAC;iBACA,MAAM,CAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,CAAE,EAC9C;;KAEC,CACD,CAAA;YACD,KAAK,CACJ,CAAC,CAAC,sBAAsB,CAAC;;KAExB,CAAC;iBACA,MAAM,CAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,CAAE,EAClD;;;KAGC,CACD,CAAA;YAED,KAAK,CACJ,CAAC,CAAC,sBAAsB,CAAC;;KAExB,CAAC;iBACA,MAAM,CAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAG,IAAI,EAAG,IAAI,EAAG,IAAI,CAAE,EACvD;;KAEC,CACD,CAAA;YACD,KAAK,CACJ,CAAC,CAAC,sBAAsB,CAAC;;KAExB,CAAC;iBACA,MAAM,CAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAG,IAAI,EAAG,IAAI,EAAG,IAAI,EAAG,IAAI,CAAE,EAC9D;;;KAGC,CACD,CAAA;QAEF,CAAC;QAED,UAAU,CAAC,CAAC;YAEX,KAAK,CACJ,CAAC,CAAC,sBAAsB,CAAC;;KAExB,CAAC,CAAC,MAAM,CAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAE,CAAC,CAAC,CAAC,EACjC;;KAEC,CACD,CAAA;YAED,KAAK,CACJ,CAAC,CAAC,sBAAsB,CAAC;;KAExB,CAAC,CAAC,MAAM,CAAE,CAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAE,CAAE,CAAC,CAAC,CAAC,EAC1C;;KAEC,CACD,CAAA;YAED,KAAK,CACJ,CAAC,CAAC,sBAAsB,CAAC;;KAExB,CAAC,CAAC,MAAM,CAAE,CAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAE,CAAC,CAAC,CAAC,EACjF;;;;KAIC,CACD,CAAA;QAEF,CAAC;QAED,UAAU,CAAC,CAAC;YAEX,MAAM,IAAI,GAAG,CAAC,CAAC,sBAAsB,CAAC;;IAErC,CAAC,CAAA;YAEF,KAAK,CACJ,IAAI,CAAC,MAAM,CAAE,IAAI,EAAG,GAAG,EAAG,GAAG,EAAG,GAAG,CAAE,EACrC;;KAEC,CACD,CAAA;YAED,KAAK,CACJ,IAAI,CAAC,MAAM,CAAE,IAAI,CAAC,MAAM,CAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAE,CAAC,IAAI,EAAG,GAAG,EAAG,GAAG,EAAG,GAAG,CAAE,CAAC,CAAC,CAAC,EAC3E;;KAEC,CACD,CAAA;YAED,KAAK,CACJ,IAAI,CAAC,MAAM,CAAE,IAAI,EAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,EAC7B;;KAEC,CACD,CAAA;QAEF,CAAC;QAED,MAAM,CAAC,CAAC;YAEP,MAAM,GAAG,GAAG,CAAC,CAAC,sBAAsB,CAAC;;IAEpC,CAAC;iBACD,IAAI,CAAC;gBACL,KAAK,EAAG,CAAE,KAAK,EAAG,IAAI,EAAE,EAAE,CAAC,CAAE,KAAK,CAAC,MAAM,CAAE,KAAK,EAAG,KAAK,CAAC,IAAI,CAAE,IAAI,CAAE,CAAE,CAAE;aACzE,CAAC,CAAA;YAEF,iBAAiB,CAAE,GAAG,CAAC,GAAG,CAAE,MAAM,CAAE,EAAG,CAAE,eAAe,CAAE,CAAE,CAAA;QAE7D,CAAC;KAED,CAAE,CAAA;AACJ,CAAC,EApJS,CAAC,KAAD,CAAC,QAoJV;;;;ACpJD,IAAU,CAAC,CAmDV;AAnDD,WAAU,CAAC;IAEV,SAAS,CAAC;QAET,aAAa;YAEZ,iBAAiB,CAChB,iBAAiB,CAAE,EAAE,EAAE,GAAE,EAAE,CAAC,IAAI,CAAE,EAClC,EAAE,CACF,CAAA;QAEF,CAAC;QAED,WAAW;YAEV,iBAAiB,CAChB,iBAAiB,CAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,EAAE,GAAE,EAAE,CAAC,KAAK,CAAE,EAClD,CAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAE,CACrB,CAAA;QAEF,CAAC;QAED,kBAAkB;YAEjB,iBAAiB,CAChB,iBAAiB,CAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,EAAE,CAAC,CAAE,EACzC,CAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,EAAE,CAAE,CAAC,EAAE,CAAC,CAAE,CAAE,CACzB,CAAA;QAEF,CAAC;QAED,mBAAmB;YAElB,iBAAiB,CAChB,iBAAiB,CAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAE,EACvD,CAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAE,CACrB,CAAA;QAEF,CAAC;QAED,sBAAsB;YAErB,iBAAiB,CAChB,iBAAiB,CAAE,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,EAAE,GAAE,EAAE,CAAC,IAAI,CAAE,EACjD,CAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAC3B,CAAA;QAEF,CAAC;KAED,CAAC,CAAA;AAEH,CAAC,EAnDS,CAAC,KAAD,CAAC,QAmDV;;;;ACnDD,IAAU,CAAC,CAkGV;AAlGD,WAAU,GAAC;IACV,SAAS,CAAE;QAEV,cAAc,CAAE,CAAC;YAEhB,iBAAiB,CAAE,CAAC,CAAC,sBAAsB,CAAE,YAAY,CAAE,CAAC,IAAI,CAAC,MAAM,EAAG,CAAC,CAAE,CAAA;YAC7E,iBAAiB,CAAE,CAAC,CAAC,sBAAsB,CAAE,YAAY,CAAE,CAAC,IAAI,CAAE,CAAC,CAAE,CAAC,IAAI,EAAG,KAAK,CAAE,CAAA;YACpF,iBAAiB,CAAE,CAAC,CAAC,sBAAsB,CAAE,WAAW,CAAE,CAAC,IAAI,CAAC,MAAM,EAAG,CAAC,CAAE,CAAA;YAE5E,iBAAiB,CAAE,CAAC,CAAC,sBAAsB,CAAE,eAAe,CAAE,CAAC,IAAI,CAAC,MAAM,EAAG,CAAC,CAAE,CAAA;YAChF,iBAAiB,CAAE,CAAC,CAAC,sBAAsB,CAAE,eAAe,CAAE,CAAC,IAAI,CAAE,CAAC,CAAE,CAAC,KAAK,EAAG,KAAK,CAAE,CAAA;YAExF,iBAAiB,CAAE,CAAC,CAAC,sBAAsB,CAAE,iBAAiB,CAAE,CAAC,IAAI,CAAE,CAAC,CAAE,CAAC,IAAI,CAAE,CAAC,CAAE,CAAC,IAAI,CAAE,CAAC,CAAE,CAAC,KAAK,EAAG,KAAK,CAAE,CAAA;YAC9G,iBAAiB,CAAE,CAAC,CAAC,sBAAsB,CAAE,6BAA6B,CAAE,CAAC,IAAI,CAAE,CAAC,CAAE,CAAC,IAAI,CAAE,CAAC,CAAE,CAAC,IAAI,CAAE,CAAC,CAAE,CAAC,KAAK,EAAG,KAAK,CAAE,CAAA;YAE1H,iBAAiB,CAAE,CAAC,CAAC,sBAAsB,CAAE,kBAAkB,CAAE,CAAC,QAAQ,EAAE,EAAG,kBAAkB,CAAE,CAAA;QACpG,CAAC;QAED,eAAe,CAAE,CAAC;YAEjB,MAAM,IAAI,GAAG;;;IAGZ,CAAA;YAED,gBAAgB,CAAE,GAAE,EAAE;gBACrB,CAAC,CAAC,sBAAsB,CAAE,IAAI,EAAG,MAAM,CAAE,CAAA;YAC1C,CAAC,EAAE,oDAAoD,CAAE,CAAA;QAE1D,CAAC;QAED,cAAc,CAAE,CAAC;YAEhB,MAAM,IAAI,GAAG;;;IAGZ,CAAA;YAED,gBAAgB,CAAE,GAAE,EAAE;gBACrB,CAAC,CAAC,sBAAsB,CAAE,IAAI,EAAG,MAAM,CAAE,CAAA;YAC1C,CAAC,EAAE,6CAA6C,CAAE,CAAA;QAEnD,CAAC;QAED,gCAAgC,CAAE,CAAC;YAElC,MAAM,IAAI,GAAG,eAAe,CAAA;YAE5B,gBAAgB,CAAE,GAAE,EAAE;gBACrB,CAAC,CAAC,sBAAsB,CAAE,IAAI,EAAG,MAAM,CAAE,CAAA;YAC1C,CAAC,EAAE,+CAA+C,CAAE,CAAA;QAErD,CAAC;QAED,qCAAqC,CAAE,CAAC;YAEvC,MAAM,IAAI,GAAG,YAAY,CAAA;YAEzB,gBAAgB,CAAE,GAAE,EAAE;gBACrB,CAAC,CAAC,sBAAsB,CAAE,IAAI,EAAG,MAAM,CAAE,CAAA;YAC1C,CAAC,EAAE,oDAAoD,CAAE,CAAA;QAE1D,CAAC;QAED,6BAA6B,CAAE,CAAC;YAE/B,MAAM,IAAI,GAAG,MAAM,CAAA;YAEnB,gBAAgB,CAAE,GAAE,EAAE;gBACrB,CAAC,CAAC,sBAAsB,CAAE,IAAI,EAAG,MAAM,CAAE,CAAA;YAC1C,CAAC,EAAE,sDAAsD,CAAE,CAAA;QAE5D,CAAC;QAED,yBAAyB,CAAE,CAAC;YAE3B,MAAM,IAAI,GAAG,UAAU,CAAA;YACvB,MAAM,MAAM,GAAG,EAAc,CAAA;YAE7B,MAAM,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC;gBACzB,SAAS,EAAE,CAAE,KAAU,EAAG,EAAE;oBAC3B,MAAM,CAAC,IAAI,CAAE,KAAK,CAAC,OAAO,CAAE,CAAA;oBAC5B,OAAO,IAAa,CAAA;gBACrB,CAAC;aACD,CAAC,CAAA;YAEF,MAAM,GAAG,GAAG,EAAE,CAAC,sBAAsB,CAAE,IAAI,EAAG,MAAM,CAAE,CAAA;YAEtD,gBAAgB,CAAE,MAAM,EAAE;gBACzB,oDAAoD;gBACpD,8DAA8D;aAC9D,CAAE,CAAA;YAEH,iBAAiB,CAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,WAAW,CAAE,CAAA;QAEjD,CAAC;KAED,CAAE,CAAA;AACJ,CAAC,EAlGS,CAAC,KAAD,CAAC,QAkGV;;;;AClGD,IAAU,CAAC,CAaV;AAbD,WAAU,CAAC;IACV,SAAS,CAAE;QAEV,UAAU;YACT,iBAAiB,CAAE,oBAAoB,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAG,KAAK,CAAE,CAAA;YAChE,iBAAiB,CAAE,oBAAoB,CAAC,CAAE,KAAK,EAAG,IAAI,CAAE,CAAC,CAAC,QAAQ,EAAE,EAAG,sBAAsB,CAAE,CAAA;YAC/F,iBAAiB,CAAE,oBAAoB,CAAC,CAAE,CAAC,EAAG,CAAC,EAAG,GAAG,CAAE,CAAC,CAAC,QAAQ,EAAE,EAAG,sBAAsB,CAAE,CAAA;YAC9F,iBAAiB,CAAE,oBAAoB,CAAE,IAAI,WAAW,CAAC,CAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAE,CAAC,CAAE,CAAC,QAAQ,EAAE,EAAG,sCAAsC,CAAE,CAAA;YAC5I,iBAAiB,CAAE,oBAAoB,CAAC,CAAE,EAAE,EAAG,KAAK,EAAG,UAAU,CAAE,CAAC,CAAC,QAAQ,EAAE,EAAG,gDAAgD,CAAE,CAAA;YACpI,iBAAiB,CAAE,oBAAoB,CAAC,EAAE,KAAK,EAAG,KAAK,EAAG,UAAU,EAAG,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAG,yDAAyD,CAAE,CAAA;QACzJ,CAAC;KAED,CAAE,CAAA;AACJ,CAAC,EAbS,CAAC,KAAD,CAAC,QAaV;;;;ACbD,IAAU,CAAC,CAiBV;AAjBD,WAAU,CAAC;IACV,SAAS,CAAC;QAET,8BAA8B;YAE7B,iBAAiB,CAAE,QAAQ,CAAE,GAAE,EAAE,CAAC,KAAK,CAAE,EAAG,KAAK,CAAE,CAAA;QAEpD,CAAC;QAED,8BAA8B;QAC9B,GAAG;QACH,mDAAmD;QACnD,gEAAgE;QAChE,GAAG;QACH,KAAK;KAEL,CAAC,CAAA;AACH,CAAC,EAjBS,CAAC,KAAD,CAAC,QAiBV;;;;ACjBD,IAAU,CAAC,CAEV;AAFD,WAAU,GAAC;IACV,eAAe,CAAC,IAAI,CAAE,CAAC,CAAA,EAAE,CAAC,CAAC,CAAC,aAAa,GAAG,GAAE,EAAE,CAAC,KAAK,CAAE,CAAA;AACzD,CAAC,EAFS,CAAC,KAAD,CAAC,QAEV;;;;ACFD,IAAU,CAAC,CA+EV;AA/ED,WAAU,GAAC;IACV,SAAS,CAAC;QAET,cAAc;YAEb,MAAM,IAAI,GAAG,IAAI,aAAa,CAAA;YAC9B,MAAM,IAAI,GAAG,IAAI,aAAa,CAAA;YAC9B,MAAM,GAAG,GAAG,IAAI,iBAAiB,CAAA;YAEjC,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAA;YAC1B,IAAI,CAAC;gBAEJ,IAAI,CAAC,OAAO,EAAE,CAAA;gBACd,IAAI,CAAC,OAAO,EAAE,CAAA;gBACd,IAAI,CAAC,OAAO,EAAE,CAAA;YAEf,CAAC;oBAAS,CAAC;gBAEV,GAAG,CAAC,SAAS,EAAE,CAAA;gBACf,GAAG,CAAC,SAAS,CAAE,GAAG,CAAE,CAAA;YAErB,CAAC;YAED,IAAI,CAAC,IAAI,EAAE,CAAA;YACX,IAAI,CAAC,IAAI,EAAE,CAAA;YAEX,gBAAgB,CAAE,GAAG,CAAC,QAAQ,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAE,CAAE,CAAA;YAEtD,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAA;YAC1B,IAAI,CAAC;gBAEJ,IAAI,CAAC,OAAO,EAAE,CAAA;gBACd,IAAI,CAAC,OAAO,EAAE,CAAA;gBACd,IAAI,CAAC,OAAO,EAAE,CAAA;YAEf,CAAC;oBAAS,CAAC;gBAEV,GAAG,CAAC,SAAS,EAAE,CAAA;gBACf,GAAG,CAAC,SAAS,CAAE,GAAG,CAAE,CAAA;YAErB,CAAC;YAED,IAAI,CAAC,IAAI,EAAE,CAAA;YACX,IAAI,CAAC,IAAI,EAAE,CAAA;YAEX,gBAAgB,CAAE,GAAG,CAAC,QAAQ,EAAE,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAE,CAAE,CAAA;QAEvD,CAAC;QAED,kBAAkB,CAAE,CAAC;YAEpB,MAAM,IAAI,GAAG,IAAI,iBAAiB,CAAA;YAClC,MAAM,IAAI,GAAG,IAAI,iBAAiB,CAAA;YAElC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;YAC3B,IAAI,CAAC;gBAEJ,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;gBAC3B,IAAI,CAAC;oBAEJ,gBAAgB,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,uBAAuB,CAAE,CAAA;gBAEjE,CAAC;wBAAS,CAAC;oBAEV,IAAI,CAAC,SAAS,EAAE,CAAA;oBAChB,IAAI,CAAC,SAAS,CAAE,GAAG,CAAE,CAAA;gBAEtB,CAAC;YAEF,CAAC;oBAAS,CAAC;gBAEV,IAAI,CAAC,SAAS,EAAE,CAAA;gBAChB,IAAI,CAAC,SAAS,CAAE,GAAG,CAAE,CAAA;YAEtB,CAAC;QAEF,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EA/ES,CAAC,KAAD,CAAC,QA+EV;;;;AC/ED,IAAU,CAAC,CAuCV;AAvCD,WAAU,CAAC;IAEV,yBAAyB;IACd,uBAAqB,GAAG,EAAqB,CAAA;IAExD,SAAgB,oBAAoB;QACnC,MAAM,KAAK,GAAG,EAAA,qBAAqB,CAAC,MAAM,CAAE,CAAC,CAAE,CAAA;QAC/C,KAAK,MAAM,IAAI,IAAI,KAAK;YAAG,IAAI,EAAE,CAAA;IAClC,CAAC;IAHe,sBAAoB,uBAGnC,CAAA;IAED,MAAa,uBAAwB,SAAQ,YAAY;QAMpC;QAJpB,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAA;QAC3B,SAAS,GAAG,KAAK,CAAA;QACjB,EAAE,CAAM;QAER,YAAoB,IAAgB;YACnC,KAAK,EAAE,CAAA;YADY,SAAI,GAAJ,IAAI,CAAY;YAEnC,EAAA,qBAAqB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;QACnC,CAAC;QAED,UAAU;YACT,MAAM,KAAK,GAAG,EAAA,qBAAqB,CAAC,OAAO,CAAE,IAAI,CAAC,IAAI,CAAE,CAAA;YACxD,IAAI,KAAK,IAAI,CAAC;gBAAE,EAAA,qBAAqB,CAAC,MAAM,CAAE,KAAK,EAAG,CAAC,CAAE,CAAA;QAC1D,CAAC;KAED;IAhBY,yBAAuB,0BAgBnC,CAAA;IAED,MAAa,uBAAwB,SAAQ,uBAAuB;QAG3D;QADR,YACQ,KAAc,EACrB,IAAgB;YAEhB,KAAK,CAAE,IAAI,CAAE,CAAA;YAHN,UAAK,GAAL,KAAK,CAAS;QAItB,CAAC;KAED;IATY,yBAAuB,0BASnC,CAAA;AAEF,CAAC,EAvCS,CAAC,KAAD,CAAC,QAuCV;;;;ACvCD,IAAU,CAAC,CAMV;AAND,WAAU,GAAC;IAEV,eAAe,CAAC,IAAI,CAAE,CAAC,CAAC,EAAE;QACzB,CAAC,CAAC,eAAe,GAAG,uBAAwD,CAAA;IAC7E,CAAC,CAAC,CAAA;AAEH,CAAC,EANS,CAAC,KAAD,CAAC,QAMV;;;;ACND,IAAU,CAAC,CA0GV;AA1GD,WAAU,CAAC;IAEV,SAAS,CAAC;QAET,gBAAgB;YAEf,MAAM,IAAK,SAAQ,YAAY;gBAGvB,AAAP,MAAM,CAAC,IAAI,CAAE,CAAS,EAAE,CAAS;oBAChC,OAAO,CAAC,GAAG,CAAC,CAAA;gBACb,CAAC;aAED;YAJO;gBADL,gBAAgB;kCAGjB;YAIF,iBAAiB,CAAE,IAAI,CAAC,IAAI,CAAE,CAAC,EAAE,CAAC,CAAE,EAAE,CAAC,CAAE,CAAA;QAE1C,CAAC;QAED,KAAK,CAAC,gBAAgB;YAErB,MAAM,SAAU,SAAQ,YAAY;gBAEnC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAE,CAAS;oBAC1B,OAAO,CAAC,CAAA;gBACT,CAAC;gBAED,MAAM,CAAC,GAAG,CAAE,CAAS,EAAE,CAAS;oBAC/B,MAAM,GAAG,GAAG,cAAc,CAAE,IAAI,CAAE,CAAA;oBAClC,OAAO,GAAG,CAAC,GAAG,CAAE,CAAC,CAAE,GAAG,GAAG,CAAC,GAAG,CAAE,CAAC,CAAE,CAAA;gBACnC,CAAC;gBAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAE,CAAS,EAAE,CAAS;oBACtC,OAAO,CAAC,GAAG,MAAM,eAAe,CAAE,IAAI,CAAE,CAAC,GAAG,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;gBACrD,CAAC;aAED;YAED,iBAAiB,CAAE,MAAM,SAAS,CAAC,IAAI,CAAE,CAAC,EAAE,CAAC,CAAE,EAAE,CAAC,CAAE,CAAA;QAErD,CAAC;QAEK,AAAN,KAAK,CAAC,qBAAqB;YAE1B,MAAM,WAAY,SAAQ,YAAY;gBAErC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAA;gBACrB,MAAM,CAAC,YAAY,GAAG,CAAC,CAAA;gBAGhB,AAAP,MAAM,CAAC,SAAS;oBACf,IAAI,CAAC,UAAU,IAAI,CAAC,CAAA;gBACrB,CAAC;gBAED,MAAM,CAAC,WAAW;oBACjB,IAAI,CAAC,YAAY,IAAI,CAAC,CAAA;gBACvB,CAAC;gBAED,MAAM,CAAC,KAAK,CAAC,GAAG,CAAE,CAAS;oBAC1B,OAAO,CAAC,CAAA;gBACT,CAAC;gBAED,MAAM,CAAC,GAAG,CAAE,CAAS,EAAE,CAAS;oBAC/B,IAAI,CAAC,SAAS,EAAE,CAAA;oBAChB,IAAI,CAAC,WAAW,EAAE,CAAA;oBAClB,MAAM,GAAG,GAAG,cAAc,CAAE,IAAI,CAAE,CAAA;oBAClC,OAAO,GAAG,CAAC,GAAG,CAAE,CAAC,CAAE,GAAG,GAAG,CAAC,GAAG,CAAE,CAAC,CAAE,CAAA;gBACnC,CAAC;gBAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAE,CAAS,EAAE,CAAS;oBACtC,OAAO,CAAC,GAAG,MAAM,eAAe,CAAE,IAAI,CAAE,CAAC,GAAG,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;gBACrD,CAAC;;YArBM;gBADL,gBAAgB;8CAGjB;YAuBF,iBAAiB,CAAE,MAAM,WAAW,CAAC,IAAI,CAAE,CAAC,EAAE,CAAC,CAAE,EAAE,CAAC,CAAE,CAAA;YACtD,iBAAiB,CAAE,WAAW,CAAC,UAAU,EAAE,CAAC,CAAE,CAAA;YAC9C,iBAAiB,CAAE,WAAW,CAAC,YAAY,EAAE,CAAC,CAAE,CAAA;QAEjD,CAAC;QAED,KAAK,CAAC,gBAAgB;YAErB,MAAM,MAAO,SAAQ,YAAY;gBAEhC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAE,CAAS,EAAE,CAAS;oBACrC,SAAS,CAAE,IAAI,KAAK,CAAE,aAAa,GAAG,CAAE,CAAC,GAAG,CAAC,CAAE,CAAE,CAAE,CAAA;gBACpD,CAAC;gBAED,MAAM,CAAC,KAAK;oBACX,IAAI,CAAC;wBACJ,OAAO,cAAc,CAAE,MAAM,CAAE,CAAC,GAAG,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;oBAC5C,CAAC;oBAAC,OAAO,KAAU,EAAG,CAAC;wBACtB,IAAI,iBAAiB,CAAE,KAAK,CAAE;4BAAG,gBAAgB,CAAE,KAAK,CAAE,CAAA;wBAC1D,iBAAiB,CAAE,KAAK,CAAC,OAAO,EAAE,cAAc,CAAE,CAAA;oBACnD,CAAC;gBACF,CAAC;aAED;YAED,MAAM,eAAe,CAAE,MAAM,CAAE,CAAC,KAAK,EAAE,CAAA;QAExC,CAAC;KAED,CAAC,CAAA;AAEH,CAAC,EA1GS,CAAC,KAAD,CAAC,QA0GV;;;;AC1GD,oBAAoB;AACpB,IAAU,CAAC,CA6FV;AA7FD,WAAU,CAAC;IACV,SAAS,CAAC;QAET,YAAY;YAEX,iBAAiB,CAAE,QAAQ,CAAE,IAAI,CAAE,EAAE,MAAM,CAAE,CAAA;YAC7C,iBAAiB,CAAE,QAAQ,CAAE,KAAK,CAAE,EAAE,OAAO,CAAE,CAAA;YAC/C,iBAAiB,CAAE,QAAQ,CAAE,IAAI,CAAE,EAAE,MAAM,CAAE,CAAA;YAC7C,iBAAiB,CAAE,QAAQ,CAAE,CAAC,CAAE,EAAE,GAAG,CAAE,CAAA;YACvC,iBAAiB,CAAE,QAAQ,CAAE,EAAE,IAAE,GAAG,CAAE,EAAE,uBAAuB,CAAE,CAAA;YACjE,iBAAiB,CAAE,QAAQ,CAAE,EAAE,CAAE,EAAE,IAAI,CAAE,CAAA;QAE1C,CAAC;QAED,cAAc;YAEb,iBAAiB,CAAE,QAAQ,CAAC,CAAE,IAAI,CAAE,CAAC,EAAE,QAAQ,CAAE,CAAA;YACjD,iBAAiB,CAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,CAAE,CAAA;YACtD,iBAAiB,CAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,iBAAiB,CAAE,CAAA;QAEnE,CAAC;QAED,YAAY;YAEX,iBAAiB,CAAE,QAAQ,CAAE,IAAI,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAE,EAAE,mBAAmB,CAAE,CAAA;YAC9E,iBAAiB,CAAE,QAAQ,CAAC,CAAE,IAAI,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,CAAE,CAAC,CAAE,CAAC,EAAE,qBAAqB,CAAE,CAAA;YAClF,iBAAiB,CAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,IAAI,UAAU,CAAC,CAAE,CAAC,EAAE,CAAC,CAAE,CAAC,EAAE,CAAC,EAAE,2BAA2B,CAAE,CAAA;QAE9F,CAAC;QAED,UAAU;YAET,MAAM,IAAI,GAAG,GAAE,EAAE,GAAE,CAAC,CAAA;YACpB,iBAAiB,CAAE,QAAQ,CAAE,IAAI,CAAE,EAAE,QAAQ,CAAE,IAAI,CAAE,CAAE,CAAA;YACvD,kBAAkB,CAAE,QAAQ,CAAE,IAAI,CAAE,EAAE,QAAQ,CAAE,GAAE,EAAE,GAAE,CAAC,CAAE,CAAE,CAAA;QAE5D,CAAC;QAED,SAAS;YAER,MAAM,IAAI;aAAG;YACb,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;YAEtB,iBAAiB,CAAE,QAAQ,CAAE,GAAG,CAAE,EAAE,QAAQ,CAAE,GAAG,CAAE,CAAE,CAAA;YACrD,kBAAkB,CAAE,QAAQ,CAAE,GAAG,CAAE,EAAE,QAAQ,CAAE,IAAI,IAAI,EAAE,CAAE,CAAE,CAAA;QAE9D,CAAC;QAED,UAAU;YAET,MAAM,GAAG,GAAG,4BAAc,CAAA;YAE1B,iBAAiB,CAAE,QAAQ,CAAE,GAAG,CAAE,EAAE,QAAQ,CAAE,GAAG,CAAE,CAAE,CAAA;YACrD,kBAAkB,CAAE,QAAQ,CAAE,GAAG,CAAE,EAAE,QAAQ,CAAE,4BAAc,CAAE,CAAE,CAAA;QAElE,CAAC;QAED,4BAA4B;YAE3B,MAAM,IAAI;gBACT,MAAM,KAAK,OAAO,KAAK,CAAA,CAAC,CAAC;aACzB;YAED,kBAAkB,CAAE,CAAE,QAAQ,CAAE,IAAI,IAAI,CAAE,CAAE,EAAE,CAAE,QAAQ,CAAE,IAAI,IAAI,CAAE,CAAE,CAAE,CAAA;QAEzE,CAAC;QAED,oBAAoB;YAEnB,MAAM,IAAI;gBACW;gBAAqB;gBAAzC,YAAoB,IAAY,EAAS,GAAW;oBAAhC,SAAI,GAAJ,IAAI,CAAQ;oBAAS,QAAG,GAAH,GAAG,CAAQ;gBAAI,CAAC;gBACzD,CAAE,eAAe,CAAE,KAAK,OAAO,QAAS,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,IAAI,CAAG,GAAG,CAAA,CAAC,CAAC;aACzE;YAED,iBAAiB,CAChB,QAAQ,CAAE,CAAE,IAAI,IAAI,CAAE,KAAK,EAAE,EAAE,CAAE,CAAE,CAAE,EACrC,QAAQ,CAAE,CAAE,IAAI,IAAI,CAAE,KAAK,EAAE,EAAE,CAAE,CAAE,CAAE,EACrC,eAAe,CACf,CAAA;QAEF,CAAC;QAED,wBAAwB;YAEvB,iBAAiB,CAAE,QAAQ,CAAE,IAAI,IAAI,CAAE,KAAK,CAAE,CAAE,EAAE,WAAW,CAAE,CAAA;YAC/D,iBAAiB,CAAE,QAAQ,CAAE,IAAI,IAAI,CAAE,KAAK,CAAE,CAAE,EAAE,aAAa,CAAE,CAAA;YAEjE,iBAAiB,CAAE,QAAQ,CAAE,GAAG,CAAE,EAAE,KAAK,CAAE,CAAA;YAC3C,iBAAiB,CAAE,QAAQ,CAAE,SAAS,CAAE,EAAE,YAAY,CAAE,CAAA;QAEzD,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EA7FS,CAAC,KAAD,CAAC,QA6FV;;;;AC9FD,IAAU,CAAC,CAMV;AAND,WAAU,GAAC;IAEV,eAAe,CAAC,IAAI,CAAE,CAAC,CAAC,EAAE;QACzB,CAAC,CAAC,kBAAkB,GAAG,uBAA2D,CAAA;IACnF,CAAC,CAAC,CAAA;AAEH,CAAC,EANS,CAAC,KAAD,CAAC,QAMV;;;;ACND,IAAU,CAAC,CAMV;AAND,WAAU,GAAC;IAEV,eAAe,CAAC,IAAI,CAAE,CAAC,CAAC,EAAE;QACzB,CAAC,CAAC,gBAAgB,GAAG,uBAAyD,CAAA;IAC/E,CAAC,CAAC,CAAA;AAEH,CAAC,EANS,CAAC,KAAD,CAAC,QAMV;;;;;;;;;;ACND,IAAU,CAAC,CA2BV;AA3BD,WAAU,CAAC;IAKV,MAAa,eAAgB,SAAQ,YAAY;QAKxC;QACA;QAJR,EAAE,CAAM;QAER,YACQ,KAAc,EACd,IAAgB;YAEvB,KAAK,EAAE,CAAA;YAHA,UAAK,GAAL,KAAK,CAAS;YACd,SAAI,GAAJ,IAAI,CAAY;YAGvB,IAAI,CAAC,EAAE,GAAG,mBAAmB,CAAE,IAAI,EAAG,EAAE,OAAO,EAAG,KAAK,EAAE,CAAE,CAAA;QAC5D,CAAC;QAED,UAAU;YACT,kBAAkB,CAAE,IAAI,CAAC,EAAE,CAAE,CAAA;QAC9B,CAAC;KAED;IAhBY,iBAAe,kBAgB3B,CAAA;IAED,IAAI,OAAO,mBAAmB,KAAK,UAAU,EAAG,CAAC;QAChD,CAAC,CAAC,eAAe,GAAG,kBAAkB,CAAA;IACvC,CAAC;AAEF,CAAC,EA3BS,CAAC,KAAD,CAAC,QA2BV;;;;AC3BD,IAAU,CAAC,CAMV;AAND,WAAU,GAAC;IAEV,eAAe,CAAC,IAAI,CAAE,CAAC,CAAC,EAAE;QACzB,CAAC,CAAC,eAAe,GAAG,uBAAwD,CAAA;IAC7E,CAAC,CAAC,CAAA;AAEH,CAAC,EANS,CAAC,KAAD,CAAC,QAMV;;;;ACND,IAAU,CAAC,CAYV;AAZD,WAAU,CAAC;IAEV,SAAgB,oBAAoB;QACnC,OAAO,IAAI,OAAO,CAAE,IAAI,CAAC,EAAE;YAC1B,IAAI,IAAI,CAAC,eAAe,CAAE,EAAE,EAAG,GAAE,EAAE,CAAC,IAAI,CAAE,IAAI,CAAE,CAAE,CAAA;QACnD,CAAC,CAAE,CAAA;IACJ,CAAC;IAJe,sBAAoB,uBAInC,CAAA;IAED,SAAgB,cAAc;QAC7B,OAAO,IAAI,CAAC,cAAc,CAAE,IAAI,CAAE,CAAC,oBAAoB,EAAE,CAAA;IAC1D,CAAC;IAFe,gBAAc,iBAE7B,CAAA;AAEF,CAAC,EAZS,CAAC,KAAD,CAAC,QAYV;;;;ACZD,IAAU,CAAC,CAOV;AAPD,WAAU,GAAC;IAAC,IAAA,EAAE,CAOb;IAPW,WAAA,EAAE;QAEb,eAAe,CAAC,IAAI,CAAE,CAAC,CAAC,EAAE;YACzB,CAAC,CAAC,iBAAiB,GAAG,SAAS,sBAAsB,CAAW,OAAe,IAAK,CAAC,CAAA;YACrF,CAAC,CAAC,uBAAuB,GAAG,KAAK,UAAU,4BAA4B,CAAW,OAAe,IAAI,CAAC,CAAA;QACvG,CAAC,CAAE,CAAA;IAEJ,CAAC,EAPW,EAAE,GAAF,MAAE,KAAF,MAAE,QAOb;AAAD,CAAC,EAPS,CAAC,KAAD,CAAC,QAOV;;;;ACPD,IAAU,CAAC,CAOV;AAPD,WAAU,GAAC;IAAC,IAAA,EAAE,CAOb;IAPW,WAAA,EAAE;QAEb,eAAe,CAAC,IAAI,CAAE,CAAC,CAAC,EAAE;YACzB,CAAC,CAAC,cAAc,GAAG,SAAS,mBAAmB,KAAc,CAAC,CAAA;YAC9D,CAAC,CAAC,oBAAoB,GAAG,KAAK,UAAU,yBAAyB,KAAa,CAAC,CAAA;QAChF,CAAC,CAAE,CAAA;IAEJ,CAAC,EAPW,EAAE,GAAF,MAAE,KAAF,MAAE,QAOb;AAAD,CAAC,EAPS,CAAC,KAAD,CAAC,QAOV;;;;ACPD,IAAU,CAAC,CAwEV;AAxED,WAAU,GAAC;IAEV,SAAS,CAAC;QACT,YAAY,CAAE,CAAC;YACd,MAAM,CAAC;gBACN,MAAM,CAAC,CAAC;oBACP,OAAO,EAAE,CAAA;gBACV,CAAC;gBACD,MAAM,CAAC,CAAC;oBACP,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;gBACjC,CAAC;aACD;QAGF,CAAC;QAED,KAAK,CAAC,0BAA0B,CAAE,CAAC;YAElC,MAAM,UAAW,SAAQ,YAAY;gBAEpC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAEZ,MAAM,CAAC,KAAK,GAAG,EAAc,CAAA;gBAC7B,MAAM,CAAC,IAAI,GAAG,EAAc,CAAA;gBAE5B,MAAM,CAAC,IAAI,CAAE,IAAY;oBACxB,cAAc,CAAE,IAAI,CAAC,KAAK,CAAE,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;oBACzC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAA;oBACvB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;gBACvB,CAAC;;YAIF,MAAM,IAAI,GAAG,eAAe,CAAE,UAAU,CAAE,CAAC,IAAI,CAAA;YAE/C,IAAI,CAAE,MAAM,CAAE,CAAA;YACd,MAAM,OAAO,GAAG,IAAI,CAAE,KAAK,CAAE,CAAA;YAE7B,CAAC,CAAC,oBAAoB,EAAE,CAAA;YACxB,MAAM,OAAO,CAAA;YAEb,iBAAiB,CAAE,UAAU,CAAC,KAAK,EAAE,CAAE,MAAM,EAAE,KAAK,CAAE,CAAE,CAAA;YACxD,iBAAiB,CAAE,UAAU,CAAC,IAAI,EAAE,CAAE,KAAK,CAAE,CAAE,CAAA;QAEhD,CAAC;QAED,KAAK,CAAC,4BAA4B,CAAE,CAAC;YAEpC,MAAM,KAAK,GAAG,EAAc,CAAA;YAC5B,MAAM,IAAI,GAAG,EAAc,CAAA;YAE3B,SAAS,SAAS,CAAE,IAAY;gBAC/B,cAAc,CAAE,KAAK,CAAE,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;gBACpC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAA;gBACvB,IAAI,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;YAClB,CAAC;YAED,MAAM,IAAI,GAAG,eAAe,CAAE,SAAS,CAAE,CAAA;YAEzC,IAAI,CAAE,MAAM,CAAE,CAAA;YACd,MAAM,OAAO,GAAG,IAAI,CAAE,KAAK,CAAE,CAAA;YAE7B,CAAC,CAAC,oBAAoB,EAAE,CAAA;YACxB,MAAM,OAAO,CAAA;YAEb,iBAAiB,CAAE,KAAK,EAAE,CAAE,MAAM,EAAE,KAAK,CAAE,CAAE,CAAA;YAC7C,iBAAiB,CAAE,IAAI,EAAE,CAAE,KAAK,CAAE,CAAE,CAAA;QAErC,CAAC;KAED,CAAC,CAAA;AAEH,CAAC,EAxES,CAAC,KAAD,CAAC,QAwEV;;;;ACxED,IAAU,CAAC,CAmoBV;AAnoBD,WAAU,GAAC;IACV,SAAS,CAAC;QAET,4EAA4E;QAC5E,gBAAgB,CAAE,CAAC;YAElB,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAGL,AAAP,MAAM,CAAC,KAAK,CAAE,IAAI,GAAG,CAAC;oBACrB,OAAO,IAAI,GAAG,CAAC,CAAA;gBAChB,CAAC;;YAFM;gBADL,cAAc;kCAGf;YAIF,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAE,CAAA;YAEnC,GAAG,CAAC,KAAK,CAAE,CAAC,CAAE,CAAA;YACd,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAE,CAAA;QAEpC,CAAC;QAED,aAAa,CAAE,CAAC;YAEf,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAGL,AAAP,MAAM,CAAC,KAAK,CAAE,IAAI,GAAG,CAAC;oBACrB,OAAO,IAAI,CAAA;gBACZ,CAAC;;YAFM;gBADL,cAAc;kCAGf;YAIF,iBAAiB,CAAE,GAAG,CAAC,KAAK,CAAE,CAAC,CAAE,EAAE,CAAC,CAAE,CAAA;YACtC,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAE,CAAA;QAEpC,CAAC;QAED,mBAAmB,CAAE,CAAC;YAErB,MAAM,IAAK,SAAQ,YAAY;gBAE9B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAGL,AAAP,MAAM,CAAC,KAAK,CAAE,IAAI,GAAG,CAAC;oBACrB,OAAO,IAAI,GAAG,CAAC,CAAA;gBAChB,CAAC;;YAFM;gBADL,cAAc;mCAGf;YAIF,MAAM,MAAO,SAAQ,IAAI;gBAGjB,AAAP,MAAM,CAAC,KAAK,CAAE,IAAa;oBAC1B,OAAO,KAAK,CAAC,KAAK,CAAE,IAAI,CAAE,GAAG,CAAC,CAAA;gBAC/B,CAAC;aAED;YAJO;gBADL,cAAc;qCAGf;YAIF,MAAM,GAAI,SAAQ,MAAM;gBAGhB,AAAP,MAAM,CAAC,KAAK,CAAE,IAAa;oBAC1B,OAAO,KAAK,CAAC,KAAK,CAAE,IAAI,CAAE,GAAG,CAAC,CAAA;gBAC/B,CAAC;aAED;YAJO;gBADL,cAAc;kCAGf;YAIF,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAE,CAAA;YAEnC,iBAAiB,CAAE,GAAG,CAAC,KAAK,CAAE,CAAC,CAAE,EAAE,EAAE,CAAE,CAAA;YACvC,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,CAAE,CAAA;QAErC,CAAC;QAED,4EAA4E;QAC5E,qCAAqC,CAAE,CAAC;YAEvC,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAGL,AAAP,MAAM,CAAC,GAAG,CAAE,IAAc;oBACzB,OAAO,IAAI,IAAI,CAAC,CAAA;gBACjB,CAAC;gBAGM,AAAP,MAAM,CAAC,GAAG;oBACT,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;gBACtB,CAAC;gBAGM,AAAP,MAAM,CAAC,GAAG;oBACT,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;gBACtB,CAAC;;YAZM;gBADL,cAAc;gCAGf;YAGM;gBADL,cAAc;gCAGf;YAGM;gBADL,cAAc;gCAGf;YAIF,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAE,CAAA;YACjC,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAE,CAAA;YAEjC,GAAG,CAAC,GAAG,CAAE,CAAC,CAAE,CAAA;YACZ,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAE,CAAA;QAElC,CAAC;QAED,8EAA8E;QAC9E,wDAAwD,CAAE,CAAC;YAE1D,MAAM,GAAG,GAAG,EAAc,CAAA;YAE1B,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAGL,AAAP,MAAM,CAAC,GAAG,CAAE,IAAc;oBACzB,GAAG,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;oBACjB,OAAO,IAAI,IAAI,CAAC,CAAA;gBACjB,CAAC;gBAGM,AAAP,MAAM,CAAC,GAAG;oBACT,GAAG,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;oBACjB,OAAO,CAAE,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,GAAG,EAAE,CAAE,CAAE,CAAA;gBACnC,CAAC;gBAGM,AAAP,MAAM,CAAC,GAAG;oBACT,GAAG,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;oBACjB,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;gBACzB,CAAC;;YAfM;gBADL,cAAc;gCAIf;YAGM;gBADL,cAAc;gCAIf;YAGM;gBADL,cAAc;gCAIf;YAIF,GAAG,CAAC,GAAG,EAAE,CAAA;YACT,gBAAgB,CAAE,GAAG,EAAE,CAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAE,CAAE,CAAA;YAEhD,GAAG,CAAC,GAAG,CAAE,CAAC,CAAE,CAAA;YACZ,gBAAgB,CAAE,GAAG,EAAE,CAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAE,CAAE,CAAA;YAEvD,GAAG,CAAC,GAAG,EAAE,CAAA;YACT,gBAAgB,CAAE,GAAG,EAAE,CAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAE,CAAE,CAAA;QAE/D,CAAC;QAED,qEAAqE;QACrE,YAAY,CAAE,CAAC;YAEd,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,KAAK,CAAC,KAAK,OAAO,CAAC,CAAA,CAAC,CAAC;gBAGpB,AAAP,MAAM,CAAC,MAAM,CAAE,IAAI,GAAG,CAAC,IAAK,OAAO,IAAI,CAAA,CAAC,CAAC;gBAGlC,AAAP,MAAM,CAAC,SAAS,CAAE,IAAI,GAAG,IAAI,IAAK,OAAO,IAAI,CAAA,CAAC,CAAC;gBAE/C,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;gBAGX,AAAP,MAAM,CAAC,MAAM;oBACZ,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;oBAChD,OAAO,GAAG,GAAG,IAAI,CAAC,OAAO,EAAG,CAAA;gBAC7B,CAAC;;YAXM;gBADL,cAAc;mCACyB;YAGlC;gBADL,cAAc;sCAC+B;YAKxC;gBADL,cAAc;mCAIf;YAIF,iBAAiB,CAAE,GAAG,CAAC,MAAM,EAAE,EAAG,CAAC,CAAE,CAAA;YACrC,iBAAiB,CAAE,GAAG,CAAC,OAAO,EAAG,CAAC,CAAE,CAAA;YAEpC,GAAG,CAAC,MAAM,CAAE,EAAE,CAAE,CAAA;YAChB,iBAAiB,CAAE,GAAG,CAAC,MAAM,EAAE,EAAG,EAAE,CAAE,CAAA;YACtC,iBAAiB,CAAE,GAAG,CAAC,OAAO,EAAG,CAAC,CAAE,CAAA;YAEpC,GAAG,CAAC,SAAS,CAAE,KAAK,CAAE,CAAA;YACtB,iBAAiB,CAAE,GAAG,CAAC,MAAM,EAAE,EAAG,CAAC,CAAE,CAAA;YACrC,iBAAiB,CAAE,GAAG,CAAC,OAAO,EAAG,CAAC,CAAE,CAAA;YAEpC,eAAe,CAAC,IAAI,EAAE,CAAA;YACtB,iBAAiB,CAAE,GAAG,CAAC,MAAM,EAAE,EAAG,CAAC,CAAE,CAAA;YAErC,GAAG,CAAC,MAAM,CAAE,EAAE,CAAE,CAAA;YAChB,iBAAiB,CAAE,GAAG,CAAC,MAAM,EAAE,EAAG,CAAC,CAAE,CAAA;YACrC,iBAAiB,CAAE,GAAG,CAAC,OAAO,EAAG,CAAC,CAAE,CAAA;YAEpC,GAAG,CAAC,SAAS,CAAE,IAAI,CAAE,CAAA;YACrB,iBAAiB,CAAE,GAAG,CAAC,MAAM,EAAE,EAAG,EAAE,CAAE,CAAA;YACtC,iBAAiB,CAAE,GAAG,CAAC,OAAO,EAAG,CAAC,CAAE,CAAA;QAErC,CAAC;QAED,0EAA0E;QAC1E,iBAAiB,CAAE,CAAC;YAEnB,IAAI,OAAO,GAAG,CAAC,CAAA;YAEf,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAGL,AAAP,MAAM,CAAC,GAAG,CAAE,IAA2B;oBACtC,OAAO,IAAI,IAAI,EAAE,KAAK,EAAE,CAAE,CAAC,CAAE,EAAE,CAAA;gBAChC,CAAC;gBAGM,AAAP,MAAM,CAAC,GAAG;oBACT,OAAO,EAAE,GAAI,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,EAAG,OAAO,EAAE,CAAA;gBAC7C,CAAC;;YAPM;gBADL,cAAc;gCAGf;YAGM;gBADL,cAAc;gCAGf;YAIF,gBAAgB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,CAAE,CAAC,CAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAE,CAAA;YAEzD,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAE,CAAC,CAAE,EAAE,CAAC,CAAA;YACzB,gBAAgB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,CAAE,CAAC,CAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAE,CAAA;YAEzD,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAE,CAAC,CAAE,EAAE,CAAC,CAAA;YACzB,gBAAgB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,CAAE,CAAC,CAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAE,CAAA;QAE1D,CAAC;QAED,sEAAsE;QACtE,aAAa,CAAE,CAAC;YAEf,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAGL,AAAP,MAAM,CAAC,GAAG;oBACT,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;gBACtB,CAAC;gBAGM,AAAP,MAAM,CAAC,GAAG;oBACT,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;gBACtB,CAAC;gBAGM,AAAP,MAAM,CAAC,IAAI;oBACV,gBAAgB,CAAE,GAAE,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,uBAAuB,CAAE,CAAA;gBAC5D,CAAC;;YAZM;gBADL,cAAc;gCAGf;YAGM;gBADL,cAAc;gCAGf;YAGM;gBADL,gBAAgB;iCAGjB;YAIF,GAAG,CAAC,IAAI,EAAE,CAAA;QACX,CAAC;QAED,0EAA0E;QAC1E,+BAA+B;QAE/B,oCAAoC;QAEpC,iBAAiB;QAEjB,qBAAqB;QACrB,kCAAkC;QAClC,iBAAiB;QACjB,MAAM;QAEN,qBAAqB;QACrB,mCAAmC;QACnC,iBAAiB;QACjB,MAAM;QAEN,qBAAqB;QACrB,mCAAmC;QACnC,8CAA8C;QAC9C,MAAM;QAEN,KAAK;QAEL,yCAAyC;QACzC,+CAA+C;QAE/C,gDAAgD;QAChD,wCAAwC;QAExC,MAAM;QAEN,0EAA0E;QAC1E,kCAAkC,CAAE,CAAC;YAEpC,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAGL,AAAP,MAAM,CAAC,KAAK,CAAE,IAAI,GAAG,CAAC;oBACrB,OAAO,IAAI,CAAA;gBACZ,CAAC;gBAGM,AAAP,MAAM,CAAC,IAAI,CAAE,IAAa;oBACzB,OAAO,IAAI,CAAC,KAAK,CAAE,IAAI,CAAE,CAAA;gBAC1B,CAAC;gBAGM,AAAP,MAAM,CAAC,IAAI,CAAE,IAAa;oBACzB,IAAI,IAAI,KAAK,SAAS;wBAAG,IAAI,CAAC,IAAI,EAAE,CAAA,CAAC,2BAA2B;oBAChE,OAAO,IAAI,CAAC,KAAK,CAAE,IAAI,CAAE,CAAA;gBAC1B,CAAC;;YAbM;gBADL,cAAc;kCAGf;YAGM;gBADL,cAAc;iCAGf;YAGM;gBADL,cAAc;iCAIf;YAIF,GAAG,CAAC,IAAI,EAAE,CAAA;YACV,iBAAiB,CAAE,GAAG,CAAC,IAAI,CAAE,GAAG,CAAE,EAAE,GAAG,CAAE,CAAA;YACzC,iBAAiB,CAAE,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,CAAE,CAAA;YAEhD,GAAG,CAAC,KAAK,CAAE,GAAG,CAAE,CAAA;YAChB,iBAAiB,CAAE,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,CAAE,CAAA;QAEjD,CAAC;QAED,0EAA0E;QAC1E,0BAA0B,CAAE,CAAC;YAE5B,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAGL,AAAP,MAAM,CAAC,KAAK,CAAE,IAAI,GAAG,CAAC;oBACrB,OAAO,IAAI,CAAA;gBACZ,CAAC;gBAGM,AAAP,MAAM,CAAC,MAAM;oBACZ,OAAO,IAAI,CAAC,KAAK,EAAE,CAAA;gBACpB,CAAC;gBAGM,AAAP,MAAM,CAAC,GAAG;oBACT,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;oBAC3B,IAAI,CAAC,KAAK;wBAAG,IAAI,CAAC,KAAK,CAAE,KAAK,GAAG,CAAC,CAAE,CAAA;oBACpC,OAAO,KAAK,GAAG,CAAC,CAAA;gBACjB,CAAC;;YAdM;gBADL,cAAc;kCAGf;YAGM;gBADL,cAAc;mCAGf;YAGM;gBADL,cAAc;gCAKf;YAIF,gBAAgB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAE,CAAA;YAEhC,GAAG,CAAC,KAAK,CAAE,CAAC,CAAE,CAAA;YACd,gBAAgB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAE,CAAA;QAEjC,CAAC;QAEK,AAAN,KAAK,CAAC,mBAAmB,CAAE,CAAC;YAE3B,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAGL,AAAP,MAAM,CAAC,OAAO,CAAE,IAAI,GAAG,KAAK;oBAC3B,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAA;oBACvB,OAAO,IAAI,CAAA;gBACZ,CAAC;gBAGM,AAAP,MAAM,CAAC,MAAM;oBACZ,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;oBAC3B,kBAAkB,CAAE,IAAI,CAAC,OAAO,CAAE,CAAC,IAAI,CAAE,EAAE,IAAI,CAAE,CAAA;oBACjD,6CAA6C;gBAC9C,CAAC;gBAGM,AAAP,MAAM,CAAC,GAAG;oBACT,OAAO,IAAI,CAAC,OAAO,EAAE,CAAA;gBACtB,CAAC;gBAGM,AAAP,MAAM,CAAC,IAAI;oBAEV,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,CAAE,CAAA;oBAErC,GAAG,CAAC,MAAM,EAAE,CAAA;oBACZ,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,CAAE,CAAA;gBAErC,CAAC;;YAzBM;gBADL,cAAc;oCAIf;YAGM;gBADL,gBAAgB;mCAKjB;YAGM;gBADL,cAAc;gCAGf;YAGM;gBADL,gBAAgB;iCAQjB;YAIF,MAAM,eAAe,CAAE,GAAG,CAAE,CAAC,IAAI,EAAE,CAAA;QAEpC,CAAC;QAED,6EAA6E;QAC7E,yCAAyC;QAEzC,oCAAoC;QAEpC,iBAAiB;QAEjB,uBAAuB;QAEvB,qBAAqB;QACrB,sCAAsC;QACtC,iBAAiB;QACjB,MAAM;QAEN,qBAAqB;QACrB,yBAAyB;QACzB,yBAAyB;QACzB,4BAA4B;QAC5B,MAAM;QAEN,qBAAqB;QACrB,uCAAuC;QACvC,iBAAiB;QACjB,MAAM;QAEN,qBAAqB;QACrB,0BAA0B;QAC1B,0BAA0B;QAC1B,4BAA4B;QAC5B,MAAM;QAEN,KAAK;QAEL,2CAA2C;QAC3C,4CAA4C;QAE5C,0BAA0B;QAC1B,yBAAyB;QAEzB,0BAA0B;QAE1B,4CAA4C;QAC5C,2CAA2C;QAE3C,MAAM;QAEN,uEAAuE;QACvE,qBAAqB,CAAE,CAAC;YAEvB,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,KAAK,CAAC,KAAK,OAAO,CAAC,CAAA,CAAC,CAAC;gBAGpB,AAAP,MAAM,CAAC,SAAS,CAAE,IAAI,GAAG,KAAK,IAAK,OAAO,IAAI,CAAA,CAAC,CAAC;gBAGzC,AAAP,MAAM,CAAC,MAAM;oBAEZ,IAAI,IAAI,CAAC,SAAS,EAAE,EAAG,CAAC;wBACvB,SAAS,CAAE,IAAI,KAAK,CAAE,YAAY,CAAE,CAAE,CAAA;oBACvC,CAAC;oBAED,OAAO,CAAC,CAAA;gBACT,CAAC;gBAGM,AAAP,MAAM,CAAC,MAAM;oBACZ,OAAO,IAAI,CAAC,MAAM,EAAE,CAAA;gBACrB,CAAC;aAED;YAjBO;gBADL,cAAc;sCACgC;YAGzC;gBADL,cAAc;mCAQf;YAGM;gBADL,cAAc;mCAGf;YAIF,iBAAiB,CAAE,GAAG,CAAC,MAAM,EAAE,EAAG,CAAC,CAAE,CAAA;YAErC,GAAG,CAAC,SAAS,CAAE,IAAI,CAAE,CAAA;YACrB,gBAAgB,CAAE,GAAE,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,YAAY,CAAE,CAAA;YAEnD,GAAG,CAAC,SAAS,CAAE,KAAK,CAAE,CAAA;YACtB,iBAAiB,CAAE,GAAG,CAAC,MAAM,EAAE,EAAG,CAAC,CAAE,CAAA;QAEtC,CAAC;QAEK,AAAN,KAAK,CAAC,eAAe,CAAC,CAAC;YAEtB,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAEZ,MAAM,CAAC,KAAK,CAAC,MAAM;oBAClB,OAAO,KAAK,CAAA;gBACb,CAAC;gBAGM,AAAP,MAAM,CAAC,MAAM;oBACZ,OAAO,cAAc,CAAE,IAAI,CAAE,CAAC,MAAM,EAAE,CAAA;gBACvC,CAAC;gBAGM,AAAP,MAAM,CAAC,MAAM;oBACZ,OAAO,IAAI,CAAC,MAAM,EAAE,CAAA;gBACrB,CAAC;gBAGM,AAAP,MAAM,CAAC,IAAI;oBACV,iBAAiB,CAAE,GAAG,CAAC,MAAM,EAAE,EAAG,KAAK,CAAE,CAAA;gBAC1C,CAAC;;YAZM;gBADL,cAAc;mCAGf;YAGM;gBADL,cAAc;mCAGf;YAGM;gBADL,gBAAgB;iCAGjB;YAIF,MAAM,eAAe,CAAE,GAAG,CAAE,CAAC,IAAI,EAAE,CAAA;QACpC,CAAC;QAED,4BAA4B,CAAE,CAAC;YAE9B,IAAI,SAAS,GAAG,KAAK,CAAA;YAErB,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAGL,AAAP,MAAM,CAAC,OAAO,CAAE,IAAI,GAAG,IAAI;oBAC1B,OAAO,IAAI,CAAA;gBACZ,CAAC;gBAGM,AAAP,MAAM,CAAC,OAAO;oBACb,OAAO;wBACN,UAAU;4BACT,SAAS,GAAG,IAAI,CAAA;wBACjB,CAAC;qBACD,CAAA;gBACF,CAAC;gBAGM,AAAP,MAAM,CAAC,MAAM;oBACZ,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;gBAC9C,CAAC;;YAhBM;gBADL,cAAc;oCAGf;YAGM;gBADL,cAAc;oCAOf;YAGM;gBADL,cAAc;mCAGf;YAIF,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,CAAA;YAC5B,cAAc,CAAE,OAAO,CAAE,CAAA;YAEzB,GAAG,CAAC,OAAO,CAAE,KAAK,CAAE,CAAA;YACpB,eAAe,CAAE,GAAG,CAAC,MAAM,EAAE,CAAE,CAAA;YAE/B,GAAG,CAAC,OAAO,CAAE,IAAI,CAAE,CAAA;YACnB,iBAAiB,CAAE,GAAG,CAAC,MAAM,EAAE,EAAG,OAAO,CAAE,CAAA;YAE3C,eAAe,CAAC,IAAI,EAAE,CAAA;YACtB,eAAe,CAAE,SAAS,CAAE,CAAA;YAE5B,GAAG,CAAC,OAAO,CAAE,KAAK,CAAE,CAAA;YACpB,eAAe,CAAC,IAAI,EAAE,CAAA;YACtB,cAAc,CAAE,SAAS,CAAE,CAAA;YAE3B,GAAG,CAAC,OAAO,CAAE,IAAI,CAAE,CAAA;YACnB,kBAAkB,CAAE,GAAG,CAAC,MAAM,EAAE,EAAG,OAAO,CAAE,CAAA;QAE7C,CAAC;QAED,0EAA0E;QACpE,AAAN,KAAK,CAAC,iCAAiC,CAAC,CAAC;YAExC,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAEZ,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;gBAGX,AAAP,MAAM,CAAC,MAAM,CAAE,IAAW;oBACzB,OAAO,CAAE,eAAe,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAE,IAAI,CAAC,CAAC,CAAE,GAAG,CAAC,CAAA;gBAC3D,CAAC;gBAED,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;gBAGhB,AAAP,MAAM,CAAC,KAAK;oBACX,OAAO,EAAG,IAAI,CAAC,OAAO,CAAA;gBACvB,CAAC;gBAGM,AAAP,MAAM,CAAC,MAAM;oBACZ,IAAI,IAAI,CAAC,MAAM,EAAE;wBAAG,cAAc,CAAE,IAAI,CAAE,CAAC,IAAI,EAAE,CAAA;oBACjD,OAAO,IAAI,CAAC,KAAK,EAAE,CAAA;gBACpB,CAAC;;YAfM;gBADL,cAAc;mCAGf;YAKM;gBADL,cAAc;kCAGf;YAGM;gBADL,cAAc;mCAIf;YAIF,iBAAiB,CAAE,GAAG,CAAC,MAAM,EAAE,EAAG,CAAC,CAAE,CAAA;YAErC,GAAG,CAAC,MAAM,CAAE,IAAI,CAAE,CAAA;YAClB,eAAe,CAAC,IAAI,EAAE,CAAA;YACtB,iBAAiB,CAAE,MAAM,eAAe,CAAE,GAAG,CAAE,CAAC,MAAM,EAAE,EAAG,CAAC,CAAE,CAAA;QAE/D,CAAC;QAED,8BAA8B;YAE7B,MAAM,GAAI,SAAQ,YAAY;gBAGtB,AAAP,MAAM,CAAC,KAAK;oBACX,OAAO,IAAI,YAAY,CAAA;gBACxB,CAAC;aAED;YAJO;gBADL,cAAc;kCAGf;YAIF,iBAAiB,CAAE,GAAI,GAAG,CAAC,KAAK,EAAG,EAAE,EAAG,aAAa,CAAE,CAAA;QAExD,CAAC;QAED,wCAAwC,CAAE,CAAC;YAE1C,MAAM,MAAO,SAAQ,YAAY;gBAEhC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAGL,AAAP,MAAM,CAAC,IAAI;oBACV,OAAO,IAAI,CAAC,MAAM,EAAE,CAAA;gBACrB,CAAC;gBAGM,AAAP,MAAM,CAAC,MAAM,CAAE,IAAW;oBACzB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAA;gBACrB,CAAC;gBAGM,AAAP,MAAM,CAAC,KAAK;oBACX,IAAI,CAAC,MAAM,EAAE,CAAA;oBACb,OAAO,IAAI,CAAC,IAAI,EAAE,CAAA;gBACnB,CAAC;;YAbM;gBADL,gBAAgB;oCAGjB;YAGM;gBADL,cAAc;sCAGf;YAGM;gBADL,cAAc;qCAIf;YAIF,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,CAAA;YAE5B,MAAM,CAAC,MAAM,CAAE,IAAI,CAAE,CAAA;YACrB,kBAAkB,CAAE,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,CAAE,CAAA;QAE5C,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EAnoBS,CAAC,KAAD,CAAC,QAmoBV;;;;ACnoBD,IAAU,CAAC,CAqIV;AArID,WAAU,GAAC;IACV,SAAS,CAAC;QAEH,AAAN,KAAK,CAAC,eAAe,CAAE,CAAC;YACvB,MAAM,WAAW,GAAG,GAAG,CAAA;YAEvB,MAAM,IAAK,SAAQ,YAAY;gBAE9B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAGL,AAAP,MAAM,CAAC,IAAI,CAAE,EAAU,EAAE,IAAc;oBACtC,IAAI,IAAI;wBAAE,OAAO,IAAa,CAAA;oBAE9B,UAAU,CAAC,GAAG,EAAE;wBACf,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CAAA;oBAC5C,CAAC,EAAE,EAAE,CAAC,CAAA;oBAEN,gBAAgB,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAA;gBACxC,CAAC;gBAGM,AAAP,MAAM,CAAC,GAAG;oBACT,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBACtB,CAAC;;YAbM;gBADL,cAAc;kCASf;YAGM;gBADL,gBAAgB;iCAGjB;YAIF,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAA;YAC7C,iBAAiB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA;QACpC,CAAC;QAED,8BAA8B,CAAE,CAAC;YAEhC,MAAM,IAAK,SAAQ,YAAY;gBAE9B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAGL,AAAP,MAAM,CAAC,SAAS,CAAE,IAAY,EAAG,IAAa;oBAC7C,OAAO,IAAI,IAAI,IAAI,CAAA;gBACpB,CAAC;gBAGM,AAAP,MAAM,CAAC,UAAU;oBAChB,OAAO;wBACN,IAAI,CAAC,SAAS,CAAE,KAAK,CAAE;wBACvB,IAAI,CAAC,SAAS,CAAE,MAAM,CAAE;qBACxB,CAAA;gBACF,CAAC;;YAVM;gBADL,cAAc;uCAGf;YAGM;gBADL,cAAc;wCAMf;YAIF,gBAAgB,CAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAE,KAAK,EAAE,MAAM,CAAE,CAAE,CAAA;YAExD,IAAI,CAAC,SAAS,CAAE,KAAK,EAAE,KAAK,CAAE,CAAA;YAC9B,gBAAgB,CAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAE,KAAK,EAAE,MAAM,CAAE,CAAE,CAAA;QAEzD,CAAC;QAED,+BAA+B,CAAE,CAAC;YAEjC,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAGL,AAAP,MAAM,CAAC,IAAI,CAAE,GAAuB;oBACnC,OAAO,IAAI,MAAM,CAAE,SAAS,GAAG,EAAE,CAAE,CAAA;gBACpC,CAAC;gBAGM,AAAP,MAAM,CAAC,IAAI;oBAEV,gBAAgB,CAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAE,IAAI,MAAM,CAAE,WAAW,CAAE,CAAE,CAAA;oBAC/D,iBAAiB,CAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAE,CAAA;gBAExD,CAAC;;YAVM;gBADL,cAAc;iCAGf;YAGM;gBADL,gBAAgB;iCAMjB;YAIF,GAAG,CAAC,IAAI,EAAE,CAAA;QACX,CAAC;QAED,8BAA8B;YAE7B,MAAM,GAAI,SAAQ,YAAY;gBAGtB,AAAP,MAAM,CAAC,IAAI,CAAE,MAAc;oBAC1B,OAAO,IAAI,YAAY,CAAA;gBACxB,CAAC;gBAGM,AAAP,MAAM,CAAC,QAAQ,CAAE,CAAE,MAAM,EAAE,KAAK,CAA0B;oBACzD,OAAO,IAAI,YAAY,CAAA;gBACxB,CAAC;aAED;YATO;gBADL,cAAc;iCAGf;YAGM;gBADL,cAAc;qCAGf;YAIF,iBAAiB,CAAE,GAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAE,EAAE,EAAG,eAAe,CAAE,CAAA;YAC3D,iBAAiB,CAAE,GAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAC,CAAC,GAAG,CAAC,CAAC,CAAE,EAAE,EAAG,2BAA2B,CAAE,CAAA;QAEpF,CAAC;QAED,WAAW,CAAE,CAAC;YAEb,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAEZ,MAAM,CAAC,IAAI,GAAG,CAAC,CAAA;gBAGR,AAAP,MAAM,CAAC,KAAK,CAAE,KAAa,EAAG,IAAa;oBAC1C,IAAI,IAAI;wBAAG,OAAO,IAAI,CAAA;oBACtB,IAAI,KAAK,GAAG,CAAC;wBAAG,OAAO,CAAC,CAAA;oBACxB,EAAG,IAAI,CAAC,IAAI,CAAA;oBACZ,OAAO,IAAI,CAAC,KAAK,CAAE,KAAK,GAAG,CAAC,CAAE,GAAG,IAAI,CAAC,KAAK,CAAE,KAAK,GAAG,CAAC,CAAE,CAAA;gBACzD,CAAC;;YALM;gBADL,cAAc;kCAMf;YAIF,iBAAiB,CAAE,GAAG,CAAC,KAAK,CAAE,CAAC,CAAE,EAAE,CAAC,CAAE,CAAA;YACtC,iBAAiB,CAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAE,CAAA;YAEhC,GAAG,CAAC,KAAK,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;YACjB,iBAAiB,CAAE,GAAG,CAAC,KAAK,CAAE,CAAC,CAAE,EAAE,CAAC,CAAE,CAAA;YACtC,iBAAiB,CAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAE,CAAA;QAEjC,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EArIS,CAAC,KAAD,CAAC,QAqIV;;;;ACrID,IAAU,CAAC,CA0BV;AA1BD,WAAU,CAAC;IACV,SAAS,CAAC;QAET,gBAAgB;YAEf,MAAM,KAAM,SAAQ,YAAY;gBAGxB,AAAP,MAAM,CAAC,KAAK,CAAE,IAA+B;oBAC5C,IAAI,CAAC,IAAI;wBAAG,OAAO,EAAE,CAAA;oBACrB,OAAO;wBACN,GAAI,eAAe,CAAE,GAAE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAE,IAAI,EAAE;wBAC9C,GAAI,IAAI;qBACR,CAAA;gBACF,CAAC;aAED;YARO;gBADL,cAAc;oCAOf;YAIF,gBAAgB,CAAE,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,CAAE,CAAA;YAErC,gBAAgB,CAAE,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAE,CAAA;YAC3D,gBAAgB,CAAE,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAE,CAAA;QAEtE,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EA1BS,CAAC,KAAD,CAAC,QA0BV;;;;AC1BD,IAAU,CAAC,CAIV;AAJD,WAAU,CAAC;IAEV,aAAa,CAAC,MAAM,EAAE,CAAA;AAEvB,CAAC,EAJS,CAAC,KAAD,CAAC,QAIV;;;;ACJD,IAAU,CAAC,CAaV;AAbD,WAAU,CAAC;IACV,SAAS,CAAE;QAEV,4BAA4B;YAE3B,MAAM,GAAG,GAAG,EAAE,GAAG,EAAG,UAAU,CAAE,IAAI,CAAC,MAAM,EAAE,CAAE,EAAE,CAAA;YAEjD,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAG,GAAG,CAAC,GAAG,EAAE,CAAE,CAAA;YAC1C,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAE,CAAA;QAE/C,CAAC;KAED,CAAE,CAAA;AACJ,CAAC,EAbS,CAAC,KAAD,CAAC,QAaV;;;;ACbD,IAAU,CAAC,CAoCV;AApCD,WAAU,GAAC;IACV,SAAS,CAAC;QAET,cAAc,CAAE,CAAC;YAEhB,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBAGL,AAAP,MAAM,CAAC,GAAG,GAAG,CAAC,CAAA;gBAGP,AAAP,MAAM,KAAK,IAAI;oBACd,OAAO,IAAI,CAAC,GAAG,GAAG,CAAC,CAAA;gBACpB,CAAC;gBACD,MAAM,KAAK,IAAI,CAAE,IAAY;oBAC5B,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,CAAA;gBACpB,CAAC;gBAGM,AAAP,MAAM,CAAC,IAAI;oBAEV,iBAAiB,CAAE,GAAG,CAAC,IAAI,EAAG,CAAC,CAAE,CAAA;oBAEjC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAA;oBACZ,iBAAiB,CAAE,GAAG,CAAC,IAAI,EAAG,CAAC,CAAE,CAAA;gBAElC,CAAC;;YAlBM;gBADL,eAAe;kCACH;YAGP;gBADL,eAAe;iCAGhB;YAMM;gBADL,gBAAgB;iCAQjB;YAIF,GAAG,CAAC,IAAI,EAAE,CAAA;QACX,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EApCS,CAAC,KAAD,CAAC,QAoCV;;;;;;;ACpCD,IAAU,CAAC,CA0CV;AA1CD,WAAU,CAAC;IACV,SAAS,CAAC;QAET,mBAAmB;YAElB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC;gBACvC,GAAG,CAAE,IAAI,GAAG,CAAC,IAAK,OAAO,IAAI,CAAA,CAAC,CAAC;gBAC/B,GAAG,KAAK,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA,CAAC,CAAC;gBAC/B,GAAG,CAAE,IAAa,IAAK,OAAO,IAAI,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA,CAAC,CAAC;aAChD,CAAC,CAAA;YAEF,iBAAiB,CAAE,GAAG,EAAE,EAAE,CAAC,CAAE,CAAA;YAC7B,iBAAiB,CAAE,GAAG,EAAE,EAAE,CAAC,CAAE,CAAA;YAE7B,iBAAiB,CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAE,CAAA;YAC9B,iBAAiB,CAAE,GAAG,EAAE,EAAE,CAAC,CAAE,CAAA;YAE7B,iBAAiB,CAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAE,CAAA;YAChC,iBAAiB,CAAE,GAAG,EAAE,EAAE,EAAE,CAAE,CAAA;QAE/B,CAAC;QAED,oBAAoB;YAEnB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC;gBACvC,GAAG,EAAE,CAAE,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI;gBACxB,GAAG,EAAE,GAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;gBACnB,GAAG,EAAE,CAAE,IAAa,EAAE,EAAE,CAAC,GAAG,CAAE,IAAI,CAAE;aACpC,CAAC,CAAA;YAEF,iBAAiB,CAAE,GAAG,EAAE,EAAE,CAAC,CAAE,CAAA;YAC7B,iBAAiB,CAAE,GAAG,EAAE,EAAE,CAAC,CAAE,CAAA;YAE7B,iBAAiB,CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAE,CAAA;YAC9B,iBAAiB,CAAE,GAAG,EAAE,EAAE,CAAC,CAAE,CAAA;YAE7B,iBAAiB,CAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAE,CAAA;YAChC,iBAAiB,CAAE,GAAG,EAAE,EAAE,EAAE,CAAE,CAAA;QAE/B,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EA1CS,CAAC,KAAD,CAAC,QA0CV;;;;AC1CD,IAAU,CAAC,CAiJV;AAjJD,WAAU,GAAC;IACV,SAAS,CAAC;QAET,iBAAiB,CAAE,CAAC;YAEnB,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBACZ,MAAM,CAAC,GAAG,GAAG,IAAI,aAAa,EAAY,CAAA;gBAGnC,AAAP,MAAM,CAAC,KAAK;oBACX,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;gBAC3B,CAAC;;YAFM;gBADL,cAAc;kCAGf;YAIF,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,CAAE,CAAA;YAEvC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;YAClB,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,CAAE,CAAA;YAEvC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;YAClB,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,CAAE,CAAA;YAEtC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAE,GAAG,CAAE,CAAA;YACrB,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,CAAE,CAAA;QAExC,CAAC;QAED,oBAAoB,CAAE,CAAC;YAEtB,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBACZ,MAAM,CAAC,GAAG,GAAG,IAAI,aAAa,EAAY,CAAA;gBAGnC,AAAP,MAAM,CAAC,KAAK;oBACX,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;gBAC5B,CAAC;;YAFM;gBADL,cAAc;kCAGf;YAIF,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,CAAE,CAAA;YAEvC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;YACzB,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,CAAE,CAAA;YAEvC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;YACzB,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,CAAE,CAAA;YAEtC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAE,GAAG,EAAE,KAAK,CAAE,CAAA;YAC1B,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,CAAE,CAAA;QAExC,CAAC;QAED,YAAY,CAAE,CAAC;YAEd,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBACZ,MAAM,CAAC,GAAG,GAAG,IAAI,aAAa,EAAY,CAAA;gBAGnC,AAAP,MAAM,CAAC,IAAI;oBACV,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAA;gBACrB,CAAC;;YAFM;gBADL,cAAc;iCAGf;YAIF,iBAAiB,CAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAE,CAAA;YAElC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;YAClB,iBAAiB,CAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAE,CAAA;YAElC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;YAClB,iBAAiB,CAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAE,CAAA;YAElC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAE,GAAG,CAAE,CAAA;YACrB,iBAAiB,CAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAE,CAAA;QAEnC,CAAC;QAED,cAAc,CAAE,CAAC;YAEhB,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBACZ,MAAM,CAAC,GAAG,GAAG,IAAI,aAAa,EAAY,CAAA;gBAGnC,AAAP,MAAM,CAAC,GAAG;oBACT,IAAI,GAAG,GAAG,CAAC,CAAA;oBACX,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,EAAG,CAAC;wBAC7B,GAAG,IAAI,GAAG,CAAA;oBACX,CAAC;oBACD,OAAO,GAAG,CAAA;gBACX,CAAC;;YANM;gBADL,cAAc;gCAOf;YAIF,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAE,CAAA;YAEjC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;YAClB,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,CAAE,CAAA;YAEnC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;YAClB,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,CAAE,CAAA;YAEnC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAE,GAAG,CAAE,CAAA;YACrB,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,CAAE,CAAA;QAEpC,CAAC;QAED,eAAe,CAAE,CAAC;YAEjB,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBACZ,MAAM,CAAC,GAAG,GAAG,IAAI,aAAa,EAAY,CAAA;gBAGnC,AAAP,MAAM,CAAC,GAAG;oBACT,IAAI,GAAG,GAAG,CAAC,CAAA;oBACX,IAAI,CAAC,GAAG,CAAC,OAAO,CAAE,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAE,CAAA;oBACrC,OAAO,GAAG,CAAA;gBACX,CAAC;;YAJM;gBADL,cAAc;gCAKf;YAIF,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAE,CAAA;YAEjC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;YAClB,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,CAAE,CAAA;YAEnC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;YAClB,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,CAAE,CAAA;YAEnC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAE,GAAG,CAAE,CAAA;YACrB,iBAAiB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,CAAE,CAAA;QAEpC,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EAjJS,CAAC,KAAD,CAAC,QAiJV;;;;ACjJD,IAAU,CAAC,CA6EV;AA7ED,WAAU,GAAC;IAAC,IAAA,EAAE,CA6Eb;IA7EW,WAAA,EAAE;QACb,SAAS,CAAC;YAET,sBAAsB,CAAE,CAAC;gBAExB,MAAM,MAAM,GAAG,eAAe,CAAE,QAAQ,EAAE;oBACzC,GAAG,EAAE;wBACJ,GAAG,EAAE,GAAG;qBACR;iBACD,CAAC,CAAA;gBAEF,MAAM,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC;oBAC7B,GAAG,KAAK,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,CAAA,CAAC,CAAC;iBAC/B,CAAC,CAAA;gBAEF,iBAAiB,CAAE,GAAG,EAAE,EAAE,GAAG,CAAE,CAAA;gBAE/B,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAA;gBACpB,iBAAiB,CAAE,GAAG,EAAE,EAAE,GAAG,CAAE,CAAA;YAEhC,CAAC;YAED,0BAA0B,CAAE,CAAC;gBAE5B,MAAM,MAAM,GAAG,eAAe,CAAE,QAAQ,EAAE;oBACzC,GAAG,EAAE;wBACJ,GAAG,EAAE,GAAG;qBACD;iBACR,CAAC,CAAA;gBAEF,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,aAAa,CAAC;oBACvC,MAAM,KAAK,OAAO,KAAK,IAAI,MAAM,CAAC,GAAG,CAAA,CAAC,CAAC;oBACvC,KAAK,KAAK,OAAO,MAAM,CAAC,IAAI,CAAE,MAAM,CAAC,GAAG,CAAE,CAAA,CAAC,CAAC;iBAC5C,CAAC,CAAA;gBAEF,iBAAiB,CAAE,MAAM,EAAE,EAAE,IAAI,CAAE,CAAA;gBACnC,iBAAiB,CAAE,KAAK,EAAE,EAAE,CAAE,KAAK,CAAE,CAAE,CAAA;gBAEvC,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,CAAA;gBACrB,iBAAiB,CAAE,MAAM,EAAE,EAAE,KAAK,CAAE,CAAA;gBACpC,iBAAiB,CAAE,KAAK,EAAE,EAAE,EAAE,CAAE,CAAA;gBAEhC,MAAM,CAAC,cAAc,CAAE,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAE,CAAA;gBAC9E,iBAAiB,CAAE,MAAM,EAAE,EAAE,IAAI,CAAE,CAAA;gBACnC,iBAAiB,CAAE,KAAK,EAAE,EAAE,CAAE,KAAK,CAAE,CAAE,CAAA;YAExC,CAAC;YAED,+BAA+B,CAAE,CAAC;gBAEjC,MAAM,MAAM,GAAG,eAAe,CAAE,QAAQ,EAAE;oBACzC,GAAG,EAAE;wBACJ,GAAG,EAAE,GAAG;qBACR;iBACD,CAAC,CAAA;gBAEF,IAAI,KAAK,GAAG,CAAC,CAAA;gBAEb,MAAM,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC;oBAC7B,GAAG;wBACF,EAAG,KAAK,CAAA;wBACR,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,CAAA;oBACtB,CAAC;iBACD,CAAC,CAAA;gBAEF,GAAG,EAAE,CAAC;gBAAC,iBAAiB,CAAE,KAAK,EAAE,CAAC,CAAE,CAAA;gBACpC,GAAG,EAAE,CAAC;gBAAC,iBAAiB,CAAE,KAAK,EAAE,CAAC,CAAE,CAAA;gBAEpC,MAAM,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;gBACzB,GAAG,EAAE,CAAC;gBAAC,iBAAiB,CAAE,KAAK,EAAE,CAAC,CAAE,CAAA;gBAEpC,MAAM,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;gBACzB,GAAG,EAAE,CAAC;gBAAC,iBAAiB,CAAE,KAAK,EAAE,CAAC,CAAE,CAAA;YAErC,CAAC;SAED,CAAC,CAAA;IACH,CAAC,EA7EW,EAAE,GAAF,MAAE,KAAF,MAAE,QA6Eb;AAAD,CAAC,EA7ES,CAAC,KAAD,CAAC,QA6EV;;;;AC7ED,IAAU,CAAC,CAuJV;AAvJD,WAAU,GAAC;IACV,SAAS,CAAC;QAET,iBAAiB,CAAE,CAAC;YAEnB,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBACZ,MAAM,CAAC,IAAI,GAAG,IAAI,cAAc,EAAoB,CAAA;gBAG7C,AAAP,MAAM,CAAC,KAAK;oBACX,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAE,GAAG,CAAE,CAAA;gBAC5B,CAAC;;YAFM;gBADL,cAAc;kCAGf;YAIF,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,SAAS,CAAE,CAAA;YAE3C,GAAG,CAAC,IAAI,CAAC,GAAG,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;YACzB,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,SAAS,CAAE,CAAA;YAE3C,GAAG,CAAC,IAAI,CAAC,GAAG,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;YACzB,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,CAAE,CAAA;YAEtC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAE,GAAG,CAAE,CAAA;YACtB,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,SAAS,CAAE,CAAA;QAE5C,CAAC;QAED,oBAAoB,CAAE,CAAC;YAEtB,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBACZ,MAAM,CAAC,IAAI,GAAG,IAAI,cAAc,EAAoB,CAAA;gBAG7C,AAAP,MAAM,CAAC,KAAK;oBACX,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;gBAC7B,CAAC;;YAFM;gBADL,cAAc;kCAGf;YAIF,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,CAAE,CAAA;YAEtC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;YAC1B,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,CAAE,CAAA;YAEtC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;YAC1B,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,CAAE,CAAA;YAEtC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;YAC1B,iBAAiB,CAAE,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,CAAE,CAAA;QAEvC,CAAC;QAED,YAAY,CAAE,CAAC;YAEd,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBACZ,MAAM,CAAC,IAAI,GAAG,IAAI,cAAc,EAAoB,CAAA;gBAG7C,AAAP,MAAM,CAAC,IAAI;oBACV,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA;gBACtB,CAAC;;YAFM;gBADL,cAAc;iCAGf;YAIF,iBAAiB,CAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAE,CAAA;YAElC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;YACzB,iBAAiB,CAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAE,CAAA;YAElC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;YACzB,iBAAiB,CAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAE,CAAA;YAElC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAE,GAAG,CAAE,CAAA;YACtB,iBAAiB,CAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAE,CAAA;QAEnC,CAAC;QAED,cAAc,CAAE,CAAC;YAEhB,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBACZ,MAAM,CAAC,IAAI,GAAG,IAAI,cAAc,EAAoB,CAAA;gBAG7C,AAAP,MAAM,CAAC,GAAG;oBACT,IAAI,IAAI,GAAG,CAAC,CAAA;oBACZ,IAAI,IAAI,GAAG,CAAC,CAAA;oBACZ,KAAK,MAAM,CAAE,GAAG,EAAE,GAAG,CAAE,IAAI,IAAI,CAAC,IAAI,EAAG,CAAC;wBACvC,IAAI,IAAI,GAAG,CAAA;wBACX,IAAI,IAAI,GAAG,CAAA;oBACZ,CAAC;oBACD,OAAO,CAAE,IAAI,EAAE,IAAI,CAAE,CAAA;gBACtB,CAAC;;YARM;gBADL,cAAc;gCASf;YAIF,gBAAgB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAE,CAAC,EAAE,CAAC,CAAE,CAAE,CAAA;YAEvC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;YACzB,gBAAgB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAE,GAAG,EAAE,IAAI,CAAE,CAAE,CAAA;YAE5C,GAAG,CAAC,IAAI,CAAC,GAAG,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;YACzB,gBAAgB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAE,GAAG,EAAE,IAAI,CAAE,CAAE,CAAA;YAE5C,GAAG,CAAC,IAAI,CAAC,MAAM,CAAE,GAAG,CAAE,CAAA;YACtB,gBAAgB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAE,GAAG,EAAE,IAAI,CAAE,CAAE,CAAA;QAE7C,CAAC;QAED,eAAe,CAAE,CAAC;YAEjB,MAAM,GAAI,SAAQ,YAAY;gBAE7B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAA;gBACZ,MAAM,CAAC,IAAI,GAAG,IAAI,cAAc,EAAoB,CAAA;gBAG7C,AAAP,MAAM,CAAC,GAAG;oBACT,IAAI,IAAI,GAAG,CAAC,CAAA;oBACZ,IAAI,IAAI,GAAG,CAAC,CAAA;oBACZ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAE,CAAE,GAAG,EAAE,GAAG,EAAE,EAAE;wBAChC,IAAI,IAAI,GAAG,CAAA;wBACX,IAAI,IAAI,GAAG,CAAA;oBACZ,CAAC,CAAE,CAAA;oBACH,OAAO,CAAE,IAAI,EAAE,IAAI,CAAE,CAAA;gBACtB,CAAC;;YARM;gBADL,cAAc;gCASf;YAIF,gBAAgB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAE,CAAC,EAAE,CAAC,CAAE,CAAE,CAAA;YAEvC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;YACzB,gBAAgB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAE,GAAG,EAAE,IAAI,CAAE,CAAE,CAAA;YAE5C,GAAG,CAAC,IAAI,CAAC,GAAG,CAAE,GAAG,EAAE,IAAI,CAAE,CAAA;YACzB,gBAAgB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAE,GAAG,EAAE,IAAI,CAAE,CAAE,CAAA;YAE5C,GAAG,CAAC,IAAI,CAAC,MAAM,CAAE,GAAG,CAAE,CAAA;YACtB,gBAAgB,CAAE,GAAG,CAAC,GAAG,EAAE,EAAE,CAAE,GAAG,EAAE,IAAI,CAAE,CAAE,CAAA;QAE7C,CAAC;KAED,CAAC,CAAA;AACH,CAAC,EAvJS,CAAC,KAAD,CAAC,QAuJV;;","sourcesContent":["Error.stackTraceLimit = 50;\n\ndeclare let _$_: { new(): {} } & typeof globalThis\ndeclare class $ extends _$_ {}\n\nnamespace $ {\n\texport type $ = typeof $$\n\texport declare class $$ extends $ {\n\t\tstatic $: $\n\t}\n\tnamespace $$ {\n\t\texport type $$ = $\n\t}\n}\n\nmodule.exports = $\n","namespace $ {\n\n\t/** Generates unique identifier. */\n\texport function $mol_guid(\n\t\tlength = 8,\n\t\texists: ( id: string )=> boolean = ()=> false,\n\t) {\n\n\t\tfor(;;) {\n\n\t\t\tlet id = Math.random().toString( 36 ).substring( 2, length + 2 ).toUpperCase()\n\t\t\tif( exists( id ) ) continue\n\t\t\t\n\t\t\treturn id\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_fail( error : any ) : never {\n\t\tthrow error\n\t}\n\n}\n","namespace $ {\n\t\n\t/** Special status statuses. */\n\texport enum $mol_wire_cursor {\n\t\t\n\t\t/** Update required. */\n\t\tstale = -1,\n\t\t\n\t\t/** Some of (transitive) pub update required. */\n\t\tdoubt = -2,\n\t\t\n\t\t/** Actual state but may be dropped. */\n\t\tfresh = -3,\n\t\t\n\t\t/** State will never be changed. */\n\t\tfinal = -4,\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/**\n\t * Collects subscribers in compact array. 28B\n\t */\n\texport class $mol_wire_pub extends Object {\n\t\t\n\t\tconstructor( id = `$mol_wire_pub:${ $mol_guid() }` ) {\n\t\t\tsuper()\n\t\t\tthis[ Symbol.toStringTag ] = id\n\t\t}\n\t\t\n\t\t[ Symbol.toStringTag ]!: string\n\t\tdata = [] as unknown[]\n\t\t\n\t\t// Derived objects should be Arrays.\n\t\tstatic get [ Symbol.species ]() {\n\t\t\treturn Array\n\t\t}\n\t\t\n\t\t/**\n\t\t * Index of first subscriber.\n\t\t */\n\t\tprotected sub_from = 0 // 4B\n\t\t\n\t\t/**\n\t\t * All current subscribers.\n\t\t */\n\t\tget sub_list() {\n\t\t\tconst res = [] as $mol_wire_sub[]\n\t\t\tfor( let i = this.sub_from; i < this.data.length; i += 2 ) {\n\t\t\t\tres.push( this.data[i] as $mol_wire_sub )\n\t\t\t}\n\t\t\treturn res as readonly $mol_wire_sub[]\n\t\t}\n\t\t\n\t\t/**\n\t\t * Has any subscribers or not.\n\t\t */\n\t\tget sub_empty() {\n\t\t\treturn this.sub_from === this.data.length\n\t\t}\n\t\t\n\t\t/**\n\t\t * Subscribe subscriber to this publisher events and return position of subscriber that required to unsubscribe.\n\t\t */\n\t\tsub_on( sub: $mol_wire_pub, pub_pos: number ) {\n\t\t\tconst pos = this.data.length\n\t\t\tthis.data.push( sub, pub_pos )\n\t\t\treturn pos\n\t\t}\n\t\t\n\t\t/**\n\t\t * Unsubscribe subscriber from this publisher events by subscriber position provided by `on(pub)`.\n\t\t */\n\t\tsub_off( sub_pos: number ) {\n\t\t\t\n\t\t\tif(!( sub_pos < this.data.length )) {\n\t\t\t\t$mol_fail( new Error( `Wrong pos ${ sub_pos }` ) )\n\t\t\t}\n\t\t\t\n\t\t\tconst end = this.data.length - 2\n\t\t\tif( sub_pos !== end ) {\n\t\t\t\tthis.peer_move( end, sub_pos )\n\t\t\t}\n\t\t\t\n\t\t\tthis.data.length = end\n\t\t\t\n\t\t\tif( end === this.sub_from ) this.reap()\n\t\t\t\n\t\t}\n\t\t\n\t\t/**\n\t\t * Called when last sub was unsubscribed.\n\t\t **/\n\t\treap() { }\n\t\t\n\t\t/**\n\t\t * Autowire this publisher with current subscriber.\n\t\t **/\n\t\tpromote() {\n\t\t\t$mol_wire_auto()?.track_next( this )\n\t\t}\n\t\t\n\t\t/**\n\t\t * Enforce actualization. Should not throw errors.\n\t\t */\n\t\tfresh() {}\n\t\t\n\t\t/**\n\t\t * Allow to put data to caches in the subtree.\n\t\t */\n\t\tcomplete() {}\n\t\t\n\t\tget incompleted() {\n\t\t\treturn false\n\t\t}\n\t\t\n\t\t/**\n\t\t * Notify subscribers about self changes.\n\t\t */\n\t\temit( quant = $mol_wire_cursor.stale ) {\n\t\t\tfor( let i = this.sub_from; i < this.data.length; i += 2 ) {\n\t\t\t\t;( this.data[i] as $mol_wire_sub ).absorb( quant, this.data[ i + 1 ] as number )\n\t\t\t}\n\t\t}\n\t\t\n\t\t/**\n\t\t * Moves peer from one position to another. Doesn't clear data at old position!\n\t\t */\n\t\tpeer_move( from_pos: number, to_pos: number ) {\n\t\t\t\n\t\t\tconst peer = this.data[ from_pos ] as $mol_wire_pub\n\t\t\tconst self_pos = this.data[ from_pos + 1 ] as number\n\t\t\t\n\t\t\tthis.data[ to_pos ] = peer\n\t\t\tthis.data[ to_pos + 1 ] = self_pos\n\t\t\t\n\t\t\tpeer.peer_repos( self_pos, to_pos )\n\t\t}\n\t\t\n\t\t/**\n\t\t * Updates self position in the peer.\n\t\t */\n\t\tpeer_repos( peer_pos: number, self_pos: number ) {\n\t\t\tthis.data[ peer_pos + 1 ] = self_pos\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport let $mol_wire_auto_sub: $mol_wire_sub | null = null\n\t\n\t/**\n\t * When fulfilled, all publishers are promoted to this subscriber on access to its.\n\t */\n\texport function $mol_wire_auto( next = $mol_wire_auto_sub ) {\n\t\treturn $mol_wire_auto_sub = next\n\t}\n\t\n\t/**\n\t * Affection queue. Used to prevent accidental stack overflow on emit.\n\t */\n\texport const $mol_wire_affected = [] as ( $mol_wire_sub | number )[]\n\t\n}\n","namespace $ {\n\n\texport function $mol_fail_hidden( error : any ) : never {\n\t\tthrow error /// Use 'Never Pause Here' breakpoint in DevTools or simply blackbox this script\n\t}\n\n}\n","namespace $ {\n\n\t// https://docs.google.com/document/d/1FTascZXT9cxfetuPRT2eXPQKXui4nWFivUnS_335T3U/preview#\n\t($ as any)['devtoolsFormatters'] ||= []\n\n\texport function $mol_dev_format_register( config : {\n\t\theader : ( val : any , config : any )=> any\n\t\thasBody : ( val : any , config : any )=> false\n\t} | {\n\t\theader : ( val : any , config : any )=> any\n\t\thasBody : ( val : any , config : any )=> boolean\n\t\tbody : ( val : any , config : any )=> any\n\t} ) {\n\t\t($ as any)['devtoolsFormatters'].push( config )\n\t}\n\n\texport const $mol_dev_format_head = Symbol( '$mol_dev_format_head' )\n\texport const $mol_dev_format_body = Symbol( '$mol_dev_format_body' )\n\t\n\tfunction $mol_dev_format_button( label: any, click: ()=> any ) {\n\t\treturn $mol_dev_format_auto( {\n\t\t\t[ $mol_dev_format_head ]() {\n\t\t\t\treturn $mol_dev_format_span( { color: 'cornflowerblue' }, label )\n\t\t\t},\n\t\t\t[ $mol_dev_format_body ]() {\n\t\t\t\tPromise.resolve().then( click )\n\t\t\t\treturn $mol_dev_format_span({})\n\t\t\t}\n\t\t} )\n\t}\n\n\t$mol_dev_format_register({\n\n\t\theader : ( val : any , config = false ) => {\n\t\t\t\n\t\t\tif( config ) return null\n\n\t\t\tif( !val ) return null\n\t\t\t\n\t\t\tif( $mol_dev_format_head in val ) {\n\t\t\t\ttry {\n\t\t\t\t\treturn val[ $mol_dev_format_head ]()\n\t\t\t\t} catch( error ) {\n\t\t\t\t\treturn $mol_dev_format_accent( $mol_dev_format_native( val ), '💨', $mol_dev_format_native( error ), '' )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif( typeof val === 'function' ) {\n\t\t\t\treturn $mol_dev_format_native( val )\n\t\t\t}\n\t\t\t\n\t\t\tif( val instanceof Error ) {\n\t\t\t\t\n\t\t\t\treturn $mol_dev_format_span( {},\n\t\t\t\t\t$mol_dev_format_native( val ),\n\t\t\t\t\t' ',\n\t\t\t\t\t$mol_dev_format_button( 'throw', ()=> $mol_fail_hidden( val ) ),\n\t\t\t\t)\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tif( val instanceof Promise ) {\n\t\t\t\treturn $mol_dev_format_shade(\n\t\t\t\t\t$mol_dev_format_native( val ),\n\t\t\t\t\t' ',\n\t\t\t\t\tval[ Symbol.toStringTag ] ?? '',\n\t\t\t\t)\n\t\t\t}\n\t\t\t\n\t\t\tif( Symbol.toStringTag in val ) {\n\t\t\t\treturn $mol_dev_format_native( val )\n\t\t\t}\n\t\t\t\n\t\t\treturn null\n\t\t\t\n\t\t} ,\n\t\t\n\t\thasBody : ( val: any , config = false )=> {\n\t\t\t\n\t\t\tif( config ) return false\n\t\t\tif( !val ) return false\n\t\t\t\n\t\t\t// if( Error.isError( val ) ) true\n\t\t\tif( val[ $mol_dev_format_body ] ) return true\n\t\t\t\n\t\t\treturn false\n\t\t},\n\n\t\tbody : ( val: any , config = false )=> {\n\t\t\t\n\t\t\tif( config ) return null\n\n\t\t\tif( !val ) return null\n\t\t\t\n\t\t\tif( $mol_dev_format_body in val ) {\n\t\t\t\ttry {\n\t\t\t\t\treturn val[ $mol_dev_format_body ]()\n\t\t\t\t} catch( error ) {\n\t\t\t\t\treturn $mol_dev_format_accent( $mol_dev_format_native( val ), '💨', $mol_dev_format_native( error ), '' )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t// if( Error.isError( val ) ) {\n\t\t\t// \treturn $mol_dev_format_native( val )\n\t\t\t// }\n\t\t\t\n\t\t\treturn null\n\t\t},\n\n\t})\n\n\texport function $mol_dev_format_native( obj : any ) {\n\t\t\n\t\tif( typeof obj === 'undefined' ) return $mol_dev_format_shade( 'undefined' )\n\t\t\n\t\t// if( ![ 'object', 'function', 'symbol' ].includes( typeof obj ) ) return obj\n\n\t\treturn [\n\t\t\t'object' ,\n\t\t\t{\n\t\t\t\tobject : obj ,\n\t\t\t\tconfig : true ,\n\t\t\t} ,\n\t\t]\n\n\t}\n\n\texport function $mol_dev_format_auto( obj : any ) {\n\t\t\n\t\tif( obj == null ) return $mol_dev_format_shade( String( obj ) )\n\n\t\treturn [\n\t\t\t'object' ,\n\t\t\t{\n\t\t\t\tobject : obj ,\n\t\t\t\tconfig : false ,\n\t\t\t} ,\n\t\t]\n\n\t}\n\n\texport function $mol_dev_format_element( element : string , style : object , ...content : any[] ) {\n\t\t\t\n\t\tconst styles = [] as string[]\n\t\t\n\t\tfor( let key in style ) styles.push( `${ key } : ${ (style as any)[key] }` )\n\t\t\n\t\treturn [\n\t\t\telement ,\n\t\t\t{\n\t\t\t\tstyle : styles.join( ' ; ' ) ,\n\t\t\t} ,\n\t\t\t... content ,\n\t\t]\n\n\t}\n\n\texport let $mol_dev_format_span = $mol_dev_format_element.bind( null , 'span' )\n\texport let $mol_dev_format_div = $mol_dev_format_element.bind( null , 'div' )\n\texport let $mol_dev_format_ol = $mol_dev_format_element.bind( null , 'ol' )\n\texport let $mol_dev_format_li = $mol_dev_format_element.bind( null , 'li' )\n\texport let $mol_dev_format_table = $mol_dev_format_element.bind( null , 'table' )\n\texport let $mol_dev_format_tr = $mol_dev_format_element.bind( null , 'tr' )\n\texport let $mol_dev_format_td = $mol_dev_format_element.bind( null , 'td' )\n\n\texport let $mol_dev_format_accent = $mol_dev_format_span.bind( null , {\n\t\t'color' : 'magenta' ,\n\t} )\n\n\texport let $mol_dev_format_strong = $mol_dev_format_span.bind( null , {\n\t\t'font-weight' : 'bold' ,\n\t} )\n\n\texport let $mol_dev_format_string = $mol_dev_format_span.bind( null , {\n\t\t'color' : 'green',\n\t} )\n\n\texport let $mol_dev_format_shade = $mol_dev_format_span.bind( null , {\n\t\t'color' : 'gray',\n\t} )\n\n\texport let $mol_dev_format_indent = $mol_dev_format_div.bind( null , {\n\t\t'margin-inline-start': '13px'\n\t} )\n\t\n\tclass Stack extends Array< Call > {\n\t\t\n\t\t// [ Symbol.toPrimitive ]() {\n\t\t// \treturn this.toString()\n\t\t// }\n\n\t\tmatch(...args: Parameters<String['match']>) {\n\t\t\treturn this.toString().match(...args)\n\t\t}\n\n\t\tsplit(...args: Parameters<String['split']>) {\n\t\t\treturn this.toString().split(...args)\n\t\t}\n\t\t\n\t\ttoString() {\n\t\t\treturn this.join( '\\n' )\n\t\t}\n\t\t\n\t}\n\t\n\tclass Call extends Object {\n\t\t\n\t\treadonly type: string\n\t\treadonly function: string\n\t\treadonly method: string\n\t\treadonly eval: string\n\t\treadonly source: string\n\t\treadonly offset: number\n\t\treadonly pos: [ number, number ]\n\t\treadonly object: unknown\n\t\treadonly flags: readonly string[]\n\t\t[ Symbol.toStringTag ]!: string\n\t\t\n\t\tconstructor( call: NodeJS.CallSite ) {\n\t\t\tsuper()\n\t\t\t\n\t\t\tthis.type = call.getTypeName() ?? ''\n\t\t\tthis.function = call.getFunctionName() ?? ''\n\t\t\tthis.method = call.getMethodName() ?? ''\n\t\t\tif( this.method === this.function ) this.method = ''\n\t\t\t// const func = c.getFunction()\n\t\t\tthis.pos = [ call.getEnclosingLineNumber() ?? 0, call.getEnclosingColumnNumber() ?? 0 ]\n\t\t\tthis.eval = call.getEvalOrigin() ?? ''\n\t\t\tthis.source = call.getScriptNameOrSourceURL() ?? ''\n\t\t\tthis.object = call.getThis()\n\t\t\tthis.offset = call.getPosition()\n\t\t\t\n\t\t\tconst flags = []\n\t\t\tif( call.isAsync() ) flags.push( 'async' )\n\t\t\tif( call.isConstructor() ) flags.push( 'constructor' )\n\t\t\tif( call.isEval() ) flags.push( 'eval' )\n\t\t\tif( call.isNative() ) flags.push( 'native' )\n\t\t\tif( call.isPromiseAll() ) flags.push( 'PromiseAll' )\n\t\t\tif( call.isToplevel() ) flags.push( 'top' )\n\t\t\tthis.flags = flags\n\t\t\n\t\t\tconst type = this.type ? this.type + '.' : ''\n\t\t\tconst func = this.function || '<anon>'\n\t\t\tconst method = this.method ? ' [' + this.method + '] ' : ''\n\t\t\t\n\t\t\tthis[ Symbol.toStringTag ] = `${type}${func}${method}`\n\t\t}\n\t\t\n\t\t[ Symbol.toPrimitive ]() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\ttoString() {\n\t\t\tconst object = this.object || ''\n\t\t\tconst label = this[ Symbol.toStringTag ]\n\t\t\tconst source = `${ this.source }:${ this.pos.join( ':' ) } #${ this.offset }`\n\t\t\treturn `\\tat ${object}${label} (${source})`\n\t\t}\n\n\t\t[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_div( {},\n\t\t\t\t$mol_dev_format_native( this ),\n\t\t\t\t$mol_dev_format_shade( ' ' ),\n\t\t\t\t... this.object ? [\n\t\t\t\t\t$mol_dev_format_native( this.object ),\n\t\t\t\t] : [],\n\t\t\t\t... this.method ? [ $mol_dev_format_shade( ' ',\n\t\t\t\t\t' [',\n\t\t\t\t\tthis.method,\n\t\t\t\t\t']',\n\t\t\t\t) ] : [],\n\t\t\t\t$mol_dev_format_shade( ' ', this.flags.join( ', ' ) ),\n\t\t\t)\n\t\t}\n\n\t}\n\t\n\tError.prepareStackTrace ??= ( error: Error, stack: NodeJS.CallSite[] )=> new Stack( ... stack.map( call => new Call( call ) ) )\n\n}\n","namespace $ {\n\t\n\t/**\n\t * Publisher that can auto collect other publishers. 32B\n\t * \n\t * \tP1 P2 P3 P4 S1 S2 S3\n\t * \t^ ^\n\t * \tpubs_from subs_from\n\t */\n\texport class $mol_wire_pub_sub extends $mol_wire_pub implements $mol_wire_sub {\n\t\t\n\t\tprotected pub_from = 0 // 4B\n\t\tprotected cursor = $mol_wire_cursor.stale // 4B\n\t\t\n\t\tget temp() {\n\t\t\treturn false\n\t\t}\n\t\t\n\t\tget pub_list() {\n\t\t\tconst res = [] as $mol_wire_pub[]\n\t\t\tconst max = this.cursor >=0 ? this.cursor : this.sub_from\n\t\t\tfor( let i = this.pub_from; i < max; i += 2 ) {\n\t\t\t\tif( this.data[i] ) res.push( this.data[i] as $mol_wire_pub )\n\t\t\t}\n\t\t\treturn res\n\t\t}\n\t\t\n\t\ttrack_on() {\n\t\t\tthis.cursor = this.pub_from\n\t\t\tconst sub = $mol_wire_auto()\n\t\t\t$mol_wire_auto( this )\n\t\t\treturn sub\n\t\t}\n\t\t\n\t\tpromote() {\n\t\t\t\n\t\t\tif( this.cursor >= this.pub_from ) {\n\t\t\t\t$mol_fail( new Error( 'Circular subscription' ) )\n\t\t\t}\n\t\t\t\n\t\t\tsuper.promote()\n\t\t}\n\t\t\n\t\ttrack_next( pub?: $mol_wire_pub ): $mol_wire_pub | null {\n\t\t\t\n\t\t\tif( this.cursor < 0 ) $mol_fail( new Error( 'Promo to non begun sub' ) )\n\t\t\t\n\t\t\tif( this.cursor < this.sub_from ) {\n\t\t\t\n \t\t\t\tconst next = this.data[ this.cursor ] as $mol_wire_pub | undefined\n\t\t\t\tif( pub === undefined ) return next ?? null\n\t\t\t\t\n\t\t\t\tif( next === pub ) {\n\t\t\t\t\tthis.cursor += 2\n\t\t\t\t\treturn next\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( next ) {\n\t\t\t\t\t\n\t\t\t\t\tif( this.sub_from < this.data.length ) {\n\t\t\t\t\t\tthis.peer_move( this.sub_from, this.data.length )\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tthis.peer_move( this.cursor, this.sub_from )\n\t\t\t\t\tthis.sub_from += 2\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tif( pub === undefined ) return null\n\t\t\t\t\n\t\t\t\tif( this.sub_from < this.data.length ) {\n\t\t\t\t\tthis.peer_move( this.sub_from, this.data.length )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tthis.sub_from += 2\n\t\t\t\t\n\t\t\t}\t\t\t\n\t\t\t\n\t\t\tthis.data[ this.cursor ] = pub\n\t\t\tthis.data[ this.cursor + 1 ] = pub.sub_on( this, this.cursor )\n\t\t\t\n\t\t\tthis.cursor += 2\n\t\t\t\n\t\t\treturn pub\n\t\t}\n\t\t\n\t\ttrack_off( sub: $mol_wire_sub | null ) {\n\t\t\t\n\t\t\t$mol_wire_auto( sub )\n\t\t\t\n\t\t\tif( this.cursor < 0 ) {\n\t\t\t\t$mol_fail( new Error( 'End of non begun sub' ) )\n\t\t\t}\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.pub_from;\n\t\t\t\tcursor < this.cursor;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\tpub.fresh()\n\t\t\t}\n\t\t\t\n\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\n\t\t}\n\t\t\n\t\tpub_off( sub_pos: number ) {\n\t\t\tthis.data[ sub_pos ] = undefined as any\n\t\t\tthis.data[ sub_pos + 1 ] = undefined as any \n\t\t}\n\t\t\n\t\tdestructor() {\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.data.length - 2;\n\t\t\t\tcursor >= this.sub_from;\n\t\t\t\tcursor -= 2\n\t\t\t) {\n\t\t\t\tconst sub = this.data[ cursor ] as $mol_wire_sub\n\t\t\t\tconst pos = this.data[ cursor + 1 ] as number\n\t\t\t\tsub.pub_off( pos )\n\t\t\t}\n\t\t\t\n\t\t\tthis.data.length = this.sub_from \n\t\t\tthis.cursor = this.pub_from\n\t\t\tthis.track_cut()\n\t\t\tthis.cursor = $mol_wire_cursor.stale\n\t\t\t\n\t\t}\n\t\t\n\t\ttrack_cut() {\n\t\t\t\n\t\t\tif( this.cursor < this.pub_from ) {\n\t\t\t\t$mol_fail( new Error( 'Cut of non begun sub' ) )\n\t\t\t}\n\t\t\t\n\t\t\tlet end = this.data.length\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.cursor;\n\t\t\t\tcursor < this.sub_from;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\t\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub | undefined\n\t\t\t\tpub?.sub_off( this.data[ cursor + 1 ] as number )\n\t\t\t\t\n\t\t\t\tend -= 2\n\t\t\t\tif( this.sub_from <= end ) this.peer_move( end, cursor )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tthis.data.length = end\n\t\t\t\n\t\t\tthis.sub_from = this.cursor\n\t\t\t\n\t\t}\n\t\t\n\t\tcomplete() { }\n\t\t\n\t\tcomplete_pubs() {\n\t\t\t\n\t\t\tconst limit = this.cursor < 0 ? this.sub_from : this.cursor \n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.pub_from;\n\t\t\t\tcursor < limit;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\tif( pub?.incompleted ) return \n\t\t\t}\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.pub_from;\n\t\t\t\tcursor < limit;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\tpub?.complete()\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tabsorb( quant = $mol_wire_cursor.stale, pos = -1 ) {\n\t\t\t\n\t\t\tif( this.cursor === $mol_wire_cursor.final ) return\n\t\t\tif( this.cursor >= quant ) return\n\t\t\t\n\t\t\tthis.cursor = quant\n\t\t\tthis.emit( $mol_wire_cursor.doubt )\n\t\t\t\n\t\t\t// if( pos >= 0 && pos < this.sub_from - 2 ) {\n\t\t\t\t\n\t\t\t// \tconst pub = this.data[ pos ] as $mol_wire_pub\n\t\t\t// \tif( pub instanceof $mol_wire_task ) return\n\t\t\t\t\n\t\t\t// \tfor(\n\t\t\t// \t\tlet cursor = this.pub_from;\n\t\t\t// \t\tcursor < this.sub_from;\n\t\t\t// \t\tcursor += 2\n\t\t\t// \t) {\n\t\t\t\t\t\n\t\t\t// \t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\t\t\n\t\t\t// \t\tif( pub instanceof $mol_wire_task ) {\n\t\t\t// \t\t\tpub.destructor()\n\t\t\t// \t\t}\n\t\t\t\t\t\n\t\t\t// \t}\n\t\t\t\t\n\t\t\t// }\n\t\t\t\n\t\t}\n\t\t\n\t\t[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_native( this )\n\t\t}\n\t\t\n\t\t/**\n\t\t * Is subscribed to any publisher or not.\n\t\t */\n\t\tget pub_empty() {\n\t\t\treturn this.sub_from === this.pub_from\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\texport const $mol_ambient_ref : unique symbol = Symbol( '$mol_ambient_ref' )\n\n\t/** @deprecated use $ instead */\n\texport type $mol_ambient_context = $\n\n\texport function $mol_ambient( this : $ | void , overrides : Partial< $ > ) : $ {\n\t\treturn Object.setPrototypeOf( overrides , this || $ )\n\t}\n\n}\n","namespace $ {\n\n\tconst instances = new WeakSet< any >()\n\n\t/**\n\t * Proxy that delegates all to lazy returned target.\n\t * \n\t * \t$mol_delegate( Array.prototype , ()=> fetch_array() )\n\t */\n export function $mol_delegate< Value extends object >(\n\t\tproto : Value ,\n\t\ttarget : ()=> Value ,\n\t) {\n\n\t\tconst proxy = new Proxy( proto , {\n\n\t\t\tget: ( _ , field )=> {\n\t\t\t\tconst obj = target()\n\t\t\t\tlet val = Reflect.get( obj , field )\n\t\t\t\tif( typeof val === 'function' ) {\n\t\t\t\t\tval = val.bind( obj )\n\t\t\t\t} \n\t\t\t\treturn val\n\t\t\t},\n\t\t\thas: ( _ , field )=> Reflect.has( target(), field ),\n\t\t\tset: ( _ , field , value )=> Reflect.set( target() , field , value ),\n\t\t\t\n\t\t\tgetOwnPropertyDescriptor: ( _ , field )=> Reflect.getOwnPropertyDescriptor( target() , field ),\n\t\t\townKeys: ()=> Reflect.ownKeys( target() ),\n\t\t\t\n\t\t\tgetPrototypeOf: ()=> Reflect.getPrototypeOf( target() ),\n\t\t\tsetPrototypeOf: ( _ , donor )=> Reflect.setPrototypeOf( target() , donor ),\n\t\t\t\n\t\t\tisExtensible: ()=> Reflect.isExtensible( target() ),\n\t\t\tpreventExtensions: ()=> Reflect.preventExtensions( target() ),\n\t\t\t\n\t\t\tapply: ( _ , self , args )=> Reflect.apply( target() as Function , self , args ),\n\t\t\tconstruct: ( _ , args , retarget )=> Reflect.construct( target() as Function , args , retarget ),\n\t\t\t\n\t\t\tdefineProperty: ( _ , field , descr )=> Reflect.defineProperty( target() , field , descr ),\n\t\t\tdeleteProperty: ( _ , field )=> Reflect.deleteProperty( target() , field ),\n\n\t\t} )\n\n\t\tinstances.add( proxy )\n\n\t\treturn proxy\n\n\t}\n\n\tReflect.defineProperty(\n\t\t$mol_delegate ,\n\t\tSymbol.hasInstance ,\n\t\t{\n\t\t\tvalue : ( obj : object )=> instances.has( obj ),\n\t\t},\n\t)\n\n}\n","namespace $ {\n\n\texport const $mol_owning_map = new WeakMap< any , any >()\n\n\texport function $mol_owning_allow< Having >(\n\t\thaving : Having ,\n\t) : having is Having & {\n\t\tdestructor() : void\n\t} {\n\t\ttry {\n\t\t\tif( !having ) return false\n\t\t\tif( typeof having !== 'object' && typeof having !== 'function' ) return false\n\t\t\tif( having instanceof $mol_delegate ) return false\n\t\t\tif( typeof (having as any)['destructor'] !== 'function' ) return false\n\t\t\treturn true\n\t\t} catch {\n\t\t\treturn false\n\t\t}\n\t}\n\n\texport function $mol_owning_get< Having , Owner extends object >( having : Having , Owner? : { new() : Owner } ) : Owner | null {\n\t\n\t\tif( !$mol_owning_allow( having ) ) return null\n\n\t\twhile( true ) {\n\n\t\t\tconst owner = $mol_owning_map.get( having )\n\t\t\tif( !owner ) return owner\n\t\t\tif( !Owner ) return owner\n\t\t\t\n\t\t\tif( owner instanceof Owner ) return owner\n\n\t\t\thaving = owner\n\t\t}\n\n\t}\n\t\n\texport function $mol_owning_check< Owner , Having >(\n\t\towner : Owner ,\n\t\thaving : Having ,\n\t) : having is Having & { destructor() : void } {\n\t\tif( !$mol_owning_allow( having ) ) return false\n\t\tif( $mol_owning_map.get( having ) !== owner ) return false\n\t\treturn true\n\t}\n\t\n\texport function $mol_owning_catch< Owner , Having >(\n\t\towner : Owner ,\n\t\thaving : Having ,\n\t) {\n\t\tif( !$mol_owning_allow( having ) ) return false\n\t\tif( $mol_owning_map.get( having ) ) return false\n\n\t\t$mol_owning_map.set( having , owner )\n\t\treturn true\n\t}\n\n}\n","namespace $ {\n\t\n\tconst named = new WeakSet< Function >()\n\t\n\texport function $mol_func_name( this : $ , func : Function ) : string {\n\t\t\n\t\tlet name = func.name\n\t\tif( name?.length > 1 ) return name\n\t\tif( named.has( func ) ) return name\n\n\t\tfor( let key in this ) {\n\t\t\ttry {\n\t\t\t\tif( (this as any)[ key ] !== func ) continue\n\t\t\t\tname = key\n\t\t\t\tObject.defineProperty( func , 'name' , { value : name } )\n\t\t\t\tbreak\n\t\t\t} catch {}\n\t\t}\n\n\t\tnamed.add( func )\n\t\treturn name\n\t\t\n\t}\n\n\texport function $mol_func_name_from< Target extends Function >( target : Target , source : Function ) {\n\t\tObject.defineProperty( target , 'name' , { value : source.name } )\n\t\treturn target\n\t}\n\n}\n","namespace $ {\n\t\n\texport const $mol_key_handle = Symbol.for( '$mol_key_handle' )\n\texport const $mol_key_store = new WeakMap< object, string >()\n\t\n}\n","namespace $ {\n\t\n\tif( !Symbol.dispose ) ( Symbol as any ).dispose = Symbol( 'Symbol.dispose' )\n\n\texport class $mol_object2 {\n\t\t\n\t\tstatic $ = $ as any as $\n\t\t\n\t\t[Symbol.toStringTag]!: string\n\n\t\t[ $mol_ambient_ref ] = null as any as $\n\t\tget $() {\n\t\t\tif( this[ $mol_ambient_ref ] ) return this[ $mol_ambient_ref ]\n\t\t\tconst owner = $mol_owning_get( this ) as any\n\t\t\treturn this[ $mol_ambient_ref ] = owner?.$ || (this.constructor as { $?: $ }).$ || $mol_object2.$ as $\n\t\t}\n\t\tset $( next : $ ) {\n\t\t\tif( this[ $mol_ambient_ref ] ) $mol_fail_hidden( new Error( 'Context already defined' ) )\n\t\t\tthis[ $mol_ambient_ref ] = next\n\t\t}\n\n\t\tpublic static create< Instance >(\n\t\t\tthis : new( init? : ( instance : any )=> void )=> Instance ,\n\t\t\tinit? : ( instance : $mol_type_writable<Instance> )=> void\n\t\t) : Instance {\n\t\t\tconst obj = new this\n\t\t\tif( init ) init( obj )\n\t\t\treturn obj\n\t\t}\n\t\t\n\t\tstatic [ Symbol.toPrimitive ]() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\tstatic toString() {\n\t\t\treturn ( this as any )[ Symbol.toStringTag ] || this.$.$mol_func_name( this )\n\t\t}\n\t\t\n\t\tstatic toJSON() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\tstatic [ $mol_key_handle ]() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\tdestructor() { }\n\t\tstatic destructor() { }\n\t\t\n\t\t[ Symbol.dispose ] () {\n\t\t\tthis.destructor()\n\t\t}\n\t\t\n\t\t//[ Symbol.toPrimitive ]( hint: string ) {\n\t\t//\treturn hint === 'number' ? this.valueOf() : this.toString()\n\t\t//}\n\t\t\n\t\ttoString(): string {\n\t\t\treturn this[ Symbol.toStringTag ] || this.constructor.name + '<>'\n\t\t}\n\t\t\n\t\t// toJSON(): any {\n\t\t// \treturn this.toString()\n\t\t// }\n\n\t}\n}\n","namespace $ {\n\n\texport class $mol_after_tick extends $mol_object2 {\n\n\t\tstatic promise = null as Promise<void> | null\n\t\tcancelled = false\n\n\t\tconstructor(\n\t\t\tpublic task : ()=> void ,\n\t\t) {\n\t\t\tsuper()\n\t\t\t\n\t\t\tif( !$mol_after_tick.promise ) $mol_after_tick.promise = Promise.resolve().then( ()=> {\n\t\t\t\t$mol_after_tick.promise = null\n\t\t\t} )\n\t\t\t\n\t\t\t$mol_after_tick.promise.then( ()=> {\n\t\t\t\tif( this.cancelled ) return\n\t\t\t\ttask()\n\t\t\t} )\n\t\t\t\n\t\t}\n\n\t\tdestructor() {\n\t\t\tthis.cancelled = true\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport function $mol_promise_like( val: any ): val is Promise<any> {\n\t\ttry {\n\t\t\treturn val && typeof val === 'object' && 'then' in val && typeof val.then === 'function'\n\t\t} catch {\n\t\t\treturn false\n\t\t}\n\t}\n\n}\n","namespace $ {\n\t\n\tconst wrappers = new WeakMap< Promise< unknown >, Promise< any > >()\n\t\n\t/**\n\t * Suspendable task with support both sync/async api.\n\t * \n\t * \tA1 A2 A3 A4 P1 P2 P3 P4 S1 S2 S3\n\t * \t^ ^ ^\n\t * \targs_from pubs_from subs_from\n\t **/\n\texport abstract class $mol_wire_fiber<\n\t\tHost,\n\t\tArgs extends readonly unknown[],\n\t\tResult,\n\t> extends $mol_wire_pub_sub {\n\t\n\t\tstatic warm = true\n\t\t\n\t\tstatic planning = new Set< $mol_wire_fiber< any, any, any > >()\n\t\tstatic reaping = new Set< $mol_wire_fiber< any, any, any > >()\n\t\t\n\t\tstatic plan_task: $mol_after_tick | null = null\n\t\tstatic plan() {\n\t\t\t\n\t\t\tif( this.plan_task ) return\n\t\t\t\n\t\t\tthis.plan_task = new $mol_after_tick( ()=> {\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tthis.sync()\n\t\t\t\t} finally {\n\t\t\t\t\t$mol_wire_fiber.plan_task = null\n\t\t\t\t}\n\n\t\t\t} )\n\t\t\t\n\t\t}\n\t\t\n\t\tstatic sync() {\n\t\t\t\n\t\t\t// Sync whole fiber graph\n\t\t\twhile( this.planning.size ) {\n\t\t\t\tfor( const fiber of this.planning ) {\n\t\t\t\t\tthis.planning.delete( fiber )\n\t\t\t\t\tif( fiber.cursor >= 0 ) continue\n\t\t\t\t\tif( fiber.cursor === $mol_wire_cursor.final ) continue\n\t\t\t\t\tfiber.fresh()\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t// Collect garbage\n\t\t\twhile( this.reaping.size ) {\n\t\t\t\t\n\t\t\t\tconst fibers = this.reaping\n\t\t\t\tthis.reaping = new Set\n\t\t\t\t\n\t\t\t\tfor( const fiber of fibers ) {\n\t\t\t\t\tif( !fiber.sub_empty ) continue\n\t\t\t\t\tfiber.destructor()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tpublic cache: Result | Error | Promise< Result | Error > = undefined as any\n\t\t\n\t\tget args() {\n\t\t\treturn this.data.slice( 0 , this.pub_from ) as any as Args\n\t\t}\n\t\t\n\t\tresult() {\n\t\t\tif( $mol_promise_like( this.cache ) ) return\n\t\t\tif( this.cache instanceof Error ) return\n\t\t\treturn this.cache\n\t\t}\n\t\t\n\t\tget incompleted() {\n\t\t\treturn $mol_promise_like( this.cache )\n\t\t}\n\t\t\n\t\tfield() {\n\t\t\treturn this.task.name + '()'\n\t\t}\n\t\t\n\t\tconstructor(\n\t\t\tid: string,\n\t\t\treadonly task: ( this : Host , ... args : Args )=> Result,\n\t\t\treadonly host?: Host,\n\t\t\targs?: Args\n\t\t) {\n\t\t\t\n\t\t\tsuper( id )\n\t\t\tif( args ) this.data.push( ... args )\n\t\t\tthis.pub_from = this.sub_from = args?.length ?? 0\n\t\t\t\n\t\t}\n\t\t\n\t\tplan() {\n\t\t\t$mol_wire_fiber.planning.add( this )\n\t\t\t$mol_wire_fiber.plan()\n\t\t\treturn this\n\t\t}\n\t\t\n\t\treap() {\n\t\t\t$mol_wire_fiber.reaping.add( this )\n\t\t\t$mol_wire_fiber.plan()\n\t\t}\n\t\t\n\t\ttoString() {\n\t\t\treturn this[ Symbol.toStringTag ]\n\t\t}\n\t\t\n\t\ttoJSON() {\n\t\t\treturn this[ Symbol.toStringTag ]\n\t\t}\n\n\t\t[ $mol_dev_format_head ]() {\n\t\t\t\n\t\t\tconst cursor = {\n\t\t\t\t[ $mol_wire_cursor.stale ]: '🔴',\n\t\t\t\t[ $mol_wire_cursor.doubt ]: '🟡',\n\t\t\t\t[ $mol_wire_cursor.fresh ]: '🟢',\n\t\t\t\t[ $mol_wire_cursor.final ]: '🔵',\n\t\t\t}[ this.cursor ] ?? this.cursor.toString()\n\t\t\t\n\t\t\treturn $mol_dev_format_div( {},\n\t\t\t\t$mol_owning_check( this, this.cache )\n\t\t\t\t\t? $mol_dev_format_shade( cursor )\n\t\t\t\t\t: $mol_dev_format_shade( this[ Symbol.toStringTag ], cursor ),\n\t\t\t\t$mol_dev_format_auto( this.cache ),\n\t\t\t)\n\t\t\t\n\t\t}\n\t\t[ $mol_dev_format_body ]() { return null }\n\t\t\n\t\tget $() {\n\t\t\treturn ( this.host ?? this.task as any )['$']\n\t\t}\n\t\t\n\t\temit( quant = $mol_wire_cursor.stale ) {\n\t\t\tif( this.sub_empty ) this.plan()\n\t\t\telse super.emit( quant )\n\t\t}\n\t\t\n\t\tfresh() {\n\n\t\t\ttype Result = typeof this.cache\n\t\t\t\n\t\t\tif( this.cursor === $mol_wire_cursor.fresh ) return\n\t\t\tif( this.cursor === $mol_wire_cursor.final ) return\n\t\t\t\n\t\t\tcheck: if( this.cursor === $mol_wire_cursor.doubt ) {\n\t\t\t\t\n\t\t\t\tfor( let i = this.pub_from ; i < this.sub_from; i += 2 ) {\n\t\t\t\t\t;( this.data[i] as $mol_wire_pub )?.fresh()\n\t\t\t\t\tif( this.cursor !== $mol_wire_cursor.doubt ) break check\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\treturn\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst bu = this.track_on()\n\t\t\tlet result: typeof this.cache\n\n\t\t\ttry {\n\n\t\t\t\tswitch( this.pub_from ) {\n\t\t\t\t\tcase 0: result = (this.task as any).call( this.host! ); break\n\t\t\t\t\tcase 1: result = (this.task as any).call( this.host!, this.data[0] ); break\n\t\t\t\t\tdefault: result = (this.task as any).call( this.host!, ... this.args ); break\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_promise_like( result ) ) {\n\n\t\t\t\t\tif( wrappers.has( result ) ) {\n\t\t\t\t\t\tresult = wrappers.get( result )!.then(a=>a)\n\t\t\t\t\t} else {\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst put = ( res: Result )=> {\n\t\t\t\t\t\t\tif( this.cache === result ) this.put( res )\n\t\t\t\t\t\t\treturn res\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\twrappers.set( result, result = Object.assign(\n\t\t\t\t\t\t\tresult.then( put, put ),\n\t\t\t\t\t\t\t{ destructor: ( result as any ).destructor || (()=> {}) }\n\t\t\t\t\t\t) )\n\t\t\t\t\t\twrappers.set( result, result )\n\n\t\t\t\t\t\tconst error = new Error( `Promise in ${ this }` )\n\t\t\t\t\t\tObject.defineProperty( result, 'stack', { get: ()=> error.stack } )\n\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} catch( error: any ) {\n\t\t\t\t\n\t\t\t\tif( error instanceof Error || $mol_promise_like( error ) ) {\n\t\t\t\t\tresult = error\n\t\t\t\t} else {\n\t\t\t\t\tresult = new Error( String( error ), { cause: error } )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_promise_like( result ) ) {\n\t\t\t\t\t\n\t\t\t\t\tif( wrappers.has( result ) ) {\n\t\t\t\t\t\tresult = wrappers.get( result )!\n\t\t\t\t\t} else {\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst put = ( v: any )=> {\n\t\t\t\t\t\t\tif( this.cache === result ) this.absorb()\n\t\t\t\t\t\t\treturn v\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\twrappers.set( result, result = Object.assign(\n\t\t\t\t\t\t\tresult.then( put, put ),\n\t\t\t\t\t\t\t{ destructor: ( result as any ).destructor || (()=> {}) }\n\t\t\t\t\t\t) )\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst error = new Error( `Promise in ${ this }` )\n\t\t\t\t\t\tObject.defineProperty( result, 'stack', { get: ()=> error.stack } )\n\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tif( ! $mol_promise_like( result ) ) {\n\t\t\t\tthis.track_cut()\n\t\t\t}\n\t\t\t\n\t\t\tthis.track_off( bu )\n\t\t\tthis.put( result )\n\t\t\t\n\t\t\treturn this\n\t\t}\n\t\t\n\t\trefresh() {\n\t\t\tthis.cursor = $mol_wire_cursor.stale\n\t\t\tthis.fresh()\n\t\t}\n\t\t\n\t\tabstract put( next: Result | Error | Promise< Result | Error > ): Result | Error | Promise< Result | Error >\n\t\t\n\t\t/**\n\t\t * Synchronous execution. Throws Promise when waits async task (SuspenseAPI provider).\n\t\t * Should be called inside SuspenseAPI consumer (ie fiber).\n\t\t */\n\t\tsync() {\n\t\t\t\n\t\t\tif( !$mol_wire_fiber.warm ) {\n\t\t\t\treturn this.result() as Awaited< Result >\n\t\t\t}\n\t\t\t\n\t\t\tthis.promote()\n\t\t\tthis.fresh()\n\t\t\t\n\t\t\tif( this.cache instanceof Error ) {\n\t\t\t\treturn $mol_fail_hidden( this.cache )\n\t\t\t}\n\t\t\t\n\t\t\tif( $mol_promise_like( this.cache ) ) {\n\t\t\t\treturn $mol_fail_hidden( this.cache )\n\t\t\t}\n\t\t\t\n\t\t\treturn this.cache as Awaited< Result >\n\t\t}\n\n\t\t/**\n\t\t * Asynchronous execution.\n\t\t * It's SuspenseAPI consumer. So SuspenseAPI providers can be called inside.\n\t\t */\n\t\tasync async_raw() {\n\t\t\t\n\t\t\twhile( true ) {\n\t\t\t\t\n\t\t\t\tthis.fresh()\n\t\t\t\t\n\t\t\t\tif( this.cache instanceof Error ) {\n\t\t\t\t\t$mol_fail_hidden( this.cache )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( ! $mol_promise_like( this.cache ) ) return this.cache\n\t\t\t\t\t\n\t\t\t\tawait Promise.race([ this.cache, this.step() ])\n\t\t\t\tif( ! $mol_promise_like( this.cache ) ) return this.cache\n\t\t\t\t\t\n\t\t\t\tif( this.cursor === $mol_wire_cursor.final ) {\n\t\t\t\t\t// never ends on destructed fiber\n\t\t\t\t\tawait new Promise( ()=> {} )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tasync() {\n\t\t\tconst promise = this.async_raw() as Promise<Result> & { destructor(): void }\n\n\t\t\tif (! promise.destructor) promise.destructor = () => this.destructor()\n\n\t\t\treturn promise\n\t\t}\n\t\t\n\t\tstep() {\n\t\t\treturn new Promise< null >( done => {\n\t\t\t\tconst sub = new $mol_wire_pub_sub\n\t\t\t\tconst prev = sub.track_on()\n\t\t\t\tsub.track_next( this )\n\t\t\t\tsub.track_off( prev )\n\t\t\t\tsub.absorb = ()=> {\n\t\t\t\t\tdone( null )\n\t\t\t\t\tsetTimeout( ()=> sub.destructor() )\n\t\t\t\t}\n\t\t\t} )\n\t\t}\n\n\t\tdestructor() {\n\t\t\t\n\t\t\tsuper.destructor()\n\t\t\t\n\t\t\t$mol_wire_fiber.planning.delete( this )\n\t\t\t\n\t\t\tif( ! $mol_owning_check( this, this.cache ) ) return\n\n\t\t\ttry {\n\t\t\t\tthis.cache.destructor()\n\t\t\t} catch (result) {\n\t\t\t\tif ($mol_promise_like(result)) {\n\t\t\t\t\tconst error = new Error( `Promise in ${ this }.destructor()` )\n\t\t\t\t\tObject.defineProperty( result, 'stack', { get: ()=> error.stack } )\n\t\t\t\t}\n\n\t\t\t\t$mol_fail_hidden(result)\n\t\t\t}\n\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\texport let $mol_compare_deep_cache = new WeakMap< any , WeakMap< any , boolean > >()\n\t\n\t/**\n\t * Deeply compares two values. Returns true if equal.\n\t * Define `Symbol.toPrimitive` to customize.\n\t */\n\texport function $mol_compare_deep< Value >( left: Value, right: Value ): boolean {\n\n\t\tif( Object.is( left , right ) ) return true\n\n\t\tif( left === null ) return false\n\t\tif( right === null ) return false\n\n\t\tif( typeof left !== 'object' ) return false\n\t\tif( typeof right !== 'object' ) return false\n\n\t\tconst left_proto = Reflect.getPrototypeOf( left as any )\n\t\tconst right_proto = Reflect.getPrototypeOf( right as any )\n\t\t\n\t\tif( left_proto !== right_proto ) return false\n\n\t\tif( left instanceof Boolean ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof Number ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof String ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof Date ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof RegExp ) return left.source === (right as any).source && left.flags === (right as any).flags\n\t\tif( left instanceof Error ) return left.message === (right as any).message && $mol_compare_deep( left.stack, (right as any).stack )\n\n\t\tlet left_cache = $mol_compare_deep_cache.get( left )\n\t\tif( left_cache ) {\n\n\t\t\tconst right_cache = left_cache.get( right )\n\t\t\tif( typeof right_cache === 'boolean' ) return right_cache\n\n\t\t} else {\n\t\t\t\n\t\t\tleft_cache = new WeakMap< any , boolean >()\n\t\t\t$mol_compare_deep_cache.set( left , left_cache )\n\n\t\t}\n\n\t\tleft_cache.set(right, true);\n\n\t\tlet result!: boolean\n\n\t\ttry {\n\t\t\t\n\t\t\tif( !left_proto ) result = compare_pojo( left, right as any )\n\t\t\telse if( !Reflect.getPrototypeOf( left_proto ) ) result = compare_pojo( left, right as any )\n\t\t\telse if( Symbol.toPrimitive in left ) result = compare_primitive( left, right )\n\t\t\telse if( Array.isArray( left ) ) result = compare_array( left, right as any )\n\t\t\telse if( left instanceof Set ) result = compare_set( left, right as any )\n\t\t\telse if( left instanceof Map ) result = compare_map( left, right as any )\n\t\t\telse if( ArrayBuffer.isView( left ) ) result = compare_buffer( left, right as any )\n\t\t\telse if( Symbol.iterator in left ) result = compare_iterator( ( left as any )[ Symbol.iterator ](), ( right as any )[ Symbol.iterator ]() )\n\t\t\telse result = false\n\n\t\t} finally {\n\t\t\tleft_cache.set( right , result )\n\t\t}\n\t\t\n\t\treturn result\n\t}\n\n\tfunction compare_array< Value extends any[] >( left: Value, right: Value ): boolean {\n\t\t\n\t\tconst len = left.length\n\t\tif( len !== right.length ) return false\n\t\t\n\t\tfor( let i = 0; i < len; ++i ) {\n\t\t\tif( !$mol_compare_deep( left[i] , right[i] ) ) return false\n\t\t}\n\t\t\n\t\treturn true\n\t}\n\t\n\tfunction compare_buffer( left: ArrayBufferView, right: ArrayBufferView ): boolean {\n\t\t\n\t\tconst len = left.byteLength\n\t\tif( len !== right.byteLength ) return false\n\t\t\n\t\tif( left instanceof DataView ) return compare_buffer(\n\t\t\tnew Uint8Array( left.buffer, left.byteOffset, left.byteLength ),\n\t\t\tnew Uint8Array( right.buffer, right.byteOffset, right.byteLength ),\n\t\t)\n\t\t\n\t\tfor( let i = 0; i < len; ++i ) {\n\t\t\tif( (left as any)[i] !== (right as any)[i] ) return false\n\t\t}\n\t\t\n\t\treturn true\n\t}\n\t\n\tfunction compare_iterator< Value extends IterableIterator<any> >(\n\t\tleft: Value,\n\t\tright: Value,\n\t): boolean {\n\t\t\n\t\twhile( true ) {\n\n\t\t\tconst left_next = left.next()\n\t\t\tconst right_next = right.next()\n\n\t\t\tif( left_next.done !== right_next.done ) return false\n\t\t\tif( left_next.done ) break\n\n\t\t\tif( !$mol_compare_deep( left_next.value , right_next.value ) ) return false\n\n\t\t}\n\n\t\treturn true\n\n\t}\n\t\n\tfunction compare_set< Value extends Set<any> >( left: Value, right: Value ): boolean {\n\t\tif( left.size !== right.size ) return false\n\t\treturn compare_iterator( left.values(), right.values() )\n\t}\n\t\n\tfunction compare_map< Key, Value >( left: Map< Key, Value > , right: Map< Key, Value > ): boolean {\n\t\tif( left.size !== right.size ) return false\n\t\treturn compare_iterator( left.keys(), right.keys() )\n\t\t\t&& compare_iterator( left.values(), right.values() )\n\t}\n\t\n\tfunction compare_pojo( left: {}, right: {} ): boolean {\n\t\t\n\t\tconst left_keys = Object.getOwnPropertyNames( left )\n\t\tconst right_keys = Object.getOwnPropertyNames( right )\n\t\t\n\t\tif( !compare_array( left_keys, right_keys ) ) return false\n\n\t\tfor( let key of left_keys ) {\n\t\t\tif( !$mol_compare_deep( ( left as any )[ key ], ( right as any )[ key ] ) ) return false\n\t\t}\n\n\t\tconst left_syms = Object.getOwnPropertySymbols( left )\n\t\tconst right_syms = Object.getOwnPropertySymbols( right )\n\t\t\n\t\tif( !compare_array( left_syms, right_syms ) ) return false\n\n\t\tfor( let key of left_syms ) {\n\t\t\tif( !$mol_compare_deep( ( left as any )[ key ], ( right as any )[ key ] ) ) return false\n\t\t}\n\n\t\treturn true\n\t}\n\t\n\tfunction compare_primitive( left: {}, right: {} ): boolean {\n\t\treturn Object.is(\n\t\t\t(left as any)[ Symbol.toPrimitive ]( 'default' ),\n\t\t\t(right as any)[ Symbol.toPrimitive ]( 'default' ),\n\t\t)\n\t}\n\t\n}\n","namespace $ {\n\n\t/** Logger event data */\n\texport type $mol_log3_event< Fields > = {\n\t\t[ key in string ] : unknown\n\t} & {\n\t\t\n\t\t/** Time of event creation */\n\t\ttime? : string\n\n\t\t/** Place of event creation */\n\t\tplace : unknown\n\n\t\t/** Short description of event */\n\t\tmessage : string\n\n\t} & Fields\n\n\t/** Logger function */\n\texport type $mol_log3_logger< Fields , Res = void > = (\n\t\tthis : $ ,\n\t\tevent : $mol_log3_event< Fields > ,\n\t)=> Res\n\n\t/** Log begin of some task */\n\texport declare let $mol_log3_come : $mol_log3_logger<{}>\n\t\n\t/** Log end of some task */\n\texport declare let $mol_log3_done : $mol_log3_logger<{}>\n\t\n\t/** Log error */\n\texport declare let $mol_log3_fail : $mol_log3_logger<{}>\n\t\n\t/** Log warning message */\n\texport declare let $mol_log3_warn : $mol_log3_logger<{ hint : string }>\n\t\n\t/** Log some generic event */\n\texport declare let $mol_log3_rise : $mol_log3_logger<{}>\n\n\t/** Log begin of log group, returns func to close group */\n\texport declare let $mol_log3_area : $mol_log3_logger< {} , ()=> void >\n\n\t/** Log begin of collapsed group only when some logged inside, returns func to close group */\n\texport function $mol_log3_area_lazy(\n\t\tthis : $ ,\n\t\tevent : $mol_log3_event<{}> ,\n\t) {\n\n\t\tconst self = this.$\n\t\tconst stack = self.$mol_log3_stack\n\n\t\tconst deep = stack.length\n\t\tlet logged = false\n\n\t\tstack.push( ()=> {\n\t\t\tlogged = true\n\t\t\tself.$mol_log3_area.call( self , event )\n\t\t} )\n\n\t\treturn ()=> {\n\t\t\tif( logged ) self.console.groupEnd()\n\t\t\tif( stack.length > deep ) stack.length = deep\n\t\t}\n\n\t}\n\n\texport let $mol_log3_stack = [] as ( ()=> void )[]\n\n}\n","namespace $ {\n\n\t/** Position in any resource. */\n\texport class $mol_span extends $mol_object2 {\n\n\t\tconstructor(\n\t\t\treadonly uri: string ,\n\t\t\treadonly source: string ,\n\t\t\treadonly row: number ,\n\t\t\treadonly col: number ,\n\t\t\treadonly length: number ,\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis[ Symbol.toStringTag ] = this.uri + ( '#' + this.row + ':' + this.col + '/' + this.length )\n\t\t}\n\n\t\t/** Span for begin of unknown resource */\n\t\tstatic unknown = $mol_span.begin('?')\n\n\t\t/** Makes new span for begin of resource. */\n\t\tstatic begin( uri: string, source = '' ) {\n\t\t\treturn new $mol_span( uri , source, 1 , 1 , 0 )\n\t\t}\n\n\t\t/** Makes new span for end of resource. */\n\t\tstatic end( uri: string , source: string ) {\n\t\t\treturn new $mol_span( uri , source, 1 , source.length + 1 , 0 )\n\t\t}\n\n\t\t/** Makes new span for entire resource. */\n\t\tstatic entire( uri: string , source: string ) {\n\t\t\treturn new $mol_span( uri , source, 1 , 1 , source.length )\n\t\t}\n\n\t\ttoString() {\n\t\t\treturn this[ Symbol.toStringTag ]\n\t\t}\n\n\t\ttoJSON() {\n\t\t\treturn {\n\t\t\t\turi: this.uri,\n\t\t\t\trow: this.row,\n\t\t\t\tcol: this.col,\n\t\t\t\tlength: this.length\n\t\t\t}\n\t\t}\n\n\t\t/** Makes new error for this span. */\n\t\terror( message : string , Class = Error ) {\n\t\t\treturn new Class( `${message} (${this})` )\n\t\t}\n\n\t\t/** Makes new span for same uri. */\n\t\tspan( row : number , col : number , length : number ) {\n\t\t\treturn new $mol_span( this.uri , this.source, row , col , length )\n\t\t}\n\n\t\t/** Makes new span after end of this. */\n\t\tafter( length = 0 ) {\n\t\t\treturn new $mol_span( this.uri , this.source, this.row , this.col + this.length , length )\n\t\t}\n\n\t\t/** Makes new span between begin and end. */\n\t\tslice( begin: number, end = -1 ) {\n\t\t\tlet len = this.length\n\t\t\t\n\t\t\tif( begin < 0 ) begin += len\n\t\t\tif( end < 0 ) end += len\n\n\t\t\tif (begin < 0 || begin > len) this.$.$mol_fail( this.error( `Begin value '${begin}' out of range`, RangeError ) )\n\t\t\tif (end < 0 || end > len) this.$.$mol_fail( this.error( `End value '${end}' out of range`, RangeError ) )\n\t\t\tif (end < begin) this.$.$mol_fail( this.error( `End value '${end}' can't be less than begin value`, RangeError ) )\n\n\t\t\treturn this.span( this.row , this.col + begin , end - begin )\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\t/** Serializes tree to string in tree format. */\n\texport function $mol_tree2_to_string(\n\t\tthis: $,\n\t\ttree: $mol_tree2,\n\t) : string {\n\n\t\tlet output = [] as string[]\n\t\t\n\t\tfunction dump(\n\t\t\ttree: $mol_tree2,\n\t\t\tprefix = '',\n\t\t) {\n\n\t\t\tif( tree.type.length ) {\n\t\t\t\t\n\t\t\t\tif( !prefix.length ) {\n\t\t\t\t\tprefix = \"\\t\";\n\t\t\t\t}\n\n\t\t\t\toutput.push( tree.type )\n\n\t\t\t\tif( tree.kids.length == 1 ) {\n\t\t\t\t\toutput.push( ' ' )\n\t\t\t\t\tdump( tree.kids[ 0 ], prefix )\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\toutput.push( \"\\n\" )\n\n\t\t\t} else if( tree.value.length || prefix.length ) {\n\n\t\t\t\toutput.push( \"\\\\\" + tree.value + \"\\n\" )\n\n\t\t\t}\n\n\t\t\tfor( const kid of tree.kids ) {\n\t\t\t\toutput.push( prefix )\n\t\t\t\tdump( kid, prefix + \"\\t\" )\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tdump( tree )\n\n\t\treturn output.join('')\n\t}\n\t\t\n}\n","namespace $ {\n\t\n\texport function $mol_maybe< Value >( value : Value | null | undefined ) : Value[] {\n\t\treturn ( value == null ) ? [] : [ value ]\n\t}\n\t\n}\n","namespace $ {\n\n\t/** Path by types in tree. */\n\texport type $mol_tree2_path =\n\t\tArray< string | number | null >\n\t\n\t/** Hask tool for processing node. */\n\texport type $mol_tree2_hack< Context > =\n\t\t(\n\t\t\tinput : $mol_tree2 ,\n\t\t\tbelt : $mol_tree2_belt< Context > ,\n\t\t\tcontext : Context ,\n\t\t)=> readonly $mol_tree2[]\n\n\t/** Collection of hask tools for processing tree. */\n\texport type $mol_tree2_belt< Context > =\n\t\tRecord< string , $mol_tree2_hack< Context > >\n\n\t/**\n\t * Abstract Syntax Tree with human readable serialization.\n\t * Avoid direct instantiation. Use static factories instead.\n\t * @see https://github.com/nin-jin/tree.d\n\t */\n\texport class $mol_tree2 extends Object {\n\t\t\n\t\tconstructor(\n\n\t\t\t/** Type of structural node, `value` should be empty */\n\t\t\treadonly type : string,\n\t\t\t\n\t\t\t/** Content of data node, `type` should be empty */\n\t\t\treadonly value : string,\n\n\t\t\t/** Child nodes */\n\t\t\treadonly kids : readonly $mol_tree2[],\n\t\t\t\n\t\t\t/** Position in most far source resource */\n\t\t\treadonly span : $mol_span,\n\n\t\t) {\n\t\t\tsuper()\n\t\t\t;(this as any)[ Symbol.toStringTag ] = type || '\\\\' + value\n\t\t}\n\n\t\t/** Makes collection node. */\n\t\tstatic list(\n\t\t\tkids : readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\t\t\treturn new $mol_tree2( '' , '' , kids , span )\n\t\t}\n\t\t\n\t\t/** Makes new derived collection node. */\n\t\tlist(\n\t\t\tkids : readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.list( kids , this.span )\n\t\t}\n\n\t\t/** Makes data node for any string. */\n\t\tstatic data(\n\t\t\tvalue : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\n\t\t\tconst chunks = value.split( '\\n' )\n\n\t\t\tif( chunks.length > 1 ) {\n\t\t\t\n\t\t\t\tlet kid_span = span.span( span.row , span.col , 0 )\n\n\t\t\t\tconst data = chunks.map( chunk => {\n\t\t\t\t\tkid_span = kid_span.after( chunk.length )\n\t\t\t\t\treturn new $mol_tree2( '' , chunk , [] , kid_span )\n\t\t\t\t} )\n\n\t\t\t\tkids = [ ... data , ... kids ]\n\n\t\t\t\tvalue = ''\n\n\t\t\t}\n\n\t\t\treturn new $mol_tree2( '' , value , kids , span )\n\n\t\t}\n\t\t\n\t\t/** Makes new derived data node. */\n\t\tdata(\n\t\t\tvalue : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.data( value , kids , this.span )\n\t\t}\n\t\t\n\t\t/** Makes struct node. */\n\t\tstatic struct(\n\t\t\ttype : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\n\t\t\tif( /[ \\n\\t\\\\]/.test( type ) ) {\n\t\t\t\t$$.$mol_fail( span.error( `Wrong type ${ JSON.stringify( type ) }` ) )\n\t\t\t}\n\n\t\t\treturn new $mol_tree2( type , '' , kids , span )\n\n\t\t}\n\t\t\n\t\t/** Makes new derived structural node. */\n\t\tstruct(\n\t\t\ttype : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.struct( type , kids , this.span )\n\t\t}\n\n\t\t/** Makes new derived node with different kids id defined. */\n\t\tclone( kids : readonly $mol_tree2[], span = this.span ) {\n\t\t\treturn new $mol_tree2( this.type , this.value , kids , span )\n\t\t}\n\n\t\t/** Returns multiline text content. */\n\t\ttext() {\n\n\t\t\tvar values : string[] = []\n\t\t\t\n\t\t\tfor( var kid of this.kids ) {\n\t\t\t\tif( kid.type ) continue\n\t\t\t\tvalues.push( kid.value )\n\t\t\t}\n\t\t\t\n\t\t\treturn this.value + values.join( '\\n' )\n\n\t\t}\n\t\t\n\t\t/** Parses tree format. */\n\t\t/** @deprecated Use $mol_tree2_from_string */\n\t\tstatic fromString( str : string , uri = 'unknown' ) {\n\t\t\treturn $$.$mol_tree2_from_string( str, uri )\n\t\t}\n\n\t\t/** Serializes to tree format. */\n\t\ttoString() : string {\n\t\t\treturn $$.$mol_tree2_to_string( this )\n\t\t}\n\t\t\n\t\t/** Makes new tree with node overrided by path. */\n\t\tinsert( value : $mol_tree2 | null , ...path : $mol_tree2_path ) : $mol_tree2 {\n\t\t\treturn this.update( $mol_maybe( value ), ... path )[0]\n\t\t}\n\n\t\t/** Makes new tree with node overrided by path. */\n\t\tupdate( value : readonly $mol_tree2[] , ...path : $mol_tree2_path ) : readonly $mol_tree2[] {\n\n\t\t\tif( path.length === 0 ) return value\n\t\t\t\n\t\t\tconst type = path[0]\n\t\t\tif( typeof type === 'string' ) {\n\n\t\t\t\tlet replaced = false\n\t\t\t\tconst sub = this.kids.flatMap( ( item , index )=> {\n\t\t\t\t\tif( item.type !== type ) return item\n\t\t\t\t\treplaced = true\n\t\t\t\t\treturn item.update( value , ... path.slice( 1 ) )\n\t\t\t\t} ).filter( Boolean )\n\t\t\t\t\n\t\t\t\tif( !replaced && value ) {\n\t\t\t\t\tsub.push( ... this.struct( type , [] ).update( value , ... path.slice( 1 ) ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn [ this.clone( sub ) ]\n\n\t\t\t} else if( typeof type === 'number' ) {\n\t\t\t\t\n\t\t\t\tconst ins = ( this.kids[ type ] || this.list([]) )\n\t\t\t\t\t.update( value , ... path.slice( 1 ) )\n\t\t\t\t\n\t\t\t\treturn [ this.clone([\n\t\t\t\t\t... this.kids.slice( 0, type ),\n\t\t\t\t\t... ins,\n\t\t\t\t\t... this.kids.slice( type + 1 ),\n\t\t\t\t]) ]\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tconst kids = ( ( this.kids.length === 0 ) ? [ this.list([]) ] : this.kids )\n\t\t\t\t\t.flatMap( item => item.update( value , ... path.slice( 1 ) ) )\n\n\t\t\t\treturn [ this.clone( kids ) ]\n\n\t\t\t}\n\n\t\t}\n\n\t\t/** Query nodes by path. */\n\t\tselect( ...path : $mol_tree2_path ) {\n\n\t\t\tlet next = [ this as $mol_tree2 ]\n\n\t\t\tfor( const type of path ) {\n\n\t\t\t\tif( !next.length ) break\n\t\t\t\t\n\t\t\t\tconst prev = next\n\t\t\t\tnext = []\n\n\t\t\t\tfor( var item of prev ) {\n\n\t\t\t\t\tswitch( typeof( type ) ) {\n\n\t\t\t\t\t\tcase 'string' :\n\n\t\t\t\t\t\t\tfor( var child of item.kids ) {\n\t\t\t\t\t\t\t\tif( child.type == type ) {\n\t\t\t\t\t\t\t\t\tnext.push( child )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\n\t\t\t\t\t\tcase 'number' :\n\n\t\t\t\t\t\t\tif( type < item.kids.length ) next.push( item.kids[ type ] )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\n\t\t\t\t\t\tdefault : next.push( ... item.kids )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.list( next )\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Filter kids by path or value. */\n\t\tfilter( path : string[] , value? : string ) {\n\n\t\t\tconst sub = this.kids.filter( item => {\n\t\t\t\t\t\n\t\t\t\tvar found = item.select( ...path )\n\t\t\t\t\n\t\t\t\tif( value === undefined ) {\n\t\t\t\t\treturn Boolean( found.kids.length )\n\t\t\t\t} else {\n\t\t\t\t\treturn found.kids.some( child => child.value == value )\n\t\t\t\t}\n\t\t\t\n\t\t\t} )\n\t\t\t\n\t\t\treturn this.clone( sub )\n\n\t\t}\n\n\t\thack_self< Context extends { span?: $mol_span; [ key: string ]: unknown } = {} >(\n\t\t\tbelt: $mol_tree2_belt< Context >,\n\t\t\tcontext = {} as Context,\n\t\t) {\n\t\t\tlet handle = belt[ this.type ] || belt[ '' ]\n\t\t\t\t\n\t\t\tif( !handle || handle === Object.prototype[ this.type as keyof Object ] ) {\n\t\t\t\thandle = ( input, belt, context )=> [\n\t\t\t\t\tinput.clone( input.hack( belt, context ), context.span )\n\t\t\t\t]\n\t\t\t}\n\t\t\t\n\t\t\ttry {\n\t\t\t\treturn handle( this , belt , context! )\n\t\t\t} catch( error: any ) {\n\t\t\t\terror.message += `\\n${ this.clone([]) }${ this.span }`\n\t\t\t\t$mol_fail_hidden( error )\n\t\t\t}\n\t\t}\n\n\t\t/** Transform tree through context with transformers */\n\t\thack< Context extends { span?: $mol_span; [ key: string ]: unknown } = {} >(\n\t\t\tbelt: $mol_tree2_belt< Context >,\n\t\t\tcontext = {} as Context,\n\t\t) {\n\t\t\treturn ( [] as readonly $mol_tree2[] ).concat(\n\t\t\t\t... this.kids.map( child => child.hack_self(belt, context) )\n\t\t\t)\n\n\t\t}\n\n\t\t/** Makes Error with node coordinates. */\n\t\terror( message : string , Class = Error ) {\n\t\t\treturn this.span.error( `${ message }\\n${ this.clone([]) }` , Class )\n\t\t}\n\n\t}\n\n\texport class $mol_tree2_empty extends $mol_tree2 {\n\t\tconstructor() {\n\t\t\tsuper( '' , '' , [] , $mol_span.unknown )\n\t\t}\n\t}\n\t\n}\n","namespace $ {\n\n\t/** Syntax error with cordinates and source line snippet. */\n\texport class $mol_error_syntax extends SyntaxError {\n\t\tconstructor (\n\t\t\tpublic reason: string,\n\t\t\tpublic line: string,\n\t\t\tpublic span: $mol_span,\n\t\t) {\n\t\t\tsuper(`${ reason }\\n${ span }\\n${ line.substring( 0 , span.col - 1 ).replace( /\\S/g, ' ' ) }${ ''.padEnd( span.length, '!' ) }\\n${ line }`)\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\t/** Parses tree format from string. */\n\texport function $mol_tree2_from_string(\n\t\tthis: $,\n\t\tstr: string,\n\t\turi = '?',\n\t) : $mol_tree2 {\n\n\t\tconst span = $mol_span.entire( uri, str )\n\n\t\tvar root = $mol_tree2.list( [], span )\n\t\tvar stack = [ root ]\n\n\t\tvar pos = 0, row = 0, min_indent = 0\n\t\t\n\t\twhile( str.length > pos ) {\n\n\t\t\tvar indent = 0\n\t\t\tvar line_start = pos\n\n\t\t\trow++\n\n\t\t\t// read indent\n\t\t\twhile( str.length > pos && str[ pos ] == '\\t' ) {\n\t\t\t\tindent++\n\t\t\t\tpos++\n\t\t\t}\n\n\t\t\tif( ! root.kids.length ) {\n\t\t\t\tmin_indent = indent\n\t\t\t}\n\n\t\t\tindent -= min_indent\n\n\t\t\t// invalid tab size\n\t\t\tif( indent < 0 || indent >= stack.length ) {\n\n\t\t\t\tconst sp = span.span( row, 1, pos - line_start )\n\n\t\t\t\t// skip error line\n\t\t\t\twhile( str.length > pos && str[ pos ] != '\\n' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\n\t\t\t\tif( indent < 0 ) {\n\t\t\t\t\tif( str.length > pos ) {\n\t\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t\t`Too few tabs`,\n\t\t\t\t\t\t\tstr.substring( line_start, pos ),\n\t\t\t\t\t\t\tsp,\n\t\t\t\t\t\t) )\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t`Too many tabs`,\n\t\t\t\t\t\tstr.substring( line_start, pos ),\n\t\t\t\t\t\tsp,\n\t\t\t\t\t) )\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tstack.length = indent + 1\n\t\t\tvar parent = stack[ indent ]\n\n\t\t\t// parse types\n\t\t\twhile( str.length > pos && str[ pos ] != '\\\\' && str[ pos ] != '\\n' ) {\n\n\t\t\t\t// type can not contain space and tab\n\t\t\t\tvar error_start = pos\n\t\t\t\twhile( str.length > pos && ( str[ pos ] == ' ' || str[ pos ] == '\\t' ) ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\n\t\t\t\tif( pos > error_start ) {\n\t\t\t\t\tlet line_end = str.indexOf( '\\n' , pos )\n\t\t\t\t\tif( line_end === -1 ) line_end = str.length\n\t\t\t\t\tconst sp = span.span( row, error_start - line_start + 1, pos - error_start )\n\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t`Wrong nodes separator`,\n\t\t\t\t\t\tstr.substring( line_start, line_end ),\n\t\t\t\t\t\tsp,\n\t\t\t\t\t) )\n\t\t\t\t}\n\n\t\t\t\t// read type\n\t\t\t\tvar type_start = pos\n\t\t\t\twhile( \n\t\t\t\t\tstr.length > pos && \n\t\t\t\t\tstr[ pos ] != '\\\\' && \n\t\t\t\t\tstr[ pos ] != ' ' && \n\t\t\t\t\tstr[ pos ] != '\\t' && \n\t\t\t\t\tstr[ pos ] != '\\n'\n\t\t\t\t) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t\tif( pos > type_start ) {\n\t\t\t\t\tlet next = new $mol_tree2(\n\t\t\t\t\t\tstr.slice( type_start , pos ),\n\t\t\t\t\t\t'',\n\t\t\t\t\t\t[],\n\t\t\t\t\t\tspan.span( row, type_start - line_start + 1, pos - type_start ),\n\t\t\t\t\t)\n\t\t\t\t\tconst parent_kids = parent.kids as $mol_tree2[]\n\t\t\t\t\tparent_kids.push( next )\n\t\t\t\t\tparent = next\n\t\t\t\t}\n\n\t\t\t\t// read one space if exists\n\t\t\t\tif( str.length > pos && str[ pos ] == ' ' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// read data\n\t\t\tif( str.length > pos && str[ pos ] == '\\\\' ) {\n\t\t\t\tvar data_start = pos\n\t\t\t\twhile( str.length > pos && str[ pos ] != '\\n' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t\tlet next = new $mol_tree2(\n\t\t\t\t\t'',\n\t\t\t\t\tstr.slice( data_start + 1 , pos ),\n\t\t\t\t\t[],\n\t\t\t\t\tspan.span( row, data_start - line_start + 2, pos - data_start - 1 ),\n\t\t\t\t)\n\t\t\t\tconst parent_kids = parent.kids as $mol_tree2[]\n\t\t\t\tparent_kids.push( next )\n\t\t\t\tparent = next\n\t\t\t}\n\n\t\t\t// now must be end of text\n\t\t\tif( str.length === pos && stack.length > 0 ) {\n\t\t\t\tconst sp = span.span( row, pos - line_start + 1, 1 )\n\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t`Unexpected EOF, LF required`,\n\t\t\t\t\tstr.substring( line_start, str.length ),\n\t\t\t\t\tsp,\n\t\t\t\t) )\n\t\t\t}\n\n\t\t\tstack.push( parent )\n\t\t\tpos++\n\t\t}\n\n\t\treturn root\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_array_chunks< Item >(\n\t\tarray : readonly Item[],\n\t\trule: number | ( ( item: Item, index: number )=> boolean ),\n\t) {\n\t\t\n\t\tconst br = typeof rule === 'number' ? ( _: Item, i: number )=> i % rule === 0 : rule\n\n\t\tlet chunk = [] as Item[]\n\t\tconst chunks = []\n\n\t\tfor( let i = 0; i < array.length; ++i ) {\n\n\t\t\tconst item = array[i]\n\t\t\t\n\t\t\tif( br( item, i ) ) {\n\t\t\t\tif( chunk.length ) chunks.push( chunk )\n\t\t\t\tchunk = []\n\t\t\t}\n\n\t\t\tchunk.push( item )\n\t\t\t\n\t\t}\n\n\t\tif( chunk.length ) chunks.push( chunk )\n\n\t\treturn chunks\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_tree2_from_json( json: any, span = $mol_span.unknown ): $mol_tree2 {\n\n\t\tif( typeof json === 'boolean' || typeof json === 'number' || json === null ) {\n\t\t\treturn new $mol_tree2( String( json ) , '' , [] , span )\n\t\t}\n\t\t\n\t\tif( typeof json === 'string' ) {\n\t\t\treturn $mol_tree2.data( json , [], span )\n\t\t}\n\n\t\tif( typeof json.toJSON === 'function' ) {\n\t\t\treturn $mol_tree2_from_json( json.toJSON() )\n\t\t}\n\n\t\tif( Array.isArray( json ) ) {\n\t\t\tconst sub = json.map( json => $mol_tree2_from_json( json , span ) )\n\t\t\treturn new $mol_tree2( '/' , '', sub, span )\n\t\t}\n\t\t\n\t\tif( ArrayBuffer.isView( json ) ) {\n\t\t\tconst buf = new Uint8Array( json.buffer, json.byteOffset, json.byteLength )\n\t\t\tconst codes = [ ... buf ].map( b => b.toString(16).toUpperCase().padStart( 2, '0' ) )\n\t\t\tconst str = $mol_array_chunks( codes, 8 ).map( c => c.join(' ') ).join( '\\n' )\n\t\t\treturn $mol_tree2.data( str , [], span )\n\t\t}\n\t\t\n\t\tif( json instanceof Date ) {\n\t\t\treturn new $mol_tree2( '', json.toISOString() , [] , span )\n\t\t}\n\n\t\tif( json.toString !== Object.prototype.toString ) {\n\t\t\treturn $mol_tree2.data( json.toString() , [], span )\n\t\t}\n\n\t\tif( json instanceof Error ) {\n\t\t\tconst { name , message , stack } = json\n\t\t\tjson = { ... json, name, message, stack }\n\t\t}\n\n\t\tconst sub = [] as $mol_tree2[]\n\t\t\n\t\tfor( var key in json ) {\n\n\t\t\tconst val = json[ key ]\n\n\t\t\tif( val === undefined ) continue\n\n\t\t\tconst subsub = $mol_tree2_from_json( val, span )\n\t\t\t\n\t\t\tif( /^[^\\n\\t\\\\ ]+$/.test( key ) ) {\n\t\t\t\tsub.push( new $mol_tree2( key, '', [ subsub ], span ) )\n\t\t\t} else {\n\t\t\t\tsub.push( $mol_tree2.data( key, [ subsub ], span ) )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\treturn new $mol_tree2( '*' , '', sub , span )\n\t\t\t\n\t}\n\n}\n","namespace $ {\n\t\n\t/** Module for working with terminal. Text coloring when output in terminal */\n\texport class $mol_term_color {\n\t\t\n\t\tstatic reset = this.ansi( 0, 0 )\n\t\tstatic bold = this.ansi( 1, 22 )\n\t\tstatic italic = this.ansi( 3, 23 )\n\t\tstatic underline = this.ansi( 4, 24 )\n\t\tstatic inverse = this.ansi( 7, 27 )\n\t\tstatic hidden = this.ansi( 8, 28 )\n\t\tstatic strike = this.ansi( 9, 29 )\n\t\t\n\t\tstatic gray = this.ansi( 90, 39 )\n\t\tstatic red = this.ansi( 91, 39 )\n\t\tstatic green = this.ansi( 92, 39 )\n\t\tstatic yellow = this.ansi( 93, 39 )\n\t\tstatic blue = this.ansi( 94, 39 )\n\t\tstatic magenta = this.ansi( 95, 39 )\n\t\tstatic cyan = this.ansi( 96, 39 )\n\t\t\n\t\tstatic Gray = ( str: string )=> this.inverse( this.gray( str ) )\n\t\tstatic Red = ( str: string )=> this.inverse( this.red( str ) )\n\t\tstatic Green = ( str: string )=> this.inverse( this.green( str ) )\n\t\tstatic Yellow = ( str: string )=> this.inverse( this.yellow( str ) )\n\t\tstatic Blue = ( str: string )=> this.inverse( this.blue( str ) )\n\t\tstatic Magenta = ( str: string )=> this.inverse( this.magenta( str ) )\n\t\tstatic Cyan = ( str: string )=> this.inverse( this.cyan( str ) )\n\t\t\n\t\tstatic ansi( open: number, close: number ) {\n\t\n\t\t\tif( typeof process === 'undefined' ) return String\n\t\t\tif( !process.stdout.isTTY ) return String\n\t\t\n\t\t\tconst prefix = `\\x1b[${open}m`\n\t\t\tconst postfix = `\\x1b[${close}m`\n\t\t\t\n\t\t\tconst suffix_regexp = new RegExp( postfix.replace( '[', '\\\\[' ), 'g' )\n\t\t\n\t\t\treturn function colorer( str: string ) {\n\t\t\n\t\t\t\tstr = String( str )\n\t\t\t\tif( str === '' ) return str\n\t\t\n\t\t\t\tconst suffix = str.replace( suffix_regexp, prefix )\n\t\t\t\treturn prefix + suffix + postfix\n\t\t\n\t\t\t}\n\t\t\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\texport function $mol_log3_node_make(\n\t\tlevel : keyof Console ,\n\t\toutput : 'stdout' | 'stderr',\n\t\ttype : string ,\n\t\tcolor: ( str: string )=> string ,\n\t) {\n\n\t\treturn function $mol_log3_logger(\n\t\t\tthis : $ ,\n\t\t\tevent : $mol_log3_event<{}> ,\n\t\t) {\n\n\t\t\tif( !event.time ) event = { ... event, time : new Date().toISOString() }\n\n\t\t\tlet tree = this.$mol_tree2_from_json( event )\n\t\t\ttree = tree.struct( type, tree.kids )\n\t\t\t\n\t\t\tlet str = color( tree.toString() )\n\t\t\t;( this.console[ level ] as any )( str )\n\t\n\t\t\tconst self = this\n\t\t\treturn ()=> self.console.groupEnd()\n\n\t\t}\n\n\t}\n\n\t$.$mol_log3_come = $mol_log3_node_make( 'info' , 'stdout' , 'come' , $mol_term_color.blue )\n\t$.$mol_log3_done = $mol_log3_node_make( 'info' , 'stdout' , 'done' , $mol_term_color.green )\n\t$.$mol_log3_fail = $mol_log3_node_make( 'error' , 'stderr' , 'fail' , $mol_term_color.red )\n\t$.$mol_log3_warn = $mol_log3_node_make( 'warn' , 'stderr' , 'warn' , $mol_term_color.yellow )\n\t$.$mol_log3_rise = $mol_log3_node_make( 'log' , 'stdout' , 'rise' , $mol_term_color.magenta )\n\t$.$mol_log3_area = $mol_log3_node_make( 'log' , 'stdout' , 'area' , $mol_term_color.cyan )\n\n}\n","namespace $ {\n\t\n\t/** One-shot fiber */\n\texport class $mol_wire_task<\n\t\tHost,\n\t\tArgs extends readonly unknown[],\n\t\tResult,\n\t> extends $mol_wire_fiber< Host, Args, Result > {\n\t\t\n\t\tstatic getter<\n\t\t\tHost,\n\t\t\tArgs extends readonly unknown[],\n\t\t\tResult,\n\t\t>(\n\t\t\ttask: ( this : Host , ... args : Args )=> Result,\n\t\t): ( host: Host, args: Args )=> $mol_wire_task< Host, Args, Result > {\n\t\t\t\n\t\t\treturn function $mol_wire_task_get( host: Host, args: Args ) {\n\t\t\t\t\n\t\t\t\tconst sub = $mol_wire_auto()\n\t\t\t\tconst existen = sub?.track_next() as $mol_wire_task< Host, Args, Result > | undefined\n\t\t\t\tlet cause = ''\n\t\t\t\t\n\t\t\t\treuse: if( existen ) {\n\t\t\t\t\t\n\t\t\t\t\tif( !existen.temp ) break reuse\n\t\t\t\t\t\n\t\t\t\t\tif( existen.host !== host ) { cause = 'host'; break reuse }\n\t\t\t\t\tif( existen.task !== task ) { cause = 'task'; break reuse }\n\t\t\t\t\tif( !$mol_compare_deep( existen.args, args ) ) { cause = 'args'; break reuse }\n\t\t\t\t\t\n\t\t\t\t\treturn existen\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst key = ( (host as any)?.[ Symbol.toStringTag ] ?? host ) + ( '.' + task.name + '<#>' )\n\t\t\t\tconst next = new $mol_wire_task( key, task, host, args )\n\t\t\t\t\n\t\t\t\t// Disabled because non-idempotency is required for try-catch\n\t\t\t\tif( existen?.temp ) {\n\t\t\t\t\t$$.$mol_log3_warn({\n\t\t\t\t\t\tplace: '$mol_wire_task',\n\t\t\t\t\t\tmessage: `Different ${cause} on restart`,\n\t\t\t\t\t\tsub,\n\t\t\t\t\t\tprev: existen,\n\t\t\t\t\t\tnext,\n\t\t\t\t\t\thint: 'Maybe required additional memoization',\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn next\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tget temp() {\n\t\t\treturn true\n\t\t}\n\t\t\n\t\tcomplete() {\n\t\t\tif( $mol_promise_like( this.cache ) ) return\n\t\t\tthis.destructor()\n\t\t}\n\t\t\n\t\tput( next: Result | Error | Promise< Result | Error > ) {\n\t\t\t\n\t\t\tconst prev = this.cache\n\t\t\tthis.cache = next\n\t\t\t\n\t\t\tif( $mol_promise_like( next ) ) {\n\t\t\t\t\n\t\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\tif( next !== prev ) this.emit()\n\t\t\t\t\n\t\t\t\tif( $mol_owning_catch( this, next ) ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t(next as any)[ Symbol.toStringTag ] = (this as any)[ Symbol.toStringTag ]\n\t\t\t\t\t} catch { // Promises throw in strict mode\n\t\t\t\t\t\tObject.defineProperty( next, Symbol.toStringTag, { value: (this as any)[ Symbol.toStringTag ] } )\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn next\n\t\t\t}\n\t\t\t\n\t\t\tthis.cursor = $mol_wire_cursor.final\n\t\t\t\n\t\t\tif( this.sub_empty ) this.destructor()\n\t\t\telse if( next !== prev ) this.emit()\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tdestructor() {\n\t\t\tsuper.destructor()\n\t\t\tthis.cursor = $mol_wire_cursor.final\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\tconst TypedArray = Object.getPrototypeOf( Uint8Array )\n\n\t/** Returns string key for any value. */\n\texport function $mol_key< Value >( value : Value ) : string {\n\t\t\n\t\tprimitives: {\n\t\t\tif( typeof value === 'bigint' ) return value.toString() + 'n'\n\t\t\tif( typeof value === 'symbol' ) return `Symbol(${ value.description! })`\n\t\t\tif( !value ) return JSON.stringify( value ) // 0, null, \"\"\n\t\t\tif( typeof value !== 'object' && typeof value !== 'function' ) return JSON.stringify( value ) // boolean, number, string\n\t\t}\n\t\t\n\t\tcaching: {\n\t\t\tlet key = $mol_key_store.get( value )\n\t\t\tif( key ) return key\n\t\t}\n\t\t\n\t\tobjects: {\n\t\t\t\n\t\t\tif( value instanceof TypedArray ) {\n\t\t\t\treturn `${ ( value as any )[ Symbol.toStringTag ] }([${ [ ... value as number[] ].map( v => $mol_key( v ) ) }])`\n\t\t\t}\n\t\t\tif( Array.isArray( value ) ) return `[${ value.map( v => $mol_key( v ) ) }]`\n\t\t\tif( value instanceof RegExp ) return value.toString()\n\t\t\tif( value instanceof Date ) return `Date(${ value.valueOf() })`\n\t\t\t\n\t\t}\n\t\t\n\t\tstructures: {\n\t\t\tconst proto = Reflect.getPrototypeOf( value )\n\t\t\tif( !proto || !Reflect.getPrototypeOf( proto ) ) {\n\t\t\t\treturn `{${ Object.entries( value ).map( ([ k, v ]) => JSON.stringify( k ) + ':' + $mol_key( v ) ) }}`\n\t\t\t}\n\t\t}\n\t\t\n\t\thandlers: {\n\t\t\tif( $mol_key_handle in value ) {\n\t\t\t\treturn ( value[ $mol_key_handle ] as any )()\n\t\t\t}\n\t\t}\n\t\t\n\t\tcontainers: {\n\t\t\tconst key = JSON.stringify( '#' + $mol_guid() )\n\t\t\t$mol_key_store.set( value, key )\n\t\t\treturn key\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\n\texport class $mol_after_timeout extends $mol_object2 {\n\n\t\tid : any\n\n\t\tconstructor(\n\t\t\tpublic delay : number ,\n\t\t\tpublic task : ()=> void ,\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis.id = setTimeout( task , delay )\n\t\t}\n\n\t\tdestructor() {\n\t\t\tclearTimeout( this.id )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\n\texport class $mol_after_frame extends $mol_after_timeout {\n\n\t\tconstructor(\n\t\t\tpublic task : ()=> void ,\n\t\t) {\n\t\t\tsuper( 16 , task )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/**\n\t * Decorates method to fiber to ensure it is executed only once inside other fiber.\n\t */\n\texport function $mol_wire_method<\n\t\tHost extends object,\n\t\tArgs extends readonly any[],\n\t>(\n\t\thost : Host,\n\t\tfield : PropertyKey,\n\t\tdescr? : TypedPropertyDescriptor< ( ... args: Args )=> any >,\n\t) {\n\t\t\n\t\tif( !descr ) descr = Reflect.getOwnPropertyDescriptor( host , field ) as any\n\t\tconst orig = descr?.value! ?? (host as any)[ field ]\n\t\t\n\t\tconst sup = Reflect.getPrototypeOf( host )!\t\n\t\tif( typeof (sup as any)[ field ] === 'function' ) {\n\t\t\tObject.defineProperty( orig , 'name' , { value : (sup as any)[ field ].name } )\n\t\t}\n\t\t\n\t\tconst temp = $mol_wire_task.getter( orig )\n\t\tconst value = function( this: Host, ... args: Args ) {\n\t\t\tconst fiber = temp( this ?? null as any, args )\n\t\t\treturn fiber.sync()\n\t\t}\n\t\t\n\t\tObject.defineProperty( value , 'name' , { value : orig.name + ' ' } )\n\t\t\n\t\tObject.assign( value, { orig } )\n\t\tconst descr2 = { ... descr, value }\n\t\tReflect.defineProperty( host, field, descr2 )\n\t\t\n\t\treturn descr2\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\tconst catched = new WeakSet< any >()\n\n\texport function $mol_fail_catch( error: unknown ) {\n\t\t\n\t\tif( typeof error !== 'object' ) return false\n\t\tif( $mol_promise_like( error ) ) $mol_fail_hidden( error )\n\t\tif( catched.has( error ) ) return false\n\t\t\n\t\tcatched.add( error )\n\t\treturn true\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport function $mol_try< Result >( handler : ()=> Result ) : Result|Error {\n\t\ttry {\n\t\t\treturn handler()\n\t\t} catch( error: any ) {\n\t\t\tconsole.error( error )\n\t\t\treturn error\n\t\t}\n\t}\n} \n","namespace $ {\n\t\n\texport function $mol_fail_log( error: unknown ) {\n\t\t\n\t\tif( $mol_promise_like( error ) ) return false\n\t\tif( !$mol_fail_catch( error ) ) return false\n\t\t\n\t\t$mol_try( ()=> { $mol_fail_hidden( error ) } )\n\t\t\n\t\treturn true\n\t\t\n\t}\n\n}\n","namespace $ {\n\n\t/** Long-living fiber. */\n\texport class $mol_wire_atom<\n\t\tHost,\n\t\tArgs extends readonly unknown[],\n\t\tResult,\n\t> extends $mol_wire_fiber< Host, Args, Result > {\n\n\t\tstatic solo<\n\t\t\tHost,\n\t\t\tArgs extends readonly unknown[],\n\t\t\tResult,\n\t\t>(\n\t\t\thost: Host,\n\t\t\ttask: ( this: Host, ... args: Args )=> Result,\n\t\t): $mol_wire_atom< Host, Args, Result > {\n\t\t\t\n\t\t\tconst field = task.name + '()'\n\t\t\t\n\t\t\tconst existen = Object.getOwnPropertyDescriptor( host ?? task, field )?.value\n\t\t\tif( existen ) return existen\n\t\t\t\n\t\t\tconst prefix = (host as any)?.[ Symbol.toStringTag ] ?? ( host instanceof Function ? $$.$mol_func_name( host ) : host )\n\t\t\tconst key = prefix + ( '.' + task.name + '<>' )\n\t\t\t\n\t\t\tconst fiber = new $mol_wire_atom( key, task, host, [] as any as Args )\n\t\t\t;( host as any ?? task )[ field ] = fiber\n\t\t\t\n\t\t\treturn fiber\n\t\t}\n\t\t\n\t\tstatic plex<\n\t\t\tHost,\n\t\t\tArgs extends readonly unknown[],\n\t\t\tResult,\n\t\t>(\n\t\t\thost: Host,\n\t\t\ttask: ( this: Host , ... args: Args )=> Result,\n\t\t\tkey: Args[0],\n\t\t): $mol_wire_atom< Host, Args, Result > {\n\t\t\t\n\t\t\tconst field = task.name + '()'\n\t\t\tlet dict = Object.getOwnPropertyDescriptor( host ?? task, field )?.value\n\t\t\tconst prefix = (host as any)?.[ Symbol.toStringTag ] ?? ( host instanceof Function ? $$.$mol_func_name( host ) : host )\n\t\t\tconst key_str = $mol_key( key )\n\t\t\t\n\t\t\tif( dict ) {\n\t\t\t\tconst existen = dict.get( key_str )\n\t\t\t\tif( existen ) return existen\n\t\t\t} else {\n\t\t\t\tdict = ( host as any ?? task )[ field ] = new Map<any,any>()\n\t\t\t}\n\t\t\t\n\t\t\tconst id = prefix + ( '.' + task.name ) + ( '<' + key_str.replace( /^\"|\"$/g, \"'\" ) + '>' )\n\t\t\tconst fiber = new $mol_wire_atom( id, task, host, [ key ] as any as Args )\n\t\t\tdict.set( key_str, fiber )\n\t\t\t\n\t\t\treturn fiber\n\t\t}\n\t\t\n\t\tstatic watching = new Set< $mol_wire_atom< any, any, any > >()\n\t\tstatic watcher = null as $mol_after_frame | null\n\t\t\n\t\tstatic watch() {\n\t\t\n\t\t\t$mol_wire_atom.watcher = new $mol_after_frame( $mol_wire_atom.watch )\n\t\t\t\n\t\t\tfor( const atom of $mol_wire_atom.watching ) {\n\t\t\t\t\n\t\t\t\tif( atom.cursor === $mol_wire_cursor.final ) {\n\t\t\t\t\t$mol_wire_atom.watching.delete( atom )\n\t\t\t\t} else {\n\t\t\t\t\tatom.cursor = $mol_wire_cursor.stale\n\t\t\t\t\tatom.fresh()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\twatch() {\n\t\t\t\n\t\t\tif( !$mol_wire_atom.watcher ) {\n\t\t\t\t$mol_wire_atom.watcher = new $mol_after_frame( $mol_wire_atom.watch )\n\t\t\t}\n\t\t\t\n\t\t\t$mol_wire_atom.watching.add( this )\n\t\t\t\n\t\t}\n\t\t\n\t\t/**\n\t\t * Update atom value through another temp fiber.\n\t\t */\n\t\t@ $mol_wire_method\n\t\tresync( args: Args ) {\n\t\t\t\n\t\t\t// enforce pulling tasks abort\n\t\t\tfor(\n\t\t\t\tlet cursor = this.pub_from;\n\t\t\t\tcursor < this.sub_from;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\tif( pub && pub instanceof $mol_wire_task ) {\n\t\t\t\t\tpub.destructor()\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn this.put( this.task.call( this.host!, ... args ) )\n\t\t}\n\t\t\n\t\t@ $mol_wire_method\n\t\tonce() {\n\t\t\treturn this.sync()\n\t\t}\n\t\t\n\t\tchannel() {\n\t\t\treturn Object.assign( ( next?: $mol_type_foot< Args > )=> {\n\t\t\t\t\t\n\t\t\t\tif( next !== undefined ) return this.resync( [ ... this.args, next ] as any ) as never\n\t\t\t\tif( !$mol_wire_fiber.warm ) return this.result() as never\n\t\t\t\t\n\t\t\t\tif( $mol_wire_auto()?.temp ) {\n\t\t\t\t\treturn this.once()\n\t\t\t\t} else {\n\t\t\t\t\treturn this.sync()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}, { atom: this as $mol_wire_atom< Host, Args, Result > } )\n\t\t}\n\t\t\n\t\tdestructor() {\n\t\t\t\n\t\t\tsuper.destructor()\n\t\t\t\n\t\t\tif( this.pub_from === 0 ) {\n\t\t\t\t;( this.host as any ?? this.task )[ this.field() ] = null\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tconst key = $mol_key( this.args[0] )\n\t\t\t\tconst map = ( this.host as any ?? this.task )[ this.field() ]\n\t\t\t\t\n\t\t\t\tif( !map.has( key ) ) this.$.$mol_log3_warn({\n\t\t\t\t\tplace: this,\n\t\t\t\t\tmessage: 'Absent key on destruction',\n\t\t\t\t\thint: 'Check for $mol_key(key) is not changed',\n\t\t\t\t})\n\t\t\t\t\n\t\t\t\tmap.delete( key )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tput( next: Result | Error | Promise< Result | Error > ) {\n\t\t\t\n\t\t\tconst prev = this.cache\n\t\t\t\n\t\t\tupdate: if( next !== prev ) {\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tif( $mol_compare_deep( prev, next ) ) break update\n\t\t\t\t} catch( error: any ) {\n\t\t\t\t\t$mol_fail_log( error )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_owning_check( this, prev ) ) {\n\t\t\t\t\tprev.destructor()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_owning_catch( this, next ) ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t(next as any)[ Symbol.toStringTag ] = (this as any)[ Symbol.toStringTag ]\n\t\t\t\t\t} catch { // Promises throw in strict mode\n\t\t\t\t\t\tObject.defineProperty( next, Symbol.toStringTag, { value: (this as any)[ Symbol.toStringTag ] } )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( !this.sub_empty ) this.emit()\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tthis.cache = next\n\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\n\t\t\tif( $mol_promise_like( next ) ) return next\n\t\t\t\n\t\t\tthis.complete_pubs()\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\t\n\t/** Run code without state changes */\n\texport function $mol_wire_probe< Value >(\n\t\ttask : ()=> Value, def?: Value\n\t) : Value | undefined {\n\t\t\n\t\tconst warm = $mol_wire_fiber.warm\n\t\t\n\t\ttry {\n\t\t\t$mol_wire_fiber.warm = false\n\t\t\tconst res = task()\n\t\t\tif( res === undefined ) return def\n\t\t\treturn res\n\t\t} finally {\n\t\t\t$mol_wire_fiber.warm = warm\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/**\n\t * Disable reaping of current subscriber\n\t */\n\texport function $mol_wire_solid() {\n\t\tlet current = $mol_wire_auto() as $mol_wire_fiber< any, any, any >\n\t\tif( current!.temp ) current = current!.host\n\t\tif( current!.reap !== nothing ) {\n\t\t\tcurrent?.sub_on( sub, sub.data.length )\n\t\t}\n\t\tcurrent!.reap = nothing\n\t}\n\t\n\tconst nothing = ()=> {}\n\tconst sub = new $mol_wire_pub_sub\n\t\n}\n","namespace $ {\n\t\n\t/**\n\t * Real-time refresh current atom.\n\t * Don't use if possible. May reduce performance.\n\t */\n\texport function $mol_wire_watch() {\n\t\tconst atom = $mol_wire_auto()\n\t\tif( atom instanceof $mol_wire_atom ) {\n\t\t\tatom.watch()\n\t\t} else {\n\t\t\t$mol_fail( new Error( 'Atom is required for watching' ) )\n\t\t}\n\t}\n\t\n}\n","namespace $ {\n\tconst factories = new WeakMap<Function, Function>()\n\n\tfunction factory<Args extends unknown[], Result>(\n\t\tval: new (...args: Args) => Result\n\t) {\n\t\tlet make = factories.get(val) as null | ((...args: Args) => Result)\n\n\t\tif ( make ) return make\n\n\t\tmake = $mol_func_name_from((...args: Args) => new val(...args), val)\n\t\tfactories.set(val, make)\n\n\t\treturn make\n\t}\n\n\tconst getters = new WeakMap<Object, Record<string | symbol, (next?: unknown) => unknown>>()\n\n\tfunction get_prop(\n\t\thost: Object,\n\t\tfield: string | symbol,\n\t) {\n\t\tlet props = getters.get(host)\n\t\tlet get_val = props?.[field]\n\n\t\tif ( get_val ) return get_val\n\n\t\tget_val = (next?: unknown) => {\n\t\t\tif (next !== undefined) host[field as keyof typeof host] = next as any\n\n\t\t\treturn host[field as keyof typeof host]\n\t\t}\n\n\t\tObject.defineProperty( get_val , 'name' , { value : field } )\n\n\t\tif (! props) {\n\t\t\tprops = {}\n\t\t\tgetters.set(host, props)\n\t\t}\n\t\tprops[field] = get_val\n\n\t\treturn get_val\n\t}\n\n\t/**\n\t * Convert asynchronous (promise-based) API to synchronous by wrapping function and method calls in a fiber.\n\t * @see https://mol.hyoo.ru/#!section=docs/=1fcpsq_1wh0h2\n\t */\n\texport function $mol_wire_sync< Host extends object >( obj: Host ) {\n\t\treturn new Proxy( obj, {\n\t\t\t\n\t\t\tget( obj, field ) {\n\t\t\t\t\n\t\t\t\tlet val = (obj as any)[ field ]\n\t\t\t\tconst temp = $mol_wire_task.getter(typeof val === 'function' ? val : get_prop(obj, field))\n\n\t\t\t\tif (typeof val !== 'function') return temp( obj, [] ).sync()\n\n\t\t\t\treturn function $mol_wire_sync( this: Host, ... args: unknown[] ) {\n\t\t\t\t\tconst fiber = temp( obj, args )\n\t\t\t\t\treturn fiber.sync()\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tset( obj, field, next) {\n\t\t\t\tconst temp = $mol_wire_task.getter(get_prop(obj, field))\n\t\t\t\ttemp( obj, [ next ] ).sync()\n\n\t\t\t\treturn true\n\t\t\t},\n\n\t\t\tconstruct(obj, args) {\n\t\t\t\tconst temp = $mol_wire_task.getter(factory(obj as (new ( ... args: unknown[] )=> unknown)))\n\t\t\t\treturn temp( obj, args ).sync() as object\n\t\t\t},\n\n\t\t\tapply( obj, self, args ) {\n\t\t\t\tconst temp = $mol_wire_task.getter(obj as ( ... args: any[] )=> any)\n\t\t\t\treturn temp(self, args).sync()\n\t\t\t},\n\t\t\t\n\t\t} ) as unknown as ObjectOrFunctionResultAwaited<Host>\n\t}\n\n\ttype FunctionResultAwaited<Some> = Some extends (...args: infer Args) => infer Res\n\t\t? (...args: Args) => Awaited<Res>\n\t\t: Some\n\n\ttype ConstructorResultAwaited<Some> = Some extends new (...args: infer Args) => infer Res\n\t\t? new (...args: Args) => Res\n\t\t: {}\n\n\ttype MethodsResultAwaited<Host extends Object> = {\n\t\t[K in keyof Host]: FunctionResultAwaited<Host[K]>\n\t}\n\n\ttype ObjectOrFunctionResultAwaited<Some> = (\n\t\tSome extends (...args: any) => unknown ? FunctionResultAwaited<Some> : {}\n\t) & ( Some extends Object ? MethodsResultAwaited<Some> & ConstructorResultAwaited<Some> : Some )\n\n}\n","namespace $ {\n\t\n\t/** Convert a pseudo-synchronous (Suspense API) API to an explicit asynchronous one (for integrating with external systems). */\n\texport function $mol_wire_async< Host extends object >( obj: Host ) {\n\t\t\n\t\tlet fiber: $mol_wire_fiber< any, any, any >\n\t\tconst temp = $mol_wire_task.getter( obj as ( ... args: any[] )=> any )\n\t\t\n\t\treturn new Proxy( obj, {\n\t\t\t\n\t\t\tget( obj, field ) {\n\t\t\t\t\n\t\t\t\tconst val = (obj as any)[ field ]\n\t\t\t\tif( typeof val !== 'function' ) return val\n\t\t\t\t\n\t\t\t\tlet fiber: $mol_wire_fiber< any, any, any >\n\t\t\t\tconst temp = $mol_wire_task.getter( val ) \n\t\t\t\t\n\t\t\t\treturn function $mol_wire_async( this: Host, ... args: any[] ) {\n\t\t\t\t\tfiber?.destructor()\n\t\t\t\t\tfiber = temp( obj, args )\n\t\t\t\t\treturn fiber.async()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t},\n\t\t\t\n\t\t\tapply( obj, self, args ) {\n\t\t\t\tfiber?.destructor()\n\t\t\t\tfiber = temp( self, args )\n\t\t\t\treturn fiber.async()\n\t\t\t},\n\t\t\t\n\t\t} ) as unknown as ObjectOrFunctionResultPromisify<Host>\n\t\t\n\t}\n\n\ttype FunctionResultPromisify<Some> = Some extends (...args: infer Args) => infer Res\n\t\t? Res extends PromiseLike<unknown> ? Some : (...args: Args) => Promise<Res>\n\t\t: Some\n\n\ttype MethodsResultPromisify<Host extends Object> = {\n\t\t[K in keyof Host]: FunctionResultPromisify<Host[K]>\n\t}\n\n\ttype ObjectOrFunctionResultPromisify<Some> = (\n\t\tSome extends (...args: any) => unknown ? FunctionResultPromisify<Some> : {}\n\t) & ( Some extends Object ? MethodsResultPromisify<Some> : Some )\n\n}\n","namespace $ {\n\t\n\t/** Starts subtasks concurrently instead of serial. */\n\texport function $mol_wire_race<\n\t\tTasks extends ( ( ... args: any )=> any )[]\n\t>( ... tasks: Tasks ): {\n\t\t[ index in keyof Tasks ]: ReturnType< Tasks[ index ] > \n\t} {\n\t\t\n\t\tconst results = tasks.map( task => {\n\t\t\t\n\t\t\ttry {\n\t\t\t\treturn task()\n\t\t\t} catch( error ) {\n\t\t\t\treturn error\n\t\t\t}\n\t\t\t\n\t\t} )\n\t\t\n\t\tconst promises = results.filter( res => $mol_promise_like( res ) )\n\t\tif( promises.length ) $mol_fail( Promise.race( promises ) )\n\t\t\n\t\tconst error = results.find( res => res instanceof Error )\n\t\tif( error ) $mol_fail( error )\n\t\t\n\t\treturn results as any\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/** Decorates solo object channel to [mol_wire_atom](../atom/atom.ts). */\n\texport function $mol_wire_solo< Args extends any[] >(\n\t\thost: object,\n\t\tfield: string,\n\t\tdescr?: TypedPropertyDescriptor< ( ... args: Args )=> any >\n\t) {\n\n\t\tif( !descr ) descr = Reflect.getOwnPropertyDescriptor( host , field )\n\t\tconst orig = descr?.value! ?? (host as any)[ field ]\n\t\t\n\t\tconst sup = Reflect.getPrototypeOf( host )!\n\t\tif( typeof (sup as any)[ field ] === 'function' ) {\n\t\t\tObject.defineProperty( orig , 'name' , { value : (sup as any)[ field ].name } )\n\t\t}\n\t\t\n\t\tconst descr2 = {\n\t\t\t... descr,\n\t\t\tvalue: function( this: typeof host, ... args: Args ){\n\t\t\t\n\t\t\t\tlet atom = $mol_wire_atom.solo( this, orig )\n\t\t\t\t\n\t\t\t\tif(( args.length === 0 )||( args[0] === undefined )) {\n\t\t\t\t\t\n\t\t\t\t\tif( !$mol_wire_fiber.warm ) return atom.result()\n\t\t\t\t\t\n\t\t\t\t\tif( $mol_wire_auto()?.temp ) {\n\t\t\t\t\t\treturn atom.once()\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn atom.sync()\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn atom.resync( args )\t\n\t\t\t}\n\t\t}\n\t\t\n\t\tReflect.defineProperty( descr2.value , 'name' , { value : orig.name + ' ' } )\n\t\tReflect.defineProperty( descr2.value , 'length' , { value : orig.length } )\n\t\tObject.assign( descr2.value, { orig } )\n\t\t\n\t\tReflect.defineProperty( host, field, descr2 )\n\t\t\n\t\treturn descr2 as any as TypedPropertyDescriptor< ( ... args: First_optional< Args > )=> any >\n\t}\n\n\ttype First_optional< Args extends any[] > = Args extends []\n\t\t? []\n\t\t: [ Args[0] | undefined, ... $mol_type_tail< Args > ]\n\n}\n","namespace $ {\n\t\n\t/** Reactive memoizing multiplexed property decorator. */\n\texport function $mol_wire_plex< Args extends [ any, ... any[] ] >(\n\t\thost: object,\n\t\tfield: string,\n\t\tdescr?: TypedPropertyDescriptor< ( ... args: Args )=> any >\n\t) {\n\n\t\tif( !descr ) descr = Reflect.getOwnPropertyDescriptor( host , field )\n\t\tconst orig = descr?.value! ?? (host as any)[ field ]\n\t\t\n\t\tconst sup = Reflect.getPrototypeOf( host )!\n\t\tif( typeof (sup as any)[ field ] === 'function' ) {\n\t\t\tObject.defineProperty( orig , 'name' , { value : (sup as any)[ field ].name } )\n\t\t}\n\t\t\n\t\tconst descr2 = {\n\t\t\t... descr,\n\t\t\tvalue: function( this: typeof host, ... args: Args ) {\n\t\t\t\n\t\t\t\tlet atom = $mol_wire_atom.plex( this, orig, args[0] )\n\t\t\t\t\n\t\t\t\tif(( args.length === 1 )||( args[1] === undefined )) {\n\t\t\t\t\t\n\t\t\t\t\tif( !$mol_wire_fiber.warm ) return atom.result()\n\t\t\t\t\t\n\t\t\t\t\tif( $mol_wire_auto()?.temp ) {\n\t\t\t\t\t\treturn atom.once()\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn atom.sync()\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn atom.resync( args )\t\n\t\t\t}\n\t\t}\n\t\t\n\t\tReflect.defineProperty( descr2.value , 'name' , { value : orig.name + ' ' } )\n\t\tReflect.defineProperty( descr2.value , 'length' , { value : orig.length } )\n\t\tObject.assign( descr2.value, { orig } )\n\t\t\n\t\tReflect.defineProperty( host, field, descr2 )\n\t\t\n\t\treturn descr2\n\t}\n\t\n}\n","namespace $ { \n\t/**\n\t * Returns closure that returns constant value.\n\t * @example\n\t * const rnd = $mol_const( Math.random() )\n\t */\n\texport function $mol_const< Value >( value : Value ) {\n\t\tconst getter = <{ () : Value , '()' : Value }> ( () => value )\n\t\tgetter['()'] = value\n\t\t;(getter as any)[ Symbol.toStringTag ] = value\n\t\t;(getter as any )[ $mol_dev_format_head ] = ()=> $mol_dev_format_span( {} , '()=> ', $mol_dev_format_auto( value ) )\n\t\treturn getter\n\t}\n}\n","namespace $ {\n\t\n\t/** Incompatible with instance fields with initializators */\n\texport function $mol_wire_field<\n\t\tHost extends object ,\n\t\tField extends keyof Host ,\n\t\tValue extends Host[ Field ],\n\t>(\n\t\thost : Host ,\n\t\tfield : Field ,\n\t\tdescr? : TypedPropertyDescriptor< Value >\n\t): any {\n\n\t\tif( !descr ) descr = Reflect.getOwnPropertyDescriptor( host , field ) as any\n\t\t\n\t\tconst _get = descr?.get || $mol_const( descr?.value )\n\t\tconst _set = descr?.set || function( this : Host , next ) {\n\t\t\t$mol_wire_atom.solo( this, _get ).put( next )\n\t\t}\n\n\t\tconst sup = Reflect.getPrototypeOf( host )!\n\t\tconst sup_descr = Reflect.getOwnPropertyDescriptor( sup, field )\n\t\t\n\t\tObject.defineProperty( _get , 'name' , { value : sup_descr?.get?.name ?? field } )\n\t\tObject.defineProperty( _set , 'name' , { value : sup_descr?.set?.name ?? field } )\n\t\t\n\t\tfunction get( this: Host ) {\n\t\t\treturn $mol_wire_atom.solo( this, _get ).sync()\n\t\t}\n\t\t\n\t\tconst temp = $mol_wire_task.getter( _set )\n\t\tfunction set( this: Host, next: Value ) {\n\t\t\ttemp( this, [ next ] ).sync()\n\t\t}\n\t\t\n\t\tObject.defineProperty( get , 'name' , { value : _get.name + '$' } )\n\t\tObject.defineProperty( set , 'name' , { value : _set.name + '@' } )\n\t\t\n\t\tObject.assign( get, { orig: _get } )\n\t\tObject.assign( set, { orig: _set } )\n\t\t\n\t\tconst { value, writable, ... descr2 } = { ... descr, get, set }\n\t\tReflect.defineProperty( host, field, descr2 )\n\t\t\n\t\treturn descr2\n\t}\n\n}\n","namespace $ {\n\n\texport namespace $$ { let $ }\n\n\texport const $mol_object_field = Symbol( '$mol_object_field' )\n\t\n\texport class $mol_object extends $mol_object2 {\n\t\t\n\t\tpublic static make< This extends typeof $mol_object >(\n\t\t\tthis: This,\n\t\t\tconfig: Partial< InstanceType< This > >,\n\t\t) {\n\t\t\treturn super.create( obj => {\n\t\t\t\tfor( let key in config ) ( obj as any )[ key ] = config[ key ]!\n\t\t\t} ) as InstanceType< This >\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\n\t/**\n\t * Reactive memoizing solo property decorator from [mol_wire](../wire/README.md)\n\t * @example\n\t * '@' $mol_mem\n\t * name(next?: string) {\n\t * \treturn next ?? 'default'\n\t * }\n\t * @see https://mol.hyoo.ru/#!section=docs/=qxmh6t_sinbmb\n\t */\n\texport let $mol_mem = $mol_wire_solo\n\n\t/**\n\t * Reactive memoizing multiplexed property decorator [mol_wire](../wire/README.md)\n\t * @example\n\t * '@' $mol_mem_key\n\t * name(id: number, next?: string) {\n\t * return next ?? 'default'\n\t * }\n\t * @see https://mol.hyoo.ru/#!section=docs/=qxmh6t_sinbmb\n\t */\n\texport let $mol_mem_key = $mol_wire_plex\n}\n","namespace $ {\n\t\n\t/** State of time moment */\n\texport class $mol_state_time extends $mol_object {\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic task( precision: number, reset?: null ): $mol_after_timeout | $mol_after_frame {\n\t\t\t\n\t\t\tif( precision ) {\n\t\t\t\treturn new $mol_after_timeout( precision, ()=> this.task( precision, null ) )\n\t\t\t} else {\n\t\t\t\treturn new $mol_after_frame( ()=> this.task( precision, null ) )\n\t\t\t}\n\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic now( precision: number ) {\n\t\t\tthis.task( precision )\n\t\t\treturn Date.now()\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/** Transition atom value */\n\texport function $mol_wire_easing( next: any ) {\n\t\t\n\t\tconst atom = $mol_wire_auto()\n\t\tif(!( atom instanceof $mol_wire_atom )) $mol_fail( new Error( 'Allowed only inside atom' ) )\n\n\t\tconst prev = atom.result() ?? next\n\t\tif( typeof prev !== 'number' ) return next\n\t\t\n\t\tconst current = ( prev * 2 + next ) / 3\n\t\n\t\tconst diff = Math.abs( current - next )\n\t\tif( diff < 1 ) return next\n\t\n\t\t$mol_state_time.now(0)\n\t\n\t\treturn current\n\t}\n\t\n}\n","namespace $ {\n\texport function $mol_wire_patch( obj: object ) {\n\t\t\n\t\tfor( const field of Reflect.ownKeys( obj ) ) {\n\t\t\t\n\t\t\tconst descr = Reflect.getOwnPropertyDescriptor( obj, field )!\n\t\t\tif( !descr.configurable ) continue\n\t\t\tif( !descr.get ) continue\n\t\t\t\n\t\t\tconst get = descr.get ?? ( ()=> descr.value )\n\t\t\tconst set = descr.set ?? ( next => descr.value = next )\n\t\t\t\n\t\t\tReflect.defineProperty( obj, field, {\n\t\t\t\t\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: descr.enumerable,\n\t\t\t\t\n\t\t\t\tget() {\n\t\t\t\t\tconst atom = $mol_wire_atom.solo( obj, get )\n\t\t\t\t\tatom.watch()\n\t\t\t\t\treturn atom.sync()\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\tset( next ) {\n\t\t\t\t\tconst atom = $mol_wire_atom.solo( obj, get )\n\t\t\t\t\tset.call( this, next )\n\t\t\t\t\tatom.refresh()\n\t\t\t\t},\n\t\t\t\t\n\t\t\t} )\n\t\t\t\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\texport function $mol_wire_let< Host extends {} >( host: Host ) {\n\t\tfor( const field of Object.keys( host ) ) {\n\t\t\t(host as any)[ field ] = new $mol_wire_atom( field, (host as any)[ field ], host ).channel()\n\t\t}\n\t\treturn host as Host & {\n\t\t\t[ Field in keyof Host ]: {\n\t\t\t\tatom: $mol_wire_atom<\n\t\t\t\t\tHost,\n\t\t\t\t\tParameters< Extract< Host[ Field ], ( ... args: any[] )=>any > >,\n\t\t\t\t\t$mol_type_result< Host[ Field ] >\n\t\t\t\t>\n\t\t\t}\n\t\t}\n\t}\n}\n","namespace $ {\n\t/** Reactive Set */\n\texport class $mol_wire_set< Value > extends Set< Value > {\n\n\t\tpub = new $mol_wire_pub\n\t\t\n\t\t// Accessors\n\t\t\n\t\thas( value: Value ) {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.has( value )\n\t\t}\n\t\t\n\t\tentries() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.entries()\n\t\t}\n\t\t\n\t\tkeys() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.keys()\n\t\t}\n\t\t\n\t\tvalues() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.values()\n\t\t}\n\t\t\n\t\tforEach(\n\t\t\ttask: ( value: Value, value2: Value, set: Set< Value > ) => void,\n\t\t\tself?: any\n\t\t) {\n\t\t\tthis.pub.promote()\n\t\t\tsuper.forEach( task, self )\n\t\t}\n\t\t\n\t\t[Symbol.iterator]() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super[Symbol.iterator]()\n\t\t}\n\t\t\n\t\tget size() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.size\t\n\t\t}\n\n\t\t// Mutators\n\n\t\tadd( value: Value ) {\n\t\t\tif( super.has( value ) ) return this\n\t\t\tsuper.add( value )\n\t\t\tthis.pub.emit()\n\t\t\treturn this\n\t\t}\n\n\t\tdelete( value: Value ) {\n\t\t\tconst res = super.delete( value )\n\t\t\tif( res ) this.pub.emit()\n\t\t\treturn res\n\t\t}\n\t\t\n\t\tclear() {\n\t\t\tif( !super.size ) return\n\t\t\tsuper.clear()\n\t\t\tthis.pub.emit()\n\t\t}\n\n\t\t// Extensions\n\t\t\n\t\titem( val: Value, next?: boolean ) {\n\t\t\t\n\t\t\tif( next === undefined ) return this.has( val )\n\t\t\t\n\t\t\tif( next ) this.add( val )\n\t\t\telse this.delete( val )\n\t\t\t\n\t\t\treturn next\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\t\n\tconst pubs = new WeakMap< object, $mol_wire_pub >()\n\t\n\texport function $mol_wire_proxy_pub( id: string, target: object ) {\n\t\tlet pub = pubs.get( target )\n\t\tif( !pub ) pubs.set( target, pub = new $mol_wire_pub( id ) )\n\t\treturn pub\n\t}\n\t\n\texport function $mol_wire_proxy< Target >( id: string, target: Target ): Target {\n\t\t\n\t\tif( !target ) return target\n\t\t\n\t\tconst type = typeof target\n\t\tif( type !== 'object' && type !== 'function' ) return target\n\t\t\n\t\treturn new Proxy( target, {\n\t\t\t\n\t\t\t// Readers\n\t\t\t\n\t\t\tget( target, property ) {\n\t\t\t\t$mol_wire_proxy_pub( id, target ).promote()\n\t\t\t\tconst suffix = '.' + ( typeof property === 'symbol' ? property.description : property )\n\t\t\t\treturn $mol_wire_proxy( id + suffix , Reflect.get( target, property ) )\n\t\t\t},\n\t\t\t\n\t\t\tgetOwnPropertyDescriptor( target, property ) {\n\t\t\t\t$mol_wire_proxy_pub( id, target ).promote()\n\t\t\t\treturn Reflect.getOwnPropertyDescriptor( target, property )\n\t\t\t},\n\t\t\t\n\t\t\townKeys( target ) {\n\t\t\t\t$mol_wire_proxy_pub( id, target ).promote()\n\t\t\t\treturn Reflect.ownKeys( target )\n\t\t\t},\n\t\t\t\n\t\t\thas( target, property ) {\n\t\t\t\t$mol_wire_proxy_pub( id, target ).promote()\n\t\t\t\treturn Reflect.has( target, property )\n\t\t\t},\n\t\t\t\n\t\t\tgetPrototypeOf( target ) {\n\t\t\t\t$mol_wire_proxy_pub( id, target ).promote()\n\t\t\t\treturn $mol_wire_proxy( id, Reflect.getPrototypeOf( target ) )\n\t\t\t},\n\t\t\t\n\t\t\tisExtensible( target ) {\n\t\t\t\t$mol_wire_proxy_pub( id, target ).promote()\n\t\t\t\treturn Reflect.isExtensible( target )\n\t\t\t},\n\t\t\t\n\t\t\t// Writers\n\t\t\t\n\t\t\tset( target, property, next ) {\n\t\t\t\t\n\t\t\t\tconst pub = pubs.get( target )\n\t\t\t\tif( pub ) {\n\t\t\t\t\t\n\t\t\t\t\tconst prev = Reflect.get( target, property )\n\t\t\t\t\tif( $mol_compare_deep( prev, next ) ) return true\n\t\t\t\t\t\n\t\t\t\t\tpub.emit()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn Reflect.set( target, property, next )\n\t\t\t\t\n\t\t\t},\n\t\t\t\n\t\t\tdefineProperty( target, property, attributes ) {\n\t\t\t\tpubs.get( target )?.emit()\n\t\t\t\treturn Reflect.defineProperty( target, property, attributes )\n\t\t\t},\n\t\t\t\n\t\t\tdeleteProperty( target, property ) {\n\t\t\t\tpubs.get( target )?.emit()\n\t\t\t\treturn Reflect.deleteProperty( target, property )\n\t\t\t},\n\t\t\t\n\t\t\tsetPrototypeOf( target, proto ) {\n\t\t\t\tpubs.get( target )?.emit()\n\t\t\t\treturn Reflect.setPrototypeOf( target, proto )\n\t\t\t},\n\t\t\t\n\t\t\tpreventExtensions( target ) {\n\t\t\t\tpubs.get( target )?.emit()\n\t\t\t\treturn Reflect.preventExtensions( target )\n\t\t\t},\n\t\t\t\n\t\t} )\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t/** reactive Dictionary */\n\texport class $mol_wire_dict< Key, Value > extends Map< Key, Value > {\n\n\t\tpub = new $mol_wire_pub\n\t\t\n\t\t// Accessors\n\t\t\n\t\thas( key: Key ) {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.has( key )\n\t\t}\n\t\t\n\t\tget( key: Key ) {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.get( key )\n\t\t}\n\t\t\n\t\tentries() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.entries()\n\t\t}\n\t\t\n\t\tkeys() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.keys()\n\t\t}\n\t\t\n\t\tvalues() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.values()\n\t\t}\n\t\t\n\t\tforEach(\n\t\t\ttask: ( value: Value, key: Key, dict: Map< Key, Value > ) => void,\n\t\t\tself?: any\n\t\t) {\n\t\t\tthis.pub.promote()\n\t\t\tsuper.forEach( task, self )\n\t\t}\n\t\t\n\t\t[Symbol.iterator]() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super[Symbol.iterator]()\n\t\t}\n\t\t\n\t\tget size() {\n\t\t\tthis.pub.promote()\n\t\t\treturn super.size\t\n\t\t}\n\n\t\t// Mutators\n\n\t\tset( key: Key, value: Value ) {\n\t\t\tif( super.get( key ) === value ) return this\n\t\t\tsuper.set( key, value )\n\t\t\tthis.pub?.emit() // undefined in constructor\n\t\t\treturn this\n\t\t}\n\n\t\tdelete( key: Key ) {\n\t\t\tconst res = super.delete( key )\n\t\t\tif( res ) this.pub.emit()\n\t\t\treturn res\n\t\t}\n\t\t\n\t\tclear() {\n\t\t\tif( !super.size ) return\n\t\t\tsuper.clear()\n\t\t\tthis.pub.emit()\n\t\t}\n\t\t\n\t\t// Extensions\n\t\t\n\t\titem( key: Key, next?: Value | null ) {\n\t\t\t\n\t\t\tif( next === undefined ) return this.get( key ) ?? null\n\t\t\t\n\t\t\tif( next === null ) this.delete( key )\n\t\t\telse this.set( key, next )\n\t\t\t\n\t\t\treturn next\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\texport class $mol_promise<Result = void> extends Promise<Result> {\n\t\tdone: (value: Result | PromiseLike<Result>) => void\n\t\tfail: (reason?: any) => void\n\n\t\tconstructor(\n\t\t\texecutor?: (\n\t\t\t\tdone: (value: Result | PromiseLike<Result>) => void,\n\t\t\t\tfail: (reason?: any) => void\n\t\t\t) => void\n\t\t) {\n\t\t\tlet done: (value: Result | PromiseLike<Result>) => void\n\t\t\tlet fail: (reason?: any) => void\n\n\t\t\tsuper((d, f) => {\n\t\t\t\tdone = d\n\t\t\t\tfail = f\n\t\t\t\texecutor?.(d, f)\n\t\t\t})\n\n\t\t\tthis.done = done!\n\t\t\tthis.fail = fail!\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport function $mol_wait_timeout_async( this: $, timeout: number ): Promise< void > {\n\t\tconst promise = new $mol_promise()\n\t\tconst task = new this.$mol_after_timeout( timeout , ()=> promise.done() )\n\t\treturn Object.assign( promise, {\n\t\t\tdestructor: ()=> task.destructor()\n\t\t} )\n\t}\n\t\n\texport function $mol_wait_timeout( this: $, timeout: number ) {\n\t\treturn this.$mol_wire_sync( this ).$mol_wait_timeout_async( timeout )\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/** Watch and logs reactive states. Logger automatically added to test bundle which is adding to `test.html`. */\n\texport class $mol_wire_log extends $mol_object2 {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic watch( task?: ()=> any ) {\n\t\t\treturn task\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic track( fiber: $mol_wire_fiber< any, any, any > ) {\n\t\t\t\n\t\t\tconst prev = $mol_wire_probe( ()=> this.track( fiber ) )\n\t\t\tlet next: any\n\t\t\t\n\t\t\ttry {\n\t\t\t\tnext = fiber.sync()\n\t\t\t} finally {\n\t\t\t\t\n\t\t\t\tfor( const pub of fiber.pub_list ) {\n\t\t\t\t\tif( pub instanceof $mol_wire_fiber ) {\n\t\t\t\t\t\tthis.track( pub )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tif( fiber.host === this ) return next\n\t\t\t\n\t\t\tif( $mol_compare_deep( prev, next ) ) {\n\t\t\t\t\n\t\t\t\tthis.$.$mol_log3_rise({\n\t\t\t\t\tmessage: '💧 Same',\n\t\t\t\t\tplace: fiber,\n\t\t\t\t})\n\t\t\t\t\n\t\t\t} else if( prev !== undefined ) {\n\t\t\t\t\n\t\t\t\tthis.$.$mol_log3_rise({\n\t\t\t\t\tmessage: '🔥 Next',\n\t\t\t\t\tplace: fiber,\n\t\t\t\t\tprev,\n\t\t\t\t})\n\t\t\t\t\n\t\t\t}\n\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic active() {\n\t\t\t\n\t\t\ttry {\n\t\t\t\tthis.watch()?.()\n\t\t\t} catch( error ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t} finally {\n\t\t\t\tfor( const pub of ( $mol_wire_auto() as $mol_wire_fiber< any, any, any > ).pub_list ) {\n\t\t\t\t\tif( pub instanceof $mol_wire_fiber ) {\n\t\t\t\t\t\tthis.track( pub )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\texport function $mol_test( set : { [ name : string ] : string | ( ( context : $ )=> void ) } ) {\n\t\t\n\t\tfor( let name in set ) {\n\n\t\t\tconst code = set[ name ]\n\t\t\tconst test = ( typeof code === 'string' ) ? new Function( '' , code ) as ()=> void : code\n\t\t\t\n\t\t\t$mol_test_all.push( test )\n\t\t}\n\n\t\t$mol_test_schedule()\n\t}\n\n\texport let $mol_test_mocks = [] as Array< ( context : $ )=> void >\n\n\texport const $mol_test_all = [] as Array< ( context : $ )=> any >\n\n\texport async function $mol_test_run() {\n\n\t\tfor( var test of $mol_test_all ) {\n\n\t\t\tlet context = Object.create( $$ )\n\t\t\tfor( let mock of $mol_test_mocks ) await mock( context )\n\t\t\t\n\t\t\tconst res = test( context )\n\t\t\tif( $mol_promise_like( res ) ) {\n\t\t\t\tawait new Promise( ( done, fail )=> {\n\t\t\t\t\tres.then( done, fail )\n\t\t\t\t\tsetTimeout( ()=> fail( new Error( 'Test timeout: ' + test.name ) ), 1000 )\n\t\t\t\t} )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t$$.$mol_log3_done({\n\t\t\tplace: '$mol_test',\n\t\t\tmessage: 'All tests passed',\n\t\t\tcount: $mol_test_all.length,\n\t\t})\n\t\t\n\t}\n\t\n\tlet scheduled = false\n\texport function $mol_test_schedule() {\n\n\t\tif( scheduled ) return\n\t\tscheduled = true\n\n\t\tsetTimeout( async ()=> {\n\t\t\t\n\t\t\tscheduled = false\n \t\t\t\n\t\t\tawait $mol_test_run()\n\t\t\t$$.$mol_test_complete()\n\t\t\t\n\t\t} , 1000 )\n\t\t\n\t}\n\n\t$mol_test_mocks.push( context => {\n\t\tlet seed = 0\n\n\t\tcontext.Math = Object.create( Math )\n\t\tcontext.Math.random = ()=> Math.sin( seed++ )\n\n\t\tconst forbidden = [ 'XMLHttpRequest' , 'fetch' ] as const\n\n\t\tfor( let api of forbidden ) {\n\t\t\tcontext[ api ] = new Proxy( function(){} as any , {\n\t\t\t\tget() {\n\t\t\t\t\t$mol_fail_hidden( new Error( `${ api } is forbidden in tests` ) )\n\t\t\t\t} ,\n\t\t\t\tapply() {\n\t\t\t\t\t$mol_fail_hidden( new Error( `${ api } is forbidden in tests` ) )\n\t\t\t\t} ,\n\t\t\t} )\n\t\t}\n\t\t\n\t} )\n\n\t$mol_test({\n\n\t\t'mocked Math.random'( $ ) {\n\t\t\tconsole.assert( $.Math.random() === 0 )\n\t\t\tconsole.assert( $.Math.random() === Math.sin(1) )\n\t\t} ,\n\n\t\t'forbidden XMLHttpRequest'( $ ) {\n\t\t\ttry {\n\t\t\t\tconsole.assert( void new $.XMLHttpRequest )\n\t\t\t} catch( error: any ) {\n\t\t\t\tconsole.assert( error.message === 'XMLHttpRequest is forbidden in tests' )\n\t\t\t}\n\t\t} ,\n\n\t\t'forbidden fetch'( $ ) {\n\t\t\ttry {\n\t\t\t\tconsole.assert( void $.fetch('') )\n\t\t\t} catch( error: any ) {\n\t\t\t\tconsole.assert( error.message === 'fetch is forbidden in tests' )\n\t\t\t}\n\t\t} ,\n\n\t})\n\n}\n","namespace $ {\n\t\n\texport function $mol_test_complete() {\n\t\tprocess.exit(0)\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport var $mol_dom_context : typeof globalThis\n\t\n}\n","namespace $ {\n\n\tconst mod = require/****/( 'module' ) as typeof import/****/( 'module' )\n\tconst internals = mod.builtinModules\n\t\n\texport function $node_internal_check(name: string) {\n\t\tif ( name.startsWith('node:') ) return true\n\t\treturn internals.includes(name)\n\t}\n\n}\n","namespace $ {\n\tconst path = require/****/( 'path' ) as typeof import/****/( 'path' )\n\tconst mod = require/****/( 'module' ) as typeof import/****/( 'module' )\n\tconst localRequire = mod.createRequire(path.join(process.cwd(), 'package.json'))\n\n\texport function $node_autoinstall(this: typeof $, name: string) {\n\t\ttry {\n\t\t\tlocalRequire.resolve( name )\n\t\t} catch {\n\n\t\t\tthis.$mol_run.spawn({ command: [ 'npm' , 'install' , '--omit=dev', name ], dir: '.' })\n\n\t\t\ttry {\n\t\t\t\tthis.$mol_run.spawn({ command: [ 'npm' , 'install' , '--omit=dev', '@types/' + name ], dir: '.' })\n\t\t\t} catch (e) {\n\t\t\t\tif( this.$mol_promise_like( e ) ) this.$mol_fail_hidden( e )\n\t\t\t\tthis.$mol_fail_log(e)\n\t\t\t}\n\n\t\t}\n\t}\n}\n","interface $node {\n\t[key:string]: any\n}\n\nvar $node = new Proxy( { require } as any , {\n\t\n\tget( target , name : string , wrapper ) {\n\n\t\tif( target[ name ] ) return target[ name ]\n\n\t\tif( $.$node_internal_check(name) ) return target.require ( name )\n\t\tif( name[0] === '.' ) return target.require( name )\n\n\t\t$.$node_autoinstall(name)\n\n\t\treturn target.require( name )\n\t},\n\n\tset( target , name : string , value ) {\n\t\ttarget[ name ] = value\n\t\treturn true\n\t},\n\n} ) as $node\n\nrequire = ( req =>\n\tObject.assign( function require( name : string ) {\n\t\treturn $node[ name ]\n\t} , req )\n)( require )\n\n","namespace $ {\n\n\t$mol_test({\n\t\t\n\t\t'FQN of anon function'($) {\n\t\t\tconst $$ = Object.assign( $ , { $mol_func_name_test : ( ()=> ()=> {} )() } )\n\t\t\t$mol_assert_equal( $$.$mol_func_name_test.name , '' )\n\t\t\t$mol_assert_equal( $$.$mol_func_name( $$.$mol_func_name_test ) , '$mol_func_name_test' )\n\t\t\t$mol_assert_equal( $$.$mol_func_name_test.name , '$mol_func_name_test' )\n\t\t},\n\n\t})\n\n}\n","namespace $ {\n\n\tfunction cause_serialize(cause: unknown) {\n\t\treturn JSON.stringify( cause, null, ' ' )\n\t\t\t.replace(/\\(/,'<')\n\t\t\t.replace(/\\)/,' >')\n\t}\n\n\tfunction frame_normalize(frame: string | Object) {\n\t\treturn ( typeof frame === 'string' ? frame : cause_serialize(frame) )\n\t\t\t.trim()\n\t\t\t.replace( /at /gm, ' at ' )\n\t\t\t.replace( /^(?! +at )(.*)/gm, ' at | $1 (#)' )\n\t}\n\n\texport class $mol_error_mix< Cause extends {} = {} > extends AggregateError {\n\t\t\n\t\tname = $$.$mol_func_name( this.constructor ).replace( /^\\$/, '' ) + '_Error'\n\n\t\tconstructor(\n\t\t\tmessage: string,\n\t\t\treadonly cause = {} as Cause,\n\t\t\t... errors: readonly Error[]\n\t\t) {\n\t\t\t\n\t\t\tsuper( errors, message, { cause } )\n\t\t\t\n\t\t\tconst desc = Object.getOwnPropertyDescriptor( this, 'stack' )\n\t\t\tconst stack_get = ()=> desc?.get?.() ?? super.stack ?? desc?.value ?? this.message\n\t\t\t\n\t\t\tObject.defineProperty( this, 'stack', {\n\t\t\t\tget: ()=> stack_get() + '\\n' + [\n\t\t\t\t\t\tthis.cause ?? 'no cause',\n\t\t\t\t\t\t... this.errors.flatMap( e => [\n\t\t\t\t\t\t\tString( e.stack ),\n\t\t\t\t\t\t\t... e instanceof $mol_error_mix || ! e.cause ? [] : [ e.cause ]\n\t\t\t\t\t\t] )\n\t\t\t\t\t].map(frame_normalize).join('\\n')\n\t\t\t} )\n\n\t\t\t// в nodejs, что б не дублировалось cause в консоли\n\t\t\tObject.defineProperty(this, 'cause', {\n\t\t\t\tget: () => cause\n\t\t\t})\t\n\t\t}\n\n\t\tstatic [ Symbol.toPrimitive ]() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\tstatic toString() {\n\t\t\treturn $$.$mol_func_name( this )\n\t\t}\n\n\t\tstatic make(\n\t\t\t...params: ConstructorParameters<typeof $mol_error_mix>\n\t\t) {\n\t\t\treturn new this(...params)\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'auto name'() {\n\t\t\t\n\t\t\tclass Invalid extends $mol_error_mix {}\n\t\t\tconst mix = new Invalid( 'foo' )\n\t\t\t\n\t\t\t$mol_assert_equal( mix.name, 'Invalid_Error' )\n\t\t\t\n\t\t},\n\t\t\n\t\t'simpe mix'() {\n\t\t\t\n\t\t\tconst mix = new $mol_error_mix( 'foo', {},\n\t\t\t\tnew Error( 'bar' ),\n\t\t\t\tnew Error( 'lol' ),\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal( mix.message, 'foo' )\n\t\t\t$mol_assert_equal( mix.errors.map( e => e.message ), [ 'bar', 'lol' ] )\n\t\t\t\n\t\t},\n\t\t\n\t\t'provide additional info'() {\n\t\t\t\n\t\t\tclass Invalid extends $mol_error_mix<{\n\t\t\t\tvalue: string,\n\t\t\t\thint: string,\n\t\t\t}> {}\n\t\t\t\n\t\t\tconst mix: unknown = new $mol_error_mix( 'Wrong password', {},\n\t\t\t\tnew Invalid( 'Too short', { value: 'p@ssw0rd', hint: '> 8 letters' } ),\n\t\t\t\tnew Invalid( 'Too simple', { value: 'p@ssw0rd', hint: 'need capital letter' } ),\n\t\t\t)\n\t\t\t\n\t\t\tconst hints = [] as string[]\n\t\t\t\n\t\t\tif( mix instanceof $mol_error_mix ) {\n\t\t\t\tfor( const er of mix.errors ) {\n\t\t\t\t\tif( er instanceof Invalid ) {\n\t\t\t\t\t\thints.push( er.cause?.hint ?? '' )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( hints, [ '> 8 letters', 'need capital letter' ] )\n\t\t\t\n\t\t},\n\t\t\n\t})\n}\n","namespace $ {\n\t$mol_test( {\n\t\t\n\t\t'init with overload'() {\n\t\t\tclass X extends $mol_object {\n\t\t\t\tfoo() {\n\t\t\t\t\treturn 1\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tvar x = X.make({\n\t\t\t\tfoo : ()=> 2 ,\n\t\t\t})\n\t\t\t\n\t\t\t$mol_assert_equal( x.foo() , 2 )\n\t\t} ,\n\t\t\t\n\t\t'Context in instance inherits from class'($) {\n\t\t\tconst custom = $.$mol_ambient({})\n\t\t\tclass X extends $.$mol_object {\n\t\t\t\tstatic $ = custom\n\t\t\t}\n\n\t\t\t$mol_assert_equal(new X().$, custom)\n\t\t},\n\n\t} )\n}\n","namespace $ {\n\texport function $mol_env() {\n\t\treturn {} as Record< string, string | undefined >\n\t}\n}\n","namespace $ {\n\t$.$mol_env = function $mol_env() {\n\t\treturn this.process.env\n\t}\n}\n","namespace $ {\n\n\t$mol_test({\n\n\t\t'test types'( $ ) {\n\t\t\tclass A {\n\t\t\t\tstatic a() {\n\t\t\t\t\treturn Promise.resolve('')\n\t\t\t\t}\n\n\t\t\t\tstatic b() {\n\t\t\t\t\treturn $mol_wire_sync(this).a()\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttype Check = $mol_type_assert<ReturnType<typeof A['b']>, string>\n\t\t},\n\n\t\tasync 'test method from host'( $ ) {\n\t\t\tlet count = 0\n\t\t\tclass A {\n\t\t\t\tstatic a() {\n\t\t\t\t\treturn $mol_wire_sync(this).b()\n\t\t\t\t}\n\n\t\t\t\tstatic b() { return Promise.resolve(++count) }\n\t\t\t}\n\n\t\t\t\n\t\t\t$mol_assert_equal(await $mol_wire_async(A).a(), 1, count)\n\n\t\t},\n\n\t\tasync 'test function'( $ ) {\n\t\t\tlet count = 0\n\t\t\tclass A {\n\t\t\t\tstatic a() {\n\t\t\t\t\treturn $mol_wire_sync(this.b)()\n\t\t\t\t}\n\n\t\t\t\tstatic b() { return Promise.resolve(++count) }\n\t\t\t}\n\n\t\t\t\n\t\t\t$mol_assert_equal(await $mol_wire_async(A).a(), 1, count)\n\n\t\t},\n\n\t\tasync 'test construct itself'( $ ) {\n\t\t\tclass A {\n\t\t\t\tstatic instances = [] as A[]\n\n\t\t\t\tstatic a() {\n\t\t\t\t\tconst a = new ($mol_wire_sync(A))()\n\t\t\t\t\tthis.instances.push( a )\n\t\t\t\t\t$mol_wire_sync(this).b()\n\t\t\t\t}\n\n\t\t\t\tstatic b() { return Promise.resolve() }\n\t\t\t}\n\n\t\t\tawait $mol_wire_async(A).a()\n\t\t\t$mol_assert_equal(A.instances.length, 2)\n\t\t\t$mol_assert_equal(A.instances[0] instanceof A, true)\n\n\t\t\t$mol_assert_equal(A.instances[0], A.instances[1])\n\n\t\t}\n\t})\n\n}\n\n","namespace $ {\n\n\t$mol_test_mocks.push( $ => {\n\t\t$.$mol_log3_come = ()=> {}\n\t\t$.$mol_log3_done = ()=> {}\n\t\t$.$mol_log3_fail = ()=> {}\n\t\t$.$mol_log3_warn = ()=> {}\n\t\t$.$mol_log3_rise = ()=> {}\n\t\t$.$mol_log3_area = ()=> ()=> {}\n\t} )\n\n}\n","namespace $ {\n\n\texport type $mol_run_error_context = {\n\t\tpid?: number\n\t\tstdout: Buffer | string\n\t\tstderr: Buffer | string\n\t}\n\n\texport class $mol_run_error extends $mol_error_mix<{\n\t\ttimeout_kill?: boolean\n\t\tpid?: number\n\t\tsignal?: NodeJS.Signals | null\n\t\tstatus?: number | null\n\t\tcommand: string\n\t\tdir: string\n\t}> {}\n\n\texport const $mol_run_spawn = (\n\t\t...args: Parameters<typeof $node['child_process']['spawn']>\n\t) => $node['child_process'].spawn(...args)\n\n\texport const $mol_run_spawn_sync = (\n\t\t...args: Parameters<typeof $node['child_process']['spawnSync']>\n\t) => $node['child_process'].spawnSync(...args)\n\n\texport type $mol_run_options = {\n\t\tcommand : readonly string[] | string\n\t\tdir : string\n\t\ttimeout?: number\n\t\tenv?: Record<string, string | undefined>\n\t}\n\n\texport class $mol_run extends $mol_object {\n\n\t\tstatic async_enabled() {\n\t\t\treturn Boolean(this.$.$mol_env()['MOL_RUN_ASYNC'])\n\t\t}\n\n\t\tstatic spawn(options: $mol_run_options) {\n\t\t\tconst sync = ! this.async_enabled() || ! Boolean($mol_wire_auto())\n\t\t\tconst env = options.env ?? this.$.$mol_env()\n\n\t\t\treturn $mol_wire_sync(this).spawn_async( { ...options, sync, env } )\n\t\t}\n\n\t\tstatic spawn_async(\n\t\t\t{ dir, sync, timeout, command, env }: $mol_run_options & { sync?: boolean }\n\t\t) {\n\t\t\tconst args_raw = typeof command === 'string' ? command.split( ' ' ) : command\n\t\t\tconst [ app, ...args ] = args_raw\n\t\t\tconst opts = { shell: true, cwd: dir, env }\n\n\t\t\tconst log_object = {\n\t\t\t\tplace: `${this}.spawn()`,\n\t\t\t\tmessage: 'Run',\n\t\t\t\tcommand: args_raw.join(' ') ,\n\t\t\t\tdir: $node.path.relative( '' , dir ) ,\n\t\t\t}\n\n\t\t\tif (sync) {\n\n\t\t\t\tthis.$.$mol_log3_come({\n\t\t\t\t\thint: 'Run inside fiber',\n\t\t\t\t\t...log_object\n\t\t\t\t})\n\n\t\t\t\tlet error: Error | undefined\n\t\t\t\tlet res\n\n\t\t\t\ttry {\n\t\t\t\t\tres = this.$.$mol_run_spawn_sync(app, args, opts)\n\t\t\t\t\terror = res.error\n\t\t\t\t} catch (err) {\n\t\t\t\t\terror = err as Error\n\t\t\t\t}\n\n\t\t\t\tif (! res || error || res.status) {\n\t\t\t\t\tthrow new $mol_run_error(\n\t\t\t\t\t\tthis.error_message(res),\n\t\t\t\t\t\t{ ...log_object, status: res?.status, signal: res?.signal },\n\t\t\t\t\t\t...(error ? [error] : [])\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tlet sub\n\n\t\t\ttry {\n\t\t\t\tsub = this.$.$mol_run_spawn(app, args, {\n\t\t\t\t\t...opts,\n\t\t\t\t\tstdio: [ 'pipe', 'inherit', 'inherit' ],\n\t\t\t\t})\n\t\t\t} catch (error) {\n\t\t\t\tthrow new $mol_run_error(\n\t\t\t\t\tthis.error_message(undefined),\n\t\t\t\t\tlog_object,\n\t\t\t\t\terror as Error\n\t\t\t\t)\n\t\t\t}\n\t\n\t\t\tconst pid = sub.pid ?? 0\n\n\t\t\tthis.$.$mol_log3_come({\n\t\t\t\t...log_object,\n\t\t\t\tpid,\n\t\t\t})\n\t\n\t\t\tlet timeout_kill = false\n\t\t\tlet timer: undefined | ReturnType<typeof setTimeout>\n\t\n\t\t\tconst std_data = [] as Buffer[]\n\t\t\tconst error_data = [] as Buffer[]\n\t\n\t\t\tconst add = (std_chunk?: Buffer, error_chunk?: Buffer) => {\n\t\t\t\tif (std_chunk) std_data.push(std_chunk)\n\t\t\t\tif (error_chunk) error_data.push(error_chunk)\n\t\t\t\tif (! timeout) return\n\t\n\t\t\t\tclearTimeout(timer)\n\t\n\t\t\t\ttimer = setTimeout(() => {\n\t\t\t\t\tconst signal = timeout_kill ? 'SIGKILL' : 'SIGTERM'\n\t\t\t\t\ttimeout_kill = true\n\t\t\t\t\tadd()\n\t\t\t\t\tsub.kill(signal)\n\t\t\t\t}, timeout)\n\t\t\t}\n\t\n\t\t\tadd()\n\t\n\t\t\tsub.stdout?.on('data', data => add(data) )\n\t\t\tsub.stderr?.on('data', data => add(undefined, data) )\n\t\n\t\t\tconst result_promise = new Promise<$mol_run_error_context>((done, fail) => {\n\t\t\t\tconst close = (error: Error | null, status: number | null = null, signal: NodeJS.Signals | null = null) => {\n\t\t\t\t\tif (! timer && timeout) return\n\t\n\t\t\t\t\tclearTimeout(timer)\n\t\t\t\t\ttimer = undefined\n\t\n\t\t\t\t\tconst res = {\n\t\t\t\t\t\tpid,\n\t\t\t\t\t\tsignal,\n\t\t\t\t\t\tget stdout() { return Buffer.concat(std_data) },\n\t\t\t\t\t\tget stderr() { return Buffer.concat(error_data) }\n\t\t\t\t\t}\n\t\t\n\t\t\t\t\tif (error || status || timeout_kill) return fail( new $mol_run_error(\n\t\t\t\t\t\tthis.error_message(res) + (timeout_kill ? ', timeout' : ''),\n\t\t\t\t\t\t{ ...log_object, pid, status, signal, timeout_kill },\n\t\t\t\t\t\t...error ? [ error ] : []\n\t\t\t\t\t) )\n\n\t\t\t\t\tthis.$.$mol_log3_done({\n\t\t\t\t\t\t...log_object,\n\t\t\t\t\t\tpid,\n\t\t\t\t\t})\n\t\t\t\n\t\t\t\t\tdone(res)\n\t\t\t\t}\n\t\n\t\t\t\tsub.on('disconnect', () => close(new Error('Disconnected')) )\n\t\t\t\tsub.on('error', err => close(err) )\n\t\t\t\tsub.on('exit', (status, signal) => close(null, status, signal) )\n\t\t\t})\n\t\n\t\t\treturn Object.assign(result_promise, { destructor: () => {\n\t\t\t\tclearTimeout(timer)\n\t\t\t\tsub.kill('SIGKILL')\n\t\t\t} })\n\t\t}\n\n\t\tstatic error_message(res?: $mol_run_error_context) {\n\t\t\treturn res?.stderr.toString() || res?.stdout.toString() || 'Run error'\n\t\t}\n\t}\n\n}\n","namespace $ {\n\t$mol_test( {\n\t\tasync 'exec timeout auto kill child process'($) {\n\t\t\tlet close_mock = () => {}\n\t\t\tconst error_message = 'Run error, timeout'\n\n\t\t\tfunction mol_run_spawn_sync_mock() {\n\t\t\t\treturn {\n\t\t\t\t\toutput: [],\n\t\t\t\t\tstdout: error_message,\n\t\t\t\t\tstderr: '',\n\t\t\t\t\tstatus: 0,\n\t\t\t\t\tsignal: null,\n\t\t\t\t\tpid: 123,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction mol_run_spawn_mock() {\n\t\t\t\treturn {\n\t\t\t\t\ton(name: string, cb: () => void) {\n\t\t\t\t\t\tif (name === 'exit') close_mock = cb\n\t\t\t\t\t},\n\t\t\t\t\tkill() { close_mock() }\n\t\t\t\t} as any\n\t\t\t}\n\n\t\t\tconst context_mock = $.$mol_ambient({\n\t\t\t\t$mol_run_spawn_sync: mol_run_spawn_sync_mock,\n\t\t\t\t$mol_run_spawn: mol_run_spawn_mock\n\t\t\t})\n\n\t\t\tclass $mol_run_mock extends $mol_run {\n\t\t\t\tstatic get $() { return context_mock }\n\t\t\t\tstatic override async_enabled() {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet message = ''\n\t\t\ttry {\n\t\t\t\tconst res = await $mol_wire_async($mol_run_mock).spawn({\n\t\t\t\t\tcommand: 'sleep 10',\n\t\t\t\t\tdir: '.',\n\t\t\t\t\ttimeout: 10,\n\t\t\t\t\tenv: { 'MOL_RUN_ASYNC': '1' }\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tmessage= (e as Error).message\n\t\t\t}\n\t\t\t$mol_assert_equal(message, error_message)\n\t\t}\n\t\t\n\t} )\n}\n","namespace $ {\n\t\n\t$.$mol_dom_context = new $node.jsdom.JSDOM( '' , { url : `http://${ process.env.DOMAIN || 'localhost' }/` } ).window as any\n\t\n}\n","namespace $ {\n\t\n\texport var $mol_dom = $mol_dom_context\n\t\n}\n","namespace $ {\n\n\texport function $mol_dom_render_children (\n\t\tel : Element | DocumentFragment ,\n\t\tchildNodes : NodeList | Array< Node | string | null >\n\t) {\n\t\tconst node_set = new Set< Node | string | null >( childNodes )\n\t\t\n\t\tlet nextNode : Node | null = el.firstChild\n\t\tfor( let view of childNodes ) {\n\n\t\t\tif( view == null ) continue\n\n\t\t\tif( view instanceof $mol_dom_context.Node ) {\n\t\t\t\t\n\t\t\t\twhile( true ) {\n\t\t\t\t\tif( !nextNode ) {\n\t\t\t\t\t\tel.appendChild( view )\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tif( nextNode == view ) {\n\t\t\t\t\t\tnextNode = nextNode.nextSibling\n\t\t\t\t\t\tbreak\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif( node_set.has( nextNode ) ) {\n\t\t\t\t\t\t\tel.insertBefore( view , nextNode )\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst nn = nextNode.nextSibling\n\t\t\t\t\t\t\tel.removeChild( nextNode )\n\t\t\t\t\t\t\tnextNode = nn\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\tif( nextNode && nextNode.nodeName === '#text' ) {\n\t\t\t\t\tconst str = String( view )\n\t\t\t\t\tif( nextNode.nodeValue !== str ) nextNode.nodeValue = str\n\t\t\t\t\tnextNode = nextNode.nextSibling\n\t\t\t\t} else {\n\t\t\t\t\tconst textNode = $mol_dom_context.document.createTextNode( String( view ) )\n\t\t\t\t\tel.insertBefore( textNode , nextNode )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\twhile( nextNode ) {\n\t\t\tconst currNode = nextNode\n\t\t\tnextNode = currNode.nextSibling\n\t\t\tel.removeChild( currNode )\n\t\t}\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_dom_serialize(\n\t\tnode: Node\n\t) {\n\t\tconst serializer = new $mol_dom_context.XMLSerializer\n\t\treturn serializer.serializeToString( node )\n\t}\n\n}\n","namespace $ {\n\n\texport let $mol_jsx_prefix = ''\n\texport let $mol_jsx_crumbs = ''\n\n\texport let $mol_jsx_booked = null as null | Set< string >\n\t\n\texport let $mol_jsx_document : $mol_jsx.JSX.ElementClass['ownerDocument'] = {\n\t\tgetElementById : ()=> null ,\n\t\tcreateElementNS : ( space: string, name : string )=> $mol_dom_context.document.createElementNS( space, name ) as any,\n\t\tcreateDocumentFragment : ()=> $mol_dom_context.document.createDocumentFragment(),\n\t}\n\t\n\texport const $mol_jsx_frag = ''\n\n\t/**\n\t * JSX adapter that makes DOM tree.\n\t * Generates global unique ids for every DOM-element by components tree with ids.\n\t * Ensures all local ids are unique.\n\t * Can reuse an existing nodes by GUIDs when used inside [`mol_jsx_attach`](https://github.com/hyoo-ru/mam_mol/tree/master/jsx/attach).\n\t */\n\texport function $mol_jsx<\n\t\tProps extends $mol_jsx.JSX.IntrinsicAttributes,\n\t\tChildren extends Array< Node | string >\n\t>(\n\t\tElem : string\n\t\t\t| ( ( props : Props , ... children : Children ) => Element ) ,\n\t\tprops : Props ,\n\t\t... childNodes : Children\n\t) : Element | DocumentFragment {\n\n\t\tconst id = props && props.id || ''\n\t\tconst guid = id ? $mol_jsx_prefix ? $mol_jsx_prefix + '/'+ id : id : $mol_jsx_prefix\n\t\tconst crumbs_self = id ? $mol_jsx_crumbs.replace( /(\\S+)/g, `$1_${ id.replace( /\\/.*/i, '' ) }` ) : $mol_jsx_crumbs\n\t\t\n\t\tif( Elem && $mol_jsx_booked ) {\n\t\t\tif( $mol_jsx_booked.has( id ) ) {\n\t\t\t\t$mol_fail( new Error( `JSX already has tag with id ${ JSON.stringify( guid ) }` ) )\n\t\t\t} else {\n\t\t\t\t$mol_jsx_booked.add( id )\n\t\t\t}\n\t\t}\n\n\t\tlet node: Element | DocumentFragment | null = guid ? $mol_jsx_document.getElementById( guid ) : null\n\n\t\tif( $mol_jsx_prefix ) {\n\t\t\t\n\t\t\tconst prefix_ext = $mol_jsx_prefix\n\t\t\tconst booked_ext = $mol_jsx_booked\n\t\t\tconst crumbs_ext = $mol_jsx_crumbs\n\t\t\t\n\t\t\tfor( const field in props ) {\n\t\t\t\t\n\t\t\t\tconst func = props[ field ]\n\t\t\t\tif( typeof func !== 'function' ) continue\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tconst wrapper = function( this: any, ... args: any[] ) {\n\t\t\t\t\t\n\t\t\t\t\tconst prefix = $mol_jsx_prefix\n\t\t\t\t\tconst booked = $mol_jsx_booked\n\t\t\t\t\tconst crumbs = $mol_jsx_crumbs\n\t\t\t\t\t\n\t\t\t\t\ttry {\n\t\t\n\t\t\t\t\t\t$mol_jsx_prefix = prefix_ext\n\t\t\t\t\t\t$mol_jsx_booked = booked_ext\n\t\t\t\t\t\t$mol_jsx_crumbs = crumbs_ext\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn func.call( this, ... args )\n\t\t\t\t\t\t\n\t\t\t\t\t} finally {\n\t\t\t\t\t\t\n\t\t\t\t\t\t$mol_jsx_prefix = prefix\n\t\t\t\t\t\t$mol_jsx_booked = booked\n\t\t\t\t\t\t$mol_jsx_crumbs = crumbs\n\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t$mol_func_name_from( wrapper, func )\n\t\t\t\tprops[ field ] = wrapper as any\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tif( typeof Elem !== 'string' ) {\n\n\t\t\tif( 'prototype' in Elem ) {\n\n\t\t\t\tconst view = node && (node as any)[ String(Elem) ] || new ( Elem as any )\n\t\t\t\t\n\t\t\t\tObject.assign( view , props )\n\t\t\t\tview[ Symbol.toStringTag ] = guid\n\t\t\t\t\n\t\t\t\tview.childNodes = childNodes\n\t\t\t\t\n\t\t\t\tif( !view.ownerDocument ) view.ownerDocument = $mol_jsx_document\n\t\t\t\tview.className = ( crumbs_self ? crumbs_self + ' ' : '' ) + ( Elem['name'] || Elem )\n\t\t\t\t\n\t\t\t\tnode = view.valueOf()\n\t\t\t\t\n\t\t\t\t;(node as any)![ String(Elem) ] = view\n\t\t\t\t\n\t\t\t\treturn node!\n\n\t\t\t} else {\n\n\t\t\t\tconst prefix = $mol_jsx_prefix\n\t\t\t\tconst booked = $mol_jsx_booked\n\t\t\t\tconst crumbs = $mol_jsx_crumbs\n\t\t\t\t\n\t\t\t\ttry {\n\t\n\t\t\t\t\t$mol_jsx_prefix = guid\n\t\t\t\t\t$mol_jsx_booked = new Set\n\t\t\t\t\t$mol_jsx_crumbs = ( crumbs_self ? crumbs_self + ' ' : '' ) + ( Elem['name'] || Elem )\n\t\n\t\t\t\t\treturn ( Elem as any )( props , ... childNodes )\n\t\t\t\t\t\n\t\t\t\t} finally {\n\n\t\t\t\t\t$mol_jsx_prefix = prefix\n\t\t\t\t\t$mol_jsx_booked = booked\n\t\t\t\t\t$mol_jsx_crumbs = crumbs\n\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\tif( !node ) {\n\t\t\tnode = Elem\n\t\t\t\t? $mol_jsx_document.createElementNS( props?.xmlns ?? 'http://www.w3.org/1999/xhtml', Elem )\n\t\t\t\t: $mol_jsx_document.createDocumentFragment()\n\t\t}\n\n\t\t$mol_dom_render_children( node , ( [] as ( Node | string )[] ).concat( ... childNodes ) )\n\t\tif( !Elem ) return node\n\n\t\tif( guid ) ( node as Element ).id = guid\n\t\tfor( const key in props ) {\n\t\t\tif( key === 'id' ) continue\n\t\t\t\n\t\t\tif( typeof props[ key ] === 'string' ) {\n\t\t\t\t\n\t\t\t\tif( typeof (node as any)[ key ] === 'string' ) (node as any)[ key ] = props[ key ]\n\t\t\t\t;( node as Element ).setAttribute( key , (props as any)[ key ] )\n\t\t\t\t\n\t\t\t} else if(\n\t\t\t\tprops[ key ] &&\n\t\t\t\ttypeof props[ key ] === 'object' &&\n\t\t\t\tReflect.getPrototypeOf( props[ key ] as any ) === Reflect.getPrototypeOf({})\n\t\t\t) {\n\n\t\t\t\tif( typeof (node as any)[ key ] === 'object' ) {\n\t\t\t\t\tObject.assign( ( node as any )[ key ] , props[ key ] )\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t(node as any)[ key ] = props[ key ]\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\tif( $mol_jsx_crumbs ) ( node as Element ).className = ( (props as any)?.['class'] ? (props as any)['class'] + ' ' : '' ) + crumbs_self\n\n\t\treturn node\n\n\t}\n\n\texport declare namespace $mol_jsx.JSX {\n\n\t\texport interface Element extends HTMLElement {\n\t\t\tclass?: string\n\t\t}\n\t\t\n\t\texport interface ElementClass {\n\t\t\tattributes : {}\n\t\t\townerDocument : Pick< Document , 'getElementById' | 'createElementNS' | 'createDocumentFragment' >\n\t\t\tchildNodes : Array< Node | string >\n\t\t\tvalueOf() : Element\n\t\t}\n\t\t\n\t\ttype OrString< Dict > = {\n\t\t\t[ key in keyof Dict ]: Dict[ key ] | string\n\t\t}\n\t\t\n\t\t/** Props for html elements */\n\t\texport type IntrinsicElements = {\n\t\t\t[ key in keyof ElementTagNameMap ]? : $.$mol_type_partial_deep< OrString<\n\t\t\t\t& Element\n\t\t\t\t& IntrinsicAttributes\n\t\t\t\t& ElementTagNameMap[ key ]\n\t\t\t> >\n\t\t}\n\t\t\n\t\t/** Additional undeclared props */\n\t\texport interface IntrinsicAttributes {\n\t\t\tid? : string\n\t\t\txmlns? : string\n\t\t}\n\t\t\n\t\texport interface ElementAttributesProperty {\n\t\t\tattributes : {\n\t\t\t}\n\t\t}\n\t\t\n\t\t// export type IntrinsicClassAttributes< Class > = $.$mol_type_partial_deep< Omit< Class , 'valueOf' > >\n\t\t\n\t\tinterface ElementChildrenAttribute {\n\t\t}\n\t\n\t}\n\n}\n","/** @jsx $mol_jsx */\n/** @jsxFrag $mol_jsx_frag */\nnamespace $ {\n\t\n\t$mol_test({\n\t\t\n\t\t'Make empty div'() {\n\t\t\t$mol_assert_equal( (<div/>).outerHTML , '<div></div>' )\n\t\t} ,\n\t\t\n\t\t'Define native field'() {\n\t\t\t\n\t\t\tconst dom = <input value='123' /> as HTMLInputElement\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML, '<input value=\"123\">' )\n\t\t\t$mol_assert_equal( dom.value, '123' )\n\n\t\t} ,\n\t\t\n\t\t'Define classes'() {\n\t\t\t\n\t\t\tconst dom = <div class={ 'foo bar' } />\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML, '<div class=\"foo bar\"></div>' )\n\n\t\t} ,\n\t\t\n\t\t'Define styles'() {\n\t\t\t\n\t\t\tconst dom = <div style={{ color: 'red' }} />\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML, '<div style=\"color: red;\"></div>' )\n\n\t\t} ,\n\t\t\n\t\t'Define dataset'() {\n\t\t\t\n\t\t\tconst dom = <div dataset={{ foo: 'bar' }} />\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML, '<div data-foo=\"bar\"></div>' )\n\n\t\t} ,\n\t\t\n\t\t'Define attributes'() {\n\t\t\t\n\t\t\tconst dom = <div lang=\"ru\" hidden />\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML, '<div lang=\"ru\" hidden=\"\"></div>' )\n\n\t\t} ,\n\t\t\n\t\t'Define child nodes'() {\n\n\t\t\tconst dom =\n\t\t\t\t<div>\n\t\t\t\t\thello\n\t\t\t\t\t<strong>world</strong>\n\t\t\t\t\t!\n\t\t\t\t</div>\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML, '<div>hello<strong>world</strong>!</div>' )\n\n\t\t} ,\n\n\t\t'Make fragment'() {\n\n\t\t\tconst dom =\n\t\t\t\t<>\n\t\t\t\t\t<br />\n\t\t\t\t\t<hr />\n\t\t\t\t</>\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_dom_serialize( dom ), '<br xmlns=\"http://www.w3.org/1999/xhtml\" /><hr xmlns=\"http://www.w3.org/1999/xhtml\" />' )\n\n\t\t} ,\n\n\t\t'Spread fragment'() {\n\n\t\t\tconst dom =\n\t\t\t\t<div>\n\t\t\t\t\t<>\n\t\t\t\t\t\t<br />\n\t\t\t\t\t\t<hr />\n\t\t\t\t\t</>\n\t\t\t\t</div>\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML, '<div><br><hr></div>' )\n\n\t\t} ,\n\n\t\t'Function as component'() {\n\n\t\t\tconst Button = (\n\t\t\t\tprops: { hint: string },\n\t\t\t\ttarget: ()=> string,\n\t\t\t) => {\n\t\t\t\treturn <button title={ props.hint } >{ target() }</button>\n\t\t\t}\n\n\t\t\tconst dom = <Button id=\"foo\" hint=\"click me\">{ ()=> 'hey!' }</Button>\n\n\t\t\t$mol_assert_equal( dom.outerHTML, '<button id=\"foo\" title=\"click me\" class=\"Button\">hey!</button>' )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t'Nested guid generation'() {\n\n\t\t\tconst Foo = ()=> {\n\t\t\t\treturn <div>\n\t\t\t\t\t<Bar id=\"bar\">\n\t\t\t\t\t\t<img id=\"icon\" />\n\t\t\t\t\t</Bar>\n\t\t\t\t</div>\n\t\t\t}\n\n\t\t\tconst Bar = ( props: {}, icon: Element )=> {\n\t\t\t\treturn <span>{ icon }<i id=\"label\"/></span>\n\t\t\t}\n\n\t\t\tconst dom = <Foo id=\"foo\" />\n\n\t\t\t$mol_assert_equal( dom.outerHTML, '<div id=\"foo\" class=\"Foo\"><span id=\"foo/bar\" class=\"Foo_bar Bar\"><img id=\"foo/icon\" class=\"Foo_icon\"><i id=\"foo/bar/label\" class=\"Foo_bar_label Bar_label\"></i></span></div>' )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t'Fail on non unique ids'() {\n\n\t\t\tconst App = ()=> {\n\t\t\t\treturn <div>\n\t\t\t\t\t<span id=\"bar\" />\n\t\t\t\t\t<span id=\"bar\" />\n\t\t\t\t</div>\n\t\t\t}\n\n\t\t\t$mol_assert_fail( ()=> <App id=\"foo\" />, 'JSX already has tag with id \"foo/bar\"' )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t'Owner based guid generationn'() {\n\n\t\t\tconst Foo = ()=> {\n\t\t\t\treturn <div>\n\t\t\t\t\t<Bar id=\"middle\" icon={ ()=> <img id=\"icon\" /> } />\n\t\t\t\t</div>\n\t\t\t}\n\n\t\t\tconst Bar = ( props: { icon: ()=> Element } )=> {\n\t\t\t\treturn <span>{ props.icon() }</span>\n\t\t\t}\n\n\t\t\tconst dom = <Foo id=\"app\" />\n\n\t\t\t$mol_assert_equal( dom.outerHTML, '<div id=\"app\" class=\"Foo\"><span id=\"app/middle\" class=\"Foo_middle Bar\"><img id=\"app/icon\" class=\"Foo_icon\"></span></div>' )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t'Fail on same ids from different caller'() {\n\n\t\t\tconst Foo = ()=> {\n\t\t\t\treturn <div>\n\t\t\t\t\t<img id=\"icon\" />\n\t\t\t\t\t<Bar id=\"bar\" icon={ ()=> <img id=\"icon\" /> } />\n\t\t\t\t</div>\n\t\t\t}\n\n\t\t\tconst Bar = ( props: { icon: ()=> Element } )=> {\n\t\t\t\treturn <span>{ props.icon() }</span>\n\t\t\t}\n\n\t\t\t$mol_assert_fail( ()=> <Foo id=\"foo\" />, 'JSX already has tag with id \"foo/icon\"' )\n\t\t\t\n\t\t} ,\n\t\t\n\t})\n\t\n}\n","namespace $ {\n\n\t/** Lazy computed lists with native Array interface. $mol_range2_array is mutable but all derived ranges are immutable. */\n\texport function $mol_range2< Item = number >(\n\t\titem: Item[] | ( ( index : number )=> Item ) = index => index as any ,\n\t\tsize = ()=> Number.POSITIVE_INFINITY ,\n\t): Item[] {\n\t\t\n\t\tconst source = typeof item === 'function' ? new $mol_range2_array< Item >() : item\n\t\t\n\t\tif( typeof item !== 'function' ) {\n\t\t\titem = index => source[ index ]\n\t\t\tsize = ()=> source.length\n\t\t}\n\n\t\treturn new Proxy( source , {\n\n\t\t\tget( target , field ) {\n\n\t\t\t\tif( typeof field === 'string' ) {\n\t\t\t\t\tif( field === 'length' ) return size()\n\t\t\t\t\t\n\t\t\t\t\tconst index = Number( field )\n\t\t\t\t\tif( index < 0 ) return undefined\n\t\t\t\t\tif( index >= size() ) return undefined\n\t\t\t\t\tif( index === Math.trunc( index ) ) return ( item as any )( index )\n\t\t\t\t}\n\n\t\t\t\treturn $mol_range2_array.prototype[ field as any ]\n\t\t\t} ,\n\n\t\t\tset( target , field ) {\n\t\t\t\treturn $mol_fail( new TypeError( `Lazy range is read only (trying to set field ${ JSON.stringify( field ) })` ) )\n\t\t\t} ,\n\n\t\t\townKeys( target ) {\n\t\t\t\treturn [ ... Array( size() ) ].map( ( v, i ) => String( i ) ).concat( 'length' )\n\t\t\t} ,\n\n\t\t\tgetOwnPropertyDescriptor( target , field ) : PropertyDescriptor | undefined {\n\t\t\t\t\n\t\t\t\tif( field === \"length\" ) return {\n\t\t\t\t\tvalue : size() ,\n\t\t\t\t\twritable : true ,\n\t\t\t\t\tenumerable : false ,\n\t\t\t\t\tconfigurable : false ,\n\t\t\t\t}\n\n\t\t\t\tconst index = Number( field )\n\t\t\t\tif( index === Math.trunc( index ) ) return {\n\t\t\t\t\tget : ()=> this.get!( target , field , this ) ,\n\t\t\t\t\tenumerable : true ,\n\t\t\t\t\tconfigurable : true ,\n\t\t\t\t}\n\n\t\t\t\treturn Object.getOwnPropertyDescriptor( target , field )\n\t\t\t}\n\n\t\t} )\n\n\t}\n\n\texport class $mol_range2_array< Item > extends Array< Item > {\n\t\t\n\t\t// Lazy\n\t\tconcat( ... tail : Item[][] ) : Item[] {\n\t\t\tif( tail.length === 0 ) return this as any\n\n\t\t\tif( tail.length > 1 ) {\n\t\t\t\tlet list = this as any\n\t\t\t\tfor( let item of tail ) list = list.concat( item )\n\t\t\t\treturn list\n\t\t\t}\n\t\t\t\n\t\t\treturn $mol_range2(\n\t\t\t\tindex => index < this.length ? this[ index ] : tail[0][ index - this.length ] ,\n\t\t\t\t()=> this.length + tail[0].length ,\n\t\t\t)\n\t\t}\n\n\t\t// Lazy\n\t\tfilter< Context > (\n\t\t\tcheck : ( val : Item , index : number , list : Item[] )=> boolean ,\n\t\t\tcontext? : Context ,\n\t\t) {\n\t\t\t\n\t\t\tconst filtered = [] as Item[]\n\t\t\tlet cursor = -1\n\t\t\t\n\t\t\treturn $mol_range2(\n\t\t\t\tindex => {\n\t\t\t\t\t\n\t\t\t\t\twhile( cursor < this.length && index >= filtered.length - 1 ) {\n\t\t\t\t\t\tconst val = this[ ++ cursor ]\n\t\t\t\t\t\tif( check( val, cursor, this ) ) filtered.push( val )\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\treturn filtered[ index ]\n\t\t\t\t},\n\t\t\t\t()=> cursor < this.length ? Number.POSITIVE_INFINITY : filtered.length,\n\t\t\t)\n\t\t\t\n\t\t}\n\n\t\t// Diligent\n\t\tforEach< Context > (\n\t\t\tproceed : ( this : Context , val : Item , index : number , list : Item[] )=> void ,\n\t\t\tcontext? : Context,\n\t\t) {\n\t\t\tfor( let [ key , value ] of this.entries() ) proceed.call( context as Context , value , key , this )\n\t\t}\n\n\t\t// Lazy\n\t\tmap< Item_out , Context > (\n\t\t\tproceed : ( this : Context , val : Item , index : number , list : Item[] )=> Item_out ,\n\t\t\tcontext? : Context ,\n\t\t) : Item_out[] {\n\t\t\treturn $mol_range2(\n\t\t\t\tindex => proceed.call( context as Context , this[ index ] , index , this ) ,\n\t\t\t\t()=> this.length ,\n\t\t\t)\n\t\t}\n\n\t\t// Diligent\n\t\treduce< Result > (\n\t\t\tmerge : ( result : Result , val : Item , index : number , list : Item[] )=> Result ,\n\t\t\tresult? : Result ,\n\t\t) {\n\t\t\tlet index = 0\n\n\t\t\tif( arguments.length === 1 ) {\n\t\t\t\tresult = this[ index ++ ] as any\n\t\t\t}\n\t\t\t\n\t\t\tfor( ; index < this.length ; ++ index ) {\n\t\t\t\tresult = merge( result as Result , this[ index ] , index , this as any )\n\t\t\t}\n\t\t\t\n\t\t\treturn result\n\t\t}\n\n\t\t// Lazy\n\t\ttoReversed(): Item[] {\n\t\t\treturn $mol_range2(\n\t\t\t\tindex => this[ this.length - 1 - index ] ,\n\t\t\t\t()=> this.length ,\n\t\t\t)\n\t\t}\n\n\t\t// Lazy\n\t\tslice( from = 0 , to = this.length ) {\n\t\t\treturn $mol_range2(\n\t\t\t\tindex => this[ from + index ] ,\n\t\t\t\t()=> Math.min( to , this.length ) - from ,\n\t\t\t)\n\t\t}\n\n\t\t// Lazy\n\t\tsome< Context > (\n\t\t\tcheck : ( this : Context , val : Item , index : number , list : Item[] )=> boolean ,\n\t\t\tcontext? : Context ,\n\t\t) {\n\t\t\tfor( let index = 0 ; index < this.length ; ++ index ) {\n\t\t\t\tif( check.call( context as Context , this[ index ] , index , this ) ) return true\n\t\t\t}\n\t\t\treturn false\n\t\t}\n\n\t\t// Lazy\n\t\tevery< Narrow extends Item, Context = null >( check: ( value: Item, index: number, array: Item[] )=> value is Narrow, context?: Context ): this is Narrow[]\n\t\tevery< Context = null > (\n\t\t\tcheck : ( this : Context , val : Item , index : number , list : Item[] )=> boolean ,\n\t\t\tcontext? : Context ,\n\t\t) {\n\t\t\tfor( let index = 0 ; index < this.length ; ++ index ) {\n\t\t\t\tif( !check.call( context as Context , this[ index ] , index , this as any as Item[] ) ) return false\n\t\t\t}\n\t\t\treturn true\n\t\t}\n\n\t\treverse() {\n\t\t\treturn $mol_fail( new TypeError( `Mutable reverse is forbidden. Use toReversed instead.` ) )\n\t\t}\n\n\t\tsort() {\n\t\t\treturn $mol_fail( new TypeError( `Mutable sort is forbidden. Use toSorted instead.` ) )\n\t\t}\n\t\t\n\t\tindexOf( needle: Item ) {\n\t\t\treturn this.findIndex( item => item === needle )\n\t\t}\n\t\t\n\t\t[Symbol.toPrimitive]() {\n\t\t\treturn $mol_guid()\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\t$mol_test({\n\n\t\t'lazy calls'() {\n\n\t\t\tlet calls = 0\n\t\t\t\n\t\t\tconst list = $mol_range2( index => ( ++ calls , index ) , ()=> 10 )\n\n\t\t\t$mol_assert_equal( true, list instanceof Array )\n\t\t\t$mol_assert_equal( list.length , 10 )\n\n\t\t\t$mol_assert_equal( list[-1] , undefined )\n\t\t\t$mol_assert_equal( list[0] , 0 )\n\t\t\t$mol_assert_equal( list[9] , 9 )\n\t\t\t$mol_assert_equal( list[9.5] , undefined )\n\t\t\t$mol_assert_equal( list[10] , undefined )\n\n\t\t\t$mol_assert_equal( calls , 2 )\n\n\t\t} ,\n\n\t\t'infinity list'() {\n\n\t\t\tlet calls = 0\n\t\t\t\n\t\t\tconst list = $mol_range2( index => ( ++ calls , index ) )\n\n\t\t\t$mol_assert_equal( list.length , Number.POSITIVE_INFINITY )\n\n\t\t\t$mol_assert_equal( list[0] , 0 )\n\t\t\t$mol_assert_equal( list[4] , 4 )\n\t\t\t$mol_assert_equal( list[Number.MAX_SAFE_INTEGER] , Number.MAX_SAFE_INTEGER )\n\t\t\t$mol_assert_equal( list[Number.POSITIVE_INFINITY] , undefined )\n\t\t\t\n\t\t\t$mol_assert_equal( calls , 3 )\n\n\t\t} ,\n\n\t\t'stringify'() {\n\n\t\t\tconst list = $mol_range2( i => i , ()=> 5 )\n\n\t\t\t$mol_assert_equal( list.toString() , '0,1,2,3,4' )\n\t\t\t$mol_assert_equal( list.join(';') , '0;1;2;3;4' )\n\n\t\t} ,\n\n\t\t'for-of'() {\n\n\t\t\tlet log = ''\n\n\t\t\tfor( let i of $mol_range2( i => i + 1 , ()=> 5 ) ) {\n\t\t\t\tlog += i\n\t\t\t}\n\n\t\t\t$mol_assert_equal( log , '12345' )\n\n\t\t} ,\n\n\t\t'for-in'() {\n\n\t\t\tlet log = ''\n\n\t\t\tfor( let i in $mol_range2( i => i , ()=> 5 ) ) {\n\t\t\t\tlog += i\n\t\t\t}\n\n\t\t\t$mol_assert_equal( log , '01234' )\n\n\t\t} ,\n\n\t\t'forEach'() {\n\n\t\t\tlet log = ''\n\n\t\t\t$mol_range2( i => i , ()=> 5 ).forEach( i => log += i )\n\n\t\t\t$mol_assert_equal( log , '01234' )\n\n\t\t} ,\n\n\t\t'reduce'() {\n\n\t\t\tlet calls = 0\n\t\t\t\n\t\t\tconst list = $mol_range2().slice( 1 , 6 )\n\n\t\t\t$mol_assert_equal( list.reduce( ( s , v )=> s + v ) , 15 )\n\t\t\t$mol_assert_equal( list.reduce( ( s , v )=> s + v , 5 ) , 20 )\n\n\t\t} ,\n\n\t\t'lazy concat'() {\n\n\t\t\tlet calls1 = 0\n\t\t\tlet calls2 = 0\n\t\t\t\n\t\t\tconst list = $mol_range2( index => ( ++ calls1 , index ) , ()=> 5 ).concat(\n\t\t\t\t[ 0 , 1 , 2 , 3 , 4 ] ,\n\t\t\t\t$mol_range2( index => ( ++ calls2 , index ) , ()=> 5 ) ,\n\t\t\t)\n\n\t\t\t$mol_assert_equal( true, list instanceof Array )\n\t\t\t$mol_assert_equal( list.length , 15 )\n\n\t\t\t$mol_assert_equal( list[0] , 0 )\n\t\t\t$mol_assert_equal( list[4] , 4 )\n\t\t\t$mol_assert_equal( list[5] , 0 )\n\t\t\t$mol_assert_equal( list[9] , 4 )\n\t\t\t$mol_assert_equal( list[10] , 0 )\n\t\t\t$mol_assert_equal( list[14] , 4 )\n\t\t\t$mol_assert_equal( list[15] , undefined )\n\t\t\t\n\t\t\t$mol_assert_equal( calls1 , 2 )\n\t\t\t$mol_assert_equal( calls2 , 2 )\n\n\t\t} ,\n\n\t\t'lazy filter'() {\n\n\t\t\tlet calls = 0\n\t\t\t\n\t\t\tconst list = $mol_range2( index => ( ++ calls , index ) , ()=> 15 ).filter( v => v % 2 ).slice( 0 , 3 )\n\n\t\t\t$mol_assert_equal( true, list instanceof Array )\n\t\t\t$mol_assert_equal( list.length , 3 )\n\n\t\t\t$mol_assert_equal( list[0] , 1 )\n\t\t\t$mol_assert_equal( list[2] , 5 )\n\t\t\t$mol_assert_equal( list[3] , undefined )\n\t\t\t\n\t\t\t$mol_assert_equal( calls , 8 )\n\n\t\t} ,\n\n\t\t'lazy reverse'() {\n\t\t\tlet calls = 0\n\n\t\t\tconst list = $mol_range2( index => ( ++ calls , index ) , ()=> 10 ).toReversed().slice(0, 3)\n\n\t\t\t$mol_assert_equal( true, list instanceof Array )\n\t\t\t$mol_assert_equal( list.length , 3 )\n\n\t\t\t$mol_assert_equal( list[0] , 9 )\n\t\t\t$mol_assert_equal( list[2] , 7 )\n\t\t\t$mol_assert_equal( list[3] , undefined )\n\t\t\t$mol_assert_equal( calls , 2 )\n\n\t\t} ,\n\n\t\t'lazy map'() {\n\n\t\t\tlet calls1 = 0\n\t\t\tlet calls2 = 0\n\t\t\t\n\t\t\tconst source = $mol_range2( index => ( ++ calls1 , index ) , ()=> 5 )\n\t\t\tconst target = source.map(\n\t\t\t\t( item , index , self )=> {\n\t\t\t\t\t++ calls2\n\t\t\t\t\t$mol_assert_equal( source , self )\n\t\t\t\t\treturn index + 10\n\t\t\t\t} ,\n\t\t\t\t()=> 5 ,\n\t\t\t)\n\n\t\t\t$mol_assert_equal( true, target instanceof Array )\n\t\t\t$mol_assert_equal( target.length , 5 )\n\n\t\t\t$mol_assert_equal( target[0] , 10 )\n\t\t\t$mol_assert_equal( target[4] , 14 )\n\t\t\t$mol_assert_equal( target[5] , undefined )\n\t\t\t\n\t\t\t$mol_assert_equal( calls1 , 2 )\n\t\t\t$mol_assert_equal( calls2 , 2 )\n\n\t\t} ,\n\n\t\t'lazy slice'() {\n\n\t\t\tlet calls = 0\n\t\t\t\n\t\t\tconst list = $mol_range2( index => ( ++ calls , index ) , ()=> 10 ).slice( 3 , 7 )\n\n\t\t\t$mol_assert_equal( true, list instanceof Array )\n\t\t\t$mol_assert_equal( list.length , 4 )\n\n\t\t\t$mol_assert_equal( list[0] , 3 )\n\t\t\t$mol_assert_equal( list[3] , 6 )\n\t\t\t$mol_assert_equal( list[4] , undefined )\n\t\t\t\n\t\t\t$mol_assert_equal( calls , 2 )\n\n\t\t} ,\n\n\t\t'lazy some'() {\n\n\t\t\tlet calls = 0\n\t\t\t\n\t\t\t$mol_assert_equal( true, $mol_range2( index => ( ++ calls , index ) , ()=> 5 ).some( v => v >= 2 ) )\n\n\t\t\t$mol_assert_equal( calls , 3 )\n\n\t\t\t$mol_assert_equal( false, $mol_range2( i => i , ()=> 0 ).some( v => true ) )\n\t\t\t$mol_assert_equal( true, $mol_range2( i => i ).some( v => v > 5 ) )\n\t\t} ,\n\n\t\t'lazy every'() {\n\n\t\t\tlet calls = 0\n\t\t\t\n\t\t\t$mol_assert_equal( false, $mol_range2( index => ( ++ calls , index ) , ()=> 5 ).every( v => v < 2 ) )\n\n\t\t\t$mol_assert_equal( calls , 3 )\n\n\t\t\t$mol_assert_equal( true, $mol_range2( i => i , ()=> 0 ).every( v => false ) )\n\t\t\t$mol_assert_equal( false, $mol_range2( i => i ).every( v => v < 5 ) )\n\t\t} ,\n\n\t\t'lazyfy'() {\n\n\t\t\tlet calls = 0\n\t\t\t\n\t\t\tconst list = $mol_range2([ 0 , 1 , 2 , 3 , 4 , 5 ]).map( i => ( ++ calls , i + 10 ) ).slice( 2 )\n\n\t\t\t$mol_assert_equal( true, list instanceof Array )\n\t\t\t$mol_assert_equal( list.length , 4 )\n\n\t\t\t$mol_assert_equal( calls , 0 )\n\t\t\t\n\t\t\t$mol_assert_equal( list[0] , 12 )\n\t\t\t$mol_assert_equal( list[3] , 15 )\n\t\t\t$mol_assert_equal( list[4] , undefined )\n\t\t\t\n\t\t\t$mol_assert_equal( calls , 2 )\n\n\t\t} ,\n\n\t\t'prevent modification'() {\n\n\t\t\tconst list = $mol_range2( i => i , ()=> 5 )\n\n\t\t\t$mol_assert_fail( ()=> list.push( 4 ) , TypeError )\n\t\t\t$mol_assert_fail( ()=> list.pop() , TypeError )\n\t\t\t\n\t\t\t$mol_assert_fail( ()=> list.unshift( 4 ) , TypeError )\n\t\t\t$mol_assert_fail( ()=> list.shift() , TypeError )\n\t\t\t\n\t\t\t$mol_assert_fail( ()=> list.splice( 1 , 2 ) , TypeError )\n\t\t\t$mol_assert_fail( ()=> list[ 1 ] = 2 , TypeError )\n\t\t\t\n\t\t\t$mol_assert_fail( ()=> list.reverse() , TypeError )\n\t\t\t$mol_assert_fail( ()=> list.sort() , TypeError )\n\n\t\t\t$mol_assert_equal( list.toString() , '0,1,2,3,4' )\n\n\t\t}\n\n\t})\n\n}\n","/** @jsx $mol_jsx */\nnamespace $ {\n\n\t$mol_test({\n\n\t\t'nulls & undefineds'() {\n\n\t\t\t$mol_assert_ok( $mol_compare_deep( null , null ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( undefined , undefined ) )\n\t\t\t\n\t\t\t$mol_assert_not( $mol_compare_deep( undefined , null ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( {} , null ) )\n\t\t\t\n\t\t} ,\n\n\t\t'number'() {\n\t\t\t\n\t\t\t$mol_assert_ok( $mol_compare_deep( 1 , 1 ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( Number.NaN , Number.NaN ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( 1 , 2 ) )\n\t\t\t\n\t\t\t$mol_assert_ok( $mol_compare_deep( Object( 1 ) , Object( 1 ) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( Object( 1 ) , Object( 2 ) ) )\n\t\t\t\n\t\t} ,\n\n\t\t'POJO'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( {} , {} ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( { a : 1 } , { b : 2 } ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( { a : 1 } , { a : 2 } ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( {} , { a : undefined } ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( { a: 1, b: 2 } , { b: 2, a: 1 } ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( { a : { b : 1 } } , { a : { b : 1 } } ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( Object.create(null), Object.create(null) ) )\n\t\t} ,\n\n\t\t'Array'() {\n\t\t\t\n\t\t\t$mol_assert_ok( $mol_compare_deep( [] , [] ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( [ 1 , [2] ] , [ 1 , [2] ] ) )\n\t\t\t\n\t\t\t$mol_assert_not( $mol_compare_deep( [ 1 , 2 ] , [ 1 , 3 ] ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( [ 1 , 2 , ] , [ 1 , 3 , undefined ] ) )\n\t\t\t\n\t\t\t$mol_assert_not( $mol_compare_deep( $mol_range2().slice(0,0), new Array() ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( $mol_range2(), $mol_range2() ) )\n\t\t\t\n\t\t} ,\n\n\t\t'Non POJO are different'() {\n\t\t\t\n\t\t\tclass Thing extends Object {}\n\t\t\t$mol_assert_not( $mol_compare_deep( new Thing , new Thing ) )\n\t\t\t\n\t\t\t$mol_assert_not( $mol_compare_deep( ()=> 1 , ()=>1 ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new RangeError( 'Test error' ) , new RangeError( 'Test error' ) ) )\n\t\t\t\n\t\t} ,\n\n\t\t'POJO with symbols'() {\n\t\t\tconst sym = Symbol()\n\t\t\t$mol_assert_ok( $mol_compare_deep( { [ sym ]: true }, { [ sym ]: true } ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( { [ Symbol() ]: true }, { [ Symbol() ]: true } ) )\n\t\t} ,\n\n\t\t'same POJOs with cyclic reference'() {\n\n\t\t\tconst a = { foo : {} }\n\t\t\t;(a as any)['self'] = a\n\n\t\t\tconst b = { foo : {} }\n\t\t\t;(b as any)['self'] = b\n\n\t\t\t$mol_assert_ok( $mol_compare_deep( a , b ) )\n\n\t\t} ,\n\n\t\t'same POJOs with cyclic reference with cache warmup'() {\n\t\t\tconst obj1 = { test: 1, obj3: null as unknown as Object }\n\t\t\tconst obj1_copy = { test: 1, obj3: null as unknown as Object }\n\t\t\tconst obj2 = { test: 2, obj1 }\n\t\t\tconst obj2_copy = { test: 2, obj1: obj1_copy }\n\t\t\tconst obj3 = { test: 3, obj2 }\n\t\t\tconst obj3_copy = { test: 3, obj2: obj2_copy }\n\n\t\t\tobj1.obj3 = obj3\n\t\t\tobj1_copy.obj3 = obj3_copy\n\n\t\t\t// warmup cache\n\t\t\t$mol_assert_not( $mol_compare_deep( obj1 , {} as any ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( obj2 , {} as any ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( obj3 , {} as any ) )\n\n\t\t\t$mol_assert_ok( $mol_compare_deep( obj3 , obj3_copy ) )\n\n\t\t} ,\n\n\t\t'Date'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Date( 12345 ) , new Date( 12345 ) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new Date( 12345 ) , new Date( 12346 ) ) )\n\t\t} ,\n\n\t\t'RegExp'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( /\\x22/mig , /\\x22/mig ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( /\\x22/mig , /\\x21/mig ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( /\\x22/mig , /\\x22/mg ) )\n\t\t} ,\n\n\t\t'Error'() {\n\t\t\t\n\t\t\t$mol_assert_not( $mol_compare_deep( new Error( 'xxx' ) , new Error( 'xxx' ) ) )\n\n\t\t\tconst fail = ( message: string )=> new Error( message )\n\t\t\t\n\t\t\t$mol_assert_ok( $mol_compare_deep(\n\t\t\t\t... [ 'xxx' , 'xxx' ].map( msg => new Error( msg ) ) as [ Error, Error ]\n\t\t\t) )\n\t\t\t\n\t\t\t$mol_assert_not( $mol_compare_deep(\n\t\t\t\t... [ 'xxx' , 'yyy' ].map( msg => new Error( msg ) ) as [ Error, Error ]\n\t\t\t) )\n\t\t\t\n\t\t} ,\n\n\t\t'Map'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Map , new Map ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Map([ [ 1 , [2] ] ]) , new Map([ [ 1 , [2] ] ]) ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Map([ [ [1] , 2 ] ]) , new Map([ [ [1] , 2 ] ]) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new Map([ [ 1 , 2 ] ]) , new Map([ [ 1 , 3 ] ]) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new Map([ [ [1] , 2 ] ]) , new Map([ [ [3] , 2 ] ]) ) )\n\t\t} ,\n\t\t\n\t\t'Set'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Set , new Set ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Set([ 1 , [2] ]) , new Set([ 1 , [2] ]) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new Set([ 1 ]) , new Set([ 2 ]) ) )\n\t\t} ,\n\t\t\n\t\t'Uint8Array'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Uint8Array , new Uint8Array ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Uint8Array([ 0 ]) , new Uint8Array([ 0 ]) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new Uint8Array([ 0 ]) , new Uint8Array([ 1 ]) ) )\n\t\t} ,\n\t\t\n\t\t'DataView'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( new DataView( new Uint8Array().buffer ) , new DataView( new Uint8Array().buffer ) ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( new DataView( new Uint8Array([ 0 ]).buffer ) , new DataView( new Uint8Array([ 0 ]).buffer ) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new DataView( new Uint8Array([ 0 ]). buffer ) , new DataView( new Uint8Array([ 1 ]).buffer ) ) )\n\t\t} ,\n\t\t\n\t\t'Serializale'() {\n\t\t\t\n\t\t\tclass User {\n\t\t\t\t\n\t\t\t\tconstructor(\n\t\t\t\t\treadonly name: string,\n\t\t\t\t\treadonly rand = Math.random(),\n\t\t\t\t) {}\n\t\t\t\t\n\t\t\t\t[ Symbol.toPrimitive ]( mode: 'default' | 'number' | 'string' ) {\n\t\t\t\t\treturn this.name\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_ok( $mol_compare_deep( new User( 'Jin' ), new User( 'Jin' ) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new User( 'Jin' ), new User( 'John' ) ) )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t'Iterable'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( new URLSearchParams({ foo: 'bar' }), new URLSearchParams({ foo: 'bar' }) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new URLSearchParams({ foo: 'xxx' }), new URLSearchParams({ foo: 'yyy' }) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new URLSearchParams({ foo: 'xxx', bar: 'yyy' }), new URLSearchParams({ bar: 'yyy', foo: 'xxx' }) ) )\n\t\t} ,\n\t\t\n\t})\n\n}\n","namespace $ {\n\t\n\t/**\n\t * Argument must be Truthy\n\t * @deprecated use $mol_assert_equal instead\n\t */\n\texport function $mol_assert_ok( value : any ) {\n\t\tif( value ) return\n\t\t$mol_fail( new Error( `${value} ≠ true` ) )\n\t}\n\t\n\t/**\n\t * Argument must be Falsy\n\t * @deprecated use $mol_assert_equal instead\n\t */\n\texport function $mol_assert_not( value : any ) {\n\t\tif( !value ) return\n\t\t$mol_fail( new Error( `${value} ≠ false` ) )\n\t}\n\t\n\t/**\n\t * Handler must throw an error.\n\t * @example\n\t * $mol_assert_fail( ()=>{ throw new Error( 'Parse error' ) } ) // Passes because throws error\n\t * $mol_assert_fail( ()=>{ throw new Error( 'Parse error' ) } , 'Parse error' ) // Passes because throws right message\n\t * $mol_assert_fail( ()=>{ throw new Error( 'Parse error' ) } , Error ) // Passes because throws right class\n\t * @see https://mol.hyoo.ru/#!section=docs/=9q9dv3_fgxjsf\n\t */\n\texport function $mol_assert_fail(\n\t\thandler: ()=> any ,\n\t\tErrorRight: string | typeof Error | typeof Promise\n\t) {\n\t\t\n\t\tconst fail = $.$mol_fail\n\t\t\n\t\ttry {\n\t\t\t$.$mol_fail = $.$mol_fail_hidden\n\t\t\t\n\t\t\thandler()\n\n\t\t} catch( error: any ) {\n\t\t\t\n\t\t\t$.$mol_fail = fail\n\n\t\t\tif( typeof ErrorRight === 'string' ) {\n\t\t\t\t$mol_assert_equal( error.message ?? error, ErrorRight )\n\t\t\t} else {\n\t\t\t\t$mol_assert_equal( error instanceof ErrorRight, true )\n\t\t\t}\n\t\t\t\n\t\t\treturn error\n\n\t\t} finally {\n\t\t\t$.$mol_fail = fail\n\t\t}\n\n\t\t$mol_fail( new Error( 'Not failed', { cause: { expect: ErrorRight } } ) )\n\t}\n\t\n\t/** @deprecated Use $mol_assert_equal */\n\texport function $mol_assert_like< Value >( ... args : [ Value, Value, ...Value[] ] ) {\n\t\t$mol_assert_equal( ... args )\n\t}\n\t\n\t/**\n\t * All arguments must not be structural equal to each other.\n\t * @example\n\t * $mol_assert_unique( 1 , 2 , 3 ) // Passes\n\t * $mol_assert_unique( 1 , 1 , 2 ) // Fails because 1 === 1\n\t * @see https://mol.hyoo.ru/#!section=docs/=9q9dv3_fgxjsf\n\t */\n\texport function $mol_assert_unique( ... args : [ any, any, ...any[] ] ) {\n\t\t\n\t\tfor( let i = 0 ; i < args.length ; ++i ) {\n\t\t\tfor( let j = 0 ; j < args.length ; ++j ) {\n\t\t\t\t\n\t\t\t\tif( i === j ) continue\n\t\t\t\tif( !$mol_compare_deep( args[i], args[j] ) ) continue\n\t\t\t\t\n\t\t\t\treturn $mol_fail( new Error(\n\t\t\t\t\t`Uniquesess assertion failure`,\n\t\t\t\t\t{ cause: { [i]: args[i], [i]: args[i] } },\n\t\t\t\t) )\n\t\t\t\t\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\t\n\t/**\n\t * All arguments must be structural equal each other.\n\t * @example\n\t * $mol_assert_like( [1] , [1] , [1] ) // Passes\n\t * $mol_assert_like( [1] , [1] , [2] ) // Fails because 1 !== 2\n\t * @see https://mol.hyoo.ru/#!section=docs/=9q9dv3_fgxjsf\n\t */\n\texport function $mol_assert_equal< Value >( ... args : [ Value, Value, ... Value[] ] ) {\n\t\tfor( let i = 1 ; i < args.length ; ++i ) {\n\t\t\t\n\t\t\tif( $mol_compare_deep( args[0] , args[i] ) ) continue\n\t\t\t\n\t\t\treturn $mol_fail( new Error(\n\t\t\t\t`Equality assertion failure`,\n\t\t\t\t{ cause: { 0: args[0], [i]: args[i] } },\n\t\t\t) )\n\t\t\t\n\t\t}\n\t}\n\t\n}\n","namespace $ {\n\t$mol_test( {\n\t\t\n\t\t'must be false'() {\n\t\t\t$mol_assert_not( 0 )\n\t\t} ,\n\t\t\n\t\t'must be true'() {\n\t\t\t$mol_assert_ok( 1 )\n\t\t} ,\n\t\t\n\t\t'two must be equal'() {\n\t\t\t$mol_assert_equal( 2 , 2 )\n\t\t} ,\n\t\t\n\t\t'three must be equal'() {\n\t\t\t$mol_assert_equal( 2 , 2 , 2 )\n\t\t} ,\n\t\t\n\t\t'two must be unique'() {\n\t\t\t$mol_assert_unique( [ 2 ] , [ 3 ] )\n\t\t} ,\n\t\t\n\t\t'three must be unique'() {\n\t\t\t$mol_assert_unique( [ 1 ] , [ 2 ] , [ 3 ] )\n\t\t} ,\n\t\t\n\t\t'two must be alike'() {\n\t\t\t$mol_assert_equal( [ 3 ] , [ 3 ] )\n\t\t} ,\n\t\t\n\t\t'three must be alike'() {\n\t\t\t$mol_assert_equal( [ 3 ] , [ 3 ] , [ 3 ] )\n\t\t} ,\n\n\t\t'two object must be alike'() {\n\t\t\t$mol_assert_equal( { a: 1 }, { a: 1 } )\n\t\t} ,\n\n\t\t'three object must be alike'() {\n\t\t\t$mol_assert_equal( { a: 1 }, { a: 1 }, { a: 1 } )\n\t\t} ,\n\t\t\n\t} )\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'get'() {\n\t\t\tconst proxy = $mol_delegate( {} as any , ()=> ({ foo : 777 }) )\n\t\t\t$mol_assert_equal( proxy.foo , 777 )\n\t\t},\n\n\t\t'has'() {\n\t\t\tconst proxy = $mol_delegate( {} as any , ()=> ({ foo : 777 }) )\n\t\t\t$mol_assert_equal( 'foo' in proxy , true )\n\t\t},\n\n\t\t'set'() {\n\t\t\tconst target = { foo : 777 }\n\t\t\tconst proxy = $mol_delegate( {} as any , ()=> target )\n\t\t\tproxy.foo = 123\n\t\t\t$mol_assert_equal( target.foo , 123 )\n\t\t},\n\t\t\n\t\t'getOwnPropertyDescriptor'() {\n\n\t\t\tconst proxy = $mol_delegate( {} as any , ()=> ({ foo : 777 }) )\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\tObject.getOwnPropertyDescriptor( proxy , 'foo' ),\n\t\t\t\t{\n\t\t\t\t\tvalue: 777,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t},\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'ownKeys'() {\n\n\t\t\tconst proxy = $mol_delegate(\n\t\t\t\t{} as any ,\n\t\t\t\t()=> ({ foo : 777 , [ Symbol.toStringTag ] : 'bar' }),\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\tReflect.ownKeys( proxy ),\n\t\t\t\t[ 'foo' , Symbol.toStringTag ],\n\t\t\t)\n\n\t\t},\n\n\t\t'getPrototypeOf'() {\n\n\t\t\tclass Foo {}\n\n\t\t\tconst proxy = $mol_delegate(\n\t\t\t\t{} as any ,\n\t\t\t\t()=> new Foo,\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tObject.getPrototypeOf( proxy ),\n\t\t\t\tFoo.prototype,\n\t\t\t)\n\n\t\t},\n\n\t\t'setPrototypeOf'() {\n\n\t\t\tclass Foo {}\n\t\t\tconst target = {}\n\n\t\t\tconst proxy = $mol_delegate(\n\t\t\t\t{} ,\n\t\t\t\t()=> target,\n\t\t\t)\n\n\t\t\tObject.setPrototypeOf( proxy , Foo.prototype )\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tObject.getPrototypeOf( target ),\n\t\t\t\tFoo.prototype,\n\t\t\t)\n\n\t\t},\n\n\t\t'instanceof'() {\n\n\t\t\tclass Foo {}\n\n\t\t\tconst proxy = $mol_delegate(\n\t\t\t\t{} ,\n\t\t\t\t()=> new Foo,\n\t\t\t)\n\n\t\t\t$mol_assert_ok( proxy instanceof Foo )\n\t\t\t$mol_assert_ok( proxy instanceof $mol_delegate )\n\n\t\t},\n\n\t\t'autobind'() {\n\n\t\t\tclass Foo {}\n\n\t\t\tconst proxy = $mol_delegate(\n\t\t\t\t{} ,\n\t\t\t\t()=> new Foo,\n\t\t\t)\n\n\t\t\t$mol_assert_ok( proxy instanceof Foo )\n\t\t\t$mol_assert_ok( proxy instanceof $mol_delegate )\n\n\t\t},\n\n\t})\n}\n","namespace $ {\n\t$mol_test( {\n\t\t'span for same uri'( $ ) {\n\t\t\tconst span = new $mol_span('test.ts', '', 1, 3, 4)\n\t\t\tconst child = span.span(4, 5, 8)\n\n\t\t\t$mol_assert_equal(child.uri, 'test.ts')\n\t\t\t$mol_assert_equal(child.row, 4)\n\t\t\t$mol_assert_equal(child.col, 5)\n\t\t\t$mol_assert_equal(child.length, 8)\n\t\t},\n\n\t\t'span after of given position'( $ ) {\n\t\t\tconst span = new $mol_span('test.ts', '', 1, 3, 4)\n\t\t\tconst child = span.after(11)\n\n\t\t\t$mol_assert_equal(child.uri, 'test.ts')\n\t\t\t$mol_assert_equal(child.row, 1)\n\t\t\t$mol_assert_equal(child.col, 7)\n\t\t\t$mol_assert_equal(child.length, 11)\n\t\t},\n\n\t\t'slice span - regular'( $ ) {\n\t\t\tconst span = new $mol_span('test.ts', '', 1, 3, 5)\n\t\t\tconst child = span.slice(1, 4)\n\n\t\t\t$mol_assert_equal(child.row, 1)\n\t\t\t$mol_assert_equal(child.col, 4)\n\t\t\t$mol_assert_equal(child.length, 3)\n\n\t\t\tconst child2 = span.slice(2, 2)\n\n\t\t\t$mol_assert_equal(child2.col, 5)\n\t\t\t$mol_assert_equal(child2.length, 0)\n\t\t},\n\n\t\t'slice span - negative'( $ ) {\n\t\t\tconst span = new $mol_span('test.ts', '', 1, 3, 5)\n\t\t\tconst child = span.slice(-3, -1)\n\n\t\t\t$mol_assert_equal(child.row, 1)\n\t\t\t$mol_assert_equal(child.col, 5)\n\t\t\t$mol_assert_equal(child.length, 2)\n\t\t},\n\n\t\t'slice span - out of range'( $ ) {\n\t\t\tconst span = new $mol_span('test.ts', '', 1, 3, 5)\n\n\t\t\t$mol_assert_fail( ()=> span.slice(-1, 3), `End value '3' can't be less than begin value (test.ts#1:3/5)` )\n\t\t\t$mol_assert_fail( ()=> span.slice(1, 6), `End value '6' out of range (test.ts#1:3/5)` )\n\t\t\t$mol_assert_fail( ()=> span.slice(1, 10), `End value '10' out of range (test.ts#1:3/5)` )\n\t\t},\n\n\t\t'error handling'( $ ) {\n\t\t\tconst span = new $mol_span('test.ts', '', 1, 3, 4)\n\t\t\tconst error = span.error('Some error')\n\n\t\t\t$mol_assert_equal(error.message, 'Some error (test.ts#1:3/4)')\n\t\t}\n\n\t} )\n}\n","namespace $ {\n\t$mol_test( {\n\t\t\n\t\t'all cases of using maybe'() {\n\t\t\t$mol_assert_equal( $mol_maybe( 0 )[ 0 ] , 0 )\n\t\t\t$mol_assert_equal( $mol_maybe( false )[ 0 ] , false )\n\t\t\t$mol_assert_equal( $mol_maybe( null )[ 0 ] , void 0 )\n\t\t\t$mol_assert_equal( $mol_maybe( void 0 )[ 0 ] , void 0 )\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_maybe< number >( void 0 ).map( v => v.toString() )[ 0 ] , void 0 )\n\t\t\t$mol_assert_equal( $mol_maybe( 0 ).map( v => v.toString() )[ 0 ] , '0' )\n\t\t} ,\n\t\t\n\t} )\n}\n","namespace $ {\n\t\n\tfunction check( tree: $mol_tree2, ideal: string ) {\n\t\t$mol_assert_equal(\n\t\t\ttree.toString(),\n\t\t\t$$.$mol_tree2_from_string( ideal ).toString(),\n\t\t)\n\t}\n\t\n\t$mol_test( {\n\t\t\n\t\t'inserting'($) {\n\t\t\t\n\t\t\tcheck(\n\t\t\t\t$.$mol_tree2_from_string( `\n\t\t\t\t\ta b c d\n\t\t\t\t`).insert( $mol_tree2.struct('x') , 'a' , 'b' , 'c' ),\n\t\t\t\t`\n\t\t\t\t\ta b x\n\t\t\t\t`,\n\t\t\t)\n\t\t\tcheck(\n\t\t\t\t$.$mol_tree2_from_string(`\n\t\t\t\t\ta b\n\t\t\t\t`).insert( $mol_tree2.struct('x') , 'a' , 'b' , 'c' , 'd' ),\n\t\t\t\t`\n\t\t\t\t\ta b c x\n\t\t\t\t`,\n\t\t\t)\n\n\t\t\tcheck(\n\t\t\t\t$.$mol_tree2_from_string(`\n\t\t\t\t\ta b c d\n\t\t\t\t`)\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , 0 , 0 , 0 ),\n\t\t\t\t`\n\t\t\t\t\ta b x\n\t\t\t\t`,\n\t\t\t)\n\t\t\tcheck(\n\t\t\t\t$.$mol_tree2_from_string(`\n\t\t\t\t\ta b\n\t\t\t\t`)\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , 0 , 0 , 0 , 0 ),\n\t\t\t\t`\n\t\t\t\t\ta b \\\\\n\t\t\t\t\t\tx\n\t\t\t\t`,\n\t\t\t)\n\n\t\t\tcheck(\n\t\t\t\t$.$mol_tree2_from_string(`\n\t\t\t\t\ta b c d\n\t\t\t\t`)\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , null , null , null ),\n\t\t\t\t`\n\t\t\t\t\ta b x\n\t\t\t\t`,\n\t\t\t)\n\t\t\tcheck(\n\t\t\t\t$.$mol_tree2_from_string(`\n\t\t\t\t\ta b\n\t\t\t\t`)\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , null , null , null , null ),\n\t\t\t\t`\n\t\t\t\t\ta b \\\\\n\t\t\t\t\t\tx\n\t\t\t\t`,\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t'updating'($) {\n\n\t\t\tcheck(\n\t\t\t\t$.$mol_tree2_from_string(`\n\t\t\t\t\ta b c d\n\t\t\t\t`).update( [], 'a', 'b', 'c' )[0],\n\t\t\t\t`\n\t\t\t\t\ta b\n\t\t\t\t`,\n\t\t\t)\n\t\t\t\n\t\t\tcheck(\n\t\t\t\t$.$mol_tree2_from_string(`\n\t\t\t\t\ta b c d\n\t\t\t\t`).update( [ $mol_tree2.struct('x') ] )[0],\n\t\t\t\t`\n\t\t\t\t\tx\n\t\t\t\t`,\n\t\t\t)\n\t\t\t\n\t\t\tcheck(\n\t\t\t\t$.$mol_tree2_from_string(`\n\t\t\t\t\ta b c d\n\t\t\t\t`).update( [ $mol_tree2.struct('x'), $mol_tree2.struct('y') ], 'a', 'b', 'c' )[0],\n\t\t\t\t`\n\t\t\t\t\ta b\n\t\t\t\t\t\tx\n\t\t\t\t\t\ty\n\t\t\t\t`,\n\t\t\t)\n\t\t\t\n\t\t} ,\n\n\t\t'deleting'($) {\n\t\t\t\n\t\t\tconst base = $.$mol_tree2_from_string(`\n\t\t\t\ta b c d\n\t\t\t`)\n\n\t\t\tcheck(\n\t\t\t\tbase.insert( null , 'a' , 'b' , 'c' ),\n\t\t\t\t`\n\t\t\t\t\ta b\n\t\t\t\t`,\n\t\t\t)\n\t\t\t\n\t\t\tcheck(\n\t\t\t\tbase.update( base.select( 'a', 'b', 'c', null ).kids , 'a' , 'b' , 'c' )[0],\n\t\t\t\t`\n\t\t\t\t\ta b d\n\t\t\t\t`,\n\t\t\t)\n\t\t\t\n\t\t\tcheck(\n\t\t\t\tbase.insert( null , 0, 0, 0 ),\n\t\t\t\t`\n\t\t\t\t\ta b\n\t\t\t\t`,\n\t\t\t)\n\t\t\t\n\t\t} ,\n\n\t\t'hack'($) {\n\n\t\t\tconst res = $.$mol_tree2_from_string(`\n\t\t\t\tfoo bar xxx\n\t\t\t`)\n\t\t\t.hack({\n\t\t\t\t'bar' : ( input , belt )=> [ input.struct( '777' , input.hack( belt ) ) ] ,\n\t\t\t})\n\n\t\t\t$mol_assert_equal( res.map( String ) , [ 'foo 777 xxx\\n' ] )\n\n\t\t} ,\n\n\t} )\t\n}\n","namespace $ {\n\n\t$mol_test({\n\n\t\t'empty array'() {\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_array_chunks( [], ()=> true ),\n\t\t\t\t[],\n\t\t\t)\n\n\t\t},\n\n\t\t'one chunk'() {\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_array_chunks( [ 1, 2, 3, 4, 5 ], ()=> false ),\n\t\t\t\t[ [ 1, 2, 3, 4, 5 ] ],\n\t\t\t)\n\n\t\t},\n\n\t\t'fixed size chunk'() {\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_array_chunks( [ 1, 2, 3, 4, 5 ], 3 ),\n\t\t\t\t[ [ 1, 2, 3 ], [ 4, 5 ] ],\n\t\t\t)\n\n\t\t},\n\n\t\t'first empty chunk'() {\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_array_chunks( [ 1, 2, 3, 4, 5 ], (_,i)=> i === 0 ),\n\t\t\t\t[ [ 1, 2, 3, 4, 5 ] ],\n\t\t\t)\n\n\t\t},\n\n\t\t'chunk for every item'() {\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_array_chunks( [ 1, 2, 3, 4, 5 ], ()=> true ),\n\t\t\t\t[ [1], [2], [3], [4], [5] ],\n\t\t\t)\n\n\t\t},\n\n\t})\n\n}\n","namespace $ {\n\t$mol_test( {\n\t\t\n\t\t'tree parsing'( $ ) {\n\t\t\t\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"foo\\nbar\\n\" ).kids.length , 2 )\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"foo\\nbar\\n\" ).kids[ 1 ].type , \"bar\" )\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"foo\\n\\n\\n\" ).kids.length , 1 )\n\t\t\t\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"=foo\\n\\\\bar\\n\" ).kids.length , 2 )\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"=foo\\n\\\\bar\\n\" ).kids[ 1 ].value , \"bar\" )\n\t\t\t\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"foo bar \\\\pol\\n\" ).kids[ 0 ].kids[ 0 ].kids[ 0 ].value , \"pol\" )\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"foo bar\\n\\t\\\\pol\\n\\t\\\\men\\n\" ).kids[ 0 ].kids[ 0 ].kids[ 1 ].value , \"men\" )\n\t\t\t\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( 'foo bar \\\\text\\n' ).toString() , 'foo bar \\\\text\\n' )\n\t\t} ,\n\n\t\t'Too many tabs'( $ ) {\n\n\t\t\tconst tree = `\n\t\t\t\tfoo\n\t\t\t\t\t\tbar\n\t\t\t`\n\n\t\t\t$mol_assert_fail( ()=> {\n\t\t\t\t$.$mol_tree2_from_string( tree , 'test' )\n\t\t\t}, 'Too many tabs\\ntest#3:1/6\\n!!!!!!\\n\\t\\t\\t\\t\\t\\tbar' )\n\n\t\t},\n\n\t\t'Too few tabs'( $ ) {\n\n\t\t\tconst tree = `\n\t\t\t\t\tfoo\n\t\t\t\tbar\n\t\t\t`\n\n\t\t\t$mol_assert_fail( ()=> {\n\t\t\t\t$.$mol_tree2_from_string( tree , 'test' )\n\t\t\t}, 'Too few tabs\\ntest#3:1/4\\n!!!!\\n\\t\\t\\t\\tbar' )\n\n\t\t},\n\n\t\t'Wrong nodes separator at start'( $ ) {\n\n\t\t\tconst tree = `foo\\n \\tbar\\n`\n\n\t\t\t$mol_assert_fail( ()=> {\n\t\t\t\t$.$mol_tree2_from_string( tree , 'test' )\n\t\t\t}, 'Wrong nodes separator\\ntest#2:1/2\\n!!\\n \\tbar' )\n\n\t\t},\n\n\t\t'Wrong nodes separator in the middle'( $ ) {\n\n\t\t\tconst tree = `foo bar\\n`\n\n\t\t\t$mol_assert_fail( ()=> {\n\t\t\t\t$.$mol_tree2_from_string( tree , 'test' )\n\t\t\t}, 'Wrong nodes separator\\ntest#1:5/1\\n !\\nfoo bar' )\n\n\t\t},\n\n\t\t'Unexpected EOF, LF required'( $ ) {\n\n\t\t\tconst tree = `\tfoo`\n\n\t\t\t$mol_assert_fail( ()=> {\n\t\t\t\t$.$mol_tree2_from_string( tree , 'test' )\n\t\t\t}, 'Unexpected EOF, LF required\\ntest#1:5/1\\n\t !\\n\tfoo' )\n\n\t\t},\n\n\t\t'Errors skip and collect'( $ ) {\n\n\t\t\tconst tree = `foo bar`\n\t\t\tconst errors = [] as string[]\n\n\t\t\tconst $$ = $.$mol_ambient({\n\t\t\t\t$mol_fail: ( error: any ) => {\n\t\t\t\t\terrors.push( error.message )\n\t\t\t\t\treturn null as never\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tconst res = $$.$mol_tree2_from_string( tree , 'test' )\n\n\t\t\t$mol_assert_like( errors, [\n\t\t\t\t'Wrong nodes separator\\ntest#1:5/1\\n !\\nfoo bar',\n\t\t\t\t'Unexpected EOF, LF required\\ntest#1:9/1\\n !\\nfoo bar',\n\t\t\t] )\n\n\t\t\t$mol_assert_equal( res.toString(), 'foo bar\\n' )\n\n\t\t},\n\n\t} )\t\n}\n","namespace $ {\n\t$mol_test( {\n\t\t\n\t\t'fromJSON'() {\n\t\t\t$mol_assert_equal( $mol_tree2_from_json([]).toString() , '/\\n' )\n\t\t\t$mol_assert_equal( $mol_tree2_from_json([ false , true ]).toString() , '/\\n\\tfalse\\n\\ttrue\\n' )\n\t\t\t$mol_assert_equal( $mol_tree2_from_json([ 0 , 1 , 2.3 ]).toString() , '/\\n\\t0\\n\\t1\\n\\t2.3\\n' )\n\t\t\t$mol_assert_equal( $mol_tree2_from_json( new Uint16Array([ 1, 10, 255, 256, 65535 ]) ).toString() , '\\\\01 00 0A 00 FF 00 00 01\\n\\\\FF FF\\n' )\n\t\t\t$mol_assert_equal( $mol_tree2_from_json([ '' , 'foo' , 'bar\\nbaz' ]).toString() , '/\\n\\t\\\\\\n\\t\\\\foo\\n\\t\\\\\\n\\t\\t\\\\bar\\n\\t\\t\\\\baz\\n' )\n\t\t\t$mol_assert_equal( $mol_tree2_from_json({ 'foo' : false , 'bar\\nbaz' : 'lol' }).toString() , '*\\n\\tfoo false\\n\\t\\\\\\n\\t\\t\\\\bar\\n\\t\\t\\\\baz\\n\\t\\t\\\\lol\\n' )\n\t\t} ,\n\t\t\n\t} )\t\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'return result without errors'() {\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_try( ()=> false ) , false )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t//'return error if thrown'() {\n\t\t//\t\n\t\t//\tconst error = new Error( '$mol_try test error' )\n\t\t//\t$mol_assert_equal( $mol_try( ()=> { throw error } ) , error )\n\t\t//\t\n\t\t//} ,\n\t\t\n\t})\t\n}\n","namespace $ {\n\t$mol_test_mocks.push( $=> $.$mol_fail_log = ()=> false )\n}\n\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'Collect deps'() {\n\t\t\t\n\t\t\tconst pub1 = new $mol_wire_pub\n\t\t\tconst pub2 = new $mol_wire_pub\n\t\t\tconst sub = new $mol_wire_pub_sub\n\t\t\t\n\t\t\tconst bu1 = sub.track_on()\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\tpub1.promote()\n\t\t\t\tpub2.promote()\n\t\t\t\tpub2.promote()\n\t\t\t\t\n\t\t\t} finally {\n\t\t\t\t\n\t\t\t\tsub.track_cut()\n\t\t\t\tsub.track_off( bu1 )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tpub1.emit()\n\t\t\tpub2.emit()\n\t\t\t\n\t\t\t$mol_assert_like( sub.pub_list, [ pub1, pub2, pub2 ] )\n\t\t\t\n\t\t\tconst bu2 = sub.track_on()\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\tpub1.promote()\n\t\t\t\tpub1.promote()\n\t\t\t\tpub2.promote()\n\t\t\t\t\n\t\t\t} finally {\n\t\t\t\t\n\t\t\t\tsub.track_cut()\n\t\t\t\tsub.track_off( bu2 )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tpub1.emit()\n\t\t\tpub2.emit()\n\t\t\t\n\t\t\t$mol_assert_like( sub.pub_list, [ pub1, pub1, pub2 ] )\n\t\t\t\n\t\t},\n\t\t\n\t\t'cyclic detection'( $ ) {\n\t\t\t\n\t\t\tconst sub1 = new $mol_wire_pub_sub\n\t\t\tconst sub2 = new $mol_wire_pub_sub\n\t\t\t\n\t\t\tconst bu1 = sub1.track_on()\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\tconst bu2 = sub2.track_on()\n\t\t\t\ttry {\n\t\t\t\t\t\n\t\t\t\t\t$mol_assert_fail( ()=> sub1.promote(), 'Circular subscription' )\n\t\t\t\t\t\n\t\t\t\t} finally {\n\t\t\t\t\t\n\t\t\t\t\tsub2.track_cut()\n\t\t\t\t\tsub2.track_off( bu2 )\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} finally {\n\t\t\t\t\n\t\t\t\tsub1.track_cut()\n\t\t\t\tsub1.track_off( bu1 )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t},\n\n\t})\n}\n","namespace $ {\n\n\t/// @todo right orderinng\n\texport let $mol_after_mock_queue = [] as ( ()=> void )[]\n\n\texport function $mol_after_mock_warp() {\n\t\tconst queue = $mol_after_mock_queue.splice( 0 )\n\t\tfor( const task of queue ) task()\n\t}\n\n\texport class $mol_after_mock_commmon extends $mol_object2 {\n\n\t\tpromise = Promise.resolve()\n\t\tcancelled = false\n\t\tid : any\n\n\t\tconstructor( public task : ()=> void ) {\n\t\t\tsuper()\n\t\t\t$mol_after_mock_queue.push( task )\n\t\t}\n\n\t\tdestructor() {\n\t\t\tconst index = $mol_after_mock_queue.indexOf( this.task )\n\t\t\tif( index >= 0 )$mol_after_mock_queue.splice( index , 1 )\n\t\t}\n\n\t}\n\n\texport class $mol_after_mock_timeout extends $mol_after_mock_commmon {\n\n\t\tconstructor(\n\t\t\tpublic delay : number ,\n\t\t\ttask : ()=> void ,\n\t\t) {\n\t\t\tsuper( task )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\n\t$mol_test_mocks.push( $ => {\n\t\t$.$mol_after_tick = $mol_after_mock_commmon as any as typeof $mol_after_tick\n\t})\n\n}\n","namespace $ {\n\n\t$mol_test({\n\t\t\n\t\t'Sync execution'() {\n\n\t\t\tclass Sync extends $mol_object2 {\n\t\t\t\t\n\t\t\t\t@ $mol_wire_method\n\t\t\t\tstatic calc( a: number, b: number ) {\n\t\t\t\t\treturn a + b\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( Sync.calc( 1, 2 ), 3 )\n\t\t\t\n\t\t},\n\n\t\tasync 'async <=> sync'() {\n\t\t\t\n\t\t\tclass SyncAsync extends $mol_object2 {\n\t\t\t\t\n\t\t\t\tstatic async val( a: number ) {\n\t\t\t\t\treturn a\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstatic sum( a: number, b: number ) {\n\t\t\t\t\tconst syn = $mol_wire_sync( this )\n\t\t\t\t\treturn syn.val( a ) + syn.val( b )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstatic async calc( a: number, b: number ) {\n\t\t\t\t\treturn 5 + await $mol_wire_async( this ).sum( a, b )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( await SyncAsync.calc( 1, 2 ), 8 )\n\n\t\t},\n\n\t\tasync 'Idempotence control'() {\n\n\t\t\tclass Idempotence extends $mol_object2 {\n\t\t\t\t\n\t\t\t\tstatic logs_idemp = 0\n\t\t\t\tstatic logs_unidemp = 0\n\t\t\t\t\n\t\t\t\t@ $mol_wire_method\n\t\t\t\tstatic log_idemp() {\n\t\t\t\t\tthis.logs_idemp += 1\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstatic log_unidemp() {\n\t\t\t\t\tthis.logs_unidemp += 1\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstatic async val( a: number ) {\n\t\t\t\t\treturn a\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstatic sum( a: number, b: number ) {\n\t\t\t\t\tthis.log_idemp()\n\t\t\t\t\tthis.log_unidemp()\n\t\t\t\t\tconst syn = $mol_wire_sync( this )\n\t\t\t\t\treturn syn.val( a ) + syn.val( b )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstatic async calc( a: number, b: number ) {\n\t\t\t\t\treturn 5 + await $mol_wire_async( this ).sum( a, b )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( await Idempotence.calc( 1, 2 ), 8 )\n\t\t\t$mol_assert_equal( Idempotence.logs_idemp, 1 )\n\t\t\t$mol_assert_equal( Idempotence.logs_unidemp, 3 )\n\n\t\t},\n\n\t\tasync 'Error handling'() {\n\t\t\t\n\t\t\tclass Handle extends $mol_object2 {\n\t\t\t\t\n\t\t\t\tstatic async sum( a: number, b: number ){\n\t\t\t\t\t$mol_fail( new Error( 'test error ' + ( a + b ) ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstatic check() {\n\t\t\t\t\ttry {\n\t\t\t\t\t\treturn $mol_wire_sync( Handle ).sum( 1, 2 )\n\t\t\t\t\t} catch( error: any ) {\n\t\t\t\t\t\tif( $mol_promise_like( error ) ) $mol_fail_hidden( error )\n\t\t\t\t\t\t$mol_assert_equal( error.message, 'test error 3' )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\t\n\t\t\tawait $mol_wire_async( Handle ).check()\n\t\t\t\n\t\t},\n\t\t\n\t})\n\t\n}\n","/** @jsx $mol_jsx */\nnamespace $ {\n\t$mol_test({\n\t\t\n\t\t'Primitives'() {\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_key( null ), 'null' )\n\t\t\t$mol_assert_equal( $mol_key( false ), 'false' )\n\t\t\t$mol_assert_equal( $mol_key( true ), 'true' )\n\t\t\t$mol_assert_equal( $mol_key( 0 ), '0' )\n\t\t\t$mol_assert_equal( $mol_key( 1n<<64n ), '18446744073709551616n' )\n\t\t\t$mol_assert_equal( $mol_key( '' ), '\"\"' )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Array & POJO'() {\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_key([ null ]), '[null]' )\n\t\t\t$mol_assert_equal( $mol_key({ foo: 0 }), '{\"foo\":0}' )\n\t\t\t$mol_assert_equal( $mol_key({ foo: [false] }), '{\"foo\":[false]}' )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Uint8Array'() {\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_key( new Uint8Array([ 1, 2 ]) ), 'Uint8Array([1,2])' )\n\t\t\t$mol_assert_equal( $mol_key([ new Uint8Array([ 1, 2 ]) ]), '[Uint8Array([1,2])]' )\n\t\t\t$mol_assert_equal( $mol_key({ foo: new Uint8Array([ 1, 2 ]) }), '{\"foo\":Uint8Array([1,2])}' )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Function'() {\n\t\t\t\n\t\t\tconst func = ()=> {}\n\t\t\t$mol_assert_equal( $mol_key( func ), $mol_key( func ) )\n\t\t\t$mol_assert_unique( $mol_key( func ), $mol_key( ()=> {} ) )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Objects'() {\n\t\t\t\n\t\t\tclass User {}\n\t\t\tconst jin = new User()\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_key( jin ), $mol_key( jin ) )\n\t\t\t$mol_assert_unique( $mol_key( jin ), $mol_key( new User() ) )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Elements'() {\n\t\t\t\n\t\t\tconst foo = <div>bar</div>\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_key( foo ), $mol_key( foo ) )\n\t\t\t$mol_assert_unique( $mol_key( foo ), $mol_key( <div>bar</div> ) )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Custom JSON representation'() {\n\t\t\t\n\t\t\tclass User {\n\t\t\t\ttoJSON() { return 'jin' }\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_unique( [ $mol_key( new User ) ], [ $mol_key( new User ) ] )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Custom key handler'() {\n\t\t\t\n\t\t\tclass User {\n\t\t\t\tconstructor( public name: string, public age: number ) {}\n\t\t\t\t[ $mol_key_handle ]() { return `User(${ JSON.stringify( this.name ) })` }\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_key( [ new User( 'jin', 16 ) ] ),\n\t\t\t\t$mol_key( [ new User( 'jin', 18 ) ] ),\n\t\t\t\t'[User(\"jin\")]'\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t'Special native classes'() {\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_key( new Date( 'xyz' ) ), 'Date(NaN)' )\n\t\t\t$mol_assert_equal( $mol_key( new Date( 12345 ) ), 'Date(12345)' )\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_key( /./ ), '/./' )\n\t\t\t$mol_assert_equal( $mol_key( /\\./gimsu ), '/\\\\./gimsu' )\n\t\t\t\n\t\t},\n\t\t\n\t})\n}\n","namespace $ {\n\n\t$mol_test_mocks.push( $ => {\n\t\t$.$mol_after_timeout = $mol_after_mock_timeout as any as typeof $mol_after_timeout\n\t})\n\n}\n","namespace $ {\n\n\t$mol_test_mocks.push( $ => {\n\t\t$.$mol_after_frame = $mol_after_mock_commmon as any as typeof $mol_after_frame\n\t})\n\n}\n","namespace $ {\n\n\tdeclare function requestIdleCallback( task : ()=> void , options? : { timeout : number } ) : any\n\tdeclare function cancelIdleCallback( id : any ) : void\n\n\texport class $mol_after_work extends $mol_object2 {\n\n\t\tid : any\n\n\t\tconstructor(\n\t\t\tpublic delay : number ,\n\t\t\tpublic task : ()=> void ,\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis.id = requestIdleCallback( task , { timeout : delay } )\n\t\t}\n\n\t\tdestructor() {\n\t\t\tcancelIdleCallback( this.id )\n\t\t}\n\n\t}\n\t\n\tif( typeof requestIdleCallback !== 'function' ) {\n\t\t$.$mol_after_work = $mol_after_timeout\n\t}\n\t\n}\n","namespace $ {\n\n\t$mol_test_mocks.push( $ => {\n\t\t$.$mol_after_work = $mol_after_mock_timeout as any as typeof $mol_after_work\n\t})\n\n}\n","namespace $ {\n\t\n\texport function $mol_wait_rest_async( this: $ ) {\n\t\treturn new Promise( done => {\n\t\t\tnew this.$mol_after_work( 16 , ()=> done( null ) )\n\t\t} )\n\t}\n\t\n\texport function $mol_wait_rest( this: $ ) {\n\t\treturn this.$mol_wire_sync( this ).$mol_wait_rest_async()\n\t}\n\t\n}\n","namespace $.$$ {\n\t\n\t$mol_test_mocks.push( $ => {\n\t\t$.$mol_wait_timeout = function $mol_wait_timeout_mock( this: $, timeout: number ) { }\n\t\t$.$mol_wait_timeout_async = async function $mol_wait_timeout_async_mock( this: $, timeout: number ) {}\n\t} )\n\n}\n","namespace $.$$ {\n\t\n\t$mol_test_mocks.push( $ => {\n\t\t$.$mol_wait_rest = function $mol_wait_rest_mock( this: $ ) { }\n\t\t$.$mol_wait_rest_async = async function $mol_wait_rest_async_mock( this: $ ) {}\n\t} )\n\n}\n","namespace $ {\n\n\t$mol_test({\n\t\t'test types'( $ ) {\n\t\t\tclass A {\n\t\t\t\tstatic a() {\n\t\t\t\t\treturn ''\n\t\t\t\t}\n\t\t\t\tstatic b() {\n\t\t\t\t\treturn $mol_wire_async(this).a()\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttype Check = $mol_type_assert<ReturnType<typeof A['b']>, Promise<string>>\n\t\t},\n\t\t\n\t\tasync 'Latest method calls wins'( $ ) {\n\t\t\t\n\t\t\tclass NameLogger extends $mol_object2 {\n\t\t\t\t\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\tstatic first = [] as string[]\n\t\t\t\tstatic last = [] as string[]\n\t\t\t\t\n\t\t\t\tstatic send( next: string ) {\n\t\t\t\t\t$mol_wire_sync( this.first ).push( next )\n\t\t\t\t\t$$.$mol_wait_timeout(0)\n\t\t\t\t\tthis.last.push( next )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst name = $mol_wire_async( NameLogger ).send\n\t\t\t\n\t\t\tname( 'john' )\n\t\t\tconst promise = name( 'jin' )\n\t\t\t\n\t\t\t$.$mol_after_mock_warp()\n\t\t\tawait promise\n\t\t\t\n\t\t\t$mol_assert_equal( NameLogger.first, [ 'john', 'jin' ] )\n\t\t\t$mol_assert_equal( NameLogger.last, [ 'jin' ] )\n\n\t\t},\n\n\t\tasync 'Latest function calls wins'( $ ) {\n\t\t\t\n\t\t\tconst first = [] as string[]\n\t\t\tconst last = [] as string[]\n\t\t\t\n\t\t\tfunction send_name( next: string ) {\n\t\t\t\t$mol_wire_sync( first ).push( next )\n\t\t\t\t$$.$mol_wait_timeout(0)\n\t\t\t\tlast.push( next )\n\t\t\t}\n\t\t\t\n\t\t\tconst name = $mol_wire_async( send_name )\n\t\t\t\n\t\t\tname( 'john' )\n\t\t\tconst promise = name( 'jin' )\n\t\t\t\n\t\t\t$.$mol_after_mock_warp()\n\t\t\tawait promise\n\t\t\t\n\t\t\t$mol_assert_equal( first, [ 'john', 'jin' ] )\n\t\t\t$mol_assert_equal( last, [ 'jin' ] )\n\t\t\t\n\t\t},\n\n\t})\n\t\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#component-states\n\t\t'Cached channel' ($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic value( next = 1 ) {\n\t\t\t\t\treturn next + 1\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( App.value(), 2 )\n\n\t\t\tApp.value( 2 )\n\t\t\t$mol_assert_equal( App.value(), 3 )\n\n\t\t},\n\n\t\t'Read Pushed' ($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic value( next = 0 ) {\n\t\t\t\t\treturn next\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( App.value( 1 ), 1 )\n\t\t\t$mol_assert_equal( App.value(), 1 )\n\n\t\t},\n\n\t\t'Mem overrides mem' ($) {\n\n\t\t\tclass Base extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic value( next = 1 ) {\n\t\t\t\t\treturn next + 1\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tclass Middle extends Base {\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic value( next?: number ) {\n\t\t\t\t\treturn super.value( next ) + 1\n\t\t\t\t}\n\t\t\t\n\t\t\t}\n\t\t\t\t\n\t\t\tclass App extends Middle {\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic value( next?: number ) {\n\t\t\t\t\treturn super.value( next ) * 3\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( App.value(), 9 )\n\t\t\t\n\t\t\t$mol_assert_equal( App.value( 5 ), 21 )\n\t\t\t$mol_assert_equal( App.value(), 21 )\n\n\t\t},\n\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#wish-consistency\n\t\t'Auto recalculation of cached values'( $ ) {\n\t\t\t\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic xxx( next? : number ) {\n\t\t\t\t\treturn next || 1\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic yyy() {\n\t\t\t\t\treturn this.xxx() + 1\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic zzz() {\n\t\t\t\t\treturn this.yyy() + 1\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( App.yyy(), 2 )\n\t\t\t$mol_assert_equal( App.zzz(), 3 )\n\n\t\t\tApp.xxx( 5 )\n\t\t\t$mol_assert_equal( App.zzz(), 7 )\n\n\t\t},\n\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#wish-reasonability\n\t\t'Skip recalculation when actually no dependency changes'( $ ) {\n\t\t\t\n\t\t\tconst log = [] as string[]\n\t\t\t\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic xxx( next? : number ) {\n\t\t\t\t\tlog.push( 'xxx' )\n\t\t\t\t\treturn next || 1\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic yyy() {\n\t\t\t\t\tlog.push( 'yyy' )\n\t\t\t\t\treturn [ Math.sign( this.xxx() ) ]\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic zzz() {\n\t\t\t\t\tlog.push( 'zzz' )\n\t\t\t\t\treturn this.yyy()[0] + 1\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\tApp.zzz()\n\t\t\t$mol_assert_like( log, [ 'zzz', 'yyy', 'xxx' ] )\n\t\t\t\n\t\t\tApp.xxx( 5 )\n\t\t\t$mol_assert_like( log, [ 'zzz', 'yyy', 'xxx', 'xxx' ] )\n\t\t\t\n\t\t\tApp.zzz()\n\t\t\t$mol_assert_like( log, [ 'zzz', 'yyy', 'xxx', 'xxx', 'yyy' ] )\n\n\t\t},\n\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#flow-auto\n\t\t'Flow: Auto'( $ ) {\n\n\t\t\tclass App extends $mol_object2 {\n\t\t\t\t\n\t\t\t\tstatic get $() { return $ }\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic source( next = 1 ) { return next }\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic condition( next = true ) { return next }\n\t\t\t\t\n\t\t\t\tstatic counter = 0\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic result() {\n\t\t\t\t\tconst res = this.condition() ? this.source() : 0\n\t\t\t\t\treturn res + this.counter ++\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\n\t\t\t$mol_assert_equal( App.result() , 1 )\n\t\t\t$mol_assert_equal( App.counter , 1 )\n\t\t\t\n\t\t\tApp.source( 10 )\n\t\t\t$mol_assert_equal( App.result() , 11 )\n\t\t\t$mol_assert_equal( App.counter , 2 )\n\t\t\t\n\t\t\tApp.condition( false )\n\t\t\t$mol_assert_equal( App.result() , 2 )\n\t\t\t$mol_assert_equal( App.counter , 3 )\n\n\t\t\t$mol_wire_fiber.sync()\n\t\t\t$mol_assert_equal( App.source() , 1 )\n\t\t\t\n\t\t\tApp.source( 20 )\n\t\t\t$mol_assert_equal( App.result() , 2 )\n\t\t\t$mol_assert_equal( App.counter , 3 )\n\n\t\t\tApp.condition( true )\n\t\t\t$mol_assert_equal( App.result() , 23 )\n\t\t\t$mol_assert_equal( App.counter , 4 )\n\n\t\t} ,\n\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#dupes-equality\n\t\t'Dupes: Equality'( $ ) {\n\t\t\t\n\t\t\tlet counter = 0\n\t\t\t\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic foo( next? : { numbs: number[] } ) {\n\t\t\t\t\treturn next ?? { numbs: [ 1 ] }\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic bar() {\n\t\t\t\t\treturn { ... this.foo(), count: ++ counter }\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_like( App.bar(), { numbs: [ 1 ], count: 1 } )\n\n\t\t\tApp.foo({ numbs: [ 1 ] })\n\t\t\t$mol_assert_like( App.bar(), { numbs: [ 1 ], count: 1 } )\n\t\t\t\n\t\t\tApp.foo({ numbs: [ 2 ] })\n\t\t\t$mol_assert_like( App.bar(), { numbs: [ 2 ], count: 2 } )\n\n\t\t},\n\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#cycle-fail\n\t\t'Cycle: Fail'( $ ) {\n\t\t\n\t\t\tclass App extends $mol_object2 {\n\t\t\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic foo() : number {\n\t\t\t\t\treturn this.bar() + 1\n\t\t\t\t}\n\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic bar() : number {\n\t\t\t\t\treturn this.foo() + 1\n\t\t\t\t}\n\t\t\n\t\t\t\t@ $mol_wire_method\n\t\t\t\tstatic test() {\n\t\t\t\t\t$mol_assert_fail( ()=> App.foo(), 'Circular subscription' )\n\t\t\t\t}\t\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tApp.test()\n\t\t} ,\n\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#wish-stability\n\t\t// 'Update deps on push'( $ ) {\n\t\t\n\t\t// \tclass App extends $mol_object2 {\n\t\t\n\t\t// \t\tstatic $ = $\n\t\t\t\t\n\t\t// \t\t@ $mol_wire_solo\n\t\t// \t\tstatic left( next = false ) {\n\t\t// \t\t\treturn next\n\t\t// \t\t}\n\t\t\n\t\t// \t\t@ $mol_wire_solo\n\t\t// \t\tstatic right( next = false ) {\n\t\t// \t\t\treturn next\n\t\t// \t\t}\n\t\t\n\t\t// \t\t@ $mol_wire_solo\n\t\t// \t\tstatic res( next?: boolean ) {\n\t\t// \t\t\treturn this.left( next ) && this.right()\n\t\t// \t\t}\n\t\t\n\t\t// \t}\n\t\t\t\n\t\t// \t$mol_assert_equal( App.res(), false )\n\t\t// \t$mol_assert_equal( App.res( true ), false )\n\t\t\t\n\t\t// \t$mol_assert_equal( App.right( true ), true )\n\t\t// \t$mol_assert_equal( App.res(), true )\n\t\t\t\n\t\t// } ,\n\t\t\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#wish-stability\n\t\t'Different order of pull and push'( $ ) {\n\t\t\n\t\t\tclass App extends $mol_object2 {\n\t\t\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic store( next = 0 ) {\n\t\t\t\t\treturn next\n\t\t\t\t}\n\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic fast( next?: number ) {\n\t\t\t\t\treturn this.store( next )\n\t\t\t\t}\n\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic slow( next?: number ) {\n\t\t\t\t\tif( next !== undefined ) this.slow() // enforce pull before push\n\t\t\t\t\treturn this.store( next )\n\t\t\t\t}\n\t\t\n\t\t\t}\n\t\t\t\n\t\t\tApp.fast()\n\t\t\t$mol_assert_equal( App.slow( 666 ), 666 )\n\t\t\t$mol_assert_equal( App.fast(), App.slow(), 666 )\n\t\t\t\n\t\t\tApp.store( 777 )\n\t\t\t$mol_assert_equal( App.fast(), App.slow(), 777 )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#wish-stability\n\t\t'Actions inside invariant'( $ ) {\n\t\t\n\t\t\tclass App extends $mol_object2 {\n\t\t\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic count( next = 0 ) {\n\t\t\t\t\treturn next\n\t\t\t\t}\n\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic count2() {\n\t\t\t\t\treturn this.count()\n\t\t\t\t}\n\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic res() {\n\t\t\t\t\tconst count = this.count2()\n\t\t\t\t\tif( !count ) this.count( count + 1 )\n\t\t\t\t\treturn count + 1\n\t\t\t\t}\n\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_like( App.res(), 1 )\n\t\t\t\n\t\t\tApp.count( 5 )\n\t\t\t$mol_assert_like( App.res(), 6 )\n\n\t\t} ,\n\t\t\n\t\tasync 'Toggle with async'( $ ) {\n\t\t\n\t\t\tclass App extends $mol_object2 {\n\t\t\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic checked( next = false ) {\n\t\t\t\t\t$$.$mol_wait_timeout(0)\n\t\t\t\t\treturn next\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_wire_method\n\t\t\t\tstatic toggle() {\n\t\t\t\t\tconst prev = this.checked()\n\t\t\t\t\t$mol_assert_unique( this.checked( !prev ), prev )\n\t\t\t\t\t// $mol_assert_equal( this.checked() , prev )\n\t\t\t\t}\n\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic res() {\n\t\t\t\t\treturn this.checked()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_wire_method\n\t\t\t\tstatic test() {\n\t\t\t\t\t\n\t\t\t\t\t$mol_assert_equal( App.res(), false )\n\t\t\t\t\t\n\t\t\t\t\tApp.toggle()\n\t\t\t\t\t$mol_assert_equal( App.res(), true )\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\n\t\t\t}\n\t\t\t\n\t\t\tawait $mol_wire_async( App ).test()\n\t\t\t\n\t\t} ,\n\n\t\t// // https://github.com/nin-jin/slides/tree/master/reactivity#wish-stability\n\t\t// 'Stable order of multiple root'( $ ) {\n\t\t\n\t\t// \tclass App extends $mol_object2 {\n\t\t\n\t\t// \t\tstatic $ = $\n\t\t\t\t\n\t\t// \t\tstatic counter = 0\n\t\t\t\t\n\t\t// \t\t@ $mol_wire_solo\n\t\t// \t\tstatic left_trigger( next = 0 ) {\n\t\t// \t\t\treturn next\n\t\t// \t\t}\n\t\t\n\t\t// \t\t@ $mol_wire_solo\n\t\t// \t\tstatic left_root() {\n\t\t// \t\t\tthis.left_trigger()\n\t\t// \t\t\treturn ++ this.counter\n\t\t// \t\t}\n\t\t\t\t\n\t\t// \t\t@ $mol_wire_solo\n\t\t// \t\tstatic right_trigger( next = 0 ) {\n\t\t// \t\t\treturn next\n\t\t// \t\t}\n\t\t\t\t\n\t\t// \t\t@ $mol_wire_solo\n\t\t// \t\tstatic right_root() {\n\t\t// \t\t\tthis.right_trigger()\n\t\t// \t\t\treturn ++ this.counter\n\t\t// \t\t}\n\t\t\n\t\t// \t}\n\t\t\t\n\t\t// \t$mol_assert_equal( App.left_root(), 1 )\n\t\t// \t$mol_assert_equal( App.right_root(), 2 )\n\t\t\t\n\t\t// \tApp.right_trigger( 1 )\n\t\t// \tApp.left_trigger( 1 )\n\t\t\t\n\t\t// \t$mol_wire_fiber.sync()\n\t\t\t\n\t\t// \t$mol_assert_equal( App.right_root(), 4 )\n\t\t// \t$mol_assert_equal( App.left_root(), 3 )\n\n\t\t// } ,\n\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#error-store\n\t\t'Restore after error'( $ ) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic get $() { return $ }\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic condition( next = false ) { return next }\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic broken() {\n\t\t\t\t\t\n\t\t\t\t\tif( this.condition() ) {\n\t\t\t\t\t\t$mol_fail( new Error( 'test error' ) )\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\treturn 1\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic result() {\n\t\t\t\t\treturn this.broken()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\n\t\t\t$mol_assert_equal( App.result() , 1 )\n\t\t\t\n\t\t\tApp.condition( true )\n\t\t\t$mol_assert_fail( ()=> App.result(), 'test error' )\n\t\t\t\n\t\t\tApp.condition( false )\n\t\t\t$mol_assert_equal( App.result() , 1 )\n\n\t\t} ,\n\t\n\t\tasync 'Wait for data'($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\tstatic async source() {\n\t\t\t\t\treturn 'Jin'\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic middle() {\n\t\t\t\t\treturn $mol_wire_sync( this ).source()\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic target() {\n\t\t\t\t\treturn this.middle()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_wire_method\n\t\t\t\tstatic test() {\n\t\t\t\t\t$mol_assert_equal( App.target() , 'Jin' )\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tawait $mol_wire_async( App ).test()\n\t\t},\n\n\t\t'Auto destroy on long alone'( $ ) {\n\n\t\t\tlet destroyed = false\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic showing( next = true ) {\n\t\t\t\t\treturn next\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic details() {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdestructor() {\n\t\t\t\t\t\t\tdestroyed = true\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic render() {\n\t\t\t\t\treturn this.showing() ? this.details() : null\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst details = App.render()\n\t\t\t$mol_assert_ok( details )\n\n\t\t\tApp.showing( false )\n\t\t\t$mol_assert_not( App.render() )\n\t\t\t\n\t\t\tApp.showing( true )\n\t\t\t$mol_assert_equal( App.render() , details )\n\t\t\t\n\t\t\t$mol_wire_fiber.sync()\n\t\t\t$mol_assert_not( destroyed )\n\t\t\t\n\t\t\tApp.showing( false )\n\t\t\t$mol_wire_fiber.sync()\n\t\t\t$mol_assert_ok( destroyed )\n\n\t\t\tApp.showing( true )\n\t\t\t$mol_assert_unique( App.render() , details )\n\t\t\t\n\t\t},\n\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#wish-stability\n\t\tasync 'Hold pubs while wait async task'($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\tstatic counter = 0\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic resets( next?: null ): number {\n\t\t\t\t\treturn ( $mol_wire_probe( ()=> this.resets() ) ?? -1 ) + 1\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstatic async wait() { }\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic value() {\n\t\t\t\t\treturn ++ this.counter\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic result() {\n\t\t\t\t\tif( this.resets() ) $mol_wire_sync( this ).wait()\n\t\t\t\t\treturn this.value()\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( App.result() , 1 )\n\t\t\t\n\t\t\tApp.resets( null )\n\t\t\t$mol_wire_fiber.sync()\n\t\t\t$mol_assert_equal( await $mol_wire_async( App ).result() , 1 )\n\t\t\t\n\t\t},\n\n\t\t'Owned value has js-path name' () {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic title() {\n\t\t\t\t\treturn new $mol_object2\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t$mol_assert_equal( `${ App.title() }` , 'App.title<>' )\n\n\t\t} ,\n\n\t\t'Unsubscribe from temp pubs on complete' ($) {\n\n\t\t\tclass Random extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\n\t\t\t\t@ $mol_wire_method\n\t\t\t\tstatic seed() {\n\t\t\t\t\treturn Math.random()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic resets( next?: null ) {\n\t\t\t\t\treturn Math.random()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic value() {\n\t\t\t\t\tthis.resets()\n\t\t\t\t\treturn this.seed()\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\tconst first = Random.value()\n\t\t\t\n\t\t\tRandom.resets( null )\n\t\t\t$mol_assert_unique( Random.value(), first )\n\n\t\t} ,\n\n\t})\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\tasync 'Error caching' ($) {\n\t\t\tconst next_cached = 123\n\n\t\t\tclass Some extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\n\t\t\t\t@ $mol_wire_plex\n\t\t\t\tstatic data( id: string, next?: unknown): unknown {\n\t\t\t\t\tif (next) return next as never\n\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t$mol_wire_async(this).data(id, next_cached)\n\t\t\t\t\t}, 10)\n\n\t\t\t\t\t$mol_fail_hidden(new Promise(() => {}))\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_method\n\t\t\t\tstatic run() {\n\t\t\t\t\treturn this.data('1')\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst val = await $mol_wire_async(Some).run()\n\t\t\t$mol_assert_equal(val, next_cached)\n\t\t} ,\n\n\t\t'Memoize by single simple key' ($) {\n\n\t\t\tclass Team extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\n\t\t\t\t@ $mol_wire_plex\n\t\t\t\tstatic user_name( user: string , next?: string ) {\n\t\t\t\t\treturn next ?? user\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic user_names() {\n\t\t\t\t\treturn [\n\t\t\t\t\t\tthis.user_name( 'jin' ),\n\t\t\t\t\t\tthis.user_name( 'john' ),\n\t\t\t\t\t]\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_like( Team.user_names(), [ 'jin', 'john' ] )\n\t\t\t\n\t\t\tTeam.user_name( 'jin', 'JIN' )\n\t\t\t$mol_assert_like( Team.user_names(), [ 'JIN', 'john' ] )\n\n\t\t} ,\n\n\t\t'Memoize by single complex key' ($) {\n\n\t\t\tclass Map extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\n\t\t\t\t@ $mol_wire_plex\n\t\t\t\tstatic tile( pos: [ number, number ] ) {\n\t\t\t\t\treturn new String( `/tile=${pos}` )\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_method\n\t\t\t\tstatic test() {\n\t\t\t\t\t\n\t\t\t\t\t$mol_assert_like( this.tile([0,1]), new String( '/tile=0,1' ) )\n\t\t\t\t\t$mol_assert_equal( this.tile([0,1]), this.tile([0,1]) )\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\n\t\t\tMap.test()\n\t\t} ,\n\n\t\t'Owned value has js-path name' () {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\t@ $mol_wire_plex\n\t\t\t\tstatic like( friend: number ) {\n\t\t\t\t\treturn new $mol_object2\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_plex\n\t\t\t\tstatic relation( [ friend, props ]: [ number, [ number ] ] ) {\n\t\t\t\t\treturn new $mol_object2\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t$mol_assert_equal( `${ App.like(123) }` , 'App.like<123>' )\n\t\t\t$mol_assert_equal( `${ App.relation([123,[456]]) }` , 'App.relation<[123,[456]]>' )\n\n\t\t} ,\n\n\t\t'Deep deps' ($) {\n\n\t\t\tclass Fib extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\tstatic sums = 0\n\n\t\t\t\t@ $mol_wire_plex\n\t\t\t\tstatic value( index: number , next?: number ): number {\n\t\t\t\t\tif( next ) return next\n\t\t\t\t\tif( index < 2 ) return 1\n\t\t\t\t\t++ this.sums\n\t\t\t\t\treturn this.value( index - 1 ) + this.value( index - 2 )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( Fib.value( 4 ), 5 )\n\t\t\t$mol_assert_equal( Fib.sums, 3 )\n\t\t\t\n\t\t\tFib.value( 1, 2 )\n\t\t\t$mol_assert_equal( Fib.value( 4 ), 8 )\n\t\t\t$mol_assert_equal( Fib.sums, 6 )\n\n\t\t} ,\n\n\t})\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'Previous value'() {\n\n\t\t\tclass Cache extends $mol_object2 {\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic store( next?: Record< string, number > ): typeof next {\n\t\t\t\t\tif( !next ) return {}\n\t\t\t\t\treturn {\n\t\t\t\t\t\t... $mol_wire_probe( ()=> this.store() ) ?? {},\n\t\t\t\t\t\t... next,\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_like( Cache.store(), {} )\n\t\t\t\n\t\t\t$mol_assert_like( Cache.store({ foo: 666 }), { foo: 666 } )\n\t\t\t$mol_assert_like( Cache.store({ bar: 777 }), { foo: 666, bar: 777 } )\n\n\t\t} ,\n\t\t\n\t})\n}\n","namespace $ {\n\t\n\t$mol_wire_log.active()\n\n}\n","namespace $ {\n\t$mol_test( { \n\t\t\n\t\t'const returns stored value'() {\n\t\t\n\t\t\tconst foo = { bar : $mol_const( Math.random() ) }\n\t\t\t\n\t\t\t$mol_assert_equal( foo.bar() , foo.bar() )\n\t\t\t$mol_assert_equal( foo.bar() , foo.bar['()'] )\n\t\t\t\n\t\t} ,\n\n\t} )\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'Cached field' ($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_field\n\t\t\t\tstatic low = 1\n\t\t\t\t\n\t\t\t\t@ $mol_wire_field\n\t\t\t\tstatic get high() {\n\t\t\t\t\treturn this.low + 1\n\t\t\t\t}\n\t\t\t\tstatic set high( next: number ) {\n\t\t\t\t\tthis.low = next - 1\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_wire_method\n\t\t\t\tstatic test() {\n\t\t\t\t\t\n\t\t\t\t\t$mol_assert_equal( App.high , 2 )\n\t\t\n\t\t\t\t\tApp.high = 3\n\t\t\t\t\t$mol_assert_equal( App.high , 3 )\n\t\t\t\t\t\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\tApp.test()\n\t\t},\n\n\t})\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'define as methods'() {\n\t\t\t\n\t\t\tconst { foo, bar, lol } = $mol_wire_let({\n\t\t\t\tfoo( next = 1 ) { return next },\n\t\t\t\tbar() { return this.foo() + 1 },\n\t\t\t\tlol( next?: number ) { return this.foo( next ) },\n\t\t\t})\n\t\t\t\n\t\t\t$mol_assert_equal( foo(), 1 )\n\t\t\t$mol_assert_equal( bar(), 2 )\n\t\t\t\n\t\t\t$mol_assert_equal( foo(5), 5 )\n\t\t\t$mol_assert_equal( bar(), 6 )\n\t\t\t\n\t\t\t$mol_assert_equal( lol(10), 10 )\n\t\t\t$mol_assert_equal( bar(), 11 )\n\t\t\t\n\t\t},\n\t\t\n\t\t'define as closures'() {\n\t\t\t\n\t\t\tconst { foo, bar, lol } = $mol_wire_let({\n\t\t\t\tfoo: ( next = 1 )=> next,\n\t\t\t\tbar: ()=> foo() + 1,\n\t\t\t\tlol: ( next?: number )=> foo( next ),\n\t\t\t})\n\t\t\t\n\t\t\t$mol_assert_equal( foo(), 1 )\n\t\t\t$mol_assert_equal( bar(), 2 )\n\t\t\t\n\t\t\t$mol_assert_equal( foo(5), 5 )\n\t\t\t$mol_assert_equal( bar(), 6 )\n\t\t\t\n\t\t\t$mol_assert_equal( lol(10), 10 )\n\t\t\t$mol_assert_equal( bar(), 11 )\n\t\t\t\n\t\t},\n\t\t\n\t})\n}\n\n\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'Watch one value' ($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\tstatic set = new $mol_wire_set< number >()\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic lucky() {\n\t\t\t\t\treturn this.set.has( 777 )\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t$mol_assert_equal( App.lucky(), false )\n\n\t\t\tApp.set.add( 666 )\n\t\t\t$mol_assert_equal( App.lucky(), false )\n\n\t\t\tApp.set.add( 777 )\n\t\t\t$mol_assert_equal( App.lucky(), true )\n\n\t\t\tApp.set.delete( 777 )\n\t\t\t$mol_assert_equal( App.lucky(), false )\n\n\t\t},\n\n\t\t'Watch item channel' ($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\tstatic set = new $mol_wire_set< number >()\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic lucky() {\n\t\t\t\t\treturn this.set.item( 777 )\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t$mol_assert_equal( App.lucky(), false )\n\n\t\t\tApp.set.item( 666, true )\n\t\t\t$mol_assert_equal( App.lucky(), false )\n\n\t\t\tApp.set.item( 777, true )\n\t\t\t$mol_assert_equal( App.lucky(), true )\n\n\t\t\tApp.set.item( 777, false )\n\t\t\t$mol_assert_equal( App.lucky(), false )\n\n\t\t},\n\n\t\t'Watch size' ($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\tstatic set = new $mol_wire_set< number >()\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic size() {\n\t\t\t\t\treturn this.set.size\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t$mol_assert_equal( App.size(), 0 )\n\n\t\t\tApp.set.add( 666 )\n\t\t\t$mol_assert_equal( App.size(), 1 )\n\n\t\t\tApp.set.add( 777 )\n\t\t\t$mol_assert_equal( App.size(), 2 )\n\n\t\t\tApp.set.delete( 777 )\n\t\t\t$mol_assert_equal( App.size(), 1 )\n\n\t\t},\n\n\t\t'Watch for-of' ($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\tstatic set = new $mol_wire_set< number >()\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic sum() {\n\t\t\t\t\tlet res = 0\n\t\t\t\t\tfor( const val of this.set ) {\n\t\t\t\t\t\tres += val\n\t\t\t\t\t}\n\t\t\t\t\treturn res\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t$mol_assert_equal( App.sum(), 0 )\n\n\t\t\tApp.set.add( 111 )\n\t\t\t$mol_assert_equal( App.sum(), 111 )\n\n\t\t\tApp.set.add( 222 )\n\t\t\t$mol_assert_equal( App.sum(), 333 )\n\n\t\t\tApp.set.delete( 111 )\n\t\t\t$mol_assert_equal( App.sum(), 222 )\n\n\t\t},\n\n\t\t'Watch forEach' ($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\tstatic set = new $mol_wire_set< number >()\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic sum() {\n\t\t\t\t\tlet res = 0\n\t\t\t\t\tthis.set.forEach( val => res += val )\n\t\t\t\t\treturn res\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t$mol_assert_equal( App.sum(), 0 )\n\n\t\t\tApp.set.add( 111 )\n\t\t\t$mol_assert_equal( App.sum(), 111 )\n\n\t\t\tApp.set.add( 222 )\n\t\t\t$mol_assert_equal( App.sum(), 333 )\n\n\t\t\tApp.set.delete( 111 )\n\t\t\t$mol_assert_equal( App.sum(), 222 )\n\t\t\t\n\t\t},\n\n\t})\n}\n","namespace $.$$ {\n\t$mol_test({\n\t\t\n\t\t\"Deep property change\"( $ ) {\n\t\t\t\n\t\t\tconst source = $mol_wire_proxy( 'source', {\n\t\t\t\tfoo: {\n\t\t\t\t\tbar: 123,\n\t\t\t\t}\n\t\t\t})\n\t\t\t\n\t\t\tconst { res } = $mol_wire_let({\n\t\t\t\tres() { return source.foo.bar }\n\t\t\t})\n\t\t\t\n\t\t\t$mol_assert_equal( res(), 123 )\n\t\t\t\n\t\t\tsource.foo.bar = 321\n\t\t\t$mol_assert_equal( res(), 321 )\n\t\t\t\n\t\t},\n\t\t\n\t\t\"Deep property add/remove\"( $ ) {\n\t\t\t\n\t\t\tconst source = $mol_wire_proxy( 'source', {\n\t\t\t\tfoo: {\n\t\t\t\t\tbar: 123,\n\t\t\t\t} as any\n\t\t\t})\n\t\t\t\n\t\t\tconst { exists, props } = $mol_wire_let({\n\t\t\t\texists() { return 'bar' in source.foo },\n\t\t\t\tprops() { return Object.keys( source.foo ) },\n\t\t\t})\n\t\t\t\n\t\t\t$mol_assert_equal( exists(), true )\n\t\t\t$mol_assert_equal( props(), [ 'bar' ] )\n\t\t\t\n\t\t\tdelete source.foo.bar\n\t\t\t$mol_assert_equal( exists(), false )\n\t\t\t$mol_assert_equal( props(), [] )\n\t\t\t\n\t\t\tObject.defineProperty( source.foo, 'bar', { value: 'xxx', enumerable: true } )\n\t\t\t$mol_assert_equal( exists(), true )\n\t\t\t$mol_assert_equal( props(), [ 'bar' ] )\n\t\t\t\n\t\t},\n\t\t\n\t\t\"Deep property change to equal\"( $ ) {\n\t\t\t\n\t\t\tconst source = $mol_wire_proxy( 'source', {\n\t\t\t\tfoo: {\n\t\t\t\t\tbar: 123,\n\t\t\t\t}\n\t\t\t})\n\t\t\t\n\t\t\tlet count = 0\n\t\t\t\n\t\t\tconst { res } = $mol_wire_let({\n\t\t\t\tres() {\n\t\t\t\t\t++ count\n\t\t\t\t\treturn source.foo.bar\n\t\t\t\t}\n\t\t\t})\n\t\t\t\n\t\t\tres(); $mol_assert_equal( count, 1 )\n\t\t\tres(); $mol_assert_equal( count, 1 )\n\t\t\t\n\t\t\tsource.foo = { bar: 123 }\n\t\t\tres(); $mol_assert_equal( count, 1 )\n\t\t\t\n\t\t\tsource.foo = { bar: 321 }\n\t\t\tres(); $mol_assert_equal( count, 2 )\n\t\t\t\n\t\t},\n\t\t\n\t})\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'Watch one value' ($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\tstatic dict = new $mol_wire_dict< number, number >()\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic lucky() {\n\t\t\t\t\treturn this.dict.get( 777 )\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t$mol_assert_equal( App.lucky(), undefined )\n\n\t\t\tApp.dict.set( 666, 6666 )\n\t\t\t$mol_assert_equal( App.lucky(), undefined )\n\n\t\t\tApp.dict.set( 777, 7777 )\n\t\t\t$mol_assert_equal( App.lucky(), 7777 )\n\n\t\t\tApp.dict.delete( 777 )\n\t\t\t$mol_assert_equal( App.lucky(), undefined )\n\n\t\t},\n\n\t\t'Watch item channel' ($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\tstatic dict = new $mol_wire_dict< number, number >()\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic lucky() {\n\t\t\t\t\treturn this.dict.item( 777 )\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t$mol_assert_equal( App.lucky(), null )\n\n\t\t\tApp.dict.item( 666, 6666 )\n\t\t\t$mol_assert_equal( App.lucky(), null )\n\n\t\t\tApp.dict.item( 777, 7777 )\n\t\t\t$mol_assert_equal( App.lucky(), 7777 )\n\n\t\t\tApp.dict.item( 777, null )\n\t\t\t$mol_assert_equal( App.lucky(), null )\n\n\t\t},\n\n\t\t'Watch size' ($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\tstatic dict = new $mol_wire_dict< number, number >()\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic size() {\n\t\t\t\t\treturn this.dict.size\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t$mol_assert_equal( App.size(), 0 )\n\n\t\t\tApp.dict.set( 666, 6666 )\n\t\t\t$mol_assert_equal( App.size(), 1 )\n\n\t\t\tApp.dict.set( 777, 7777 )\n\t\t\t$mol_assert_equal( App.size(), 2 )\n\n\t\t\tApp.dict.delete( 777 )\n\t\t\t$mol_assert_equal( App.size(), 1 )\n\n\t\t},\n\n\t\t'Watch for-of' ($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\tstatic dict = new $mol_wire_dict< number, number >()\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic sum() {\n\t\t\t\t\tlet keys = 0\n\t\t\t\t\tlet vals = 0\n\t\t\t\t\tfor( const [ key, val ] of this.dict ) {\n\t\t\t\t\t\tkeys += key\n\t\t\t\t\t\tvals += val\n\t\t\t\t\t}\n\t\t\t\t\treturn [ keys, vals ]\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t$mol_assert_like( App.sum(), [ 0, 0 ] )\n\n\t\t\tApp.dict.set( 111, 1111 )\n\t\t\t$mol_assert_like( App.sum(), [ 111, 1111 ] )\n\n\t\t\tApp.dict.set( 222, 2222 )\n\t\t\t$mol_assert_like( App.sum(), [ 333, 3333 ] )\n\n\t\t\tApp.dict.delete( 111 )\n\t\t\t$mol_assert_like( App.sum(), [ 222, 2222 ] )\n\n\t\t},\n\n\t\t'Watch forEach' ($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\tstatic dict = new $mol_wire_dict< number, number >()\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic sum() {\n\t\t\t\t\tlet keys = 0\n\t\t\t\t\tlet vals = 0\n\t\t\t\t\tthis.dict.forEach( ( val, key )=> {\n\t\t\t\t\t\tkeys += key\n\t\t\t\t\t\tvals += val\n\t\t\t\t\t} )\n\t\t\t\t\treturn [ keys, vals ]\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t$mol_assert_like( App.sum(), [ 0, 0 ] )\n\n\t\t\tApp.dict.set( 111, 1111 )\n\t\t\t$mol_assert_like( App.sum(), [ 111, 1111 ] )\n\n\t\t\tApp.dict.set( 222, 2222 )\n\t\t\t$mol_assert_like( App.sum(), [ 333, 3333 ] )\n\n\t\t\tApp.dict.delete( 111 )\n\t\t\t$mol_assert_like( App.sum(), [ 222, 2222 ] )\n\t\t\t\n\t\t},\n\n\t})\n}\n"]}
|