@famibee/skynovel 1.64.21 → 1.65.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Button.js +59 -57
- package/dist/Button.js.map +1 -1
- package/dist/CmnTween.js +921 -109
- package/dist/CmnTween.js.map +1 -1
- package/dist/EventMng.js +1 -1
- package/dist/EventMng.js.map +1 -1
- package/dist/GrpLayer.js +10 -11
- package/dist/GrpLayer.js.map +1 -1
- package/dist/LayerMng.js +43 -44
- package/dist/LayerMng.js.map +1 -1
- package/dist/Main.js.map +1 -1
- package/dist/RubySpliter.js +18 -15
- package/dist/RubySpliter.js.map +1 -1
- package/dist/ScriptIterator.js +1 -2
- package/dist/ScriptIterator.js.map +1 -1
- package/dist/SndBuf.js +83 -77
- package/dist/SndBuf.js.map +1 -1
- package/dist/SpritesMng.js +50 -46
- package/dist/SpritesMng.js.map +1 -1
- package/dist/TxtLayer.js +435 -420
- package/dist/TxtLayer.js.map +1 -1
- package/dist/Variable.js +1 -1
- package/dist/sn/Button.d.ts.map +1 -1
- package/dist/sn/CmnTween.d.ts +4 -4
- package/dist/sn/CmnTween.d.ts.map +1 -1
- package/dist/sn/FocusMng.d.ts +2 -2
- package/dist/sn/FocusMng.d.ts.map +1 -1
- package/dist/sn/FrameMng.d.ts.map +1 -1
- package/dist/sn/GrpLayer.d.ts.map +1 -1
- package/dist/sn/Log.d.ts.map +1 -1
- package/dist/sn/Main.d.ts.map +1 -1
- package/dist/sn/Pages.d.ts.map +1 -1
- package/dist/sn/Reading.d.ts +1 -0
- package/dist/sn/Reading.d.ts.map +1 -1
- package/dist/sn/RubySpliter.d.ts.map +1 -1
- package/dist/sn/SndBuf.d.ts.map +1 -1
- package/dist/sn/SpritesMng.d.ts.map +1 -1
- package/dist/sn/SysBase.d.ts.map +1 -1
- package/dist/sn/TxtLayer.d.ts.map +1 -1
- package/dist/sn/TxtStage.d.ts +2 -0
- package/dist/sn/TxtStage.d.ts.map +1 -1
- package/dist/web2.js.map +1 -1
- package/dist_app/Button.js +59 -57
- package/dist_app/Button.js.map +1 -1
- package/dist_app/CmnTween.js +921 -109
- package/dist_app/CmnTween.js.map +1 -1
- package/dist_app/EventMng.js +1 -1
- package/dist_app/EventMng.js.map +1 -1
- package/dist_app/GrpLayer.js +10 -11
- package/dist_app/GrpLayer.js.map +1 -1
- package/dist_app/LayerMng.js +2 -3
- package/dist_app/LayerMng.js.map +1 -1
- package/dist_app/Main.js.map +1 -1
- package/dist_app/RubySpliter.js +18 -15
- package/dist_app/RubySpliter.js.map +1 -1
- package/dist_app/ScriptIterator.js +1 -2
- package/dist_app/ScriptIterator.js.map +1 -1
- package/dist_app/SndBuf.js +83 -77
- package/dist_app/SndBuf.js.map +1 -1
- package/dist_app/SpritesMng.js +46 -42
- package/dist_app/SpritesMng.js.map +1 -1
- package/dist_app/TxtLayer.js +435 -420
- package/dist_app/TxtLayer.js.map +1 -1
- package/dist_app/Variable.js +1 -1
- package/dist_app/app2.js.map +1 -1
- package/dist_app/sn/Button.d.ts.map +1 -1
- package/dist_app/sn/CmnTween.d.ts +4 -4
- package/dist_app/sn/CmnTween.d.ts.map +1 -1
- package/dist_app/sn/FocusMng.d.ts.map +1 -1
- package/dist_app/sn/FrameMng.d.ts.map +1 -1
- package/dist_app/sn/GrpLayer.d.ts.map +1 -1
- package/dist_app/sn/Log.d.ts.map +1 -1
- package/dist_app/sn/Main.d.ts.map +1 -1
- package/dist_app/sn/Pages.d.ts.map +1 -1
- package/dist_app/sn/Reading.d.ts +1 -0
- package/dist_app/sn/Reading.d.ts.map +1 -1
- package/dist_app/sn/RubySpliter.d.ts.map +1 -1
- package/dist_app/sn/SndBuf.d.ts.map +1 -1
- package/dist_app/sn/SpritesMng.d.ts.map +1 -1
- package/dist_app/sn/SysBase.d.ts.map +1 -1
- package/dist_app/sn/TxtLayer.d.ts.map +1 -1
- package/dist_app/sn/TxtStage.d.ts +2 -0
- package/dist_app/sn/TxtStage.d.ts.map +1 -1
- package/package.json +4 -4
package/dist/CmnTween.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CmnTween.js","sources":["../src/sn/CmnTween.ts"],"sourcesContent":["/* ***** BEGIN LICENSE BLOCK *****\n\tCopyright (c) 2019-2025 Famibee (famibee.blog38.fc2.com)\n\n\tThis software is released under the MIT License.\n\thttp://opensource.org/licenses/mit-license.php\n** ***** END LICENSE BLOCK ***** */\n\nimport {type IEvtMng, CmnLib, argChk_Boolean, argChk_Num} from './CmnLib';\nimport type {TArg} from './Grammar';\nimport type {Layer} from './Layer';\nimport {Reading} from './Reading';\n\nimport {Tween, Easing, removeAll, update} from '@tweenjs/tween.js'\nimport type {Application} from 'pixi.js';\n\n\ntype ITwInf = {\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\ttw\t\t: Tween<any> | undefined;\n\tonEnd?\t: ()=> void;\n}\n\nexport const TW_NM_TRANS = 'trans\\n';\t// 改行でスクリプトから絶対指定できない値に\nconst PID_HD_TW\t= 'tsy nm:';\n\n\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport class CmnTween {\n\tstatic\t#hTwInf\t: {[tw_nm: string]: ITwInf}\t= {};\n\n\tstatic\t#evtMng\t: IEvtMng;\n\tstatic\t#appPixi: Application;\n\tstatic\tinit(evtMng: IEvtMng, appPixi: Application) {\n\t\tthis.#hTwInf = {};\n\t\tthis.#evtMng = evtMng;\n\t\tthis.#appPixi = appPixi;\n\n\t\tthis.#appPixi.ticker.add(this.#fncTicker);\t// TWEEN 更新\n\t}\n\tstatic\t#fncTicker = ()=> update();\n\tstatic\tdestroy() {\n\t\tthis.stopAllTw();\n\t\tthis.#appPixi.ticker.remove(this.#fncTicker);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tstatic\tsetTwProp(tw: Tween<any>, hArg: TArg): Tween<any> {\n\t\tconst repeat = argChk_Num(hArg, 'repeat', 1);\n\t\treturn tw.delay(argChk_Num(hArg, 'delay', 0))\n\t\t.easing(this.ease(hArg.ease))\n\t\t.repeat(repeat > 0 ?repeat -1 :Infinity)\t// 一度リピート→計二回なので\n\t\t.yoyo(argChk_Boolean(hArg, 'yoyo', false));\n\t}\n\tstatic\treadonly #hEase: {[name: string]: (k: number)=> number}\t= {\n\t\t'Back.In'\t\t\t: k=> Easing.Back.In(k),\n\t\t'Back.InOut'\t\t: k=> Easing.Back.InOut(k),\n\t\t'Back.Out'\t\t\t: k=> Easing.Back.Out(k),\n\t\t'Bounce.In'\t\t\t: k=> Easing.Bounce.In(k),\n\t\t'Bounce.InOut'\t\t: k=> Easing.Bounce.InOut(k),\n\t\t'Bounce.Out'\t\t: k=> Easing.Bounce.Out(k),\n\t\t'Circular.In'\t\t: k=> Easing.Circular.In(k),\n\t\t'Circular.InOut'\t: k=> Easing.Circular.InOut(k),\n\t\t'Circular.Out'\t\t: k=> Easing.Circular.Out(k),\n\t\t'Cubic.In'\t\t\t: k=> Easing.Cubic.In(k),\n\t\t'Cubic.InOut'\t\t: k=> Easing.Cubic.InOut(k),\n\t\t'Cubic.Out'\t\t\t: k=> Easing.Cubic.Out(k),\n\t\t'Elastic.In'\t\t: k=> Easing.Elastic.In(k),\n\t\t'Elastic.InOut'\t\t: k=> Easing.Elastic.InOut(k),\n\t\t'Elastic.Out'\t\t: k=> Easing.Elastic.Out(k),\n\t\t'Exponential.In'\t: k=> Easing.Exponential.In(k),\n\t\t'Exponential.InOut'\t: k=> Easing.Exponential.InOut(k),\n\t\t'Exponential.Out'\t: k=> Easing.Exponential.Out(k),\n\t\t'Linear.None'\t\t: k=> Easing.Linear.None(k),\n\t\t'Quadratic.In'\t\t: k=> Easing.Quadratic.In(k),\n\t\t'Quadratic.InOut'\t: k=> Easing.Quadratic.InOut(k),\n\t\t'Quadratic.Out'\t\t: k=> Easing.Quadratic.Out(k),\n\t\t'Quartic.In'\t\t: k=> Easing.Quartic.In(k),\n\t\t'Quartic.InOut'\t\t: k=> Easing.Quartic.InOut(k),\n\t\t'Quartic.Out'\t\t: k=> Easing.Quartic.Out(k),\n\t\t'Quintic.In'\t\t: k=> Easing.Quintic.In(k),\n\t\t'Quintic.InOut'\t\t: k=> Easing.Quintic.InOut(k),\n\t\t'Quintic.Out'\t\t: k=> Easing.Quintic.Out(k),\n\t\t'Sinusoidal.In'\t\t: k=> Easing.Sinusoidal.In(k),\n\t\t'Sinusoidal.InOut'\t: k=> Easing.Sinusoidal.InOut(k),\n\t\t'Sinusoidal.Out'\t: k=> Easing.Sinusoidal.Out(k),\n\t};\n\tstatic\tease(nm: string | undefined): (k: number)=> number {\n\t\tif (! nm) return k=> Easing.Linear.None(k);\n\n\t\tconst es = this.#hEase[nm];\n\t\tif (! es) throw '異常なease指定です';\n\t\treturn es;\n\t}\n\n\tstatic readonly aLayerPrpNm = <(keyof Layer)[]>[\n\t\t'alpha',\n\t\t'height',\n\t\t'rotation',\t// rotationX〜Z、scaleZ、zは設定すると\n\t\t'scale_x',\t// 三次元方向の拡大縮小ルーチンが働き画像がぼやけるので\n\t\t'scale_y',\t// backlayで設定しない方針\n\t\t'pivot_x',\n\t\t'pivot_y',\n\t\t'width',\n\t\t'x',\n\t\t'y',\n\t];\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tstatic cnvTweenArg(hArg: TArg, lay: any): TArg {\n\t\tconst hTo: {[val_name: string]: number} = {};\n\t\tfor (const nm of CmnTween.aLayerPrpNm) {\n\t\t\tconst arg = hArg[<keyof TArg>nm];\n\t\t\tif (! arg) continue;\n\n\t\t\t// {x:500}\t\t\tX位置を500に\n\t\t\t// {x:'=500'}\t\t現在のX位置に+500加算した位置\n\t\t\t// {x:'=-500'}\t\t現在のX位置に-500加算した位置\n\t\t\t// {x:'250,500'}\t+250から+500までの間でランダムな値をX位置に\n\t\t\t// {x:'=250,500'}\t+250から+500までの間でランダムな値を現在のX位置に加算\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-base-to-string\n\t\t\tconst v = String(arg);\n\t\t\tconst hdeq = v.startsWith('=');\n\t\t\tconst vx = hdeq ?v.slice(1) :v;\n\t\t\tif (! vx) continue;\n\n\t\t\tconst [v0='0', v1] = vx.split(',');\n\t\t\tconst a0 = hTo[nm] = parseFloat(v0);\n\n\t\t\tif (v1) hTo[nm] += Math.round(\n\t\t\t\tMath.random() * (parseFloat(v1) -a0 +1)\n\t\t\t);\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n\t\t\tif (hdeq) hTo[nm] += parseFloat(lay[nm]);\t// 相対に\n\t\t}\n\t\treturn hTo;\n\t}\n\n\n\t// トゥイーン全停止\n\tstatic\tstopAllTw() {this.#hTwInf = {}; removeAll()}\n\n\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tstatic\ttween(tw_nm: string, hArg: TArg, hNow: any, hTo: any, onUpdate: (d: any)=> void, onComplete: ()=> void, onEnd: ()=> void, start = true): Tween<any> {\n\t\tconst time = this.#evtMng.isSkipping ?0 :argChk_Num(hArg, 'time', NaN);\n\t\tconst tw = new Tween(hNow)\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n\t\t.to(hTo, time)\n\t\t.onUpdate(d=> onUpdate(d));\n\t\tthis.setTwProp(tw, hArg);\n\t\tthis.#hTwInf[tw_nm] = {tw, onEnd};\n\n\t\tconst {path} = hArg;\n\t\tlet twLast = tw;\n\t\tif (path) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\tif (CmnLib.debugLog) console.group(`🍝 [${hArg[':タグ名'] ?? ''}] path=${path}= start(${String(hNow.x)},${String(hNow.y)},${String(hNow.alpha)})`);\n\t\t\tfor (const {groups} of path.matchAll(this.#REG_TSY_PATH)) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\t\tconst {x, x2, y, y2, o, o2, json} = groups!;\n\t\t\t\tlet hArg2: TArg = {};\n\t\t\t\tif (json) try {hArg2 = <TArg>JSON.parse(json)} catch (e) {\n\t\t\t\t\tconsole.error(`🍝 json=${json} `+ String(e));\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif (x ?? x2) hArg2.x = x ?? x2;\n\t\t\t\t\tif (y ?? y2) hArg2.y = y ?? y2;\n\t\t\t\t\tif (o ?? o2) hArg2.alpha = Number(o ?? o2);\n\t\t\t\t}\n\n\t\t\t\tconst hTo2 = this.cnvTweenArg(hArg2, hNow);\n\t\t\t\tif (CmnLib.debugLog) console.info(`🍝 ${\n\t\t\t\t\tjson ?? `{x:${String(x)} y:${String(y)} o:${String(o)}}`\n\t\t\t\t} => hTo:${JSON.stringify(hTo2)}`);\n\n\t\t\t\tconst twNew = new Tween(hNow)\n\t\t\t\t.to(hTo2, time);\n\t\t\t\tthis.setTwProp(twNew, hArg);\n\t\t\t\ttwLast.chain(twNew);\n\n\t\t\t\ttwLast = twNew;\n\t\t\t}\n\t\t\tif (CmnLib.debugLog) console.groupEnd();\n\t\t}\n\t\ttwLast.onComplete(()=> {\n\t\t\tconst ti = this.#hTwInf[tw_nm];\n\t\t\tif (! ti?.tw) return;\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n\t\t\tdelete this.#hTwInf[tw_nm];\n\n\t\t\tti.tw = undefined;\n\t\t\ttw.stop();\n\t\t\tti.onEnd?.();\n\n\t\t\tonComplete();\n\t\t\tReading.notifyEndProc(PID_HD_TW + tw_nm);\t// ラストに\n\t\t});\n\n\t\tconst {chain} = hArg;\n\t\tif (chain) {\t// 指定レイヤのアニメ終了に、このトゥイーンを続ける\n\t\t\tconst twFrom = this.#hTwInf[chain];\n\t\t\tif (! twFrom?.tw) throw `${chain}は存在しない・または終了したトゥイーンです`;\n\t\t\tdelete twFrom.onEnd;\n\t\t\ttwFrom.tw.chain(tw);\n\t\t}\n\t\telse if (start) tw.start();\n\n\t\treturn tw;\n\t}\n\t// 11 match 301 step (0.1ms) PCRE2 https://regex101.com/r/reinpq/1\n\t\t// List ${x}${x2}/${y}${y2}/${o}${o2}=${json}\\n\n/*\n\\(\\s*\n(?:\t(?<x>[-=\\d\\.]+)\t|\t(['\"])\t(?<x2>.*?)\t\\2\t)?\n(?:\n\t\\s*,\\s*\n\t(?:\t(?<y>[-=\\d\\.]+)\t|\t(['\"])\t(?<y2>.*?)\t\\5\t)?\n\t(?:\n\t\t\\s*,\\s*\n\t\t(?:\t(?<o>[-=\\d\\.]+)\t|\t(['\"])\t(?<o2>.*?)\t\\8\t)\n\t)?\n)?\n|\n(?<json>\\{[^{}]*})\n*/\n\tstatic\treadonly\t#REG_TSY_PATH\t= /\\(\\s*(?:(?<x>[-=\\d.]+)|(['\"])(?<x2>.*?)\\2)?(?:\\s*,\\s*(?:(?<y>[-=\\d.]+)|(['\"])(?<y2>.*?)\\5)?(?:\\s*,\\s*(?:(?<o>[-=\\d.]+)|(['\"])(?<o2>.*?)\\8))?)?|(?<json>\\{[^{}]*})/g;\n\n\t// トランス終了待ち\n\tstatic\twt(_hArg: TArg) {\n\t\tconst ti = this.#hTwInf[TW_NM_TRANS];\n\t\tif (! ti?.tw) return false;\n\n\t\tconst fnc = ()=> this.stopEndTrans();\n\t\tReading.beginProc(TW_NM_TRANS, fnc, true, fnc);\n\t\treturn true;\n\t}\n\n\t// レイヤのトランジションの停止\n\tstatic\tstopEndTrans() {this.#hTwInf[TW_NM_TRANS]?.tw?.stop().end()}\n\t\t// stop()とend()は別\n\n\n\t// トゥイーン終了待ち\n\tstatic\twait_tsy(hArg: TArg) {\n\t\tconst tw_nm = this.#tw_nm(hArg);\n\t\tconst ti = this.#hTwInf[tw_nm];\n\t\tif (! ti?.tw) return false;\n\n\t\tconst fnc = ()=> ti.tw?.end();\t// stop()とend()は別\n\t\tReading.beginProc(PID_HD_TW + tw_nm, fnc, true, fnc);\n\t\treturn true;\n\t}\n\t\tstatic\t#tw_nm(hArg: TArg) {\n\t\t\tconst {layer='', id, name} = hArg;\n\t\t\tconst tw_nm = id ?`frm\\n${id}` :name ?? layer;\n\t\t\tif (! tw_nm) throw 'トゥイーンが指定されていません';\n\n\t\t\treturn tw_nm;\n\t\t}\n\n\t// トゥイーン中断\n\tstatic\tstop_tsy(hArg: TArg) {\n\t\tconst tw_nm = this.#tw_nm(hArg);\n\t\tthis.#hTwInf[tw_nm]?.tw?.stop().end();\t// stop()とend()は別\n\t\treturn false;\n\t}\n\n\t// 一時停止\n\tstatic\tpause_tsy(hArg: TArg) {\n\t\tconst tw_nm = this.#tw_nm(hArg);\n\t\tthis.#hTwInf[tw_nm]?.tw?.pause();\n\t\treturn false;\n\t}\n\n\t// 一時停止再開\n\tstatic\tresume_tsy(hArg: TArg) {\n\t\tconst tw_nm = this.#tw_nm(hArg);\n\t\tthis.#hTwInf[tw_nm]?.tw?.resume();\n\t\treturn false;\n\t}\n\n}\n"],"names":["TW_NM_TRANS","PID_HD_TW","CmnTween","#hTwInf","#evtMng","#appPixi","evtMng","appPixi","#fncTicker","update","tw","hArg","repeat","argChk_Num","argChk_Boolean","#hEase","k","Easing","nm","es","lay","hTo","arg","v","hdeq","vx","v0","v1","a0","removeAll","tw_nm","hNow","onUpdate","onComplete","onEnd","start","time","Tween","d","path","twLast","CmnLib","groups","#REG_TSY_PATH","x","x2","y2","o","o2","json","hArg2","e","hTo2","twNew","ti","Reading","chain","twFrom","_hArg","fnc","#tw_nm","layer","id","name"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CmnTween.js","sources":["../node_modules/@tweenjs/tween.js/dist/tween.esm.js","../src/sn/Reading.ts","../src/sn/CmnTween.ts"],"sourcesContent":["/**\n * The Ease class provides a collection of easing functions for use with tween.js.\n */\nvar Easing = Object.freeze({\n Linear: Object.freeze({\n None: function (amount) {\n return amount;\n },\n In: function (amount) {\n return amount;\n },\n Out: function (amount) {\n return amount;\n },\n InOut: function (amount) {\n return amount;\n },\n }),\n Quadratic: Object.freeze({\n In: function (amount) {\n return amount * amount;\n },\n Out: function (amount) {\n return amount * (2 - amount);\n },\n InOut: function (amount) {\n if ((amount *= 2) < 1) {\n return 0.5 * amount * amount;\n }\n return -0.5 * (--amount * (amount - 2) - 1);\n },\n }),\n Cubic: Object.freeze({\n In: function (amount) {\n return amount * amount * amount;\n },\n Out: function (amount) {\n return --amount * amount * amount + 1;\n },\n InOut: function (amount) {\n if ((amount *= 2) < 1) {\n return 0.5 * amount * amount * amount;\n }\n return 0.5 * ((amount -= 2) * amount * amount + 2);\n },\n }),\n Quartic: Object.freeze({\n In: function (amount) {\n return amount * amount * amount * amount;\n },\n Out: function (amount) {\n return 1 - --amount * amount * amount * amount;\n },\n InOut: function (amount) {\n if ((amount *= 2) < 1) {\n return 0.5 * amount * amount * amount * amount;\n }\n return -0.5 * ((amount -= 2) * amount * amount * amount - 2);\n },\n }),\n Quintic: Object.freeze({\n In: function (amount) {\n return amount * amount * amount * amount * amount;\n },\n Out: function (amount) {\n return --amount * amount * amount * amount * amount + 1;\n },\n InOut: function (amount) {\n if ((amount *= 2) < 1) {\n return 0.5 * amount * amount * amount * amount * amount;\n }\n return 0.5 * ((amount -= 2) * amount * amount * amount * amount + 2);\n },\n }),\n Sinusoidal: Object.freeze({\n In: function (amount) {\n return 1 - Math.sin(((1.0 - amount) * Math.PI) / 2);\n },\n Out: function (amount) {\n return Math.sin((amount * Math.PI) / 2);\n },\n InOut: function (amount) {\n return 0.5 * (1 - Math.sin(Math.PI * (0.5 - amount)));\n },\n }),\n Exponential: Object.freeze({\n In: function (amount) {\n return amount === 0 ? 0 : Math.pow(1024, amount - 1);\n },\n Out: function (amount) {\n return amount === 1 ? 1 : 1 - Math.pow(2, -10 * amount);\n },\n InOut: function (amount) {\n if (amount === 0) {\n return 0;\n }\n if (amount === 1) {\n return 1;\n }\n if ((amount *= 2) < 1) {\n return 0.5 * Math.pow(1024, amount - 1);\n }\n return 0.5 * (-Math.pow(2, -10 * (amount - 1)) + 2);\n },\n }),\n Circular: Object.freeze({\n In: function (amount) {\n return 1 - Math.sqrt(1 - amount * amount);\n },\n Out: function (amount) {\n return Math.sqrt(1 - --amount * amount);\n },\n InOut: function (amount) {\n if ((amount *= 2) < 1) {\n return -0.5 * (Math.sqrt(1 - amount * amount) - 1);\n }\n return 0.5 * (Math.sqrt(1 - (amount -= 2) * amount) + 1);\n },\n }),\n Elastic: Object.freeze({\n In: function (amount) {\n if (amount === 0) {\n return 0;\n }\n if (amount === 1) {\n return 1;\n }\n return -Math.pow(2, 10 * (amount - 1)) * Math.sin((amount - 1.1) * 5 * Math.PI);\n },\n Out: function (amount) {\n if (amount === 0) {\n return 0;\n }\n if (amount === 1) {\n return 1;\n }\n return Math.pow(2, -10 * amount) * Math.sin((amount - 0.1) * 5 * Math.PI) + 1;\n },\n InOut: function (amount) {\n if (amount === 0) {\n return 0;\n }\n if (amount === 1) {\n return 1;\n }\n amount *= 2;\n if (amount < 1) {\n return -0.5 * Math.pow(2, 10 * (amount - 1)) * Math.sin((amount - 1.1) * 5 * Math.PI);\n }\n return 0.5 * Math.pow(2, -10 * (amount - 1)) * Math.sin((amount - 1.1) * 5 * Math.PI) + 1;\n },\n }),\n Back: Object.freeze({\n In: function (amount) {\n var s = 1.70158;\n return amount === 1 ? 1 : amount * amount * ((s + 1) * amount - s);\n },\n Out: function (amount) {\n var s = 1.70158;\n return amount === 0 ? 0 : --amount * amount * ((s + 1) * amount + s) + 1;\n },\n InOut: function (amount) {\n var s = 1.70158 * 1.525;\n if ((amount *= 2) < 1) {\n return 0.5 * (amount * amount * ((s + 1) * amount - s));\n }\n return 0.5 * ((amount -= 2) * amount * ((s + 1) * amount + s) + 2);\n },\n }),\n Bounce: Object.freeze({\n In: function (amount) {\n return 1 - Easing.Bounce.Out(1 - amount);\n },\n Out: function (amount) {\n if (amount < 1 / 2.75) {\n return 7.5625 * amount * amount;\n }\n else if (amount < 2 / 2.75) {\n return 7.5625 * (amount -= 1.5 / 2.75) * amount + 0.75;\n }\n else if (amount < 2.5 / 2.75) {\n return 7.5625 * (amount -= 2.25 / 2.75) * amount + 0.9375;\n }\n else {\n return 7.5625 * (amount -= 2.625 / 2.75) * amount + 0.984375;\n }\n },\n InOut: function (amount) {\n if (amount < 0.5) {\n return Easing.Bounce.In(amount * 2) * 0.5;\n }\n return Easing.Bounce.Out(amount * 2 - 1) * 0.5 + 0.5;\n },\n }),\n generatePow: function (power) {\n if (power === void 0) { power = 4; }\n power = power < Number.EPSILON ? Number.EPSILON : power;\n power = power > 10000 ? 10000 : power;\n return {\n In: function (amount) {\n return Math.pow(amount, power);\n },\n Out: function (amount) {\n return 1 - Math.pow((1 - amount), power);\n },\n InOut: function (amount) {\n if (amount < 0.5) {\n return Math.pow((amount * 2), power) / 2;\n }\n return (1 - Math.pow((2 - amount * 2), power)) / 2 + 0.5;\n },\n };\n },\n});\n\nvar now = function () { return performance.now(); };\n\n/**\n * Controlling groups of tweens\n *\n * Using the TWEEN singleton to manage your tweens can cause issues in large apps with many components.\n * In these cases, you may want to create your own smaller groups of tween\n */\nvar Group = /** @class */ (function () {\n function Group() {\n var tweens = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n tweens[_i] = arguments[_i];\n }\n this._tweens = {};\n this._tweensAddedDuringUpdate = {};\n this.add.apply(this, tweens);\n }\n Group.prototype.getAll = function () {\n var _this = this;\n return Object.keys(this._tweens).map(function (tweenId) { return _this._tweens[tweenId]; });\n };\n Group.prototype.removeAll = function () {\n this._tweens = {};\n };\n Group.prototype.add = function () {\n var _a;\n var tweens = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n tweens[_i] = arguments[_i];\n }\n for (var _b = 0, tweens_1 = tweens; _b < tweens_1.length; _b++) {\n var tween = tweens_1[_b];\n // Remove from any other group first, a tween can only be in one group at a time.\n // @ts-expect-error library internal access\n (_a = tween._group) === null || _a === void 0 ? void 0 : _a.remove(tween);\n // @ts-expect-error library internal access\n tween._group = this;\n this._tweens[tween.getId()] = tween;\n this._tweensAddedDuringUpdate[tween.getId()] = tween;\n }\n };\n Group.prototype.remove = function () {\n var tweens = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n tweens[_i] = arguments[_i];\n }\n for (var _a = 0, tweens_2 = tweens; _a < tweens_2.length; _a++) {\n var tween = tweens_2[_a];\n // @ts-expect-error library internal access\n tween._group = undefined;\n delete this._tweens[tween.getId()];\n delete this._tweensAddedDuringUpdate[tween.getId()];\n }\n };\n /** Return true if all tweens in the group are not paused or playing. */\n Group.prototype.allStopped = function () {\n return this.getAll().every(function (tween) { return !tween.isPlaying(); });\n };\n Group.prototype.update = function (time, preserve) {\n if (time === void 0) { time = now(); }\n if (preserve === void 0) { preserve = true; }\n var tweenIds = Object.keys(this._tweens);\n if (tweenIds.length === 0)\n return;\n // Tweens are updated in \"batches\". If you add a new tween during an\n // update, then the new tween will be updated in the next batch.\n // If you remove a tween during an update, it may or may not be updated.\n // However, if the removed tween was added during the current batch,\n // then it will not be updated.\n while (tweenIds.length > 0) {\n this._tweensAddedDuringUpdate = {};\n for (var i = 0; i < tweenIds.length; i++) {\n var tween = this._tweens[tweenIds[i]];\n var autoStart = !preserve;\n if (tween && tween.update(time, autoStart) === false && !preserve)\n this.remove(tween);\n }\n tweenIds = Object.keys(this._tweensAddedDuringUpdate);\n }\n };\n return Group;\n}());\n\n/**\n *\n */\nvar Interpolation = {\n Linear: function (v, k) {\n var m = v.length - 1;\n var f = m * k;\n var i = Math.floor(f);\n var fn = Interpolation.Utils.Linear;\n if (k < 0) {\n return fn(v[0], v[1], f);\n }\n if (k > 1) {\n return fn(v[m], v[m - 1], m - f);\n }\n return fn(v[i], v[i + 1 > m ? m : i + 1], f - i);\n },\n Bezier: function (v, k) {\n var b = 0;\n var n = v.length - 1;\n var pw = Math.pow;\n var bn = Interpolation.Utils.Bernstein;\n for (var i = 0; i <= n; i++) {\n b += pw(1 - k, n - i) * pw(k, i) * v[i] * bn(n, i);\n }\n return b;\n },\n CatmullRom: function (v, k) {\n var m = v.length - 1;\n var f = m * k;\n var i = Math.floor(f);\n var fn = Interpolation.Utils.CatmullRom;\n if (v[0] === v[m]) {\n if (k < 0) {\n i = Math.floor((f = m * (1 + k)));\n }\n return fn(v[(i - 1 + m) % m], v[i], v[(i + 1) % m], v[(i + 2) % m], f - i);\n }\n else {\n if (k < 0) {\n return v[0] - (fn(v[0], v[0], v[1], v[1], -f) - v[0]);\n }\n if (k > 1) {\n return v[m] - (fn(v[m], v[m], v[m - 1], v[m - 1], f - m) - v[m]);\n }\n return fn(v[i ? i - 1 : 0], v[i], v[m < i + 1 ? m : i + 1], v[m < i + 2 ? m : i + 2], f - i);\n }\n },\n Utils: {\n Linear: function (p0, p1, t) {\n return (p1 - p0) * t + p0;\n },\n Bernstein: function (n, i) {\n var fc = Interpolation.Utils.Factorial;\n return fc(n) / fc(i) / fc(n - i);\n },\n Factorial: (function () {\n var a = [1];\n return function (n) {\n var s = 1;\n if (a[n]) {\n return a[n];\n }\n for (var i = n; i > 1; i--) {\n s *= i;\n }\n a[n] = s;\n return s;\n };\n })(),\n CatmullRom: function (p0, p1, p2, p3, t) {\n var v0 = (p2 - p0) * 0.5;\n var v1 = (p3 - p1) * 0.5;\n var t2 = t * t;\n var t3 = t * t2;\n return (2 * p1 - 2 * p2 + v0 + v1) * t3 + (-3 * p1 + 3 * p2 - 2 * v0 - v1) * t2 + v0 * t + p1;\n },\n },\n};\n\n/**\n * Utils\n */\nvar Sequence = /** @class */ (function () {\n function Sequence() {\n }\n Sequence.nextId = function () {\n return Sequence._nextId++;\n };\n Sequence._nextId = 0;\n return Sequence;\n}());\n\nvar mainGroup = new Group();\n\n/**\n * Tween.js - Licensed under the MIT license\n * https://github.com/tweenjs/tween.js\n * ----------------------------------------------\n *\n * See https://github.com/tweenjs/tween.js/graphs/contributors for the full list of contributors.\n * Thank you all, you're awesome!\n */\nvar Tween = /** @class */ (function () {\n function Tween(object, group) {\n this._isPaused = false;\n this._pauseStart = 0;\n this._valuesStart = {};\n this._valuesEnd = {};\n this._valuesStartRepeat = {};\n this._duration = 1000;\n this._isDynamic = false;\n this._initialRepeat = 0;\n this._repeat = 0;\n this._yoyo = false;\n this._isPlaying = false;\n this._reversed = false;\n this._delayTime = 0;\n this._startTime = 0;\n this._easingFunction = Easing.Linear.None;\n this._interpolationFunction = Interpolation.Linear;\n // eslint-disable-next-line\n this._chainedTweens = [];\n this._onStartCallbackFired = false;\n this._onEveryStartCallbackFired = false;\n this._id = Sequence.nextId();\n this._isChainStopped = false;\n this._propertiesAreSetUp = false;\n this._goToEnd = false;\n this._object = object;\n if (typeof group === 'object') {\n this._group = group;\n group.add(this);\n }\n // Use \"true\" to restore old behavior (will be removed in future release).\n else if (group === true) {\n this._group = mainGroup;\n mainGroup.add(this);\n }\n }\n Tween.prototype.getId = function () {\n return this._id;\n };\n Tween.prototype.isPlaying = function () {\n return this._isPlaying;\n };\n Tween.prototype.isPaused = function () {\n return this._isPaused;\n };\n Tween.prototype.getDuration = function () {\n return this._duration;\n };\n Tween.prototype.to = function (target, duration) {\n if (duration === void 0) { duration = 1000; }\n if (this._isPlaying)\n throw new Error('Can not call Tween.to() while Tween is already started or paused. Stop the Tween first.');\n this._valuesEnd = target;\n this._propertiesAreSetUp = false;\n this._duration = duration < 0 ? 0 : duration;\n return this;\n };\n Tween.prototype.duration = function (duration) {\n if (duration === void 0) { duration = 1000; }\n this._duration = duration < 0 ? 0 : duration;\n return this;\n };\n Tween.prototype.dynamic = function (dynamic) {\n if (dynamic === void 0) { dynamic = false; }\n this._isDynamic = dynamic;\n return this;\n };\n Tween.prototype.start = function (time, overrideStartingValues) {\n if (time === void 0) { time = now(); }\n if (overrideStartingValues === void 0) { overrideStartingValues = false; }\n if (this._isPlaying) {\n return this;\n }\n this._repeat = this._initialRepeat;\n if (this._reversed) {\n // If we were reversed (f.e. using the yoyo feature) then we need to\n // flip the tween direction back to forward.\n this._reversed = false;\n for (var property in this._valuesStartRepeat) {\n this._swapEndStartRepeatValues(property);\n this._valuesStart[property] = this._valuesStartRepeat[property];\n }\n }\n this._isPlaying = true;\n this._isPaused = false;\n this._onStartCallbackFired = false;\n this._onEveryStartCallbackFired = false;\n this._isChainStopped = false;\n this._startTime = time;\n this._startTime += this._delayTime;\n if (!this._propertiesAreSetUp || overrideStartingValues) {\n this._propertiesAreSetUp = true;\n // If dynamic is not enabled, clone the end values instead of using the passed-in end values.\n if (!this._isDynamic) {\n var tmp = {};\n for (var prop in this._valuesEnd)\n tmp[prop] = this._valuesEnd[prop];\n this._valuesEnd = tmp;\n }\n this._setupProperties(this._object, this._valuesStart, this._valuesEnd, this._valuesStartRepeat, overrideStartingValues);\n }\n return this;\n };\n Tween.prototype.startFromCurrentValues = function (time) {\n return this.start(time, true);\n };\n Tween.prototype._setupProperties = function (_object, _valuesStart, _valuesEnd, _valuesStartRepeat, overrideStartingValues) {\n for (var property in _valuesEnd) {\n var startValue = _object[property];\n var startValueIsArray = Array.isArray(startValue);\n var propType = startValueIsArray ? 'array' : typeof startValue;\n var isInterpolationList = !startValueIsArray && Array.isArray(_valuesEnd[property]);\n // If `to()` specifies a property that doesn't exist in the source object,\n // we should not set that property in the object\n if (propType === 'undefined' || propType === 'function') {\n continue;\n }\n // Check if an Array was provided as property value\n if (isInterpolationList) {\n var endValues = _valuesEnd[property];\n if (endValues.length === 0) {\n continue;\n }\n // Handle an array of relative values.\n // Creates a local copy of the Array with the start value at the front\n var temp = [startValue];\n for (var i = 0, l = endValues.length; i < l; i += 1) {\n var value = this._handleRelativeValue(startValue, endValues[i]);\n if (isNaN(value)) {\n isInterpolationList = false;\n console.warn('Found invalid interpolation list. Skipping.');\n break;\n }\n temp.push(value);\n }\n if (isInterpolationList) {\n // if (_valuesStart[property] === undefined) { // handle end values only the first time. NOT NEEDED? setupProperties is now guarded by _propertiesAreSetUp.\n _valuesEnd[property] = temp;\n // }\n }\n }\n // handle the deepness of the values\n if ((propType === 'object' || startValueIsArray) && startValue && !isInterpolationList) {\n _valuesStart[property] = startValueIsArray ? [] : {};\n var nestedObject = startValue;\n for (var prop in nestedObject) {\n _valuesStart[property][prop] = nestedObject[prop];\n }\n // TODO? repeat nested values? And yoyo? And array values?\n _valuesStartRepeat[property] = startValueIsArray ? [] : {};\n var endValues = _valuesEnd[property];\n // If dynamic is not enabled, clone the end values instead of using the passed-in end values.\n if (!this._isDynamic) {\n var tmp = {};\n for (var prop in endValues)\n tmp[prop] = endValues[prop];\n _valuesEnd[property] = endValues = tmp;\n }\n this._setupProperties(nestedObject, _valuesStart[property], endValues, _valuesStartRepeat[property], overrideStartingValues);\n }\n else {\n // Save the starting value, but only once unless override is requested.\n if (typeof _valuesStart[property] === 'undefined' || overrideStartingValues) {\n _valuesStart[property] = startValue;\n }\n if (!startValueIsArray) {\n // eslint-disable-next-line\n // @ts-ignore FIXME?\n _valuesStart[property] *= 1.0; // Ensures we're using numbers, not strings\n }\n if (isInterpolationList) {\n // eslint-disable-next-line\n // @ts-ignore FIXME?\n _valuesStartRepeat[property] = _valuesEnd[property].slice().reverse();\n }\n else {\n _valuesStartRepeat[property] = _valuesStart[property] || 0;\n }\n }\n }\n };\n Tween.prototype.stop = function () {\n if (!this._isChainStopped) {\n this._isChainStopped = true;\n this.stopChainedTweens();\n }\n if (!this._isPlaying) {\n return this;\n }\n this._isPlaying = false;\n this._isPaused = false;\n if (this._onStopCallback) {\n this._onStopCallback(this._object);\n }\n return this;\n };\n Tween.prototype.end = function () {\n this._goToEnd = true;\n this.update(this._startTime + this._duration);\n return this;\n };\n Tween.prototype.pause = function (time) {\n if (time === void 0) { time = now(); }\n if (this._isPaused || !this._isPlaying) {\n return this;\n }\n this._isPaused = true;\n this._pauseStart = time;\n return this;\n };\n Tween.prototype.resume = function (time) {\n if (time === void 0) { time = now(); }\n if (!this._isPaused || !this._isPlaying) {\n return this;\n }\n this._isPaused = false;\n this._startTime += time - this._pauseStart;\n this._pauseStart = 0;\n return this;\n };\n Tween.prototype.stopChainedTweens = function () {\n for (var i = 0, numChainedTweens = this._chainedTweens.length; i < numChainedTweens; i++) {\n this._chainedTweens[i].stop();\n }\n return this;\n };\n Tween.prototype.group = function (group) {\n if (!group) {\n console.warn('tween.group() without args has been removed, use group.add(tween) instead.');\n return this;\n }\n group.add(this);\n return this;\n };\n /**\n * Removes the tween from whichever group it is in.\n */\n Tween.prototype.remove = function () {\n var _a;\n (_a = this._group) === null || _a === void 0 ? void 0 : _a.remove(this);\n return this;\n };\n Tween.prototype.delay = function (amount) {\n if (amount === void 0) { amount = 0; }\n this._delayTime = amount;\n return this;\n };\n Tween.prototype.repeat = function (times) {\n if (times === void 0) { times = 0; }\n this._initialRepeat = times;\n this._repeat = times;\n return this;\n };\n Tween.prototype.repeatDelay = function (amount) {\n this._repeatDelayTime = amount;\n return this;\n };\n Tween.prototype.yoyo = function (yoyo) {\n if (yoyo === void 0) { yoyo = false; }\n this._yoyo = yoyo;\n return this;\n };\n Tween.prototype.easing = function (easingFunction) {\n if (easingFunction === void 0) { easingFunction = Easing.Linear.None; }\n this._easingFunction = easingFunction;\n return this;\n };\n Tween.prototype.interpolation = function (interpolationFunction) {\n if (interpolationFunction === void 0) { interpolationFunction = Interpolation.Linear; }\n this._interpolationFunction = interpolationFunction;\n return this;\n };\n // eslint-disable-next-line\n Tween.prototype.chain = function () {\n var tweens = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n tweens[_i] = arguments[_i];\n }\n this._chainedTweens = tweens;\n return this;\n };\n Tween.prototype.onStart = function (callback) {\n this._onStartCallback = callback;\n return this;\n };\n Tween.prototype.onEveryStart = function (callback) {\n this._onEveryStartCallback = callback;\n return this;\n };\n Tween.prototype.onUpdate = function (callback) {\n this._onUpdateCallback = callback;\n return this;\n };\n Tween.prototype.onRepeat = function (callback) {\n this._onRepeatCallback = callback;\n return this;\n };\n Tween.prototype.onComplete = function (callback) {\n this._onCompleteCallback = callback;\n return this;\n };\n Tween.prototype.onStop = function (callback) {\n this._onStopCallback = callback;\n return this;\n };\n /**\n * @returns true if the tween is still playing after the update, false\n * otherwise (calling update on a paused tween still returns true because\n * it is still playing, just paused).\n *\n * @param autoStart - When true, calling update will implicitly call start()\n * as well. Note, if you stop() or end() the tween, but are still calling\n * update(), it will start again!\n */\n Tween.prototype.update = function (time, autoStart) {\n var _this = this;\n var _a;\n if (time === void 0) { time = now(); }\n if (autoStart === void 0) { autoStart = Tween.autoStartOnUpdate; }\n if (this._isPaused)\n return true;\n var property;\n if (!this._goToEnd && !this._isPlaying) {\n if (autoStart)\n this.start(time, true);\n else\n return false;\n }\n this._goToEnd = false;\n if (time < this._startTime) {\n return true;\n }\n if (this._onStartCallbackFired === false) {\n if (this._onStartCallback) {\n this._onStartCallback(this._object);\n }\n this._onStartCallbackFired = true;\n }\n if (this._onEveryStartCallbackFired === false) {\n if (this._onEveryStartCallback) {\n this._onEveryStartCallback(this._object);\n }\n this._onEveryStartCallbackFired = true;\n }\n var elapsedTime = time - this._startTime;\n var durationAndDelay = this._duration + ((_a = this._repeatDelayTime) !== null && _a !== void 0 ? _a : this._delayTime);\n var totalTime = this._duration + this._repeat * durationAndDelay;\n var calculateElapsedPortion = function () {\n if (_this._duration === 0)\n return 1;\n if (elapsedTime > totalTime) {\n return 1;\n }\n var timesRepeated = Math.trunc(elapsedTime / durationAndDelay);\n var timeIntoCurrentRepeat = elapsedTime - timesRepeated * durationAndDelay;\n // TODO use %?\n // const timeIntoCurrentRepeat = elapsedTime % durationAndDelay\n var portion = Math.min(timeIntoCurrentRepeat / _this._duration, 1);\n if (portion === 0 && elapsedTime === _this._duration) {\n return 1;\n }\n return portion;\n };\n var elapsed = calculateElapsedPortion();\n var value = this._easingFunction(elapsed);\n // properties transformations\n this._updateProperties(this._object, this._valuesStart, this._valuesEnd, value);\n if (this._onUpdateCallback) {\n this._onUpdateCallback(this._object, elapsed);\n }\n if (this._duration === 0 || elapsedTime >= this._duration) {\n if (this._repeat > 0) {\n var completeCount = Math.min(Math.trunc((elapsedTime - this._duration) / durationAndDelay) + 1, this._repeat);\n if (isFinite(this._repeat)) {\n this._repeat -= completeCount;\n }\n // Reassign starting values, restart by making startTime = now\n for (property in this._valuesStartRepeat) {\n if (!this._yoyo && typeof this._valuesEnd[property] === 'string') {\n this._valuesStartRepeat[property] =\n // eslint-disable-next-line\n // @ts-ignore FIXME?\n this._valuesStartRepeat[property] + parseFloat(this._valuesEnd[property]);\n }\n if (this._yoyo) {\n this._swapEndStartRepeatValues(property);\n }\n this._valuesStart[property] = this._valuesStartRepeat[property];\n }\n if (this._yoyo) {\n this._reversed = !this._reversed;\n }\n this._startTime += durationAndDelay * completeCount;\n if (this._onRepeatCallback) {\n this._onRepeatCallback(this._object);\n }\n this._onEveryStartCallbackFired = false;\n return true;\n }\n else {\n if (this._onCompleteCallback) {\n this._onCompleteCallback(this._object);\n }\n for (var i = 0, numChainedTweens = this._chainedTweens.length; i < numChainedTweens; i++) {\n // Make the chained tweens start exactly at the time they should,\n // even if the `update()` method was called way past the duration of the tween\n this._chainedTweens[i].start(this._startTime + this._duration, false);\n }\n this._isPlaying = false;\n return false;\n }\n }\n return true;\n };\n Tween.prototype._updateProperties = function (_object, _valuesStart, _valuesEnd, value) {\n for (var property in _valuesEnd) {\n // Don't update properties that do not exist in the source object\n if (_valuesStart[property] === undefined) {\n continue;\n }\n var start = _valuesStart[property] || 0;\n var end = _valuesEnd[property];\n var startIsArray = Array.isArray(_object[property]);\n var endIsArray = Array.isArray(end);\n var isInterpolationList = !startIsArray && endIsArray;\n if (isInterpolationList) {\n _object[property] = this._interpolationFunction(end, value);\n }\n else if (typeof end === 'object' && end) {\n // eslint-disable-next-line\n // @ts-ignore FIXME?\n this._updateProperties(_object[property], start, end, value);\n }\n else {\n // Parses relative end values with start as base (e.g.: +10, -3)\n end = this._handleRelativeValue(start, end);\n // Protect against non numeric properties.\n if (typeof end === 'number') {\n // eslint-disable-next-line\n // @ts-ignore FIXME?\n _object[property] = start + (end - start) * value;\n }\n }\n }\n };\n Tween.prototype._handleRelativeValue = function (start, end) {\n if (typeof end !== 'string') {\n return end;\n }\n if (end.charAt(0) === '+' || end.charAt(0) === '-') {\n return start + parseFloat(end);\n }\n return parseFloat(end);\n };\n Tween.prototype._swapEndStartRepeatValues = function (property) {\n var tmp = this._valuesStartRepeat[property];\n var endValue = this._valuesEnd[property];\n if (typeof endValue === 'string') {\n this._valuesStartRepeat[property] = this._valuesStartRepeat[property] + parseFloat(endValue);\n }\n else {\n this._valuesStartRepeat[property] = this._valuesEnd[property];\n }\n this._valuesEnd[property] = tmp;\n };\n Tween.autoStartOnUpdate = false;\n return Tween;\n}());\n\nvar VERSION = '25.0.0';\n\n/**\n * Tween.js - Licensed under the MIT license\n * https://github.com/tweenjs/tween.js\n * ----------------------------------------------\n *\n * See https://github.com/tweenjs/tween.js/graphs/contributors for the full list of contributors.\n * Thank you all, you're awesome!\n */\nvar nextId = Sequence.nextId;\n/**\n * Controlling groups of tweens\n *\n * Using the TWEEN singleton to manage your tweens can cause issues in large apps with many components.\n * In these cases, you may want to create your own smaller groups of tweens.\n */\nvar TWEEN = mainGroup;\n// This is the best way to export things in a way that's compatible with both ES\n// Modules and CommonJS, without build hacks, and so as not to break the\n// existing API.\n// https://github.com/rollup/rollup/issues/1961#issuecomment-423037881\n/**\n * @deprecated The global TWEEN Group will be removed in a following major\n * release. To migrate, create a `new Group()` instead of using `TWEEN` as a\n * group.\n *\n * Old code:\n *\n * ```js\n * import * as TWEEN from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new TWEEN.Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * TWEEN.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n *\n * New code:\n *\n * ```js\n * import {Tween, Group} from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * const group = new Group()\n * group.add(tween)\n * group.add(tween2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * group.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n */\nvar getAll = TWEEN.getAll.bind(TWEEN);\n/**\n * @deprecated The global TWEEN Group will be removed in a following major\n * release. To migrate, create a `new Group()` instead of using `TWEEN` as a\n * group.\n *\n * Old code:\n *\n * ```js\n * import * as TWEEN from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new TWEEN.Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * TWEEN.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n *\n * New code:\n *\n * ```js\n * import {Tween, Group} from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * const group = new Group()\n * group.add(tween)\n * group.add(tween2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * group.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n */\nvar removeAll = TWEEN.removeAll.bind(TWEEN);\n/**\n * @deprecated The global TWEEN Group will be removed in a following major\n * release. To migrate, create a `new Group()` instead of using `TWEEN` as a\n * group.\n *\n * Old code:\n *\n * ```js\n * import * as TWEEN from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new TWEEN.Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * TWEEN.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n *\n * New code:\n *\n * ```js\n * import {Tween, Group} from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * const group = new Group()\n * group.add(tween)\n * group.add(tween2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * group.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n */\nvar add = TWEEN.add.bind(TWEEN);\n/**\n * @deprecated The global TWEEN Group will be removed in a following major\n * release. To migrate, create a `new Group()` instead of using `TWEEN` as a\n * group.\n *\n * Old code:\n *\n * ```js\n * import * as TWEEN from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new TWEEN.Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * TWEEN.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n *\n * New code:\n *\n * ```js\n * import {Tween, Group} from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * const group = new Group()\n * group.add(tween)\n * group.add(tween2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * group.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n */\nvar remove = TWEEN.remove.bind(TWEEN);\n/**\n * @deprecated The global TWEEN Group will be removed in a following major\n * release. To migrate, create a `new Group()` instead of using `TWEEN` as a\n * group.\n *\n * Old code:\n *\n * ```js\n * import * as TWEEN from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new TWEEN.Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * TWEEN.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n *\n * New code:\n *\n * ```js\n * import {Tween, Group} from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * const group = new Group()\n * group.add(tween)\n * group.add(tween2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * group.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n */\nvar update = TWEEN.update.bind(TWEEN);\nvar exports = {\n Easing: Easing,\n Group: Group,\n Interpolation: Interpolation,\n now: now,\n Sequence: Sequence,\n nextId: nextId,\n Tween: Tween,\n VERSION: VERSION,\n /**\n * @deprecated The global TWEEN Group will be removed in a following major\n * release. To migrate, create a `new Group()` instead of using `TWEEN` as a\n * group.\n *\n * Old code:\n *\n * ```js\n * import * as TWEEN from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new TWEEN.Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * TWEEN.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n *\n * New code:\n *\n * ```js\n * import {Tween, Group} from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * const group = new Group()\n * group.add(tween)\n * group.add(tween2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * group.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n */\n getAll: getAll,\n /**\n * @deprecated The global TWEEN Group will be removed in a following major\n * release. To migrate, create a `new Group()` instead of using `TWEEN` as a\n * group.\n *\n * Old code:\n *\n * ```js\n * import * as TWEEN from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new TWEEN.Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * TWEEN.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n *\n * New code:\n *\n * ```js\n * import {Tween, Group} from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * const group = new Group()\n * group.add(tween)\n * group.add(tween2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * group.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n */\n removeAll: removeAll,\n /**\n * @deprecated The global TWEEN Group will be removed in a following major\n * release. To migrate, create a `new Group()` instead of using `TWEEN` as a\n * group.\n *\n * Old code:\n *\n * ```js\n * import * as TWEEN from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new TWEEN.Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * TWEEN.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n *\n * New code:\n *\n * ```js\n * import {Tween, Group} from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * const group = new Group()\n * group.add(tween)\n * group.add(tween2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * group.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n */\n add: add,\n /**\n * @deprecated The global TWEEN Group will be removed in a following major\n * release. To migrate, create a `new Group()` instead of using `TWEEN` as a\n * group.\n *\n * Old code:\n *\n * ```js\n * import * as TWEEN from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new TWEEN.Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * TWEEN.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n *\n * New code:\n *\n * ```js\n * import {Tween, Group} from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * const group = new Group()\n * group.add(tween)\n * group.add(tween2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * group.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n */\n remove: remove,\n /**\n * @deprecated The global TWEEN Group will be removed in a following major\n * release. To migrate, create a `new Group()` instead of using `TWEEN` as a\n * group.\n *\n * Old code:\n *\n * ```js\n * import * as TWEEN from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new TWEEN.Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * TWEEN.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n *\n * New code:\n *\n * ```js\n * import {Tween, Group} from '@tweenjs/tween.js'\n *\n * //...\n *\n * const tween = new Tween(obj)\n * const tween2 = new TWEEN.Tween(obj2)\n *\n * //...\n *\n * const group = new Group()\n * group.add(tween)\n * group.add(tween2)\n *\n * //...\n *\n * requestAnimationFrame(function loop(time) {\n * group.update(time)\n * requestAnimationFrame(loop)\n * })\n * ```\n */\n update: update,\n};\n\nexport { Easing, Group, Interpolation, Sequence, Tween, VERSION, add, exports as default, getAll, nextId, now, remove, removeAll, update };\n","/* ***** BEGIN LICENSE BLOCK *****\n\tCopyright (c) 2025-2025 Famibee (famibee.blog38.fc2.com)\n\n\tThis software is released under the MIT License.\n\thttp://opensource.org/licenses/mit-license.php\n** ***** END LICENSE BLOCK ***** */\n\nimport type {TArg, T_HTag} from './Grammar';\nimport type {T_Evt2Fnc, T_HEvt2Fnc, T_Main, T_Mark, T_Variable} from './CmnInterface';\nimport {argChk_Boolean, argChk_Num, CmnLib, EVNM_CLICK, EVNM_KEY} from './CmnLib';\nimport type {Config} from './Config';\nimport type {ScriptIterator} from './ScriptIterator';\nimport type {LayerMng} from './LayerMng';\nimport type {EventMng} from './EventMng';\nimport type {FocusMng} from './FocusMng';\nimport type {SoundMng} from './SoundMng';\nimport {EventListenerCtn} from './EventListenerCtn';\nimport type {T_RP_layGrp} from './GrpLayer';\nimport type {T_RP_layTxt} from './TxtLayer';\nimport {CmnTween} from './CmnTween';\n\nimport {Container} from 'pixi.js';\nimport {Group, Tween} from '@tweenjs/tween.js'\n\n\ntype IPageLog = {\n\tkey\t\t: string;\n\tfn\t\t: string;\n\tindex\t: number;\n\tmark\t: T_Mark;\n\tweek\t: boolean;\n}\n\n\nexport class ReadingState {\n\tstatic\treadonly\t#grp = new Group;\n\tstatic\tinit() {CmnTween.addGrp(ReadingState.#grp)}\n\n\tstatic\t#rs: ReadingState;\n\tstatic\tget rs() {return this.#rs}\n\tconstructor() {ReadingState.#rs = this}\n\n\tstatic\t#hLocalEvt2Fnc\t: T_HEvt2Fnc = {};\n\tstatic\t#hGlobalEvt2Fnc\t: T_HEvt2Fnc = {};\n\tstatic\tsetEvt2Fnc(glb: boolean, key: string, fnc: T_Evt2Fnc) {\n\t\tif (glb)\n\t\t\tthis.#hGlobalEvt2Fnc[key] = fnc;\n\t\telse this.#hLocalEvt2Fnc[key] = fnc;\n\t}\n\tstatic\tgetEvt2Fnc = (key: string): T_Evt2Fnc | undefined => this.#hLocalEvt2Fnc[key] ?? this.#hGlobalEvt2Fnc[key];\n\tstatic\tclear_eventer(rawKeY: string, glb: boolean, key: string) {\n\t\tif (! rawKeY.startsWith('dom=')) return;\n\n\t\tconst e2f = glb ? this.#hGlobalEvt2Fnc[key] : this.#hLocalEvt2Fnc[key];\n\t\tif (e2f) this.getHtmlElmList(rawKeY).el.forEach(v=> v.removeEventListener('click', e2f));\n\t\t// eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n\t\tif (glb) delete this.#hGlobalEvt2Fnc[key];\n\t\t// eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n\t\telse\tdelete this.#hLocalEvt2Fnc[key];\n\t}\n\n\tstatic\tpopLocalEvts(): T_HEvt2Fnc {\n\t\tconst ret = this.#hLocalEvt2Fnc;\n\t\tthis.#hLocalEvt2Fnc = {};\n\t\treturn ret;\n\t}\n\tstatic\tpushLocalEvts(h: T_HEvt2Fnc) {this.#hLocalEvt2Fnc = h}\n\n\tstatic\tclear_event(hArg: TArg): boolean {\n\t\tconst glb = argChk_Boolean(hArg, 'global', false);\n\t\tconst h = glb ?this.#hGlobalEvt2Fnc :this.#hLocalEvt2Fnc;\n\t\tfor (const [KeY, e2f] of Object.entries(h)) {\n\t\t\tif (! KeY.startsWith('dom=')) continue;\n\n\t\t\tthis.getHtmlElmList(KeY).el.forEach(v=> v.removeEventListener('click', e2f));\n\t\t}\n\t\tif (glb) this.#hGlobalEvt2Fnc = {}; else this.#hLocalEvt2Fnc = {};\n\n\t\treturn false;\n\t}\n\t\tstatic\tgetHtmlElmList(KeY: string): {el: NodeListOf<HTMLElement>, id: string, sel: string} {\n\t\t\tconst idx = KeY.indexOf(':');\n\t\t\tlet sel = '';\n\t\t\tif (idx >= 0) {\t\t// key='dom=config:#ctrl2val\n\t\t\t\tconst id = KeY.slice(4, idx);\n\t\t\t\tconst frmnm = `const.sn.frm.${id}`;\n\t\t\t\tif (! Reading.val.getVal(`tmp:${frmnm}`, 0)) throw `HTML【${id}】が読み込まれていません`;\n\n\t\t\t\tconst ifrm = <HTMLIFrameElement | null>document.getElementById(id);\n\t\t\t\tif (! ifrm) throw `HTML【${id}】の要素(id=${id})がありません`;\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\t\tconst win = ifrm.contentWindow!;\n\t\t\t\tsel = KeY.slice(idx +1);\n\t\t\t\treturn {el: win.document.querySelectorAll(sel), id, sel};\n\t\t\t}\n\n\t\t\tsel = KeY.slice(4);\n\t\t\treturn {el: document.querySelectorAll(sel), id: '', sel};\n\t\t}\n\n\t// 予約イベントの発生待ち\n\tstatic\twaitRsvEvent(glb: boolean, onUserAct?: ()=> void): void {\n\t\tReading.val.saveKidoku();\n\n\t\tif (onUserAct) {\n\t\t\t//hTag.event({key:'click', breakout: fnc});\n\t\t\t//hTag.event({key:'middleclick', breakout: fnc});\n\t\t\t//\thTag.event()は内部で使わず、こうする\n\t\t\tthis.#hLocalEvt2Fnc.click =\n\t\t\tthis.#hLocalEvt2Fnc.enter =\n\t\t\tthis.#hLocalEvt2Fnc.arrowdown =\n\n\t\t\t// hTag.event({key:'downwheel', breakout: fnc});\n\t\t\tthis.#hLocalEvt2Fnc['wheel.y>0'] = ()=> onUserAct();\n\t\t}\n\t\telse {\n\t\t\tdelete this.#hLocalEvt2Fnc.click;\n\t\t\tdelete this.#hLocalEvt2Fnc.enter;\n\t\t\tdelete this.#hLocalEvt2Fnc.arrowdown;\n\t\t\tdelete this.#hLocalEvt2Fnc['wheel.y>0'];\n\t\t}\n\t\tthis.getEvt2Fnc = glb\n\t\t\t? key=> this.#hLocalEvt2Fnc[key]\n\t\t\t\t?? this.#hGlobalEvt2Fnc[key]\n\t\t\t: key=> this.#hLocalEvt2Fnc[key];\n\n\t\tReading.scrItr.noticeWait();\n\t\tif (CmnLib.debugLog) console.log('🎍 wait event... %o', {\n\t\t\tlocal\t: Object.keys(this.#hLocalEvt2Fnc),\n\t\t\tglobal\t: Object.keys(this.#hGlobalEvt2Fnc),\n\t\t});\n\t}\n\n\tstatic\twaitRsvEvent4Paging() {\n\t\tthis.waitRsvEvent(true);\n\n\t\tif (this.aKeysAtPaging.length === 0) {\n\t\t\tthis.getEvt2Fnc = key=>\n\t\t\t\tthis.#hLocalEvt2Fnc[key]\n\t\t\t?? this.#hGlobalEvt2Fnc[key];\n\t\t\treturn;\n\t\t}\n\n\t\tconst hGlb: T_HEvt2Fnc = {};\n\t\tfor (const k of this.aKeysAtPaging) {\n\t\t\tconst v = this.#hGlobalEvt2Fnc[k];\n\t\t\tif (v) hGlb[k] = v;\n\t\t}\n\t\tthis.getEvt2Fnc = key=> this.#hLocalEvt2Fnc[key] ?? hGlb[key];\n\t}\n\n\n\tfire(rawKeY: string, e: Event) {\n\t\t//if (this.#isDbgBreak) return;\n\n\t\t// 予約実行\n\t\tconst key = rawKeY.toLowerCase();\n// console.log(`👺 fire<(key:\\`${key}\\` type:${e.type})`);\n\n\t\tswitch (key) {\n\t\t\tcase 'click':\n\t\t\tcase 'rightclick':\t// 右クリックメニューに入って出られない\n\t\t\tcase 'middleclick':\t// 〃\n\t\t\tcase 'enter':\n\t\t\tcase 'arrowdown':\n\t\t\t\tif (Reading.evtMng.isSkipping) break;\n\t\t\t\tif (! ReadingState.isFirstFire()) return;\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif (key === 'enter') {\n\t\t\tconst em = Reading.fcs.getFocus();\n\t\t\tif (em instanceof Container) {\n\t\t\t\tem.emit(EVNM_CLICK, new PointerEvent(EVNM_CLICK));\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tconst ke = ReadingState.getEvt2Fnc(key);\n\t\tif (! ke) return;\t\t// 予約されていないイベントなので無視\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n\t\te.stopImmediatePropagation?.();\n\t\tif (! key.startsWith('dom=') && Reading.layMng.clickTxtLay()) return;\n\n\t\tke(e);\n\t\t//this.hLocalEvt2Fnc = {};\t// ここで消去禁止、Main.resumeByJumpOrCall()が担当\n\t}\n\tget\tskip_enabled() {return Reading.skip_enabled}\n\treadonly\tisWait: boolean\t= false;\n\t// イベント複数発生回避(ボタンとステージクリックなど)\n\tstatic\t#wasFired\t= false;\n\tstatic\tisFirstFire(): boolean {\n\t\tif (ReadingState.#wasFired) return false;\n\t\tReadingState.#wasFired = true;\n\t\treturn true;\n\t}\n\tstatic\tresetFired() {ReadingState.#wasFired = false}\n\n\n\tstatic\taPage\t: IPageLog[];\n\tstatic\tlenPage = 0;\n\tstatic\tposPage = 0;\n\tstatic\tstyPaging\t: string;\n\tstatic\treadonly\tINI_STYPAGE = 'color: yellow; text-shadow: 1px 1px 0 #000, -1px 1px 0 #000, 1px -1px 0 #000, -1px -1px 0 #000;';\n\n\tstatic\taKeysAtPaging: string[]\t= [];\n\n\tstatic\trecodePage(week = false) {\n\t\tif (! Reading.val.getVal('save:sn.doRecLog')) return;\n\n\t\tconst {fn, idx} = Reading.scrItr.nowScrIdx();\n\t\tconst key = `${String(idx -1)}:`+ fn;\t// 検索時の都合で -1\n\t\tif (this.aPage.findIndex(p=> p.key === key) > -1) return;\t// 保存済\n\n\t\tif (CmnLib.debugLog) console.log(`📜 %crecodePage === week:${String(week)} lenPage:${String(this.lenPage)} len:${String(this.aPage.length)} POP:${String(this.aPage.at(-1)?.week)}`, 'color:#3B0;');\n\n\t\tif (this.aPage.at(-1)?.week) this.aPage.pop();\n\t\tconst {max_len} = Reading.cfg.oCfg.log;\t// 一定数を保つ\n\n\t\t// 不必要ながら巨大になりがちな情報をダミー値にする\n\t\t//\tmark はページ移動処理で ReadingState_page.page() での\n\t\t//\tscrItr.loadFromMark() に渡す。問題ない範囲なら変数をオミットできる\n\t\tconst mark = Reading.scrItr.nowMark();\n\t\tmark.hSave['const.sn.sLog'] = '[]';\n\n\t\tif (this.aPage.push({key, week,\n\t\t\tfn\t\t: <string>Reading.val.getVal('save:const.sn.scriptFn', fn),\n\t\t\tindex\t: <number>Reading.val.getVal('save:const.sn.scriptIdx', 0),\n\t\t\tmark,\n\t\t}) > max_len) this.aPage = this.aPage.slice(-max_len);\n\t\tthis.lenPage = this.aPage.length;\n\n\t\tif (CmnLib.debugLog) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\tconsole.log(` %clenPage:${String(this.lenPage)} (base=${(<T_RP_layGrp>mark.hPages.base!.fore).sBkFn} 0=${(<T_RP_layGrp>mark.hPages['0']!.fore).sBkFn} mes=${String(\n\t\t\t\t/color: \\w+;/.exec((<T_RP_layTxt>mark.hPages.mes?.fore).txs.cssText)\n\t\t\t)})%c mark:%o`, 'color:#3B0;', '', mark);\n\t\t\tconsole.table(this.aPage);\n\t\t}\n\n\t\tReading.val.setVal_Nochk('sys', 'const.sn.aPageLog', JSON.stringify(this.aPage));\n\t}\n\tstatic\tplaybackPage(saPageLog: string, $styPaging: string) {\n\t\tthis.aPage = <IPageLog[]>JSON.parse(saPageLog);\n\t\tthis.lenPage = this.aPage.length;\n\t\tif (this.posPage >= this.lenPage) this.posPage = this.lenPage -1;\n\t\tthis.styPaging = $styPaging;\n\t}\n\n\tbeginProc() {new ReadingState_proc}\n\tendProc() {new ReadingState_go}\n\n\n\t// タグ処理\n\tl(hArg: TArg): boolean {\n// console.log(`fn:Reading.ts line:218 [l] isKidoku:${Reading.scrItr.isKidoku} isNextKidoku:${Reading.scrItr.isNextKidoku} A:${Reading.auto_enabled} B:${Reading.skip_enabled} C:${Reading.skip_all}`);\n\t\tif (! Reading.tagL_enabled) return false;\n\n\t\tReadingState.recodePage(true);\n\n\t\tif (Reading.auto_enabled) {\t// Aスキップ時\n\t\t\thArg.time = Number(Reading.val.getVal(`sys:sn.auto.msecLineWait${Reading.scrItr.isKidoku ?'_Kidoku' :''}`));\n\t\t\treturn this.wait(hArg);\n\t\t}\n\t\tif (Reading.skip_enabled) {\t// Fスキップ時\n\t\t\tif (! Reading.skip_all && ! Reading.scrItr.isNextKidoku) {\n\t\t\t\tReading.cancelAutoSkip();\t// 未読で停止\n\t\t\t}\n\t\t\telse if ('ps'.includes(String(Reading.val.getVal('sys:sn.skip.mode')))) {\n\t\t\t\thArg.time = 50;\t// 改行待ち=しない\t// 魔法数字、見えるぐらい少し待つ\n\t\t\t\treturn this.wait(hArg);\n\t\t\t}\n\t\t}\n\t\t// クリック待ちを表示\n\t\tif (argChk_Boolean(hArg, 'visible', true)) {\n\t\t\tReading.layMng.breakLine(hArg);\n\t\t\tReading.goTxt();\n\t\t}\n\n\t\tnew ReadingState_wait4Tag(hArg);\n\t\treturn true;\n\t}\n\tp(hArg: TArg): boolean {\n// console.log(`fn:Reading.ts line:248 [p] isKidoku:${Reading.scrItr.isKidoku} isNextKidoku:${Reading.scrItr.isNextKidoku} A:${Reading.auto_enabled} B:${Reading.skip_enabled} C:${Reading.skip_all}`);\n\t\tReadingState.recodePage();\n\n\t\tif (Reading.auto_enabled) {\t// Aスキップ時\n\t\t\thArg.time = Number(Reading.val.getVal(`sys:sn.auto.msecPageWait${Reading.scrItr.isKidoku ?'_Kidoku' :''}`));\n\t\t\treturn this.wait(hArg);\n\t\t}\n\t\tif (Reading.skip_enabled) {\t// Fスキップ時\n\t\t\tif (! Reading.skip_all && ! Reading.scrItr.isNextKidoku) {\n\t\t\t\tReading.cancelAutoSkip();\t// 未読で停止\n\t\t\t}\n\t\t\telse if ('s' === String(Reading.val.getVal('sys:sn.skip.mode'))) {\n\t\t\t\thArg.time = 50;\t// 改行待ち=しない\t// 魔法数字、見えるぐらい少し待つ\n\t\t\t\treturn this.wait(hArg);\n\t\t\t}\n\t\t}\n\t\t// クリック待ちを表示\n\t\tif (argChk_Boolean(hArg, 'visible', true)) {\n\t\t\tReading.layMng.breakPage(hArg);\n\t\t\tReading.goTxt();\n\t\t}\n\n\t\tnew ReadingState_wait4Tag(hArg);\n\t\treturn true;\n\t}\n\ts(hArg: TArg): boolean {\n\t\tReadingState.recodePage();\n\n\t\tReading.cancelAutoSkip();\n\t\tnew ReadingState_wait4Tag(hArg);\n\t\treturn true;\n\t}\n\twait(hArg: TArg): boolean {\n\t\tconst time = argChk_Num(hArg, 'time', NaN);\t// skip時もエラーは出したい\n\t\tif (Reading.skip_enabled) {\t\t// Fスキップ時\n\t\t\tif (! Reading.skip_all && ! Reading.scrItr.isNextKidoku) Reading.cancelAutoSkip();\t// 未読で停止\n\t\t\treturn false;\n\t\t}\n\n\t\tconst tw = new Tween({});\n\t\tconst RPN_WAIT = 'wait';\n\t\tconst fin = ()=> {\n\t\t\tReadingState.#grp.remove(tw);\n\t\t\tReading.notifyEndProc(RPN_WAIT);\n\t\t};\n\t\ttw.to({}, time)\n\t\t.onComplete(fin)\n\t\t.start();\n\t\tReadingState.#grp.add(tw);\n\n\t\tconst canskip = argChk_Boolean(hArg, 'canskip', true);\n\t\tReading.beginProc(RPN_WAIT, fin, true, canskip ?fin :undefined);\n\t\treturn true;\n\t}\n\tpage(hArg: TArg): boolean {\n\t\tif (! ('clear' in hArg || 'to' in hArg || 'style' in hArg)) throw 'clear,style,to いずれかは必須です';\n\n\t\t// ページ移動状態中に有効にするグローバルイベントを限定\n\t\tconst {key, style} = hArg;\n\t\tif (key) ReadingState.aKeysAtPaging = key.split(',');\n\n\t\tif (style) {\n\t\t\tReadingState.styPaging = style;\n\t\t\tReading.val.setVal_Nochk('save', 'const.sn.styPaging', style);\n\t\t\treturn false;\n\t\t}\n\n\t\tif (argChk_Boolean(hArg, 'clear', false)) {\n\t\t\tReadingState.aPage = [];\n\t\t\tReadingState.lenPage = 0;\n\t\t\tReadingState.posPage = 0;\n\t\t\tReading.val.setVal_Nochk('sys', 'const.sn.aPageLog', '[]');\n\t\t\tReading.val.setVal_Nochk('save', 'const.sn.styPaging', ReadingState.INI_STYPAGE);\n\t\t\treturn false;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\n\tstatic\tdestroy() {\n\t\tthis.#hLocalEvt2Fnc = {};\n\t\tthis.#hGlobalEvt2Fnc = {};\n\t\tthis.aPage = [];\n\t\tthis.lenPage = 0;\n\t\tthis.posPage = 0;\n\t}\n\n}\n\n// go 状態\n//\t通常・タグなどを次々に処理\nclass ReadingState_go extends ReadingState {\n\tconstructor() {\n\t\tsuper();\n\t\tif (CmnLib.debugLog) console.log('📖 => %cReadingState_go', 'color:#3B0;');\n\n\t\tReading.main.resume();\n\t}\n\toverride\tfire(_KeY: string, _e: Event) { /* empty */ }\t// システムボタンなど無効化\n}\n\n// proc 状態\n//\tスクリプト・画像・音声ロードなど\nclass ReadingState_proc extends ReadingState {\n\tconstructor() {\n\t\tsuper();\n\t\tif (CmnLib.debugLog) console.log('📖 => %cReadingState_proc', 'color:#3B0;');\n\t}\n\toverride\tfire(_KeY: string, _e: Event) { /* empty */ }\t// システムボタンなど無効化\n}\n\n// wait 状態\n//\tイベント待ちやクリック待ち\nclass ReadingState_wait4Tag extends ReadingState {\n\tconstructor(hArg: TArg) {\n\t\tsuper();\n\t\tif (CmnLib.debugLog) console.log('📖 => %cReadingState_wait', 'color:#3B0;');\n\n\t\t// Reading.scrItr.noticeBreak(true);\n\n\t\tlet onUserAct = ()=> { /* empty */ };\n\t\tconst glb = argChk_Boolean(hArg, 'global', true);\n\t\tswitch (hArg[':タグ名']) {\n\t\t\tcase 'wait':\treturn;\t// 予約イベント待ち【しない】\n\n\t\t\tcase 's':\n\t\t\t\tReadingState.waitRsvEvent(glb);\t// ユーザーイベントに反応しない\n\t\t\t\treturn;\n\n\t\t\tcase 'p':\n\t\t\t\tonUserAct = ()=> {\n\t\t\t\t\tif (argChk_Boolean(hArg, 'er', false)) Reading.hTag.er(hArg);\n\n\t\t\t\t\tReading.sndMng.clearCache();\n\t\t\t\t\t//scrItr.turnPage();\n\n\t\t\t\t\tnew ReadingState_go;\n\t\t\t\t};\n\t\t\t\tbreak;\n\n\t\t\tdefault:\t// [wait] 以外は、予約イベント待ちを開始\n\t\t\t\tonUserAct = ()=> new ReadingState_go;\n\t\t}\n// console.log(`fn:Reading.ts ${hArg[':タグ名']} 予約イベント待ちを開始`);\n\t\tReadingState.waitRsvEvent(glb, onUserAct);\n\t}\n\n\toverride\treadonly\tisWait\t= true;\n\n\toverride page(hArg: TArg): boolean {\n\t\tconst ret = super.page(hArg);\t// チェックも兼ねて\n\t\tconst {to} = hArg;\n\t\tif (! to) return ret;\n\t\tif (ReadingState.lenPage < 2) return false;\t// 履歴がたまってない\n\n\t\tswitch (to) {\n\t\t\tcase 'oldest':\n\t\t\t\thArg.to = 'prev';\n\t\t\t\tReadingState.posPage = 1;\tbreak;\n\n\t\t\tcase 'newest':\n\t\t\tcase 'prev':\n\t\t\t\thArg.to = 'prev';\n\t\t\t\tReadingState.posPage = ReadingState.lenPage -1;\tbreak;\n\n\t\t\t// case 'next':\t\t// スルー\n\t\t\tdefault:\treturn false;\t// ダイアログ確認などするとここを通る\n\t\t}\n\n\t\treturn ReadingState_page.go(hArg);\n\t}\n\n}\n\n// page 状態\n//\tページ移動中\nclass ReadingState_page extends ReadingState {\n\tprivate\tconstructor() {\n\t\tsuper();\n\t\tif (CmnLib.debugLog) console.log('📖 => %cReadingState_page', 'color:#3B0;');\n\t\tReading.val.setVal_Nochk('tmp', 'const.sn.isPaging', true);\n\t}\n\tstatic\tgo(hArg: TArg) {return new ReadingState_page().page(hArg)}\n\n\t#isPaging\t= true;\n\toverride\tget\tskip_enabled() {return this.#isPaging}\n\n\toverride\treadonly\tisWait\t= false;\n\n\toverride\tbeginProc() {Reading.main.stop()}\n\toverride\tendProc() {Reading.main.resume()}\n\n\t// タグ処理\n\toverride\tl(hArg: TArg): boolean {\n// console.log(`fn:ReadState.ts [l] len:${ReadingState.lenPage} pos:${ReadingState.posPage} isSkipping:${this.#isPaging}`);\n\t\tif (! this.#isPaging) return super.l(hArg);\t// 基底 ReadingState_go 化\n\n\t\t// ページ末尾ならページ移動終了\n\t\tif (ReadingState.posPage === ReadingState.lenPage -1) {\n\t\t\tthis.#exit();\n\t\t\treturn new ReadingState_go().l(hArg);\n\t\t}\n\n\t\t// クリック待ちを表示\n\t\tif (argChk_Boolean(hArg, 'visible', true)) Reading.layMng.breakLine(hArg);\n\n\t\tReading.layMng.setAllStyle2TxtLay(ReadingState.styPaging);\n\t\tReading.goTxt();\n\t\tif (! ReadingState.aPage[ReadingState.posPage]?.week) return false;\n\n\t\tReadingState.waitRsvEvent4Paging();\n\t\treturn true;\n\t}\n\toverride\tp(hArg: TArg): boolean {\n// console.log(`fn:ReadState.ts [p] len:${ReadingState.lenPage} pos:${ReadingState.posPage}`);\n\t\tif (! this.#isPaging) return super.p(hArg);\t// 基底 ReadingState_go 化\n\n\t\t// ページ末尾ならページ移動終了\n\t\tif (ReadingState.posPage === ReadingState.lenPage -1) {\n\t\t\tthis.#exit();\n\t\t\treturn new ReadingState_go().p(hArg);\n\t\t}\n\n\t\t// クリック待ちを表示\n\t\tif (argChk_Boolean(hArg, 'visible', true)) Reading.layMng.breakPage(hArg);\n\n\t\tReading.layMng.setAllStyle2TxtLay(ReadingState.styPaging);\n\t\tReading.goTxt();\n\n\t\tReadingState.waitRsvEvent4Paging();\n\t\treturn true;\n\t}\n\toverride\ts(hArg: TArg): boolean {\n\t\tnew ReadingState_wait4Tag(hArg);\n\t\treturn true;\n\t}\n\toverride\twait() {return false}\n\toverride\tpage(hArg: TArg): boolean {\n\t\tconst {to, style, clear} = hArg;\n\t\tif (style || clear) return false;\n\n\t\tif (CmnLib.debugLog) console.log(`📜 %cpage() pos:${String(ReadingState.posPage)}%c len:${String(ReadingState.lenPage)} to:${String(to)}`, 'color:#3B0;', '');\n\t\tswitch (to) {\n\t\t\tcase 'oldest':\n\t\t\t\tif (ReadingState.posPage === 0) return false;\n\t\t\t\tReadingState.posPage = 0;\tbreak;\n\n\t\t\tcase 'prev':\n\t\t\t\tif (ReadingState.posPage === 0) return false;\n\t\t\t\t--ReadingState.posPage;\tbreak;\n\n\t\t\tcase 'next':\n\t\t\t\tif (ReadingState.posPage === ReadingState.lenPage -1) return false;\n\t\t\t\t++ReadingState.posPage;\tbreak;\n\n\t\t\tcase 'newest':\n\t\t\t\tif (ReadingState.posPage === ReadingState.lenPage -1) return false;\n\t\t\t\tReadingState.posPage = ReadingState.lenPage -1;\tbreak;\n\n\t\t\tcase 'exit':\n\t\t\t\tReadingState.posPage = ReadingState.lenPage -1;\tbreak;\n\n\t\t\tcase 'load':\n\t\t\t\tReadingState.lenPage = ReadingState.posPage +1;\n\t\t\t\tReadingState.aPage = ReadingState.aPage.slice(0, ReadingState.lenPage);\n\t\t\t\tthis.#exit();\n\t\t\t\tbreak;\n\n\t\t\tdefault:\tthrow `属性to「${String(to)}」は異常です`;\n\t\t}\n\t\t// ページ移動状態を抜ける\n\t\tif (ReadingState.posPage === ReadingState.lenPage -1) this.#exit();\n\n\t\tconst p = ReadingState.aPage[ReadingState.posPage];\n\t\tif (! p) throw `posPage異常:${String(ReadingState.posPage)}`;\n\t\tconst {fn, index, mark} = p;\n\t\tif (CmnLib.debugLog) {\n\t\t\tconst m = Reading.scrItr.nowMark();\n\t\t\tconst {week} = ReadingState.aPage[ReadingState.posPage] ?? {week: false};\n\t\t\tconsole.log(` -- fn:${fn} i:${String(index)\n\t\t\t} pos:${String(ReadingState.posPage)\n\t\t\t} (base=%c${(<T_RP_layGrp>m.hPages.base?.fore).sBkFn\n\t\t\t}%c 0=%c${(<T_RP_layGrp>m.hPages['0']?.fore).sBkFn\n\t\t\t}%c mes=%c${String(\n\t\t\t\t/color: \\w+;/.exec((<T_RP_layTxt>m.hPages.mes?.fore).txs.cssText)\n\t\t\t)}%c) week:${String(week)} A:${String(\n\t\t\t\tReadingState.posPage === ReadingState.lenPage -1\n\t\t\t)}\\n styPaging=%c${ReadingState.styPaging}%c\\n mark:%o`, 'background-color:#3B0; color:#000;', '', 'background-color:#B4F; color:#000;', '', 'color:#B68;', '', ReadingState.styPaging, '', mark);\n\t\t}\n\t\treturn Reading.scrItr.loadFromMark({fn, index}, mark);\n\t}\n\n\t#exit() {\n\t\tReading.val.setVal_Nochk('tmp', 'const.sn.isPaging', false);\n\t\tthis.#isPaging = false;\n\t}\n}\n\n\n\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport class Reading {\n\tstatic\tbeginProc(proc_id: string, onNotify?: ()=> void, endProc = true, onClickSkip?: ()=> void) {\n\t\tif (CmnLib.debugLog) console.log(`📖.beginProc id:%c${proc_id}%c onNotify:${String(onNotify)} endProc:${String(endProc)} onClickSkip:${String(onClickSkip)}`, 'color:#3B0;', '');\n\t\tthis.#clearProc();\n\t\tthis.#procID = proc_id;\n\n\t\t// 通知時コールバック型\n\t\tif (onNotify) {\n\t\t\t// notifyEndProc()を呼べば callBack & EndProc する機能\n\t\t\t// 使用者は、処理終了時に notifyEndProc()を呼ぶ義務がある\n\t\t\tconst {promise, resolve} = Promise.withResolvers<string>();\n\t\t\tvoid promise.then((proc_id: string)=> {\n\t\t\t\tif (CmnLib.debugLog) console.log(`📖.callBack id:%c${proc_id}%c`, 'color:#3B0;', '');\n\t\t\t\tonNotify();\n\t\t\t\tif (endProc) this.endProc(proc_id); else this.#clearProc();\n\t\t\t});\n\t\t\tthis.#rsNotify = resolve;\n\t\t}\n\n\t\t// クリックキャンセル機能\n\t\tif (onClickSkip) {\n\t\t\tconst fnc = ()=> {\n\t\t\t\tthis.cancelAutoSkip();\n\t\t\t\tonClickSkip();\n\t\t\t\tif (endProc) this.endProc(proc_id);\n\t\t\t};\n\t\t\tthis.#elc.add(this.main.cvs, EVNM_CLICK, (e: PointerEvent)=> {\n\t\t\t\te.stopPropagation();\n\t\t\t\tfnc();\n\t\t\t});\n\t\t\tthis.#elc.add(document, EVNM_KEY, (e: KeyboardEvent)=> {\n\t\t\t\tif (e.isComposing) return; // サポートしてない環境でもいける書き方\n\t\t\t\te.stopPropagation();\n\t\t\t\tfnc();\n\t\t\t});\n\t\t\tthis.procWheel4wle(this.#elc, fnc);\n\t\t}\n\n\t\tReadingState.rs.beginProc();\n\t\t// main.stop() は外の責任\n\t}\n\t\tstatic\t#clearProc() {\n\t\t\tthis.#procID = '';\n\t\t\tthis.#rsNotify = ()=> { /* empty */ };\n\t\t\tthis.#elc.clear();\n\t\t}\n\t\tstatic\treadonly\t#elc = new EventListenerCtn;\n\n\tstatic\t#rsNotify\t: (proc_id: string)=> void\t= ()=> { /* empty */ };\n\tstatic\tnotifyEndProc(proc_id: string) {\n\t\tif (CmnLib.debugLog) console.log(`📖.notifyEndProc id:%c${proc_id}%c=${String(this.#procID === proc_id)}`, 'color:#3B0;', '');\n\t\tif (this.#procID !== proc_id) return;\n\n\t\tthis.#rsNotify(proc_id);\n\t}\n\n\tstatic\tendProc(proc_id: string) {\n\t\tif (CmnLib.debugLog) console.log(`📖.endProc id:%c${proc_id}%c=${String(this.#procID === proc_id)}`, 'color:#3B0;', '');\n\t\tif (this.#procID !== proc_id) return;\n\n\t\tReadingState.rs.endProc();\n\t\tthis.#clearProc();\n\t}\n\t\tstatic\t#procID\t= '';\n\t\tstatic\tget procID() {return `RP_${this.scrItr.scriptFn}:${String(this.scrItr.idxToken)}_`}\n\n\n\tstatic\tfire(KeY: string, e: Event, cancelAutoSkip = false) {\n\t\tif (cancelAutoSkip) this.cancelAutoSkip();\n\t\tReadingState.rs.fire(KeY, e);\n\t}\n\n\tstatic\tget\tisSkipping() {return ReadingState.rs.skip_enabled}\n\tstatic\tget\tisWait() {return ReadingState.rs.isWait}\t// 予約イベントの発生待ち中か\n\n\n\t\tstatic\ttagL_enabled\t= true;\t\t// 頁末まで一気に読み進むか(l無視)\n\t\tstatic\tskip_all\t\t= false;\t// falseなら既読のみをスキップ\n\t\tstatic\tskip_enabled\t= false;\t// 次の選択肢(/未読)まで進むが有効か\n\t\tstatic\tauto_enabled\t= false;\t// 自動読みすすみモードかどうか\n\n\n\tstatic\tcfg\t\t: Config;\n\tstatic\thTag\t: T_HTag;\n\tstatic\tmain\t: T_Main;\n\tstatic\tval\t\t: T_Variable;\n\tstatic\tscrItr\t: ScriptIterator;\n\tstatic\tlayMng\t: LayerMng;\n\tstatic\tgoTxt = ()=> { /* empty */ };\n\tstatic\tget needGoTxt() {return this.layMng.needGoTxt}\n\tstatic\tevtMng\t: EventMng;\n\tstatic\tsndMng\t: SoundMng;\n\tstatic\tprocWheel4wle\t: (elc: EventListenerCtn, onIntr: ()=> void)=> void;\n\n\tstatic\tfcs\t\t: FocusMng;\n\n\tstatic\tinit(cfg: Config, hTag: T_HTag, main: T_Main, val: T_Variable, scrItr: ScriptIterator, layMng: LayerMng, evtMng: EventMng, sndMng: SoundMng, procWheel4wle: (elc: EventListenerCtn, onIntr: ()=> void)=> void) {\n\t\tthis.cfg = cfg;\n\t\tthis.hTag = hTag;\n\t\tthis.main = main;\n\t\tthis.val = val;\n\t\tthis.scrItr = scrItr;\n\t\tthis.layMng = layMng;\n\t\tthis.goTxt = ()=> layMng.goTxt();\n\t\tthis.evtMng = evtMng;\n\t\tthis.sndMng = sndMng;\n\t\tthis.procWheel4wle = procWheel4wle;\n\n\t\tval.defTmp('sn.tagL.enabled', ()=> this.tagL_enabled);\n\t\tval.defValTrg('tmp:sn.tagL.enabled', (_, v)=> {this.tagL_enabled = String(v) !== 'false'});\n\t\tval.defTmp('sn.skip.all', ()=> this.skip_all);\n\t\tval.defValTrg('tmp:sn.skip.all', (_, v)=> {this.skip_all = String(v) !== 'false'});\n\t\tval.defTmp('sn.skip.enabled', ()=> this.skip_enabled);\n\t\tval.defValTrg('tmp:sn.skip.enabled', (_, v)=> {this.skip_enabled = String(v) !== 'false'});\n\t\tval.defTmp('sn.auto.enabled', ()=> this.auto_enabled);\n\t\tval.defValTrg('tmp:sn.auto.enabled', (_, v)=> {this.auto_enabled = String(v) !== 'false'});\n\n\t\thTag.l\t\t\t= o=> ReadingState.rs.l(o);\t\t// 行末クリック待ち\n\t\thTag.p\t\t\t= o=> ReadingState.rs.p(o);\t\t// 改ページクリック待ち\n\t\thTag.s\t\t\t= o=> ReadingState.rs.s(o);\t\t// 停止する\n\t\thTag.wait\t\t= o=> ReadingState.rs.wait(o);\t// ウェイトを入れる\n\t\thTag.waitclick\t= o=> ReadingState.rs.s(o);\t\t// クリックを待つ\n\t\thTag.page\t\t= o=> ReadingState.rs.page(o);\t// ページ移動\n\n\t\tReadingState.init();\n\t\tnew ReadingState_proc;\n\t\thTag.jump({fn: 'main'});\n\t}\n\tstatic\tsetFcs(fcs: FocusMng) {this.fcs = fcs}\n\n\n\tstatic\tcancelAutoSkip() {\n\t\tif (! this.tagL_enabled) {\t// 頁末まで一気に読み進むか(l無視)\n\t\t\tthis.tagL_enabled = true;\n\t\t\tthis.val.setVal_Nochk('tmp', 'sn.tagL.enabled', true);\n\t\t}\n\n\t\tif (this.skip_enabled) {\t\t// 次の選択肢(/未読)まで進むが有効か\n\t\t\tthis.skip_enabled = false;\n\t\t\tthis.val.setVal_Nochk('tmp', 'sn.skip.enabled', false);\n\t\t}\n\t\tif (this.auto_enabled) {\t\t// 自動読みすすみモードかどうか\n\t\t\tthis.auto_enabled = false;\n\t\t\tthis.val.setVal_Nochk('tmp', 'sn.auto.enabled', false);\n\t\t}\n\t}\n\n}\n","/* ***** BEGIN LICENSE BLOCK *****\n\tCopyright (c) 2019-2025 Famibee (famibee.blog38.fc2.com)\n\n\tThis software is released under the MIT License.\n\thttp://opensource.org/licenses/mit-license.php\n** ***** END LICENSE BLOCK ***** */\n\nimport {type IEvtMng, CmnLib, argChk_Boolean, argChk_Num} from './CmnLib';\nimport type {TArg} from './Grammar';\nimport type {Layer} from './Layer';\nimport {Reading} from './Reading';\n\nimport {Tween, Easing, Group} from '@tweenjs/tween.js'\n\n\ntype ITwInf = {\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\ttw\t\t: Tween<any> | undefined;\n\tonEnd?\t: ()=> void;\n}\n\nexport const TW_NM_TRANS = 'trans\\n';\t// 改行でスクリプトから絶対指定できない値に\nconst PID_HD_TW\t= 'tsy nm:';\n\n\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport class CmnTween {\n\tstatic\t#hTwInf\t: {[tw_nm: string]: ITwInf}\t= {};\n\tstatic\t#evtMng\t: IEvtMng;\n\tstatic\tinit(evtMng: IEvtMng) {\n\t\tCmnTween.#hTwInf = {};\n\t\tCmnTween.#evtMng = evtMng;\n\n\t\tCmnTween.addGrp(CmnTween.#grp);\n\n\t\t// TWEEN 更新\n\t\tfunction loop(time: number) {\n\t\t\tfor (const g of CmnTween.#aGroup) g.update(time);\n\t\t\tCmnTween.#req(loop);\n\t\t}\n\t\tCmnTween.#req(loop);\n\t}\n\tstatic\t#req\t: (cb: FrameRequestCallback)=> number\n\t\t\t\t\t= cb=> requestAnimationFrame(cb);\n\n\tstatic\treadonly\t#grp = new Group;\n\n\tstatic\t#aGroup\t: Group[]\t= [];\n\tstatic\taddGrp(g: Group) {CmnTween.#aGroup.push(g)}\n\n\tstatic\tdestroy() {\n\t\tCmnTween.#req = ()=> 0;\n\t\tCmnTween.stopAllTw();\n\t}\n\n\t// トゥイーン全停止\n\tstatic\tstopAllTw() {\n\t\tCmnTween.#hTwInf = {};\n\t\tfor (const g of CmnTween.#aGroup) g.removeAll();\n\t\tCmnTween.#aGroup = [];\n\t}\n\n\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tstatic\tsetTwProp(tw: Tween<any>, hArg: TArg): Tween<any> {\n\t\tconst repeat = argChk_Num(hArg, 'repeat', 1);\n\t\treturn tw.delay(argChk_Num(hArg, 'delay', 0))\n\t\t.easing(this.ease(hArg.ease))\n\t\t.repeat(repeat > 0 ?repeat -1 :Infinity)\t// 一度リピート→計二回なので\n\t\t.yoyo(argChk_Boolean(hArg, 'yoyo', false));\n\t}\n\tstatic\treadonly #hEase: {[name: string]: (k: number)=> number}\t= {\n\t\t'Back.In'\t\t\t: k=> Easing.Back.In(k),\n\t\t'Back.InOut'\t\t: k=> Easing.Back.InOut(k),\n\t\t'Back.Out'\t\t\t: k=> Easing.Back.Out(k),\n\t\t'Bounce.In'\t\t\t: k=> Easing.Bounce.In(k),\n\t\t'Bounce.InOut'\t\t: k=> Easing.Bounce.InOut(k),\n\t\t'Bounce.Out'\t\t: k=> Easing.Bounce.Out(k),\n\t\t'Circular.In'\t\t: k=> Easing.Circular.In(k),\n\t\t'Circular.InOut'\t: k=> Easing.Circular.InOut(k),\n\t\t'Circular.Out'\t\t: k=> Easing.Circular.Out(k),\n\t\t'Cubic.In'\t\t\t: k=> Easing.Cubic.In(k),\n\t\t'Cubic.InOut'\t\t: k=> Easing.Cubic.InOut(k),\n\t\t'Cubic.Out'\t\t\t: k=> Easing.Cubic.Out(k),\n\t\t'Elastic.In'\t\t: k=> Easing.Elastic.In(k),\n\t\t'Elastic.InOut'\t\t: k=> Easing.Elastic.InOut(k),\n\t\t'Elastic.Out'\t\t: k=> Easing.Elastic.Out(k),\n\t\t'Exponential.In'\t: k=> Easing.Exponential.In(k),\n\t\t'Exponential.InOut'\t: k=> Easing.Exponential.InOut(k),\n\t\t'Exponential.Out'\t: k=> Easing.Exponential.Out(k),\n\t\t'Linear.None'\t\t: k=> Easing.Linear.None(k),\n\t\t'Quadratic.In'\t\t: k=> Easing.Quadratic.In(k),\n\t\t'Quadratic.InOut'\t: k=> Easing.Quadratic.InOut(k),\n\t\t'Quadratic.Out'\t\t: k=> Easing.Quadratic.Out(k),\n\t\t'Quartic.In'\t\t: k=> Easing.Quartic.In(k),\n\t\t'Quartic.InOut'\t\t: k=> Easing.Quartic.InOut(k),\n\t\t'Quartic.Out'\t\t: k=> Easing.Quartic.Out(k),\n\t\t'Quintic.In'\t\t: k=> Easing.Quintic.In(k),\n\t\t'Quintic.InOut'\t\t: k=> Easing.Quintic.InOut(k),\n\t\t'Quintic.Out'\t\t: k=> Easing.Quintic.Out(k),\n\t\t'Sinusoidal.In'\t\t: k=> Easing.Sinusoidal.In(k),\n\t\t'Sinusoidal.InOut'\t: k=> Easing.Sinusoidal.InOut(k),\n\t\t'Sinusoidal.Out'\t: k=> Easing.Sinusoidal.Out(k),\n\t};\n\tstatic\tease(nm: string | undefined): (k: number)=> number {\n\t\tif (! nm) return k=> Easing.Linear.None(k);\n\n\t\tconst es = this.#hEase[nm];\n\t\tif (! es) throw '異常なease指定です';\n\t\treturn es;\n\t}\n\n\tstatic readonly aLayerPrpNm = <(keyof Layer)[]>[\n\t\t'alpha',\n\t\t'height',\n\t\t'rotation',\t// rotationX〜Z、scaleZ、zは設定すると\n\t\t'scale_x',\t// 三次元方向の拡大縮小ルーチンが働き画像がぼやけるので\n\t\t'scale_y',\t// backlayで設定しない方針\n\t\t'pivot_x',\n\t\t'pivot_y',\n\t\t'width',\n\t\t'x',\n\t\t'y',\n\t];\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tstatic cnvTweenArg(hArg: TArg, lay: any): TArg {\n\t\tconst hTo: {[val_name: string]: number} = {};\n\t\tfor (const nm of CmnTween.aLayerPrpNm) {\n\t\t\tconst arg = hArg[<keyof TArg>nm];\n\t\t\tif (! arg) continue;\n\n\t\t\t// {x:500}\t\t\tX位置を500に\n\t\t\t// {x:'=500'}\t\t現在のX位置に+500加算した位置\n\t\t\t// {x:'=-500'}\t\t現在のX位置に-500加算した位置\n\t\t\t// {x:'250,500'}\t+250から+500までの間でランダムな値をX位置に\n\t\t\t// {x:'=250,500'}\t+250から+500までの間でランダムな値を現在のX位置に加算\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-base-to-string\n\t\t\tconst v = String(arg);\n\t\t\tconst hdeq = v.startsWith('=');\n\t\t\tconst vx = hdeq ?v.slice(1) :v;\n\t\t\tif (! vx) continue;\n\n\t\t\tconst [v0='0', v1] = vx.split(',');\n\t\t\tconst a0 = hTo[nm] = parseFloat(v0);\n\n\t\t\tif (v1) hTo[nm] += Math.round(\n\t\t\t\tMath.random() * (parseFloat(v1) -a0 +1)\n\t\t\t);\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n\t\t\tif (hdeq) hTo[nm] += parseFloat(lay[nm]);\t// 相対に\n\t\t}\n\t\treturn hTo;\n\t}\n\n\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tstatic\ttween(tw_nm: string, hArg: TArg, hNow: any, hTo: any, onUpdate: (d: any)=> void, onComplete: ()=> void, onEnd: ()=> void, start = true): Tween<any> {\n\t\tconst time = this.#evtMng.isSkipping ?0 :argChk_Num(hArg, 'time', NaN);\n\t\tconst tw = new Tween(hNow)\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n\t\t.to(hTo, time)\n\t\t.onUpdate(d=> onUpdate(d));\n\t\tthis.setTwProp(tw, hArg);\n\t\tthis.#hTwInf[tw_nm] = {tw, onEnd};\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n\t\tCmnTween.#grp.add(tw);\n\n\t\tconst {path} = hArg;\n\t\tlet twLast = tw;\n\t\tif (path) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\tif (CmnLib.debugLog) console.group(`🍝 [${hArg[':タグ名'] ?? ''}] path=${path}= start(${String(hNow.x)},${String(hNow.y)},${String(hNow.alpha)})`);\n\t\t\tfor (const {groups} of path.matchAll(this.#REG_TSY_PATH)) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\t\tconst {x, x2, y, y2, o, o2, json} = groups!;\n\t\t\t\tlet hArg2: TArg = {};\n\t\t\t\tif (json) try {hArg2 = <TArg>JSON.parse(json)} catch (e) {\n\t\t\t\t\tconsole.error(`🍝 json=${json} `+ String(e));\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif (x ?? x2) hArg2.x = x ?? x2;\n\t\t\t\t\tif (y ?? y2) hArg2.y = y ?? y2;\n\t\t\t\t\tif (o ?? o2) hArg2.alpha = Number(o ?? o2);\n\t\t\t\t}\n\n\t\t\t\tconst hTo2 = this.cnvTweenArg(hArg2, hNow);\n\t\t\t\tif (CmnLib.debugLog) console.info(`🍝 ${\n\t\t\t\t\tjson ?? `{x:${String(x)} y:${String(y)} o:${String(o)}}`\n\t\t\t\t} => hTo:${JSON.stringify(hTo2)}`);\n\n\t\t\t\tconst twNew = new Tween(hNow)\n\t\t\t\t.to(hTo2, time);\n\t\t\t\tthis.setTwProp(twNew, hArg);\n\t\t\t\ttwLast.chain(twNew);\n\t\t\t\t// いらないかも?\n\t\t\t\t// CmnTween.#grp.add(twNew);\n\n\t\t\t\ttwLast = twNew;\n\t\t\t}\n\t\t\tif (CmnLib.debugLog) console.groupEnd();\n\t\t}\n\t\ttwLast.onComplete(()=> {\n\t\t\tconst ti = this.#hTwInf[tw_nm];\n\t\t\tif (! ti?.tw) return;\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n\t\t\tdelete this.#hTwInf[tw_nm];\n\n\t\t\tti.tw = undefined;\n\t\t\ttw.stop();\n\t\t\tti.onEnd?.();\n\n\t\t\tonComplete();\n\t\t\tReading.notifyEndProc(PID_HD_TW + tw_nm);\t// ラストに\n\t\t});\n\n\t\tconst {chain} = hArg;\n\t\tif (chain) {\t// 指定レイヤのアニメ終了に、このトゥイーンを続ける\n\t\t\tconst twFrom = this.#hTwInf[chain];\n\t\t\tif (! twFrom?.tw) throw `${chain}は存在しない・または終了したトゥイーンです`;\n\t\t\tdelete twFrom.onEnd;\n\t\t\ttwFrom.tw.chain(tw);\n\t\t}\n\t\telse if (start) tw.start();\n\n\t\treturn tw;\n\t}\n\t// 11 match 301 step (0.1ms) PCRE2 https://regex101.com/r/reinpq/1\n\t\t// List ${x}${x2}/${y}${y2}/${o}${o2}=${json}\\n\n/*\n\\(\\s*\n(?:\t(?<x>[-=\\d\\.]+)\t|\t(['\"])\t(?<x2>.*?)\t\\2\t)?\n(?:\n\t\\s*,\\s*\n\t(?:\t(?<y>[-=\\d\\.]+)\t|\t(['\"])\t(?<y2>.*?)\t\\5\t)?\n\t(?:\n\t\t\\s*,\\s*\n\t\t(?:\t(?<o>[-=\\d\\.]+)\t|\t(['\"])\t(?<o2>.*?)\t\\8\t)\n\t)?\n)?\n|\n(?<json>\\{[^{}]*})\n*/\n\tstatic\treadonly\t#REG_TSY_PATH\t= /\\(\\s*(?:(?<x>[-=\\d.]+)|(['\"])(?<x2>.*?)\\2)?(?:\\s*,\\s*(?:(?<y>[-=\\d.]+)|(['\"])(?<y2>.*?)\\5)?(?:\\s*,\\s*(?:(?<o>[-=\\d.]+)|(['\"])(?<o2>.*?)\\8))?)?|(?<json>\\{[^{}]*})/g;\n\n\t// トランス終了待ち\n\tstatic\twt(_hArg: TArg) {\n\t\tconst ti = this.#hTwInf[TW_NM_TRANS];\n\t\tif (! ti?.tw) return false;\n\n\t\tconst fnc = ()=> this.stopEndTrans();\n\t\tReading.beginProc(TW_NM_TRANS, fnc, true, fnc);\n\t\treturn true;\n\t}\n\n\t// レイヤのトランジションの停止\n\tstatic\tstopEndTrans() {this.#hTwInf[TW_NM_TRANS]?.tw?.stop().end()}\n\t\t// stop()とend()は別\n\n\n\t// トゥイーン終了待ち\n\tstatic\twait_tsy(hArg: TArg) {\n\t\tconst tw_nm = this.#tw_nm(hArg);\n\t\tconst ti = this.#hTwInf[tw_nm];\n\t\tif (! ti?.tw) return false;\n\n\t\tconst fnc = ()=> ti.tw?.end();\t// stop()とend()は別\n\t\tReading.beginProc(PID_HD_TW + tw_nm, fnc, true, fnc);\n\t\treturn true;\n\t}\n\t\tstatic\t#tw_nm(hArg: TArg) {\n\t\t\tconst {layer='', id, name} = hArg;\n\t\t\tconst tw_nm = id ?`frm\\n${id}` :name ?? layer;\n\t\t\tif (! tw_nm) throw 'トゥイーンが指定されていません';\n\n\t\t\treturn tw_nm;\n\t\t}\n\n\t// トゥイーン中断\n\tstatic\tstop_tsy(hArg: TArg) {\n\t\tconst tw_nm = this.#tw_nm(hArg);\n\t\tthis.#hTwInf[tw_nm]?.tw?.stop().end();\t// stop()とend()は別\n\t\treturn false;\n\t}\n\n\t// 一時停止\n\tstatic\tpause_tsy(hArg: TArg) {\n\t\tconst tw_nm = this.#tw_nm(hArg);\n\t\tthis.#hTwInf[tw_nm]?.tw?.pause();\n\t\treturn false;\n\t}\n\n\t// 一時停止再開\n\tstatic\tresume_tsy(hArg: TArg) {\n\t\tconst tw_nm = this.#tw_nm(hArg);\n\t\tthis.#hTwInf[tw_nm]?.tw?.resume();\n\t\treturn false;\n\t}\n\n}\n"],"names":["Easing","amount","s","power","now","Group","tweens","_i","_this","tweenId","_a","_b","tweens_1","tween","tweens_2","time","preserve","tweenIds","i","autoStart","Interpolation","v","k","m","f","fn","p0","p1","t","Sequence","mainGroup","Tween","object","group","target","duration","dynamic","overrideStartingValues","property","tmp","prop","_object","_valuesStart","_valuesEnd","_valuesStartRepeat","startValue","startValueIsArray","propType","isInterpolationList","endValues","temp","l","value","nestedObject","numChainedTweens","times","yoyo","easingFunction","interpolationFunction","callback","elapsedTime","durationAndDelay","totalTime","calculateElapsedPortion","timesRepeated","timeIntoCurrentRepeat","portion","elapsed","completeCount","start","end","startIsArray","endIsArray","endValue","TWEEN","ReadingState","#grp","CmnTween","#rs","#hLocalEvt2Fnc","#hGlobalEvt2Fnc","glb","key","fnc","rawKeY","e2f","ret","h","hArg","argChk_Boolean","KeY","idx","sel","id","frmnm","Reading","ifrm","win","onUserAct","CmnLib","hGlb","e","em","Container","EVNM_CLICK","ke","#wasFired","week","p","max_len","mark","saPageLog","$styPaging","ReadingState_proc","ReadingState_go","ReadingState_wait4Tag","argChk_Num","tw","RPN_WAIT","fin","canskip","style","_KeY","_e","to","ReadingState_page","#isPaging","#exit","clear","index","proc_id","onNotify","endProc","onClickSkip","#clearProc","#procID","promise","resolve","#rsNotify","#elc","EVNM_KEY","EventListenerCtn","cancelAutoSkip","cfg","hTag","main","val","scrItr","layMng","evtMng","sndMng","procWheel4wle","_","o","fcs","TW_NM_TRANS","PID_HD_TW","#hTwInf","#evtMng","loop","g","#aGroup","#req","cb","repeat","#hEase","nm","es","lay","hTo","arg","hdeq","vx","v0","v1","a0","tw_nm","hNow","onUpdate","onComplete","onEnd","d","path","twLast","groups","#REG_TSY_PATH","x","x2","y","y2","o2","json","hArg2","hTo2","twNew","ti","chain","twFrom","_hArg","#tw_nm","layer","name"],"mappings":";AAGA,IAAIA,IAAS,OAAO,OAAO;AAAA,EACvB,QAAQ,OAAO,OAAO;AAAA,IAClB,MAAM,SAAUC,GAAQ;AACpB,aAAOA;AAAA,IACX;AAAA,IACA,IAAI,SAAUA,GAAQ;AAClB,aAAOA;AAAA,IACX;AAAA,IACA,KAAK,SAAUA,GAAQ;AACnB,aAAOA;AAAA,IACX;AAAA,IACA,OAAO,SAAUA,GAAQ;AACrB,aAAOA;AAAA,IACX;AAAA,EACR,CAAK;AAAA,EACD,WAAW,OAAO,OAAO;AAAA,IACrB,IAAI,SAAUA,GAAQ;AAClB,aAAOA,IAASA;AAAA,IACpB;AAAA,IACA,KAAK,SAAUA,GAAQ;AACnB,aAAOA,KAAU,IAAIA;AAAA,IACzB;AAAA,IACA,OAAO,SAAUA,GAAQ;AACrB,cAAKA,KAAU,KAAK,IACT,MAAMA,IAASA,IAEnB,QAAQ,EAAEA,KAAUA,IAAS,KAAK;AAAA,IAC7C;AAAA,EACR,CAAK;AAAA,EACD,OAAO,OAAO,OAAO;AAAA,IACjB,IAAI,SAAUA,GAAQ;AAClB,aAAOA,IAASA,IAASA;AAAA,IAC7B;AAAA,IACA,KAAK,SAAUA,GAAQ;AACnB,aAAO,EAAEA,IAASA,IAASA,IAAS;AAAA,IACxC;AAAA,IACA,OAAO,SAAUA,GAAQ;AACrB,cAAKA,KAAU,KAAK,IACT,MAAMA,IAASA,IAASA,IAE5B,QAAQA,KAAU,KAAKA,IAASA,IAAS;AAAA,IACpD;AAAA,EACR,CAAK;AAAA,EACD,SAAS,OAAO,OAAO;AAAA,IACnB,IAAI,SAAUA,GAAQ;AAClB,aAAOA,IAASA,IAASA,IAASA;AAAA,IACtC;AAAA,IACA,KAAK,SAAUA,GAAQ;AACnB,aAAO,IAAI,EAAEA,IAASA,IAASA,IAASA;AAAA,IAC5C;AAAA,IACA,OAAO,SAAUA,GAAQ;AACrB,cAAKA,KAAU,KAAK,IACT,MAAMA,IAASA,IAASA,IAASA,IAErC,SAASA,KAAU,KAAKA,IAASA,IAASA,IAAS;AAAA,IAC9D;AAAA,EACR,CAAK;AAAA,EACD,SAAS,OAAO,OAAO;AAAA,IACnB,IAAI,SAAUA,GAAQ;AAClB,aAAOA,IAASA,IAASA,IAASA,IAASA;AAAA,IAC/C;AAAA,IACA,KAAK,SAAUA,GAAQ;AACnB,aAAO,EAAEA,IAASA,IAASA,IAASA,IAASA,IAAS;AAAA,IAC1D;AAAA,IACA,OAAO,SAAUA,GAAQ;AACrB,cAAKA,KAAU,KAAK,IACT,MAAMA,IAASA,IAASA,IAASA,IAASA,IAE9C,QAAQA,KAAU,KAAKA,IAASA,IAASA,IAASA,IAAS;AAAA,IACtE;AAAA,EACR,CAAK;AAAA,EACD,YAAY,OAAO,OAAO;AAAA,IACtB,IAAI,SAAUA,GAAQ;AAClB,aAAO,IAAI,KAAK,KAAM,IAAMA,KAAU,KAAK,KAAM,CAAC;AAAA,IACtD;AAAA,IACA,KAAK,SAAUA,GAAQ;AACnB,aAAO,KAAK,IAAKA,IAAS,KAAK,KAAM,CAAC;AAAA,IAC1C;AAAA,IACA,OAAO,SAAUA,GAAQ;AACrB,aAAO,OAAO,IAAI,KAAK,IAAI,KAAK,MAAM,MAAMA,EAAO;AAAA,IACvD;AAAA,EACR,CAAK;AAAA,EACD,aAAa,OAAO,OAAO;AAAA,IACvB,IAAI,SAAUA,GAAQ;AAClB,aAAOA,MAAW,IAAI,IAAI,KAAK,IAAI,MAAMA,IAAS,CAAC;AAAA,IACvD;AAAA,IACA,KAAK,SAAUA,GAAQ;AACnB,aAAOA,MAAW,IAAI,IAAI,IAAI,KAAK,IAAI,GAAG,MAAMA,CAAM;AAAA,IAC1D;AAAA,IACA,OAAO,SAAUA,GAAQ;AACrB,aAAIA,MAAW,IACJ,IAEPA,MAAW,IACJ,KAENA,KAAU,KAAK,IACT,MAAM,KAAK,IAAI,MAAMA,IAAS,CAAC,IAEnC,OAAO,CAAC,KAAK,IAAI,GAAG,OAAOA,IAAS,EAAE,IAAI;AAAA,IACrD;AAAA,EACR,CAAK;AAAA,EACD,UAAU,OAAO,OAAO;AAAA,IACpB,IAAI,SAAUA,GAAQ;AAClB,aAAO,IAAI,KAAK,KAAK,IAAIA,IAASA,CAAM;AAAA,IAC5C;AAAA,IACA,KAAK,SAAUA,GAAQ;AACnB,aAAO,KAAK,KAAK,IAAI,EAAEA,IAASA,CAAM;AAAA,IAC1C;AAAA,IACA,OAAO,SAAUA,GAAQ;AACrB,cAAKA,KAAU,KAAK,IACT,QAAQ,KAAK,KAAK,IAAIA,IAASA,CAAM,IAAI,KAE7C,OAAO,KAAK,KAAK,KAAKA,KAAU,KAAKA,CAAM,IAAI;AAAA,IAC1D;AAAA,EACR,CAAK;AAAA,EACD,SAAS,OAAO,OAAO;AAAA,IACnB,IAAI,SAAUA,GAAQ;AAClB,aAAIA,MAAW,IACJ,IAEPA,MAAW,IACJ,IAEJ,CAAC,KAAK,IAAI,GAAG,MAAMA,IAAS,EAAE,IAAI,KAAK,KAAKA,IAAS,OAAO,IAAI,KAAK,EAAE;AAAA,IAClF;AAAA,IACA,KAAK,SAAUA,GAAQ;AACnB,aAAIA,MAAW,IACJ,IAEPA,MAAW,IACJ,IAEJ,KAAK,IAAI,GAAG,MAAMA,CAAM,IAAI,KAAK,KAAKA,IAAS,OAAO,IAAI,KAAK,EAAE,IAAI;AAAA,IAChF;AAAA,IACA,OAAO,SAAUA,GAAQ;AACrB,aAAIA,MAAW,IACJ,IAEPA,MAAW,IACJ,KAEXA,KAAU,GACNA,IAAS,IACF,OAAO,KAAK,IAAI,GAAG,MAAMA,IAAS,EAAE,IAAI,KAAK,KAAKA,IAAS,OAAO,IAAI,KAAK,EAAE,IAEjF,MAAM,KAAK,IAAI,GAAG,OAAOA,IAAS,EAAE,IAAI,KAAK,KAAKA,IAAS,OAAO,IAAI,KAAK,EAAE,IAAI;AAAA,IAC5F;AAAA,EACR,CAAK;AAAA,EACD,MAAM,OAAO,OAAO;AAAA,IAChB,IAAI,SAAUA,GAAQ;AAClB,UAAIC,IAAI;AACR,aAAOD,MAAW,IAAI,IAAIA,IAASA,MAAWC,IAAI,KAAKD,IAASC;AAAA,IACpE;AAAA,IACA,KAAK,SAAUD,GAAQ;AACnB,UAAIC,IAAI;AACR,aAAOD,MAAW,IAAI,IAAI,EAAEA,IAASA,MAAWC,IAAI,KAAKD,IAASC,KAAK;AAAA,IAC3E;AAAA,IACA,OAAO,SAAUD,GAAQ;AACrB,UAAIC,IAAI;AACR,cAAKD,KAAU,KAAK,IACT,OAAOA,IAASA,MAAWC,IAAI,KAAKD,IAASC,MAEjD,QAAQD,KAAU,KAAKA,MAAWC,IAAI,KAAKD,IAASC,KAAK;AAAA,IACpE;AAAA,EACR,CAAK;AAAA,EACD,QAAQ,OAAO,OAAO;AAAA,IAClB,IAAI,SAAUD,GAAQ;AAClB,aAAO,IAAID,EAAO,OAAO,IAAI,IAAIC,CAAM;AAAA,IAC3C;AAAA,IACA,KAAK,SAAUA,GAAQ;AACnB,aAAIA,IAAS,IAAI,OACN,SAASA,IAASA,IAEpBA,IAAS,IAAI,OACX,UAAUA,KAAU,MAAM,QAAQA,IAAS,OAE7CA,IAAS,MAAM,OACb,UAAUA,KAAU,OAAO,QAAQA,IAAS,SAG5C,UAAUA,KAAU,QAAQ,QAAQA,IAAS;AAAA,IAE5D;AAAA,IACA,OAAO,SAAUA,GAAQ;AACrB,aAAIA,IAAS,MACFD,EAAO,OAAO,GAAGC,IAAS,CAAC,IAAI,MAEnCD,EAAO,OAAO,IAAIC,IAAS,IAAI,CAAC,IAAI,MAAM;AAAA,IACrD;AAAA,EACR,CAAK;AAAA,EACD,aAAa,SAAUE,GAAO;AAC1B,WAAIA,MAAU,WAAUA,IAAQ,IAChCA,IAAQA,IAAQ,OAAO,UAAU,OAAO,UAAUA,GAClDA,IAAQA,IAAQ,MAAQ,MAAQA,GACzB;AAAA,MACH,IAAI,SAAUF,GAAQ;AAClB,eAAO,KAAK,IAAIA,GAAQE,CAAK;AAAA,MACjC;AAAA,MACA,KAAK,SAAUF,GAAQ;AACnB,eAAO,IAAI,KAAK,IAAK,IAAIA,GAASE,CAAK;AAAA,MAC3C;AAAA,MACA,OAAO,SAAUF,GAAQ;AACrB,eAAIA,IAAS,MACF,KAAK,IAAKA,IAAS,GAAIE,CAAK,IAAI,KAEnC,IAAI,KAAK,IAAK,IAAIF,IAAS,GAAIE,CAAK,KAAK,IAAI;AAAA,MACzD;AAAA,IACZ;AAAA,EACI;AACJ,CAAC,GAEGC,IAAM,WAAY;AAAE,SAAO,YAAY,IAAG;AAAI,GAQ9CC;AAAA;AAAA,EAAuB,WAAY;AACnC,aAASA,IAAQ;AAEb,eADIC,IAAS,CAAA,GACJC,IAAK,GAAGA,IAAK,UAAU,QAAQA;AACpC,QAAAD,EAAOC,CAAE,IAAI,UAAUA,CAAE;AAE7B,WAAK,UAAU,CAAA,GACf,KAAK,2BAA2B,CAAA,GAChC,KAAK,IAAI,MAAM,MAAMD,CAAM;AAAA,IAC/B;AACA,WAAAD,EAAM,UAAU,SAAS,WAAY;AACjC,UAAIG,IAAQ;AACZ,aAAO,OAAO,KAAK,KAAK,OAAO,EAAE,IAAI,SAAUC,GAAS;AAAE,eAAOD,EAAM,QAAQC,CAAO;AAAA,MAAG,CAAC;AAAA,IAC9F,GACAJ,EAAM,UAAU,YAAY,WAAY;AACpC,WAAK,UAAU,CAAA;AAAA,IACnB,GACAA,EAAM,UAAU,MAAM,WAAY;AAG9B,eAFIK,GACAJ,IAAS,CAAA,GACJC,IAAK,GAAGA,IAAK,UAAU,QAAQA;AACpC,QAAAD,EAAOC,CAAE,IAAI,UAAUA,CAAE;AAE7B,eAASI,IAAK,GAAGC,IAAWN,GAAQK,IAAKC,EAAS,QAAQD,KAAM;AAC5D,YAAIE,IAAQD,EAASD,CAAE;AAGvB,SAACD,IAAKG,EAAM,YAAY,QAAQH,MAAO,UAAkBA,EAAG,OAAOG,CAAK,GAExEA,EAAM,SAAS,MACf,KAAK,QAAQA,EAAM,MAAK,CAAE,IAAIA,GAC9B,KAAK,yBAAyBA,EAAM,MAAK,CAAE,IAAIA;AAAA,MACnD;AAAA,IACJ,GACAR,EAAM,UAAU,SAAS,WAAY;AAEjC,eADIC,IAAS,CAAA,GACJC,IAAK,GAAGA,IAAK,UAAU,QAAQA;AACpC,QAAAD,EAAOC,CAAE,IAAI,UAAUA,CAAE;AAE7B,eAASG,IAAK,GAAGI,IAAWR,GAAQI,IAAKI,EAAS,QAAQJ,KAAM;AAC5D,YAAIG,IAAQC,EAASJ,CAAE;AAEvB,QAAAG,EAAM,SAAS,QACf,OAAO,KAAK,QAAQA,EAAM,MAAK,CAAE,GACjC,OAAO,KAAK,yBAAyBA,EAAM,MAAK,CAAE;AAAA,MACtD;AAAA,IACJ,GAEAR,EAAM,UAAU,aAAa,WAAY;AACrC,aAAO,KAAK,SAAS,MAAM,SAAUQ,GAAO;AAAE,eAAO,CAACA,EAAM,UAAS;AAAA,MAAI,CAAC;AAAA,IAC9E,GACAR,EAAM,UAAU,SAAS,SAAUU,GAAMC,GAAU;AAC/C,MAAID,MAAS,WAAUA,IAAOX,EAAG,IAC7BY,MAAa,WAAUA,IAAW;AACtC,UAAIC,IAAW,OAAO,KAAK,KAAK,OAAO;AACvC,UAAIA,EAAS,WAAW;AAOxB,eAAOA,EAAS,SAAS,KAAG;AACxB,eAAK,2BAA2B,CAAA;AAChC,mBAASC,IAAI,GAAGA,IAAID,EAAS,QAAQC,KAAK;AACtC,gBAAIL,IAAQ,KAAK,QAAQI,EAASC,CAAC,CAAC,GAChCC,IAAY,CAACH;AACjB,YAAIH,KAASA,EAAM,OAAOE,GAAMI,CAAS,MAAM,MAAS,CAACH,KACrD,KAAK,OAAOH,CAAK;AAAA,UACzB;AACA,UAAAI,IAAW,OAAO,KAAK,KAAK,wBAAwB;AAAA,QACxD;AAAA,IACJ,GACOZ;AAAA,EACX,EAAC;AAAA,GAKGe,IAAgB;AAAA,EAChB,QAAQ,SAAUC,GAAGC,GAAG;AACpB,QAAIC,IAAIF,EAAE,SAAS,GACfG,IAAID,IAAID,GACRJ,IAAI,KAAK,MAAMM,CAAC,GAChBC,IAAKL,EAAc,MAAM;AAC7B,WAAIE,IAAI,IACGG,EAAGJ,EAAE,CAAC,GAAGA,EAAE,CAAC,GAAGG,CAAC,IAEvBF,IAAI,IACGG,EAAGJ,EAAEE,CAAC,GAAGF,EAAEE,IAAI,CAAC,GAAGA,IAAIC,CAAC,IAE5BC,EAAGJ,EAAEH,CAAC,GAAGG,EAAEH,IAAI,IAAIK,IAAIA,IAAIL,IAAI,CAAC,GAAGM,IAAIN,CAAC;AAAA,EACnD;AAAA,EAgCA,OAAO;AAAA,IACH,QAAQ,SAAUQ,GAAIC,GAAIC,GAAG;AACzB,cAAQD,IAAKD,KAAME,IAAIF;AAAA,IAC3B;AAAA,EA0BJ;AACJ,GAKIG;AAAA;AAAA,EAA0B,WAAY;AACtC,aAASA,IAAW;AAAA,IACpB;AACA,WAAAA,EAAS,SAAS,WAAY;AAC1B,aAAOA,EAAS;AAAA,IACpB,GACAA,EAAS,UAAU,GACZA;AAAA,EACX;GAEIC,IAAY,IAAIzB,EAAK,GAUrB0B;AAAA;AAAA,EAAuB,WAAY;AACnC,aAASA,EAAMC,GAAQC,GAAO;AAC1B,WAAK,YAAY,IACjB,KAAK,cAAc,GACnB,KAAK,eAAe,CAAA,GACpB,KAAK,aAAa,CAAA,GAClB,KAAK,qBAAqB,CAAA,GAC1B,KAAK,YAAY,KACjB,KAAK,aAAa,IAClB,KAAK,iBAAiB,GACtB,KAAK,UAAU,GACf,KAAK,QAAQ,IACb,KAAK,aAAa,IAClB,KAAK,YAAY,IACjB,KAAK,aAAa,GAClB,KAAK,aAAa,GAClB,KAAK,kBAAkBjC,EAAO,OAAO,MACrC,KAAK,yBAAyBoB,EAAc,QAE5C,KAAK,iBAAiB,CAAA,GACtB,KAAK,wBAAwB,IAC7B,KAAK,6BAA6B,IAClC,KAAK,MAAMS,EAAS,OAAM,GAC1B,KAAK,kBAAkB,IACvB,KAAK,sBAAsB,IAC3B,KAAK,WAAW,IAChB,KAAK,UAAUG,GACX,OAAOC,KAAU,YACjB,KAAK,SAASA,GACdA,EAAM,IAAI,IAAI,KAGTA,MAAU,OACf,KAAK,SAASH,GACdA,EAAU,IAAI,IAAI;AAAA,IAE1B;AACA,WAAAC,EAAM,UAAU,QAAQ,WAAY;AAChC,aAAO,KAAK;AAAA,IAChB,GACAA,EAAM,UAAU,YAAY,WAAY;AACpC,aAAO,KAAK;AAAA,IAChB,GACAA,EAAM,UAAU,WAAW,WAAY;AACnC,aAAO,KAAK;AAAA,IAChB,GACAA,EAAM,UAAU,cAAc,WAAY;AACtC,aAAO,KAAK;AAAA,IAChB,GACAA,EAAM,UAAU,KAAK,SAAUG,GAAQC,GAAU;AAE7C,UADIA,MAAa,WAAUA,IAAW,MAClC,KAAK;AACL,cAAM,IAAI,MAAM,yFAAyF;AAC7G,kBAAK,aAAaD,GAClB,KAAK,sBAAsB,IAC3B,KAAK,YAAYC,IAAW,IAAI,IAAIA,GAC7B;AAAA,IACX,GACAJ,EAAM,UAAU,WAAW,SAAUI,GAAU;AAC3C,aAAIA,MAAa,WAAUA,IAAW,MACtC,KAAK,YAAYA,IAAW,IAAI,IAAIA,GAC7B;AAAA,IACX,GACAJ,EAAM,UAAU,UAAU,SAAUK,GAAS;AACzC,aAAIA,MAAY,WAAUA,IAAU,KACpC,KAAK,aAAaA,GACX;AAAA,IACX,GACAL,EAAM,UAAU,QAAQ,SAAUhB,GAAMsB,GAAwB;AAG5D,UAFItB,MAAS,WAAUA,IAAOX,EAAG,IAC7BiC,MAA2B,WAAUA,IAAyB,KAC9D,KAAK;AACL,eAAO;AAGX,UADA,KAAK,UAAU,KAAK,gBAChB,KAAK,WAAW;AAGhB,aAAK,YAAY;AACjB,iBAASC,KAAY,KAAK;AACtB,eAAK,0BAA0BA,CAAQ,GACvC,KAAK,aAAaA,CAAQ,IAAI,KAAK,mBAAmBA,CAAQ;AAAA,MAEtE;AAQA,UAPA,KAAK,aAAa,IAClB,KAAK,YAAY,IACjB,KAAK,wBAAwB,IAC7B,KAAK,6BAA6B,IAClC,KAAK,kBAAkB,IACvB,KAAK,aAAavB,GAClB,KAAK,cAAc,KAAK,YACpB,CAAC,KAAK,uBAAuBsB,GAAwB;AAGrD,YAFA,KAAK,sBAAsB,IAEvB,CAAC,KAAK,YAAY;AAClB,cAAIE,IAAM,CAAA;AACV,mBAASC,KAAQ,KAAK;AAClB,YAAAD,EAAIC,CAAI,IAAI,KAAK,WAAWA,CAAI;AACpC,eAAK,aAAaD;AAAA,QACtB;AACA,aAAK,iBAAiB,KAAK,SAAS,KAAK,cAAc,KAAK,YAAY,KAAK,oBAAoBF,CAAsB;AAAA,MAC3H;AACA,aAAO;AAAA,IACX,GACAN,EAAM,UAAU,yBAAyB,SAAUhB,GAAM;AACrD,aAAO,KAAK,MAAMA,GAAM,EAAI;AAAA,IAChC,GACAgB,EAAM,UAAU,mBAAmB,SAAUU,GAASC,GAAcC,GAAYC,GAAoBP,GAAwB;AACxH,eAASC,KAAYK,GAAY;AAC7B,YAAIE,IAAaJ,EAAQH,CAAQ,GAC7BQ,IAAoB,MAAM,QAAQD,CAAU,GAC5CE,IAAWD,IAAoB,UAAU,OAAOD,GAChDG,IAAsB,CAACF,KAAqB,MAAM,QAAQH,EAAWL,CAAQ,CAAC;AAGlF,YAAI,EAAAS,MAAa,eAAeA,MAAa,aAI7C;AAAA,cAAIC,GAAqB;AACrB,gBAAIC,IAAYN,EAAWL,CAAQ;AACnC,gBAAIW,EAAU,WAAW;AACrB;AAKJ,qBADIC,IAAO,CAACL,CAAU,GACb3B,IAAI,GAAGiC,IAAIF,EAAU,QAAQ/B,IAAIiC,GAAGjC,KAAK,GAAG;AACjD,kBAAIkC,IAAQ,KAAK,qBAAqBP,GAAYI,EAAU/B,CAAC,CAAC;AAC9D,kBAAI,MAAMkC,CAAK,GAAG;AACd,gBAAAJ,IAAsB,IACtB,QAAQ,KAAK,6CAA6C;AAC1D;AAAA,cACJ;AACA,cAAAE,EAAK,KAAKE,CAAK;AAAA,YACnB;AACA,YAAIJ,MAEAL,EAAWL,CAAQ,IAAIY;AAAA,UAG/B;AAEA,eAAKH,MAAa,YAAYD,MAAsBD,KAAc,CAACG,GAAqB;AACpF,YAAAN,EAAaJ,CAAQ,IAAIQ,IAAoB,CAAA,IAAK,CAAA;AAClD,gBAAIO,IAAeR;AACnB,qBAASL,KAAQa;AACb,cAAAX,EAAaJ,CAAQ,EAAEE,CAAI,IAAIa,EAAab,CAAI;AAGpD,YAAAI,EAAmBN,CAAQ,IAAIQ,IAAoB,CAAA,IAAK,CAAA;AACxD,gBAAIG,IAAYN,EAAWL,CAAQ;AAEnC,gBAAI,CAAC,KAAK,YAAY;AAClB,kBAAIC,IAAM,CAAA;AACV,uBAASC,KAAQS;AACb,gBAAAV,EAAIC,CAAI,IAAIS,EAAUT,CAAI;AAC9B,cAAAG,EAAWL,CAAQ,IAAIW,IAAYV;AAAA,YACvC;AACA,iBAAK,iBAAiBc,GAAcX,EAAaJ,CAAQ,GAAGW,GAAWL,EAAmBN,CAAQ,GAAGD,CAAsB;AAAA,UAC/H;AAGI,aAAI,OAAOK,EAAaJ,CAAQ,IAAM,OAAeD,OACjDK,EAAaJ,CAAQ,IAAIO,IAExBC,MAGDJ,EAAaJ,CAAQ,KAAK,IAE1BU,IAGAJ,EAAmBN,CAAQ,IAAIK,EAAWL,CAAQ,EAAE,MAAK,EAAG,QAAO,IAGnEM,EAAmBN,CAAQ,IAAII,EAAaJ,CAAQ,KAAK;AAAA;AAAA,MAGrE;AAAA,IACJ,GACAP,EAAM,UAAU,OAAO,WAAY;AAK/B,aAJK,KAAK,oBACN,KAAK,kBAAkB,IACvB,KAAK,kBAAiB,IAErB,KAAK,cAGV,KAAK,aAAa,IAClB,KAAK,YAAY,IACb,KAAK,mBACL,KAAK,gBAAgB,KAAK,OAAO,GAE9B,QAPI;AAAA,IAQf,GACAA,EAAM,UAAU,MAAM,WAAY;AAC9B,kBAAK,WAAW,IAChB,KAAK,OAAO,KAAK,aAAa,KAAK,SAAS,GACrC;AAAA,IACX,GACAA,EAAM,UAAU,QAAQ,SAAUhB,GAAM;AAEpC,aADIA,MAAS,WAAUA,IAAOX,EAAG,IAC7B,KAAK,aAAa,CAAC,KAAK,aACjB,QAEX,KAAK,YAAY,IACjB,KAAK,cAAcW,GACZ;AAAA,IACX,GACAgB,EAAM,UAAU,SAAS,SAAUhB,GAAM;AAErC,aADIA,MAAS,WAAUA,IAAOX,EAAG,IAC7B,CAAC,KAAK,aAAa,CAAC,KAAK,aAClB,QAEX,KAAK,YAAY,IACjB,KAAK,cAAcW,IAAO,KAAK,aAC/B,KAAK,cAAc,GACZ;AAAA,IACX,GACAgB,EAAM,UAAU,oBAAoB,WAAY;AAC5C,eAASb,IAAI,GAAGoC,IAAmB,KAAK,eAAe,QAAQpC,IAAIoC,GAAkBpC;AACjF,aAAK,eAAeA,CAAC,EAAE,KAAI;AAE/B,aAAO;AAAA,IACX,GACAa,EAAM,UAAU,QAAQ,SAAUE,GAAO;AACrC,aAAKA,KAILA,EAAM,IAAI,IAAI,GACP,SAJH,QAAQ,KAAK,4EAA4E,GAClF;AAAA,IAIf,GAIAF,EAAM,UAAU,SAAS,WAAY;AACjC,UAAIrB;AACJ,cAACA,IAAK,KAAK,YAAY,QAAQA,MAAO,UAAkBA,EAAG,OAAO,IAAI,GAC/D;AAAA,IACX,GACAqB,EAAM,UAAU,QAAQ,SAAU9B,GAAQ;AACtC,aAAIA,MAAW,WAAUA,IAAS,IAClC,KAAK,aAAaA,GACX;AAAA,IACX,GACA8B,EAAM,UAAU,SAAS,SAAUwB,GAAO;AACtC,aAAIA,MAAU,WAAUA,IAAQ,IAChC,KAAK,iBAAiBA,GACtB,KAAK,UAAUA,GACR;AAAA,IACX,GACAxB,EAAM,UAAU,cAAc,SAAU9B,GAAQ;AAC5C,kBAAK,mBAAmBA,GACjB;AAAA,IACX,GACA8B,EAAM,UAAU,OAAO,SAAUyB,GAAM;AACnC,aAAIA,MAAS,WAAUA,IAAO,KAC9B,KAAK,QAAQA,GACN;AAAA,IACX,GACAzB,EAAM,UAAU,SAAS,SAAU0B,GAAgB;AAC/C,aAAIA,MAAmB,WAAUA,IAAiBzD,EAAO,OAAO,OAChE,KAAK,kBAAkByD,GAChB;AAAA,IACX,GACA1B,EAAM,UAAU,gBAAgB,SAAU2B,GAAuB;AAC7D,aAAIA,MAA0B,WAAUA,IAAwBtC,EAAc,SAC9E,KAAK,yBAAyBsC,GACvB;AAAA,IACX,GAEA3B,EAAM,UAAU,QAAQ,WAAY;AAEhC,eADIzB,IAAS,CAAA,GACJC,IAAK,GAAGA,IAAK,UAAU,QAAQA;AACpC,QAAAD,EAAOC,CAAE,IAAI,UAAUA,CAAE;AAE7B,kBAAK,iBAAiBD,GACf;AAAA,IACX,GACAyB,EAAM,UAAU,UAAU,SAAU4B,GAAU;AAC1C,kBAAK,mBAAmBA,GACjB;AAAA,IACX,GACA5B,EAAM,UAAU,eAAe,SAAU4B,GAAU;AAC/C,kBAAK,wBAAwBA,GACtB;AAAA,IACX,GACA5B,EAAM,UAAU,WAAW,SAAU4B,GAAU;AAC3C,kBAAK,oBAAoBA,GAClB;AAAA,IACX,GACA5B,EAAM,UAAU,WAAW,SAAU4B,GAAU;AAC3C,kBAAK,oBAAoBA,GAClB;AAAA,IACX,GACA5B,EAAM,UAAU,aAAa,SAAU4B,GAAU;AAC7C,kBAAK,sBAAsBA,GACpB;AAAA,IACX,GACA5B,EAAM,UAAU,SAAS,SAAU4B,GAAU;AACzC,kBAAK,kBAAkBA,GAChB;AAAA,IACX,GAUA5B,EAAM,UAAU,SAAS,SAAUhB,GAAMI,GAAW;AAChD,UAAIX,IAAQ,MACRE;AAGJ,UAFIK,MAAS,WAAUA,IAAOX,EAAG,IAC7Be,MAAc,WAAUA,IAAYY,EAAM,oBAC1C,KAAK;AACL,eAAO;AACX,UAAIO;AACJ,UAAI,CAAC,KAAK,YAAY,CAAC,KAAK;AACxB,YAAInB;AACA,eAAK,MAAMJ,GAAM,EAAI;AAAA;AAErB,iBAAO;AAGf,UADA,KAAK,WAAW,IACZA,IAAO,KAAK;AACZ,eAAO;AAEX,MAAI,KAAK,0BAA0B,OAC3B,KAAK,oBACL,KAAK,iBAAiB,KAAK,OAAO,GAEtC,KAAK,wBAAwB,KAE7B,KAAK,+BAA+B,OAChC,KAAK,yBACL,KAAK,sBAAsB,KAAK,OAAO,GAE3C,KAAK,6BAA6B;AAEtC,UAAI6C,IAAc7C,IAAO,KAAK,YAC1B8C,IAAmB,KAAK,cAAcnD,IAAK,KAAK,sBAAsB,QAAQA,MAAO,SAASA,IAAK,KAAK,aACxGoD,IAAY,KAAK,YAAY,KAAK,UAAUD,GAC5CE,IAA0B,WAAY;AAGtC,YAFIvD,EAAM,cAAc,KAEpBoD,IAAcE;AACd,iBAAO;AAEX,YAAIE,IAAgB,KAAK,MAAMJ,IAAcC,CAAgB,GACzDI,IAAwBL,IAAcI,IAAgBH,GAGtDK,IAAU,KAAK,IAAID,IAAwBzD,EAAM,WAAW,CAAC;AACjE,eAAI0D,MAAY,KAAKN,MAAgBpD,EAAM,YAChC,IAEJ0D;AAAA,MACX,GACIC,IAAUJ,EAAuB,GACjCX,IAAQ,KAAK,gBAAgBe,CAAO;AAMxC,UAJA,KAAK,kBAAkB,KAAK,SAAS,KAAK,cAAc,KAAK,YAAYf,CAAK,GAC1E,KAAK,qBACL,KAAK,kBAAkB,KAAK,SAASe,CAAO,GAE5C,KAAK,cAAc,KAAKP,KAAe,KAAK;AAC5C,YAAI,KAAK,UAAU,GAAG;AAClB,cAAIQ,IAAgB,KAAK,IAAI,KAAK,OAAOR,IAAc,KAAK,aAAaC,CAAgB,IAAI,GAAG,KAAK,OAAO;AAC5G,UAAI,SAAS,KAAK,OAAO,MACrB,KAAK,WAAWO;AAGpB,eAAK9B,KAAY,KAAK;AAClB,YAAI,CAAC,KAAK,SAAS,OAAO,KAAK,WAAWA,CAAQ,KAAM,aACpD,KAAK,mBAAmBA,CAAQ;AAAA;AAAA,YAG5B,KAAK,mBAAmBA,CAAQ,IAAI,WAAW,KAAK,WAAWA,CAAQ,CAAC,IAE5E,KAAK,SACL,KAAK,0BAA0BA,CAAQ,GAE3C,KAAK,aAAaA,CAAQ,IAAI,KAAK,mBAAmBA,CAAQ;AAElE,iBAAI,KAAK,UACL,KAAK,YAAY,CAAC,KAAK,YAE3B,KAAK,cAAcuB,IAAmBO,GAClC,KAAK,qBACL,KAAK,kBAAkB,KAAK,OAAO,GAEvC,KAAK,6BAA6B,IAC3B;AAAA,QACX,OACK;AACD,UAAI,KAAK,uBACL,KAAK,oBAAoB,KAAK,OAAO;AAEzC,mBAASlD,IAAI,GAAGoC,IAAmB,KAAK,eAAe,QAAQpC,IAAIoC,GAAkBpC;AAGjF,iBAAK,eAAeA,CAAC,EAAE,MAAM,KAAK,aAAa,KAAK,WAAW,EAAK;AAExE,sBAAK,aAAa,IACX;AAAA,QACX;AAEJ,aAAO;AAAA,IACX,GACAa,EAAM,UAAU,oBAAoB,SAAUU,GAASC,GAAcC,GAAYS,GAAO;AACpF,eAASd,KAAYK;AAEjB,YAAID,EAAaJ,CAAQ,MAAM,QAG/B;AAAA,cAAI+B,IAAQ3B,EAAaJ,CAAQ,KAAK,GAClCgC,IAAM3B,EAAWL,CAAQ,GACzBiC,IAAe,MAAM,QAAQ9B,EAAQH,CAAQ,CAAC,GAC9CkC,IAAa,MAAM,QAAQF,CAAG,GAC9BtB,IAAsB,CAACuB,KAAgBC;AAC3C,UAAIxB,IACAP,EAAQH,CAAQ,IAAI,KAAK,uBAAuBgC,GAAKlB,CAAK,IAErD,OAAOkB,KAAQ,YAAYA,IAGhC,KAAK,kBAAkB7B,EAAQH,CAAQ,GAAG+B,GAAOC,GAAKlB,CAAK,KAI3DkB,IAAM,KAAK,qBAAqBD,GAAOC,CAAG,GAEtC,OAAOA,KAAQ,aAGf7B,EAAQH,CAAQ,IAAI+B,KAASC,IAAMD,KAASjB;AAAA;AAAA,IAI5D,GACArB,EAAM,UAAU,uBAAuB,SAAUsC,GAAOC,GAAK;AACzD,aAAI,OAAOA,KAAQ,WACRA,IAEPA,EAAI,OAAO,CAAC,MAAM,OAAOA,EAAI,OAAO,CAAC,MAAM,MACpCD,IAAQ,WAAWC,CAAG,IAE1B,WAAWA,CAAG;AAAA,IACzB,GACAvC,EAAM,UAAU,4BAA4B,SAAUO,GAAU;AAC5D,UAAIC,IAAM,KAAK,mBAAmBD,CAAQ,GACtCmC,IAAW,KAAK,WAAWnC,CAAQ;AACvC,MAAI,OAAOmC,KAAa,WACpB,KAAK,mBAAmBnC,CAAQ,IAAI,KAAK,mBAAmBA,CAAQ,IAAI,WAAWmC,CAAQ,IAG3F,KAAK,mBAAmBnC,CAAQ,IAAI,KAAK,WAAWA,CAAQ,GAEhE,KAAK,WAAWA,CAAQ,IAAIC;AAAA,IAChC,GACAR,EAAM,oBAAoB,IACnBA;AAAA,EACX,EAAC;AAAA;AAYYF,EAAS;AAOtB,IAAI6C,IAAQ5C;AAoDC4C,EAAM,OAAO,KAAKA,CAAK;AAgDpBA,EAAM,UAAU,KAAKA,CAAK;AAgDhCA,EAAM,IAAI,KAAKA,CAAK;AAgDjBA,EAAM,OAAO,KAAKA,CAAK;AAgDvBA,EAAM,OAAO,KAAKA,CAAK;AC3kC7B,MAAMC,EAAa;AAAA,EACzB,OAAgBC,KAAO,IAAIvE,EAAA;AAAA,EAC3B,OAAO,OAAO;AAAC,IAAAwE,EAAS,OAAOF,EAAaC,EAAI;AAAA,EAAC;AAAA,EAEjD,OAAOE;AAAA,EACP,WAAW,KAAK;AAAC,WAAO,KAAKA;AAAA,EAAG;AAAA,EAChC,cAAc;AAAC,IAAAH,EAAaG,KAAM;AAAA,EAAI;AAAA,EAEtC,OAAOC,KAA8B,CAAA;AAAA,EACrC,OAAOC,KAA+B,CAAA;AAAA,EACtC,OAAO,WAAWC,GAAcC,GAAaC,GAAgB;AAC5D,IAAIF,IACH,KAAKD,GAAgBE,CAAG,IAAIC,IACxB,KAAKJ,GAAeG,CAAG,IAAIC;AAAA,EACjC;AAAA,EACA,OAAO,aAAa,CAACD,MAAuC,KAAKH,GAAeG,CAAG,KAAK,KAAKF,GAAgBE,CAAG;AAAA,EAChH,OAAO,cAAcE,GAAgBH,GAAcC,GAAa;AAC/D,QAAI,CAAEE,EAAO,WAAW,MAAM,EAAG;AAEjC,UAAMC,IAAMJ,IAAM,KAAKD,GAAgBE,CAAG,IAAI,KAAKH,GAAeG,CAAG;AACrE,IAAIG,KAAK,KAAK,eAAeD,CAAM,EAAE,GAAG,QAAQ,CAAA/D,MAAIA,EAAE,oBAAoB,SAASgE,CAAG,CAAC,GAEnFJ,IAAK,OAAO,KAAKD,GAAgBE,CAAG,IAEnC,OAAO,KAAKH,GAAeG,CAAG;AAAA,EACpC;AAAA,EAEA,OAAO,eAA2B;AACjC,UAAMI,IAAM,KAAKP;AACjB,gBAAKA,KAAiB,CAAA,GACfO;AAAA,EACR;AAAA,EACA,OAAO,cAAcC,GAAe;AAAC,SAAKR,KAAiBQ;AAAA,EAAC;AAAA,EAE5D,OAAO,YAAYC,GAAqB;AACvC,UAAMP,IAAMQ,EAAeD,GAAM,UAAU,EAAK,GAC1CD,IAAIN,IAAK,KAAKD,KAAiB,KAAKD;AAC1C,eAAW,CAACW,GAAKL,CAAG,KAAK,OAAO,QAAQE,CAAC;AACxC,MAAMG,EAAI,WAAW,MAAM,KAE3B,KAAK,eAAeA,CAAG,EAAE,GAAG,QAAQ,OAAIrE,EAAE,oBAAoB,SAASgE,CAAG,CAAC;AAE5E,WAAIJ,IAAK,KAAKD,KAAkB,CAAA,IAAS,KAAKD,KAAiB,CAAA,GAExD;AAAA,EACR;AAAA,EACC,OAAO,eAAeW,GAAqE;AAC1F,UAAMC,IAAMD,EAAI,QAAQ,GAAG;AAC3B,QAAIE,IAAM;AACV,QAAID,KAAO,GAAG;AACb,YAAME,IAAKH,EAAI,MAAM,GAAGC,CAAG,GACrBG,IAAQ,gBAAgBD,CAAE;AAChC,UAAI,CAAEE,EAAQ,IAAI,OAAO,OAAOD,CAAK,IAAI,CAAC,EAAG,OAAM,QAAQD,CAAE;AAE7D,YAAMG,IAAiC,SAAS,eAAeH,CAAE;AACjE,UAAI,CAAEG,EAAM,OAAM,QAAQH,CAAE,WAAWA,CAAE;AAEzC,YAAMI,IAAMD,EAAK;AACjB,aAAAJ,IAAMF,EAAI,MAAMC,IAAK,CAAC,GACf,EAAC,IAAIM,EAAI,SAAS,iBAAiBL,CAAG,GAAG,IAAAC,GAAI,KAAAD,EAAA;AAAA,IACrD;AAEA,WAAAA,IAAMF,EAAI,MAAM,CAAC,GACV,EAAC,IAAI,SAAS,iBAAiBE,CAAG,GAAG,IAAI,IAAI,KAAAA,EAAA;AAAA,EACrD;AAAA;AAAA,EAGD,OAAO,aAAaX,GAAciB,GAA6B;AAC9D,IAAAH,EAAQ,IAAI,WAAA,GAERG,IAIH,KAAKnB,GAAe,QACpB,KAAKA,GAAe,QACpB,KAAKA,GAAe;AAAA,IAGpB,KAAKA,GAAe,WAAW,IAAI,MAAKmB,EAAA,KAGxC,OAAO,KAAKnB,GAAe,OAC3B,OAAO,KAAKA,GAAe,OAC3B,OAAO,KAAKA,GAAe,WAC3B,OAAO,KAAKA,GAAe,WAAW,IAEvC,KAAK,aAAaE,IACf,CAAAC,MAAM,KAAKH,GAAeG,CAAG,KAC3B,KAAKF,GAAgBE,CAAG,IAC1B,CAAAA,MAAM,KAAKH,GAAeG,CAAG,GAEhCa,EAAQ,OAAO,WAAA,GACXI,EAAO,YAAU,QAAQ,IAAI,uBAAuB;AAAA,MACvD,OAAQ,OAAO,KAAK,KAAKpB,EAAc;AAAA,MACvC,QAAS,OAAO,KAAK,KAAKC,EAAe;AAAA,IAAA,CACzC;AAAA,EACF;AAAA,EAEA,OAAO,sBAAsB;AAG5B,QAFA,KAAK,aAAa,EAAI,GAElB,KAAK,cAAc,WAAW,GAAG;AACpC,WAAK,aAAa,OACjB,KAAKD,GAAeG,CAAG,KACrB,KAAKF,GAAgBE,CAAG;AAC3B;AAAA,IACD;AAEA,UAAMkB,IAAmB,CAAA;AACzB,eAAW9E,KAAK,KAAK,eAAe;AACnC,YAAMD,IAAI,KAAK2D,GAAgB1D,CAAC;AAChC,MAAID,MAAG+E,EAAK9E,CAAC,IAAID;AAAA,IAClB;AACA,SAAK,aAAa,CAAA6D,MAAM,KAAKH,GAAeG,CAAG,KAAKkB,EAAKlB,CAAG;AAAA,EAC7D;AAAA,EAGA,KAAKE,GAAgBiB,GAAU;AAI9B,UAAMnB,IAAME,EAAO,YAAA;AAGnB,YAAQF,GAAA;AAAA,MACP,KAAK;AAAA,MACL,KAAK;AAAA;AAAA,MACL,KAAK;AAAA;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACJ,YAAIa,EAAQ,OAAO,WAAY;AAC/B,YAAI,CAAEpB,EAAa,cAAe;AAClC;AAAA,IAAA;AAGF,QAAIO,MAAQ,SAAS;AACpB,YAAMoB,IAAKP,EAAQ,IAAI,SAAA;AACvB,UAAIO,aAAcC,GAAW;AAC5B,QAAAD,EAAG,KAAKE,GAAY,IAAI,aAAaA,CAAU,CAAC;AAChD;AAAA,MACD;AAAA,IACD;AAEA,UAAMC,IAAK9B,EAAa,WAAWO,CAAG;AACtC,IAAMuB,MAGNJ,EAAE,2BAAA,GACE,GAAEnB,EAAI,WAAW,MAAM,KAAKa,EAAQ,OAAO,kBAE/CU,EAAGJ,CAAC;AAAA,EAEL;AAAA,EACA,IAAI,eAAe;AAAC,WAAON,EAAQ;AAAA,EAAY;AAAA,EACtC,SAAkB;AAAA;AAAA,EAE3B,OAAOW,KAAY;AAAA,EACnB,OAAO,cAAuB;AAC7B,WAAI/B,EAAa+B,KAAkB,MACnC/B,EAAa+B,KAAY,IAClB;AAAA,EACR;AAAA,EACA,OAAO,aAAa;AAAC,IAAA/B,EAAa+B,KAAY;AAAA,EAAK;AAAA,EAGnD,OAAO;AAAA,EACP,OAAO,UAAU;AAAA,EACjB,OAAO,UAAU;AAAA,EACjB,OAAO;AAAA,EACP,OAAgB,cAAc;AAAA,EAE9B,OAAO,gBAA0B,CAAA;AAAA,EAEjC,OAAO,WAAWC,IAAO,IAAO;AAC/B,QAAI,CAAEZ,EAAQ,IAAI,OAAO,kBAAkB,EAAG;AAE9C,UAAM,EAAC,IAAAtE,GAAI,KAAAkE,EAAA,IAAOI,EAAQ,OAAO,UAAA,GAC3Bb,IAAM,GAAG,OAAOS,IAAK,CAAC,CAAC,MAAKlE;AAClC,QAAI,KAAK,MAAM,UAAU,CAAAmF,MAAIA,EAAE,QAAQ1B,CAAG,IAAI,GAAI;AAElD,IAAIiB,EAAO,YAAU,QAAQ,IAAI,4BAA4B,OAAOQ,CAAI,CAAC,YAAY,OAAO,KAAK,OAAO,CAAC,QAAQ,OAAO,KAAK,MAAM,MAAM,CAAC,QAAQ,OAAO,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,aAAa,GAE9L,KAAK,MAAM,GAAG,EAAE,GAAG,QAAM,KAAK,MAAM,IAAA;AACxC,UAAM,EAAC,SAAAE,EAAA,IAAWd,EAAQ,IAAI,KAAK,KAK7Be,IAAOf,EAAQ,OAAO,QAAA;AAC5B,IAAAe,EAAK,MAAM,eAAe,IAAI,MAE1B,KAAK,MAAM,KAAK;AAAA,MAAC,KAAA5B;AAAA,MAAK,MAAAyB;AAAA,MACzB,IAAcZ,EAAQ,IAAI,OAAO,0BAA0BtE,CAAE;AAAA,MAC7D,OAAgBsE,EAAQ,IAAI,OAAO,2BAA2B,CAAC;AAAA,MAC/D,MAAAe;AAAA,IAAA,CACA,IAAID,MAAS,KAAK,QAAQ,KAAK,MAAM,MAAM,CAACA,CAAO,IACpD,KAAK,UAAU,KAAK,MAAM,QAEtBV,EAAO,aAEV,QAAQ,IAAI,gBAAgB,OAAO,KAAK,OAAO,CAAC,UAAwBW,EAAK,OAAO,KAAM,KAAM,KAAK,MAAoBA,EAAK,OAAO,CAAG,EAAG,KAAM,KAAK,QAAQ;AAAA,MAC7J,cAAc,MAAmBA,EAAK,OAAO,KAAK,MAAM,IAAI,OAAO;AAAA,IAAA,CACnE,eAAe,eAAe,IAAIA,CAAI,GACvC,QAAQ,MAAM,KAAK,KAAK,IAGzBf,EAAQ,IAAI,aAAa,OAAO,qBAAqB,KAAK,UAAU,KAAK,KAAK,CAAC;AAAA,EAChF;AAAA,EACA,OAAO,aAAagB,GAAmBC,GAAoB;AAC1D,SAAK,QAAoB,KAAK,MAAMD,CAAS,GAC7C,KAAK,UAAU,KAAK,MAAM,QACtB,KAAK,WAAW,KAAK,YAAS,KAAK,UAAU,KAAK,UAAS,IAC/D,KAAK,YAAYC;AAAA,EAClB;AAAA,EAEA,YAAY;AAAC,QAAIC,EAAA;AAAA,EAAiB;AAAA,EAClC,UAAU;AAAC,QAAIC,EAAA;AAAA,EAAe;AAAA;AAAA,EAI9B,EAAE1B,GAAqB;AAEtB,QAAI,CAAEO,EAAQ,aAAc,QAAO;AAInC,QAFApB,EAAa,WAAW,EAAI,GAExBoB,EAAQ;AACX,aAAAP,EAAK,OAAO,OAAOO,EAAQ,IAAI,OAAO,2BAA2BA,EAAQ,OAAO,WAAU,YAAW,EAAE,EAAE,CAAC,GACnG,KAAK,KAAKP,CAAI;AAEtB,QAAIO,EAAQ;AACX,UAAI,CAAEA,EAAQ,YAAY,CAAEA,EAAQ,OAAO;AAC1C,QAAAA,EAAQ,eAAA;AAAA,eAEA,KAAK,SAAS,OAAOA,EAAQ,IAAI,OAAO,kBAAkB,CAAC,CAAC;AACpE,eAAAP,EAAK,OAAO,IACL,KAAK,KAAKA,CAAI;AAAA;AAIvB,WAAIC,EAAeD,GAAM,WAAW,EAAI,MACvCO,EAAQ,OAAO,UAAUP,CAAI,GAC7BO,EAAQ,MAAA,IAGT,IAAIoB,EAAsB3B,CAAI,GACvB;AAAA,EACR;AAAA,EACA,EAAEA,GAAqB;AAItB,QAFAb,EAAa,WAAA,GAEToB,EAAQ;AACX,aAAAP,EAAK,OAAO,OAAOO,EAAQ,IAAI,OAAO,2BAA2BA,EAAQ,OAAO,WAAU,YAAW,EAAE,EAAE,CAAC,GACnG,KAAK,KAAKP,CAAI;AAEtB,QAAIO,EAAQ;AACX,UAAI,CAAEA,EAAQ,YAAY,CAAEA,EAAQ,OAAO;AAC1C,QAAAA,EAAQ,eAAA;AAAA,eAEQ,OAAOA,EAAQ,IAAI,OAAO,kBAAkB,CAAC,MAArD;AACR,eAAAP,EAAK,OAAO,IACL,KAAK,KAAKA,CAAI;AAAA;AAIvB,WAAIC,EAAeD,GAAM,WAAW,EAAI,MACvCO,EAAQ,OAAO,UAAUP,CAAI,GAC7BO,EAAQ,MAAA,IAGT,IAAIoB,EAAsB3B,CAAI,GACvB;AAAA,EACR;AAAA,EACA,EAAEA,GAAqB;AACtB,WAAAb,EAAa,WAAA,GAEboB,EAAQ,eAAA,GACR,IAAIoB,EAAsB3B,CAAI,GACvB;AAAA,EACR;AAAA,EACA,KAAKA,GAAqB;AACzB,UAAMzE,IAAOqG,EAAW5B,GAAM,QAAQ,GAAG;AACzC,QAAIO,EAAQ;AACX,aAAI,CAAEA,EAAQ,YAAY,CAAEA,EAAQ,OAAO,kBAAsB,eAAA,GAC1D;AAGR,UAAMsB,IAAK,IAAItF,EAAM,EAAE,GACjBuF,IAAW,QACXC,IAAM,MAAK;AAChB,MAAA5C,EAAaC,GAAK,OAAOyC,CAAE,GAC3BtB,EAAQ,cAAcuB,CAAQ;AAAA,IAC/B;AACA,IAAAD,EAAG,GAAG,IAAItG,CAAI,EACb,WAAWwG,CAAG,EACd,MAAA,GACD5C,EAAaC,GAAK,IAAIyC,CAAE;AAExB,UAAMG,IAAU/B,EAAeD,GAAM,WAAW,EAAI;AACpD,WAAAO,EAAQ,UAAUuB,GAAUC,GAAK,IAAMC,IAASD,IAAK,MAAS,GACvD;AAAA,EACR;AAAA,EACA,KAAK/B,GAAqB;AACzB,QAAI,EAAG,WAAWA,KAAQ,QAAQA,KAAQ,WAAWA,GAAO,OAAM;AAGlE,UAAM,EAAC,KAAAN,GAAK,OAAAuC,EAAA,IAASjC;AAGrB,WAFIN,MAAKP,EAAa,gBAAgBO,EAAI,MAAM,GAAG,IAE/CuC,KACH9C,EAAa,YAAY8C,GACzB1B,EAAQ,IAAI,aAAa,QAAQ,sBAAsB0B,CAAK,GACrD,OAGJhC,EAAeD,GAAM,SAAS,EAAK,MACtCb,EAAa,QAAQ,CAAA,GACrBA,EAAa,UAAU,GACvBA,EAAa,UAAU,GACvBoB,EAAQ,IAAI,aAAa,OAAO,qBAAqB,IAAI,GACzDA,EAAQ,IAAI,aAAa,QAAQ,sBAAsBpB,EAAa,WAAW,IACxE;AAAA,EAIT;AAAA,EAGA,OAAO,UAAU;AAChB,SAAKI,KAAiB,CAAA,GACtB,KAAKC,KAAkB,CAAA,GACvB,KAAK,QAAQ,CAAA,GACb,KAAK,UAAU,GACf,KAAK,UAAU;AAAA,EAChB;AAED;AAIA,MAAMkC,UAAwBvC,EAAa;AAAA,EAC1C,cAAc;AACb,UAAA,GACIwB,EAAO,YAAU,QAAQ,IAAI,2BAA2B,aAAa,GAEzEJ,EAAQ,KAAK,OAAA;AAAA,EACd;AAAA,EACS,KAAK2B,GAAcC,GAAW;AAAA,EAAc;AAAA;AACtD;AAIA,MAAMV,UAA0BtC,EAAa;AAAA,EAC5C,cAAc;AACb,UAAA,GACIwB,EAAO,YAAU,QAAQ,IAAI,6BAA6B,aAAa;AAAA,EAC5E;AAAA,EACS,KAAKuB,GAAcC,GAAW;AAAA,EAAc;AAAA;AACtD;AAIA,MAAMR,UAA8BxC,EAAa;AAAA,EAChD,YAAYa,GAAY;AACvB,UAAA,GACIW,EAAO,YAAU,QAAQ,IAAI,6BAA6B,aAAa;AAI3E,QAAID,IAAY,MAAK;AAAA,IAAc;AACnC,UAAMjB,IAAMQ,EAAeD,GAAM,UAAU,EAAI;AAC/C,YAAQA,EAAK,MAAM,GAAA;AAAA,MAClB,KAAK;AAAQ;AAAA;AAAA,MAEb,KAAK;AACJ,QAAAb,EAAa,aAAaM,CAAG;AAC7B;AAAA,MAED,KAAK;AACJ,QAAAiB,IAAY,MAAK;AAChB,UAAIT,EAAeD,GAAM,MAAM,EAAK,KAAGO,EAAQ,KAAK,GAAGP,CAAI,GAE3DO,EAAQ,OAAO,WAAA,GAGf,IAAImB,EAAA;AAAA,QACL;AACA;AAAA,MAED;AACC,QAAAhB,IAAY,MAAK,IAAIgB,EAAA;AAAA,IAAA;AAGvB,IAAAvC,EAAa,aAAaM,GAAKiB,CAAS;AAAA,EACzC;AAAA,EAEkB,SAAS;AAAA,EAElB,KAAKV,GAAqB;AAClC,UAAMF,IAAM,MAAM,KAAKE,CAAI,GACrB,EAAC,IAAAoC,MAAMpC;AACb,QAAI,CAAEoC,EAAI,QAAOtC;AACjB,QAAIX,EAAa,UAAU,EAAG,QAAO;AAErC,YAAQiD,GAAA;AAAA,MACP,KAAK;AACJ,QAAApC,EAAK,KAAK,QACVb,EAAa,UAAU;AAAG;AAAA,MAE3B,KAAK;AAAA,MACL,KAAK;AACJ,QAAAa,EAAK,KAAK,QACVb,EAAa,UAAUA,EAAa,UAAS;AAAG;AAAA;AAAA,MAGjD;AAAS,eAAO;AAAA,IAAA;AAGjB,WAAOkD,EAAkB,GAAGrC,CAAI;AAAA,EACjC;AAED;AAIA,MAAMqC,UAA0BlD,EAAa;AAAA,EACpC,cAAc;AACrB,UAAA,GACIwB,EAAO,YAAU,QAAQ,IAAI,6BAA6B,aAAa,GAC3EJ,EAAQ,IAAI,aAAa,OAAO,qBAAqB,EAAI;AAAA,EAC1D;AAAA,EACA,OAAO,GAAGP,GAAY;AAAC,WAAO,IAAIqC,EAAA,EAAoB,KAAKrC,CAAI;AAAA,EAAC;AAAA,EAEhEsC,KAAY;AAAA,EACZ,IAAa,eAAe;AAAC,WAAO,KAAKA;AAAA,EAAS;AAAA,EAEhC,SAAS;AAAA,EAElB,YAAY;AAAC,IAAA/B,EAAQ,KAAK,KAAA;AAAA,EAAM;AAAA,EAChC,UAAU;AAAC,IAAAA,EAAQ,KAAK,OAAA;AAAA,EAAQ;AAAA;AAAA,EAGhC,EAAEP,GAAqB;AAE/B,WAAM,KAAKsC,KAGPnD,EAAa,YAAYA,EAAa,UAAS,KAClD,KAAKoD,GAAA,GACE,IAAIb,EAAA,EAAkB,EAAE1B,CAAI,MAIhCC,EAAeD,GAAM,WAAW,EAAI,KAAGO,EAAQ,OAAO,UAAUP,CAAI,GAExEO,EAAQ,OAAO,mBAAmBpB,EAAa,SAAS,GACxDoB,EAAQ,MAAA,GACFpB,EAAa,MAAMA,EAAa,OAAO,GAAG,QAEhDA,EAAa,oBAAA,GACN,MAHsD,MAbhC,MAAM,EAAEa,CAAI;AAAA,EAiB1C;AAAA,EACS,EAAEA,GAAqB;AAE/B,WAAM,KAAKsC,KAGPnD,EAAa,YAAYA,EAAa,UAAS,KAClD,KAAKoD,GAAA,GACE,IAAIb,EAAA,EAAkB,EAAE1B,CAAI,MAIhCC,EAAeD,GAAM,WAAW,EAAI,KAAGO,EAAQ,OAAO,UAAUP,CAAI,GAExEO,EAAQ,OAAO,mBAAmBpB,EAAa,SAAS,GACxDoB,EAAQ,MAAA,GAERpB,EAAa,oBAAA,GACN,MAfsB,MAAM,EAAEa,CAAI;AAAA,EAgB1C;AAAA,EACS,EAAEA,GAAqB;AAC/B,eAAI2B,EAAsB3B,CAAI,GACvB;AAAA,EACR;AAAA,EACS,OAAO;AAAC,WAAO;AAAA,EAAK;AAAA,EACpB,KAAKA,GAAqB;AAClC,UAAM,EAAC,IAAAoC,GAAI,OAAAH,GAAO,OAAAO,EAAA,IAASxC;AAC3B,QAAIiC,KAASO,EAAO,QAAO;AAG3B,YADI7B,EAAO,YAAU,QAAQ,IAAI,mBAAmB,OAAOxB,EAAa,OAAO,CAAC,UAAU,OAAOA,EAAa,OAAO,CAAC,OAAO,OAAOiD,CAAE,CAAC,IAAI,eAAe,EAAE,GACpJA,GAAA;AAAA,MACP,KAAK;AACJ,YAAIjD,EAAa,YAAY,EAAG,QAAO;AACvC,QAAAA,EAAa,UAAU;AAAG;AAAA,MAE3B,KAAK;AACJ,YAAIA,EAAa,YAAY,EAAG,QAAO;AACvC,UAAEA,EAAa;AAAS;AAAA,MAEzB,KAAK;AACJ,YAAIA,EAAa,YAAYA,EAAa,UAAS,EAAG,QAAO;AAC7D,UAAEA,EAAa;AAAS;AAAA,MAEzB,KAAK;AACJ,YAAIA,EAAa,YAAYA,EAAa,UAAS,EAAG,QAAO;AAC7D,QAAAA,EAAa,UAAUA,EAAa,UAAS;AAAG;AAAA,MAEjD,KAAK;AACJ,QAAAA,EAAa,UAAUA,EAAa,UAAS;AAAG;AAAA,MAEjD,KAAK;AACJ,QAAAA,EAAa,UAAUA,EAAa,UAAS,GAC7CA,EAAa,QAAQA,EAAa,MAAM,MAAM,GAAGA,EAAa,OAAO,GACrE,KAAKoD,GAAA;AACL;AAAA,MAED;AAAS,cAAM,QAAQ,OAAOH,CAAE,CAAC;AAAA,IAAA;AAGlC,IAAIjD,EAAa,YAAYA,EAAa,UAAS,UAAQoD,GAAA;AAE3D,UAAMnB,IAAIjC,EAAa,MAAMA,EAAa,OAAO;AACjD,QAAI,CAAEiC,EAAG,OAAM,aAAa,OAAOjC,EAAa,OAAO,CAAC;AACxD,UAAM,EAAC,IAAAlD,GAAI,OAAAwG,GAAO,MAAAnB,EAAA,IAAQF;AAC1B,QAAIT,EAAO,UAAU;AACpB,YAAM5E,IAAIwE,EAAQ,OAAO,QAAA,GACnB,EAAC,MAAAY,MAAQhC,EAAa,MAAMA,EAAa,OAAO,KAAK,EAAC,MAAM,GAAA;AAClE,cAAQ,IAAI,YAAYlD,CAAE,MAAM,OAAOwG,CAAK,CAC5C,QAAQ,OAAOtD,EAAa,OAAO,CACnC,aAA0BpD,EAAE,OAAO,MAAM,MAAM,KAC/C,WAAwBA,EAAE,OAAO,CAAG,GAAG,MAAM,KAC7C,YAAY;AAAA,QACX,cAAc,MAAmBA,EAAE,OAAO,KAAK,MAAM,IAAI,OAAO;AAAA,MAAA,CAChE,YAAY,OAAOoF,CAAI,CAAC,MAAM;AAAA,QAC9BhC,EAAa,YAAYA,EAAa,UAAS;AAAA,MAAA,CAC/C;AAAA,iBAAoBA,EAAa,SAAS;AAAA,aAAkB,sCAAsC,IAAI,sCAAsC,IAAI,eAAe,IAAIA,EAAa,WAAW,IAAImC,CAAI;AAAA,IACrM;AACA,WAAOf,EAAQ,OAAO,aAAa,EAAC,IAAAtE,GAAI,OAAAwG,EAAA,GAAQnB,CAAI;AAAA,EACrD;AAAA,EAEAiB,KAAQ;AACP,IAAAhC,EAAQ,IAAI,aAAa,OAAO,qBAAqB,EAAK,GAC1D,KAAK+B,KAAY;AAAA,EAClB;AACD;AAKO,MAAM/B,EAAQ;AAAA,EACpB,OAAO,UAAUmC,GAAiBC,GAAsBC,IAAU,IAAMC,GAAyB;AAMhG,QALIlC,EAAO,YAAU,QAAQ,IAAI,qBAAqB+B,CAAO,eAAe,OAAOC,CAAQ,CAAC,YAAY,OAAOC,CAAO,CAAC,gBAAgB,OAAOC,CAAW,CAAC,IAAI,eAAe,EAAE,GAC/K,KAAKC,GAAA,GACL,KAAKC,KAAUL,GAGXC,GAAU;AAGb,YAAM,EAAC,SAAAK,GAAS,SAAAC,MAAW,QAAQ,cAAA;AACnC,MAAKD,EAAQ,KAAK,CAACN,MAAmB;AACrC,QAAI/B,EAAO,YAAU,QAAQ,IAAI,oBAAoB+B,CAAO,MAAM,eAAe,EAAE,GACnFC,EAAA,GACIC,IAAS,KAAK,QAAQF,CAAO,SAAaI,GAAA;AAAA,MAC/C,CAAC,GACD,KAAKI,KAAYD;AAAA,IAClB;AAGA,QAAIJ,GAAa;AAChB,YAAMlD,IAAM,MAAK;AAChB,aAAK,eAAA,GACLkD,EAAA,GACID,KAAS,KAAK,QAAQF,CAAO;AAAA,MAClC;AACA,WAAKS,GAAK,IAAI,KAAK,KAAK,KAAKnC,GAAY,CAACH,MAAmB;AAC5D,QAAAA,EAAE,gBAAA,GACFlB,EAAA;AAAA,MACD,CAAC,GACD,KAAKwD,GAAK,IAAI,UAAUC,GAAU,CAACvC,MAAoB;AACtD,QAAIA,EAAE,gBACNA,EAAE,gBAAA,GACFlB,EAAA;AAAA,MACD,CAAC,GACD,KAAK,cAAc,KAAKwD,IAAMxD,CAAG;AAAA,IAClC;AAEA,IAAAR,EAAa,GAAG,UAAA;AAAA,EAEjB;AAAA,EACC,OAAO2D,KAAa;AACnB,SAAKC,KAAU,IACf,KAAKG,KAAY,MAAK;AAAA,IAAc,GACpC,KAAKC,GAAK,MAAA;AAAA,EACX;AAAA,EACA,OAAgBA,KAAO,IAAIE,EAAA;AAAA,EAE5B,OAAOH,KAAuC,MAAK;AAAA,EAAc;AAAA,EACjE,OAAO,cAAcR,GAAiB;AAErC,IADI/B,EAAO,YAAU,QAAQ,IAAI,yBAAyB+B,CAAO,MAAM,OAAO,KAAKK,OAAYL,CAAO,CAAC,IAAI,eAAe,EAAE,GACxH,KAAKK,OAAYL,KAErB,KAAKQ,GAAUR,CAAO;AAAA,EACvB;AAAA,EAEA,OAAO,QAAQA,GAAiB;AAE/B,IADI/B,EAAO,YAAU,QAAQ,IAAI,mBAAmB+B,CAAO,MAAM,OAAO,KAAKK,OAAYL,CAAO,CAAC,IAAI,eAAe,EAAE,GAClH,KAAKK,OAAYL,MAErBvD,EAAa,GAAG,QAAA,GAChB,KAAK2D,GAAA;AAAA,EACN;AAAA,EACC,OAAOC,KAAU;AAAA,EACjB,WAAW,SAAS;AAAC,WAAO,MAAM,KAAK,OAAO,QAAQ,IAAI,OAAO,KAAK,OAAO,QAAQ,CAAC;AAAA,EAAG;AAAA,EAG1F,OAAO,KAAK7C,GAAaW,GAAUyC,IAAiB,IAAO;AAC1D,IAAIA,UAAqB,eAAA,GACzBnE,EAAa,GAAG,KAAKe,GAAKW,CAAC;AAAA,EAC5B;AAAA,EAEA,WAAW,aAAa;AAAC,WAAO1B,EAAa,GAAG;AAAA,EAAY;AAAA,EAC5D,WAAW,SAAS;AAAC,WAAOA,EAAa,GAAG;AAAA,EAAM;AAAA;AAAA,EAGjD,OAAO,eAAe;AAAA;AAAA,EACtB,OAAO,WAAY;AAAA;AAAA,EACnB,OAAO,eAAe;AAAA;AAAA,EACtB,OAAO,eAAe;AAAA;AAAA,EAGvB,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO,QAAQ,MAAK;AAAA,EAAc;AAAA,EAClC,WAAW,YAAY;AAAC,WAAO,KAAK,OAAO;AAAA,EAAS;AAAA,EACpD,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EAEP,OAAO;AAAA,EAEP,OAAO,KAAKoE,GAAaC,GAAcC,GAAcC,GAAiBC,GAAwBC,GAAkBC,GAAkBC,GAAkBC,GAAkE;AACrN,SAAK,MAAMR,GACX,KAAK,OAAOC,GACZ,KAAK,OAAOC,GACZ,KAAK,MAAMC,GACX,KAAK,SAASC,GACd,KAAK,SAASC,GACd,KAAK,QAAQ,MAAKA,EAAO,MAAA,GACzB,KAAK,SAASC,GACd,KAAK,SAASC,GACd,KAAK,gBAAgBC,GAErBL,EAAI,OAAO,mBAAmB,MAAK,KAAK,YAAY,GACpDA,EAAI,UAAU,uBAAuB,CAACM,GAAGnI,MAAK;AAAC,WAAK,eAAe,OAAOA,CAAC,MAAM;AAAA,IAAO,CAAC,GACzF6H,EAAI,OAAO,eAAe,MAAK,KAAK,QAAQ,GAC5CA,EAAI,UAAU,mBAAmB,CAACM,GAAGnI,MAAK;AAAC,WAAK,WAAW,OAAOA,CAAC,MAAM;AAAA,IAAO,CAAC,GACjF6H,EAAI,OAAO,mBAAmB,MAAK,KAAK,YAAY,GACpDA,EAAI,UAAU,uBAAuB,CAACM,GAAGnI,MAAK;AAAC,WAAK,eAAe,OAAOA,CAAC,MAAM;AAAA,IAAO,CAAC,GACzF6H,EAAI,OAAO,mBAAmB,MAAK,KAAK,YAAY,GACpDA,EAAI,UAAU,uBAAuB,CAACM,GAAGnI,MAAK;AAAC,WAAK,eAAe,OAAOA,CAAC,MAAM;AAAA,IAAO,CAAC,GAEzF2H,EAAK,IAAM,CAAAS,MAAI9E,EAAa,GAAG,EAAE8E,CAAC,GAClCT,EAAK,IAAM,CAAAS,MAAI9E,EAAa,GAAG,EAAE8E,CAAC,GAClCT,EAAK,IAAM,CAAAS,MAAI9E,EAAa,GAAG,EAAE8E,CAAC,GAClCT,EAAK,OAAQ,CAAAS,MAAI9E,EAAa,GAAG,KAAK8E,CAAC,GACvCT,EAAK,YAAY,CAAAS,MAAI9E,EAAa,GAAG,EAAE8E,CAAC,GACxCT,EAAK,OAAQ,CAAAS,MAAI9E,EAAa,GAAG,KAAK8E,CAAC,GAEvC9E,EAAa,KAAA,GACb,IAAIsC,EAAA,GACJ+B,EAAK,KAAK,EAAC,IAAI,OAAA,CAAO;AAAA,EACvB;AAAA,EACA,OAAO,OAAOU,GAAe;AAAC,SAAK,MAAMA;AAAA,EAAG;AAAA,EAG5C,OAAO,iBAAiB;AACvB,IAAM,KAAK,iBACV,KAAK,eAAe,IACpB,KAAK,IAAI,aAAa,OAAO,mBAAmB,EAAI,IAGjD,KAAK,iBACR,KAAK,eAAe,IACpB,KAAK,IAAI,aAAa,OAAO,mBAAmB,EAAK,IAElD,KAAK,iBACR,KAAK,eAAe,IACpB,KAAK,IAAI,aAAa,OAAO,mBAAmB,EAAK;AAAA,EAEvD;AAED;ACxsBO,MAAMC,IAAc;AAAA,GACrBC,IAAY;AAIX,MAAM/E,EAAS;AAAA,EACrB,OAAOgF,KAAsC,CAAA;AAAA,EAC7C,OAAOC;AAAA,EACP,OAAO,KAAKT,GAAiB;AAC5B,IAAAxE,EAASgF,KAAU,CAAA,GACnBhF,EAASiF,KAAUT,GAEnBxE,EAAS,OAAOA,EAASD,EAAI;AAG7B,aAASmF,EAAKhJ,GAAc;AAC3B,iBAAWiJ,KAAKnF,EAASoF,GAAS,CAAAD,EAAE,OAAOjJ,CAAI;AAC/C,MAAA8D,EAASqF,GAAKH,CAAI;AAAA,IACnB;AACA,IAAAlF,EAASqF,GAAKH,CAAI;AAAA,EACnB;AAAA,EACA,OAAOG,KACD,CAAAC,MAAK,sBAAsBA,CAAE;AAAA,EAEnC,OAAgBvF,KAAO,IAAIvE,EAAA;AAAA,EAE3B,OAAO4J,KAAoB,CAAA;AAAA,EAC3B,OAAO,OAAOD,GAAU;AAAC,IAAAnF,EAASoF,GAAQ,KAAKD,CAAC;AAAA,EAAC;AAAA,EAEjD,OAAO,UAAU;AAChB,IAAAnF,EAASqF,KAAO,MAAK,GACrBrF,EAAS,UAAA;AAAA,EACV;AAAA;AAAA,EAGA,OAAO,YAAY;AAClB,IAAAA,EAASgF,KAAU,CAAA;AACnB,eAAWG,KAAKnF,EAASoF,GAAS,CAAAD,EAAE,UAAA;AACpC,IAAAnF,EAASoF,KAAU,CAAA;AAAA,EACpB;AAAA;AAAA,EAIA,OAAO,UAAU5C,GAAgB7B,GAAwB;AACxD,UAAM4E,IAAShD,EAAW5B,GAAM,UAAU,CAAC;AAC3C,WAAO6B,EAAG,MAAMD,EAAW5B,GAAM,SAAS,CAAC,CAAC,EAC3C,OAAO,KAAK,KAAKA,EAAK,IAAI,CAAC,EAC3B,OAAO4E,IAAS,IAAGA,IAAQ,IAAG,KAAQ,EACtC,KAAK3E,EAAeD,GAAM,QAAQ,EAAK,CAAC;AAAA,EAC1C;AAAA,EACA,OAAgB6E,KAAiD;AAAA,IAChE,WAAc,CAAA/I,MAAItB,EAAO,KAAK,GAAGsB,CAAC;AAAA,IAClC,cAAgB,CAAAA,MAAItB,EAAO,KAAK,MAAMsB,CAAC;AAAA,IACvC,YAAe,CAAAA,MAAItB,EAAO,KAAK,IAAIsB,CAAC;AAAA,IACpC,aAAgB,CAAAA,MAAItB,EAAO,OAAO,GAAGsB,CAAC;AAAA,IACtC,gBAAkB,CAAAA,MAAItB,EAAO,OAAO,MAAMsB,CAAC;AAAA,IAC3C,cAAgB,CAAAA,MAAItB,EAAO,OAAO,IAAIsB,CAAC;AAAA,IACvC,eAAiB,CAAAA,MAAItB,EAAO,SAAS,GAAGsB,CAAC;AAAA,IACzC,kBAAmB,CAAAA,MAAItB,EAAO,SAAS,MAAMsB,CAAC;AAAA,IAC9C,gBAAkB,CAAAA,MAAItB,EAAO,SAAS,IAAIsB,CAAC;AAAA,IAC3C,YAAe,CAAAA,MAAItB,EAAO,MAAM,GAAGsB,CAAC;AAAA,IACpC,eAAiB,CAAAA,MAAItB,EAAO,MAAM,MAAMsB,CAAC;AAAA,IACzC,aAAgB,CAAAA,MAAItB,EAAO,MAAM,IAAIsB,CAAC;AAAA,IACtC,cAAgB,CAAAA,MAAItB,EAAO,QAAQ,GAAGsB,CAAC;AAAA,IACvC,iBAAmB,CAAAA,MAAItB,EAAO,QAAQ,MAAMsB,CAAC;AAAA,IAC7C,eAAiB,CAAAA,MAAItB,EAAO,QAAQ,IAAIsB,CAAC;AAAA,IACzC,kBAAmB,CAAAA,MAAItB,EAAO,YAAY,GAAGsB,CAAC;AAAA,IAC9C,qBAAsB,CAAAA,MAAItB,EAAO,YAAY,MAAMsB,CAAC;AAAA,IACpD,mBAAoB,CAAAA,MAAItB,EAAO,YAAY,IAAIsB,CAAC;AAAA,IAChD,eAAiB,CAAAA,MAAItB,EAAO,OAAO,KAAKsB,CAAC;AAAA,IACzC,gBAAkB,CAAAA,MAAItB,EAAO,UAAU,GAAGsB,CAAC;AAAA,IAC3C,mBAAoB,CAAAA,MAAItB,EAAO,UAAU,MAAMsB,CAAC;AAAA,IAChD,iBAAmB,CAAAA,MAAItB,EAAO,UAAU,IAAIsB,CAAC;AAAA,IAC7C,cAAgB,CAAAA,MAAItB,EAAO,QAAQ,GAAGsB,CAAC;AAAA,IACvC,iBAAmB,CAAAA,MAAItB,EAAO,QAAQ,MAAMsB,CAAC;AAAA,IAC7C,eAAiB,CAAAA,MAAItB,EAAO,QAAQ,IAAIsB,CAAC;AAAA,IACzC,cAAgB,CAAAA,MAAItB,EAAO,QAAQ,GAAGsB,CAAC;AAAA,IACvC,iBAAmB,CAAAA,MAAItB,EAAO,QAAQ,MAAMsB,CAAC;AAAA,IAC7C,eAAiB,CAAAA,MAAItB,EAAO,QAAQ,IAAIsB,CAAC;AAAA,IACzC,iBAAmB,CAAAA,MAAItB,EAAO,WAAW,GAAGsB,CAAC;AAAA,IAC7C,oBAAqB,CAAAA,MAAItB,EAAO,WAAW,MAAMsB,CAAC;AAAA,IAClD,kBAAmB,CAAAA,MAAItB,EAAO,WAAW,IAAIsB,CAAC;AAAA,EAAA;AAAA,EAE/C,OAAO,KAAKgJ,GAA8C;AACzD,QAAI,CAAEA,EAAI,QAAO,OAAItK,EAAO,OAAO,KAAKsB,CAAC;AAEzC,UAAMiJ,IAAK,KAAKF,GAAOC,CAAE;AACzB,QAAI,CAAEC,EAAI,OAAM;AAChB,WAAOA;AAAA,EACR;AAAA,EAEA,OAAgB,cAA+B;AAAA,IAC9C;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAAA;AAAA,EAGD,OAAO,YAAY/E,GAAYgF,GAAgB;AAC9C,UAAMC,IAAoC,CAAA;AAC1C,eAAWH,KAAMzF,EAAS,aAAa;AACtC,YAAM6F,IAAMlF,EAAiB8E,CAAE;AAC/B,UAAI,CAAEI,EAAK;AAQX,YAAMrJ,IAAI,OAAOqJ,CAAG,GACdC,IAAOtJ,EAAE,WAAW,GAAG,GACvBuJ,IAAKD,IAAMtJ,EAAE,MAAM,CAAC,IAAGA;AAC7B,UAAI,CAAEuJ,EAAI;AAEV,YAAM,CAACC,IAAG,KAAKC,CAAE,IAAIF,EAAG,MAAM,GAAG,GAC3BG,IAAKN,EAAIH,CAAE,IAAI,WAAWO,CAAE;AAElC,MAAIC,MAAIL,EAAIH,CAAE,KAAK,KAAK;AAAA,QACvB,KAAK,OAAA,KAAY,WAAWQ,CAAE,IAAGC,IAAI;AAAA,MAAA,IAGlCJ,MAAMF,EAAIH,CAAE,KAAK,WAAWE,EAAIF,CAAE,CAAC;AAAA,IACxC;AACA,WAAOG;AAAA,EACR;AAAA;AAAA,EAIA,OAAO,MAAMO,GAAexF,GAAYyF,GAAWR,GAAUS,GAA2BC,GAAuBC,GAAkB/G,IAAQ,IAAkB;AAC1J,UAAMtD,IAAO,KAAK+I,GAAQ,aAAY,IAAG1C,EAAW5B,GAAM,QAAQ,GAAG,GAC/D6B,IAAK,IAAItF,EAAMkJ,CAAI,EAExB,GAAGR,GAAK1J,CAAI,EACZ,SAAS,CAAAsK,MAAIH,EAASG,CAAC,CAAC;AACzB,SAAK,UAAUhE,GAAI7B,CAAI,GACvB,KAAKqE,GAAQmB,CAAK,IAAI,EAAC,IAAA3D,GAAI,OAAA+D,EAAA,GAG3BvG,EAASD,GAAK,IAAIyC,CAAE;AAEpB,UAAM,EAAC,MAAAiE,MAAQ9F;AACf,QAAI+F,IAASlE;AACb,QAAIiE,GAAM;AAET,MAAInF,EAAO,YAAU,QAAQ,MAAM,OAAOX,EAAK,MAAM,KAAK,EAAE,UAAU8F,CAAI,WAAW,OAAOL,EAAK,CAAC,CAAC,IAAI,OAAOA,EAAK,CAAC,CAAC,IAAI,OAAOA,EAAK,KAAK,CAAC,GAAG;AAC9I,iBAAW,EAAC,QAAAO,OAAWF,EAAK,SAAS,KAAKG,EAAa,GAAG;AAEzD,cAAM,EAAC,GAAAC,GAAG,IAAAC,GAAI,GAAAC,GAAG,IAAAC,GAAI,GAAApC,GAAG,IAAAqC,GAAI,MAAAC,MAAQP;AACpC,YAAIQ,IAAc,CAAA;AAClB,YAAID,EAAM,KAAI;AAAC,UAAAC,IAAc,KAAK,MAAMD,CAAI;AAAA,QAAC,SAAS1F,GAAG;AACxD,kBAAQ,MAAM,WAAW0F,CAAI,MAAK,OAAO1F,CAAC,CAAC;AAC3C;AAAA,QACD;AAAA;AAEC,WAAIqF,KAAKC,OAAIK,EAAM,IAAIN,KAAKC,KACxBC,KAAKC,OAAIG,EAAM,IAAIJ,KAAKC,KACxBpC,KAAKqC,OAAIE,EAAM,QAAQ,OAAOvC,KAAKqC,CAAE;AAG1C,cAAMG,IAAO,KAAK,YAAYD,GAAOf,CAAI;AACzC,QAAI9E,EAAO,YAAU,QAAQ,KAAK,MACjC4F,KAAQ,MAAM,OAAOL,CAAC,CAAC,MAAM,OAAOE,CAAC,CAAC,MAAM,OAAOnC,CAAC,CAAC,GACtD,WAAW,KAAK,UAAUwC,CAAI,CAAC,EAAE;AAEjC,cAAMC,IAAQ,IAAInK,EAAMkJ,CAAI,EAC3B,GAAGgB,GAAMlL,CAAI;AACd,aAAK,UAAUmL,GAAO1G,CAAI,GAC1B+F,EAAO,MAAMW,CAAK,GAIlBX,IAASW;AAAA,MACV;AACA,MAAI/F,EAAO,YAAU,QAAQ,SAAA;AAAA,IAC9B;AACA,IAAAoF,EAAO,WAAW,MAAK;AACtB,YAAMY,IAAK,KAAKtC,GAAQmB,CAAK;AAC7B,MAAMmB,GAAI,OAEV,OAAO,KAAKtC,GAAQmB,CAAK,GAEzBmB,EAAG,KAAK,QACR9E,EAAG,KAAA,GACH8E,EAAG,QAAA,GAEHhB,EAAA,GACApF,EAAQ,cAAc6D,IAAYoB,CAAK;AAAA,IACxC,CAAC;AAED,UAAM,EAAC,OAAAoB,MAAS5G;AAChB,QAAI4G,GAAO;AACV,YAAMC,IAAS,KAAKxC,GAAQuC,CAAK;AACjC,UAAI,CAAEC,GAAQ,GAAI,OAAM,GAAGD,CAAK;AAChC,aAAOC,EAAO,OACdA,EAAO,GAAG,MAAMhF,CAAE;AAAA,IACnB,MAAA,CACShD,KAAOgD,EAAG,MAAA;AAEnB,WAAOA;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBA,OAAgBoE,KAAgB;AAAA;AAAA,EAGhC,OAAO,GAAGa,GAAa;AAEtB,QAAI,CADO,KAAKzC,GAAQF,CAAW,GACzB,GAAI,QAAO;AAErB,UAAMxE,IAAM,MAAK,KAAK,aAAA;AACtB,WAAAY,EAAQ,UAAU4D,GAAaxE,GAAK,IAAMA,CAAG,GACtC;AAAA,EACR;AAAA;AAAA,EAGA,OAAO,eAAe;AAAC,SAAK0E,GAAQF,CAAW,GAAG,IAAI,KAAA,EAAO,IAAA;AAAA,EAAK;AAAA;AAAA;AAAA,EAKlE,OAAO,SAASnE,GAAY;AAC3B,UAAMwF,IAAQ,KAAKuB,GAAO/G,CAAI,GACxB2G,IAAK,KAAKtC,GAAQmB,CAAK;AAC7B,QAAI,CAAEmB,GAAI,GAAI,QAAO;AAErB,UAAMhH,IAAM,MAAKgH,EAAG,IAAI,IAAA;AACxB,WAAApG,EAAQ,UAAU6D,IAAYoB,GAAO7F,GAAK,IAAMA,CAAG,GAC5C;AAAA,EACR;AAAA,EACC,OAAOoH,GAAO/G,GAAY;AACzB,UAAM,EAAC,OAAAgH,IAAM,IAAI,IAAA3G,GAAI,MAAA4G,MAAQjH,GACvBwF,IAAQnF,IAAI;AAAA,EAAQA,CAAE,KAAI4G,KAAQD;AACxC,QAAI,CAAExB,EAAO,OAAM;AAEnB,WAAOA;AAAA,EACR;AAAA;AAAA,EAGD,OAAO,SAASxF,GAAY;AAC3B,UAAMwF,IAAQ,KAAKuB,GAAO/G,CAAI;AAC9B,gBAAKqE,GAAQmB,CAAK,GAAG,IAAI,KAAA,EAAO,IAAA,GACzB;AAAA,EACR;AAAA;AAAA,EAGA,OAAO,UAAUxF,GAAY;AAC5B,UAAMwF,IAAQ,KAAKuB,GAAO/G,CAAI;AAC9B,gBAAKqE,GAAQmB,CAAK,GAAG,IAAI,MAAA,GAClB;AAAA,EACR;AAAA;AAAA,EAGA,OAAO,WAAWxF,GAAY;AAC7B,UAAMwF,IAAQ,KAAKuB,GAAO/G,CAAI;AAC9B,gBAAKqE,GAAQmB,CAAK,GAAG,IAAI,OAAA,GAClB;AAAA,EACR;AAED;","x_google_ignoreList":[0]}
|
package/dist/EventMng.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { E as se, q as ut, D as G, a as it, w as Ee, d as Te, H as Oe, I as ke, e as J, J as _e, S as Lt, K as Me } from "./web2.js";
|
|
2
2
|
import { T as Se } from "./TxtLayer.js";
|
|
3
3
|
import { Button as Jt } from "./Button.js";
|
|
4
|
-
import { R as L, a as k } from "./
|
|
4
|
+
import { R as L, a as k } from "./CmnTween.js";
|
|
5
5
|
class De {
|
|
6
6
|
#e = [];
|
|
7
7
|
#t = -1;
|