{"version":3,"file":"js/chunk-vendors.fbbb9ce6.js","mappings":"2GAMe,SAASA,EACtBC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GAGA,IAoBIC,EApBAC,EACuB,oBAAlBT,EAA+BA,EAAcS,QAAUT,EAuDhE,GApDIC,IACFQ,EAAQR,OAASA,EACjBQ,EAAQP,gBAAkBA,EAC1BO,EAAQC,WAAY,GAIlBP,IACFM,EAAQE,YAAa,GAInBN,IACFI,EAAQG,SAAW,UAAYP,GAI7BC,GAEFE,EAAO,SAAUK,GAEfA,EACEA,GACCC,KAAKC,QAAUD,KAAKC,OAAOC,YAC3BF,KAAKG,QAAUH,KAAKG,OAAOF,QAAUD,KAAKG,OAAOF,OAAOC,WAEtDH,GAA0C,qBAAxBK,sBACrBL,EAAUK,qBAGRd,GACFA,EAAae,KAAKL,KAAMD,GAGtBA,GAAWA,EAAQO,uBACrBP,EAAQO,sBAAsBC,IAAIf,EAEtC,EAGAG,EAAQa,aAAed,GACdJ,IACTI,EAAOD,EACH,WACEH,EAAae,KACXL,MACCL,EAAQE,WAAaG,KAAKG,OAASH,MAAMS,MAAMC,SAASC,WAE7D,EACArB,GAGFI,EACF,GAAIC,EAAQE,WAAY,CAGtBF,EAAQiB,cAAgBlB,EAExB,IAAImB,EAAiBlB,EAAQR,OAC7BQ,EAAQR,OAAS,SAAkC2B,EAAGf,GAEpD,OADAL,EAAKW,KAAKN,GACHc,EAAeC,EAAGf,EAC3B,CACF,KAAO,CAEL,IAAIgB,EAAWpB,EAAQqB,aACvBrB,EAAQqB,aAAeD,EAAW,GAAGE,OAAOF,EAAUrB,GAAQ,CAACA,EACjE,CAGF,MAAO,CACLwB,QAAShC,EACTS,QAASA,EAEb,C,mLC7FA,SAASwB,EAAQC,EAAQC,GACvB,IAAIC,EAAOC,OAAOD,KAAKF,GAEvB,GAAIG,OAAOC,sBAAuB,CAChC,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAC3CC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GACpD,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UACtD,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAC7B,CAEA,OAAOH,CACT,CAEA,SAASU,EAAeC,GACtB,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EACpDA,EAAI,EAAIf,EAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GACpDC,EAAgBP,EAAQM,EAAKF,EAAOE,GACtC,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAC5JhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAC7E,GACF,CAEA,OAAON,CACT,CAEA,SAASW,EAAQC,GAGf,OAAOD,EAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAUF,GAC7F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAO,mBAAqBC,QAAUD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOG,UAAY,gBAAkBJ,CAC1H,EAAGD,EAAQC,EACb,CAEA,SAASL,EAAgBK,EAAKN,EAAKW,GAYjC,OAXIX,KAAOM,EACTtB,OAAOoB,eAAeE,EAAKN,EAAK,CAC9BW,MAAOA,EACPrB,YAAY,EACZsB,cAAc,EACdC,UAAU,IAGZP,EAAIN,GAAOW,EAGNL,CACT,CAEA,SAASQ,EAA8BhB,EAAQiB,GAC7C,GAAc,MAAVjB,EAAgB,MAAO,CAAC,EAC5B,IAEIE,EAAKL,EAFLD,EAAS,CAAC,EACVsB,EAAahC,OAAOD,KAAKe,GAG7B,IAAKH,EAAI,EAAGA,EAAIqB,EAAWnB,OAAQF,IACjCK,EAAMgB,EAAWrB,GACboB,EAASE,QAAQjB,IAAQ,IAC7BN,EAAOM,GAAOF,EAAOE,IAGvB,OAAON,CACT,CAEA,SAASwB,EAAyBpB,EAAQiB,GACxC,GAAc,MAAVjB,EAAgB,MAAO,CAAC,EAE5B,IAEIE,EAAKL,EAFLD,EAASoB,EAA8BhB,EAAQiB,GAInD,GAAI/B,OAAOC,sBAAuB,CAChC,IAAIkC,EAAmBnC,OAAOC,sBAAsBa,GAEpD,IAAKH,EAAI,EAAGA,EAAIwB,EAAiBtB,OAAQF,IACvCK,EAAMmB,EAAiBxB,GACnBoB,EAASE,QAAQjB,IAAQ,GACxBhB,OAAO0B,UAAUU,qBAAqBtD,KAAKgC,EAAQE,KACxDN,EAAOM,GAAOF,EAAOE,GAEzB,CAEA,OAAON,CACT,CAEA,SAAS2B,EAAmBC,GAC1B,OAAOC,EAAmBD,IAAQE,EAAiBF,IAAQG,EAA4BH,IAAQI,GACjG,CAEA,SAASH,EAAmBD,GAC1B,GAAIK,MAAMC,QAAQN,GAAM,OAAOO,EAAkBP,EACnD,CAEA,SAASE,EAAiBM,GACxB,GAAsB,qBAAXvB,QAAmD,MAAzBuB,EAAKvB,OAAOC,WAA2C,MAAtBsB,EAAK,cAAuB,OAAOH,MAAMI,KAAKD,EACtH,CAEA,SAASL,EAA4BO,EAAGC,GACtC,GAAKD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAOH,EAAkBG,EAAGC,GACvD,IAAIC,EAAIlD,OAAO0B,UAAUyB,SAASrE,KAAKkE,GAAGI,MAAM,GAAI,GAEpD,MADU,WAANF,GAAkBF,EAAEvB,cAAayB,EAAIF,EAAEvB,YAAY4B,MAC7C,QAANH,GAAqB,QAANA,EAAoBP,MAAMI,KAAKC,GACxC,cAANE,GAAqB,2CAA2CI,KAAKJ,GAAWL,EAAkBG,EAAGC,QAAzG,CALc,CAMhB,CAEA,SAASJ,EAAkBP,EAAKiB,IACnB,MAAPA,GAAeA,EAAMjB,EAAIzB,UAAQ0C,EAAMjB,EAAIzB,QAE/C,IAAK,IAAIF,EAAI,EAAG6C,EAAO,IAAIb,MAAMY,GAAM5C,EAAI4C,EAAK5C,IAAK6C,EAAK7C,GAAK2B,EAAI3B,GAEnE,OAAO6C,CACT,CAEA,SAASd,IACP,MAAM,IAAIe,UAAU,uIACtB,CAEA,IAAIC,EAAuC,qBAAfC,WAA6BA,WAA+B,qBAAXC,OAAyBA,OAA2B,qBAAXC,EAAAA,EAAyBA,EAAAA,EAAyB,qBAATC,KAAuBA,KAAO,CAAC,EAE1LC,EAAU,CAACpE,QAAS,CAAC,IAExB,SAAUqE,IACX,SAAUH,GAEP,IAAII,EAAe,SAASC,EAAS5C,EAAKlD,GACxC,IAAI+F,EAAU7C,IAAQ8C,EAAQ9C,IAAQ+C,EAAU/C,IAAQgD,EAAWhD,IAAQiD,EAAYjD,GACrF,OAAOA,EAGT,IAAIkD,EACA7D,EAAI,EACJ8D,EAAI,EAER,GAAGC,EAASpD,GAEV,IADAkD,EAAS,GACLC,EAAEnD,EAAIT,OAAQF,EAAE8D,EAAG9D,IACrB6D,EAAOjE,KAAK0D,EAAaC,EAAS5C,EAAIX,GAAIvC,SAK5C,IAAI,IAAI4C,KADRwD,EAAS,CAAC,EACKlD,EACVtB,OAAO0B,UAAUiD,eAAe7F,KAAKwC,EAAKN,KAC3CwD,EAAON,EAAQlD,EAAK5C,IAAY6F,EAAaC,EAAS5C,EAAIN,GAAM5C,IAItE,OAAOoG,CACT,EAIII,EAAgB,SAASC,EAAQzG,GACnCA,EAAUA,GAAW,CAAC,EACtB,IAAI0G,EAAY1G,EAAQ0G,WAAa,IACjCC,EAAQ3G,EAAQ2G,OAAS,YAE7B,OAAOF,EAAOE,MAAMA,GAAOC,KAAKF,EAClC,EAEIG,EAAW,SAASJ,GACtB,OAAIK,EAAaL,GACRA,GAETA,EAASA,EAAOM,QAAQ,iBAAiB,SAASC,EAAOC,GACvD,OAAOA,EAAMA,EAAIC,cAAgB,EACnC,IAEOT,EAAOU,OAAO,EAAG,GAAGC,cAAgBX,EAAOU,OAAO,GAC3D,EAEIE,EAAY,SAASZ,GACvB,IAAIa,EAAYT,EAASJ,GAEzB,OAAOa,EAAUH,OAAO,EAAG,GAAGD,cAAgBI,EAAUH,OAAO,EACjE,EAEII,EAAa,SAASd,EAAQzG,GAChC,OAAOwG,EAAcC,EAAQzG,GAASoH,aACxC,EAKIrC,EAAWnD,OAAO0B,UAAUyB,SAE5BoB,EAAc,SAASjD,GACzB,MAAuB,oBAATA,CAChB,EACI6C,EAAY,SAAS7C,GACvB,OAAOA,IAAQtB,OAAOsB,EACxB,EACIoD,EAAW,SAASpD,GACtB,MAA6B,kBAAtB6B,EAASrE,KAAKwC,EACvB,EACI8C,EAAU,SAAS9C,GACrB,MAA6B,iBAAtB6B,EAASrE,KAAKwC,EACvB,EACI+C,EAAY,SAAS/C,GACvB,MAA6B,mBAAtB6B,EAASrE,KAAKwC,EACvB,EACIgD,EAAa,SAAShD,GACxB,MAA6B,oBAAtB6B,EAASrE,KAAKwC,EACvB,EAGI4D,EAAe,SAAS5D,GAE1B,OADAA,GAAY,EACLA,IAAQA,CACjB,EAIIsE,EAAa,SAAS1B,EAAS9F,GACjC,IAAIyH,EAAWzH,GAAW,YAAaA,EAAUA,EAAQ0H,QAAU1H,EAEnE,MAAwB,oBAAdyH,EACD3B,EAGF,SAASW,EAAQzG,GACtB,OAAOyH,EAAShB,EAAQX,EAAS9F,EACnC,CACF,EAEI2H,EAAQ,CACVd,SAAUA,EACVU,WAAYA,EACZF,UAAWA,EACXO,YAAaL,EACbM,aAAc,SAASpG,EAAQzB,GAC7B,OAAO6F,EAAa2B,EAAWX,EAAU7G,GAAUyB,EACrD,EACAqG,eAAgB,SAASrG,EAAQzB,GAC/B,OAAO6F,EAAa2B,EAAWD,EAAYvH,GAAUyB,EAAQzB,EAC/D,EACA+H,cAAe,SAAStG,EAAQzB,GAC9B,OAAO6F,EAAa2B,EAAWH,EAAWrH,GAAUyB,EACtD,EACAuG,gBAAiB,WACf,OAAO3H,KAAKyH,eAAe1F,MAAM/B,KAAMmC,UACzC,GAGEoD,EAAOrE,QACTqE,EAAOrE,QAAUoG,EAEjBlC,EAAOkC,MAAQA,CAGlB,EAhIF,CAgIIrC,EACH,EAlIA,CAkIEK,GAEH,IAAIgC,EAAQhC,EAAQpE,QAEhB0G,EAAY,CAAC,QAAS,QAAS,SAEnC,SAASC,EAAcC,GACrB,OAAOA,EAAMxB,MAAM,KAAKyB,KAAI,SAAUC,GACpC,OAAOA,EAAEC,MACX,IAAGvG,QAAO,SAAUsG,GAClB,OAAOA,CACT,IAAGE,QAAO,SAAUC,EAAKC,GACvB,IAAIlG,EAAIkG,EAAK5E,QAAQ,KACjB6E,EAAOf,EAAMd,SAAS4B,EAAKzD,MAAM,EAAGzC,IACpCgB,EAAQkF,EAAKzD,MAAMzC,EAAI,GAAG+F,OAE9B,OADAE,EAAIE,GAAQnF,EACLiF,CACT,GAAG,CAAC,EACN,CAEA,SAASG,EAAcC,GACrB,OAAOA,EAAIjC,MAAM,OAAO4B,QAAO,SAAUC,EAAKK,GAE5C,OADAL,EAAIK,IAAK,EACFL,CACT,GAAG,CAAC,EACN,CAEA,SAASM,IACP,IAAK,IAAIC,EAAOvG,UAAUC,OAAQuG,EAAO,IAAIzE,MAAMwE,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/ED,EAAKC,GAAQzG,UAAUyG,GAGzB,OAAOD,EAAKT,QAAO,SAAUC,EAAKtF,GAOhC,OANIqB,MAAMC,QAAQtB,GAChBsF,EAAMA,EAAIlH,OAAO4B,GAEjBsF,EAAIrG,KAAKe,GAGJsF,CACT,GAAG,GACL,CAEA,SAAS1C,EAAQ3E,EAAG+H,GAClB,IAAIC,EAAQ3G,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC7E6G,EAAO7G,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC5E8G,GAAYJ,EAAQI,UAAY,IAAIlB,IAAItC,EAAQyD,KAAK,KAAMpI,IAC3DqI,EAAS5H,OAAOD,KAAKuH,EAAQO,YAAc,CAAC,GAAGlB,QAAO,SAAUC,EAAK5F,GACvE,IAAI8G,EAAMR,EAAQO,WAAW7G,GAE7B,OAAQA,GACN,IAAK,QACH4F,EAAI,SAAWG,EAAce,GAC7B,MAEF,IAAK,QACHlB,EAAI,SAAWN,EAAcwB,GAC7B,MAEF,QACElB,EAAImB,MAAM/G,GAAO8G,EAGrB,OAAOlB,CACT,GAAG,CACD,MAAS,CAAC,EACVL,MAAO,CAAC,EACRwB,MAAO,CAAC,IAGNC,EAAcP,EAAKQ,MACnBC,OAAyB,IAAhBF,EAAyB,CAAC,EAAIA,EACvCG,EAAcV,EAAKlB,MACnB6B,OAAyB,IAAhBD,EAAyB,CAAC,EAAIA,EACvCE,EAAcZ,EAAKM,MACnBO,OAAyB,IAAhBD,EAAyB,CAAC,EAAIA,EACvCE,EAAgBrG,EAAyBuF,EAAMpB,GAEnD,MAAuB,kBAAZiB,EACFA,EAEA/H,EAAE+H,EAAQkB,IAAK/H,EAAeA,EAAe,CAClDwH,MAAOf,EAAoBU,EAAOK,MAAOC,GACzC3B,MAAO9F,EAAeA,EAAe,CAAC,EAAGmH,EAAOrB,OAAQ6B,GACxDL,MAAOtH,EAAeA,EAAe,CAAC,EAAGmH,EAAOG,OAAQO,IACvDC,GAAgB,CAAC,EAAG,CACrBhB,MAAOA,IACLG,EAER,CAEA,IAAIe,GAAa,EAEjB,IACEA,GAAa3C,CACf,CAAE,MAAO4C,GAAI,CAEb,SAASC,IAEL,IAAIC,GADDH,GAAcI,SAAoC,oBAAlBA,QAAQC,QAG1CF,EAAWC,SAASC,MAAMtI,MAAMoI,EAAUhI,UAE/C,CAEA,SAASmI,EAAc/H,EAAKW,GAC1B,OAAOgB,MAAMC,QAAQjB,IAAUA,EAAMd,OAAS,IAAM8B,MAAMC,QAAQjB,IAAUA,EAAQV,EAAgB,CAAC,EAAGD,EAAKW,GAAS,CAAC,CACzH,CACA,SAASqH,EAAUzB,GACjB,IAAI0B,EAEAC,GAAWD,EAAW,CACxB,UAAW1B,EAAM4B,KACjB,gBAAiB5B,EAAM6B,UACvB,kBAAmB7B,EAAM8B,YACzB,WAAY9B,EAAM+B,MAClB,UAAW/B,EAAMgC,KACjB,UAAWhC,EAAMiC,KACjB,WAAYjC,EAAMkC,MAClB,QAASlC,EAAMmC,WACf,YAAanC,EAAMoC,OACnB,QAASpC,EAAMqC,SACf,aAAcrC,EAAMsC,QACpB,WAA0B,IAAftC,EAAMuC,KACjB,qBAAqC,eAAfvC,EAAMuC,MAAwC,SAAfvC,EAAMuC,KAC3D,mBAAmC,aAAfvC,EAAMuC,MAAsC,SAAfvC,EAAMuC,MACtD7I,EAAgBgI,EAAU,MAAMvJ,OAAO6H,EAAMwC,MAAsB,OAAfxC,EAAMwC,MAAgB9I,EAAgBgI,EAAU,aAAavJ,OAAO6H,EAAMyC,UAA8B,OAAnBzC,EAAMyC,UAAoB/I,EAAgBgI,EAAU,WAAWvJ,OAAO6H,EAAM0C,MAAsB,OAAf1C,EAAM0C,MAAgBhJ,EAAgBgI,EAAU,kBAAmB1B,EAAM2C,aAAcjJ,EAAgBgI,EAAU,YAAa1B,EAAM4C,QAASlJ,EAAgBgI,EAAU,WAAY1B,EAAM6C,OAAQnJ,EAAgBgI,EAAU,eAAgB1B,EAAM8C,UAAWpB,GAC3d,OAAOjJ,OAAOD,KAAKmJ,GAAS1C,KAAI,SAAUxF,GACxC,OAAOkI,EAAQlI,GAAOA,EAAM,IAC9B,IAAGb,QAAO,SAAUa,GAClB,OAAOA,CACT,GACF,CACA,SAASsJ,EAAeC,EAAIC,GAC1B,IAAI1C,EAA4B,KAArByC,GAAM,IAAI1J,OAAe,GAAK,CAAC0J,GAC1C,OAAOzC,EAAIpI,OAAO8K,GAAMxF,KAAK,IAC/B,CAEA,SAASyF,EAAkBC,GAGzB,OAAIA,GAA0B,WAAlBrJ,EAAQqJ,IAAsBA,EAAKC,QAAUD,EAAKE,UAAYF,EAAKA,KACtEA,EAGLG,EAAAA,GAAMH,KACDG,EAAAA,GAAMH,KAAKA,GAGP,OAATA,EACK,KAGa,WAAlBrJ,EAAQqJ,IAAsBA,EAAKC,QAAUD,EAAKE,SAC7CF,EAGL/H,MAAMC,QAAQ8H,IAAyB,IAAhBA,EAAK7J,OACvB,CACL8J,OAAQD,EAAK,GACbE,SAAUF,EAAK,IAIC,kBAATA,EACF,CACLC,OAAQ,MACRC,SAAUF,QAHd,CAMF,CAEA,IAAII,EAAkB,CACpBzH,KAAM,kBACN/E,YAAY,EACZiJ,MAAO,CACLgC,KAAM,CACJwB,KAAMC,QACNC,SAAS,GAEXtB,OAAQ,CACNoB,KAAMC,QACNC,SAAS,GAEXzB,KAAM,CACJuB,KAAMC,QACNC,SAAS,GAEXvB,WAAY,CACVqB,KAAMC,QACNC,SAAS,GAEXxB,MAAO,CACLsB,KAAMC,QACNC,SAAS,GAEXnB,KAAM,CACJiB,KAAM,CAACC,QAASE,QAChBD,SAAS,EACTE,UAAW,SAAmBxJ,GAC5B,MAAO,EAAC,GAAM,EAAO,aAAc,WAAY,QAAQM,QAAQN,IAAU,CAC3E,GAEF+I,KAAM,CACJK,KAAM,CAAC/K,OAAQ2C,MAAOuI,QACtBE,UAAU,GAEZC,KAAM,CACJN,KAAM,CAAC/K,OAAQ2C,MAAOuI,QACtBD,QAAS,MAEXrB,SAAU,CACRmB,KAAMC,QACNC,SAAS,GAEXhB,KAAM,CACJc,KAAMG,OACND,QAAS,KACTE,UAAW,SAAmBxJ,GAC5B,MAAO,CAAC,QAAS,QAAQM,QAAQN,IAAU,CAC7C,GAEF2H,MAAO,CACLyB,KAAMC,QACNC,SAAS,GAEXjB,SAAU,CACRe,KAAM,CAACG,OAAQI,QACfL,QAAS,KACTE,UAAW,SAAmBxJ,GAC5B,MAAO,CAAC,GAAI,IAAK,KAAKM,QAAQsJ,SAAS5J,EAAO,MAAQ,CACxD,GAEFuI,YAAa,CACXa,KAAMC,QACNC,SAAS,GAEXlB,KAAM,CACJgB,KAAMG,OACND,QAAS,KACTE,UAAW,SAAmBxJ,GAC5B,MAAO,CAAC,MAAO,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,OAAOM,QAAQN,IAAU,CAC/H,GAEFwH,KAAM,CACJ4B,KAAMC,QACNC,SAAS,GAEX7B,UAAW,CACT2B,KAAMC,QACNC,SAAS,GAEX5B,YAAa,CACX0B,KAAMC,QACNC,SAAS,GAEXO,UAAW,CACTT,KAAM,CAACG,OAAQlL,QACfiL,QAAS,MAEXQ,OAAQ,CACNV,KAAM,CAACC,QAASE,QAChBD,SAAS,GAEXS,MAAO,CACLX,KAAMG,OACND,QAAS,MAEXpB,QAAS,CACPkB,KAAMC,QACNC,SAAS,GAEXd,OAAQ,CACNY,KAAMC,QACNC,SAAS,GAEXb,MAAO,CACLW,KAAMC,QACNC,SAAS,GAEXZ,SAAU,CACRU,KAAMC,QACNC,SAAS,IAGbrN,OAAQ,SAAgB+N,EAAenN,GACrC,IAAI+I,EAAQ/I,EAAQ+I,MAChBqE,EAAWrE,EAAMmD,KACjBmB,EAAWtE,EAAM8D,KACjBI,EAASlE,EAAMkE,OACfC,EAAQnE,EAAMmE,MACdI,EAASrB,EAAkBmB,GAC3B1C,EAAUH,EAAc,UAAWC,EAAUzB,IAC7CiE,EAAYzC,EAAc,YAAwC,kBAApBxB,EAAMiE,UAAyBX,EAAAA,GAAMW,UAAUjE,EAAMiE,WAAajE,EAAMiE,WACtHH,EAAOtC,EAAc,OAAQ0B,EAAkBoB,IAC/CE,GAAerB,EAAAA,EAAAA,IAAKoB,EAAQrL,EAAeA,EAAeA,EAAeA,EAAe,CAAC,EAAGyI,GAAUsC,GAAYH,GAAO,CAAC,EAAG,CAC/HI,OAAQA,EACRC,MAAOA,KAGT,IAAKK,EACH,OAAOpD,EAAI,qCAAsCmD,EAAQT,GAG3D,IAAIW,EAAWD,EAAaC,SACxBC,EAAe/H,EAAQyD,KAAK,KAAMgE,GACtC,OAAOM,EAAaD,EAAS,GAAI,CAAC,EAAGxN,EAAQiJ,KAC/C,GAQUuD,QA2BAA,O;;ACnkBI,SAAAkB,EAAeC,EAAUC,GACrC,OAAOD,GAASC,CACpB,CAagB,SAAAC,EAAwC1K,EAAU0B,GAC9D,OAAO1B,EAAM0B,EACjB,CCvBO,ICDHiJ,EDCSC,OAAyB/E,EACzBgF,EAAmB,KAEnBC,EAAQ,GACRC,EAAW,WACXC,EAAS,SACTC,EAAY,YACZC,EAAY,YACZC,EAAY,YACZC,EAAc,cACdC,EAAS,SACTC,EAAe,YACfC,EAAS,SACTC,EAAO,OACPC,EAAO,OACPC,EAAY,WAKZC,EAAyBpB,EAAYlM,QAKrCuN,EAAyBlB,EAAkCiB,EAAUV,GAKrEY,EAAuBtB,EAAYhB,QAKnCuC,EAAyBpB,EAAkCmB,EAAQZ,GAKnEc,EAAwBxB,EAAYyB,MAKpCC,EAAuB1B,EAAYvJ,OAKnCkL,EAAyBxB,EAAkCuB,EAAQhB,GAMnEkB,EAAyBzB,EAAgCwB,EAAU,SEVhE,SAAAE,EAA4CC,EAASC,GACjE,IACI,MAAO,CACHC,EAAGF,EAAKxN,MAAM/B,KAAMwP,GAE3B,CAAC,MAAOvF,GACL,MAAO,CAAEA,EAACA,EACb,CACL,CCpCgB,SAAAyF,EAAqBC,EAAaC,GAC9C,IAAIC,EAASP,EAAKK,GAElB,OAAOE,EAAO5F,EAAI2F,EAAWC,EAAOJ,CACxC,CFZM,SAAUK,EAAaC,GACzB,OAAO,SAAU7M,GACb,cAAcA,IAAU6M,CAC5B,CACJ,CAWM,SAAUC,EAAgBC,GAC5B,IAAMF,EAAU,WAAaE,EAAU,IACvC,OAAO,SAAU/M,GACb,SAAUA,GAASgN,EAAYhN,KAAW6M,EAC9C,CACJ,CA0BM,SAAUG,EAAYhN,GACxB,OAAO4L,EAASF,GAAWvO,KAAK6C,EACpC,CAgEM,SAAUiN,EAAYjN,GACxB,cAAcA,IAAUmL,GAAanL,IAAUmL,CACnD,CAyBM,SAAU+B,EAAkBC,GAC9B,OAAQC,EAAUD,EACtB,CA2BM,SAAUE,EAAkBrN,GAC9B,OAAOA,IAAU6K,GAAcoC,EAAYjN,EAC/C,CA4BM,SAAUsN,EAAwBtN,GACpC,OAAOA,IAAU6K,IAAeuC,EAAUpN,EAC9C,CA2BM,SAAUoN,EAAUD,GACtB,QAASA,GAAOA,IAAQvC,CAC5B,CAyGM,SAAU2C,EAAgBV,GAG5B,OAFClC,IAAoBA,EAAkB,CAAE,SAAU,SAAU,UAAWQ,EAAW,SAAU,aAEnF0B,IAAY7B,IAAgD,IAAtCL,EAAgBrK,QAAQuM,GAC5D,CAoBa,IAAAW,EAA0DZ,EAAkB,UAwB5Ea,EAA8Db,EAAoB7B,GAWzF,SAAU2C,EAAY1N,GACxB,SAAKA,GAASqN,EAAkBrN,QAIvBA,UAAgBA,IAAUgL,EACvC,CAsBO,IAAM/J,EAAiEyJ,EAAgCuB,EAAe,WAkBhH0B,EAAsDb,EAAmB,QAQzEc,EAA0DhB,EAAkB,UAQ5EiB,EAA4DjB,EAAmB,WAiD/EkB,EAAwDhB,EAAoB,SASnF,SAAUiB,EAAiB/N,GAC7B,SAAUA,GAASA,EAAMgO,MAAQP,EAAWzN,EAAMgO,MACtD,CA0CM,SAAUC,EAASjO,GAIrB,SAAUA,GAASwM,GAAQ,WAAM,QAAExM,GAAU,EAAIA,EAAO,IAAGA,GAE/D,CGxhBO,IAAMkO,EAAkHxD,EAAiDiB,EAAiB,4BCPjL,SAAAwC,EAA2BxO,EAAQwF,GAC/C,QAASxF,GAAOiM,EAAS5I,eAAeyI,GAAM9L,EAAKwF,EACvD,C,ICGaiJ,EAA2E7D,EAA4BG,EAASiB,EAAiB,UAAY0C,GAyC1I,SAAAA,EAAuB1O,EAAQwF,GAC3C,OAAOgJ,EAAkBxO,EAAKwF,MAAW+I,EAA4BvO,EAAKwF,EAC9E,C,SCxDgBmJ,GAAiBC,EAAcC,EAA+DC,GAC1G,GAAIF,GAAab,EAASa,GACtB,IAAK,IAAMpJ,KAAQoJ,EACf,GAAIH,EAAUG,EAAWpJ,KACkD,IAAnEqJ,EAAW/C,GAAMgD,GAAWF,EAAWpJ,EAAMoJ,EAAUpJ,IACvD,KAKpB,CCiDA,IAAMuJ,GAAgF,CAClF3H,EAAG,aACHzB,EAAG,eACHiH,EAAG,QACHoC,EAAG,WACHC,EAAG,MACH9J,EAAG,OAWP,SAAS+J,GAAY7O,GACjB,IAAImF,EAA2B,CAAC,EAIhC,GAHAA,EAAKuJ,GAAQ,OAAQ,EACrBvJ,EAAKuJ,GAAQ,OAAQ,EAEjB1O,EAAM8C,EAAG,CAETqC,EAAK2J,IAAM,WAAM,OAAA9O,EAAM8C,EAAEyJ,CAAR,EAGjB,IAAIwC,EAAOb,EAA4BlO,EAAM8C,EAAG,KAC5CiM,GAAQA,EAAKC,MACb7J,EAAK6J,IAAM,SAACC,GACRjP,EAAM8C,EAAEyJ,EAAI0C,CAChB,EAEP,CAMD,OAJAX,GAActO,GAAO,SAACX,EAAoCW,GACtDmF,EAAKuJ,GAAQrP,IAAQ6N,EAAkBlN,GAASmF,EAAKuJ,GAAQrP,IAAQW,CACzE,IAEOmF,CACX,CAsBO,IAAM+J,GAAqHxE,EAAuCiB,EAAiB,kBAa7KwD,GAAuGzE,EAAyCiB,EAAiB,oB,SAqE9JyD,GAAarQ,EAAWM,EAAcgQ,GAClD,OAAOH,GAAcnQ,EAAQM,EAAKwP,GAAYQ,GAClD,CC/MM,SAAUC,GAAmBC,EAAaC,EAAqBC,EAAuBC,EAAiCxP,GACzH,IAAIyP,EAAc,CAAC,EAMnB,OALArB,GAAciB,GAAQ,SAAClQ,EAAKW,GACxB4P,GAAgBD,EAAQtQ,EAAKmQ,EAAUxP,EAAQX,EAAKa,GACpD0P,GAAgBD,EAAQ3P,EAAOyP,EAAYzP,EAAQX,EAAKa,EAC5D,IAEOwP,EAAaA,EAAWC,GAAUA,CAC7C,CAWM,SAAUC,GAAgBD,EAAatQ,EAAUW,EAAYE,GAC/DgP,GAAcS,EAAQtQ,EAAK,CACvBW,MAAOA,EACPrB,YAAY,EACZuB,WAAYA,GAEpB,CC5Ba,IAAA2P,GAAmDtF,EAAYsB,GCnBtEiE,GAAa,iBAyDH,SAAAC,GAAQ7R,EAAa8R,GACjC,IAAIC,EAAoBnF,EAClBoF,EAAUtE,EAASF,GAAWD,GAAMvN,GACtCgS,IAAYJ,KACZ5R,EAAS,CAAEiS,MAAON,GAAS3R,EAAOiS,OAAQC,QAASP,GAAS3R,EAAOkS,SAAU1O,KAAMmO,GAAS3R,EAAOwD,QAGvG,IACIuO,EAAoBI,KAAKC,UAAUpS,EAAQ2M,EAAYmF,EAA0C,kBAAvBA,EAAmCA,EAAmB,EAAKpF,GACrIqF,GAAqBA,EAAoBA,EAAkBzM,QAAQ,sBAAuB,QAAUqH,IAAegF,GAAS3R,EAC/H,CAAC,MAAM6I,GAEJkJ,EAAoB,MAAQF,GAAQhJ,EAAGiJ,EAC1C,CAED,OAAOE,EAAU,KAAOD,CAC5B,CCvEM,SAAUM,GAAWH,GACvB,MAAM,IAAII,MAAMJ,EACpB,CAOM,SAAUK,GAAeL,GAC3B,MAAM,IAAItO,UAAUsO,EACxB,CCVA,IAAMM,GAA6BhG,EAA+BiB,EAAU,UAE5E,SAASgF,GAAc3Q,GACnB,OAAQA,CACZ,CAGA,SAAS4Q,GAAU5Q,GACf,OAAOA,EAAMkL,IAAcL,CAC/B,CAuCO,IAAMgG,GAA0BnG,EAA+BiB,EAAU,UAoCnEmF,GAAkDpG,EAA6BiB,EAAU,QAShG,SAAUoF,GAAiB/Q,GAS7B,OARI0Q,IACApC,GAActO,GAAO,SAACX,EAAKW,IACnBiB,EAAQjB,IAAU0N,EAAS1N,KAC3B+Q,GAAc/Q,EAEtB,IAGGgR,GAAUhR,EACrB,CAuBO,IAAMgR,GAA+CzG,EAAYmG,GAAYC,IAmBvEM,GAAwD1G,EAA2BG,EAAuCiB,EAAU,kBAAoBiF,ICnE/J,SAAUM,GAAc3B,GAC1B,OAAOD,GAAmBC,EAA0C,IAAAyB,GACxE,CAqCM,SAAUG,GAAoB5B,GAChC,OAAOD,GAAmBC,EAAwC,IAAAyB,GACtE,CA4EM,SAAUI,GAAsB7B,GAClC,IAAI8B,EAAgB,CAAC,EAMrB,OALA/C,GAAciB,GAAQ,SAAClQ,EAAKW,GACxB4P,GAAgByB,EAAUhS,EAAKW,EAAM,IACrC4P,GAAgByB,EAAUrR,EAAM,GAAIA,EAAM,GAC9C,IAEOgR,GAAUK,EACrB,CA2EM,SAAUC,GAAoB/B,GAChC,OAAO6B,GAAsB7B,EACjC,CC/IO,IC/GHgC,GD+GSC,GAAmCL,GAA0C,CACtFM,cAA6C,EAC7CC,YAAyC,EACzCC,mBAAuD,EACvD9R,SAAmC,EACnC4D,MAA6B,EAC7BmO,SAAmC,EACnCpO,QAAiC,EACjCqO,OAA+B,EAC/BC,QAAiC,EACjC1O,MAA6B,EAC7B2O,YAAyC,GACzCC,YAAyC,GACzCC,YAAyC,KCzJvCC,GAAoB,mB,SAsCVC,KACZ,IAAIxF,EAkBJ,cAhBW3K,aAAemJ,IACtBwB,EAAS3K,YAGR2K,UAAiBxK,OAASgJ,IAC3BwB,EAASxK,MAGRwK,UAAiB1K,SAAWkJ,IAC7BwB,EAAS1K,QAGR0K,UAAiBzK,EAAAA,IAAWiJ,IAC7BwB,EAASzK,EAAAA,GAGNyK,CACX,C,SAUgByF,KACZ,IAAKb,GAAY,CACb,IAAIc,EAAMjG,EAAK+F,IAAiB5F,GAAK,CAAC,EACtCgF,GAAac,EAAIH,IAAqBG,EAAIH,KAAsB,CAAC,CACpE,CAED,OAAOX,EACX,CCrDO,IAAMe,GAAyGC,G,SAYtGA,GAA4DC,EAAmBC,EAAcC,GACzG,IAAIC,EAAQF,EAAWA,EAASD,GAAY3H,EAE5C,OAAO,SAAS4D,GACZ,IAAImE,GAAWnE,EAAUA,EAAQ+D,GAAY3H,IAAe8H,EAC5D,GAAIC,GAAWF,EAAU,CACrB,IAAIG,EAAU5T,UACd,OAAS2T,GAAWF,GAAuB7T,MAAM4P,EAASmE,EAAUzG,EAASV,GAAMoH,EAAS,GAAKA,EACpG,CAEDpC,GAAe,IAAOZ,GAAS2C,GAAY,qBAAwBzC,GAAQtB,GAC/E,CACJ,CAaM,SAAUqE,GAAeC,GAC3B,OAAO,SAAUtE,GACb,OAAOA,EAAQsE,EACnB,CACJ,CC5CO,IAsBMC,GAAyDtI,EAA0BqB,EAAS,OCZ5FkH,GAA2FX,GAAgB,QAASxG,GCkBpHoH,GAA+FZ,GAAgB,YAAaxG,GAa5HqH,GAAqFZ,GAAwB,SAAUzG,EAAUsH,I,SAe9HA,GAAcpT,EAAeqT,EAAenU,GAKxD,OAJImO,EAAkBrN,IAClByQ,GAAe,WAAaV,GAAQ/P,IAGpCd,EAAS,EACF4L,GAIXuI,EAAQA,GAAS,EAEbA,EAAQ,IACRA,EAAQL,GAAQK,EAAQrT,EAAMuL,GAAS,IAGvC0B,EAAY/N,GACL+T,GAASjT,EAAOqT,GAGpBJ,GAASjT,EAAOqT,EAAOA,EAAQnU,GAC1C,CA2BgB,SAAAoU,GAAQtT,EAAeuT,GACnC,OAAOL,GAAalT,EAAO,EAAGuT,EAClC,CCvHA,IACIC,GAYAC,GCdOC,GDCLC,GAAqB,QAI3B,SAASC,KACL,IAAKJ,GAAc,CACf,IAAIK,EAASzB,KACboB,GAAeK,EAAOC,OAASD,EAAOC,QAAU,CAAEC,EAAG,CAAC,EAAGjP,EAAE,CAAC,EAC/D,CAED,OAAO0O,EACX,CAgBM,SAAUQ,GAAcC,GAC1B,IAAIC,EAAoB,CACpBD,YAAapE,GAASoE,GACtBzS,SAAU,WAAM,OAAA6J,EAAS,IAAM4I,EAAc,GAAG,GAMpD,OAFAC,EAAU5I,IAAgB,EAEnB4I,CACX,CAUM,SAAUC,GAAc9U,GAC1B,IAAI+U,EAAWR,KACf,IAAKxF,EAAUgG,EAASL,EAAG1U,GAAM,CAC7B,IAAIgV,EAAYL,GAAc3U,GAC1BiV,EAAQxD,GAAQsD,EAAStP,GAAG5F,OAChCmV,EAAUV,IAAsB,WAAM,OAAAW,EAAQ,IAAMD,EAAU3I,IAAY,EAC1E0I,EAASL,EAAE1U,GAAOgV,EAClBD,EAAStP,EAAEuP,EAAUV,OAAyB9D,GAASxQ,EAC1D,CAED,OAAO+U,EAASL,EAAE1U,EACtB,CAyCM,SAAUkV,GAAmB7S,GAE/B,IAAIiL,GADH8G,KAA0BA,GAAwB,CAAC,GAEpD,IAAIe,EAA8BhD,GAAoB9P,GAKtD,OAJI8S,IACA7H,EAAS8G,GAAsBe,GAAaf,GAAsBe,IAAcR,GAAc3I,EAAS,IAAMmJ,IAG1G7H,CACX,C,SC3GgB8H,KACZf,GAAuBtB,IAC3B,CAgDM,SAAUsC,GAAWjI,GACvB,IAAIkI,EAAY,CAAC,EAqBjB,OApBCjB,IAAwBe,KACzBE,EAAUC,EAAIlB,GAAqBmB,IAEnC3F,GAAcyF,EAAW,IAAK,CAC1B1U,cAAc,EACd6O,IAAK,WACD,IAAInC,EAASF,IAUb,OATKiH,GAAqBmB,KAEtB3F,GAAcyF,EAAW,IAAK,CAC1B3U,MAAO2M,IAIfgI,EAAUC,EAAIlB,GAAqBmB,IAE5BlI,C,IAIRgI,CACX,CClCM,SAAUG,GAAqB9U,GACjC,OAAOkP,GAAc,CACjB6F,OAAQ,WAAM,OAAA/U,CAAK,GACpB,IAAK,CAAEA,MAAKA,GACnB,CC/CA,IAKIgV,GALEC,GAAS,SAeC,SAAAC,GAAoBC,EAAkCtC,GAClE,IAAIuC,EACJ,OAAO,WAMH,OALC1B,IAAwBe,KACpBW,IAAe1B,GAAqBmB,MACrCO,EAAcN,GAAkB1I,EAAK+I,EAAOtC,GAAStG,IAGlD6I,EAAY7I,CACvB,CACJ,CAmDM,SAAU8I,GAAUC,GAMtB,OALC5B,IAAwBe,KACpBO,KAA+B,IAAdM,IAAuB5B,GAAqBmB,MAC9DG,GAAgBF,GAAkB1I,EAAK+F,IAAiB5F,GAAK1B,IAG1DmK,GAAczI,CACzB,CAwBgB,SAAAgJ,GAAW7T,EAAgC4T,GACvD,IAAIjD,EAOJ,GAHIA,EAHC2C,KAA+B,IAAdM,EAGZN,GAAczI,EAFd8I,GAAUC,GAKhBjD,GAAOA,EAAI3Q,GACX,OAAO2Q,EAAI3Q,GAIf,GAAIA,IAASuT,GAET,IACI,OAAOhT,MACV,CAAC,MAAO8E,GAER,CAGL,OAAO8D,CACX,C,SAQgB2K,KACZ,QAAwBC,IAC5B,CAOO,IAAMA,GAA4BP,GAA2BK,GAAS,CAAC,a,SAQ9DG,KACZ,QAAwBC,IAC5B,CAOO,IAAMA,GAA0BT,GAAyBK,GAAS,CAACN,K,SAQ1DW,KACZ,QAAwBC,IAC5B,CAOO,IAAMA,GAA6BX,GAA4BK,GAAS,CAAC,cAiBzE,ICnMHO,GACAC,GDyMSC,GAAuBd,IAA0B,WAC1D,QAAwB9I,GAAK,WAAM,OAACjI,UAAYA,QAAQ8R,UAAU,CAAC,GAAGC,IAAnC,IAA2C,CAClF,ICvMA,SAASC,KAGL,OAFAL,GAAwBhB,GAAkB1I,EAAKmJ,GAAiB,CAAClK,IAASkB,GAEnEuJ,EACX,CAEA,SAASM,GAAiB/W,GACtB,IAAIyU,GAAYJ,GAAqBmB,IAAgB,EAAViB,KAAgBK,KAE3D,OAAQrC,EAAOvH,EAAIuH,EAAOvH,EAAElN,GAAOuL,CACvC,CAQa,IC1BTyL,G,SDkCYC,KACZ,QAAwBC,IAC5B,C,SAQgBA,KAIZ,OAHC7C,IAAwBe,OAGff,GAAqBmB,IAAgB,EAAViB,KAAgBK,MAAe5J,CACxE,CAiBgB,SAAAiK,GAA2B9U,EAAiC+U,GACxE,IAAIjC,EAAYhD,GAAoB9P,IACnCgS,IAAwBe,KAGzB,IAAIhW,GAASiV,GAAqBmB,IAAgB,EAAViB,KAAgBK,KAExD,OAAO1X,EAAI8N,EAAI9N,EAAI8N,EAAEiI,GAAa9S,GAAU+U,EAAoC7L,EAA3B2J,GAAmB7S,EAC5E,CAWgB,SAAAgV,GAAUzC,EAA+BwC,IACpD/C,IAAwBe,KAGzB,IAAIhW,GAASiV,GAAqBmB,IAAgB,EAAViB,KAAgBK,KAExD,OAAO1X,EAAI8N,EAAK9N,EAAI8N,EAAU0H,GAAiBwC,EAAsC5L,EAA7BmJ,GAAcC,EAC1E,CAUM,SAAU0C,GAAUtX,GAMtB,OALCqU,IAAwBe,KAGzBsB,IAAgBrC,GAAqBmB,IAAmB,EAAbkB,KAAiCjB,GAAkB1I,EAAKgK,GAAkC,CAAC,QAAQ7J,IAEtIwJ,GAAWxJ,GAAK4H,IAAe9U,EAC3C,CE1FM,SAAUuX,GAAoB5W,GAChC,QAASA,GAASyN,EAAWzN,EAAM6W,KACvC,CAoBM,SAAUC,GAAoB9W,GAChC,OAAQsN,EAAwBtN,IAAUyN,EAAWzN,EAAMwW,GAAyC,IACxG,C,SDAgBO,GAAa5V,EAAiCqN,EAA6EC,GACvI,GAAItN,IACKyV,GAAWzV,MACXkV,KAAgBA,GAAcvB,GAAkB0B,GAAe,KAChErV,EAAOA,EAAKkV,GAAY9J,GAAKpL,EAAKkV,GAAY9J,KAAO1B,GAGrD+L,GAAWzV,IAAO,CAClB,IAAI6V,EAAkBpM,EAClBqM,EAAgCrM,EACpC,IACI,IAAI2I,EAAQ,EACZ,QAAQ0D,EAAa9V,EAAK0V,QAAQK,KAAM,CACpC,IAA0E,IAAtE1I,EAAW/C,GAAMgD,GAAWtN,EAAM8V,EAAWjX,MAAOuT,EAAOpS,GAC3D,MAGJoS,GACH,CACJ,CAAC,MAAO4D,GACLH,EAAM,CAAEjQ,EAAGoQ,GACPhW,EAAKiW,QACLH,EAAapM,EACb1J,EAAKiW,MAAMJ,GAElB,SACG,IACQC,IAAeA,EAAWC,MAC1B/V,EAAKkW,QAAUlW,EAAKkW,OAAOJ,EAElC,SACG,GAAID,EAEA,MAAMA,EAAIjQ,CAEjB,CACJ,CACJ,CAET,C,SE5BgBuQ,GAA4CC,EAAO9I,EAAYnC,GAC3E,OAAOiL,EAAG1Y,MAAM4P,EAASnC,EAC7B,CCpBgB,SAAAkL,GAAazY,EAAa0Y,GActC,OAbKxK,EAAYwK,IAAS1Y,IAClBkC,EAAQwW,GAERH,GAAQvY,EAAOH,KAAMG,EAAQ0Y,GACtBb,GAAca,IAASX,GAAcW,GAC5CV,GAAUU,GAAM,SAACC,GACb3Y,EAAOH,KAAK8Y,EAChB,IAEA3Y,EAAOH,KAAK6Y,IAIb1Y,CACX,C,SCbgB4Y,GAAoBC,EAAwBpJ,EAAoEC,GAC5H,GAAImJ,EAEA,IADA,IAAMhW,EAAMgW,EAASrM,KAAY,EACxBsM,EAAM,EAAGA,EAAMjW,EAAKiW,IACzB,GAAIA,KAAOD,IACsE,IAAzEpJ,EAAW/C,GAAMgD,GAAWmJ,EAAUA,EAASC,GAAMA,EAAKD,GAC1D,KAKpB,CCeO,IAAME,GAAwGxF,GAAgB,UAAWpG,GChBnI6L,GAAqHzF,GAAgB,MAAOpG,G,SCTzI8L,GAAYJ,EAAwBvE,EAAgB4E,GAChE,QAASL,EAAWA,EAAS,SAAW/M,IAAesB,GAAUtN,MAAM+Y,EAAUzL,EAASV,GAAMxM,UAAW,GAC/G,CC6BO,ICbMiZ,GAAgI5F,GAAgB,SAAUpG,G,IC3DnKiM,GCQSC,GAA8C7N,EAA2BG,EAA+BiB,EAAiB,UAAY0M,IAW5I,SAAUA,GAAc1Y,GAC1B,IAAKA,EACD,MAAO,CAAC,EAGZ,IAAIyJ,SAAczJ,EAKlB,SAAS2Y,IAAQ,CAGjB,OAPIlP,IAAS4B,GAAU5B,IAAS2B,GAC5B0F,GAAe,4CAA8CV,GAAQpQ,IAIzE2Y,EAASrN,GAAatL,EAEf,IAAK2Y,CAChB,CDvBgB,SAAAC,GAAkB5Y,EAAU6Y,GACxC,IAAIjB,EAAK5L,EAAS,mBAEd,SAAU8M,EAAQ7D,G,OACbuD,KAAkBA,GAAgBrD,IAAkB4D,EAAA,GAAEA,EAACxN,GAAY,GAAEwN,aAAc1X,SACpFmX,GAAc5L,EAAIkM,EAAEvN,GAAa0J,EAAItG,GAAcsG,GAAG,SAACvV,EAAUW,GAAe,OAAAyY,EAAEpZ,GAAOW,CAAT,GACpF,EAEJ,OAAOuX,EAAG5X,EAAK6Y,EACnB,CECA,SAASG,GAAsBjX,EAAc+W,EAAQ7D,GAGjD,SAASgE,IACL9b,KAAKsO,GAAeqN,EACpBrM,EAAKgD,GAAW,CAACtS,KAAM0O,EAAM,CAAEe,EAAG7K,EAAM4D,GAAG,EAAMyB,GAAG,I,CAKxD,OATAqF,EAAKgD,GAAW,CAAEqJ,EAAGjN,EAAM,CAAEe,EAAG7K,EAAM4D,GAAG,EAAMyB,GAAG,KAClD0R,EAAIF,GAAkBE,EAAG7D,GAMzB6D,EAAExN,GAAa2J,IAAM/J,EAAauN,GAAUxD,IAAOgE,EAAW3N,GAAa2J,EAAE3J,GAAY,IAAK2N,GAEvFH,CACX,CAEA,SAAUI,GAASC,EAAgBpX,GAC/BA,IAASoX,EAAUtN,GAAQ9J,EAE/B,C,SAwEgBqX,GACZrX,EACAsX,EACAC,GAEA,IAAIC,EAAeD,GAAazI,MAC5B2I,EAAUD,EAAajO,GAAWO,GAClC4N,EAAY5I,MAAM6I,kBACtB,OAAOV,GAAsBjX,GAAM,WAC/B,IAAI4X,EAAQxc,KACR+V,EAAU5T,UACd,IACImN,EAAKyM,GAAU,CAACK,EAAcxX,IAC9B,IAAI6X,EAAQjC,GAAQ4B,EAAcI,EAAOnN,EAASV,GAAMoH,KAAayG,EACrE,GAAIC,IAAUD,EAAO,CAEjB,IAAIE,EAAWvI,GAAkBqI,GAC7BE,IAAavI,GAAkBsI,IAC/BhB,GAAkBgB,EAAOC,EAEhC,CAQD,OALAJ,GAAaA,EAAUG,EAAOD,EAAMlO,IAGpC4N,GAAeA,EAAYO,EAAO1G,GAE3B0G,CACV,SACGnN,EAAKyM,GAAU,CAACK,EAAcC,GACjC,C,GACFD,EACP,C,SChIgBO,KACZ,OAAQC,KAAKC,KAAOC,KACxB,C,SAoBgBA,KACZ,OAAO,IAAIF,MAAOG,SACtB,CCnCA,SAASC,GAAcC,GACnB,OAAO,SAAiB/Z,GASpB,OARIqN,EAAkBrN,IAClByQ,GAAe,mBAAqBV,GAAQ/P,GAAS,KAGrDA,GAASA,EAAMwD,UACfxD,EAAQA,EAAMwD,QAAQuW,EAAKjP,IAGxB9K,CACX,CACJ,CAea,IAAAga,GAA4BF,GAAc,oBChB1CG,GAAmD1H,GAAwB,OAAQzG,EAAUkO,ICT1G,ICFIE,GACAC,GACAC,GAqCE,SAAUC,GAAcra,GAC1B,IAAKA,UAAgBA,IAAUgL,EAC3B,OAAO,EAGNoP,KAEDA,IAAa1E,MAAcC,MAG/B,IAAIhJ,GAAS,EACb,GAAI3M,IAAUoa,GAAY,CAEjBD,KAGDD,GAAcI,SAASrP,GAAWS,GAClCyO,GAAkBD,GAAYzO,GAAME,IAGxC,IACI,IAAI6M,EAAQvH,GAAkBjR,GAG9B2M,GAAU6L,EACL7L,IACGwB,EAAkBqK,EAAOpN,KACzBoN,EAAQA,EAAMpN,IAGlBuB,KAAY6L,UAAgBA,IAAUzN,GAAYmP,GAAYzO,GAAM+M,KAAW2B,IAEtF,CAAC,MAAOI,GAER,CACJ,CAED,OAAO5N,CACX,CC9CA,SAAS6N,GAAwBC,GAK7B,OAHAA,EAAQza,OAAS0a,GAAwBD,IAGlC,CACX,CAOA,IAAME,GAAgD,CAClDC,GACAF,GACAG,GACAC,IAcJ,SAASC,GAAeC,EAAgC7b,EAAa8b,EAA0CxO,GAC3G,IAAIyO,EAkBJ,OAjBAvD,GAAWqD,GAAU,SAACG,GAClB,GAAIA,EAAMpH,IAAM5U,EAEZ,OADA+b,EAAWC,GACH,CAEhB,IAEKD,IAGDA,EAAW,CAAEnH,EAAG5U,EAAQoN,EAAGpN,GAC3B6b,EAASpc,KAAKsc,GAGdzO,EAAGyO,IAGAA,EAAS3O,CACpB,CAYA,SAAS6O,GAAaJ,EAAgChb,EAAUqb,EAAuBhc,GACnF,IAAIic,EAAcD,EAAIE,QAClBN,EAAUI,EAAIG,KAAQnc,EAAMgc,EAAIG,KAAKzd,OAAOsB,GAAOgc,EAAIG,KAAQ,GAE/DC,EAA2B,CAC3BF,QAASF,EAAIE,QACbG,IAAKL,EAAIK,IACTF,KAAMP,GAGJpO,SAAiB7M,EACnB2b,GAAU,EACVC,EAAS5b,IAAU6K,EAClB+Q,IACG5b,GAAS6M,IAAY7B,EACrB2Q,EAAUtB,GAAcra,GAExB4b,EAASrO,EAAgBV,IAIjC,IAAI4N,EAAsC,CACtCrR,KAAMyD,EACN+O,OAAQA,EACRD,QAASA,EACT3b,MAAOA,EACP2M,OAAQ3M,EACRwb,KAAMP,EACNY,OAAQR,EAAIK,IACZI,KAAM,SAAI3c,EAAW4c,GACjB,OAAOX,GAAUJ,EAAU7b,EAAQ4c,EAASN,EAASJ,EAAKU,E,EAE9DC,OAAQ,SAAIjd,EAAWI,GACnB,OAAO8c,GAAWjB,EAAUjc,EAAQI,EAAQsc,E,GAIpD,OAAKhB,EAAQmB,OAsBTN,GAAeA,EAAY7P,GAAM4P,EAAKZ,GAC/BA,EAAQ9N,OAGZ3M,EAzBI+a,GAAeC,EAAUhb,EAAOib,GAAS,SAACiB,GAG7C9M,GAAUqL,EAAS,SAAU,CACzB7L,EAAG,WACC,OAAOsN,EAAS3P,C,EAEpBzH,EAAG,SAAUmK,GACTiN,EAAS3P,EAAI0C,C,IAIrB,IAAI4I,EAAM,EACN0D,EAAUD,EACd,QAASC,IAAY1D,EAAM8C,GAAwBzb,OAASyb,GAAwB9C,KAAS2C,KAA0B/O,GAAM4P,EAAKZ,GAC9Hc,EAAU1Q,CAElB,GASR,CAYA,SAASoR,GAAcjB,EAAgCjc,EAAWI,EAAWkc,GACzE,IAAKhO,EAAkBlO,GAEnB,IAAK,IAAME,KAAOF,EAEdJ,EAAOM,GAAO+b,GAAUJ,EAAU7b,EAAOE,GAAMgc,EAAKhc,GAI5D,OAAON,CACX,C,SAiDgBod,GAAgBpd,EAAWI,EAAaoc,GACpD,IAAIF,EAAwB,CACxBE,QAASA,EACTG,IAAKvc,EACLqc,KAAM,IAGV,OAAOS,GAAW,GAAIld,EAAQI,EAAQkc,EAC1C,CAsIgB,SAAAe,GAAejd,EAAWoc,GACtC,IAAIF,EAAwB,CACxBE,QAASA,EACTG,IAAKvc,GAGT,OAAOic,GAAU,GAAIjc,EAAQkc,EACjC,CASM,SAAUT,GAAqBH,GACjC,IAAIza,EAAQya,EAAQza,MACpB,GAAIiB,EAAQjB,GAAQ,CAEhB,IAAIjB,EAAgB0b,EAAQ9N,OAAS,GAKrC,OAJA5N,EAAOG,OAASc,EAAMd,OAGtBub,EAAQuB,OAAOjd,EAAQiB,IAChB,CACV,CAED,OAAO,CACX,CASM,SAAU8a,GAAoBL,GAChC,IAAIza,EAAQya,EAAQza,MACpB,QAAI2N,EAAO3N,KACPya,EAAQ9N,OAAS,IAAI+M,KAAK1Z,EAAM6Z,YACzB,EAIf,CAUM,SAAUgB,GAAwBJ,GACpC,OAAIA,EAAQrR,OAAS2B,CAKzB,CASM,SAAU2P,GAAwBD,GACpC,IAAIza,EAAQya,EAAQza,MACpB,GAAIA,GAASya,EAAQkB,QAAS,CAE1B,IAAI5c,EAAS0b,EAAQ9N,OAAS,CAAC,EAE/B,OADA8N,EAAQuB,OAAOjd,EAAQiB,IAChB,CACV,CAED,OAAO,CACX,CClcA,SAASqc,GAAatd,EAAW8T,GAK7B,OAJA8E,GAAW9E,GAAS,SAACyJ,GACjBH,GAAapd,EAAQud,EACzB,IAEOvd,CACX,CAoBgB,SAAAwd,GAAsCxd,EAAWyd,EAAWC,EAAWC,EAAWC,EAAWC,EAAWC,GACpH,OAAOR,GAAUD,GAAYrd,IAAW,CAAC,EAAGoN,EAASV,GAAMxM,WAC/D,CCKa,IAAA6d,GAA2EhK,GAAwBvH,G,SCQhGwR,GAAgB/c,EAAegd,EAAyEC,GACpH,IAAIC,EAAwDF,EAAWA,EAAiBxG,GAAe,IAA2B5L,EAElI,OAAOsS,EAAUA,EAAQld,EAAOid,GAAS,CAAEjd,EAC/C,CC4B2MsW,KClEpM,IAAM6G,GAA+F5K,GAAwB,WAAYzG,EAAUsR,I,SAW1IA,GAAgBpd,EAAeqd,EAAsBne,GAC5DsO,EAASxN,IACVyQ,GAAe,IAAMV,GAAQ/P,GAAS,qBAG1C,IAAIsd,EAAc9P,EAAS6P,GAAgBA,EAAexN,GAASwN,GAC/DpF,GAAQhL,EAAY/N,IAAWA,EAASc,EAAMuL,GAAWrM,EAASc,EAAMuL,GAE5E,OAAO2H,GAAalT,EAAOiY,EAAMqF,EAAY/R,GAAS0M,KAASqF,CACnE,CCAO,IAAMC,GAA+FjL,GAAgB,UAAWxG,GChCvI,IAAM0R,GAAM,MACNC,GAAQ,QACRC,GAAU,SACVC,GAAU,U,SAsJAC,GAAuBC,EAAqBC,EAA8BC,GACtF,IAEIC,EAFAC,GAAM,EACNC,EAAaL,EAAaC,EAAUjT,GAAcA,EAGtD,SAASsT,IAGL,OAFAF,GAAM,EACNC,GAAWA,EAAQT,KAAUS,EAAQT,MAC9BO,C,CAGX,SAASI,IACLF,GAAWH,EAASG,GACpBA,EAAUrT,C,CAGd,SAASwT,IAML,OALAH,EAAUJ,EAAUI,GACfD,GACDE,IAGGH,C,CAGX,SAASM,EAAYte,IAChBA,GAASke,GAAWE,IACrBpe,IAAUke,GAAWG,G,CA6BzB,OA1BAL,EAAkB,CACdO,OAAQH,EACRI,QAASH,GAGbL,EAAgBN,IAAW,WACvB,OAAIQ,GAAWA,EAAQR,IACZQ,EAAQR,MAGZO,CACX,EAEAD,EAAgBR,IAAO,WAGnB,OAFAS,GAAM,EACNC,GAAWA,EAAQV,KAAQU,EAAQV,MAC5BQ,CACX,EAEAA,EAAgBP,IAASU,EAEzBH,EAAkB9O,GAAc8O,EAAiBL,GAAS,CACtD7O,IAAK,WAAM,QAAEoP,CAAO,EACpBlP,IAAKsP,IAGF,CACH1gB,EAAGogB,EACHS,GAAI,WACAP,EAAUrT,C,EAGtB,CCrNA,SAAS6T,GAAmBb,EAAqBc,EAAsD9L,GACnG,IAAI+L,EAAQ3d,EAAQ0d,GAChB/c,EAAMgd,EAAQD,EAAWzf,OAAS,EAClC2f,GAA4Bjd,EAAM,EAAI+c,EAAW,GAAOC,EAAqBhU,EAAb+T,IAA8BG,WAC9FC,GAAmCnd,EAAM,EAAI+c,EAAW,GAAK/T,IAAgBoU,aAE7EC,EAAUpM,EAAQ,GACtBA,EAAQ,GAAK,WACT0I,EAAQkD,KACRnH,GAAQ2H,EAASrU,EAAauB,EAASV,GAAMxM,WACjD,EAEA,IAAIsc,EAAUqC,GAAoBC,GAAY,SAACK,GAC3C,GAAIA,EAAS,CACT,GAAIA,EAAQM,QAER,OADAN,EAAQM,UACDN,EAGX5G,GAAQyH,EAASnU,EAAa,CAAEsT,GACnC,CAED,OAAO5G,GAAQuH,EAAOjU,EAAaiI,E,IACpC,SAAUqL,GACT5G,GAAQyH,EAASnU,EAAa,CAAEsT,GACpC,IAEA,OAAO3C,EAAQ3d,CACnB,CA6GgB,SAAAshB,GAAiChb,EAAgCib,GAC7E,OAAOT,IAAmB,EAAM9T,EAAauB,EAASV,GAAMxM,WAChE,CA4OgB,SAAAmgB,GAA+Blb,EAAgCib,GAC3E,OAAOT,IAAmB,EAAO9T,EAAauB,EAASV,GAAMxM,WACjE,CC5TO,I,GCxDP,IAMMogB,GAAc,cAMdC,GAAY,YAMZC,GAAc,WAMdC,GAAmB,gBAMnBC,GAAc,cAMdC,GAAe,YAMfC,GAAqB,WAMrBC,GAAgB,cAMhBC,GAAqBD,GAKrBE,GAAyB,UAMzBC,GAAe,YAMfC,GAAa,YAKbC,GAAoB,OAASD,GAK7BE,GAAyB,iBAKzBC,GAAkB,gBAMlBC,GAAiB,cAMjBC,GAAkB,eAElBC,GAAMjiB,OAMRkiB,GAAqBD,GAAI,kBAKzBE,GAAkBF,GAAI,uBAItBG,GAAOpL,KACPqL,GAAkCD,GAAKP,MAA4BO,GAAKP,IAA0B,CAClG7e,GAACqX,GAAA,GACGA,GAAC2H,KAAkB,EACnB3H,GAAC0H,KAAiB,EAAI,IAE1B7e,EAAG,MAOP,SAASof,GAA0B5hB,GAC/B,OAAOA,IAAWA,IAAWuhB,GAAIhB,KAAcvgB,IAAWiC,MAAMse,IACpE,CAMA,SAASsB,GAAkC7hB,GACvC,OAAO4hB,GAA0B5hB,IAAWA,IAAWub,SAASgF,GACpE,CAMA,SAASuB,GAAa9hB,GAClB,IAAI+hB,EAEJ,GAAI/hB,EAAQ,CAER,GAAIwhB,GACA,OAAOA,GAAmBxhB,GAG9B,IAAIgiB,EAAWhiB,EAAOihB,KAAejhB,EAAOugB,MAAevgB,EAAOsgB,IAAetgB,EAAOsgB,IAAaC,IAAa,MAGlHwB,EAAW/hB,EAAOkhB,KAAsBc,EACnC5S,EAAkBpP,EAAQkhB,aAGpBlhB,EAAOohB,IACdW,EAAW/hB,EAAOkhB,IAAqBlhB,EAAOohB,KAAoBphB,EAAOkhB,IACzElhB,EAAOohB,IAAmBY,E,CAIlC,OAAOD,CACX,CAOA,SAASE,GAAajiB,EAAasN,GAC/B,IAAIzG,EAAkB,GACtB,GAAI4a,GACA5a,EAAQ4a,GAAgBzhB,QAExB,IAAK,IAAIkiB,KAAQliB,EACO,kBAATkiB,GAAqB9S,EAAkBpP,EAAQkiB,IACtDrb,EAAMhH,KAAKqiB,GAKvB,GAAIrb,GAASA,EAAM1G,OAAS,EACxB,IAAK,IAAIgiB,EAAK,EAAGA,EAAKtb,EAAM1G,OAAQgiB,IAChC7U,EAAKzG,EAAMsb,GAGvB,CAUA,SAASC,GAAoBpiB,EAAYyT,EAAiB4O,GACtD,OAAQ5O,IAAa6M,WAAsBtgB,EAAOyT,KAAc+M,KAAgB6B,GAAWjT,EAAkBpP,EAAQyT,KAAcA,IAAawN,IAAcxN,IAAa8M,EAC/K,CAOA,SAAS+B,GAAgBjR,GACrBK,GAAe,iBAAmBL,EACtC,CAQA,SAASkR,GAAkBC,GAEvB,IAAIC,EAAYpJ,GAAU,MAW1B,OARA4I,GAAaO,GAAY,SAAC7f,IAEjB8f,EAAU9f,IAASyf,GAAoBI,EAAY7f,GAAM,KAE1D8f,EAAU9f,GAAQ6f,EAAW7f,GAErC,IAEO8f,CACX,CAOA,SAASC,GAAYlS,EAAcvP,GAC/B,IAAK,IAAIkhB,EAAK3R,EAAOrQ,OAAS,EAAGgiB,GAAM,EAAGA,IACtC,GAAI3R,EAAO2R,KAAQlhB,EACf,OAAO,EAIf,OAAO,CACX,CAQA,SAAS0hB,GAAcC,EAAgBJ,EAAgBC,EAAeI,GAClE,SAASC,EAAe9iB,EAAY+iB,EAAgBtP,GAChD,IAAII,EAAUkP,EAAStP,GACvB,GAAII,EAAQ6M,KAAgBmC,EAAa,CAErC,IAAIG,EAAgBhjB,EAAOygB,KAAqB,CAAC,GACP,IAAtCuC,EAAclC,MACdjN,GAAWmP,EAAcD,EAASpC,MAAkB,CAAC,GAAGlN,IAAaI,E,CAI7E,OAAO,WAEH,OAAOA,EAAQ/T,MAAME,EAAQE,UACjC,CACJ,CAGA,IAAI+iB,EAAY5J,GAAU,MAC1B4I,GAAaQ,GAAW,SAAC9f,GAErBsgB,EAAUtgB,GAAQmgB,EAAeN,EAAYC,EAAW9f,EAC5D,IAGA,IAAIugB,EAAYpB,GAAac,GACzBO,EAAgB,GAGpB,MAAOD,IAAcrB,GAAkCqB,KAAeR,GAAYS,EAASD,GAEvFjB,GAAaiB,GAAW,SAACvgB,IAKhBsgB,EAAUtgB,IAASyf,GAAoBc,EAAWvgB,GAAO6e,MAE1DyB,EAAUtgB,GAAQmgB,EAAeN,EAAYU,EAAWvgB,GAEhE,IAKAwgB,EAAQtjB,KAAKqjB,GACbA,EAAYpB,GAAaoB,GAG7B,OAAOD,CACX,CAEA,SAASG,GAAapjB,EAAayT,EAAkBgG,EAAY4J,GAC7D,IAAIC,EAAW,KAIf,GAAItjB,GAAUoP,EAAkBqK,EAAOkH,IAAe,CAElD,IAAIqC,EAAgBhjB,EAAOygB,KAAqBpH,GAAU,MAU1D,GATAiK,GAAYN,EAAcvJ,EAAMkH,MAAkBtH,GAAU,OAAO5F,GAE9D6P,GAEDhB,GAAgB,YAAc7O,EAAW,KAAO+M,KAK/C8C,EAASzC,MAAwD,IAAtCmC,EAAclC,IAA+B,CAEzE,IAAIyC,GAAcnU,EAAkBpP,EAAQyT,GAGxC+P,EAAW1B,GAAa9hB,GACxBmjB,EAAgB,GAIpB,MAAOI,GAAcC,IAAa3B,GAAkC2B,KAAcd,GAAYS,EAASK,GAAW,CAC9G,IAAIC,EAAYD,EAAS/P,GACzB,GAAIgQ,EAAW,CACXF,EAAcE,IAAcJ,EAC5B,K,CAIJF,EAAQtjB,KAAK2jB,GACbA,EAAW1B,GAAa0B,E,CAG5B,IACQD,IAGAvjB,EAAOyT,GAAY6P,GAIvBA,EAASzC,IAAiB,C,CAC5B,MAAO7Y,GAGLgb,EAAclC,KAAsB,C,GAKhD,OAAOwC,CACX,CAEA,SAASI,GAAcjQ,EAAkBgG,EAAY4J,GACjD,IAAII,EAAYhK,EAAMhG,GAYtB,OATIgQ,IAAcJ,IAEdI,EAAY3B,GAAarI,GAAOhG,WAGzBgQ,IAAcjD,IACrB8B,GAAgB,IAAM7O,EAAW,cAAgB+M,IAG9CiD,CACX,CAWA,SAASE,GAAmBlK,EAAWmK,EAAkB5jB,EAAY6jB,EAAmBC,GACpF,SAASC,EAAwBtK,EAAWhG,GACxC,IAAIuQ,EAAgB,WAEhB,IAAIV,EAAWF,GAAarlB,KAAM0V,EAAUgG,EAAOuK,IAAkBN,GAAcjQ,EAAUgG,EAAOuK,GAEpG,OAAOV,EAASxjB,MAAM/B,KAAMmC,UAChC,EAKA,OADC8jB,EAAsBtD,IAAe,EAC/BsD,CACX,CAEA,IAAKpC,GAA0BnI,GAAQ,CACnC,IAAIuJ,EAAgBhjB,EAAOygB,IAAoBzgB,EAAOygB,KAAqBpH,GAAU,MACrF,IAAKuI,GAA0BoB,GAAgB,CAC3C,IAAIiB,EAAYjB,EAAcY,GAAcZ,EAAcY,IAAcvK,GAAU,OAGxC,IAAtC2J,EAAclC,MACdkC,EAAclC,MAAwBgD,GAGrClC,GAA0BqC,IAC3BhC,GAAajiB,GAAQ,SAAC2C,GAEdyf,GAAoBpiB,EAAQ2C,GAAM,IAAU3C,EAAO2C,KAAUkhB,EAAclhB,KAE3EshB,EAAUthB,GAAQ3C,EAAO2C,UAClB3C,EAAO2C,KAGTyM,EAAkBqK,EAAO9W,IAAU8W,EAAM9W,KAAU8W,EAAM9W,GAAM+d,OAChEjH,EAAM9W,GAAQohB,EAAwBtK,EAAO9W,IAGzD,G,EAIhB,CAQA,SAASuhB,GAAgBtB,EAAgBJ,GAErC,GAAIhB,GAAoB,CAEpB,IAAI2B,EAAgB,GAChBgB,EAAYrC,GAAaU,GAC7B,MAAO2B,IAActC,GAAkCsC,KAAezB,GAAYS,EAASgB,GAAY,CACnG,GAAIA,IAAcvB,EACd,OAAO,EAKXO,EAAQtjB,KAAKskB,GACbA,EAAYrC,GAAaqC,E,CAG7B,OAAO,C,CAIX,OAAO,CACX,CASA,SAASC,GAAYpkB,EAAYqkB,GAC7B,OAAIjV,EAAkBpP,EAAQugB,IAEnBvgB,EAAO2C,MAAQ0hB,GAAgBrD,KAGhChhB,GAAU,CAAC,GAAGsgB,KAAiB,CAAC,GAAG3d,MAAQ0hB,GAAgBrD,EACzE,CAkFc,SAAUsD,GAA4BC,EAAgBvkB,EAAewkB,EAA4C9mB,GAEtH0R,EAAkBmV,EAAUhE,KAC7B+B,GAAgB,4CAIpB,IAAIM,EAAa2B,EAAShE,IACrB2D,GAAgBtB,EAAY5iB,IAC7BsiB,GAAgB,IAAM8B,GAAYG,GAAY,0BAA4BH,GAAYpkB,GAAU,KAGpG,IAAI4jB,EAAY,KACZxU,EAAkBwT,EAAYjC,IAE9BiD,EAAYhB,EAAWjC,KAKvBiD,EAAYhD,GAAqBwD,GAAYG,EAAU,KAAO,IAAM5C,GAASnf,EAC7Emf,GAASnf,IACTogB,EAAWjC,IAAgBiD,GAG/B,IAAIa,EAAcH,GAAavD,IAC3B8B,IAAgB4B,EAAYpD,IAC5BwB,GAAenlB,QAAuCoJ,IAA5BpJ,EAAQ2jB,MAClCwB,IAAgBnlB,EAAQ2jB,KAI5B,IAAIoB,EAAYF,GAAkBviB,GAG9BijB,EAAYN,GAAcC,EAAY5iB,EAAQyiB,EAAWI,GAI7D2B,EAAaxkB,EAAQijB,GAGrB,IAAIa,IAAoBtC,MAAwBiD,EAAYnD,IACxDwC,GAAmBpmB,IACnBomB,IAAoBpmB,EAAQ4jB,KAIhCqC,GAAmBf,EAAYgB,EAAW5jB,EAAQyiB,GAA+B,IAApBqB,EACjE,CAOAQ,GAAavD,IAA0BY,GAASrf,E,oBC1nBnCoiB,GAAkB,WAClBC,GAAgB,SAChBC,GAAmB,YACnBC,GAAmB,YAGnBjY,GAAWtN,OACXuN,GAAWD,GAASiY,ICa3BC,KARoBxO,MAAa,CAAC,GAAG,WAChBA,MAAa,CAAC,GAAG,WAOlB,kBAIfyO,GAAmC,SAASC,GAEnD,IAAK,IAAIjf,EAAG9F,EAAI,EAAGuC,EAAItC,UAAUC,OAAQF,EAAIuC,EAAGvC,IAE5C,IAAK,IAAIglB,KADTlf,EAAI7F,UAAUD,GACA8F,EACN8G,GAASiY,IAAmB1mB,KAAK2H,EAAGkf,KACnCD,EAAUC,GAAKlf,EAAEkf,IAI9B,OAAOD,CACX,EAEWE,GAA4BpT,IAAaiT,GAGhDI,GAAkB,SAASzL,EAAQ7D,GAcnC,OAbAsP,GAAkBvY,GAAS,mBAEtB,CAAEwY,UAAW,cAAgBnjB,OAAS,SAAUyX,EAAQ7D,GACrD6D,EAAE0L,UAAYvP,CAClB,GAEA,SAAU6D,EAAQ7D,GACd,IAAK,IAAIoP,KAAKpP,EACNA,EAAEiP,IAAmBG,KACrBvL,EAAEuL,GAAKpP,EAAEoP,GAGrB,EACGE,GAAgBzL,EAAG7D,EAC9B,EAEM,SAAUwP,GAAY3L,EAAQ7D,GAKhC,SAASgE,IACL9b,KAAKgD,YAAc2Y,CACvB,QANW7D,IAAM6O,IAAyB,OAAN7O,GAChCnE,GAAe,uBAAyBlH,OAAOqL,GAAK,iCAExDsP,GAAgBzL,EAAG7D,GAKnB6D,EAAEmL,IAA0B,OAANhP,EAAawD,GAAUxD,IAAMgE,EAAGgL,IAAoBhP,EAAEgP,IAAmB,IAAKhL,EACxG,CA8IM,SAAUyL,GAAgBzb,EAASxH,GACrC,IAAK,IAAIpC,EAAI,EAAGslB,EAAKljB,EAAKlC,OAAQqlB,EAAI3b,EAAG1J,OAAQF,EAAIslB,EAAItlB,IAAKulB,IAC1D3b,EAAG2b,GAAKnjB,EAAKpC,GAGjB,OAAO4J,CACX,CCjNO,IACP4b,GAAA,aACAC,GAAA,gBACAC,GAAA,cACAC,GAAA,uCACAC,GAAA,YACAC,GAAA,gBCNAC,GAAA,QACAC,GAAA,SACAC,GAAA,cACAC,GAAA,oBACAC,GAAA,WACAC,GAAA,OACAC,GAAA,aACAC,GAAA,OACAC,GAAA,UACAC,GAAA,QAOAC,GAAA,YACAC,GAAA,WAGAC,GAAA,aACAC,GAAA,cACAC,GAAA,aACAC,GAAA,eACAC,GAAA,cACAC,GAAA,WACAC,GAAA,gBACAC,GAAA,eACAC,GAAA,WACAC,GAAA,sBACAC,GAAA,WACAC,GAAA,WACAC,GAAA,eACAC,GAAA,QACAC,GAAA,SACAC,GAAA,OACAC,GAAA,WACAC,GAAA,mBArCA3B,GAAA,cACA4B,GAAA,SACA7B,GAAA,SACA8B,GAAA,SACAC,GAAA,SACAC,GAAA,gBACAC,GAAA,gBACAC,GAAA,QACAC,GAAA,QACAC,GAAA,SACAC,GAAA,QACAjC,GAAA,OACAkC,GAAA,SACAC,GAAA,OACAC,GAAA,SACAC,GAAA,aACAC,GAAA,aACAC,GAAA,6BACAC,GAAA,0BACAC,GAAA,gBACAC,GAAA,qBACAC,GAAA,WACAC,GAAA,QACAC,GAAA,eACAC,GAAA,YACA5C,GAAA,OACA6C,GAAA,OACAC,GAAA,OACAC,GAAA,cACAC,GAAA,uBACAC,GAAA,mBACAC,GAAA,UACAC,GAAA,0BACAC,GAAA,SACAC,GAAA,aACAC,GAAA,UACAC,GAAA,sBACAC,GAAA,YACAC,GAAA,WACAC,GAAA,YACAzD,GAAA,UACA0D,GAAA,UACAC,GAAA,UACAC,GAAA,cACAC,GAAA,SACAC,GAAA,UACAC,GAAA,gBACAC,GAAA,WACAC,GAAA,YACAzE,GAAA,QACA0E,GAAA,WACAC,GAAA,UACAC,GAAA,qBACAC,GAAA,OACAC,GAAA,UACAC,GAAA,SACAC,GAAA,oBACAC,GAAA,wBACAC,GAAA,aACAC,GAAA,OACAC,GAAA,SACAC,GAAA,SACAC,GAAA,WACAC,GAAA,gBACAC,GAAA,YACAC,GAAA,WACAC,GAAA,UACAC,GAAA,UACAC,GAAA,mBACAC,GAAA,UACAC,GAAA,SACAC,GAAA,aC3EAC,QAAAjlB,EACAklB,GAAA,GACAC,GAAA,WACAC,GAAA,OACAC,GAAA,gBACAC,GAAA,WACAC,GAAA,kBACAC,GAAA,aACAC,GAAA,mBACAC,GAAA,WACAC,GAAA,aACAC,GAAA,kBACAC,GAAA,oBACAC,GAAA,YACAC,GAAA,sBACAC,GAAA,mBACAC,GAAA,mBACAC,GAAA,aACAC,GAAA,SACAC,GAAA,OACAC,GAAA,iBCjBAC,GAAA,iBACAC,GAAA,YACAC,GAAA,eACAC,GAAA,iBACAjuB,OAAA8tB,IAIO,SAAPI,GAAAvsB,GACA,OAAAqN,EAAArN,EACA,CAQO,SAAPwsB,GAAA9qB,GACA,IAAA1B,EAAA0B,EAWA,OAVA1B,GAAAwN,EAAAxN,KAEAA,EAAAA,EAAAypB,IAAA2C,IAAA,SAAAK,EAAAC,GACA,OAAAA,EAAA/oB,aACA,IACA3D,EAAAA,EAAAypB,IAAA4C,GAAA,KACArsB,EAAAA,EAAAypB,IAAA6C,IAAA,SAAAG,EAAAhpB,GACA,UAAAA,CACA,KAEAzD,CACA,CAMO,SAAP2sB,GAAA3sB,EAAA6R,GACA,SAAA7R,IAAA6R,KACA,IAAA0L,GAAAvd,EAAA6R,EAGA,CAIO,SAAP+a,GAAAC,GACA,OAAAA,GAAAA,EAAAD,eAAA,EACA,CAKO,SAAPE,GAAA5uB,GACA,OAAA4P,EAAA5P,GACAA,EAAAmnB,IAEA0F,EACA,CAWO,SAAPgC,GAAAhuB,EAAAiuB,EAAAhtB,EAAAitB,EAAAC,GACA,IAAAC,EAAAntB,EAQA,OAPAjB,IACAouB,EAAApuB,EAAAiuB,GACAG,IAAAntB,GAAAktB,IAAAA,EAAAC,IAAAF,IAAAA,EAAAjtB,KACAmtB,EAAAntB,EACAjB,EAAAiuB,GAAAG,IAGAA,CACA,CAOO,SAAPC,GAAAruB,EAAAiuB,EAAAtgB,GACA,IAAAygB,EAaA,OAZApuB,GACAouB,EAAApuB,EAAAiuB,IACAG,GAAA9f,EAAA8f,KAEAA,EAAAlgB,EAAAP,GAAA,GAAAA,EACA3N,EAAAiuB,GAAAG,IAKAA,EAAAlgB,EAAAP,GAAA,GAAAA,EAEAygB,CACA,CACA,SAAAE,GAAAluB,EAAAqT,GACA,IAAA8a,EAAA,KACA5R,EAAA,KAOA,OANAjO,EAAAtO,GACAmuB,EAAAnuB,EAGAuc,EAAAvc,EAEA,WAEA,IAAAouB,EAAAtuB,UAIA,GAHAquB,IACA5R,EAAA4R,KAEA5R,EACA,OAAAA,EAAAlJ,GAAA4U,IAAA1L,EAAA6R,EAEA,CACA,CA2DO,SAAPC,GAAAzuB,EAAA2C,EAAAvC,EAAAyT,EAAA6a,GACA1uB,GAAA2C,GAAAvC,KACA,IAAAsuB,GAAAxgB,EAAAlO,EAAA2C,OACA3C,EAAA2C,GAAA2rB,GAAAluB,EAAAyT,GAGA,CASO,SAAP8a,GAAA3uB,EAAAI,EAAAwuB,EAAAF,GAQA,OAPA1uB,GAAAI,GAAAuO,EAAA3O,IAAAkC,EAAA0sB,IACAhW,GAAAgW,GAAA,SAAAC,GACApgB,EAAAogB,IACAJ,GAAAzuB,EAAA6uB,EAAAzuB,EAAAyuB,EAAAH,EAEA,IAEA1uB,CACA,CAMO,SAAP8uB,GAAAC,GACA,kBACA,SAAAC,IACA,IAAAzU,EAAA,KACAwU,GACAxf,GAAAwf,GAAA,SAAAd,EAAAhtB,GACAsZ,EAAA0T,GAAAhtB,CACA,GAEA,CACA,OAAA+tB,CACA,CAVA,EAWA,CAQO,SAAPC,GAAAzf,GAMA,OAHAA,GAAA0f,KACA1f,EAAA5C,GAAAsiB,GAAA,GAAA1f,KAEAA,CACA,CACO,SAAP2f,GAAA1R,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GAEA,IAAAhK,EAAA5T,UACAkvB,EAAAtb,EAAA,OACAub,EAAAvb,EAAAkS,IACAsJ,GAAA,EACAxW,EAAA,EAYA,IAVAuW,EAAA,GAAAvgB,EAAAsgB,KACAE,EAAAF,EACAA,EAAAtb,EAAAgF,IAAA,GACAA,KAGAnK,EAAAygB,KACAA,EAAA,IAGAtW,EAAAuW,EAAAvW,IAAA,CACA,IAAA1K,EAAA0F,EAAAgF,GACAyW,EAAArtB,EAAAkM,GACAohB,EAAA7gB,EAAAP,GACA,QAAAhI,KAAAgI,EAAA,CACA,IAAAqhB,EAAAF,GAAAnpB,KAAAgI,GAAAohB,GAAAngB,EAAAjB,EAAAhI,GACA,GAAAqpB,EAAA,CAGA,IAAAvf,EAAA9B,EAAAhI,GACAspB,OAAA,EAEA,GAAAJ,GAAApf,KAAAwf,EAAAxtB,EAAAgO,KAAAoL,GAAApL,IAAA,CAEA,IAAAyf,EAAAP,EAAAhpB,GACAspB,EACAxtB,EAAAytB,KAEAA,EAAA,IAGArU,GAAAqU,KAEAA,EAAA,IAGAzf,EAAAif,GAAAG,EAAAK,EAAAzf,EACA,MAEApJ,IAAAoJ,IACAkf,EAAAhpB,GAAA8J,EAtBA,CAwBA,CACA,CACA,OAAAkf,CACA,CAYO,SAAPQ,GAAAC,GACA,IACA,OAAAA,EAAAC,YACA,CACA,MAAA9nB,GACA,CAEA,WACA,CACO,SAAP+nB,GAAAC,EAAA3e,GACA,OAAA2e,EACA,2BAAAJ,GAAAI,IAAA,EAEA3e,CACA,CACO,SAAP4e,GAAAJ,EAAAxe,GACA,OAAAwe,EACA,yBAAAA,EAAA/E,IAAA,aAAA8E,GAAAC,IAAA,EAEAxe,CACA,CACO,SAAP6e,GAAAC,EAAAC,GASA,OARAA,IACAvhB,EAAAuhB,GACAD,EAAA,CAAAC,GAAApxB,OAAAmxB,GAEAjuB,EAAAkuB,KACAD,EAAAC,EAAApxB,OAAAmxB,KAGAA,CACA,CACA,IAAAE,GAAA,0DACAC,GAAA,kBACAC,GAAA,UAWO,SAAPC,GAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAzQ,GAGA,SAAA0Q,EAAAjB,EAAAzpB,EAAAnF,GACA,IACA4uB,EAAAzpB,GAAAnF,CACA,CACA,MAAA+G,GACA,CAEA,MATA,IAAA4oB,IAAAA,GAAA,QACA,IAAAC,IAAAA,GAAA,GASA,IAAAhB,EAAA,IAAAkB,eAwBA,OAvBAH,GAIAE,EAAAjB,EAAAQ,GAAAO,GAEAD,GAGAG,EAAAjB,EAAAS,GAAAK,GAEAd,EAAAmB,KAAAP,EAAAC,GAAAG,GACAF,GAGAG,EAAAjB,EAAAS,GAAAK,IAKAE,GAAAzQ,GACA0Q,EAAAjB,EAAAU,GAAAnQ,GAEAyP,CACA,CAMO,SAAPoB,GAAAC,GACA,IAAAC,EAAA,GACA,GAAA1iB,EAAAyiB,GAAA,CACA,IAAAE,EAAAlW,GAAAgW,GAAAnL,IAAA,WACAnN,GAAAwY,GAAA,SAAAC,GACA,GAAAA,EAAA,CACA,IAAAvY,EAAAuY,EAAA9vB,QAAA,MACA,QAAAuX,EAAA,CAEA,IAAAwY,EAAApW,GAAAmW,EAAAE,UAAA,EAAAzY,IAAAmN,MACAhlB,EAAAia,GAAAmW,EAAAE,UAAAzY,EAAA,IACAqY,EAAAG,GAAArwB,CACA,MAEAkwB,EAAAjW,GAAAmW,IAAA,CAEA,CACA,GACA,CACA,OAAAF,CACA,CAKO,SAAPK,GAAAC,EAAA5B,EAAAltB,GACA,IAAA8uB,EAAA9uB,IAAAktB,GAAAA,EAAA9E,IAAA,CACA,IAAA9pB,EAAA4uB,EAAA9E,IAAApoB,GACA1B,IACAwwB,EAAA9uB,GAAAuY,GAAAja,GAEA,CACA,OAAAwwB,CACA,CACA,IAAAC,GAAA,gBACAC,GAAA,wBACAC,GAAA,oBAKO,SAAPC,GAAAhC,EAAAiC,GACA,IAAAL,EAAA,GAcA,OAbA5B,EAAA7E,IAWAyG,EAAAR,GAAApB,EAAA7E,OAPA8G,IACAL,EAAAD,GAAAC,EAAA5B,EAAA+B,IACAH,EAAAD,GAAAC,EAAA5B,EAAA6B,IACAD,EAAAD,GAAAC,EAAA5B,EAAA8B,KAMAF,CACA,CCzbA,IAAAM,GAAA,eACAC,GAAA,WACAC,GAAA,UACAC,GAAA,OACAC,GAAA,SACAC,GAAA,WAEAC,GAAA,OACAC,GAAA,WACAC,GAAA,iBACAC,GAAA,KACAC,GAAA,KACAC,IAAA,EACAC,GAAA,KACAC,GAAA,KACA,SAAAC,GAAAtO,EAAAuO,GACA,IAAAC,GAAA,EACA,GAAAxO,EAAA,CACA,IAEA,GADAwO,EAAAD,KAAAvO,GACAwO,EAAA,CACA,IAAAtZ,EAAA8K,EAAAM,IACApL,IACAsZ,EAAAD,KAAArZ,EAEA,CACA,CACA,MAAAzR,GACA,CAEA,IAAA+qB,EACA,IACA,IAAAC,EAAA,IAAAzO,EACAwO,GAAA7kB,EAAA8kB,EAAAF,GACA,CACA,MAAA9qB,GACA,CAGA,CACA,OAAA+qB,CACA,CAaO,SAAPE,GAAAC,GACA,GAAAA,GAAAR,GAAA,CACA,IAAAS,EAAA3c,GAAA,kBACA,GAAA2c,EACA,OAAAA,CAEA,CACA,cAAAC,WAAAzO,IAAAyO,SACAA,SAEA5c,GAAAwb,GACA,CAIO,SAAPqB,KACA,cAAAlrB,UAAAyc,GACAzc,QAEAqO,GAAAyb,GACA,CAQO,SAAPqB,KACA,OAAAhpB,eAAAgH,OAAAqT,IAAArT,MAAA,OAAAkF,GAAA0b,IACA,CAMO,SAAPqB,KACA,OAAAD,KACAhiB,MAAAkF,GAAA0b,IAEA,IACA,CAMO,SAAPsB,KACA,OAAAhd,GAAA2b,GACA,CAMO,SAAPsB,KACA,OAAAjd,GAAA4b,GACA,CAeO,SAAPsB,KACA,IAAAC,EAAA7c,KACA,GAAA6c,IAAAA,EAAAnJ,MAAAiI,IAAA,OAAAD,IAAA,CAEAC,GAAAkB,EAAAnJ,IACA,IAAAoJ,GAAAnB,IAAAzG,IAAA/F,MACAuM,GAAA5E,GAAAgG,EAAAvB,KAAAzE,GAAAgG,EAAAtB,GACA,CACA,OAAAE,EACA,CAIO,SAAPqB,GAAAC,GAEA,QADA,IAAAA,IAAAA,EAAA,OACAA,EAAA,CACA,IAAAC,EAAAjd,MAAA,GACAgd,EAAAC,GAAAA,EAAAH,WAAA5H,IAAA/F,MAAA+F,EACA,CACA,IAAAgI,GAAAF,GAAA9H,IAAA/F,MAEA,GAAA2H,GAAAoG,EAAA3B,IAAA,CACA,IAAA4B,EAAAvd,MAAA,GACA,OAAAzJ,KAAAinB,IAAArpB,SAAAmpB,EAAAjO,IAAAsM,IAAA,IAAA4B,EAAAlC,KAAA,EACA,CACA,GAAAnE,GAAAoG,EAAA1B,IAAA,CACA,IAAA6B,EAAAtpB,SAAAmpB,EAAAjO,IAAAuM,IAAA,IACA,GAAA6B,EACA,OAAAA,EAAA,CAEA,CACA,WACA,CAeO,SAAPC,GAAA7d,GAIA,OAHA,OAAAqc,KAAA,IAAArc,IACAqc,GAAA/b,MAAAvM,QAAAwM,KAAAud,aAEAzB,EACA,CAMO,SAAP0B,GAAAC,GACA,IAAAC,GAAA,EACA,IACAA,IAAAhe,GAAA,SACA,IAAAie,EAAAje,GAAA,WACAge,GAAAD,GAAAE,IACAD,EAAA3B,GAAA4B,EAAA,aAEA,CACA,MAAAzsB,GACA,CAEA,OAAAwsB,CACA,CACO,SAAPE,KAOA,OANA,OAAA/B,KACAA,UAAAgC,iBAAA/P,GACA+N,IAAAiC,OACAjC,GAAAA,KAAAE,GAAArc,GAAA+b,IAAA,qBAGAI,EACA,CAKO,SAAPiC,KACA,IAAAJ,GAAA,EACA,IACA,IAAAK,EAAAre,GAAA+b,IACAiC,IAAAK,CACA,CACA,MAAA7sB,GACA,CAEA,OAAAwsB,CACA,CCrOA,IAAAM,GAAA,WACAC,GAAA,WACAC,GAAA,UACAC,GAAA,UAEAC,IAAA,EACAC,GAAAH,GACAI,GAAAH,GAEA,SAAAI,GAAAC,GACAA,EAAA,IAEAA,KAAA,GAEAH,GAAAH,GAAAM,EAAAP,GACAK,GAAAH,GAAAK,EAAAP,GACAG,IAAA,CACA,CACA,SAAAK,KAGA,IACA,IAAA3a,EAAA,WAAAF,KACA2a,IAAApoB,KAAAuoB,SAAAV,GAAAla,GAAAA,EACA,CACA,MAAA5S,GACA,CAEA,CAgBO,SAAPytB,GAAAC,GACA,IAAAz0B,EAAA,EACAsF,EAAAitB,MAAAC,KAuBA,OAtBAltB,GAAAA,EAAAovB,kBAEA10B,EAAAsF,EAAAovB,gBAAA,IAAAC,YAAA,OAAAb,IAEA,IAAA9zB,GAAAyyB,OAEAwB,IAEAK,KAIAt0B,EAAA40B,KAAAd,IAEA,IAAA9zB,IAEAA,EAAAgM,KAAA6oB,MAAAhB,GAAA7nB,KAAAuoB,SAAA,IAEAE,IAEAz0B,KAAA,GAEAA,CACA,CAmBO,SAAP40B,GAAAH,GACAN,GAAA,aAAAA,KAAAA,IAAA,IAAAL,GACAI,GAAA,YAAAA,KAAAA,IAAA,IAAAJ,GACA,IAAA9zB,GAAAm0B,IAAA,WAAAD,MAAA,EAAAJ,GAKA,OAJAW,IAEAz0B,KAAA,GAEAA,CACA,CAMO,SAAP80B,GAAAC,QACA,IAAAA,IAAAA,EAAA,IACA,IAAAC,EAAA,mEAEAC,EAAAT,OAAA,EACAU,EAAA,EACAvoB,EAAAoe,GACA,MAAApe,EAAAoY,IAAAgQ,EACAG,IACAvoB,GAAAqoB,EAAAG,OAAA,GAAAF,GACAA,KAAA,EACA,IAAAC,IAGAD,GAAAT,MAAA,eAAAS,KAAA,EACAC,EAAA,GAGA,OAAAvoB,CACA,CC1HA,IAAAyoB,GAAA,QACAC,GAAA,IAAAP,GAAA,GACAQ,GAAA,EAOA,SAAAC,GAAAx2B,GACA,WAAAA,EAAAyqB,KAAA,IAAAzqB,EAAAyqB,OAAAzqB,EAAAyqB,GACA,CACA,SAAAgM,GAAA1vB,EAAA/G,GACA,IAAA02B,EAAA12B,EAAA+G,EAAA4vB,IACA,IAAAD,EAAA,CACAA,EAAA,GACA,IACAF,GAAAx2B,IACAqQ,GAAArQ,EAAA+G,EAAA4vB,GAAA,CACA3uB,GAAA,EACAwF,EAAAkpB,GAGA,CACA,MAAA1uB,GACA,CAEA,CACA,OAAA0uB,CACA,CACO,SAAPE,GAAAj0B,EAAAk0B,GAEA,YADA,IAAAA,IAAAA,GAAA,GACApJ,GAAA9qB,EAAA4zB,MAAAM,EAAA,IAAAR,GAAArK,IAAAsK,GACA,CACO,SAAPQ,GAAAn0B,GACA,IAAAoE,EAAA,CACA4vB,GAAAC,GAAA,YAAAj0B,GAAAqpB,IAAA,IAAAqK,IACAU,OAAA,SAAA/2B,GACA,OAAAw2B,GAAAx2B,EACA,EACA+P,IAAA,SAAA/P,EAAA2C,EAAAgL,EAAAqpB,GACA,IAAAN,EAAA12B,EAAA+G,EAAA4vB,IACA,OAAAD,EAQAA,EAAAjJ,GAAA9qB,KAPAq0B,IAEAN,EAAAD,GAAA1vB,EAAA/G,GACA02B,EAAAjJ,GAAA9qB,IAAAgL,GAEAA,EAGA,EACAspB,KAAA,SAAAj3B,EAAA2C,GACA,GAAA3C,GAAAA,EAAA2C,GACA,WACA3C,EAAA2C,EACA,CACA,MAAAqF,GACA,CAGA,GAEA,OAAAjB,CACA,CCnEA,SAAAmwB,GAAAj2B,GACA,OAAAA,GAAA0N,EAAA1N,KAAAA,EAAAk2B,OAAAl2B,EAAAm2B,IAAA/nB,EAAApO,EAAA,MAAAoO,EAAApO,EAAA,QAAAoO,EAAApO,EAAA,QAAAA,EAAAgP,IACA,CACA,SAAAonB,GAAAC,EAAAC,EAAAC,GACA,IAAA7pB,EACA8pB,EAAAD,EAAAE,OAAArpB,EAEA,GAAAkpB,GAAAC,EAAAJ,GAAA,CACA,IAAAO,EAAAH,EAAAJ,GACAl1B,EAAAy1B,KACAA,EAAA,CAAAA,IAEA,QAAAxV,EAAA,EAAAA,EAAAwV,EAAA3R,IAAA7D,IAAA,CACA,IAAAyV,EAAAD,EAAAxV,GACA0V,EAAAN,EAAAK,GAaA,GAZAH,EAAAI,GACAlqB,EAAAkqB,EAEAP,IAEAO,EAAAP,EAAAQ,IAAAF,GACAH,EAAAI,KACAlqB,EAAAkqB,GAGAP,EAAArnB,IAAAqnB,EAAAQ,IAAAhnB,GAAA8mB,GAAAC,IAEAJ,EAAA9pB,GAEA,KAEA,CACA,CAKA,OAHA8pB,EAAA9pB,IAAA8pB,EAAAD,EAAAhqB,KACAG,EAAA6pB,EAAAhqB,GAEAG,CACA,CAQA,SAAAoqB,GAAAT,EAAAC,EAAAC,GACA,IAQAQ,EARA5J,EAAAoJ,GACAA,GAAAN,GAAAM,KACApJ,EAAAiJ,GAAAC,EAAAC,EAAAC,IAEApJ,KACA8I,GAAA9I,KACAA,EAAA2J,GAAAT,EAAAC,EAAAnJ,IAGAlsB,EAAAksB,IACA4J,EAAA,GACAA,EAAAhS,IAAAoI,EAAApI,KAEA1K,GAAA8S,KACA4J,EAAA,IAEAA,IACAzoB,GAAA6e,GAAA,SAAA9tB,EAAAW,GACAA,GAAAi2B,GAAAj2B,KACAA,EAAA82B,GAAAT,EAAAC,EAAAt2B,IAEA+2B,EAAA13B,GAAAW,CACA,IACAmtB,EAAA4J,IAGA,OAAA5J,CACA,CAOO,SAAP6J,GAAAX,EAAAC,EAAA50B,EAAAu1B,GAEA,IAAAC,EACArY,EACAnS,EAEAyqB,EACAC,EACAC,EACAC,EAuBAnK,EA3BAoJ,EAAAU,EAKAhB,GAAAM,IAEAW,EAAAX,EAAAL,MACArX,EAAA0X,EAAAvnB,IACAqoB,EAAAd,EAAA1P,IACAyQ,EAAAf,EAAA3P,IACAuQ,EAAAZ,EAAAgB,IACAH,EAAAb,EAAAtY,KACAmZ,GAAAnqB,EAAAmqB,KACAA,IAAAD,GAEAzqB,EAAA0pB,GAAAC,EAAAC,EAAAC,IAGA7pB,EAAAuqB,EAEAK,GAGAjB,EAAAzP,IAAA0P,EAAA50B,GAIA,IAAA81B,GAAA,EACAC,EAAAnB,EAAA50B,IAEA+1B,GAAApqB,EAAAoqB,KAEAtK,EAAAsK,EACAD,GAAA,EAGAN,GAAA/J,IAAAzgB,IAAAwqB,EAAA/J,KACAA,EAAAzgB,EACA8qB,GAAA,GAEA3Y,IACAsO,EAAAtO,EAAAsO,EAAAzgB,EAAA4pB,GACAkB,EAAArK,IAAAzgB,IAGA8qB,EAcArK,EAFAzgB,EAEAoqB,GAAAT,EAAAC,EAAA5pB,GAGAA,GAhBA2N,GAAA8S,IAAAlsB,EAAAyL,KAEAyqB,GAAAzqB,IAAA2N,GAAA3N,IAAAzL,EAAAyL,KAEA4B,GAAA5B,GAAA,SAAAgrB,EAAAC,GAEAX,GAAAX,EAAAlJ,EAAAuK,EAAAC,EACA,IAeAtB,EAAArnB,IAAAsnB,EAAA50B,EAAAyrB,GACAiK,GACAf,EAAApY,IAAAqY,EAAA50B,GAEA21B,GACAhB,EAAAxP,IAAAyP,EAAA50B,EAEA,CC/JO,IAAPk2B,GAAAjhB,GAAA,mBAMAkhB,GAAAlhB,GAAA,sBAOAmhB,GAAAnhB,GAAA,sBACO,SAAPohB,GAAA54B,GAEA,IAAA64B,EADA,GAAA74B,IAEA8B,EAAA9B,IACA64B,EAAA,GACAA,EAAAjT,IAAA5lB,EAAA4lB,KAEA1K,GAAAlb,KACA64B,EAAA,IAEAA,GAMA,OAJA1pB,GAAAnP,GAAA,SAAAE,EAAAW,GAEAg4B,EAAA34B,GAAA04B,GAAA/3B,EACA,IACAg4B,EAGA,OAAA74B,CACA,CAOO,SAAP84B,GAAAj4B,GACA,GAAAA,EAAA,CACA,IAAAub,EAAAvb,EAAA43B,KAAA53B,EACA,GAAAub,EAAAsb,MAAAtb,EAAAsb,MAAA72B,GAAAub,EAAAsb,IAAAe,MAAArc,GACA,OAAAA,CAEA,CACA,WACA,CA0CO,SAAP2c,GAAAl4B,GACA,GAAAA,IAAAqa,GAAAra,IAAAiB,EAAAjB,IACA,IACAA,EAAA63B,KAAA,CACA,CACA,MAAA9wB,GACA,CAGA,OAAA/G,CACA,CAmCO,SAAPm4B,GAAAC,EAAAC,EAAAr4B,GACA,IAAA2M,GAAA,EAWA,OATA3M,IAAAo4B,EAAAC,EAAAC,UAEA3rB,EAAA3M,EAAA83B,IAEAnrB,GAAA3M,EAAA63B,MAEAlrB,EAAA0N,GAAAra,IAAAiB,EAAAjB,KAGA2M,CACA,CAKO,SAAP4rB,GAAAnoB,GACAK,GAAA,iBAAAL,EACA,CC7JA,ICFAooB,GDEAC,GAAA,CACA,OACA,MACA,QACA,UACA,UAEAC,GAAA,SAAAC,EAAAj3B,EAAAqN,EAAAhI,GACA4xB,GAAAA,EAAA3R,IAAA,SAAAjpB,OAAAgR,EAAA,MAAAhR,OAAA2D,EAAA,eAAAqO,GAAAhJ,GACA,EACA,SAAA6xB,GAAAP,EAAAt5B,EAAA2C,GACAT,EAAAlC,IAEA4Y,GAAA8gB,IAAA,SAAAjJ,GACA,IAAAqJ,EAAA95B,EAAAywB,GACAzwB,EAAAywB,GAAA,WAEA,IADA,IAAAsJ,EAAA,GACAC,EAAA,EAAAA,EAAA95B,UAAAC,OAAA65B,IACAD,EAAAC,GAAA95B,UAAA85B,GAEA,IAAApsB,EAAAksB,EAAAzR,IAAA,KAAA0R,GAGA,OADAE,GAAAX,EAAAt5B,EAAA2C,EAAA,YACAiL,CACA,CACA,GAEA,CACA,SAAAssB,GAAAl6B,EAAA2C,GACA,IAAA2N,EAAAnB,EAAAnP,EAAA2C,GACA,OAAA2N,GAAAA,EAAAP,GACA,CACA,SAAAoqB,GAAAb,EAAA/B,EAAA50B,EAAA1B,GAEA,IAAAm5B,EAAA,CACA53B,EAAAG,EACA9D,EAAA,GACAw7B,IAAA,SAAA7d,GACAA,GAAAA,EAAAhE,MACA,IAAAO,GAAAqhB,EAAAv7B,EAAA2d,IAEA4d,EAAAv7B,EAAAunB,IAAA5J,GAEA8c,EAAAe,IAAA7d,EAAA4d,GAEA,EACAE,IAAA,SAAA9d,GACA,IAAA1D,EAAAC,GAAAqhB,EAAAv7B,EAAA2d,IACA,IAAA1D,GACAshB,EAAAv7B,EAAAypB,IAAAxP,EAAA,EAEA,GAGAyhB,GAAA,EACAC,GAAA,EACA,SAAAC,IACAF,IACAC,EAAAA,GAAApB,GAAAqB,EAAAnB,EAAAr4B,GAEAA,IAAAA,EAAA43B,KAAA2B,IAEAv5B,EAAAg5B,GAAAX,EAAAr4B,EAAA0B,EAAA,eAGA43B,GAAA,GAGA,IAAAG,EAAApB,EAAAqB,IAIA,OAHAD,GACAN,EAAAC,IAAAK,GAEAz5B,CACA,CAOA,SAAA25B,EAAA1qB,GACA,GAAAjP,IAAAiP,EAAA,CACAuqB,EAAAnB,EAAAuB,MAAAvB,EAAAwB,KAEAtB,GAAA,IAAA72B,EAAA,kBAAAqO,GAAAumB,IAEAgD,IACAC,EAAAA,GAAApB,GAAAqB,EAAAnB,EAAAr4B,GACAs5B,GAAA,GAGA,IAAAQ,EAAAP,GAAAC,EAAAnB,EAAA0B,IACA,GAAAR,EAEA,GAAAO,EAAA,CAGAxrB,GAAAtO,GAAA,SAAAX,GACAW,EAAAX,GAAA4P,EAAAA,EAAA5P,GAAAyrB,EACA,IAEA,IACAxc,GAAAW,GAAA,SAAA5P,EAAA8tB,GACA6M,GAAA3B,EAAAr4B,EAAAX,EAAA8tB,EACA,IAEAle,EAAAjP,CACA,CACA,MAAA+G,GAEA2xB,IAAAL,EAAA4B,MAAA,IAAA9S,IAAAzlB,EAAA,YAAAqF,GAEAwyB,GAAA,CACA,CACA,MACAv5B,GAAAA,EAAA43B,KAGAtpB,GAAAtO,GAAA,SAAAX,GAEA,IAAA66B,EAAAjB,GAAAj5B,EAAAX,GACA,GAAA66B,EAAA,CAEA,IAAAC,EAAAD,EAAA7B,EAAAlzB,MACAg1B,GAAAA,EAAAC,MACA,CACA,IAGA,GAAAnrB,IAAAjP,EAAA,CACA,IAAAq6B,EAAAprB,GAAAkpB,GAAAqB,EAAAnB,EAAAppB,IACA6qB,GAAAO,IAEAprB,EAAA+pB,GAAAX,EAAAppB,EAAAvN,EAAA,eAGA1B,EAAAiP,EACAsqB,EAAAc,CACA,CAEAhC,EAAAh7B,IAAA87B,EACA,CACA,CAnEAK,EAAAnB,EAAAlzB,MAAA,CACAi1B,KAAA,WACA/B,EAAAh7B,IAAA87B,EACA,GAiEA/pB,GAAAknB,EAAA6C,EAAA53B,EAAA,CAAAqN,EAAA4qB,EAAA10B,EAAA60B,GACA,CACO,SAAPK,GAAA3B,EAAAt5B,EAAA2C,EAAA1B,GACA,GAAAjB,EAAA,CAEA,IAAAm7B,EAAAjB,GAAAl6B,EAAA2C,GACA44B,EAAAJ,KAAAA,EAAA7B,EAAAlzB,MACAm1B,EAKAv7B,EAAA2C,GAAA1B,EAJAk5B,GAAAb,EAAAt5B,EAAA2C,EAAA1B,EAMA,CACA,OAAAjB,CACA,CACO,SAAPw7B,GAAAlC,EAAAt5B,EAAA2C,EAAA84B,GACA,GAAAz7B,EAAA,CAEA,IAAAm7B,EAAAjB,GAAAl6B,EAAA2C,GACA44B,EAAAJ,KAAAA,EAAA7B,EAAAlzB,MACAs1B,EAAAD,GAAAA,EAAA,GACAE,EAAAF,GAAAA,EAAA,GACAG,EAAAH,GAAAA,EAAA,GACA,IAAAF,EAAA,CACA,GAAAK,EACA,IAEAzC,GAAAn5B,EACA,CACA,MAAAgI,GACA2xB,IAAAL,EAAA4B,MAAA,IAAA9S,IAAAzlB,EAAA,WAAAqF,EACA,CAEA,IAEAizB,GAAA3B,EAAAt5B,EAAA2C,EAAA3C,EAAA2C,IACAw4B,EAAAjB,GAAAl6B,EAAA2C,EACA,CACA,MAAAqF,GAEA2xB,IAAAL,EAAA4B,MAAA,IAAA9S,IAAAzlB,EAAA,QAAAqF,EACA,CACA,CAEA0zB,IACAP,EAAA7B,EAAA0B,IAAAU,GAEAC,IACAR,EAAA7B,EAAAuB,IAAAc,GAEAC,IACAT,EAAA7B,EAAAC,SAAA,EAEA,CACA,OAAAv5B,CACA,CACO,SAAPi6B,GAAAX,EAAAt5B,EAAA2C,EAAAqN,GACA,IAEAT,GAAAvP,GAAA,SAAAM,EAAAW,GAEAg6B,GAAA3B,EAAAt5B,EAAAM,EAAAW,EACA,IACAjB,EAAA64B,MAEA1oB,GAAAnQ,EAAA64B,GAAA,CACA9oB,IAAA,WACA,OAAAupB,EAAA/Q,GACA,IAEAsR,GAAAP,EAAAt5B,EAAA2C,GAEA,CACA,MAAAqF,GAEA2xB,IAAAL,EAAA4B,MAAA,IAAA9S,IAAAzlB,EAAAqN,EAAAhI,EACA,CACA,OAAAhI,CACA,CC3NO,SAAP67B,GAAAxqB,EAAAyqB,GACArC,KACAA,GAAAzf,GAAA,6BAAA5W,EAAA22B,GACAA,EAAA/T,IAAA,IAEA5iB,EAAA24B,OAAAhC,EAAA,GAEA,KAEA,IAAAiC,EAAA3qB,GAAA,+BAIA,MAHAuH,GAAAkjB,GAAA,SAAAG,EAAAnjB,GACAkjB,GAAA,KAAAh9B,OAAA8Z,EAAA,OAAA9Z,OAAAgS,GAAAirB,GACA,IACA,IAAAxC,GAAAuC,EAAAF,GAAA,GACA,CCnBA,IAAAI,GAAA,QACAC,GAAA,KACO,SAAPC,GAAAC,GACA,IAAA1iB,EAQA2iB,EAPAC,EAAA5kB,GAAAukB,GAAA,MAAAG,EAAAG,IAAAL,IACAM,EAAA9kB,GAAAukB,GAAA,KAAAG,EAAAG,IAAAL,IACAO,EAAA/kB,GAAAukB,GAAA,KAAAG,EAAAG,IAAAL,IACAQ,EAAAhlB,GAAAukB,GAAA,SAAAG,EAAAG,IAAAL,IACAS,EAAAjlB,GAAAukB,GAAA,MAAAG,EAAAG,IAAAL,IACAU,EAAA,KACAC,EAAA,KAEA,SAAAC,EAAArC,EAAAv1B,GACA,IAAA63B,EAAAV,EAAA3B,IACA,IACA2B,EAAA3B,IAAAD,EACAA,GAAAA,EAAAkC,KAEAhkB,GAAA8hB,EAAAkC,IAAA,SAAAxC,GACAA,EAAAE,IAAAI,EACA,IACAA,EAAAkC,GAAA,IAEAz3B,EAAA,CACA2yB,IAAAuE,EAAAvE,IACA7nB,IAAAosB,EAAApsB,IAAAhJ,KAAAo1B,GACAY,MAAAZ,EAAAnU,IAAAjhB,KAAAo1B,GACAnd,IAAAmd,EAAAnd,IAAAjY,KAAAo1B,GACAV,OAAAU,EAAAvU,IAAA7gB,KAAAo1B,IAEA,CACA,MAAAr0B,GACA,IAAA4xB,EAAAyC,EAAAjU,IAMA,MALAwR,GAEAA,EAAA3R,IAAA,MAAAjX,GAAAhJ,IAGAA,CACA,SAEAs0B,EAAA3B,IAAAqC,GAAA,IACA,CACA,CACA,SAAAE,IACA,GAAAL,EAAA,CACA,IAAAM,EAAAN,EACAA,EAAA,KAEAC,GAAAA,EAAAtU,MACAsU,EAAA,KACA,IAAAM,EAAA,GAwBA,GAtBAxkB,GAAAukB,GAAA,SAAA3gB,GACA,GAAAA,IACAA,EAAAogB,KACAhkB,GAAA4D,EAAAogB,IAAA,SAAAxC,GAEAA,EAAAE,IAAA9d,EACA,IACAA,EAAAogB,GAAA,MAGApgB,EAAAhE,IACA,IACAukB,EAAAvgB,EAAAA,EAAAhE,GACA,CACA,MAAAxQ,GAEAo1B,EAAAhX,IAAApe,EACA,CAGA,IAEA60B,EACA,IACAK,GACA,CACA,MAAAl1B,GACAo1B,EAAAhX,IAAApe,EACA,CAEAo1B,EAAApX,IAAA,GACA6V,GAAA,qBAAAuB,EAEA,CACA,CACA,SAAAC,EAAAjD,GACA,GAAAA,GAAAA,EAAAv7B,EAAAmnB,IAAA,GACA6W,IACAA,EAAA,IAEAC,IACAA,EAAA3c,IAAA,WACA2c,EAAA,KACAI,GACA,OAGA,QAAApkB,EAAA,EAAAA,EAAAshB,EAAAv7B,EAAAmnB,IAAAlN,IAAA,CACA,IAAA0D,EAAA4d,EAAAv7B,EAAAia,GAEA0D,IAAA,IAAAzD,GAAA8jB,EAAArgB,IACAqgB,EAAAzW,IAAA5J,EAEA,CACA,CACA,CACA,SAAA8gB,EAAA9gB,EAAA4d,GACA,GAAA5d,EAAA,CACA,IAAAd,EAAAc,EAAAogB,GAAApgB,EAAAogB,IAAA,IACA,IAAA7jB,GAAA2C,EAAA0e,IAEA1e,EAAA0K,IAAAgU,EAEA,CACA,CAaA,OAZAzgB,EAAA,CACAvT,KAAAm2B,EACA1B,GAAA4B,EACAzB,GAAA0B,GAEA/iB,EAAAkO,IAAA8U,EACAhjB,EAAA4O,IAAA8T,EACA1iB,EAAArb,IAAA++B,EACA1jB,EAAAoO,IAAAmV,EACAvjB,EAAA4jB,IAAAR,EACApjB,EAAA0gB,IAAAiD,EAVAhB,EAWA3iB,EACA2iB,CACA,CCxHA,SAAAkB,GAAAlE,EAAAmE,GACA,IAAAjhB,EAAA,CACAhE,GAAAilB,EACAC,GAAA,WAGAlhB,EAAAhE,GAAA,KACA8gB,EAAA,KACAmE,EAAA,IACA,GAIA,OAFAptB,GAAAmM,EAAA,UAAAhP,EAAA,mCAAAgP,EAAAhE,GAAA,aACA8gB,EAAAiE,IAAA/gB,EAAAihB,GACAjhB,CACA,CAOA,SAAAmhB,GAAA/D,EAAA55B,EAAA07B,GACA,IAAA/hB,EACA2d,EAAA4B,GAAAl5B,GACA,GAAAs3B,EAEA,OAAAA,EAEA,IAEAgF,EAFAE,EAAA5F,GAAA,aACAgH,EAAA59B,IAAA,IAAA07B,EAAA17B,EAAAg5B,GAAAh5B,GAEA,SAAAk9B,IACAZ,EAAAvU,KACA,CACA,SAAA8V,EAAA79B,EAAA2C,EAAA1B,GACA,IACAjB,EAAAi7B,GAAAqB,EAAAt8B,EAAA2C,EAAA1B,EACA,CACA,MAAA+G,GAEA2xB,GAAAC,EAAAj3B,EAAA,gBAAAqF,EACA,CACA,OAAAhI,EAAA2C,EACA,CACA,SAAAm7B,EAAAL,GACA,OAAAD,GAAAlB,EAAAmB,EACA,CACA,SAAAM,EAAAN,EAAAO,GACA1B,EAAAiB,IAAA,eAAA7hB,GACA,IAAAuiB,EAAA3B,EAAAxB,IACA,IACA5sB,EAAA8vB,KACA1B,EAAAxB,IAAAkD,GAEAP,EAAA/hB,EACA,SAEA4gB,EAAAxB,IAAAmD,CACA,CACA,GACA,CACA,SAAAC,EAAAl+B,EAAA2C,GACA,IAAAgX,EAEA,OAAA6hB,GAAAc,EAAAt8B,EAAA2C,GAAAgX,EAAA,GAAAA,EAAA,MAAAA,IAAAhX,EACA,CACA,SAAAw7B,EAAAn+B,EAAA2C,GACA,IAAAgX,EAEA,OAAA6hB,GAAAc,EAAAt8B,EAAA2C,GAAAgX,EAAA,GAAAA,EAAA,MAAAA,IAAAhX,EACA,CACA,SAAAy7B,EAAAp+B,EAAA2C,GACA,IAAAgX,EAEA,OAAA6hB,GAAAc,EAAAt8B,EAAA2C,GAAAgX,EAAA,GAAAA,EAAA,MAAAA,IAAAhX,EACA,CACA,SAAA07B,EAAA9G,EAAA+G,GAQA,OAPAA,GAEA/uB,GAAA+uB,GAAA,SAAA37B,EAAA1B,GAEAg3B,GAAAoE,EAAA9E,EAAA50B,EAAA1B,EACA,IAEAs2B,CACA,CACA,IAAA8E,GAAA1iB,EAAA,CACA6iB,IAAA,KACA1E,IAAA8F,GAEAjkB,EAAAyO,IAAAwR,EACAjgB,EAAAoO,IAAAmV,EACAvjB,EAAA1J,IAAA4tB,EACAlkB,EAAAuO,IAAAmW,EACA1kB,EAAAwO,IAAA2V,EACAnkB,EAAAuF,IAAAgf,EACAvkB,EAAAmO,IAAAqW,EACAxkB,EAAAkO,IAAAuW,EACAzkB,EAAAokB,OAAAA,EACApkB,GAUA,OATAtJ,GAAAgsB,EAAA,OACA91B,GAAA,EACAyB,GAAA,EACA4H,GAAA,EACApC,EAAAgvB,IAEAF,EAAAF,GAAAC,GAEApC,GAAAqC,EAAAsB,EAAA,qBACAvB,CACA,CAKA,SAAAkC,GAAA3E,EAAAvoB,GACAuoB,GACAA,EAAA5R,IAAA3W,GACAuoB,EAAA3R,IAAA,MAAA5W,IAIAmoB,GAAAnoB,EAEA,CAQO,SAAPmtB,GAAAC,EAAAC,EAAA9E,EAAA8B,GACA,IAAApE,EAAAqG,GAAA/D,EAAA6E,GAAA,GAAA/C,GAIA,OAHAgD,GACApH,EAAApP,IAAAoP,EAAAQ,IAAA4G,GAEApH,CACA,CAUO,SAAPqH,GAAAF,EAAAhB,EAAA7D,GACA,IAAApd,EAAAiiB,EAAA5F,KAAA4F,EACA,OAAAjiB,EAAAsb,KAAAtb,EAAAsb,MAAA2G,GAAAjiB,EAAAsb,IAAAe,MAAArc,GAGA+hB,GAAA3E,EAAAzM,GAAAnc,GAAAytB,IACAD,GAAAC,EAAA,KAAA7E,GAAAzR,IAAAsV,IAHAjhB,EAAA2L,IAAAsV,EAIA,CCtKA,IAEAmB,GCJAjlB,GDEAklB,GAAA,CAAApS,GAAAC,GAAAC,GAAAC,IACAkS,GAAA,KAEA,SAAAC,GAAAp8B,EAAA87B,GACA,kBACA,IAAA1E,EAAA75B,UACA8+B,EAAAC,GAAAR,GACA,GAAAO,EAAA,CACA,IAAAE,EAAAF,EAAAE,SACAA,GAAAA,EAAAv8B,IACAu8B,EAAAv8B,GAAA0lB,IAAA6W,EAAAnF,EAEA,CACA,CACA,CACA,SAAAoF,KAEA,IAAAn/B,EAAAwW,GAAA,aAIA,OAHAxW,IACA8+B,GAAA9+B,EAAA,wBAEA8+B,EACA,CACO,SAAPG,GAAAR,GACA,IAAAW,EAAAN,GAIA,OAHAM,IAAA,IAAAX,EAAAY,gBACAD,EAAAN,IAAAK,MAEAC,EAAAA,EAAA,oBACA,CACO,SAAPE,GAAAb,GACA,IAAAG,GAAA,CACAA,GAAA,GACA,QAAAzc,EAAA,EAAAA,EAAA0c,GAAA7Y,IAAA7D,IACAyc,GAAAC,GAAA1c,IAAA4c,GAAAF,GAAA1c,GAAAsc,EAEA,CACA,OAAAG,EACA,CChCA,IAAAW,GAAA,gBAIAC,GAAA,kBAIAC,GAAA,OAIAC,GAAA,QACApB,GAAA,CACAqB,oBAAA,EACAC,sBAAA,EACAC,gBAAA,GACAC,aAAA,GAEAC,IAAApmB,GAAA,GACAA,GAAA,QACAA,GAAA,oBACAA,GAAA,GAAA4lB,GACA5lB,GAAA,oBACAA,IACA,SAAAqmB,GAAAC,GACA,OAAAA,EACA,IAAAA,EAAAvV,IAAA,MAAAsB,IAAA,IAEAA,EACA,CACA,SAAAkU,GAAA5yB,EAAA+D,GACA,IAAA8uB,EAAA9M,KACA,GAAA8M,EAAA,CACA,IAAAC,EAAA,MACAD,EAAA7yB,KACA8yB,EAAA9yB,GAEAoB,EAAAyxB,EAAAC,KACAD,EAAAC,GAAA/uB,EAEA,CACA,CACA,IAAAgvB,GAAA,WACA,SAAAA,EAAAC,EAAAC,EAAAC,EAAAC,QACA,IAAAD,IAAAA,GAAA,GACA,IAAAhmB,EAAA,KACAA,EAAAwP,IAAAsW,EACA9lB,EAAA+L,KACAia,EAAAf,GAAAD,IACAc,EACA,IAAAI,EAAA1U,GACAsH,OACAoN,EAAAnN,KAAAhiB,UAAAkvB,IAEA,IAAAE,GAAAJ,EAAA,YAAAP,GAAAO,GAAAvU,KACAyU,EAAA,UAAAT,GAAAU,GAAA1U,IACAxR,EAAA+L,KAAAoa,CACA,CAEA,OADAN,EAAAO,SAAA,cACAP,CACA,CAlBA,GAoBO,SAAPQ,GAAAC,EAAArC,GACA,OAAAqC,GAAA,IAAA1Y,KAAA,IAAA2Y,GAAAtC,EACA,CACA,IAAAsC,GAAA,WACA,SAAAA,EAAAtC,GACA,KAAAuC,WAAA,mBAIA,KAAAC,MAAA,GAIA,IAKAC,EACAC,EACAC,EACAC,EACAC,EATAC,EAAA,EAIAC,EAAA,GAMAld,GAAAyc,EAAA,eAAAvmB,GA4DA,SAAAinB,EAAAC,EAAArwB,GACA,IAAAswB,IAAA,CAIA,IAAAC,GAAA,EACAC,EAAAnC,GAAAruB,EAAA2Y,IAQA,GANAwX,EAAAK,GACAD,GAAA,EAGAJ,EAAAK,IAAA,EAEAD,IAEAF,GAAAP,IACA3mB,EAAAymB,MAAA7a,IAAA/U,GACAkwB,IACAO,EAAA,IAAAJ,EAAA,eAAArwB,IAGAkwB,IAAAH,GAAA,CACA,IAAAW,EAAA,oEACAC,EAAA,IAAA3B,GAAA,GAAA0B,GAAA,GACAvnB,EAAAymB,MAAA7a,IAAA4b,GACA,IAAAN,EACAlnB,EAAAynB,eAAAF,GAGAvnB,EAAAwN,IAAA+Z,EAEA,CA7BA,CA+BA,CACA,SAAAG,EAAAzD,GAEA,OAAAE,GAAAH,GAAAC,EAAAH,GAAA9jB,GAAAsd,KAAA,SAAApc,GACA,IAAA+iB,EAAA/iB,EAAAoc,IACAoJ,EAAAzC,EAAA5U,IACAsX,EAAA1C,EAAAmB,sBACAwB,EAAA3C,EAAAoB,gBACAwB,EAAA5C,EAAAqB,WACA,GACA,CACA,SAAA6B,IACA,OAAAJ,GAAAH,CACA,CACA,SAAAU,EAAAn/B,EAAAoE,GACA,IAAAi4B,EAAAC,GAAAR,GAAA,IACAO,GAAAA,EAAA9U,KACA8U,EAAA9U,IAAAvnB,EAAAoE,EAEA,CAhHAu6B,EAAAY,EAAAzD,GAAA,IACAjkB,EAAA2nB,oBAAA,kBAAAjB,CAAA,EAMA1mB,EAAAyN,IAAA,SAAAyZ,EAAApB,EAAAC,EAAAE,EAAAD,QACA,IAAAA,IAAAA,GAAA,GACA,IAAAnvB,EAAA,IAAAgvB,GAAAC,EAAAC,EAAAC,EAAAC,GACA,GAAAY,EACA,MAAArwB,GAAAK,GAIA,IAAA+uB,EAAAL,GAAA2B,IAAAnC,GACA,GAAArxB,EAAAmD,EAAAkV,KAkBAub,EAAA,aAAAJ,EAAA,sBAAArwB,OAlBA,CACA,GAAAmvB,EAAA,CAEA,IAAAqB,GAAAxwB,EAAA2Y,KACAwX,EAAAK,IAAAX,GAAAQ,IACAlnB,EAAA4lB,GAAA/uB,EAAAkV,KACAib,EAAAK,IAAA,EAEA,MAGAX,GAAAQ,GACAlnB,EAAA4lB,GAAA/uB,EAAAkV,KAGAkb,EAAAC,EAAArwB,EACA,CAKA,EACAmJ,EAAA4nB,eAAA,SAAA/wB,GACA6uB,GAAA,QAAA7uB,GACAywB,EAAA,UAAAzwB,EACA,EACAmJ,EAAAwN,IAAA,SAAA3W,GACA6uB,GAAA,OAAA7uB,GACAywB,EAAA,UAAAzwB,EACA,EACAmJ,EAAAynB,eAAA,SAAA5wB,GACA6uB,GAAA,QAAA7uB,GACAywB,EAAA,QAAAzwB,EACA,EACAmJ,EAAA6nB,0BAAA,WACAd,EAAA,EACAC,EAAA,EACA,EACAhnB,EAAAmQ,IAAA8W,EACAjnB,EAAAkP,IAAA,SAAA4Y,GACAhB,GAAAA,EAAA5D,KACA4D,EAAA,IACA,CAuDA,GACA,C,oBAkEA,CAzMA,GA2MA,SAAAiB,GAAA3I,GACA,OAAAA,GAAA,IAAAmH,EACA,CAUO,SAAPyB,GAAA5I,EAAA8H,EAAApB,EAAAC,EAAAE,EAAAD,QACA,IAAAA,IAAAA,GAAA,GACA+B,GAAA3I,GAAA3R,IAAAyZ,EAAApB,EAAAC,EAAAE,EAAAD,EACA,CAMO,SAAPiC,GAAA7I,EAAAvoB,GACAkxB,GAAA3I,GAAA5R,IAAA3W,EACA,CC1SO,SAAPqxB,GAAA9I,EAAAt5B,EAAAwF,GACA,IAAA68B,EAAAriC,EAAA0lB,IACAiI,EAAA2U,GAAAhJ,EAAAt5B,GAEA,GAAA2tB,EAAAjI,MAAA2c,EAAA,CACA,IAAA1iC,EAAA,EACA4iC,EAAA5U,EACA,WAAAnnB,IAAAhB,EAAA+8B,GACA5iC,IACA4iC,EAAA1uB,GAAA8Z,EAAA,OAAA6U,GAAA7iC,GAEAguB,EAAA4U,CACA,CACA,OAAA5U,CACA,CACO,SAAP2U,GAAAhJ,EAAAj3B,GACA,IAAAogC,EAUA,OATApgC,IAEAA,EAAAuY,GAAApK,GAAAnO,IAEAA,EAAAqjB,IAAA,MACA+c,EAAA5uB,GAAAxR,EAAA,OACA6/B,GAAA5I,EAAA,oEAAAj3B,KAAAA,IAAA,KAGAogC,GAAApgC,CACA,CACO,SAAPqgC,GAAApJ,EAAA34B,EAAA+0B,GAEA,IAAAiN,EASA,YAVA,IAAAjN,IAAAA,EAAA,MAEA/0B,IACA+0B,EAAAA,GAAA,KACA/0B,EAAAia,GAAApK,GAAA7P,IACAA,EAAA+kB,IAAAgQ,IACAiN,EAAA9uB,GAAAlT,EAAA,EAAA+0B,GACAwM,GAAA5I,EAAA,2DAAA5D,EAAA,gBAAA/0B,MAAAA,IAAA,KAGAgiC,GAAAhiC,CACA,CACO,SAAPiiC,GAAAtJ,EAAAuJ,GACA,OAAAC,GAAAxJ,EAAAuJ,EAAA,QACA,CACO,SAAPE,GAAAzJ,EAAAvoB,GACA,IAAAiyB,EAOA,OANAjyB,GACAA,EAAA2U,IAAA,QACAsd,EAAAnvB,GAAA9C,EAAA,SACAmxB,GAAA5I,EAAA,wEAAAvoB,QAAAA,IAAA,IAGAiyB,GAAAjyB,CACA,CACO,SAAPkyB,GAAA3J,EAAA4J,GACA,IAAAC,EACA,GAAAD,EAAA,CAEA,IAAAviC,EAAA,GAAAuiC,EACAviC,EAAA+kB,IAAA,QACAyd,EAAAtvB,GAAAlT,EAAA,SACAuhC,GAAA5I,EAAA,0EAAA4J,UAAAA,IAAA,GAEA,CACA,OAAAC,GAAAD,CACA,CACO,SAAPE,GAAA9J,EAAA6G,GACA,GAAAA,EAAA,CACA,IAAAkD,EAAA,GACAp0B,GAAAkxB,GAAA,SAAAr6B,EAAAnF,GACA,GAAA0N,EAAA1N,IAAAqyB,KAEA,IACAryB,EAAAsyB,KAAA9M,IAAAxlB,EACA,CACA,MAAA+G,GACAw6B,GAAA5I,EAAA,qCAAA4J,UAAAx7B,IAAA,EACA,CAEA/G,EAAA+hC,GAAApJ,EAAA34B,EAAA,MACAmF,EAAAs8B,GAAA9I,EAAAxzB,EAAAu9B,GACAA,EAAAv9B,GAAAnF,CACA,IACAw/B,EAAAkD,CACA,CACA,OAAAlD,CACA,CACO,SAAPmD,GAAAhK,EAAAiK,GACA,GAAAA,EAAA,CACA,IAAAC,EAAA,GACAv0B,GAAAs0B,GAAA,SAAAE,EAAA9iC,GACA8iC,EAAArB,GAAA9I,EAAAmK,EAAAD,GACAA,EAAAC,GAAA9iC,CACA,IACA4iC,EAAAC,CACA,CACA,OAAAD,CACA,CACO,SAAPG,GAAApK,EAAAjD,GACA,OAAAA,EAAAyM,GAAAxJ,EAAAjD,EAAA,QAAAxQ,MAAAwQ,CACA,CACO,SAAPyM,GAAAxJ,EAAAqK,EAAAjO,EAAAkO,GACA,IAAAC,EAQA,OAPAF,IACAA,EAAA/oB,GAAApK,GAAAmzB,IACAA,EAAAje,IAAAgQ,IACAmO,EAAAhwB,GAAA8vB,EAAA,EAAAjO,GACAwM,GAAA5I,EAAA,EAAAsK,EAAA,+CAAAlO,EAAA,gBAAAjvB,KAAAk9B,IAAA,KAGAE,GAAAF,CACA,CACO,SAAPnB,GAAAsB,GACA,IAAAr+B,EAAA,KAAAq+B,EACA,OAAAhwB,GAAArO,EAAAA,EAAAigB,IAAA,EACA,CCnHA,IAAAqe,GAAA,WAIA,SAAAA,EAAAzK,EAAAj3B,EAAA89B,EAAAoD,GACA,KAAAS,eAAA,CACAC,IAAA,EACA5hC,KAAA,EACA89B,WAAA,EACAoD,aAAA,GAEA,IAAArpB,EAAA,KACAA,EAAA+pB,IAAA,EACA/pB,EAAA8L,IAAA0c,GAAApJ,EAAAj3B,IAAAmjB,GACAtL,EAAAqM,IAAA6c,GAAA9J,EAAA6G,GACAjmB,EAAAsM,IAAA8c,GAAAhK,EAAAiK,EACA,CAGA,OAFAQ,EAAAG,aAAA,0CACAH,EAAAzD,SAAA,YACAyD,CACA,CApBA,GCAAI,GAAA,WAIA,SAAAA,EAAA7K,EAAAvoB,EAAAqzB,EAAAjE,EAAAoD,GACA,KAAAS,eAAA,CACAC,IAAA,EACAlzB,QAAA,EACAqzB,cAAA,EACAjE,WAAA,GAEA,IAAAjmB,EAAA,KACAA,EAAA+pB,IAAA,EACAlzB,EAAAA,GAAAyU,GACAtL,EAAA+L,IAAA8c,GAAAzJ,EAAAvoB,GACAmJ,EAAAqM,IAAA6c,GAAA9J,EAAA6G,GACAjmB,EAAAsM,IAAA8c,GAAAhK,EAAAiK,GACAa,IACAlqB,EAAAyM,IAAAyd,EAEA,CAGA,OAFAD,EAAAD,aAAA,4CACAC,EAAA7D,SAAA,cACA6D,CACA,CAxBA,GdDAE,GAAA,GAWO,SAAPC,GAAAC,IACAC,MAAAD,IAAAA,EAAA,KACAA,EAAA,GAEAA,EAAA53B,KAAA83B,MAAAF,GACA,IAAAG,EAAAL,GAAAE,EAAA,IACAI,EAAAN,GAAA13B,KAAA6oB,MAAA+O,EAAA,QACAK,EAAAP,GAAA13B,KAAA6oB,MAAA+O,EAAA,QACAM,EAAAR,GAAA13B,KAAA6oB,MAAA+O,EAAA,SACAO,EAAAn4B,KAAA6oB,MAAA+O,EAAA,OAKA,OAJAG,EAAA,IAAAA,EAAAhf,IAAA,KAAAgf,EAAA,IAAAA,EAAAhf,IAAA,IAAAgf,EAAAA,EACAC,EAAAA,EAAAjf,IAAA,MAAAif,EAAAA,EACAC,EAAAA,EAAAlf,IAAA,MAAAkf,EAAAA,EACAC,EAAAA,EAAAnf,IAAA,MAAAmf,EAAAA,GACAC,EAAA,EAAAA,EAAA,IAAAT,IAAAQ,EAAA,IAAAD,EAAA,IAAAD,EAAA,IAAAD,CACA,CexBA,IAAAK,GAAA,WAIA,SAAAA,EAAAzL,EAAAj3B,EAAAwgC,EAAAmC,EAAA7E,EAAAoD,EAAAlN,GACA,KAAA2N,eAAA,CACAC,IAAA,EACA5hC,KAAA,EACAwgC,IAAA,EACAoC,SAAA,EACA9E,WAAA,EACAoD,aAAA,EACAlN,GAAA,GAEA,IAAAnc,EAAA,KACAA,EAAA+pB,IAAA,EACA/pB,EAAAmc,GAAAqN,GAAApK,EAAAjD,GACAnc,EAAA2oB,IAAAD,GAAAtJ,EAAAuJ,GACA3oB,EAAA8L,IAAA0c,GAAApJ,EAAAj3B,IAAAmjB,GACAgf,MAAAQ,KACA9qB,EAAAmN,IAAAid,GAAAU,IAEA9qB,EAAAqM,IAAA6c,GAAA9J,EAAA6G,GACAjmB,EAAAsM,IAAA8c,GAAAhK,EAAAiK,EACA,CAGA,OAFAwB,EAAAb,aAAA,6CACAa,EAAAzE,SAAA,eACAyE,CACA,CA5BA,GCDAG,GAAA,WAIA,SAAAA,EAAA5L,EAAAj3B,EAAAwgC,EAAAsC,EAAAhF,EAAAoD,EAAA6B,GACA,KAAApB,eAAA,CACAC,IAAA,EACA5hC,KAAA,EACAwgC,IAAA,EACAoC,SAAA,EACAI,UAAA,EACAC,eAAA,EACAC,YAAA,EACAC,iBAAA,EACAC,cAAA,EACAtF,WAAA,EACAoD,aAAA,GAEA,IAAArpB,EAAA,KACAA,EAAA+pB,IAAA,EACA/pB,EAAA2oB,IAAAD,GAAAtJ,EAAAuJ,GACA3oB,EAAA8L,IAAA0c,GAAApJ,EAAAj3B,IAAAmjB,GACAtL,EAAAqM,IAAA6c,GAAA9J,EAAA6G,GACAjmB,EAAAsM,IAAA8c,GAAAhK,EAAAiK,GACA6B,IACAlrB,EAAAurB,cAAAL,EAAAK,cACAvrB,EAAAmN,IAAA+d,EAAA/d,IACAnN,EAAAorB,eAAAF,EAAAE,eACAprB,EAAAmrB,UAAAD,EAAAC,UACAnrB,EAAAoN,IAAA8d,EAAA9d,IACApN,EAAAqrB,YAAAH,EAAAG,YAEA,CAGA,OAFAL,EAAAhB,aAAA,wDACAgB,EAAA5E,SAAA,0BACA4E,CACA,CApCA,GCGAQ,GAAA,cACAC,GAAA,QACAC,GAAA,QACAC,GAAA,eACAC,GAAA,WACAC,GAAA,UACAC,GAAA,cACA,SAAAC,GAAAtlC,EAAAulC,GACA,IAAA54B,EAAA3M,EAiBA,OAhBA2M,IAAAa,EAAAb,KACA0D,MAAAA,KAAAmV,KACA7Y,EAAA0D,KAAAmV,IAAAxlB,IACAulC,GAAA54B,GAAA,OAAAA,IAEAA,EADAc,EAAAzN,EAAAklB,KACAllB,EAAAklB,MAGA,GAAAllB,IAKA2M,EAAA3M,EAAA,+BAGA2M,GAAA,EACA,CACA,SAAA64B,GAAAC,EAAAC,GACA,IAAAC,EAAAF,EAmBA,OAlBAA,IACAE,IAAAn4B,EAAAm4B,KACAA,EAAAF,EAAAL,KAAAK,EAAAJ,KAAAM,GAGAA,IAAAn4B,EAAAm4B,KAEAA,EAAAL,GAAAK,GAAA,IAEAF,EAAA,cAEAE,EAAAA,EAAA,MAAAF,EAAA,sBAAAA,EAAA,qBAAAA,EAAA,iBAIAC,GAAA,WAAAA,GAAA,WAAAA,GAAA,UAAAA,IAAA,IAAAnoB,GAAAooB,GAAA,GAAAD,KACAC,EAAAD,EAAA,KAAAC,GAEAA,GAAA,EACA,CACA,SAAAC,GAAA5lC,GACA,IACA,GAAA0N,EAAA1N,GACA,uBAAAA,GAAA,aAAAA,CAEA,CACA,MAAA+G,GACA,CAEA,QACA,CACA,SAAA8+B,GAAA7lC,GACA,IACA,GAAA0N,EAAA1N,GACA,cAAAA,GAAA,eAAAA,GAAA,eAAAA,CAEA,CACA,MAAA+G,GACA,CAEA,QACA,CACA,SAAA++B,GAAArrB,GACA,OAAAA,GAAAA,EAAAiB,KAAAlO,EAAAiN,EAAAiB,MAAAjB,EAAA9a,KAAAsB,EAAAwZ,EAAA9a,IACA,CACA,SAAAomC,GAAAC,GACA,IAAAtqB,EAAAsqB,GAAA,GACAx4B,EAAAkO,KAEAA,EADAlO,EAAAkO,EAAAupB,KACAvpB,EAAAupB,IAGA,GAAAvpB,GAGA,IAAAuqB,EAAAvqB,EAAAoJ,IAAA,MACA,OACApJ,IAAAA,EACA/b,IAAAsmC,EAEA,CACA,SAAAC,GAAAC,GAGA,IAFA,IAAAh2B,EAAA,GACAi2B,EAAAD,EAAArhB,IAAA,MACA5D,EAAA,EAAAA,EAAAklB,EAAArhB,IAAA7D,IAAA,CACA,IAAA/F,EAAAirB,EAAAllB,GACAklB,EAAAllB,EAAA,KACA/F,GAAA,IAAAirB,EAAAllB,EAAA,GACAA,KAEA/Q,EAAAgV,IAAAhK,EACA,CACA,OACAO,IAAAyqB,EACAxmC,IAAAwQ,EAEA,CACA,SAAAk2B,GAAAC,GACA,IAAA7rB,EAAA,KACA,GAAA6rB,EACA,IAGA,GAAAA,EAAArB,IAEAxqB,EAAAsrB,GAAAO,EAAArB,UAEA,GAAAqB,EAAAtB,KAAAsB,EAAAtB,IAAAC,IAEAxqB,EAAAsrB,GAAAO,EAAAtB,IAAAC,UAEA,GAAAqB,EAAA,cAAAA,EAAA/D,UAAA0C,IACAxqB,EAAAsrB,GAAAO,EAAA/D,UAAA0C,UAEA,GAAAa,GAAAQ,GACA7rB,EAAA6rB,OAEA,GAAAR,GAAAQ,EAAApB,KACAzqB,EAAA6rB,EAAApB,SAEA,GAAAvvB,MAAAA,KAAA,UAAA2wB,EAAAlB,IAEA3qB,EAAAyrB,GAAAI,EAAAhhB,UAEA,GAAAghB,EAAA,WAAAA,EAAAC,OAAAtB,IAEAxqB,EAAAsrB,GAAAO,EAAAC,OAAAtB,UAEA,GAAAz3B,EAAA84B,GACA7rB,EAAAsrB,GAAAO,OAEA,CACA,IAAAX,EAAAW,EAAAlB,KAAAkB,EAAAjB,KAAA,GACA73B,EAAA84B,EAAAnB,OACAQ,IACAA,GAAA,MAEAA,GAAA,SAAAW,EAAAnB,KAEAQ,IACAlrB,EAAAsrB,GAAAJ,GAEA,CACA,CACA,MAAA5+B,GAGA0T,EAAAsrB,GAAAh/B,EACA,CAEA,OAAA0T,GAAA,CACAiB,IAAA,GACA/b,IAAA,KAEA,CACA,SAAA6mC,GAAAC,GACA,IAAAt2B,EAAA,GAWA,OAVAs2B,IACAA,EAAA9mC,IACAgY,GAAA8uB,EAAA9mC,KAAA,SAAAwb,GACAhL,GAAAgL,EAAA,IACA,IAGAhL,EAAAs2B,EAAA/qB,KAAA,IAGAvL,CACA,CACA,SAAAu2B,GAAAv2B,GACA,IAAAw2B,EACAC,EAAAz2B,EAAAxQ,IACA,GAAAinC,GAAAA,EAAA7hB,IAAA,GACA4hB,EAAA,GACA,IAAAE,EAAA,EACAC,EAAA,EACAnvB,GAAAivB,GAAA,SAAAG,GACA,IAAAC,EAAAD,EAAA7hB,MACA,GAAA+hB,GAAAC,MAAAvlC,KAAAqlC,GAAA,CACA,IAAAG,EAAA,IAAAF,GAAAD,EAAAH,KACAC,GAAAK,EAAArhB,IACA6gB,EAAAxhB,IAAAgiB,EACA,CACA,IAGA,IAAAC,EAAA,MACA,GAAAN,EAAAM,EAAA,CACA,IAAAC,EAAA,EACAC,EAAAX,EAAA5hB,IAAA,EACA3c,EAAA,EACAm/B,EAAAF,EACAG,EAAAF,EACA,MAAAD,EAAAC,EAAA,CAEA,IAAAG,EAAAd,EAAAU,GAAAvhB,IACA4hB,EAAAf,EAAAW,GAAAxhB,IAEA,GADA1d,GAAAq/B,EAAAC,EACAt/B,EAAAg/B,EAAA,CAEA,IAAAO,EAAAH,EAAAD,EAAA,EACAZ,EAAAiB,OAAAL,EAAAI,GACA,KACA,CAEAJ,EAAAF,EACAG,EAAAF,EACAD,IACAC,GACA,CACA,CACA,CACA,OAAAX,CACA,CACA,SAAAkB,GAAAnC,GAEA,IAAAoC,EAAA,GACA,GAAApC,IACAoC,EAAApC,EAAAoC,UAAApC,EAAArgB,KAAA,IACAyiB,GACA,IACA,IAAAC,EAAA,wBACAC,EAAAD,EAAAE,KAAAvC,EAAA5lC,YAAAolB,OACA4iB,EAAAE,GAAAA,EAAAjjB,IAAA,EAAAijB,EAAA,KACA,CACA,MAAAjhC,GACA,CAIA,OAAA+gC,CACA,CAKO,SAAPI,GAAA5B,GACA,GAAAA,EACA,IACA,IAAA94B,EAAA84B,GAAA,CACA,IAAAZ,EAAAmC,GAAAvB,GACA35B,EAAA24B,GAAAgB,GAAA,GASA,OARA35B,GAAA,OAAAA,IACA25B,EAAAtB,MAEAsB,EAAAA,EAAAtB,IACAU,EAAAmC,GAAAvB,IAEA35B,EAAA24B,GAAAgB,GAAA,IAEA,IAAA/oB,GAAA5Q,EAAA+4B,IAAA,WAAAA,EACAA,EAAA,IAAA/4B,EAEAA,CACA,CACA,CACA,MAAA5F,GACA,CAIA,UAAAu/B,GAAA,GACA,CACA,IAAA6B,GAAA,WAIA,SAAAA,EAAAxP,EAAA4J,EAAA/C,EAAAoD,EAAAa,EAAA/N,GACA,KAAA2N,eAAA,CACAC,IAAA,EACA8E,WAAA,EACA3E,cAAA,EACAjE,WAAA,EACAoD,aAAA,GAEA,IAAArpB,EAAA,KACAA,EAAA+pB,IAAA,EACAuC,GAAAtD,IAkBAhpB,EAAAmM,IAAA6c,EAAA7c,KAAA,GACAnM,EAAAqM,IAAA2c,EAAA3c,IACArM,EAAAsM,IAAA0c,EAAA1c,IACA0c,EAAAvc,MACAzM,EAAAyM,IAAAuc,EAAAvc,KAEAuc,EAAA7M,KACAnc,EAAAmc,GAAA6M,EAAA7M,GACA6M,EAAA3c,IAAA8P,GAAA6M,EAAA7M,IAEA6M,EAAAtc,MACA1M,EAAA0M,IAAAsc,EAAAtc,KAGA5Y,EAAAk1B,EAAArc,OACA3M,EAAA2M,IAAAqc,EAAArc,OAhCAsZ,IACAA,EAAA,IAEA9J,IACA8J,EAAA9J,GAAAA,GAEAnc,EAAAmM,IAAA,KAAA2iB,GAAA1P,EAAA4J,EAAA/C,IACAjmB,EAAAqM,IAAA6c,GAAA9J,EAAA6G,GACAjmB,EAAAsM,IAAA8c,GAAAhK,EAAAiK,GACAa,IACAlqB,EAAAyM,IAAAyd,GAEA/N,IACAnc,EAAAmc,GAAAA,GAsBA,CA2DA,OA1DAyS,EAAAG,oBAAA,SAAAl4B,EAAA8xB,EAAAqG,EAAAC,EAAArhC,EAAAshC,EAAAt4B,EAAAu4B,GACA,IAAAhwB,EACAgtB,EAAAmC,GAAA1gC,GAAAshC,GAAAr4B,GACA,OAAAsI,EAAA,GACAA,EAAA4M,IAAAkgB,GAAAp1B,EAAAs1B,GACAhtB,EAAAwpB,IAAAA,EACAxpB,EAAA6vB,WAAAA,EACA7vB,EAAA8vB,aAAAA,EACA9vB,EAAAvR,MAAA+gC,GAAA/gC,GAAAshC,GAAAr4B,GACAsI,EAAA+vB,IAAAP,GAAAO,GAAAr4B,GACAsI,EAAAqN,IAAA2f,EACAhtB,EAAA+tB,aAAAJ,GAAAl2B,GAAAhJ,GAAAshC,GACA/vB,EAAAgwB,SAAAA,EACAhwB,CACA,EACAyvB,EAAAQ,oBAAA,SAAAhQ,EAAA4J,EAAA/C,EAAAoD,GACA,IAAAwF,EAAA7F,EAAA7c,KACA3N,GAAAwqB,EAAA7c,KAAA,SAAAnL,GAAA,OAAA8tB,GAAAliB,IAAAwS,EAAApe,EAAA,IACAquB,EAAA,IAAAT,EAAAxP,EAAAkQ,GAAAA,GAAA,GAAAtG,GAAA,CAAA6F,WAAAA,IAAA5I,EAAAoD,GACA,OAAAgG,CACA,EACAT,EAAApoC,UAAA+oC,YAAA,WACA,IAAApwB,EACAqwB,EAAA,KAAAX,EAAAW,EAAAX,WAAA5I,EAAAuJ,EAAAvJ,WAAAoD,EAAAmG,EAAAnG,aAAAa,EAAAsF,EAAAtF,cAAAuF,EAAAD,EAAAC,aAAAtT,EAAAqT,EAAArT,GAAAuT,EAAAF,EAAAE,SACAC,EAAAd,aAAApnC,OACA+W,GAAAqwB,GAAA,SAAA7F,GAAA,OAAAA,EAAAuG,aAAA,UACAjjC,EACA,OAAA6S,EAAA,CACA4qB,IAAA,OAEA5qB,EAAAgN,IAAAwjB,EACAxwB,EAAA+qB,cAAAA,EACA/qB,EAAA8mB,WAAAA,EACA9mB,EAAAkqB,aAAAA,EACAlqB,EAAAswB,aAAAA,EACAtwB,EAAAgd,GAAAA,EACAhd,EAAAuwB,SAAAA,EACAvwB,CACA,EAIAyvB,EAAAgB,sBAAA,SAAA/4B,EAAA03B,EAAAsB,EAAAC,EAAA5uB,EAAA6uB,GACA,IAAA5wB,EACA,OACA0vB,WAAA,EACA1vB,EAAA,GACAA,EAAA4N,KAAA,EACA5N,EAAAtI,QAAAA,EACAsI,EAAAvI,MAAAsK,EACA/B,EAAAovB,SAAAA,EACApvB,IAGA,EACAyvB,EAAA5E,aAAA,8CACA4E,EAAAxI,SAAA,gBACAwI,EAAAoB,YAAArB,GACAC,CACA,CA9GA,GAgHAE,GAAA,WACA,SAAAA,EAAA1P,EAAA4J,EAAA/C,GACA,KAAA6D,eAAA,CACA3N,GAAA,EACA8T,QAAA,EACA1B,SAAA,EACA13B,QAAA,EACAq5B,aAAA,EACAt5B,MAAA,EACAw2B,YAAA,GAEA,IAAAptB,EAAA,KACA,GAAAqsB,GAAArD,GAwBAhpB,EAAAwM,IAAAwc,EAAAxc,IACAxM,EAAA+L,IAAAid,EAAAjd,IACA/L,EAAA0rB,IAAA1C,EAAA0C,IACA1rB,EAAAoM,IAAA4c,EAAA5c,KAAA,GACApM,EAAA+M,IAAAic,EAAAjc,QA5BA,CACA,IAAAnf,EAAAo7B,EACAkG,EAAAthC,GAAAA,EAAAshC,IACA36B,EAAA3G,KACAA,EAAAA,EAAA69B,KAAAyD,GAAAthC,GAEAoS,EAAAwM,IAAAgc,GAAApJ,EAAAkP,GAAA1gC,KAAA0d,GACAtL,EAAA+L,IAAA8c,GAAAzJ,EAAA6M,GAAAjD,GAAAp7B,EAAAoS,EAAAwM,OAAAlB,GACA,IAAA1U,EAAAoyB,EAAA2C,KAAAmB,GAAA9D,GACAhpB,EAAAoM,IAAA+gB,GAAAv2B,GAEAlP,EAAAsY,EAAAoM,MACA5N,GAAAwB,EAAAoM,KAAA,SAAAohB,GACAA,EAAA3gB,IAAA2b,GAAApJ,EAAAoO,EAAA3gB,KACA2gB,EAAA1gB,IAAA0b,GAAApJ,EAAAoO,EAAA1gB,IACA,IAEA9M,EAAA0rB,IAAA3C,GAAA3J,EAAA6N,GAAAr2B,IACAoJ,EAAAkwB,aAAAxoC,EAAAsY,EAAAotB,cAAAptB,EAAAotB,YAAA5hB,IAAA,EACAya,IACAA,EAAAzZ,IAAAyZ,EAAAzZ,KAAAxM,EAAAwM,IAEA,CAQA,CAyBA,OAxBAsiB,EAAAtoC,UAAA+oC,YAAA,WACA,IAAApwB,EACAa,EAAA,KACAotB,EAAAptB,EAAAoM,cAAA3kB,OACA+W,GAAAwB,EAAAoM,KAAA,SAAAohB,GAAA,OAAAA,EAAA+B,aAAA,IACAI,GAAAxwB,EAAA,CACAgd,GAAAnc,EAAAmc,GACA8T,QAAAjwB,EAAAiwB,QACA1B,SAAAvuB,EAAAwM,IACA3V,QAAAmJ,EAAA+L,IACAmkB,aAAAlwB,EAAA+M,IACAnW,MAAAoJ,EAAA0rB,KAEAvsB,EAAAiN,IAAAghB,QAAA9gC,EACA6S,GACA,OAAAwwB,CACA,EACAb,EAAAM,oBAAA,SAAAhQ,EAAA4J,GACA,IAAAoE,EAAApE,EAAA5c,cAAA3kB,OACA+W,GAAAwqB,EAAA5c,KAAA,SAAAohB,GAAA,OAAAE,GAAA9gB,IAAA4gB,EAAA,KACAxE,EAAA5c,IACA+jB,EAAA,IAAArB,EAAA1P,EAAAkQ,GAAAA,GAAA,GAAAtG,GAAA,CAAAoE,YAAAA,KACA,OAAA+C,CACA,EACArB,CACA,CApEA,GAsEApB,GAAA,WACA,SAAAA,EAAA0C,EAAAC,GACA,KAAAvG,eAAA,CACAuG,MAAA,EACApa,OAAA,EACA4Z,SAAA,EACAC,SAAA,EACAC,KAAA,GAEA,IAAA/vB,EAAA,KAIA,GAHAA,EAAAuM,IAAA,EAGA,kBAAA6jB,EAAA,CACA,IAAA5C,EAAA4C,EACApwB,EAAAgN,IAAAqjB,EACArwB,EAAAiN,IAAAue,GACAxrB,EAAA6M,IAAAnM,GAAA8sB,GACAxtB,EAAA8M,IAAA,GACA9M,EAAAkN,IAAA,EACA,IAAAojB,EAAA9C,EAAAtjC,MAAAwjC,EAAAC,OACA2C,GAAAA,EAAA9kB,KAAA,IACAxL,EAAAiN,IAAAvM,GAAA4vB,EAAA,KAAAtwB,EAAAiN,IACAjN,EAAA8M,IAAApM,GAAA4vB,EAAA,IACAtwB,EAAAkN,IAAA7c,SAAAigC,EAAA,OAEA,MAEAtwB,EAAAgN,IAAAojB,EAAApjB,IACAhN,EAAAiN,IAAAmjB,EAAAnjB,IACAjN,EAAA6M,IAAAujB,EAAAvjB,IACA7M,EAAA8M,IAAAsjB,EAAAtjB,IACA9M,EAAAkN,IAAAkjB,EAAAljB,IACAlN,EAAAuM,IAAA,EAEAvM,EAAAuwB,aAAAvwB,EAAAiW,OAAAzK,IACAxL,EAAAuwB,aAAAvwB,EAAA8vB,SAAAtkB,IACAxL,EAAAuwB,aAAAvwB,EAAA6vB,SAAArkB,IAEAxL,EAAAuM,KAAAmhB,EAAA8C,SACAxwB,EAAAuwB,aAAAvwB,EAAAqwB,MAAApoC,WAAAujB,IACAxL,EAAAuwB,aAAAvwB,EAAA+vB,KAAA9nC,WAAAujB,GACA,CAkBA,OAjBAkiB,EAAA0B,oBAAA,SAAA5B,GACA,WAAAE,EAAAF,EAAA,KACA,EACAE,EAAAlnC,UAAA+oC,YAAA,WACA,IAAAvvB,EAAA,KACA,OACAqwB,MAAArwB,EAAAgN,IACAiJ,OAAAjW,EAAAiN,IACA4iB,SAAA7vB,EAAA6M,IACAijB,SAAA9vB,EAAA8M,IACAijB,KAAA/vB,EAAAkN,IAEA,EAGAwgB,EAAAC,MAAA,uFACAD,EAAA8C,SAAA,GACA9C,CACA,CA7DA,GC5cA+C,GAAA,WACA,SAAAA,IAIA,KAAA3G,eAAA,CACA3hC,KAAA,EACAuoC,KAAA,EACAjqC,MAAA,EACAuT,MAAA,EACA0wB,IAAA,EACAhR,IAAA,EACAiX,OAAA,GAKA,KAAAD,KAAA,CACA,CACA,OAAAD,CACA,CApBA,GCIAG,GAAA,WAIA,SAAAA,EAAAxR,EAAAj3B,EAAA1B,EAAAuT,EAAA0wB,EAAAhR,EAAAiX,EAAA1K,EAAAoD,GACA,KAAAS,eAAA,CACAC,IAAA,EACA8G,QAAA,EACA5K,WAAA,GAEA,IAAAjmB,EAAA,KACAA,EAAA+pB,IAAA,EACA,IAAA+G,EAAA,IAAAL,GACAK,EAAA9kB,IAAAhS,EAAA,EAAAA,OAAA1N,EACAwkC,EAAApX,IAAA4Q,MAAA5Q,IAAA,OAAAA,OAAAptB,EAAAotB,EACAoX,EAAApG,IAAAJ,MAAAI,IAAA,OAAAA,OAAAp+B,EAAAo+B,EACAoG,EAAAhlB,IAAA0c,GAAApJ,EAAAj3B,IAAAmjB,GACAwlB,EAAArqC,MAAAA,EACAqqC,EAAAH,OAAArG,MAAAqG,IAAA,OAAAA,OAAArkC,EAAAqkC,EACA3wB,EAAA6wB,QAAA,CAAAC,GACA9wB,EAAAqM,IAAA6c,GAAA9J,EAAA6G,GACAjmB,EAAAsM,IAAA8c,GAAAhK,EAAAiK,EACA,CAGA,OAFAuH,EAAA5G,aAAA,2CACA4G,EAAAxK,SAAA,aACAwK,CACA,CA1BA,GCFAG,GAAA70B,MAAA,GACA80B,GAAA,EAGAC,GAAA,2BACO,SAAPC,GAAAvI,GACA,IAAAwI,EAAAH,GACAI,EAAAH,GACAI,EAAAD,EAAAD,GAgBA,OAfAJ,GAAAtgC,cAIA2gC,EAAAD,KAEAE,EAAAD,EAAAD,GAAAJ,GAAAtgC,cAAA,MAJA4gC,EAAA,CAAAC,KAAAC,GAAA5I,GAAA,IAMA0I,EAAAG,KAAA7I,EAEAwI,IACAA,GAAAC,EAAA5lB,MACA2lB,EAAA,GAEAH,GAAAG,EACAE,CACA,CAwBO,SAAPE,GAAA5I,EAAA8I,GACA,IAAAC,EAAAC,GAAAhJ,EAAA8I,IAAA,GACA,GAAAC,EAAA,CACA,IAAAxnC,EAAAwnC,EAAAxnC,MAAA,+CACA,SAAAA,GAAAA,EAAAshB,IAAA,GAAAvX,EAAA/J,EAAA,KAAAA,EAAA,GAAAshB,IAAA,EACA,OAAAthB,EAAA,IAAAA,EAAA,OAEA,CACA,OAAAwnC,CACA,CACO,SAAPC,GAAAhJ,EAAA8I,GACA,IAAAr+B,EAAA,KACA,GAAAu1B,EAAA,CACA,IAAAz+B,EAAAy+B,EAAAz+B,MAAA,gDACA,SAAAA,GAAAA,EAAAshB,IAAA,GAAAvX,EAAA/J,EAAA,KAAAA,EAAA,GAAAshB,IAAA,IACApY,EAAAlJ,EAAA,OACAunC,GAAAvnC,EAAAshB,IAAA,IACA,IAAAomB,GAAA1nC,EAAA,QAAAuhB,MACAomB,EAAA3nC,EAAA,QAEA,SAAA0nC,GAAA,QAAAC,GAGA,UAAAD,GAAA,SAAAC,KAFAA,EAAA,IAKAz+B,GAAAy+B,CACA,CAEA,CACA,OAAAz+B,CACA,CC1EA,IAAA0+B,GAAA,CACA1mB,GAAAC,GACA,8CAAAA,GACA,2CAAAA,IAGO,SAAP0mB,GAAAC,GACA,WAAAzzB,GAAAuzB,GAAAE,EAAAvmB,MACA,CAoFO,SAAPwmB,GAAA7S,EAAA8S,EAAAjc,EAAAkc,GACA,IAAA3sC,EAAA2C,EAAAgqC,EAAA5lC,EAAA4lC,EACA,GAAAD,GAAAA,EAAA1mB,IAAA,GACA,IAAA4mB,EAAAlB,GAAAgB,GAEA,GADA1sC,EAAA4sC,EAAAd,MACAnpC,EACA,SAAAiqC,EAAAlmB,IAAA,CACA,IAAAmmB,EAAA,IAAAD,EAAAE,SAAA9mB,IAAA,IAAA4mB,EAAAlmB,IACA,MAAAmmB,EAAAzW,OAAA,KACAyW,EAAA,IAAAA,GAEA9lC,EAAA6lC,EAAAlmB,IACA/jB,EAAAqgC,GAAApJ,EAAAnJ,EAAAA,EAAA,IAAAoc,EAAAA,EACA,MAEAlqC,EAAAqgC,GAAApJ,EAAA8S,EAGA,MAEA1sC,EAAA2sC,EACAhqC,EAAAgqC,EAEA,OACA3sC,OAAAA,EACA2C,KAAAA,EACAoE,KAAAA,EAEA,CC5HA,IAAAgmC,GAAA,WAIA,SAAAA,EAAAnT,EAAAjD,EAAA+V,EAAAC,EAAA1rC,EAAA+rC,EAAAC,EAAAxc,EAAAyc,EAAAC,EAAA1M,EAAAoD,QACA,IAAAqJ,IAAAA,EAAA,QACA,KAAA5I,eAAA,CACA3N,GAAA,EACA4N,IAAA,EACA5hC,KAAA,EACAsqC,WAAA,EACA1H,SAAA,EACAyH,QAAA,EACAjmC,KAAA,EACA/G,OAAA,EACAqK,KAAA,EACAo2B,WAAA,EACAoD,aAAA,EACAqH,KAAA,EACAjqC,MAAA,EACAuT,MAAA,EACA0wB,IAAA,EACAhR,IAAA,EACAiX,OAAA,EACAiC,eAAA,EACAC,iBAAA,EACAV,YAAA,EACAW,mBAAA,GAEA,IAAA9yB,EAAA,KACAA,EAAA+pB,IAAA,EACA/pB,EAAAmc,GAAAA,EACAnc,EAAAmN,IAAAid,GAAA3jC,GACAuZ,EAAAwyB,QAAAA,EACAxyB,EAAAyyB,WAAAA,EAAA,GACAzyB,EAAAnQ,KAAA24B,GAAApJ,EAAAsT,GACA,IAAAK,EAAAd,GAAA7S,EAAA8S,EAAAjc,EAAAkc,GACAnyB,EAAAzT,KAAAm8B,GAAAtJ,EAAA+S,IAAAY,EAAAxmC,KACAyT,EAAAxa,OAAAgjC,GAAApJ,EAAA2T,EAAAvtC,QACAmtC,IACA3yB,EAAAxa,OAAA,GAAAhB,OAAAwb,EAAAxa,OAAA,OAAAhB,OAAAmuC,IAEA3yB,EAAA8L,IAAA0c,GAAApJ,EAAA2T,EAAAjnB,KACA9L,EAAAqM,IAAA6c,GAAA9J,EAAA6G,GACAjmB,EAAAsM,IAAA8c,GAAAhK,EAAAiK,EACA,CAGA,OAFAkJ,EAAAvI,aAAA,qDACAuI,EAAAnM,SAAA,uBACAmM,CACA,CAjDA,GCwBAS,GAAA,2BCvBAC,GAAA,KACAC,GAAA,cACAC,GAAA,mBACAC,GAAA,cACAC,GAAA,sBACAC,GAAA,SAQAC,IAFAnX,GAAA,iBACAA,GAAA,iBACA,YACAoX,GAAA,SACAC,GAAA,EACAC,GAAApX,GAAA,UACAqX,GAAA,sBACA,SAAAC,GAAAzrC,GACA,OAAAA,GAAAA,EAAA+nB,IACA/nB,EAAA+nB,IAAA,+BAAAsB,IAEArpB,CACA,CACA,SAAA0rC,GAAAC,EAAAC,GACA,IAAA50B,EACA,GAAA40B,EAAA,CACA,IAAAC,EAAAxiB,GACA9pB,EAAAqsC,IACAC,EAAAxiB,GACApT,GAAA21B,GAAA,SAAA5rC,GACAA,EAAAyrC,GAAAzrC,GACAA,IACA,MAAAA,EAAA,KACAA,EAAA,IAAAA,GAEA6rC,GAAA7rC,EAEA,KAGA6rC,EAAAJ,GAAAG,GAEAC,IACA,MAAAA,EAAA,KACAA,EAAA,IAAAA,GAGAF,GAAAA,GAAAtiB,IAAAwiB,EAEA,CACA,IAAAC,EAAAN,GAAAjF,KAAAoF,GAAAtiB,KAAA,GACA,OAAArS,EAAA,GACAA,EAAAiR,IAAA6jB,EAAA,GACA90B,EAAAylB,IAAAqP,EAAA,IAAAziB,IAAAvnB,QAAAspC,GAAA,KAAAtpC,QAAAupC,GAAAhiB,IAAAjG,IAAA,KAAA2oB,OAAApqC,KAAA,KACAqV,CACA,CA6BA,SAAAg1B,GAAA3uC,EAAA4uC,EAAA5X,QACA,IAAAA,IAAAA,GAAA,GACA,IAAA6X,EAAAX,GAAAn+B,IAAA/P,EAAA8tC,GAAA,GAAA9W,GACA8X,EAAAD,EAAAD,GAIA,OAHAE,IACAA,EAAAD,EAAAD,GAAA,IAEAE,CACA,CACA,SAAAC,GAAAnuC,EAAAguC,EAAAI,EAAAC,GACAruC,GAAAguC,GAAAA,EAAAhkB,MACAhqB,EAAAitC,IACAjtC,EAAAitC,IAAAe,EAAAhkB,IAAAokB,EAAAC,GAEAruC,EAAAgtC,KACAhtC,EAAAgtC,IAAAH,GAAAmB,EAAAhkB,IAAAokB,GAGA,CACA,SAAAE,GAAAtuC,EAAAguC,EAAAI,EAAAC,GACA,IAAArhC,GAAA,EAaA,OAZAhN,GAAAguC,GAAAA,EAAAhkB,KAAAokB,IACApuC,EAAA+sC,KAEA/sC,EAAA+sC,IAAAiB,EAAAhkB,IAAAokB,EAAAC,GACArhC,GAAA,GAEAhN,EAAA8sC,MAEA9sC,EAAA8sC,IAAAD,GAAAmB,EAAAhkB,IAAAokB,GACAphC,GAAA,IAGAA,CACA,CACA,SAAAuhC,GAAAnvC,EAAAovC,EAAAR,EAAAS,GACA,IAAAv2B,EAAAs2B,EAAAppB,IACA,MAAAlN,IAAA,CACA,IAAA4tB,EAAA0I,EAAAt2B,GACA4tB,IACAkI,EAAAxP,IAAAwP,EAAAxP,KAAAsH,EAAAkI,QAAAxP,IACAiQ,IAAAA,EAAA3I,KACAqI,GAAA/uC,EAAA0mC,EAAAkI,QAAAlI,EAAA7b,IAAA6b,EAAA4I,SAEAF,EAAA9mB,IAAAxP,EAAA,IAIA,CACA,CACA,SAAAy2B,GAAAvvC,EAAA4uC,EAAAS,GACA,GAAAT,EAAAhkB,IACAukB,GAAAnvC,EAAA2uC,GAAA3uC,EAAA4uC,EAAAhkB,KAAAgkB,EAAAS,OAEA,CACA,IAAAG,EAAAtB,GAAAn+B,IAAA/P,EAAA8tC,GAAA,IACAv+B,GAAAigC,GAAA,SAAAC,EAAAL,GACAD,GAAAnvC,EAAAovC,EAAAR,EAAAS,EACA,IAEA,IAAAt9B,GAAAy9B,GAAAxpB,KACAkoB,GAAAjX,KAAAj3B,EAAA8tC,GAEA,CACA,CACO,SAAP4B,GAAAC,EAAAC,GACA,IAAAC,EAcA,OAbAD,GAEAC,EADA3tC,EAAA0tC,GACA,CAAAD,GAAA3wC,OAAA4wC,GAGA,CAAAD,EAAAC,GAGAC,EAAAxB,GAAA,KAAAwB,GAAAzQ,GAAArZ,IAAA,MAGA8pB,EAAAF,EAEAE,CACA,CAYO,SAAPC,GAAA9vC,EAAAsuC,EAAAU,EAAAT,EAAAU,GACA,IAAAt1B,OACA,IAAAs1B,IAAAA,GAAA,GACA,IAAArhC,GAAA,EACA,GAAA5N,EACA,IACA,IAAA4uC,EAAAP,GAAAC,EAAAC,GAEA,GADA3gC,EAAAshC,GAAAlvC,EAAA4uC,EAAAI,EAAAC,GACArhC,GAAAsgC,GAAAnX,OAAA/2B,GAAA,CACA,IAAA+vC,GAAAp2B,EAAA,CACAq2B,KAAA/B,KACAW,QAAAA,GAEAj1B,EAAAkR,IAAAmkB,EACAr1B,EAAA21B,QAAAL,EACAt1B,GACAg1B,GAAA3uC,EAAA4uC,EAAAvkC,MAAA+b,IAAA2pB,EACA,CACA,CACA,MAAA/nC,GACA,CAGA,OAAA4F,CACA,CAaO,SAAPqiC,GAAAjwC,EAAAsuC,EAAAU,EAAAT,EAAAU,GAEA,QADA,IAAAA,IAAAA,GAAA,GACAjvC,EACA,IACA,IAAAkwC,EAAA7B,GAAAC,EAAAC,GACA4B,GAAA,EACAZ,GAAAvvC,EAAAkwC,GAAA,SAAAE,GACA,UAAAF,EAAA9Q,IAAA4P,IAAAoB,EAAAvlB,MAAAmkB,KACAmB,GAAA,GACA,EAGA,IACAA,GAEApB,GAAA/uC,EAAAkwC,EAAAlB,EAAAC,EAEA,CACA,MAAAjnC,GACA,CAGA,CClPA,SAAAqoC,GAAArwC,EAAAuuC,GACA0B,GAAAjwC,EAAA,UAAAuuC,EACA,CAKO,SAAP+B,GAAAC,GACA,IAAAhF,EAAA70B,KACA85B,EAAA15B,KACA25B,GAAA,EACAC,EAAA,GAGAC,EAAA,GACAH,GAAAliC,EAAAkiC,EAAAI,SAAAJ,EAAAI,SACAD,EAAA,GAGA,IAAAE,EAAA,EAGAC,EAAAC,IACAC,EAAAtB,GAAA9Y,GAAA,mBAAA2Z,GACA,IAIA,GAHAU,EAAAr6B,QACA65B,GAAA,GAEAlF,EAAA,CAEA,IAAAvrC,EAAAurC,EAAA2F,MAAA3F,EACAvrC,EAAAmxC,UACAF,EAAAjxC,KACAywC,GAAA,EAGA,CACA,CACA,MAAAzoC,GAEAyoC,GAAA,CACA,CACA,SAAAQ,EAAAjxC,GACA,IAAAoxC,GAAA,EAOA,OANApxC,IACAoxC,EAAAtB,GAAA9vC,EAAA,SAAAqxC,EAAAL,GACAI,GACAtB,GAAA9vC,EAAA,UAAAsxC,EAAAN,IAGAI,CACA,CACA,SAAAG,IACA,OAAAT,CACA,CACA,SAAAC,IACA,WAAAF,GAAA,IAAAF,CAIA,CACA,SAAAa,IAEA,IAAAC,EAAAV,IACAD,IAAAW,IACAX,EAAAW,EAEA74B,GAAA83B,GAAA,SAAAvrC,GACA,IAAAusC,EAAA,CACAC,SAAAb,EACAH,OAAAA,EACAE,OAAAA,GAEA,IACA1rC,EAAAusC,EACA,CACA,MAAA1pC,GACA,CAEA,IAEA,CACA,SAAA4pC,EAAAH,GACAZ,EAAAY,EACAD,GACA,CACA,SAAAH,IACAV,EAAA,EACAa,GACA,CACA,SAAAF,IACAX,EAAA,EACAa,GACA,CACA,SAAAK,IACA,IAAAC,EAAAl7B,KACA,GAAAk7B,GAAArB,EAAA,CAEA,GADAJ,GAAAyB,EAAAd,GACAzF,EAAA,CAEA,IAAAvrC,EAAAurC,EAAA2F,MAAA3F,EACAr9B,EAAAlO,EAAAmxC,WACAd,GAAArwC,EAAAgxC,EAEA,CACAP,GAAA,CACA,CACA,CACA,SAAAsB,EAAA5sC,GAGA,OAFAurC,EAAAtqB,IAAAjhB,GAEA,CACAu4B,GAAA,WACA,IAAAsU,EAAAtB,EAAAnvC,QAAA4D,GACA,OAAA6sC,GAAA,EACAtB,EAAA7H,OAAAmJ,EAAA,QAGA,CAEA,EAEA,CACA,OACAL,SAAAJ,EACAU,YAAA,kBAAAxB,CAAA,EACAyB,OAAAL,EACAE,YAAAA,EACAH,eAAAA,EAEA,CC5HO,IAAPO,GAAAhgC,GAUAigC,GAAA7/B,GCfA8/B,GAAAF,GAAA,CACAG,aAAA,EACAC,eAAA,ICCAC,IDCAL,GAAA,CACAM,GAAA,EACAC,WAAA,EACAC,IAAA,IAKAR,GAAA,CAIAS,OAAA,EAIAC,SAAA,SCjBA/rC,GACAgsC,GAAA,GAiBA,SAAAC,GAAAC,GACA,IACA,GAAA1kC,EAAAgI,MACA,YAEA,IAAAkmB,GAAA,IAAA7hB,MAAAwL,MACA8sB,EAAAC,GAAAF,IAAAX,GAAAC,aAAA,iCACApwB,EAAA4wB,GAAAtW,EACAyW,EAAAE,QAAAjxB,EAAAsa,GACA,IAAA4W,EAAAH,EAAAI,QAAAnxB,KAAAsa,EAEA,GADAyW,EAAA5sB,IAAAnE,IACAkxB,EACA,OAAAH,CAEA,CACA,MAAAzP,GACA,CAEA,WACA,CAKA,SAAA8P,KACA,OAAAC,KACAR,GAAAV,GAAAE,gBAEA,IACA,CAQO,SAAPiB,GAAAC,GACAX,GAAAW,GAAA,EACA,CA4DO,SAAPF,GAAAG,GAIA,OAHAA,QAAA5sC,IAAA0rC,MACAA,KAAAO,GAAAV,GAAAE,iBAEAC,EACA,CAUO,SAAPmB,GAAA/Z,EAAAj3B,GACA,IAAAswC,EAAAK,KACA,UAAAL,EACA,IACA,OAAAA,EAAAI,QAAA1wC,EACA,CACA,MAAAqF,GACAwqC,IAAA,EACAhQ,GAAA5I,EAAA,+CAAA7L,GAAA/lB,GAAA,CAAAw7B,UAAAxyB,GAAAhJ,IACA,CAEA,WACA,CACO,SAAP4rC,GAAAha,EAAAj3B,EAAAoE,GACA,IAAAksC,EAAAK,KACA,UAAAL,EACA,IAEA,OADAA,EAAAE,QAAAxwC,EAAAoE,IACA,CACA,CACA,MAAAiB,GACAwqC,IAAA,EACAhQ,GAAA5I,EAAA,gDAAA7L,GAAA/lB,GAAA,CAAAw7B,UAAAxyB,GAAAhJ,IACA,CAEA,QACA,CACO,SAAP6rC,GAAAja,EAAAj3B,GACA,IAAAswC,EAAAK,KACA,UAAAL,EACA,IAEA,OADAA,EAAA5sB,IAAA1jB,IACA,CACA,CACA,MAAAqF,GACAwqC,IAAA,EACAhQ,GAAA5I,EAAA,uDAAA7L,GAAA/lB,GAAA,CAAAw7B,UAAAxyB,GAAAhJ,IACA,CAEA,QACA,CC/KO,IAAP8rC,GAAA1B,GAAA,CACA2B,qBAAA,sBACAC,wBAAA,YACAC,0BAAA,oBACAC,gBAAA,iBACAC,kBAAA,kBACAC,iBAAA,iBACAC,iBAAA,kBACAC,6BAAA,YACAC,8BAAA,wBCAA,SAAAC,GAAApmB,EAAA8J,EAAAX,GACA,OAAAnJ,GAAA9f,EAAA8f,GACA8J,EAEAppB,EAAAsf,GACAA,EAEA,SAAAtd,GAAAsd,GAAAnI,KACA,CAOO,SAAPwuB,GAAAvc,GACA,OACAM,KAAA,EACAhrB,EAAA0qB,EAEA,CAoBO,SAAPwc,GAAAjqC,EAAAytB,EAAAyc,GACA,OACAvd,GAAAud,EACAxd,MAAA1sB,EACA+C,EAAA0qB,EAEA,CAQO,SAAP0c,GAAA1c,EAAAyc,GACA,OACAvd,GAAAud,EACA1kC,IAAAukC,GACAhnC,IAAA0qB,EAEA,CClEA,IAAA2c,GAAA,MACAC,GAAA,mBACAC,GAAA,qBACAC,GAAA,KACAC,GAAA,WACA,SAAAA,EAAAtyC,EAAAuyC,EAAA5S,GACA,IAOA6S,EAPA36B,EAAA,MACAA,EAAAlG,MAAAoG,KACAF,EAAA8L,IAAA3jB,EACA6X,EAAAyP,IAAAqY,EACA9nB,EAAAyQ,IAAA,qBACAvc,EAAAwmC,KAGA7kC,GAAAmK,EAAA,WACA3K,EAAA,WAOA,OALAslC,GAAAzmC,EAAAwmC,KACAC,EAAAD,IAEAA,EAAA,MAEAC,CACA,IAGA36B,EAAA2Q,IAAA,SAAA7qB,GACA,OAAAA,EAEAA,IAAA20C,EAAAH,KAAAx0C,IAAA20C,EAAAF,IACAv6B,EAAAla,IAEAka,EAAAq6B,KAAA,IAAAv0C,GAEA,IACA,EACAka,EAAA4Q,IAAA,SAAA9qB,EAAAW,GACA,GAAAX,EAEA,GAAAA,IAAA20C,EAAAH,IAEAt6B,EAAAla,KACAka,EAAAyQ,IAAA,sBAEAzQ,EAAAla,GAAAW,OAEA,GAAAX,IAAA20C,EAAAF,IACAv6B,EAAAla,GAAAW,MAEA,CACA,IAAAqb,EAAA9B,EAAAq6B,IAAAr6B,EAAAq6B,KAAA,GACAv4B,EAAAhc,GAAAW,CACA,CAEA,EACAuZ,EAAA6Q,IAAA,WACA,IAAA+pB,EAAA,EACAC,EAAA76B,EAAA2Q,IAAA8pB,EAAAF,KACA,GAAA7yC,EAAAmzC,GACA,QAAAlzB,EAAA,EAAAA,EAAAkzB,EAAArvB,IAAA7D,IAAA,CACA,IAAAmzB,EAAAD,EAAAlzB,GACAmzB,IACAF,GAAAE,EAAAlsB,IAEA,CAEA5O,EAAA4O,IAAA1O,KAAAF,EAAAlG,MACAkG,EAAA+6B,OAAA/6B,EAAA4O,IAAAgsB,EACA56B,EAAA6Q,IAAA,YACA,CACA,CAGA,OAFA4pB,EAAAO,iBAAA,SACAP,EAAAQ,mBAAA,YACAR,CACA,CAtEA,GAwEAS,GAAA,WACA,SAAAA,EAAAC,GAKA,KAAAr5B,IAAA,GACAgI,GAAAoxB,EAAA,eAAAl7B,GACAA,EAAAo7B,OAAA,SAAAj5B,EAAAu4B,EAAA5S,GAGA,WAAA2S,GAAAt4B,EAAAu4B,EAAA5S,EACA,EACA9nB,EAAAq7B,KAAA,SAAAC,GACAA,IACAA,EAAAzqB,MACAsqB,GAAAjnC,EAAAinC,EAAA/oB,MACA+oB,EAAA/oB,IAAAkpB,GAGA,EACAt7B,EAAA4Q,IAAA,SAAA9qB,EAAAW,GACA,GAAAX,EAAA,CACA,IAAAgc,EAAA9B,EAAAq6B,IAAAr6B,EAAAq6B,KAAA,GACAv4B,EAAAhc,GAAAW,CACA,CACA,EACAuZ,EAAA2Q,IAAA,SAAA7qB,GACA,OAAAka,EAAAq6B,KAAA,IAAAv0C,EACA,CACA,GACA,C,oBAmCA,CAlEA,GAoEAy1C,GAAA,mBASO,SAAPC,GAAAC,EAAAC,EAAA5oC,EAAAoO,EAAA4mB,GACA,GAAA2T,EAAA,CACA,IAAAE,EAAAF,EAKA,GAJAE,EAAAnpB,MAEAmpB,EAAAA,EAAAnpB,OAEAmpB,EAAA,CACA,IAAAC,OAAA,EACAC,EAAAF,EAAAhrB,IAAA4qB,IACA,IAEA,GADAK,EAAAD,EAAAP,OAAAM,IAAAx6B,EAAA4mB,GACA8T,EAAA,CACA,GAAAC,GAAAD,EAAAhrB,MACAgrB,EAAAhrB,IAAA6pB,GAAAH,IAAAuB,GACAA,EAAAlrB,KAAAkrB,EAAAjrB,KAAA,CACA,IAAApkB,EAAAqvC,EAAAlrB,IAAA8pB,GAAAF,KACA/tC,IACAA,EAAA,GACAqvC,EAAAjrB,IAAA6pB,GAAAF,IAAA/tC,IAEAA,EAAAof,IAAAgwB,EACA,CAIA,OADAD,EAAA/qB,IAAA2qB,GAAAK,GACA9oC,EAAA8oC,EACA,CACA,CACA,MAAA56B,GACA46B,GAAAA,EAAAhrB,KACAgrB,EAAAhrB,IAAA,YAAA5P,EAEA,SAGA46B,GACAD,EAAAN,KAAAO,GAGAD,EAAA/qB,IAAA2qB,GAAAM,EACA,CACA,CACA,CACA,OAAA/oC,GACA,CAYO,SAAPgpC,KACA,OAAAtB,EACA,CCpNA,IAGAuB,GAAA,mCACAC,GAAA,mBAEA,SAAAC,GAAAx1C,EAAA4B,EAAA6zC,GACA,SAAAz1C,GAAAA,EAAA+kB,MAAAnjB,GAAA5B,IAAAy1C,MACAz1C,EAAAyD,MAAA,cAGA,CAkFO,SAAPiyC,GAAA11C,GACA,OAAAw1C,GAAAx1C,EAAA,GAAAs1C,GACA,CAQO,SAAPK,GAAA31C,GACA,OAAAw1C,GAAAx1C,EAAA,GAAAu1C,GACA,CCvGA,IAAAK,GAAA/f,GAAA,UACO,SAAPggB,GAAAC,GACA,OAAAF,GAAA9mC,IAAAgnC,EAAA,cACA,CAQO,SAAPC,GAAAC,EAAAC,GAEA,IAGAC,EAHAC,EAAA,GACAC,EAAA,KACAC,EAAAL,EAAA5sB,MAEA,MAAAitB,EAAA,CACA,IAAAC,EAAAD,EAAApuB,MACA,GAAAquB,EAAA,CACAF,GAAAA,EAAA/sB,KAAAitB,EAAAhrB,KAEA8qB,EAAA/sB,IAAAitB,GAEAJ,EAAAL,GAAAS,GACA,IAAAC,IAAAL,EAAAtuB,IACA0uB,EAAA1uB,MACA2uB,EAAAD,EAAA1uB,OAEA2uB,GACAJ,EAAAhxB,IAAAmxB,GAEAF,EAAAE,EACAD,EAAAA,EAAAjtB,KACA,CACA,CAEAzR,GAAAw+B,GAAA,SAAAG,GACA,IAAAzW,EAAAmW,EAAA/qB,MACAqrB,EAAA9uB,IAAAwuB,EAAAQ,SAAA3W,EAAAoW,EAAAD,EAAA5sB,OACA8sB,EAAAL,GAAAS,GAEAA,EAAArrB,KAAAirB,EAAAjrB,MACAirB,EAAAjrB,IAAA4U,GAEAqW,EAAAtuB,KAAA,SACAsuB,EAAAptB,GACA,GACA,CACO,SAAP2tB,GAAAC,GAEA,OAAAA,EAAAjJ,MAAA,SAAAkJ,EAAAC,GACA,IAAAjqC,EAAA,EACA,GAAAiqC,EAAA,CACA,IAAAC,EAAAD,EAAAtrB,IACAqrB,EAAArrB,IACA3e,EAAAkqC,EAAAF,EAAAprB,IAAAqrB,EAAArrB,IAAA,EAEAsrB,IACAlqC,GAAA,EAEA,MAEAA,EAAAgqC,EAAA,KAEA,OAAAhqC,CACA,GAEA,CAgCO,SAAPmqC,GAAAC,GACA,IAAAC,EAAA,GACA,OACAC,QAAA,WACA,OAAAD,EAAA3xB,GACA,EACA6xB,QAAA,SAAAjoC,GACA8nC,GAAAA,EAAAG,QAAAjoC,GACA+nC,EAAA3xB,IAAApW,CACA,EACAkoC,WAAA,WACA,OAAAH,EAAArsB,GACA,EACAysB,WAAA,SAAAnoC,GACA8nC,GAAAA,EAAAK,WAAAnoC,GACAymC,GAAAzmC,KACA+nC,EAAArsB,IAAA1b,EAEA,EACAooC,UAAA,WACA,OAAAL,EAAApsB,GACA,EACA0sB,UAAA,SAAAroC,GACA8nC,GAAAA,EAAAO,UAAAroC,GACA0mC,GAAA1mC,KACA+nC,EAAApsB,IAAA3b,EAEA,EACAsoC,cAAA,WACA,OAAAP,EAAAnsB,GACA,EACA2sB,cAAA,SAAAC,GACAV,GAAAA,EAAAS,cAAAC,GACAT,EAAAnsB,IAAA4sB,CACA,EAEA,CCpIA,IAAAC,GAAA,uBACAC,GAAA,UACAC,GAAA,aACAC,GAAA,EACA,SAAAC,GAAAzB,EAAAxW,EAAAkY,GACA,MAAA1B,EAAA,CACA,GAAAA,EAAApuB,QAAA8vB,EACA,OAAA1B,EAEAA,EAAAA,EAAAjtB,KACA,CAEA,OAAA4uB,GAAA,CAAAD,GAAAlY,EAAArC,QAAA,GAAAqC,EACA,CASA,SAAAoY,GAAAC,EAAA7hB,EAAAwJ,EAAAkY,GAGA,IAAAI,EAAA,KACAC,EAAA,GACA/hB,IACAA,EAAAkH,GAAA,QAAAsC,EAAA1Y,MAEA,OAAA4wB,IAEAI,EAAAJ,EAAAD,GAAAI,EAAArY,EAAAkY,GAAAG,GAEA,IAAAr7C,EAAA,CACAw7C,MAAAC,EACAj9B,IAAA,CACAwkB,KAAA,WACA,OAAAA,CACA,EACA0Y,QAAA,WACA,OAAA3Y,GAAAC,EAAAxJ,EAAAQ,IACA,EACA2f,OAAA,WACA,OAAAngB,EAAAQ,GACA,EACA2hB,UAAAC,EACAC,UAAAC,EACAC,QAAA,WACA,QAAAT,CACA,EACAU,QAAA,WACA,OAAAV,CACA,EACAW,QAAA,SAAAC,GACAZ,EAAAY,CACA,EACAC,QAAAC,EACAC,WAAAC,IAGA,SAAAA,EAAAD,EAAAE,GAEA,IADA,IAAAtgB,EAAA,GACAC,EAAA,EAAAA,EAAA95B,UAAAC,OAAA65B,IACAD,EAAAC,EAAA,GAAA95B,UAAA85B,GAEAmgB,GACAd,EAAAjzB,IAAA,CACA9Y,KAAA6sC,EACA/2C,KAAA8K,EAAAmsC,GAAAv8C,EAAAwe,IAAA+9B,EACAtgB,KAAAA,GAGA,CACA,SAAAwf,IACA,IAAAe,EAAAlB,EAGA,GADAA,EAAAkB,EAAAA,EAAAjwB,MAAA,MACAiwB,EAAA,CACA,IAAAH,EAAAd,EACAc,GAAAA,EAAAn0B,IAAA,IACApN,GAAAuhC,GAAA,SAAAI,GACA,IACAA,EAAAjtC,KAAAlP,KAAAm8C,EAAAn3C,KAAAm3C,EAAAxgB,KACA,CACA,MAAA/xB,GACAw6B,GAAA1B,EAAA1Y,IAAA,iDAAApX,GAAAhJ,GACA,CACA,IACAqxC,EAAA,GAEA,CACA,OAAAiB,CACA,CACA,SAAAE,EAAAxZ,EAAAyZ,GACA,IAAAC,EAAA,KACA5iB,EAAAR,EAAAQ,IACA,GAAAA,GAAAkJ,EAAA,CACA,IAAA2Z,EAAA7iB,EAAAzL,KACAsuB,GAAAF,IACAE,EAAA,IAGA7iB,EAAAzL,IAAAsuB,EAEAA,EAAArjB,EAAApY,IAAA4Y,EAAAzL,IACAsuB,IACAD,EAAAC,EAAA3Z,IACA0Z,GAAAD,IACAC,EAAA,IAGAC,EAAA3Z,GAAA0Z,EAEAA,EAAApjB,EAAApY,IAAAy7B,EAAA3Z,GAEA,CACA,OAAA0Z,CACA,CACA,SAAAhB,EAAA1Y,EAAA1C,GACA,IAAAsc,EAAAJ,EAAAxZ,GAAA,GAeA,OAdA1C,GAGA/uB,GAAA+uB,GAAA,SAAArQ,EAAAiK,GAEA,GAAA5pB,EAAAssC,EAAA3sB,IAAA,CACA,IAAAyK,EAAApB,EAAAQ,IAAA7J,IACAyK,GAAApqB,EAAAoqB,KACAkiB,EAAA3sB,GAAAyK,EAEA,CACAT,GAAAX,EAAAsjB,EAAA3sB,EAAAiK,EACA,IAEAZ,EAAApP,IAAA0yB,EAAAtc,EACA,CACA,SAAAsb,EAAA5Y,EAAA/S,EAAAiK,GAEA,IAAA9J,OADA,IAAA8J,IAAAA,GAAA,GAEA,IAAA2iB,EAAAL,EAAAxZ,GAAA,GACA8Z,EAAAxjB,EAAAQ,IAOA,OANA+iB,IAAAA,EAAA5sB,IAAA3f,EAAAusC,EAAA5sB,KAGA6sB,EAAA7sB,IAAA3f,EAAAwsC,EAAA7sB,MACAG,EAAA0sB,EAAA7sB,IAHAG,EAAAysB,EAAA5sB,GAKAG,IAAA9f,EAAA8f,GAAAA,EAAA8J,CACA,CACA,SAAAgiB,EAAAxsC,GAEA,IAAAssC,EACA,MAAAA,EAAAl8C,EAAAw7C,QAAA,CACA,IAAAvC,EAAAiD,EAAA9wB,MACA6tB,GAEArpC,EAAAqpC,EAEA,CACA,CACA,OAAAj5C,CACA,CAQO,SAAPi9C,GAAA5B,EAAArhB,EAAAgJ,EAAAkY,GACA,IAAAva,EAAAD,GAAA1G,GACAkjB,EAAA9B,GAAAC,EAAA1a,EAAAqC,EAAAkY,GACAl7C,EAAAk9C,EAAA1+B,IACA,SAAA2+B,EAAAC,GACA,IAAAlB,EAAAgB,EAAA1B,QAKA,OAJAU,GAEAA,EAAAztB,IAAA2uB,EAAAp9C,IAEAk8C,CACA,CACA,SAAAmB,EAAAxD,EAAAqB,GAKA,YAJA,IAAArB,IAAAA,EAAA,MACAz1C,EAAAy1C,KACAA,EAAAsB,GAAAtB,EAAAlZ,EAAA3G,IAAAgJ,EAAAkY,IAEA+B,GAAApD,GAAA75C,EAAAusB,MAAAoU,EAAA3G,IAAAgJ,EAAAkY,EACA,CAGA,OAFAl7C,EAAAurB,IAAA4xB,EACAn9C,EAAAgsB,IAAAqxB,EACAr9C,CACA,CAQO,SAAPs9C,GAAAjC,EAAArY,EAAAkY,GACA,IAAAva,EAAAD,GAAAsC,EAAArC,QACAuc,EAAA9B,GAAAC,EAAA1a,EAAAqC,EAAAkY,GACAl7C,EAAAk9C,EAAA1+B,IACA,SAAA2+B,EAAAI,GACA,IAAArB,EAAAgB,EAAA1B,QAEA,OADAU,GAAAA,EAAAtwB,IAAA5rB,EAAAu9C,IACArB,CACA,CACA,SAAAmB,EAAAxD,EAAAqB,GAKA,YAJA,IAAArB,IAAAA,EAAA,MACAz1C,EAAAy1C,KACAA,EAAAsB,GAAAtB,EAAAlZ,EAAA3G,IAAAgJ,EAAAkY,IAEAoC,GAAAzD,GAAA75C,EAAAusB,MAAAyW,EAAAkY,EACA,CAGA,OAFAl7C,EAAAurB,IAAA4xB,EACAn9C,EAAAgsB,IAAAqxB,EACAr9C,CACA,CAQO,SAAPw9C,GAAAnC,EAAArY,EAAAkY,GACA,IAAAva,EAAAD,GAAAsC,EAAArC,QACAuc,EAAA9B,GAAAC,EAAA1a,EAAAqC,EAAAkY,GACAl7C,EAAAk9C,EAAA1+B,IACA,SAAA2+B,EAAAM,GACA,OAAAz9C,EAAAm8C,SAAA,SAAAlD,GACAroC,EAAAqoC,EAAA3sB,MACA2sB,EAAA3sB,IAAAtsB,EAAAy9C,EAEA,GACA,CACA,SAAAJ,EAAAxD,EAAAqB,GAKA,YAJA,IAAArB,IAAAA,EAAA,MACAz1C,EAAAy1C,KACAA,EAAAsB,GAAAtB,EAAAlZ,EAAA3G,IAAAgJ,EAAAkY,IAEAsC,GAAA3D,GAAA75C,EAAAusB,MAAAyW,EAAAkY,EACA,CAGA,OAFAl7C,EAAAurB,IAAA4xB,EACAn9C,EAAAgsB,IAAAqxB,EACAr9C,CACA,CAQO,SAAPm7C,GAAAtB,EAAAlZ,EAAAqC,EAAAkY,GACA,IAAAwC,EAAA,KACAl9C,GAAA06C,EACA,GAAA92C,EAAAy1C,IAAAA,EAAA3xB,IAAA,GAEA,IAAAy1B,EAAA,KACA7iC,GAAA++B,GAAA,SAAAJ,GAIA,GAHAj5C,GAAA06C,IAAAzB,IACAj5C,GAAA,GAEAA,GAAAi5C,GAAA7oC,EAAA6oC,EAAAhrB,KAAA,CAEA,IAAAmvB,EAAAC,GAAApE,EAAA9Y,EAAAqC,GACA0a,IACAA,EAAAE,GAEAD,GAEAA,EAAAG,SAAAF,GAEAD,EAAAC,CACA,CACA,GACA,CACA,OAAA1C,IAAAwC,EAEAvC,GAAA,CAAAD,GAAAva,EAAAqC,GAEA0a,CACA,CAYO,SAAPG,GAAA5E,EAAAtY,EAAAqC,GACA,IAGA+a,EAHAvB,EAAA,KACAwB,EAAAptC,EAAAqoC,EAAAxqB,KACAwvB,EAAArtC,EAAAqoC,EAAAzsB,KAGAuxB,EADA9E,EACAA,EAAAruB,IAAA,IAAAquB,EAAAvqB,IAAA,IAAAssB,KAGA,aAAAA,KAEA,IAAAkD,EAAA,CACAC,UAAA,WACA,OAAAlF,CACA,EACA+C,QAAA,WACA,OAAAQ,CACA,EACA4B,iBAAAC,EACAjK,OAAAkK,EACAC,OAAAC,EACAC,IAAAV,EACAD,SAAA,SAAA5B,GACAM,EAAAN,CACA,GAEA,SAAAwC,IACA,IAAAC,EAUA,OARA1F,GAAAroC,EAAAqoC,EAAA8B,OAEA4D,EAAA1F,EAAA8B,OAEA4D,IAEAA,EAAA1B,GAAAiB,EAAAvd,EAAAqC,IAEA2b,CACA,CACA,SAAAC,EAAAD,EAAAE,EAAAh6C,EAAA+Y,EAAA4mB,GACA,IAAAsa,GAAA,EACA5b,EAAA+V,EAAAA,EAAAruB,IAAAiwB,GACAkE,EAAAJ,EAAA7D,IAiCA,OAhCAiE,IAEAA,EAAAJ,EAAA7D,IAAA,IAGA6D,EAAA1C,QAAAO,GACAvD,GACAf,GAAAyG,EAAAvwB,OAAA,kBAAA8U,EAAA,IAAAr+B,CAAA,eAEAk6C,EAAAhB,IAAA,EACA,IAEA,IAAAiB,EAAAxC,EAAAA,EAAAiC,IAAAvwB,GACA8wB,IACAD,EAAAC,IAAA,GAEAF,EAAAD,EAAAF,EACA,CACA,MAAAr0C,GACA,IAAA20C,GAAAzC,GAAAuC,EAAAvC,EAAAiC,KACAQ,IAEAH,GAAA,GAEAtC,GAAAyC,GAGAva,GAAAia,EAAAvyB,MAAA,gBAAA8W,EAAA,mBAAAr+B,EAAA,MAAAqO,GAAA5I,GAAA,gBAAA4I,GAAA6rC,GAEA,CACA,GAAAnhC,EAAA4mB,GAEAsa,CACA,CACA,SAAAT,EAAAjB,EAAAuB,GAEA,SAAAO,EAAAP,GACA,IAAA1F,IAAA+E,EACA,SAEA,IAAA3E,EAAAL,GAAAC,GACA,OAAAI,EAAAptB,MAAAotB,EAAA/qB,MAMA2vB,GAEAhF,EAAAzsB,IAAAgwB,GAEAvD,EAAAxqB,IAAA2uB,EAAAuB,IAEA,EACA,CAnBAA,EAAAA,GAAAD,IAoBAE,EAAAD,EAAAO,EAAA,sCAAAC,KAAA/B,EAAA,IAAAA,EAAAgC,OAGAT,EAAApzB,IAAA6xB,EAEA,CACA,SAAAkB,EAAAe,EAAA9B,GACA,SAAA+B,IAEA,IAAAR,GAAA,EACA,GAAA7F,EAAA,CACA,IAAAI,EAAAL,GAAAC,GACAsG,EAAAtG,EAAA7qB,KAAAirB,EAAAjrB,KAEA6qB,GAAAsG,GAAAA,IAAAF,EAAArc,QAAAqW,EAAAptB,MAEAotB,EAAAjrB,IAAA,KACAirB,EAAAptB,KAAA,EACAotB,EAAAtuB,KAAA,EACAkuB,EAAAhtB,MAAA,IAAAgtB,EAAAhtB,IAAAozB,EAAA9B,KAEAuB,GAAA,GAGA,CACA,OAAAA,CACA,CACAF,EAAAS,EAAAC,EAAA,wBAAA/B,EAAApxB,MAEAkzB,EAAA9zB,IAAAgyB,EAEA,CACA,SAAAiB,EAAAgB,EAAA/B,GACA,SAAAgC,IAEA,IAAAX,GAAA,EACA,GAAA7F,EAAA,CACA,IAAAI,EAAAL,GAAAC,GACAsG,EAAAtG,EAAA7qB,KAAAirB,EAAAjrB,KAEA6qB,GAAAsG,GAAAA,IAAAC,EAAAxc,QAAAqW,EAAAptB,KACAgtB,EAAA3sB,MAAA,IAAA2sB,EAAA3sB,IAAAkzB,EAAA/B,KAEAqB,GAAA,EAGA,CACA,OAAAA,CACA,CACAF,EAAAY,EAAAC,EAAA,6BAEAD,EAAAj0B,IAAAkyB,EAEA,CACA,OAAAtpC,GAAA+pC,EACA,EAKA,WAOA,SAAAwB,EAAAC,EAAAhf,EAAAqC,EAAAkY,GACA,IAAAx+B,EAAA,KACA1c,EAAAi9C,GAAA0C,EAAAhf,EAAAqC,EAAAkY,GAEArqB,GAAAnU,EAAA1c,EAAAiU,GAAAjU,GACA,CAEA,EAdA,OCzcI4/C,GACAC,GACAC,GCXJC,GAAA1L,GAAA,CACA2L,KAAA,EACAC,QAAA,EACAC,SAAA,EACAC,OAAA,ICGaC,GAAc,UAKdC,GAAW,WCiHR,SAAAC,GAAmDn9C,EAAwByM,GACvF,OAAO2wC,GAAQp9C,GAAY,SAACA,GACxB,OAAOyM,EAAKA,EAAG,CACX4wC,OAAQ,YACRC,UAAU,EACVt9C,MAAOA,IACNA,C,IAET,SAACumC,GACG,OAAO95B,EAAKA,EAAG,CACX4wC,OAAQH,GACRI,UAAU,EACV/W,OAAQA,IACPA,CACT,GACJ,CA+GM,SAAU6W,GAA2Cp9C,EAAwBu9C,EAAgDC,EAA6CC,GAC5K,IAAI9wC,EAAyG3M,EAE7G,IACI,GAAI+N,EAAiB/N,IACbu9C,GAAaC,KACb7wC,EAAS3M,EAAMgO,KAAKuvC,EAAWC,SAGnC,IACQD,IACA5wC,EAAS4wC,EAAUv9C,GAE1B,CAAC,MAAOgX,GACL,IAAIwmC,EAGA,MAAMxmC,EAFNrK,EAAS6wC,EAASxmC,EAIzB,CAER,SACOymC,GACAC,GAAU/wC,EAAe8wC,EAEhC,CAED,OAAO9wC,CACX,CA8BgB,SAAA+wC,GAAa19C,EAAwBy9C,GACjD,IAAI9wC,EAAS3M,EAqBb,OApBIy9C,IACI1vC,EAAiB/N,GAEb2M,EADC3M,EAAsB29C,QACb39C,EAAsB29C,QAAQF,GAG/Bz9C,EAAMgO,MACX,SAAShO,GAEL,OADAy9C,IACOz9C,C,IACR,SAASumC,GAER,MADAkX,IACMlX,CACV,IAGRkX,KAID9wC,CACX,CH3TO,IAAIixC,IAAuB,EA8B5B,SAAUC,GAAeC,EAAiBC,EAAuBC,EAAwBC,GAG3FxB,GAAcA,IAAe,CAAEj7C,SAAU,WAAM,wBAAkB,GACjEk7C,GAAeA,IAAgB,CAAEl7C,SAAU,WAAM,yBAAmB,GACpEm7C,GAAgBA,IAAiB,CAAEn7C,SAAU,WAAM,4BAAsB,GAEzE,IAAIoE,EAA+B,CAAC,EACpCA,EAAM62C,IAAe,CAAE3tC,IAAKivC,GAC5Bn4C,EAAM82C,IAAgB,CAAE5tC,IAAKkvC,GAC7Bp4C,EAAM+2C,IAAiB,CAAE7tC,IAAKmvC,GAE9B9uC,GAAoB2uC,EAAYl4C,EACpC,CIpCO,ICdHs4C,GDcSC,GAAuC,CAChD,UAAW,YAAa,WAAYjB,IChBlCkB,GAAiB,gBAUvB,SAASC,GAAgBrrB,GACrB,IAAIyV,EAKJ,OAJIzV,GAAOA,EAAIsrB,cACX7V,EAAMzV,EAAIsrB,YAAY,YAGhB7V,GAAOA,EAAI8V,SACzB,CAUM,SAAUC,GAAUz/C,EAAa4uC,EAAiB8Q,EAAqDC,GAEzG,IAAI1rB,EAAMvd,MACTyoC,KAAkBA,GAAgBppC,KAAoB1I,EAAKiyC,GAAiB,CAAErrB,IAAOzmB,IAEtF,IAAIoyC,EAAgBT,GAAc3xC,EAAIymB,EAAIsrB,YAAY,SAAYI,EAAc,IAAItb,MAAMuK,GAAW,CAAC,EAOtG,GANA8Q,GAAiBA,EAAcE,GAE3BT,GAAc3xC,GACdoyC,EAAOJ,UAAU5Q,GAAS,GAAO,GAGjCgR,GAAU5/C,EAAOq/C,IACjBr/C,EAAOq/C,IAAgBO,OACpB,CACH,IAAIpjC,EAAUxc,EAAO,KAAO4uC,GAC5B,GAAIpyB,EACAA,EAAQojC,OACL,CACH,IAAIzf,EAAa3pB,GAAQ,WACzB2pB,IAAeA,EAAW,UAAYA,EAAW,QAAQyO,EAAS59B,GAAQ4uC,GAC7E,CACJ,CACL,CC9BA,IAuBIC,GAvBEC,GAA2B,qBAC3BC,GAAsBD,GAAyBh7C,cAEjDk7C,GAA8B,GAC9BC,GAAmB,EACnBC,GAA6B,GAoBjC,SAASC,GAAUl/C,GACf,OAAIyN,EAAWzN,GACJA,EAAMwB,WAGVuO,GAAQ/P,EACnB,C,SAgDgBm/C,GAAkBC,EAA8BC,EAAoCC,GAChG,IAGIC,EAMAC,EATAC,EAAiBznC,GAAS/Y,UAAW,GACrCygD,EAAS,EACTC,GAAe,EAEfC,EAAyB,GACzBtE,EAAM0D,KACNa,EAAYd,GAAkB7/C,OAAS,EAAI6/C,GAAkBA,GAAkB7/C,OAAS,QAAK2G,EAC7Fi6C,GAAW,EACXC,EAA4C,KAIhD,SAASC,EAAsCC,EAAkDC,GAC7F,IACInB,GAAkBngD,KAAK08C,GACvBwE,GAAW,EACXC,GAA8BA,EAA2BxhC,SACzDwhC,EAA6B,KAE7B,IAAII,EAAcf,GAA+B,SAAUgB,EAASC,GAOhET,EAAOhhD,MAAK,WAGR,IAOI,IAAI2c,EAAqB,IAAXmkC,EAAoCO,EAAaC,EAC3DlgD,EAAQiN,EAAYsO,GAAWgkC,EAAiB9xC,EAAW8N,GAAWA,EAAQgkC,GAAiBhkC,EAK/FxN,EAAc/N,GAGdA,EAAMgO,KAAKoyC,EAAgBC,GACpB9kC,EAEP6kC,EAAQpgD,GACU,IAAX0/C,EAGPW,EAAOrgD,GAIPogD,EAAQpgD,EAEf,CAAC,MAAO+G,GACLs5C,EAAOt5C,EACV,CACL,IAQI44C,GACAW,G,GAELb,GAMH,OAAOU,CAEV,SACGpB,GAAkBwB,KACrB,C,CAIL,SAASC,EAAqBN,GAE1B,OAAOF,OAAMn6C,EAAWq6C,E,CAI5B,SAASO,EAAyCC,GAC9C,IAAIC,EAAmBD,EACnBE,EAAoBF,EAaxB,OAZIjzC,EAAWizC,KACXC,EAAc,SAAS3gD,GAEnB,OADA0gD,GAAaA,IACN1gD,CACX,EAEA4gD,EAAe,SAASra,GAEpB,MADAma,GAAaA,IACPna,CACV,GAGGyZ,EAA0BW,EAAoBC,E,CAGzD,SAASC,IACL,OAAO1C,GAAcuB,E,CAGzB,SAASY,IACL,GAAIV,EAAO1gD,OAAS,EAAG,CAGnB,IAAI4hD,EAAUlB,EAAOn+C,QACrBm+C,EAAS,GAMTE,GAAW,EACXC,GAA8BA,EAA2BxhC,SACzDwhC,EAA6B,KAC7BV,EAAUyB,EAKb,C,CAOL,SAASC,EAAkBvQ,EAAyBwQ,GAChD,OAAO,SAAC7zB,GACJ,GAAIuyB,IAAWsB,EAAY,CACvB,GAAuC,IAAnCxQ,GAAuCziC,EAAcof,GAQrD,OAPAuyB,EAAS,OAITvyB,EAASnf,KACL+yC,EAAkB,EAAD,GACjBA,EAAkE,MAI1ErB,EAASlP,EACTmP,GAAe,EACfJ,EAAgBpyB,EAIhBmzB,IACKR,GAAyB,IAAbtP,GAAwCuP,IAIrDA,EAA6B7gC,GAAgB+hC,EAA2BhC,IAE/E,CAKL,C,CAGJ,SAASgC,IACL,IAAKnB,EAGD,GADAA,GAAW,EACP9pC,KAIA7R,QAAQ+8C,KAAKrC,GAA0BU,EAAeC,OACnD,CACH,IAAIntC,EAAMsD,MAAeN,MAExBupC,KAA8BA,GAA4B9pC,GAAkB1I,EAAKmJ,GAAiC,CAAC0nC,GAAc,mBAAmB1wC,IAKrJiyC,GAAUnsC,EAAKysC,IAAqB,SAACH,GAGjC,OAFAvvC,GAAUuvC,EAAQ,UAAW,CAAE/vC,EAAG,WAAM,OAAA4wC,CAAW,IACnDb,EAAOpY,OAASgZ,EACTZ,CACX,KAAKC,GAA0BryC,EAClC,C,CA2BT,SAAS40C,IACL,MAAO,YAAcvD,GAAuB,IAAMtC,GAAQruC,EAAY4yC,GAAiC,GAAnB,IAAMA,GAAmB,IAAM,IAAM,IAAMgB,KAAelB,EAAgB,MAAQT,GAAUK,GAAkB,G,CAkCtM,OA1DAC,EAAc,CACVxxC,KAAMgyC,EACN,MAASQ,EACT7C,QAAS8C,GAGbvxC,GAAcswC,EAAa,QAAS,CAChC1wC,IAAK+xC,IAGLjD,IAEAC,GAAe2B,EAAaqB,GAAW,WAAQ,OAAO7zC,EAAYuyC,EAAe,IAAI,WAAM,OAAAO,CAAQ,IAGnGxpC,OACAkpC,EAAYhpC,GAAc,KAA0C,YAWxEgpC,EAAYh+C,SAAW2/C,EAEvB,WACS1zC,EAAW6xC,IACZ7uC,GAAewsC,GAAc,kCAAoCiC,GAAUI,IAG/E,IAAM8B,EAAYL,EAAkB,EAAD,GACnC,IAIIzB,EAASniD,KACLqiD,EACAuB,EAAgE,KAChEK,EACP,CAAC,MAAOr6C,GAILq6C,EAAUr6C,EACb,CAKJ,CAxBD,GA6BOy4C,CACX,CAaM,SAAU6B,GAAkBjC,GAC9B,OAAO,SAAapc,GAChB,IAAIyc,EAAiBznC,GAAS/Y,UAAW,GACzC,OAAOmgD,GAAyB,SAACgB,EAASC,GACtC,IACI,IAAIiB,EAAS,GACTC,EAAU,EAEdxqC,GAAUisB,GAAO,SAACgZ,EAAMnkC,GAChBmkC,IACAuF,IACAnE,GAAQpB,GAAM,SAACh8C,GAEXshD,EAAOzpC,GAAO7X,EACI,MAAZuhD,GACFnB,EAAQkB,E,GAEbjB,GAEX,IAGAkB,IACgB,IAAZA,GAEAnB,EAAQkB,EAEf,CAAC,MAAOv6C,GACLs5C,EAAOt5C,EACV,C,GACF04C,EACP,CACJ,CAiEM,SAAU+B,GAAyBpC,GACrC,OAAOtqC,IAAkB,SAAakuB,GAClC,IAAIyc,EAAiBznC,GAAS/Y,UAAW,GACzC,OAAOmgD,GAAyE,SAACgB,EAASC,GACtF,IAAI9wC,EAAuE,GACvEuxC,EAAU,EAEd,SAASW,EAAYzF,EAAWnkC,GAC5BipC,IACA3D,GAAgBnB,GAAM,SAACh8C,GACfA,EAAMs9C,SACN/tC,EAAOsI,GAAO,CACVwlC,OAAQH,GACR3W,OAAQvmC,EAAMumC,QAGlBh3B,EAAOsI,GAAO,CACVwlC,OAAQ,YACRr9C,MAAOA,EAAMA,OAIH,MAAZ8gD,GACFV,EAAQ7wC,EAEhB,G,CAGJ,IAEQtO,EAAQ+hC,GACRrrB,GAAWqrB,EAAOye,GACX3qC,GAAWksB,GAClBjsB,GAAUisB,EAAOye,GAEjBhxC,GAAe,4BAInBqwC,IACgB,IAAZA,GAEAV,EAAQ7wC,EAEf,CAAC,MAAOxI,GACLs5C,EAAOt5C,EACV,C,GACF04C,EACP,GACJ,CC3fM,SAAUiC,GAAkBZ,GAC9BnpC,GAAWmpC,GAAS,SAACvpC,GACjB,IACIA,GACH,CAAC,MAAOxQ,GAGR,CACL,GACJ,CASM,SAAU46C,GAAqBxiC,GACjC,IAAIyiC,EAAkBh0C,EAASuR,GAAWA,EAAU,EAEpD,OAAO,SAAC2hC,GACJ5hC,IAAgB,WACZwiC,GAAkBZ,E,GACnBc,EACP,CACJ,CCjBgB,SAAAC,GAAsBvC,EAA8BngC,GAChE,OAAOggC,GAAe0C,GAAoBF,GAAqBxiC,GAAUmgC,EAAUngC,EACvF,CAuBa,IC3BT2iC,GA0EY,SAAAC,GAAuBzC,EAA8BngC,IAChE2iC,KAAgBA,GAAchtC,GAAqD1I,EAAKmJ,GAAS,CAAC0nC,KAAc1wC,GAAM,OACvH,IAAMy1C,EAASF,GAAYv1C,EAC3B,IAAKy1C,EACD,OAAOH,GAAmBvC,GAGzB7xC,EAAW6xC,IACZ7uC,GAAewsC,GAAc,kCAAoCltC,GAAQuvC,IAG7E,IAAII,EAAS,EAEb,SAASmB,IACL,OAAO1C,GAAcuB,E,CAGzB,IAAI5B,EAAa,IAAIkE,GAAU,SAAC5B,EAASC,GACrC,SAAS4B,EAASjiD,GACd0/C,EAAS,EACTU,EAAQpgD,E,CAGZ,SAASkiD,EAAQ3b,GACbmZ,EAAS,EACTW,EAAO9Z,E,CAGX+Y,EAAS2C,EAAUC,EAEvB,IAMA,OAJAhzC,GAAc4uC,EAAY,QAAS,CAC/BhvC,IAAK+xC,IAGF/C,CACX,CAwCa,IClKTqE,GAaE,SAAUC,GAAqB9C,GACjC,OAAOH,GAAeiD,GAAmBV,GAAmBpC,EAChE,CAwHgB,SAAA+C,GAA+Drf,EAAU7jB,GAErF,OADCgjC,KAA2BA,GAAyBX,GAAyBY,KACvED,GAAuB51C,EAAEy2B,EAAO7jB,EAC3C,CC1Ea,ICnETmjC,GA8BY,SAAAC,GAAiBjD,EAA8BngC,GAG3D,OAFCmjC,KAAoBA,GAAkBxtC,GAAkBitC,KAElDO,GAAgB/1C,EAAEpP,KAAKL,KAAMwiD,EAAUngC,EAClD,CAsBa,IAAAqjC,GAAyGnB,GAAkBkB,ICzDtG/rC,GAAe,IAAjD,ICTAisC,GACAC,GCHAhqC,GrDDAiqC,GAAA,IACAC,GAAA,0DsDOA73B,GAAA,GACA83B,GAAA,iBACAC,GAAA,IAAAD,GAAA,QACAE,GAAA,OAOAC,GAAA,WACA,SAAAA,IACA,IACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAdAC,EAAA,EAeA1gC,GAAA2/B,EAAA,eAAAzpC,EAAAyqC,GACA,IAAAC,GAAA,EAgEA,SAAAC,EAAAC,EAAAjL,GACAkL,EAAAlL,EAAA,OAAAiL,EACA,CAIA,SAAAE,EAAAj0C,EAAA8oC,GACA3X,GAAA4hB,EAAA,kCAAA/yC,QAAAA,IACAg0C,EAAAlL,EAAA,OACA,CACA,SAAAoL,EAAApL,GACAmL,EAAA,4CAAAnL,EACA,CACA,SAAAqL,EAAAC,EAAAC,GACA,IAAA/rC,EACAgsC,EAAA,EACAC,EAAA,KACAzjC,EAAA,EACA,YAAAyjC,GAAAzjC,EAAAsjC,EAAAz/B,IACA2/B,EAAAF,EAAAtjC,GACAuiC,GAAA,IAAAiB,EASA,IAAAA,IAAArxB,GAAAoxB,IAAAA,GAAAb,EAGA,IAAAc,IAAAvxB,OAAAsxB,EAAAd,EAAAD,KACAiB,EAAAC,GAHAD,EAAAE,EATApxB,KAEAkxB,EAAAG,EAEAnxB,OACAgxB,EAAAI,GASA7jC,IAEA,OAAAyjC,GACAjsC,EAAA,CACAssC,WAAAN,EACAO,QAAAR,GAEA/rC,EAAA6R,IAAAo6B,EACAjsC,GAEA,IACA,CACA,SAAA0rC,EAAAc,EAAA7H,EAAAntB,EAAAi1B,GACA,IACAD,GAAAA,EAAA7H,EAAAntB,EAAAi1B,EACA,CACA,MAAAp+C,GACA,CAEA,CACA,SAAAq+C,EAAAC,EAAAH,GACA,IAAAxyB,EAAA7c,KACAqsB,EAAAmjB,EAAA/6B,IACA,IAAA4X,EAGA,OAFAoiB,EAAAY,IAEA,EAEAhjB,EAAAmjB,EAAA/6B,KAAAu5B,EAAAf,GAAA/3B,IACA,IAAAjlB,EAAAu/C,EAAAp7B,IAKAq7B,EAAAlC,EAAAt9C,EAAA,IAAAy/C,KAAA,CAAAz/C,GAAA,CAAAsD,KAAA,6BAEAo8C,EAAA9yB,EAAAU,WAAA8O,EAAAojB,GACA,OAAAE,CACA,CAQA,SAAAZ,EAAAS,EAAAH,EAAAjJ,GACA,IAAAn2C,EAAAu/C,EAAAp7B,IACA,IACA,GAAAnkB,EAEA,GAAAs/C,EAAAC,EAAAH,GAYAhB,EAAAn5B,GAAAm6B,OAZA,CACA,IAAAO,EAAApC,GAAAA,EAAAqC,cACAD,GAAAh4C,EAAAg4C,GACAA,EAAAJ,EAAAH,EAAAE,IAGA5B,GAAAA,EAAAj5B,IAAA86B,EAAAH,GAAA,GACA3jB,GAAA4hB,EAAA,gFAEA,CAMA,CACA,MAAAp8C,GACAq8C,GAAA5hB,GAAA2hB,EAAA,qDAAApzC,GAAAhJ,IACAq9C,EAAAc,EAAA9B,EAAA,SAAAr4B,GACA,CAEA,CAMA,SAAAg6B,EAAAM,EAAAH,EAAAjJ,GAEA,IAAA6B,EACA6H,EACAC,EACA11B,EAAAm1B,EAAA76B,KAAA,IACAyxB,GAAAgH,IACAnF,EAAAyE,IAAA,SAAAnC,EAAAC,GACAsF,EAAAvF,EACAwF,EAAAvF,CACA,KAEA+C,GAAAnH,GAAAoJ,EAAAQ,iBACA5J,GAAA,GAGA,IAAA6J,EAAAT,EAAA/6B,IACA,IAAAw7B,EAGA,OAFAxB,EAAAY,QACAS,GAAAA,GAAA,IAGA,IAAA/2B,EAAAW,GAAAwzB,GAAA+C,EAAA7B,GAAA,EAAAhI,EAAAoJ,EAAA56B,KAqBA,SAAAs7B,EAAAn3B,GACA,IAAAo3B,EAAA3C,GAAAA,EAAA4C,cACAC,EAAAF,GAAAv4C,EAAAu4C,GACA,GAAAE,EACAF,EAAAp3B,EAAAs2B,EAAAG,OAEA,CACA,IAAAF,EAAAx2B,GAAAC,GACAw1B,EAAAc,EAAAt2B,EAAA/E,IAAA+G,GAAAhC,EAAAw0B,GAAA+B,EACA,CACA,CAUA,OAxCA/B,GAEAx0B,EAAAlE,IAAA,mCAEA/S,GAAA7G,GAAAof,IAAA,SAAAi2B,GACAv3B,EAAAlE,IAAAy7B,EAAAj2B,EAAAi2B,GACA,IACAv3B,EAAAw3B,mBAAA,WACAhD,IACA2C,EAAAn3B,GACA,IAAAA,EAAAy3B,YACAV,GAAAA,GAAA,GAGA,EACA/2B,EAAA03B,OAAA,WACAlD,GACA2C,EAAAn3B,EAEA,EAYAA,EAAA23B,QAAA,SAAAC,GACApC,EAAAc,EAAA9B,EAAAx0B,EAAA/E,IAAA,IAAA+G,GAAAhC,EAAAw0B,GAAAA,EAAAr4B,GAAAiE,GAAAJ,IACAg3B,GAAAA,EAAAY,EACA,EACA53B,EAAA63B,UAAA,WACArC,EAAAc,EAAA9B,EAAAx0B,EAAA/E,IAAA,IAAA+G,GAAAhC,EAAAw0B,GAAAA,EAAAr4B,GAAAiE,GAAAJ,IACA+2B,GAAAA,GAAA,EACA,EACA/2B,EAAA83B,KAAArB,EAAAp7B,KACA6zB,CACA,CAMA,SAAA+G,EAAAQ,EAAAH,EAAAjJ,GACA,IAAAvjC,EAIAolC,EACA6H,EACAC,EALAE,EAAAT,EAAA/6B,IACAq8B,EAAAtB,EAAAp7B,IACAq7B,EAAAlC,EAAAuD,EAAA,IAAApB,KAAA,CAAAoB,GAAA,CAAAv9C,KAAA,qBAIAw9C,EAAA,IAAAC,QACAC,EAAAH,EAAA5hC,IACAgiC,GAAA,EACAC,GAAA,EACA92B,EAAAm1B,EAAA76B,KAAA,GAEAy8B,GAAAvuC,EAAA,CACA8W,OAAAuzB,GACA9S,KAAAqV,GAEA5sC,EAAAkqC,KAAA,EAEAlqC,GAEA2sC,EAAAn1B,SAAApf,GAAAu0C,EAAAn1B,SAAAnL,IAAA,IACApN,GAAA7G,GAAAof,IAAA,SAAAi2B,GACAS,EAAAM,OAAAf,EAAAj2B,EAAAi2B,GACA,IACAc,EAAAz8B,IAAAo8B,GAEArD,EACA0D,EAAAE,YAAA5D,EAEAU,GAAAb,IAEA6D,EAAAE,YAAA,WAEAlL,IACAgL,EAAAG,WAAA,EACArD,GAAA+C,EACA1D,EACA,IAAAiC,EAAA,iBAGA0B,GAAA,EACAlD,IACAiC,GAAAhD,KAMAiE,GAAA,GAGA,IAAAvzB,EAAA,IAAA6zB,QAAAvB,EAAAmB,GACA,IAEAzzB,EAAAovB,KAAA,CACA,CACA,MAAA77C,GAEA,CAQA,IANAk1C,GAAAgH,IACAnF,EAAAyE,IAAA,SAAAnC,EAAAC,GACAsF,EAAAvF,EACAwF,EAAAvF,CACA,MAEAyF,EAGA,OAFAxB,EAAAY,QACAS,GAAAA,GAAA,IAGA,SAAA2B,EAAAnD,GAGAC,EAAAc,EAAA9B,EAAA,SAAAA,EAAAr4B,GAAAo5B,EACA,CACA,SAAAoD,EAAApC,EAAAE,EAAArlD,GACA,IAAAq9C,EAAA8H,EAAAt7B,IACA29B,EAAAnE,EAAAoE,gBACAD,GAAA/5C,EAAA+5C,GACAA,EAAArC,EAAAD,EAAAllD,GAAA+qB,GAAAs6B,GAGAjB,EAAAc,EAAA7H,EAAA,GAAAr9C,GAAA+qB,GAEA,CACA,IACAoyB,GAAAuK,MAAAtE,EAAA0C,EAAAtyB,EAAA4vB,EAAA6D,EAAA,gBAAAt6C,GAKA,GAJAsvC,IACA8H,GAAA+C,EACAA,EAAA,IAEAE,EAEA,GADAA,GAAA,EACAr6C,EAAA2wC,SAgCAgK,EAAA36C,EAAA45B,QAAA55B,EAAA45B,OAAAjhB,KACAsgC,GAAAA,EAAAj5C,EAAA45B,YAjCA,CACA,IAAAohB,EAAAh7C,EAAAob,IACA,IAMAq7B,GAAAuE,EAAAC,GAMAxE,IAAAuE,EAAA1X,MACAsX,EAAAI,EAAA,KAAA58B,IACA46B,GAAAA,GAAA,IAGAxI,GAAAwK,EAAA3oB,QAAA,SAAA6oB,GACAN,EAAAI,EAAAtC,EAAAwC,EAAA9/B,KACA49B,GAAAA,GAAA,EACA,KAZA2B,EAAAK,EAAAG,YACAnC,GAAAA,GAAA,GAcA,CACA,MAAA5+C,GACAugD,EAAAv3C,GAAAhJ,IACA6+C,GAAAA,EAAA7+C,EACA,CACA,CAMA,GACA,CACA,MAAAA,GACAigD,IACAM,EAAAv3C,GAAAhJ,IACA6+C,GAAAA,EAAA7+C,GAEA,CAkBA,OAjBAggD,IAAAC,IAEAA,GAAA,EACA5C,EAAAc,EAAA,QACAS,GAAAA,GAAA,IAEAvC,IAAA4D,GAAA3B,EAAA56B,IAAA,GAEAq5B,GAAAA,EAAA90C,KAAA,WACAg4C,IAEAA,GAAA,EACA5C,EAAAc,EAAA,QACAS,GAAAA,GAAA,GAEA,GAAAN,EAAA56B,KAEAqzB,CACA,CAWA,SAAAgH,EAAAO,EAAAH,EAAAjJ,GAEA,IAAA8L,EAAApyC,KACAoZ,EAAA,IAAA2E,eACA5tB,EAAAu/C,EAAAp7B,IACA8E,EAAAu3B,OAAA,WACA,IAAAnB,EAAAx2B,GAAAI,GACAi5B,EAAA3E,GAAAA,EAAA4E,cACAD,GAAAv6C,EAAAu6C,GACAA,EAAAj5B,EAAAm2B,EAAAG,GAGAjB,EAAAc,EAAA,OAAAC,EAEA,EACAp2B,EAAAw3B,QAAA,WACAnC,EAAAc,EAAA,OAAA9B,EAAAr4B,GAAA+D,GAAAC,GACA,EACAA,EAAA03B,UAAA,WACArC,EAAAc,EAAA,OACA,EACAn2B,EAAAm5B,WAAA,aAGA,IAAAC,EAAAJ,GAAAA,EAAA51B,UAAA41B,EAAA51B,SAAA7I,KAAA,GACA8+B,EAAA/C,EAAA/6B,IACA,GAAA89B,EAAA,CAIA,IAAAhF,GAAA,IAAAgF,EAAAC,YAAAF,EAAA,IACA,IAAA7oB,EAAA,kGAGA,OAFAiC,GAAA4hB,EAAA,UAAA7jB,QACA+kB,EAAA/kB,EAAA4lB,EAEA,CACA,IAAA3Z,EAAA6X,EAAAgF,EAAAA,EAAA3+B,IAAA,iBACAsF,EAAAgB,KAAAgzB,GAAAxX,GACA8Z,EAAA56B,MACAsE,EAAAtE,IAAA46B,EAAA56B,KAEAsE,EAAA23B,KAAA5gD,GACAs9C,GAAAnH,EACA6H,GAAAA,EAAA90C,KAAA,WACA+f,EAAA23B,KAAA5gD,EACA,MAGAipB,EAAA23B,KAAA5gD,EAnBA,MAFAw+C,EAAAY,EAuBA,CACA,SAAAoD,IACAvE,EAAA,EACAb,GAAA,EACAD,GAAA,EACAE,EAAA,KACAC,EAAA,KACAC,EAAA,KACAC,EAAA,KACAC,EAAA,KACAC,EAAA,KACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,EAAA,IACA,CAleAwE,IACA/uC,EAAAiO,IAAA,SAAAgW,EAAA+a,GACA4K,EAAA5K,EACA2K,GACA3hB,GAAA4hB,EAAA,sCAEA5pC,EAAAgvC,UAAA/qB,GACA0lB,GAAA,CACA,EACA3pC,EAAA,gCACA,OAAA2pC,EAAAE,EAAAE,EAAAL,EACA,EAGA1pC,EAAAgvC,UAAA,SAAA/qB,GACA,IAgBA,GAfA6lB,EAAA7lB,EAAAgrB,0BAAA,GACAlF,IAAA9lB,EAAAirB,mBACAlF,EAAA/lB,EAAAkrB,iBACAtF,IAAA5lB,EAAA3M,QACAoyB,IAAAzlB,EAAAmrB,kBACAlF,IAAAjmB,EAAAorB,WACAlF,IAAAlmB,EAAAqrB,cACAlF,IAAAnmB,EAAAsrB,kBACAhF,EAAAtmB,EAAAurB,YACAlF,IAAArmB,EAAAwrB,cACApF,IAAApmB,EAAAyrB,sBACAzF,EAAA,CAAA0F,SAAAnE,GACA3B,IACAa,GAAA,GAEAX,EAAA,CACA,IAAA6F,EAAAn3B,KACAm3B,GAAAA,EAAAhe,UAAA,UAAAge,EAAAhe,SAAAnmB,QAEAi/B,GAAA,EAEA,CACA,QACA,CACA,MAAAl9C,GACA,CAEA,QACA,EACAwS,EAAA6vC,oBAAA,WACA,OAAArF,CACA,EACAxqC,EAAA8vC,cAAA,SAAA7E,EAAAvI,GACA,OAAAuI,GAAAA,EAAAz/B,IACAw/B,EAAAC,EAAAvI,GAEA,IACA,EACA1iC,EAAA+vC,gBAAA,WACA,OAAA9F,CACA,EACAjqC,EAAA2P,IAAA,SAAAgzB,EAAA9B,GACAkO,GACA,CAwaA,GACA,C,oBAqCA,CA5hBA,GCPO,SAAPiB,GAAAxqD,EAAAsiC,GACA,GAAAtiC,GAAAA,EAAA0pB,IACA,OAAA1pB,EAAA0pB,IAAA4Y,EAEA,CAUO,SAAPmoB,GAAAC,EAAApoB,EAAAnqB,GACA,IAAAvK,EAcA,OAbAuK,IACAvK,EAAA41C,IAAA,SAAAmH,GACAxyC,EAAAwyC,CACA,KAEAD,GAAA3sC,GAAA2sC,GAAA,EACAtM,GAAAoM,GAAAE,EAAA,GAAApoB,IAAA,WACAmoB,GAAAxxC,GAAAyxC,EAAA,GAAApoB,EAAAnqB,EACA,IAGAA,IAEAvK,CACA,CCjCO,SAAPg9C,GAAAxE,EAAA5M,GACA,IACA,GAAA4M,GAAA,KAAAA,EAAA,CACA,IAAAx4C,EAAA2lB,KAAAppB,MAAAi8C,GACA,GAAAx4C,GAAAA,EAAA0d,KAAA1d,EAAA0d,KAAA1d,EAAAi9C,eACAj9C,EAAAk9C,cAAAl9C,EAAAi9C,gBAAAj9C,EAAAmuB,OAAA/V,IACA,OAAApY,CAEA,CACA,CACA,MAAA5F,GACAw6B,GAAAgX,EAAA,oCAAAxxC,EAAAse,KAAAtV,GAAAhJ,IAAA,CACAo+C,SAAAA,GAEA,CACA,WACA,CCrBO,SAAP2E,KACA,IAAAC,EAAA,GACA,SAAAC,EAAAzuC,GACAA,GACAwuC,EAAA5kC,IAAA5J,EAEA,CACA,SAAA0uC,EAAA/N,EAAA9B,GACAziC,GAAAoyC,GAAA,SAAAxuC,GACA,IACAA,EAAA2gC,EAAA9B,EACA,CACA,MAAArzC,GACAw6B,GAAA2a,EAAAjzB,MAAA,kDAAAlZ,GAAAhJ,GACA,CACA,IACAgjD,EAAA,EACA,CACA,OACA1sD,IAAA2sD,EACAE,IAAAD,EAEA,CLLO,SAAPE,KACA,IAAAC,EAAA,GACA,SAAAC,EAAA1xB,GACA,IAAA2xB,EAAAF,EACAA,EAAA,GAEAzyC,GAAA2yC,GAAA,SAAA/yC,GAEA,KACAA,EAAAklB,IAAAllB,EAAAgzC,QAAAptD,KAAAoa,EACA,CACA,MAAAxQ,GACAw6B,GAAA5I,EAAA,kBAAA5oB,GAAAhJ,GACA,CACA,IACA07C,IAAA6H,EAAAvlC,IAAA09B,KACAC,GAAAA,GAAA,WAAA4H,GAAA/oB,GAAA,+FAEA,CACA,SAAAipB,EAAAC,GACAA,IACAjzC,GAAA4yC,EAAAK,GACAhI,IAAA2H,EAAArlC,IAAA09B,KACAC,GAAAA,GAAA,MAAA0H,GAAA7oB,GAAA,gGAGA,CACA,OACA2oB,IAAAG,EACAhtD,IAAAmtD,EAEA,CCvCA,IAAAE,GAAA,YACArtB,IAAA3kB,GAAA,GACAA,GAAA0S,IAAA,CAAA8K,MAAA3J,GAAAhgB,EAAA,IACAmM,IAMAiyC,GAAA,WACA,SAAAA,IACA,IAEAC,EACAC,EACAC,EACAC,EACAC,EANAzxC,EAAA,KA+GA,SAAAgiC,EAAA0P,QACA,IAAAA,IAAAA,EAAA,MACA,IAAAzP,EAAAyP,EACA,IAAAzP,EAAA,CACA,IAAA0P,EAAAL,GAAA/Q,GAAA,QAAAvgC,EAAA0R,KAIAuwB,EAFAsP,GAAAA,EAAAJ,IAEAQ,EAAAriC,IAAA,KAAAiiC,EAAAJ,KAGAQ,EAAAriC,IAAA,KAAAiiC,EAEA,CACA,OAAAtP,CACA,CACA,SAAA2P,EAAA3tB,EAAAqC,EAAA2c,GAEAjf,GAAAC,EAAAH,GAAAuC,GAAAC,KACA2c,GAAA3c,IAEA2c,EAAA3c,EAAAxX,MAAAe,OAEA,IAAA2vB,EAAA+R,EACAA,GAAAA,EAAAJ,MAEA3R,EAAA+R,EAAAJ,OAGAnxC,EAAA0R,IAAA4U,EACAgrB,EAAA/Q,GAAA0C,EAAAhf,EAAAqC,EAAAkZ,EACA,CACA,SAAAuP,IACAsC,GAAA,EACArxC,EAAA0R,IAAA,KACA4/B,EAAA,KACAC,EAAA,KACAE,EAAAb,KACAY,EAAAjB,IACA,CA/IAxB,IACAjlC,GAAAsnC,EAAApxC,GAAA,SAAAA,GACAA,EAAAiO,IAAA,SAAAgW,EAAAqC,EAAAoW,EAAAuG,GACA2O,EAAA3tB,EAAAqC,EAAA2c,GACAoO,GAAA,CACA,EACArxC,EAAAuP,IAAA,SAAAozB,EAAA9B,GACA,IAAA1hC,EAGAmnB,EAAAtmB,EAAA0R,IACA,GAAA4U,KAAAqc,GAAArc,IAAAqc,EAAAjxB,OAAA,CAIA,IAAAte,EACAy+C,GAAA,EACAC,EAAAnP,GAAA/B,GAAA,KAAAta,EAAAirB,GAAAA,EAAAJ,IAAAI,EAAAJ,MAAAI,GACAQ,EAAAlR,IAAA1hC,EAAA,CACA6tB,OAAA,GAEA7tB,EAAAsQ,KAAA,EACAtQ,GAmBA,OAPAa,EAAA2P,MAAA,IAAA3P,EAAA2P,IAAAmiC,EAAAC,EAAAC,GAKA5+C,GAAA,EAJA4+C,IAMA5+C,CA3BA,CASA,SAAA4+C,IACAH,IACAA,GAAA,EACAL,EAAAb,IAAAmB,EAAAjR,GACA4Q,EAAAd,IAAAmB,EAAApiC,QACA,IAAAtc,GACA0+C,EAAAjjC,IAAAkjC,GAEAhD,IAEA,CASA,EACA/uC,EAAA4P,IAAA,SAAAkzB,EAAA/B,GAGA,IAAAza,EAAAtmB,EAAA0R,IACA,GAAA4U,KAAAwc,GAAAxc,IAAAwc,EAAApxB,OAAA,CAIA,IAAAte,EACA6+C,GAAA,EACAC,EAAApP,GAAAhC,GAAA,KAAAxa,EAAAirB,GAAAA,EAAAJ,IAAAI,EAAAJ,MAAAI,GACAY,EAAApR,GAAA,CACA/T,OAAA,GAcA,OANAhtB,EAAAoyC,YAAA,IAAApyC,EAAAoyC,UAAAF,EAAAC,EAAAE,GAIAj/C,GAAA,EAHAi/C,IAKAj/C,CAnBA,CAOA,SAAAi/C,IACAJ,IACAA,GAAA,EACAL,EAAAM,EAAAjV,SAAAiV,EAAA5rB,OAAA4rB,EAAAriC,OAEA,CAQA,EACAoE,GAAAjU,EAAA,kCAAAwxC,CAAA,UACAv9B,GAAAjU,EAAA,8BAAAyxC,CAAA,UACA57C,GAAAmK,EAAA,gBAAA3K,EAAA,kBAAAo8C,CAAA,GACA,IAEAzxC,EAAA0P,IAAA,SAAAuyB,GACA,OAAAD,EAAAC,GAAAvyB,KACA,EACA1P,EAAAqO,IAAA,WACA,OAAAgjC,CACA,EACArxC,EAAAsyC,eAAA,SAAAtV,GACAqU,EAAArU,CACA,EAKAh9B,EAAA8P,IAAA,SAAAxS,GACAi0C,EAAAj0C,CACA,EACA0C,EAAA6O,IAAA,SAAA6xB,EAAAuB,GACAA,EAEAA,EAAApzB,IAAA6xB,GAEA6Q,GAAAr9C,EAAAq9C,EAAAx/B,MAGAw/B,EAAAx/B,IAAA2uB,EAAA,KAEA,EACA1gC,EAAAgiC,WAAAA,CAyCA,C,oBAwCA,CAjMA,GKnBA,SAAAuQ,GAAAC,GACA,IAAAC,EAAA,MAAAD,EAAA,IACA,gBAAArqD,GACA,OAAAsqD,EAAAtqD,CACA,CACA,CACA,IAAAuqD,GAAAH,GAAA,eACAI,GAAAJ,GAAA,UACAK,GAAAL,GAAA,YACAM,GAAAN,GAAA,aACAO,GAAAP,GAAA,WACAQ,GAAAR,GAAA,QACAS,GAAAT,GAAA,SACAU,GAAAV,GAAA,YACAW,GAAA,SAAAC,GAEA,SAAAD,IACA,OAAAC,EAAAvvD,KAAA,WACA,CACA,OAJAwvD,GAAAF,EAAAC,GAIAD,CACA,CANA,CAMA5+B,GAAA,CACA++B,mBAAAX,GAAA,OACAY,iBAAAZ,GAAA,SACAa,kBAAAb,GAAA,UACAc,cAAAd,GAAA,iBACAe,iBAAAf,GAAA,SACAgB,SAAAf,GAAA,MACAgB,SAAAhB,GAAA,MACAiB,eAAAjB,GAAA,YACAkB,aAAAlB,GAAA,UACAmB,YAAAnB,GAAA,SACAoB,mBAAApB,GAAA,gBACAqB,cAAArB,GAAA,WACAsB,kBAAAtB,GAAA,eACAuB,cAAAvB,GAAA,WACAwB,SAAAxB,GAAA,MACAyB,gBAAAzB,GAAA,aACA0B,mBAAA1B,GAAA,gBACA2B,eAAA3B,GAAA,YACA4B,uBAAA5B,GAAA,oBACA6B,WAAA7B,GAAA,QACA8B,kBAAA9B,GAAA,eACA+B,aAAA/B,GAAA,UACAgC,cAAAhC,GAAA,WACAiC,qBAAAjC,GAAA,kBACAkC,WAAAjC,GAAA,MACAkC,gBAAAlC,GAAA,WACAmC,iBAAAnC,GAAA,YACAoC,aAAApC,GAAA,QACAqC,YAAApC,GAAA,MACAqC,cAAArC,GAAA,QACAsC,kBAAAtC,GAAA,YACAuC,gBAAAvC,GAAA,UACAwC,yBAAAxC,GAAA,mBACAyC,2BAAAzC,GAAA,qBACA0C,UAAAzC,GAAA,MACA0C,eAAA1C,GAAA,WACA2C,aAAA3C,GAAA,SACA4C,2BAAA3C,GAAA,0BACA4C,cAAA5C,GAAA,aACA35B,UAAA25B,GAAA,aACA6C,OAAA7C,GAAA,MACA8C,gBAAA9C,GAAA,eACA+C,eAAA/C,GAAA,cACAgD,iCAAAhD,GAAA,2BACAiD,qCAAAjD,GAAA,2BACAkD,UAAAjD,GAAA,QACAkD,UAAAlD,GAAA,QACAmD,aAAAnD,GAAA,WACAoD,kBAAApD,GAAA,gBACAqD,iBAAArD,GAAA,eACAsD,cAAAtD,GAAA,YACAuD,oBAAAvD,GAAA,kBACAwD,iBAAAvD,GAAA,YACAwD,mBAAAxD,GAAA,cACAyD,qBAAAzD,GAAA,gBACA0D,gBAAA1D,GAAA,WACA2D,eAAA3D,GAAA,aCtEA4D,GAAA,IAAA3D,GCLA4D,GAAA,WAIA,SAAAA,EAAA13B,EAAA7yB,EAAApE,GACA,IAAA4X,EAAA,KACAC,EAAA,KACAA,EAAA+pB,IAAA,EACA/pB,EAAA+2C,WAAA,IACA/2C,EAAAg3C,KAAA,GACAh3C,EAAA8L,IAAA0c,GAAApJ,EAAAj3B,IAAAmjB,GACAtL,EAAAzT,KAAAA,EACAyT,EAAAi3C,KAAA5jC,GAAA,IAAAlT,MACAH,EAAA8pB,eAAA,CACAmtB,KAAA,EACAC,KAAA,EACA/uD,KAAA,EACA4uD,WAAA,WACA,aAAAh3C,EAAAg3C,WAAA,GACA,EACAC,KAAA,EACAzqD,KAAA,EAEA,CACA,OAAAuqD,CACA,CAzBA,GCJAK,GAAA,WAIA,SAAAA,EAAAC,EAAA7qD,GAIA,KAAAu9B,eAAA,CACAstB,SAAA,EACAC,SAAA,GAEA,KAAAD,SAAAA,EACA,KAAAC,SAAA9qD,CACA,CACA,OAAA4qD,CACA,CAhBA,G3DKAG,GAAA,WDEAC,GAAA,OACAC,GAAA,aACA9mC,GAAA,OACA5E,GAAA,OACAsF,GAAA,UACA5F,GAAA,SACAS,GAAA,YACAK,GAAA,eACAmrC,GAAA,WACAC,GAAA,eACA/rC,GAAA,WACAgsC,GAAA,OACAC,GAAA,UACA5rC,GAAA,QACA6rC,GAAA,mBACAjsC,GAAA,OACAksC,GAAA,OACAC,GAAA,wBACAC,GAAA,QACA1oC,GAAA,YACA2oC,GAAA,aACAC,GAAA,YACAC,GAAA,iBACAC,GAAA,aACAC,GAAA,kBACAC,GAAA,SACAC,GAAA,kBACAC,GAAA,cACA9oC,GAAA,UACAzB,GAAA,aACAwqC,GAAA,UACAC,GAAA,cACApqC,GAAA,qBACAqqC,GAAA,gBACAC,GAAA,sBACAC,GAAA,wBACAC,GAAA,sBACAC,GAAA,uBACAC,GAAA,aACAC,GAAA,6BACAC,GAAA,UACAC,GAAA,uBACAC,GAAA,yBACAC,GAAA,oBACAC,GAAA,gBACAC,GAAA,mBACAC,GAAA,mBACAC,GAAA,mBACAC,GAAA,YACAC,GAAA,WACAC,GAAA,oBACAC,GAAA,aACA/oC,GAAA,gBACAgpC,GAAA,gBACAC,GAAA,aACAC,GAAA,WACAC,GAAA,aACAC,GAAA,oBACAC,GAAA,mBACAC,GAAA,mB6D9DAC,GAAA,WACAC,GAAA,WACAC,GAAA,aACAC,GAAA,OACA,SAAAC,GAAAj1D,EAAAiuB,EAAAhtB,GACA,OAAA+sB,GAAAhuB,EAAAiuB,EAAAhtB,EAAAiO,EACA,CAIA,SAAAgmD,GAAAt7B,EAAAqjB,EAAA/B,GAEA,IAAAia,EAAAja,EAAA6W,IAAA7W,EAAA6W,KAAA,GACAqD,EAAAnY,EAAAoY,IAAApY,EAAAoY,KAAA,GACAC,EAAArY,EAAA8U,IAAA9U,EAAA8U,KAAA,GACAwD,EAAAH,EAAAI,KACAD,IACAN,GAAAE,EAAA9D,GAAAf,eAAAiF,EAAAE,QACAR,GAAAE,EAAA9D,GAAAjB,OAAAmF,EAAA5+B,IAAA4+B,EAAAG,UAEA,IAAAC,EAAAP,EAAAQ,IACAD,GACAV,GAAAE,EAAA9D,GAAAtB,UAAA4F,EAAAE,OAEA,IAAAC,EAAAV,EAAAW,OACAD,IACAb,GAAAE,EAAA9D,GAAAnD,SAAA4H,EAAAn/B,IAAAm/B,EAAAJ,SACAT,GAAAE,EAAA9D,GAAAW,IAAA8D,EAAAE,aACAf,GAAAE,EAAA9D,GAAAlD,SAAA2H,EAAAG,IACAhB,GAAAE,EAAA9D,GAAA/C,YAAAwH,EAAAI,OACAjB,GAAAE,EAAA9D,GAAAW,IAAA8D,EAAA9D,MAEA,IAAAmE,EAAAlZ,EAAAoY,IAAAc,IACA,GAAAA,EAAA,CACAlB,GAAAE,EAAA9D,GAAAjD,eAAA+H,EAAAC,aACAnB,GAAAE,EAAA9D,GAAAjC,qBAAA+G,EAAAE,YACApB,GAAAE,EAAA9D,GAAAlC,cAAAgH,EAAAG,SACA,IAAAC,EAAArb,EAAAhwB,IAAAgwB,EAAAhwB,KAAA,GACAsrC,EAAAD,EAAAzB,IAAAyB,EAAAzB,KAAA,GACA2B,EAAAD,EAAAzB,IAAAyB,EAAAzB,KAAA,GACAE,GAAAwB,EAAA,SAAAN,EAAAO,QACAzB,GAAAwB,EAAA,WAAAN,EAAAjsB,SAAA8qB,GAAA,MACAC,GAAAwB,EAAA,YAAAN,EAAAQ,WACA1B,GAAAwB,EAAA,cAAAN,EAAAS,YAAA5B,GAAA,KACA,CACA,IAAA6B,EAAAzB,EAAA0B,GACAD,IACA5B,GAAAE,EAAA9D,GAAA1C,SAAAkI,EAAAvwC,KACA2uC,GAAAE,EAAA9D,GAAAzC,gBAAAiI,EAAAE,QAGA,IAAAC,EAAA5B,EAAAnd,MACA+e,IACA/B,GAAAE,EAAA9D,GAAA1B,kBAAAqH,EAAAC,UACAhC,GAAAE,EAAA9D,GAAA3B,cAAA1sB,GAAApJ,EAAAo9B,EAAA1wC,MACA2uC,GAAAE,EAAA9D,GAAA5B,YAAAuH,EAAAprC,MAmBA,IAFA,IAAAsrC,EAAA,GAEAj3D,EAAAq1D,EAAAtvC,IAAA,EAAA/lB,GAAA,EAAAA,IAAA,CACA,IAAAk3D,EAAA7B,EAAAr1D,GACAsP,GAAA4nD,GAAA,SAAA72D,EAAAW,GACAi2D,EAAA52D,GAAAW,CACA,IACAq0D,EAAAzsB,OAAA5oC,EAAA,EACA,CAEAsP,GAAA+lD,GAAA,SAAA6B,EAAAl2D,GACAi2D,EAAAC,GAAAl2D,CACA,IACA,IAAAm2D,EAAAttB,GAAAA,GAAA,GAAAqrB,GAAA+B,GACAE,EAAA/F,GAAAJ,sBAEAmG,EAAA/F,GAAAJ,oBAAAjuB,GAAApJ,EAAA,cAAA56B,OAAAq4D,GAAAC,SAAA,KAEApc,EAAA6W,IAAA9iC,GAAAmoC,EACA,CACA,SAAAG,GAAAxwD,EAAA05B,EAAAoD,GACAv1B,EAAAvH,IACAwI,GAAAxI,GAAA,SAAAzG,EAAAW,GACA4N,EAAA5N,GACA4iC,EAAAvjC,GAAAW,EAEAwN,EAAAxN,GACAw/B,EAAAngC,GAAAW,EAEAqyB,OACAmN,EAAAngC,GAAAizB,KAAA9M,IAAAxlB,GAEA,GAEA,CACA,SAAAu2D,GAAA/2B,EAAAg3B,GACAnpD,EAAAmyB,IACAlxB,GAAAkxB,GAAA,SAAAngC,EAAAW,GACAw/B,EAAAngC,GAAAW,GAAAw2D,CACA,GAEA,CAEA,SAAAC,GAAA99B,EAAA4K,EAAAmzB,EAAA5wD,GACA,IAAA6wD,EAAA,IAAAtG,GAAA13B,EAAA7yB,EAAAy9B,GACAywB,GAAA2C,EAAA,aAAAD,EAAAlyC,MACAkyC,EAAA7C,KAAA,IAAA+C,YAGAD,EAAAnG,KAAA5jC,GAAA8pC,EAAA7C,IAAA+C,YAEAD,EAAAlG,KAAAiG,EAAAjG,KACA,IAAAoG,EAAAH,EAAAjG,KAAAjtD,QAAA,SAMA,OALAmzD,EAAAtxC,IAAAsxC,EAAAtxC,IAAA7hB,QAAA,MAAAqzD,GAEA5C,GAAAt7B,EAAA+9B,EAAAC,GAEAD,EAAA5F,IAAA4F,EAAA5F,KAAA,GACA9iC,GAAA2oC,EACA,CACA,SAAAG,GAAAn+B,EAAA+9B,GACArpD,EAAAqpD,EAAA7C,MACAtyB,GAAA5I,EAAA,8CAEA,CACO,IAAPy9B,GAAA,CACAC,QAAA,SAEO,SAAPU,GAAAp+B,EAAA+9B,EAAAF,GACAM,GAAAn+B,EAAA+9B,GACA,IAAAM,EAAAN,EAAA7C,IAAAhuC,KAAA,GACAoxC,EAAAP,EAAA7C,IAAAC,KAAA,GACAwC,GAAAI,EAAAzsC,IAAAgtC,EAAAD,GACA3pD,EAAAmpD,IACAD,GAAAU,EAAAT,GAEA,IAAAU,EAAAR,EAAA7C,IACA,GAAAxmD,EAAA6pD,GAEA,OADA11B,GAAA7I,EAAA,qCACA,KAEA,IAAAnJ,EAAA0nC,EAAApD,KAAAoD,EAAApD,IAAApvC,IAAAwyC,EAAApD,IAAApvC,IAAA,MACAyyC,EAAA,IAAArrB,GAAAnT,EAAAu+B,EAAAxhC,GAAAwhC,EAAAn4D,OAAAm4D,EAAA7xC,IAAA6xC,EAAArG,IAAAqG,EAAAnrB,QAAAmrB,EAAAE,aAAA5nC,EAAA0nC,EAAA9tD,KAAA8tD,EAAAhrB,mBAAA+qB,EAAAD,GACAlxD,EAAA,IAAA4qD,GAAA5kB,GAAAklB,IAAAmG,GACA,OAAAV,GAAA99B,EAAAmT,GAAAmlB,IAAAyF,EAAA5wD,EACA,CACO,SAAPuxD,GAAA1+B,EAAA+9B,EAAAF,GACAM,GAAAn+B,EAAA+9B,GACA,IAAAO,EAAA,GACAD,EAAA,GACAN,EAAA9C,MAAAxwB,GAAA4tB,MACAiG,EAAA,kBAAAP,EAAA9C,KAEA8C,EAAA9C,MAAAxwB,GAAA4tB,KACAiG,EAAAP,EAAA7C,IAAAC,KAAA,GACAkD,EAAAN,EAAA7C,IAAAhuC,KAAA,IAGA6wC,EAAA7C,KACAyC,GAAAI,EAAA7C,IAAAoD,EAAAD,GAIAV,GAAAI,EAAAzsC,IAAAgtC,EAAAD,GACA3pD,EAAAmpD,IACAD,GAAAU,EAAAT,GAEA,IAAAnpB,EAAAqpB,EAAA7C,IAAAxuC,IACAiyC,EAAA,IAAAl0B,GAAAzK,EAAA0U,EAAA4pB,EAAAD,GACAlxD,EAAA,IAAA4qD,GAAAttB,GAAA4tB,IAAAsG,GACA,OAAAb,GAAA99B,EAAAyK,GAAA6tB,IAAAyF,EAAA5wD,EACA,CACO,SAAPyxD,GAAA5+B,EAAA+9B,EAAAF,GACAM,GAAAn+B,EAAA+9B,GAEA,IAAAM,EAAAN,EAAA7C,IAAAhuC,KAAA,GACAoxC,EAAAP,EAAA7C,IAAAC,KAAA,GACAwC,GAAAI,EAAAzsC,IAAAgtC,EAAAD,GACA3pD,EAAAmpD,IACAD,GAAAU,EAAAT,GAEA,IAAAU,EAAAR,EAAA7C,IACA2D,EAAArvB,GAAAQ,oBAAAhQ,EAAAu+B,EAAAD,EAAAD,GACAlxD,EAAA,IAAA4qD,GAAAvoB,GAAA6oB,IAAAwG,GACA,OAAAf,GAAA99B,EAAAwP,GAAA8oB,IAAAyF,EAAA5wD,EACA,CACO,SAAP2xD,GAAA9+B,EAAA+9B,EAAAF,GACAM,GAAAn+B,EAAA+9B,GACA,IAAA9F,EAAA8F,EAAA7C,IACAjuD,EAAAgrD,EAAAkD,KAAA,GACAlxB,EAAAguB,EAAA/qC,KAAA,GACAywC,GAAAI,EAAAzsC,IAAArkB,EAAAg9B,GACAv1B,EAAAmpD,IACAD,GAAA3wD,EAAA4wD,GAEA,IAAAkB,EAAA,IAAAvtB,GAAAxR,EAAAi4B,EAAAvrC,IAAAurC,EAAA+G,QAAA/G,EAAAgH,YAAAhH,EAAA3sB,IAAA2sB,EAAA39B,IAAA29B,EAAA1mB,OAAAtkC,EAAAg9B,GACA98B,EAAA,IAAA4qD,GAAAvmB,GAAA6mB,IAAA0G,GACA,OAAAjB,GAAA99B,EAAAwR,GAAA8mB,IAAAyF,EAAA5wD,EACA,CACO,SAAP+xD,GAAAl/B,EAAA+9B,EAAAF,GAGA,IAAAlyB,EAFAwyB,GAAAn+B,EAAA+9B,GAGA,IAAA9F,EAAA8F,EAAA7C,IACAxmD,EAAAujD,IACAvjD,EAAAujD,EAAAkD,MACAzmD,EAAAujD,EAAAkD,IAAAjD,KAIAxjD,EAAAqpD,EAAAzsC,MACA5c,EAAAqpD,EAAAzsC,IAAA4mC,OACAvsB,EAAAoyB,EAAAzsC,IAAA4mC,WACA6F,EAAAzsC,IAAA4mC,MANAvsB,EAAAssB,EAAAkD,IAAAjD,WACAD,EAAAkD,IAAAjD,KAOA,IAEAiH,EAFAZ,EAAAR,EAAA7C,MAGA6C,EAAAtC,KAAA,IAAApd,OAAA,IAAArsB,MACAmtC,EAAApB,EAAAtC,IAAApd,MAAArsB,KAEA,IAAA+K,EAAAwhC,EAAAxhC,IAAAoiC,EACAp2D,EAAAw1D,EAAA7xC,IACA6c,EAAAg1B,EAAAa,IACAv4B,EAAA03B,EAAApD,KAAA,GACAlxB,EAAAs0B,EAAArxC,KAAA,GAcA,GAZAxY,EAAA6pD,EAAAc,UACAx4B,EAAA,UAAA03B,EAAAc,QAGA3qD,EAAA6pD,EAAAe,YACAz4B,EAAA,YAAA03B,EAAAe,UAGA5qD,EAAA6pD,EAAAgB,cACA14B,EAAA,cAAA03B,EAAAgB,WAAAhzC,QAGA7X,EAAA6pD,EAAApD,KAAA,CACA,IAAAqE,EAAAjB,EAAApD,IACAxlD,GAAA6pD,GAAA,SAAA94D,EAAAW,GACAw/B,EAAAngC,GAAAW,CACA,GACA,CACAs2D,GAAAI,EAAAzsC,IAAAuV,EAAAoD,GACAv1B,EAAAmpD,IACAD,GAAA/2B,EAAAg3B,GAEA,IAAA4B,EAAA,IAAAh0B,GAAAzL,EAAAj3B,EAAAwgC,EAAAoC,EAAA9E,EAAAoD,EAAAlN,GACA5vB,EAAA,IAAA4qD,GAAAtsB,GAAA4sB,IAAAoH,GACA,OAAA3B,GAAA99B,EAAAyL,GAAA6sB,IAAAyF,EAAA5wD,EACA,CACO,SAAPuyD,GAAA1/B,EAAA+9B,EAAAF,GACAM,GAAAn+B,EAAA+9B,GACA,IAAAQ,EAAAR,EAAA7C,IACAnyD,EAAAw1D,EAAA7xC,IACA6c,EAAAg1B,EAAAa,KAAAb,EAAAh1B,IACA1C,EAAA03B,EAAApD,KAAA,GACAlxB,EAAAs0B,EAAArxC,KAAA,GACAywC,GAAAI,EAAAzsC,IAAAuV,EAAAoD,GACAv1B,EAAAmpD,IACAD,GAAA/2B,EAAAg3B,GAEA,IAAA5F,EAAA,IAAArsB,GAAA5L,EAAAj3B,EAAAwgC,OAAAr8B,EAAA25B,EAAAoD,EAAAs0B,GACApxD,EAAA,IAAA4qD,GAAAnsB,GAAAysB,IAAAJ,GACA,OAAA6F,GAAA99B,EAAA4L,GAAA0sB,IAAAyF,EAAA5wD,EACA,CACO,SAAPwyD,GAAA3/B,EAAA+9B,EAAAF,GACAM,GAAAn+B,EAAA+9B,GACA,IAAAtmD,EAAAsmD,EAAA7C,IAAAzjD,QACAqzB,EAAAizB,EAAA7C,IAAApwB,cACA79B,EAAA8wD,EAAA7C,IAAAC,KAAA,GACAlxB,EAAA8zB,EAAA7C,IAAAhuC,KAAA,GACAywC,GAAAI,EAAAzsC,IAAArkB,EAAAg9B,GACAv1B,EAAAmpD,IACAD,GAAA3wD,EAAA4wD,GAEA,IAAA5F,EAAA,IAAAptB,GAAA7K,EAAAvoB,EAAAqzB,EAAA79B,EAAAg9B,GACA98B,EAAA,IAAA4qD,GAAAltB,GAAAwtB,IAAAJ,GACA,OAAA6F,GAAA99B,EAAA6K,GAAAytB,IAAAyF,EAAA5wD,EACA,CCtSA,ICLA4S,GAAAqwB,GDKAwvB,GAAA,WACA,SAAAA,EAAA5/B,EAAA6E,GACA,IAAAg7B,EAAA,GACAC,GAAA,EACAC,EAAAl7B,EAAAm7B,YACA,KAAAzH,IAAA,WACA,OAAAsH,CACA,EACA,KAAAI,KAAA,SAAAC,GAEA,OADAL,EAAAK,EACAL,CACA,EACAn1C,GAAAk1C,EAAA,eAAAh/C,GACAA,EAAA43C,IAAA,SAAA9L,GACA9rC,EAAAgM,OAAAiY,EAAA4zB,IAEAqH,IACAl3B,GAAA5I,EAAA,gDAAApf,EAAAgM,OAAA,GACAkzC,GAAA,IAIApT,EAAAyT,IAAAzT,EAAAyT,KAAA,GAEAzrD,EAAAqrD,IACArT,EAAAyT,IAAAJ,GAKAF,EAAArzC,IAAAkgC,GAEA,EACA9rC,EAAAgM,IAAA,WACA,OAAAizC,EAAAzzC,GACA,EACAxL,EAAAnR,KAAA,WAEA,IADA,IAAAA,EAAAowD,EAAAzzC,IACA7D,EAAA,EAAAA,EAAAs3C,EAAAzzC,IAAA7D,IACA9Y,GAAAowD,EAAAt3C,GAAA86B,KAAAj3B,IAKA,OAHAyY,EAAA8zB,MACAlpD,GAAA,GAEAA,CACA,EACAmR,EAAAg4C,IAAA,WACAiH,EAAA,GACAC,GAAA,CACA,EACAl/C,EAAAw/C,SAAA,WACA,OAAAP,EAAA/2D,MAAA,EACA,EACA8X,EAAAy/C,cAAA,SAAAC,GACA,GAAAA,GAAAA,EAAAl0C,IAAA,GACA,IAAAm0C,EAAA,GACAvhD,GAAAshD,GAAA,SAAA5T,GACA6T,EAAA/zC,IAAAkgC,EAAAgM,IACA,IACA,IAAA1K,EAAAnpB,EAAA8zB,IACA4H,EAAA71D,KAAA,MACA,IAAA61D,EAAA71D,KAAA,SACA,OAAAsjD,CACA,CACA,WACA,EACAptC,EAAAsP,IAAA,SAAAswC,EAAAxf,EAAAyf,GACA,IAAAnzB,EAAAuyB,EAAA/2D,MAAA,GACA03D,EAAAA,GAAAxgC,EACAghB,EAAAA,GAAA,GACA,IAAA0f,EAAAD,EAAA,IAAAE,GAAAH,EAAAxf,GAAA,IAAA4f,GAAAJ,EAAAxf,GAIA,OAHAhiC,GAAAsuB,GAAA,SAAAof,GACAgU,EAAAlI,IAAA9L,EACA,IACAgU,CACA,CACA,GACA,C,oBA4BA,CAzGA,GA6GAE,GAAA,SAAA7M,GAEA,SAAA6M,EAAA5gC,EAAA6E,GACA,IAAAlkB,EAAAozC,EAAAvvD,KAAA,KAAAw7B,EAAA6E,IAAA,KASA,OARAna,GAAAk2C,EAAAjgD,GAAA,SAAAC,EAAAyqC,GACAzqC,EAAAi4C,IAAA,SAAAnM,GACArB,EAAAuN,KACA,EACAh4C,EAAAk4C,IAAA,SAAApM,GACA,CAEA,IACA/rC,CACA,C,OAZAqzC,GAAA4M,EAAA7M,G,aAoBA,CArBA,CAqBA6L,IAEAiB,GAAA,8BAIAF,GAAA,SAAA5M,GAEA,SAAA4M,EAAA3gC,EAAA6E,GACA,IAAAlkB,EAAAozC,EAAAvvD,KAAA,KAAAw7B,EAAA6E,IAAA,KACAi7B,GAAA,EAEAgB,EAAA,OAAAj8B,QAAA,IAAAA,OAAA,EAAAA,EAAAk8B,WAEA3wB,EAAAvL,EAAAk0B,KAAA,CAAAtf,QAAAM,GAAAR,QAAAS,IAAAP,EAAArJ,EAAAqJ,QAAAF,EAAAnJ,EAAAmJ,QACAwmB,EAAAl7B,EAAAm7B,YA0KA,OAzKAt1C,GAAAi2C,EAAAhgD,GAAA,SAAAC,EAAAyqC,GACA,IAAA2V,EAAAC,EAAAN,EAAA3H,KACAkI,EAAAD,EAAAN,EAAA1H,KACAkI,EAAAC,IACAC,EAAAH,EAAAhI,IAAAiI,GACAjB,EAAAt/C,EAAAq/C,KAAAe,EAAA9H,IAAAmI,IAsEA,SAAAC,EAAAhB,EAAAJ,GACA,IAAAqB,EAAA,GACAC,EAAA,GASA,OARAxiD,GAAAshD,GAAA,SAAA5T,GACA8U,EAAAh1C,IAAAkgC,EAAAgM,IACA,IACA15C,GAAAkhD,GAAA,SAAA74D,GACAyN,EAAAzN,KAAA,IAAA8X,GAAAqiD,EAAAn6D,EAAAqxD,MACA6I,EAAA/0C,IAAAnlB,EAEA,IACAk6D,CACA,CACA,SAAAN,EAAAv6D,GACA,IAAA+6D,EAAA/6D,EAEA,OADA+6D,EAAAX,EAAAA,EAAA,IAAAW,EAAAA,EACAC,EAAAD,EACA,CACA,SAAAC,EAAAh7D,GACA,IACA,IAAAi7D,EAAAloB,EAAAzZ,EAAAt5B,GACA,GAAAi7D,EAAA,CACA,IAAAC,EAAAjoC,KAAAppB,MAAAoxD,GAKA,GAJA9sD,EAAA+sD,KAEAA,EAAAjoC,KAAAppB,MAAAqxD,IAEAA,GAAAt5D,EAAAs5D,GACA,OAAAA,CAEA,CACA,CACA,MAAAxzD,GACAw6B,GAAA5I,EAAA,sBAAAt5B,EAAA,KAAAytB,GAAA/lB,GAAA,CAAAw7B,UAAAxyB,GAAAhJ,IACA,CACA,QACA,CACA,SAAAyzD,EAAAn7D,EAAAw5D,GACA,IAAAuB,EAAA/6D,EACA,IACA+6D,EAAAX,EAAAA,EAAA,IAAAW,EAAAA,EACA,IAAAE,EAAAjqD,KAAAmV,IAAAqzC,GACA3mB,EAAAvZ,EAAAyhC,EAAAE,EACA,CACA,MAAAvzD,GAGAmrC,EAAAvZ,EAAAyhC,EAAA/pD,KAAAmV,IAAA,KACA+b,GAAA5I,EAAA,sBAAAyhC,EAAA,KAAAttC,GAAA/lB,GAAA,oBAAAw7B,UAAAxyB,GAAAhJ,IACA,CACA,CAEA,SAAAgzD,IACA,IAAA9zB,EAAA,GACA,IAWA,OAVAtuB,GAAA6hD,IAAA,SAAAn6D,GACA,IAAA8uC,EAAAssB,EAAAp7D,GAGA,GAFA4mC,EAAAA,EAAA4rB,IAAA1jB,GAEAsrB,EAAA,CACA,IAAAW,EAAAX,EAAA,IAAAp6D,EACAq7D,EAAAD,EAAAL,GACAn0B,EAAAA,EAAA4rB,IAAA6I,EACA,CACA,IACAz0B,CACA,CACA,MAAAl/B,GACAw6B,GAAA5I,EAAA,+CAAA7L,GAAA/lB,GAAA,8CAAAw7B,UAAAxyB,GAAAhJ,IACA,CACA,QACA,CAEA,SAAA0zD,EAAAp7D,GACA,IACA,IAAA4mC,EAAAo0B,EAAAh7D,GACAs7D,EAAA,GAUA,OATAhjD,GAAAsuB,GAAA,SAAA+V,GACA,IAAA4e,EAAA,CACA5e,KAAAA,EACA8c,IAAA,GAEA6B,EAAAx1C,IAAAy1C,EACA,IAEAhoB,GAAAja,EAAAt5B,GACAs7D,CACA,CACA,MAAA5zD,GACA,CAEA,QACA,CAhKA8xD,EAAA9zC,IAAAu0C,EAAAxH,MACA+G,EAAA9zC,IAAAu0C,EAAAxH,KAEA0I,EAAAlB,EAAA1H,IAAA,IACA4I,EAAAlB,EAAA3H,IAAAkH,GACAt/C,EAAA43C,IAAA,SAAA9L,GACA9rC,EAAAgM,OAAA+zC,EAAAxH,IAEA2G,IACAl3B,GAAA5I,EAAA,qCAAApf,EAAAgM,OAAA,GACAkzC,GAAA,IAIApT,EAAAyT,IAAAzT,EAAAyT,KAAA,GAEAzrD,EAAAqrD,IACArT,EAAAyT,IAAAJ,IAKA1U,EAAAmN,IAAA9L,GACAmV,EAAAlB,EAAAuB,WAAAthD,EAAA23C,QACA,EACA33C,EAAAg4C,IAAA,WACAvN,EAAAuN,MACAiJ,EAAAlB,EAAAuB,WAAAthD,EAAA23C,OACAsJ,EAAAlB,EAAA1H,IAAA,IACA6G,GAAA,CACA,EACAl/C,EAAAi4C,IAAA,SAAAnM,GACAmV,EAAAlB,EAAA3H,IAAAp4C,EAAAq/C,KAAAqB,EAAA5U,EAAA9rC,EAAA23C,SACA,IAAA4J,EAAAlB,EAAAN,EAAA1H,KACAkJ,aAAA95D,OAAAqkD,aAAArkD,QACA85D,EAAAA,EAAAjJ,IAAAxM,GACAyV,EAAA/1C,IAAAu0C,EAAAxH,MAGAvwB,GAAA5I,EAAA,8CAAAmiC,EAAA/1C,KAAA,GACA+1C,EAAA/1C,IAAAu0C,EAAAxH,KAEA0I,EAAAlB,EAAA1H,IAAAkJ,GAEA,EACAvhD,EAAAk4C,IAAA,SAAApM,GACA,IAAAyV,EAAAlB,EAAAN,EAAA1H,KACAkJ,EAAAb,EAAA5U,EAAAyV,GACAN,EAAAlB,EAAA1H,IAAAkJ,EACA,EACAvhD,EAAAsP,IAAA,SAAAswC,EAAAxf,EAAAyf,GACAA,IAAAA,EACA,IAAA2B,EAAAxhD,EAAA23C,MAAAzvD,MAAA,GACAu5D,EAAApB,EAAAN,EAAA1H,KAAAnwD,MAAA,GACA03D,EAAAA,GAAAxgC,EACAghB,EAAAA,GAAA,GAEApgC,EAAAg4C,MACA,IAAA8H,EAAAD,EAAA,IAAAE,EAAAH,EAAAxf,GAAA,IAAA4f,GAAAJ,EAAAxf,GAQA,OAPAhiC,GAAAojD,GAAA,SAAA1V,GACAgU,EAAAlI,IAAA9L,EACA,IACA+T,GAEAC,EAAA7H,IAAAwJ,GAEA3B,CACA,CA8FA,IACA//C,CACA,CAiBA,IAAAZ,EAOA,OA3MAi0C,GAAA2M,EAAA5M,GAqMAh0C,EAAA4gD,EACAA,EAAA2B,QAAA,KACA3B,EAAAuB,WAAA,YAAAniD,EAAAuiD,QACA3B,EAAA4B,gBAAA,gBAAAxiD,EAAAuiD,QAEA3B,EAAA6B,gBAAA,IACA7B,CACA,CA7MA,CA6MAf,IEvVA6C,GAAA,WACA,SAAAA,EAAAziC,GACAtV,GAAA+3C,EAAA,eAAA7hD,GAcA,SAAA8hD,EAAAl8D,EAAAuC,GACA,IAAA45D,EAAA,uBACAz4D,EAAA,GACA,IAAA1D,EAEA,OADAoiC,GAAA5I,EAAA,gEAAAj3B,KAAAA,IAAA,GACAmB,EAEA,GAAA1D,EAAAm8D,GAEA,OADA/5B,GAAA5I,EAAA,6DAAAj3B,KAAAA,IAAA,GACAmB,EAEA,IAAA1D,EAAAkkC,eAAA,CAEA,oBAAA3hC,EACAmB,EAAA04D,EAAAp8D,EAAA,SAAAuC,QAEA,kBAAAA,EACAmB,EAAA04D,EAAAp8D,EAAA,SAAAuC,QAEA,YAAAA,EACAmB,EAAA04D,EAAAp8D,EAAA,SAAAuC,QAEA,GAAAT,EAAA9B,GACA0D,EAAA24D,EAAAr8D,EAAAuC,OAEA,CACA6/B,GAAA5I,EAAA,iFAAAj3B,KAAAA,IAAA,GACA,IAEA4wB,KAAA9M,IAAArmB,GACA0D,EAAA1D,CACA,CACA,MAAA4H,GAEAw6B,GAAA5I,EAAA,KAAA5xB,GAAA0G,EAAA1G,EAAAme,KAAAne,EAAAme,MAAA,mCACA,CACA,CACA,OAAAriB,CACA,CAmCA,OAlCA1D,EAAAm8D,IAAA,EACAhtD,GAAAnP,EAAAkkC,gBAAA,SAAArW,EAAAyuC,GACA,IAAAC,EAAAjuD,EAAAguD,GAAA,EAAAA,IAAA,EAAAA,EACAE,EAAAluD,EAAAguD,GAAA,EAAAA,IAAA,EAAAA,EACAx6D,EAAA,EAAAw6D,EACAG,OAAA/1D,IAAA1G,EAAA6tB,GACA6uC,EAAAnuD,EAAAvO,EAAA6tB,KAAA,OAAA7tB,EAAA6tB,GACA,IAAA0uC,GAAAE,GAAA36D,GAIA,IAAA06D,EAAA,CACA,IAAA37D,OAAA,EAIAA,EAHA67D,EACA56D,EAEAu6D,EAAAr8D,EAAA6tB,GAAAA,GAIAquC,EAAAl8D,EAAA6tB,GAAAA,GAKA7tB,EAAA6tB,QAGAnnB,IAAA7F,IACA6C,EAAAmqB,GAAAhtB,EAEA,OAvBAuhC,GAAA5I,EAAA,8FAAA3L,MAAAA,EAAAtrB,KAAAA,GAwBA,WACAvC,EAAAm8D,GACAz4D,CACA,CACA,SAAA24D,EAAAM,EAAAp6D,GACA,IAAAmB,EACA,GAAAi5D,EACA,GAAA76D,EAAA66D,GAGA,CACAj5D,EAAA,GACA,QAAA7D,EAAA,EAAAA,EAAA88D,EAAA/2C,IAAA/lB,IAAA,CACA,IAAAG,EAAA28D,EAAA98D,GACAg9C,EAAAqf,EAAAl8D,EAAAuC,EAAA,IAAA1C,EAAA,KACA6D,EAAAsiB,IAAA62B,EACA,CACA,MATAza,GAAA5I,EAAA,+FAAAj3B,KAAAA,IAAA,GAWA,OAAAmB,CACA,CACA,SAAA04D,EAAA12D,EAAAk3D,EAAAr6D,GACA,IAAAmB,EAoCA,OAnCAgC,IACAhC,EAAA,GACAyL,GAAAzJ,GAAA,SAAAmoB,EAAAhtB,GACA,cAAA+7D,OACAl2D,IAAA7F,EACA6C,EAAAmqB,GAAA,YAEA,OAAAhtB,EACA6C,EAAAmqB,GAAA,OAEAhtB,EAAAklB,IAIAriB,EAAAmqB,GAAAhtB,EAAAklB,MAHAriB,EAAAmqB,GAAA,iDAMA,cAAA+uC,EACA,QAAAl2D,IAAA7F,EACA6C,EAAAmqB,GAAA,iBAEA,UAAAhtB,EACA6C,EAAAmqB,GAAA,WAEA,CACA,IAAAmW,EAAA64B,WAAAh8D,GACA6C,EAAAmqB,GAAAmW,CACA,MAGAtgC,EAAAmqB,GAAA,kBAAAtrB,EAAA,uBACA6/B,GAAA5I,EAAA,EAAA91B,EAAAmqB,GAAA,QAEA,KAEAnqB,CACA,CA5IA0W,EAAA05C,IAAA,SAAAjwB,GACA,IAAAngC,EAAAw4D,EAAAr4B,EAAA,QACA,IACA,OAAA1Q,KAAA9M,IAAA3iB,EACA,CACA,MAAAkE,GAEAw6B,GAAA5I,EAAA,KAAA5xB,GAAA0G,EAAA1G,EAAAme,KAAAne,EAAAme,MAAA,mCACA,CACA,CAoIA,GACA,C,oBASA,CA7JA,GCCA+2C,GAAA,EACAC,GAAA,WACA,SAAAA,IACA,CAwBA,OAvBAA,EAAAn8D,UAAAo8D,iBAAA,SAAA98D,GACA,IAAA+8D,EAAA,KAAAC,YAAAh9D,GAAA68D,EAAAI,cACA,WAAAF,CACA,EACAF,EAAAn8D,UAAAs8D,YAAA,SAAAr5B,GACA,QAAAA,EACA,SAEA,MAAAA,EAAAje,IAAAk3C,GACAj5B,EAAAA,EAAA6uB,IAAA7uB,GAIA,IADA,IAAAu5B,EAAA,KACAv9D,EAAA,EAAAA,EAAAgkC,EAAAje,MAAA/lB,EACAu9D,GAAAA,GAAA,GAAAA,EAAAv5B,EAAAw5B,WAAAx9D,GAGAu9D,GAAAA,EAEA,OAAAvwD,KAAAywD,IAAAF,EACA,EAEAL,EAAAI,cAAA,WACAJ,CACA,CA3BA,GCAAQ,GAAA,WACA,SAAAA,IACA,IAAAnjD,EAAA,KACAojD,EAAA,IAAAT,GACA99D,EAAA,IAAAquD,GACAlzC,EAAAm6C,IAAA,SAAA1X,GACA,IAAAogB,EAAA,EAiBA,OAfAA,EADApgB,EAAA8U,KAAA9U,EAAA8U,IAAA1yD,EAAA+wD,QACAwN,EAAAR,iBAAAngB,EAAA8U,IAAA1yD,EAAA+wD,SAEAnT,EAAAoY,KAAApY,EAAAoY,IAAAG,MAAAvY,EAAAoY,IAAAG,KAAA7+B,GACAinC,EAAAhJ,IAAA3X,EAAAoY,IAAAG,KAAA7+B,IAEAsmB,EAAA8U,KAAA9U,EAAA8U,IAAA1yD,EAAAowD,aACAmO,EAAAR,iBAAAngB,EAAA8U,IAAA1yD,EAAAowD,cAEAxS,EAAAoY,KAAApY,EAAAoY,IAAAwI,gBAAA5gB,EAAAoY,IAAAwI,eAAAjyC,IACAgyC,EAAAR,iBAAAngB,EAAAoY,IAAAwI,eAAAjyC,KAIA,IAAA3e,KAAAuoB,SAEA6nC,CACA,CACA,CACA,OAAAM,CACA,CA3BA,GCCAG,GAAA,WACA,SAAAA,EAAAvM,EAAA33B,GAEA,KAAA2jC,cAAA,WACA,IAAAQ,EAAAnkC,GAAAiH,GAAA,OACA0wB,EAAA,KAAAA,EAAA,KACAwM,EAAAC,cAAA,oJAAAC,aAAA1M,IAAA,GACAA,EAAA,KAEA,KAAAkD,IAAAlD,EACA,KAAA2M,uBAAA,IAAAP,EACA,CAiBA,OAbAG,EAAA98D,UAAAm9D,YAAA,SAAAvG,GACA,IAAAwG,EAAA,KAAA3J,IACA0J,GAAA,EACA,cAAAC,QAAAt3D,IAAAs3D,GAAAA,GAAA,MAGAxG,EAAAhG,WAAAxmB,GAAA6mB,MAIAkM,EAAA,KAAAD,uBAAAvJ,IAAAiD,GAAAwG,EACAD,GACA,EACAL,CACA,CA7BA,GJKA/xC,QAAAjlB,EACAu3D,GAAA,GACAC,GAAA,KACA,SAAAC,GAAA1uC,GACA,IACA,OAAAA,EAAAC,YACA,CACA,MAAA9nB,GACA,CAEA,WACA,CACA,SAAAw2D,GAAAC,GACA,OAAAA,GAAAA,EAAAtU,QACA,CACA,IAAAuU,GAAA1sD,IAAA2H,GAAA,CAEA6yB,YAAAkI,GAAAxlC,EAAA0W,GAAAC,KAEAlM,GAAA44C,IAAA3d,KACAj7B,GAAAs6C,IAAA,KACAt6C,GAAAy5C,IAAA,OACAz5C,GAAAglD,iBAAA/pB,KACAj7B,GAAA85C,IAAA7e,IAAA,GACAj7B,GAAAilD,gBAAAhqB,KACAj7B,GAAA25C,IAAA1e,IAAA,GACAj7B,GAAAi6C,IAAAhf,IAAA,GACAj7B,GAAA65C,IAAA5e,KACAj7B,GAAAg6C,IAAA/e,KACAj7B,GAAA05C,IAAAze,KACAj7B,GAAAmP,IAAAiD,GACApS,GAAAghD,WAAA5uC,GACApS,GAAAykD,mBAAA1pB,GAAAmqB,GAAA,KACAllD,GAAAw5C,IAAApnC,GACApS,GAAAq6C,IAAAjoC,GACApS,GAAA04C,IAAA,IACA14C,GAAAg5C,KAAA,EACAh5C,GAAA8kD,gBAAA,CAAAtnC,MAAAqnC,GAAAhxD,EAAAue,IACApS,GAAA45C,IAAA3e,KACAj7B,GAAA8rC,WAAA15B,GACApS,GAAAmlD,WAAA/yC,GACApS,GAAAigD,YAAA,CAAAziC,MAAAtoB,EAAArB,EAAA,IACAmM,KACA,SAAAklD,GAAA59D,GACA,OAAA6jC,MAAA7jC,IAAAA,EAAA,GAAAA,GAAA,GACA,CACA,IAAA89D,IAAA/0B,GAAA,GACAA,GAAA3F,GAAAzD,UAAA03B,GACAtuB,GAAAvF,GAAA7D,UAAA24B,GACAvvB,GAAA3E,GAAAzE,UAAAk4B,GACA9uB,GAAAxE,GAAA5E,UAAA04B,GACAtvB,GAAAZ,GAAAxI,UAAA43B,GACAxuB,GAAAoB,GAAAxK,UAAA83B,GACA1uB,GAAA+C,GAAAnM,UAAAo3B,GACAhuB,IACAg1B,GAAA,SAAArR,GAEA,SAAAqR,IACA,IAIAC,EACAC,EAEAC,EACAC,EACAC,EACAC,EACAC,EAXAhlD,EAAAozC,EAAAvvD,KAAA,YACAmc,EAAAilD,SAAA,KACAjlD,EAAAymB,WAAAwM,GAUA,IACAiyB,EACAC,EACA1uB,EACA2uB,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA9F,EACAxW,EACAuc,EACA/b,EACAgc,EACAC,EACAC,EACAC,EACAC,EACAC,EA3BA/b,EAAA,EAm/BA,OAv9BA1gC,GAAA06C,EAAAzkD,GAAA,SAAAC,EAAAyqC,GAyXA,SAAA+b,EAAAhxC,EAAAs2B,GACA,IAAAx2B,EAAAyuC,GAAAvuC,GACA,IAAAA,GAAAF,EAAA,iBAAAA,EAIA,CACA,IAAAmZ,EAAA2hB,GAAA96B,GACAmZ,GAAAA,EAAA3d,KAAA2d,EAAA3d,IAAA2d,EAAAqrB,MACA+L,EACA7lD,EAAA45C,IAAA9N,EAAArd,GAGAzuB,EAAA25C,IAAA7N,EAAAv2B,GAAAC,GAEA,MAZAivC,EAAA,EACAzkD,EAAA65C,IAAA/N,EAAA,EAYA,CACA,SAAA2a,IACA,IAAAtnD,EACA,IACA,IAAAunD,EAAA,CACAhY,cAAA,SAAAl5B,EAAAm2B,EAAAG,GACA,IAAAv/C,EAAAo6D,EAAA7a,GACA,GAAAv/C,EAGA,OAAAi6D,EAAAhxC,EAAAjpB,EACA,EACA2hD,gBAAA,SAAAtC,EAAAjM,EAAAinB,EAAA9a,GACA,IAAAv/C,EAAAo6D,EAAA7a,GACA,GAAAv/C,EAGA,OAAAs6D,GAAAjb,EAAA9H,OAAAv3C,EAAAq/C,EAAAjjB,IAAAp8B,EAAAif,IAAAogC,EAAA2C,WAAAqY,GAAA,GACA,EACAla,cAAA,SAAAzyB,EAAA0xB,EAAAG,GACA,IAAAv/C,EAAAo6D,EAAA7a,GACA,GAAAv/C,EAGA,OAAAu6D,EAAA7sC,EAAA1tB,EAAAA,EAAAif,IACA,EACA2gC,cAAA,SAAA5/C,EAAAozC,EAAAonB,GACA,OAAAC,GAAAz6D,EAAAozC,EAAAonB,EACA,GAEA9iC,GAAA9kB,EAAA,GACAA,EAAAk6C,IAAA3P,EACAvqC,EAAAmY,SAAA,EACAnY,EAAA+vC,oBAAA,EACA/vC,EAAA65C,IAAA9O,EACA/qC,EAAAmwC,eAAAkW,EACArmD,EAAAowC,mBAAAgW,EACApmD,EAAA8vC,yBAAAyX,EACAvnD,GACA,OAAA8kB,CACA,CACA,MAAAz2B,GACA,CAEA,WACA,CAIA,SAAAs5D,EAAAzxC,EAAAy2B,EAAAmb,GACA,IAAA5xC,EAAAy3B,YACA+Z,GAAAxxC,EAAAyuB,OAAAgI,EAAAz2B,EAAA6xC,YAAAD,EAAAxxC,GAAAJ,GAAA0uC,GAAA1uC,IAAAA,EAAAu2B,SAEA,CAIA,SAAAd,EAAAgB,EAAAj1C,EAAAo2C,GACAjlB,GAAAhoB,EAAA0P,MAAA,kCAAA7Y,QAAAA,IACAmJ,EAAAi/C,SAAAj/C,EAAAi/C,QAAA/G,IAAApM,EACA,CAIA,SAAAqb,EAAArb,EAAArd,GAKA,IAJA,IAAA7wB,EAAA,GACAwpD,EAAA,GAEA7lC,EAAAkN,EAAAlN,OAAA8lC,UACA7nC,EAAA,EAAA8nC,EAAA/lC,EAAA/B,EAAA8nC,EAAA3hE,OAAA65B,IAAA,CACA,IAAA5xB,EAAA05D,EAAA9nC,GACA+nC,EAAAzb,EAAAzd,OAAAzgC,EAAA4pC,MAAA,MACAgwB,GAAA55D,EAAA65D,YACAL,EAAAx7C,IAAA27C,GAIA3pD,EAAAgO,IAAA27C,EAEA,CACAzb,EAAAtgC,IAAA,GACAxL,EAAA65C,IAAA/N,EAAArd,EAAAqrB,KAEAl8C,EAAA4N,IAAA,GACAxL,EAAA25C,IAAA/7C,EAAA6X,GAAA,wBAAAgZ,EAAAqrB,IAAA,KAAArrB,EAAA6hB,eAAAxmD,KAAA,OAEAs9D,EAAA57C,IAAA,IACAk8C,GAAAN,GACAp/B,GAAAhoB,EAAA0P,MAAA,oCACAo8B,EAAAtgC,IAAA,aAAA5N,EAAA4N,IACA,wBAAA47C,EAAA57C,IAAA,WAAAijB,EAAA3d,IAAA,UAEA,CAIA,SAAA65B,EAAAmB,EAAAmb,GACAjnD,EAAAi/C,SAAAj/C,EAAAi/C,QAAA/G,IAAApM,EACA,CACA,SAAA6a,EAAA7a,GACA,IACA,GAAAA,EAAA,CACA,IAAA6b,EAAA7b,EACA1kD,EAAAugE,EAAA5N,IACA,OAAA3yD,GAAAA,EAAAokB,IACApkB,EAEA,IACA,CACA,CACA,MAAAoG,GACA,CAEA,WACA,CACA,SAAAo6D,EAAAzK,EAAA0K,GACA,OAAAnC,IAKAvI,EAKAA,EAAA9F,WAAA8F,EAAAnD,KACA6N,GAAA7/B,GAAA6/B,EAAA,6DACA,IAEA1K,EAAAnD,MAEAmD,EAAAnD,IAAA,aAGAh6C,EAAAy4C,IAKAqP,GAAA3K,IAMAA,EAAAlyC,IAAAjL,EAAA+nD,QAAA9N,KAEA,IANA4N,GAAA7/B,GAAA6/B,EAAA,oDAAA58C,WAAAjL,EAAA+nD,QAAA9N,OACA,IAPA4N,GAAA7/B,GAAA6/B,EAAA,oCACA,KAfAA,GAAA7/B,GAAA6/B,EAAA,oCACA,GA0BA,CACA,SAAAG,EAAA7K,EAAA0K,GAGA,IAAAI,EAAA9K,EAAAjG,MAAAyO,EACAuC,EAAA1D,EAAA2D,kBAAAhL,EAAA8K,EAAAJ,EAAAjC,GACA,GAAAsC,EAAA,CAIA,IAAAE,GAAA,EAkBA,GAhBAjL,EAAA5F,KAAA4F,EAAA5F,IAAArsC,MACA9M,GAAA++C,EAAA5F,IAAArsC,KAAA,SAAAm9C,GACA,IACAA,IAAA,IAAAA,EAAAH,KACAE,GAAA,EACAngC,GAAA4/B,EAAA,2CAEA,CACA,MAAAr6D,GAGAw6B,GAAA6/B,EAAA,+EAAAt0C,GAAA/lB,GAAA,CAAAw7B,UAAAxyB,GAAAhJ,KAAA,EACA,CACA,WACA2vD,EAAA5F,IAAArsC,MAEAk9C,EAGA,OAAAF,CAtBA,MAFAlgC,GAAA6/B,EAAA,gDAyBA,CACA,SAAAS,EAAA7lB,GACA,IAAA8lB,EAAA1E,GACAgE,EAAA7nD,EAAA0P,MACA,IACA,IAAA84C,EAAAZ,EAAAnlB,EAAAolB,GACAzK,EAAA,KACAoL,IACApL,EAAA4K,EAAAvlB,EAAAolB,IAEAzK,IACAmL,EAAA1D,EAAAnL,IAAA0D,GAEA,CACA,MAAA5vD,GACA,CAEA,OAAA+6D,CACA,CACA,SAAAE,EAAArhE,GACA,IAAAmhE,EAAA1E,GAIA,OAHAz8D,GAAAA,EAAAokB,MACA+8C,EAAA,IAAAnhE,EAAA0C,KAAA,UAEAy+D,CACA,CACA,SAAAG,GAAAn8D,GACA,IAAA4S,EACAwX,EAAAgyC,KACA,OAAAxpD,EAAA,CACA+W,UAAAivC,GAEAhmD,EAAAuR,IAAAnkB,EACA4S,EAAAwX,QAAAA,EACAxX,CACA,CACA,SAAA2oD,GAAA1K,GACA,OAAAp9C,EAAA+nD,QAAApE,YAAAvG,EACA,CACA,SAAAwL,GAAA9c,EAAAhI,EAAAntB,EAAAi1B,GAGA,MAAA9H,GAAAgI,EACA9rC,EAAA2qC,WAAAmB,EAAAA,EAAAtgC,KAGAogC,GAAA5rC,EAAA25C,IAAA7N,EAAAF,EAEA,CACA,SAAAid,GAAAC,EAAAhd,EAAAhkB,EAAAihC,QACA,IAAAA,IAAAA,GAAA,GACA,IAAAppB,EAAA,SAAAmE,EAAAntB,EAAAi1B,GACA,OAAAgd,GAAA9c,EAAAhI,EAAAntB,EAAAi1B,EACA,EACAod,EAAAC,GAAAnd,GACAV,EAAA0d,GAAAA,EAAAnZ,SACA,OAAAvE,GAAA4d,GAGAD,GACA/oD,EAAAi/C,QAAAhH,IAAAnM,GAEAV,EAAA4d,EAAArpB,GAAA7X,IAEA,IACA,CACA,SAAAmhC,GAAAnd,GACA,IAAA3sC,EACA,GAAAzX,EAAAokD,IAAAA,EAAAtgC,IAAA,GACA,IAAA4hC,EAAAptC,EAAAk5C,IAAAuG,cAAA3T,GACAn1B,EAAAgyC,KACAK,GAAA7pD,EAAA,GACAA,EAAAuR,IAAA08B,EACAjuC,EAAA+W,UAAAivC,EACAhmD,EAAAwX,QAAAA,EACAxX,EAAAmtC,eAAApC,EACA/qC,EAAAuwC,uBAAAwW,EACA/mD,EAAA46C,IAAAjO,EACA3sC,GACA,OAAA6pD,CACA,CACA,WACA,CACA,SAAAL,KACA,IACA,IAAAhyC,EAAAouC,GAAA,GAIA,OAHAhzB,GAAAozB,KACAxuC,EAAA2iB,GAAA,IAAAA,GAAA,IAEA3iB,CACA,CACA,MAAAnpB,GACA,CAEA,WACA,CACA,SAAA07D,GAAAC,GACA,IAAAC,EAAAD,EAAAA,EAAA39C,IAAA,EACA,OAAAxL,EAAAk5C,IAAArqD,OAAAu6D,EAAA/D,IACAH,IAAAA,EAAA/tB,YACAn3B,EAAAw4C,KAAA,YAEA,EAGA,CACA,SAAAqO,GAAA/iB,EAAAgI,EAAAud,EAAApC,EAAAr6B,EAAAge,GACA,IAAAgB,EAAA,KAOA,GANA5rC,EAAAspD,SACA1d,EAAAwE,GAAAxF,GACAgB,GAAAA,EAAA2d,QACAvpD,EAAAspD,OAAA1d,EAAA2d,SAGAzlB,EAAA,KAAAA,GAAA,UAAAA,EAAA,CAGA,UAAAA,GAAA,MAAAA,GAAA,MAAAA,KACA0lB,GAAAH,GAEA,YADArpD,EAAA25C,IAAA7N,EAAAlf,GAIA,GAAAs4B,IAAAA,EAAA/tB,WAAA,CAEA,IAAA0uB,EAAA,CACA,IAAA4D,EAAA,GACA/B,GAAA5b,EAAA2d,GACAzhC,GAAAhoB,EAAA0P,MAAA,mCAAAlrB,OAAAs/C,EAAA,sBAAAt/C,QAAA0gE,EAAA/tB,WAAA,yBAAA3yC,OAAAsnD,EAAAnmD,OAAA,WACA,CACA,MACA,EACAkgE,GAAA2B,GAAA1jB,IACA4jB,GAAA5b,GACA9jB,GAAAhoB,EAAA0P,MAAA,wBACAo0B,EAAA,wBAAAgI,EAAAtgC,IAAA,YAGAxL,EAAA25C,IAAA7N,EAAAlf,EAEA,MAIA48B,GAAAH,GACA,MAAAvlB,GACA8H,IACAA,EAAAwE,GAAAxF,IAEAgB,IAAAia,EACA7lD,EAAA45C,IAAA9N,EAAAF,GAGA5rC,EAAA25C,IAAA7N,EAAAlf,KAIA63B,EAAA,EACAzkD,EAAA65C,IAAA/N,EAAAmb,GAGA,CACA,SAAAuC,GAAAH,GAEA,QAAAvE,GAAA,OAKAhxD,EAAAu1D,IAAA,KAAAA,GACAA,IAAAlE,IACAA,EAAAkE,IACAvE,GACA,GAIA,CACA,SAAA4E,GAAA5d,EAAAhkB,GACA,IAAAm9B,EAIA,CAEA,IAAA0E,EAAArD,GAAAA,EAAAhN,IAAA,QACA,OAAAuP,GAAAc,EAAA7d,EAAAhkB,EACA,CANAm9B,EAAAnZ,GAAA,EAOA,CACA,SAAAkb,GAAAlb,EAAAnM,EAAAonB,GACA,IAAAY,EAAA7b,EACAv/C,EAAAo7D,GAAAA,EAAA5N,IACA,GAAAsM,EAqBAD,GAAAA,EAAA75D,GAAA,GACAy7B,GAAAhoB,EAAA0P,MAAA,oFAtBA,CAGA,IADA,IAAAk6C,EAAA,GACAjiD,EAAA,EAAAA,EAAApb,EAAAif,IAAA7D,IAAA,CACA,IAAAkiD,EAAAt9D,EAAAob,GACAvgB,EAAA,CAAAyiE,GACApnB,EAAAwmB,GAAA7hE,GACA2/D,EAAAtkB,EAAA9C,GAKA3/B,EAAA2qC,WAAAvjD,EAAAA,EAAAokB,KAHAo+C,EAAAh+C,IAAAi+C,EAKA,CACAD,EAAAp+C,IAAA,IACA46C,GAAAA,EAAAwD,GAAA,GACA5hC,GAAAhoB,EAAA0P,MAAA,gFAEA,CAKA,CACA,SAAAo6C,GAAA1iE,GACA,IACA,GAAAA,GAAAA,EAAAokB,IACA,OAAAvX,EAAA7M,EAAA,GAEA,CACA,MAAAoG,GACA,CAEA,WACA,CACA,SAAAu8D,GAAAje,EAAAhkB,GACA,IAAAkiC,EAAA,KACA,GAAAtiE,EAAAokD,GAAA,CAEA,IADA,IAAAme,EAAAne,EAAAtgC,IACA7D,EAAA,EAAAA,EAAAmkC,EAAAtgC,IAAA7D,IACAsiD,GAAAne,EAAAnkC,GAAA86B,KAAAj3B,IAEA,IAAA0+C,EAAA5D,EAAAzW,sBACAqa,EAAAD,GAAAnG,GACAkG,EAAA,EAEApwC,KAEAowC,EAAA,GAIAA,EAAA,EACAhiC,GAAAhoB,EAAA0P,MAAA,6EAEA,IAAAy6C,EAAA7D,GAAAA,EAAAhN,IAAA,CAAA0Q,IAAA,GACA,OAAAnB,GAAAsB,EAAAre,EAAAhkB,EACA,CACA,WACA,CAKA,SAAA4/B,GAAA5b,EAAAse,GAEA,QADA,IAAAA,IAAAA,EAAA,GACAte,GAAA,IAAAA,EAAAtgC,IAAA,CAGA,IAAA8zC,EAAAt/C,EAAAk5C,IACAoG,EAAApH,IAAApM,GACA2Y,IACA,QAAAjlC,EAAA,EAAA6qC,EAAAve,EAAAtsB,EAAA6qC,EAAA1kE,OAAA65B,IAAA,CACA,IAAAijB,EAAA4nB,EAAA7qC,GACAijB,EAAA8c,IAAA9c,EAAA8c,KAAA,EACA9c,EAAA8c,MACAD,EAAA1H,IAAAnV,EACA,CAEA6nB,GAAAF,GACAG,IAZA,CAaA,CAKA,SAAAD,GAAAF,GACA,IACAI,EADAC,EAAA,GAEA,GAAAhG,GAAA,EACA+F,EAAAC,MAEA,CACA,IAAAC,GAAAj4D,KAAAk4D,IAAA,EAAAlG,GAAA,KAEAmG,EAAAn4D,KAAA6oB,MAAA7oB,KAAAuoB,SAAA0vC,EAAAD,GAAA,EACAG,GAAAR,EACAI,EAAA/3D,KAAAinB,IAAAjnB,KAAAi4B,IAAAkgC,EAAA,MAAAH,EACA,CAEA,IAAAI,EAAAC,KAAA,IAAAN,EAEA9F,EAAAmG,CACA,CAIA,SAAAN,KACA,IAAA3F,IAAAD,EAAA,CACA,IAAAoG,EAAArG,EAAAjyD,KAAAinB,IAAA,EAAAgrC,EAAAoG,MAAA,EACAE,EAAAv4D,KAAAinB,IAAAosC,EAAAiF,GACAnG,EAAAj/C,IAAA,WACAi/C,EAAA,KACA5kD,EAAAw4C,KAAA,SACA,GAAAwS,EACA,CACA,CACA,SAAAC,KACArG,GAAAA,EAAA5/C,SACA4/C,EAAA,KACAF,EAAA,IACA,CAKA,SAAA8C,GAAAC,GAEA,OAAA3zD,EAAAyyD,GAGA,MAAAkB,GAGA,MAAAA,GACA,MAAAA,GACA,MAAAA,GACA,MAAAA,GACA,MAAAA,GACA,MAAAA,EAVAlB,EAAA/6C,KAAA+6C,EAAAx/D,QAAA0gE,IAAA,CAWA,CAEA,SAAAyD,KACA,IAAAp4D,EAAA,eACA,OAAAkN,EAAAsmB,KAAAxzB,GACAkN,EAAAsmB,KAAAxzB,KAGAkN,EAAAsmB,KAAA,uBACA,CACA,SAAA6kC,GAAAC,EAAAtjC,GACA,IAAAqT,EAAA+vB,KACA,GAAA/vB,GAAAA,EAAA+e,IACA,IACA/e,EAAA+e,IAAAkR,EAAAtjC,EACA,CACA,MAAAt6B,GACAw6B,GAAAhoB,EAAA0P,MAAA,0CAAA6D,GAAA/lB,GAAA,CAAAw7B,UAAAxyB,GAAAhJ,IACA,CAEA,CAKA,SAAA69D,GAAAC,EAAArnC,GACA,IAAAsnC,EAAAtnC,EAAAunC,oCACAC,GAAA33D,EAAAy3D,IAAAA,EACA,GAAAE,EACA,SAEA,IAAAC,EAAA,iEACAC,EAAA,IAAAC,OAAAF,GACA,OAAAC,EAAAvjE,KAAAkjE,EACA,CACA,SAAAvc,KACA/uC,EAAAy4C,IAAA,KACAz4C,EAAAk5C,IAAA,KACAl5C,EAAAspD,OAAA,KACAtpD,EAAA+nD,QAAA,KACAhD,EAAA,GACAG,EAAA,KACAT,EAAA,EACAC,EAAA,KAEAC,GAAA,EACAC,EAAA,KACAC,EAAA,KACAC,EAAA,EACAta,EAAA,EACAya,EAAA,KACAzuB,EAAA,KACA2uB,EAAA,KACAC,EAAA,KACAC,EAAA,EACAC,GAAA,EACAG,EAAA,KACAC,GAAA,EACAC,EAAA,KACAC,EAAAr0C,GACAs0C,GAAA,EACAE,EAAA,KACA7F,EAAA3uC,GACA24B,GAAA,EACAgc,GAAA,EACAG,GAAA,EACAF,EAAA,KACAC,EAAA,KACAE,EAAA,KACAzwD,GAAAmK,EAAA,iBACA3K,EAAA,WACA,OAAAsf,GAAA,GAAAuvC,GACA,GAEA,CAp9BAnV,KACA/uC,EAAA6rD,MAAA,WACAZ,KACAtG,GAAA,CACA,EACA3kD,EAAA8rD,OAAA,WACAnH,IACAA,GAAA,EACAD,EAAA,KAEAwE,KACAqB,KAEA,EACAvqD,EAAA+rD,MAAA,SAAAjkC,EAAAugC,EAAA2D,GAEA,QADA,IAAAlkC,IAAAA,GAAA,IACA68B,EAAA,CAEAsG,KACA,IACA,OAAAjrD,EAAAw4C,IAAA1wB,EAAA,KAAAkkC,GAAA,EACA,CACA,MAAAx+D,GACAw6B,GAAAhoB,EAAA0P,MAAA,uDAAA6D,GAAA/lB,GAAA,CAAAw7B,UAAAxyB,GAAAhJ,IACA,CACA,CACA,EACAwS,EAAAisD,cAAA,WACA,IAAAtH,EACA,GAAAW,GAAAW,EACA,IACA,OAAAjmD,EAAAw4C,KAAA,EAAAkR,GAAA,EACA,CACA,MAAAl8D,GACAw6B,GAAAhoB,EAAA0P,MAAA,4FAAA6D,GAAA/lB,GAAA,CAAAw7B,UAAAxyB,GAAAhJ,IACA,MAGAwS,EAAA+rD,OAAA,EAGA,EACA/rD,EAAAksD,UAAA,SAAA/jE,EAAA1B,GACAs+D,EAAA58D,GAAA1B,CACA,EACAuZ,EAAAiO,IAAA,SAAAgW,EAAAqC,EAAAoW,EAAAuG,GACAjjC,EAAAg9B,iBACAhV,GAAAhoB,EAAA0P,MAAA,sCAEA+6B,EAAAx8B,IAAAgW,EAAAqC,EAAAoW,EAAAuG,GACA,IAAAzc,EAAAxmB,EAAAwmB,WACAq+B,EAAA,IAAAhD,GAAAv7B,EAAAlH,QACAqlC,EAAA,EACAC,EAAA,KAEA1kD,EAAAy4C,IAAA,KACAqM,EAAA,EACA,IAAA9lB,EAAAh/B,EAAA0P,MACA8mB,EAAAtB,GAAA9Y,GAAA,UAAAkK,EAAAyN,cAAAzN,EAAAyN,gBACAmxB,EAAApvB,GAAAU,GAEAx2B,EAAAixC,SAAA9sB,GAAAF,GAAA,SAAA/iB,GACA,IAAA+iB,EAAA/iB,EAAAoc,IACA2G,EAAAgV,eACAD,GAAA/U,EAAAgV,eAEA,IAAAn3B,EAAAy+B,GAAA,KAAAtc,EAAAqC,GAEA6lC,EAAArqD,EAAAm9B,UAAAzY,EAAA09B,IACAkI,EAAAD,EAAAzT,IAKA,GAAAyM,GAAAiH,IAAAjH,EAAA,CACA,IAAAkH,EAAApoC,EAAAy0B,IAEA2T,GAAAA,IAAAD,IAEAD,EAAAzT,IAAA2T,EAEA,CACA73D,EAAA23D,EAAA79C,OAEA69C,EAAA79C,IAAA2V,EAAA3V,KAEAzY,GAAAmK,EAAA,iBACA3K,EAAA,WACA,OAAA82D,CACA,IAIA/G,IAAA+G,EAAAzT,MAIAyM,EAAAC,EAAA+G,EAAAzT,KAGApyB,EAAAgmC,iBAAAjpB,GAAAE,QAGAvjC,EAAA6rD,QAEAvlC,EAAAgmC,iBAAAjpB,GAAAI,QAEAzjC,EAAA8rD,SAEArG,GAAAA,IAAA0G,EAAAxT,KAEAv6C,GAAAqnD,GAAA,SAAA8G,UACAxH,EAAAwH,EAAAz1C,OACA,IAEAuuC,EAAA8G,EAAAvT,IACA0M,IAAA,IAAA6G,EAAAtT,MAAA,IAAAsT,EAAArT,MAAAl/B,KACA2rC,GAAA,IAAA4G,EAAAtT,KAAAj/B,KACA4rC,GAAA,IAAA2G,EAAArT,KAAAl/B,KACAqsC,EAAAkG,EAAApT,IACA7O,IAAAiiB,EAAAnT,IACAuN,EAAA4F,EAAA7H,WACA,IAAAkI,EAAAL,EAAAhU,IACA0H,IAAAsM,EAAAlT,QACAuT,GAAAzzB,MACAonB,EAAAgM,EAAAhM,WAGAsM,EAAA5M,IAAAkG,GACAlG,GAAAK,IAAAC,GACAN,GAAAmG,IAAAwG,EACA,GAAAxsD,EAAAk5C,IAAA,CAMA,GAAAuT,EACA,IACAzsD,EAAAi/C,QAAAj/C,EAAAi/C,QAAA3vC,IAAA0vB,EAAAmtB,EAAAtM,EACA,CACA,MAAAryD,GACAw6B,GAAAhoB,EAAA0P,MAAA,0FAAA6D,GAAA/lB,GAAA,CAAAw7B,UAAAxyB,GAAAhJ,IACA,CAEA07D,IACA,MAEAlpD,EAAAk5C,IAAA2G,EACA,IAAAE,GAAA/gB,EAAAmtB,GAAA,IAAAnM,GAAAhhB,EAAAmtB,GAEAjM,EAAAC,EACA4F,EAAAlG,EACAmG,EAAAwG,EACAtG,GAAAiG,EAAAhT,KAAAr/B,IAAA,GACAusC,IAAA8F,EAAA/S,IACAp5C,EAAA+nD,QAAA,IAAAzE,GAAA6I,EAAAvI,mBAAA5kB,GACA2mB,EAAAwG,EAAA79C,IACA9Z,EAAAmxD,IAAA0F,GAAA1F,EAAA1hC,IACA+D,GAAAgX,EAAA,qCAAA2mB,GAEAF,EAAA0G,EAAAxT,IACA1kD,EAAAkxD,KAAApzB,GAAAozB,IAAAM,GAAAA,EAAAj6C,IAAA,EACApN,GAAAqnD,GAAA,SAAA8G,GACAxsD,EAAAmsD,UAAAK,EAAAz1C,OAAAy1C,EAAA9lE,MACA,IAGAg/D,EAAA,KAEA/b,EAAAyiB,EAAA9S,IACA,IAAAqT,EAAAjG,IAEAH,EAKAA,EAAAtX,UAAA0d,IAJApG,EAAA,IAAA7c,GACA6c,EAAAr4C,IAAAy+C,EAAA1tB,IAKA,IAAA2tB,EAAAR,EAAAlI,gBACA2I,EAAA,KACAC,EAAA,KAGAl3C,EAAAD,GAAA,QAAAy2C,EAAAlhB,YACA2hB,EAAAtG,GAAAA,EAAAhN,IAAA3jC,GAAA,GACA,IAAAm3C,EAAAxG,GAAAA,EAAAvW,kBACAoW,EAAA,SAAAra,EAAAhkB,GACA,OAAA+gC,GAAAiE,EAAAhhB,EAAAhkB,EACA,EACAs+B,EAAA,SAAAta,EAAAhkB,GACA,OAAA+gC,GAAAiE,EAAAhhB,EAAAhkB,GAAA,EACA,EACA8kC,EAAA3G,EAAA0G,EAAAC,GAAAD,GAAAG,EACA9sD,EAAAy4C,IAAA,SAAA3M,EAAAhkB,GACA,OAAA+gC,GAAA+D,EAAA9gB,EAAAhkB,EACA,EACAo+B,IAEAjB,EAAA8E,IAEA,IAAAgD,EAAAr3C,GAAA,MAAAy2C,EAAA5S,KACA2M,IAEA6G,EAAAA,EAAA9nE,QAAA,SAAA+kE,GAAA,WAAAA,CAAA,KAEA6C,EAAAvG,GAAAA,EAAAhN,IAAAyT,GAAA,GACAF,EAAA5G,EAAA0G,EAAAE,GAAAF,GACA1G,GAAAkG,EAAA5S,MAAA0L,IAAA4H,IACA5H,EAAA,SAAAnZ,EAAAhkB,GACA,OAAA+gC,GAAAgE,EAAA/gB,EAAAhkB,EACA,GAEAm9B,IACAA,EAAAkB,GAEAT,EAAAyG,EAAAhI,iBACAyB,EAAAuG,EAAA3S,KAAAjoC,GACAs0C,EAAAsG,EAAA/H,gBACA0B,EAAAqG,EAAA1S,GACA,IACA,EACAz5C,EAAA0hC,iBAAA,SAAAyb,EAAAlb,GACA,IAAA9iC,EACA8iC,EAAAjiC,EAAAgiC,WAAAC,GACA,IAAA4lB,EAAA5lB,EAAAvyB,MACA,IACA,IAAAs9C,EAAApF,EAAAzK,EAAA0K,GACA,IAAAmF,EACA,OAEA,IAAA9E,EAAAF,EAAA7K,EAAA0K,GACA,IAAAK,EACA,OAGA,IAAApc,EAAA+Y,EAAAnL,IAAAwO,GAEA5I,EAAAt/C,EAAAk5C,IACAgQ,GAAApd,GACA,IAAAmhB,GAAA9tD,EAAA,GACAA,EAAA24C,IAAAhM,EACA3sC,EAAAogD,IAAA,EAEApgD,GAEAmgD,EAAA1H,IAAAqV,GAEA1C,IACA,CACA,MAAA/8D,GACAw6B,GAAA6/B,EAAA,qFAAAt0C,GAAA/lB,GAAA,CAAAw7B,UAAAxyB,GAAAhJ,IACA,CAEAwS,EAAAktD,YAAA/P,EAAAlb,EACA,EACAjiC,EAAAmtD,iBAAA,WACA,OAAAxI,GAAA,IAAAna,GAAA,IAAAxqC,EAAAi/C,QAAAjzC,KACA,EACAhM,EAAAotD,mBAAA,WACA,OAAAlI,CACA,EAIAllD,EAAA8mD,qBAAA,SAAAzxC,EAAAy2B,EAAAmb,GAEA,IAAA6C,GAAAhe,GAGA,OAAAgb,EAAAzxC,EAAAy2B,EAAAmb,EACA,EAMAjnD,EAAAw4C,IAAA,SAAA6U,EAAAC,EAAAtB,GAEA,IAAA54D,EACA,QAFA,IAAAi6D,IAAAA,GAAA,IAEA1I,EACA,IACA,IAAArF,EAAAt/C,EAAAk5C,IAEA,GAAAwM,EAgBApG,EAAAtH,UAhBA,CACA,GAAAsH,EAAAtzC,MAAA,GACA,IAAA8/B,EAAAwT,EAAAE,WACA2L,GAAAa,GAAA,EAAAqB,GAGAj6D,EADAk6D,EACAA,EAAA1pE,KAAAoc,EAAA8rC,EAAAuhB,GAGArtD,EAAAy4C,IAAA3M,EAAAuhB,EAEA,EAEA,IAAAltD,IACA,CAIA8qD,IACA,CACA,MAAAz9D,GAEA,IAAA+/D,EAAAl0C,OACAk0C,GAAAA,EAAA,IACAvlC,GAAAhoB,EAAA0P,MAAA,oEAAA6D,GAAA/lB,GAAA,CAAAw7B,UAAAxyB,GAAAhJ,IAEA,CAEA,OAAA4F,CACA,EACA4M,EAAAwtD,kBAAA,WACA,IAAAruD,EACA,OAAAA,EAAA,CACAsuD,OAAA,WACA,OAAAtI,CACA,EACAuI,cAAAhF,IAEAvpD,EAAAu6C,IAAA4O,EACAnpD,EAAAiuC,MAAAqb,EACAtpD,EAAAwuD,cAAA,SAAAz+B,GACA,QAAA04B,EAAA14B,EACA,EACA/vB,CACA,EACAa,EAAA4tD,YAAA,SAAAjrB,EAAA9B,GACA7gC,EAAAisD,gBACAjc,GAAAkV,GAAA,GACAnW,IACA,EAIA/uC,EAAA25C,IAAA,SAAA7N,EAAAj1C,EAAAo2C,GAEA,IAAA6c,GAAAhe,GAGA,OAAAhB,EAAAgB,EAAAj1C,EAAAo2C,EACA,EAIAjtC,EAAA45C,IAAA,SAAA9N,EAAArd,GAEA,IAAAq7B,GAAAhe,GAGA,OAAAqb,EAAArb,EAAArd,EACA,EAIAzuB,EAAA65C,IAAA,SAAA/N,EAAAmb,GAEA,IAAA6C,GAAAhe,GAGA,OAAAnB,EAAAmB,EAAAmb,EAEA,EAIAjnD,EAAAwmD,WAAA,SAAAhxC,EAAAs2B,GAEA,IAAAge,GAAAhe,GAGA,OAAA0a,EAAAhxC,EAAAs2B,EACA,CA8lBA,IACA/rC,CACA,CAsJA,OAxpCAqzC,GAAAoR,EAAArR,GAmgCAqR,EAAA2D,kBAAA,SAAA0F,EAAA3W,EAAA93B,EAAA0uC,GACA,IAAA1Q,EAKAA,EAJAlG,IAAA2W,EAAA3W,MAAApjD,EAAAojD,GAIA2W,EAHAv+B,GAAAA,GAAA,GAAAu+B,GAAA,CAAA3W,KAAAA,IAKA,IAAA6W,EAAAxJ,GAAAnH,EAAAhG,WAAA0G,GACA,OAAAiQ,EAAA3uC,EAAAg+B,EAAA0Q,EACA,EA2IAtJ,CACA,CA1pCA,CA0pCApT,IKvtCA4c,GAAA,IACAC,GAAA,IACO,SAAPC,GAAAC,GACA,IAAAA,EACA,SAEA,IAAAC,EAAAD,EAAA5iD,IAAAyiD,IACA56D,EAAAuL,GAAAyvD,GAAA,SAAAC,EAAAC,GACA,IAAAC,EAAAD,EAAA/iD,IAAA0iD,IACA,OAAAM,EAAA/iD,IAAA,CACA,IAAA1lB,EAAAyoE,EAAA,GAAA9iD,MACAhlB,EAAA8nE,EAAA,GACAF,EAAAvoE,GAAAW,CACA,CACA,OAAA4nE,CACA,OACA,GAAA92D,GAAAnE,GAAAoY,IAAA,GAEA,GAAApY,EAAAo7D,eAAA,CAEA,IAAAC,EAAAr7D,EAAAwlB,SAAAxlB,EAAAwlB,SAAA,OACAxlB,EAAAsY,IAAAtY,EAAAsY,KAAA,WAAA+iD,EAAA,MAAAr7D,EAAAo7D,cACA,CAEAp7D,EAAAsY,IAAAtY,EAAAsY,KAAAN,GACAxH,GAAAxQ,EAAAsY,IAAA,OACAtY,EAAAsY,IAAAtY,EAAAsY,IAAAxjB,MAAA,MAEA,CACA,OAAAkL,CACA,CACO,ICpCP+L,GAAAqwB,GAmBAk/B,GAVAC,GAAA,cACAC,GAAA,cACAC,GAAA,SACAC,GAAA,UACAC,GAAA,sBACAC,GAAA,sBACAC,GAAA,SACAC,GAAA,KACAC,GAAA,KACAC,GAAA,KAEAC,GAAA,GACAC,GAAA,GAUAC,IAAApwD,GAAA,CACAqwD,UAAAv1B,IAAAzK,GAAA,GACAA,GAAA/c,IAAA,CAAAmK,GAAA,eAAAM,MAAAlK,IACAwc,GAAAvtB,KAAA,CAAA2a,GAAA,aAAAM,MAAAlK,IACAwc,GAAAoH,QAAArlB,GACAie,GAAAigC,cAAAl+C,GACAie,GAAAkgC,eAAAn+C,GACAie,KACAmgC,aAAAp+C,GACAq+C,WAAAr+C,IAEApS,GAAA6vD,IAAAz9C,GACApS,IACA,SAAA0wD,MACAnB,KAAAA,GAAAvzD,IAAA,kBAAAe,IAAA,IACA,CAqBA,SAAA4zD,GAAAC,GACA,OAAAA,GACAA,EAAAC,WAGA,CACA,SAAAC,GAAAC,EAAA/nE,GACA,SAAAA,GAAA+nE,GAAAxoE,EAAAwoE,EAAAT,kBACA,IAAAlxD,GAAA2xD,EAAAT,cAAAtnE,EAGA,CACA,SAAAgoE,GAAAD,EAAA/nE,GACA,SAAAA,GAAA+nE,GAAAxoE,EAAAwoE,EAAAR,kBACA,IAAAnxD,GAAA2xD,EAAAR,eAAAvnE,KAIA8nE,GAAAC,EAAA/nE,EACA,CACA,SAAAioE,GAAA9vB,EAAA+vB,GACA,IAAAC,EAAAD,EAAArhD,IACA,GAAAlb,EAAAw8D,GAAA,CAEA,IAAAC,OAAA,EAEA78D,EAAA4sC,EAAAyuB,OACAwB,GAAAjwB,EAAAyuB,KAGAr7D,EAAA4sC,EAAA0uB,OACAuB,GAAAjwB,EAAA0uB,KAIAsB,EAAAC,CACA,CACA,OAAAD,CACA,CA6BO,SAAPE,GAAAlwB,EAAAlhB,GACA,IAAAjgB,EACAkxD,EACAI,EACAC,EACAC,EAEAC,EACAC,EACAC,EACAC,EAEAzwB,EAAAtc,GAAAsc,GAAAgvB,GAAA,KAAAlwC,GAAA9B,IAEAqzC,EAAAxsC,GAAAmc,GAAA,SAAAp/B,GAEAA,EAAAwM,IAAAxM,EAAAoc,IAAAiyC,IAEAc,EAAAnvD,EAAAwD,IAAAxD,EAAAoc,IAAA,aACAmzC,EAAAJ,EAAA39C,KAAA,IACAg+C,EAAAL,EAAA59C,IAEAm+C,GAAA,IAAAR,GAAA9vB,EAAA+vB,GACAQ,EAAAR,EAAAW,WAAAC,GACAH,EAAAT,EAAAa,WAAAC,GACAJ,EAAAV,EAAAe,WAAAD,EACA,GAAA/xC,GACA,IAAA2wC,GAAA5wD,EAAA,CACA6wD,UAAA,WACA,IAAAp5B,GAAA,IAAAw5B,GAAA9vB,EAAA+vB,IAAAO,GAAAS,GAAAjyC,GAGAkyC,EAAAhC,GAAAL,IAMA,OALAr4B,GAAA06B,GAAAvB,IAAAuB,IAGA16B,EAAAk5B,GAAAwB,IAEA16B,CACA,EACA26B,WAAA,SAAA9qE,GAEAmqE,GAAA,IAAAnqE,EACA4pE,EAAArhD,IAAAvoB,CACA,EACAgP,IAAA,SAAAtN,EAAA1B,EAAA+qE,EAAAtV,EAAAj6C,GACA,IAAA7O,GAAA,EACA,GAAA08D,GAAAC,KAAAI,GAAAE,EAAAloE,GAAA,CACA,IAAA6N,EAAA,GACA4d,EAAAlT,GAAAja,GAAA+qB,IACAlT,EAAA0F,GAAA4P,EAAA,KAOA,IANA,IAAAtV,IACAsV,EAAAlT,GAAA3G,GAAAtT,EAAA6X,IACAtI,EAAAy7D,GAAA93D,GAAAlT,EAAA6X,EAAA,KAGAkV,GAAAxd,EAAAyc,GAAAypC,GAAAwU,EAAAh8D,EAAAhB,IACAI,EAAA09D,GAAA,CACA,IAAAE,EAAAx4C,KACA,GAAAxlB,EAAAsC,EAAA84D,KAAA,CACA,IAAA6C,EAAAzxD,KAEA0xD,EAAAD,EAAA,IAAAH,EAEA,GAAAI,EAAA,GACA,IAAAC,EAAA,IAAA1xD,KACA0xD,EAAAC,QAAAF,GACAp+C,GAAAxd,EAAA84D,GAAAiD,GAAAF,EAAAH,EAAA/C,GAAAC,KAAAmD,GAAAF,EAAAH,EAAA/C,GAAAC,KAAAp9C,GAAA9c,EACA,CACA,CACAg9D,GAEAl+C,GAAAxd,EAAA,UAAAwb,GAAAggD,EAAA,KAAA99D,EAEA,CACA,IAAAk8C,EAAAn3B,KACAm3B,GAAA,WAAAA,EAAA7/B,MACAyD,GAAAxd,EAAA,mBAAAtC,GAEA,OAAAy7D,KACAA,IAAA6C,IAAA11D,MAAA,IAAA0T,MAEAm/C,IACA37C,GAAAxd,EAAA,uBAAAtC,IAGA8f,GAAAxd,EAAA0c,GAAAzQ,GAAAwuD,EAAA,KAAA/8D,GAEAo9D,EAAA3oE,EAAA8pE,GAAAr+C,EAAA5d,IACA5C,GAAA,CACA,CACA,OAAAA,CACA,EACAmC,IAAA,SAAApN,GACA,IAAA1B,EAAA+qB,GAIA,OAHAs+C,GAAAC,KAAAE,GAAAI,EAAAloE,KACA1B,EAAAoqE,EAAA1oE,IAEA1B,CACA,EACAyrE,IAAA,SAAA/pE,EAAA8Z,GACA,IAAA7O,GAAA,EAKA,OAJA08D,GAAAC,KAEA38D,EAAA28D,EAAAoC,MAAAhqE,EAAA8Z,IAEA7O,CACA,EACA++D,MAAA,SAAAhqE,EAAA8Z,GACA,IAAA9C,EACA/L,GAAA,EACA,GAAAi+D,GAAAjyC,GAAA,CAEA,IAAAppB,GAAAmJ,EAAA,GACAA,EAAAuT,IAAAzQ,GAAA,IACA9C,EAAA2vD,IAAA,gCACA3vD,GACA+Z,OAEAljB,EAAA,gBAGA+6D,EAAA5oE,EAAA8pE,GAAAzgD,GAAAxb,IACA5C,GAAA,CACA,CACA,OAAAA,CACA,GAEA+L,EAAA+P,IAAA,SAAA4Y,GACA6oC,GAAAA,EAAAztC,KACAytC,EAAA,IACA,EACAxxD,GAGA,OADA4wD,EAAAd,IAAAc,EACAA,CACA,CAIO,SAAPsB,GAAAjyC,GACA,UAAA8vC,GAAA,CACAA,IAAA,GACAR,IAAAmB,KACA,IACA,IAAAp2C,EAAAi1C,GAAA17D,GAAA,GACAk8D,QAAA5iE,IAAAmtB,EAAAo1C,GACA,CACA,MAAArhE,GACAw6B,GAAA5I,EAAA,wCAAA7L,GAAA/lB,GAAA,CAAAw7B,UAAAxyB,GAAAhJ,IACA,CACA,CACA,OAAA0hE,EACA,CACA,SAAAuC,GAAA79C,GACA,IAAA5d,EAAA,GACA,GAAA4d,GAAAA,EAAApI,IAAA,CACA,IAAA4mD,EAAA1xD,GAAAkT,GAAArI,IAAA,KACAnN,GAAAg0D,GAAA,SAAAC,GAEA,GADAA,EAAA3xD,GAAA2xD,GAAA7gD,IACA6gD,EAAA,CACA,IAAA/zD,EAAA0F,GAAAquD,EAAA,MACA,IAAA/zD,EACAtI,EAAAq8D,GAAA,KAGAr8D,EAAA0K,GAAA3G,GAAAs4D,EAAA/zD,KAAAoC,GAAA/G,GAAA04D,EAAA/zD,EAAA,GAEA,CACA,GACA,CACA,OAAAtI,CACA,CACA,SAAA+7D,GAAAO,EAAAx/D,GACA,OAAAoB,EAAAo+D,EAAAx/D,IACAw/D,EAAAx/D,KAEA,IACA,CACA,SAAAm/D,GAAAxrE,EAAAuP,GACA,IAAAu8D,EAAA9rE,GAAA+qB,GAIA,OAHAzc,GAAAiB,GAAA,SAAA7N,EAAAyrB,GACA2+C,GAAA,KAAApqE,GAAA2L,EAAA8f,GAAApC,GAAA,IAAAoC,EACA,IACA2+C,CACA,CACA,SAAAtB,GAAA9oE,GACA,IAAAoqE,EAAA/gD,GAEA,IADAk9C,IAAAmB,KACAnB,GAAA17D,EAAA,CACA,IAAAw/D,EAAA9D,GAAA17D,EAAA67D,KAAAr9C,GACA49C,KAAAoD,IACAnD,GAAAoC,GAAAe,GACApD,GAAAoD,GAEAD,EAAA7xD,GAAA2uD,GAAAlnE,IAAAqpB,GACA,CACA,OAAA+gD,CACA,CACA,SAAApB,GAAAhpE,EAAAoqE,IACA7D,IAAAmB,KACAnB,GAAA17D,IACA07D,GAAA17D,EAAA67D,IAAA1mE,EAAA,IAAAoqE,EAEA,CACO,SAAPP,GAAA54C,GACA,QAAAnlB,EAAAmlB,QAQAhG,GAAAgG,EAAA,sBAAAhG,GAAAgG,EAAA,yBAUAhG,GAAAgG,EAAA,oCAAAhG,GAAAgG,EAAA,aAAAhG,GAAAgG,EAAA,gBAUAhG,GAAAgG,EAAA,qCAAAxV,GAAAwV,EAAA,kDAMAhG,GAAAgG,EAAA,cAAAhG,GAAAgG,EAAA,kBAKAhG,GAAAgG,EAAA,iBAAAhG,GAAAgG,EAAA,eAMAhG,GAAAgG,EAAA,kBAAAhG,GAAAgG,EAAA,qBAIA,CC7XA,IAAA0K,GAAA,CACA2uC,iBAAA,GAEA,SAAAC,GAAAC,GACAA,EAAAtuE,EAAA,KACA,IAAAuuE,EAAAD,EAAAz/D,GACAy/D,EAAAz/D,GAAA,GACAkL,GAAAw0D,GAAA,SAAA1/D,GAEAL,EAAAK,EAAA8K,GAAA,CAAA9K,EAAAU,KACA,GACA,CAGA,SAAAi/D,GAAAC,EAAA3qE,EAAAwqE,EAAAhoE,GACAyT,GAAA00D,GAAA,SAAApuC,GACAA,GAAAA,EAAAv8B,KACAwqE,GAEAA,EAAAz/D,GAAA0Y,IAAA,CACA5N,GAAArT,EACAiJ,IAAA8wB,IAEAiuC,EAAAtuE,EAAAsuE,EAAAtuE,GAAAshB,GAAA+sD,GAAA,EAAAC,IAIA9/D,EAAAlI,EAAA,CAAA+5B,IAGA,GACA,CAIA,IAAAquC,GAAA,WACA,SAAAA,EAAA9uC,GAEA,IAAAwuC,EACA9B,EAFA,KAAAmC,UAAA,GAGA,IAAAE,EAAA,GACAC,EAAA,CACA5uE,EAAA,KACA6O,GAAA,IAEA2uB,EAAAmC,GAAAC,EAAAH,IACA6sC,EAAA9uC,EAAAlU,KAAA,SAAAzM,GACAuxD,IAAAvxD,EAAAoc,IAAAm1C,eACA,IACA3oD,GAAAipD,EAAA,eAAA/yD,GACAnK,GAAAmK,EAAA,aACA3K,EAAA,kBAAA29D,CAAA,IAEAhzD,EAAAoO,IAAA,SAAAsW,GACAsuC,EAAApnD,IAAA8Y,EACA,EAKA1kB,EAAAmO,IAAA,SAAAuW,GACA,IAAA8S,EAAAj5B,GAAAy0D,EAAAtuC,GACA,MAAA8S,GAAA,EACAw7B,EAAAllD,IAAA0pB,EAAA,GACAA,EAAAj5B,GAAAy0D,EAAAtuC,EAEA,EAKA1kB,EAAAiS,IAAA,SAAA2iB,GACAi+B,GAAAG,EAAA/gD,GAAAghD,GAAA,SAAAvuC,GACAA,EAAAzS,IAAA2iB,EACA,GACA,EAOA50B,EAAAkS,IAAA,SAAA0iB,EAAA5H,GACA6lC,GAAAG,EAAA9gD,GAAA+gD,GAAA,SAAAvuC,GACAA,EAAAxS,IAAA0iB,EAAA5H,EACA,GACA,EAMAhtB,EAAAmS,IAAA,SAAA65C,EAAAlkC,GACA+qC,GAAAG,EAAA7gD,GAAA2V,EAAAmrC,EAAA,eAAAvuC,GACAA,EAAAvS,IAAA65C,EAAAlkC,EACA,GACA,EACA9nB,EAAAoS,IAAA,SAAAkpB,GACAA,KAEAm3B,GAAAn3B,EAAA7qB,OACAoiD,GAAAG,EAAA5gD,GAAA,eAAAsS,GACA4W,EAAA7rB,IACA9J,IAAA,kBAAA+e,EAAAtS,IAAAkpB,EAAA,MAGA5W,EAAAtS,IAAAkpB,EAEA,IAGA,EACAt7B,EAAAqS,IAAA,SAAAuiB,GACAA,GAAAA,EAAAppB,KACAqnD,GAAAG,EAAA3gD,GAAA4gD,GAAA,SAAAvuC,GACAA,EAAArS,IAAAuiB,EACA,GAEA,EACA50B,EAAAsS,IAAA,SAAA86B,GACAA,GAAAA,EAAA18B,KACAmiD,GAAAG,EAAA1gD,GAAA2gD,GAAA,SAAAvuC,GACAA,EAAApS,IAAA86B,EACA,GAEA,EACAptC,EAAAuS,IAAA,SAAAgtC,EAAAvyB,GACA,GAAAuyB,EAAA,GACA,IAAA2T,EAAAlmC,GAAA,EACA6lC,GAAAG,EAAAzgD,GAAA0gD,GAAA,SAAAvuC,GACAA,EAAAnS,IAAAgtC,EAAA2T,EACA,GACA,CACA,EACAlzD,EAAAkP,IAAA,SAAA4Y,GACA,IASAqrC,EATAC,EAAA,WACAzC,GAAAA,EAAAztC,KACAytC,EAAA,KACAqC,EAAA,GAEAC,EAAA5uE,GAAA4uE,EAAA5uE,EAAA2pB,MACAilD,EAAA5uE,EAAA,KACA4uE,EAAA//D,GAAA,EACA,EAWA,GATA2/D,GAAAG,EAAA,wBAAAtuC,GACA,IAAA2uC,EAAA3uC,EAAAxV,IAAA4Y,GACAurC,IACAF,IACAA,EAAA,IAEAA,EAAAvnD,IAAAynD,GAEA,IACAF,EACA,OAAAnqB,IAAA,SAAAnC,GACA,OAAAjD,GAAAqF,GAAAkqB,IAAA,WACAC,IACAvsB,GACA,GACA,IAGAusB,GAEA,CACA,GACA,C,oBAkFA,CAtNA,GCjCA,SAAAE,GAAAC,EAAAp3C,EAAAq3C,GACA,IAAAC,EAAA,CACAt3C,GAAAA,EACAne,GAAAw1D,GAEAv1D,GAAAs1D,EAAAE,GACA,IAAAzxD,EAAA,CACAgvC,OAAA,WACA5yC,GAAAm1D,GAAA,SAAAG,EAAAp1D,GACA,GAAAo1D,EAAAv3C,KAAAs3C,EAAAt3C,GAEA,OADAo3C,EAAAzlD,IAAAxP,EAAA,IACA,CAEA,GACA,GAEA,OAAA0D,CACA,CACA,SAAA2xD,GAAAJ,EAAA9wB,EAAArjB,GAGA,IAFA,IAAAgpC,GAAA,EACAwL,EAAAL,EAAA/nD,IACA/lB,EAAA,EAAAA,EAAAmuE,IAAAnuE,EAAA,CACA,IAAA+tE,EAAAD,EAAA9tE,GACA,GAAA+tE,EACA,IACA,QAAAA,EAAAx1D,GAAA6P,IAAA,MAAA40B,IAAA,CACA2lB,GAAA,EACA,KACA,CACA,CACA,MAAA56D,GAGAw6B,GAAA5I,EAAA,sCAAA7L,GAAA/lB,GAAA,CAAAw7B,UAAAxyB,GAAAhJ,KAAA,EACA,CAEA,CACA,OAAA46D,CACA,CACA,IC9CAjpD,GD8CA00D,GAAA,SAAA1gB,GAEA,SAAA0gB,IACA,IAIA9xB,EACAwxB,EALAxzD,EAAAozC,EAAAvvD,KAAA,YAoBA,SAAAmrD,IACAhN,EAAA,EACAwxB,EAAA,EACA,CACA,OAvBAxzD,EAAAymB,WAAA,6BACAzmB,EAAAilD,SAAA,IAIAjW,IACAjlC,GAAA+pD,EAAA9zD,GAAA,SAAAC,EAAAyqC,GACAzqC,EAAA8zD,wBAAA,SAAAN,GACA,OAAAF,GAAAC,EAAAxxB,IAAAyxB,EACA,EACAxzD,EAAA+R,IAAA,SAAA0wB,EAAAR,GACA0xB,GAAAJ,EAAA9wB,EAAAR,EAAAA,EAAAvyB,MAAA1P,EAAA0P,QACA1P,EAAA6O,IAAA4zB,EAAAR,EAEA,EACAjiC,EAAA2P,IAAA,WACAo/B,GACA,CACA,IAKAhvC,CACA,C,OA3BAqzC,GAAAygB,EAAA1gB,G,aAyCA,CA1CA,CA0CA/B,ICjEA2iB,GAAA,yCACAC,GAAA,uBACAC,GAAA,4BACAC,GAAA,yBACAC,GAAA,IACAC,GAAA,IAOAlwC,GAAA1sB,IAAA2H,GAAA,CACAqwD,UAAA,IAEArwD,GAAA2S,IAAA,CAAAqP,QAAA,EAAAzc,KAAA,EAAA1R,EAAA,IACAmM,GAAAsS,IAAA,CAAA0P,QAAA,EAAAzc,KAAA,EAAA1R,EAAA,IACAmM,GAAA0S,IAAA,CAAAnN,KAAA,EAAA1R,EAAA,IACAmM,GAAAwS,IAAAJ,GACApS,GAAAgmB,oBAAA,EACAhmB,GAAAk1D,sBAAA9iD,GACApS,KAMA,SAAAm1D,GAAAhuC,EAAAiuC,GACA,WAAAr5B,GAAAq5B,EACA,CACA,SAAAC,GAAAp1C,EAAAq1C,EAAAC,GACA,IAAAv1D,EAEAw1D,EAAA,GACAC,EAAA,GAGAC,EAAA,GA2BA,OAzBAz2D,GAAAs2D,GAAA,SAAA7Z,IAEA/mD,EAAA+mD,IAAA/mD,EAAA+mD,EAAA5sC,OACAjX,GAAA+8D,IAEA,IAAAe,EAAAja,EAAA7oC,IACAwU,EAAAq0B,EAAA3sC,IACA2sC,GAAAia,IACAhhE,EAAA+gE,EAAAC,IAKAD,EAAAC,GAAAtuC,EAJAyB,GAAA7I,EAAA,sCAAA01C,EAAA,MAAAD,EAAAC,GAAA,KAAAtuC,KAQAsuC,GAAAA,EAAAL,EAEAE,EAAA/oD,IAAAivC,GAGA+Z,EAAAhpD,IAAAivC,EAEA,IACA17C,EAAA,GACAA,EAAAuS,IAAAijD,EACAx1D,EAAAsS,IAAAmjD,EACAz1D,CACA,CACA,SAAA41D,GAAAh4B,EAAAI,GACA,IAAA63B,GAAA,EAOA,OANA52D,GAAA++B,GAAA,SAAAZ,GACA,GAAAA,IAAAQ,EAEA,OADAi4B,GAAA,GACA,CAEA,IACAA,CACA,CACA,SAAAC,GAAA/zD,EAAA1b,EAAA0vE,EAAAC,GAEAD,GACAngE,GAAAmgE,GAAA,SAAApvE,EAAAW,GACA0uE,GACAr0D,GAAAra,IAAAqa,GAAAtb,EAAAM,KAEAmvE,GAAA/zD,EAAA1b,EAAAM,GAAAW,EAAA0uE,GAGAA,GAAAr0D,GAAAra,IAAAqa,GAAAtb,EAAAM,IAEAmvE,GAAA/zD,EAAA1b,EAAAM,GAAAW,EAAA0uE,GAIAj0D,EAAAzL,IAAAjQ,EAAAM,EAAAW,EAEA,GAEA,CACA,SAAA2uE,GAAAtC,EAAAuC,GACA,IAAAC,EAAA,KACAh3D,GAAA,EAQA,OAPAF,GAAA00D,GAAA,SAAApuC,EAAA/c,GACA,GAAA+c,EAAAtvB,IAAAigE,EAGA,OAFAC,EAAA5wC,EACApmB,EAAAqJ,GACA,CAEA,IACA,CAAAliB,EAAA6Y,EAAA/U,EAAA+rE,EACA,CACA,SAAAC,GAAAzC,EAAAuC,GACA,IAAAC,EAAAF,GAAAtC,EAAAuC,GAAA9rE,EAaA,OAZA+rE,IACAA,EAAA,CACAlgE,EAAAigE,EACAnyC,GAAA,WACA,IAAAsyC,EAAAJ,GAAAtC,EAAAuC,IACA,IAAAG,EAAA/vE,GACAqtE,EAAAhlD,IAAA0nD,EAAA/vE,EAAA,EAEA,GAEAqtE,EAAAlnD,IAAA0pD,IAEAA,CACA,CACA,SAAAG,GAAAxxC,EAAA6uC,EAAA1zC,GACAhhB,GAAA00D,GAAA,SAAApuC,GACA,IAAAgxC,EAAAvxC,GAAAF,EAAAS,EAAAtvB,EAAAgqB,UACAsF,EAAAtvB,EAEAsvB,EAAAxB,GAAA,WACAwyC,EAAAxyC,IACA,CACA,GACA,CAEA,SAAAyyC,GAAA1yC,EAAA2yC,EAAAC,EAAAC,GAcA,OAZAF,EAAA9xE,IAAAm/B,EAAAtV,KAAA,SAAAzM,GACA,IAAA2jB,EAAA3jB,EAAAoc,IAAAuH,eACA,IAAAA,GAAAixC,IAEAD,EAAA1nD,IAAA2nD,GACAA,EAAA,MAEAD,IAAAC,IAAA,IAAAjxC,IACAixC,EAAAhxC,GAAA5jB,EAAAoc,KACAu4C,EAAAznD,IAAA0nD,GAEA,KACAA,CACA,CAEA,SAAAC,GAAAC,GACA,OAAAngE,GAAA,CACAqtB,GAAA,WACA8yC,EAAA9yC,IACA,GACA,UAAAlwB,EAAA,wCAAA8D,KAAAC,UAAAi/D,GAAA,MACA,CAKA,IC/LA72D,GD+LA82D,GAAA,WACA,SAAAA,IAEA,IAAAC,EACAvsB,EACA4Z,EACA4S,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAtgC,EACAugC,EACAtlB,EACArtB,EACA4yC,EACArR,EACAsR,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAKAC,EACAC,EACAC,EACA7tD,GAAAmsD,EAAA,eAAAj2D,GAkRA,SAAA43D,IACAJ,GAAA,EACA1jE,EAAA6xD,IACA0R,EAAAh0B,GAAA90B,IACAyZ,GAAAu7B,EAAA,+CAGA8T,EAAAh0B,GAAAI,OAEAo0B,GACA,CACA,SAAAA,IACAluB,IACA3pC,EAAA83D,eACA93D,EAAA+O,MAEA,CACA,SAAAgpD,EAAAC,GACA,KAAAP,IAAAA,EAAAzoD,OAAA2oD,EAAA,CACA,IAAAM,EAAAD,GAAAzU,GAAAA,EAAA98B,MAAAjb,IAAA,EACAysD,IACAP,IACAA,GAAA,EAGAQ,EAAAhC,EAAAvoD,KAAA,SAAAzM,GACA,IAAAi3D,EAAAj3D,EAAAoc,IAAA+2C,sBACA8D,GAAAA,EAAA,IACAA,EAAA,KAEA,IAAAC,GAAA,EACAX,IAEAW,EAAAX,EAAAzoD,IACAyoD,EAAAzpD,OAGAypD,EAAA5xD,GAAAwyD,EAAAF,GACAV,EAAAa,QAEAb,EAAAzoD,IAAAopD,CACA,MAEAX,EAAAzoD,KAAA,EAEA,CACA,OAAAyoD,CACA,CA+KA,SAAAc,IACA,IAAAC,EAAA,GACArB,EAAA,GACA,IAAAsB,EAAA,SAAAt7B,GACAA,GACA/+B,GAAA++B,GAAA,SAAAZ,GACA,GAAAA,EAAAruB,KAAAquB,EAAAntB,MAAAopD,EAAAj8B,EAAA/V,YAAA,CACA,IAAAuD,EAAAwS,EAAAruB,IAAA,IAAAquB,EAAAntB,IACA+nD,EAAAvrD,IAAAme,GACAyuC,EAAAj8B,EAAA/V,YAAA+V,CACA,CACA,GAEA,EACAk8B,EAAA9B,GACAD,GACAt4D,GAAAs4D,GAAA,SAAA9B,GACA6D,EAAA7D,EACA,IAEA6D,EAAAhC,EACA,CACA,SAAA1nB,IACApF,GAAA,EAEAusB,EAAAlyC,GAAA,GAAAE,GAAAlkB,EAAA4N,KAEAsoD,EAAA54C,IAAAjO,IAAA,EAEAxZ,GAAAmK,EAAA,UACA3K,EAAA,kBAAA6gE,EAAA54C,GAAA,EACA/xB,EAAA,SAAAmK,GACAsK,EAAA04D,UAAAhjE,GAAA,EACA,IAEAG,GAAAmK,EAAA,0BACA3K,EAAA,WAIA,OAHA8hE,GACAoB,IAEApB,CACA,IAEAthE,GAAAmK,EAAA,uBACA3K,EAAA,WAOA,OANA+hE,IACAD,GACAoB,IAEAnB,EAAAD,EAAArtE,KAAA,MAEAstE,GAAA5lD,EACA,IAEA3b,GAAAmK,EAAA,UACA3K,EAAA,WAKA,OAJAkuD,IACAA,EAAA,IAAAh9B,GAAA2vC,EAAA54C,KACA44C,EAAAtoD,IAAA21C,GAEAA,CACA,EACAh4D,EAAA,SAAAq0D,GACAsW,EAAAtoD,IAAAgyC,EACA2D,IAAA3D,IACA5P,GAAAuT,GAAA,GACAA,EAAA3D,EAEA,IAEA5/C,EAAA4N,IAAA,IAAA2Y,GAAA2vC,EAAA54C,KACA45C,EAAA,GACA,IAAAyB,EAAA34D,EAAAikB,OAAAnS,KAAA,GACA6mD,EAAAtqC,OAAA,EAAAsqC,EAAAntD,KACAvN,GAAA06D,EAAAzB,GACAL,EAAA,IAAAhD,GACAsC,EAAA,GACAnmB,GAAAomB,GAAA,GACAA,EAAA,KACAC,EAAA,KACAC,EAAA,KACAtmB,GAAAumB,GAAA,GACAA,EAAA,KACAC,EAAA,KACAC,EAAA,GACAC,EAAA,KACAC,EAAA,KACAC,GAAA,EACAE,EAAA,KACAtgC,EAAApa,GAAA,iBACA26C,EAAAxmB,KACAymB,EAAA,KACArR,EAAA,KACAlU,EAAAb,KACAqmB,EAAA,GACAG,EAAA,KACAD,EAAA,KACAQ,GAAA,EACAF,EAAA,KACAC,GAAA,EACAL,EAAA,EACAC,EAAA,KACAC,EAAA,KACAC,GAAA,CAEA,CACA,SAAAoB,IACA,IAAAC,EAAAt4B,GAAAu4B,IAAA5C,EAAA54C,IAAAtd,GAEA,OADA64D,EAAA1pD,IAAA4oD,GACAc,CACA,CAEA,SAAAE,EAAAh4B,GAEA,IAAAi4B,EAAAxE,GAAAx0D,EAAA4N,IAAAw7B,GAAAqtB,GACAD,EAAA,KACAY,EAAA,KACAD,EAAA,KAEAR,GAAAD,GAAA,WAEAC,EAAAz5B,GAAAj/B,GAAA04D,EAAAqC,EAAAvnD,MAEA,IAAAijD,EAAAz2D,GAAAi/B,GAAA87B,EAAAtnD,KAAAilD,GAEAO,EAAAz/D,GAAAi9D,GAIA,IAAAiE,EAAA34D,EAAAikB,OAAAnS,KAAA,GACA6mD,EAAAtqC,OAAA,EAAAsqC,EAAAntD,KACAvN,GAAA06D,EAAAzB,GACA,IAAAvlB,EAAAinB,IAEAjC,GAAAA,EAAAnrD,IAAA,GACAgxB,GAAAmV,EAAAriC,IAAAqnD,GAAAjC,GAGAl4B,GAAAmV,EAAA+iB,GACA3zB,GACAqR,EAAArR,EAEA,CACA,SAAAk4B,EAAAC,GACA,IAAAC,EAAA,KACAp8B,EAAA,KACAq8B,EAAA,GAkDA,OAjDAh7D,GAAA84D,GAAA,SAAArc,GACA,GAAAA,EAAA3sC,MAAAgrD,GAAAre,IAAAgc,EAEA,OADA95B,EAAA8d,GACA,EAEAA,EAAAwe,YACAD,EAAAxtD,IAAAivC,EAEA,KACA9d,GAAAq8B,EAAA5tD,IAAA,GACApN,GAAAg7D,GAAA,SAAA9nC,GAEA,GADAyL,EAAAzL,EAAA+nC,WAAAH,IACAn8B,EACA,QAEA,IAEAA,IACAo8B,EAAA,CACA58B,OAAAQ,EACAw0B,WAAA,SAAA36B,GACA0F,GAAAS,GAAAnrB,KAAAglB,CACA,EACAo5B,UAAA,WACA,IAAArzB,EAAAL,GAAAS,GACA,OAAAJ,EAAAptB,MAAAotB,EAAA/qB,GACA,EACAo/B,OAAA,SAAAlpB,EAAAwxC,GACA,IAAAn6D,OACA,IAAA2oB,IAAAA,GAAA,GACA,IAAAyxC,EAAA,CAAAx8B,GACA8D,GAAA1hC,EAAA,CACA6tB,OAAA,GAEA7tB,EAAAsQ,IAAAqY,EACA3oB,GACAq6D,EAAAD,EAAA14B,GAAA,SAAA44B,GACAA,GAEAV,EAAA,CACA/rC,OAAA,GACAysC,QAAAF,IAGAD,GAAAA,EAAAG,EACA,GACA,IAGAN,CACA,CACA,SAAAL,IACA,IAAAtC,EAAA,CAEA,IAAA95B,GAAAw6B,GAAA,IAAAhvE,SAEA,IAAAqW,GAAAm+B,EAAAm6B,IACAn6B,EAAA9wB,IAAAirD,GAEAL,EAAA/3B,GAAAvB,GAAAR,GAAAw5B,EAAA54C,IAAAtd,EACA,CACA,OAAAw2D,CACA,CACA,SAAAgD,EAAAhB,EAAA33B,EAAA64B,GACA,GAAAlB,GAAAA,EAAAhtD,IAAA,GACA,IAAAmuD,EAAAl7B,GAAA+5B,EAAAtC,EAAA54C,IAAAtd,GACA2iC,EAAA/B,GAAA+4B,EAAA35D,GACA2iC,EAAAxzB,KAAA,WACA,IAAAsqD,GAAA,EAEAG,EAAA,GACAx7D,GAAAq4D,GAAA,SAAAl6B,EAAAj+B,GACAy2D,GAAAx4B,EAAAi8B,GAIAiB,GAAA,EAHAG,EAAAhuD,IAAA2wB,EAKA,IACAk6B,EAAAmD,EACAxC,EAAA,KACAD,EAAA,KAEA,IAAA0C,EAAA,GACAnD,IACAt4D,GAAAs4D,GAAA,SAAAjwC,EAAAnoB,GACA,IAAAw7D,EAAA,GACA17D,GAAAqoB,GAAA,SAAAszC,GACAhF,GAAAgF,EAAAvB,GAIAiB,GAAA,EAHAK,EAAAluD,IAAAmuD,EAKA,IACAF,EAAAjuD,IAAAkuD,EACA,IACApD,EAAAmD,GAEAH,GAAAA,EAAAD,GACA1B,GACA,IACAp1B,EAAA9zB,IAAAgyB,EACA,MAEA64B,GAAA,EAEA,CACA,SAAArB,IACA,GAAA9U,GAAAA,EAAA98B,MAAA,CACA,IAAAA,EAAA88B,EAAA98B,MAAAv+B,MAAA,GACAq7D,EAAA98B,MAAAjb,IAAA,EACApN,GAAAqoB,GAAA,SAAAW,GACA,IAAAjoB,EACAsjC,GAAAtjC,EAAA,GACAA,EAAA2M,IAAAgrD,GAAA,sBAAA1vC,EAAA5X,IACArQ,EAAAwP,IAAAg3C,EACAxmD,EAAAyP,IAAAyE,GAAA,IAAAlT,MACAhB,EAAAi4C,SAAAvxB,GAAAO,SACAjnB,EAAAk4C,SAAA,CAAAxgD,QAAAuwB,EAAArb,KACA5M,GACAa,EAAAg6D,MAAAv3B,EACA,GACA,CACA,CACA,SAAAw3B,EAAAnyC,EAAAugC,EAAA2D,EAAAkO,GAEA,IAAA/G,EAAA,EACAgH,GAAA,EACAC,EAAA,KAEA,SAAAC,IACAlH,IACAgH,GAAA,IAAAhH,IACAiH,GAAAA,EAAApsD,MACAosD,EAAA,KACA/R,GAAAA,EAAA8R,GACA9R,EAAA,KAEA,CACA,GAVA6R,EAAAA,GAAA,IAUAvD,GAAAA,EAAAnrD,IAAA,GACA,IAAA8uD,EAAA1B,IAAAtpD,IAAAqnD,GACA2D,EAAA76B,SAAA,SAAAlD,GACA,GAAAA,EAAAwvB,MAAA,CACAoH,IACA,IAAAoH,GAAA,EAEAh+B,EAAAwvB,MAAAjkC,GAAA,WACAyyC,GAAA,EACAF,GACA,GAAArO,IACAuO,IAIAzyC,GAAA,MAAAsyC,EACAA,EAAAz0D,IAAA,WACAy0D,EAAA,KACAC,GACA,GAAAH,GAGAG,IAIA,CACA,GACA,CAGA,OAFAF,GAAA,EACAE,KACA,CACA,CACA,SAAAG,IAEA,IAAAC,EAEAvC,EAAAhC,EAAAvoD,KAAA,SAAAzM,GACA,IAAAw5D,EAAAx5D,EAAAoc,IAAAo9C,cACA,GAAAA,EAAA,CACA,IAAAC,EAAAz5D,EAAAoc,IAAA3L,IAGA8oD,IAAAE,GAAAF,IACAE,IACAA,EAAArG,IAGAzgD,GAAA3S,EAAAoc,IAAA3L,GAAAgpD,GACAF,EAAAE,EAEArE,EAAA,MAGAD,GAAAC,IAAApiE,EAAAymE,KAEArE,EAAAqE,EAAA36D,EAAAA,EAAAyO,OAEA,MAGA6nD,EAAA,KAEAmE,EAAA,IAEA,IACA,CACA,SAAAroB,EAAArR,GACA,IAAA+B,EAAAhC,GAAAg4B,IAAA94D,GACA8iC,EAAA3zB,IAAA4oD,GACA/3D,EAAA46D,cAAA,IAAA56D,EAAA46D,YAAA93B,EAAA/B,IACA+B,EAAAj0B,IAAAkyB,EAEA,CACA,SAAA85B,EAAAhkE,GACA,IAAAuoB,EAAApf,EAAA4N,IACAwR,GAEA4I,GAAA5I,EAAA,KAAAvoB,GACAkhE,KAGA/gE,GAAAH,EAEA,CACA,SAAAikE,EAAA3d,GACA,IAAAhiB,EAAAn7B,EAAAyO,MACA0sB,GACAA,EAAAjpB,IAAA,CAAAirC,GAAA,EAEA,CACA,SAAA+a,EAAAhnB,GACAO,EAAA3tD,IAAAotD,EACA,CA12BAnC,IAEA/uC,EAAA,gCACA,OAAAk3D,EAAAf,EACA,EACAn2D,EAAAqO,IAAA,kBAAAs7B,CAAA,EAEA3pC,EAAAssD,aAAA,kBAAA+K,CAAA,EAGAr3D,EAAA+6D,kBAAA,WACA1D,EAAA,CACA,EAEAr3D,EAAAiO,IAAA,SAAAgW,EAAAyY,EAAAtd,EAAAy2C,GACAe,GACA5/D,GAAAi9D,IAGAj0D,EAAAqO,OACArX,GAAA,6CAEAk/D,EAAAlyC,GAAAC,EAAAC,GAAA9E,GAAApf,EAAA4N,KAAA,GAEAqW,EAAAiyC,EAAA54C,IAEA46C,EAAAhC,EAAAvoD,KAAA,SAAAzM,GACA,IAAA85D,EAAA95D,EAAAoc,IACA29C,EAAA,IAAA5D,EACA,IAAA4D,EAAA,CAIA1D,EAAAyD,EAAAE,mBAAA/G,GAEA,IAAAgH,EAAAH,EAAA1sD,IACA0jB,EAAAgpC,EAAAhpC,YACA,GAAAl+B,EAAAqnE,GAAA,CACAxV,EAAA,KAEA0R,EAAAh0B,GAAA90B,IACA,IAAAwX,EAAA,qCACA4jB,GAKA3hB,GAAAu7B,EAAA,MAAAx9B,GACA8xC,KAJA7gE,GAAA+uB,EAOA,KAdA,CAeA,IAAAq1C,EAAA,GAkBA,GAjBA5mE,EAAA2mE,IACAC,EAAAxvD,IAAAuvD,GACAxV,EAAA,MAIAA,EAAAwV,EAEA3mE,EAAAw9B,IACAopC,EAAAxvD,IAAAomB,GACAslC,EAAA,MAIAA,EAAAtlC,EAGAopC,EAAA5vD,IAAA,CAEAgsD,GAAA,EACAH,EAAA,EACA,IAAAgE,EAAAroD,GAAAgoD,EAAAM,aAAAN,EAAAM,YAAAlH,GACAmH,EAAAzyB,GAAAsyB,GACAz1D,IAAA,WAKA6xD,GACAI,GAEA,GAAAyD,GACAz3B,GAAA23B,GAAA,SAAA3vB,GACA,IACA,GAAA4rB,EAGA,OAEA,IAAA5rB,EAAA7H,SAAA,CACA,IAAA/tC,EAAA41C,EAAAp9B,IACA,GAAAxY,GAAAA,EAAAwV,IAAA,CAEA,IAAAgwD,EAAAxlE,EAAA,GAGA,GAFA2vD,EAAA6V,GAAAA,EAAAhtD,IAEAxY,EAAAwV,IAAA,GACA,IAAAiwD,EAAAzlE,EAAA,GACAshE,EAAAmE,GAAAA,EAAAjtD,GACA,CACA,CACAm3C,IAEA1hC,EAAA3V,IAAAq3C,EACA1hC,EAAA+N,YAAAslC,EAEA,CAIAM,GACA,CACA,MAAApqE,GACAgqE,GACAI,GAEA,CACA,GACA,MAGAA,IAMA,IAAAz3B,EAAAj/B,EAAAwD,IAAAxD,EAAAoc,IAAAzL,IACA9c,GAAAorC,GAAA,SAAAr6C,GACAob,EAAAwD,IAAAy7B,EAAAr6C,EACA,GAlFA,CAnBA,CAsGA,KACAswE,EAAAP,EAEAzxC,EAAAuxC,GAAAO,EAAAzkB,EAAA2kB,GAAAp2D,EAAAyO,MAAA2V,GACAo2C,IACAx6D,EAAA4N,IAAAwR,EACA,IAAAu5C,EAAA10C,EAAAnS,IASA,GAPA2kD,EAAA,GACAA,EAAA7qD,IAAAtmB,MAAAmxE,EAAAiF,GAAAA,GAAA,GAAAh/B,GAAA,GAAAi8B,GAAA,IACAjC,EAAAzyC,EAAAxS,IACAsnD,EAAA,MACApC,GAAA,IAAAA,EAAAnrD,KACAxU,GAAA,MAAAya,GAAA,cAEAilD,GAAAA,EAAAlrD,IAAA,GACA,IAAAmwD,EAAA37D,EAAA0O,IAAA,wBACAitD,GAAAA,EAAAp/B,QACAvU,GAAAu7B,EAAA,2BAEA,CACAkS,GAAAxxC,EAAAgzC,EAAA1T,GACA0T,EAAA,KACAttB,GAAA,EACA0tB,IAAAh0B,GAAAI,QACAo0B,GAEA,EACA73D,EAAA47D,YAAA,WACA,IAAAC,EAAA,GAMA,OALAlF,GACAv4D,GAAAu4D,GAAA,SAAAoD,GACA8B,EAAAjwD,IAAAmuD,EACA,IAEAtiE,GAAAokE,EACA,EACA77D,EAAAg6D,MAAA,SAAA7c,GACA3hB,GAAAx7B,EAAAwS,OAAA,uDACA,OAAA2qC,IACA2d,EAAA3d,GAEAnmD,GAAA,4BAGAmmD,EAAArxC,KAAAhY,EAAAqpD,EAAArxC,OACAgvD,EAAA3d,GACAnmD,GAAA,4BAGAmmD,EAAAxuC,IAAAwuC,EAAAxuC,KAAAg3C,EAEAxI,EAAAvuC,IAAAuuC,EAAAvuC,KAAAyE,GAAA,IAAAlT,MAEAg9C,EAAApzB,IAAAozB,EAAApzB,KAAA,OACA6sC,GAAA52D,EAAAqO,OAAAgpD,IAAAh0B,GAAAI,OAEAm1B,IAAA/pD,IAAAsuC,GAEAka,IAAAh0B,GAAA90B,KAEA4nD,EAAA3qD,KAAA+rD,GAEApB,EAAAvqD,IAAAuxC,EAGA,sBAAA1a,KAAA0a,EAAA,IAAAA,EAAAza,KACA,EACA1iC,EAAA8O,IAAA8pD,EACA54D,EAAAyO,IAAA,WAMA,OALA2nD,IACAA,EAAA,IAAArD,GAAAmD,EAAA54C,KAEAtd,EAAAg0D,IAAAoC,GAEAA,CACA,EAOAp2D,EAAAoO,IAAA,SAAAsW,GACA1kB,EAAA87D,eAAA1tD,IAAAsW,EACA,EAKA1kB,EAAAmO,IAAA,SAAAuW,GACA0xC,GACAA,EAAAjoD,IAAAuW,EAEA,EACA1kB,EAAA+7D,aAAA,WAIA,OAHAxF,IACAA,EAAA/F,GAAA0F,EAAA54C,IAAAtd,EAAA4N,MAEA2oD,CACA,EACAv2D,EAAAg8D,aAAA,SAAAjM,GACAwG,IAAAxG,IACA/f,GAAAumB,GAAA,GACAA,EAAAxG,EAEA,EACA/vD,EAAAwS,IAAA,WACA,OAAA6jD,GAAAC,GAAAx6B,IACA,EACA97B,EAAAi8D,WAAA,SAAAtgC,GACA06B,EAAA16B,CACA,EACA37B,EAAAk8D,SAAA,WACA,OAAA/F,EAAA3qD,GACA,EACAxL,EAAA83D,aAAA,WACA,GAAAnuB,GAAAwsB,EAAA3qD,IAAA,GACA,IAAA2wD,EAAAhG,EACAA,EAAA,GACA,IAAAkB,EACAj5D,GAAA+9D,GAAA,SAAAlvB,GACAA,EAAAt+B,IAAAs+B,EAAAt+B,KAAAg3C,EACAiT,IAAA/pD,IAAAo+B,EACA,IAIAjlB,GAAAu7B,EAAA,sCAEA,CACA,EACAvjD,EAAA+O,IAAA,SAAA+kB,GAIA,OAHAgjC,EAAAhjC,GAAA,KACA6jC,GAAA,EACAF,GAAAA,EAAAzpD,MACA+pD,GAAA,EACA,EAiDA/3D,EAAAiP,IAAA,WACA0oD,GAAA,EACAF,GAAAA,EAAAzpD,MACAqqD,GACA,EAEAlkD,GAAAnU,GAAA,kBAAA62D,CAAA,gCACA72D,EAAAkP,IAAA,SAAA4Y,EAAAs0C,EAAAlC,GACA,IAAA/6D,OACA,IAAA2oB,IAAAA,GAAA,GACA6hB,GAEA3yC,GAAAk9D,IAGA0C,GAEA5/D,GAAAi9D,IAEA,IAMA7gE,EANAytC,GAAA1hC,EAAA,CACA6tB,OAAA,IAEA7tB,EAAAsQ,IAAAqY,EACA3oB,EAAAk9D,eAAA,EACAl9D,GAEA2oB,IAAAs0C,IACAhpE,EAAA41C,IAAA,SAAAnC,GAEAu1B,EAAAv1B,CACA,KAEA,IAAAy1B,EAAA17B,GAAAk4B,IAAA94D,GASA,SAAA8wC,EAAAurB,GACAx7B,EAAAw7B,cAAAA,EACAzF,GAAA,EAEAG,EAAApmB,IAAA2rB,EAAAz7B,GAEA7gC,EAAAiP,MAEAqtD,EAAAztD,IAAAgyB,EACA,CAKA,OAtBAy7B,EAAAntD,KAAA,WACAsiC,EAAAd,IAAA3wC,EAAA4N,KAEAqiC,GAAA,CAAAsmB,EAAAH,EAAA7S,GAAAz7B,GAAA,WACAinB,IACAqtB,GAAAA,EAAAv7B,EACA,GACA,GAAA7gC,GAWAq4D,IACA4B,EAAAnyC,EAAAgpB,EAAA,EAAAopB,IACAppB,GAAA,GAEA19C,CACA,EACA4M,EAAA0O,IAAAuqD,EACAj5D,EAAAu8D,UAAA,SAAAhgC,EAAAigC,EAAA10C,EAAA20C,GACA,IAAAlgC,EAGA,OAFAkgC,GAAAA,GAAA,QACA5B,EAAA9G,IAGA,IAAA2I,EAAAzD,EAAA18B,EAAAruB,KACA,GAAAwuD,IAAAF,EAGA,OAFAC,GAAAA,GAAA,QACA5B,EAAA,WAAAt+B,EAAAruB,IAAA,wBAGA,IAAA6yB,EAAA,CACA/T,OAAA,IAEA,SAAA2vC,EAAAlD,GACAhD,EAAA7qD,IAAA2wB,GACAwE,EAAA67B,MAAA,CAAArgC,GAEAw8B,EAAAh4B,GACA07B,GAAAA,GAAA,EACA,CACA,GAAAC,EAAA,CACA,IAAAG,EAAA,CAAAH,EAAAngC,QACAsE,EAAA,CACA7T,OAAA,EACAlF,UAAAA,GAEA0xC,EAAAqD,EAAAh8B,GAAA,SAAA44B,GACAA,GAKA14B,EAAA04B,QAAAoD,EACA97B,EAAA/T,QAAA,GACA2vC,GAAA,IALAF,GAAAA,GAAA,EAOA,GACA,MAEAE,GAAA,EAEA,EACA38D,EAAA04D,UAAA,SAAAt4B,EAAA08B,GAEA,IAAA/7B,EACA,QAFA,IAAA+7B,IAAAA,GAAA,GAEA98D,EAAAqO,MAAA,CACA0yB,EAAA,CACA/T,OAAA,EACA1P,IAAA44C,EAAA54C,IACAy/C,OAAA/5D,GAAA,GAAAkzD,EAAA54C,KACA8iB,UAAAp9B,GAAA,GAAAo9B,GACA+0B,MAAA2H,GAEA18B,EAAAW,EAAAX,UACA,IAAA9iB,EAAA44C,EAAA54C,IAIA8iB,EAAAtuB,IAAAwL,EAAAxL,IACAsuB,EAAA3uB,IAAA6L,EAAA7L,GACA,CAGAykD,EAAA3yC,QAAA,SAAAriB,GAEA,IAAA6b,EAAA7b,EAAAoc,IACA23C,GAAA/zD,EAAA6b,EAAAqjB,EAAA08B,GACAA,GAEA/nE,GAAAgoB,GAAA,SAAAj3B,GACA+O,EAAAurC,EAAAt6C,IAEAob,EAAAzL,IAAAsnB,EAAAj3B,EAAAyrB,GAEA,IAGArQ,EAAAwM,IAAAqP,EAAAmH,GACA,OAEAgyC,EAAA3oD,MACAwzB,GACAqR,EAAArR,EAEA,EACA/gC,EAAA+zB,aAAA,WACA,OAAAyC,CACA,EACAx2B,EAAA+rD,MAAAkO,EACAj6D,EAAAg9D,YAAA,SAAAC,GAIA,OAHAjG,IACAA,EAAAz5B,MAEAy5B,CACA,EACAh3D,EAAAk9D,YAAA,SAAAC,GACAnG,EAAAmG,GAAA,IACA,EACAn9D,EAAAo9D,cAAAlF,EAEAjkD,GAAAjU,EAAA,iCAAA+2D,CAAA,UACA/2D,EAAAq9D,YAAA,SAAAr7D,GACA,IAAAg0D,EAOA,OAFAA,EAJArsB,EAIAxlB,GAAA+xC,EAAA54C,IAAAtb,EAAAhC,EAAA4N,KAHA2nD,GAAA0B,EAAAj1D,GAKA+zD,GAAAC,EACA,EACAh2D,EAAAs9D,UAAA,WACA,OAAArhE,MAAAi6D,EAAA54C,IAAAigD,aAAA,IACA,CA8XA,GACA,C,oBA2NA,CAhnCA,GxExLAjvD,GAAA,qBACAkvD,GAAA,mBACAC,GAAA,qBACA/kB,GAAA,cACAhtC,GAAA,oBACAgyD,GAAA,0ByEJAnsD,QAAAjlB,EACAqxE,IAAAx+D,GAAA,CACAk1D,sBAAAn6B,GAAA0jC,GAAA,MAEAz+D,GAAAq+D,IAAAjsD,GACApS,GAAAu5C,IAAAnnC,GACApS,GAAAmP,IAAAiD,GACApS,GAAA0+D,gBAAA,GACA1+D,IACA,SAAAy+D,GAAAn3E,GAEA,OAAAA,GAAAA,EAAA,CACA,CAKA,IAAAq3E,GAAA,WAMA,SAAAA,EAAA75C,GACA,IACA85C,EADAz3C,EAAA,IAAA2vC,GA4EA,SAAA+H,EAAAv7B,GACAA,IAEAA,EAAA4U,SAAA5U,EAAA4U,UAAA,GACA5U,EAAA2U,SAAA3U,EAAA2U,UAAA,aAEA9wB,EAAA0zC,MAAAv3B,EACA,EAhFA3uC,EAAAmwB,IACAnwB,EAAAmwB,EAAA3V,MAAAxa,EAAAmwB,EAAAu5C,OACAxmE,GAAA,+BAEA8S,GAAAg0D,EAAA,eAAA99D,GAsBA,SAAAi+D,IACA,IAAAp8C,EAAAmC,GAAAC,GAAA,GAAA05C,IACAI,EAAAl8C,EAAAvE,IACAgJ,EAAA82C,cAAAj5C,GAAAtC,GAAA,WACA,IAAAq8C,EAAAH,EAAAP,IACA,GAAAhpE,EAAA0pE,GAAA,CACA,IAAAC,EAAAt1B,IAAA,SAAAhC,EAAAC,GACAlD,GAAAs6B,GAAA,SAAAtzB,GACA,IAAAwzB,EAAAxzB,EAAAnkD,MACA00E,EAAA4C,EAAAzvD,IACA,IAAAs8B,EAAA7G,UAAAq6B,EAAA,CAEAL,EAAAP,IAAAY,EACA,IAAAC,EAAAnQ,GAAAkQ,GACAjD,EAAAkD,EAAAZ,KAAAtC,CACA,CACAt0B,EAAAs0B,EACA,GACA,IACAmD,EAAAz1B,IAAA,SAAAhC,EAAAC,GACAlD,GAAAs6B,GAAA,SAAAtzB,GACA,IAAAwzB,EAAAxzB,EAAAnkD,MACAkiC,EAAAo1C,EAAArlB,IACA,IAAA9N,EAAA7G,UAAAq6B,EAAA,CACA,IAAAC,EAAAnQ,GAAAkQ,GACAG,EAAAF,EAAA3yD,IACAid,EAAA41C,EAAAA,EAAAlzD,GAAAsd,CACA,CACAke,EAAAle,EACA,GACA,IACAo1C,EAAAzvD,IAAA6vD,EACAJ,EAAArlB,IAAAqlB,EAAAL,KAAAY,CACA,CACA,GAAArqE,EAAAiqE,GAAA,CACA,IAAAM,EAAAtQ,GAAAgQ,GACAK,EAAAC,EAAA9yD,IACAqyD,EAAArlB,IAAAqlB,EAAAL,IAAAK,EAAAL,IAAAa,EAAAlzD,GACA0yD,EAAAzvD,IAAAkwD,EAAAf,KAAAM,EAAAzvD,GACA,CAEAyvD,EAAArlB,IAAAqlB,EAAAL,IAAAK,EAAAL,IAAAK,EAAArlB,GACA,KAEApyB,EAAAm4C,WAAAV,EAAA,KAAAvZ,IACA,CAjEA3uD,GAAAmK,EAAA,UACA3K,EAAA,kBAAA0oE,CAAA,IAEAE,IACAj+D,EAAAy+D,WAAAR,EACAj+D,EAAAg6D,MAAAgE,EACA7pD,GAAAnU,EAAAsmB,EAAA,CACA,QACA,mBACA,0BACA,SACA,YACA,YACA,eACA,cACA,cACA,cACA,YACA,2BAgDA,GASA,C,oBAiHA,CA5MA,E,qHC3BWo4C,EAAuC,qBAAXh2E,OAC5Bi2E,EAA2C,qBAAbC,SAC9BC,EAA6C,qBAAdC,UAC/BC,EAAyC,qBAAZC,QAG7BC,EAA4D,qBAArBC,kBAAsE,qBAA3BC,wBAAyE,qBAAxBC,oBACnIC,EAAaX,GAAsBC,GAAwBE,EAC3DnjE,EAASgjE,EAAqBh2E,OAAS,CAAC,EACxC42E,EAAWX,EAAuBC,SAAW,CAAC,EAC9CW,EAAYV,EAAwBC,UAAY,CAAC,EACjDU,GAAcD,EAAUnmD,WAAa,IAAI9uB,cACzCm1E,EAAWD,EAAWz4E,QAAQ,SAAW,EAGzC24E,GAFQ,eAAet3E,KAAKo3E,GAEA,WACrC,IAAIG,GAAwB,EAE5B,GAAIN,EACF,IACE,IAAIn8E,EAAU,CAGZ,WAAI08E,GAEFD,GAAwB,CAC1B,GAGFjkE,EAAOmkE,iBAAiB,OAAQ38E,EAASA,GACzCwY,EAAOokE,oBAAoB,OAAQ58E,EAASA,EAC9C,CAAE,MAAO68E,GAEPJ,GAAwB,CAC1B,CAGF,OAAOA,CACT,CAvBuC,IAwB5BK,EAAoBX,IAAe,iBAAkBC,EAASW,iBAAmBV,EAAUW,eAAiB,GAC5GC,EAA4Bd,GAAcvvE,QAAQ4L,EAAO0kE,cAAgB1kE,EAAO2kE,gBAGhFC,EAAmCjB,GAAc,yBAA0B3jE,GAAU,8BAA+BA,GAG/H,sBAAuBA,EAAO6kE,0BAA0B/5E,UC9C7CyL,G,gBAAO,YACPuuE,EAAY,YACZC,EAAqB,CAAC,KAAM,KAAM,KAAM,KAAM,MCD9CC,EAAoB,YACpBC,EAAe,SACfC,EAAY,QACZC,EAAe,QACfC,EAAU,KACVC,EAAa,wBACbC,EAAe,gBACfC,EAAe,aACfC,EAAiB,kBACjBC,EAAY,oBACZC,EAAU,MACVC,EAAoB,wBACpBC,EAAY,mBACZC,EAAiB,MACjBC,EAAU,QACVC,EAAsB,cACtBC,EAAe,OAEfC,EAAgB,KAChBC,EAAc,SAIdC,EAAU,6BAEVC,EAAgB,SAEhBC,EAAU,oDAGVC,EAAU,eACVC,EAAmB,OACnBC,EAAoB,WACpBC,EAAiB,YAEjBC,EAAY,+BACZC,EAAsB,OAEtBC,EAAe,QAEfC,EAAiB,SAEjBC,EAAuB,QC3ClC,SAASr8E,EAAQC,GAAkC,OAAOD,EAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAUF,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqBC,QAAUD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOG,UAAY,gBAAkBJ,CAAK,EAAGD,EAAQC,EAAM,CAE/U,SAASq8E,GAAgBC,EAAU58D,GAAe,KAAM48D,aAAoB58D,GAAgB,MAAM,IAAIvd,UAAU,oCAAwC,CAExJ,SAASo6E,GAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIt6E,UAAU,sDAAyDzD,OAAOoB,eAAe08E,EAAU,YAAa,CAAEn8E,MAAO3B,OAAOs2C,OAAOynC,GAAcA,EAAWr8E,UAAW,CAAED,YAAa,CAAEE,MAAOm8E,EAAUj8E,UAAU,EAAMD,cAAc,KAAWC,UAAU,IAAck8E,GAAYC,GAAgBF,EAAUC,EAAa,CAErb,SAASE,GAAaC,GAAW,IAAIC,EAA4BC,KAA6B,OAAO,WAAkC,IAAsC9vE,EAAlC+vE,EAAQC,GAAgBJ,GAAkB,GAAIC,EAA2B,CAAE,IAAII,EAAYD,GAAgB7/E,MAAMgD,YAAa6M,EAASkwE,QAAQC,UAAUJ,EAAOz9E,UAAW29E,EAAY,MAASjwE,EAAS+vE,EAAM79E,MAAM/B,KAAMmC,WAAc,OAAO89E,GAA2BjgF,KAAM6P,EAAS,CAAG,CAExa,SAASowE,GAA2B56E,EAAMhF,GAAQ,GAAIA,IAA2B,WAAlBuC,EAAQvC,IAAsC,oBAATA,GAAwB,OAAOA,EAAa,QAAa,IAATA,EAAmB,MAAM,IAAI2E,UAAU,4DAA+D,OAAOk7E,GAAuB76E,EAAO,CAE/R,SAAS66E,GAAuB76E,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAI86E,eAAe,6DAAgE,OAAO96E,CAAM,CAErK,SAAS+6E,GAAiBC,GAAS,IAAIC,EAAwB,oBAARC,IAAqB,IAAIA,SAAQx3E,EAA8nB,OAAnnBq3E,GAAmB,SAA0BC,GAAS,GAAc,OAAVA,IAAmBG,GAAkBH,GAAQ,OAAOA,EAAO,GAAqB,oBAAVA,EAAwB,MAAM,IAAIr7E,UAAU,sDAAyD,GAAsB,qBAAXs7E,EAAwB,CAAE,GAAIA,EAAOG,IAAIJ,GAAQ,OAAOC,EAAOtuE,IAAIquE,GAAQC,EAAOpuE,IAAImuE,EAAOK,EAAU,CAAE,SAASA,IAAY,OAAOC,GAAWN,EAAOl+E,UAAW09E,GAAgB7/E,MAAMgD,YAAc,CAAkJ,OAAhJ09E,EAAQz9E,UAAY1B,OAAOs2C,OAAOwoC,EAAMp9E,UAAW,CAAED,YAAa,CAAEE,MAAOw9E,EAAS7+E,YAAY,EAAOuB,UAAU,EAAMD,cAAc,KAAkBo8E,GAAgBmB,EAASL,EAAQ,EAAUD,GAAiBC,EAAQ,CAEtvB,SAASM,GAAWC,EAAQ5kD,EAAMqkD,GAAqV,OAAzSM,GAA/BhB,KAA4CI,QAAQC,UAAiC,SAAoBY,EAAQ5kD,EAAMqkD,GAAS,IAAIQ,EAAI,CAAC,MAAOA,EAAE/+E,KAAKC,MAAM8+E,EAAG7kD,GAAO,IAAIzZ,EAAc/E,SAAStU,KAAKnH,MAAM6+E,EAAQC,GAAQ1B,EAAW,IAAI58D,EAAsE,OAAnD89D,GAAOd,GAAgBJ,EAAUkB,EAAMp9E,WAAmBk8E,CAAU,EAAYwB,GAAW5+E,MAAM,KAAMI,UAAY,CAEja,SAASw9E,KAA8B,GAAuB,qBAAZI,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUc,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFx0E,QAAQtJ,UAAU+9E,QAAQ3gF,KAAK0/E,QAAQC,UAAUzzE,QAAS,IAAI,WAAa,MAAY,CAAM,CAAE,MAAOtC,IAAK,OAAO,CAAO,CAAE,CAExU,SAASu2E,GAAkB/lE,GAAM,OAAgE,IAAzD+C,SAAS9Y,SAASrE,KAAKoa,GAAIjX,QAAQ,gBAAyB,CAEpG,SAAS+7E,GAAgBh7E,EAAG2iB,GAA+G,OAA1Gq4D,GAAkBh+E,OAAO0/E,gBAAkB,SAAyB18E,EAAG2iB,GAAsB,OAAjB3iB,EAAE8iB,UAAYH,EAAU3iB,CAAG,EAAUg7E,GAAgBh7E,EAAG2iB,EAAI,CAEzK,SAAS24D,GAAgBt7E,GAAwJ,OAAnJs7E,GAAkBt+E,OAAO0/E,eAAiB1/E,OAAO2/E,eAAiB,SAAyB38E,GAAK,OAAOA,EAAE8iB,WAAa9lB,OAAO2/E,eAAe38E,EAAI,EAAUs7E,GAAgBt7E,EAAI,CAKrM,IAAI48E,GAAUhG,EAAqBhjE,EAAOgpE,QAAuB,SAAUC,GAChFhC,GAAU+B,EAASC,GAEnB,IAAIxxB,EAAS4vB,GAAa2B,GAE1B,SAASA,IAGP,OAFAjC,GAAgBl/E,KAAMmhF,GAEfvxB,EAAO7tD,MAAM/B,KAAMmC,UAC5B,CAEA,OAAOg/E,CACT,CAZwE,CAYxDf,GAAiB7+E,SAGtB8/E,GAAclG,EAAqBhjE,EAAOkpE,YAA2B,SAAUC,GACxFlC,GAAUiC,EAAaC,GAEvB,IAAIC,EAAU/B,GAAa6B,GAE3B,SAASA,IAGP,OAFAnC,GAAgBl/E,KAAMqhF,GAEfE,EAAQx/E,MAAM/B,KAAMmC,UAC7B,CAEA,OAAOk/E,CACT,CAZgF,CAY9EF,IAGSK,GAAarG,EAAqBhjE,EAAOqpE,WAA0B,SAAUC,GACtFrC,GAAUoC,EAAYC,GAEtB,IAAIC,EAAUlC,GAAagC,GAE3B,SAASA,IAGP,OAFAtC,GAAgBl/E,KAAMwhF,GAEfE,EAAQ3/E,MAAM/B,KAAMmC,UAC7B,CAEA,OAAOq/E,CACT,CAZ8E,CAY5EL,IAGSQ,GAAOxG,EAAqBhjE,EAAOwpE,KAAoB,SAAUC,GAC1ExC,GAAUuC,EAAMC,GAEhB,IAAIC,EAAUrC,GAAamC,GAE3B,SAASA,IAGP,OAFAzC,GAAgBl/E,KAAM2hF,GAEfE,EAAQ9/E,MAAM/B,KAAMmC,UAC7B,CAEA,OAAOw/E,CACT,CAZkE,CAYlDvB,GAAiB7+E,SCpFjC,SAASqB,GAAQC,GAAkC,OAAOD,GAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAUF,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqBC,QAAUD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOG,UAAY,gBAAkBJ,CAAK,EAAGD,GAAQC,EAAM,CAKxU,IAAIi/E,GAAS,SAAgB5+E,GAClC,OAAON,GAAQM,EACjB,EACW6+E,GAAY,SAAmB7+E,GACxC,OAAO3B,OAAO0B,UAAUyB,SAASrE,KAAK6C,GAAOyB,MAAM,GAAI,EACzD,EAIWwL,GAAc,SAAqBjN,GAC5C,YAAiB6F,IAAV7F,CACT,EACW8+E,GAAS,SAAgB9+E,GAClC,OAAiB,OAAVA,CACT,EAIW++E,GAAoB,SAA2B/+E,GACxD,OAAOiN,GAAYjN,IAAU8+E,GAAO9+E,EACtC,EAIWyN,GAAa,SAAoBzN,GAC1C,MAAyB,aAAlB4+E,GAAO5+E,EAChB,EACW6N,GAAY,SAAmB7N,GACxC,MAAyB,YAAlB4+E,GAAO5+E,EAChB,EACWwN,GAAW,SAAkBxN,GACtC,MAAyB,WAAlB4+E,GAAO5+E,EAChB,EACW4N,GAAW,SAAkB5N,GACtC,MAAyB,WAAlB4+E,GAAO5+E,EAChB,EACWg/E,GAAY,SAAmBh/E,GACxC,OAAO06E,EAAU/4E,KAAK4H,OAAOvJ,GAC/B,EAIWiB,GAAU,SAAiBjB,GACpC,OAAOgB,MAAMC,QAAQjB,EACvB,EAKW0N,GAAW,SAAkB/N,GACtC,OAAe,OAARA,GAAiC,WAAjBD,GAAQC,EACjC,EAGW0a,GAAgB,SAAuB1a,GAChD,MAA+C,oBAAxCtB,OAAO0B,UAAUyB,SAASrE,KAAKwC,EACxC,EACWgO,GAAS,SAAgB3N,GAClC,OAAOA,aAAiB0Z,IAC1B,EACWulE,GAAU,SAAiBj/E,GACpC,OAAOA,aAAiBojC,KAC1B,EACW87C,GAAS,SAAgBl/E,GAClC,OAAOA,aAAiBy+E,EAC1B,EACWU,GAAW,SAAkBn/E,GACtC,MAA4B,WAArB6+E,GAAU7+E,EACnB,EACWo/E,GAAY,SAAmBp/E,GACxC,OAAQ++E,GAAkB/+E,IAAUyN,GAAWzN,EAAMgO,OAASP,GAAWzN,EAAMq/E,MACjF,EC5EA,SAASphF,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAIzM,IAAI4/E,GAAS,WAClB,OAAOlhF,OAAOkhF,OAAO1gF,MAAMR,OAAQY,UACrC,EACW01C,GAAS,SAAgBn8B,EAAOgnE,GACzC,OAAOnhF,OAAOs2C,OAAOn8B,EAAOgnE,EAC9B,EACWhgF,GAAmB,SAA0BG,EAAKiG,GAC3D,OAAOvH,OAAOmB,iBAAiBG,EAAKiG,EACtC,EACWnG,GAAiB,SAAwBE,EAAKwF,EAAMs6E,GAC7D,OAAOphF,OAAOoB,eAAeE,EAAKwF,EAAMs6E,EAC1C,EAIWC,GAAsB,SAA6B//E,GAC5D,OAAOtB,OAAOqhF,oBAAoB//E,EACpC,EAgBWvB,GAAO,SAAcuB,GAC9B,OAAOtB,OAAOD,KAAKuB,EACrB,EAEWqD,GAAiB,SAAwBrD,EAAKwF,GACvD,OAAO9G,OAAO0B,UAAUiD,eAAe7F,KAAKwC,EAAKwF,EACnD,EACW3D,GAAW,SAAkB7B,GACtC,OAAOtB,OAAO0B,UAAUyB,SAASrE,KAAKwC,EACxC,EAGW+uB,GAAQ,SAAe/uB,GAChC,OAAO2/E,GAAc,CAAC,EAAG3/E,EAC3B,EAGWggF,GAAO,SAAchgF,EAAKiG,GACnC,OAAOxH,GAAKuB,GAAKnB,QAAO,SAAUa,GAChC,OAA+B,IAAxBuG,EAAMtF,QAAQjB,EACvB,IAAG2F,QAAO,SAAU2H,EAAQtN,GAC1B,OAAOigF,GAAcA,GAAc,CAAC,EAAG3yE,GAAS,CAAC,EAAGrN,GAAgB,CAAC,EAAGD,EAAKM,EAAIN,IACnF,GAAG,CAAC,EACN,EAGWugF,GAAO,SAAcjgF,EAAKiG,GACnC,OAAOxH,GAAKuB,GAAKnB,QAAO,SAAUa,GAChC,OAA+B,IAAxBuG,EAAMtF,QAAQjB,EACvB,IAAG2F,QAAO,SAAU2H,EAAQtN,GAC1B,OAAOigF,GAAcA,GAAc,CAAC,EAAG3yE,GAAS,CAAC,EAAGrN,GAAgB,CAAC,EAAGD,EAAKM,EAAIN,IACnF,GAAG,CAAC,EACN,EAGWwgF,GAAY,SAASA,EAAU9gF,EAAQI,GAehD,OAdIuO,GAAS3O,IAAW2O,GAASvO,IAC/Bf,GAAKe,GAAQC,SAAQ,SAAUC,GACzBqO,GAASvO,EAAOE,KACbN,EAAOM,IAASqO,GAAS3O,EAAOM,MACnCN,EAAOM,GAAOF,EAAOE,IAGvBwgF,EAAU9gF,EAAOM,GAAMF,EAAOE,KAE9BkgF,GAAOxgF,EAAQO,GAAgB,CAAC,EAAGD,EAAKF,EAAOE,IAEnD,IAGKN,CACT,EAEW+gF,GAAW,SAAkBngF,GACtC,OAAOvB,GAAKuB,GAAK8tC,OAAOzoC,QAAO,SAAU2H,EAAQtN,GAC/C,OAAOigF,GAAcA,GAAc,CAAC,EAAG3yE,GAAS,CAAC,EAAGrN,GAAgB,CAAC,EAAGD,EAAKM,EAAIN,IACnF,GAAG,CAAC,EACN,EAEW0gF,GAAqB,WAC9B,MAAO,CACLphF,YAAY,EACZsB,cAAc,EACdC,UAAU,EAEd,EC1GA,SAASjC,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAEhN,SAASe,GAAmBC,GAAO,OAAOC,GAAmBD,IAAQE,GAAiBF,IAAQG,GAA4BH,IAAQI,IAAsB,CAExJ,SAASA,KAAuB,MAAM,IAAIe,UAAU,uIAAyI,CAE7L,SAAShB,GAA4BO,EAAGC,GAAU,GAAKD,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOH,GAAkBG,EAAGC,GAAS,IAAIC,EAAIlD,OAAO0B,UAAUyB,SAASrE,KAAKkE,GAAGI,MAAM,GAAI,GAAiE,MAAnD,WAANF,GAAkBF,EAAEvB,cAAayB,EAAIF,EAAEvB,YAAY4B,MAAgB,QAANH,GAAqB,QAANA,EAAoBP,MAAMI,KAAKC,GAAc,cAANE,GAAqB,2CAA2CI,KAAKJ,GAAWL,GAAkBG,EAAGC,QAAzG,CAA7O,CAA+V,CAE/Z,SAAST,GAAiBM,GAAQ,GAAsB,qBAAXvB,QAAmD,MAAzBuB,EAAKvB,OAAOC,WAA2C,MAAtBsB,EAAK,cAAuB,OAAOH,MAAMI,KAAKD,EAAO,CAE7J,SAASP,GAAmBD,GAAO,GAAIK,MAAMC,QAAQN,GAAM,OAAOO,GAAkBP,EAAM,CAE1F,SAASO,GAAkBP,EAAKiB,IAAkB,MAAPA,GAAeA,EAAMjB,EAAIzB,UAAQ0C,EAAMjB,EAAIzB,QAAQ,IAAK,IAAIF,EAAI,EAAG6C,EAAO,IAAIb,MAAMY,GAAM5C,EAAI4C,EAAK5C,IAAO6C,EAAK7C,GAAK2B,EAAI3B,GAAM,OAAO6C,CAAM,CAI/K,IAAIm+E,GAAY,SAASA,EAAUrgF,GACxC,IAAIs3B,EAAeh4B,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAKU,EAEvF,OAAIsB,GAAQtB,GACHA,EAAIqF,QAAO,SAAU2H,EAAQxG,GAClC,MAAO,GAAGpI,OAAO2C,GAAmBiM,GAAS,CAACqzE,EAAU75E,EAAKA,IAC/D,GAAG,IAGDkU,GAAc1a,GACTvB,GAAKuB,GAAKqF,QAAO,SAAU2H,EAAQtN,GACxC,OAAOigF,GAAcA,GAAc,CAAC,EAAG3yE,GAAS,CAAC,EAAGrN,GAAgB,CAAC,EAAGD,EAAK2gF,EAAUrgF,EAAIN,GAAMM,EAAIN,KACvG,GAAG,CAAC,GAGC43B,CACT,ECpCWgpD,I,QAAW,SAAkBC,GACtC,OAAOA,CACT,GCWWC,GAAS,SAAgBxgF,EAAK6b,GACvC,IAAIyb,EAAeh4B,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,QAAK4G,EAIvF,GAFA2V,EAAOva,GAAQua,GAAQA,EAAKnY,KAAK,KAAOmY,GAEnCA,IAAS9N,GAAS/N,GACrB,OAAOs3B,EAOT,GAAIzb,KAAQ7b,EACV,OAAOA,EAAI6b,GAIbA,EAAOjS,OAAOiS,GAAMhY,QAAQy2E,EAAmB,OAC/C,IAAImG,EAAQ5kE,EAAKpY,MAAM,KAAK5E,OAAOyhF,IAEnC,OAAqB,IAAjBG,EAAMlhF,OACD+3B,EAMFmpD,EAAMC,OAAM,SAAUC,GAC3B,OAAO5yE,GAAS/N,IAAQ2gF,KAAQ3gF,IAAQo/E,GAAkBp/E,EAAMA,EAAI2gF,GACtE,IAAK3gF,EAAMm/E,GAAOn/E,GAAO,KAAOs3B,CAClC,EAYWnoB,GAAM,SAAanP,EAAK6b,GACjC,IAAIyb,EAAeh4B,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,KACnFe,EAAQmgF,GAAOxgF,EAAK6b,GACxB,OAAOujE,GAAkB/+E,GAASi3B,EAAej3B,CACnD,ECzDWugF,GAAS,SAAgBlhF,GAClC,IAAIs3B,EAAW13B,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,KAC/Eg7C,EAAyB,qBAAZ91C,SAA2BA,QAAUA,CAAAA,SAAAA,aAAAA,SAAAA,MAAe,EAAK,CAAC,EAE3E,OAAK9E,EAKE46C,EAAI56C,IAAQs3B,EAHVsjB,CAIX,EACWumC,GAAY,WACrB,OAAOD,GAAO,0BAAmD,eAAvBA,GAAO,WACnD,ECTWE,GAAO,SAAcrwE,GAG9B,IAAIjR,EAASF,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,KAE5EuhF,MACHt5E,QAAQu5E,KAAK,wBAAwB1iF,OAAOoB,EAAS,GAAGpB,OAAOoB,EAAQ,OAAS,IAAIpB,OAAOqS,GAE/F,EAOWswE,GAAgB,SAAuBvhF,GAEhD,OAAIy5E,IAGF6H,GAAK,GAAG1iF,OAAOoB,EAAQ,qCAChB,EAEX,EAOWwhF,GAAuB,SAA8BxhF,GAE9D,OAAIm5E,IAGFmI,GAAK,GAAG1iF,OAAOoB,EAAQ,iCAChB,EAEX,EAOWyhF,GAAgC,SAAuCzhF,GAEhF,OAAIq5E,IAGFiI,GAAK,GAAG1iF,OAAOoB,EAAQ,0CAChB,EAEX,EC5DA,SAAS68E,GAAgBC,EAAU58D,GAAe,KAAM48D,aAAoB58D,GAAgB,MAAM,IAAIvd,UAAU,oCAAwC,CAExJ,SAAS++E,GAAkB9hF,EAAQ6G,GAAS,IAAK,IAAI5G,EAAI,EAAGA,EAAI4G,EAAM1G,OAAQF,IAAK,CAAE,IAAIygF,EAAa75E,EAAM5G,GAAIygF,EAAW9gF,WAAa8gF,EAAW9gF,aAAc,EAAO8gF,EAAWx/E,cAAe,EAAU,UAAWw/E,IAAYA,EAAWv/E,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ0gF,EAAWpgF,IAAKogF,EAAa,CAAE,CAE5T,SAASqB,GAAazhE,EAAa0hE,EAAYC,GAAyN,OAAtMD,GAAYF,GAAkBxhE,EAAYtf,UAAWghF,GAAiBC,GAAaH,GAAkBxhE,EAAa2hE,GAAc3iF,OAAOoB,eAAe4f,EAAa,YAAa,CAAEnf,UAAU,IAAiBmf,CAAa,CAU5R,IAAI4hE,GAAwB,WAC1B,SAASA,IACPjF,GAAgBl/E,KAAMmkF,GAEtBnkF,KAAKokF,SAAW,CAAC,CACnB,CA8DA,OA3DAJ,GAAaG,EAAU,CAAC,CACtB5hF,IAAK,YACLW,MAAO,WACL,IAAIsZ,EAAQxc,KAER0gC,EAASv+B,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAGlF,GAAKob,GAAcmjB,GAAnB,CAIA,IAAI2jD,EAAazB,GAAoBliD,GACrC2jD,EAAW/hF,SAAQ,SAAUC,GAE3B,IAAI+hF,EAAY5jD,EAAOn+B,GAEX,gBAARA,GAEG4B,GAAQmgF,IAAcA,EAAUliF,OAAS,GAAKkiF,EAAUC,MAAK,SAAUzsE,GAC1E,OAAQpH,GAASoH,IAAmB,IAAbA,EAAE1V,MAC3B,IACEuhF,GAAK,gEAAiEj1E,GAEtE8N,EAAM4nE,SAAS7hF,GAAO2gF,GAAUoB,GAEzB/mE,GAAc+mE,KAEvB9nE,EAAM4nE,SAAS7hF,GAAOqgF,GAAoB0B,GAAWp8E,QAAO,SAAUw4B,EAAQr4B,GAK5E,OAJK8H,GAAYm0E,EAAUj8E,MACzBq4B,EAAOr4B,GAAQ66E,GAAUoB,EAAUj8E,KAG9Bq4B,CACT,GAAGlkB,EAAM4nE,SAAS7hF,IAAQ,CAAC,GAE/B,GA1BA,CA2BF,GAEC,CACDA,IAAK,cACLW,MAAO,WACLlD,KAAKokF,SAAW,CAAC,CACnB,GAEC,CACD7hF,IAAK,YACLW,MAAO,WACL,OAAOggF,GAAUljF,KAAKokF,SACxB,GAEC,CACD7hF,IAAK,iBACLW,MAAO,SAAwBX,GAC7B,IAAI43B,EAAeh4B,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,QAAK4G,EACvF,OAAOm6E,GAAUG,GAAOrjF,KAAKokF,SAAU7hF,EAAK43B,GAC9C,KAGKgqD,CACT,CApE4B,GAuEjBK,GAAY,WACrB,IAAI9jD,EAASv+B,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9EsiF,EAAMtiF,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAKuiF,EAAAA,WAG9ED,EAAIxhF,UAAUg6E,GAAayH,EAAAA,WAAOzhF,UAAUg6E,GAAawH,EAAIxhF,UAAUg6E,IAAcyH,EAAAA,WAAOzhF,UAAUg6E,IAAc,IAAIkH,GAExHM,EAAIxhF,UAAUg6E,GAAWuH,UAAU9jD,EACrC,EC7FA,SAASv/B,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAWzM,IAAI8hF,GAAmB,WAC5B,IAAIC,GAAyB,EACzBC,EAAuB,CAAC,sCAAuC,kEAAmE,6DAA6Dt+E,KAAK,MACxM,OAAO,SAAUk+E,GAEVG,GAA0BF,EAAAA,aAAWD,GAAQvI,GAChDyH,GAAKkB,GAGPD,GAAyB,CAC3B,CACF,CAX8B,GAkBnBE,GAAiB,WAC1B,IAAI3kD,EAAOh+B,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC5E4iF,EAAa5kD,EAAK4kD,WAClBC,EAAa7kD,EAAK6kD,WAClBprC,EAAUzZ,EAAKyZ,QAEfqrC,EAAU,SAASA,EAAQR,GAC7B,IAAI/jD,EAASv+B,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAE9E8iF,EAAQC,YAKZD,EAAQC,WAAY,EACpBP,GAAiBF,GACjBD,GAAU9jD,EAAQ+jD,GAClBU,GAAmBV,EAAKM,GACxBK,GAAmBX,EAAKO,GACxBK,GAAgBZ,EAAK7qC,GACvB,EAGA,OADAqrC,EAAQC,WAAY,EACbD,CACT,EAmCWK,GAAgB,WACzB,IAAI3lF,EAAUwC,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/EojF,EAASpjF,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAClF,OAAOqgF,GAAcA,GAAc,CAAC,EAAG+C,GAAS,CAAC,EAAG,CAClDN,QAASH,GAAenlF,IAE5B,EAoBW0lF,GAAkB,SAAyBZ,GACpD,IAAI7qC,EAAUz3C,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAEnF,IAAK,IAAI62C,KAAUY,EACbZ,GAAUY,EAAQZ,IACpByrC,EAAIjlD,IAAIoa,EAAQZ,GAGtB,EAQWwsC,GAAoB,SAA2Bf,EAAK7/E,EAAM6gF,GAC/DhB,GAAO7/E,GAAQ6gF,GACjBhB,EAAIiB,UAAU9gF,EAAM6gF,EAExB,EAOWN,GAAqB,SAA4BV,GAC1D,IAAIM,EAAa5iF,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAEtF,IAAK,IAAIujF,KAAaX,EACpBS,GAAkBf,EAAKiB,EAAWX,EAAWW,GAEjD,EAQWC,GAAoB,SAA2BlB,EAAK7/E,EAAM6gF,GAC/DhB,GAAO7/E,GAAQ6gF,GAGjBhB,EAAImB,UAAUhhF,EAAK8B,QAAQ,MAAO,KAAM++E,EAE5C,EAOWL,GAAqB,SAA4BX,GAC1D,IAAIO,EAAa7iF,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAEtF,IAAK,IAAIyjF,KAAaZ,EACpBW,GAAkBlB,EAAKmB,EAAWZ,EAAWY,GAEjD,ECjLWC,GAAa,SACbC,GAAc,UACdC,GAAc,UACdC,GAAoB,eACpBC,GAAa,SACbC,GAAkB,cAClBC,GAAuB,kBACvBC,GAAuB,kBACvBC,GAAc,UACdC,GAAoB,eACpBC,GAAoB,eACpBC,GAAsB,iBACtBC,GAAgB,YAChBC,GAAY,QACZC,GAAiB,YACjBC,GAAmB,cACnBC,GAAkB,aAClBC,GAAmB,cACnBC,GAAgB,WAChBC,GAAqB,eACrBC,GAAsB,gBACtBC,GAAiB,YACjBC,GAAkB,aAClBC,GAAgB,YAChBC,GAAsB,iBACtBC,GAAW,OACXC,GAAgB,YAChBC,GAAiB,aACjBC,GAAgB,YAChBC,GAAwB,mBACxBC,GAAqB,gBACrBC,GAAsB,iBACtBC,GAAuB,kBACvBC,GAAqB,gBACrBC,GAA4B,sBAC5BC,GAAqB,gBACrBC,GAAa,SACbC,GAAY,QACZC,GAAqB,gBACrBC,GAA2B,qBAC3BC,GAAqB,gBACrBC,GAAuB,kBACvBC,GAAiB,YACjBC,GAAkB,aAClBC,GAAkB,aAClBC,GAA6B,uBAC7BC,GAAkB,aAClBC,GAAwB,kBACxBC,GAAmB,cACnBC,GAAgB,WAChBC,GAAmB,cACnBC,GAA0B,oBAC1BC,GAAgC,yBAChCC,GAAuB,kBACvBC,GAAgB,WAChBC,GAAiB,YACjBC,GAAiB,YACjBC,GAAqB,gBACrBC,GAAuB,kBACvBC,GAA2B,qBAC3BC,GAAY,QAEZC,GAAiB,YACjBC,GAAW,OACXC,GAAgB,WAChBC,GAAmB,cACnBC,GAAyB,mBACzBC,GAA0B,oBAC1BC,GAA2B,qBAC3BC,GAAwB,kBACxBC,GAAiB,aACjBC,GAAY,QACZC,GAAkB,aAClBC,GAAuB,iBACvBC,GAAa,SACbC,GAAmB,cACnBC,GAAkB,aAClBC,GAAa,SACbC,GAAe,UACfC,GAAW,OACXC,GAAc,UACdC,GAAoB,eACpBC,GAAkB,aAClBC,GAAqB,gBACrBC,GAAgB,WAChBC,GAAgB,WAChBC,GAAyB,mBACzBC,GAAgB,WAChBC,GAAe,WACfC,GAAkB,cAClBC,GAAsB,iBACtBC,GAAe,WACfC,GAAgB,YAChBC,GAAoB,eACpBC,GAAW,OACXC,GAAe,WACfC,GAAgB,YAChBC,GAAqB,gBACrBC,GAAoB,eACpBC,GAAsB,iBACtBC,GAAwB,mBACxBC,GAAe,WACfC,GAAW,OACXC,GAAa,SACbC,GAAkB,aAClBC,GAAkB,aAClBC,GAAoB,eACpBC,GAAY,QACZC,GAAa,SACbC,GAAa,SACbC,GAAU,MACVC,GAAa,SACbC,GAAY,QACZC,GAAa,SACbC,GAAe,WACfC,GAAe,WACfC,GAAU,MAEVC,GAAuB,aACvBC,GAAiC,wBACjCC,GAAwB,mBACxBC,GAAsB,YACtBC,GAAwB,oBACxBC,GAAc,WACdC,GAAyB,cACzBC,GAAiB,aACjBC,GAAsB,YACtBC,GAAwB,oBACxBC,GAAkB,eAClBC,GAAmB,gBACnBC,GAA0B,sB,iNCjI/B5mE,GAAU,CACd6mE,MAAO,SACPC,UAAW,QACZC,UAAW,iBAGZ,SAASC,GAAahkF,EAAiBgd,GACrC,OAAOA,EAAQA,EAAMpgB,cAAgB,GAOvC,SAASmB,GAAWiC,GAGlB,IAFA,IALiBjC,EAKb64E,EAAgC,CAAC,EAADr4E,EAAA,EAEtBjE,EAAA0F,EAAM3D,MAAM2gB,GAAQ+mE,WAApBxlF,EAAAjE,EAAAnC,OAAAoG,IAAgC,CAAzC,IACC/D,EAAAF,EAAAiE,GAAAlC,MAAA2gB,GAAA8mE,WAAC7rF,EAAAuC,EAAA,GAAKuB,EAAAvB,EAAA,IACVvC,EAAMA,EAAI+F,UAKS,iBAARjC,IACTA,EAAMA,EAAIiC,QAEZ44E,GAjBe74E,EAiBI9F,EAhBd8F,EAAItB,QAAQugB,GAAQ6mE,MAAOG,MAgBLjoF,EAAA,CAG7B,OAAO66E,CAAA,CAST,SAASA,KAOP,IANA,IAEI55D,EACAgnE,EAHApN,EAA+C,CAAC,EAChDr4E,EAAYrG,UAAUC,OAKnBoG,KAGL,IAAa,IAAAjE,EAAA,EAAAE,EAAAlD,OAAOD,KAAKa,UAAUqG,IAAtBjE,EAAAE,EAAArC,OAAAmC,IACX,OADG0iB,EAAAxiB,EAAAF,IAGD,IAAK,QACL,IAAK,QACL,IAAK,aAKH,GAJKL,MAAMC,QAAQ08E,EAAY55D,MAC7B45D,EAAY55D,GAAQ,IAGT,UAATA,EAAkB,CACpB,IAAI/kB,OAAA,EAEFA,EADEgC,MAAMC,QAAQhC,UAAUqG,GAAGV,OACrB3F,UAAUqG,GAAGV,MAEb,CAAC3F,UAAUqG,GAAGV,OAExB,IAAK,IAAI9B,EAAI,EAAGA,EAAI9D,EAAME,OAAQ4D,IAAK,CACrC,IAAIkoF,EAAIhsF,EAAM8D,GACG,iBAANkoF,IACThsF,EAAM8D,GAAKgC,GAAWkmF,GAAA,CAG1B/rF,UAAUqG,GAAGV,MAAQ5F,CAAA,CAKvB2+E,EAAY55D,GAAQ45D,EAAY55D,GAAMhmB,OAAOkB,UAAUqG,GAAGye,IAC1D,MAEF,IAAK,cACH,IAAK9kB,UAAUqG,GAAGye,GAChB,eAEE45D,EAAY55D,KACd45D,EAAY55D,GAAQ,IAElB45D,EAAY55D,KAEd45D,EAAY55D,IAAS,KAEvB45D,EAAY55D,IAAS9kB,UAAUqG,GAAGye,GAAMhf,OACxC,MAMF,IAAK,KACL,IAAK,WACE44E,EAAY55D,KACf45D,EAAY55D,GAAQ,CAAC,GAEvB,IAAc,IAAAC,EAAA,EAAAinE,EAAA5sF,OAAOD,KAAKa,UAAUqG,GAAGye,IAAS,CAAC,GAAnCC,EAAAinE,EAAA/rF,OAAA8kB,IAAT+mE,EAAAE,EAAAjnE,GAEC25D,EAAY55D,GAAMgnE,GAEpBpN,EAAY55D,GAAMgnE,GAAS,GAAGhtF,OAC5B4/E,EAAY55D,GAAMgnE,GAClB9rF,UAAUqG,GAAGye,GAAMgnE,IAIrBpN,EAAY55D,GAAMgnE,GAAS9rF,UAAUqG,GAAGye,GAAMgnE,GAGlD,MAEF,IAAK,QACL,IAAK,QACL,IAAK,WACL,IAAK,cACL,IAAK,cACL,IAAK,OACL,IAAK,aACEpN,EAAY55D,KACf45D,EAAY55D,GAAQ,CAAC,GAEvB45D,EAAY55D,GAAAhd,GAAA,GAAa9H,UAAUqG,GAAGye,GAAU45D,EAAY55D,IAC5D,MAEF,IAAK,OACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,OACL,IAAK,YACL,QACO45D,EAAY55D,KACf45D,EAAY55D,GAAQ9kB,UAAUqG,GAAGye,IAM3C,OAAO45D,CAAA,CCnJT,SAAS1/E,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAEhN,SAASY,GAAyBpB,EAAQiB,GAAY,GAAc,MAAVjB,EAAgB,MAAO,CAAC,EAAG,IAAkEE,EAAKL,EAAnED,EAASoB,GAA8BhB,EAAQiB,GAAuB,GAAI/B,OAAOC,sBAAuB,CAAE,IAAIkC,EAAmBnC,OAAOC,sBAAsBa,GAAS,IAAKH,EAAI,EAAGA,EAAIwB,EAAiBtB,OAAQF,IAAOK,EAAMmB,EAAiBxB,GAAQoB,EAASE,QAAQjB,IAAQ,GAAkBhB,OAAO0B,UAAUU,qBAAqBtD,KAAKgC,EAAQE,KAAgBN,EAAOM,GAAOF,EAAOE,GAAQ,CAAE,OAAON,CAAQ,CAE3e,SAASoB,GAA8BhB,EAAQiB,GAAY,GAAc,MAAVjB,EAAgB,MAAO,CAAC,EAAG,IAA2DE,EAAKL,EAA5DD,EAAS,CAAC,EAAOsB,EAAahC,OAAOD,KAAKe,GAAqB,IAAKH,EAAI,EAAGA,EAAIqB,EAAWnB,OAAQF,IAAOK,EAAMgB,EAAWrB,GAAQoB,EAASE,QAAQjB,IAAQ,IAAaN,EAAOM,GAAOF,EAAOE,IAAQ,OAAON,CAAQ,CAElT,SAASW,GAAQC,GAAkC,OAAOD,GAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAUF,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqBC,QAAUD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOG,UAAY,gBAAkBJ,CAAK,EAAGD,GAAQC,EAAM,CAK/U,IAAIurF,GAAoB,OACpBC,GAAS5J,EAAAA,WAAAA,QAAY6J,WAAW,KACzBC,GAAcF,GAAS,UAAY,WAC1CG,GAAyB,CAAC,QAAS,cAAe,QAAS,QAAS,QAAS,WAAY,KAAM,WAAY,aAAc,cAAe,OAAQ,MAAO,MAAO,YAC9JjJ,GAASd,EAAAA,WAAIc,OAAOr8E,KAAKu7E,EAAAA,YAE7B,GAAI4J,GAAQ,CACV,IAAII,GAAiBhK,EAAAA,WAAIc,OACrBmJ,GAAmB,CAAC,cAAe,aAAc,oBACjDC,GAA+BlK,EAAAA,WAAImK,cAAcC,QACjDC,GAAoCrK,EAAAA,WAAImK,cAAcG,aAE1DtK,EAAAA,WAAImK,cAAcC,QAAU,SAAUG,EAAIC,EAASC,GACjDP,GAA6BtuF,KAAKL,KAAMgvF,EAAIC,EAASC,GAEhDF,EAAGG,UACNH,EAAGG,QAAU,WAAa,EAE9B,EAEA1K,EAAAA,WAAImK,cAAcG,aAAe,SAAUC,EAAIC,EAASC,GACtDJ,GAAkCzuF,KAAKL,KAAMgvF,EAAIC,EAASC,GAErDF,EAAGG,UACNH,EAAGG,QAAU,WAAa,EAE9B,EAEA5J,GAAS,SAAmC6J,GAC1C,GAA4B,WAAxBxsF,GAAQwsF,IAA4BA,EAAWjwF,SAAWiwF,EAAWC,iBAAkB,CACzF,IAAIxuF,EAAiBuuF,EAAWjwF,OAChCiwF,EAAWC,kBAAmB,EAE9BD,EAAWjwF,OAAS,SAAU2B,GAC5B,IAAIwuF,EAAW,SAAkBvlF,EAAKwlF,EAAmBC,GACvD,IAAIC,OAAqB1mF,IAAbymF,EAAyB,GAAK,CAACtrF,MAAMC,QAAQqrF,GAAYA,EAAS9tF,OAAO6K,SAAWijF,GAC5FE,EAAuB,kBAAR3lF,IAAqB2kF,GAAiBiB,SAAS5lF,GAC9D6lF,EAA6BL,GAAoD,WAA/B3sF,GAAQ2sF,KAAoCrrF,MAAMC,QAAQorF,GAEhH,IAAKK,EACH,OAAO9uF,EAAEiB,WAAM,EAAQ,CAACgI,EAAKwlF,GAAmBtuF,OAAOwuF,IAGzD,IAAInmF,EAAQimF,EAAkBjmF,MAC1BR,EAAQymF,EAAkBzmF,MAC1B+mF,EAAWpsF,GAAyB8rF,EAAmB,CAAC,QAAS,UAEjEO,EAAiBtN,GAAcA,GAAc,CAAC,EAAGqN,GAAW,CAAC,EAAG,CAClEvmF,MAAOA,EACPR,MAAO4mF,EAAQ,CAAC,EAAI5mF,IAUtB,MAPY,gBAARiB,GAA0B+lF,EAAeL,OAAUK,EAAeC,cAEpED,EAAeC,YAAc,CAC3BC,WAAY,WAAuB,IAIhClvF,EAAEiB,WAAM,EAAQ,CAACgI,EAAK+lF,GAAgB7uF,OAAOwuF,GACtD,EAEA,GAAIL,EAAWvvF,WAAY,CACzB,IAAIowF,EAAeC,EAEf3xE,EAAMpc,UAAU,GAEhBguF,EAAa3N,GAAc,CAAC,EAAGjkE,GAEnC4xE,EAAWnnF,KAAO,CAChBM,MAAOk5E,GAAc,CAAC,EAAGjkE,EAAIvV,KAAKM,OAAS,CAAC,GAC5CR,MAAO05E,GAAc,CAAC,EAAGjkE,EAAIvV,KAAKF,OAAS,CAAC,IAE9CvH,OAAOD,KAAKid,EAAIvV,MAAQ,CAAC,GAAG1G,SAAQ,SAAUC,GACxCisF,GAAuBmB,SAASptF,GAClC4tF,EAAWnnF,KAAKzG,GAAOgc,EAAIvV,KAAKzG,GACvBA,KAAOgc,EAAIzV,MACpBqnF,EAAWnnF,KAAKF,MAAMvG,GAAOgc,EAAIvV,KAAKzG,GAC5BA,EAAI+rF,WAAW,QACzB6B,EAAWnnF,KAAKM,MAAM/G,GAAOgc,EAAIvV,KAAKzG,GAE1C,IACA,IAAI6tF,EAAwB,CAAC,QACzBnnF,GAA+C,QAAlCgnF,EAAgB1xE,EAAItV,gBAAwC,IAAlBgnF,GAAwF,QAAnDC,EAAwBD,EAAczjF,eAA+C,IAA1B0jF,OAArE,EAAiHA,EAAsB7vF,KAAK4vF,KAAmB1xE,EAAItV,SAWzP,OATIA,GAEU,IAFE1H,OAAOD,KAAK6uF,EAAWlnF,UAAUvH,QAAO,SAAUuV,GAChE,OAAQm5E,EAAsBT,SAAS14E,EACzC,IAAG7U,cACM+tF,EAAWlnF,SAElBknF,EAAWlnF,SAAWA,EAGxBknF,EAAWnnF,KAAKqnF,GAAK9xE,EAAIgxD,UAClB1uE,EAAeR,KAAKL,KAAMsvF,EAAUa,EAC7C,CAEA,OAAOtvF,EAAeR,KAAKL,KAAMsvF,EACnC,CACF,CAEA,OAAOb,GAAepuF,KAAKL,KAAMovF,EACnC,EAAElmF,KAAKu7E,EAAAA,WACT,CAEA,IAAI6L,GAAW7L,EAAAA,WAAAA,SCvHJ8L,GAA0B,eAC1BC,GAAkB,OAClBC,GAAoB,SACpBC,GAAoB,SACpBC,GAAqB,UACrBC,GAAmB,QACnBC,GAAmB,QACnBC,GAAqB,UACrBC,GAA6B,kBAC7BC,GAAuB,YACvBC,GAAqB,UACrBC,GAAsB,WACtBC,GAAuB,YACvBC,GAAgC,qBAChCC,GAAoB,SACpBC,GAAqB,UACrBC,GAAsB,WACtBC,GAAmB,QACnBC,GAAmB,QACnBC,GAAqB,UACrBC,GAAsB,WACtBC,GAA0B,eAC1BC,GAAoB,SACpBC,GAAkB,OAClBC,GAAuB,YACvBC,GAAmB,QACnBC,GAAkB,OAClBC,GAAwB,aACxBC,GAAwB,aACxBC,GAAkB,OAClBC,GAAgB,KAChBC,GAAkB,OAClBC,GAAwB,aACxBC,GAAoB,SACpBC,GAAkB,OAClBC,GAAqB,UACrBC,GAAuB,YACvBC,GAAoB,SACpBC,GAAyB,cACzBC,GAA6B,kBAC7BC,GAA4B,iBAC5BC,GAAyB,cACzBC,GAAgC,qBAChCC,GAA0B,eAC1BC,GAA2B,gBAC3BC,GAAsB,WACtBC,GAAkB,OAClBC,GAAmB,QACnBC,GAAyB,cACzBC,GAA2B,gBAC3BC,GAA0B,eAC1BC,GAAuB,YACvBC,GAAoB,SACpBC,GAAsB,WACtBC,GAAoB,SACpBC,GAAiCzF,GAAS,qBAAuB,qBACjE0F,GAA4B1F,GAAS,iBAAmB,iBACxD2F,GAA0B,UAC1BC,GAAyB,KACzBC,GAA4B,KAC5BC,GAAwB,CACjC9X,SAAS,GAEA+X,GAA2B,CACpC/X,SAAS,EACT9qC,SAAS,GCjEA8iD,QAAgBtrF,EAChBurF,GAAkBpwF,MAClBqwF,GAAoBhoF,QACpBioF,GAAiB53E,KACjB63E,GAAqBj3E,SACrBk3E,GAAmB7nF,OACnB8nF,GAAmBpzF,OACnBqzF,GAAoBvsB,OACpBwsB,GAAmBpoF,OAEnBqoF,GAA2B,CAACR,GAAiBG,IAC7CM,GAAyB,CAACT,GAAiBK,IAC3CK,GAAgC,CAACV,GAAiBK,GAAkBE,IACpEI,GAAyB,CAACX,GAAiBO,IAC3CK,GAA2B,CAACX,GAAmBG,IAC/CS,GAAkC,CAACZ,GAAmBG,GAAkBG,IACxEO,GAA2B,CAACb,GAAmBM,IAC/CQ,GAAwB,CAACb,GAAgBK,IACzCS,GAA4B,CAACb,GAAoBI,IACjDU,GAA0B,CAACb,GAAkBG,IAC7CW,GAAiC,CAACd,GAAkBC,GAAkBE,IACtEY,GAA4B,CAACd,GAAkBF,IAC/CiB,GAA0B,CAACf,GAAkBE,ICvB7Cc,GAA4B,kBAC5BC,GAAmB,SACnBC,GAAkB,QAClBC,GAAkB,QAClBC,GAAuB,aACvBC,GAA2B,iBAC3BC,GAAwB,cACxBC,GAAsB,YACtBC,GAAoB,UACpBC,GAAwB,cACxBC,GAAoB,UACpBC,GAA6B,mBAC7BC,GAA0B,gBAC1BC,GAAkB,QAClBC,GAA0B,gBAC1BC,GAAsB,YACtBC,GAAkB,QAClBC,GAAuB,aACvBC,GAAmB,SACnBC,GAAmB,SACnBC,GAAyB,eACzBC,GAAuB,aACvBC,GAAuB,aACvBC,GAAsB,YACtBC,GAAsB,YACtBC,GAAgB,MAChBC,GAAsB,YACtBC,GAA6B,mBAC7BC,GAAkB,QAClBC,GAAsB,YACtBC,GAAiB,OACjBC,GAAoB,UACpBC,GAA2B,iBAC3BC,GAAyB,eACzBC,GAAyB,eACzBC,GAAyB,eACzBC,GAA+B,qBAC/BC,GAAqB,WACrBC,GAAwB,cACxBC,GAA4B,kBAC5BC,GAA2B,iBAC3BC,GAA0B,gBAC1BC,GAA2B,kBAC3BC,GAA0B,iBAC1BC,GAAyB,gBACzBC,GAA2B,iBAC3BC,GAAsB,YACtBC,GAAoB,UACpBC,GAAiB,OACjBC,GAAwB,cACxBC,GAAoB,UACpBC,GAAsB,YACtBC,GAAwB,cACxBC,GAAuB,aACvBC,GAA0B,gBAC1BC,GAA2B,iBAC3BC,GAAqB,WACrBC,GAAuB,aACvBC,GAAiB,OACjBC,GAAsB,YACtBC,GAAkB,QAClBC,GAAwB,cACxBC,GAAoB,UACpBC,GAA2B,iBC7D3Bp1F,I,QAAO,WAChB,OAAOJ,MAAMI,KAAKvC,MAAMmC,MAAO/B,UACjC,GAEWw3F,GAAgB,SAAuBC,EAAO12F,GACvD,OAAiC,IAA1B02F,EAAMp2F,QAAQN,EACvB,EACWjC,GAAS,WAClB,IAAK,IAAIyH,EAAOvG,UAAUC,OAAQ45B,EAAO,IAAI93B,MAAMwE,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/EozB,EAAKpzB,GAAQzG,UAAUyG,GAGzB,OAAO1E,MAAMjB,UAAUhC,OAAOc,MAAM,GAAIi6B,EAC1C,EAEW69D,GAAc,SAAqBz3F,EAAQ03F,GACpD,IAAIC,EAAQppF,GAAWmpF,GAAUA,EAAS,WACxC,OAAOA,CACT,EACA,OAAO51F,MAAMnC,MAAM,KAAM,CACvBK,OAAQA,IACP2F,IAAIgyF,EACT,EACWC,GAAU,SAAiBJ,GACpC,OAAOA,EAAM1xF,QAAO,SAAU2H,EAAQqvC,GACpC,OAAOj+C,GAAO4O,EAAQqvC,EACxB,GAAG,GACL,EACW+6C,GAAc,SAASA,EAAYL,GAC5C,OAAOA,EAAM1xF,QAAO,SAAU2H,EAAQqvC,GACpC,OAAOj+C,GAAO4O,EAAQ3L,MAAMC,QAAQ+6C,GAAQ+6C,EAAY/6C,GAAQA,EAClE,GAAG,GACL,EClBWg7C,GAAoB,SAA2BC,GACxD,IAAIC,EAAej4F,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACpFk4F,EAASl4F,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAIlF,OAFAg4F,EAAQl5F,GAAOk5F,GAAOz4F,OAAOyhF,IAEtBgX,EAAM5V,MAAK,SAAU3/E,GAC1B,OAAOw1F,EAAax1F,IAASy1F,EAAOz1F,EACtC,GACF,EAWW01F,GAAgB,SAAuBH,GAChD,IAKII,EALAC,EAAQr4F,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC7Ei4F,EAAej4F,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACpFk4F,EAASl4F,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAElFg4F,EAAQl5F,GAAOk5F,GAAOz4F,OAAOyhF,IAG7B,IAAK,IAAIjhF,EAAI,EAAGA,EAAIi4F,EAAM/3F,SAAWm4F,EAAMr4F,IAAK,CAC9C,IAAI0C,EAAOu1F,EAAMj4F,GACjBq4F,EAAOH,EAAax1F,IAASy1F,EAAOz1F,EACtC,CAGA,OAAO+L,GAAW4pF,GAAQA,EAAKC,GAASD,CAC1C,EC9CWE,GAAqBlV,GAAO,CACrCmV,QAAS,CAGPR,kBAAmB,WACjB,IAAIt1F,EAAOzC,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAKg0F,GAC3EpG,EAAc5tF,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAKnC,KAAKo6F,aACvF3K,EAAQttF,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAKnC,KAAKq6F,OACrF,OAAOM,GAAmB/1F,EAAMmrF,EAAaN,EAC/C,EAGA6K,cAAe,WACb,IAAI11F,EAAOzC,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAKg0F,GAC3EqE,EAAQr4F,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC7E4tF,EAAc5tF,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAKnC,KAAKo6F,aACvF3K,EAAQttF,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAKnC,KAAKq6F,OAEjFO,EAASC,GAAej2F,EAAM41F,EAAOzK,EAAaN,GAEtD,OAAOmL,EAAS35F,GAAO25F,GAAUA,CACnC,KCvBOE,GAAY,SAAmB53F,GACxC,IAAIi3B,EAAeh4B,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK44F,IACnFC,EAAUluF,SAAS5J,EAAO,IAC9B,OAAO6jC,MAAMi0D,GAAW7gE,EAAe6gE,CACzC,EAEWC,GAAU,SAAiB/3F,GACpC,IAAIi3B,EAAeh4B,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK44F,IACnFG,EAAQh8B,WAAWh8D,GACvB,OAAO6jC,MAAMm0D,GAAS/gE,EAAe+gE,CACvC,EAIWC,GAAU,SAAiB9xF,EAAK+xF,GACzC,OAAOH,GAAQ5xF,GAAK8xF,QAAQL,GAAUM,EAAW,GACnD,ECdWC,GAAY,SAAmBC,GACxC,OAAOA,EAAI50F,QAAQg3E,EAAc,OAAO32E,aAC1C,EAEWw0F,GAAa,SAAoBD,GAI1C,OAHAA,EAAMD,GAAUC,GAAK50F,QAAQ23E,GAAa,SAAUmd,EAAGhzF,GACrD,OAAOA,EAAIA,EAAE3B,cAAgB,EAC/B,IACOy0F,EAAIjjE,OAAO,GAAGxxB,cAAgBy0F,EAAI32F,MAAM,EACjD,EAIW82F,GAAY,SAAmBH,GACxC,OAAOA,EAAI50F,QAAQ03E,EAAe,KAAK13E,QAAQi3E,GAAgB,SAAU2d,EAAKI,EAAIC,GAChF,OAAOD,EAAK,IAAMC,CACpB,IAAGj1F,QAAQw3E,GAAqB,SAAUod,EAAKI,EAAIC,GACjD,OAAOD,EAAKC,EAAG90F,aACjB,GACF,EAEW+0F,GAAa,SAAoBN,GAE1C,OADAA,EAAM5qF,GAAS4qF,GAAOA,EAAIrzF,OAASwE,OAAO6uF,GACnCA,EAAIjjE,OAAO,GAAGtxB,cAAgBu0F,EAAI32F,MAAM,EACjD,EAEWk3F,GAAa,SAAoBP,GAE1C,OADAA,EAAM5qF,GAAS4qF,GAAOA,EAAIrzF,OAASwE,OAAO6uF,GACnCA,EAAIjjE,OAAO,GAAGxxB,cAAgBy0F,EAAI32F,MAAM,EACjD,EAEWm3F,GAAe,SAAsBR,GAC9C,OAAOA,EAAI50F,QAAQo3E,EAAmB,OACxC,EAIWp5E,GAAW,SAAkB2E,GACtC,IAAI0yF,EAAS55F,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,EACjF,OAAO8/E,GAAkB54E,GAAO,GAAKlF,GAAQkF,IAAQkU,GAAclU,IAAQA,EAAI3E,WAAanD,OAAO0B,UAAUyB,SAAW6O,KAAKC,UAAUnK,EAAK,KAAM0yF,GAAUtvF,OAAOpD,EACrK,EAEW2yF,GAAW,SAAkBV,GACtC,OAAO52F,GAAS42F,GAAK50F,QAAQy3E,EAAc,GAC7C,EAMWl2E,GAAO,SAAcqzF,GAC9B,OAAO52F,GAAS42F,GAAKrzF,MACvB,EAEWg0F,GAAY,SAAmBX,GACxC,OAAO52F,GAAS42F,GAAKv0F,aACvB,ECtDIm1F,GAAgB/a,GAAQl+E,UACxBk5F,GAAmB,CAAC,SAAU,wBAAyB,QAAS,SAAU,WAAY,aAAc,qBAAqBp0F,KAAI,SAAUC,GACzI,MAAO,GAAG/G,OAAO+G,EAAG,kCACtB,IAAGzB,KAAK,MAKG61F,GAAYF,GAAcnvD,SAAWmvD,GAAcG,mBAAqBH,GAAcI,sBAItFC,GAAYL,GAAcM,SAAW,SAAUC,GACxD,IAAIzN,EAAKhvF,KAET,EAAG,CAED,GAAI+sC,GAAQiiD,EAAIyN,GACd,OAAOzN,EAGTA,EAAKA,EAAG0N,eAAiB1N,EAAG2N,UAC9B,QAAU3a,GAAOgN,IAAOA,EAAG4N,WAAaC,KAAKC,cAE7C,OAAO,IACT,EAIWC,IAAa5kF,EAAO6kF,uBAAyB7kF,EAAO8kF,6BAA+B9kF,EAAO+kF,0BAA4B/kF,EAAOglF,yBAA2BhlF,EAAOilF,wBAI1K,SAAUztF,GACR,OAAOqS,WAAWrS,EAAI,GACxB,GAAGzG,KAAKiP,GACGklF,GAAcllF,EAAOwjE,kBAAoBxjE,EAAOyjE,wBAA0BzjE,EAAO0jE,qBAAuB,KAGxGyhB,GAAa,SAAoBtO,GAC1C,OAAOA,GAAMA,EAAG2N,YAAc3N,EAAG2N,WAAWY,YAAYvO,EAC1D,EAEWwO,GAAY,SAAmBxO,GACxC,SAAUA,GAAMA,EAAG4N,WAAaC,KAAKC,aACvC,EAEWW,GAAmB,WAC5B,IAAIC,EAAWv7F,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,GAC/Ew7F,EAAgB5hB,EAAS4hB,cAC7B,OAAOA,IAAkBD,EAASnZ,MAAK,SAAUyK,GAC/C,OAAOA,IAAO2O,CAChB,IAAKA,EAAgB,IACvB,EAEWjO,GAAQ,SAAe3lF,EAAKnF,GACrC,OAAOF,GAASqF,GAAKhD,gBAAkBrC,GAASE,GAAMmC,aACxD,EAEW62F,GAAkB,SAAyB5O,GACpD,OAAOwO,GAAUxO,IAAOA,IAAOyO,IACjC,EAEWI,GAAY,SAAmB7O,GACxC,IAAKwO,GAAUxO,KAAQA,EAAG2N,aAAemB,GAAS/hB,EAAS5oC,KAAM67C,GAG/D,OAAO,EAGT,GAAgC,SAA5B+O,GAAS/O,EAAI,WAIf,OAAO,EAMT,IAAIgP,EAAMC,GAAOjP,GACjB,SAAUgP,GAAOA,EAAIE,OAAS,GAAKF,EAAIG,MAAQ,EACjD,EAEWC,GAAa,SAAoBpP,GAC1C,OAAQwO,GAAUxO,IAAOA,EAAGn8D,UAAYwrE,GAAQrP,EAAI,aAAesP,GAAStP,EAAI,WAClF,EAEWuP,GAAS,SAAgBvP,GAIlC,OAAOwO,GAAUxO,IAAOA,EAAGwP,YAC7B,EAEWC,GAAY,SAAmBC,EAAUC,GAClD,OAAOC,IAAWpB,GAAUmB,GAAQA,EAAO5iB,GAAU8iB,iBAAiBH,GACxE,EAEWI,GAAS,SAAgBJ,EAAUC,GAC5C,OAAQnB,GAAUmB,GAAQA,EAAO5iB,GAAUgjB,cAAcL,IAAa,IACxE,EAEW3xD,GAAU,SAAiBiiD,EAAI0P,GACxC,QAAOlB,GAAUxO,IAAMoN,GAAU/7F,KAAK2uF,EAAI0P,EAC5C,EAEWlC,GAAU,SAAiBkC,EAAUC,GAC9C,IAAIK,EAAc78F,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,IAAmBA,UAAU,GAEjF,IAAKq7F,GAAUmB,GACb,OAAO,KAGT,IAAI3P,EAAKuN,GAAUl8F,KAAKs+F,EAAMD,GAI9B,OAAOM,EAAchQ,EAAKA,IAAO2P,EAAO,KAAO3P,CACjD,EAEW8O,GAAW,SAAkB39F,EAAQ8+F,GAC9C,SAAO9+F,IAAUwQ,GAAWxQ,EAAO29F,YAAY39F,EAAO29F,SAASmB,EACjE,EAEWC,GAAU,SAAiBtmE,GACpC,OAAOmjD,EAASojB,eAAe,KAAKt6F,KAAK+zB,GAAMA,EAAGj0B,MAAM,GAAKi0B,IAAO,IACtE,EAEWwmE,GAAW,SAAkBpQ,EAAInpE,GAItCA,GAAa23E,GAAUxO,IAAOA,EAAGzkF,WACnCykF,EAAGzkF,UAAUhK,IAAIslB,EAErB,EAEWw5E,GAAc,SAAqBrQ,EAAInpE,GAI5CA,GAAa23E,GAAUxO,IAAOA,EAAGzkF,WACnCykF,EAAGzkF,UAAUkjD,OAAO5nC,EAExB,EAEWy4E,GAAW,SAAkBtP,EAAInpE,GAI1C,SAAIA,GAAa23E,GAAUxO,IAAOA,EAAGzkF,YAC5BykF,EAAGzkF,UAAUuzF,SAASj4E,EAIjC,EAEWy5E,GAAU,SAAiBtQ,EAAIuQ,EAAMr8F,GAC1Cq8F,GAAQ/B,GAAUxO,IACpBA,EAAGwQ,aAAaD,EAAMr8F,EAE1B,EAEWu8F,GAAa,SAAoBzQ,EAAIuQ,GAC1CA,GAAQ/B,GAAUxO,IACpBA,EAAG0Q,gBAAgBH,EAEvB,EAGWI,GAAU,SAAiB3Q,EAAIuQ,GACxC,OAAOA,GAAQ/B,GAAUxO,GAAMA,EAAG4Q,aAAaL,GAAQ,IACzD,EAGWlB,GAAU,SAAiBrP,EAAIuQ,GACxC,OAAOA,GAAQ/B,GAAUxO,GAAMA,EAAG6Q,aAAaN,GAAQ,IACzD,EAEWO,GAAW,SAAkB9Q,EAAI3mF,EAAMnF,GAC5CmF,GAAQm1F,GAAUxO,KACpBA,EAAGlnF,MAAMO,GAAQnF,EAErB,EAEW68F,GAAc,SAAqB/Q,EAAI3mF,GAC5CA,GAAQm1F,GAAUxO,KACpBA,EAAGlnF,MAAMO,GAAQ,GAErB,EAGW01F,GAAW,SAAkB/O,EAAI3mF,GAC1C,OAAOA,GAAQm1F,GAAUxO,IAAMA,EAAGlnF,MAAMO,IAAgB,IAC1D,EAKW41F,GAAS,SAAgBjP,GAClC,OAAOwO,GAAUxO,GAAMA,EAAGgR,wBAA0B,IACtD,EAIWC,GAAQ,SAAejR,GAChC,IAAIkR,EAAmB/nF,EAAO+nF,iBAC9B,OAAOA,GAAoB1C,GAAUxO,GAAMkR,EAAiBlR,GAAM,CAAC,CACrE,EAKWmR,GAAS,WAClB,IAAIC,EAAejoF,EAAOioF,aAC1B,OAAOA,EAAejoF,EAAOioF,eAAiB,IAChD,EAGWC,GAAS,SAAgBrR,GAGlC,IAAIsR,EAAU,CACZC,IAAK,EACLh2D,KAAM,GAGR,IAAKizD,GAAUxO,IAAsC,IAA/BA,EAAGwR,iBAAiBp+F,OACxC,OAAOk+F,EAGT,IAAItC,EAAMC,GAAOjP,GAEjB,GAAIgP,EAAK,CACP,IAAIjqD,EAAMi7C,EAAGyR,cAAcC,YAC3BJ,EAAQC,IAAMvC,EAAIuC,IAAMxsD,EAAI4sD,YAC5BL,EAAQ/1D,KAAOyzD,EAAIzzD,KAAOwJ,EAAI6sD,WAChC,CAEA,OAAON,CACT,EAGWO,GAAW,SAAkB7R,GAGtC,IAAIsR,EAAU,CACZC,IAAK,EACLh2D,KAAM,GAGR,IAAKizD,GAAUxO,GACb,OAAOsR,EAGT,IAAIQ,EAAe,CACjBP,IAAK,EACLh2D,KAAM,GAEJw2D,EAAWd,GAAMjR,GAErB,GAA0B,UAAtB+R,EAASF,SACXP,EAAUrC,GAAOjP,IAAOsR,MACnB,CACLA,EAAUD,GAAOrR,GACjB,IAAI94D,EAAM84D,EAAGyR,cACTO,EAAehS,EAAGgS,cAAgB9qE,EAAIwmD,gBAE1C,MAAOskB,IAAiBA,IAAiB9qE,EAAIid,MAAQ6tD,IAAiB9qE,EAAIwmD,kBAAqD,WAAjCujB,GAAMe,GAAcH,SAChHG,EAAeA,EAAarE,WAG9B,GAAIqE,GAAgBA,IAAiBhS,GAAMgS,EAAapE,WAAaC,KAAKC,aAAc,CACtFgE,EAAeT,GAAOW,GACtB,IAAIC,EAAqBhB,GAAMe,GAC/BF,EAAaP,KAAOtF,GAAQgG,EAAmBC,eAAgB,GAC/DJ,EAAav2D,MAAQ0wD,GAAQgG,EAAmBE,gBAAiB,EACnE,CACF,CAEA,MAAO,CACLZ,IAAKD,EAAQC,IAAMO,EAAaP,IAAMtF,GAAQ8F,EAASK,UAAW,GAClE72D,KAAM+1D,EAAQ/1D,KAAOu2D,EAAav2D,KAAO0wD,GAAQ8F,EAASM,WAAY,GAE1E,EAGWC,GAAc,WACvB,IAAIC,EAASp/F,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAKk5E,SACjF,OAAOojB,GAAUtC,GAAkBoF,GAAQ7/F,OAAOm8F,IAAWn8F,QAAO,SAAUstF,GAC5E,OAAOA,EAAGwS,UAAY,IAAMxS,EAAGn8D,QACjC,GACF,EAEW4uE,GAAe,SAAsBzS,GAC9C,IAAIrvF,EAAUwC,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAEnF,IACE6sF,EAAG0S,MAAM/hG,EACX,CAAE,MAAO68E,GAAU,CAEnB,OAAOohB,GAAgB5O,EACzB,EAEW2S,GAAc,SAAqB3S,GAC5C,IACEA,EAAG4S,MACL,CAAE,MAAOC,GAAW,CAEpB,OAAQjE,GAAgB5O,EAC1B,EC7TW8S,GAAU,SAAiBrnF,GACpC,IAAIsnF,EAAQlqD,GAAO,MACnB,OAAO,WACL,IAAK,IAAInvC,EAAOvG,UAAUC,OAAQ45B,EAAO,IAAI93B,MAAMwE,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/EozB,EAAKpzB,GAAQzG,UAAUyG,GAGzB,IAAIo5F,EAAUzuF,KAAKC,UAAUwoB,GAC7B,OAAO+lE,EAAMC,GAAWD,EAAMC,IAAYvnF,EAAG1Y,MAAM,KAAMi6B,EAC3D,CACF,ECNIimE,GAAWxd,EAAAA,WAAIxhF,UAURi/F,GAAiB,SAAwB3/F,GAClD,IAAI43B,EAAeh4B,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,QAAK4G,EACnFo5F,EAAWF,GAAShlB,GACxB,OAAOklB,EAAWA,EAASD,eAAe3/F,EAAK43B,GAAgB+oD,GAAU/oD,EAC3E,EAEWioE,GAAqB,SAA4B7/F,GAC1D,IAAI8/F,EAAUlgG,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,KAC9Eg4B,EAAeh4B,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,QAAK4G,EAGvF,OAAOs5F,EAAUH,GAAe,GAAGjhG,OAAOsB,EAAK,KAAKtB,OAAOohG,GAAUloE,GAAgB+nE,GAAe3/F,EAAK,CAAC,EAC5G,EAEW+/F,GAAiB,WAC1B,OAAOJ,GAAe,cAAehlB,EACvC,EAEIqlB,GAAwBT,IAAQ,WAClC,OAAOQ,IACT,IAGWE,GAAuB,WAChC,OAAOtf,GAAUqf,KACnB,EAUWE,GAAyBX,IAAQ,WAC1C,IAAIY,EAAcF,KAElB,OADAE,EAAY,GAAK,GACVA,CACT,ICtDA,SAASvhG,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAUzM,IAAI8/F,GAAiB,SAAwBz2F,EAAQhJ,GAC1D,OAAOgJ,EAAS2vF,GAAW34F,EAC7B,EAEW0/F,GAAmB,SAA0B12F,EAAQhJ,GAC9D,OAAO04F,GAAW14F,EAAMwD,QAAQwF,EAAQ,IAC1C,EAIW22F,GAAiB,SAAwBC,EAAQ5/F,GAC1D,OAAOA,GAAS4/F,EAASjH,GAAWiH,GAAU,GAChD,EAEWC,GAAW,WACpB,IAAIz2F,EAAOnK,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAKkyF,GAC3EnxF,EAAQf,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,QAAK4G,EAC5Ei6F,EAAsB7gG,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,QAAK4G,EAC1F2D,EAAYvK,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,QAAK4G,EAChF4D,GAAmC,IAAxBq2F,EAEf,OADAt2F,EAAYC,EAAWD,EAAYs2F,EAC5BxgB,GAAcA,GAAcA,GAAc,CAAC,EAAGl2E,EAAO,CAC1DA,KAAMA,GACJ,CAAC,GAAIK,EAAW,CAClBA,SAAUA,GACRwD,GAAYjN,GAAS,CAAC,EAAI,CAC5BsJ,QAASoE,GAAS1N,GAAS,WACzB,OAAOA,CACT,EAAIA,IACFiN,GAAYzD,GAAa,CAAC,EAAI,CAChCA,UAAWA,GAEf,EAKWu2F,GAAY,SAAmBn6F,GACxC,IAAIo6F,EAAc/gG,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAKghF,GAEtF,GAAIh/E,GAAQ2E,GACV,OAAOA,EAAMf,IAAIm7F,GAGnB,IAAIC,EAAS,CAAC,EAEd,IAAK,IAAI96F,KAAQS,EAEX5C,GAAe4C,EAAOT,KAGxB86F,EAAOD,EAAY76F,IAASuI,GAAS9H,EAAMT,IAASupB,GAAM9oB,EAAMT,IAASS,EAAMT,IAInF,OAAO86F,CACT,EAIWC,GAAa,SAAoBC,EAAaC,GACvD,IAAIJ,EAAc/gG,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAKghF,GACtF,OAAQh/E,GAAQk/F,GAAeA,EAAY1+F,QAAUrD,GAAK+hG,IAAcn7F,QAAO,SAAUq7F,EAAMl7F,GAE7F,OADAk7F,EAAKL,EAAY76F,IAASi7F,EAAWj7F,GAC9Bk7F,CACT,GAAG,CAAC,EACN,EAIWC,GAAuB,SAA8Bn7F,EAAM9F,EAAKkhG,GACzE,OAAOjhB,GAAcA,GAAc,CAAC,EAAGU,GAAU76E,IAAQ,CAAC,EAAG,CAC3DmE,QAAS,WACP,IAAItJ,EAAQk/F,GAAmBqB,EAAclhG,EAAK8F,EAAKmE,SACvD,OAAOmE,GAAWzN,GAASA,IAAUA,CACvC,GAEJ,EAIWwgG,GAAwB,SAA+B56F,EAAO26F,GACvE,OAAOniG,GAAKwH,GAAOZ,QAAO,SAAU2H,EAAQtN,GAC1C,OAAOigF,GAAcA,GAAc,CAAC,EAAG3yE,GAAS,CAAC,EAAGrN,GAAgB,CAAC,EAAGD,EAAKihG,GAAqB16F,EAAMvG,GAAMA,EAAKkhG,IACrH,GAAG,CAAC,EACN,EAIIE,GAAgCH,GAAqB,CAAC,EAAG,GAAI,IAAIh3F,QAAQ5H,KAGlEg/F,GAAkB,SAAyBnpF,GACpD,OAAO9J,GAAW8J,IAAOA,EAAG7V,MAAQ6V,EAAG7V,OAAS++F,EAClD,EC5GA,SAASnhG,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAMzM,IAAIghG,GAAiB,SAAwBx7F,GAClD,IAAI83B,EAAOh+B,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC5E2hG,EAAY3jE,EAAK7zB,KACjBA,OAAqB,IAAdw3F,EAAuBzP,GAAgByP,EAC9CC,EAAoB5jE,EAAKhG,aACzBA,OAAqC,IAAtB4pE,OAA+Bh7F,EAAYg7F,EAC1DC,EAAiB7jE,EAAKzzB,UACtBA,OAA+B,IAAnBs3F,OAA4Bj7F,EAAYi7F,EACpDC,EAAa9jE,EAAKupB,MAClBA,OAAuB,IAAfu6C,EAAwBjS,GAAmBiS,EAEnDn7F,EAAQtG,GAAgB,CAAC,EAAG6F,EAAM06F,GAASz2F,EAAM6tB,EAAcztB,IAG/Dw3F,EAAQ3e,GAAO,CACjBptB,MAAO,CACL9vD,KAAMA,EACNqhD,MAAOA,GAET5gD,MAAOA,IAET,MAAO,CACLo7F,MAAOA,EACPp7F,MAAOA,EACPT,KAAMA,EACNqhD,MAAOA,EAEX,ECzBWy6C,GAAoB,SAA2BxkG,GAExD,OAAIw8E,EACKvrE,GAASjR,GAAWA,EAAU,CACnC4xC,UAAW5xC,IAAW,MAIdiR,GAASjR,GAAWA,EAAQ4xC,QAAU5xC,EAEpD,EAEWoyC,GAAU,SAAiBi9C,EAAIz+C,EAAW9xB,EAAS9e,GACxDqvF,GAAMA,EAAG1S,kBACX0S,EAAG1S,iBAAiB/rC,EAAW9xB,EAAS0lF,GAAkBxkG,GAE9D,EAEWuyC,GAAW,SAAkB88C,EAAIz+C,EAAW9xB,EAAS9e,GAC1DqvF,GAAMA,EAAGzS,qBACXyS,EAAGzS,oBAAoBhsC,EAAW9xB,EAAS0lF,GAAkBxkG,GAEjE,EAGWykG,GAAa,SAAoB/T,GAG1C,IAFA,IAAI39D,EAAS29D,EAAKt+C,GAAUG,GAEnBxpC,EAAOvG,UAAUC,OAAQ45B,EAAO,IAAI93B,MAAMwE,EAAO,EAAIA,EAAO,EAAI,GAAIE,EAAO,EAAGA,EAAOF,EAAME,IAClGozB,EAAKpzB,EAAO,GAAKzG,UAAUyG,GAG7B8pB,EAAO3wB,WAAM,EAAQi6B,EACvB,EAEWqoE,GAAY,SAAmB36C,GACxC,IAAIvpB,EAAOh+B,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC5EmiG,EAAsBnkE,EAAKokE,eAC3BA,OAAyC,IAAxBD,GAAwCA,EACzDE,EAAmBrkE,EAAKskE,YACxBA,OAAmC,IAArBD,GAAqCA,EACnDE,EAAwBvkE,EAAKwkE,qBAC7BA,OAAiD,IAA1BD,GAA2CA,EAElEH,GACF76C,EAAM66C,iBAGJE,GACF/6C,EAAMk7C,kBAGJD,GACFj7C,EAAMm7C,0BAEV,EAIIC,GAAmB,SAA0B5hG,GAC/C,OAAOm4F,GAAUn4F,EAAMwD,QAAQ02E,EAAc,IAC/C,EAIW2nB,GAAmB,SAA0BngG,EAAM2rC,GAC5D,MAAO,CAAC0jD,GAAwB6Q,GAAiBlgG,GAAO2rC,GAAWhqC,KAAK2tF,GAC1E,EAGW8Q,GAAyB,SAAgCpgG,EAAMqgG,GACxE,MAAO,CAAChR,GAAwBgR,EAAYH,GAAiBlgG,IAAO2B,KAAK2tF,GAC3E,EChFA,SAAS1xF,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAWzM,IAAIiG,GAAQ46F,GAAsB,CACvCwB,UAAWnC,GAASlO,GAAkB,SACtCsQ,QAASpC,GAASlO,GAAkB,WACpChiE,SAAUkwE,GAASxO,IAAmB,GACtC6Q,YAAarC,GAASlO,KACrBvO,IAGQ+e,GAA4B9f,GAAO,CAC5C3gF,KAAM0hF,GACNzmF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIr3B,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZymF,EAAQtvD,EAAKsvD,MACbM,EAAc5vD,EAAK4vD,YACnBsK,EAAS5K,IACT2K,EAAerK,GAAe,CAAC,EAC/BuV,EAAgB,CAClBC,YAAa,QACb/7F,MAAOhH,GAAgB,CAAC,EAAG,QAAQvB,OAAO6H,EAAMs8F,aAAct8F,EAAMs8F,aACpE97F,MAAO,CACLgD,KAAM,SACNumB,SAAU/pB,EAAM+pB,SAChB,aAAc/pB,EAAMo8F,UAAYz4F,OAAO3D,EAAMo8F,WAAa,MAE5D7U,GAAI,CACFmV,MAAO,SAAe97C,GAIhB5gD,EAAM+pB,UAAYsvD,GAAQz4B,IAC5B26C,GAAU36C,EAEd,IAUJ,OANKwwC,GAAkB/D,GAAmBiE,EAAcC,KACtDiL,EAAcG,SAAW,CACvBC,UAAW58F,EAAMq8F,UAIdrkG,EAAE,SAAU6kG,GAAU38F,EAAMs8F,GAAgBhL,GAAcnE,GAAmB,CAAC,EAAGiE,EAAcC,GACxG,ICzDF,SAASl5F,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAahN,ICjBIk9B,GDiBA6lE,GAAgB,CAClBhhG,KAAM,GACNihG,WAAY,GACZC,iBAAkB,GAClBC,aAAc,OACdC,WAAY,OACZC,iBAAkB,GAClBC,aAAc,IAGZC,GAAa3jB,GAAcA,GAAc,CAAC,EAAGojB,IAAgB,CAAC,EAAG,CACnEE,iBAAkB,OAClBG,iBAAkB,SAITn9F,GAAQ,CAEjBs9F,OAAQrD,GAASxO,IAAmB,GAEpC8R,KAAMtD,GAASlO,IAGfyR,OAAQvD,GAASxO,IAAmB,GAEpCgS,WAAYxD,GAASpO,KAIZ6R,GAA4BjhB,GAAO,CAC5C3gF,KAAM+oF,GACN9tF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIl3B,EAAWk3B,EAAKl3B,SAChBD,EAAOm3B,EAAKn3B,KACZF,EAAQq3B,EAAKr3B,MACby9F,EAAaz9F,EAAMy9F,WAElBhpF,GAAcgpF,KACjBA,EAAaz9F,EAAMw9F,OAASV,GAAgBO,GAExCr9F,EAAMs9F,SAERG,EAAa/jB,GAAcA,GAAc,CAAC,EAAG+jB,GAAa,CAAC,EAAG,CAC5DH,QAAQ,EACRK,YAAaF,EAAWV,WACxBa,kBAAmBH,EAAWT,iBAC9Ba,cAAeJ,EAAWR,iBAKhCQ,EAAa/jB,GAAcA,GAAc,CACvC6jB,KAAMv9F,EAAMu9F,MACXE,GAAa,CAAC,EAAG,CAElBK,KAAK,IAGP,IAAIC,EAAWrkB,GAAc,CAAC,EAAGx5E,GAGjC,cADO69F,EAAS/9F,MACThI,EAAE,aACT6kG,GAAUkB,EAAU,CAClB/9F,MAAOy9F,IACLt9F,EACN,IClFF,SAAS9H,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAiBhN,IAAIikG,GAAkBjD,GAAe,OAAQ,CAC3Cv3F,KAAM6oF,GACNh7D,cAAc,IAEZ4sE,GAAaD,GAAgB5C,MAC7B8C,GAAaF,GAAgBh+F,MAC7Bm+F,GAAkBH,GAAgBz+F,KAClC6+F,GAAmBJ,GAAgBp9C,MAInCy9C,GAAiB,SAAwBC,GAC3C,MAAa,KAATA,GAAer2F,GAAUq2F,GACpB,GAGTA,EAAOtM,GAAUsM,EAAM,GAChBA,EAAO,EAAIA,EAAO,EAC3B,EAGIC,GAAY,SAAmBD,GACjC,MAAa,KAATA,IAAwB,IAATA,KAIftM,GAAUsM,EAAM,GAAK,MAKhBA,CACX,EAGWt+F,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAc,CAAC,EAAGwkB,IAAa,CAAC,EAAG,CACjGM,aAAcvE,GAASlO,GAAkB,SACzC0S,YAAaxE,GAASxO,IAAmB,GACzCxpF,KAAMg4F,GAASxO,IAAmB,GAClCiT,QAASzE,GAASlO,GAAkB,WACjChP,IAGM4hB,GAAsBliB,GAAO,CACtC3gF,KAAMihF,GACN18E,OAAQ,CAAC49F,GAAYtM,IACrB3xF,MAAOA,GACPE,KAAM,WACJ,MAAO,CACL0+F,UAAW,EAEXC,UAAWN,GAAUrnG,KAAKinG,KAE9B,EACAW,OAAQ7nE,GAAS,CAAC,EAAGv9B,GAAgBu9B,GAAQknE,IAAiB,SAAU90F,GACtEnS,KAAK0nG,UAAYP,GAAeh1F,GAChCnS,KAAK2nG,UAAYN,GAAUl1F,EAC7B,IAAI3P,GAAgBu9B,GAAQ,aAAa,SAAmB5tB,GAC1D,IAAIqK,EAAQxc,KAEZA,KAAK6nG,yBACL,IAAIT,EAAOpnG,KAAKinG,IAEZ/kB,GAAUklB,KACZpnG,KAAK8nG,MAAM1W,GAA+Bj/E,GAEtCi1F,IAASj1F,GACXnS,KAAK8nG,MAAMZ,GAAkB/0F,GAG3BA,EAAW,GACbnS,KAAK2nG,WAAY,EACjB3nG,KAAK+nG,mBAAqB/lF,YAAW,WACnCxF,EAAMkrF,WACR,GAAG,MAGH1nG,KAAKgoG,WAAU,WACbjL,IAAU,WACRvgF,EAAMmrF,WAAY,CACpB,GACF,IAGN,IAAInlG,GAAgBu9B,GAAQ,aAAa,SAAmB5tB,GAC1D,IAAIi1F,EAAOpnG,KAAKinG,IAEX90F,IAAanS,KAAKunG,cAAerlB,GAAUklB,IAC9CpnG,KAAK8nG,MAAM3W,IAIRjP,GAAUklB,IAASA,IAASj1F,GAC/BnS,KAAK8nG,MAAMZ,GAAkB/0F,EAEjC,IAAI4tB,IACJ8uD,QAAS,WAEP7uF,KAAKioG,cAAgB,KACrB,IAAIb,EAAOpnG,KAAKinG,IAChBjnG,KAAK0nG,UAAYP,GAAeC,GAChCpnG,KAAK2nG,UAAYN,GAAUD,EAC7B,EACAc,cAAe,WACbloG,KAAK6nG,wBACP,EACAnN,QAAS,CACPyN,QAAS,WACPnoG,KAAK6nG,yBACL7nG,KAAK0nG,UAAY,EACjB1nG,KAAK2nG,WAAY,CACnB,EACAE,uBAAwB,WACtB3lF,aAAaliB,KAAK+nG,oBAClB/nG,KAAK+nG,mBAAqB,IAC5B,GAEF5oG,OAAQ,SAAgB2B,GACtB,IAAIsnG,EAAStnG,IAEb,GAAId,KAAK2nG,UAAW,CAClB,IAAIJ,EAAcvnG,KAAKunG,YACnBC,EAAUxnG,KAAKwnG,QACfa,EAAiBvnG,IAEjBymG,IAEFc,EAAiBvnG,EAAEukG,GAAc,CAC/B/7F,MAAO,CACL,aAActJ,KAAKsnG,cAErBjX,GAAI,CACFmV,MAAOxlG,KAAKmoG,UAEb,CAACnoG,KAAKs6F,cAAcjE,OAGzB+R,EAAStnG,EAAE,MAAO,CAChBykG,YAAa,QACb/7F,MAAOhH,GAAgB,CACrB,oBAAqB+kG,GACpB,SAAStmG,OAAOumG,GAAUA,GAC7Bl+F,MAAO,CACLg/F,KAAM,QACN,YAAa,SACb,eAAe,GAEjB/lG,IAAKvC,KAAKouF,KACT,CAACia,EAAgBroG,KAAKs6F,iBAC3B,CAEA,OAAOx5F,EAAE0lG,GAAc,CACrB19F,MAAO,CACLw9F,QAAStmG,KAAK+K,OAEf,CAACq9F,GACN,ICjLEG,GAA2BjjB,GAAc,CAC3CP,WAAY,CACV0iB,OAAQA,MCHDe,GAAUt5F,KAAKi4B,IACfjxB,GAAUhH,KAAKinB,IACfsyE,GAAUv5F,KAAKywD,IACf+oC,GAAWx5F,KAAKy5F,KAChBC,GAAY15F,KAAK6oB,MACjB8wE,GAAU35F,KAAKk4D,IACf0hC,GAAY55F,KAAK83B,MCP5B,SAAS+hE,GAAellG,EAAK3B,GAAK,OAAO8mG,GAAgBnlG,IAAQolG,GAAsBplG,EAAK3B,IAAM8B,GAA4BH,EAAK3B,IAAMgnG,IAAoB,CAE7J,SAASA,KAAqB,MAAM,IAAIlkG,UAAU,4IAA8I,CAEhM,SAAShB,GAA4BO,EAAGC,GAAU,GAAKD,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOH,GAAkBG,EAAGC,GAAS,IAAIC,EAAIlD,OAAO0B,UAAUyB,SAASrE,KAAKkE,GAAGI,MAAM,GAAI,GAAiE,MAAnD,WAANF,GAAkBF,EAAEvB,cAAayB,EAAIF,EAAEvB,YAAY4B,MAAgB,QAANH,GAAqB,QAANA,EAAoBP,MAAMI,KAAKC,GAAc,cAANE,GAAqB,2CAA2CI,KAAKJ,GAAWL,GAAkBG,EAAGC,QAAzG,CAA7O,CAA+V,CAE/Z,SAASJ,GAAkBP,EAAKiB,IAAkB,MAAPA,GAAeA,EAAMjB,EAAIzB,UAAQ0C,EAAMjB,EAAIzB,QAAQ,IAAK,IAAIF,EAAI,EAAG6C,EAAO,IAAIb,MAAMY,GAAM5C,EAAI4C,EAAK5C,IAAO6C,EAAK7C,GAAK2B,EAAI3B,GAAM,OAAO6C,CAAM,CAEtL,SAASkkG,GAAsBplG,EAAK3B,GAAK,IAAI+5B,EAAY,MAAPp4B,EAAc,KAAyB,qBAAXf,QAA0Be,EAAIf,OAAOC,WAAac,EAAI,cAAe,GAAU,MAANo4B,EAAJ,CAAwB,IAAkDktE,EAAIC,EAAlDC,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAmB,IAAM,IAAKttE,EAAKA,EAAG57B,KAAKwD,KAAQylG,GAAMH,EAAKltE,EAAGliB,QAAQK,MAAOkvF,GAAK,EAA6B,GAArBD,EAAKvnG,KAAKqnG,EAAGjmG,OAAYhB,GAAKmnG,EAAKjnG,SAAWF,EAAG,KAAS,CAAE,MAAOgY,GAAOqvF,GAAK,EAAMH,EAAKlvF,CAAK,CAAE,QAAU,IAAWovF,GAAsB,MAAhBrtE,EAAG,WAAmBA,EAAG,WAAa,CAAE,QAAU,GAAIstE,EAAI,MAAMH,CAAI,CAAE,CAAE,OAAOC,CAAjV,CAAuV,CAEhgB,SAASL,GAAgBnlG,GAAO,GAAIK,MAAMC,QAAQN,GAAM,OAAOA,CAAK,CAWpE,IAAI2lG,GAAa,WAEN1gG,GAAQ46F,GAAsB,CAGvC+F,OAAQ1G,GAASxN,GAAyB,OAC1CxrF,IAAKg5F,GAASlO,GAAkB,QAC/B/O,IAGQ4jB,GAAuBnkB,GAAO,CACvC3gF,KAAMkhF,GACN38E,OAAQ,CAACsxF,IACT3xF,MAAOA,GACP6gG,SAAU,CACRC,QAAS,WACP,IAAIH,EAASzpG,KAAKypG,OACdI,EAAQ,EAEZ,GAAIhrB,EAAUh6E,KAAK4kG,GAAS,CAG1B,IAAIK,EAAoBL,EAAOnjG,MAAMw4E,GAAqB/2E,KAAI,SAAU0H,GACtE,OAAOwrF,GAAQxrF,IAAM,CACvB,IACIs6F,EAAqBhB,GAAee,EAAmB,GACvD3L,EAAQ4L,EAAmB,GAC3B7L,EAAS6L,EAAmB,GAEhCF,EAAQ1L,EAAQD,CAClB,MACE2L,EAAQ5O,GAAQwO,IAAW,EAG7B,MAAO,GAAGxoG,OAAO,IAAMwnG,GAAQoB,GAAQ,IACzC,GAEF1qG,OAAQ,SAAgB2B,GACtB,IAAIkpG,EAASlpG,EAAE,MAAO,CACpBykG,YAAa,GAAGtkG,OAAOuoG,GAAY,sBACnC1hG,MAAO,CACLmiG,cAAejqG,KAAK4pG,QACpB1L,OAAQ,KAGRgM,EAAWppG,EAAE,MAAO,CACtBykG,YAAa,GAAGtkG,OAAOuoG,GAAY,qCACnC1hG,MAAO,CACLu5F,WAAY,UAEbrhG,KAAKs6F,iBACR,OAAOx5F,EAAEd,KAAK+J,IAAK,CACjBw7F,YAAa,GAAGtkG,OAAOuoG,GAAY,YAClC,CAACQ,EAAQE,GACd,ICzEEC,GAA4B7kB,GAAc,CAC5CP,WAAY,CACV2kB,QAASA,MCHN,SAASU,GAAgBnoG,GAC9B,OAAKosF,GAIE,IAAItN,MAAM9+E,EAAQ,CACvB+P,IAAK,SAAa/P,EAAQoG,GACxB,OAAOA,KAAQpG,EAASA,EAAOoG,QAAQU,CACzC,IANO9G,CAQX,CCLA,IAAIooG,GAAa,IAEbC,GAAwB,SAA+B9hG,GACzD,MAAO,IAAMA,EAAEk3D,WAAW,GAAGh7D,SAAS,GACxC,EAKI6lG,GAAS,SAAgBjP,GAC3B,OAAOkP,mBAAmB9lG,GAAS42F,IAAM50F,QAAQi4E,EAAmB2rB,IAAuB5jG,QAAQg4E,EAAkB,IACvH,EAEI+rB,GAASC,mBAGFC,GAAoB,SAA2B9nG,GACxD,IAAK0a,GAAc1a,GACjB,MAAO,GAGT,IAAI+nG,EAAQtpG,GAAKuB,GAAKkF,KAAI,SAAUxF,GAClC,IAAIW,EAAQL,EAAIN,GAEhB,OAAI4N,GAAYjN,GACP,GACE8+E,GAAO9+E,GACTqnG,GAAOhoG,GACL4B,GAAQjB,GACVA,EAAMgF,QAAO,SAAUgjC,EAAS2/D,GAQrC,OAPI7oB,GAAO6oB,GACT3/D,EAAQppC,KAAKyoG,GAAOhoG,IACV4N,GAAY06F,IAEtB3/D,EAAQppC,KAAKyoG,GAAOhoG,GAAO,IAAMgoG,GAAOM,IAGnC3/D,CACT,GAAG,IAAI3kC,KAAK,KAIPgkG,GAAOhoG,GAAO,IAAMgoG,GAAOrnG,EACpC,IAECxB,QAAO,SAAU0hF,GAChB,OAAOA,EAAEhhF,OAAS,CACpB,IAAGmE,KAAK,KACR,OAAOqkG,EAAQ,IAAI3pG,OAAO2pG,GAAS,EACrC,EACWE,GAAa,SAAoBF,GAC1C,IAAIG,EAAS,CAAC,EAGd,OAFAH,EAAQlmG,GAASkmG,GAAO3iG,OAAOvB,QAAQk4E,EAAgB,IAElDgsB,GAILA,EAAMtkG,MAAM,KAAKhE,SAAQ,SAAU0oG,GACjC,IAAIn8B,EAAQm8B,EAAMtkG,QAAQm3E,EAAS,KAAKv3E,MAAM,KAC1C/D,EAAMkoG,GAAO57B,EAAMo8B,SACnB/nG,EAAQ2rE,EAAMzsE,OAAS,EAAIqoG,GAAO57B,EAAMtoE,KAAK,MAAQ,KAErD4J,GAAY46F,EAAOxoG,IACrBwoG,EAAOxoG,GAAOW,EACLiB,GAAQ4mG,EAAOxoG,IACxBwoG,EAAOxoG,GAAKT,KAAKoB,GAEjB6nG,EAAOxoG,GAAO,CAACwoG,EAAOxoG,GAAMW,EAEhC,IACO6nG,GAhBEA,CAiBX,EACWG,GAAS,SAAgBpiG,GAClC,SAAUA,EAAMmlC,OAAQnlC,EAAMgD,GAChC,EACWq/F,GAAe,SAAsBphG,GAC9C,SAAUA,GAAQ2lF,GAAM3lF,EAAK,KAC/B,EACWqhG,GAAa,SAAoBjrE,EAAMkrE,GAChD,IAAIv/F,EAAKq0B,EAAKr0B,GACV+mB,EAAWsN,EAAKtN,SAChBy4E,EAAsBnrE,EAAKmrE,oBAC3BC,IAAcnB,GAAgBiB,GAAcG,QAC5CC,IAAYrB,GAAgBiB,GAAcK,MAE9C,OAAKH,GAAaA,IAAc14E,IAAa/mB,GACpCu+F,GAWFiB,IAAwBG,EAAU,YAAc,cACzD,EACWE,GAAa,WACtB,IAAIC,EAAQzpG,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC7EF,EAAS2pG,EAAM3pG,OACf4pG,EAAMD,EAAMC,IAEhB,MAAkB,WAAX5pG,GAAuB+/E,GAAO6pB,GAAO,WAAaA,GAAO,IAClE,EACWC,GAAc,WACvB,IAAIC,EAAQ5pG,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC7E8rC,EAAO89D,EAAM99D,KACbniC,EAAKigG,EAAMjgG,GAEX/B,EAAM5H,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAKkoG,GAC1ExwE,EAAW13B,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,IAC/E6pG,EAAa7pG,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,IAGrF,GAAI8rC,EACF,OAAOA,EAMT,GAAIk9D,GAAaphG,GACf,OAAO,KAIT,GAAI2G,GAAS5E,GACX,OAAOA,GAAMkgG,EAIf,GAAIzuF,GAAczR,KAAQA,EAAG4S,MAAQ5S,EAAG8+F,OAAS9+F,EAAG2zD,MAAO,CACzD,IAAI/gD,EAAOha,GAASoH,EAAG4S,MACnBksF,EAAQD,GAAkB7+F,EAAG8+F,OAC7BnrC,EAAO/6D,GAASoH,EAAG2zD,MAEvB,OADAA,EAAQA,GAA2B,MAAnBA,EAAKpnC,OAAO,GAAoB,IAAIp3B,OAAOw+D,GAAlBA,EAClC,GAAGx+D,OAAOyd,GAAMzd,OAAO2pG,GAAO3pG,OAAOw+D,IAASusC,CACvD,CAGA,OAAOnyE,CACT,ECtJA,SAASr3B,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAYhN,IAAIopG,GAAa,CACfC,QAAS,YACT/N,MAAO,MACPD,OAAQ,MACRiO,UAAW,QACX7D,KAAM,MACN,aAAc,QAGZ8D,GAAgB,CAClBjO,MAAO,KACPD,OAAQ,KACRiO,UAAW,KACX7D,KAAM,KACN,aAAc,MAGLx/F,GAAQ,CACjBujG,UAAWtJ,GAASlO,IACpBsQ,QAASpC,GAASlO,IAClByX,MAAOvJ,GAASxO,IAAmB,GACnCgY,MAAOxJ,GAASxO,IAAmB,GACnCiY,UAAWzJ,GAASxN,GAAyB,GAC7CkX,OAAQ1J,GAASxN,GAAyB,GAC1CmX,MAAO3J,GAASxN,GAAyB,GACzCoX,OAAQ5J,GAASxN,GAAyB,GAC1CqX,OAAQ7J,GAASxN,GAAyB,GAC1CsX,QAAS9J,GAASxO,IAAmB,GACrCtnF,MAAO81F,GAASlO,IAChB2S,QAASzE,GAASlO,KAKTiY,GAA0BvnB,GAAO,CAC1C3gF,KAAM8kF,GACN7pF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAI4sE,EAEA/jG,EAAOm3B,EAAKn3B,KACZF,EAAQq3B,EAAKr3B,MACbG,EAAWk3B,EAAKl3B,SAChBojG,EAAYvjG,EAAMujG,UAClBlH,EAAUr8F,EAAMq8F,QAChBmH,EAAQxjG,EAAMwjG,MACdC,EAAQzjG,EAAMyjG,MACdM,EAAU/jG,EAAM+jG,QAChB5/F,EAAQnE,EAAMmE,MACdu6F,EAAU1+F,EAAM0+F,QAChBgF,EAAYt2F,GAAQ+kF,GAAQnyF,EAAM0jG,UAAW,GAAI,IAAM,EACvDE,EAAQx2F,GAAQ+kF,GAAQnyF,EAAM4jG,MAAO,GAAI,IAAM,EAC/CD,EAASxR,GAAQnyF,EAAM2jG,OAAQ,GAC/BE,EAAS1R,GAAQnyF,EAAM6jG,OAAQ,GAC/BC,EAAS3R,GAAQnyF,EAAM8jG,OAAQ,GAM/BI,EAAWV,GAASC,GAAmB,IAAVG,EAC7BO,EAAgBD,GAAYP,EAC5BS,EAAWP,GAAUC,EACrBO,GAAclrB,GAAkBkjB,GAChCiI,EAAa,CAACH,EAAgB,iBAAmB,KAAMD,EAAW,SAAS/rG,QAAQqrG,GAAS,EAAI,GAAKI,EAAO,KAAKzrG,QAAQsrG,GAAS,EAAI,GAAKG,EAAO,KAAO,KAAMD,EAAS,UAAUxrG,OAAOwrG,EAAQ,KAAO,KAAMQ,EAAgB,mBAAqB,MAAMvrG,OAAOyhF,IAEhQkqB,EAASvsG,EAAE,IAAK,CAClBwI,MAAO,CACLyD,UAAWqgG,EAAW7mG,KAAK,MAAQ,MAErCk/F,SAAU0H,EAAa,CACrBzH,UAAWP,GAAW,IACpB,CAAC,GACJl8F,GAECikG,IACFG,EAASvsG,EAAE,IAAK,CACdwI,MAAO,CACLyD,UAAW,aAAa9L,OAAO,GAAK0rG,EAAS,GAAI,KAAK1rG,QAAQ,GAAK2rG,EAAS,GAAI,OAEjF,CAACS,KAIFR,IACFQ,EAASvsG,EAAE,IAAK,CAACusG,KAGnB,IAAIC,EAASrgG,EAAQnM,EAAE,QAASmM,GAAS,KACrCi9F,EAAW,CAACoD,EAAQD,GAAQ3rG,OAAOyhF,IACvC,OAAOriF,EAAE,MAAO6kG,GAAU,CACxBJ,YAAa,YACb/7F,OAAQujG,EAAS,CAAC,EAAGvqG,GAAgBuqG,EAAQ,QAAQ9rG,OAAOumG,GAAUA,GAAUhlG,GAAgBuqG,EAAQ,oBAAoB9rG,OAAOorG,GAAYA,GAAYU,GAC3JzjG,MAAO2iG,GACPnkG,MAAO+kG,EAAU,CAAC,EAAI,CACpBU,SAAwB,IAAdf,EAAkB,KAAO,GAAGvrG,OAAmB,IAAZurG,EAAiB,OAGlExjG,EACA6jG,EAAU,CACRvjG,MAAO8iG,IACL,CAAC,EACL,CACE9iG,MAAO,CACLkkG,MAAOX,EAAU,KAAO,6BACxBY,KAAM,kBAENvD,EACN,ICzHF,SAAS/oG,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAMhN,IAAI6qG,GAAY5qB,GAAK6qB,GAAiB,CAAC,YAS5BC,GAAW,SAAkBhpG,EAAMugG,GAG5C,IAAI0I,EAAYxS,GAAUz2F,GACtBuH,EAAW,QAAQlL,OAAOs6F,GAAW32F,IACrCkpG,EAAgB,MAAM7sG,OAAO4sG,GAC7BE,EAAYF,EAAUnnG,QAAQ,KAAM,KACpCsnG,EAAa/lG,GAAKk9F,GAAW,IACjC,OAAoB5f,GAAO,CACzB3gF,KAAMuH,EACNtM,YAAY,EACZiJ,MAAO4kG,GACPvuG,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIn3B,EAAOm3B,EAAKn3B,KACZF,EAAQq3B,EAAKr3B,MACjB,OAAOhI,EAAEgsG,GAAYnH,GACrB,CACE78F,MAAO,CACLmE,MAAO8gG,GAETzkG,MAAO,CACL,aAAcykG,IAGlB/kG,EACA,CACEu8F,YAAauI,EACbhlG,MAAO05E,GAAcA,GAAc,CAAC,EAAG15E,GAAQ,CAAC,EAAG,CACjDq8F,QAAS6I,MAGf,GAEJ,ECvCWC,GAAwBL,GAAS,QAAQ,IAsOzCM,GAA2BN,GAAS,WAAW,iMA2C/CO,GAA+BP,GAAS,eAAe,+JA4GvDQ,GAAiCR,GAAS,iBAAiB,uNAS3DS,GAAoCT,GAAS,oBAAoB,6SAGjEU,GAA8BV,GAAS,cAAc,0JAErDW,GAA8BX,GAAS,cAAc,yJAErDY,GAA4BZ,GAAS,YAAY,yIAEjDa,GAA6Bb,GAAS,aAAa,iCASnDc,GAAwBd,GAAS,QAAQ,mLACzCe,GAA4Bf,GAAS,YAAY,qIAyFjDgB,GAAuBhB,GAAS,OAAO,yEAqgBvCiB,GAA6BjB,GAAS,aAAa,0FAiCnDkB,GAAuBlB,GAAS,OAAO,qHA0JvCmB,GAAuBnB,GAAS,OAAO,2fACvCoB,GAA2BpB,GAAS,WAAW,0QAC/CqB,GAA2BrB,GAAS,WAAW,mgBA2J/CsB,GAAoBtB,GAAS,IAAI,+MC51C5C,SAASzsG,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAYhN,IAAIssG,GAAoB,SAASA,EAAkB5wF,EAAKpS,GACtD,IAAKoS,EACH,OAAOkmE,EAAAA,WAAIiB,UAAUv5E,GAGvB,IAAI44E,GAAcxmE,EAAI7d,UAAY,CAAC,GAAGqkF,WAClCqqB,EAAgBrqB,GAAcA,EAAW54E,GAC7C,OAAOijG,GAAiBD,EAAkB5wF,EAAI8wF,QAASljG,EACzD,EAGIuhG,GAAY5qB,GAAK6qB,GAAiB,CAAC,YAC5B7kG,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAc,CAAC,EAAGkrB,IAAY,CAAC,EAAG,CAChGzhG,KAAM82F,GAASlO,OACZpL,IAKM6lB,GAAqB/pB,GAAO,CACrC3gF,KAAM6kF,GACN5pF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIn3B,EAAOm3B,EAAKn3B,KACZF,EAAQq3B,EAAKr3B,MACb3I,EAASggC,EAAKhgC,OACd8L,EAAOsvF,GAAWtzF,GAAKa,EAAMmD,MAAQ,KAAKvF,QAAQs4E,EAAgB,IAItE,OAAOl+E,EAAEmL,GAAOkjG,GAAkBhvG,EAAQ,QAAQc,OAAOgL,KAAuBgiG,GAAYtI,GAAU38F,EAAM,CAC1GF,MAAOs6F,GAAWsK,GAAW5kG,KAEjC,IClDSymG,GAAiB,EAEjBC,GAAc,GACdC,GAAY,GACZC,GAAW,GACXC,GAAa,GACbC,GAAW,GACXC,GAAY,GACZC,GAAY,GACZC,GAAgB,GAChBC,GAAc,GACdC,GAAa,GACbC,GAAa,GACbC,GAAU,GCTjBC,GAAgB,SAAuBvvB,EAAG/oE,GAC5C,GAAI+oE,EAAEz+E,SAAW0V,EAAE1V,OACjB,OAAO,EAKT,IAFA,IAAIiuG,GAAQ,EAEHnuG,EAAI,EAAGmuG,GAASnuG,EAAI2+E,EAAEz+E,OAAQF,IACrCmuG,EAAQC,GAAWzvB,EAAE3+E,GAAI4V,EAAE5V,IAG7B,OAAOmuG,CACT,EAQWC,GAAa,SAASA,EAAWzvB,EAAG/oE,GAC7C,GAAI+oE,IAAM/oE,EACR,OAAO,EAGT,IAAIy4F,EAAa1/F,GAAOgwE,GACpB2vB,EAAa3/F,GAAOiH,GAExB,GAAIy4F,GAAcC,EAChB,SAAOD,IAAcC,IAAa3vB,EAAE9jE,YAAcjF,EAAEiF,UAMtD,GAHAwzF,EAAapsG,GAAQ08E,GACrB2vB,EAAarsG,GAAQ2T,GAEjBy4F,GAAcC,EAChB,SAAOD,IAAcC,IAAaJ,GAAcvvB,EAAG/oE,GAMrD,GAHAy4F,EAAa3/F,GAASiwE,GACtB2vB,EAAa5/F,GAASkH,GAElBy4F,GAAcC,EAAY,CAE5B,IAAKD,IAAeC,EAClB,OAAO,EAGT,IAAIC,EAAanvG,GAAKu/E,GAAGz+E,OACrBsuG,EAAapvG,GAAKwW,GAAG1V,OAEzB,GAAIquG,IAAeC,EACjB,OAAO,EAGT,IAAK,IAAInuG,KAAOs+E,EAAG,CACjB,IAAI8vB,EAAUzqG,GAAe26E,EAAGt+E,GAC5BquG,EAAU1qG,GAAe4R,EAAGvV,GAEhC,GAAIouG,IAAYC,IAAYD,GAAWC,IAAYN,EAAWzvB,EAAEt+E,GAAMuV,EAAEvV,IACtE,OAAO,CAEX,CACF,CAEA,OAAOkK,OAAOo0E,KAAOp0E,OAAOqL,EAC9B,ECtEA,SAAStV,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAOhN,IAAIguG,GAAU,SAAiB3tG,GAC7B,OAAQA,GAAgC,IAAvB5B,GAAK4B,GAAOd,MAC/B,EAEW0uG,GAAkB,SAAyB76F,GACpD,MAAO,CACLwI,QAAS,SAAiBtM,EAAU4+F,GAClC,IAAIT,GAAWn+F,EAAU4+F,GAIzB,GAAIF,GAAQ1+F,IAAa0+F,GAAQE,GAC/B/wG,KAAKiW,GAAYitE,GAAU/wE,OAD7B,CAKA,IAAK,IAAI5P,KAAOwuG,EACT7qG,GAAeiM,EAAU5P,IAC5BvC,KAAKgxG,QAAQhxG,KAAKixG,MAAMh7F,GAAW1T,GAIvC,IAAK,IAAIqG,KAAQuJ,EACfnS,KAAKkxG,KAAKlxG,KAAKixG,MAAMh7F,GAAWrN,EAAMuJ,EAASvJ,GATjD,CAWF,EAEJ,EACWuoG,GAAqB,SAA4Bl7F,EAAUm7F,GACpE,OAAO7rB,GAAO,CACZv8E,KAAM,WACJ,OAAOxG,GAAgB,CAAC,EAAG4uG,EAAeluB,GAAUljF,KAAKiW,IAC3D,EACA2xF,MAAOplG,GAAgB,CAAC,EAAGyT,EAAU66F,GAAgBM,KAEzD,EC1CA,SAASjwG,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAIhN,IAAIwuG,GAAiBF,GAAmB,SAAU,WAC9CG,GAAiB/rB,GAAO,CAC1BokB,SAAU,CACR4H,QAAS,WACP,IAAIA,EAAU/uB,GAAc,CAAC,EAAGxiF,KAAKwxG,QAOrC,OALAjwG,OAAOD,KAAKiwG,GAASjvG,SAAQ,SAAUC,QAChBwG,IAAjBwoG,EAAQhvG,WACHgvG,EAAQhvG,EAEnB,IACOgvG,CACT,KAGOE,GAAapjB,GAASijB,GAAiBD,GCvBvCK,GAAe,SAAsBC,GAC9C,OAAOA,EAAGlxG,MAAMC,SAASkxG,aAAeD,EAAGlxG,KAC7C,ECGIoxG,GAAO,kBAGAC,GAAoBvsB,GAAO,CACpCokB,SAAU,CACRiI,YAAa,WACX,OAAOF,GAAa1xG,KACtB,GAEF6uF,QAAS,WAIP7uF,KAAK6xG,IAAQ,CAAC,CAChB,EACA3J,cAAe,WACb,IAAI1rF,EAAQxc,KAGZsB,GAAKtB,KAAK6xG,KAAS,CAAC,GAAGvvG,SAAQ,SAAUonD,GACvCltC,EAAMq1F,IAAMnoD,GAAOpnD,SAAQ,SAAU8E,GACnCoV,EAAMu1F,cAAcroD,EAAOtiD,EAC7B,GACF,IACApH,KAAK6xG,IAAQ,IACf,EACAnX,QAAS,CACPsX,qBAAsB,SAA8BtoD,EAAOtiD,GACrDpH,KAAK6xG,MACP7xG,KAAK6xG,IAAMnoD,GAAS1pD,KAAK6xG,IAAMnoD,IAAU,GAEpCiwC,GAAc35F,KAAK6xG,IAAMnoD,GAAQtiD,IACpCpH,KAAK6xG,IAAMnoD,GAAO5nD,KAAKsF,GAG7B,EACA6qG,uBAAwB,SAAgCvoD,EAAOtiD,GACzDpH,KAAK6xG,KAAS7xG,KAAK6xG,IAAMnoD,KAC3B1pD,KAAK6xG,IAAMnoD,GAAS1pD,KAAK6xG,IAAMnoD,GAAOhoD,QAAO,SAAUiO,GACrD,OAAOA,IAAOvI,CAChB,IAEJ,EAeA8qG,aAAc,SAAsBxoD,EAAOtiD,GACrCpH,KAAK4xG,cACP5xG,KAAK4xG,YAAYO,IAAIzoD,EAAOtiD,GAC5BpH,KAAKgyG,qBAAqBtoD,EAAOtiD,GAErC,EAeAgrG,iBAAkB,SAA0B1oD,EAAOtiD,GACjD,IAAIirG,EAASryG,KAEb,GAAIA,KAAK4xG,YAAa,CACpB,IAAIU,EAAY,SAASA,IACvBD,EAAOJ,uBAAuBK,GAG9BlrG,EAASrF,WAAM,EAAQI,UACzB,EAEAnC,KAAK4xG,YAAYW,MAAM7oD,EAAO4oD,GAC9BtyG,KAAKgyG,qBAAqBtoD,EAAO4oD,EACnC,CACF,EAQAP,cAAe,SAAuBroD,EAAOtiD,GAC3CpH,KAAKiyG,uBAAuBvoD,EAAOtiD,GAE/BpH,KAAK4xG,aACP5xG,KAAK4xG,YAAYY,KAAK9oD,EAAOtiD,EAEjC,EAQAqrG,WAAY,SAAoB/oD,GAC9B,GAAI1pD,KAAK4xG,YAAa,CAGpB,IAFA,IAAIc,EAEKhqG,EAAOvG,UAAUC,OAAQ45B,EAAO,IAAI93B,MAAMwE,EAAO,EAAIA,EAAO,EAAI,GAAIE,EAAO,EAAGA,EAAOF,EAAME,IAClGozB,EAAKpzB,EAAO,GAAKzG,UAAUyG,IAG5B8pG,EAAoB1yG,KAAK4xG,aAAa9J,MAAM/lG,MAAM2wG,EAAmB,CAAChpD,GAAOzoD,OAAO+6B,GACvF,CACF,KChIJ,SAAS76B,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAIhN,IAAI8vG,GAAqBxB,GAAmB,aAAc,eACtDyB,GAAqBrtB,GAAO,CAC9Bv8E,KAAM,WACJ,MAAO,CACL6pG,YAAa,CAAC,EAElB,EACAhkB,QAAS,WACP7uF,KAAK6yG,YAAcrwB,GAAc,CAAC,EAAGxiF,KAAK8yG,WAC5C,EACA/jB,aAAc,WACZ/uF,KAAK6yG,YAAcrwB,GAAc,CAAC,EAAGxiF,KAAK8yG,WAC5C,IAESC,GAAiB1kB,GAASukB,GAAqBD,GCtB1D,SAAS/uG,GAAmBC,GAAO,OAAOC,GAAmBD,IAAQE,GAAiBF,IAAQG,GAA4BH,IAAQI,IAAsB,CAExJ,SAASA,KAAuB,MAAM,IAAIe,UAAU,uIAAyI,CAE7L,SAAShB,GAA4BO,EAAGC,GAAU,GAAKD,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOH,GAAkBG,EAAGC,GAAS,IAAIC,EAAIlD,OAAO0B,UAAUyB,SAASrE,KAAKkE,GAAGI,MAAM,GAAI,GAAiE,MAAnD,WAANF,GAAkBF,EAAEvB,cAAayB,EAAIF,EAAEvB,YAAY4B,MAAgB,QAANH,GAAqB,QAANA,EAAoBP,MAAMI,KAAKC,GAAc,cAANE,GAAqB,2CAA2CI,KAAKJ,GAAWL,GAAkBG,EAAGC,QAAzG,CAA7O,CAA+V,CAE/Z,SAAST,GAAiBM,GAAQ,GAAsB,qBAAXvB,QAAmD,MAAzBuB,EAAKvB,OAAOC,WAA2C,MAAtBsB,EAAK,cAAuB,OAAOH,MAAMI,KAAKD,EAAO,CAE7J,SAASP,GAAmBD,GAAO,GAAIK,MAAMC,QAAQN,GAAM,OAAOO,GAAkBP,EAAM,CAE1F,SAASO,GAAkBP,EAAKiB,IAAkB,MAAPA,GAAeA,EAAMjB,EAAIzB,UAAQ0C,EAAMjB,EAAIzB,QAAQ,IAAK,IAAIF,EAAI,EAAG6C,EAAO,IAAIb,MAAMY,GAAM5C,EAAI4C,EAAK5C,IAAO6C,EAAK7C,GAAK2B,EAAI3B,GAAM,OAAO6C,CAAM,CAEtL,SAAS5D,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAkBhN,IAAImwG,GAA0BjO,GAAiB5a,GAAW,WAG/C8oB,GAAkB,CAC3BC,YAAanQ,GAASlO,IACtBzqC,OAAQ24C,GAASxO,IAAmB,GACpC7qC,MAAOq5C,GAAS9N,IAChBke,MAAOpQ,GAASxO,IAAmB,GACnC6e,iBAAkBrQ,GAASlO,IAC3Bwe,UAAWtQ,GAASxO,IAAmB,GACvC+e,qBAAsBvQ,GAASlO,IAC/BnuF,QAASq8F,GAASxO,IAAmB,GACrCgf,UAAWxQ,GAASlO,IACpB/oF,GAAIi3F,GAASrN,KAGJ8d,GAAgB,CACzBC,WAAY1Q,GAASxO,IAAmB,GAOxCmf,SAAU3Q,GAASxO,GAAmB,OAG7BzrF,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAcA,GAAc,CAAC,EAAGgxB,IAAgBP,IAAkB,CAAC,EAAG,CACpIU,OAAQ5Q,GAASxO,IAAmB,GACpC1hE,SAAUkwE,GAASxO,IAAmB,GACtCtmD,KAAM80D,GAASlO,IAEfgX,IAAK9I,GAASlO,GAAkB,MAKhCyW,oBAAqBvI,GAASlO,IAC9B5yF,OAAQ8gG,GAASlO,GAAkB,YAChC1K,IAGMypB,GAAqBruB,GAAO,CACrC3gF,KAAMulF,GAENhhF,OAAQ,CAACsoG,GAAYsB,GAAgBjB,GAAmBrX,IACxDoZ,cAAc,EACd/qG,MAAOA,GACP6gG,SAAU,CACRmK,YAAa,WAEX,IAAIhoG,EAAK9L,KAAK8L,GACV+mB,EAAW7yB,KAAK6yB,SAChBy4E,EAAsBtrG,KAAKsrG,oBAC/B,OAAOF,GAAW,CAChBt/F,GAAIA,EACJ+mB,SAAUA,EACVy4E,oBAAqBA,GACpBtrG,KACL,EACAmrG,aAAc,WACZ,OAAO4I,GAAc/zG,KAAK8zG,YAC5B,EACAE,YAAa,WAEX,IAAI/xG,EAASjC,KAAKiC,OACd4pG,EAAM7rG,KAAK6rG,IACf,OAAOF,GAAW,CAChB1pG,OAAQA,EACR4pG,IAAKA,GAET,EACAoI,aAAc,WAEZ,IAAInoG,EAAK9L,KAAK8L,GACVmiC,EAAOjuC,KAAKiuC,KAChB,OAAO69D,GAAY,CACjBhgG,GAAIA,EACJmiC,KAAMA,GACLjuC,KAAK8zG,YACV,EACAI,cAAe,WACb,IAAIxqD,EAAQ1pD,KAAK0pD,MACbgqD,EAAW1zG,KAAK0zG,SAChBH,EAAYvzG,KAAKuzG,UACrB,OAAOvzG,KAAKmrG,aAAe3oB,GAAcA,GAAcA,GAAcA,GAAc,CAAC,EAAG4gB,GAAWtgB,GAAKN,GAAcA,GAAc,CAAC,EAAGywB,IAAuC,cAArBjzG,KAAK8zG,YAA8BN,GAAgB,CAAC,GAAI,CAAC,QAAS,WAAY,cAAexzG,OAAQ0pD,EAAQ,CACpQA,MAAOA,GACL,CAAC,GAAI34C,GAAU2iG,GAAY,CAC7BA,SAAUA,GACR,CAAC,GAAIH,EAAY,CACnBxpG,IAAKwpG,GACH,CAAC,GAAK,CAAC,CACb,EACAY,cAAe,WACb,IAAI5C,EAAUvxG,KAAKuxG,QACftjE,EAAOjuC,KAAKi0G,aACZpI,EAAM7rG,KAAKg0G,YACXnhF,EAAW7yB,KAAK6yB,SAChB5wB,EAASjC,KAAKiC,OACdsxG,EAAYvzG,KAAKuzG,UACjBpI,EAAenrG,KAAKmrG,aACxB,OAAO3oB,GAAcA,GAAcA,GAAcA,GAAc,CAAC,EAAG+uB,GAAUtjE,EAAO,CAClFA,KAAMA,GACJ,CAAC,GAAIk9D,GAAgBoI,IAAc7jB,GAAM6jB,EAAW,KAAO,CAAC,EAAI,CAClE1H,IAAKA,EACL5pG,OAAQA,IACN,CAAC,EAAG,CACNmyG,SAAUvhF,EAAW,KAAO1iB,GAAYohG,EAAQ6C,UAAY,KAAO7C,EAAQ6C,SAC3E,gBAAiBvhF,EAAW,OAAS,MAEzC,EACAwhF,kBAAmB,WACjB,OAAO7xB,GAAcA,GAAc,CAAC,EAAGxiF,KAAK6yG,aAAc,CAAC,EAAG,CAG5DrN,MAAOxlG,KAAKs0G,SAEhB,GAEF5Z,QAAS,CACP4Z,QAAS,SAAiB5qD,GACxB,IAAI6qD,EAAapyG,UACbqyG,EAAeryB,GAAQz4B,GACvByhD,EAAenrG,KAAKmrG,aACpBsJ,EAAkBz0G,KAAK6yG,YAAYrN,MAEvC,GAAIgP,GAAgBx0G,KAAK6yB,SAIvBwxE,GAAU36C,EAAO,CACfi7C,sBAAsB,QAEnB,CAQH,IAAI+P,EADN,GAAIvJ,EAGwD,QAAzDuJ,EAAwBhrD,EAAMirD,cAAcC,eAA+C,IAA1BF,GAA4CA,EAAsB5M,MAAMlX,GAAkBlnC,GAI9JzoD,GAAOwzG,GAAiB/yG,QAAO,SAAUZ,GACvC,OAAO6P,GAAW7P,EACpB,IAAGwB,SAAQ,SAAUmc,GACnBA,EAAQ1c,WAAM,EAAQ6B,GAAmB2wG,GAC3C,IAEAv0G,KAAKyyG,WAAWO,GAAyBtpD,GAEzC1pD,KAAKyyG,WAAW,gBAAiB/oD,EACnC,CAII8qD,IAAiBrJ,GAAsC,MAAtBnrG,KAAKi0G,cACxC5P,GAAU36C,EAAO,CACf+6C,aAAa,GAGnB,EACA/C,MAAO,WACLD,GAAazhG,KAAK60G,IACpB,EACAjT,KAAM,WACJD,GAAY3hG,KAAK60G,IACnB,GAEF11G,OAAQ,SAAgB2B,GACtB,IAAI6yG,EAAS3zG,KAAK2zG,OACd9gF,EAAW7yB,KAAK6yB,SACpB,OAAO/xB,EAAEd,KAAK8zG,YAAatxG,GAAgB,CACzCgH,MAAO,CACLmqG,OAAQA,EACR9gF,SAAUA,GAEZvpB,MAAOtJ,KAAKm0G,cACZrrG,MAAO9I,KAAKk0G,eACXl0G,KAAKmrG,aAAe,WAAa,KAAMnrG,KAAKq0G,mBAAoBr0G,KAAKs6F,gBAC1E,IC1NF,SAASn5F,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAehN,IAAIiyG,GAAYhyB,GAAKiyB,GAAY,CAAC,QAAS,qBACpCD,GAAU7mE,KAAKzhC,eACfsoG,GAAUhpG,GAAGU,QACb,IAAI1D,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAc,CAAC,EAAGsyB,IAAY,CAAC,EAAG,CAChGE,MAAOjS,GAASxO,IAAmB,GACnC1hE,SAAUkwE,GAASxO,IAAmB,GACtC0gB,KAAMlS,GAASxO,IAAmB,GAGlC2gB,QAASnS,GAASxO,GAAmB,MACrCjpF,KAAMy3F,GAASlO,IACfsgB,QAASpS,GAASxO,IAAmB,GACrCxqF,IAAKg5F,GAASlO,GAAkB,UAChCvoF,KAAMy2F,GAASlO,GAAkB,UACjC2S,QAASzE,GAASlO,GAAkB,gBACjCxO,IAID+uB,GAAc,SAAqB1rD,GAClB,YAAfA,EAAMp9C,KACR8yF,GAAS11C,EAAMznD,OAAQ,SACC,aAAfynD,EAAMp9C,MACf+yF,GAAY31C,EAAMznD,OAAQ,QAE9B,EAIIipG,GAAS,SAAgBpiG,GAC3B,OAAOusG,GAAavsG,IAAU4mF,GAAM5mF,EAAMiB,IAAK,IACjD,EAGIurG,GAAW,SAAkBxsG,GAC/B,OAAOiI,GAAUjI,EAAMosG,QACzB,EAGIK,GAAW,SAAkBzsG,GAC/B,QAASoiG,GAAOpiG,IAAUA,EAAMiB,MAAQ2lF,GAAM5mF,EAAMiB,IAAK,UAC3D,EAGIyrG,GAAmB,SAA0B1sG,GAC/C,OAAQoiG,GAAOpiG,KAAWysG,GAASzsG,EACrC,EAGI2sG,GAAe,SAAsB3sG,GACvC,IAAIq3B,EAEJ,MAAO,CAAC,OAAOl/B,OAAO6H,EAAM0+F,SAAW,cAAernE,EAAO,CAAC,EAAG39B,GAAgB29B,EAAM,OAAOl/B,OAAO6H,EAAMwC,MAAOxC,EAAMwC,MAAO9I,GAAgB29B,EAAM,YAAar3B,EAAMksG,OAAQxyG,GAAgB29B,EAAM,eAAgBr3B,EAAMmsG,MAAOzyG,GAAgB29B,EAAM,YAAar3B,EAAMqsG,UAAYrsG,EAAMmsG,MAAOzyG,GAAgB29B,EAAM,WAAYr3B,EAAM+pB,UAAWrwB,GAAgB29B,EAAM,SAAUr3B,EAAMosG,SAAU/0E,GAC1Y,EAGIu1E,GAAmB,SAA0B5sG,GAC/C,OAAOoiG,GAAOpiG,GAASs6F,GAAW0R,GAAWhsG,GAAS,CAAC,CACzD,EAGI6sG,GAAe,SAAsB7sG,EAAOE,GAC9C,IAAI4sG,EAASL,GAASzsG,GAClB+sG,EAAO3K,GAAOpiG,GACdgtG,EAASR,GAASxsG,GAClBitG,EAAiBP,GAAiB1sG,GAClCktG,EAAWH,GAAuB,MAAf/sG,EAAMmlC,KACzBq6D,EAAOt/F,EAAKM,OAASN,EAAKM,MAAMg/F,KAAOt/F,EAAKM,MAAMg/F,KAAO,KACzD8L,EAAWprG,EAAKM,MAAQN,EAAKM,MAAM8qG,SAAW,KAMlD,OAJI2B,GAAkBC,KACpB5B,EAAW,KAGN,CAEL9nG,KAAMspG,IAAWC,EAAO/sG,EAAMwD,KAAO,KAErCumB,SAAU+iF,EAAS9sG,EAAM+pB,SAAW,KAIpCy1E,KAAMyN,GAAkBC,EAAW,SAAW1N,EAE9C,gBAAiByN,EAAiBtpG,OAAO3D,EAAM+pB,UAAY,KAE3D,eAAgBijF,EAASrpG,OAAO3D,EAAMosG,SAAW,KAGjDe,aAAcH,EAAS,MAAQ,KAK/B1B,SAAUtrG,EAAM+pB,WAAa+iF,EAAS,KAAOxB,EAEjD,EAIW8B,GAAuB3wB,GAAO,CACvC3gF,KAAMyhF,GACNxmF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAG8qG,GACzB,IAAI9iG,EAAQ8iG,EAAM9iG,MACdE,EAAO4iG,EAAM5iG,KACbumE,EAAYq8B,EAAMr8B,UAClBtmE,EAAW2iG,EAAM3iG,SACjB6sG,EAASR,GAASxsG,GAClB+sG,EAAO3K,GAAOpiG,GACditG,EAAiBP,GAAiB1sG,GAClCktG,EAAWH,GAAuB,MAAf/sG,EAAMmlC,KACzBoiD,EAAK,CACP8lB,QAAS,SAAiBzsD,GAKxB,IAAI5gD,EAAM+pB,WAAckjF,GAAkBC,GAA1C,CAIA,IAAII,EAAU1sD,EAAM0sD,QAEpB,GAAIA,IAAYlG,IAAckG,IAAYzG,IAAcoG,EAAgB,CACtE,IAAI9zG,EAASynD,EAAMirD,eAAiBjrD,EAAMznD,OAC1CoiG,GAAU36C,EAAO,CACf+6C,aAAa,IAEfxiG,EAAOujG,OACT,CAVA,CAWF,EACAA,MAAO,SAAe97C,GAEhB5gD,EAAM+pB,UAAYsvD,GAAQz4B,GAC5B26C,GAAU36C,GACDosD,GAAUvmC,GAAaA,EAAU,mBAI1CtuE,GAAOsuE,EAAU,mBAAmBjtE,SAAQ,SAAUmY,GAChD9J,GAAW8J,IACbA,GAAI3R,EAAMosG,QAEd,GAEJ,GAGEY,IACFzlB,EAAGgmB,QAAUjB,GACb/kB,EAAGimB,SAAWlB,IAGhB,IAAI9P,EAAgB,CAClBC,YAAa,MACb/7F,MAAOisG,GAAa3sG,GACpBA,MAAO4sG,GAAiB5sG,GACxBQ,MAAOqsG,GAAa7sG,EAAOE,GAC3BqnF,GAAIA,GAEN,OAAOvvF,EAAE+0G,EAAOjC,GAAQ9qG,EAAMiB,IAAK47F,GAAUnjB,GAAcA,GAAc,CAAC,EAAGx5E,GAAO,CAAC,EAAG,CACtFF,WAAOC,IACLu8F,GAAgBr8F,EACtB,ICxLF,SAAS9H,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAkBhN,IAAI2mG,GAAa,WACb+M,GAAQ,CAAC,KAAM,KAAM,MACrBC,GAAkB,GAClBC,GAA0C,GAAlBD,GAEjBE,GAAc,SAAqBxzG,GAI5C,OAFAA,EAAQwN,GAASxN,IAAUg/E,GAAUh/E,GAAS+3F,GAAQ/3F,EAAO,GAAKA,EAE3D4N,GAAS5N,GAAS,GAAGjC,OAAOiC,EAAO,MAAQA,GAAS,IAC7D,EAEI4xG,GAAYhyB,GAAKiyB,GAAY,CAAC,SAAU,QAAS,cAC1CjsG,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAc,CAAC,EAAGsyB,IAAY,CAAC,EAAG,CAChG6B,IAAK5T,GAASlO,GAAkB,UAChCqQ,UAAWnC,GAASlO,IACpB+hB,MAAO7T,GAAS3N,IAA0B,GAC1CyhB,UAAW9T,GAASxO,IAAmB,GACvCuiB,YAAa/T,GAASlO,IACtBkiB,SAAUhU,GAASxO,IAAmB,GACtCyiB,aAAcjU,GAASlO,GAAkB,WACzC+gB,OAAQ7S,GAASxO,IAAmB,GACpC0iB,WAAYlU,GAASlO,GAAkB,UACvC5oF,KAAM82F,GAASlO,IACfqiB,QAASnU,GAAS3N,IAA0B,GAC5C9pF,KAAMy3F,GAASxN,IACf4hB,OAAQpU,GAASxO,IAAmB,GACpC31E,IAAKmkF,GAASlO,IACd3yD,KAAM6gE,GAASlO,IACf2S,QAASzE,GAASlO,GAAkB,gBACjC9O,IAGMqxB,GAAuB7xB,GAAO,CACvC3gF,KAAMmhF,GACN58E,OAAQ,CAACsxF,IACT4c,OAAQ,CACNC,iBAAkB,CAChB9qG,QAAS,WACP,OAAO,WACL,OAAO,IACT,CACF,IAGJ1D,MAAOA,GACPE,KAAM,WACJ,MAAO,CACLuuG,SAAUv3G,KAAK4e,KAAO,KAE1B,EACA+qF,SAAU,CACR6N,cAAe,WACb,OAAOx3G,KAAKs3G,kBACd,EACAG,aAAc,WAEZ,IAAID,EAAgBx3G,KAAKw3G,cACzB,OAAOd,GAAYc,EAAgBA,EAAclsG,KAAOtL,KAAKsL,KAC/D,EACAosG,gBAAiB,WACf,IAAIF,EAAgBx3G,KAAKw3G,cACzB,OAAOA,GAAiBA,EAAchQ,QAAUgQ,EAAchQ,QAAUxnG,KAAKwnG,OAC/E,EACAmQ,gBAAiB,WACf,IAAIH,EAAgBx3G,KAAKw3G,cACrBL,KAASK,IAAiBA,EAAcL,SAAgBn3G,KAAKm3G,OAC7DD,EAAUM,GAAiBA,EAAcN,QAAUM,EAAcN,QAAUl3G,KAAKk3G,QACpF,OAAOC,EAAS,IAAkB,KAAZD,IAAwBA,GAAW,SAC3D,EACAU,UAAW,WACT,IAAItsG,EAAOtL,KAAKy3G,aACZlK,GAAoC,IAAzBgJ,GAAM/yG,QAAQ8H,GAAe,QAAQrK,OAAOqK,EAAM,OAAOrK,OAAOu1G,GAAiB,KAAO,KACvG,OAAOjJ,EAAW,CAChBA,SAAUA,GACR,CAAC,CACP,EACAsK,YAAa,WACX,IAAIvsG,EAAOtL,KAAKy3G,aACZD,EAAgBx3G,KAAKw3G,cACrBM,EAAeN,EAAgBA,EAAcM,aAAe,EAC5D50G,EAAQoI,GAAQwsG,EAAe,QAAQ72G,OAAOqK,EAAM,QAAQrK,OAAO62G,EAAc,KAAO,KAC5F,OAAO50G,EAAQ,CACbm+F,WAAYn+F,EACZ60G,YAAa70G,GACX,CAAC,CACP,EACA80G,WAAY,WACV,IAAI1sG,EAAOtL,KAAKy3G,aACZV,EAAW/2G,KAAK+2G,SAChBF,EAAY72G,KAAK62G,UACjBC,EAAc92G,KAAK82G,YACnBzW,EAASyW,GAAe,MAC5B,MAAO,CACLvJ,UAAmC,IAAzBgJ,GAAM/yG,QAAQ8H,GAAe,QAAQrK,OAAOqK,EAAM,OAAOrK,OAAOw1G,GAAuB,MAAQ,KACzGlW,IAAKwW,EAAW1W,EAAS,KACzB4X,OAAQlB,EAAW,KAAO1W,EAC1B91D,KAAMssE,EAAYxW,EAAS,KAC3B71D,MAAOqsE,EAAY,KAAOxW,EAE9B,GAEFuH,MAAO,CACLhpF,IAAK,SAAazM,EAAU4+F,GACtB5+F,IAAa4+F,IACf/wG,KAAKu3G,SAAWplG,GAAY,KAEhC,GAEFuoF,QAAS,CACPwd,WAAY,SAAoBxuD,GAC9B1pD,KAAKu3G,SAAW,KAChBv3G,KAAK8nG,MAAM/V,GAAsBroC,EACnC,EACA4qD,QAAS,SAAiB5qD,GACxB1pD,KAAK8nG,MAAMlX,GAAkBlnC,EAC/B,GAEFvqD,OAAQ,SAAgB2B,GACtB,IAAIq3G,EAEA3Q,EAAUxnG,KAAK03G,gBACf7kF,EAAW7yB,KAAK6yB,SAChBqkF,EAAUl3G,KAAK23G,gBACf1rG,EAAOjM,KAAKiM,KACZ2S,EAAM5e,KAAKu3G,SACXr1E,EAAOliC,KAAKkiC,KACZ01E,EAAY53G,KAAK43G,UACjBC,EAAc73G,KAAK63G,YACnBvsG,EAAOtL,KAAKy3G,aACZ7B,EAAS51G,KAAK41G,OACdtpG,EAAOtM,KAAKi3G,WACZL,EAAQ52G,KAAK42G,MACbI,EAAeh3G,KAAKg3G,aACpBgB,EAAah4G,KAAKg4G,WAClBnC,GAAQD,GAAU1K,GAAOlrG,MACzB+J,EAAM6rG,EAASM,GAAUL,EAAOjC,GAAQ,OACxC+C,EAAM32G,KAAK22G,IACXzR,EAAYllG,KAAKklG,WAAa,KAC9BgF,EAAW,KAEXlqG,KAAKk6F,oBAEPgQ,EAAWppG,EAAE,OAAQ,CACnBykG,YAAa,mBACZ,CAACvlG,KAAKs6F,kBACA17E,GACTsrF,EAAWppG,EAAE,MAAO,CAClBgH,MAAO0/F,EAAU,CAAC,EAAI,CACpBrJ,MAAO,OACPD,OAAQ,QAEV50F,MAAO,CACLsV,IAAKA,EACL+3F,IAAKA,GAEPtmB,GAAI,CACFhmF,MAAOrK,KAAKk4G,cAGhBhO,EAAWppG,EAAE,OAAQ,CACnBykG,YAAa,gBACZ,CAAC2E,KAEJA,EADSj+F,EACEnL,EAAEwuG,GAAO,CAClBxmG,MAAO,CACLmD,KAAMA,GAER3C,MAAO,CACL,cAAe,OACfqtG,IAAKA,KAGAz0E,EACEphC,EAAE,OAAQ,CACnBykG,YAAa,gBACbz9F,MAAO8vG,GACN,CAAC92G,EAAE,OAAQohC,KAGHphC,EAAE+tG,GAAiB,CAC5BvlG,MAAO,CACL,cAAe,OACfqtG,IAAKA,KAKX,IAAIyB,EAASt3G,IACTu3G,EAAer4G,KAAKk6F,kBAAkBpE,IAE1C,GAAI8gB,GAAmB,KAAVA,GAAgByB,EAAc,CACzC,IAAIC,GAAsB,IAAV1B,EAAiB,GAAKA,EACtCwB,EAASt3G,EAAE,OAAQ,CACjBykG,YAAa,iBACb/7F,MAAOhH,GAAgB,CAAC,EAAG,SAASvB,OAAO+1G,GAAeA,GAC1DlvG,MAAOkwG,GACN,CAACK,EAAer4G,KAAKs6F,cAAcxE,IAAmBwiB,GAC3D,CAEA,IAAIhT,EAAgB,CAClBC,YAAaiE,GACbhgG,OAAQ2uG,EAAU,CAAC,EAAG31G,GAAgB21G,EAAS,GAAGl3G,OAAOuoG,GAAY,KAAKvoG,OAAOqK,GAAOA,IAAiC,IAAzBirG,GAAM/yG,QAAQ8H,IAAe9I,GAAgB21G,EAAS,SAASl3G,OAAOumG,IAAWoO,GAAUpO,GAAUhlG,GAAgB21G,EAAS,WAAuB,IAAZjB,GAAmB10G,GAAgB21G,EAAS,WAAWl3G,OAAOi2G,GAAUA,IAAuB,IAAZA,GAAmB10G,GAAgB21G,EAAS,WAAYtlF,GAAWslF,GAC/XrwG,MAAO06E,GAAcA,GAAc,CAAC,EAAGq1B,GAAc,CAAC,EAAG,CACvD1Z,MAAO7yF,EACP4yF,OAAQ5yF,IAEVhC,MAAO,CACL,aAAc47F,GAAa,MAE7Bp8F,MAAO8sG,EAAS,CACdpO,QAASA,EACT30E,SAAUA,EACVvmB,KAAMA,GACJupG,EAAOzS,GAAW0R,GAAW90G,MAAQ,CAAC,EAC1CqwF,GAAIulB,GAAUC,EAAO,CACnBrQ,MAAOxlG,KAAKs0G,SACV,CAAC,GAEP,OAAOxzG,EAAEiJ,EAAKu7F,EAAe,CAAC4E,EAAUkO,GAC1C,ICzOStvG,GAAQ46F,GAAsB,CACvC6U,QAASxV,GAASxN,GAAyB,IAE3C2hB,QAASnU,GAAS3N,IAA0B,GAE5C9pF,KAAMy3F,GAASlO,IAEfsiB,OAAQpU,GAASxO,IAAmB,GACpCxqF,IAAKg5F,GAASlO,GAAkB,OAEhC2S,QAASzE,GAASlO,KACjB7O,IAGQwyB,GAA4BjzB,GAAO,CAC5C3gF,KAAMohF,GACN78E,OAAQ,CAACsxF,IACTge,QAAS,WACP,IAAIj8F,EAAQxc,KAEZ,MAAO,CACLs3G,iBAAkB,WAChB,OAAO96F,CACT,EAEJ,EACA1T,MAAOA,GACP6gG,SAAU,CACR8N,aAAc,WACZ,OAAOf,GAAY12G,KAAKsL,KAC1B,EACAwsG,aAAc,WACZ,OAAOtP,GAAQtyF,GAAQ+kF,GAAQj7F,KAAKu4G,QAAS,GAAI,GAAI,GAAK,CAC5D,EACAG,aAAc,WACZ,IAAIx1G,EAAQlD,KAAKy3G,aAEjB,OADAv0G,EAAQA,EAAQ,QAAQjC,OAAOiC,EAAO,OAAOjC,OAAOjB,KAAK83G,aAAc,KAAO,KACvE50G,EAAQ,CACby1G,YAAaz1G,EACb01G,aAAc11G,GACZ,CAAC,CACP,GAEF/D,OAAQ,SAAgB2B,GACtB,IAAIusG,EAASvsG,EAAE,MAAO,CACpBykG,YAAa,uBACbz9F,MAAO9H,KAAK04G,cACX14G,KAAKs6F,iBACR,OAAOx5F,EAAEd,KAAK+J,IAAK,CACjBw7F,YAAa,iBACbj8F,MAAO,CACLg/F,KAAM,UAEP,CAAC+E,GACN,IC5DEwL,GAA4BvzB,GAAc,CAC5CP,WAAY,CACVqyB,QAASA,GACToB,aAAcA,MCNlB,SAASr3G,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAUhN,IAAIiyG,GAAYhyB,GAAKiyB,GAAY,CAAC,QAAS,qBACpCD,GAAU7mE,KAAKzhC,eACfsoG,GAAUhpG,GAAGU,QACb,IAAI1D,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAc,CAAC,EAAGsyB,IAAY,CAAC,EAAG,CAChGG,KAAMlS,GAASxO,IAAmB,GAClCxqF,IAAKg5F,GAASlO,GAAkB,QAChC2S,QAASzE,GAASlO,GAAkB,gBACjC5O,IAGM6yB,GAAsBvzB,GAAO,CACtC3gF,KAAMqhF,GACNpmF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIr3B,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZC,EAAWk3B,EAAKl3B,SAChB0qG,EAAS7qG,EAAM6qG,OACf9gF,EAAW/pB,EAAM+pB,SACjBgjF,EAAO3K,GAAOpiG,GACdiB,EAAM8rG,EAAOjC,GAAQ9qG,EAAMiB,IAC3By9F,EAAU1+F,EAAM0+F,SAAW,YAC/B,OAAO1mG,EAAEiJ,EAAK47F,GAAU38F,EAAM,CAC5Bu8F,YAAa,QACb/7F,MAAO,CAAC,SAASvI,OAAOumG,GAAU,CAChC,aAAc1+F,EAAMmsG,KACpBtB,OAAQA,EACR9gF,SAAUA,IAEZ/pB,MAAO+sG,EAAOzS,GAAW0R,GAAWhsG,GAAS,CAAC,IAC5CG,EACN,IC5CE8vG,GAA2BzzB,GAAc,CAC3CP,WAAY,CACV+zB,OAAQA,MCFDE,GAAY,WACrB,IAAI92E,EAAO//B,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,GAC/E,OAAOsK,OAAOy1B,GAAMx7B,QAAQ+2E,EAAc,GAC5C,EAEWw7B,GAAa,SAAoBvT,EAAWwT,GACrD,OAAOxT,EAAY,CACjBA,UAAWA,GACTwT,EAAc,CAChBA,YAAaA,GACX,CAAC,CACP,ECbA,SAAS/3G,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAUzM,IAAIiG,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAc,CAAC,EAAGM,GAAKiyB,GAAY,CAAC,QAAS,eAAgB,CAAC,EAAG,CAC/HoE,YAAapW,GAASlO,GAAkB,YACxCukB,KAAMrW,GAASlO,IACf3yD,KAAM6gE,GAASlO,OACZzO,IAGMizB,GAA+B9zB,GAAO,CAC/C3gF,KAAMwhF,GACNvmF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIm5E,EAAgBn5E,EAAKr3B,MACrBE,EAAOm3B,EAAKn3B,KACZC,EAAWk3B,EAAKl3B,SAChB0qG,EAAS2F,EAAc3F,OACvB5pG,EAAM4pG,EAAS,OAASC,GACxBtO,EAAgB,CAClBh8F,MAAO,CACL,eAAgBqqG,EAAS2F,EAAcH,YAAc,MAEvDrwG,MAAOs6F,GAAWt6F,GAAOwwG,IAO3B,OAJKrwG,IACHq8F,EAAcG,SAAWwT,GAAWK,EAAcF,KAAME,EAAcp3E,OAGjEphC,EAAEiJ,EAAK47F,GAAU38F,EAAMs8F,GAAgBr8F,EAChD,ICtCSH,GAAQ46F,GAAsB6V,GAAsBpzB,IAGpDqzB,GAA+Bj0B,GAAO,CAC/C3gF,KAAMuhF,GACNtmF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIr3B,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZC,EAAWk3B,EAAKl3B,SACpB,OAAOnI,EAAE,KAAM6kG,GAAU38F,EAAM,CAC7Bu8F,YAAa,kBACb/7F,MAAO,CACLmqG,OAAQ7qG,EAAM6qG,UAEd,CAAC7yG,EAAEu4G,GAAiB,CACtBvwG,MAAOA,GACNG,IACL,ICxBF,SAAS9H,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAUzM,IAAIiG,GAAQ46F,GAAsB,CACvCv6D,MAAO45D,GAASzO,KACfpO,IAGQuzB,GAA2Bl0B,GAAO,CAC3C3gF,KAAMshF,GACNrmF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIr3B,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZC,EAAWk3B,EAAKl3B,SAChBkgC,EAAQrgC,EAAMqgC,MAEduwE,EAAazwG,EAEjB,GAAI9E,GAAQglC,GAAQ,CAClB,IAAIwwE,GAAgB,EACpBD,EAAavwE,EAAMphC,KAAI,SAAUm3C,EAAMnkC,GAChCnK,GAASsuC,KACZA,EAAO,CACLhd,KAAMx9B,GAASw6C,KAKnB,IAAI06D,EAAQ16D,EACRy0D,EAASiG,EAAMjG,OAWnB,OATIA,IACFgG,GAAgB,GAIbhG,GAAWgG,IACdhG,EAAS54F,EAAM,IAAMouB,EAAM/mC,QAGtBtB,EAAE04G,GAAiB,CACxB1wG,MAAO05E,GAAcA,GAAc,CAAC,EAAGtjC,GAAO,CAAC,EAAG,CAChDy0D,OAAQA,KAGd,GACF,CAEA,OAAO7yG,EAAE,KAAM6kG,GAAU38F,EAAM,CAC7Bu8F,YAAa,eACXmU,EACN,IC5DEG,GAAgCv0B,GAAc,CAChDP,WAAY,CACV00B,YAAaA,GACbD,gBAAiBA,GACjBH,gBAAiBA,MCLjBS,GAA4Bx0B,GAAc,CAC5CP,WAAY,CACVmxB,QAASA,GACT6D,KAAM7D,GACN7Q,aAAcA,GACd2U,UAAW3U,MCRf,SAASlkG,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CASzM,IAAIiG,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAc,CAAC,EAAGK,GAAKo3B,GAAa,CAAC,UAAW,CAAC,EAAG,CAClHC,SAAUnX,GAASlO,GAAkB,SACrCvpF,KAAMy3F,GAASlO,IACf9qF,IAAKg5F,GAASlO,GAAkB,OAChCslB,SAAUpX,GAASxO,IAAmB,MACnChO,IAGM6zB,GAA4B70B,GAAO,CAC5C3gF,KAAM2hF,GACN1mF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIr3B,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZC,EAAWk3B,EAAKl3B,SACpB,OAAOnI,EAAEgI,EAAMiB,IAAK47F,GAAU38F,EAAM,CAClCQ,MAAOhH,GAAgB,CACrB,aAAcsG,EAAMqxG,SACpB,qBAAsBrxG,EAAMqxG,UAC3B,aAAal5G,OAAO6H,EAAMwC,MAAOxC,EAAMwC,MAC1ChC,MAAO,CACLg/F,KAAMx/F,EAAMoxG,YAEZjxG,EACN,ICpCEoxG,GAAiC/0B,GAAc,CACjDP,WAAY,CACVq1B,aAAcA,GACdE,UAAWF,MCIXG,GAAgB,CAAC,0DAA2D,+CAAgD,wCAAyC,wCAAyC,sCAAsCh0G,KAAK,KAElPuC,GAAQ46F,GAAsB,CACvC8W,QAASzX,GAASxO,IAAmB,GACrCkmB,OAAQ1X,GAASxO,IAAmB,IACnC/N,IAGQk0B,GAA8Bn1B,GAAO,CAC9C3gF,KAAM4hF,GACNr9E,OAAQ,CAACsxF,IACT3xF,MAAOA,GACP6xG,QAAS,WAGH36G,KAAKy6G,QACPz6G,KAAKi8D,UAET,EACAy+B,QAAS,CACPz+B,SAAU,WACR,IAAI9yB,EAAQs1D,GAAU8b,GAAev6G,KAAK60G,KAK1C,OAHA1rE,EAAM7mC,SAAQ,SAAU48C,GACtBA,EAAKsiD,UAAY,CACnB,IACOr4D,EAAMznC,QAAO,SAAUstF,GAC5B,OAAO6O,GAAU7O,EACnB,GACF,EACA4rB,WAAY,WACV,IAAIzxE,EAAQnpC,KAAKi8D,WACjBwlC,GAAat4D,EAAM,GACrB,EACA0xE,UAAW,SAAmBnxD,GAC5B,IAAIvgB,EAAQnpC,KAAKi8D,WACbhoB,EAAQ9K,EAAM3lC,QAAQkmD,EAAMznD,QAE5BgyC,GAAS,IACX9K,EAAQA,EAAMxkC,MAAM,EAAGsvC,GAAO6vB,UAC9B29B,GAAat4D,EAAM,IAEvB,EACA2xE,UAAW,SAAmBpxD,GAC5B,IAAIvgB,EAAQnpC,KAAKi8D,WACbhoB,EAAQ9K,EAAM3lC,QAAQkmD,EAAMznD,QAE5BgyC,GAAS,IACX9K,EAAQA,EAAMxkC,MAAMsvC,EAAQ,GAC5BwtD,GAAat4D,EAAM,IAEvB,EACA4xE,UAAW,WACT,IAAI5xE,EAAQnpC,KAAKi8D,WAAW6H,UAC5B29B,GAAat4D,EAAM,GACrB,EACA6xE,UAAW,SAAmBtxD,GAC5B,IAAImrD,EAAM70G,KAAK60G,IAEXnrD,EAAMznD,SAAW4yG,GAAQ/W,GAAS+W,EAAKnrD,EAAMuxD,iBAC/C5W,GAAU36C,GACV1pD,KAAK46G,WAAWlxD,GAEpB,EACAwxD,UAAW,SAAmBxxD,GAC5B,IAAI0sD,EAAU1sD,EAAM0sD,QAChB+E,EAAWzxD,EAAMyxD,SAEjB/E,IAAYjG,IAAWiG,IAAYtG,IACrCzL,GAAU36C,GACVyxD,EAAWn7G,KAAK46G,WAAWlxD,GAAS1pD,KAAK66G,UAAUnxD,IAC1C0sD,IAAY3G,IAAa2G,IAAYnG,KAC9C5L,GAAU36C,GACVyxD,EAAWn7G,KAAK+6G,UAAUrxD,GAAS1pD,KAAK86G,UAAUpxD,GAEtD,GAEFvqD,OAAQ,SAAgB2B,GACtB,IAAI25G,EAASz6G,KAAKy6G,OAClB,OAAO35G,EAAE,MAAO,CACdykG,YAAa,cACb/7F,MAAO,CACL,0BAA2BxJ,KAAKw6G,SAElClxG,MAAO,CACLg/F,KAAM,UACN8L,SAAUqG,EAAS,IAAM,MAE3BpqB,GAAIoqB,EAAS,CACXpE,QAASr2G,KAAKg7G,UACd7E,QAASn2G,KAAKk7G,WACZ,CAAC,GACJ,CAACl7G,KAAKs6F,iBACX,ICpGE8gB,GAAmC91B,GAAc,CACnDP,WAAY,CACV21B,eAAgBA,GAChBW,YAAaX,MCLNY,GAAmB,UACnBC,GAAgB,OAChBC,GAAkB,SAClBC,GAAiB,QACjBC,GAAsB,UACtBC,GAAsB,UCLjC,SAAS5S,GAAellG,EAAK3B,GAAK,OAAO8mG,GAAgBnlG,IAAQolG,GAAsBplG,EAAK3B,IAAM8B,GAA4BH,EAAK3B,IAAMgnG,IAAoB,CAE7J,SAASA,KAAqB,MAAM,IAAIlkG,UAAU,4IAA8I,CAEhM,SAAShB,GAA4BO,EAAGC,GAAU,GAAKD,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOH,GAAkBG,EAAGC,GAAS,IAAIC,EAAIlD,OAAO0B,UAAUyB,SAASrE,KAAKkE,GAAGI,MAAM,GAAI,GAAiE,MAAnD,WAANF,GAAkBF,EAAEvB,cAAayB,EAAIF,EAAEvB,YAAY4B,MAAgB,QAANH,GAAqB,QAANA,EAAoBP,MAAMI,KAAKC,GAAc,cAANE,GAAqB,2CAA2CI,KAAKJ,GAAWL,GAAkBG,EAAGC,QAAzG,CAA7O,CAA+V,CAE/Z,SAASJ,GAAkBP,EAAKiB,IAAkB,MAAPA,GAAeA,EAAMjB,EAAIzB,UAAQ0C,EAAMjB,EAAIzB,QAAQ,IAAK,IAAIF,EAAI,EAAG6C,EAAO,IAAIb,MAAMY,GAAM5C,EAAI4C,EAAK5C,IAAO6C,EAAK7C,GAAK2B,EAAI3B,GAAM,OAAO6C,CAAM,CAEtL,SAASkkG,GAAsBplG,EAAK3B,GAAK,IAAI+5B,EAAY,MAAPp4B,EAAc,KAAyB,qBAAXf,QAA0Be,EAAIf,OAAOC,WAAac,EAAI,cAAe,GAAU,MAANo4B,EAAJ,CAAwB,IAAkDktE,EAAIC,EAAlDC,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAmB,IAAM,IAAKttE,EAAKA,EAAG57B,KAAKwD,KAAQylG,GAAMH,EAAKltE,EAAGliB,QAAQK,MAAOkvF,GAAK,EAA6B,GAArBD,EAAKvnG,KAAKqnG,EAAGjmG,OAAYhB,GAAKmnG,EAAKjnG,SAAWF,EAAG,KAAS,CAAE,MAAOgY,GAAOqvF,GAAK,EAAMH,EAAKlvF,CAAK,CAAE,QAAU,IAAWovF,GAAsB,MAAhBrtE,EAAG,WAAmBA,EAAG,WAAa,CAAE,QAAU,GAAIstE,EAAI,MAAMH,CAAI,CAAE,CAAE,OAAOC,CAAjV,CAAuV,CAEhgB,SAASL,GAAgBnlG,GAAO,GAAIK,MAAMC,QAAQN,GAAM,OAAOA,CAAK,CAEpE,SAAS88E,GAAWC,EAAQ5kD,EAAMqkD,GAAqV,OAAzSM,GAA/BhB,KAA4CI,QAAQC,UAAiC,SAAoBY,EAAQ5kD,EAAMqkD,GAAS,IAAIQ,EAAI,CAAC,MAAOA,EAAE/+E,KAAKC,MAAM8+E,EAAG7kD,GAAO,IAAIzZ,EAAc/E,SAAStU,KAAKnH,MAAM6+E,EAAQC,GAAQ1B,EAAW,IAAI58D,EAAsE,OAAnD89D,GAAOd,GAAgBJ,EAAUkB,EAAMp9E,WAAmBk8E,CAAU,EAAYwB,GAAW5+E,MAAM,KAAMI,UAAY,CAEja,SAASw9E,KAA8B,GAAuB,qBAAZI,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUc,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFx0E,QAAQtJ,UAAU+9E,QAAQ3gF,KAAK0/E,QAAQC,UAAUzzE,QAAS,IAAI,WAAa,MAAY,CAAM,CAAE,MAAOtC,IAAK,OAAO,CAAO,CAAE,CAExU,SAASs1E,GAAgBh7E,EAAG2iB,GAA+G,OAA1Gq4D,GAAkBh+E,OAAO0/E,gBAAkB,SAAyB18E,EAAG2iB,GAAsB,OAAjB3iB,EAAE8iB,UAAYH,EAAU3iB,CAAG,EAAUg7E,GAAgBh7E,EAAG2iB,EAAI,CAWlK,IC3BH6Y,GD2BO67E,GAAa,WACtB,IAAK,IAAIlzG,EAAOvG,UAAUC,OAAQ45B,EAAO,IAAI93B,MAAMwE,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/EozB,EAAKpzB,GAAQzG,UAAUyG,GAGzB,OAAO+3E,GAAW/jE,KAAMof,EAC1B,EAEW6/E,GAAW,SAAkB9rF,GACtC,GAAIrf,GAASqf,IAASuuD,EAAQz5E,KAAKkrB,EAAK9nB,QAAS,CAC/C,IAAI6zG,EAAkB/rF,EAAKzpB,MAAMi4E,GAAex2E,KAAI,SAAU0H,GAC5D,OAAOqrF,GAAUrrF,EAAG,EACtB,IACIssG,EAAmBhT,GAAe+S,EAAiB,GACnDE,EAAOD,EAAiB,GACxBE,EAAQF,EAAiB,GACzBG,EAAMH,EAAiB,GAE3B,OAAOH,GAAWI,EAAMC,EAAQ,EAAGC,EACrC,CAAO,OAAIrrG,GAAOkf,GACT6rF,GAAW7rF,EAAKosF,cAAepsF,EAAKqsF,WAAYrsF,EAAKssF,WAGvD,IACT,EAEWC,GAAY,SAAmBvsF,GAGxC,GAFAA,EAAO8rF,GAAS9rF,IAEXA,EACH,OAAO,KAGT,IAAIisF,EAAOjsF,EAAKosF,cACZF,EAAQ,IAAIh7G,OAAO8uB,EAAKqsF,WAAa,GAAGz3G,OAAO,GAC/Cu3G,EAAM,IAAIj7G,OAAO8uB,EAAKssF,WAAW13G,OAAO,GAC5C,MAAO,GAAG1D,OAAO+6G,EAAM,KAAK/6G,OAAOg7G,EAAO,KAAKh7G,OAAOi7G,EACxD,EAEWK,GAAgB,SAAuBC,GAGhD,IAAIC,EAAWt6G,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAKm5G,GACnFkB,EAAUv7G,GAAOu7G,GAAS96G,OAAOyhF,IACjC,IAAIu5B,EAAM,IAAIC,KAAKC,eAAeJ,EAAS,CACzCC,SAAUA,IAEZ,OAAOC,EAAIG,kBAAkBC,MAC/B,EAEWC,GAAsB,SAA6BD,EAAQn9G,GAGpE,IAAIq9G,EAAM,IAAIL,KAAKC,eAAeE,EAAQn9G,GAC1C,OAAOq9G,EAAI9pG,MACb,EAEW+pG,GAAa,SAAoBC,EAAOC,GAGjD,OAAOb,GAAUY,KAAWZ,GAAUa,EACxC,EAEWC,GAAmB,SAA0BrtF,GAGtD,OAFAA,EAAO6rF,GAAW7rF,GAClBA,EAAKstF,QAAQ,GACNttF,CACT,EACWutF,GAAkB,SAAyBvtF,GAIpD,OAHAA,EAAO6rF,GAAW7rF,GAClBA,EAAKwtF,SAASxtF,EAAKqsF,WAAa,GAChCrsF,EAAKstF,QAAQ,GACNttF,CACT,EACWytF,GAAW,SAAkBztF,EAAM0tF,GAC5C1tF,EAAO6rF,GAAW7rF,GAClB,IAAIksF,EAAQlsF,EAAKqsF,WAOjB,OANArsF,EAAK2tF,YAAY3tF,EAAKosF,cAAgBsB,GAElC1tF,EAAKqsF,aAAeH,GACtBlsF,EAAKstF,QAAQ,GAGRttF,CACT,EACW4tF,GAAc,SAAqB5tF,GAC5CA,EAAO6rF,GAAW7rF,GAClB,IAAIksF,EAAQlsF,EAAKqsF,WAOjB,OANArsF,EAAKwtF,SAAStB,EAAQ,GAElBlsF,EAAKqsF,aAAeH,GACtBlsF,EAAKstF,QAAQ,GAGRttF,CACT,EACW6tF,GAAgB,SAAuB7tF,GAChDA,EAAO6rF,GAAW7rF,GAClB,IAAIksF,EAAQlsF,EAAKqsF,WAOjB,OANArsF,EAAKwtF,SAAStB,EAAQ,GAElBlsF,EAAKqsF,cAAgBH,EAAQ,GAAK,IACpClsF,EAAKstF,QAAQ,GAGRttF,CACT,EACW8tF,GAAa,SAAoB9tF,GAC1C,OAAOytF,GAASztF,GAAO,EACzB,EACW+tF,GAAe,SAAsB/tF,GAC9C,OAAOytF,GAASztF,EAAM,EACxB,EACWguF,GAAe,SAAsBhuF,GAC9C,OAAOytF,GAASztF,GAAO,GACzB,EACWiuF,GAAiB,SAAwBjuF,GAClD,OAAOytF,GAASztF,EAAM,GACxB,EAGWkuF,GAAgB,SAAuBluF,GAChD,IAAIoX,EAAMhlC,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,KAC1Eg0B,EAAMh0B,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,KAM9E,OAJA4tB,EAAO8rF,GAAS9rF,GAChBoX,EAAM00E,GAAS10E,IAAQpX,EACvBoG,EAAM0lF,GAAS1lF,IAAQpG,EAEhBA,EAAOA,EAAOoX,EAAMA,EAAMpX,EAAOoG,EAAMA,EAAMpG,EAAO,IAC7D,EExJImuF,GAAY,CAAC,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,MAAO,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,MAAMn2G,KAAI,SAAU+0G,GACpH,OAAOA,EAAO/1G,aAChB,IAEWo3G,GAAc,SAAqBrB,GAE5C,IAAIjuC,EAAQnqE,GAASo4G,GAAQ/1G,cAAcL,QAAQu4E,EAAsB,IAAI34E,MAAM,KAC/E83G,EAAUvvC,EAAMlqE,MAAM,EAAG,GAAG4B,KAAK,KACjC83G,EAAUxvC,EAAM,GACpB,OAAO8qB,GAAcukB,GAAWE,IAAYzkB,GAAcukB,GAAWG,EACvE,ECRWv1G,GAAQ,CACjB8vB,GAAImqE,GAASlO,KAIJypB,GAAU/4B,GAAO,CAC1Bz8E,MAAOA,GACPE,KAAM,WACJ,MAAO,CACLu1G,SAAU,KAEd,EACA5U,SAAU,CACR6U,OAAQ,WAGN,IAAI5lF,EAAK54B,KAAK44B,IAAM54B,KAAKu+G,SAIrB9jG,EAAK,SAAYqoF,GACnB,OAAKlqE,GAILkqE,EAASr2F,OAAOq2F,GAAU,IAAIp8F,QAAQ,OAAQ,KACvCo8F,EAASlqE,EAAK,IAAMkqE,EAASlqE,GAJ3B,IAKX,EAEA,OAAOne,CACT,GAEFkgG,QAAS,WACP,IAAIn+F,EAAQxc,KAGZA,KAAKgoG,WAAU,WAGbxrF,EAAM+hG,SAAW,WAAWt9G,OAAOub,EAAM4xE,IAC3C,GACF,IF9CF,SAASjtF,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CA4BhN,IAAIikG,GAAkBjD,GAAe,QAAS,CAC5Cv3F,KAAM+oF,KAEJ0R,GAAaD,GAAgB5C,MAC7B8C,GAAaF,GAAgBh+F,MAC7Bm+F,GAAkBH,GAAgBz+F,KAClC6+F,GAAmBJ,GAAgBp9C,MAG5B5gD,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAcA,GAAc,CAAC,EAAGi8B,IAAUzX,IAAa,CAAC,EAAG,CACzH0X,aAAc3b,GAASlO,IAEvBmgB,MAAOjS,GAASxO,IAAmB,GACnCoqB,eAAgB5b,GAAStO,IAEzBmqB,kBAAmB7b,GAASpO,GAAkB,CAC5CqnB,KAAML,GACNM,MAAOV,GACPW,IAAKP,GACLkD,QAAStD,KAOXuD,WAAY/b,GAAStO,IAErBsqB,UAAWhc,GAASlO,IACpBhiE,SAAUkwE,GAASxO,IAAmB,GACtCyqB,UAAWjc,GAASlO,GAAkB,UAKtCoqB,OAAQlc,GAASxO,IAAmB,GAEpC2qB,WAAYnc,GAASxO,IAAmB,GAIxC4qB,YAAapc,GAAS1N,IAEtB+pB,cAAerc,GAASlO,GAAkB,YAC1CwqB,kBAAmBtc,GAASlO,GAAkB,iBAC9CyqB,UAAWvc,GAASlO,GAAkB,8CACtC0qB,SAAUxc,GAASlO,GAAkB,uBACrC2qB,gBAAiBzc,GAASlO,GAAkB,eAC5C4qB,eAAgB1c,GAASlO,GAAkB,cAC3C6qB,cAAe3c,GAASlO,GAAkB,aAC1C8qB,oBAAqB5c,GAASlO,GAAkB,oBAChD+qB,gBAAiB7c,GAASlO,GAAkB,mBAC5CgrB,eAAgB9c,GAASlO,GAAkB,kBAC3CirB,cAAe/c,GAASlO,GAAkB,iBAC1CkrB,cAAehd,GAASlO,GAAkB,iBAC1CmrB,WAAYjd,GAASlO,GAAkB,SAGvCioB,OAAQ/Z,GAAS9N,IACjB9+D,IAAK4sE,GAAS1N,IACdluD,IAAK47D,GAAS1N,IAEd4qB,iBAAkBld,GAASlO,GAAkB,aAE7CqrB,iBAAkBnd,GAASxO,IAAmB,GAC9C4rB,SAAUpd,GAASxO,IAAmB,GACtC6rB,SAAUrd,GAASxO,IAAmB,GACtC8rB,gBAAiBtd,GAASlO,IAE1ByrB,gBAAiBvd,GAASlO,GAAkB,WAE5C0rB,cAAexd,GAASxO,IAAmB,GAG3CisB,aAAczd,GAASxN,GAAyB,GAEhDkrB,aAAc1d,GAASlO,IAEvB6rB,YAAa3d,GAASxO,IAAmB,GAMzCosB,oBAAqB5d,GAASlO,GAAkB4mB,IAAgB,SAAUv4G,GACxE,OAAOy2F,GAAc,CAAC4hB,GAAeE,GAAgBD,IAAkBt4G,EACzE,IAEAi7F,MAAO4E,GAASlO,GAAkB,YAC/BpO,IAGMm6B,GAAYr7B,GAAO,CAC5B3gF,KAAM6hF,GAENt9E,OAAQ,CAACsoG,GAAY6M,GAASvX,GAAYtM,IAC1C3xF,MAAOA,GACPE,KAAM,WACJ,IAAI63G,EAAWvE,GAAUt8G,KAAKinG,MAAqB,GACnD,MAAO,CAEL6Z,YAAaD,EAEbE,UAAWF,GAAYvE,GAAU0E,GAAehhH,KAAKm/G,aAAen/G,KAAKihH,YAAajhH,KAAKmnC,IAAKnnC,KAAKm2B,KAErG+qF,cAAc,EAGdC,QAAQ,EAEZ,EACAxX,SAAU,CACRyX,QAAS,WACP,OAAOphH,KAAKw+G,QACd,EACA6C,SAAU,WACR,OAAOrhH,KAAKw+G,OAAO,qBACrB,EACA8C,MAAO,WACL,OAAOthH,KAAKw+G,OAAO,iBACrB,EACA+C,OAAQ,WACN,OAAOvhH,KAAKw+G,OAAO,kBACrB,EACAgD,cAAe,WACb,OAAOxhH,KAAKw+G,OAAO,0BACrB,EACAiD,WAAY,WACV,OAAOzhH,KAAKw+G,OAAO,uBACrB,EACAkD,SAAU,WACR,OAAO1hH,KAAK+gH,UAAY/gH,KAAKw+G,OAAO,SAASv9G,OAAOjB,KAAK+gH,UAAW,MAAQ,IAC9E,EAEAY,aAAc,WAEZ,OAAO9F,GAAS77G,KAAK8gH,YACvB,EACAc,WAAY,WAEV,OAAO/F,GAAS77G,KAAK+gH,UACvB,EACAc,YAAa,WACX,OAAOhG,GAAS77G,KAAKmnC,IACvB,EACA26E,YAAa,WACX,OAAOjG,GAAS77G,KAAKm2B,IACvB,EACA4rF,mBAAoB,WAElB,OAAO7rG,GAAQ4kF,GAAU96F,KAAKwgH,aAAc,GAAI,GAAK,CACvD,EACAwB,eAAgB,WAEd,OAAOzF,GAAct7G,GAAOjB,KAAK88G,QAAQp7G,OAAOyhF,IAAWm4B,GAC7D,EACA2G,uBAAwB,WACtB,IAAItD,EAAiB3+G,KAAK2+G,eAC1B,OAAO/a,GAAgB+a,GAAkBA,EAAiB,WACxD,OAAO,CACT,CACF,EAEAuD,mBAAoB,WAClB,IAAIpD,EAAa9+G,KAAK8+G,WACtB,OAAOlb,GAAgBkb,GAAcA,EAAa,WAChD,MAAO,CAAC,CACV,CACF,EACAqD,eAAgB,WAKd,IAAIzF,EAAM,IAAIC,KAAKC,eAAe58G,KAAKgiH,eAAgB,CACrDvF,SAAUnB,KAERmB,EAAWC,EAAIG,kBAAkBJ,SACjCK,EAASJ,EAAIG,kBAAkBC,OAUnC,OAPIL,IAAanB,KAIfwB,EAASA,EAAOp2G,QAAQ,UAAW,IAAIzF,OAAO,kBAGzC67G,CACT,EACAsF,aAAc,WACZ,OAAOpiH,KAAK4hH,WAAWzF,aACzB,EACAkG,cAAe,WACb,OAAOriH,KAAK4hH,WAAWxF,UACzB,EACAkG,iBAAkB,WAIhB,OAAO1G,GAAW57G,KAAKoiH,aAAcpiH,KAAKqiH,cAAe,EAAG,GAC9D,EACAE,oBAAqB,WAEnB,IAAIxyF,EAAO6rF,GAAW57G,KAAKsiH,kBAE3B,OADAvyF,EAAKwtF,SAASxtF,EAAKqsF,WAAa,EAAG,GAC5BrsF,EAAKssF,SACd,EACA3E,gBAAiB,WACf,MAAO,OAAOz2G,OAAOjB,KAAKsgH,iBAAmB,UAC/C,EACAkC,qBAAsB,WACpB,MAAO,eAAevhH,OAAOjB,KAAKygH,cAAgBzgH,KAAKsgH,iBAAmB,UAC5E,EACAmC,yBAA0B,WACxB,MAAO,eAAexhH,OAAOjB,KAAKigH,kBAAoB,UACxD,EACAyC,MAAO,WAEL,IAAIC,EAAMj+G,GAAS1E,KAAK++G,WAAWh4G,cAEnC,MAAY,QAAR47G,GAGe,QAARA,GAKJxE,GAAYn+G,KAAKgiH,eAC1B,EACAjiH,QAAS,WACP,IAAI+gH,EAAc9gH,KAAK8gH,YACnBC,EAAY/gH,KAAK+gH,UACjBY,EAAe9F,GAASiF,GACxBc,EAAa/F,GAASkF,GAC1B,MAAO,CAELD,YAAaA,EACba,aAAcA,EACdiB,kBAAmBjB,EAAe3hH,KAAK6iH,iBAAiBlB,GAAgB3hH,KAAK2/G,oBAE7EoB,UAAWA,EACXa,WAAYA,EACZkB,gBAAiBlB,EAAa5hH,KAAK6iH,iBAAiBjB,GAAc,GAElE/uF,SAAU7yB,KAAK+iH,aAAanB,GAE5B9E,OAAQ98G,KAAKgiH,eACbG,eAAgBniH,KAAKmiH,eACrBa,IAAKhjH,KAAK0iH,MAEd,EAEAO,eAAgB,WAKd,IAAI97E,EAAMnnC,KAAK6hH,YACX1rF,EAAMn2B,KAAK8hH,YACf,OAAO,SAAU/xF,GAGf,OADAA,EAAO8rF,GAAS9rF,GACToX,GAAOpX,EAAOoX,GAAOhR,GAAOpG,EAAOoG,CAC5C,CACF,EACA4sF,aAAc,WACZ,IAAIvmG,EAAQxc,KAORkjH,EAAUljH,KAAKijH,eAEnB,OAAO,SAAUlzF,GAEfA,EAAO8rF,GAAS9rF,GAChB,IAAIozF,EAAM7G,GAAUvsF,GACpB,SAAUmzF,EAAQnzF,KAASvT,EAAMylG,uBAAuBkB,EAAKpzF,GAC/D,CACF,EAEA8yF,iBAAkB,WAEhB,OAAO9F,GAAoB/8G,KAAKmiH,eAAgB3/B,GAAcA,GAAc,CAI1Ew5B,KAAML,GACNM,MAAOP,GACPQ,IAAKR,IACJ17G,KAAK4+G,mBAAoB,CAAC,EAAG,CAG9Bx3E,UAAMr+B,EACNq6G,YAAQr6G,EACRs6G,YAAQt6G,EAER0zG,SAAUnB,KAEd,EACAgI,gBAAiB,WAEf,OAAOvG,GAAoB/8G,KAAKmiH,eAAgB,CAC9CnG,KAAML,GACNM,MAAOV,GACPkB,SAAUnB,IAEd,EACAiI,kBAAmB,WAEjB,OAAOxG,GAAoB/8G,KAAKmiH,eAAgB,CAC9CtD,QAAStD,GACTkB,SAAUnB,IAEd,EACAkI,uBAAwB,WAGtB,OAAOzG,GAAoB/8G,KAAKmiH,eAAgB,CAC9CtD,QAAS7+G,KAAK2gH,qBAAuBlF,GACrCgB,SAAUnB,IAEd,EACAmI,UAAW,WAIT,IAAIC,EAAK,IAAI/G,KAAKgH,aAAa,CAAC3jH,KAAKgiH,gBAAiB,CACpDl6G,MAAO,UACP87G,qBAAsB,EACtBC,sBAAuB,EACvBC,sBAAuB,EACvBC,SAAU,aAGZ,OAAO,SAAUh0F,GACf,OAAO2zF,EAAGxwG,OAAO6c,EAAKssF,UACxB,CACF,EAEA2H,mBAAoB,WAClB,IAAI78E,EAAMnnC,KAAK6hH,YACf,OAAO7hH,KAAK6yB,UAAYsU,GAAOm2E,GAAgBS,GAAa/9G,KAAK4hH,aAAez6E,CAClF,EACA88E,iBAAkB,WAChB,IAAI98E,EAAMnnC,KAAK6hH,YACf,OAAO7hH,KAAK6yB,UAAYsU,GAAOm2E,GAAgBO,GAAW79G,KAAK4hH,aAAez6E,CAChF,EACA+8E,kBAAmB,WACjB,IAAI/8E,EAAMnnC,KAAK6hH,YACf,OAAO7hH,KAAK6yB,UAAYsU,GAAOm2E,GAAgBK,GAAY39G,KAAK4hH,aAAez6E,CACjF,EACAg9E,kBAAmB,WAEjB,OAAOnkH,KAAK6yB,QACd,EACAuxF,kBAAmB,WACjB,IAAIjuF,EAAMn2B,KAAK8hH,YACf,OAAO9hH,KAAK6yB,UAAYsD,GAAOinF,GAAiBQ,GAAc59G,KAAK4hH,aAAezrF,CACpF,EACAkuF,iBAAkB,WAChB,IAAIluF,EAAMn2B,KAAK8hH,YACf,OAAO9hH,KAAK6yB,UAAYsD,GAAOinF,GAAiBU,GAAa99G,KAAK4hH,aAAezrF,CACnF,EACAmuF,mBAAoB,WAClB,IAAInuF,EAAMn2B,KAAK8hH,YACf,OAAO9hH,KAAK6yB,UAAYsD,GAAOinF,GAAiBY,GAAeh+G,KAAK4hH,aAAezrF,CACrF,EAEAsmF,SAAU,WAYR,IAXA,IAAI8H,EAAS,GACTC,EAAWxkH,KAAKsiH,iBAChBF,EAAeoC,EAASrI,cACxBkG,EAAgBmC,EAASpI,WACzBqI,EAAczkH,KAAKuiH,oBACnBmC,EAAaF,EAASG,SAEtBC,GAAc5kH,KAAK+hH,mBAAqB2C,EAAa,EAAI,GAAK1kH,KAAK+hH,mBAEnE8C,EAAa,EAAID,EAAaF,EAEzBI,EAAO,EAAGA,EAAO,GAAKD,EAAaJ,EAAaK,IAAQ,CAE/DP,EAAOO,GAAQ,GAEf,IAAK,IAAIr9F,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAE1Bo9F,IACA,IAAI90F,EAAO6rF,GAAWwG,EAAcC,EAAewC,GAC/C5I,EAAQlsF,EAAKqsF,WACb2I,EAASzI,GAAUvsF,GACnBi1F,EAAchlH,KAAK+iH,aAAahzF,GAEhCk1F,EAAWjlH,KAAKkiH,mBAAmB6C,EAAQlJ,GAASkJ,IACxDE,EAAWv0G,GAASu0G,IAAa9gH,GAAQ8gH,GAEzC,CACEz7G,MAAOy7G,GACL1nG,GAAc0nG,GAAYziC,GAAc,CAC1Ch5E,MAAO,IACNy7G,GAEH,CACEz7G,MAAO,IAET+6G,EAAOO,GAAMhjH,KAAK,CAChBqhH,IAAK4B,EAEL7I,IAAKl8G,KAAKyjH,UAAU1zF,GACpBm1F,MAAOllH,KAAK6iH,iBAAiB9yF,GAE7Bo1F,YAAalJ,IAAUoG,EACvBjkB,WAAY4mB,EAEZI,KAAMH,GAEV,CACF,CAEA,OAAOV,CACT,EACAc,iBAAkB,WAChB,IAAIhT,EAASryG,KAEb,OAAOA,KAAKy8G,SAAS,GAAG10G,KAAI,SAAU4T,GACpC,MAAO,CACLumB,KAAMmwE,EAAOmR,uBAAuB3H,GAASlgG,EAAEwnG,MAC/C+B,MAAO7S,EAAOkR,kBAAkB1H,GAASlgG,EAAEwnG,MAE/C,GACF,GAEFvb,OAAQ7nE,GAAS,CAAC,EAAGv9B,GAAgBu9B,GAAQknE,IAAiB,SAAU90F,EAAU4+F,GAChF,IAAI8P,EAAWvE,GAAUnqG,IAAa,GAClCmzG,EAAMhJ,GAAUvL,IAAa,GAE5BkM,GAAW4D,EAAUyE,KACxBtlH,KAAK+gH,UAAYF,GAAY7gH,KAAK+gH,UAClC/gH,KAAK8gH,YAAcD,EAEvB,IAAIr+G,GAAgBu9B,GAAQ,eAAe,SAAqBwlF,EAAQC,GAIlED,IAAWC,GACbxlH,KAAK8nG,MAAMZ,GAAkBlnG,KAAK0gH,YAAc7E,GAAS0J,IAAW,KAAOA,GAAU,GAEzF,IAAI/iH,GAAgBu9B,GAAQ,WAAW,SAAiB5tB,EAAU4+F,GAC3DT,GAAWn+F,EAAU4+F,IACxB/wG,KAAK8nG,MAAMhX,GAAoB3+E,EAEnC,IAAI3P,GAAgBu9B,GAAQ,UAAU,SAAgB5tB,GAEpDnS,KAAK+gH,UAAY/gH,KAAK8gH,aAAexE,GAAUt8G,KAAKinG,KAAoBjnG,KAAKi+G,cAAcj+G,KAAKm/G,aAAen/G,KAAKihH,aAEpHjhH,KAAKylH,SAAStzG,EAChB,IAAI4tB,IACJ8uD,QAAS,WACP,IAAI62B,EAAS1lH,KAEbA,KAAKgoG,WAAU,WACb0d,EAAO5d,MAAMhX,GAAoB40B,EAAO3lH,QAC1C,GACF,EACA46G,QAAS,WACP36G,KAAKylH,SAAQ,EACf,EAGAE,UAAW,WACT3lH,KAAKylH,SAAQ,EACf,EAGAG,YAAa,WACX5lH,KAAKylH,SAAQ,EACf,EACAvd,cAAe,WACbloG,KAAKylH,SAAQ,EACf,EACA/qB,QAAS,CAEPgH,MAAO,WACA1hG,KAAK6yB,UACR4uE,GAAazhG,KAAK6lH,MAAMC,KAE5B,EACAlkB,KAAM,WACC5hG,KAAK6yB,UACR8uE,GAAY3hG,KAAK6lH,MAAMC,KAE3B,EAEAL,QAAS,SAAiBp1B,GACxB,IAAI01B,EAAS/lH,KAETqwF,EACFrwF,KAAKgoG,WAAU,WACbjL,IAAU,WACRgpB,EAAO5E,QAAS,CAClB,GACF,IAEAnhH,KAAKmhH,QAAS,CAElB,EACAF,SAAU,WACR,OAAOpF,GAASD,KAClB,EACAqC,cAAe,SAAuBluF,GAGpC,OAAOixF,GAAejxF,EAAM/vB,KAAK6hH,YAAa7hH,KAAK8hH,YACrD,EACAkE,aAAc,SAAsBj2F,GAClC,IAAIk2F,EAASjmH,KAIbA,KAAKgoG,WAAU,WACbie,EAAOne,MAAM1U,GAAqBkpB,GAAUvsF,IAAS,GAAI8rF,GAAS9rF,IAAS,KAC7E,GACF,EAEAm2F,iBAAkB,SAA0Bx8D,GAE1C1pD,KAAKkhH,cAAgBlhH,KAAK6yB,UAA2B,UAAf62B,EAAMp9C,IAC9C,EACA65G,iBAAkB,SAA0Bz8D,GAI1C,IAAI1pD,KAAKmgH,SAAT,CAKA,IAAIiG,EAAS18D,EAAM08D,OACfC,EAAU38D,EAAM28D,QAChBjQ,EAAU1sD,EAAM0sD,QAEpB,GAAKzc,GAAc,CAACqW,GAAaD,GAAeL,GAAUG,GAAWC,GAAWK,GAASF,GAAYR,IAAY2G,GAAjH,CAKA/R,GAAU36C,GACV,IAAIk4D,EAAahG,GAAW57G,KAAK4hH,YAC7B0E,EAAY1K,GAAW57G,KAAK4hH,YAC5B1F,EAAM0F,EAAWvF,UACjBkK,EAAmBvmH,KAAKi+G,cAAcj+G,KAAKihH,YAC3CyB,EAAQ1iH,KAAK0iH,MAEbtM,IAAYpG,IAEd4R,GAAcwE,EAASC,EAAUtI,GAAeF,GAAaF,IAAaiE,GAE1E0E,EAAY1K,GAAWgG,GACvB0E,EAAUjJ,QAAQ,IACTjH,IAAYrG,IAErB6R,GAAcwE,EAASC,EAAUrI,GAAiBF,GAAeF,IAAegE,GAEhF0E,EAAY1K,GAAWgG,GACvB0E,EAAU/I,SAAS+I,EAAUlK,WAAa,GAC1CkK,EAAUjJ,QAAQ,IACTjH,IAAYtG,IAErB8R,EAAWvE,QAAQnB,GAAOwG,EAAQ,GAAK,IACvCd,EAAa5hH,KAAKi+G,cAAc2D,GAChC0E,EAAY1E,GACHxL,IAAYnG,IAErB2R,EAAWvE,QAAQnB,GAAOwG,GAAS,EAAI,IACvCd,EAAa5hH,KAAKi+G,cAAc2D,GAChC0E,EAAY1E,GACHxL,IAAYjG,IAErByR,EAAWvE,QAAQnB,EAAM,GACzB0F,EAAa5hH,KAAKi+G,cAAc2D,GAChC0E,EAAY1E,GACHxL,IAAY3G,IAErBmS,EAAWvE,QAAQnB,EAAM,GACzB0F,EAAa5hH,KAAKi+G,cAAc2D,GAChC0E,EAAY1E,GACHxL,IAAYvG,IAErB+R,EAAa2E,EACbD,EAAY1E,GACHxL,IAAY1G,KAErBkS,EAAa/F,GAAS77G,KAAK2hH,eAAiB4E,EAC5CD,EAAY1E,GAGT5hH,KAAKijH,eAAeqD,IAAerJ,GAAW2E,EAAY5hH,KAAK4hH,cAGlE5hH,KAAK+gH,UAAYzE,GAAUsF,IAI7B5hH,KAAK0hG,OA3DL,CATA,CAqEF,EACA8kB,cAAe,SAAuB98D,GAEpC,IAAI0sD,EAAU1sD,EAAM0sD,QAChBwL,EAAa5hH,KAAK4hH,WAElBxL,IAAYzG,IAAcyG,IAAYlG,KACxC7L,GAAU36C,GAEL1pD,KAAK6yB,UAAa7yB,KAAKogH,UAAapgH,KAAK+iH,aAAanB,KACzD5hH,KAAK8gH,YAAcxE,GAAUsF,GAC7B5hH,KAAKgmH,aAAapE,IAIpB5hH,KAAK0hG,QAET,EACA+kB,WAAY,SAAoBvK,GAE9B,IAAIyF,EAAe3hH,KAAK2hH,aACpBC,EAAa5hH,KAAK4hH,WAClB8E,EAAc7K,GAASK,EAAIiH,KAE1BnjH,KAAK6yB,UAAaqpF,EAAI9d,YAAep+F,KAAK+iH,aAAa2D,KACrD1mH,KAAKogH,WAGRpgH,KAAK8gH,YAAcxE,GAAUW,GAAWyJ,EAAa/E,GAAgBA,EAAe+E,GACpF1mH,KAAKgmH,aAAaU,IAGpB1mH,KAAK+gH,UAAYzE,GAAUW,GAAWyJ,EAAa9E,GAAcA,EAAahG,GAAW8K,IAEzF1mH,KAAK0hG,QAET,EACAilB,eAAgB,WACd3mH,KAAK+gH,UAAYzE,GAAUt8G,KAAKi+G,cAAcF,GAAa/9G,KAAK4hH,aAClE,EACAgF,aAAc,WACZ5mH,KAAK+gH,UAAYzE,GAAUt8G,KAAKi+G,cAAcJ,GAAW79G,KAAK4hH,aAChE,EACAiF,cAAe,WACb7mH,KAAK+gH,UAAYzE,GAAUt8G,KAAKi+G,cAAcN,GAAY39G,KAAK4hH,aACjE,EACAkF,iBAAkB,WAEhB9mH,KAAK+gH,UAAYzE,GAAUt8G,KAAKi+G,cAAcj+G,KAAKihH,YACrD,EACA8F,cAAe,WACb/mH,KAAK+gH,UAAYzE,GAAUt8G,KAAKi+G,cAAcL,GAAc59G,KAAK4hH,aACnE,EACAoF,aAAc,WACZhnH,KAAK+gH,UAAYzE,GAAUt8G,KAAKi+G,cAAcH,GAAa99G,KAAK4hH,aAClE,EACAqF,eAAgB,WACdjnH,KAAK+gH,UAAYzE,GAAUt8G,KAAKi+G,cAAcD,GAAeh+G,KAAK4hH,aACpE,EACAsF,cAAe,WACRlnH,KAAK6yB,WACR7yB,KAAK+gH,UAAY/gH,KAAK8gH,aAAexE,GAAUt8G,KAAKihH,YACpDjhH,KAAK0hG,QAET,GAEFviG,OAAQ,SAAgB2B,GACtB,IAAIqmH,EAASnnH,KAGb,GAAIA,KAAKi/G,OACP,OAAOn+G,IAGT,IAAIsgH,EAAUphH,KAAKohH,QACfC,EAAWrhH,KAAKqhH,SAChBC,EAAQthH,KAAKshH,MACbC,EAASvhH,KAAKuhH,OACdC,EAAgBxhH,KAAKwhH,cACrBC,EAAazhH,KAAKyhH,WAClBC,EAAW1hH,KAAK0hH,SAChB7uF,EAAW7yB,KAAK6yB,SAChBstF,EAAWngH,KAAKmgH,SAChBgB,EAASnhH,KAAKmhH,OACduB,EAAQ1iH,KAAK0iH,MACb3B,EAAY/gH,KAAK+gH,UACjBD,EAAc9gH,KAAK8gH,YACnBtC,EAASx+G,KAAKw+G,OACd4I,GAAiBpnH,KAAKugH,cACtB8G,EAAW/K,GAAUt8G,KAAKihH,YAC1BqG,GAAkBtnH,KAAKkgH,iBAEvBqH,EAAUzmH,EAAE,SAAU,CACxBykG,YAAa,2CACb/7F,MAAO,CACL,aAAcqpB,EACdutF,SAAUpgH,KAAKogH,UAAYvtF,GAE7BvpB,MAAO,CACLsvB,GAAIwoF,EACJoG,IAAKjG,EACLjZ,KAAM,SACN8L,SAAUvhF,EAAW,KAAO,KAG5B,gBAAiBnuB,GAASo8G,GAG1B,YAAaK,EAAS,SAAW,MACjC,cAAeA,EAAS,OAAS,MAEnC9wB,GAAI,CAGFmV,MAAOxlG,KAAKknH,cACZxlB,MAAO1hG,KAAKknH,gBAEblnH,KAAK2hH,aAAe,CAEvB7gH,EAAE,MAAO,CACPykG,YAAa,WACZ,KAAKtkG,OAAOyD,GAAS1E,KAAK+/G,eAAgB,OAAQj/G,EAAE,MAAOd,KAAK6iH,iBAAiB7iH,KAAK2hH,gBAAkB3hH,KAAK2/G,qBAAuB,KAEvI4H,EAAUzmH,EAAEd,KAAKg/G,UAAW,CAC1BzZ,YAAa,oBACb/7F,MAAO,CACL,UAAWxJ,KAAKk/G,YAElB51G,MAAO,CACL2D,MAAOjN,KAAK2hH,cAAe3hH,KAAK+/G,eAAwB,OAEzD,CAACwH,IAEJ,IAAIE,EAAW,CACb/E,MAAOA,GAELgF,EAAW,CACb9a,OAAQ,IAGN+a,EAAenlC,GAAcA,GAAc,CAAC,EAAGklC,GAAW,CAAC,EAAG,CAChEpb,MAAOoW,IAGLkF,EAAeplC,GAAcA,GAAc,CAAC,EAAGklC,GAAW,CAAC,EAAG,CAChEpb,OAAQoW,IAGNmF,EAAkB7nH,KAAKs6F,cAAcjC,GAA0BovB,IAAa3mH,EAAEstG,GAAqB,CACrGtlG,MAAO6+G,IAELG,EAAgB9nH,KAAKs6F,cAAc/B,GAAwBkvB,IAAa3mH,EAAEutG,GAAwB,CACpGvlG,MAAO6+G,IAELI,EAAiB/nH,KAAKs6F,cAAchC,GAAyBmvB,IAAa3mH,EAAEytG,GAAkB,CAChGzlG,MAAO6+G,IAELK,EAAiBhoH,KAAKs6F,cAAc9B,GAA0BivB,IAAa3mH,EAAE2tG,GAAiB,CAChG3lG,MAAO4+G,IAELO,EAAiBjoH,KAAKs6F,cAAcnC,GAA0BsvB,IAAa3mH,EAAEytG,GAAkB,CACjGzlG,MAAO8+G,IAELM,EAAgBloH,KAAKs6F,cAAclC,GAAyBqvB,IAAa3mH,EAAEutG,GAAwB,CACrGvlG,MAAO8+G,IAELO,EAAkBnoH,KAAKs6F,cAAcpC,GAA2BuvB,IAAa3mH,EAAEstG,GAAqB,CACtGtlG,MAAO8+G,IAGLQ,EAAa,SAAoBjjB,EAAS+f,EAAOzmG,EAAS4pG,EAAaC,GACzE,OAAOxnH,EAAE,SAAU,CACjBykG,YAAa,gCACb/7F,MAAO,CAAC29G,EAAO1E,yBAA0B,CACvC5vF,SAAUw1F,IAEZ/+G,MAAO,CACL2D,MAAOi4G,GAAS,KAChB54G,KAAM,SACN8nG,SAAU+L,EAAW,KAAO,KAC5B,aAAc+E,GAAS,KACvB,gBAAiBmD,EAAc,OAAS,KACxC,oBAAqBC,GAAY,MAEnCj4B,GAAIg4B,EAAc,CAAC,EAAI,CACrB7iB,MAAO/mF,IAER,CAAC3d,EAAE,MAAO,CACXwI,MAAO,CACL,cAAe,SAEhB,CAAC67F,KACN,EAGIojB,EAAOznH,EAAE,MAAO,CAClBykG,YAAa,wBACbj8F,MAAO,CACLsvB,GAAI0oF,EACJhZ,KAAM,QACN8L,SAAU+L,EAAW,KAAO,KAC5B,cAAettF,EAAW,OAAS,KACnC,aAAc7yB,KAAKu/G,UAAY,KAC/B,gBAAiBgC,IAElB,CAAC6F,EAAgBtmH,IAAMsnH,EAAWP,EAAiB7nH,KAAK4/G,gBAAiB5/G,KAAK2mH,eAAgB3mH,KAAKgkH,mBAAoB,qBAAsBoE,EAAWN,EAAe9nH,KAAK8/G,cAAe9/G,KAAK4mH,aAAc5mH,KAAKikH,iBAAkB,gBAAiBmE,EAAWL,EAAgB/nH,KAAK6/G,eAAgB7/G,KAAK6mH,cAAe7mH,KAAKkkH,kBAAmB,YAAakE,EAAWJ,EAAgBhoH,KAAKq/G,kBAAmBr/G,KAAK8mH,iBAAkB9mH,KAAKmkH,kBAAmB,QAASiE,EAAWH,EAAgBjoH,KAAKy/G,eAAgBz/G,KAAK+mH,cAAe/mH,KAAKokH,kBAAmB,UAAWgE,EAAWF,EAAeloH,KAAK0/G,cAAe1/G,KAAKgnH,aAAchnH,KAAKqkH,iBAAkB,cAAe+C,EAAgBtmH,IAAMsnH,EAAWD,EAAiBnoH,KAAKw/G,gBAAiBx/G,KAAKinH,eAAgBjnH,KAAKskH,mBAAoB,qBAE7wBkE,EAAe1nH,EAAE,MAAO,CAC1BykG,YAAa,uDACb/7F,MAAO,CACL,aAAcqpB,GAEhBvpB,MAAO,CACLsvB,GAAI4oF,EACJ,YAAaL,EAAS,SAAW,KACjC,cAAeA,EAAS,OAAS,MAEnC5+G,IAAK,gBACJvC,KAAKsjH,gBAAgBtjH,KAAKsiH,mBAEzBmG,EAAgB3nH,EAAE,MAAO,CAC3BykG,YAAa,wDACbj8F,MAAO,CACL,cAAe,SAEhBtJ,KAAKqlH,iBAAiBt9G,KAAI,SAAU4T,EAAGZ,GACxC,OAAOja,EAAE,QAAS,CAChBykG,YAAa,oBACb/7F,MAAO,CACL,aAAcqpB,GAEhBvpB,MAAO,CACL2D,MAAO0O,EAAEupG,QAAUvpG,EAAEumB,KAAO,KAAOvmB,EAAEupG,MACrC,aAAcvpG,EAAEupG,OAElB3iH,IAAKwY,GACJY,EAAEumB,KACP,KAEIwmF,EAAY1oH,KAAKy8G,SAAS10G,KAAI,SAAU+8G,GAC1C,IAAI6D,EAAS7D,EAAK/8G,KAAI,SAAUm0G,EAAK0M,GACnC,IAAI7b,EAEA8b,EAAa3M,EAAIiH,MAAQrC,EACzBgI,EAAW5M,EAAIiH,MAAQpC,EACvBgI,EAAU7M,EAAIiH,MAAQkE,EACtB2B,EAASxK,EAAO,SAASv9G,OAAOi7G,EAAIiH,IAAK,MAEzC8F,EAAOnoH,EAAE,OAAQ,CACnBykG,YAAa,0CAEb/7F,OAAQujG,EAAS,CAEfrL,MAAOonB,GAAY3B,EAAOjG,aAE1BruF,SAAUqpF,EAAI9d,YAAcvrE,EAC5B8gF,OAAQkV,GACPrmH,GAAgBuqG,EAAQoa,EAAOzP,gBAAiBmR,GAAarmH,GAAgBuqG,EAAQoa,EAAO3E,qBAAsBuG,GAAWzB,IAAmBuB,GAAc3M,EAAIiJ,aAAc3iH,GAAgBuqG,EAAQ,sBAAuBgc,GAAWzB,KAAoBuB,IAAeC,GAAWtmH,GAAgBuqG,EAAQ,cAAegc,GAAWzB,KAAoBuB,GAAcC,GAAWtmH,GAAgBuqG,EAAQ,cAAemP,EAAIiJ,cAAgB0D,GAAarmH,GAAgBuqG,EAAQ,cAAegc,GAAWzB,KAAoBuB,IAAeC,GAAY5M,EAAIiJ,aAAc3iH,GAAgBuqG,EAAQ,oBAAqB8b,GAAc3M,EAAIiJ,eAAiBjJ,EAAI9d,YAAa2O,GACtpB1c,GAAI,CACFmV,MAAO,WACL,OAAO2hB,EAAOV,WAAWvK,EAC3B,IAEDA,EAAIA,KACP,OAAOp7G,EAAE,MACT,CACEykG,YAAa,UACb/7F,MAAO0yG,EAAI9d,WAAa,WAAa8d,EAAIkJ,KAAK57G,OAAS,GACvDF,MAAO,CACLsvB,GAAIowF,EACJ1gB,KAAM,SACN,YAAa4T,EAAIiH,IAGjB,cAAejH,EAAIiJ,YAAc,KAAO,OACxC,gBAAiBjJ,EAAI9d,YAAcvrE,EAAW,OAAS,KACvD,aAAc,CAACqpF,EAAIgJ,MAAO2D,EAAa,IAAI5nH,OAAOkmH,EAAOpH,cAAe,KAAO,KAAMgJ,EAAU,IAAI9nH,OAAOkmH,EAAOnH,WAAY,KAAO,MAAMt+G,OAAOyhF,IAAU58E,KAAK,KAIhK,gBAAiBsiH,EAAa,OAAS,KACvC,eAAgBA,EAAa,OAAS,MAExCtmH,IAAKqmH,GACJ,CAACK,GACN,IAIA,OAAOnoH,EAAE,MAAO,CACdykG,YAAa,iBACbhjG,IAAKuiH,EAAK,GAAG3B,KACZwF,EACL,IACAD,EAAY5nH,EAAE,MAAO,CAEnBykG,YAAa,uBACbz9F,MAAO+qB,EAAW,CAChBq2F,cAAe,QACb,CAAC,GAEJR,GACH,IAAIS,EAAYroH,EAAE,MAAO,CACvBykG,YAAa,wEACbj8F,MAAO,CACLsvB,GAAI6oF,IAEL,CAAC3gH,EAAE,MAAO,CACXykG,YAAa,SACZvlG,KAAKs/G,aACJ8J,EAAQtoH,EAAE,MAAO,CACnBykG,YAAa,kDACbj8F,MAAO,CACLsvB,GAAI2oF,EACJjZ,KAAM,cACN8L,SAAU+L,EAAW,KAAOttF,EAAW,KAAO,IAC9C,aAAckuF,EAAUp8G,MAAM,GAAI,GAElC,uBAAwB3E,KAAKo/G,eAAiB,KAC9C,kBAAmBoC,EACnB,mBAAoBC,EAIpB,gBAAiB5uF,EAAW,OAAS,KACrC,wBAAyB6uF,GAE3BrxB,GAAI,CACF8lB,QAASn2G,KAAKwmH,cACd9kB,MAAO1hG,KAAKkmH,iBACZtkB,KAAM5hG,KAAKkmH,kBAEb/kG,IAAK,QACJ,CAACqnG,EAAcC,EAAeC,EAAWS,IAExCE,EAAQrpH,KAAKs6F,gBACjB+uB,EAAQA,EAAQvoH,EAAE,SAAU,CAC1BykG,YAAa,qBACZ8jB,GAASvoH,IACZ,IAAIwoH,EAAUxoH,EAAE,MAAO,CACrBykG,YAAa,mBACbz9F,MAAO9H,KAAKg1G,MAAQ,CAAC,EAAI,CACvB7W,MAAOn+F,KAAKm+F,OAEd70F,MAAO,CACLsvB,GAAIyoF,EACJsB,IAAKD,EAAQ,MAAQ,MACrB6G,KAAMvpH,KAAKgiH,gBAAkB,KAC7B1Z,KAAM,QACN,gBAAiBz1E,EAAW,OAAS,KAErC,gBAAiB7yB,KAAK0+G,cAAgB,KAEtC,uBAAwB1+G,KAAKqgH,iBAAmB,KAChD,mBAAoB,CAEpBrgH,KAAKuxG,QAAQ,oBAAqB6P,EAASK,GAAY//G,OAAOyhF,IAAU58E,KAAK,MAE/E8pF,GAAI,CACF8lB,QAASn2G,KAAKmmH,mBAEf,CAACoB,EAASgB,EAAMa,EAAOC,IAE1B,OAAOvoH,EAAE,MAAO,CACdykG,YAAa,aACb/7F,MAAO,CACL,UAAWxJ,KAAKg1G,QAEjB,CAACsU,GACN,IGj/BEE,GAA8BlkC,GAAc,CAC9CP,WAAY,CACV67B,UAAWA,MCCJ93G,GAAQ46F,GAAsB,CACvC+lB,UAAW1mB,GAASlO,IACpB60B,cAAe3mB,GAASlO,IACxB9qF,IAAKg5F,GAASlO,GAAkB,OAChCuQ,YAAarC,GAASlO,KACrBnO,ICJQ59E,IDOYy8E,GAAO,CAC5Bz8E,MAAOA,KCRU46F,GAAsB,CACvCz2F,MAAO81F,GAASlO,IAChB80B,SAAU5mB,GAASlO,GAAkB,OACpC1N,KAGQyiC,GAA0BrkC,GAAO,CAC1C3gF,KAAMuiF,GACNtnF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIr3B,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZC,EAAWk3B,EAAKl3B,SACpB,OAAOnI,EAAEgI,EAAM6gH,SAAUhkB,GAAU38F,EAAM,CACvCu8F,YAAa,eACXt8F,GAAYvE,GAASoE,EAAMmE,OACjC,ICjBSnE,GAAQ46F,GAAsB,CACvCmmB,SAAU9mB,GAASlO,IACnBi1B,YAAa/mB,GAASlO,GAAkB,MACxCk1B,oBAAqBhnB,GAASlO,GAAkB,UAC/C5N,IAGQ+iC,GAA6BzkC,GAAO,CAC7C3gF,KAAMqiF,GACNpnF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIr3B,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZC,EAAWk3B,EAAKl3B,SACpB,OAAOnI,EAAEgI,EAAMghH,YAAankB,GAAU38F,EAAM,CAC1Cu8F,YAAa,gBACb/7F,MAAO,CAACV,EAAMihH,oBAAsB,QAAQ9oH,OAAO6H,EAAMihH,qBAAuB,QAC9E9gH,GAAYvE,GAASoE,EAAM+gH,UACjC,ICzBF,SAAS1oH,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAWzM,IAAIiG,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAcA,GAAcA,GAAc,CAAC,EAAGynC,IAAaC,IAAgBjnB,GAAUknB,GAAWxnB,GAAez5F,KAAK,KAAM,UAAW,CAAC,EAAG,CACvMkhH,UAAWrnB,GAAS/N,IACpBq1B,QAAStnB,GAASxO,IAAmB,MAClC5N,IAGM2jC,GAAyB/kC,GAAO,CACzC3gF,KAAM+hF,GACN9mF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIyrE,EAEA9iG,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZC,EAAWk3B,EAAKl3B,SAChBshH,EAAgBzhH,EAAMyhH,cACtBC,EAAoB1hH,EAAM0hH,kBAC1BC,EAAkB3hH,EAAM2hH,gBACxBnd,EAASxsG,IAETgI,EAAMmE,QACRqgG,EAASxsG,EAAE8oH,GAAY,CACrB9gH,MAAOs6F,GAAW6mB,GAAYnhH,MAIlC,IAAI4hH,EAAY5pH,IAShB,OAPIgI,EAAM+gH,WACRa,EAAY5pH,EAAEkpH,GAAe,CAC3BlhH,MAAOs6F,GAAW8mB,GAAephH,GACjCU,MAAO,CAAC,WAIL1I,EAAEgI,EAAM6hH,QAAShlB,GAAU38F,EAAM,CACtCu8F,YAAa,YACb/7F,MAAO,EAAEoiG,EAAQ,CACf,mBAAoB9iG,EAAMuhH,SACzB7nH,GAAgBopG,EAAO,MAAM3qG,OAAOspH,GAAgBA,GAAgB/nH,GAAgBopG,EAAO,UAAU3qG,OAAOupH,GAAoBA,GAAoBhoH,GAAgBopG,EAAO,QAAQ3qG,OAAOwpH,GAAkBA,GAAkB7e,GAAQ9iG,EAAMshH,aAC7O,CAAC9c,EAAQod,EAAWzhH,GAC1B,ICzDF,SAAS9H,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAUzM,IAAIiG,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAc,CAAC,EAAGygB,GAAU2nB,GAAYjoB,GAAez5F,KAAK,KAAM,YAAa,CAAC,EAAG,CACjJqqB,OAAQwvE,GAASlO,IACjBg2B,YAAa9nB,GAAS/N,IACtB81B,WAAY/nB,GAASlO,OAClB/N,IAGMikC,GAA2BxlC,GAAO,CAC3C3gF,KAAMkiF,GACNjnF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIyrE,EAEA9iG,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZC,EAAWk3B,EAAKl3B,SAChB+hH,EAAkBliH,EAAMkiH,gBACxBC,EAAsBniH,EAAMmiH,oBAC5BC,EAAoBpiH,EAAMoiH,kBAC9B,OAAOpqH,EAAEgI,EAAMk2G,UAAWrZ,GAAU38F,EAAM,CACxCu8F,YAAa,cACb/7F,MAAO,CAACV,EAAM+hH,aAAcjf,EAAQ,CAAC,EAAGppG,GAAgBopG,EAAO,MAAM3qG,OAAO+pH,GAAkBA,GAAkBxoH,GAAgBopG,EAAO,UAAU3qG,OAAOgqH,GAAsBA,GAAsBzoH,GAAgBopG,EAAO,QAAQ3qG,OAAOiqH,GAAoBA,GAAoBtf,IAClRnG,SAAUx8F,EAAW,CAAC,EAAIgwG,GAAWnwG,EAAMgiH,WAAYhiH,EAAMyqB,UAC3DtqB,EACN,ICvCF,SAAS9H,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAUzM,IAAIiG,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAc,CAAC,EAAGygB,GAAU2nB,GAAYjoB,GAAez5F,KAAK,KAAM,YAAa,CAAC,EAAG,CACjJiiH,OAAQpoB,GAASlO,IACjBu2B,YAAaroB,GAAS/N,IACtBq2B,WAAYtoB,GAASlO,OAClBjO,IAGM0kC,GAA2B/lC,GAAO,CAC3C3gF,KAAMgiF,GACN/mF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIyrE,EAEA9iG,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZC,EAAWk3B,EAAKl3B,SAChBsiH,EAAkBziH,EAAMyiH,gBACxBC,EAAsB1iH,EAAM0iH,oBAC5BC,EAAoB3iH,EAAM2iH,kBAC9B,OAAO3qH,EAAEgI,EAAM4iH,UAAW/lB,GAAU38F,EAAM,CACxCu8F,YAAa,cACb/7F,MAAO,CAACV,EAAMsiH,aAAcxf,EAAQ,CAAC,EAAGppG,GAAgBopG,EAAO,MAAM3qG,OAAOsqH,GAAkBA,GAAkB/oH,GAAgBopG,EAAO,UAAU3qG,OAAOuqH,GAAsBA,GAAsBhpH,GAAgBopG,EAAO,QAAQ3qG,OAAOwqH,GAAoBA,GAAoB7f,IAClRnG,SAAUx8F,EAAW,CAAC,EAAIgwG,GAAWnwG,EAAMuiH,WAAYviH,EAAMqiH,UAC3DliH,EACN,ICvCF,SAASzG,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAahN,IAAI8oH,GAAiB,0LAEjBC,GAAkB,SAAyBztB,EAAOD,EAAQ2tB,GAC5D,IAAIjtG,EAAM4rF,mBAAmBmhB,GAAejlH,QAAQ,OAAQhC,GAASy5F,IAAQz3F,QAAQ,OAAQhC,GAASw5F,IAASx3F,QAAQ,OAAQmlH,IAC/H,MAAO,oCAAoC5qH,OAAO2d,EACpD,EAGW9V,GAAQ46F,GAAsB,CACvCiT,IAAK5T,GAASlO,IACdi3B,MAAO/oB,GAASxO,IAAmB,GACnCw3B,WAAYhpB,GAASlO,GAAkB,eACvCmgB,MAAOjS,GAASxO,IAAmB,GACnCy3B,OAAQjpB,GAASxO,IAAmB,GACpC03B,MAAOlpB,GAASxO,IAAmB,GAEnC23B,UAAWnpB,GAASxO,IAAmB,GACvC2J,OAAQ6E,GAASxN,IACjBhrD,KAAMw4D,GAASxO,IAAmB,GAClC/pD,MAAOu4D,GAASxO,IAAmB,GAUnC2iB,QAASnU,GAAS3N,IAA0B,GAC5C+2B,MAAOppB,GAAS9N,IAChBr2E,IAAKmkF,GAASlO,IACdu3B,OAAQrpB,GAAS9N,IACjBo3B,UAAWtpB,GAASxO,IAAmB,GACvC4J,MAAO4E,GAASxN,KACf5L,IAGQ2iC,GAAoB/mC,GAAO,CACpC3gF,KAAM+kF,GACN9pF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAI4sE,EAEAjkG,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZ2tG,EAAM7tG,EAAM6tG,IACZ/3F,EAAM9V,EAAM8V,IACZo2F,EAAQlsG,EAAMksG,MACdkX,EAAYpjH,EAAMojH,UAClBhV,EAAUpuG,EAAMouG,QAChB/Y,EAAQrD,GAAUhyF,EAAMq1F,QAAU,KAClCD,EAASpD,GAAUhyF,EAAMo1F,SAAW,KACpCquB,EAAQ,KACRH,EAASnrH,GAAO6H,EAAMsjH,QAAQ1qH,OAAOyhF,IAAU58E,KAAK,KACpD4lH,EAAQlrH,GAAO6H,EAAMqjH,OAAOzqH,OAAOyhF,IAAU58E,KAAK,KA8BtD,OA5BIuC,EAAMgjH,SACH5tB,GAAUC,EACbD,EAASC,GACCA,GAASD,IACnBC,EAAQD,GAGLC,GAAUD,IACbC,EAAQ,EACRD,EAAS,GAIXt/E,EAAMgtG,GAAgBztB,EAAOD,EAAQp1F,EAAMijH,YAAc,eAEzDK,EAAS,KACTD,EAAQ,MAGNrjH,EAAMyhC,KACRgiF,EAAQ,aACCzjH,EAAM0hC,MACf+hF,EAAQ,cACCzjH,EAAMkjH,SACfO,EAAQ,UACRvX,GAAQ,GAGHl0G,EAAE,MAAO6kG,GAAU38F,EAAM,CAC9BM,MAAO,CACLsV,IAAKA,EACL+3F,IAAKA,EACLxY,MAAOA,EAAQz5F,GAASy5F,GAAS,KACjCD,OAAQA,EAASx5F,GAASw5F,GAAU,KACpCkuB,OAAQA,GAAU,KAClBD,MAAOA,GAAS,MAElB3iH,OAAQujG,EAAS,CACf,gBAAiBjkG,EAAMujH,UACvB,YAAavjH,EAAMmjH,OAASC,EAC5B,QAASA,EACThV,QAAqB,KAAZA,IAA8B,IAAZA,GAC1B10G,GAAgBuqG,EAAQ,WAAW9rG,OAAOi2G,GAAUxmG,GAASwmG,IAAwB,KAAZA,GAAiB10G,GAAgBuqG,EAAQwf,EAAOA,GAAQ/pH,GAAgBuqG,EAAQ,UAAWiI,GAAQjI,KAEnL,ICnHF,SAAS5rG,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CASzM,IAAIiG,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAc,CAAC,EAAGK,GAAK2pC,GAAW,CAAC,MAAO,MAAO,QAAS,SAAU,OAAQ,WAAY,CAAC,EAAG,CAC1JvU,OAAQlV,GAASxO,IAAmB,GACpCp5E,IAAK4nF,GAASxO,IAAmB,GACjCh+E,MAAOwsF,GAASxO,IAAmB,GACnCgM,IAAKwC,GAASxO,IAAmB,MAC9BxN,IAGM0lC,GAAwBlnC,GAAO,CACxC3gF,KAAMmiF,GACNlnF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIr3B,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZ4V,EAAM9V,EAAM8V,IACZ+3F,EAAM7tG,EAAM6tG,IACZxY,EAAQr1F,EAAMq1F,MACdD,EAASp1F,EAAMo1F,OACfliF,EAAY,WAYhB,OAVIlT,EAAMy3F,IACRvkF,GAAa,OACJlT,EAAM0hC,OAAS1hC,EAAMqS,IAC9Ba,GAAa,SACJlT,EAAMmvG,OACfj8F,GAAa,WACJlT,EAAMyhC,MAAQzhC,EAAMyN,SAC7ByF,GAAa,SAGRlb,EAAE,MAAO6kG,GAAU38F,EAAM,CAC9BQ,MAAOwS,EACP1S,MAAO,CACLsV,IAAKA,EACL+3F,IAAKA,EACLxY,MAAOA,EACPD,OAAQA,KAGd,ICrDF,SAAS/8F,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAgBhN,IAAI6pH,GAAezpB,GAAU0pB,GAAehqB,GAAez5F,KAAK,KAAM,QACtEwjH,GAAaE,OAAOjgH,UAAW,EACxB,IAAI7D,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAc,CAAC,EAAGqqC,IAAiBC,IAAmBC,IAAmBL,IAAevC,IAAY,CAAC,EAAG,CAC9NoC,MAAOxpB,GAASlO,IAChBm4B,OAAQjqB,GAASxO,IAAmB,MACjC7N,IAGMumC,GAAqB1nC,GAAO,CACrC3gF,KAAM8hF,GACN7mF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAI4sE,EAEAjkG,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZymF,EAAQtvD,EAAKsvD,MACbM,EAAc5vD,EAAK4vD,YACnB68B,EAAS9jH,EAAM8jH,OACfM,EAAUpkH,EAAMokH,QAChBC,EAAWrkH,EAAMqkH,SACjBC,EAAWtkH,EAAMskH,SACjBC,EAASvkH,EAAMukH,OACfC,EAAYxkH,EAAMwkH,UAClB/5F,EAASzqB,EAAMyqB,OACfu3F,EAAahiH,EAAMgiH,WACnBK,EAASriH,EAAMqiH,OACfE,EAAaviH,EAAMuiH,WACnBkB,EAAQzjH,EAAMyjH,MACdnnB,EAAct8F,EAAMs8F,YACpBqkB,EAAY3gH,EAAM2gH,UAClBC,EAAgB5gH,EAAM4gH,cACtBtvB,EAAerK,GAAe,CAAC,EAC/BsK,EAAS5K,IACT89B,EAAY,CAAC,EACbC,EAAY1sH,IACZ2sH,EAAW3sH,IAEf,GAAI8rH,EAAQ,CACV,IAAIc,EAAO5sH,EAAE2rH,GAAU,CACrB3jH,MAAOs6F,GAAWspB,GAAc5jH,EAAO85F,GAAiB15F,KAAK,KAAM,UAGjEokH,EACFG,EAAWC,EAEXF,EAAYE,CAEhB,CAEA,IAAInG,EAAUzmH,IACV6sH,EAAgBzzB,GAAkBpD,GAAkBsD,EAAcC,IAElEszB,GAAiBp6F,GAAUu3F,KAC7BvD,EAAUzmH,EAAEiqH,GAAa,CACvBjiH,MAAOs6F,GAAW0pB,GAAkBhkH,GACpC28F,SAAUkoB,EAAgB,CAAC,EAAI1U,GAAW6R,EAAYv3F,IACrD+mE,GAAcxD,GAAkBy2B,EAAWnzB,EAAcC,KAG9D,IAAI6P,EAAW5P,GAAcnE,GAAmBo3B,EAAWnzB,EAAcC,GAEpEvxF,EAAMkkH,SACT9iB,EAAWppG,EAAEwpH,GAAW,CACtBxhH,MAAOs6F,GAAWypB,GAAgB/jH,IACjCohG,GAGCphG,EAAMuhH,SAAWuC,IACnB1iB,EAAWppG,EAAE,MAAO,CAClBykG,YAAa,qBACZ,CAACioB,EAAWtjB,EAAUujB,IAEzBD,EAAY1sH,IACZ2sH,EAAW3sH,MAIf,IAAI8sH,EAAU9sH,IACV+sH,EAAgB3zB,GAAkBrD,GAAkBuD,EAAcC,GAStE,OAPIwzB,GAAiB1C,GAAUE,KAC7BuC,EAAU9sH,EAAEwqH,GAAa,CACvBxiH,MAAOs6F,GAAW2pB,GAAkBjkH,GACpC28F,SAAUkoB,EAAgB,CAAC,EAAI1U,GAAWoS,EAAYF,IACrD7wB,GAAczD,GAAkB02B,EAAWnzB,EAAcC,KAGvDv5F,EAAEgI,EAAMiB,IAAK47F,GAAU38F,EAAM,CAClCu8F,YAAa,OACb/7F,OAAQujG,EAAS,CACf,WAAYmgB,GAAWE,EACvB,oBAAqBD,GAAYE,MAAaH,GAAWE,IACxD5qH,GAAgBuqG,EAAQ,QAAQ9rG,OAAOsrH,GAAQA,GAAQ/pH,GAAgBuqG,EAAQ,MAAM9rG,OAAOwoH,GAAYA,GAAYjnH,GAAgBuqG,EAAQ,UAAU9rG,OAAOyoH,GAAgBA,GAAgBlnH,GAAgBuqG,EAAQ,QAAQ9rG,OAAOmkG,GAAcA,GAAc2H,KACjQ,CAACygB,EAAWjG,EAASrd,EAAU0jB,EAASH,GAC9C,ICpHF,SAASvuC,GAAgBC,EAAU58D,GAAe,KAAM48D,aAAoB58D,GAAgB,MAAM,IAAIvd,UAAU,oCAAwC,CAExJ,SAAS++E,GAAkB9hF,EAAQ6G,GAAS,IAAK,IAAI5G,EAAI,EAAGA,EAAI4G,EAAM1G,OAAQF,IAAK,CAAE,IAAIygF,EAAa75E,EAAM5G,GAAIygF,EAAW9gF,WAAa8gF,EAAW9gF,aAAc,EAAO8gF,EAAWx/E,cAAe,EAAU,UAAWw/E,IAAYA,EAAWv/E,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ0gF,EAAWpgF,IAAKogF,EAAa,CAAE,CAE5T,SAASqB,GAAazhE,EAAa0hE,EAAYC,GAAyN,OAAtMD,GAAYF,GAAkBxhE,EAAYtf,UAAWghF,GAAiBC,GAAaH,GAAkBxhE,EAAa2hE,GAAc3iF,OAAOoB,eAAe4f,EAAa,YAAa,CAAEnf,UAAU,IAAiBmf,CAAa,CAwC5R,IC5CIwd,GD4CA+tF,GAAqB,4BAErBC,GAAkC,WACpC,SAASA,EAAmB/+B,EAAIrvF,GAC9Bu/E,GAAgBl/E,KAAM+tH,GAEtB/tH,KAAKgvF,GAAKA,EACVhvF,KAAKoH,SAAWzH,EAAQyH,SACxBpH,KAAKguH,OAASruH,EAAQquH,QAAU,EAChChuH,KAAKiuH,KAAOtuH,EAAQsuH,OAAQ,EAC5BjuH,KAAKkuH,SAAW,KAChBluH,KAAKmuH,aAAUplH,EACf/I,KAAKouH,UAAW,EAEhBpuH,KAAKquH,gBACP,CA+EA,OA7EArqC,GAAa+pC,EAAoB,CAAC,CAChCxrH,IAAK,iBACLW,MAAO,WACL,IAAIsZ,EAAQxc,KASZ,GANIA,KAAKkuH,UAEPluH,KAAKsuH,QAIHtuH,KAAKouH,UAAaz9G,GAAW3Q,KAAKoH,UAAtC,CAMA,IAGEpH,KAAKkuH,SAAW,IAAIK,qBAAqBvuH,KAAKye,QAAQvV,KAAKlJ,MAAO,CAEhE2+F,KAAM,KAEN6vB,WAAYxuH,KAAKguH,OAEjBS,UAAW,GAEf,CAAE,MAAOjyC,GAKP,OAHAx8E,KAAKouH,UAAW,EAChBpuH,KAAKkuH,cAAWnlH,OAChB/I,KAAKoH,SAAS,KAEhB,CAKAkpF,IAAS,WACPyM,IAAU,WAGJvgF,EAAM0xG,UACR1xG,EAAM0xG,SAASQ,QAAQlyG,EAAMwyE,GAEjC,GACF,GAjCA,CAkCF,GAGC,CACDzsF,IAAK,UACLW,MAAO,SAAiByrH,GACtB,IAAItwG,EAAQswG,EAAUA,EAAQ,GAAK,CAAC,EAChCC,EAAiBriH,QAAQ8R,EAAMuwG,gBAAkBvwG,EAAMwwG,kBAAoB,GAE3ED,IAAmB5uH,KAAKmuH,UAC1BnuH,KAAKmuH,QAAUS,EACf5uH,KAAKoH,SAASwnH,GAEV5uH,KAAKiuH,MAAQjuH,KAAKmuH,UACpBnuH,KAAKouH,UAAW,EAChBpuH,KAAKsuH,QAGX,GACC,CACD/rH,IAAK,OACLW,MAAO,WAELlD,KAAKkuH,UAAYluH,KAAKkuH,SAASY,aAC/B9uH,KAAKkuH,SAAW,IAClB,KAGKH,CACT,CA7FsC,GA+FlCgB,GAAU,SAAiB//B,GAC7B,IAAIk/B,EAAWl/B,EAAG8+B,IAEdI,GAAYA,EAASI,MACvBJ,EAASI,cAGJt/B,EAAG8+B,GACZ,EAEI5kH,GAAO,SAAc8lF,EAAI7uD,GAC3B,IAAIj9B,EAAQi9B,EAAKj9B,MACb8rH,EAAY7uF,EAAK6uF,UAEjBrvH,EAAU,CACZquH,OAAQ,MACRC,MAAM,EACN7mH,SAAUlE,GAGZ5B,GAAK0tH,GAAW1sH,SAAQ,SAAU2sH,GAE5B5xC,EAAUx4E,KAAKoqH,GACjBtvH,EAAQquH,OAAS,GAAG/sH,OAAOguH,EAAK,MACD,SAAtBA,EAAIloH,gBACbpH,EAAQsuH,MAAO,EAEnB,IAEAc,GAAQ//B,GAERA,EAAG8+B,IAAsB,IAAIC,GAAmB/+B,EAAIrvF,GAEpDqvF,EAAG8+B,IAAoBoB,eAAiBt9F,GAAMo9F,EAChD,EAGIG,GAAmB,SAA0BngC,EAAI4c,EAAO1c,GAC1D,IAAIhsF,EAAQ0oG,EAAM1oG,MACd6tG,EAAWnF,EAAMmF,SACjBie,EAAYpjB,EAAMojB,UAKtBA,EAAYp9F,GAAMo9F,IAGdhgC,GAAO9rF,IAAU6tG,GAAa/hB,EAAG8+B,KAAwBxd,GAAW0e,EAAWhgC,EAAG8+B,IAAoBoB,iBAExGhmH,GAAK8lF,EAAI,CACP9rF,MAAOA,EACP8rH,UAAWA,GACV9/B,EAEP,EAGIkgC,GAAS,SAAgBpgC,GAE3B+/B,GAAQ//B,EACV,EAGWqgC,GAAY,CACrBnmH,KAAMA,GACNimH,iBAAkBA,GAClBC,OAAQA,IC9MV,SAASjuH,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAgBhN,IAAIysH,GAAuB,OACvBC,GAAwBv7B,GAA0Bs7B,GAElDE,GAAW1sC,GAAK0pC,GAAW,CAAC,UACrB1jH,GAAQ46F,GAAsBlhB,GAAcA,GAAc,CAAC,EAAGgtC,IAAW,CAAC,EAAGhtH,GAAgB,CACtGitH,YAAa1sB,GAASxN,IAEtBm6B,SAAU3sB,GAASlO,GAAkB,MACrC86B,WAAY5sB,GAASxN,IAGrB8K,OAAQ0C,GAASxN,GAAyB,MACzC+5B,GAAsBvsB,GAASxO,IAAmB,KAAU3K,IAGpDgmC,GAAwBrqC,GAAO,CACxC3gF,KAAMglF,GACN5E,WAAY,CACV,YAAaqqC,IAEfvmH,MAAOA,GACPE,KAAM,WACJ,MAAO,CACL6mH,QAAS7vH,KAAKsvH,IAElB,EACA3lB,SAAU,CACRmmB,YAAa,WACX,IAAIJ,EAAW1vH,KAAK0vH,SACpB,OAAQA,GAAY1vH,KAAK6vH,QAAU7vH,KAAK4e,IAAM8wG,CAChD,EACAK,cAAe,WACb,QAAS/vH,KAAK6vH,SAAW7vH,KAAK0vH,SAChC,EACAM,cAAe,WACb,IAAI7xB,EAAQn+F,KAAKm+F,MACjB,OAAOn+F,KAAK6vH,QAAU1xB,EAAQn+F,KAAK2vH,YAAcxxB,CACnD,EACA8xB,eAAgB,WACd,IAAI/xB,EAASl+F,KAAKk+F,OAClB,OAAOl+F,KAAK6vH,QAAU3xB,EAASl+F,KAAKyvH,aAAevxB,CACrD,EACAgyB,eAAgB,WACd,IAAI9D,EAASnrH,GAAOjB,KAAKosH,QAAQ1qH,OAAOyhF,IAAU58E,KAAK,KACvD,OAAO6lH,GAAYpsH,KAAK0vH,WAAY1vH,KAAK6vH,QAAoB,KAATzD,CACtD,EACA+D,cAAe,WACb,IAAIhE,EAAQlrH,GAAOjB,KAAKmsH,OAAOzqH,OAAOyhF,IAAU58E,KAAK,KACrD,OAAO4lH,GAAWnsH,KAAK0vH,WAAY1vH,KAAK6vH,QAAmB,KAAR1D,CACrD,GAEFvkB,OAAQ7nE,GAAS,CAAC,EAAGv9B,GAAgBu9B,GAAQuvF,IAAsB,SAAUn9G,EAAU4+F,GACrF,GAAI5+F,IAAa4+F,EAAU,CAEzB,IAAIod,GAAUpxC,GAAmC5qE,EACjDnS,KAAK6vH,QAAU1B,EAEXh8G,IAAag8G,GACfnuH,KAAKgoG,UAAUhoG,KAAKowH,eAExB,CACF,IAAI5tH,GAAgBu9B,GAAQ,WAAW,SAAiB5tB,EAAU4+F,GAE5D5+F,IAAa4+F,GACf/wG,KAAKowH,gBAET,IAAIrwF,IACJ46E,QAAS,WACP,IAAIn+F,EAAQxc,KAGZA,KAAKgoG,WAAU,WACbxrF,EAAMqzG,SAAU9yC,GAAmCvgE,EAAM8yG,GAC3D,GACF,EACA50B,QAAS,CACP01B,eAAgB,WACdpwH,KAAK8nG,MAAMynB,GAAuBvvH,KAAK6vH,QACzC,EACAQ,OAAQ,SAAgBlC,GACtB,IAAI9b,EAASryG,MAIRmuH,GAAuB,OAAZA,GAAsBnuH,KAAK6vH,SAGzC9yB,IAAU,WACRsV,EAAOwd,SAAU,CACnB,GAEJ,GAEF1wH,OAAQ,SAAgB2B,GACtB,IAGMwvH,EAHFtrC,EAAa,GAEZhlF,KAAK6vH,SAIR7qC,EAAWljF,KAAK,CAGd8C,KAAM,YAEN1B,MAAOlD,KAAKqwH,OACZrB,WAAYsB,EAAa,CAAC,EAAG9tH,GAAgB8tH,EAAY,GAAGrvH,OAAO65F,GAAU96F,KAAKqgG,OAAQ,KAAK,GAAO79F,GAAgB8tH,EAAY,QAAQ,GAAOA,KAIrJ,OAAOxvH,EAAEwrH,GAAM,CACbtnC,WAAYA,EACZl8E,MAAO05E,GAAcA,GAAc,CAAC,EAAG4gB,GAAWosB,GAAUxvH,KAAKuwH,SAAU,CAAC,EAAG,CAE7E3xG,IAAK5e,KAAK8vH,YACVhE,MAAO9rH,KAAK+vH,cACZ5xB,MAAOn+F,KAAKgwH,cACZ9xB,OAAQl+F,KAAKiwH,eACb7D,OAAQpsH,KAAKkwH,eACb/D,MAAOnsH,KAAKmwH,iBAGlB,IChJF,SAAShvH,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAUzM,IAAIiG,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAc,CAAC,EAAGM,GAAK0tC,GAAelvH,GAAKkrH,MAAc1pC,GAAK6pC,GAAe,CAAC,MAAO,MAAO,QAAS,aAAc3lC,IAGxKypC,GAA4BlrC,GAAO,CAC5C3gF,KAAMoiF,GACNnnF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIr3B,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZgT,EAAY,WAYhB,OAVIlT,EAAMy3F,IACRvkF,GAAa,OACJlT,EAAM0hC,OAAS1hC,EAAMqS,IAC9Ba,GAAa,SACJlT,EAAMmvG,OACfj8F,GAAa,WACJlT,EAAMyhC,MAAQzhC,EAAMyN,SAC7ByF,GAAa,SAGRlb,EAAE8uH,GAAUjqB,GAAU38F,EAAM,CACjCQ,MAAO,CAACwS,GAERlT,MAAOg6E,GAAKh6E,EAAO,CAAC,OAAQ,YAEhC,ICpCSA,GAAQ46F,GAAsB,CACvCgtB,QAAS3tB,GAASlO,GAAkB,MACnC3N,IAGQypC,GAAyBprC,GAAO,CACzC3gF,KAAMsiF,GACNrnF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIr3B,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZC,EAAWk3B,EAAKl3B,SACpB,OAAOnI,EAAEgI,EAAM4nH,QAAS/qB,GAAU38F,EAAM,CACtCu8F,YAAa,cACXt8F,EACN,IChBSH,GAAQ46F,GAAsB,CACvCktB,QAAS7tB,GAASxO,IAAmB,GACrCs8B,KAAM9tB,GAASxO,IAAmB,GAClCxqF,IAAKg5F,GAASlO,GAAkB,QAC/BhO,IAGQiqC,GAA0BvrC,GAAO,CAC1C3gF,KAAMiiF,GACNhnF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIr3B,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZC,EAAWk3B,EAAKl3B,SACpB,OAAOnI,EAAEgI,EAAMiB,IAAK47F,GAAU38F,EAAM,CAClCQ,MAAOV,EAAM+nH,KAAO,YAAc/nH,EAAM8nH,QAAU,eAAiB,eACjE3nH,EACN,ICZE8nH,GAA0BzrC,GAAc,CAC1CP,WAAY,CACVkoC,MAAOA,GACPlC,YAAaA,GACbT,UAAWA,GACXV,WAAYA,GACZI,cAAeA,GACfsB,YAAaA,GACbmB,SAAUA,GACVgE,aAAcA,GACdE,UAAWA,GACXG,WAAYA,MCtBLE,GAAO,WAAiB,ECAnC,SAAS7vH,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAYzM,IChBHk9B,GDgBOkxF,GAAa,SAAoBjiC,EAAI5nF,EAAUzH,GAQxD,GAJAqvF,EAAKA,EAAKA,EAAG6lB,KAAO7lB,EAAK,MAIpBwO,GAAUxO,GACb,OAAO,KAIT,GAAIlL,GAA8B,cAChC,OAAO,KAIT,IAAIotC,EAAM,IAAI7zB,IAAY,SAAU8zB,GAMlC,IALA,IAAIC,GAAU,EAKLlvH,EAAI,EAAGA,EAAIivH,EAAU/uH,SAAWgvH,EAASlvH,IAAK,CAErD,IAAImvH,EAAWF,EAAUjvH,GAErBoK,EAAO+kH,EAAS/kH,KAEhBrK,EAASovH,EAASpvH,QAET,kBAATqK,GAA4BrK,EAAO26F,WAAaC,KAAKy0B,WAIrC,eAAThlH,GAES,cAATA,IAAyB+kH,EAASE,WAAWnvH,OAAS,GAAKivH,EAASG,aAAapvH,OAAS,MAHnGgvH,GAAU,EAQd,CAIIA,GACFhqH,GAEJ,IASA,OAPA8pH,EAAIxC,QAAQ1/B,EAAIxM,GAAc,CAC5BivC,WAAW,EACXC,SAAS,GACR/xH,IAIIuxH,CACT,EC1EA,SAAS/vH,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAqBhN,IAAIikG,GAAkBjD,GAAe,QAAS,CAC5Cv3F,KAAMooF,GACNv6D,aAAc,IAEZ4sE,GAAaD,GAAgB5C,MAC7B8C,GAAaF,GAAgBh+F,MAC7Bm+F,GAAkBH,GAAgBz+F,KAClC6+F,GAAmBJ,GAAgBp9C,MAGnCioE,GAAY,CACd53G,KAAM,CACJ63G,SAAU,qBACVC,aAAc,sBAEhBC,KAAM,CACJF,SAAU,sBACVC,aAAc,uBAIdE,GAAiB,IAEjBC,GAA0B,IAE1BC,GAAkB,GAElBC,GAAc,CAChBC,MAAO,QACPC,IAAK,OAGHC,GAAsB,CACxBC,iBAAkB,sBAClBC,cAAe,gBACfC,YAAa,gCACbC,WAAY,iBAIVC,GAAwB,SAA+B1jC,GACzD,IAAK,IAAIpqF,KAAQytH,GACf,IAAKliH,GAAY6+E,EAAGlnF,MAAMlD,IACxB,OAAOytH,GAAoBztH,GAO/B,OAAO,IACT,EAGWkE,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAcA,GAAc,CAAC,EAAGi8B,IAAUzX,IAAa,CAAC,EAAG,CACzH2rB,WAAY5vB,GAASlO,IACrBvc,SAAUyqB,GAASxO,IAAmB,GAEtCxpF,KAAMg4F,GAASxO,IAAmB,GAElCq+B,UAAW7vB,GAASxN,IAEpBs9B,SAAU9vB,GAASxN,IACnBu9B,WAAY/vB,GAASxO,IAAmB,GACxC3f,SAAUmuB,GAASrO,GAAkB,KACrCq+B,eAAgBhwB,GAASlO,GAAkB,cAC3Cm+B,gBAAiBjwB,GAASlO,GAAkB,6BAC5Co+B,UAAWlwB,GAASlO,GAAkB,cACtCq+B,UAAWnwB,GAASlO,GAAkB,kBAEtCs+B,YAAapwB,GAASxO,IAAmB,GAEzC6+B,aAAcrwB,GAASxO,IAAmB,GAE1C8+B,QAAStwB,GAASxO,IAAmB,GAErC++B,OAAQvwB,GAASxO,IAAmB,MACjCnN,IAGMmsC,GAAyBhuC,GAAO,CACzC3gF,KAAMwiF,GACNj+E,OAAQ,CAACm1G,GAASvX,GAAYtM,IAC9Bge,QAAS,WACP,IAAIj8F,EAAQxc,KAEZ,MAAO,CACLwzH,cAAe,WACb,OAAOh3G,CACT,EAEJ,EACA1T,MAAOA,GACPE,KAAM,WACJ,MAAO,CACLirC,MAAOj0C,KAAKinG,KAAoB,EAChCwsB,WAAW,EACXC,mBAAoB,KACpBC,OAAQ,GACR5U,UAAW,KACX6U,WAAY94B,GAAU96F,KAAK40E,SAAU,GAAK,GAE1Ci/C,YAAa,EACbC,YAAa,EAEjB,EACAnqB,SAAU,CACRoqB,UAAW,WACT,OAAO/zH,KAAK2zH,OAAOvxH,MACrB,GAEFwlG,OAAQ7nE,GAAS,CAAC,EAAGv9B,GAAgBu9B,GAAQknE,IAAiB,SAAU90F,EAAU4+F,GAC5E5+F,IAAa4+F,GACf/wG,KAAKg0H,SAASl5B,GAAU3oF,EAAU,GAEtC,IAAI3P,GAAgBu9B,GAAQ,YAAY,SAAkB5tB,EAAU4+F,GAE9D5+F,IAAa4+F,IAIZ5+F,GAKHnS,KAAKsoE,OAAM,GACXtoE,KAAKuW,OAAM,IAJXvW,KAAKsoE,OAAM,GAMf,IAAI9lE,GAAgBu9B,GAAQ,YAAY,SAAkB5tB,EAAU4+F,GAC9D5+F,IAAa4+F,GACf/wG,KAAK8nG,MAAM31F,EAAWqgF,GAAoBoB,GAE9C,IAAIpxF,GAAgBu9B,GAAQ,SAAS,SAAej0B,EAAIxH,GAElDwH,IAAOxH,GAAQtE,KAAKyzH,WAIxBzzH,KAAKi0H,QAAQnoH,EAAIxH,EACnB,IAAIy7B,IACJ8uD,QAAS,WAEP7uF,KAAKk0H,WAAa,KAClBl0H,KAAKm0H,mBAAqB,KAC1Bn0H,KAAKo0H,eAAiB,KACtBp0H,KAAKq0H,WAAa,KAElBr0H,KAAK4zH,WAAa94B,GAAU96F,KAAK40E,SAAU,GAAK,EAClD,EACA+lC,QAAS,WAEP36G,KAAK0zH,mBAAqBhB,GAAsB1yH,KAAK60G,MAAQ,KAE7D70G,KAAKs0H,eAELt0H,KAAKu0H,aAAY,EACnB,EACArsB,cAAe,WACbloG,KAAKw0H,gBACLx0H,KAAKy0H,wBACLz0H,KAAK00H,oBACL10H,KAAKu0H,aAAY,EACnB,EACA75B,QAAS,CACP85B,cAAe,SAAUG,GACvB,SAASH,IACP,OAAOG,EAAe5yH,MAAM/B,KAAMmC,UACpC,CAMA,OAJAqyH,EAAc9vH,SAAW,WACvB,OAAOiwH,EAAejwH,UACxB,EAEO8vH,CACT,CAVe,EAUb,WACAA,cAAcx0H,KAAKk0H,YACnBl0H,KAAKk0H,WAAa,IACpB,IACAO,sBAAuB,WACrBvyG,aAAaliB,KAAKm0H,oBAClBn0H,KAAKm0H,mBAAqB,IAC5B,EACAO,kBAAmB,WACjBxyG,aAAaliB,KAAKo0H,gBAClBp0H,KAAKo0H,eAAiB,IACxB,EACAG,YAAa,WACX,IAAIlkC,EAAKluF,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,IAAmBA,UAAU,GACxEnC,KAAKq0H,YAAcr0H,KAAKq0H,WAAWvF,aACnC9uH,KAAKq0H,WAAa,KAEdhkC,IACFrwF,KAAKq0H,WAAapD,GAAWjxH,KAAK6lH,MAAM+O,MAAO50H,KAAKs0H,aAAaprH,KAAKlJ,MAAO,CAC3E0xH,SAAS,EACTD,WAAW,EACXroH,YAAY,EACZyrH,gBAAiB,CAAC,QAGxB,EAEAb,SAAU,SAAkBc,GAC1B,IAAIziB,EAASryG,KAET++G,EAAY58G,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,KAKpF,KAAI25E,GAAcT,SAAS05C,iBAAmB15C,SAAS4jC,QAAvD,CAIA,IAAIqU,EAAStzH,KAAKszH,OACdS,EAAY/zH,KAAK+zH,UAErBe,EAAQlsB,GAAUksB,GAEA,IAAdf,IAKA/zH,KAAKyzH,UAEPzzH,KAAKuyG,MAAMhf,IAAwB,WAEjCwJ,IAAU,WACR,OAAOsV,EAAO2hB,SAASc,EAAO/V,EAChC,GACF,KAIF/+G,KAAK++G,UAAYA,EAGjB/+G,KAAKi0C,MAAQ6gF,GAASf,EAAYT,EAASS,EAAY,EAAI,EAAIe,EAAQ,EAAIxB,EAAS,EAAIS,EAAY,EAAIe,EAGpGxB,GAAUtzH,KAAKi0C,QAAU6gF,GAAS90H,KAAKi0C,QAAUj0C,KAAKinG,KACxDjnG,KAAK8nG,MAAMZ,GAAkBlnG,KAAKi0C,QA9BpC,CAgCF,EAEA69E,KAAM,WACJ9xH,KAAKg0H,SAASh0H,KAAKi0C,MAAQ,EAAG,OAChC,EAEAl6B,KAAM,WACJ/Z,KAAKg0H,SAASh0H,KAAKi0C,MAAQ,EAAG,OAChC,EAEAq0B,MAAO,SAAe5e,GACfA,IACH1pD,KAAK4zH,UAAW,GAGlB5zH,KAAKw0H,eACP,EAEAj+G,MAAO,SAAemzC,GACfA,IACH1pD,KAAK4zH,UAAW,GAKlB5zH,KAAKw0H,gBAEDx0H,KAAK40E,UAAY50E,KAAK+zH,UAAY,IACpC/zH,KAAKk0H,WAAac,YAAYh1H,KAAK+Z,KAAM7D,GAAQ,IAAMlW,KAAK40E,WAEhE,EAIAqgD,QAAS,WACFj1H,KAAK60G,IAAI/W,SAASL,OACrBz9F,KAAKuW,OAET,EACA09G,QAAS,SAAiBnoH,EAAIxH,GAC5B,IAAIohH,EAAS1lH,KAETk1H,EAAY3oH,QAAQvM,KAAK40E,UAEzBmqC,EAAY/+G,KAAKm1H,cAAcn1H,KAAK++G,UAAWz6G,EAAMwH,GACrD+lH,EAAe9S,EAAU8S,aACzBD,EAAW7S,EAAU6S,SAErBwD,EAAep1H,KAAK2zH,OAAOrvH,GAC3B+wH,EAAYr1H,KAAK2zH,OAAO7nH,GAE5B,GAAKspH,GAAiBC,EAAtB,CAgBA,GAVAr1H,KAAKyzH,WAAY,EAEbyB,GACFl1H,KAAKsoE,OAAM,GAGbtoE,KAAK8nG,MAAMtU,GAA0B1nF,GAErC9L,KAAK8nG,MAAMZ,GAAkBlnG,KAAKi0C,OAE9Bj0C,KAAKmzH,YACP/zB,GAASi2B,EAAW,UACpBh2B,GAAY+1B,EAAc,UAC1Bp1H,KAAKyzH,WAAY,EAEjBzzH,KAAKgoG,WAAU,WACb,OAAO0d,EAAO5d,MAAMvU,GAAwBznF,EAC9C,QACK,CACLszF,GAASi2B,EAAWxD,GAEpBtzB,GAAO82B,GACPj2B,GAASg2B,EAAcxD,GACvBxyB,GAASi2B,EAAWzD,GAEpB,IAAI0D,GAAS,EAGTC,EAAe,SAASA,IAC1B,IAAID,EAAJ,CAOA,GAHAA,GAAS,EAGL5P,EAAOgO,mBAAoB,CAC7B,IAAIriF,EAASq0E,EAAOgO,mBAAmBptH,MAAM,OAE7C+qC,EAAO/uC,SAAQ,SAAUonD,GACvB,OAAOxX,GAASmjF,EAAW3rE,EAAO6rE,EAAcnhC,GAClD,GACF,CAEAsxB,EAAO+O,wBAEPp1B,GAAYg2B,EAAWzD,GACvBvyB,GAAYg2B,EAAWxD,GACvBzyB,GAASi2B,EAAW,UACpBh2B,GAAY+1B,EAAc,UAC1B/1B,GAAY+1B,EAAcxD,GAC1BvyB,GAAY+1B,EAAcvD,GAC1BvyB,GAAQ81B,EAAc,eAAgB,SACtC91B,GAAQ+1B,EAAW,eAAgB,QACnC/1B,GAAQ81B,EAAc,cAAe,QACrC91B,GAAQ+1B,EAAW,cAAe,SAClC3P,EAAO+N,WAAY,EACnB/N,EAAO3G,UAAY,KAEnB2G,EAAO1d,WAAU,WACf,OAAO0d,EAAO5d,MAAMvU,GAAwBznF,EAC9C,GA9BA,CA+BF,EAKA,GAAI9L,KAAK0zH,mBAAoB,CAC3B,IAAIriF,EAASrxC,KAAK0zH,mBAAmBptH,MAAM,OAC3C+qC,EAAO/uC,SAAQ,SAAUonD,GACvB,OAAO3X,GAAQsjF,EAAW3rE,EAAO6rE,EAAcnhC,GACjD,GACF,CAGAp0F,KAAKm0H,mBAAqBnyG,WAAWuzG,EAAcxD,GACrD,CAEImD,GACFl1H,KAAKuW,OAAM,EAlFb,CAoFF,EAEA+9G,aAAc,WACZt0H,KAAKsoE,OAAM,GAEXtoE,KAAK2zH,OAASl1B,GAAU,iBAAkBz+F,KAAK6lH,MAAM+O,OACrD,IAAIb,EAAY/zH,KAAK2zH,OAAOvxH,OAExB6xC,EAAQ/9B,GAAQ,EAAGsyF,GAAQI,GAAU5oG,KAAKi0C,OAAQ8/E,EAAY,IAClE/zH,KAAK2zH,OAAOrxH,SAAQ,SAAUwyH,EAAO/5G,GACnC,IAAItW,EAAIsW,EAAM,EAEVA,IAAQk5B,GACVmrD,GAAS01B,EAAO,UAChBx1B,GAAQw1B,EAAO,eAAgB,UAE/Bz1B,GAAYy1B,EAAO,UACnBx1B,GAAQw1B,EAAO,eAAgB,UAGjCx1B,GAAQw1B,EAAO,gBAAiBroH,OAAOhI,IACvC66F,GAAQw1B,EAAO,eAAgBroH,OAAOsnH,GACxC,IAEA/zH,KAAKg0H,SAAS//E,GACdj0C,KAAKuW,MAAMvW,KAAK4zH,SAClB,EACAuB,cAAe,WACb,IAAIpW,EAAY58G,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,KAChFqzH,EAAWrzH,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,EAC/EszH,EAAYtzH,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,EAEpF,OAAK48G,EAIE4S,GAAU5S,GAHR0W,EAAYD,EAAW7D,GAAU53G,KAAO43G,GAAUG,IAI7D,EACA4D,YAAa,SAAqBhsE,EAAOjvC,GACvC,IAAI27F,EAAU1sD,EAAM0sD,QAED,UAAf1sD,EAAMp9C,MAAoB8pG,IAAYlG,IAAckG,IAAYzG,KAClEtL,GAAU36C,GACVjvC,IAEJ,EAGAk7G,YAAa,WACX,IAAIC,EAAYntB,GAAQzoG,KAAK8zH,aAE7B,KAAI8B,GAAa3D,IAAjB,CAIA,IAAIlT,EAAY6W,EAAY51H,KAAK8zH,YAGjC9zH,KAAK8zH,YAAc,EAEf/U,EAAY,EAEd/+G,KAAK8xH,OACI/S,EAAY,GAErB/+G,KAAK+Z,MAZP,CAcF,EAGA87G,WAAY,SAAoBnsE,GAC1BkzB,GAA6Bs1C,GAAYxoE,EAAMosE,YAAYjvH,eAC7D7G,KAAK6zH,YAAcnqE,EAAMqsE,QACfn5C,IACV58E,KAAK6zH,YAAcnqE,EAAMssE,QAAQ,GAAGD,QAExC,EAGAE,UAAW,SAAmBvsE,GAExBA,EAAMssE,SAAWtsE,EAAMssE,QAAQ5zH,OAAS,EAC1CpC,KAAK8zH,YAAc,EAEnB9zH,KAAK8zH,YAAcpqE,EAAMssE,QAAQ,GAAGD,QAAU/1H,KAAK6zH,WAEvD,EAGAqC,SAAU,SAAkBxsE,GACtBkzB,GAA6Bs1C,GAAYxoE,EAAMosE,YAAYjvH,iBAC7D7G,KAAK8zH,YAAcpqE,EAAMqsE,QAAU/1H,KAAK6zH,aAG1C7zH,KAAK21H,cAQL31H,KAAKsoE,OAAM,GACXtoE,KAAK00H,oBACL10H,KAAKo0H,eAAiBpyG,WAAWhiB,KAAKuW,MAAOy7G,GAA0B97G,GAAQ,IAAMlW,KAAK40E,UAC5F,GAEFz1E,OAAQ,SAAgB2B,GACtB,IAAIilH,EAAS/lH,KAET8yH,EAAa9yH,KAAK8yH,WAClBH,EAAa3yH,KAAK2yH,WAClBQ,EAAcnzH,KAAKmzH,YACnBC,EAAepzH,KAAKozH,aACpBC,EAAUrzH,KAAKqzH,QACfp/E,EAAQj0C,KAAKi0C,MACbw/E,EAAYzzH,KAAKyzH,UACjBnrD,EAAQtoE,KAAKsoE,MACb2sD,EAAUj1H,KAAKi1H,QACfY,EAAa71H,KAAK61H,WAClBK,EAAWl2H,KAAKk2H,SAChBC,EAAUn2H,KAAKw+G,OAAO,eAEtBnR,EAASvsG,EAAE,MAAO,CACpBykG,YAAa,iBACbj8F,MAAO,CACLsvB,GAAIu9F,EACJ7tB,KAAM,QAERnnF,IAAK,SACJ,CAACnhB,KAAKs6F,kBAEL87B,EAAYt1H,IAEhB,GAAId,KAAKs4E,SAAU,CACjB,IAAI+9C,EAAc,SAAqBtX,EAAWmG,EAAOzmG,GACvD,IAAI63G,EAAiB,SAAwB5sE,GAEtC+pE,EAGHpvB,GAAU36C,EAAO,CACf+6C,aAAa,IAHfshB,EAAO2P,YAAYhsE,EAAOjrC,EAM9B,EAEA,OAAO3d,EAAE,IAAK,CACZykG,YAAa,oBAAoBtkG,OAAO89G,GACxCz1G,MAAO,CACL2kC,KAAM,IACNq6D,KAAM,SACN,gBAAiB6tB,EACjB,gBAAiB1C,EAAY,OAAS,MAExCpjC,GAAI,CACFmV,MAAO8wB,EACPngB,QAASmgB,IAEV,CAACx1H,EAAE,OAAQ,CACZykG,YAAa,oBAAoBtkG,OAAO89G,EAAW,SACnDz1G,MAAO,CACL,cAAe,UAEfxI,EAAE,OAAQ,CACZ0I,MAAO,WACN,CAAC07G,KACN,EAEAkR,EAAY,CAACC,EAAY,OAAQr2H,KAAKkzH,UAAWlzH,KAAK8xH,MAAOuE,EAAY,OAAQr2H,KAAKizH,UAAWjzH,KAAK+Z,MACxG,CAGA,IAAIw8G,EAAcz1H,EAAE,KAAM,CACxBykG,YAAa,sBACbvgB,WAAY,CAAC,CACXpgF,KAAM,OACN1B,MAAO4vH,IAETxpH,MAAO,CACLsvB,GAAI54B,KAAKw+G,OAAO,oBAChB,cAAesU,EAAa,QAAU,OACtC,aAAc9yH,KAAKgzH,gBACnB,YAAamD,IAEdn2H,KAAK2zH,OAAO5rH,KAAI,SAAU+sH,EAAO5yH,GAClC,IAAIuc,EAAU,SAAiBirC,GAC7Bq8D,EAAO2P,YAAYhsE,GAAO,WACxBq8D,EAAOiO,SAAS9xH,EAClB,GACF,EAEA,OAAOpB,EAAE,KAAM,CACb0I,MAAO,CACLmqG,OAAQzxG,IAAM+xC,GAEhB3qC,MAAO,CACLg/F,KAAM,SACN1vE,GAAImtF,EAAOvH,OAAO,kBAAkBv9G,OAAOiB,EAAI,EAAG,MAClDkyG,SAAU0e,EAAa,IAAM,KAC7B,eAAgB5wH,IAAM+xC,EAAQ,OAAS,QACvC,aAAc,GAAGhzC,OAAO8kH,EAAOgN,eAAgB,KAAK9xH,OAAOiB,EAAI,GAC/D,mBAAoB4yH,EAAMl8F,IAAM,KAChC,gBAAiBu9F,GAEnB9lC,GAAI,CACFmV,MAAO/mF,EACP03F,QAAS13F,GAEXlc,IAAK,SAAStB,OAAOiB,IAEzB,KACImuF,EAAK,CACPmmC,WAAYpD,EAAepC,GAAO1oD,EAClCmuD,WAAYrD,EAAepC,GAAOiE,EAClC5e,QAAS/tC,EACTguC,SAAU2e,EACV9e,QAAS,SAAiBzsD,GAExB,IAAI,kBAAkB7kD,KAAK6kD,EAAMznD,OAAOy0H,SAAxC,CAIA,IAAItgB,EAAU1sD,EAAM0sD,QAEhBA,IAAYtG,IAAasG,IAAYnG,KACvC5L,GAAU36C,GAEVq8D,EAAO3P,IAAYtG,GAAY,OAAS,UAP1C,CASF,GAkBF,OAfIrzB,IAAsB42C,IAIpBz2C,GACFyT,EAAG,gBAAkBwlC,EACrBxlC,EAAG,cAAgB6lC,IAEnB7lC,EAAG,eAAiBwlC,EACpBxlC,EAAG,cAAgBrwF,KAAKi2H,UACxB5lC,EAAG,aAAe6lC,IAKfp1H,EAAE,MAAO,CACdykG,YAAa,WACb/7F,MAAO,CACLsrH,OAAQ3B,EACR,iBAAkBA,GAAenzH,KAAK+K,KACtC,gBAAiB0xE,GAAqBG,IAA8By2C,GAEtEvrH,MAAO,CACL6qH,WAAYA,GAEdrpH,MAAO,CACLg/F,KAAM,SACN1vE,GAAI54B,KAAKw+G,SACT,YAAaiV,EAAY,OAAS,SAEpCpjC,GAAIA,GACH,CAACgd,EAAQ+oB,EAAWG,GACzB,IClqBF,SAASp1H,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAgBhN,ICpBIk9B,GDoBAyvF,GAAW,CACbmH,OAAQ5zB,GAASlO,IACjB+hC,SAAU7zB,GAASxO,IAAmB,GACtCsiC,cAAe9zB,GAASlO,GAAkB,eAC1C+9B,UAAW7vB,GAASxN,IACpBq3B,OAAQ7pB,GAASlO,IACjBg+B,SAAU9vB,GAASxN,KAEVzsF,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAcA,GAAc,CAAC,EAAGi8B,IAAU+Q,IAAW,CAAC,EAAG,CACvHmD,WAAY5vB,GAASlO,IACrBiiC,QAAS/zB,GAASlO,IAClBkiC,YAAah0B,GAASlO,IACtBmiC,WAAYj0B,GAASlO,GAAkB,MACvCoiC,WAAYl0B,GAASlO,GAAkB,OACvCqiC,iBAAkBn0B,GAASlO,IAC3B3yD,KAAM6gE,GAASlO,IACfsiC,SAAUp0B,GAASlO,IACnB67B,QAAS3tB,GAASlO,GAAkB,QACjCxN,IAGM+vC,GAA8B7xC,GAAO,CAC9C3gF,KAAMyiF,GACNl+E,OAAQ,CAACm1G,GAAS7jB,IAClB4c,OAAQ,CACNmc,cAAe,CAEbhnH,QAAS,WACP,OAAO,WACL,MAAO,CACL6mH,SAAS,EAEb,CACF,IAGJvqH,MAAOA,GACP6gG,SAAU,CACR0tB,WAAY,WACV,OAAOr3H,KAAKwzH,eACd,EACA8D,eAAgB,WACd,MAAO,CAACt3H,KAAKk3H,iBAAmB,SAAW,GAAIl3H,KAAKk3H,iBAAmB,KAAKj2H,OAAOjB,KAAKk3H,iBAAkB,UAAY,GACxH,EACAlH,cAAe,WAEb,OAAOhwH,KAAK6yH,UAAY7yH,KAAKq3H,WAAWxE,UAAY,IACtD,EACA5C,eAAgB,WAEd,OAAOjwH,KAAK4yH,WAAa5yH,KAAKq3H,WAAWzE,WAAa,IACxD,GAEFzzH,OAAQ,SAAgB2B,GACtB,IAAI4sH,EAAO1tH,KAAKs6F,cAAclD,IAE9B,IAAKs2B,IAAS1tH,KAAK4sH,QAAU5sH,KAAK42H,UAAW,CAC3C,IAAIvmC,EAAK,CAAC,GAILrwF,KAAKq3H,WAAWhE,SAAW52C,IAC9B4T,EAAGknC,UAAY,SAAU7tE,GACvB,OAAO26C,GAAU36C,EAAO,CACtB+6C,aAAa,GAEjB,GAGFipB,EAAO5sH,EAAEwrH,GAAM,CACbxjH,MAAO05E,GAAcA,GAAc,CAAC,EAAG4gB,GAAWosB,GAAUxvH,KAAKuwH,OAAQ3tB,GAAiB15F,KAAK,KAAM,SAAU,CAAC,EAAG,CACjHi1F,MAAOn+F,KAAKgwH,cACZ9xB,OAAQl+F,KAAKiwH,eACb/D,WAAW,EACXlX,OAAO,IAET3kB,GAAIA,GAER,CAEA,IAAImnC,EAAmB,IACvBx3H,KAAK82H,UAAW92H,KAAK+2H,cAAcj2H,EAAEd,KAAKg3H,WAAY,CACpDvxB,SAAUwT,GAAWj5G,KAAK+2H,YAAa/2H,KAAK82H,cAE9C92H,KAAKkiC,OAAQliC,KAAKm3H,WAAWr2H,EAAEd,KAAK0wH,QAAS,CAC3CjrB,SAAUwT,GAAWj5G,KAAKm3H,SAAUn3H,KAAKkiC,QAE3CliC,KAAKs6F,kBAAmB,GACpB4P,EAAWppG,IAWf,OATI02H,EAAiBjzC,KAAKpB,MACxB+mB,EAAWppG,EAAEd,KAAKi3H,WAAY,CAC5B1xB,YAAa,mBACb/7F,MAAOxJ,KAAKs3H,gBACXE,EAAiBzvH,KAAI,SAAU0vH,GAChC,OAAOA,GAAU32H,GACnB,MAGKA,EAAE,MAAO,CACdykG,YAAa,gBACbz9F,MAAO,CACL6qH,WAAY3yH,KAAK2yH,YAAc3yH,KAAKq3H,WAAW1E,YAAc,MAE/DrpH,MAAO,CACLsvB,GAAI54B,KAAKw+G,SACTlW,KAAM,aAEP,CAAColB,EAAMxjB,GACZ,IE9HEwtB,GAEJpyC,GAAc,CACZP,WAAY,CACVwuC,UAAWA,GACX6D,eAAgBA,MCRTO,GAAkB,OCczBC,GAAU,SAAiB5oC,GAC7B8Q,GAAS9Q,EAAI,SAAU,GAEvB+N,IAAU,WACRwB,GAAOvP,GACP8Q,GAAS9Q,EAAI,SAAU,GAAG/tF,OAAO+tF,EAAG6oC,aAAc,MACpD,GACF,EAEIC,GAAe,SAAsB9oC,GACvC+Q,GAAY/Q,EAAI,SAClB,EAEI+oC,GAAU,SAAiB/oC,GAC7B8Q,GAAS9Q,EAAI,SAAU,QACvB8Q,GAAS9Q,EAAI,UAAW,SACxB8Q,GAAS9Q,EAAI,SAAU,GAAG/tF,OAAOg9F,GAAOjP,GAAIkP,OAAQ,OACpDK,GAAOvP,GACP8Q,GAAS9Q,EAAI,SAAU,EACzB,EAEIgpC,GAAe,SAAsBhpC,GACvC+Q,GAAY/Q,EAAI,SAClB,EAKIipC,GAAmB,CACrBrxB,KAAK,EACLf,WAAY,GACZC,iBAAkB,aAClBC,aAAc,gBACdC,WAAY,gBACZC,iBAAkB,aAClBC,aAAc,YAIZgyB,GAAsB,CACxBC,MAAOP,GACPQ,WAAYN,GACZO,MAAON,GACPO,WAAYN,IAGHlvH,GAAQ,CAEjBs9F,OAAQrD,GAASxO,IAAmB,IAI3BgkC,GAA0BhzC,GAAO,CAC1C3gF,KAAMqoF,GACNptF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIr3B,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZC,EAAWk3B,EAAKl3B,SACpB,OAAOnI,EAAE,aACT6kG,GAAU38F,EAAM,CACdF,MAAOmvH,GACP5nC,GAAI6nC,IACH,CACDpvH,MAAOA,IAETG,EACF,IHhFF,SAAS9H,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAmBhN,IAAI21H,GAAgCxzB,GAAuBzd,GAAe,UACtEkxC,GAAuCzzB,GAAuBzd,GAAe,iBAC7EmxC,GAA4B3zB,GAAiBxd,GAAe,aAC5DoxC,GAAwB5zB,GAAiBxd,GAAe,SACxDqxC,GAA6B7zB,GAAiBxd,GAAe,cAE7Duf,GAAkBjD,GAAe,UAAW,CAC9Cv3F,KAAMioF,GACNp6D,cAAc,IAEZ4sE,GAAaD,GAAgB5C,MAC7B8C,GAAaF,GAAgBh+F,MAC7Bm+F,GAAkBH,GAAgBz+F,KAClC6+F,GAAmBJ,GAAgBp9C,MAG5B5gD,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAcA,GAAc,CAAC,EAAGi8B,IAAUzX,IAAa,CAAC,EAAG,CAEzH6xB,UAAW91B,GAASlO,IACpBuR,OAAQrD,GAASxO,IAAmB,GACpCukC,MAAO/1B,GAASxO,IAAmB,GACnCxqF,IAAKg5F,GAASlO,GAAkB,UAC7BtN,IAGMwxC,GAAyBxzC,GAAO,CACzC3gF,KAAM2iF,GACNp+E,OAAQ,CAACm1G,GAASvX,GAAYtM,GAAoBqX,IAClDhpG,MAAOA,GACPE,KAAM,WACJ,MAAO,CACLo+F,KAAMpnG,KAAKinG,IACX+xB,eAAe,EAEnB,EACArvB,SAAU,CACRsvB,YAAa,WACX,IAAID,EAAgBh5H,KAAKg5H,cACzB,MAAO,CACL,kBAAmBh5H,KAAK84H,MACxBI,UAAWF,EACX5xB,KAAMpnG,KAAKonG,OAAS4xB,EAExB,EACAzL,UAAW,WACT,IAAI/wG,EAAQxc,KAEZ,MAAO,CACLmuH,QAASnuH,KAAKonG,KACd+xB,MAAO,WACL38G,EAAM4qF,MAAO,CACf,EAEJ,GAEFQ,OAAQ7nE,GAAS,CAAC,EAAGv9B,GAAgBu9B,GAAQknE,IAAiB,SAAU90F,GAClEA,IAAanS,KAAKonG,OACpBpnG,KAAKonG,KAAOj1F,EAEhB,IAAI3P,GAAgBu9B,GAAQ,QAAQ,SAAc5tB,EAAU4+F,GACtD5+F,IAAa4+F,GACf/wG,KAAKo5H,WAET,IAAIr5F,IACJ8uD,QAAS,WACP7uF,KAAKonG,KAAOpnG,KAAKinG,GACnB,EACA0T,QAAS,WACP,IAAItI,EAASryG,KAEbA,KAAKonG,KAAOpnG,KAAKinG,IAEjBjnG,KAAKkyG,aAAasmB,GAA+Bx4H,KAAKq5H,mBAEtDr5H,KAAKkyG,aAAawmB,GAA2B14H,KAAKs5H,sBAE9Ct5H,KAAK84H,QAEP94H,KAAKu5H,iBAAgB,GACrBv5H,KAAKw5H,gBAGPx5H,KAAKgoG,WAAU,WACbqK,EAAO+mB,WACT,IAEAp5H,KAAKkyG,aAAaumB,IAAsC,SAAU7/F,GAC5DA,IAAOy5E,EAAOmM,UAChBnM,EAAOrK,UAAUqK,EAAOonB,SAE5B,GACF,EACAC,QAAS,WAIP15H,KAAKy5H,UACP,EAGA7T,YAAa,WACP5lH,KAAK84H,OACP94H,KAAKu5H,iBAAgB,EAEzB,EAGA5T,UAAW,WACL3lH,KAAK84H,OACP94H,KAAKu5H,iBAAgB,GAGvBv5H,KAAKy5H,UACP,EACAvxB,cAAe,WAEbloG,KAAKonG,MAAO,EAERpnG,KAAK84H,OAASh9C,GAChB97E,KAAKu5H,iBAAgB,EAEzB,EACA7+B,QAAS,CACP6+B,gBAAiB,SAAyBlpC,GACxC+T,GAAW/T,EAAIlrF,OAAQ,SAAUnF,KAAKw5H,aAAcplC,IACpDgQ,GAAW/T,EAAIlrF,OAAQ,oBAAqBnF,KAAKw5H,aAAcplC,GACjE,EACA0hB,OAAQ,WACN91G,KAAKonG,MAAQpnG,KAAKonG,IACpB,EACAwwB,QAAS,WACP53H,KAAKg5H,eAAgB,EAErBh5H,KAAK8nG,MAAMzU,GACb,EACAykC,aAAc,WACZ93H,KAAKg5H,eAAgB,EACrBh5H,KAAK8nG,MAAMxU,GACb,EACAykC,QAAS,WACP/3H,KAAKg5H,eAAgB,EAErBh5H,KAAK8nG,MAAMhW,GACb,EACAkmC,aAAc,WACZh4H,KAAKg5H,eAAgB,EACrBh5H,KAAK8nG,MAAMjW,GACb,EACAunC,UAAW,WACT,IAAIhyB,EAAOpnG,KAAKonG,KACZyxB,EAAY74H,KAAK64H,UACjBjgG,EAAK54B,KAAKw+G,SACdx+G,KAAK8nG,MAAMZ,GAAkBE,GAE7BpnG,KAAKyyG,WAAWkmB,GAAuB//F,EAAIwuE,GAEvCyxB,GAAazxB,GAEfpnG,KAAKyyG,WAAWimB,GAA2B9/F,EAAIigG,EAEnD,EACAY,SAAU,WAIRz5H,KAAKyyG,WAAWmmB,GAA4B54H,KAAKw+G,SAAUx+G,KAAKonG,KAClE,EACAuyB,kBAAmB,WAIjB,IAAI9kB,EAAM70G,KAAK60G,IACX+kB,EAAUt7B,GAASuW,EAAK8iB,IAC5Bt4B,GAAYwV,EAAK8iB,IACjB,IAAIkC,EAAiC,UAAvB55B,GAAM4U,GAAKilB,QAMzB,OAJIF,GACFx6B,GAASyV,EAAK8iB,IAGTkC,CACT,EACAE,aAAc,SAAsBrwE,GAClC,IAAIslC,EAAKtlC,EAAMznD,OAIVjC,KAAK84H,OAAU9pC,GAAkC,UAA5BiR,GAAMjgG,KAAK60G,KAAKilB,WAKrC/sF,GAAQiiD,EAAI,8BAA+BwN,GAAQ,2BAA4BxN,IAAShvF,KAAK25H,sBAChG35H,KAAKonG,MAAO,GAEhB,EACAiyB,kBAAmB,SAA2BzgG,GACxCA,IAAO54B,KAAKw+G,UACdx+G,KAAK81G,QAET,EACAwjB,qBAAsB,SAA8BU,EAAUC,GAC5D,IAAIpB,EAAY74H,KAAK64H,UACjBzxB,EAAOpnG,KAAKonG,KAEhB,GAAKyxB,GAAaA,IAAcoB,EAAhC,CAIA,IAAIC,EAASF,IAAah6H,KAAKw+G,UAG3B0b,IAAW9yB,IAAS8yB,GAAU9yB,IAChCpnG,KAAK81G,QANP,CAQF,EACA0jB,aAAc,WAEZx5H,KAAKonG,KAAmC,UAA5BnH,GAAMjgG,KAAK60G,KAAKilB,OAC9B,GAEF36H,OAAQ,SAAgB2B,GACtB,IAAIslG,EAASpmG,KAAKomG,OACd8D,EAAWppG,EAAEd,KAAK+J,IAAK,CACzBP,MAAOxJ,KAAKi5H,YACZj0C,WAAY,CAAC,CACXpgF,KAAM,OACN1B,MAAOlD,KAAKonG,OAEd99F,MAAO,CACLsvB,GAAI54B,KAAKw+G,UAEXnuB,GAAI,CACFmV,MAAOxlG,KAAK+5H,eAEb/5H,KAAKs6F,cAAcnE,GAAmBn2F,KAAKutH,YAC9C,OAAOzsH,EAAEy3H,GAAY,CACnBzvH,MAAO,CACLs9F,OAAQA,GAEV/V,GAAI,CACF8nC,MAAOn4H,KAAK43H,QACZQ,WAAYp4H,KAAK83H,aACjBO,MAAOr4H,KAAK+3H,QACZO,WAAYt4H,KAAKg4H,eAElB,CAAC9tB,GACN,II/QSiwB,GAA2B,SAAkCjrC,EAAOkrC,GAC7E,OAAO/rC,GAAS+rC,EAASj7C,SAAW+P,EAAMnvF,OAC5C,ECYIs6H,GAA4B,YAC5BC,GAAgC,gBAEhCC,GAAU,cAEVC,GAAyB,GAAGv5H,OAAOs5H,GAAS,cAE5CE,GAA0B,GAAGx5H,OAAOs5H,GAAS,YAE7CG,GAAkB,GAAGz5H,OAAOs5H,GAAS,YAErCI,GAAoB,GAAG15H,OAAOs5H,GAAS,cAEvCK,GAAe,QACfC,GAAc,OAEdC,GAAqB,gBACrBC,GAAqB,gBACrBC,GAAY,OACZC,GAAgB,WAEhBC,GAAwB,kBAExB1C,GAAgCxzB,GAAuBzd,GAAe,UAEtEoxC,GAAwB5zB,GAAiBxd,GAAe,SAIxDqxC,GAA6B7zB,GAAiBxd,GAAe,cAE7DkxC,GAAuCzzB,GAAuBzd,GAAe,iBAC7E4zC,GAAoB,CAACxrB,GAAYO,IAEjCsF,GAAmB,SAA0BxmB,GAC/C,OAAQ2K,GAAc,CAAC,SAAU,KAAM3K,EAAG0nC,QAAQ3vH,cACpD,EAEIq0H,GAAa,SAAoBj7F,EAAM6uD,GACzC,IAAIggC,EAAY7uF,EAAK6uF,UACjB3+G,EAAM8vB,EAAK9vB,IACXnN,EAAQi9B,EAAKj9B,MAEbypD,EAAUrrD,GAAK0tH,GAAa,CAAC,GAIjC,GAFA9rH,EAAQwN,GAASxN,GAASA,EAAMoD,MAAM03E,GAAkB96E,EAEpDwsF,GAAMV,EAAG0nC,QAAS,KAAM,CAC1B,IAAIzoF,EAAO0xD,GAAQ3Q,EAAI,SAAW,GAE9BxR,EAAW34E,KAAKopC,IAClB0e,EAAQ7qD,KAAKmsC,EAAKvnC,QAAQ62E,EAAS,IAEvC,CASA,OAJAt8E,GAAOoP,EAAKnN,GAAOZ,SAAQ,SAAU2kB,GACnC,OAAOvW,GAASuW,IAAM0lC,EAAQ7qD,KAAKmlB,EACrC,IAEO0lC,EAAQjrD,QAAO,SAAUulB,EAAGgtB,EAAOpwC,GACxC,OAAOojB,GAAKpjB,EAAIL,QAAQyjB,KAAOgtB,CACjC,GACF,EAEIonF,GAAsB,SAA6BrsC,GACrD,IAAIvwE,EAAUuwE,EAAGyrC,IAEbh8G,IACFyzB,GAAS88C,EAAI,QAASvwE,EAAS01E,IAC/BjiD,GAAS88C,EAAI,UAAWvwE,EAAS01E,KAGnCnF,EAAGyrC,IAA2B,IAChC,EAEIa,GAAmB,SAA0BtsC,EAAI7P,GAGnD,GAFAk8C,GAAoBrsC,GAEhB7P,EAAU,CACZ,IAAI1gE,EAAU,SAAiBirC,GAC7B,IAAqB,YAAfA,EAAMp9C,MAAuBqtF,GAAcwhC,GAAmBzxE,EAAM0sD,YAAchY,GAAWpP,GAAK,CACtG,IAAIriC,EAAUqiC,EAAG2rC,KAAsB,GACvChuE,EAAQrqD,SAAQ,SAAUL,GACxByvG,GAAavyB,GAAU2oB,MAAM0wB,GAA+Bv2H,EAC9D,GACF,CACF,EAEA+sF,EAAGyrC,IAA2Bh8G,EAC9BszB,GAAQi9C,EAAI,QAASvwE,EAAS01E,IAE1BqhB,GAAiBxmB,IACnBj9C,GAAQi9C,EAAI,UAAWvwE,EAAS01E,GAEpC,CACF,EAEIonC,GAAsB,SAA6BvsC,EAAI7P,GACrD6P,EAAGwrC,KAA2Br7C,GAChCuyB,GAAavyB,GAAUqzB,KAAK,CAACmmB,GAAuBC,IAA6B5pC,EAAGwrC,KAGtFxrC,EAAGwrC,IAA0B,IAC/B,EAEIgB,GAAmB,SAA0BxsC,EAAI7P,GAGnD,GAFAo8C,GAAoBvsC,EAAI7P,GAEpBA,EAAU,CACZ,IAAI1gE,EAAU,SAAiBma,EAAI2C,GAE7Bo+D,GAAc3K,EAAG2rC,KAAsB,GAAI/hG,KAE7Co2D,EAAG0rC,IAAmBn/F,EAEtBkgG,GAAezsC,EAAIzzD,GAEvB,EAEAyzD,EAAGwrC,IAA0B/7G,EAE7BizF,GAAavyB,GAAUgzB,IAAI,CAACwmB,GAAuBC,IAA6Bn6G,EAClF,CACF,EAEIg9G,GAAiB,SAAwBzsC,EAAIzzD,GAE3CA,GACF8jE,GAAYrQ,EAAIqrC,IAChBj7B,GAASpQ,EAAIsrC,IACbh7B,GAAQtQ,EAAI+rC,GAAoBF,MAEhCx7B,GAAYrQ,EAAIsrC,IAChBl7B,GAASpQ,EAAIqrC,IACb/6B,GAAQtQ,EAAI+rC,GAAoBH,IAEpC,EAGIc,GAAY,SAAmB1sC,EAAI3mF,GACrC2mF,EAAG3mF,GAAQ,YACJ2mF,EAAG3mF,EACZ,EAGIszH,GAAe,SAAsB3sC,EAAIC,EAASC,GAEpD,GAAKpT,GAAeq+C,GAAyBjrC,EAAOD,GAApD,CAMIumB,GAAiBxmB,KACdqP,GAAQrP,EAAIgsC,KACf17B,GAAQtQ,EAAIgsC,GAAW,UAGpB38B,GAAQrP,EAAIisC,KACf37B,GAAQtQ,EAAIisC,GAAe,MAO/BQ,GAAezsC,EAAIA,EAAG0rC,KAEtB,IAAI/tE,EAAUyuE,GAAWnsC,EAASD,GAO9BriC,EAAQvqD,OAAS,GACnBk9F,GAAQtQ,EAAI8rC,GAAoBnuE,EAAQpmD,KAAK,MAC7Cu5F,GAAS9Q,EAAIksC,GAAuB,UAEpCz7B,GAAWzQ,EAAI8rC,IACf/6B,GAAY/Q,EAAIksC,KAMlBn+B,IAAU,WACRu+B,GAAiBtsC,EAAImrC,GAAyBjrC,EAAOD,GACvD,IAEKqhB,GAAW3jD,EAASqiC,EAAG2rC,OAE1B3rC,EAAG2rC,IAAqBhuE,EAIxBA,EAAQrqD,SAAQ,SAAUL,GACxByvG,GAAayoB,GAAyBjrC,EAAOD,IAAU6Y,MAAM2wB,GAAsCx2H,EACrG,IAjDF,CAmDF,EAMW25H,GAAW,CACpB1yH,KAAM,SAAc8lF,EAAIC,EAASC,GAE/BF,EAAG0rC,KAAmB,EAEtB1rC,EAAG2rC,IAAqB,GAExBa,GAAiBxsC,EAAImrC,GAAyBjrC,EAAOD,IAErD0sC,GAAa3sC,EAAIC,EAASC,EAC5B,EACAigC,iBAAkBwM,GAClBjC,QAASiC,GACTvM,OAAQ,SAAgBpgC,EAAIC,EAASC,GACnCmsC,GAAoBrsC,GAEpBusC,GAAoBvsC,EAAImrC,GAAyBjrC,EAAOD,IAExDysC,GAAU1sC,EAAIwrC,IACdkB,GAAU1sC,EAAIyrC,IACdiB,GAAU1sC,EAAI0rC,IACdgB,GAAU1sC,EAAI2rC,IAEdt7B,GAAYrQ,EAAIqrC,IAChBh7B,GAAYrQ,EAAIsrC,IAChB76B,GAAWzQ,EAAI+rC,IACft7B,GAAWzQ,EAAI8rC,IACfr7B,GAAWzQ,EAAIgsC,IACfj7B,GAAY/Q,EAAIksC,GAClB,GC3PEW,GAA8Bv2C,GAAc,CAC9CN,WAAY,CACV42C,SAAUA,MCDVE,GAA8Bx2C,GAAc,CAC9CP,WAAY,CACVg0C,UAAWA,IAEbn/E,QAAS,CACPiiF,eAAgBA,MCRpBE,I,QAAiC,qBAAX52H,QAA8C,qBAAbk2E,UAAiD,qBAAdE,WCEpFygD,GAAmB,W,QACjBC,EAAwB,CAAC,OAAQ,UAAW,WACzC/5H,EAAI,EAAGA,EAAI+5H,EAAsB75H,OAAQF,GAAK,E,GACjD65H,IAAaxgD,UAAU1lD,UAAUryB,QAAQy4H,EAAsB/5H,KAAO,E,OACjE,E,OAGJ,C,CAPgB,GAUzB,SAAgBg6H,GAAkBzhH,G,IAC5B66G,GAAS,E,OACN,WACDA,I,GAGK,E,OACF75C,QAAQn4B,UAAUpyC,MAAK,W,GACnB,E,SAMf,SAAgBirH,GAAa1hH,G,IACvB2hH,GAAY,E,OACT,WACAA,I,GACS,E,YACD,W,GACG,E,MAEXJ,I,EAKT,IAAMK,GAAqBN,IAAa52H,OAAOs2E,QAY/C6gD,GAAgBD,GACZH,GACAC,GC9CJ,SAAwBxrH,GAAW4rH,G,IAC3BC,EAAU,CAAC,E,OAEfD,GAC2C,sBAA3CC,EAAQ93H,SAASrE,KAAKk8H,E,CCJ1B,SAAwBE,GAAyB5zH,EAASksB,G,GAC/B,IAArBlsB,EAAQ+zF,S,MACH,G,IAGHz3F,EAAS0D,EAAQ43F,cAAcC,YAC/BkG,EAAMzhG,EAAO+6F,iBAAiBr3F,EAAS,M,OACtCksB,EAAW6xE,EAAI7xE,GAAY6xE,C,CCPpC,SAAwB81B,GAAc7zH,G,MACX,SAArBA,EAAQ8zH,SACH9zH,EAEFA,EAAQ8zF,YAAc9zF,EAAQklC,I,CCDvC,SAAwB6uF,GAAgB/zH,G,IAEjCA,E,OACIwyE,SAASloC,K,OAGVtqC,EAAQ8zH,U,IACT,O,IACA,O,OACI9zH,EAAQ43F,cAActtD,K,IAC1B,Y,OACItqC,EAAQsqC,K,MAIwBspF,GAAyB5zH,GAA5Dg0H,EAfuCC,EAevCD,SAAUE,EAf6BD,EAe7BC,UAAWC,EAfkBF,EAelBE,U,MACzB,wBAAwBn4H,KAAKg4H,EAAWG,EAAYD,GAC/Cl0H,EAGF+zH,GAAgBF,GAAc7zH,G,CCvBvC,SAAwBo0H,GAAiB3iG,G,OAChCA,GAAaA,EAAU4iG,cAAgB5iG,EAAU4iG,cAAgB5iG,C,CCN1E,IAAM6iG,GAASpB,OAAgB52H,OAAOi4H,uBAAwB/hD,SAASgiD,cACjEC,GAASvB,IAAa,UAAUl3H,KAAK02E,UAAU1lD,WASrD,SAAwBF,GAAK2C,G,OACX,KAAZA,EACK6kG,GAEO,KAAZ7kG,EACKglG,GAEFH,IAAUG,E,CCVnB,SAAwBC,GAAgB10H,G,IACjCA,E,OACIwyE,SAASqB,gB,IAGZ8gD,EAAiB7nG,GAAK,IAAM0lD,SAASloC,KAAO,KAG9C6tD,EAAen4F,EAAQm4F,cAAgB,K,MAEpCA,IAAiBw8B,GAAkB30H,EAAQ40H,mB,GAChC50H,EAAUA,EAAQ40H,oBAAoBz8B,a,IAGlD27B,EAAW37B,GAAgBA,EAAa27B,S,OAEzCA,GAAyB,SAAbA,GAAoC,SAAbA,GAOoB,IAA1D,CAAC,KAAM,KAAM,SAASn5H,QAAQw9F,EAAa27B,WACY,WAAvDF,GAAyBz7B,EAAc,YAEhCu8B,GAAgBv8B,GAGlBA,EAZEn4F,EAAUA,EAAQ43F,cAAc/jB,gBAAkBrB,SAASqB,e,CCxBvD,SAASghD,GAAkB70H,G,IAChC8zH,EAAa9zH,EAAb8zH,S,MACS,SAAbA,IAIW,SAAbA,GAAuBY,GAAgB10H,EAAQ80H,qBAAuB90H,E,CCD1E,SAAwB+0H,GAAQxkH,G,OACN,OAApBA,EAAKujF,WACAihC,GAAQxkH,EAAKujF,YAGfvjF,C,CCAT,SAAwBykH,GAAuBC,EAAUC,G,IAElDD,IAAaA,EAASlhC,WAAamhC,IAAaA,EAASnhC,S,OACrDvhB,SAASqB,gB,IAIZshD,EACJF,EAASG,wBAAwBF,GACjClhC,KAAKqhC,4BACD3nH,EAAQynH,EAAQF,EAAWC,EAC3B5iH,EAAM6iH,EAAQD,EAAWD,EAGzBK,EAAQ9iD,SAAS+iD,c,EACjBC,SAAS9nH,EAAO,G,EAChB+nH,OAAOnjH,EAAK,G,IACVojH,EAA4BJ,EAA5BI,wB,GAILT,IAAaS,GACZR,IAAaQ,GACfhoH,EAAMunF,SAAS3iF,G,OAEXuiH,GAAkBa,GACbA,EAGFhB,GAAgBgB,G,IAInBC,EAAeZ,GAAQE,G,OACzBU,EAAazwF,KACR8vF,GAAuBW,EAAazwF,KAAMgwF,GAE1CF,GAAuBC,EAAUF,GAAQG,GAAUhwF,K,CCzC9D,SAAwB0wF,GAAU51H,G,IAAS61H,EAAcv8H,UAAAC,OAAA,QAAA2G,IAAA5G,UAAA,GAAAA,UAAA,GAAP,MAC1Cw8H,EAAqB,QAATD,EAAiB,YAAc,aAC3C/B,EAAW9zH,EAAQ8zH,S,GAER,SAAbA,GAAoC,SAAbA,EAAqB,C,IACxCvjB,EAAOvwG,EAAQ43F,cAAc/jB,gBAC7BkiD,EAAmB/1H,EAAQ43F,cAAcm+B,kBAAoBxlB,E,OAC5DwlB,EAAiBD,E,QAGnB91H,EAAQ81H,E,CCPjB,SAAwBE,GAAcC,EAAMj2H,G,IAASk2H,EAAkB58H,UAAAC,OAAA,QAAA2G,IAAA5G,UAAA,IAAAA,UAAA,GAC/D68H,EAAYP,GAAU51H,EAAS,OAC/Bo2H,EAAaR,GAAU51H,EAAS,QAChCq2H,EAAWH,GAAY,EAAI,E,SAC5Bx+B,KAAOy+B,EAAYE,E,EACnBjnB,QAAU+mB,EAAYE,E,EACtB30F,MAAQ00F,EAAaC,E,EACrB10F,OAASy0F,EAAaC,EACpBJ,C,CCTT,SAAwBK,GAAeC,EAAQC,G,IACvCC,EAAiB,MAATD,EAAe,OAAS,MAChCE,EAAkB,SAAVD,EAAmB,QAAU,S,OAGzCpgE,WAAWkgE,EAAA,SAAgBE,EAAhB,UACXpgE,WAAWkgE,EAAA,SAAgBG,EAAhB,S,CCdf,SAASC,GAAQH,EAAMlsF,EAAMimE,EAAMqmB,G,OAC1BvwH,KAAKinB,IACVgd,EAAA,SAAcksF,GACdlsF,EAAA,SAAcksF,GACdjmB,EAAA,SAAcimB,GACdjmB,EAAA,SAAcimB,GACdjmB,EAAA,SAAcimB,GACd1pG,GAAK,IACA7oB,SAASssG,EAAA,SAAcimB,IAC1BvyH,SAAS2yH,EAAA,UAAgC,WAATJ,EAAoB,MAAQ,UAC5DvyH,SAAS2yH,EAAA,UAAgC,WAATJ,EAAoB,SAAW,WAC/D,E,CAIN,SAAwBK,GAAerkD,G,IAC/BloC,EAAOkoC,EAASloC,KAChBimE,EAAO/9B,EAASqB,gBAChB+iD,EAAgB9pG,GAAK,KAAOuqE,iBAAiBkZ,G,MAE5C,C,OACGomB,GAAQ,SAAUrsF,EAAMimE,EAAMqmB,G,MAC/BD,GAAQ,QAASrsF,EAAMimE,EAAMqmB,G,0nBCjBxC,SAAwBE,GAAcC,G,aAE/BA,EADL,C,MAESA,EAAQr1F,KAAOq1F,EAAQzhC,M,OACtByhC,EAAQr/B,IAAMq/B,EAAQ1hC,Q,CCGlC,SAAwB8B,GAAsBn3F,G,IACxCi2H,EAAO,CAAC,E,OAMNnpG,GAAK,IAAK,C,EACL9sB,EAAQm3F,wB,IACTg/B,EAAYP,GAAU51H,EAAS,OAC/Bo2H,EAAaR,GAAU51H,EAAS,Q,EACjC03F,KAAOy+B,E,EACPz0F,MAAQ00F,E,EACRhnB,QAAU+mB,E,EACVx0F,OAASy0F,C,QAGPp2H,EAAQm3F,uB,CAGnB,MAAM/1F,IAAG,C,IAEH4F,EAAS,C,KACPivH,EAAKv0F,K,IACNu0F,EAAKv+B,I,MACHu+B,EAAKt0F,MAAQs0F,EAAKv0F,K,OACjBu0F,EAAK7mB,OAAS6mB,EAAKv+B,KAIvB4rB,EAA6B,SAArBtjH,EAAQ8zH,SAAsB+C,GAAe72H,EAAQ43F,eAAiB,CAAC,EAC/EtC,EACJguB,EAAMhuB,OAASt1F,EAAQg3H,aAAehwH,EAAOsuF,MACzCD,EACJiuB,EAAMjuB,QAAUr1F,EAAQi3H,cAAgBjwH,EAAOquF,OAE7C6hC,EAAiBl3H,EAAQm3H,YAAc7hC,EACvC8hC,EAAgBp3H,EAAQ21F,aAAeN,E,GAIvC6hC,GAAkBE,EAAe,C,IAC7Bb,EAAS3C,GAAyB5zH,G,GACtBs2H,GAAeC,EAAQ,K,GACxBD,GAAeC,EAAQ,K,EAEjCjhC,OAAS4hC,E,EACT7hC,QAAU+hC,C,QAGZN,GAAc9vH,E,CCzDR,SAASqwH,GAAqCj3H,EAAU9I,G,IAAQggI,EAAuBh+H,UAAAC,OAAA,QAAA2G,IAAA5G,UAAA,IAAAA,UAAA,GAC9Fm7H,EAAS3nG,GAAQ,IACjByqG,EAA6B,SAApBjgI,EAAOw8H,SAChB0D,EAAergC,GAAsB/2F,GACrCq3H,EAAatgC,GAAsB7/F,GACnCogI,EAAe3D,GAAgB3zH,GAE/Bm2H,EAAS3C,GAAyBt8H,GAClC+gG,EAAiBhiC,WAAWkgE,EAAOl+B,gBACnCC,EAAkBjiC,WAAWkgE,EAAOj+B,iBAGvCg/B,GAAiBC,I,EACP7/B,IAAMrxF,KAAKinB,IAAImqG,EAAW//B,IAAK,G,EAC/Bh2D,KAAOr7B,KAAKinB,IAAImqG,EAAW/1F,KAAM,I,IAE1Cq1F,EAAUD,GAAc,C,IACrBU,EAAa9/B,IAAM+/B,EAAW//B,IAAMW,E,KACnCm/B,EAAa91F,KAAO+1F,EAAW/1F,KAAO42D,E,MACrCk/B,EAAaliC,M,OACZkiC,EAAaniC,S,KAEfkD,UAAY,E,EACZC,WAAa,GAMhBi8B,GAAU8C,EAAQ,C,IACfh/B,EAAYliC,WAAWkgE,EAAOh+B,WAC9BC,EAAaniC,WAAWkgE,EAAO/9B,Y,EAE7Bd,KAAOW,EAAiBE,E,EACxB6W,QAAU/W,EAAiBE,E,EAC3B72D,MAAQ42D,EAAkBE,E,EAC1B72D,OAAS22D,EAAkBE,E,EAG3BD,UAAYA,E,EACZC,WAAaA,C,QAIrBi8B,IAAW6C,EACPhgI,EAAO29F,SAASyiC,GAChBpgI,IAAWogI,GAA0C,SAA1BA,EAAa5D,Y,EAElCkC,GAAce,EAASz/H,IAG5By/H,C,CCtDM,SAASY,GAA8C33H,G,IAAS43H,EAAuBt+H,UAAAC,OAAA,QAAA2G,IAAA5G,UAAA,IAAAA,UAAA,GAC9Fi3G,EAAOvwG,EAAQ43F,cAAc/jB,gBAC7BgkD,EAAiBR,GAAqCr3H,EAASuwG,GAC/Djb,EAAQjvF,KAAKinB,IAAIijF,EAAKymB,YAAa16H,OAAOw7H,YAAc,GACxDziC,EAAShvF,KAAKinB,IAAIijF,EAAK0mB,aAAc36H,OAAOy7H,aAAe,GAE3D5B,EAAayB,EAAkC,EAAlBhC,GAAUrlB,GACvC6lB,EAAcwB,EAA0C,EAA1BhC,GAAUrlB,EAAM,QAE9C/Y,EAAS,C,IACR2+B,EAAY0B,EAAengC,IAAMmgC,EAAet/B,U,KAC/C69B,EAAayB,EAAen2F,KAAOm2F,EAAer/B,W,yBAKnDs+B,GAAct/B,E,CCTvB,SAAwBwgC,GAAQh4H,G,IACxB8zH,EAAW9zH,EAAQ8zH,S,GACR,SAAbA,GAAoC,SAAbA,E,OAClB,E,GAE6C,UAAlDF,GAAyB5zH,EAAS,Y,OAC7B,E,IAEH8zF,EAAa+/B,GAAc7zH,G,QAC5B8zF,GAGEkkC,GAAQlkC,E,CCbjB,SAAwBmkC,GAA6Bj4H,G,IAE7CA,IAAYA,EAAQ6zF,eAAiB/mE,K,OAClC0lD,SAASqB,gB,IAEdsS,EAAKnmF,EAAQ6zF,c,MACV1N,GAAoD,SAA9CytC,GAAyBztC,EAAI,a,EACnCA,EAAG0N,c,OAEH1N,GAAM3T,SAASqB,e,CCExB,SAAwBqkD,GACtBC,EACA1mG,EACAsvE,EACAq3B,G,IACAd,EACAh+H,UAAAC,OAAA,QAAA2G,IAAA5G,UAAA,IAAAA,UAAA,GAGI++H,EAAa,CAAE3gC,IAAK,EAAGh2D,KAAM,GAC3By2D,EAAem/B,EAAgBW,GAA6BE,GAAUnD,GAAuBmD,EAAQ/D,GAAiB3iG,I,GAGlG,aAAtB2mG,E,EACWT,GAA8Cx/B,EAAcm/B,OAGtE,C,IAECgB,OAAA,EACsB,iBAAtBF,G,EACerE,GAAgBF,GAAcpiG,IACf,SAA5B6mG,EAAexE,W,EACAqE,EAAOvgC,cAAc/jB,kB,EAET,WAAtBukD,EACQD,EAAOvgC,cAAc/jB,gBAErBukD,E,IAGbrB,EAAUM,GACdiB,EACAngC,EACAm/B,G,GAI8B,SAA5BgB,EAAexE,UAAwBkE,GAAQ7/B,G,EAQpC4+B,MARmD,C,MACtCF,GAAesB,EAAOvgC,eAAxCvC,EADwDkjC,EACxDljC,OAAQC,EADgDijC,EAChDjjC,M,EACLoC,KAAOq/B,EAAQr/B,IAAMq/B,EAAQx+B,U,EAC7B6W,OAAS/Z,EAAS0hC,EAAQr/B,I,EAC1Bh2D,MAAQq1F,EAAQr1F,KAAOq1F,EAAQv+B,W,EAC/B72D,MAAQ2zD,EAAQyhC,EAAQr1F,I,IAQ7Bq/D,GAAW,E,IACfy3B,EAAqC,kBAAZz3B,E,SACpBr/D,MAAQ82F,EAAkBz3B,EAAUA,EAAQr/D,MAAQ,E,EACpDg2D,KAAO8gC,EAAkBz3B,EAAUA,EAAQrJ,KAAO,E,EAClD/1D,OAAS62F,EAAkBz3B,EAAUA,EAAQp/D,OAAS,E,EACtDytE,QAAUopB,EAAkBz3B,EAAUA,EAAQqO,QAAU,EAE5DipB,C,CC7ET,SAASI,GAATnhG,G,IAAmBg+D,EAAiBh+D,EAAjBg+D,MAAOD,EAAU/9D,EAAV+9D,O,OACjBC,EAAQD,C,CAYjB,SAAwBqjC,GACtBC,EACAC,EACAT,EACA1mG,EACA2mG,G,IACAr3B,EACAznG,UAAAC,OAAA,QAAA2G,IAAA5G,UAAA,GAAAA,UAAA,GADU,E,IAEyB,IAA/Bq/H,EAAUh+H,QAAQ,Q,OACbg+H,E,IAGHN,EAAaH,GACjBC,EACA1mG,EACAsvE,EACAq3B,GAGIS,EAAQ,C,IACP,C,MACIR,EAAW/iC,M,OACVsjC,EAAQlhC,IAAM2gC,EAAW3gC,K,MAE5B,C,MACE2gC,EAAW12F,MAAQi3F,EAAQj3F,M,OAC1B02F,EAAWhjC,Q,OAEb,C,MACCgjC,EAAW/iC,M,OACV+iC,EAAWjpB,OAASwpB,EAAQxpB,Q,KAEhC,C,MACGwpB,EAAQl3F,KAAO22F,EAAW32F,K,OACzB22F,EAAWhjC,SAIjByjC,EAAcpgI,OAAOD,KAAKogI,GAC7B35H,KAAI,SAAAxF,G,kBAEAm/H,EAAMn/H,GAFN,C,KAGG++H,GAAQI,EAAMn/H,K,IAErBouC,MAAK,SAACkwC,EAAG/oE,G,OAAMA,EAAE8pH,KAAO/gD,EAAE+gD,I,IAEvBC,EAAgBF,EAAYjgI,QAChC,SAAAkqG,G,IAAGzN,EAAHyN,EAAGzN,MAAOD,EAAV0N,EAAU1N,O,OACRC,GAAS6iC,EAAOnB,aAAe3hC,GAAU8iC,EAAOlB,Y,IAG9CgC,EAAoBD,EAAcz/H,OAAS,EAC7Cy/H,EAAc,GAAGt/H,IACjBo/H,EAAY,GAAGp/H,IAEbw/H,EAAYP,EAAUl7H,MAAM,KAAK,G,OAEhCw7H,GAAqBC,EAAA,IAAgBA,EAAc,G,CCzD5D,SAAwBC,GAAoBzmG,EAAOylG,EAAQ1mG,G,IAAW6lG,EAAsBh+H,UAAAC,OAAA,QAAA2G,IAAA5G,UAAA,GAAAA,UAAA,GAAN,KAC9E8/H,EAAqB9B,EAAgBW,GAA6BE,GAAUnD,GAAuBmD,EAAQ/D,GAAiB3iG,I,OAC3H4lG,GAAqC5lG,EAAW2nG,EAAoB9B,E,CCV7E,SAAwB+B,GAAcr5H,G,IAC9B1D,EAAS0D,EAAQ43F,cAAcC,YAC/B0+B,EAASj6H,EAAO+6F,iBAAiBr3F,GACjCu6E,EAAIlkB,WAAWkgE,EAAOh+B,WAAa,GAAKliC,WAAWkgE,EAAO+C,cAAgB,GAC1Ej0C,EAAIhvB,WAAWkgE,EAAO/9B,YAAc,GAAKniC,WAAWkgE,EAAOrnB,aAAe,GAC1EloG,EAAS,C,MACNhH,EAAQm3H,YAAc9xC,E,OACrBrlF,EAAQ21F,aAAepb,G,OAE1BvzE,C,CCTT,SAAwBuyH,GAAqBZ,G,IACrC/hE,EAAO,CAAEl1B,KAAM,QAASC,MAAO,OAAQytE,OAAQ,MAAO1X,IAAK,U,OAC1DihC,EAAU96H,QAAQ,0BAA0B,SAAA27H,G,OAAW5iE,EAAK4iE,E,ICIrE,SAAwBC,GAAiBtB,EAAQuB,EAAkBf,G,EACrDA,EAAUl7H,MAAM,KAAK,G,IAG3Bk8H,EAAaN,GAAclB,GAG3ByB,EAAgB,C,MACbD,EAAWrkC,M,OACVqkC,EAAWtkC,QAIfwkC,GAAoD,IAA1C,CAAC,QAAS,QAAQl/H,QAAQg+H,GACpCmB,EAAWD,EAAU,MAAQ,OAC7BE,EAAgBF,EAAU,OAAS,MACnCG,EAAcH,EAAU,SAAW,QACnCI,EAAwBJ,EAAqB,QAAX,S,SAE1BC,GACZJ,EAAiBI,GACjBJ,EAAiBM,GAAe,EAChCL,EAAWK,GAAe,E,EAEZD,GADZpB,IAAcoB,EAEdL,EAAiBK,GAAiBJ,EAAWM,GAG7CP,EAAiBH,GAAqBQ,IAGnCH,C,CCnCT,SAAwBM,GAAKl/H,EAAKm/H,G,OAE5B9+H,MAAMjB,UAAU8/H,KACXl/H,EAAIk/H,KAAKC,GAIXn/H,EAAInC,OAAOshI,GAAO,E,CCL3B,SAAwBC,GAAUp/H,EAAKwE,EAAMnF,G,GAEvCgB,MAAMjB,UAAUggI,U,OACXp/H,EAAIo/H,WAAU,SAAAC,G,OAAOA,EAAI76H,KAAUnF,C,QAItCyD,EAAQo8H,GAAKl/H,GAAK,SAAAhB,G,OAAOA,EAAIwF,KAAUnF,C,WACtCW,EAAIL,QAAQmD,E,CCLrB,SAAwBw8H,GAAanU,EAAWhmH,EAAMo6H,G,IAC9CC,OAA0Bt6H,IAATq6H,EACnBpU,EACAA,EAAUrqH,MAAM,EAAGs+H,GAAUjU,EAAW,OAAQoU,I,SAErC9gI,SAAQ,SAAA48H,GACjBA,EAAS,a,QACHv7C,KAAK,yD,IAETlpE,EAAKykH,EAAS,aAAeA,EAASzkH,GACxCykH,EAAS7rF,SAAW1iC,GAAW8J,K,EAI5BmlH,QAAQoB,OAASrB,GAAc32H,EAAK42H,QAAQoB,Q,EAC5CpB,QAAQtlG,UAAYqlG,GAAc32H,EAAK42H,QAAQtlG,W,EAE7C7f,EAAGzR,EAAMk2H,G,IAIbl2H,C,CCvBT,SAAwBs1C,K,IAElBt+C,KAAKu7B,MAAM+nG,Y,KAIXt6H,EAAO,C,SACChJ,K,OACF,CAAC,E,YACI,CAAC,E,WACF,CAAC,E,SACJ,E,QACA,CAAC,G,EAIP4/H,QAAQtlG,UAAY0nG,GACvBhiI,KAAKu7B,MACLv7B,KAAKghI,OACLhhI,KAAKs6B,UACLt6B,KAAKL,QAAQ4jI,e,EAMV/B,UAAYD,GACfvhI,KAAKL,QAAQ6hI,UACbx4H,EAAK42H,QAAQtlG,UACbt6B,KAAKghI,OACLhhI,KAAKs6B,UACLt6B,KAAKL,QAAQqvH,UAAU3jH,KAAK41H,kBAC5BjhI,KAAKL,QAAQqvH,UAAU3jH,KAAKu+F,S,EAIzB45B,kBAAoBx6H,EAAKw4H,U,EAEzB+B,cAAgBvjI,KAAKL,QAAQ4jI,c,EAG7B3D,QAAQoB,OAASsB,GACpBtiI,KAAKghI,OACLh4H,EAAK42H,QAAQtlG,UACbtxB,EAAKw4H,W,EAGF5B,QAAQoB,OAAOngC,SAAW7gG,KAAKL,QAAQ4jI,cACxC,QACA,W,EAGGJ,GAAanjI,KAAKgvH,UAAWhmH,GAI/BhJ,KAAKu7B,MAAMkoG,U,KAIT9jI,QAAQ+jI,SAAS16H,I,KAHjBuyB,MAAMkoG,WAAY,E,KAClB9jI,QAAQgkI,SAAS36H,G,EChE1B,SAAwB46H,GAAkB5U,EAAW6U,G,OAC5C7U,EAAUzqC,MACf,SAAApkD,G,IAAGv7B,EAAHu7B,EAAGv7B,KAAMyuC,EAATlT,EAASkT,Q,OAAcA,GAAWzuC,IAASi/H,C,ICD/C,SAAwBC,GAAyB/uG,G,QACzCgvG,EAAW,EAAC,EAAO,KAAM,SAAU,MAAO,KAC1CC,EAAYjvG,EAASsD,OAAO,GAAGxxB,cAAgBkuB,EAASpwB,MAAM,GAE3DzC,EAAI,EAAGA,EAAI6hI,EAAS3hI,OAAQF,IAAK,C,IAClCgK,EAAS63H,EAAS7hI,GAClB+hI,EAAU/3H,EAAA,GAAYA,EAAS83H,EAAcjvG,E,GACP,qBAAjCsmD,SAASloC,KAAKrrC,MAAMm8H,G,OACtBA,C,QAGJ,I,CCVT,SAAwBlV,K,YACjBxzF,MAAM+nG,aAAc,EAGrBM,GAAkB5jI,KAAKgvH,UAAW,gB,KAC/BgS,OAAOthC,gBAAgB,e,KACvBshC,OAAOl5H,MAAM+4F,SAAW,G,KACxBmgC,OAAOl5H,MAAMy4F,IAAM,G,KACnBygC,OAAOl5H,MAAMyiC,KAAO,G,KACpBy2F,OAAOl5H,MAAM0iC,MAAQ,G,KACrBw2F,OAAOl5H,MAAMmwG,OAAS,G,KACtB+oB,OAAOl5H,MAAMo8H,WAAa,G,KAC1BlD,OAAOl5H,MAAMg8H,GAAyB,cAAgB,I,KAGxDK,wBAIDnkI,KAAKL,QAAQykI,iB,KACVpD,OAAOrkC,WAAWY,YAAYv9F,KAAKghI,QAEnChhI,I,CCzBT,SAAwB6Y,GAAUhQ,G,IAC1B43F,EAAgB53F,EAAQ43F,c,OACvBA,EAAgBA,EAAcC,YAAcv7F,M,CCJrD,SAASk/H,GAAsB9D,EAAc72E,EAAOtiD,EAAUk9H,G,IACtDC,EAAmC,SAA1BhE,EAAa5D,SACtB16H,EAASsiI,EAAShE,EAAa9/B,cAAcC,YAAc6/B,E,EAC1DjkD,iBAAiB5yB,EAAOtiD,EAAU,CAAEi1E,SAAS,IAE/CkoD,G,GAED3H,GAAgB36H,EAAO06F,YACvBjzC,EACAtiD,EACAk9H,G,EAGUxiI,KAAKG,E,CASrB,SAAwBuiI,GACtBlqG,EACA36B,EACA47B,EACAkpG,G,EAGMA,YAAcA,E,GACVnqG,GAAWgiD,iBAAiB,SAAU/gD,EAAMkpG,YAAa,CAAEpoD,SAAS,I,IAGxEqoD,EAAgB9H,GAAgBtiG,G,UAEpCoqG,EACA,SACAnpG,EAAMkpG,YACNlpG,EAAM+oG,e,EAEFI,cAAgBA,E,EAChBC,eAAgB,EAEfppG,C,CCtCT,SAAwBqpG,KACjB5kI,KAAKu7B,MAAMopG,gB,KACTppG,MAAQipG,GACXxkI,KAAKs6B,UACLt6B,KAAKL,QACLK,KAAKu7B,MACLv7B,KAAK6kI,gB,CCNX,SAAwBC,GAAqBxqG,EAAWiB,G,UAE5CjB,GAAWiiD,oBAAoB,SAAUhhD,EAAMkpG,a,EAGnDH,cAAchiI,SAAQ,SAAAL,G,EACnBs6E,oBAAoB,SAAUhhD,EAAMkpG,Y,MAIvCA,YAAc,K,EACdH,cAAgB,G,EAChBI,cAAgB,K,EAChBC,eAAgB,EACfppG,C,CCbT,SAAwB4oG,KAClBnkI,KAAKu7B,MAAMopG,gB,qBACQ3kI,KAAK6kI,gB,KACrBtpG,MAAQupG,GAAqB9kI,KAAKs6B,UAAWt6B,KAAKu7B,O,CCL3D,SAAwB2mD,GAAUz9E,G,MACnB,KAANA,IAAasiC,MAAMm4B,WAAWz6D,KAAOsgI,SAAStgI,E,CCEvD,SAAwBugI,GAAUn8H,EAASu2H,G,OAClC99H,KAAK89H,GAAQ98H,SAAQ,SAAA+F,G,IACtB48H,EAAO,IAIN,IADH,CAAC,QAAS,SAAU,MAAO,QAAS,SAAU,QAAQzhI,QAAQ6E,IAE9D65E,GAAUk9C,EAAO/2H,M,EAEV,M,EAEDP,MAAMO,GAAQ+2H,EAAO/2H,GAAQ48H,C,ICbzC,SAAwBC,GAAcr8H,EAASO,G,OACtC9H,KAAK8H,GAAY9G,SAAQ,SAAS+F,G,IACjCnF,EAAQkG,EAAWf,IACX,IAAVnF,E,EACMs8F,aAAan3F,EAAMe,EAAWf,I,EAE9Bq3F,gBAAgBr3F,E,ICA9B,SAAwB88H,GAAWn8H,G,UAKvBA,EAAKm2E,SAAS6hD,OAAQh4H,EAAKo2H,Q,GAIvBp2H,EAAKm2E,SAAS6hD,OAAQh4H,EAAKI,YAGrCJ,EAAKo8H,cAAgB7jI,OAAOD,KAAK0H,EAAKq8H,aAAajjI,Q,GAC3C4G,EAAKo8H,aAAcp8H,EAAKq8H,aAG7Br8H,C,CAaT,SAAgBs8H,GACdhrG,EACA0mG,EACArhI,EACA4lI,EACAhqG,G,IAGMgnG,EAAmBP,GAAoBzmG,EAAOylG,EAAQ1mG,EAAW36B,EAAQ4jI,eAKzE/B,EAAYD,GAChB5hI,EAAQ6hI,UACRe,EACAvB,EACA1mG,EACA36B,EAAQqvH,UAAU3jH,KAAK41H,kBACvBthI,EAAQqvH,UAAU3jH,KAAKu+F,S,SAGlBpK,aAAa,cAAegiC,G,GAIzBR,EAAQ,CAAEngC,SAAUlhG,EAAQ4jI,cAAgB,QAAU,aAEzD5jI,C,CCpDT,SAAwB6lI,GAAkBx8H,EAAMy8H,G,MAChBz8H,EAAK42H,QAA3BoB,EADmD0E,EACnD1E,OAAQ1mG,EAD2CorG,EAC3CprG,UACR0M,EAAiB93B,KAAjB83B,MAAOjP,EAAU7oB,KAAV6oB,MACT4tG,EAAU,SAAAl2H,G,OAAKA,C,EAEfm2H,EAAiB5+F,EAAM1M,EAAU6jE,OACjC0nC,EAAc7+F,EAAMg6F,EAAO7iC,OAE3B2nC,GAA4D,IAA/C,CAAC,OAAQ,SAAStiI,QAAQwF,EAAKw4H,WAC5CuE,GAA+C,IAAjC/8H,EAAKw4H,UAAUh+H,QAAQ,KACrCwiI,EAAkBJ,EAAiB,IAAMC,EAAc,EACvDI,EAAeL,EAAiB,IAAM,GAAKC,EAAc,IAAM,EAE/DK,EAAuBT,EAEzBK,GAAcC,GAAeC,EAC7Bh/F,EACAjP,EAHA4tG,EAIEQ,EAAqBV,EAAwBz+F,EAAV2+F,E,MAElC,C,KACCO,EACJD,IAAiBF,GAAeN,EAC5BzE,EAAOz2F,KAAO,EACdy2F,EAAOz2F,M,IAER47F,EAAkBnF,EAAOzgC,K,OACtB4lC,EAAkBnF,EAAO/oB,Q,MAC1BiuB,EAAoBlF,EAAOx2F,O,CCxCtC,IAAM47F,GAAYrK,IAAa,WAAWl3H,KAAK02E,UAAU1lD,WASzD,SAAwBwwG,GAAar9H,EAAMrJ,G,IACjCyjF,EAASzjF,EAATyjF,EAAG8K,EAAMvuF,EAANuuF,EACH8yC,EAAWh4H,EAAK42H,QAAhBoB,OAGFsF,EAA8BvD,GAClC/5H,EAAKm2E,SAAS6vC,WACd,SAAAkQ,G,MAA8B,eAAlBA,EAASt6H,I,IACrB2hI,qBACkCx9H,IAAhCu9H,G,QACM3iD,KACN,iI,IAGE4iD,OAC4Bx9H,IAAhCu9H,EACIA,EACA3mI,EAAQ4mI,gBAERvlC,EAAeu8B,GAAgBv0H,EAAKm2E,SAAS6hD,QAC7CwF,EAAmBxmC,GAAsBgB,GAGzCo+B,EAAS,C,SACH4B,EAAOngC,UAGb++B,EAAU4F,GACdx8H,EACA7D,OAAOshI,iBAAmB,IAAML,IAG5B9G,EAAc,WAANl8C,EAAiB,MAAQ,SACjCm8C,EAAc,UAANrxC,EAAgB,OAAS,QAKjCw4C,EAAmB5C,GAAyB,aAW9Cv5F,OAAA,EAAMg2D,OAAA,E,KACI,WAAV++B,EAG4B,SAA1Bt+B,EAAa27B,UACR37B,EAAa8+B,aAAeF,EAAQ3nB,QAEpCuuB,EAAiBtoC,OAAS0hC,EAAQ3nB,OAGrC2nB,EAAQr/B,I,EAEF,UAAVg/B,EAC4B,SAA1Bv+B,EAAa27B,UACP37B,EAAa6+B,YAAcD,EAAQp1F,OAEnCg8F,EAAiBroC,MAAQyhC,EAAQp1F,MAGpCo1F,EAAQr1F,KAEbg8F,GAAmBG,E,EACdA,GAAP,eAA0Cn8F,EAA1C,OAAqDg2D,EAArD,S,EACO++B,GAAS,E,EACTC,GAAS,E,EACT2E,WAAa,gBACf,C,IAECyC,EAAsB,WAAVrH,GAAsB,EAAI,EACtCsH,EAAuB,UAAVrH,GAAqB,EAAI,E,EACrCD,GAAS/+B,EAAMomC,E,EACfpH,GAASh1F,EAAOq8F,E,EAChB1C,WAAgB5E,EAAvB,KAAiCC,C,KAI7Bn2H,EAAa,C,cACFJ,EAAKw4H,W,SAIjBp4H,WAALy9H,GAAA,GAAuBz9H,EAAeJ,EAAKI,Y,EACtCg2H,OAALyH,GAAA,GAAmBzH,EAAWp2H,EAAKo2H,Q,EAC9BiG,YAALwB,GAAA,GAAwB79H,EAAK42H,QAAQkH,MAAU99H,EAAKq8H,aAE7Cr8H,C,CClGT,SAAwB+9H,GACtB/X,EACAgY,EACAC,G,IAEMC,EAAanE,GAAK/T,GAAW,SAAA7uF,G,IAAGv7B,EAAHu7B,EAAGv7B,K,OAAWA,IAASoiI,C,IAEpDpoE,IACFsoE,GACFlY,EAAUzqC,MAAK,SAAA26C,G,OAEXA,EAASt6H,OAASqiI,GAClB/H,EAAS7rF,SACT6rF,EAASlB,MAAQkJ,EAAWlJ,K,QAI7Bp/D,EAAY,C,IACTuoE,EAAA,IAAkBH,EAAlB,IACAI,EAAA,IAAiBH,EAAjB,I,QACEtjD,KACHyjD,EADL,4BAC0CD,EAD1C,4DACgHA,EADhH,I,QAIKvoE,C,CCxBT,SAAwBkoE,GAAM99H,EAAMrJ,G,UAE7BonI,GAAmB/9H,EAAKm2E,SAAS6vC,UAAW,QAAS,gB,OACjDhmH,E,IAGLo8H,EAAezlI,EAAQkJ,Q,GAGC,kBAAjBu8H,G,KACMp8H,EAAKm2E,SAAS6hD,OAAOjiC,cAAcqmC,IAG7CA,E,OACIp8H,O,IAKJA,EAAKm2E,SAAS6hD,OAAOljC,SAASsnC,G,eACzBzhD,KACN,iEAEK36E,E,IAILw4H,EAAYx4H,EAAKw4H,UAAUl7H,MAAM,KAAK,G,EACd0C,EAAK42H,QAA3BoB,EA5BmC0E,EA4BnC1E,OAAQ1mG,EA5B2BorG,EA4B3BprG,UACVwrG,GAAuD,IAA1C,CAAC,OAAQ,SAAStiI,QAAQg+H,GAEvC18H,EAAMghI,EAAa,SAAW,QAC9BuB,EAAkBvB,EAAa,MAAQ,OACvCpH,EAAO2I,EAAgBtgI,cACvBugI,EAAUxB,EAAa,OAAS,MAChCyB,EAASzB,EAAa,SAAW,QACjC0B,EAAmBtF,GAAckD,GAActgI,GAQjDw1B,EAAUitG,GAAUC,EAAmBxG,EAAOtC,K,EAC3CkB,QAAQoB,OAAOtC,IAClBsC,EAAOtC,IAASpkG,EAAUitG,GAAUC,IAGpCltG,EAAUokG,GAAQ8I,EAAmBxG,EAAOuG,K,EACzC3H,QAAQoB,OAAOtC,IAClBpkG,EAAUokG,GAAQ8I,EAAmBxG,EAAOuG,I,EAE3C3H,QAAQoB,OAASrB,GAAc32H,EAAK42H,QAAQoB,Q,IAG3ChV,EAAS1xF,EAAUokG,GAAQpkG,EAAUx1B,GAAO,EAAI0iI,EAAmB,EAInE5gC,EAAM61B,GAAyBzzH,EAAKm2E,SAAS6hD,QAC7CyG,EAAmBvoE,WAAW0nC,EAAA,SAAaygC,IAC3CK,EAAmBxoE,WAAW0nC,EAAA,SAAaygC,EAAb,UAChCM,EACF3b,EAAShjH,EAAK42H,QAAQoB,OAAOtC,GAAQ+I,EAAmBC,E,SAG9Cx4H,KAAKinB,IAAIjnB,KAAKi4B,IAAI65F,EAAOl8H,GAAO0iI,EAAkBG,GAAY,G,EAErEvC,aAAeA,E,EACfxF,QAAQkH,OAAbc,EAAA,GAAAjlI,GAAAilI,EACGlJ,EAAOxvH,KAAK83B,MAAM2gG,IADrBhlI,GAAAilI,EAEGN,EAAU,IAFbM,GAKO5+H,C,CChFT,SAAwB6+H,GAAqB9F,G,MACzB,QAAdA,EACK,QACgB,UAAdA,EACF,MAEFA,C,CCkBT,IAAA+F,GAAe,CACb,aACA,OACA,WACA,YACA,MACA,UACA,cACA,QACA,YACA,aACA,SACA,eACA,WACA,OACA,cC3CIC,GAAkBD,GAAWnjI,MAAM,GAYzC,SAAwBqjI,GAAUxG,G,IAAWyG,EAAiB9lI,UAAAC,OAAA,QAAA2G,IAAA5G,UAAA,IAAAA,UAAA,GACtD8xC,EAAQ8zF,GAAgBvkI,QAAQg+H,GAChC39H,EAAMkkI,GACTpjI,MAAMsvC,EAAQ,GACdhzC,OAAO8mI,GAAgBpjI,MAAM,EAAGsvC,I,OAC5Bg0F,EAAUpkI,EAAIigE,UAAYjgE,C,CCZnC,IAAMqkI,GAAY,C,KACV,O,UACK,Y,iBACO,oBAUpB,SAAwB78H,GAAKrC,EAAMrJ,G,GAE7BikI,GAAkB56H,EAAKm2E,SAAS6vC,UAAW,S,OACtChmH,E,GAGLA,EAAKm/H,SAAWn/H,EAAKw4H,YAAcx4H,EAAKw6H,kB,OAEnCx6H,E,IAGHk4H,EAAaH,GACjB/3H,EAAKm2E,SAAS6hD,OACdh4H,EAAKm2E,SAAS7kD,UACd36B,EAAQiqG,QACRjqG,EAAQshI,kBACRj4H,EAAKu6H,eAGH/B,EAAYx4H,EAAKw4H,UAAUl7H,MAAM,KAAK,GACtC8hI,EAAoBhG,GAAqBZ,GACzCO,EAAY/4H,EAAKw4H,UAAUl7H,MAAM,KAAK,IAAM,GAE5C+hI,EAAY,G,OAER1oI,EAAQ2oI,U,KACTJ,GAAUK,K,EACD,CAAC/G,EAAW4G,G,WAErBF,GAAUM,U,EACDR,GAAUxG,G,WAEnB0G,GAAUO,iB,EACDT,GAAUxG,GAAW,G,gBAGrB7hI,EAAQ2oI,S,SAGdhmI,SAAQ,SAACkhF,EAAMvvC,G,GACnButF,IAAch+C,GAAQ6kD,EAAUjmI,SAAW6xC,EAAQ,E,OAC9CjrC,E,EAGGA,EAAKw4H,UAAUl7H,MAAM,KAAK,G,EAClB87H,GAAqBZ,G,IAEnCiB,EAAgBz5H,EAAK42H,QAAQoB,OAC7B0H,EAAa1/H,EAAK42H,QAAQtlG,UAG1BvC,EAAQ7oB,KAAK6oB,MACb4wG,EACW,SAAdnH,GACCzpG,EAAM0qG,EAAcj4F,OAASzS,EAAM2wG,EAAWn+F,OACjC,UAAdi3F,GACCzpG,EAAM0qG,EAAcl4F,MAAQxS,EAAM2wG,EAAWl+F,QAChC,QAAdg3F,GACCzpG,EAAM0qG,EAAcxqB,QAAUlgF,EAAM2wG,EAAWnoC,MAClC,WAAdihC,GACCzpG,EAAM0qG,EAAcliC,KAAOxoE,EAAM2wG,EAAWzwB,QAE1C2wB,EAAgB7wG,EAAM0qG,EAAcl4F,MAAQxS,EAAMmpG,EAAW32F,MAC7Ds+F,EAAiB9wG,EAAM0qG,EAAcj4F,OAASzS,EAAMmpG,EAAW12F,OAC/Ds+F,EAAe/wG,EAAM0qG,EAAcliC,KAAOxoE,EAAMmpG,EAAW3gC,KAC3DwoC,EACJhxG,EAAM0qG,EAAcxqB,QAAUlgF,EAAMmpG,EAAWjpB,QAE3C+wB,EACW,SAAdxH,GAAwBoH,GACV,UAAdpH,GAAyBqH,GACX,QAAdrH,GAAuBsH,GACT,WAAdtH,GAA0BuH,EAGvBjD,GAAuD,IAA1C,CAAC,MAAO,UAAUtiI,QAAQg+H,GAGvCyH,IACFtpI,EAAQupI,iBACRpD,GAA4B,UAAd/D,GAAyB6G,GACtC9C,GAA4B,QAAd/D,GAAuB8G,IACpC/C,GAA4B,UAAd/D,GAAyB+G,IACvChD,GAA4B,QAAd/D,GAAuBgH,GAGrCI,IACFxpI,EAAQypI,0BACRtD,GAA4B,UAAd/D,GAAyB8G,GACtC/C,GAA4B,QAAd/D,GAAuB6G,IACpC9C,GAA4B,UAAd/D,GAAyBgH,IACvCjD,GAA4B,QAAd/D,GAAuB+G,GAErCO,EAAmBJ,GAAyBE,GAE9CR,GAAeK,GAAuBK,K,EAEnClB,SAAU,GAEXQ,GAAeK,K,EACLX,EAAUp0F,EAAQ,IAG5Bo1F,I,EACUxB,GAAqB9F,I,EAG9BP,UAAYA,GAAaO,EAAY,IAAMA,EAAY,I,EAIvDnC,QAAQoB,OAAb6F,GAAA,GACK79H,EAAK42H,QAAQoB,OACbsB,GACDt5H,EAAKm2E,SAAS6hD,OACdh4H,EAAK42H,QAAQtlG,UACbtxB,EAAKw4H,Y,EAIF2B,GAAan6H,EAAKm2E,SAAS6vC,UAAWhmH,EAAM,Q,IAGhDA,C,CCzIT,SAAwBsgI,GAAatgI,G,MACLA,EAAK42H,QAA3BoB,EADiC0E,EACjC1E,OAAQ1mG,EADyBorG,EACzBprG,UACVknG,EAAYx4H,EAAKw4H,UAAUl7H,MAAM,KAAK,GACtCyxB,EAAQ7oB,KAAK6oB,MACb+tG,GAAuD,IAA1C,CAAC,MAAO,UAAUtiI,QAAQg+H,GACvC9C,EAAOoH,EAAa,QAAU,SAC9ByB,EAASzB,EAAa,OAAS,MAC/BjD,EAAciD,EAAa,QAAU,S,OAEvC9E,EAAOtC,GAAQ3mG,EAAMuC,EAAUitG,M,EAC5B3H,QAAQoB,OAAOuG,GAClBxvG,EAAMuC,EAAUitG,IAAWvG,EAAO6B,IAElC7B,EAAOuG,GAAUxvG,EAAMuC,EAAUokG,M,EAC9BkB,QAAQoB,OAAOuG,GAAUxvG,EAAMuC,EAAUokG,KAGzC11H,C,CCRT,SAAgBugI,GAAQjuC,EAAKunC,EAAaJ,EAAeF,G,IAEjDj8H,EAAQg1F,EAAI30F,MAAM,6BAClBzD,GAASoD,EAAM,GACf2+H,EAAO3+H,EAAM,G,IAGdpD,E,OACIo4F,E,GAGiB,IAAtB2pC,EAAKzhI,QAAQ,KAAY,C,IACvBqF,OAAA,E,OACIo8H,G,IACD,K,EACOxC,E,UAEP,I,IACA,K,UAEOF,E,IAGRzD,EAAOa,GAAc92H,G,OACpBi2H,EAAK+D,GAAe,IAAM3/H,C,CAC5B,GAAa,OAAT+hI,GAA0B,OAATA,EAAe,C,IAErC35H,OAAA,E,SACS,OAAT25H,EACK/1H,KAAKinB,IACVklD,SAASqB,gBAAgBojD,aACzB36H,OAAOy7H,aAAe,GAGjB1xH,KAAKinB,IACVklD,SAASqB,gBAAgBmjD,YACzB16H,OAAOw7H,YAAc,GAGlBr1H,EAAO,IAAMpI,C,QAIbA,C,CAeX,SAAgBsmI,GACdnpC,EACAoiC,EACAF,EACAkH,G,IAEM7J,EAAU,CAAC,EAAG,GAKd8J,GAA0D,IAA9C,CAAC,QAAS,QAAQlmI,QAAQimI,GAItCE,EAAYtpC,EAAO/5F,MAAM,WAAWyB,KAAI,SAAA6hI,G,OAAQA,EAAK3hI,M,IAIrD4hI,EAAUF,EAAUnmI,QACxBu/H,GAAK4G,GAAW,SAAAC,G,OAAiC,IAAzBA,EAAK70H,OAAO,O,KAGlC40H,EAAUE,KAAiD,IAArCF,EAAUE,GAASrmI,QAAQ,M,QAC3CmgF,KACN,gF,IAMEmmD,EAAa,cACfC,GAAmB,IAAbF,EACN,CACEF,EACGhlI,MAAM,EAAGklI,GACT5oI,OAAO,CAAC0oI,EAAUE,GAASvjI,MAAMwjI,GAAY,KAChD,CAACH,EAAUE,GAASvjI,MAAMwjI,GAAY,IAAI7oI,OACxC0oI,EAAUhlI,MAAMklI,EAAU,KAG9B,CAACF,G,SAGCI,EAAIhiI,KAAI,SAACiiI,EAAI/1F,G,IAEX4uF,GAAyB,IAAV5uF,GAAey1F,EAAYA,GAC5C,SACA,QACAO,GAAoB,E,OAEtBD,EAGG9hI,QAAO,SAAC24E,EAAG/oE,G,MACc,KAApB+oE,EAAEA,EAAEz+E,OAAS,KAAwC,IAA3B,CAAC,IAAK,KAAKoB,QAAQsU,I,EAC7C+oE,EAAEz+E,OAAS,GAAK0V,E,GACE,EACb+oE,GACEopD,G,EACPppD,EAAEz+E,OAAS,IAAM0V,E,GACC,EACb+oE,GAEAA,EAAE5/E,OAAO6W,E,GAEjB,IAEF/P,KAAI,SAAAuzF,G,OAAOiuC,GAAQjuC,EAAKunC,EAAaJ,EAAeF,E,SAKvDjgI,SAAQ,SAAC0nI,EAAI/1F,G,EACZ3xC,SAAQ,SAACsnI,EAAMM,GACZhoD,GAAU0nD,K,EACJ31F,IAAU21F,GAA2B,MAAnBI,EAAGE,EAAS,IAAc,EAAI,G,OAIvDtK,C,CAYT,SAAwBv/B,GAAOr3F,EAAhBm3B,G,IAAwBkgE,EAAUlgE,EAAVkgE,OAC7BmhC,EAA8Cx4H,EAA9Cw4H,U,EAA8Cx4H,EAAnC42H,QAAWoB,EADiB0E,EACjB1E,OAAQ1mG,EADSorG,EACTprG,UAChCmvG,EAAgBjI,EAAUl7H,MAAM,KAAK,GAEvCs5H,OAAA,E,SACA19C,IAAWme,GACH,EAAEA,EAAQ,GAEVmpC,GAAYnpC,EAAQ2gC,EAAQ1mG,EAAWmvG,GAG7B,SAAlBA,G,EACKlpC,KAAOq/B,EAAQ,G,EACfr1F,MAAQq1F,EAAQ,IACI,UAAlB6J,G,EACFlpC,KAAOq/B,EAAQ,G,EACfr1F,MAAQq1F,EAAQ,IACI,QAAlB6J,G,EACFl/F,MAAQq1F,EAAQ,G,EAChBr/B,KAAOq/B,EAAQ,IACK,WAAlB6J,I,EACFl/F,MAAQq1F,EAAQ,G,EAChBr/B,KAAOq/B,EAAQ,I,EAGnBoB,OAASA,EACPh4H,C,CCrLT,SAAwBmhI,GAAgBnhI,EAAMrJ,G,IACxCshI,EACFthI,EAAQshI,mBAAqB1D,GAAgBv0H,EAAKm2E,SAAS6hD,QAKzDh4H,EAAKm2E,SAAS7kD,YAAc2mG,I,EACV1D,GAAgB0D,I,IAMhCmJ,EAAgBtG,GAAyB,aACzCuG,EAAerhI,EAAKm2E,SAAS6hD,OAAOl5H,MAClCy4F,EAA0C8pC,EAA1C9pC,IAAKh2D,EAAqC8/F,EAArC9/F,KAAuBx9B,EAAcs9H,EAA9BD,G,EACP7pC,IAAM,G,EACNh2D,KAAO,G,EACP6/F,GAAiB,G,IAExBlJ,EAAaH,GACjB/3H,EAAKm2E,SAAS6hD,OACdh4H,EAAKm2E,SAAS7kD,UACd36B,EAAQiqG,QACRq3B,EACAj4H,EAAKu6H,e,EAKMhjC,IAAMA,E,EACNh2D,KAAOA,E,EACP6/F,GAAiBr9H,E,EAEtBm0H,WAAaA,E,IAEflD,EAAQr+H,EAAQ8hE,SAClBu/D,EAASh4H,EAAK42H,QAAQoB,OAEpBgC,EAAQ,C,QAAA,SACJxB,G,IACFt+H,EAAQ89H,EAAOQ,G,OAEjBR,EAAOQ,GAAaN,EAAWM,KAC9B7hI,EAAQ2qI,sB,EAEDp7H,KAAKinB,IAAI6qG,EAAOQ,GAAYN,EAAWM,K,MAEvCA,EAAYt+H,E,YATZ,SAWFs+H,G,IACFmB,EAAyB,UAAdnB,EAAwB,OAAS,MAC9Ct+H,EAAQ89H,EAAO2B,G,OAEjB3B,EAAOQ,GAAaN,EAAWM,KAC9B7hI,EAAQ2qI,sB,EAEDp7H,KAAKi4B,IACX65F,EAAO2B,GACPzB,EAAWM,IACM,UAAdA,EAAwBR,EAAO7iC,MAAQ6iC,EAAO9iC,U,MAG3CykC,EAAWz/H,E,YAInBZ,SAAQ,SAAAk/H,G,IACN9C,GACoC,IAAxC,CAAC,OAAQ,OAAOl7H,QAAQg+H,GAAoB,UAAY,Y,QAC5CR,EAAWgC,EAAMtE,GAAM8C,G,MAGlC5B,QAAQoB,OAASA,EAEfh4H,C,CChFT,SAAwBiiG,GAAMjiG,G,IACtBw4H,EAAYx4H,EAAKw4H,UACjBiI,EAAgBjI,EAAUl7H,MAAM,KAAK,GACrCikI,EAAiB/I,EAAUl7H,MAAM,KAAK,G,GAGxCikI,EAAgB,C,MACYvhI,EAAK42H,QAA3BtlG,EADUorG,EACVprG,UAAW0mG,EADD0E,EACC1E,OACb8E,GAA2D,IAA9C,CAAC,SAAU,OAAOtiI,QAAQimI,GACvC/K,EAAOoH,EAAa,OAAS,MAC7BjD,EAAciD,EAAa,QAAU,SAErC0E,EAAe,C,YACT9L,EAAOpkG,EAAUokG,I,UAExBA,EAAOpkG,EAAUokG,GAAQpkG,EAAUuoG,GAAe7B,EAAO6B,K,EAIzDjD,QAAQoB,OAAb6F,GAAA,GAA2B7F,EAAWwJ,EAAaD,G,QAG9CvhI,C,CCnBT,SAAwByhI,GAAKzhI,G,IACtB+9H,GAAmB/9H,EAAKm2E,SAAS6vC,UAAW,OAAQ,mB,OAChDhmH,E,IAGHy4H,EAAUz4H,EAAK42H,QAAQtlG,UACvBowG,EAAQ3H,GACZ/5H,EAAKm2E,SAAS6vC,WACd,SAAAkQ,G,MAA8B,oBAAlBA,EAASt6H,I,IACrBs8H,W,GAGAO,EAAQxpB,OAASyyB,EAAMnqC,KACvBkhC,EAAQl3F,KAAOmgG,EAAMlgG,OACrBi3F,EAAQlhC,IAAMmqC,EAAMzyB,QACpBwpB,EAAQj3F,MAAQkgG,EAAMngG,KACtB,C,IAEkB,IAAdvhC,EAAKyhI,K,OACAzhI,E,EAGJyhI,MAAO,E,EACPrhI,WAAW,uBAAyB,E,KACpC,C,IAEa,IAAdJ,EAAKyhI,K,OACAzhI,E,EAGJyhI,MAAO,E,EACPrhI,WAAW,wBAAyB,C,QAGpCJ,C,CClCT,SAAwB4rH,GAAM5rH,G,IACtBw4H,EAAYx4H,EAAKw4H,UACjBiI,EAAgBjI,EAAUl7H,MAAM,KAAK,G,EACb0C,EAAK42H,QAA3BoB,EAH0B0E,EAG1B1E,OAAQ1mG,EAHkBorG,EAGlBprG,UACVooG,GAAwD,IAA9C,CAAC,OAAQ,SAASl/H,QAAQimI,GAEpCkB,GAA6D,IAA5C,CAAC,MAAO,QAAQnnI,QAAQimI,G,SAExC/G,EAAU,OAAS,OACxBpoG,EAAUmvG,IACTkB,EAAiB3J,EAAO0B,EAAU,QAAU,UAAY,G,EAEtDlB,UAAYY,GAAqBZ,G,EACjC5B,QAAQoB,OAASrB,GAAcqB,GAE7Bh4H,C,CCOT,IAAAgmH,GAAe,C,MASN,C,MAEE,I,SAEE,E,GAEL/jB,I,OAyCE,C,MAEC,I,SAEE,E,GAEL5K,G,OAII,G,gBAoBO,C,MAER,I,SAEE,E,GAEL8pC,G,SAMM,CAAC,OAAQ,QAAS,MAAO,U,QAO1B,E,kBAMU,gB,aAYP,C,MAEL,I,SAEE,E,GAELb,I,MAaC,C,MAEE,I,SAEE,E,GAELxC,G,QAEK,a,KAcL,C,MAEG,I,SAEE,E,GAELz7H,G,SAOM,O,QAKD,E,kBAOU,W,gBAQH,E,yBAQS,G,MAUpB,C,MAEE,I,SAEE,E,GAELupH,I,KAaA,C,MAEG,I,SAEE,E,GAEL6V,I,aAkBQ,C,MAEL,I,SAEE,E,GAELpE,G,iBAMa,E,EAMd,S,EAMA,S,WAkBO,C,MAEH,I,SAEE,E,GAELlB,G,OAEIG,G,qBAOSv8H,ICzUrB6hI,GAAe,C,UAKF,S,eAMI,E,eAMA,E,iBAOE,E,SAQP,WAAO,E,SAUP,WAAO,E,cChDEC,GAAA,W,WASPvwG,EAAW0mG,G,WAAQrhI,EAAcwC,UAAAC,OAAA,QAAA2G,IAAA5G,UAAA,GAAAA,UAAA,GAAJ,CAAC,E,gBAyF1C0iI,eAAiB,W,OAAM7nC,sBAAsBxgF,EAAK8hC,O,OAvF3CA,OAASg+E,GAASt8H,KAAKs+C,OAAOp1C,KAAKlJ,O,KAGnCL,QAALknI,GAAA,GAAoBgE,EAAOD,SAAajrI,G,KAGnC47B,MAAQ,C,aACE,E,WACF,E,cACI,I,KAIZjB,UAAYA,GAAaA,EAAUwwG,OAASxwG,EAAU,GAAKA,E,KAC3D0mG,OAASA,GAAUA,EAAO8J,OAAS9J,EAAO,GAAKA,E,KAG/CrhI,QAAQqvH,UAAY,CAAC,E,OACnB1tH,KAAPulI,GAAA,GACKgE,EAAOD,SAAS5b,UAChBrvH,EAAQqvH,YACV1sH,SAAQ,SAAAsC,G,EACJjF,QAAQqvH,UAAUpqH,GAAvBiiI,GAAA,GAEMgE,EAAOD,SAAS5b,UAAUpqH,IAAS,CAAC,EAEpCjF,EAAQqvH,UAAYrvH,EAAQqvH,UAAUpqH,GAAQ,CAAC,E,SAKlDoqH,UAAYztH,OAAOD,KAAKtB,KAAKL,QAAQqvH,WACvCjnH,KAAI,SAAAnD,G,mBAEA4X,EAAK7c,QAAQqvH,UAAUpqH,G,IAG3B+rC,MAAK,SAACkwC,EAAG/oE,G,OAAM+oE,EAAEm9C,MAAQlmH,EAAEkmH,K,SAMzBhP,UAAU1sH,SAAQ,SAAAijI,GACjBA,EAAgBlyF,SAAW1iC,GAAW40H,EAAgBwF,S,EACxCA,OACdvuH,EAAK8d,UACL9d,EAAKwkH,OACLxkH,EAAK7c,QACL4lI,EACA/oH,EAAK+e,M,SAMN+iB,S,IAECqmF,EAAgB3kI,KAAKL,QAAQglI,cAC/BA,G,KAEGC,uB,KAGFrpG,MAAMopG,cAAgBA,C,oDAMpBrmF,GAAOj+C,KAAKL,K,0CAGZ+uH,GAAQ1uH,KAAKL,K,uDAGb4kI,GAAqBvkI,KAAKL,K,wDAG1BmkI,GAAsB9jI,KAAKL,K,OA1FjB,GAAA6qI,GAoHZG,OAA2B,qBAAX7lI,OAAyBA,OAASC,EAAAA,GAAQ6lI,YApH9CJ,GAsHZ/C,WAAaA,GAtHD+C,GAwHZD,SAAWA,G,UCpITM,GAAsB,YACtBC,GAAoB,UACpBC,GAAyB,eACzBC,GAAuB,aACvBC,GAAwB,cAExBC,GAAuB,aCNlC,SAASrsD,GAAgBC,EAAU58D,GAAe,KAAM48D,aAAoB58D,GAAgB,MAAM,IAAIvd,UAAU,oCAAwC,CAExJ,SAAS++E,GAAkB9hF,EAAQ6G,GAAS,IAAK,IAAI5G,EAAI,EAAGA,EAAI4G,EAAM1G,OAAQF,IAAK,CAAE,IAAIygF,EAAa75E,EAAM5G,GAAIygF,EAAW9gF,WAAa8gF,EAAW9gF,aAAc,EAAO8gF,EAAWx/E,cAAe,EAAU,UAAWw/E,IAAYA,EAAWv/E,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ0gF,EAAWpgF,IAAKogF,EAAa,CAAE,CAE5T,SAASqB,GAAazhE,EAAa0hE,EAAYC,GAAyN,OAAtMD,GAAYF,GAAkBxhE,EAAYtf,UAAWghF,GAAiBC,GAAaH,GAAkBxhE,EAAa2hE,GAAc3iF,OAAOoB,eAAe4f,EAAa,YAAa,CAAEnf,UAAU,IAAiBmf,CAAa,CAGrR,IAAIipH,GAAuB,WAChC,SAASA,EAAQl/H,GACf,IAAIm/H,EAAYtpI,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAKrF,GAHA+8E,GAAgBl/E,KAAMwrI,IAGjBl/H,EAEH,MAAM,IAAItH,UAAU,wBAAwB/D,OAAOjB,KAAKgD,YAAY4B,KAAM,4BAA4B3D,OAAOkB,UAAUC,OAAQ,YAKjIqgF,GAAOziF,KAAMwrI,EAAQZ,SAAU5qI,KAAKgD,YAAY4nI,SAAUa,EAAW,CACnEn/H,KAAMA,IAGR5J,GAAiB1C,KAAM,CACrBsM,KAAM22E,KACNyoD,WAAYzoD,KACZ0oD,YAAa1oD,KACbhhF,OAAQghF,KACRg4B,cAAeh4B,KACf2oD,UAAW3oD,KACX4oD,YAAa5oD,OAGf,IAAI6oD,GAAmB,EAEvB9rI,KAAKukG,eAAiB,WAChBvkG,KAAK0rI,aACPI,GAAmB,EAEvB,EAIAnpI,GAAe3C,KAAM,mBAAoB,CACvC6B,YAAY,EACZmQ,IAAK,WACH,OAAO85H,CACT,GAEJ,CAiBA,OAfA9nD,GAAawnD,EAAS,KAAM,CAAC,CAC3BjpI,IAAK,WACLyP,IAAK,WACH,MAAO,CACL1F,KAAM,GACNo/H,YAAY,EACZC,YAAa,KACb1pI,OAAQ,KACRg5G,cAAe,KACf2wB,UAAW,KACXC,YAAa,KAEjB,KAGKL,CACT,CA9DkC,GCFvBO,GAAgBxmD,GAAO,CAChCv8E,KAAM,WACJ,MAAO,CACLgjI,mBAAmB,EAEvB,EACApkC,MAAO,CACLokC,kBAAmB,SAA2B75H,EAAU4+F,GAClD5+F,IAAa4+F,IACf7+D,GAASlyC,KAAKisI,gBAAiBjsI,KAAKksI,kBAAmBlsI,KAAKmsI,iBAAkB/3C,IAE1EjiF,GACF4/B,GAAQ/xC,KAAKisI,gBAAiBjsI,KAAKksI,kBAAmBlsI,KAAKmsI,iBAAkB/3C,IAGnF,GAEFpzF,aAAc,WAEZhB,KAAKisI,gBAAkB,KACvBjsI,KAAKksI,kBAAoB,IAC3B,EACAvxB,QAAS,WACF36G,KAAKisI,kBACRjsI,KAAKisI,gBAAkB5wD,UAGpBr7E,KAAKksI,oBACRlsI,KAAKksI,kBAAoB,SAGvBlsI,KAAKgsI,mBACPj6F,GAAQ/xC,KAAKisI,gBAAiBjsI,KAAKksI,kBAAmBlsI,KAAKmsI,iBAAkB/3C,GAEjF,EACA8T,cAAe,WACbh2D,GAASlyC,KAAKisI,gBAAiBjsI,KAAKksI,kBAAmBlsI,KAAKmsI,iBAAkB/3C,GAChF,EACAsG,QAAS,CACP0xC,WAAY,SAAoB1iF,GAC9B,OAAQo0C,GAAS99F,KAAK60G,IAAKnrD,EAAMznD,OACnC,EACAkqI,iBAAkB,SAA0BziF,GACtC1pD,KAAKqsI,iBAAmBrsI,KAAKosI,WAAW1iF,IAC1C1pD,KAAKqsI,gBAAgB3iF,EAEzB,KC/CO4iF,GAAe/mD,GAAO,CAC/Bv8E,KAAM,WACJ,MAAO,CACLujI,kBAAkB,EAEtB,EACA3kC,MAAO,CACL2kC,iBAAkB,SAA0Bp6H,EAAU4+F,GAChD5+F,IAAa4+F,IACf7+D,GAASlyC,KAAKwsI,eAAgB,UAAWxsI,KAAKysI,gBAAiBr4C,IAE3DjiF,GACF4/B,GAAQ/xC,KAAKwsI,eAAgB,UAAWxsI,KAAKysI,gBAAiBr4C,IAGpE,GAEFpzF,aAAc,WAEZhB,KAAKwsI,eAAiB,IACxB,EACA7xB,QAAS,WACF36G,KAAKwsI,iBACRxsI,KAAKwsI,eAAiBnxD,UAGpBr7E,KAAKusI,kBACPx6F,GAAQ/xC,KAAKwsI,eAAgB,UAAWxsI,KAAKysI,gBAAiBr4C,GAElE,EACA8T,cAAe,WACbh2D,GAASlyC,KAAKwsI,eAAgB,UAAWxsI,KAAKysI,gBAAiBr4C,GACjE,EACAsG,QAAS,CACP+xC,gBAAiB,SAAyB/iF,GACpC1pD,KAAK0sI,gBACP1sI,KAAK0sI,eAAehjF,EAExB,KCzCApyC,GAAW,KAEX+2E,KACF/2E,GAAW,IAAIq1H,SAGV,IAAIC,GAA4B,SAAmC/jI,EAASs2E,GAC5EkP,IAIL/2E,GAASpF,IAAIrJ,EAASs2E,EACxB,EACW0tD,GAA0B,SAAiChkI,GAC/DwlF,IAIL/2E,GAASw1H,OAAOjkI,EAClB,EACWkkI,GAAyB,SAAgClkI,GAClE,IAAKwlF,GACH,OAAOxlF,EAAQ+rG,QAGjB,IAAIo4B,EAAiBnkI,EAErB,MAAOmkI,EAAgB,CACrB,GAAI11H,GAASmpE,IAAIusD,GAEf,OAAO11H,GAAStF,IAAIg7H,GAGtBA,EAAiBA,EAAerwC,UAClC,CAEA,OAAO,IACT,ECtCA,SAASx7F,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAwBhN,IAAIoqI,GAAwBloC,GAAiBtd,GAAe6L,IACxD45C,GAAyBnoC,GAAiBtd,GAAeoK,IAEzDs7C,GAAsB,iBACtBC,GAAgB,CAAC,iBAAkB,oBAAoBrlI,KAAI,SAAU22F,GACvE,MAAO,GAAGz9F,OAAOy9F,EAAU,kCAC7B,IAAGn4F,KAAK,MAGJ8mI,GAAiB,SAAwBC,GAC3C,OAAQA,GAAO,IAAI5rI,OAAOm8F,GAC5B,EAGW/0F,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAc,CAAC,EAAGi8B,IAAU,CAAC,EAAG,CAG9F8uB,SAAUxqC,GAAS,CAAC1hB,GAAawT,IAAmB,gBACpDhiE,SAAUkwE,GAASxO,IAAmB,GAEtCi5C,SAAUzqC,GAASxO,IAAmB,GAEtCk5C,UAAW1qC,GAASxO,IAAmB,GAEvCm5C,OAAQ3qC,GAASxO,IAAmB,GAEpCo5C,OAAQ5qC,GAASxO,IAAmB,GAGpC8L,OAAQ0C,GAASxN,GAAyB,GAC1Cq4C,WAAY7qC,GAASpO,GAAkB,CAAC,GAExCnqD,MAAOu4D,GAASxO,IAAmB,MAChC9M,IAGMomD,GAAgBtoD,GAAO,CAChCp8E,OAAQ,CAACm1G,GAASxM,GAAmBi6B,GAAeO,IACpD7zB,QAAS,WACP,IAAIj8F,EAAQxc,KAEZ,MAAO,CACL8tI,cAAe,WACb,OAAOtxH,CACT,EAEJ,EACA66F,OAAQ,CACN02B,YAAa,CACXvhI,QAAS,WACP,OAAO,WACL,OAAO,IACT,CACF,IAGJ1D,MAAOA,GACPE,KAAM,WACJ,MAAO,CACLmlH,SAAS,EACT6f,wBAAwB,EAE5B,EACArkC,SAAU,CACRskC,SAAU,WACR,OAAOjuI,KAAK+tI,aACd,EACAG,SAAU,WACR,OAAQlsD,GAAOhiF,KAAKiuI,SACtB,EACAE,QAAS,WACP,IAAIr4B,EAAS91G,KAAK6lH,MAAM/P,OACxB,OAAOA,EAASA,EAAOjB,KAAOiB,EAAS,IACzC,EACAs4B,eAAgB,WACd,OAAIpuI,KAAK0tI,OACA,SACE1tI,KAAKytI,UACP,YACEztI,KAAKwtI,SACP,WAGF,EACT,EACAa,cAAe,WAIb,MAAyB,iBAAlBruI,KAAKutI,UAAgCvtI,KAAKkuI,SAA+B,GAApB,iBAC9D,EACAI,UAAW,WACT,OAAOtuI,KAAKkuI,SAAWzxD,EAAoB,IAAM,GAAK,CACxD,GAEFmrB,MAAO,CACLumB,QAAS,SAAiBh8G,EAAU4+F,GAClC,GAAI/wG,KAAKguI,uBACPhuI,KAAKguI,wBAAyB,OAIhC,GAAI77H,IAAa4+F,EAAU,CACzB,IAAIxgE,EAAYp+B,EAAWkhF,GAAkBvB,GACzCy8C,EAAU,IAAI/C,GAAQj7F,EAAW,CACnCm7F,YAAY,EACZE,UAAW5rI,KACXiC,OAAQjC,KAAK6lH,MAAM2oB,KACnBvzB,cAAe,KACf4wB,YAAa7rI,KAAKw+G,OAASx+G,KAAKw+G,SAAWx+G,KAAK44B,IAAM,OAIxD,GAFA54B,KAAK0hD,UAAU6sF,GAEXA,EAAQzC,iBAMV,OAJA9rI,KAAKguI,wBAAyB,EAC9BhuI,KAAKmuH,QAAUpd,OAEf/wG,KAAKwyG,KAAK3gB,GAAmB7xF,KAAKyuI,cAIhCt8H,EACFnS,KAAK0uI,WAEL1uI,KAAK2uI,UAET,CACF,EACA97G,SAAU,SAAkB1gB,EAAU4+F,GAChC5+F,IAAa4+F,GAAY5+F,GAAYnS,KAAKmuH,UAE5CnuH,KAAKmuH,SAAU,EAEnB,GAEFt/B,QAAS,WAEP7uF,KAAK4uI,SAAW,KAChB5uI,KAAK6uI,cAAgB,IACvB,EAGAjpB,YAAa,WAEX5lH,KAAKmuH,SAAU,EACfnuH,KAAK8uI,iBAAgB,GACrB9uI,KAAK+uI,eACP,EACAp0B,QAAS,WACPiyB,GAA0B5sI,KAAK60G,IAAK70G,KACtC,EACAkoG,cAAe,WACbloG,KAAKmuH,SAAU,EACfnuH,KAAK8uI,iBAAgB,GACrB9uI,KAAK+uI,gBACL/uI,KAAKgvI,mBACLnC,GAAwB7sI,KAAK60G,IAC/B,EACAna,QAAS,CAEPh5C,UAAW,SAAmB6sF,GAC5B,IAAIjiI,EAAOiiI,EAAQjiI,KACnBtM,KAAKyyG,WAAW1N,GAAiBtd,GAAen7E,GAAOiiI,GACvDvuI,KAAK8nG,MAAMx7F,EAAMiiI,EACnB,EACAG,SAAU,WACR,IAAIr8B,EAASryG,KAEb,IAAIA,KAAK6yB,SAAT,CAMA,IAAK7yB,KAAKkuI,SACR,GAAsB,qBAAXrD,GAETlnD,GAAK,uDAAwD8D,QACxD,CAEL,IAAIuH,EAAKhvF,KAAK0tI,QAAU1tI,KAAKwqC,OAASxqC,KAAKsG,MAAQtG,KAAK60G,IAAM70G,KAAK6lH,MAAM/P,OAEzE9mB,EAAKA,EAAG6lB,KAAO7lB,EAEfhvF,KAAKivI,aAAajgD,EACpB,CAIFhvF,KAAKyyG,WAAWw6B,GAAuBjtI,MAEvCA,KAAK8uI,iBAAgB,GAErB9uI,KAAKgoG,WAAU,WAEbqK,EAAO68B,YAGP78B,EAAOvK,MAAMxU,GACf,GA5BA,CA6BF,EACAq7C,SAAU,WACR3uI,KAAK8uI,iBAAgB,GACrB9uI,KAAKyyG,WAAWy6B,GAAwBltI,MACxCA,KAAK8nG,MAAMjW,IACX7xF,KAAK+uI,eACP,EACAE,aAAc,SAAsBpmI,GAClC7I,KAAK+uI,gBACL/uI,KAAK4uI,SAAW,IAAI/D,GAAOhiI,EAAS7I,KAAK6lH,MAAM2oB,KAAMxuI,KAAKmvI,kBAC5D,EAEAJ,cAAe,WACb/uI,KAAK4uI,UAAY5uI,KAAK4uI,SAAS7f,UAC/B/uH,KAAK4uI,SAAW,IAClB,EAGAQ,aAAc,WACZ,IACEpvI,KAAK4uI,SAAS/J,gBAChB,CAAE,MAAOroD,GAAU,CACrB,EACAwyD,iBAAkB,WAChB9sH,aAAaliB,KAAK6uI,eAClB7uI,KAAK6uI,cAAgB,IACvB,EACAM,gBAAiB,WACf,IAAI3N,EAAY4J,GAEZprI,KAAK0tI,OACPlM,EAAYxhI,KAAKwqC,MAAQ2gG,GAAoBD,GACpClrI,KAAKytI,UACdjM,EAAY8J,GACHtrI,KAAKwtI,SACdhM,EAAY+J,GACHvrI,KAAKwqC,QACdg3F,EAAY6J,IAGd,IAAIgE,EAAe,CACjB7N,UAAWA,EACXxS,UAAW,CACT3uB,OAAQ,CACNA,OAAQrgG,KAAKqgG,QAAU,GAEzBh1F,KAAM,CACJgoC,SAAUrzC,KAAK2tI,UAIjB1M,EAAoBjhI,KAAKutI,SAQ7B,OANItM,IACFoO,EAAargB,UAAUmb,gBAAkB,CACvClJ,kBAAmBA,IAIhBl+C,GAAUssD,EAAcrvI,KAAK4tI,YAAc,CAAC,EACrD,EAEAkB,gBAAiB,SAAyBQ,GAExCtvI,KAAKgsI,kBAAoBsD,EAEzBtvI,KAAKusI,iBAAmB+C,EAExB,IAAI58G,EAAS48G,EAAS,eAAiB,gBACvCtvI,KAAK0yB,GAAQu6G,GAAuBjtI,KAAKuvI,kBAC3C,EACAA,kBAAmB,SAA2B59B,GACxCA,IAAO3xG,OACTA,KAAKmuH,SAAU,EAEnB,EAEA/mB,KAAM,WACJ,IAAIse,EAAS1lH,KAETA,KAAK6yB,UAMTkqE,IAAU,WACR2oB,EAAOyI,SAAU,CACnB,GACF,EAEAsc,KAAM,WACJ,IAAI+E,EAAUrtI,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,IAAmBA,UAAU,GAGzEnC,KAAK6yB,WAIT7yB,KAAKmuH,SAAU,EAEXqhB,GAEFxvI,KAAKuyG,MAAM1gB,GAAmB7xF,KAAKyuI,cAEvC,EAEA34B,OAAQ,SAAgBpsD,GACtBA,EAAQA,GAAS,CAAC,EAElB,IAAI+lF,EAAS/lF,EACTp9C,EAAOmjI,EAAOnjI,KACd8pG,EAAUq5B,EAAOr5B,SAER,UAAT9pG,GAA+B,YAATA,IAAgF,IAA1D,CAACqjG,GAAYO,GAAYT,IAAWjsG,QAAQ4yG,MAOxFp2G,KAAK6yB,SACP7yB,KAAKmuH,SAAU,GAIjBnuH,KAAK8nG,MAAMnU,GAAmBjqC,GAC9B26C,GAAU36C,GAEN1pD,KAAKmuH,QACPnuH,KAAKyqI,MAAK,GAEVzqI,KAAKonG,QAET,EAIAsoC,YAAa,SAAqBhmF,GAShC26C,GAAU36C,EAAO,CACf+6C,aAAa,GAEjB,EAEAyW,UAAW,SAAmBxxD,GAC5B,IAAI0sD,EAAU1sD,EAAM0sD,QAEhBA,IAAYxG,GAEd5vG,KAAK2vI,MAAMjmF,GACF0sD,IAAY3G,GAErBzvG,KAAK86G,UAAUpxD,GAAO,GACb0sD,IAAYjG,IAErBnwG,KAAK86G,UAAUpxD,GAAO,EAE1B,EAEAimF,MAAO,SAAejmF,GAChB1pD,KAAKmuH,UACPnuH,KAAKmuH,SAAU,EACf9pB,GAAU36C,GAEV1pD,KAAKuyG,MAAM1gB,GAAmB7xF,KAAKyuI,cAEvC,EAEAmB,aAAc,SAAsBlmF,GAE9B1pD,KAAK6yB,SACP7yB,KAAKmuH,SAAU,EAIjBnuH,KAAK8nG,MAAMlX,GAAkBlnC,EAC/B,EAEAmmF,YAAa,SAAqBnmF,GAChC,IAAIq8D,EAAS/lH,KAETiC,EAASynD,EAAMznD,QAEfjC,KAAKmuH,SAAYrwB,GAAS99F,KAAK6lH,MAAM2oB,KAAMvsI,IAAY67F,GAAS99F,KAAKmuI,QAASlsI,KAChFjC,KAAKgvI,mBACLhvI,KAAK6uI,cAAgB7sH,YAAW,WAC9B,OAAO+jG,EAAO0kB,MAChB,GAAGzqI,KAAKsuI,WAEZ,EAEAjC,gBAAiB,SAAyB3iF,GACxC1pD,KAAK6vI,YAAYnmF,EACnB,EAEAgjF,eAAgB,SAAwBhjF,GACtC1pD,KAAK6vI,YAAYnmF,EACnB,EAEAoxD,UAAW,SAAmBpxD,EAAOomF,GACnC,IAAI7pB,EAASjmH,KAGTiC,EAASynD,EAAMznD,QAEdjC,KAAKmuH,SAAWzkE,GAAS8yC,GAAQ2wC,GAAqBlrI,KAK3DoiG,GAAU36C,GACV1pD,KAAKgoG,WAAU,WACb,IAAI7+D,EAAQ88E,EAAOhqD,WAEnB,KAAI9yB,EAAM/mC,OAAS,GAAnB,CAKA,IAAI6xC,EAAQ9K,EAAM3lC,QAAQvB,GAEtB6tI,GAAM77F,EAAQ,EAChBA,KACU67F,GAAM77F,EAAQ9K,EAAM/mC,OAAS,GACvC6xC,IAGEA,EAAQ,IAEVA,EAAQ,GAGVgyE,EAAO8pB,UAAU97F,EAAO9K,EAfxB,CAgBF,IACF,EACA4mG,UAAW,SAAmB97F,EAAO9K,GACnC,IAAI6lD,EAAK7lD,EAAM45F,MAAK,SAAU/zC,EAAI9sF,GAChC,OAAOA,IAAM+xC,CACf,IACAwtD,GAAazS,EACf,EACA/yB,SAAU,WAER,OAAOoxE,GAAe5uC,GAAU2uC,GAAeptI,KAAK6lH,MAAM2oB,MAC5D,EACAU,UAAW,WACTztC,GAAazhG,KAAK6lH,MAAM2oB,KAC1B,EACAC,aAAc,WACZ,IAAItnB,EAASnnH,KAEbA,KAAKgoG,WAAU,WACbvG,GAAa0lB,EAAOgnB,QACtB,GACF,KC3eJ,SAAShtI,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAgBzM,IAAIiG,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAcA,GAAc,CAAC,EAAGi8B,IAAUuxB,IAAgB,CAAC,EAAG,CAC5Hh7B,MAAOjS,GAASxO,IAAmB,GACnC6kB,KAAMrW,GAASlO,IAEfo7C,KAAMltC,GAASxO,IAAmB,GAClC27C,UAAWntC,GAAS/N,IACpBm7C,QAASptC,GAASxO,IAAmB,GACrC+T,KAAMvF,GAASlO,GAAkB,QACjCvpF,KAAMy3F,GAASlO,IACfvuF,MAAOy8F,GAASxO,IAAmB,GACnC67C,gBAAiBrtC,GAASlO,GAAkB,UAAU,SAAU3xF,GAC9D,OAAOy2F,GAAc,CAAC,SAAU,SAAU,SAAUz2F,EACtD,IACAmtI,WAAYttC,GAAS/N,IACrBs7C,UAAWvtC,GAASlO,IACpB07C,QAASxtC,GAASrN,IAClB86C,aAAcztC,GAASlO,IACvB3yD,KAAM6gE,GAASlO,IACf47C,YAAa1tC,GAASpO,GAAkB,CAAC,GACzC+7C,YAAa3tC,GAAS/N,IACtB27C,UAAW5tC,GAASlO,GAAkB,UAEtC+7C,WAAY7tC,GAASlO,GAAkB,mBACvC2S,QAASzE,GAASlO,GAAkB,gBACjCpN,IAGMopD,GAAyBtrD,GAAO,CACzC3gF,KAAM6iF,GACNt+E,OAAQ,CAACm1G,GAASuvB,GAAepzC,IACjC3xF,MAAOA,GACP6gG,SAAU,CACRmnC,gBAAiB,WACf,IAAI97B,EAAQh1G,KAAKg1G,MACb1uG,EAAQtG,KAAKsG,MACjB,MAAO,CAACtG,KAAKouI,eAAgBpuI,KAAKquI,cAAe,CAC/CjnC,KAAMpnG,KAAKmuH,QAIX,YAAa7nH,IAAU0uG,EAGvB,SAAUA,GAAS1uG,GAEvB,EACAyqI,YAAa,WACX,MAAO,CAAC/wI,KAAKkwI,UAAW,CACtB,sBAAuBlwI,KAAKwqC,MAC5B48D,KAAMpnG,KAAKmuH,SAEf,EACA6iB,cAAe,WACb,IAAI1qI,EAAQtG,KAAKsG,MACjB,MAAO,CAACtG,KAAK0wI,YAAa,CACxB,wBAAyBpqI,EACzB,2BAA4BtG,KAAKmwI,UAAY7pI,GAEjD,GAEFnH,OAAQ,SAAgB2B,GACtB,IAAIqtH,EAAUnuH,KAAKmuH,QACf3mB,EAAUxnG,KAAKwnG,QACfl8F,EAAOtL,KAAKsL,KACZ0pG,EAAQh1G,KAAKg1G,MACbniF,EAAW7yB,KAAK6yB,SAChBvsB,EAAQtG,KAAKsG,MACbgiG,EAAOtoG,KAAKsoG,KACZmiC,EAAOzqI,KAAKyqI,KACZ30B,EAAS91G,KAAK81G,OACdm7B,EAAc,CAChBzpC,QAASA,EACTl8F,KAAMA,EACN0pG,MAAOA,EACPniF,SAAUA,GAERq+G,EAAkBlxI,KAAKs6F,cAActE,IACrCm7C,EAAwBnxI,KAAKk6F,kBAAkBlE,IAA4B,CAAC,EAAIijB,GAAWj5G,KAAKo5G,KAAMp5G,KAAKkiC,MAC3GkvG,EAAStwI,IAEb,GAAIwF,EAAO,CACT,IAAIiqI,EAAUvwI,KAAKuwI,QACfD,EAAYtwI,KAAKswI,UACjBF,EAAkBpwI,KAAKowI,gBAEvBiB,EAAW7uD,GAAcA,GAAc,CAAC,EAAGyuD,GAAc,CAAC,EAAG,CAC/DzpC,QAASxnG,KAAKwwI,cAAgBhpC,IAK5B+oC,EACFc,EAASvlI,GAAKykI,EACLD,EACTe,EAASpjG,KAAOqiG,EACPF,IACTiB,EAAS/kI,KAAO8jI,GAGlBgB,EAAStwI,EAAEo1G,GAAS,CAClB1sG,MAAOxJ,KAAKqwI,WACZ/mI,MAAO,CACLsvB,GAAI54B,KAAKw+G,OAAO,gBAElB11G,MAAOuoI,EACP5rC,SAAU0rC,EACV9gD,GAAI,CACFmV,MAAOxlG,KAAK4vI,cAEdzuH,IAAK,UACJ+vH,GAEHA,EAAkB,CAACpwI,EAAE,OAAQ,CAC3B0I,MAAO,CAAC,YACP,CAACxJ,KAAK4wI,cACTO,EAAwB,CAAC,CAC3B,CAEA,IAAIG,EAAoB,CAAC,OAAQ,UAAW,OAAQ,OAAQ,UACxDC,EAAUzwI,EAAEo1G,GAAS,CACvB3Q,YAAa,kBACb/7F,MAAOxJ,KAAKgxI,cACZ1nI,MAAOk5E,GAAcA,GAAc,CAAC,EAAGxiF,KAAKywI,aAAc,CAAC,EAAG,CAE5D73G,GAAI54B,KAAKw+G,OAAO,eAChB,gBAAiB8yB,EAAkB3hD,SAAS2Y,GAAQA,EAAO,QAC3D,gBAAiB5jG,GAASypH,KAE5BrlH,MAAO05E,GAAcA,GAAc,CAAC,EAAGyuD,GAAc,CAAC,EAAG,CACvDlnI,IAAK/J,KAAK2wI,UACV37B,MAAOA,IAAU1uG,IAEnBm/F,SAAU0rC,EACV9gD,GAAI,CACFmhD,UAAWxxI,KAAK0vI,YAChBlqC,MAAOsQ,EACPK,QAASL,GAGX30F,IAAK,UACJ+vH,GACCO,EAAQ3wI,EAAE,KAAM,CAClBykG,YAAa,gBACb/7F,MAAOxJ,KAAK+wI,YACZznI,MAAO,CACLg/F,KAAMA,EACN8L,SAAU,KACV,kBAAmBp0G,KAAKw+G,OAAOl4G,EAAQ,cAAgB,gBAEzD+pF,GAAI,CACF8lB,QAASn2G,KAAKk7G,WAGhB/5F,IAAK,QACJ,EAAEnhB,KAAKiwI,MAAQ9hB,EAAUnuH,KAAKs6F,cAAcnE,GAAmB,CAChEs0C,KAAMA,IACH3pI,MACL,OAAOA,EAAE,MAAO,CACdykG,YAAa,sBACb/7F,MAAOxJ,KAAK8wI,gBACZxnI,MAAO,CACLsvB,GAAI54B,KAAKw+G,WAEV,CAAC4yB,EAAQG,EAASE,GACvB,ICxLF,SAAStwI,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAahN,IAAIiyG,GAAYhyB,GAAKiyB,GAAY,CAAC,QAAS,cAChCjsG,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAc,CAAC,EAAGsyB,IAAY,CAAC,EAAG,CAChG48B,UAAW3uC,GAAS/N,IACpBwS,QAASzE,GAASlO,OACf/M,IAGM6pD,GAA6BpsD,GAAO,CAC7C3gF,KAAMkjF,GACN3+E,OAAQ,CAACsoG,GAAYhX,IACrB4c,OAAQ,CACNy2B,cAAe,CACbthI,QAAS,WACP,OAAO,WACL,OAAO,IACT,CACF,IAGJqnG,cAAc,EACd/qG,MAAOA,GACP6gG,SAAU,CACRioC,WAAY,WACV,OAAO5xI,KAAK8tI,eACd,EACA35B,cAAe,WACb,OAAO3xB,GAAcA,GAAc,CAAC,EAAGxiF,KAAKuxG,SAAU,CAAC,EAAG,CACxDjJ,KAAM,YAEV,GAEF5N,QAAS,CACPm3C,cAAe,WACb,IAAIr1H,EAAQxc,KAGZ+8F,IAAU,WACJvgF,EAAMo1H,YACRp1H,EAAMo1H,WAAWnH,MAAK,EAE1B,GACF,EACAn2B,QAAS,SAAiB5qD,GACxB1pD,KAAK8nG,MAAMlX,GAAkBlnC,GAC7B1pD,KAAK6xI,eACP,GAEF1yI,OAAQ,SAAgB2B,GACtB,IAAI4wI,EAAY1xI,KAAK0xI,UACjBlqC,EAAUxnG,KAAKwnG,QACfmM,EAAS3zG,KAAK2zG,OACd9gF,EAAW7yB,KAAK6yB,SAChByhF,EAAUt0G,KAAKs0G,QACf/C,EAAUvxG,KAAKuxG,QACnB,OAAOzwG,EAAE,KAAM,CACb0I,MAAO+nG,EAAQ/nG,MACf1B,MAAOypG,EAAQzpG,MACfwB,MAAO,CACLg/F,KAAM,iBAEP,CAACxnG,EAAE8yG,GAAO,CACXrO,YAAa,gBACb/7F,MAAO,CAACkoI,EAAWlvI,GAAgB,CAAC,EAAG,QAAQvB,OAAOumG,GAAUA,KAAamM,GAAU9gF,KACvF/pB,MAAOs6F,GAAW0R,GAAW90G,KAAKuwH,QAClCjnH,MAAOtJ,KAAKm0G,cACZ9jB,GAAI,CACFmV,MAAO8O,GAETnzF,IAAK,QACJnhB,KAAKs6F,kBACV,ICvFF,SAASn5F,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAUzM,IAAIiG,GAAQ46F,GAAsB,CACvCiQ,OAAQ5Q,GAASxO,IAAmB,GACpC2e,YAAanQ,GAASlO,GAAkB,UACxCi9C,YAAa/uC,GAAS/N,IACtBniE,SAAUkwE,GAASxO,IAAmB,GACtCiT,QAASzE,GAASlO,KACjB9M,IAGQgqD,GAAmCxsD,GAAO,CACnD3gF,KAAMmjF,GACN5+E,OAAQ,CAACsoG,GAAYhX,IACrB4c,OAAQ,CACNy2B,cAAe,CACbthI,QAAS,WACP,OAAO,WACL,OAAO,IACT,CACF,IAGJqnG,cAAc,EACd/qG,MAAOA,GACP6gG,SAAU,CACRioC,WAAY,WACV,OAAO5xI,KAAK8tI,eACd,EACA35B,cAAe,WACb,OAAO3xB,GAAcA,GAAc,CAAC,EAAGxiF,KAAKuxG,SAAU,CAAC,EAAG,CACxDjJ,KAAM,WACNh8F,KAAM,SACNumB,SAAU7yB,KAAK6yB,UAEnB,GAEF6nE,QAAS,CACPm3C,cAAe,WACT7xI,KAAK4xI,YACP5xI,KAAK4xI,WAAWnH,MAAK,EAEzB,EACAn2B,QAAS,SAAiB5qD,GACxB1pD,KAAK8nG,MAAMlX,GAAkBlnC,GAC7B1pD,KAAK6xI,eACP,GAEF1yI,OAAQ,SAAgB2B,GACtB,IAAIq/B,EAEAwzE,EAAS3zG,KAAK2zG,OACdnM,EAAUxnG,KAAKwnG,QACf+J,EAAUvxG,KAAKuxG,QACnB,OAAOzwG,EAAE,KAAM,CACb0I,MAAO+nG,EAAQ/nG,MACf1B,MAAOypG,EAAQzpG,MACfwB,MAAO,CACLg/F,KAAM,iBAEP,CAACxnG,EAAE,SAAU,CACdykG,YAAa,gBACb/7F,MAAO,CAACxJ,KAAK8xI,aAAc3xG,EAAO,CAAC,EAAG39B,GAAgB29B,EAAMngC,KAAKkzG,YAAaS,GAASnxG,GAAgB29B,EAAM,QAAQl/B,OAAOumG,GAAUA,KAAamM,GAAU3zG,KAAK6yB,WAAYsN,IAC9K72B,MAAOtJ,KAAKm0G,cACZ9jB,GAAI,CACFmV,MAAOxlG,KAAKs0G,SAEdnzF,IAAK,UACJnhB,KAAKs6F,kBACV,ICjFF,SAASn5F,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CASzM,IAAIiG,GAAQ46F,GAAsB,CACvC9qE,GAAImqE,GAASlO,IACb9qF,IAAKg5F,GAASlO,GAAkB,UAChC2S,QAASzE,GAASlO,KACjBhN,IAGQmqD,GAA+BzsD,GAAO,CAC/C3gF,KAAMijF,GACNhoF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIr3B,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZC,EAAWk3B,EAAKl3B,SAChBc,EAAMjB,EAAMiB,IACZy9F,EAAU1+F,EAAM0+F,QACpB,OAAO1mG,EAAE,KAAM6kG,GAAU7iB,GAAK95E,EAAM,CAAC,UAAW,CAC9CM,MAAO,CACLg/F,KAAM,kBAEN,CAACxnG,EAAEiJ,EAAK,CACVw7F,YAAa,kBACb/7F,MAAOhH,GAAgB,CAAC,EAAG,QAAQvB,OAAOumG,GAAUA,GACpDl+F,MAAOk5E,GAAcA,GAAc,CAAC,EAAGx5E,EAAKM,OAAS,CAAC,GAAI,CAAC,EAAG,CAC5DsvB,GAAI9vB,EAAM8vB,IAAM,KAChB0vE,KAAM5Y,GAAM3lF,EAAK,UAAY,KAAO,YAEtCoX,IAAK,UACJlY,IACL,IC3CF,SAAS9H,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAQzM,IAAIiG,GAAQ46F,GAAsB,CACvC35F,IAAKg5F,GAASlO,GAAkB,OAC/BnN,IAGQuqD,GAAgC1sD,GAAO,CAChD3gF,KAAM8iF,GACN7nF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIr3B,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KAChB,OAAOlI,EAAE,KAAM6kG,GAAU7iB,GAAK95E,EAAM,CAAC,UAAW,CAC9CM,MAAO,CACLg/F,KAAM,kBAEN,CAACxnG,EAAEgI,EAAMiB,IAAK,CAChBw7F,YAAa,mBACbj8F,MAAOk5E,GAAcA,GAAc,CAAC,EAAGx5E,EAAKM,OAAS,CAAC,GAAI,CAAC,EAAG,CAC5Dg/F,KAAM,YACN,mBAAoB,eAEtBnnF,IAAK,aAET,IC/BSrY,GAAQ46F,GAAsB,CACvC9qE,GAAImqE,GAASlO,IACbq9C,OAAQnvC,GAASxO,IAAmB,GACpC49C,WAAYpvC,GAASxO,IAAmB,GACxC69C,UAAWrvC,GAASxO,IAAmB,IACtCrM,IAGQmqD,GAAqB9sD,GAAO,CACrC3gF,KAAMsjF,GACNroF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIr3B,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZC,EAAWk3B,EAAKl3B,SACpB,OAAOnI,EAAE,OAAQ6kG,GAAU38F,EAAM,CAC/BQ,MAAO,CACL,cAAeV,EAAMopI,OACrB,gBAAiBppI,EAAMspI,WAEzB9oI,MAAO,CACLsvB,GAAI9vB,EAAM8vB,GACVu5G,WAAYrpI,EAAMqpI,cAElBlpI,EACN,IC/BF,SAAS9H,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CASzM,IAAIiG,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAc,CAAC,EAAG8vD,IAAmB,CAAC,EAAG,CACvGz/G,SAAUkwE,GAASxO,IAAmB,GACtCg+C,UAAWxvC,GAAS/N,OACjBrN,IAGM6qD,GAA6BjtD,GAAO,CAC7C3gF,KAAM+iF,GACN9nF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIr3B,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZumE,EAAYpvC,EAAKovC,UACjBtmE,EAAWk3B,EAAKl3B,SACpB,OAAOnI,EAAE,KAAM6kG,GAAU7iB,GAAK95E,EAAM,CAAC,QAAS,OAAQ,CACpDM,MAAO,CACLg/F,KAAM,kBAEN,CAACxnG,EAAEuxI,GAAO,CACZ9sC,YAAa,kBACb/7F,MAAO,CAACV,EAAMypI,UAAW,CACvB1/G,SAAU/pB,EAAM+pB,WAElB/pB,MAAOA,EACPQ,MAAOk5E,GAAcA,GAAc,CAAC,EAAGx5E,EAAKM,OAAS,CAAC,GAAI,CAAC,EAAG,CAC5DupB,SAAU/pB,EAAM+pB,SAEhBuhF,SAAUtrG,EAAM+pB,SAAW,KAAO,OAEpCw9D,GAAI9gB,EACJpuD,IAAK,QACJlY,IACL,IC9CF,SAASzG,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAQzM,IAAIiG,GAAQ46F,GAAsB,CACvC35F,IAAKg5F,GAASlO,GAAkB,KAChC49C,UAAW1vC,GAAS/N,IACpBwS,QAASzE,GAASlO,KACjB7M,IAGQ0qD,GAA6BntD,GAAO,CAC7C3gF,KAAMojF,GACNnoF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIr3B,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZC,EAAWk3B,EAAKl3B,SAChBc,EAAMjB,EAAMiB,IACZ0oI,EAAY3pI,EAAM2pI,UAClBjrC,EAAU1+F,EAAM0+F,QACpB,OAAO1mG,EAAE,KAAM6kG,GAAU7iB,GAAK95E,EAAM,CAAC,UAAW,CAC9CM,MAAO,CACLg/F,KAAM,kBAEN,CAACxnG,EAAEiJ,EAAK,CACVw7F,YAAa,kBACb/7F,MAAO,CAACipI,EAAWjwI,GAAgB,CAAC,EAAG,QAAQvB,OAAOumG,GAAUA,IAChE1+F,MAAOA,EACPQ,MAAON,EAAKM,OAAS,CAAC,EACtB6X,IAAK,QACJlY,IACL,ICrCF,SAAS9H,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAYzM,IAAIiG,GAAQ46F,GAAsB,CACvCivC,gBAAiB5vC,GAASlO,IAC1BthE,OAAQwvE,GAASlO,IACjB+9C,cAAe7vC,GAAS/N,IACxBgqB,UAAWjc,GAASlO,GAAkB,UACtCg+C,cAAe9vC,GAASlO,IACxBj8D,GAAImqE,GAASlO,KACZjN,IAGQkrD,GAA8BvtD,GAAO,CAC9C3gF,KAAMgjF,GACN/nF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIr3B,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZymF,EAAQtvD,EAAKsvD,MACbM,EAAc5vD,EAAK4vD,YACnBn3D,EAAK9vB,EAAM8vB,GACX4uE,EAAU1+F,EAAM0+F,QAChBj0E,EAASzqB,EAAMyqB,OACfyrF,EAAYl2G,EAAMk2G,UAClB3kB,EAAS5K,IACT2K,EAAerK,GAAe,CAAC,EAC/Bw9B,EAAY,CAAC,EACbwlB,EAAWn6G,EAAK,OAAO33B,OAAO23B,EAAI,oBAAsB,KACxD2uF,EAAUzmH,IAad,OAXIo5F,GAAkBpD,GAAkBsD,EAAcC,IAAW9mE,KAC/Dg0F,EAAUzmH,EAAEk+G,EAAW,CACrBzZ,YAAa,kBACb/7F,MAAO,CAACV,EAAM8pI,cAAepwI,GAAgB,CAAC,EAAG,QAAQvB,OAAOumG,GAAUA,IAC1El+F,MAAO,CACLsvB,GAAIm6G,EACJzqC,KAAM5Y,GAAMsvB,EAAW,UAAY,KAAO,YAE3C1kB,GAAcxD,GAAkBy2B,EAAWnzB,EAAcC,IAAW9mE,IAGlEzyB,EAAE,KAAM6kG,GAAU7iB,GAAK95E,EAAM,CAAC,UAAW,CAC9CM,MAAO,CACLg/F,KAAM,kBAEN,CAACif,EAASzmH,EAAE,KAAM,CACpBykG,YAAa,gBACbj8F,MAAOk5E,GAAcA,GAAc,CAAC,EAAGx5E,EAAKM,OAAS,CAAC,GAAI,CAAC,EAAG,CAC5DsvB,GAAIA,EACJ0vE,KAAM,QACN,mBAAoB,CAACyqC,EAAUjqI,EAAMkqI,iBAAiBtxI,OAAOyhF,IAAU58E,KAAK,KAAK0B,QAAU,QAE5FqyF,GAAcnE,GAAmBo3B,EAAWnzB,EAAcC,KAC/D,IC3DE44C,GAA8B3tD,GAAc,CAC9CP,WAAY,CACV8rD,UAAWA,GACXqC,IAAKrC,GACLc,cAAeA,GACfwB,QAASxB,GACTI,oBAAqBA,GACrBqB,iBAAkBrB,GAClBsB,cAAetB,GACfuB,WAAYvB,GACZC,gBAAiBA,GACjBuB,UAAWvB,GACXC,iBAAkBA,GAClBuB,WAAYvB,GACZO,cAAeA,GACfiB,QAASjB,GACTE,cAAeA,GACfgB,QAAShB,GACTI,eAAgBA,GAChBa,SAAUb,MC5Bd,SAAStwI,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAShN,IAAI+wI,GAAQ,CAAC,SAAU,QAAS,QAAS,SAAU,MAAO,QAAS,cAExD9qI,GAAQ46F,GAAsB,CACvC+F,OAAQ1G,GAASlO,GAAkB,SACnC9qF,IAAKg5F,GAASlO,GAAkB,OAChCvoF,KAAMy2F,GAASlO,GAAkB,UAAU,SAAU3xF,GACnD,OAAOy2F,GAAci6C,GAAO1wI,EAC9B,KACC+kF,IAGQ4rD,GAAsBtuD,GAAO,CACtC3gF,KAAMqjF,GACNpoF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIr3B,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZC,EAAWk3B,EAAKl3B,SAChBwgG,EAAS3gG,EAAM2gG,OACnB,OAAO3oG,EAAEgI,EAAMiB,IAAK,CAClBw7F,YAAa,mBACb/7F,MAAOhH,GAAgB,CAAC,EAAG,oBAAoBvB,OAAOwoG,GAASA,GAC/DtoF,IAAKnY,EAAKmY,KACT,CAACrgB,EAAEgI,EAAMwD,KAAMq5F,GAAU7iB,GAAK95E,EAAM,CAAC,QAAS,CAC/Cu8F,YAAa,0BACXt8F,IACN,IClCE6qI,GAA2BxuD,GAAc,CAC3CP,WAAY,CACV8uD,OAAQA,MCKRE,GAAgC,mFAEzBjrI,GAAQ46F,GAAsB,CACvCswC,cAAejxC,GAASlO,GAAkB,YAC1Co/C,UAAWlxC,GAASlO,GAAkB,QACtCl1F,QAASojG,GAAShO,GAAwB,IAC1Cm/C,UAAWnxC,GAASlO,GAAkB,QACtCs/C,WAAYpxC,GAASlO,GAAkB,UACtC,sBAGQu/C,GAAmB7uD,GAAO,CACnCz8E,MAAOA,GACP6gG,SAAU,CACR0qC,YAAa,WACX,OAAOr0I,KAAKs0I,iBAAiBt0I,KAAKL,QACpC,GAEF+6F,QAAS,CACP65C,gBAAiB,SAAyBC,GACxC,IAAIjyI,EAAMJ,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,KAG9E,GAAIob,GAAci3H,GAAS,CACzB,IAAItxI,EAAQ8O,GAAIwiI,EAAQx0I,KAAKm0I,YACzBjyG,EAAOlwB,GAAIwiI,EAAQx0I,KAAKk0I,WAC5B,MAAO,CACLhxI,MAAOiN,GAAYjN,GAASX,GAAO2/B,EAAOh/B,EAC1Cg/B,KAAM82E,GAAUvsG,OAAO0D,GAAY+xB,GAAQ3/B,EAAM2/B,IACjDk3E,KAAMpnG,GAAIwiI,EAAQx0I,KAAKi0I,WACvBphH,SAAUtmB,QAAQyF,GAAIwiI,EAAQx0I,KAAKg0I,gBAEvC,CAGA,MAAO,CACL9wI,MAAOX,GAAOiyI,EACdtyG,KAAM82E,GAAUvsG,OAAO+nI,IACvB3hH,UAAU,EAEd,EACAyhH,iBAAkB,SAA0B30I,GAC1C,IAAI6c,EAAQxc,KAGZ,OAAImE,GAAQxE,GACHA,EAAQoI,KAAI,SAAUysI,GAC3B,OAAOh4H,EAAM+3H,gBAAgBC,EAC/B,IACSj3H,GAAc5d,IAEvBgkF,GAAKowD,GAA+B/zI,KAAKU,SAASkE,MAE3CtD,GAAK3B,GAASoI,KAAI,SAAUxF,GACjC,OAAOia,EAAM+3H,gBAAgB50I,EAAQ4C,IAAQ,CAAC,EAAGA,EACnD,KAMK,EACT,KCvEJ,SAASpB,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAWzM,IAAIiG,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAc,CAAC,EAAGiyD,IAAmB,CAAC,EAAG,CACvG77G,GAAImqE,GAASlO,QAAkB9rF,GAAW,MAEvCs/E,IAGMqsD,GAA6BnvD,GAAO,CAC7C3gF,KAAMyjF,GACNl/E,OAAQ,CAACirI,GAAkB35C,IAC3B3xF,MAAOA,GACP3J,OAAQ,SAAgB2B,GACtB,IAAI83B,EAAK54B,KAAK44B,GACVl4B,EAAWV,KAAKq0I,YAAYtsI,KAAI,SAAUysI,EAAQvgG,GACpD,IAAI/wC,EAAQsxI,EAAOtxI,MACfg/B,EAAOsyG,EAAOtyG,KACdk3E,EAAOo7B,EAAOp7B,KACdvmF,EAAW2hH,EAAO3hH,SACtB,OAAO/xB,EAAE,SAAU,CACjBwI,MAAO,CACLpG,MAAOA,EACP2vB,SAAUA,GAEZ4yE,SAAUwT,GAAWG,EAAMl3E,GAC3B3/B,IAAK,UAAUtB,OAAOgzC,IAE1B,IACA,OAAOnzC,EAAE,WAAY,CACnBwI,MAAO,CACLsvB,GAAIA,IAEL,CAACl4B,EAAUV,KAAKs6F,iBACrB,IC9CF,SAAS93F,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAOzM,ICPHk9B,GAAQ40G,GDOD7rI,GAAQ46F,GAAsB,CACvC9qE,GAAImqE,GAASlO,IACbq9C,OAAQnvC,GAASxO,IAAmB,GACpCxqF,IAAKg5F,GAASlO,GAAkB,SAChCuQ,YAAarC,GAASlO,GAAkB,UACvCxL,IAGQurD,GAAyBrvD,GAAO,CACzC3gF,KAAMykF,GACNxpF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIr3B,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZC,EAAWk3B,EAAKl3B,SACpB,OAAOnI,EAAEgI,EAAMiB,IAAK47F,GAAU38F,EAAM,CAClCQ,MAAOhH,GAAgB,CACrB,aAAcsG,EAAMopI,QACnB,QAAQjxI,OAAO6H,EAAMs8F,aAAct8F,EAAMs8F,aAC5C97F,MAAO,CACLsvB,GAAI9vB,EAAM8vB,MAEV3vB,EACN,IE1BSH,GAAQ46F,GAAsB,CACvCmxC,SAAU9xC,GAASlO,IACnBigD,UAAW/xC,GAASxO,IAAmB,GACvC37D,GAAImqE,GAASlO,IACbyT,KAAMvF,GAASlO,IAEft5D,MAAOwnE,GAASxO,GAAmB,MACnCxqF,IAAKg5F,GAASlO,GAAkB,OAChCkgD,QAAShyC,GAASxO,IAAmB,IACpC7L,IAGQssD,GAAoCzvD,GAAO,CACpD3gF,KAAM8jF,GACN7oF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIr3B,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZC,EAAWk3B,EAAKl3B,SAChB8rI,EAAUjsI,EAAMisI,QAChBF,EAAW/rI,EAAM+rI,SACjBztC,GAA2B,IAApBt+F,EAAMgsI,YAAsC,IAAhBhsI,EAAMyyB,MAC7C,OAAOz6B,EAAEgI,EAAMiB,IAAK47F,GAAU38F,EAAM,CAClCQ,MAAO,CACL,UAAW49F,EACX,oBAAqB2tC,EACrB,kBAAmBA,GAErBzrI,MAAO,CACLsvB,GAAI9vB,EAAM8vB,IAAM,KAChB0vE,KAAMx/F,EAAMw/F,MAAQ,KACpB,YAAausC,GAAY,KACzB,cAAeA,EAAW,OAAS,QAEnC5rI,EACN,ICpCSH,GAAQ46F,GAAsB,CACvCmxC,SAAU9xC,GAASlO,IACnBigD,UAAW/xC,GAASxO,IAAmB,GACvC37D,GAAImqE,GAASlO,IACbyT,KAAMvF,GAASlO,IAEft5D,MAAOwnE,GAASxO,GAAmB,MACnCxqF,IAAKg5F,GAASlO,GAAkB,OAChCkgD,QAAShyC,GAASxO,IAAmB,IACpC/K,IAGQyrD,GAAkC1vD,GAAO,CAClD3gF,KAAM4kF,GACN3pF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIr3B,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZC,EAAWk3B,EAAKl3B,SAChB8rI,EAAUjsI,EAAMisI,QAChBF,EAAW/rI,EAAM+rI,SACjBztC,GAA2B,IAApBt+F,EAAMgsI,YAAsC,IAAhBhsI,EAAMyyB,MAC7C,OAAOz6B,EAAEgI,EAAMiB,IAAK47F,GAAU38F,EAAM,CAClCQ,MAAO,CACL,UAAW49F,EACX,kBAAmB2tC,EACnB,gBAAiBA,GAEnBzrI,MAAO,CACLsvB,GAAI9vB,EAAM8vB,IAAM,KAChB0vE,KAAMx/F,EAAMw/F,MAAQ,KACpB,YAAausC,GAAY,KACzB,cAAeA,EAAW,OAAS,QAEnC5rI,EACN,ICpCSH,GAAQ46F,GAAsB,CACvC35F,IAAKg5F,GAASlO,GAAkB,QAC/B/L,IAGQosD,GAAwB3vD,GAAO,CACxC3gF,KAAMkkF,GACNjpF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIr3B,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZC,EAAWk3B,EAAKl3B,SACpB,OAAOnI,EAAEgI,EAAMiB,IAAK47F,GAAU38F,EAAM,CAClCu8F,YAAa,aACXt8F,EACN,ICdEksI,GAA0B7vD,GAAc,CAC1CP,WAAY,CACVstD,MAAOA,GACPqC,cAAeA,GACfU,UAAWV,GACXE,UAAWA,GACXI,qBAAsBA,GACtBK,cAAeL,GACfC,mBAAoBA,GAEpBC,SAAUA,MCfHI,GAAe,SAAsB17C,EAAO12F,GACrD,IAAK,IAAIhB,EAAI,EAAGA,EAAI03F,EAAMx3F,OAAQF,IAChC,GAAIouG,GAAW1W,EAAM13F,GAAIgB,GACvB,OAAOhB,EAIX,OAAQ,CACV,ECLIqzI,GAAW,0BAEJzsI,GAAQ46F,GAAsB,CACvC8xC,UAAWzyC,GAASxO,IAAmB,GACvC1hE,SAAUkwE,GAASxO,IAAmB,GACtCkhD,KAAM1yC,GAASlO,IACfj8D,GAAImqE,GAASlO,IACbjwF,KAAMm+F,GAASlO,IACfloF,SAAUo2F,GAASxO,IAAmB,IACrC,gBAGQmhD,GAAmBnwD,GAAO,CACnCz8E,MAAOA,GACP6xG,QAAS,WACP36G,KAAK21I,iBACP,EAGAhwB,UAAW,WACT3lH,KAAK21I,iBACP,EACAj7C,QAAS,CACPi7C,gBAAiB,WACf,IAAIn5H,EAAQxc,KAEZA,KAAKgoG,WAAU,WACbjL,IAAU,WACR,IAAI/N,EAAKxyE,EAAMq4F,IAEXr4F,EAAMg5H,WAAa33C,GAAU7O,KAC1BjiD,GAAQiiD,EAAIumD,MACfvmD,EAAK8P,GAAOy2C,GAAUvmD,IAGxByS,GAAazS,GAEjB,GACF,GACF,KCxCOlmF,GAAQ46F,GAAsB,CACvCkyC,MAAO7yC,GAASxO,IAAmB,IAClC,gBAGQshD,GAAkBtwD,GAAO,CAClCz8E,MAAOA,GACP6gG,SAAU,CACRmsC,OAAQ,WACN,OAAQ91I,KAAK41I,KACf,KCVO9sI,GAAQ46F,GAAsB,CACvCp4F,KAAMy3F,GAASlO,KACd,gBAGQkhD,GAAgBxwD,GAAO,CAChCz8E,MAAOA,GACP6gG,SAAU,CACRqsC,cAAe,WACb,MAAO,CAACh2I,KAAKsL,KAAO,gBAAgBrK,OAAOjB,KAAKsL,MAAQ,KAC1D,KCAOxC,GAAQ46F,GAAsB,CAEvCnoE,MAAOwnE,GAASxO,GAAmB,OAClC,aAGQ0hD,GAAiB1wD,GAAO,CACjCz8E,MAAOA,GACP6gG,SAAU,CACRusC,cAAe,WAEb,OAAOnlI,GAAU/Q,KAAKu7B,OAASv7B,KAAKu7B,MAAQ,IAC9C,EACA46G,WAAY,WACV,IAAI56G,EAAQv7B,KAAKk2I,cACjB,OAAiB,IAAV36G,EAAiB,YAAuB,IAAVA,EAAkB,aAAe,IACxE,EACA66G,oBAAqB,WACnB,IAAIC,EAAcjsC,GAAgBpqG,MAAMq2I,YAExC,OAAoB,IAAhBA,GAAwC,SAAhBA,GAA0C,KAAhBA,IAIxB,IAAvBr2I,KAAKk2I,cAHH,OAGsCG,CACjD,KTrCJ,SAASl1I,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAmBhN,IUzBIb,GVyBA8kG,GAAkBjD,GAAe,UAAW,CAC9C1pE,aAAc,OAEZ4sE,GAAaD,GAAgB5C,MAC7B8C,GAAaF,GAAgBh+F,MAC7Bm+F,GAAkBH,GAAgBz+F,KAClC6+F,GAAmBJ,GAAgBp9C,MAI5B5gD,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAc,CAAC,EAAGi8B,IAAUzX,IAAasrC,IAAmBgE,IAAgBC,IAAiBC,IAAkB,CAAC,EAAG,CACvPtxC,UAAWnC,GAASlO,IACpB4hD,eAAgB1zC,GAASlO,IAEzB+gB,OAAQ7S,GAASxO,IAAmB,GAEpCmiD,cAAe3zC,GAASlO,IACxBq9C,OAAQnvC,GAASxO,IAAmB,GACpCrxF,MAAO6/F,GAAS1O,OACb,0BAGMsiD,GAAsBpxD,GAAO,CACtCp8E,OAAQ,CAACsoG,GAAY6M,GAASvX,GAAYtM,GAAoBi7C,GAAkBK,GAAeE,GAAgBJ,IAC/GhiC,cAAc,EACd/qG,MAAOA,GACPE,KAAM,WACJ,MAAO,CACL4tI,aAAc52I,KAAK62I,QAAU72I,KAAK82I,QAAQ7vC,IAAmBjnG,KAAKinG,IAClE8vC,UAAU,EAEd,EACAptC,SAAU,CACRqtC,qBAAsB,CACpBhlI,IAAK,WACH,OAAOhS,KAAK62I,QAAU72I,KAAK82I,QAAQF,aAAe52I,KAAK42I,YACzD,EACA1kI,IAAK,SAAahP,GACZlD,KAAK62I,QACP72I,KAAK82I,QAAQF,aAAe1zI,EAE5BlD,KAAK42I,aAAe1zI,CAExB,GAEF+zI,UAAW,WACT,OAAO3mC,GAAWtwG,KAAKkD,MAAOlD,KAAKg3I,qBACrC,EACAE,QAAS,WACP,OAAO,CACT,EACAL,QAAS,WAEP,QAAS72I,KAAK82I,OAChB,EACAK,UAAW,WAET,OAAOn3I,KAAK62I,QAAU72I,KAAK82I,QAAQM,QAAUp3I,KAAK41G,MACpD,EACA/2F,QAAS,WACP,OAAO7e,KAAKm3I,YAAoBn3I,KAAK62I,QAAU72I,KAAK82I,QAAQlB,MAAQ51I,KAAK41I,MAC3E,EACAyB,SAAU,WACR,OAAOr3I,KAAKm3I,YAAqBn3I,KAAK6e,OACxC,EACAy4H,SAAU,WAER,QAAOt3I,KAAKm3I,WAAan3I,KAAKk3I,SAAWl3I,KAAK6e,WAAkB7e,KAAK62I,QAAU72I,KAAK82I,QAAQS,SAAWv3I,KAAKw3I,OAC9G,EACAC,SAAU,WACR,OAAOz3I,KAAK62I,QAAU72I,KAAK82I,QAAQ5E,OAASlyI,KAAKkyI,MACnD,EACA9zC,WAAY,WAEV,OAAOp+F,KAAK62I,SAAU72I,KAAK82I,QAAQjkH,UAA4B7yB,KAAK6yB,QACtE,EACA+rC,WAAY,WAIV,OAAO5+D,KAAK03I,eAAiB13I,KAAK62I,QAAU72I,KAAK82I,QAAQnqI,SAAW3M,KAAK2M,SAC3E,EACA+qI,aAAc,WAEZ,OAAQ13I,KAAK62I,QAAU72I,KAAK82I,QAAQa,UAAY33I,KAAK4E,OAAS,IAChE,EACAgzI,aAAc,WACZ,OAAQ53I,KAAK62I,QAAU72I,KAAK82I,QAAQrB,KAAOz1I,KAAKy1I,OAAS,IAC3D,EACAh+B,aAAc,WACZ,OAAQz3G,KAAK62I,QAAU72I,KAAK82I,QAAQxrI,KAAOtL,KAAKsL,OAAS,EAC3D,EACA4qI,cAAe,WACb,OAAOl2I,KAAK62I,QAAU72I,KAAK82I,QAAQZ,cAAgBnlI,GAAU/Q,KAAKu7B,OAASv7B,KAAKu7B,MAAQ,IAC1F,EACAs8G,sBAAuB,WAErB,IAAInB,EAAgB12I,KAAK02I,cAEzB,OAAIA,IAIA12I,KAAK62I,SAAW72I,KAAK82I,QAAQJ,cACxB12I,KAAK82I,QAAQJ,cAGf,YACT,EACAoB,cAAe,WACb,IAAI33G,EAEAs3E,EAAez3G,KAAKy3G,aACxB,MAAO,CAAC,MAAO,OAAOx2G,OAAOjB,KAAK63I,wBAAyB13G,EAAO,CAAC,EAAG39B,GAAgB29B,EAAM,OAAOl/B,OAAOw2G,GAAeA,GAAej1G,GAAgB29B,EAAM,WAAYngC,KAAKo+F,YAAa57F,GAAgB29B,EAAM,SAAUngC,KAAKi3I,WAAYz0I,GAAgB29B,EAAM,QAASngC,KAAK+2I,UAAW52G,GAC9R,EACAg0E,cAAe,WACb,IAAIthF,EAAW7yB,KAAKo+F,WAChBzxF,EAAW3M,KAAK4+D,WACpB,OAAO4jB,GAAcA,GAAc,CAAC,EAAGxiF,KAAKuxG,SAAU,CAAC,EAAG,CACxD34E,GAAI54B,KAAKw+G,SACTlyG,KAAMtM,KAAKk3I,QAAU,QAAU,WAC/BtyI,KAAM5E,KAAK03I,aACXjC,KAAMz1I,KAAK43I,aACX/kH,SAAUA,EACVlmB,SAAUA,EACV,gBAAiBA,GAAY,KAC7B,aAAc3M,KAAKklG,WAAa,KAChC,kBAAmBllG,KAAKy2I,gBAAkB,MAE9C,GAEF7uC,OAAQ7nE,GAAS,CAAC,EAAGv9B,GAAgBu9B,GAAQknE,IAAiB,WAC5DjnG,KAAK,GAAGiB,OAAOgmG,GAAiB,YAAYllG,MAAM/B,KAAMmC,UAC1D,IAAIK,GAAgBu9B,GAAQ,wBAAwB,WAClD//B,KAAK+3I,4BAA4Bh2I,MAAM/B,KAAMmC,UAC/C,IAAI49B,IACJ26D,SAAUi6C,GAAW,CAAC,EAAGnyI,GAAgBmyI,GAAU,GAAG1zI,OAAOgmG,GAAiB,YAAY,SAAiB90F,GACpGm+F,GAAWn+F,EAAUnS,KAAKg3I,wBAC7Bh3I,KAAKg3I,qBAAuB7kI,EAEhC,IAAI3P,GAAgBmyI,GAAU,+BAA+B,SAAqCxiI,EAAU4+F,GACrGT,GAAWn+F,EAAU4+F,IACxB/wG,KAAK8nG,MAAMZ,GAAkB/0F,EAEjC,IAAI3P,GAAgBmyI,GAAU,gBAAgB,SAAsB/oC,GAClE,IAAIpvF,EAAQxc,KAERg4I,EAAUpsC,EAAM3pG,OAAO+1I,QACvB90I,EAAQlD,KAAKkD,MACb0zI,EAAeoB,EAAU90I,EAAQ,KACrClD,KAAKg3I,qBAAuB9zI,EAE5BlD,KAAKgoG,WAAU,WAEbxrF,EAAMsrF,MAAMpX,GAAmBkmD,GAG3Bp6H,EAAMq6H,SACRr6H,EAAMs6H,QAAQhvC,MAAMpX,GAAmBkmD,EAE3C,GACF,IAAIp0I,GAAgBmyI,GAAU,eAAe,SAAqBjrF,GAG5DA,EAAMznD,SACW,UAAfynD,EAAMp9C,KACRtM,KAAK+2I,UAAW,EACQ,SAAfrtF,EAAMp9C,OACftM,KAAK+2I,UAAW,GAGtB,IAAIv0I,GAAgBmyI,GAAU,SAAS,WAChC30I,KAAKo+F,YACRqD,GAAazhG,KAAK6lH,MAAM3/E,MAE5B,IAAI1jC,GAAgBmyI,GAAU,QAAQ,WAC/B30I,KAAKo+F,YACRuD,GAAY3hG,KAAK6lH,MAAM3/E,MAE3B,IAAIyuG,IACJx1I,OAAQ,SAAgB2B,GACtB,IAAIo2I,EAAUl3I,KAAKk3I,QACfC,EAAYn3I,KAAKm3I,UACjBt4H,EAAU7e,KAAK6e,QACfw4H,EAAWr3I,KAAKq3I,SAChBI,EAAWz3I,KAAKy3I,SAChBH,EAAWt3I,KAAKs3I,SAChB7/B,EAAez3G,KAAKy3G,aACpBlG,EAAUvxG,KAAKuxG,QACfrH,EAAWlqG,KAAKs6F,gBAChB29C,EAASn3I,EAAE,QAAS,CACtB0I,MAAO,CAAC,CACN,mBAAoBqV,EACpB,uBAAwBw4H,EAExB,kBAAmBx4H,IAAYqrF,GAC9BitC,EAAY,GAAKn3I,KAAKm2I,YACzBnxD,WAAY,CAAC,CACXpgF,KAAM,QACN1B,MAAOlD,KAAKg3I,uBAEd1tI,MAAOtJ,KAAKm0G,cACZ1O,SAAU,CACRviG,MAAOlD,KAAKkD,MACZ80I,QAASh4I,KAAKi3I,WAEhB5mD,GAAI7N,GAAc,CAChB01D,OAAQl4I,KAAKm4I,cACZhB,EAAY,CACbz1C,MAAO1hG,KAAKo1G,YACZxT,KAAM5hG,KAAKo1G,aACT,CAAC,GACL7yG,IAAK,QACL4e,IAAK,UAGP,GAAIg2H,EAAW,CACb,IAAIiB,EAAUt3I,EAAE,QAAS,CACvB0I,MAAOxJ,KAAK83I,eACX,CAACG,EAAQ/tC,IAUZ,OARKlqG,KAAK62I,UAGRuB,EAAUt3I,EAAE,MAAO,CACjB0I,MAAO,CAAC,mBAAoB,mBAC3B,CAAC4uI,KAGCA,CACT,CAIA,IAAIC,EAASv3I,IAcb,OAZM+d,IAAYqrF,IAChBmuC,EAASv3I,EAAE,QAAS,CAClB0I,MAAO,CACL,mBAAoBqV,EACpB,uBAAwBw4H,GAE1B/tI,MAAO,CACLk+G,IAAKxnH,KAAKw+G,WAEXtU,IAGEppG,EAAE,MAAO,CACd0I,MAAO,CAAChH,GAAgB,CACtB,aAAcqc,EACd,oBAAqBA,GAAW44H,EAChC,iBAAkBJ,EAClB,wBAAyBA,GAAYI,EACrC,kBAAmBJ,IAAaH,IAAYI,EAC5C,gBAAiBA,EACjB,eAAgBD,GAAYH,GAC3B,oBAAoBj2I,OAAOw2G,GAAeA,IAAiB0/B,GAAY5lC,EAAQ/nG,OAClF1B,MAAOypG,EAAQzpG,OACd,CAACmwI,EAAQI,GACd,IU3RF,SAASl3I,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAahN,ICnBIk9B,GDmBAu4G,GAAgC,gBAChCC,GAAiCvkD,GAA0BskD,GAEpDxvI,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAc,CAAC,EAAGg2D,IAAsB,CAAC,GAAIx2I,GAAiB,CAAC,EAAGQ,GAAgBR,GAAgBs2I,GAA+Bv1C,GAASxO,IAAmB,IAAS/xF,GAAgBR,GAAgB,SAAU+gG,GAASxO,IAAmB,IAAS/xF,GAAgBR,GAAgB,iBAAkB+gG,GAAS1O,IAAe,IAAS7xF,GAAgBR,GAAgB,QAAS+gG,GAAS1O,IAAe,IAAQryF,MAAmBmmF,IAGzdswD,GAA6BlzD,GAAO,CAC7C3gF,KAAMujF,GACNh/E,OAAQ,CAACwtI,IACTt/B,OAAQ,CACNqhC,WAAY,CACVp0I,KAAM,kBACNkI,QAAS,WACP,OAAO,WACL,OAAO,IACT,CACF,IAGJ1D,MAAOA,GACP6gG,SAAU,CACRmtC,QAAS,WACP,OAAO92I,KAAK04I,YACd,EACAzB,UAAW,WACT,IAAI/zI,EAAQlD,KAAKkD,MACb80I,EAAUh4I,KAAKg3I,qBACnB,OAAO7yI,GAAQ6zI,GAAW1C,GAAa0C,EAAS90I,IAAU,EAAIotG,GAAW0nC,EAAS90I,EACpF,EACAg0I,QAAS,WACP,OAAO,CACT,GAEFtvC,MAAOplG,GAAgB,CAAC,EAAG81I,IAA+B,SAAUnmI,EAAU4+F,GACvET,GAAWn+F,EAAU4+F,IACxB/wG,KAAK24I,iBAAiBxmI,EAE1B,IACAwoG,QAAS,WAEP36G,KAAK24I,iBAAiB34I,KAAKs4I,IAC7B,EACA59C,QAAS,CACPq9C,4BAA6B,SAAqC5lI,EAAU4+F,GAC1E,IAAKT,GAAWn+F,EAAU4+F,GAAW,CACnC/wG,KAAK8nG,MAAMZ,GAAkB/0F,GAC7B,IAAI8lI,EAASj4I,KAAK6lH,MAAM3/E,MAEpB+xG,GACFj4I,KAAK8nG,MAAMywC,GAAgCN,EAAOW,cAEtD,CACF,EACAT,aAAc,SAAsBh4G,GAClC,IAAI3jB,EAAQxc,KAER64I,EAAc14G,EAAKl+B,OACnB+1I,EAAUa,EAAYb,QACtBY,EAAgBC,EAAYD,cAC5B11I,EAAQlD,KAAKkD,MACb41I,EAAiB94I,KAAK84I,eAEtBlC,EAAe52I,KAAKg3I,qBAExB,GAAI7yI,GAAQyyI,GAAe,CACzB,IAAI3iG,EAAQqhG,GAAasB,EAAc1zI,GAEnC80I,GAAW/jG,EAAQ,EAErB2iG,EAAeA,EAAa31I,OAAOiC,IACzB80I,GAAW/jG,GAAS,IAE9B2iG,EAAeA,EAAajyI,MAAM,EAAGsvC,GAAOhzC,OAAO21I,EAAajyI,MAAMsvC,EAAQ,IAElF,MACE2iG,EAAeoB,EAAU90I,EAAQ41I,EAGnC94I,KAAKg3I,qBAAuBJ,EAE5B52I,KAAKgoG,WAAU,WAEbxrF,EAAMsrF,MAAMpX,GAAmBkmD,GAG3Bp6H,EAAMq6H,SACRr6H,EAAMs6H,QAAQhvC,MAAMpX,GAAmBkmD,GAGzCp6H,EAAMsrF,MAAMywC,GAAgCK,EAC9C,GACF,EACAD,iBAAkB,SAA0Bp9G,GAEtCp3B,GAAQnE,KAAKg3I,wBACfz7G,GAAQ,GAGV,IAAI08G,EAASj4I,KAAK6lH,MAAM3/E,MAEpB+xG,IACFA,EAAOW,cAAgBr9G,EAEvBv7B,KAAK8nG,MAAMywC,GAAgCh9G,GAE/C,KEvHOzyB,GAAQ46F,GAAsB80C,GAAqB7vD,IAGnDowD,GAA0BxzD,GAAO,CAC1C3gF,KAAM+jF,GACNx/E,OAAQ,CAACwtI,IACTt/B,OAAQ,CACNqhC,WAAY,CACVp0I,KAAM,kBACNkI,QAAS,WACP,OAAO,WACL,OAAO,IACT,CACF,IAGJ1D,MAAOA,GACP6gG,SAAU,CACRmtC,QAAS,WACP,OAAO92I,KAAK04I,YACd,KDvBJ,SAASv3I,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAqBhN,IE3BIb,GF2BAg3I,GAAkB,CAAC,mBAAoB,mBAEvClyC,GAAkBjD,GAAe,WACjCkD,GAAaD,GAAgB5C,MAC7B8C,GAAaF,GAAgBh+F,MAC7Bm+F,GAAkBH,GAAgBz+F,KAClC6+F,GAAmBJ,GAAgBp9C,MAI5B5gD,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAc,CAAC,EAAGi8B,IAAUzX,IAAasrC,IAAmBmC,IAAmB6B,IAAgBC,IAAiBC,IAAkB,CAAC,EAAG,CACxRH,YAAatzC,GAAS3N,IAA0B,GAEhDshD,cAAe3zC,GAASlO,IAExBuiD,QAASr0C,GAASxO,IAAmB,GACrCsY,QAAS9J,GAASxO,IAAmB,GACrC69C,UAAWrvC,GAASxO,IAAmB,MACpC,wBAGM0kD,GAA2B1zD,GAAO,CAC3Cp8E,OAAQ,CAACm1G,GAASvX,GAAYtM,GAAoBi7C,GAAkBtB,GAAkB2B,GAAeE,GAAgBJ,IACrHhiC,cAAc,EACd/qG,MAAOA,GACPE,KAAM,WACJ,MAAO,CACL4tI,aAAc52I,KAAKinG,IAEvB,EACA0C,SAAU,CACRuoC,OAAQ,WACN,OAAQlyI,KAAK6sG,OACf,EACA8qC,UAAW,WAGT,OAAO33I,KAAK4E,MAAQ5E,KAAKw+G,QAC3B,EACA06B,aAAc,WACZ,IAAIhH,EAASlyI,KAAKkyI,OACd5mI,EAAOtL,KAAKsL,KACZ8mI,EAAYpyI,KAAKoyI,UACjB3nI,EAAU,CACZ,gBAAiB2nI,GAUnB,OAPIpyI,KAAKo3I,UACP3sI,EAAU,CAACA,EAAS,mBAAoBjI,GAAgB,CACtD,YAAa0vI,EACb,sBAAuBA,GACtB,aAAajxI,OAAOqK,GAAOA,KAGzBb,CACT,GAEFm9F,OAAQ7nE,GAAS,CAAC,EAAGv9B,GAAgBu9B,GAAQknE,IAAiB,SAAU90F,GACjEm+F,GAAWn+F,EAAUnS,KAAK42I,gBAC7B52I,KAAK42I,aAAezkI,EAExB,IAAI3P,GAAgBu9B,GAAQ,gBAAgB,SAAsB5tB,EAAU4+F,GACrET,GAAWn+F,EAAU4+F,IACxB/wG,KAAK8nG,MAAMZ,GAAkB/0F,EAEjC,IAAI4tB,IACJ5gC,OAAQ,SAAgB2B,GACtB,IAAI0b,EAAQxc,KAERm5I,EAAen5I,KAAKm5I,aACpB7vI,EAAQu5E,GAAK7iF,KAAKwxG,OAAQwnC,IAC1BI,EAAkBD,EAAeJ,GAAaN,GAC9CY,EAAUr5I,KAAKq0I,YAAYtsI,KAAI,SAAUysI,EAAQvgG,GACnD,IAAI1xC,EAAM,aAAatB,OAAOgzC,GAC9B,OAAOnzC,EAAEs4I,EAAiB,CACxBtwI,MAAO,CAEL+pB,SAAU2hH,EAAO3hH,WAAY,EAC7B+F,GAAIpc,EAAMgiG,OAAOj8G,GACjBW,MAAOsxI,EAAOtxI,OAOhBoG,MAAOA,EACP/G,IAAKA,GACJ,CAACzB,EAAE,OAAQ,CACZ2kG,SAAUwT,GAAWu7B,EAAOp7B,KAAMo7B,EAAOtyG,SAE7C,IACA,OAAOphC,EAAE,MAAO,CACd0I,MAAO,CAACxJ,KAAKk5I,aAAc,oBAC3B5vI,MAAOk5E,GAAcA,GAAc,CAAC,EAAGM,GAAK9iF,KAAKwxG,OAAQwnC,KAAmB,CAAC,EAAG,CAC9E,eAAgBh5I,KAAKo2I,oBACrB,gBAAiBp2I,KAAK2M,SAAW,OAAS,KAC1CisB,GAAI54B,KAAKw+G,SACTlW,KAAM6wC,EAAe,aAAe,QAEpC/kC,SAAU,QAEX,CAACp0G,KAAKs6F,cAAc3D,IAAkB0iD,EAASr5I,KAAKs6F,iBACzD,IEhIF,SAASn5F,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CASzM,IAAIiG,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAc,CAAC,EAAG82D,IAA2B,CAAC,GAAIt3I,GAAiB,CAAC,EAAGQ,GAAgBR,GAAgBilG,GAAiBlE,GAASzO,GAAiB,KAAM9xF,GAAgBR,GAAgB,WAAY+gG,GAASxO,IAAmB,IAASvyF,MAAmBomF,IAGjTmxD,GAAkCh0D,GAAO,CAClD3gF,KAAMwjF,GAENj/E,OAAQ,CAAC8vI,IACTxgC,QAAS,WACP,IAAIj8F,EAAQxc,KAEZ,MAAO,CACLw5I,gBAAiB,WACf,OAAOh9H,CACT,EAEJ,EACA1T,MAAOA,GACP6gG,SAAU,CACRwvC,aAAc,WACZ,OAAO,CACT,KChCAM,GAAkCn0D,GAAc,CAClDP,WAAY,CACV0zD,cAAeA,GACfiB,UAAWjB,GACXkB,OAAQlB,GACRc,mBAAoBA,GACpBK,eAAgBL,GAChBM,YAAaN,MCJb1nC,GAAO,uBACPioC,GAAa,aACbC,GAAa,aAEbC,GAAiB,SAAwBv7H,GAC3C,IAAI0iB,EAAW,SAAkBuoB,GAC/BjrC,EAAQirC,EAAMp9C,OAASwtI,GAAYpwF,EACrC,EAGA,OADAvoB,EAAS1mB,GAAKgE,EACP0iB,CACT,EAEI84G,GAAkB,SAAyB5pD,EAAIrB,EAAI7tD,GACrDijE,GAAW/T,EAAIrB,EAAI8qD,GAAY34G,EAAUizD,IACzCgQ,GAAW/T,EAAIrB,EAAI+qD,GAAY54G,EAAUizD,GAC3C,EAGIxO,GAAY,SAAmBoJ,EAAI7uD,GACrC,IAAI+5G,EAAa/5G,EAAKj9B,MAClBub,OAAyB,IAAfy7H,EAAwB,KAAOA,EAE7C,GAAIp+D,EAAY,CACd,IAAI36C,EAAW6tD,EAAG6iB,IACdsoC,EAAcxpI,GAAWwwB,GACzBi5G,IAAmBD,GAAeh5G,EAAS1mB,KAAOgE,GAElD07H,GAAeC,IACjBH,IAAgB,EAAOjrD,EAAI7tD,UACpB6tD,EAAG6iB,KAGRlhG,GAAW8N,IAAY27H,IACzBprD,EAAG6iB,IAAQmoC,GAAev7H,GAC1Bw7H,IAAgB,EAAMjrD,EAAIA,EAAG6iB,KAEjC,CACF,EAGWwoC,GAAU,CACnBnxI,KAAM08E,GACNupC,iBAAkBvpC,GAClBwpC,OAAQ,SAAgBpgC,GACtBpJ,GAAUoJ,EAAI,CACZ9rF,MAAO,MAEX,GCtDF,SAAS/B,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAuBzM,IC3BHk9B,GD2BOj3B,GAAQk6E,GAASR,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAc,CAAC,EAAGi8B,IAAU63B,IAAgBC,IAAiBzzD,GAAKktD,GAAe,CAAC,cAAeltD,GAAKwvD,GAAkB,CAAC,eAAgB,CAAC,EAAG,CAE7OgI,WAAYv3C,GAASxO,IAAmB,GAExCmiD,cAAe3zC,GAASlO,GAAkB,aAG1C0lD,eAAgBx3C,GAASlO,IAEzBkrB,cAAehd,GAASlO,IACxB00B,KAAMxmB,GAASlO,IAEfq7C,UAAWntC,GAAS/N,IAEpBwlD,YAAaz3C,GAASlO,IACtBurB,SAAUrd,GAASxO,IAAmB,GAEtCyuB,IAAKjgB,GAASxO,GAAmB,MACjCrxF,MAAO6/F,GAASlO,GAAkB,OAIzB4lD,GAAqCl1D,GAAO,CACrD3gF,KAAMsoF,GACNlI,WAAY,CACV,UAAWq1D,IAEblxI,OAAQ,CAACm1G,GAASy3B,GAAeE,GAAgBpI,GAAepzC,IAChE3xF,MAAOA,GACPE,KAAM,WACJ,MAAO,CACL0xI,WAAW,EACX3D,UAAU,EAEd,EACAptC,SAAU,CACRgxC,SAAU,WACR,OAAO36I,KAAKw+G,QACd,EACAo8B,QAAS,WACP,OAAO56I,KAAKw+G,OAAO,UACrB,EACAq8B,OAAQ,WACN,OAAO76I,KAAKw+G,OAAO,WACrB,EACAs8B,UAAW,WACT,OAAO96I,KAAKw+G,OAAO,UACrB,EACAu8B,YAAa,WACX,OAAoB,IAAb/6I,KAAKgjH,IAAe,OAAqB,IAAbhjH,KAAKgjH,IAAgB,MAAQ,IAClE,GAEFtoB,QAAS,CACPgH,MAAO,WACA1hG,KAAK6yB,UACR4uE,GAAazhG,KAAK6lH,MAAM/P,OAE5B,EACAlU,KAAM,WACC5hG,KAAK6yB,UACR8uE,GAAY3hG,KAAK6lH,MAAM/P,OAE3B,EACAklC,SAAU,SAAkBtxF,GAC1B1pD,KAAK+2I,SAA0B,UAAfrtF,EAAMp9C,IACxB,EACA2uI,YAAa,SAAqBC,GAChCl7I,KAAK06I,UAAYQ,CACnB,GAEF/7I,OAAQ,SAAgB2B,GACtB,IAAIisG,EAEA4tC,EAAW36I,KAAK26I,SAChBC,EAAU56I,KAAK46I,QACfC,EAAS76I,KAAK66I,OACdC,EAAY96I,KAAK86I,UACjBjoH,EAAW7yB,KAAK6yB,SAChButF,EAAWpgH,KAAKogH,SAChBzzG,EAAW3M,KAAK2M,SAChB/H,EAAO5E,KAAK4E,KACZ22B,EAAQv7B,KAAKu7B,MACb4yF,EAAUnuH,KAAKmuH,QACf7iH,EAAOtL,KAAKsL,KACZovI,EAAY16I,KAAK06I,UACjB3D,EAAW/2I,KAAK+2I,SAChBh3B,EAAgB//G,KAAK+/G,cACrB22B,EAAgB12I,KAAK02I,cACrB4D,EAAat6I,KAAKs6I,WAClBp3I,EAAQwB,GAAS1E,KAAKkD,QAAU,GAChCi4I,GAAoB,IAAV5/G,GAAmB5uB,IAAazJ,EAC1Ck4I,EAAW,CACbV,UAAWA,EACX3D,SAAUA,EACVx7G,MAAOA,EACP8/G,OAAQltB,GAENiqB,EAAUt3I,EAAE,SAAU,CACxBykG,YAAa,MACb/7F,OAAQujG,EAAS,CAAC,EAAGvqG,GAAgBuqG,EAAQ,OAAO9rG,OAAOy1I,GAAgB4D,GAAa93I,GAAgBuqG,EAAQ,OAAO9rG,OAAOqK,GAAOA,GAAO9I,GAAgBuqG,EAAQ,UAAWutC,GAAa93I,GAAgBuqG,EAAQ,kBAAmButC,GAAa93I,GAAgBuqG,EAAQ,2BAA4ButC,GAAavtC,GACrTzjG,MAAO,CACLsvB,GAAI+hH,EACJruI,KAAM,SACNumB,SAAUA,EACV,gBAAiB,SACjB,gBAAiBs7F,EAAU,OAAS,QACpC,eAAgBgtB,EAAU,OAAS,KACnC,gBAAiBxuI,EAAW,OAAS,MAEvCq4E,WAAY,CAAC,CACXpgF,KAAM,UACN1B,MAAOlD,KAAKi7I,cAEd5qD,GAAI,CACFmhD,UAAWxxI,KAAK0vI,YAChBlqC,MAAOxlG,KAAK81G,OACZK,QAASn2G,KAAK81G,OAEd,SAAU91G,KAAKg7I,SACf,QAASh7I,KAAKg7I,UAEhB75H,IAAK,UACJ,CAACnhB,KAAKk6F,kBAAkBlE,IAA4Bh2F,KAAKs6F,cAActE,GAA0BolD,GAEpGt6I,EAAEwtG,GAAkB,CAClBxlG,MAAO,CACL4jG,MAAO,UAIP4uC,EAAUx6I,IAEV8D,IAASiuB,IACXyoH,EAAUx6I,EAAE,QAAS,CACnBwI,MAAO,CACLgD,KAAM,SACN1H,KAAMA,GAAQ,KACd6wI,KAAMz1I,KAAKy1I,MAAQ,KACnBvyI,MAAOA,MAMb,IAAIuuI,EAAQ3wI,EAAE,MAAO,CACnBykG,YAAa,gBACb/7F,MAAO,CAACxJ,KAAKkwI,UAAW,CACtB9oC,KAAM+mB,EACN,sBAAuBnuH,KAAKwqC,QAE9BlhC,MAAO,CACLsvB,GAAIiiH,EACJvyC,KAAM,SACN8L,SAAU,KACV,aAAc,QACd,kBAAmBwmC,GAErBvqD,GAAI,CACF8lB,QAASn2G,KAAKk7G,WAGhB/5F,IAAK,QACJ,CAACnhB,KAAKs6F,cAAcnE,GAAmB,CACxCklD,OAAQltB,MAGNkqB,EAASv3I,EAAE,QAAS,CACtB0I,MAAO8wI,EAAa,UAClB,CAAC,eACH,CACE,cAAep3I,GACdlD,KAAKm2I,WAAYn2I,KAAKg2I,eACzB1sI,MAAO,CACLsvB,GAAIgiH,EACJpzB,IAAKmzB,EACL,eAAgBQ,EAAU,OAAS,KACnC,gBAAiBxuI,EAAW,OAAS,MAEvCq4E,WAAY,CAAC,CACXpgF,KAAM,UACN1B,MAAOlD,KAAKi7I,cAEd5qD,GAAI,CAGF,SAEA,SAAe3mC,GACb26C,GAAU36C,EAAO,CACf66C,gBAAgB,GAEpB,IAED,CAACrhG,EAAQlD,KAAKu6I,gBAAkBr3I,EAAQlD,KAAKw6I,aAAe,GAC/Dt3I,GAAS68G,EAAgBj/G,EAAE,MAAO,CAChCykG,YAAa,WACZwa,GAAiB,KAEpB,OAAOj/G,EAAE,MAAO,CACdykG,YAAa,oCACb/7F,MAAO,CAACxJ,KAAKouI,eAAgBpuI,KAAKquI,cAAe,CAAC,CAChD,YAAaiM,EACb,gBAAiBA,EACjB54C,MAAOq1C,IAAauD,EACpBlzC,KAAM+mB,EACN,YAAsB,IAAV5yF,EACZ,cAAwB,IAAVA,GACb++G,EAAa,KAAOt6I,KAAKg2I,gBAC5B1sI,MAAO,CACLsvB,GAAIkiH,EACJxyC,KAAMgyC,EAAa,KAAO,QAC1B/wB,KAAMvpH,KAAKupH,MAAQ,KACnB5G,IAAK3iH,KAAK+6I,YACV,gBAAiBloH,EACjB,gBAAiButF,IAAavtF,EAC9B,kBAAmB+nH,EACnB,gBAA0B,IAAVr/G,GAAmB5uB,IAAazJ,EAAQ,OAAS,KACjE,gBAAiByJ,EAAW,OAAS,OAEtC,CAACyrI,EAASkD,EAAS7J,EAAO4G,GAC/B,ICrPF,SAASl3I,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAmBhN,ICzBIk9B,GDyBA+mE,GAAkBjD,GAAe,QAAS,CAC5Cv3F,KAAM+oF,KAEJ0R,GAAaD,GAAgB5C,MAC7B8C,GAAaF,GAAgBh+F,MAC7Bm+F,GAAkBH,GAAgBz+F,KAClC6+F,GAAmBJ,GAAgBp9C,MAGnC6xF,GAAgBz4D,GAAK04D,GAAgB,CAAC,QAAS,SAAU,KAAM,WAAY,kBAAmB,QAAS,UACvGC,GAA2B34D,GAAK44D,GAA4B,CAAC,iBAAkB,KAAM,OAAQ,MAAO,UAC7F5yI,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAcA,GAAcA,GAAcA,GAAc,CAAC,EAAGi8B,IAAUzX,IAAau0C,IAAgBE,IAA2B,CAAC,EAAG,CAEhME,cAAe54C,GAASlO,GAAkB,SAC1C+mD,YAAa74C,GAASxO,IAAmB,GACzCsnD,mBAAoB94C,GAASlO,GAAkB,qBAE/CinD,KAAM/4C,GAASxO,IAAmB,GAClCwnD,iBAAkBh5C,GAASlO,GAAkB,SAC7CmnD,iBAAkBj5C,GAASlO,GAAkB,SAC7ConD,iBAAkBl5C,GAASlO,GAAkB,gBAC7CqnD,gBAAiBn5C,GAASxO,IAAmB,GAC7C4nD,YAAap5C,GAASxO,IAAmB,GACzC6nD,mBAAoBr5C,GAASlO,GAAkB,kBAC/CwnD,WAAYt5C,GAAS1N,IACrBinD,YAAav5C,GAASxO,IAAmB,GACzCgoD,mBAAoBx5C,GAASlO,GAAkB,sBAC5CvM,IAGMk0D,GAA+Bj3D,GAAO,CAC/C3gF,KAAM0jF,GACNn/E,OAAQ,CAACm1G,GAASvX,IAClBj+F,MAAOA,GACPE,KAAM,WACJ,MAAO,CAELyzI,SAAUngC,GAAUt8G,KAAKinG,MAAqB,GAE9CpJ,WAAW,EAEX6+C,YAAa,KACbh6B,OAAO,EACP63B,eAAgB,GAChBx5B,UAAW,GAEf,EACApX,SAAU,CACRgzC,WAAY,WAGV,OAAO38I,KAAK+gH,UAAUp8G,MAAM,GAAI,EAClC,EACAi4I,aAAc,WACZ,OAAQ58I,KAAK08I,aAAe,IAAIh2I,QAAQ,UAAW,KAAO,IAC5D,EACAm2I,mBAAoB,WAClB,OAAOvgC,GAAU2B,GAAcj+G,KAAKq8I,cAAgB,EACtD,GAEFz0C,OAAQ7nE,GAAS,CAAC,EAAGv9B,GAAgBu9B,GAAQknE,IAAiB,SAAU90F,GACtEnS,KAAKy8I,SAAWngC,GAAUnqG,IAAa,EACzC,IAAI3P,GAAgBu9B,GAAQ,YAAY,SAAkB5tB,GAEpDnS,KAAK69F,WACP79F,KAAK8nG,MAAMZ,GAAkBlnG,KAAK0gH,YAAc7E,GAAS1pG,IAAa,KAAOA,GAAY,GAE7F,IAAI3P,GAAgBu9B,GAAQ,cAAc,SAAoB5tB,EAAU4+F,GAItE,GAAI5+F,IAAa4+F,GAAYA,EAC3B,IACE/wG,KAAK6lH,MAAMi3B,QAAQ1N,cACrB,CAAE,MAAO5yD,GAAU,CAEvB,IAAIz8C,IACJ26D,QAAS,CAEPgH,MAAO,WACA1hG,KAAK6yB,UACR4uE,GAAazhG,KAAK6lH,MAAMi3B,QAE5B,EACAl7C,KAAM,WACC5hG,KAAK6yB,UACR8uE,GAAY3hG,KAAK6lH,MAAMi3B,QAE3B,EAEAC,YAAa,SAAqB55B,GAChC,IAAI3mG,EAAQxc,KAEZA,KAAKy8I,SAAWt5B,EAEXnjH,KAAKk8I,iBACRl8I,KAAKgoG,WAAU,WACbxrF,EAAMqpG,MAAMi3B,QAAQrS,MAAK,EAC3B,GAEJ,EACAuS,WAAY,SAAoB75B,GAC9B,IAAI9Q,EAASryG,KAEbA,KAAKgoG,WAAU,WACbqK,EAAO0qC,YAAY55B,EACrB,GACF,EACA85B,QAAS,SAAiB95B,GACpBnjH,KAAKy8I,WAAat5B,IACpBnjH,KAAKy8I,SAAWt5B,EAEpB,EACA+5B,UAAW,SAAmB3+H,GAC5B,IAAIwiG,EAAYxiG,EAAIwiG,UAChB2B,EAAQnkG,EAAImkG,MACZ5F,EAASv+F,EAAIu+F,OACbgE,EAAcviG,EAAIuiG,YAClB8B,EAAoBrkG,EAAIqkG,kBAC5B5iH,KAAK0iH,MAAQA,EACb1iH,KAAK08I,YAAc5/B,EACnB98G,KAAKu6I,eAAiB33B,EACtB5iH,KAAKy8I,SAAW37B,EAChB9gH,KAAK+gH,UAAYA,EAEjB/gH,KAAK8nG,MAAMhX,GAAoBvyE,EACjC,EACA4+H,cAAe,WAEbn9I,KAAK+8I,YAAYzgC,GAAU2B,GAAcrC,KAAc57G,KAAKmnC,IAAKnnC,KAAKm2B,MACxE,EACAinH,cAAe,WACbp9I,KAAK+8I,YAAY/8I,KAAK68I,mBACxB,EACAQ,cAAe,WACbr9I,KAAK6lH,MAAMi3B,QAAQrS,MAAK,EAC1B,EAEA6S,OAAQ,WACNt9I,KAAK69F,WAAY,CACnB,EACA0/C,QAAS,WACP,IAAI73B,EAAS1lH,KAEbA,KAAKgoG,WAAU,WACbvG,GAAaikB,EAAOG,MAAMpJ,UAE1BiJ,EAAO5d,MAAMxU,GACf,GACF,EACAkqD,SAAU,WACRx9I,KAAK69F,WAAY,EACjB79F,KAAK8nG,MAAMjW,GACb,EAEA4rD,gBAAiB,SAAyBt9G,GACxC,IAAIu6G,EAAYv6G,EAAKu6G,UACjB3D,EAAW52G,EAAK42G,SACpB,OAAO/2I,KAAK09I,eAAehD,GAAa3D,EAAW5oC,GAAoBD,GAAe,CACpF5kG,MAAO,CACL,cAAe,SAGrB,GAEFnK,OAAQ,SAAgB2B,GACtB,IAAI27I,EAAWz8I,KAAKy8I,SAChB5pH,EAAW7yB,KAAK6yB,SAChButF,EAAWpgH,KAAKogH,SAChB07B,EAAO97I,KAAK87I,KACZvrB,EAASvwH,KAAKuwH,OACdn2B,EAAep6F,KAAKo6F,aACpBogD,EAAcv4D,GAAkBjiF,KAAKw6I,aAAex6I,KAAK2/G,oBAAsB3/G,KAAKw6I,YAEpF5sB,EAAU,GAEd,GAAI5tH,KAAKs8I,YAAa,CACpB,IAAIp3B,EAAQllH,KAAKi8I,iBACjBruB,EAAQ9rH,KAAKhB,EAAEo1G,GAAS,CACtBptG,MAAO,CACL+pB,SAAUA,GAAYutF,EACtB90G,KAAM,KACNk8F,QAASxnG,KAAKu8I,oBAEhBjzI,MAAO,CACL,aAAc47G,GAAS,MAEzB70B,GAAI,CACFmV,MAAOxlG,KAAKm9I,gBAEbj4B,GACL,CAEA,GAAIllH,KAAKm8I,YAAa,CACpB,IAAIwB,EAAS39I,KAAKg8I,iBAClBpuB,EAAQ9rH,KAAKhB,EAAEo1G,GAAS,CACtBptG,MAAO,CACL+pB,SAAUA,GAAYutF,EACtB90G,KAAM,KACNk8F,QAASxnG,KAAKo8I,oBAEhB9yI,MAAO,CACL,aAAcq0I,GAAU,MAE1BttD,GAAI,CACFmV,MAAOxlG,KAAKo9I,gBAEbO,GACL,CAEA,GAAI39I,KAAK47I,YAAa,CACpB,IAAIgC,EAAU59I,KAAK+7I,iBACnBnuB,EAAQ9rH,KAAKhB,EAAEo1G,GAAS,CACtBptG,MAAO,CACL+pB,SAAUA,EACVvnB,KAAM,KACNk8F,QAASxnG,KAAK67I,oBAEhBvyI,MAAO,CACL,aAAcs0I,GAAW,MAE3BvtD,GAAI,CACFmV,MAAOxlG,KAAKq9I,gBAEbO,GACL,CAEIhwB,EAAQxrH,OAAS,IACnBwrH,EAAU,CAAC9sH,EAAE,MAAO,CAClBykG,YAAa,wCACb/7F,MAAO,CACL,0BAA2BokH,EAAQxrH,OAAS,EAC5C,sBAAuBwrH,EAAQxrH,OAAS,IAEzCwrH,KAGL,IAAIiwB,EAAY/8I,EAAE8/G,GAAW,CAC3Brb,YAAa,6BACbz8F,MAAO05E,GAAcA,GAAc,CAAC,EAAG4gB,GAAWm4C,GAAehrB,IAAU,CAAC,EAAG,CAC7EtR,QAASj/G,KAAK69F,UACd36F,MAAOu5I,EACP/7B,aAAa,EACbviB,MAAOn+F,KAAK27I,gBAEdtrD,GAAI,CACFwwB,SAAU7gH,KAAKg9I,WACf92G,MAAOlmC,KAAKi9I,QACZl9I,QAASC,KAAKk9I,WAEhBntD,YAAalN,GAAKuX,EAAc,CAAC,kBAAmB,gBAAiB,iBAAkB,iBAAkB,iBAAkB,gBAAiB,oBAC5I73F,IAAK,WACL4e,IAAK,YACJysG,GACH,OAAO9sH,EAAE25I,GAAuB,CAC9Bl1C,YAAa,oBACbz8F,MAAO05E,GAAcA,GAAc,CAAC,EAAG4gB,GAAWq4C,GAA0BlrB,IAAU,CAAC,EAAG,CACxFgqB,eAAgBkC,EAAWz8I,KAAKu6I,eAAiB,GACjD3hH,GAAI54B,KAAKw+G,SACT+K,KAAMvpH,KAAK48I,aACX1M,UAAW,CAAC,CACV,UAAW4L,EACX,aAAcA,GACb97I,KAAKkwI,WACRsK,YAAaA,EACbx3B,IAAKhjH,KAAK0iH,MACVx/G,MAAOu5I,IAETpsD,GAAI,CACF+W,KAAMpnG,KAAKs9I,OACXQ,MAAO99I,KAAKu9I,QACZt+B,OAAQj/G,KAAKw9I,UAEfztD,YAAavtF,GAAgB,CAAC,EAAGwzF,GAA0BoE,EAAapE,KAA6Bh2F,KAAKy9I,iBAC1Gt8H,IAAK,WACJ,CAAC08H,GACN,IE3SEE,GAAoCz4D,GAAc,CACpDP,WAAY,CACVy3D,gBAAiBA,GACjBwB,YAAaxB,MDHjB,SAASr7I,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CA8BhN,IAAIikG,GAAkBjD,GAAe,QAAS,CAC5Cv3F,KAAM,CAACgoF,GAAiB3S,IACxBxnD,aAAc,KACdztB,UAAW,SAAmBxJ,GAE5B,MAAc,KAAVA,GACFygF,GAAKs6D,GAA4B11D,KAC1B,GAGFtG,GAAkB/+E,IAAUg7I,GAAah7I,EAClD,IAEE6jG,GAAaD,GAAgB5C,MAC7B8C,GAAaF,GAAgBh+F,MAC7Bm+F,GAAkBH,GAAgBz+F,KAClC6+F,GAAmBJ,GAAgBp9C,MAEnCu0F,GAA6B,+FAE7BC,GAAe,SAASA,EAAah7I,GACvC,OAAOk/E,GAAOl/E,IAAUiB,GAAQjB,IAAUA,EAAMqgF,OAAM,SAAU9zE,GAC9D,OAAOyuI,EAAazuI,EACtB,GACF,EAKI0uI,GAA2B,SAAkCj/F,GAC/D,OAAOvuC,GAAWuuC,EAAKk/F,YAAcl/F,EAAKk/F,aAAeztI,GAAWuuC,EAAKm/F,kBAAoBn/F,EAAKm/F,mBAAqB,IACzH,EAKIC,GAAoB,SAA2BC,GACjD,IAAIC,IAAsBr8I,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,KAAmBA,UAAU,GACzF,OAAOs5E,QAAQgjE,IAAI7/C,GAAU2/C,GAAsB78I,QAAO,SAAUw9C,GAClE,MAAqB,SAAdA,EAAK/R,IACd,IAAGplC,KAAI,SAAUm3C,GACf,IAAI7gC,EAAQ8/H,GAAyBj/F,GAErC,GAAI7gC,EAAO,CACT,GAAIA,EAAMqgI,aAAeF,EACvB,OAAOG,GAA6BtgI,EAAMugI,eAAgB,GAAG39I,OAAOod,EAAMzZ,KAAM,MAC3E,GAAIyZ,EAAM+jE,OACf,OAAO,IAAI3G,SAAQ,SAAUn4B,GAC3BjlC,EAAMwgI,MAAK,SAAUA,GACnBA,EAAKC,MAAQ,GACbx7F,EAAQu7F,EACV,GACF,GAEJ,CAEA,OAAO,IACT,IAAGn9I,OAAOyhF,IACZ,EAKIw7D,GAA+B,SAASA,EAA6BI,GACvE,IAAIrgI,EAAOvc,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,GAC/E,OAAO,IAAIs5E,SAAQ,SAAUn4B,GAC3B,IAAI07F,EAAgB,GAEhBC,EAAuB,SAASA,IAClCF,EAAgBG,aAAY,SAAUvwB,GACb,IAAnBA,EAAQvsH,OACVkhD,EAAQm4B,QAAQgjE,IAAIO,GAAe9tI,MAAK,SAAUy9G,GAChD,OAAO30B,GAAQ20B,EACjB,MAEAqwB,EAAcl9I,KAAK25E,QAAQgjE,IAAI9vB,EAAQ5mH,KAAI,SAAUsW,GACnD,GAAIA,EAAO,CACT,GAAIA,EAAMqgI,YACR,OAAOC,EAA6BtgI,EAAMugI,eAAgB,GAAG39I,OAAOyd,GAAMzd,OAAOod,EAAMzZ,KAAM,MACxF,GAAIyZ,EAAM+jE,OACf,OAAO,IAAI3G,SAAQ,SAAUn4B,GAC3BjlC,EAAMwgI,MAAK,SAAUA,GACnBA,EAAKC,MAAQ,GAAG79I,OAAOyd,GAAMzd,OAAO49I,EAAKj6I,MACzC0+C,EAAQu7F,EACV,GACF,GAEJ,CAEA,OAAO,IACT,IAAGn9I,OAAOyhF,MACV87D,IAEJ,GACF,EAEAA,GACF,GACF,EAGIn2I,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAc,CAAC,EAAGi8B,IAAUzX,IAAasrC,IAAmBkE,IAAkBD,IAAiBD,IAAgB,CAAC,EAAG,CAChPt9G,OAAQ+pE,GAASlO,GAAkB,IACnCsqD,WAAYp8C,GAASlO,GAAkB,UAEvCtjD,QAASwxD,GAASxO,IAAmB,GACrC6qD,UAAWr8C,GAASxO,IAAmB,GACvC8qD,gBAAiBt8C,GAASlO,GAAkB,mBAC5CyqD,kBAAmBv8C,GAAStO,IAC5B8qD,SAAUx8C,GAASxO,IAAmB,GACtCirD,OAAQz8C,GAASxO,IAAmB,GACpCkrD,kBAAmB18C,GAASlO,GAAkB,eAS9C6qD,WAAY38C,GAASxO,IAAmB,GACxCimD,YAAaz3C,GAASlO,GAAkB,qBACrCtM,IAGMo3D,GAAyBp6D,GAAO,CACzC3gF,KAAM2jF,GACNp/E,OAAQ,CAACsoG,GAAY6M,GAASvX,GAAYtM,GAAoBi7C,GAAkBO,GAAgBJ,GAAiBp7C,IACjHoZ,cAAc,EACd/qG,MAAOA,GACPE,KAAM,WACJ,MAAO,CACL42I,MAAO,GACPC,UAAU,EAIVC,aAAc9/I,KAAKw/I,OACnBzI,UAAU,EAEd,EACAptC,SAAU,CAERo2C,eAAgB,WACd,IAAI/mH,EAASh5B,KAAKg5B,OAGlB,OAFAA,GAAUA,GAAU,IAAI/wB,OAAO3B,MAAM,UAAU5E,OAAOyhF,IAEhC,IAAlBnqD,EAAO52B,OACF,KAGF42B,EAAOjxB,KAAI,SAAUi4I,GAC1B,IAAI33I,EAAO,OACP43I,EAAa,IACbC,EAAW,IAEX5iE,EAAaz4E,KAAKm7I,GAEpBC,EAAa,IAGb53I,EAAO,OAEH41E,EAAQp5E,KAAKm7I,KACfE,EAAW,MAEXF,EAAYA,EAAUr7I,MAAM,GAAI,KAKpCq7I,EAAYlkD,GAAakkD,GACzB,IAAIG,EAAK,IAAI93E,OAAO,GAAGpnE,OAAOg/I,GAAYh/I,OAAO++I,GAAW/+I,OAAOi/I,IACnE,MAAO,CACLC,GAAIA,EACJ93I,KAAMA,EAEV,GACF,EACA+3I,gBAAiB,WACf,IAAI7uG,EAAUvxC,KAAKuxC,QACnB,OAAmB,IAAZA,GAAgC,KAAZA,IAAwBA,GAAW,KAChE,EACA4iE,cAAe,WACb,IAAIvvG,EAAO5E,KAAK4E,KACZiuB,EAAW7yB,KAAK6yB,SAChBlmB,EAAW3M,KAAK2M,SAChB8oI,EAAOz1I,KAAKy1I,KACZ2K,EAAkBpgJ,KAAKogJ,gBACvBpnH,EAASh5B,KAAKg5B,OACdumH,EAAWv/I,KAAKu/I,SAChBH,EAAYp/I,KAAKo/I,UACrB,OAAO58D,GAAcA,GAAc,CAAC,EAAGxiF,KAAKuxG,SAAU,CAAC,EAAG,CACxDjlG,KAAM,OACNssB,GAAI54B,KAAKw+G,SACT55G,KAAMA,EACNiuB,SAAUA,EACVlmB,SAAUA,EACV8oI,KAAMA,GAAQ,KACdlkG,QAAS6uG,EACTpnH,OAAQA,GAAU,KAClBumH,SAAUA,EACVH,UAAWA,EACXiB,gBAAiBjB,EACjB,gBAAiBzyI,EAAW,OAAS,MAEzC,EACA2zI,0BAA2B,WACzB,IAAIhB,EAAoBt/I,KAAKs/I,kBAC7B,OAAO17C,GAAgB07C,GAAqBA,EAAoBt/I,KAAKugJ,wBACvE,EACAC,YAAa,WACX,OAAOt9D,GAAUljF,KAAK4/I,MACxB,EACAa,eAAgB,WACd,OAAOxmD,GAAYj6F,KAAK4/I,MAC1B,EACAc,UAAW,WACT,OAAO1gJ,KAAKygJ,eAAe14I,KAAI,SAAU82I,GACvC,OAAOA,EAAKj6I,IACd,GACF,EACA+7I,aAAc,WAIZ,GAAI3gJ,KAAK6/I,WAAa7/I,KAAKw/I,OACzB,OACEx/I,KAAKs6F,cAAchE,GAA4B,CAC7CsqD,QAAS5gJ,KAAK8/I,gBACT9/I,KAAK8/I,YAAc9/I,KAAKq/I,gBAAkBr/I,KAAK09I,eAAe,OAAQ,CAC3En4C,YAAa,eACZvlG,KAAKy/I,oBAKZ,GAA0B,IAAtBz/I,KAAK4/I,MAAMx9I,OACb,OAAOpC,KAAKs6F,cAAc1B,KAA0B54F,KAAKw6I,YAG3D,IAAIiG,EAAiBzgJ,KAAKygJ,eACtBD,EAAcxgJ,KAAKwgJ,YACnBE,EAAY1gJ,KAAK0gJ,UACjBJ,EAA4BtgJ,KAAKsgJ,0BAErC,OAAItgJ,KAAKk6F,kBAAkBxD,IAClB12F,KAAKs6F,cAAc5D,GAAqB,CAC7CkpD,MAAOa,EACPI,eAAgBL,EAChBrmD,MAAOumD,IAIJJ,EAA0BG,EAAgBD,EAAaE,EAChE,GAEF94C,OAAQ7nE,GAAS,CAAC,EAAGv9B,GAAgBu9B,GAAQknE,IAAiB,SAAU90F,KACjEA,GAAYhO,GAAQgO,IAAiC,IAApBA,EAAS/P,SAC7CpC,KAAK21C,OAET,IAAInzC,GAAgBu9B,GAAQ,SAAS,SAAe5tB,EAAU4+F,GAC5D,IAAKT,GAAWn+F,EAAU4+F,GAAW,CACnC,IAAIwuC,EAAWv/I,KAAKu/I,SAChBG,EAAa1/I,KAAK0/I,WAClBE,GAASL,GAAYG,EAAazlD,GAAY9nF,GAAYA,EAC9DnS,KAAK8nG,MAAMZ,GAAkBq4C,EAAWK,EAAQA,EAAM,IAAM,KAC9D,CACF,IAAI7/G,IACJ8uD,QAAS,WAEP7uF,KAAK8gJ,OAAS,IAChB,EACAnmC,QAAS,WAEP,IAAIomC,EAAQvkD,GAAQ,OAAQx8F,KAAK60G,KAE7BksC,IACFhvG,GAAQgvG,EAAO,QAAS/gJ,KAAK21C,MAAOw+C,IACpCn0F,KAAK8gJ,OAASC,EAElB,EACA74C,cAAe,WACb,IAAI64C,EAAQ/gJ,KAAK8gJ,OAEbC,GACF7uG,GAAS6uG,EAAO,QAAS/gJ,KAAK21C,MAAOw+C,GAEzC,EACAuG,QAAS,CACPsmD,YAAa,SAAqBnC,GAChC,IAAKA,EACH,OAAO,EAGT,IAAI7lH,EAASh5B,KAAK+/I,eAClB,OAAO/mH,GAASA,EAAOurD,MAAK,SAAU1D,GACpC,OAAOA,EAAEs/D,GAAGt7I,KAAKg6I,EAAKh+D,EAAEx4E,MAC1B,GACF,EACA44I,kBAAmB,SAA2BrB,GAC5C,IAAIpjI,EAAQxc,KAEZ,OAAOmE,GAAQy7I,GAASA,EAAMr8D,OAAM,SAAUs7D,GAC5C,OAAOriI,EAAMwkI,YAAYnC,EAC3B,IAAK7+I,KAAKghJ,YAAYpB,EACxB,EACAW,yBAA0B,SAAkCE,EAAgBD,EAAaE,GACvF,OAAOA,EAAUn6I,KAAK,KACxB,EACA26I,SAAU,SAAkBtB,GAE1B5/I,KAAK8/I,aAAe9/I,KAAKw/I,OACzBx/I,KAAK6/I,UAAW,EAEhB7/I,KAAK4/I,MAAQ5/I,KAAKu/I,SAAWv/I,KAAKo/I,UAAYQ,EAAQ3lD,GAAY2lD,GAAS3lD,GAAY2lD,GAAOj7I,MAAM,EAAG,EACzG,EAGAw8I,cAAe,SAAuBvB,GAIpC,IAEE,IAAIwB,EAAe,IAAIC,eAAe,IAAIC,eAAiB,IAAIC,aAE/DtnD,GAAY/W,GAAU08D,IAAQt9I,SAAQ,SAAUu8I,UAEvCA,EAAKC,MACZsC,EAAaj4G,MAAM5oC,IAAIs+I,EACzB,IACA7+I,KAAK6lH,MAAM3/E,MAAM05G,MAAQwB,EAAaxB,KACxC,CAAE,MAAOpjE,GAAU,CACrB,EACA7mC,MAAO,WAKL,IACE,IAAIsiG,EAASj4I,KAAK6lH,MAAM3/E,MACxB+xG,EAAO/0I,MAAQ,GACf+0I,EAAO3rI,KAAO,GACd2rI,EAAO3rI,KAAO,MAChB,CAAE,MAAOu1F,GAAW,CAEpB7hG,KAAK4/I,MAAQ,EACf,EACA4B,YAAa,SAAqB5B,GAChC,IAAI6B,EAASt/I,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,IAAmBA,UAAU,GAE5E,GAAIs/I,EAAQ,CAEV,IAAIC,EAAgB9B,EAAMl+I,OAAO1B,KAAKihJ,mBAElCS,EAAct/I,OAAS,IACzBpC,KAAKkhJ,SAASQ,GAGd1hJ,KAAKmhJ,cAAcO,GAEvB,MAEE1hJ,KAAKkhJ,SAAStB,EAElB,EACA+B,aAAc,SAAsBj4F,GAI9B1pD,KAAK41I,OAAwB,aAAflsF,EAAMp9C,KACtBtM,KAAK+2I,UAAW,EAGhB/2I,KAAK+2I,UAAW,CAEpB,EACA6K,SAAU,SAAkBl4F,GAC1B,IAAI2oD,EAASryG,KAETsM,EAAOo9C,EAAMp9C,KACbrK,EAASynD,EAAMznD,OACf4/I,EAAsBn4F,EAAM03F,aAC5BA,OAAuC,IAAxBS,EAAiC,CAAC,EAAIA,EACrDJ,EAAkB,SAATn1I,EAEbtM,KAAK8nG,MAAMpX,GAAmBhnC,GAC9B,IAAIvgB,EAAQy1D,GAAUwiD,EAAaj4G,OAAS,IAE5C,GAAIqyC,GAAuBryC,EAAM/mC,OAAS,IAAM4/E,GAAOm8D,GAAyBh1G,EAAM,KAKpFm1G,GAAkBn1G,EAAOnpC,KAAKo/I,WAAWluI,MAAK,SAAU0uI,GACtD,OAAOvtC,EAAOmvC,YAAY5B,EAAO6B,EACnC,QACK,CAGL,IAAI7B,EAAQhhD,GAAU38F,EAAO29I,OAASwB,EAAaxB,OAAS,IAAI73I,KAAI,SAAU82I,GAG5E,OADAA,EAAKC,MAAQD,EAAKiD,oBAAsB,GACjCjD,CACT,IACA7+I,KAAKwhJ,YAAY5B,EAAO6B,EAC1B,CACF,EACAM,YAAa,SAAqBr4F,GAChC26C,GAAU36C,GACV1pD,KAAK6/I,UAAW,EAChB,IAAImC,EAAuBt4F,EAAM03F,aAC7BA,OAAwC,IAAzBY,EAAkC,CAAC,EAAIA,EAE1D,GAAIhiJ,KAAKw/I,QAAUx/I,KAAK6yB,WAAa7yB,KAAK8/I,YAMxC,OAFAsB,EAAaa,WAAa,YAC1BjiJ,KAAK8/I,aAAc,GAMrBsB,EAAaa,WAAa,MAC5B,EAGAC,WAAY,SAAoBx4F,GAC9B26C,GAAU36C,GACV1pD,KAAK6/I,UAAW,EAChB,IAAIsC,EAAuBz4F,EAAM03F,aAC7BA,OAAwC,IAAzBe,EAAkC,CAAC,EAAIA,EAE1D,GAAIniJ,KAAKw/I,QAAUx/I,KAAK6yB,WAAa7yB,KAAK8/I,YAMxC,OAFAsB,EAAaa,WAAa,YAC1BjiJ,KAAK8/I,aAAc,GAMrBsB,EAAaa,WAAa,MAC5B,EACAG,YAAa,SAAqB14F,GAChC,IAAIg8D,EAAS1lH,KAEbqkG,GAAU36C,GACV1pD,KAAKgoG,WAAU,WACb0d,EAAOm6B,UAAW,EAElBn6B,EAAOo6B,aAAep6B,EAAO85B,MAC/B,GACF,EAEA6C,OAAQ,SAAgB34F,GACtB,IAAIq8D,EAAS/lH,KAEbqkG,GAAU36C,GACV1pD,KAAK6/I,UAAW,EAEZ7/I,KAAKw/I,QAAUx/I,KAAK6yB,WAAa7yB,KAAK8/I,YACxC9/I,KAAKgoG,WAAU,WAEb+d,EAAO+5B,aAAe/5B,EAAOy5B,MAC/B,IAIFx/I,KAAK4hJ,SAASl4F,EAChB,GAEFvqD,OAAQ,SAAgB2B,GACtB,IAAIg1I,EAAS91I,KAAK81I,OACdF,EAAQ51I,KAAK41I,MACbtqI,EAAOtL,KAAKsL,KACZu0I,EAAW7/I,KAAK6/I,SAChB1J,EAAan2I,KAAKm2I,WAClB5kC,EAAUvxG,KAAKuxG,QAEf0mC,EAASn3I,EAAE,QAAS,CACtB0I,MAAO,CAAC,CACN,oBAAqBosI,EACrB,oBAAqBE,EACrBp0C,MAAOo0C,GAAU91I,KAAK+2I,UACrBZ,GAIHruI,MAAOguI,EAAS,CACdwM,QAAS,GACP,CAAC,EACLh5I,MAAOtJ,KAAKm0G,cACZ9jB,GAAI,CACF6nD,OAAQl4I,KAAK4hJ,SACbvrC,QAASr2G,KAAK2hJ,aACdrrC,SAAUt2G,KAAK2hJ,aACfhsG,MAAO31C,KAAK21C,OAEdx0B,IAAK,UAGP,GAAIy0H,EACF,OAAOqC,EAIT,IAAII,EAASv3I,EAAE,QAAS,CACtBykG,YAAa,oBACb/7F,MAAO,CACLq2I,SAAUA,GAEZv2I,MAAO,CACLk+G,IAAKxnH,KAAKw+G,SAEV,cAAex+G,KAAKm/I,YAAc,OAEnC,CAACr+I,EAAE,OAAQ,CACZykG,YAAa,yBAGbz9F,MAAO,CACLohH,cAAe,SAEhB,CAAClpH,KAAK2gJ,iBAET,OAAO7/I,EAAE,MAAO,CACdykG,YAAa,0BACb/7F,MAAO,CAAChH,GAAgB,CAAC,EAAG,oBAAoBvB,OAAOqK,GAAOA,GAAO6qI,EAAY5kC,EAAQ/nG,OACzF1B,MAAOypG,EAAQzpG,MACfwB,MAAO,CACLsvB,GAAI54B,KAAKw+G,OAAO,oBAElBnuB,GAAI,CACFkyD,UAAWviJ,KAAK+hJ,YAChBS,SAAUxiJ,KAAKkiJ,WACfO,UAAWziJ,KAAKoiJ,YAChBM,KAAM1iJ,KAAKqiJ,SAEZ,CAACpK,EAAQI,GACd,IEnkBEsK,GAA8Br9D,GAAc,CAC9CP,WAAY,CACV46D,UAAWA,GACXiD,MAAOjD,MCHPkD,GAAa,SAAoB3/I,GACnC,MAAO,KAAOA,CAChB,EAIW4/I,GAAY,SAAmB5/I,GACxCA,EAAQwB,GAASxB,GACjB,IAAId,EAASc,EAAMd,OACf2gJ,EAAgB7/I,EAAMw8D,WAAW,GACrC,OAAOx8D,EAAMoD,MAAM,IAAI4B,QAAO,SAAU2H,EAAQmzI,EAAM/uG,GACpD,IAAIgvG,EAAW//I,EAAMw8D,WAAWzrB,GAEhC,OAAiB,IAAbgvG,EACKpzI,EAAS,IAKL,MAAbozI,GACAA,GAAY,GAAUA,GAAY,IACxB,IAAVhvG,GAAegvG,GAAY,IAAUA,GAAY,IAEvC,IAAVhvG,GAAegvG,GAAY,IAAUA,GAAY,IAA4B,KAAlBF,EAElDlzI,EAASgzI,GAAW,GAAG5hJ,OAAOgiJ,EAASv+I,SAAS,IAAK,MAKpD,IAAVuvC,GACa,KAAbgvG,GACW,IAAX7gJ,EAESyN,EAASgzI,GAAWG,GAK7BC,GAAY,KACC,KAAbA,GACa,KAAbA,GACAA,GAAY,IAAUA,GAAY,IAClCA,GAAY,IAAUA,GAAY,IAClCA,GAAY,IAAUA,GAAY,IAEzBpzI,EAASmzI,EAKXnzI,EAASgzI,GAAWG,EAC7B,GAAG,GACL,ECvDA,SAAS7hJ,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAehN,IAAIqgJ,GAAoB,CAAC,OAAQ,QAAS,MAAO,SAAU,WAAY,WAGnEC,GAAoB,SAA2B72I,EAAM82I,EAAYlgJ,GACnE,IAAI2iB,EAAYvZ,EAEhB,IAAI21E,GAAkB/+E,KAAoB,IAAVA,EAWhC,OAPIkgJ,IACFv9H,GAAa,IAAI5kB,OAAOmiJ,IAMb,QAAT92I,GAA6B,KAAVpJ,IAA0B,IAAVA,GAMvC2iB,GAAa,IAAI5kB,OAAOiC,GACjB+4F,GAAUp2E,IALRo2E,GAAUp2E,EAMrB,EAGIw9H,GAAyBvhD,GAAQqhD,IAEjCG,GAAoBzrG,GAAO,MAGpB0rG,GAAgB,WAEzB,IAAI7gD,EAAcD,KAAyB/gG,OAAOyhF,IAE9CqgE,EAAgB9gD,EAAYx6F,QAAO,SAAUY,EAAOs6I,GAEtD,OADAt6I,EAAMs6I,GAAcrgD,GAAS5N,IACtBrsF,CACT,GAAG+uC,GAAO,OAEN4rG,EAAmB/gD,EAAYx6F,QAAO,SAAUY,EAAOs6I,GAEzD,OADAt6I,EAAM+5F,GAAeugD,EAAY,WAAargD,GAASxN,IAChDzsF,CACT,GAAG+uC,GAAO,OAEN6rG,EAAkBhhD,EAAYx6F,QAAO,SAAUY,EAAOs6I,GAExD,OADAt6I,EAAM+5F,GAAeugD,EAAY,UAAYrgD,GAASxN,IAC/CzsF,CACT,GAAG+uC,GAAO,OASV,OANAyrG,GAAoB7gE,GAAO5qC,GAAO,MAAO,CACvC8rG,IAAKriJ,GAAKkiJ,GACVnjD,OAAQ/+F,GAAKmiJ,GACbzlB,MAAO18H,GAAKoiJ,KAGPhgD,GAAsB1gB,GAASR,GAAcA,GAAcA,GAAcA,GAAc,CAAC,EAAGghE,GAAgBC,GAAmBC,GAAkB,CAAC,EAAG,CAEzJE,UAAW7gD,GAASlO,GAAkB,MAAM,SAAU3xF,GACpD,OAAOy2F,GAAcupD,GAAmBhgJ,EAC1C,IAEAygJ,IAAK5gD,GAASxO,IAAmB,GAEjCsvD,KAAM9gD,GAASxN,IACf8K,OAAQ0C,GAASxN,IACjByoC,MAAOj7B,GAASxN,IAChBxrF,IAAKg5F,GAASlO,GAAkB,UAC7BvN,GACP,EAKWw8D,GAAO,CAChBl/I,KAAM0iF,GACNznF,YAAY,EAEZ,SAAIiJ,GAMF,cAFO9I,KAAK8I,MAEL9I,KAAK8I,MAAQy6I,IACtB,EAEApkJ,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAI4jH,EAEAj7I,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZC,EAAWk3B,EAAKl3B,SAChB46I,EAAO/6I,EAAM+6I,KACbxjD,EAASv3F,EAAMu3F,OACf29B,EAAQl1H,EAAMk1H,MACd4lB,EAAY96I,EAAM86I,UAClBr5I,EAAY,GAEhB,IAAK,IAAI+B,KAAQg3I,GAIf,IAFA,IAAIU,EAAQV,GAAkBh3I,GAErBpK,EAAI,EAAGA,EAAI8hJ,EAAM5hJ,OAAQF,IAAK,CAErC,IAAIsG,EAAI66I,GAAuB/2I,EAAM03I,EAAM9hJ,GAAGwE,QAAQ4F,EAAM,IAAKxD,EAAMk7I,EAAM9hJ,KAEzEsG,GACF+B,EAAUzI,KAAK0G,EAEnB,CAGF,IAAIy7I,EAAgB15I,EAAUg6E,MAAK,SAAU1+D,GAC3C,OAAOk5D,EAAal6E,KAAKghB,EAC3B,IAKA,OAJAtb,EAAUzI,MAAMiiJ,EAAkB,CAEhCJ,IAAK76I,EAAM66I,MAAQM,IAAkBJ,GACpCrhJ,GAAgBuhJ,EAAiB,OAAO9iJ,OAAO4iJ,GAAOA,GAAOrhJ,GAAgBuhJ,EAAiB,UAAU9iJ,OAAOo/F,GAASA,GAAS79F,GAAgBuhJ,EAAiB,SAAS9iJ,OAAO+8H,GAAQA,GAAQx7H,GAAgBuhJ,EAAiB,cAAc9iJ,OAAO2iJ,GAAYA,GAAYG,IAC5QjjJ,EAAEgI,EAAMiB,IAAK47F,GAAU38F,EAAM,CAClCQ,MAAOe,IACLtB,EACN,GCjJF,SAAS9H,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAyBhN,IAAIqhJ,GAAS,CAAC,QAAS,SAAU,YAE7BC,GAAiBD,GAAOn8I,KAAI,SAAU0H,GACxC,MAAO,GAAGxO,OAAOwO,EAAG,mBACtB,IAAGlJ,OAEC69I,GAA8B,GAAGnjJ,OAAOijJ,GAAQ,CAAC,IAAK,SAAU,UAGzDX,GAAgB,WACzB,OAAO7/C,GAAsB1gB,GAASR,GAAcA,GAAcA,GAAcA,GAAc,CAAC,EAAGi8B,IAAU83B,IAAiB9zC,KAAyBv6F,QAAO,SAAUY,EAAOs6I,GAO5K,OALAt6I,EAAM+5F,GAAeugD,EAAY,gBAAkBrgD,GAAS5N,IAE5DrsF,EAAM+5F,GAAeugD,EAAY,eAAiBrgD,GAASlO,IAE3D/rF,EAAM+5F,GAAeugD,EAAY,cAAgBrgD,GAAS5N,IACnDrsF,CACT,GAAG+uC,GAAO,QAAS,CAAC,EAAG,CACrB1gC,YAAa4rF,GAASlO,IACtBhiE,SAAUkwE,GAASxO,IAAmB,GACtC8vD,iBAAkBthD,GAASlO,GAAkB,aAC7CyvD,gBAAiBvhD,GAASlO,IAC1BqwB,MAAOniB,GAASlO,IAChB0vD,WAAYxhD,GAAS/N,IACrBwvD,SAAUzhD,GAASlO,IACnB4vD,UAAW1hD,GAASlO,IACpB6vD,YAAa3hD,GAASxO,IAAmB,GACzCwgD,QAAShyC,GAASxO,IAAmB,GACrCowD,cAAe5hD,GAASlO,IACxBu9C,UAAWrvC,GAASxO,IAAmB,MACpC/L,GACP,EAKWo8D,GAAa,CACtBhgJ,KAAM4jF,GACNr/E,OAAQ,CAACm1G,GAAS23B,GAAgBx7C,IAElC,SAAI3xF,GAMF,cAFO9I,KAAK8I,MAEL9I,KAAK8I,MAAQy6I,IACtB,EAEAv6I,KAAM,WACJ,MAAO,CACL2pI,gBAAiB,KAErB,EACAhpC,SAAU,CACRk7C,gBAAiB,WACf,OAAO7kJ,KAAK8kJ,YAAY9kJ,KAAKuwH,OAAQ,UACvC,EACAw0B,kBAAmB,WACjB,OAAO/kJ,KAAKglJ,gBAAgBhlJ,KAAKuwH,OAAQ,QAC3C,EACA00B,cAAe,WACb,OAAOjlJ,KAAK8kJ,YAAY9kJ,KAAKuwH,OAAQ,QACvC,EACA20B,aAAc,WAGZ,OAAO5jJ,GAAKtB,KAAK6kJ,iBAAiBziJ,OAAS,GAAKd,GAAKtB,KAAKilJ,eAAe7iJ,OAAS,CACpF,GAEFwlG,MAAO,CACL+qC,gBAAiB,SAAyBxgI,EAAU4+F,GAC9C5+F,IAAa4+F,GACf/wG,KAAKmlJ,sBAAsBhzI,EAAU4+F,EAEzC,GAEF4J,QAAS,WACP,IAAIn+F,EAAQxc,KAEZA,KAAKgoG,WAAU,WAGbxrF,EAAM2oI,sBAAsB3oI,EAAMm2H,gBACpC,GACF,EACAj4C,QAAS,CACPsqD,gBAAiB,SAAyBl8I,EAAOoD,GAC/C,OAAOu2F,KAAyBv6F,QAAO,SAAU2H,EAAQuzI,GACvD,IAAIgC,EAAYt8I,EAAM+5F,GAAeugD,EAAY,GAAGniJ,OAAOiL,EAAQ,YAAc,KAMjF,OAJIk5I,GACFv1I,EAAO/N,KAAK,CAAC,OAAQshJ,EAAYgC,GAAW1jJ,OAAOyhF,IAAU58E,KAAK,MAG7DsJ,CACT,GAAG,GACL,EACAi1I,YAAa,SAAqBh8I,EAAOoD,GACvC,OAAOu2F,KAAyBv6F,QAAO,SAAU2H,EAAQuzI,GACvD,IAAIgC,EAAYt8I,EAAM+5F,GAAeugD,EAAY,GAAGniJ,OAAOiL,EAAQ,UAmBnE,OAhBAk5I,EAA0B,KAAdA,IAA0BA,IAAa,GAE9Cr0I,GAAUq0I,IAA4B,SAAdA,IAE3BA,EAAYtqD,GAAUsqD,EAAW,GAEjCA,EAAYA,EAAY,GAAIA,GAM1BA,IACFv1I,EAAOuzI,IAAeryI,GAAUq0I,GAAa,MAAQ,SAAWA,GAG3Dv1I,CACT,GAAG,CAAC,EACN,EAIAs1I,sBAAuB,SAA+BhzI,EAAU4+F,GAC9D,IAAIyzC,EAAWxkJ,KAAKwkJ,SAEpB,GAAI1oE,GAAc0oE,EAAU,CAE1B,IAAIvM,EAASn5C,GAAO,IAAI79F,OAAO6hJ,GAAU0B,IAAYxkJ,KAAK6lH,MAAM1gB,SAEhE,GAAI8yC,EAAQ,CACV,IAAI14C,EAAO,mBACP8lD,GAAUlzI,GAAY,IAAI7L,MAAM03E,GAChCsnE,GAAUv0C,GAAY,IAAIzqG,MAAM03E,GAGhCunE,GAAO5lD,GAAQs4C,EAAQ14C,IAAS,IAAIj5F,MAAM03E,GAAgBt8E,QAAO,SAAUk3B,GAC7E,OAAQ+gE,GAAc2rD,EAAQ1sH,EAChC,IAAG33B,OAAOokJ,GAAQ3jJ,QAAO,SAAUk3B,EAAIqb,EAAOsxG,GAC5C,OAAOA,EAAI/hJ,QAAQo1B,KAAQqb,CAC7B,IAAGvyC,OAAOyhF,IAAU58E,KAAK,KAAK0B,OAE1Bs9I,EACFjmD,GAAQ24C,EAAQ14C,EAAMgmD,GAEtB9lD,GAAWw4C,EAAQ14C,EAEvB,CACF,CACF,EACAimD,cAAe,SAAuB97F,GAIpC,IAAI1pD,KAAKwkJ,SAAT,CAIA,IAAIviJ,EAASynD,EAAMznD,OACfy0H,EAAUz0H,EAASA,EAAOy0H,QAAU,GAKxC,IAAsD,IAAlD0tB,GAA4B5gJ,QAAQkzH,GAAxC,CAKA,IAAI+uB,EAAShnD,GAAU0lD,GAAgBnkJ,KAAK6lH,MAAM1gB,SAASzjG,OAAOm8F,IAE5C,IAAlB4nD,EAAOrjJ,QACTq/F,GAAagkD,EAAO,GANtB,CAVA,CAkBF,GAEFtmJ,OAAQ,SAAgB2B,GACtB,IAAIy6B,EAAQv7B,KAAKk2I,cACbmO,EAAmBrkJ,KAAKqkJ,iBACxBa,EAAellJ,KAAKklJ,aACpBV,EAAWxkJ,KAAKwkJ,SAChBlqD,EAAgBt6F,KAAKs6F,cACrBkkB,EAASx+G,KAAKw+G,OACdu2B,EAAU/0I,KAAK+0I,QACfn8G,EAAK4lF,IACLknC,GAAclB,EACdnM,EAASv3I,IACT6/I,EAAermD,EAAc/C,KAAoBv3F,KAAKklH,MACtDygC,EAAUhF,EAAeniC,EAAO,cAAgB,KAEpD,GAAImiC,GAAgBuE,EAAc,CAChC,IAAIT,EAAYzkJ,KAAKykJ,UACjBQ,EAAgBjlJ,KAAKilJ,cACrBW,EAAWF,EAAa,SAAW,QAEnC1lJ,KAAK0kJ,aACH/D,IACFtI,EAASv3I,EAAE8kJ,EAAU,CACnBp8I,MAAO,UACPF,MAAO,CACLsvB,GAAI+sH,EACJn+B,IAAKg9B,GAAY,OAElB,CAAC7D,KAGNtI,EAASv3I,EAAEokJ,EAAepB,GAAO,MAAO,CACtCh7I,MAAOo8I,EAAeD,EAAgB,CAAC,GACtC,CAAC5M,KAEJA,EAASv3I,EAAEokJ,EAAepB,GAAO8B,EAAU,CACzCv1D,GAAIq1D,EAAa,CACflgD,MAAOxlG,KAAKwlJ,eACV,CAAC,EACL18I,MAAOo8I,EAAe1iE,GAAcA,GAAc,CAAC,EAAGyiE,GAAgB,CAAC,EAAG,CACxEl7I,IAAK67I,IACF,CAAC,EACNt8I,MAAO,CACLsvB,GAAI+sH,EACJn+B,IAAKg9B,GAAY,KAGjBpwC,SAAUsxC,EAAa,KAAO,MAEhCl8I,MAAO,CACPk8I,EAAa,mBAAqB,GAIlCR,GAAgBQ,EAAa,iBAAmB,IAC/CR,GAAgBQ,EAAa,OAAS,GAEtCR,GAAiBQ,EAAyB,GAAZ,UAAgBjB,EAAY,kBAAkBxjJ,OAAOwjJ,GAAa,GAAIzkJ,KAAK+kJ,kBAAmB/kJ,KAAKukJ,aACjI,CAAC5D,GAER,CAEA,IAAIkF,EAAmB/kJ,IACnBglJ,EAAyBxrD,EAAchD,KAA+Bt3F,KAAKskJ,gBAC3EyB,EAAoBD,EAAyBtnC,EAAO,yBAA2B,KAE/EsnC,IACFD,EAAmB/kJ,EAAEk0I,GAAsB,CACzClsI,MAAO,CACL+rI,SAAUwP,EACVzrH,GAAImtH,EAEJxqH,MAAOA,EACPw5G,QAASA,GAEXzrI,MAAO,CACL8qG,SAAU0xC,EAAyB,KAAO,OAE3C,CAACA,KAGN,IAAIE,EAAiBllJ,IACjBmlJ,EAAuB3rD,EAAcZ,KAA6B15F,KAAK2kJ,cACvEuB,EAAkBD,EAAuBznC,EAAO,uBAAyB,KAEzEynC,IACFD,EAAiBllJ,EAAEm0I,GAAoB,CACrCnsI,MAAO,CACL+rI,SAAUwP,EACVzrH,GAAIstH,EAEJ3qH,MAAOA,EACPw5G,QAASA,GAEXzrI,MAAO,CACL8qG,SAAU6xC,EAAuB,KAAO,OAEzC,CAACA,KAGN,IAAIE,EAAerlJ,IACfslJ,EAAqB9rD,EAAclE,KAA0Bp2F,KAAKmX,YAClEkvI,EAAgBD,EAAqB5nC,EAAO,oBAAsB,KAElE4nC,IACFD,EAAerlJ,EAAE8zI,GAAW,CAC1BtrI,MAAO,CACLsvB,GAAIytH,EACJjyC,SAAU,OAEX,CAACgyC,KAON,IAAIzT,EAAkB3yI,KAAK2yI,gBAAkB,CAAC0T,GAAyB,IAAV9qH,EAAkBwqH,EAAoB,MAAgB,IAAVxqH,EAAiB2qH,EAAkB,MAAMxkJ,OAAOyhF,IAAU58E,KAAK,MAAQ,KAC5K2jG,EAAWppG,EAAEokJ,EAAepB,GAAO,MAAO,CAC5Ch7I,MAAOo8I,EAAellJ,KAAK6kJ,gBAAkB,CAAC,EAC9C1jI,IAAK,WACJ,CAACm5E,EAAcnE,GAAmB,CACnCw8C,gBAAiBA,EACjB0T,cAAeA,EACfztH,GAAIA,EACJ+sH,QAASA,KACL7kJ,IAAK+kJ,EAAkBG,EAAgBG,IAK7C,OAAOrlJ,EAAE4kJ,EAAa,WAAaR,EAAehQ,GAAW,MAAO,CAClE3vC,YAAa,aACb/7F,MAAO,CAAC,CACN,gBAAiBxJ,KAAKoyI,WACrBpyI,KAAKm2I,YACR7sI,MAAO,CACLsvB,GAAIA,EACJ/F,SAAU6yH,EAAa1lJ,KAAK6yB,SAAW,KACvCy1E,KAAMo9C,EAAa,KAAO,QAC1B,eAAgB1lJ,KAAKo2I,oBAGrB,kBAAmBsP,GAAcR,EAAeS,EAAU,OAE3DT,GAAgBQ,EAAa,CAAC5kJ,EAAEo0I,GAAU,CAACmD,EAAQnuC,KAAc,CAACmuC,EAAQnuC,GAC/E,GC/VEo8C,GAA+BhhE,GAAc,CAC/CP,WAAY,CACV6/D,WAAYA,GACZ2B,cAAe3B,MCHR4B,GAAqBjhE,GAAO,CACrCokB,SAAU,CACR88C,eAAgB,CAEd1kD,OAAO,EAGP/vF,IAAK,WACH,OAAOhS,KAAK6lH,MAAM3/E,MAAMugH,cAC1B,EAGAv0I,IAAK,SAAa7I,GAChBrJ,KAAK6lH,MAAM3/E,MAAMugH,eAAiBp9I,CACpC,GAEFq9I,aAAc,CAEZ3kD,OAAO,EAGP/vF,IAAK,WACH,OAAOhS,KAAK6lH,MAAM3/E,MAAMwgH,YAC1B,EAGAx0I,IAAK,SAAa7I,GAChBrJ,KAAK6lH,MAAM3/E,MAAMwgH,aAAer9I,CAClC,GAEFs9I,mBAAoB,CAElB5kD,OAAO,EAGP/vF,IAAK,WACH,OAAOhS,KAAK6lH,MAAM3/E,MAAMygH,kBAC1B,EAGAz0I,IAAK,SAAa7I,GAChBrJ,KAAK6lH,MAAM3/E,MAAMygH,mBAAqBt9I,CACxC,IAGJqxF,QAAS,CAEPoE,OAAQ,WACN,IAAI8nD,GAGHA,EAAoB5mJ,KAAK6lH,MAAM3/E,OAAO44D,OAAO/8F,MAAM6kJ,EAAmBzkJ,UACzE,EAGA0kJ,kBAAmB,WACjB,IAAIC,GAGHA,EAAqB9mJ,KAAK6lH,MAAM3/E,OAAO2gH,kBAAkB9kJ,MAAM+kJ,EAAoB3kJ,UACtF,EAGA4kJ,aAAc,WACZ,IAAIC,GAGHA,EAAqBhnJ,KAAK6lH,MAAM3/E,OAAO6gH,aAAahlJ,MAAMilJ,EAAoB7kJ,UACjF,KCtEJ,SAAShB,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAchN,IAAIikG,GAAkBjD,GAAe,QAAS,CAC5Cv3F,KAAMipF,GACNp7D,aAAc,GACduvB,MAAOmqC,KAELkT,GAAaD,GAAgB5C,MAC7B8C,GAAaF,GAAgBh+F,MAC7Bm+F,GAAkBH,GAAgBz+F,KAClC6+F,GAAmBJ,GAAgBp9C,MAI5B5gD,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAc,CAAC,EAAGwkB,IAAa,CAAC,EAAG,CACjGqvC,YAAatzC,GAAS3N,IAA0B,GAChD6gB,aAAclT,GAASlO,IAEvBynC,SAAUv5B,GAASxN,GAAyB,GAC5C0xD,UAAWlkD,GAAStO,IAEpBw7C,KAAMltC,GAASxO,IAAmB,GAClC2yD,cAAenkD,GAASxO,IAAmB,GAC3Cp8D,OAAQ4qE,GAASxO,IAAmB,GACpCimD,YAAaz3C,GAASlO,IACtBsyD,UAAWpkD,GAASxO,IAAmB,GACvC6rB,SAAUrd,GAASxO,IAAmB,GACtCtsF,KAAM86F,GAASxO,IAAmB,MAC/B,oBAGM6yD,GAAgB7hE,GAAO,CAChCp8E,OAAQ,CAAC49F,IACTj+F,MAAOA,GACPE,KAAM,WACJ,IAAI9F,EAAQlD,KAAKinG,IACjB,MAAO,CACLogD,WAAY3iJ,GAASxB,GACrBokJ,YAAatnJ,KAAKunJ,YAAYrkJ,GAElC,EACAymG,SAAU,CACR69C,cAAe,WACb,IAAIL,EAAYnnJ,KAAKmnJ,UACjB76I,EAAOtM,KAAKsM,KACZm7I,EAAmB,UAATn7I,EACVo7I,EAAmB,UAATp7I,EACd,MAAO,CAAC,CAEN,eAAgBm7I,EAEhB,yBAA0BN,IAAcM,IAAYC,EAGpD,eAAgBA,IAAYP,IAAcM,GACzCznJ,KAAKg2I,cAAeh2I,KAAKm2I,WAC9B,EACAwR,iBAAkB,WAEhB,OAAOzxI,GAAQ4kF,GAAU96F,KAAKs8H,SAAU,GAAI,EAC9C,EACAsrB,aAAc,WACZ,OAAOhkD,GAAgB5jG,KAAKinJ,UAC9B,GAEFr/C,MAAOplG,GAAgB,CAAC,EAAGykG,IAAiB,SAAU90F,GACpD,IAAI01I,EAAiBnjJ,GAASyN,GAC1B21I,EAAgB9nJ,KAAKunJ,YAAYp1I,GAEjC01I,IAAmB7nJ,KAAKqnJ,YAAcS,IAAkB9nJ,KAAKsnJ,cAE/DtnJ,KAAK+nJ,gBAEL/nJ,KAAKqnJ,WAAaQ,EAClB7nJ,KAAKsnJ,YAAcQ,EAEvB,IACAj5D,QAAS,WAEP7uF,KAAKgoJ,qBAAuB,IAC9B,EACA9/C,cAAe,WACbloG,KAAK+nJ,eACP,EACArtD,QAAS,CACPqtD,cAAe,WACb7lI,aAAaliB,KAAKgoJ,sBAClBhoJ,KAAKgoJ,qBAAuB,IAC9B,EACAC,YAAa,SAAqB/kJ,EAAOwmD,GACvC,IAAIw+F,EAAQ/lJ,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,IAAmBA,UAAU,GAO3E,OANAe,EAAQwB,GAASxB,IAEblD,KAAK4nJ,cAAkB5nJ,KAAKknJ,gBAAiBgB,IAC/ChlJ,EAAQlD,KAAKinJ,UAAU/jJ,EAAOwmD,IAGzBxmD,CACT,EACAqkJ,YAAa,SAAqBrkJ,GAYhC,OAXAA,EAAQwB,GAASxB,GAEblD,KAAKiI,OACP/E,EAAQA,EAAM+E,QAIZjI,KAAKm4B,SACPj1B,EAAQ+3F,GAAQ/3F,EAAOA,IAGlBA,CACT,EACAilJ,YAAa,SAAqBjlJ,GAChC,IAAIsZ,EAAQxc,KAERkoJ,EAAQ/lJ,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,IAAmBA,UAAU,GACvE8tI,EAAOjwI,KAAKiwI,KAEhB,IAAIA,GAASiY,EAAb,CAMAloJ,KAAK+nJ,gBAGL,IAAIK,EAAW,WAGb,GAFAllJ,EAAQsZ,EAAM+qI,YAAYrkJ,GAEtBA,IAAUsZ,EAAM8qI,YAClB9qI,EAAM8qI,YAAcpkJ,EAEpBsZ,EAAMsrF,MAAMZ,GAAkBhkG,QACzB,GAAIsZ,EAAMorI,aAAc,CAS7B,IAAI3P,EAASz7H,EAAMqpG,MAAM3/E,MAGrB+xG,GAAU/0I,IAAU+0I,EAAO/0I,QAC7B+0I,EAAO/0I,MAAQA,EAEnB,CACF,EAIIo5H,EAAWt8H,KAAK2nJ,iBAEhBrrB,EAAW,IAAM2T,IAASiY,EAC5BloJ,KAAKgoJ,qBAAuBhmI,WAAWomI,EAAU9rB,GAGjD8rB,GAxCF,CA0CF,EACAnL,QAAS,SAAiBvzF,GAMxB,IAAIA,EAAMznD,OAAOomJ,UAAjB,CAIA,IAAInlJ,EAAQwmD,EAAMznD,OAAOiB,MACrBq3I,EAAiBv6I,KAAKioJ,YAAY/kJ,EAAOwmD,IAKtB,IAAnB6wF,GAA4B7wF,EAAMoiF,iBACpCznC,GAAU36C,EAAO,CACf+6C,aAAa,KAKjBzkG,KAAKqnJ,WAAa9M,EAClBv6I,KAAKmoJ,YAAY5N,GACjBv6I,KAAK8nG,MAAM9V,GAAkBuoD,GAjB7B,CAkBF,EACAqH,SAAU,SAAkBl4F,GAC1B,IAAIxmD,EAAQwmD,EAAMznD,OAAOiB,MACrBq3I,EAAiBv6I,KAAKioJ,YAAY/kJ,EAAOwmD,IAKtB,IAAnB6wF,GAA4B7wF,EAAMoiF,iBACpCznC,GAAU36C,EAAO,CACf+6C,aAAa,KAKjBzkG,KAAKqnJ,WAAa9M,EAClBv6I,KAAKmoJ,YAAY5N,GAAgB,GACjCv6I,KAAK8nG,MAAMpX,GAAmB6pD,GAChC,EACA+N,OAAQ,SAAgB5+F,GAGtB,IAAIxmD,EAAQwmD,EAAMznD,OAAOiB,MACrBq3I,EAAiBv6I,KAAKioJ,YAAY/kJ,EAAOwmD,GAAO,IAE7B,IAAnB6wF,IAGFv6I,KAAKqnJ,WAAa3iJ,GAAS1E,KAAKunJ,YAAYhN,IAG5Cv6I,KAAKmoJ,YAAY5N,GAAgB,IAInCv6I,KAAK8nG,MAAMtX,GAAiB9mC,EAC9B,EACAg4C,MAAO,WAEA1hG,KAAK6yB,UACR4uE,GAAazhG,KAAK60G,IAEtB,EACAjT,KAAM,WAEC5hG,KAAK6yB,UACR8uE,GAAY3hG,KAAK60G,IAErB,KC5PO0zC,GAAoBhjE,GAAO,CACpCokB,SAAU,CACR6+C,SAAU,CAERzmD,OAAO,EAGP/vF,IAAK,WACH,OAAOhS,KAAK6lH,MAAM3/E,MAAMsiH,QAC1B,GAEFC,kBAAmB,CAEjB1mD,OAAO,EAGP/vF,IAAK,WACH,OAAOhS,KAAK6lH,MAAM3/E,MAAMuiH,iBAC1B,GAEFC,aAAc,CAEZ3mD,OAAO,EAGP/vF,IAAK,WACH,OAAOhS,KAAK6lH,MAAM3/E,MAAMwiH,YAC1B,IAGJhuD,QAAS,CAEPiuD,kBAAmB,WACjB,IAAI/B,EAGJ,OAAQA,EAAoB5mJ,KAAK6lH,MAAM3/E,OAAOyiH,kBAAkB5mJ,MAAM6kJ,EAAmBzkJ,UAC3F,EAGAymJ,cAAe,WACb,IAAI9B,EAGJ,OAAQA,EAAqB9mJ,KAAK6lH,MAAM3/E,OAAO0iH,cAAc7mJ,MAAM+kJ,EAAoB3kJ,UACzF,EAGA0mJ,eAAgB,WACd,IAAI7B,EAGJ,OAAQA,EAAqBhnJ,KAAK6lH,MAAM3/E,OAAO2iH,eAAe9mJ,MAAMilJ,EAAoB7kJ,UAC1F,KCvDJ,SAAShB,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAoBhN,ICxBIk9B,GDwBA6zG,GAAQ,CAAC,OAAQ,WAAY,QAAS,SAAU,MAAO,MAAO,SAAU,QAAS,QAAS,OAAQ,OAAQ,WAAY,iBAAkB,QAAS,QAE1I9qI,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAc,CAAC,EAAGi8B,IAAU6zB,IAAmBgE,IAAgBC,IAAiBuS,IAAgB,CAAC,EAAG,CAC1NC,KAAMhmD,GAASlO,IACf1+D,IAAK4sE,GAASxN,IACdpuD,IAAK47D,GAASxN,IAEdyzD,QAASjmD,GAASxO,IAAmB,GACrC/Q,KAAMuf,GAASxN,IACfjpF,KAAMy2F,GAASlO,GAAkB,QAAQ,SAAUvoF,GACjD,OAAOqtF,GAAci6C,GAAOtnI,EAC9B,OACGm8E,IAGMwgE,GAA0B1jE,GAAO,CAC1C3gF,KAAM6jF,GAENt/E,OAAQ,CAAC4pG,GAAgBuL,GAASo3B,GAAkBK,GAAeE,GAAgBmR,GAAeZ,GAAoB+B,IACtHz/I,MAAOA,GACP6gG,SAAU,CACRu/C,UAAW,WAET,IAAI58I,EAAOtM,KAAKsM,KAChB,OAAOqtF,GAAci6C,GAAOtnI,GAAQA,EAAO,MAC7C,EACA6nG,cAAe,WACb,IAAI7nG,EAAOtM,KAAKkpJ,UACZtkJ,EAAO5E,KAAK4E,KACZ6wI,EAAOz1I,KAAKy1I,KACZ5iH,EAAW7yB,KAAK6yB,SAChB2nH,EAAcx6I,KAAKw6I,YACnB7tI,EAAW3M,KAAK2M,SAChBw6B,EAAMnnC,KAAKmnC,IACXhR,EAAMn2B,KAAKm2B,IACXqtD,EAAOxjF,KAAKwjF,KAChB,MAAO,CACL5qD,GAAI54B,KAAKw+G,SACT55G,KAAMA,EACN6wI,KAAMA,EACNnpI,KAAMA,EACNumB,SAAUA,EACV2nH,YAAaA,EACb7tI,SAAUA,EACVspG,aAAcj2G,KAAKi2G,cAAgB,KACnCmK,SAAUpgH,KAAKogH,UAAYpgH,KAAKmnJ,UAChChgH,IAAKA,EACLhR,IAAKA,EACLqtD,KAAMA,EACNulE,KAAe,aAATz8I,EAAsBtM,KAAK+oJ,KAAO,KACxC,gBAAiBp8I,EAAW,OAAS,KACrC,eAAgB3M,KAAKo2I,oBAEzB,EACA/hC,kBAAmB,WACjB,OAAO7xB,GAAcA,GAAc,CAAC,EAAGxiF,KAAK6yG,aAAc,CAAC,EAAG,CAC5D3sE,MAAOlmC,KAAKi9I,QACZ/E,OAAQl4I,KAAK4hJ,SACbhgD,KAAM5hG,KAAKsoJ,QAEf,GAEF1gD,MAAO,CACLohD,QAAS,SAAiB72I,GACxBnS,KAAKmpJ,gBAAgBh3I,EACvB,GAEFwoG,QAAS,WACP36G,KAAKmpJ,gBAAgBnpJ,KAAKgpJ,QAC5B,EAGApjC,YAAa,WAIX5lH,KAAKmpJ,iBAAgB,EACvB,EAGAxjC,UAAW,WAIT3lH,KAAKmpJ,gBAAgBnpJ,KAAKgpJ,QAC5B,EACA9gD,cAAe,WAEbloG,KAAKmpJ,iBAAgB,EACvB,EACAzuD,QAAS,CACPyuD,gBAAiB,SAAyB94D,GACxC,IAAInqD,EAAQlmC,KAAK60G,IAEjBzQ,GAAW/T,EAAInqD,EAAO,QAASlmC,KAAKopJ,cACpChlD,GAAW/T,EAAInqD,EAAO,OAAQlmC,KAAKqpJ,aAE9Bh5D,GACHn+C,GAASmpC,SAAU,QAASr7E,KAAKspJ,UAErC,EACAF,aAAc,WACZr3G,GAAQspC,SAAU,QAASr7E,KAAKspJ,UAClC,EACAD,YAAa,WACXn3G,GAASmpC,SAAU,QAASr7E,KAAKspJ,UACnC,EACAA,UAAW,SAAmB5/F,GAC5B26C,GAAU36C,EAAO,CACf+6C,aAAa,IAEf9C,GAAY3hG,KAAK60G,IACnB,GAEF11G,OAAQ,SAAgB2B,GACtB,OAAOA,EAAE,QAAS,CAChB0I,MAAOxJ,KAAKwnJ,cACZl+I,MAAOtJ,KAAKm0G,cACZ1O,SAAU,CACRviG,MAAOlD,KAAKqnJ,YAEdh3D,GAAIrwF,KAAKq0G,kBACTlzF,IAAK,SAET,IElJEooI,GAA+BjkE,GAAc,CAC/CP,WAAY,CACVkkE,WAAYA,GACZO,OAAQP,MCADngJ,GAAQ46F,GAAsB41C,GAA0B1wD,IAGxD6gE,GAA+BlkE,GAAO,CAC/C3gF,KAAMgkF,GACNz/E,OAAQ,CAAC8vI,IACTxgC,QAAS,WACP,IAAIj8F,EAAQxc,KAEZ,MAAO,CACL0pJ,gBAAiB,WACf,OAAOltI,CACT,EAEJ,EACA1T,MAAOA,GACP6gG,SAAU,CACRwvC,aAAc,WACZ,OAAO,CACT,KCrBAwQ,GAA+BrkE,GAAc,CAC/CP,WAAY,CACVg0D,WAAYA,GACZ6Q,OAAQ7Q,GACR0Q,gBAAiBA,GACjBI,YAAaJ,MHNjB,SAAStoJ,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CA2BhN,IAAIikG,GAAkBjD,GAAe,QAAS,CAC5Cv3F,KAAMipF,GACN7rC,MAAOgnC,KAELqW,GAAaD,GAAgB5C,MAC7B8C,GAAaF,GAAgBh+F,MAC7Bm+F,GAAkBH,GAAgBz+F,KAClC6+F,GAAmBJ,GAAgBp9C,MAEnCogG,GAAY,EACZC,GAAgB,EAEhBC,GAAe,SAAsBC,GACvC,OAAO/zI,GAAQ4zI,GAAWhvD,GAAUmvD,EAAOF,IAC7C,EAEIG,GAAa,SAAoBhnJ,EAAOikC,EAAKhR,GAC/C,OAAOjgB,GAAQsyF,GAAQtlG,EAAOizB,GAAMgR,EACtC,EAIIgjH,GAAmB5kE,GAAO,CAC5B3gF,KAAMuoF,GACNhkF,OAAQ,CAACsxF,IACT3xF,MAAO,CACL+pB,SAAUkwE,GAASxO,IAAmB,GAEtC61D,QAASrnD,GAASxO,IAAmB,GACrC81D,SAAUtnD,GAASxO,IAAmB,GACtC+1D,OAAQvnD,GAASrO,GAAkB,GACnC0rB,SAAUrd,GAASxO,IAAmB,GACtCg2D,KAAMxnD,GAASrO,GAAkB,GACjC8S,QAASzE,GAASlO,KAEpB6F,QAAS,CACP4Z,QAAS,SAAiB5qD,GACnB1pD,KAAK6yB,UAAa7yB,KAAKogH,WAC1B/b,GAAU36C,EAAO,CACf+6C,aAAa,IAEfzkG,KAAK8nG,MAAM1U,GAAqBpzF,KAAKuqJ,MAEzC,GAEFprJ,OAAQ,SAAgB2B,GACtB,IAAIwpJ,EAAStqJ,KAAKsqJ,OACdC,EAAOvqJ,KAAKuqJ,KACZH,EAAUpqJ,KAAKoqJ,QACfC,EAAWrqJ,KAAKqqJ,SAChB7iD,EAAUxnG,KAAKwnG,QACf30E,EAAW7yB,KAAK6yB,SAChButF,EAAWpgH,KAAKogH,SAChBoqC,EAAUH,EAAW,EAAI,EACzB/9I,EAAOg+I,GAAUC,EAAO,OAASD,GAAUC,EAAO,GAAM,OAAS,QACjEh9B,EAAY,CACd/lB,QAASA,EACT30E,SAAUA,EACVutF,SAAUA,GAEZ,OAAOt/G,EAAE,OAAQ,CACfykG,YAAa,gBACb/7F,MAAO,CAEL4gJ,QAASA,GAAWE,IAAWC,IAASzvD,GAAUwvD,IAAWC,IAASC,EAEtE,sBAAgC,UAATl+I,EACvB,qBAA+B,SAATA,EACtB,qBAA+B,SAATA,GAExBhD,MAAO,CACL8qG,SAAWvhF,GAAautF,EAAkB,KAAP,MAErC/vB,GAAI,CACFmV,MAAOxlG,KAAKs0G,UAEb,CAACxzG,EAAE,OAAQ,CACZykG,YAAa,iBACZ,CAACvlG,KAAKs6F,cAAchuF,EAAMihH,MAC/B,IAGSzkH,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAcA,GAAcA,GAAcA,GAAc,CAAC,EAAGi8B,IAAUzX,IAAalkB,GAAKwvD,GAAkB,CAAC,WAAY,eAAgBgE,IAAgB,CAAC,EAAG,CAEzNzqB,MAAO9oB,GAASlO,IAChB41D,UAAW1nD,GAASlO,GAAkB,KACtC61D,UAAW3nD,GAASlO,GAAkB,QACtC81D,SAAU5nD,GAASlO,GAAkB,aACrC+1D,SAAU7nD,GAASlO,GAAkB,aACrCq9C,OAAQnvC,GAASxO,IAAmB,GAGpCuoB,OAAQ/Z,GAAS9N,IACjB41D,SAAU9nD,GAASxO,IAAmB,GACtC6G,UAAW2H,GAASxN,IACpB6qB,SAAUrd,GAASxO,IAAmB,GACtCu2D,UAAW/nD,GAASxO,IAAmB,GACvCw2D,UAAWhoD,GAASxO,IAAmB,GACvCy2D,aAAcjoD,GAASxO,IAAmB,GAC1C01D,MAAOlnD,GAASxN,GAAyBw0D,IAAe,SAAU7mJ,GAChE,OAAO43F,GAAU53F,IAAU4mJ,EAC7B,IACAtiD,QAASzE,GAASlO,OACfhM,IAGMoiE,GAA2B1lE,GAAO,CAC3C3gF,KAAMikF,GACN9D,WAAY,CACVgqB,UAAWA,GACXE,cAAeA,GACfD,cAAeA,GACfE,OAAQA,IAEV/lG,OAAQ,CAACm1G,GAASvX,GAAYgvC,IAC9BjtI,MAAOA,GACPE,KAAM,WACJ,IAAI9F,EAAQ+3F,GAAQj7F,KAAKinG,IAAkB,MACvCgjD,EAAQD,GAAahqJ,KAAKiqJ,OAC9B,MAAO,CACL5C,WAAYrlE,GAAO9+E,GAAS,KAAOgnJ,GAAWhnJ,EAAO,EAAG+mJ,GACxDlT,UAAU,EAEd,EACAptC,SAAU,CACRuhD,cAAe,WACb,OAAOlB,GAAahqJ,KAAKiqJ,MAC3B,EACAkB,eAAgB,WACd,IAAIjoJ,EAAQ+3F,GAAQj7F,KAAKqnJ,WAAY,GACjCjsD,EAAYN,GAAU96F,KAAKo7F,UAAW,GAE1C,OAAO8uD,GAAWjvD,GAAQ/3F,EAAMi4F,QAAQC,IAAa,EAAGp7F,KAAKkrJ,cAC/D,EACAlpC,eAAgB,WACd,IAAIxF,EAAUv7G,GAAOjB,KAAK88G,QAAQp7G,OAAOyhF,IACrCugC,EAAK,IAAI/G,KAAKgH,aAAanH,GAC/B,OAAOkH,EAAG7G,kBAAkBC,MAC9B,EACAsuC,cAAe,WACb,OAAQprJ,KAAK6yB,WAAa7yB,KAAKogH,QACjC,EACAsC,MAAO,WACL,OAAOvE,GAAYn+G,KAAKgiH,eAC1B,EACAqpC,gBAAiB,WACf,IAAIjwD,EAAYN,GAAU96F,KAAKo7F,WAC3B4vD,EAAehrJ,KAAKgrJ,aACpBluC,EAAS98G,KAAKgiH,eACdspC,EAAgB,CAClBvnC,SAAU,WACVF,sBAAuB98E,MAAMq0D,GAAa,EAAIA,EAC9C0oB,sBAAuB/8E,MAAMq0D,GAAa,EAAIA,GAE5C6uD,EAAQjqJ,KAAKkrJ,cAAcK,eAAezuC,GAC1C55G,EAAQlD,KAAKqnJ,WAEjB,OADAnkJ,EAAQ8+E,GAAO9+E,GAAS8nJ,EAAe,IAAM,GAAK9nJ,EAAMqoJ,eAAezuC,EAAQwuC,GACxEN,EAAe,GAAG/pJ,OAAOiC,EAAO,KAAKjC,OAAOgpJ,GAAS/mJ,CAC9D,GAEF0kG,OAAQ7nE,GAAS,CAAC,EAAGv9B,GAAgBu9B,GAAQknE,IAAiB,SAAU90F,EAAU4+F,GAChF,GAAI5+F,IAAa4+F,EAAU,CACzB,IAAI7tG,EAAQ+3F,GAAQ9oF,EAAU,MAC9BnS,KAAKqnJ,WAAarlE,GAAO9+E,GAAS,KAAOgnJ,GAAWhnJ,EAAO,EAAGlD,KAAKkrJ,cACrE,CACF,IAAI1oJ,GAAgBu9B,GAAQ,cAAc,SAAoB5tB,EAAU4+F,GAClE5+F,IAAa4+F,GAAY5+F,KAAcnS,KAAKkD,OAAS,IACvDlD,KAAK8nG,MAAMZ,GAAkB/0F,GAAY,KAE7C,IAAI3P,GAAgBu9B,GAAQ,YAAY,SAAkB5tB,GACpDA,IACFnS,KAAK+2I,UAAW,EAChB/2I,KAAK4hG,OAET,IAAI7hE,IACJ26D,QAAS,CAEPgH,MAAO,WACA1hG,KAAK6yB,UACR4uE,GAAazhG,KAAK60G,IAEtB,EACAjT,KAAM,WACC5hG,KAAK6yB,UACR8uE,GAAY3hG,KAAK60G,IAErB,EAEAqG,UAAW,SAAmBxxD,GAC5B,IAAI0sD,EAAU1sD,EAAM0sD,QAEpB,GAAIp2G,KAAKorJ,eAAiBzxD,GAAc,CAACmW,GAAWL,GAAWQ,GAAYE,IAAUiG,GAAU,CAC7F/R,GAAU36C,EAAO,CACf+6C,aAAa,IAEf,IAAIvhG,EAAQ43F,GAAU96F,KAAKqnJ,WAAY,GACnClgH,EAAMnnC,KAAK8qJ,UAAY,EAAI,EAC3Bb,EAAQjqJ,KAAKkrJ,cAEbM,EAAYxrJ,KAAK0iH,OAAS,EAAI,EAE9BtM,IAAYtG,GACd9vG,KAAKqnJ,WAAa6C,GAAWhnJ,EAAQsoJ,EAAWrkH,EAAK8iH,IAAU,KACtD7zC,IAAYnG,GACrBjwG,KAAKqnJ,WAAa6C,GAAWhnJ,EAAQsoJ,EAAWrkH,EAAK8iH,GAC5C7zC,IAAY3G,GACrBzvG,KAAKqnJ,WAAa6C,GAAWhnJ,EAAQ,EAAGikC,EAAK8iH,IAAU,KAC9C7zC,IAAYjG,KACrBnwG,KAAKqnJ,WAAa6C,GAAWhnJ,EAAQ,EAAGikC,EAAK8iH,GAEjD,CACF,EACAjN,WAAY,SAAoB95I,GAC1BlD,KAAKorJ,gBACPprJ,KAAKqnJ,WAAankJ,EAEtB,EACAuoJ,QAAS,SAAiB/hG,GACxB1pD,KAAK+2I,WAAY/2I,KAAKorJ,eAAuC,UAAf1hG,EAAMp9C,IACtD,EAEAo/I,WAAY,SAAoBz/I,GAC9B,OAAOjM,KAAK09I,eAAepuC,GAAO,CAChCxmG,MAAO,CACLmD,KAAMA,EACNu7F,QAASxnG,KAAK6yB,UAAY7yB,KAAK6rH,MAAQ,KAAO7rH,KAAKwnG,SAAW,OAGpE,EACAmkD,YAAa,WACX,OAAO3rJ,KAAK0rJ,WAAW1rJ,KAAK0qJ,UAC9B,EACAkB,WAAY,WACV,OAAO5rJ,KAAK0rJ,WAAW1rJ,KAAK4qJ,SAC9B,EACAiB,WAAY,WACV,OAAO7rJ,KAAK0rJ,WAAW1rJ,KAAK2qJ,SAC9B,EACAmB,YAAa,WACX,OAAO9rJ,KAAK09I,eAAepuC,GAAO,CAChCxmG,MAAO,CACLmD,KAAMjM,KAAKyqJ,YAGjB,GAEFtrJ,OAAQ,SAAgB2B,GACtB,IAAI0b,EAAQxc,KAER6yB,EAAW7yB,KAAK6yB,SAChButF,EAAWpgH,KAAKogH,SAChBx7G,EAAO5E,KAAK4E,KACZ6wI,EAAOz1I,KAAKy1I,KACZvD,EAASlyI,KAAKkyI,OACd1qC,EAAUxnG,KAAKwnG,QACfqkB,EAAQ7rH,KAAK6rH,MACbg/B,EAAW7qJ,KAAK6qJ,SAChB9T,EAAW/2I,KAAK+2I,SAChBoU,EAAiBnrJ,KAAKmrJ,eACtBD,EAAgBlrJ,KAAKkrJ,cACrBG,EAAkBrrJ,KAAKqrJ,gBACvBP,EAAY9qJ,KAAK8qJ,UACjBpoC,EAAQ1iH,KAAK0iH,MACb0oC,EAAgBprJ,KAAKorJ,cACrBhxD,EAAep6F,KAAKo6F,aACpB8P,EAAW,GAEf,GAAI4gD,IAAcj4H,IAAautF,EAAU,CACvC,IAAI2rC,EAAQjrJ,EAAE,OAAQ,CACpBykG,YAAa,iBACZ,EAAEnL,EAAapD,KAAyBh3F,KAAK8rJ,iBAChD5hD,EAASpoG,KAAKhB,EAAE,OAAQ,CACtBykG,YAAa,gDACb/7F,MAAO,CACL4gJ,QAASrT,GAA+B,IAAnBoU,GAEvB7hJ,MAAO,CACL8qG,SAAUg3C,EAAgB,KAAO,MAEnC/6D,GAAI,CACFmV,MAAO,WACL,OAAOhpF,EAAMwgI,WAAW,KAC1B,GAEFz6I,IAAK,SACJ,CAACwpJ,IACN,CAEA,IAAK,IAAI93G,EAAQ,EAAGA,EAAQi3G,EAAej3G,IAAS,CAClD,IAAI/wC,EAAQ+wC,EAAQ,EACpBi2D,EAASpoG,KAAKhB,EAAEqpJ,GAAkB,CAChC5kD,YAAa,cACbz9F,MAAO+jH,IAAUh5F,EAAW,CAC1Bg5F,MAAOA,GACL,CAAC,EACL/iH,MAAO,CACLwhJ,OAAQa,EACRZ,KAAMrnJ,EACNskG,QAAS30E,EAAW,KAAO20E,GAAW,KACtC30E,SAAUA,EACVutF,SAAUA,EACVgqC,QAASrT,EACTsT,SAAUS,GAEZz6D,GAAI,CACFwwB,SAAU7gH,KAAKg9I,YAEjBjtD,YAAa,CACXi8D,MAAO5xD,EAAanD,KAAyBj3F,KAAK2rJ,YAClDM,KAAM7xD,EAAajD,KAAwBn3F,KAAK4rJ,WAChDM,KAAM9xD,EAAalD,KAAwBl3F,KAAK6rJ,YAElDtpJ,IAAK0xC,IAET,CAwBA,OAtBIrvC,GACFslG,EAASpoG,KAAKhB,EAAE,QAAS,CACvBwI,MAAO,CACLgD,KAAM,SACNpJ,MAAO8+E,GAAOhiF,KAAKqnJ,YAAc,GAAK8D,EACtCvmJ,KAAMA,EACN6wI,KAAMA,GAAQ,MAEhBlzI,IAAK,YAILvC,KAAK+qJ,WACP7gD,EAASpoG,KAAKhB,EAAE,IAAK,CACnBykG,YAAa,6BACbj8F,MAAO,CACL,cAAe,QAEjB/G,IAAK,SACJmC,GAAS2mJ,KAGPvqJ,EAAE,SAAU,CACjBykG,YAAa,2CACb/7F,MAAO,CAAC,CACN,gBAAiB0oI,EACjB,UAAWA,EACX,WAAY2Y,EACZh4H,SAAUA,EACVutF,UAAWvtF,GAAYutF,GACtBpgH,KAAKg2I,eACR1sI,MAAO,CACLsvB,GAAI54B,KAAKw+G,SACTmE,IAAKD,EAAQ,MAAQ,MACrBtO,SAAUvhF,EAAW,KAAO,IAC5BA,SAAUA,EACVy1E,KAAM,SACN,gBAAiBz1E,EAAW,OAAS,KACrC,iBAAkBA,GAAYutF,EAAW,OAAS,KAClD,YAAa,MACb,gBAAiB0qC,EAAY,IAAM,IACnC,gBAAiBpmJ,GAASwmJ,GAC1B,gBAAiBC,EAAiBzmJ,GAASymJ,GAAkB,MAE/D96D,GAAI,CACF8lB,QAASn2G,KAAKk7G,UACdxZ,MAAO1hG,KAAKyrJ,QACZ7pD,KAAM5hG,KAAKyrJ,UAEZvhD,EACL,II7YEiiD,GAAgC7mE,GAAc,CAChDP,WAAY,CACVkmE,YAAaA,GACbmB,QAASnB,MCHTnkD,GAAkBjD,GAAe,SACjCK,GAAQ4C,GAAgB5C,MACxBp7F,GAAQg+F,GAAgBh+F,MACxBT,GAAOy+F,GAAgBz+F,KACvBqhD,GAAQo9C,GAAgBp9C,MCN5B,SAASvoD,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAUzM,IAAIiG,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAc,CAAC,EAAGiyD,IAAmB,CAAC,EAAG,CACvG4X,WAAYtpD,GAASlO,GAAkB,SACvCy3D,aAAcvpD,GAASlO,GAAkB,cACtC,eAGM03D,GAAehnE,GAAO,CAC/Bp8E,OAAQ,CAACirI,IACTtrI,MAAOA,GACP4xF,QAAS,CACP65C,gBAAiB,SAAyBC,GACxC,IAAIjyI,EAAMJ,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,KAG9E,GAAIob,GAAci3H,GAAS,CACzB,IAAItxI,EAAQ8O,GAAIwiI,EAAQx0I,KAAKm0I,YACzBjyG,EAAOlwB,GAAIwiI,EAAQx0I,KAAKk0I,WACxBv0I,EAAUqS,GAAIwiI,EAAQx0I,KAAKssJ,aAAc,MAE7C,OAAKtqE,GAAOriF,GAQL,CACLuD,MAAOiN,GAAYjN,GAASX,GAAO2/B,EAAOh/B,EAC1Cg/B,KAAMz1B,OAAO0D,GAAY+xB,GAAQ3/B,EAAM2/B,GACvCk3E,KAAMpnG,GAAIwiI,EAAQx0I,KAAKi0I,WACvBphH,SAAUtmB,QAAQyF,GAAIwiI,EAAQx0I,KAAKg0I,iBAX5B,CACL9uB,MAAOz4G,OAAOuF,GAAIwiI,EAAQx0I,KAAKqsJ,aAAenqH,GAC9CviC,QAASK,KAAKs0I,iBAAiB30I,GAWrC,CAGA,MAAO,CACLuD,MAAOX,GAAOiyI,EACdtyG,KAAMz1B,OAAO+nI,GACb3hH,UAAU,EAEd,KClDO/pB,GAAQ46F,GAAsB,CACvC7wE,SAAUkwE,GAASxO,IAAmB,GACtCrxF,MAAO6/F,GAAS1O,QAAetrF,GAAW,IAEzCigF,IAGQwjE,GAAiCjnE,GAAO,CACjD3gF,KAAMokF,GACNnpF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIr3B,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZC,EAAWk3B,EAAKl3B,SAChB/F,EAAQ4F,EAAM5F,MACd2vB,EAAW/pB,EAAM+pB,SACrB,OAAO/xB,EAAE,SAAU6kG,GAAU38F,EAAM,CACjCM,MAAO,CACLupB,SAAUA,GAEZ4yE,SAAU,CACRviG,MAAOA,KAEP+F,EACN,IC9BF,SAAS9H,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAazM,IAAIiG,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAc,CAAC,EAAGiyD,IAAmB,CAAC,EAAG,CACvGvvB,MAAOniB,GAASlO,QAAkB9rF,GAAW,MAE1CkgF,IAGMwjE,GAAsClnE,GAAO,CACtD3gF,KAAMqkF,GACN9/E,OAAQ,CAACsxF,GAAoB25C,IAC7BtrI,MAAOA,GACP3J,OAAQ,SAAgB2B,GACtB,IAAIokH,EAAQllH,KAAKklH,MACbxkH,EAAWV,KAAKq0I,YAAYtsI,KAAI,SAAUysI,EAAQvgG,GACpD,IAAI/wC,EAAQsxI,EAAOtxI,MACfg/B,EAAOsyG,EAAOtyG,KACdk3E,EAAOo7B,EAAOp7B,KACdvmF,EAAW2hH,EAAO3hH,SACtB,OAAO/xB,EAAE0rJ,GAAmB,CAC1BljJ,MAAO,CACLpG,MAAOA,EACP2vB,SAAUA,GAEZ4yE,SAAUwT,GAAWG,EAAMl3E,GAC3B3/B,IAAK,UAAUtB,OAAOgzC,IAE1B,IACA,OAAOnzC,EAAE,WAAY,CACnBwI,MAAO,CACL47G,MAAOA,IAER,CAACllH,KAAKs6F,cAAc3D,IAAkBj2F,EAAUV,KAAKs6F,iBAC1D,IChDF,SAASn5F,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAwBzM,IC5BHk9B,GD4BOj3B,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAc,CAAC,EAAGi8B,IAAUzX,IAAasrC,IAAmBkE,IAAkBF,IAAgBC,IAAiB,CAAC,EAAG,CACvPF,YAAatzC,GAAS3N,IAA0B,GAChDmqD,SAAUx8C,GAASxO,IAAmB,GAGtCm4D,WAAY3pD,GAASrO,GAAkB,MACpC3L,IAGM4jE,GAA2BpnE,GAAO,CAC3C3gF,KAAMmkF,GACN5/E,OAAQ,CAACm1G,GAASvX,GAAY2uC,GAAkBK,GAAeE,GAAgBJ,GAAiB0W,GAAc9xD,IAC9G3xF,MAAOA,GACPE,KAAM,WACJ,MAAO,CACLq+I,WAAYrnJ,KAAKinG,IAErB,EACA0C,SAAU,CACRijD,mBAAoB,WAGlB,OAAQ5sJ,KAAK41I,OAA6B,IAApB51I,KAAK0sJ,WAA0B1sJ,KAAK0sJ,WAAZ,IAChD,EACAG,WAAY,WACV,MAAO,CAAC7sJ,KAAK41I,MAAQ,eAAiB,gBAAiB51I,KAAKsL,MAAQtL,KAAK41I,MAAQ,gBAAgB30I,OAAOjB,KAAKsL,MAAQ,KAAMtL,KAAKsL,OAAStL,KAAK41I,MAAQ,iBAAiB30I,OAAOjB,KAAKsL,MAAQ,KAAMtL,KAAKm2I,WACxM,GAEFvuC,MAAO,CACL1kG,MAAO,SAAeiP,GACpBnS,KAAKqnJ,WAAal1I,CACpB,EACAk1I,WAAY,WACVrnJ,KAAK8nG,MAAMZ,GAAkBlnG,KAAKqnJ,WACpC,GAEF3sD,QAAS,CACPgH,MAAO,WACLD,GAAazhG,KAAK6lH,MAAM3/E,MAC1B,EACA07D,KAAM,WACJD,GAAY3hG,KAAK6lH,MAAM3/E,MACzB,EACA07G,SAAU,SAAkBl4F,GAC1B,IAAIltC,EAAQxc,KAERiC,EAASynD,EAAMznD,OACf6qJ,EAAgBluD,GAAU38F,EAAOtC,SAAS+B,QAAO,SAAU6C,GAC7D,OAAOA,EAAEs8G,QACX,IAAG94G,KAAI,SAAUxD,GACf,MAAO,WAAYA,EAAIA,EAAEwoJ,OAASxoJ,EAAErB,KACtC,IACAlD,KAAKqnJ,WAAaplJ,EAAOs9I,SAAWuN,EAAgBA,EAAc,GAClE9sJ,KAAKgoG,WAAU,WACbxrF,EAAMsrF,MAAMpX,GAAmBl0E,EAAM6qI,WACvC,GACF,GAEFloJ,OAAQ,SAAgB2B,GACtB,IAAI8D,EAAO5E,KAAK4E,KACZiuB,EAAW7yB,KAAK6yB,SAChBlmB,EAAW3M,KAAK2M,SAChBrB,EAAOtL,KAAK4sJ,mBACZ1pJ,EAAQlD,KAAKqnJ,WACb3mJ,EAAWV,KAAKq0I,YAAYtsI,KAAI,SAAUysI,EAAQvgG,GACpD,IAAI/wC,EAAQsxI,EAAOtxI,MACfgiH,EAAQsvB,EAAOtvB,MACfvlH,EAAU60I,EAAO70I,QACjBkzB,EAAW2hH,EAAO3hH,SAClBtwB,EAAM,UAAUtB,OAAOgzC,GAC3B,OAAO9vC,GAAQxE,GAAWmB,EAAE2rJ,GAAwB,CAClD3jJ,MAAO,CACLo8G,MAAOA,EACPvlH,QAASA,GAEX4C,IAAKA,IACFzB,EAAE0rJ,GAAmB,CACxB1jJ,MAAO,CACL5F,MAAOA,EACP2vB,SAAUA,GAEZ4yE,SAAUwT,GAAWu7B,EAAOp7B,KAAMo7B,EAAOtyG,MACzC3/B,IAAKA,GAET,IACA,OAAOzB,EAAE,SAAU,CACjB0I,MAAOxJ,KAAK6sJ,WACZvjJ,MAAO,CACLsvB,GAAI54B,KAAKw+G,SACT55G,KAAMA,EACN6wI,KAAMz1I,KAAKy1I,MAAQ,KACnB8J,SAAUv/I,KAAKu/I,UAAY,KAC3Bj0I,KAAMA,EACNunB,SAAUA,EACVlmB,SAAUA,EACV,gBAAiBA,EAAW,OAAS,KACrC,eAAgB3M,KAAKo2I,qBAEvB/lD,GAAI,CACF6nD,OAAQl4I,KAAK4hJ,UAEf58D,WAAY,CAAC,CACXpgF,KAAM,QACN1B,MAAOA,IAETie,IAAK,SACJ,CAACnhB,KAAKs6F,cAAc3D,IAAkBj2F,EAAUV,KAAKs6F,iBAC1D,IEnIE0yD,GAAgC1nE,GAAc,CAChDP,WAAY,CACV4nE,YAAaA,GACbH,kBAAmBA,GACnBC,uBAAwBA,GACxBQ,QAASN,GACTO,cAAeV,GACfW,mBAAoBV,MDTxB,SAAStrJ,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CA4BhN,IAAIikG,GAAkBjD,GAAe,QAAS,CAE5Cv3F,KAAM4oF,KAEJ6R,GAAaD,GAAgB5C,MAC7B8C,GAAaF,GAAgBh+F,MAC7Bm+F,GAAkBH,GAAgBz+F,KAClC6+F,GAAmBJ,GAAgBp9C,MAGnC0jG,GAAc,EACdC,GAAc,IACdC,GAAe,EAEfC,GAAuB,IAEvBC,GAA0B,IAE1BC,GAA2B,GAE3BC,GAA4B,EAC5BC,GAAY,CAACx9C,GAASV,GAAWI,GAAWH,GAAUM,GAAaD,IAE5DjnG,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAc,CAAC,EAAGi8B,IAAUzX,IAAalkB,GAAKwvD,GAAkB,CAAC,WAAY,eAAgBgE,IAAgBC,IAAiB,CAAC,EAAG,CACxP73B,aAAc3b,GAASlO,IACvBqQ,UAAWnC,GAASlO,IACpB+4D,YAAa7qD,GAAStO,IACtBy9C,OAAQnvC,GAASxO,IAAmB,GACpCs5D,eAAgB9qD,GAASlO,GAAkB,aAC3Ci5D,eAAgB/qD,GAASlO,GAAkB,aAC3CioB,OAAQ/Z,GAAS9N,IACjB9+D,IAAK4sE,GAASxN,GAAyB83D,IACvClmH,IAAK47D,GAASxN,GAAyB63D,IACvC5S,YAAaz3C,GAASlO,IACtBurB,SAAUrd,GAASxO,IAAmB,GACtCw5D,YAAahrD,GAASxN,GAAyBg4D,IAC/CS,eAAgBjrD,GAASxN,GAAyBi4D,IAClDS,qBAAsBlrD,GAASxN,GAAyBm4D,IACxDQ,gBAAiBnrD,GAASxN,GAAyBk4D,IACnDjqE,KAAMuf,GAASxN,GAAyB+3D,IACxCnzC,SAAUpX,GAASxO,IAAmB,GACtC45D,KAAMprD,GAASxO,IAAmB,MAC/BrL,IAGMklE,GAA+B7oE,GAAO,CAC/C3gF,KAAMskF,GAEN//E,OAAQ,CAACsoG,GAAY6M,GAASvX,GAAYgvC,GAAeE,GAAgBx7C,IACzEoZ,cAAc,EACd/qG,MAAOA,GACPE,KAAM,WACJ,MAAO,CACLq+I,WAAYpsD,GAAQj7F,KAAKinG,IAAkB,MAC3C8vC,UAAU,EAEd,EACAptC,SAAU,CACRh9F,SAAU,WACR,OAAO,CACT,EACA0hJ,OAAQ,WACN,OAAOruJ,KAAKw+G,QACd,EACA8vC,eAAgB,WACd,OAAOtuJ,KAAKkyI,SAAWlyI,KAAKm6G,QAC9B,EACAo0C,iBAAkB,WAChB,OAAOvuJ,KAAKogH,WAAapgH,KAAK6yB,QAChC,EACA27H,iBAAkB,WAChB,OAAOxuJ,KAAK2M,WAAa3M,KAAKuuJ,mBAAqBvuJ,KAAK6yB,QAC1D,EACA47H,aAAc,WACZ,OAAOxzD,GAAQj7F,KAAKwjF,KAAM8pE,GAC5B,EACAzrC,YAAa,WACX,OAAO5mB,GAAQj7F,KAAKmnC,IAAKimH,GAC3B,EACAtrC,YAAa,WAEX,IAAI3rF,EAAM8kE,GAAQj7F,KAAKm2B,IAAKk3H,IACxB7pE,EAAOxjF,KAAKyuJ,aACZtnH,EAAMnnC,KAAK6hH,YACf,OAAOjZ,IAAWzyE,EAAMgR,GAAOq8C,GAAQA,EAAOr8C,CAChD,EACAunH,cAAe,WACb,IAAIC,EAAQ7zD,GAAU96F,KAAK+tJ,YAAa,GACxC,OAAOY,EAAQ,EAAIA,EAAQpB,EAC7B,EACAqB,iBAAkB,WAChB,IAAIh6E,EAAWkmB,GAAU96F,KAAKguJ,eAAgB,GAC9C,OAAOp5E,EAAW,EAAIA,EAAW44E,EACnC,EACAqB,kBAAmB,WACjB,OAAO34I,GAAQ4kF,GAAU96F,KAAKkuJ,gBAAiBT,IAA2B,EAC5E,EACAqB,uBAAwB,WACtB,OAAO54I,GAAQ4kF,GAAU96F,KAAKiuJ,qBAAsBP,IAA4B,EAClF,EACAqB,kBAAmB,WAEjB,IAAIvrE,EAAOxjF,KAAKyuJ,aAChB,OAAO7lD,GAAUplB,KAAUA,EAAO,GAAKA,EAAK9+E,WAAW4B,MAAM,KAAK,IAAM,IAAIlE,MAC9E,EACA4sJ,mBAAoB,WAClB,OAAOnmD,GAAQ,GAAI7oG,KAAK+uJ,mBAAqB,EAC/C,EACAE,aAAc,WACZ,IAAI/rJ,EAAQlD,KAAKqnJ,WACjB,OAAOrlE,GAAO9+E,GAAS,GAAKA,EAAMi4F,QAAQn7F,KAAK+uJ,kBACjD,EACA/sC,eAAgB,WACd,IAAIxF,EAAUv7G,GAAOjB,KAAK88G,QAAQp7G,OAAOyhF,IACrCugC,EAAK,IAAI/G,KAAKgH,aAAanH,GAC/B,OAAOkH,EAAG7G,kBAAkBC,MAC9B,EACAoyC,YAAa,WACX,OAAO/wC,GAAYn+G,KAAKgiH,eAC1B,EACAmtC,iBAAkB,WAEhB,IAAI/zD,EAAYp7F,KAAK+uJ,kBACjBrrC,EAAK,IAAI/G,KAAKgH,aAAa3jH,KAAKgiH,eAAgB,CAClDl6G,MAAO,UACPsnJ,aAAa,EACbxrC,qBAAsB,EACtBC,sBAAuBzoB,EACvB0oB,sBAAuB1oB,EACvB2oB,SAAU,aAGZ,OAAOL,EAAGxwG,MACZ,EACAm8I,kBAAmB,WACjB,IAAIzB,EAAc5tJ,KAAK4tJ,YACvB,OAAOhqD,GAAgBgqD,GAAeA,EAAc5tJ,KAAKmvJ,gBAC3D,EACAh7C,cAAe,WACb,OAAO3xB,GAAcA,GAAc,CAAC,EAAGxiF,KAAKuxG,SAAU,CAAC,EAAG,CACxDjJ,KAAM,QACNihB,KAAMvpH,KAAKgiH,eACX5N,SAAUp0G,KAAK6yB,SAAW,KAAO,KACjC5lB,MAAOjN,KAAKklG,WAEhB,EACAoqD,kBAAmB,WACjB,IAAIjB,EAASruJ,KAAKquJ,OACdnrJ,EAAQlD,KAAKqnJ,WACb16I,EAAW3M,KAAKwuJ,iBAChB37H,EAAW7yB,KAAK6yB,SAChB0I,EAAQv7B,KAAKu7B,MACb8zH,EAAoBrvJ,KAAKqvJ,kBACzBE,GAAYvtE,GAAO9+E,GACvB,OAAOs/E,GAAcA,GAAc,CACjCmgC,IAAK3iH,KAAKkvJ,YAAc,MAAQ,OAC/BlvJ,KAAKuxG,SAAU,CAAC,EAAG,CACpB34E,GAAIy1H,EACJ/lD,KAAM,aACN8L,SAAUvhF,EAAW,KAAO,IAC5B,YAAa,MACb,aAAc7yB,KAAKklG,WAAa,KAChC,gBAAiBllG,KAAK0+G,cAAgB,KAEtC,gBAA0B,IAAVnjF,IAAoBg0H,GAAY5iJ,EAAW,OAAS,KACpE,gBAAiBA,EAAW,OAAS,KAErC,gBAAiBjI,GAAS1E,KAAK6hH,aAC/B,gBAAiBn9G,GAAS1E,KAAK8hH,aAG/B,gBAAiBytC,EAAWrsJ,EAAQ,KACpC,iBAAkBqsJ,EAAWF,EAAkBnsJ,GAAS,MAE5D,GAEF0kG,OAAQ7nE,GAAS,CAAC,EAAGv9B,GAAgBu9B,GAAQknE,IAAiB,SAAU/jG,GACtElD,KAAKqnJ,WAAapsD,GAAQ/3F,EAAO,KACnC,IAAIV,GAAgBu9B,GAAQ,cAAc,SAAoB78B,GAC5DlD,KAAK8nG,MAAMZ,GAAkBhkG,EAC/B,IAAIV,GAAgBu9B,GAAQ,YAAY,SAAkByvH,GACpDA,GACFxvJ,KAAKyvJ,aAET,IAAIjtJ,GAAgBu9B,GAAQ,YAAY,SAAkB2vH,GACpDA,GACF1vJ,KAAKyvJ,aAET,IAAI1vH,IACJ8uD,QAAS,WAEP7uF,KAAK2vJ,iBAAmB,KACxB3vJ,KAAK4vJ,kBAAoB,KACzB5vJ,KAAK6vJ,aAAc,CACrB,EACA3nD,cAAe,WACbloG,KAAKyvJ,aACP,EAGA7pC,YAAa,WACX5lH,KAAKyvJ,aACP,EACA/0D,QAAS,CAEPgH,MAAO,WACA1hG,KAAK6yB,UACR4uE,GAAazhG,KAAK6lH,MAAMiqC,QAE5B,EACAluD,KAAM,WACC5hG,KAAK6yB,UACR8uE,GAAY3hG,KAAK6lH,MAAMiqC,QAE3B,EAEAC,WAAY,WACV/vJ,KAAK8nG,MAAMpX,GAAmB1wF,KAAKqnJ,WACrC,EACA2I,UAAW,SAAmBjxC,GAG5B,IAAI77G,EAAQlD,KAAKqnJ,WAEjB,IAAKrnJ,KAAK6yB,WAAamvD,GAAO9+E,GAAQ,CACpC,IAAIsgF,EAAOxjF,KAAKyuJ,aAAe1vC,EAC3B53E,EAAMnnC,KAAK6hH,YACX1rF,EAAMn2B,KAAK8hH,YACXmuC,EAAajwJ,KAAKgvJ,mBAClBb,EAAOnuJ,KAAKmuJ,KAEhBjrJ,EAAQ4lG,IAAW5lG,EAAQikC,GAAOq8C,GAAQA,EAAOr8C,EAAMq8C,EAEvDtgF,EAAQ4lG,GAAU5lG,EAAQ+sJ,GAAcA,EAExCjwJ,KAAKqnJ,WAAankJ,EAAQizB,EAAMg4H,EAAOhnH,EAAMhR,EAAMjzB,EAAQikC,EAAMgnH,EAAOh4H,EAAMgR,EAAMjkC,CACtF,CACF,EACAgtJ,YAAa,SAAqBxmG,GAChC1pD,KAAK+2I,UAAW/2I,KAAK6yB,UAAkC,UAAf62B,EAAMp9C,IAChD,EACA6jJ,OAAQ,WACN,IAAIF,EAAa9tJ,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,EACjFe,EAAQlD,KAAKqnJ,WAEbrlE,GAAO9+E,GACTlD,KAAKqnJ,WAAarnJ,KAAK6hH,YAEvB7hH,KAAKgwJ,UAAU,EAAKC,EAExB,EACAG,SAAU,WACR,IAAIH,EAAa9tJ,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,EACjFe,EAAQlD,KAAKqnJ,WAEbrlE,GAAO9+E,GACTlD,KAAKqnJ,WAAarnJ,KAAKmuJ,KAAOnuJ,KAAK8hH,YAAc9hH,KAAK6hH,YAEtD7hH,KAAKgwJ,WAAW,EAAIC,EAExB,EACA/0C,UAAW,SAAmBxxD,GAC5B,IAAI0sD,EAAU1sD,EAAM0sD,QAChBgQ,EAAS18D,EAAM08D,OACfC,EAAU38D,EAAM28D,QAChBgqC,EAAU3mG,EAAM2mG,QAGpB,KAAIrwJ,KAAK6yB,UAAY7yB,KAAKogH,UAAYgG,GAAUC,GAAWgqC,IAIvD12D,GAAcg0D,GAAWv3C,GAAU,CAOrC,GALA/R,GAAU36C,EAAO,CACf+6C,aAAa,IAIXzkG,KAAK6vJ,YAEP,OAGF7vJ,KAAKswJ,cAED32D,GAAc,CAACwW,GAASV,IAAY2G,IAEtCp2G,KAAK6vJ,aAAc,EAEfz5C,IAAYjG,GACdnwG,KAAKuwJ,iBAAiB7mG,EAAO1pD,KAAKmwJ,QACzB/5C,IAAY3G,IACrBzvG,KAAKuwJ,iBAAiB7mG,EAAO1pD,KAAKowJ,WAIhCh6C,IAAYpG,GACdhwG,KAAKmwJ,OAAOnwJ,KAAK8uJ,wBACR14C,IAAYrG,GACrB/vG,KAAKowJ,SAASpwJ,KAAK8uJ,wBACV14C,IAAYvG,GACrB7vG,KAAKqnJ,WAAarnJ,KAAK6hH,YACdzL,IAAY1G,KACrB1vG,KAAKqnJ,WAAarnJ,KAAK8hH,YAG7B,CACF,EACA0uC,QAAS,SAAiB9mG,GAExB,IAAI0sD,EAAU1sD,EAAM0sD,QAChBgQ,EAAS18D,EAAM08D,OACfC,EAAU38D,EAAM28D,QAChBgqC,EAAU3mG,EAAM2mG,QAGhBrwJ,KAAK6yB,UAAY7yB,KAAKogH,UAAYgG,GAAUC,GAAWgqC,GAIvD12D,GAAcg0D,GAAWv3C,KAC3B/R,GAAU36C,EAAO,CACf+6C,aAAa,IAEfzkG,KAAKswJ,cACLtwJ,KAAK6vJ,aAAc,EACnB7vJ,KAAK+vJ,aAET,EACAQ,iBAAkB,SAA0B7mG,EAAO+mG,GACjD,IAAIj0I,EAAQxc,KAERmgC,EAAOupB,GAAS,CAAC,EACjBp9C,EAAO6zB,EAAK7zB,KACZspG,EAASz1E,EAAKy1E,OAElB,IAAK51G,KAAK6yB,WAAa7yB,KAAKogH,SAAU,CAEpC,GAAa,cAAT9zG,GAAwBspG,EAE1B,OAGF51G,KAAKswJ,cAELG,EAAQ,GACR,IAAIhiC,EAAYzuH,KAAK6uJ,kBACjBoB,EAAajwJ,KAAK8uJ,uBAClBH,EAAQ3uJ,KAAK0uJ,cACb95E,EAAW50E,KAAK4uJ,iBAEpB5uJ,KAAK2vJ,iBAAmB3tI,YAAW,WACjC,IAAIvL,EAAQ,EACZ+F,EAAMozI,kBAAoB56B,aAAY,WAKpCy7B,EAAQh6I,EAAQg4G,EAAY,EAAIwhC,GAChCx5I,GACF,GAAGm+D,EACL,GAAG+5E,EACL,CACF,EACA+B,UAAW,SAAmBhnG,GAE5B,IAAIkiD,EAAQliD,GAAS,CAAC,EAClBp9C,EAAOs/F,EAAMt/F,KACbspG,EAAShK,EAAMgK,OAIN,YAATtpG,GAAsBspG,IAK1BvR,GAAU36C,EAAO,CACf+6C,aAAa,IAEfzkG,KAAKswJ,cACLtwJ,KAAK2wJ,YAAW,GAEhB3wJ,KAAK+vJ,aACP,EACAY,WAAY,SAAoBtgE,GAG9B,IACE+T,GAAW/T,EAAIhV,SAASloC,KAAM,UAAWnzC,KAAK0wJ,WAAW,GACzDtsD,GAAW/T,EAAIhV,SAASloC,KAAM,WAAYnzC,KAAK0wJ,WAAW,EAC5D,CAAE,MAAOl0E,GAAU,CACrB,EACA8zE,YAAa,WACXpuI,aAAaliB,KAAK2vJ,kBAClBn7B,cAAcx0H,KAAK4vJ,mBACnB5vJ,KAAK2vJ,iBAAmB,KACxB3vJ,KAAK4vJ,kBAAoB,IAC3B,EACAH,YAAa,WACXzvJ,KAAKswJ,cACLtwJ,KAAK2wJ,YAAW,GAChB3wJ,KAAK6vJ,aAAc,CACrB,GAEF1wJ,OAAQ,SAAgB2B,GACtB,IAAIuxG,EAASryG,KAETquJ,EAASruJ,KAAKquJ,OACdnrJ,EAAQlD,KAAKqnJ,WACbnV,EAASlyI,KAAKsuJ,eACdluC,EAAWpgH,KAAKuuJ,iBAChBp0C,EAAWn6G,KAAKm6G,SAChBtnF,EAAW7yB,KAAK6yB,SAChBw8H,EAAoBrvJ,KAAKqvJ,kBACzBE,GAAYvtE,GAAO9+E,GAEnB0tJ,EAAa,SAAoBH,EAASvrC,EAAO2rC,EAASC,EAAQxoC,EAAUD,EAAa0oC,GAC3F,IAAIhF,EAAQjrJ,EAAE+vJ,EAAS,CACrB/nJ,MAAO,CACL4jG,MAAO2F,EAAO0kC,SAAW,IAAM,MAEjCztI,MAAO,CACL,cAAe,UAGfkxF,EAAQ,CACVu8C,SAAU1kC,EAAO0kC,UAGft4H,EAAU,SAAiBirC,GACxB72B,GAAautF,IAChB/b,GAAU36C,EAAO,CACf+6C,aAAa,IAGf4N,EAAOs+C,YAAW,GAGlBlvD,GAAa/3C,EAAMirD,eAEnBtC,EAAOk+C,iBAAiB7mG,EAAO+mG,GAEnC,EAEA,OAAO3vJ,EAAE,SAAU,CACjBykG,YAAa,gCACb/7F,MAAO,CACL,QAAS2wG,GAEX7wG,MAAO,CACL8qG,SAAU,KACV9nG,KAAM,SACNumB,SAAUA,GAAYutF,GAAYiI,EAClC,gBAAiBx1F,GAAYutF,GAAYiI,EAAc,OAAS,KAChE,gBAAiBgmC,EACjB,aAAcnpC,GAAS,KACvB,oBAAqBoD,GAAY,MAEnCj4B,GAAI,CACFmhD,UAAW/yH,EACXuyI,WAAYvyI,GAEdlc,IAAKuuJ,GAAU,KACf3vI,IAAK2vI,GACJ,CAACz+C,EAAO/X,cAAcy2D,EAAUv2D,IAAUuxD,GAC/C,EAGIkF,EAAaL,EAAW5wJ,KAAKmwJ,OAAQnwJ,KAAK8tJ,eAAgBh/C,GAAW,MAAO,WAAW,EAAOzX,IAC9F65D,EAAaN,EAAW5wJ,KAAKowJ,SAAUpwJ,KAAK6tJ,eAAgBj/C,GAAW,MAAO,aAAa,EAAO1Y,IAClGolD,EAAUx6I,IAEVd,KAAK4E,OAASiuB,IAChByoH,EAAUx6I,EAAE,QAAS,CACnBwI,MAAO,CACLgD,KAAM,SACN1H,KAAM5E,KAAK4E,KACX6wI,KAAMz1I,KAAKy1I,MAAQ,KAEnBvyI,MAAOlD,KAAKivJ,cAEd1sJ,IAAK,YAIT,IAAI4uJ,EAAQrwJ,EACZ,SAAU,CACRykG,YAAa,cACb/7F,MAAO,CACL,SAAU2wG,EACV,qBAAsBA,EACtB,qBAAsBA,EACtB,aAAcA,EACd,gBAAiBA,EACjB,eAAgBA,EAChB,gBAAiBA,GAEnB7wG,MAAOtJ,KAAKsvJ,kBACZ/sJ,IAAK,SACL4e,IAAK,WACJ,CAACrgB,EAAE,MAAOyuJ,EAAWF,EAAkBnsJ,GAASlD,KAAKw6I,aAAe,MACvE,OAAO15I,EAAE,MAAO,CACdykG,YAAa,iCACb/7F,MAAO,CAAC,CACNqpB,SAAUA,EACVutF,SAAUA,EACV1e,MAAO1hG,KAAK+2I,SACZ,gBAAiB7E,GAAU/3B,EAC3B,UAAW+3B,IAAW/3B,EACtB,uBAAwBA,EACxB,cAAeA,GACdn6G,KAAKg2I,cAAeh2I,KAAKm2I,YAC5B7sI,MAAOtJ,KAAKm0G,cACZ9jB,GAAI,CACF8lB,QAASn2G,KAAKk7G,UACdk2C,MAAOpxJ,KAAKwwJ,QAEZ,SAAUxwJ,KAAKkwJ,YACf,QAASlwJ,KAAKkwJ,cAEf/1C,EAAW,CAAC82C,EAAY3V,EAAS6V,EAAOD,GAAc,CAACA,EAAY5V,EAAS6V,EAAOF,GACxF,IE3iBEI,GAAoC/rE,GAAc,CACpDP,WAAY,CACVqpE,gBAAiBA,GACjBkD,YAAalD,MCLjB,SAASjtJ,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAczM,IClBHk9B,GDkBOj3B,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAc,CAAC,EAAGi8B,IAAU,CAAC,EAAG,CAC9F5rF,SAAUkwE,GAASxO,IAAmB,GACtCg9D,SAAUxuD,GAASxO,IAAmB,GACtC0gB,KAAMlS,GAASxO,IAAmB,GAClCi9D,YAAazuD,GAASlO,GAAkB,cACxC9qF,IAAKg5F,GAASlO,GAAkB,QAChC5nF,MAAO81F,GAASlO,IAChB2S,QAASzE,GAASlO,GAAkB,gBACjC1L,IAGMsoE,GAAwBlsE,GAAO,CACxC3gF,KAAMukF,GACNhgF,OAAQ,CAACm1G,GAAS7jB,IAClB3xF,MAAOA,GACP4xF,QAAS,CACPg3D,SAAU,SAAkBhoG,GAC1B,IAAIp9C,EAAOo9C,EAAMp9C,KACb8pG,EAAU1sD,EAAM0sD,QAEfp2G,KAAK6yB,UAAsB,UAATvmB,IAA6B,YAATA,GAAsB8pG,IAAY5G,KAC3ExvG,KAAK8nG,MAAMlV,GAEf,GAEFzzF,OAAQ,SAAgB2B,GACtB,IAAImM,EAAQjN,KAAKiN,MACblD,EAAM/J,KAAK+J,IACXy9F,EAAUxnG,KAAKwnG,QACfyN,EAAOj1G,KAAKi1G,KACZpiF,EAAW7yB,KAAK6yB,SAChB8+H,EAAQ3xJ,KAAKw+G,SACbozC,EAAa5xJ,KAAKw+G,OAAO,cACzBqzC,EAAU/wJ,IAETd,KAAKuxJ,UAAa1+H,IACrBg/H,EAAU/wJ,EAAEukG,GAAc,CACxBE,YAAa,oBACbz8F,MAAO,CACLo8F,UAAWllG,KAAKwxJ,aAElBloJ,MAAO,CACL,gBAAiBqoJ,EACjB,mBAAoBC,EACpB,oBAAqB,UAEvBvhE,GAAI,CACFmV,MAAOxlG,KAAK0xJ,SACZv7C,QAASn2G,KAAK0xJ,aAKpB,IAAII,EAAOhxJ,EAAE,OAAQ,CACnBykG,YAAa,+CACbj8F,MAAO,CACLsvB,GAAIg5H,IAEL5xJ,KAAKs6F,iBAAmBrtF,GAC3B,OAAOnM,EAAEg4G,GAAQ,CACfvT,YAAa,uDACb/7F,MAAO,CACLqpB,SAAUA,GAEZ/pB,MAAO,CACLiB,IAAKA,EACLy9F,QAASA,EACTyN,KAAMA,GAER3rG,MAAO,CACLsvB,GAAI+4H,EACJ1kJ,MAAOA,GAAS,KAChB,kBAAmB2kJ,IAEpB,CAACE,EAAMD,GACZ,IC3FF,SAASjuJ,GAAmBC,GAAO,OAAOC,GAAmBD,IAAQE,GAAiBF,IAAQG,GAA4BH,IAAQI,IAAsB,CAExJ,SAASA,KAAuB,MAAM,IAAIe,UAAU,uIAAyI,CAE7L,SAAShB,GAA4BO,EAAGC,GAAU,GAAKD,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOH,GAAkBG,EAAGC,GAAS,IAAIC,EAAIlD,OAAO0B,UAAUyB,SAASrE,KAAKkE,GAAGI,MAAM,GAAI,GAAiE,MAAnD,WAANF,GAAkBF,EAAEvB,cAAayB,EAAIF,EAAEvB,YAAY4B,MAAgB,QAANH,GAAqB,QAANA,EAAoBP,MAAMI,KAAKC,GAAc,cAANE,GAAqB,2CAA2CI,KAAKJ,GAAWL,GAAkBG,EAAGC,QAAzG,CAA7O,CAA+V,CAE/Z,SAAST,GAAiBM,GAAQ,GAAsB,qBAAXvB,QAAmD,MAAzBuB,EAAKvB,OAAOC,WAA2C,MAAtBsB,EAAK,cAAuB,OAAOH,MAAMI,KAAKD,EAAO,CAE7J,SAASP,GAAmBD,GAAO,GAAIK,MAAMC,QAAQN,GAAM,OAAOO,GAAkBP,EAAM,CAE1F,SAASO,GAAkBP,EAAKiB,IAAkB,MAAPA,GAAeA,EAAMjB,EAAIzB,UAAQ0C,EAAMjB,EAAIzB,QAAQ,IAAK,IAAIF,EAAI,EAAG6C,EAAO,IAAIb,MAAMY,GAAM5C,EAAI4C,EAAK5C,IAAO6C,EAAK7C,GAAK2B,EAAI3B,GAAM,OAAO6C,CAAM,CAEtL,SAAS5D,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAiChN,IAAIikG,GAAkBjD,GAAe,QAAS,CAC5Cv3F,KAAMgoF,GACNn6D,aAAc,KAEZ4sE,GAAaD,GAAgB5C,MAC7B8C,GAAaF,GAAgBh+F,MAC7Bm+F,GAAkBH,GAAgBz+F,KAClC6+F,GAAmBJ,GAAgBp9C,MAGnCkqF,GAAQ,CAAC,OAAQ,QAAS,MAAO,MAAO,UAExCme,GAA+B,CAAC,cAAe,SAAU,QAAS,UAAUxrJ,KAAK,KAIjFyrJ,GAAoB,SAA2B12D,GACjD,OAAOQ,GAAaR,GAAK50F,QAAQq3E,EAAW,MAC9C,EAGIk0E,GAAY,SAAmBx+F,GACjC,OAAOxyD,GAAOwyD,GAAM1rD,KAAI,SAAUgC,GAChC,OAAO9B,GAAKvD,GAASqF,GACvB,IAAGrI,QAAO,SAAUqI,EAAKkqC,EAAOpwC,GAC9B,OAAOkG,EAAI3H,OAAS,GAAKyB,EAAIL,QAAQuG,KAASkqC,CAChD,GACF,EAGIi+G,GAAoB,SAA2BxoG,GACjD,OAAOh5C,GAASg5C,GAASA,EAAQy4B,GAAQz4B,IAASA,EAAMznD,OAAOiB,OAAc,EAC/E,EAGIivJ,GAAiB,WACnB,MAAO,CACL1T,IAAK,GACLx5E,MAAO,GACPk2E,QAAS,GACTiX,UAAW,GAEf,EAGItpJ,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAc,CAAC,EAAGi8B,IAAUzX,IAAasrC,IAAmBgE,IAAgBC,IAAiB,CAAC,EAAG,CAChN8b,cAAetvD,GAASlO,GAAkB,OAC1Cy9D,iBAAkBvvD,GAASlO,GAAkB,qBAG7C09D,YAAaxvD,GAASxO,IAAmB,GACzCi+D,iBAAkBzvD,GAASlO,GAAkB,oBAC7CwvD,iBAAkBthD,GAASlO,GAAkB,aAG7C49D,yBAA0B1vD,GAAS9N,GAAwB88D,IAE3DW,WAAY3vD,GAASpO,GAAkB,CAAC,GACxCk4D,WAAY9pD,GAAS/N,IACrB29D,QAAS5vD,GAASlO,IAClB+9D,UAAW7vD,GAASlO,GAAkB,QAAQ,SAAU3xF,GACtD,OAAOy2F,GAAci6C,GAAO1wI,EAC9B,IACA2vJ,eAAgB9vD,GAASlO,GAAkB,kBAC3C10E,MAAO4iF,GAASrO,IAChBo+D,cAAe/vD,GAASlO,GAAkB,qBAE1Ck+D,aAAchwD,GAASxO,IAAmB,GAE1Cy+D,aAAcjwD,GAASxO,IAAmB,GAC1C0+D,YAAalwD,GAASxO,IAAmB,GACzCimD,YAAaz3C,GAASlO,GAAkB,cAGxCq+D,eAAgBnwD,GAASxO,IAAmB,GAE5CluF,UAAW08F,GAAS9N,IACpBk+D,SAAUpwD,GAAS/N,IACnBo+D,SAAUrwD,GAASxO,IAAmB,GACtC8+D,eAAgBtwD,GAASlO,GAAkB,cAC3Cy+D,gBAAiBvwD,GAASlO,GAAkB,eAC5C0+D,aAAcxwD,GAAStO,IACvB++D,WAAYzwD,GAASlO,GAAkB,gBACpCzL,IAGMqqE,GAAyBluE,GAAO,CACzC3gF,KAAMwkF,GACNjgF,OAAQ,CAAC4pG,GAAgBuL,GAASvX,GAAY2uC,GAAkBK,GAAeE,GAAgBx7C,IAC/F3xF,MAAOA,GACPE,KAAM,WACJ,MAAO,CACL+tI,UAAU,EACV2c,OAAQ,GACRjgG,KAAM,GAENkgG,YAAa,GAEbC,UAAWzB,KACX0B,WAAY,KAEhB,EACAlqD,SAAU,CACRmqD,gBAAiB,WACf,OAAO9zJ,KAAK2yJ,SAAW3yJ,KAAKw+G,OAAO,YACrC,EACAu1C,kBAAmB,WAEjB,OAAOp6D,GAAci6C,GAAO5zI,KAAK4yJ,WAAa5yJ,KAAK4yJ,UAAY,MACjE,EACAoB,mBAAoB,WAClB,IAAInhI,EAAW7yB,KAAK6yB,SAChB4iH,EAAOz1I,KAAKy1I,KAChB,OAAOjzD,GAAcA,GAAc,CAAC,EAAGxiF,KAAK0yJ,YAAa,CAAC,EAAG,CAE3D95H,GAAI54B,KAAK8zJ,gBACT5wJ,MAAOlD,KAAK0zJ,OACZ7gI,SAAUA,EACV4iH,KAAMA,GAEV,EACAwe,sBAAuB,WACrB,OAAOzxE,GAAcA,GAAc,CAAC,EAAGM,GAAK9iF,KAAK6yG,YAAa,CAACnhB,GAAoBC,MAAwB,CAAC,EAAG,CAC7GiQ,KAAM5hG,KAAKk0J,YACXhc,OAAQl4I,KAAKm0J,cACbzyD,MAAO1hG,KAAKo0J,aACZluH,MAAOlmC,KAAKq0J,aACZl+C,QAASn2G,KAAKs0J,eACd3+G,MAAO31C,KAAK21C,OAEhB,EACA4+G,kBAAmB,WAEjB,OAAOtzJ,GAAOjB,KAAKqG,WAAW3E,OAAOgP,IAAUhP,OAAOyhF,IAAU58E,KAAK,GACvE,EACAiuJ,wBAAyB,WAKvB,IAAInuJ,EAAYrG,KAAKu0J,kBACrB,OAAOluJ,EAAY,IAAIgiE,OAAO,IAAIpnE,OAAO+wJ,GAAkB3rJ,GAAY,OAAS,IAClF,EACAouJ,eAAgB,WAMd,IAAIC,EAAS10J,KAAKu0J,kBAAkBl8H,OAAO,GAC3C,MAAkB,MAAXq8H,EAAiB,GAAGzzJ,OAAOyzJ,EAAQ,KAAOA,CACnD,EACAC,gCAAiC,WAE/B,OAAO1zJ,GAAOjB,KAAKyyJ,0BAA0B/wJ,OAAOyhF,IAAU58E,KAAK,KAAK0B,MAC1E,EACA2sJ,iBAAkB,WAChB,IAAIp4I,EAAQxc,KAKR0zJ,EAASzrJ,GAAKjI,KAAK0zJ,QACvB,MAAkB,KAAXA,IAAkB1zJ,KAAK60J,UAAUnB,GAAQnvE,MAAK,SAAUt9D,GAC7D,OAAQ0yE,GAAcn9E,EAAMi3C,KAAMxsC,IAAMzK,EAAMs4I,YAAY7tI,EAC5D,GACF,EACA8tI,cAAe,WACb,OAAO/0J,KAAK4zJ,UAAUxB,SACxB,EACA4C,iBAAkB,WAChB,OAAOh1J,KAAK+0J,cAAc3yJ,OAAS,CACrC,EACA6yJ,YAAa,WACX,OAAOj1J,KAAK4zJ,UAAUzY,OACxB,EACA+Z,eAAgB,WACd,OAAOl1J,KAAKi1J,YAAY7yJ,OAAS,CACnC,EACA+yJ,eAAgB,WACd,IAAIh1I,EAAQngB,KAAKmgB,MACjB,OAAOrP,GAASqP,IAAUA,GAAS,GAAKngB,KAAKyzD,KAAKrxD,QAAU+d,CAC9D,GAEFynF,OAAQ7nE,GAAS,CAAC,EAAGv9B,GAAgBu9B,GAAQknE,IAAiB,SAAU90F,GACtEnS,KAAKyzD,KAAOw+F,GAAU9/I,EACxB,IAAI3P,GAAgBu9B,GAAQ,QAAQ,SAAc5tB,EAAU4+F,GAErDT,GAAWn+F,EAAUnS,KAAKinG,MAC7BjnG,KAAK8nG,MAAMZ,GAAkB/0F,GAG1Bm+F,GAAWn+F,EAAU4+F,KACxB5+F,EAAWlR,GAAOkR,GAAUzQ,OAAOyhF,IACnC4tB,EAAW9vG,GAAO8vG,GAAUrvG,OAAOyhF,IACnCnjF,KAAK2zJ,YAAc5iD,EAASrvG,QAAO,SAAU4jH,GAC3C,OAAQ3rB,GAAcxnF,EAAUmzG,EAClC,IAEJ,IAAI9iH,GAAgBu9B,GAAQ,aAAa,SAAmB5tB,EAAU4+F,GAE/DT,GAAWn+F,EAAU4+F,IACxB/wG,KAAK8nG,MAAMpU,GAAsBvhF,EAAS8yD,MAAO9yD,EAASgpI,QAAShpI,EAASigJ,UAEhF,IAAIryH,IACJ8uD,QAAS,WAGP7uF,KAAKyzD,KAAOw+F,GAAUjyJ,KAAKinG,IAC7B,EACA0T,QAAS,WAEP,IAAIomC,EAAQvkD,GAAQ,OAAQx8F,KAAK60G,KAE7BksC,GACFhvG,GAAQgvG,EAAO,QAAS/gJ,KAAK21C,MAAOw+C,GAExC,EACA+T,cAAe,WACb,IAAI64C,EAAQvkD,GAAQ,OAAQx8F,KAAK60G,KAE7BksC,GACF7uG,GAAS6uG,EAAO,QAAS/gJ,KAAK21C,MAAOw+C,GAEzC,EACAuG,QAAS,CACP06D,OAAQ,SAAgB1B,GAItB,GAHAA,EAAShjJ,GAASgjJ,GAAUA,EAAS1zJ,KAAK0zJ,QAGtC1zJ,KAAK6yB,UAA6B,KAAjB5qB,GAAKyrJ,KAAkB1zJ,KAAKm1J,eAAjD,CAKA,IAAIpqD,EAAS/qG,KAAKq1J,UAAU3B,GAG5B,GAAI3oD,EAAO9lC,MAAM7iE,OAAS,GAA2B,IAAtB2oG,EAAO0zC,IAAIr8I,OAIxC,GAAI2qC,GAAQ/sC,KAAKs1J,WAAY,UAG3Bt1J,KAAK0zJ,OAAS,OACT,CACL,IAAI6B,EAAuB,GAAGt0J,OAAO2C,GAAmBmnG,EAAOowC,SAAUv3I,GAAmBmnG,EAAOqnD,YACnGpyJ,KAAK0zJ,OAAS3oD,EAAO0zC,IAAI/8I,QAAO,SAAUqI,GACxC,OAAO4vF,GAAc47D,EAAsBxrJ,EAC7C,IAAGxD,KAAKvG,KAAKy0J,gBAAgBxzJ,OAAOs0J,EAAqBnzJ,OAAS,EAAIpC,KAAKy0J,eAAep8H,OAAO,GAAK,GACxG,CAGE0yE,EAAO9lC,MAAM7iE,OAAS,IAKxBpC,KAAKyzD,KAAOxyD,GAAOjB,KAAKyzD,KAAMs3C,EAAO9lC,QAGvCjlE,KAAK4zJ,UAAY7oD,EAGjB/qG,KAAK0hG,OAhCL,CAiCF,EACA8zD,UAAW,SAAmBzrJ,GAExB/J,KAAK6yB,WAQT7yB,KAAKyzD,KAAOzzD,KAAKyzD,KAAK/xD,QAAO,SAAUulB,GACrC,OAAOA,IAAMld,CACf,IACF,EACA4rC,MAAO,WACL,IAAI08D,EAASryG,KAEbA,KAAK0zJ,OAAS,GACd1zJ,KAAKyzD,KAAO,GACZzzD,KAAKgoG,WAAU,WACbqK,EAAOshD,YAAc,GACrBthD,EAAOuhD,UAAYzB,IACrB,GACF,EAEAkC,aAAc,SAAsB3qG,GAElC,KAAI1pD,KAAK6yB,UAAYsvD,GAAQz4B,IAAUA,EAAMznD,OAAOomJ,WAApD,CAMA,IAAIqL,EAASxB,GAAkBxoG,GAC3B+rG,EAAcz1J,KAAKw0J,wBAEnBx0J,KAAK0zJ,SAAWA,IAClB1zJ,KAAK0zJ,OAASA,GAIhBA,EAAS13D,GAAS03D,GAEd+B,GAAeA,EAAY5wJ,KAAK6uJ,EAAO/uJ,OAAO,IAGhD3E,KAAKo1J,SAGLp1J,KAAK4zJ,UAAuB,KAAXF,EAAgBvB,KAAmBnyJ,KAAKq1J,UAAU3B,EAlBrE,CAoBF,EACAS,cAAe,SAAuBzqG,GAGpC,IAAK1pD,KAAK6yB,UAAY7yB,KAAKuyJ,YAAa,CACtC,IAAImB,EAASxB,GAAkBxoG,GAG3B1pD,KAAK0zJ,SAAWA,IAClB1zJ,KAAK0zJ,OAASA,GAGhB1zJ,KAAKo1J,QACP,CACF,EACAd,eAAgB,SAAwB5qG,GAItC,IAAI1pD,KAAK6yB,UAAasvD,GAAQz4B,GAA9B,CAIA,IAAI0sD,EAAU1sD,EAAM0sD,QAChBlzG,EAAQwmD,EAAMznD,OAAOiB,OAAS,GAG7BlD,KAAK+yJ,cAAgB38C,IAAYzG,IAM3B3vG,KAAKkzJ,gBAAmB98C,IAAY7G,IAAkB6G,IAAY5G,IAA0B,KAAVtsG,IAE3FmhG,GAAU36C,EAAO,CACf+6C,aAAa,IAEfzkG,KAAKyzD,KAAOzzD,KAAKyzD,KAAK9uD,MAAM,GAAI,KAThC0/F,GAAU36C,EAAO,CACf+6C,aAAa,IAEfzkG,KAAKo1J,SAXP,CAmBF,EAEA9gD,QAAS,SAAiB5qD,GACxB,IAAIg8D,EAAS1lH,KAET01J,EAAsB11J,KAAK20J,gCAE1Be,GAAwBl5D,GAAQk5D,EAAqBhsG,EAAMznD,QAAQ,IACtEjC,KAAKgoG,WAAU,WACb0d,EAAOhkB,OACT,GAEJ,EACA0yD,aAAc,SAAsB1qG,GAClC,IAAIq8D,EAAS/lH,KAEW,QAApBA,KAAK6zJ,aACP7zJ,KAAK6zJ,WAAa,KAClB7zJ,KAAKgoG,WAAU,WACbjL,IAAU,WACJgpB,EAAOgxB,WACThxB,EAAOje,MAAMrW,GAAkB/nC,GAE/Bq8D,EAAO8tC,WAAa,KAExB,GACF,IAEJ,EACAK,YAAa,SAAqBxqG,GAChC,IAAIu8D,EAASjmH,KAEW,OAApBA,KAAK6zJ,aACP7zJ,KAAK6zJ,WAAa,MAClB7zJ,KAAKgoG,WAAU,WACbjL,IAAU,WACHkpB,EAAO8wB,WACV9wB,EAAOne,MAAMtX,GAAiB9mC,GAE9Bu8D,EAAO4tC,WAAa,KAExB,GACF,IAEJ,EACA74C,UAAW,SAAmBtxD,GAC5B1pD,KAAK+2I,UAAW,EAChB/2I,KAAK8nG,MAAMpW,GAAoBhoC,EACjC,EACAisG,WAAY,SAAoBjsG,GAC9B1pD,KAAK+2I,UAAW,EAChB/2I,KAAK8nG,MAAMnW,GAAqBjoC,EAClC,EACAisF,gBAAiB,WACf,IAAIxuB,EAASnnH,KAEbA,KAAKgoG,WAAU,WACbjL,IAAU,WACJoqB,EAAOquB,WACTruB,EAAOzlB,OAEX,GACF,GACF,EAEAA,MAAO,WACA1hG,KAAK6yB,UACR4uE,GAAazhG,KAAKs1J,WAEtB,EACA1zD,KAAM,WACC5hG,KAAK6yB,UACR8uE,GAAY3hG,KAAKs1J,WAErB,EAEAT,UAAW,SAAmBnB,GAE5BA,EAAShvJ,GAASgvJ,GAClB,IAAI+B,EAAcz1J,KAAKw0J,wBAIvB,OAAQiB,EAAc/B,EAAOptJ,MAAMmvJ,GAAe,CAAC/B,IAAS3rJ,IAAIE,IAAMvG,OAAOyhF,GAC/E,EACAkyE,UAAW,SAAmB3B,GAC5B,IAAIkC,EAAS51J,KAKTyzD,EAAOzzD,KAAK60J,UAAUnB,GAEtB3oD,EAAS,CACX0zC,IAAKhrF,EACLwR,MAAO,GACPk2E,QAAS,GACTiX,UAAW,IAmBb,OAhBA3+F,EAAKnxD,SAAQ,SAAUyH,GACjB4vF,GAAci8D,EAAOniG,KAAM1pD,IAAQ4vF,GAAcoR,EAAO9lC,MAAOl7D,GAE5D4vF,GAAcoR,EAAOqnD,UAAWroJ,IACnCghG,EAAOqnD,UAAUtwJ,KAAKiI,GAEf6rJ,EAAOd,YAAY/qJ,GAE5BghG,EAAO9lC,MAAMnjE,KAAKiI,GAGb4vF,GAAcoR,EAAOowC,QAASpxI,IACjCghG,EAAOowC,QAAQr5I,KAAKiI,EAG1B,IACOghG,CACT,EACA+pD,YAAa,SAAqB/qJ,GAChC,IAAIwpJ,EAAevzJ,KAAKuzJ,aACxB,OAAO3vD,GAAgB2vD,IAAgBA,EAAaxpJ,EACtD,EACAurJ,SAAU,WAGR,OAAOx2D,GAAO,IAAI79F,OAAO6hJ,GAAU9iJ,KAAK8zJ,kBAAmB9zJ,KAAK60G,IAClE,EAEAghD,cAAe,SAAuB11H,GACpC,IAAIkyH,EAAgBlyH,EAAKkyH,cACrBC,EAAmBnyH,EAAKmyH,iBACxB8C,EAASj1H,EAAKi1H,OACdR,EAAmBz0H,EAAKy0H,iBACxB/hI,EAAWsN,EAAKtN,SAChB2/H,EAAmBryH,EAAKqyH,iBACxBE,EAAavyH,EAAKuyH,WAClB7F,EAAa1sH,EAAK0sH,WAClBiJ,EAAgB31H,EAAK21H,cACrBlD,EAAYzyH,EAAKyyH,UACjBC,EAAiB1yH,EAAK0yH,eACtBkD,EAAc51H,EAAK41H,YACnBC,EAAY71H,EAAK61H,UACjBb,EAAiBh1H,EAAKg1H,eACtBrC,EAAgB3yH,EAAK2yH,cACrBG,EAAc9yH,EAAK8yH,YACnBzY,EAAcr6G,EAAKq6G,YACnBgb,EAAYr1H,EAAKq1H,UACjBrC,EAAWhzH,EAAKgzH,SAChBC,EAAWjzH,EAAKizH,SAChBC,EAAiBlzH,EAAKkzH,eACtBG,EAAarzH,EAAKqzH,WAClB//F,EAAOtzB,EAAKszB,KACZ3yD,EAAId,KAAK09I,eAETuY,EAAQxiG,EAAK1rD,KAAI,SAAUgC,GAE7B,OADAA,EAAMrF,GAASqF,GACRjJ,EAAE2wJ,GAAU,CACjBjoJ,MAAO2pJ,EAGPrqJ,MAAO,CACL+pB,SAAUA,EACV0+H,SAAU0B,EACVh+C,KAAMm+C,EACN5B,YAAa6B,EACbtpJ,IAAK,KACLkD,MAAOlD,EACPy9F,QAASgsD,GAEXnjE,GAAI,CACF5iC,OAAQ,WACN,OAAO+nG,EAAUzrJ,EACnB,GAEFxH,IAAK,QAAQtB,OAAO8I,IACnBA,EACL,IAEIg8I,EAAoB8M,GAAkBmD,EAAYh2J,KAAKw+G,OAAO,wBAA0B,KACxF03C,EAAsB1D,GAAoBuD,EAAc/1J,KAAKw+G,OAAO,0BAA4B,KAChG23C,EAAkBrD,GAAiBqC,EAAiBn1J,KAAKw+G,OAAO,sBAAwB,KAExFm0B,EAAkB,CAAC+f,EAAW,oBAAqB3M,EAAmBmQ,EAAqBC,GAAiBz0J,OAAOyhF,IAAU58E,KAAK,KAElI0xI,EAASn3I,EAAE,QAAS,CACtBykG,YAAa,sEACb/7F,MAAOqjJ,EACP/kJ,MAAO,CACLsuJ,QAAS,EACTC,SAAU,QAEZ/sJ,MAAOk5E,GAAcA,GAAc,CAAC,EAAGkwE,GAAa,CAAC,EAAG,CACtD,mBAAoB/f,GAAmB,KACvCrmI,KAAMsmJ,EACNpY,YAAaA,GAAe,OAE9B/0C,SAAU,CACRviG,MAAOwvJ,EAAWxvJ,OAEpBmtF,GAAIylE,EAEJ9wE,WAAY,CAAC,CACXpgF,KAAM,QACN1B,MAAOwvJ,EAAWxvJ,QAEpBie,IAAK,UAGHi3H,EAAUt3I,EAAEo1G,GAAS,CACvB3Q,YAAa,0BACb/7F,MAAO,CAKL8sJ,UAAW1B,GAEb9sJ,MAAO,CACLylG,SAAU,OAEZzkG,MAAO,CACL+pB,SAAU+hI,GAAoBO,EAC9B3tD,QAAS8qD,GAEXjiE,GAAI,CACFmV,MAAO,WACL,OAAO4vD,GACT,GAEFj0I,IAAK,UACJ,CAACnhB,KAAKs6F,cAAc3E,KAA8B08D,IAMjDkE,EAAYv2J,KAAKw+G,OAAO,gBACxBg4C,EAAS11J,EAAE,KAAM,CACnBykG,YAAa,gCACbj8F,MAAO,CACLg/F,KAAM,OACN,YAAa,MACb,gBAAiBiuD,GAEnBh0J,IAAK,cACJ,CAACzB,EAAE,MAAO,CACXykG,YAAa,SACbj8F,MAAO,CACLg/F,KAAM,UAEP,CAAC2vC,EAAQG,MAERqe,EAAM31J,EAAE,KAAM,CAChBykG,YAAa,0EACbj8F,MAAO,CACLsvB,GAAI29H,GAENh0J,IAAK,aACJ,CAAC0zJ,EAAOO,IAEPE,EAAY51J,IAEhB,GAAI+xJ,GAAkBL,GAAoBM,EAAe,CAGvD,IAAIje,EAAW70I,KAAKqkJ,iBAChBqQ,EAAS10J,KAAKy0J,eAEdkC,EAAW71J,IAEXilJ,IACF4Q,EAAW71J,EAAEk0I,GAAsB,CACjClsI,MAAO,CACL8vB,GAAImtH,EACJlR,SAAUA,EACVC,WAAW,GAEbvyI,IAAK,yBACJ,CAACvC,KAAK6yJ,eAAgB,KAAM7yJ,KAAKi1J,YAAY1uJ,KAAKmuJ,MAIvD,IAAIkC,EAAa91J,IAEbo1J,IACFU,EAAa91J,EAAE8zI,GAAW,CACxB9rI,MAAO,CACL8vB,GAAIs9H,EACJrhB,SAAUA,GAEZtyI,IAAK,2BACJ,CAACvC,KAAKwyJ,iBAAkB,KAAMxyJ,KAAK+0J,cAAcxuJ,KAAKmuJ,MAI3D,IAAImC,EAAS/1J,IAETq1J,IACFU,EAAS/1J,EAAE8zI,GAAW,CACpB9rI,MAAO,CACL8vB,GAAIu9H,EACJthB,SAAUA,GAEZtyI,IAAK,uBACJ,CAACuwJ,KAGN4D,EAAY51J,EAAE,MAAO,CACnBwI,MAAO,CACL,YAAa,SACb,cAAe,QAEjB/G,IAAK,iBACJ,CAACo0J,EAAUC,EAAYC,GAC5B,CAGA,MAAO,CAACJ,EAAKC,EACf,GAEFv3J,OAAQ,SAAgB2B,GACtB,IAAI8D,EAAO5E,KAAK4E,KACZiuB,EAAW7yB,KAAK6yB,SAChBlmB,EAAW3M,KAAK2M,SAChB8oI,EAAOz1I,KAAKy1I,KACZhiF,EAAOzzD,KAAKyzD,KACZqgG,EAAkB9zJ,KAAK8zJ,gBACvB/c,EAAW/2I,KAAK+2I,SAChBic,EAAehzJ,KAAKgzJ,aAEpBx4D,EAAQhY,GAAc,CAExB/uB,KAAMA,EAAK9uD,QAEX+tJ,WAAY1yJ,KAAKg0J,mBAEjBpB,UAAW5yJ,KAAK+zJ,kBAEhB+B,cAAe91J,KAAKi0J,sBAEpBuB,UAAWx1J,KAAKw1J,UAChBJ,OAAQp1J,KAAKo1J,OACbz/G,MAAO31C,KAAK21C,MAEZg9G,QAASmB,EAETkC,UAAWh2J,KAAKk1J,eAChBD,YAAaj1J,KAAKi1J,YAAYtwJ,QAC9BoxJ,YAAa/1J,KAAKg1J,iBAClBD,cAAe/0J,KAAK+0J,cAAcpwJ,QAClCwwJ,eAAgBn1J,KAAKm1J,eAErBP,iBAAkB50J,KAAK40J,kBACtB/xE,GAAK7iF,KAAKuwH,OAAQ,CAAC,gBAAiB,mBAAoB,WAAY,mBAAoB,OAAQ,aAAc,iBAAkB,QAAS,gBAAiB,cAAe,cAAe,WAAY,YAAa,OAAQ,QAAS,WAAY,WAAY,iBAAkB,gBAG3QrmB,EAAWlqG,KAAKs6F,cAAcnE,GAAmBqE,IAAUx6F,KAAK61J,cAAcr7D,GAE9Es8D,EAAUh2J,EAAE,SAAU,CACxBykG,YAAa,UACbj8F,MAAO,CACLsvB,GAAI54B,KAAKw+G,OAAO,qBAChBlW,KAAM,SACNkf,IAAKssC,EACL,YAAa/c,EAAW,SAAW,MACnC,cAAe,OACf,gBAAiB,mBAElB/2I,KAAKyzD,KAAKltD,KAAK,OAEdwwJ,EAAWj2J,EAAE,MAAO,CACtBykG,YAAa,UACbj8F,MAAO,CACLsvB,GAAI54B,KAAKw+G,OAAO,oBAChBlW,KAAM,SACN,YAAayuC,EAAW,YAAc,MACtC,cAAe,SAEhB/2I,KAAK2zJ,YAAYvxJ,OAAS,EAAI,IAAInB,OAAOjB,KAAKszJ,gBAAiB,MAAMryJ,OAAOjB,KAAK2zJ,YAAYptJ,KAAK,OAAS,IAE1G+0I,EAAUx6I,IAEd,GAAI8D,IAASiuB,EAAU,CAIrB,IAAImkI,EAAUvjG,EAAKrxD,OAAS,EAC5Bk5I,GAAW0b,EAAUvjG,EAAO,CAAC,KAAK1rD,KAAI,SAAUgC,GAC9C,OAAOjJ,EAAE,QAAS,CAChB0I,MAAO,CACL,WAAYwtJ,GAEd1tJ,MAAO,CACLgD,KAAM0qJ,EAAU,SAAW,OAC3B9zJ,MAAO6G,EACP4C,SAAUA,EACV/H,KAAMA,EACN6wI,KAAMA,GAERlzI,IAAK,aAAatB,OAAO8I,IAE7B,GACF,CAGA,OAAOjJ,EAAE,MAAO,CACdykG,YAAa,kCACb/7F,MAAO,CAAC,CACNk4F,MAAOq1C,IAAaic,IAAiBngI,EACrCA,SAAUA,GACT7yB,KAAKg2I,cAAeh2I,KAAKm2I,YAC5B7sI,MAAO,CACLsvB,GAAI54B,KAAKw+G,SACTlW,KAAM,QACN8L,SAAUvhF,GAAYmgI,EAAe,KAAO,KAC5C,mBAAoBhzJ,KAAKw+G,OAAO,sBAElCnuB,GAAI,CACFmV,MAAOxlG,KAAKs0G,QACZ+B,QAASr2G,KAAKg7G,UACd1E,SAAUt2G,KAAK21J,aAEhB,CAACmB,EAASC,EAAU7sD,EAAUoxC,GACnC,IC7zBE2b,GAA8B3xE,GAAc,CAC9CP,WAAY,CACV0uE,UAAWA,GACXyD,MAAOzD,GACPhC,SAAUA,GACV0F,KAAM1F,MCRV,SAAStwJ,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAsBzM,IC1BHk9B,GD0BOj3B,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAc,CAAC,EAAGi8B,IAAU6zB,IAAmBgE,IAAgBC,IAAiBuS,IAAgB,CAAC,EAAG,CAC1NsO,QAASr0D,GAASxN,IAElB8hE,aAAct0D,GAASxO,IAAmB,GAE1C+iE,SAAUv0D,GAASxO,IAAmB,GACtCgjE,KAAMx0D,GAASxN,GAAyB,GAGxC44D,KAAMprD,GAASlO,GAAkB,WAC9BvL,IAGMkuE,GAA6BjyE,GAAO,CAC7C3gF,KAAM0kF,GACNtE,WAAY,CACV,YAAaqqC,IAGflmH,OAAQ,CAAC4pG,GAAgBuL,GAASxM,GAAmB4jC,GAAkBK,GAAeE,GAAgBmR,GAAeZ,GAAoB+B,IACzIz/I,MAAOA,GACPE,KAAM,WACJ,MAAO,CACLyuJ,WAAY,KAEhB,EACA9tD,SAAU,CACRr9F,KAAM,WACJ,OAAO,IACT,EACAmzH,cAAe,WACb,IAAIL,EAAS,CAGXs4B,QAAS13J,KAAK23J,cAAgB33J,KAAKs3J,SAAW,OAAS,MAYzD,OATKt3J,KAAK23J,eAGRv4B,EAAOlhC,OAASl+F,KAAKy3J,WAGrBr4B,EAAOpC,UAAY,UAGdoC,CACT,EACAw4B,gBAAiB,WAIf,OAAO1hJ,GAAQ4kF,GAAU96F,KAAKu3J,KAAM,GAAI,EAC1C,EACAM,gBAAiB,WACf,OAAO3hJ,GAAQlW,KAAK43J,gBAAiB98D,GAAU96F,KAAKo3J,QAAS,GAC/D,EACAO,aAAc,WAGZ,OAAO33J,KAAK43J,kBAAoB53J,KAAK63J,gBAAkB73J,KAAK43J,gBAAkB,IAChF,EACAzjD,cAAe,WACb,IAAIthF,EAAW7yB,KAAK6yB,SAChBlmB,EAAW3M,KAAK2M,SACpB,MAAO,CACLisB,GAAI54B,KAAKw+G,SACT55G,KAAM5E,KAAK4E,MAAQ,KACnB6wI,KAAMz1I,KAAKy1I,MAAQ,KACnB5iH,SAAUA,EACV2nH,YAAax6I,KAAKw6I,aAAe,KACjC7tI,SAAUA,EACVspG,aAAcj2G,KAAKi2G,cAAgB,KACnCmK,SAAUpgH,KAAKogH,UAAYpgH,KAAKmnJ,UAChCoQ,KAAMv3J,KAAK23J,aACXxJ,KAAMnuJ,KAAKmuJ,MAAQ,KACnB,gBAAiBnuJ,KAAK2M,SAAW,OAAS,KAC1C,eAAgB3M,KAAKo2I,oBAEzB,EACA/hC,kBAAmB,WACjB,OAAO7xB,GAAcA,GAAc,CAAC,EAAGxiF,KAAK6yG,aAAc,CAAC,EAAG,CAC5D3sE,MAAOlmC,KAAKi9I,QACZ/E,OAAQl4I,KAAK4hJ,SACbhgD,KAAM5hG,KAAKsoJ,QAEf,GAEF1gD,MAAO,CACLy/C,WAAY,WACVrnJ,KAAK83J,WACP,GAEFn9C,QAAS,WACP36G,KAAK83J,WACP,EACAp9D,QAAS,CAIPq9D,gBAAiB,SAAyB5pC,GACpCA,GAGFnuH,KAAKgoG,UAAUhoG,KAAK83J,UAExB,EACAA,UAAW,WACT,IAAIt7I,EAAQxc,KAEZA,KAAKgoG,WAAU,WACbjL,IAAU,WACRvgF,EAAMi7I,WAAaj7I,EAAMw7I,eAC3B,GACF,GACF,EAGAA,cAAe,WACb,GAAIh4J,KAAKi4J,YAAcj2E,GAAOhiF,KAAK23J,cACjC,OAAO,KAGT,IAAI3oE,EAAKhvF,KAAK60G,IAGd,IAAKhX,GAAU7O,GACb,OAAO,KAIT,IAAIywC,EAAgBx/B,GAAMjR,GAEtBkpE,EAAaj9D,GAAQwkC,EAAcy4B,WAAY,GAE/ChtJ,EAAS+vF,GAAQwkC,EAAcv+B,eAAgB,GAAKjG,GAAQwkC,EAAc04B,kBAAmB,GAC7FvuD,EAAU3O,GAAQwkC,EAAc24B,WAAY,GAAKn9D,GAAQwkC,EAAcx1B,cAAe,GAEtF5J,EAASn1F,EAAS0+F,EAElByuD,EAAYH,EAAal4J,KAAK43J,gBAAkBv3D,EAEhDi4D,EAAYv6D,GAAS/O,EAAI,WAAaywC,EAAcvhC,OAExD4B,GAAS9Q,EAAI,SAAU,QACvB,IAAI6oC,EAAe7oC,EAAG6oC,aAGtB/3B,GAAS9Q,EAAI,SAAUspE,GAEvB,IAAIC,EAAcriJ,IAAS2hH,EAAejuB,GAAWsuD,EAAY,GAE7DX,EAAO/uD,GAAQtyF,GAAQqiJ,EAAav4J,KAAK43J,iBAAkB53J,KAAK63J,iBAEhE35D,EAAShoF,GAAQwyF,GAAS6uD,EAAOW,EAAa73D,GAASg4D,GAG3D,OAAIr4J,KAAKq3J,cAAgBp8D,GAAQq9D,EAAW,GAAKp6D,EACxCo6D,EAIF,GAAGr3J,OAAOi9F,EAAQ,KAC3B,GAEF/+F,OAAQ,SAAgB2B,GACtB,OAAOA,EAAE,WAAY,CACnB0I,MAAOxJ,KAAKwnJ,cACZ1/I,MAAO9H,KAAKy/H,cACZz6C,WAAY,CAAC,CACXpgF,KAAM,YACN1B,MAAOlD,KAAK+3J,gBAEZ/oC,UAAW,CACT,KAAO,KAGX1lH,MAAOtJ,KAAKm0G,cACZ1O,SAAU,CACRviG,MAAOlD,KAAKqnJ,YAEdh3D,GAAIrwF,KAAKq0G,kBACTlzF,IAAK,SAET,IEhNEq3I,GAAkClzE,GAAc,CAClDP,WAAY,CACVyyE,cAAeA,GACfiB,UAAWjB,MDHf,SAASr2J,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAEhN,SAASkmG,GAAellG,EAAK3B,GAAK,OAAO8mG,GAAgBnlG,IAAQolG,GAAsBplG,EAAK3B,IAAM8B,GAA4BH,EAAK3B,IAAMgnG,IAAoB,CAE7J,SAASA,KAAqB,MAAM,IAAIlkG,UAAU,4IAA8I,CAEhM,SAAShB,GAA4BO,EAAGC,GAAU,GAAKD,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOH,GAAkBG,EAAGC,GAAS,IAAIC,EAAIlD,OAAO0B,UAAUyB,SAASrE,KAAKkE,GAAGI,MAAM,GAAI,GAAiE,MAAnD,WAANF,GAAkBF,EAAEvB,cAAayB,EAAIF,EAAEvB,YAAY4B,MAAgB,QAANH,GAAqB,QAANA,EAAoBP,MAAMI,KAAKC,GAAc,cAANE,GAAqB,2CAA2CI,KAAKJ,GAAWL,GAAkBG,EAAGC,QAAzG,CAA7O,CAA+V,CAE/Z,SAASJ,GAAkBP,EAAKiB,IAAkB,MAAPA,GAAeA,EAAMjB,EAAIzB,UAAQ0C,EAAMjB,EAAIzB,QAAQ,IAAK,IAAIF,EAAI,EAAG6C,EAAO,IAAIb,MAAMY,GAAM5C,EAAI4C,EAAK5C,IAAO6C,EAAK7C,GAAK2B,EAAI3B,GAAM,OAAO6C,CAAM,CAEtL,SAASkkG,GAAsBplG,EAAK3B,GAAK,IAAI+5B,EAAY,MAAPp4B,EAAc,KAAyB,qBAAXf,QAA0Be,EAAIf,OAAOC,WAAac,EAAI,cAAe,GAAU,MAANo4B,EAAJ,CAAwB,IAAkDktE,EAAIC,EAAlDC,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAmB,IAAM,IAAKttE,EAAKA,EAAG57B,KAAKwD,KAAQylG,GAAMH,EAAKltE,EAAGliB,QAAQK,MAAOkvF,GAAK,EAA6B,GAArBD,EAAKvnG,KAAKqnG,EAAGjmG,OAAYhB,GAAKmnG,EAAKjnG,SAAWF,EAAG,KAAS,CAAE,MAAOgY,GAAOqvF,GAAK,EAAMH,EAAKlvF,CAAK,CAAE,QAAU,IAAWovF,GAAsB,MAAhBrtE,EAAG,WAAmBA,EAAG,WAAa,CAAE,QAAU,GAAIstE,EAAI,MAAMH,CAAI,CAAE,CAAE,OAAOC,CAAjV,CAAuV,CAEhgB,SAASL,GAAgBnlG,GAAO,GAAIK,MAAMC,QAAQN,GAAM,OAAOA,CAAK,CA2BpE,IE7CIk8B,GF6CA+mE,GAAkBjD,GAAe,QAAS,CAC5Cv3F,KAAMuoF,GACN16D,aAAc,KAEZ4sE,GAAaD,GAAgB5C,MAC7B8C,GAAaF,GAAgBh+F,MAC7Bm+F,GAAkBH,GAAgBz+F,KAClC6+F,GAAmBJ,GAAgBp9C,MAEnCgvG,GAAU,UAEVC,GAAe,SAAsBz1J,GACvC,MAAO,KAAKjC,OAAOiC,GAAS,IAAIyB,OAAO,EACzC,EAEIi0J,GAAW,SAAkB11J,GAC/BA,EAAQwB,GAASxB,GACjB,IAAI21J,EAAK,KACLC,EAAK,KACLC,EAAK,KAET,GAAIv6E,EAAQ35E,KAAK3B,GAAQ,CAGvB,IAAI81J,EAAmB91J,EAAMoD,MAAM,KAAKyB,KAAI,SAAU0H,GACpD,OAAOqrF,GAAUrrF,EAAG,KACtB,IAEIwpJ,EAAoBlwD,GAAeiwD,EAAkB,GAEzDH,EAAKI,EAAkB,GACvBH,EAAKG,EAAkB,GACvBF,EAAKE,EAAkB,EACzB,CAEA,MAAO,CACLC,MAAOj3E,GAAkB42E,GAAM,KAAOA,EACtCM,QAASl3E,GAAkB62E,GAAM,KAAOA,EACxCM,QAASn3E,GAAkB82E,GAAM,KAAOA,EACxCM,KAAMp3E,GAAkB42E,IAAOA,EAAK,GAAK,EAAI,EAEjD,EAEIS,GAAY,SAAmBn5H,GACjC,IAAI+4H,EAAQ/4H,EAAK+4H,MACbC,EAAUh5H,EAAKg5H,QACfC,EAAUj5H,EAAKi5H,QACfG,EAAiBp3J,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,IAAmBA,UAAU,GAEpF,GAAI6/E,GAAOk3E,IAAUl3E,GAAOm3E,IAAYI,GAAkBv3E,GAAOo3E,GAC/D,MAAO,GAGT,IAAII,EAAM,CAACN,EAAOC,EAASI,EAAiBH,EAAU,GACtD,OAAOI,EAAIzxJ,IAAI4wJ,IAAcpyJ,KAAK,IACpC,EAGWuC,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAcA,GAAcA,GAAc,CAAC,EAAGi8B,IAAUzX,IAAankB,GAAK42E,GAAsB,CAAC,iBAAkB,oBAAqB,CAAC,EAAG,CAE1MhjB,eAAgB1zC,GAASlO,IACzBhiE,SAAUkwE,GAASxO,IAAmB,GACtCm3B,UAAW3oB,GAASlO,GAAkB,UACtCmqB,UAAWjc,GAASlO,GAAkB,UACtCoqB,OAAQlc,GAASxO,IAAmB,GACpC2qB,WAAYnc,GAASxO,IAAmB,GAIxCmlE,OAAQ32D,GAASxO,GAAmB,MACpColE,QAAS52D,GAASlO,GAAkB,MACpC+kE,UAAW72D,GAASlO,GAAkB,SACtCglE,WAAY92D,GAASlO,GAAkB,SACvCilE,aAAc/2D,GAASlO,GAAkB,WACzCklE,oBAAqBh3D,GAASlO,GAAkB,oBAChDmlE,QAASj3D,GAASlO,GAAkB,MACpColE,aAAcl3D,GAASlO,GAAkB,WACzCkrB,cAAehd,GAASlO,GAAkB,iBAC1CioB,OAAQ/Z,GAAS9N,IACjBilE,YAAan3D,GAASxN,GAAyB,GAC/C6qB,SAAUrd,GAASxO,IAAmB,GACtC4lE,YAAap3D,GAASxN,GAAyB,GAE/C6kE,YAAar3D,GAASxO,IAAmB,MACtC3H,IAGMytE,GAAqB90E,GAAO,CACrC3gF,KAAMgoF,GACNzjF,OAAQ,CAACm1G,GAASvX,GAAYtM,IAC9B3xF,MAAOA,GACPE,KAAM,WACJ,IAAI+hG,EAAS6tD,GAAS54J,KAAKinG,KAAoB,IAC/C,MAAO,CAELqzD,WAAYvvD,EAAOmuD,MACnBqB,aAAcxvD,EAAOouD,QACrBqB,aAAczvD,EAAOquD,QACrBqB,UAAW1vD,EAAOsuD,KAElBl4C,QAAQ,EAEZ,EACAxX,SAAU,CACR+wD,YAAa,WACX,IAAIxB,EAAQl5J,KAAKs6J,WACbnB,EAAUn5J,KAAKu6J,aACfnB,EAAUp5J,KAAKw6J,aACnB,OAAOlB,GAAU,CACfJ,MAAOA,EACPC,QAASA,EACTC,QAASA,GACRp5J,KAAKo6J,YACV,EACAv9C,gBAAiB,WAEf,IAAIC,EAAS77G,GAAOjB,KAAK88G,QAAQp7G,OAAOyhF,IACpCxjF,EAAU,CACZynC,KAAMsxH,GACNt1C,OAAQs1C,GACRr1C,OAAQq1C,IAGLz2E,GAAkBjiF,KAAK05J,UAE1B/5J,EAAQ+5J,SAAW15J,KAAK05J,QAG1B,IAAI18C,EAAM,IAAIL,KAAKC,eAAeE,EAAQn9G,GACtCitD,EAAWowD,EAAIH,kBACf68C,EAAS9sG,EAAS8sG,SAAU,EAG5BiB,EAAY/tG,EAAS+tG,YAAcjB,EAAS,MAAQ,OACxD,MAAO,CACL58C,OAAQlwD,EAASkwD,OACjB48C,OAAQA,EACRiB,UAAWA,EAEf,EACA34C,eAAgB,WACd,OAAOhiH,KAAK68G,gBAAgBC,MAC9B,EACA8/B,aAAc,WACZ,OAAQ58I,KAAKgiH,gBAAkB,IAAIt7G,QAAQ,SAAU,GACvD,EACAwoJ,YAAa,WACX,OAAO/wC,GAAYn+G,KAAK48I,aAC1B,EACAge,kBAAmB,WAQjB,OAAO56J,KAAK68G,gBAAgB89C,SAC9B,EACAE,SAAU,WACR,QAAS76J,KAAK68G,gBAAgB68C,MAChC,EACA35J,QAAS,WACP,MAAO,CACL+8G,OAAQ98G,KAAKgiH,eACbU,MAAO1iH,KAAKkvJ,YACZyL,UAAW36J,KAAK46J,kBAChBlB,OAAQ15J,KAAK66J,SACb3B,MAAOl5J,KAAKs6J,WACZnB,QAASn5J,KAAKu6J,aACdnB,QAASp5J,KAAKo6J,YAAcp6J,KAAKw6J,aAAe,EAChDt3J,MAAOlD,KAAK06J,YACZI,UAAW96J,KAAK+6J,oBAEpB,EACA35C,QAAS,WACP,OAAOphH,KAAKw+G,UAAY,IAC1B,EACAw8C,uBAAwB,WACtB,MAAO,CAACh7J,KAAKy2I,eAAgBz2I,KAAKohH,SAAS1/G,OAAOyhF,IAAU58E,KAAK,MAAQ,IAC3E,EACA00J,cAAe,WAGb,IAAIt7J,EAAU,CACZ+5J,OAAQ15J,KAAK66J,SACbF,UAAW36J,KAAK46J,kBAChBxzH,KAAMsxH,GACNt1C,OAAQs1C,GACRwC,SAAU,OAQZ,OALIl7J,KAAKo6J,cACPz6J,EAAQ0jH,OAASq1C,IAIZ37C,GAAoB/8G,KAAKgiH,eAAgBriH,EAClD,EACAw7J,gBAAiB,WAGf,IAAIz3C,EAAK,IAAI/G,KAAKgH,aAAa3jH,KAAKgiH,eAAgB,CAClDl6G,MAAO,UACP87G,qBAAsB,EACtBC,sBAAuB,EACvBC,sBAAuB,EACvBC,SAAU,aAEZ,OAAOL,EAAGxwG,MACZ,EACA6nJ,oBAAqB,WACnB,IAAI7B,EAAQl5J,KAAKs6J,WACbnB,EAAUn5J,KAAKu6J,aACfnB,EAAUp5J,KAAKo6J,aAAcp6J,KAAKw6J,cAAoB,EAE1D,OAAIx6J,KAAK06J,YACA16J,KAAKi7J,cAAcr/C,GAAWh/F,KAAKw+I,IAAI,EAAG,EAAG,EAAGlC,EAAOC,EAASC,KAGlEp5J,KAAK+5J,qBAAuB,GACrC,EACAsB,gBAAiB,WACf,IAAIv6J,EAAId,KAAK09I,eACb,MAAO,CACL4d,UAAW,SAAmB1vD,GAC5B,IAAImrC,EAAWnrC,EAAMmrC,SACrB,OAAOj2I,EAAE0tG,GAAgB,CACvB1lG,MAAO,CACL4jG,MAAOqqC,EAAW,IAAM,MAE1BztI,MAAO,CACL,cAAe,SAGrB,EACAiyJ,UAAW,SAAmBxvD,GAC5B,IAAIgrC,EAAWhrC,EAAMgrC,SACrB,OAAOj2I,EAAE0tG,GAAgB,CACvB1lG,MAAO,CACLyjG,OAAO,EACPG,MAAOqqC,EAAW,IAAM,MAE1BztI,MAAO,CACL,cAAe,SAGrB,EAEJ,GAEFs+F,OAAQ7nE,GAAS,CAAC,EAAGv9B,GAAgBu9B,GAAQknE,IAAiB,SAAU90F,EAAU4+F,GAChF,GAAI5+F,IAAa4+F,IAAaT,GAAWsoD,GAASzmJ,GAAWymJ,GAAS54J,KAAK06J,cAAe,CACxF,IAAIc,EAAY5C,GAASzmJ,GACrB+mJ,EAAQsC,EAAUtC,MAClBC,EAAUqC,EAAUrC,QACpBC,EAAUoC,EAAUpC,QACpBC,EAAOmC,EAAUnC,KAErBr5J,KAAKs6J,WAAapB,EAClBl5J,KAAKu6J,aAAepB,EACpBn5J,KAAKw6J,aAAepB,EACpBp5J,KAAKy6J,UAAYpB,CACnB,CACF,IAAI72J,GAAgBu9B,GAAQ,eAAe,SAAqB5tB,EAAU4+F,GACpE5+F,IAAa4+F,GACf/wG,KAAK8nG,MAAMZ,GAAkB/0F,EAEjC,IAAI3P,GAAgBu9B,GAAQ,WAAW,SAAiB5tB,EAAU4+F,GAC3DT,GAAWn+F,EAAU4+F,IACxB/wG,KAAK8nG,MAAMhX,GAAoB3+E,EAEnC,IAAI3P,GAAgBu9B,GAAQ,aAAa,SAAmB5tB,EAAU4+F,GACpE,IAAIv0F,EAAQxc,KAEZ,GAAImS,IAAa4+F,EAAU,CACzB,IAAImoD,EAAQl3E,GAAOhiF,KAAKs6J,YAAc,EAAIt6J,KAAKs6J,WAC/Ct6J,KAAKgoG,WAAU,WACI,IAAb71F,GAAkB+mJ,EAAQ,GAE5B18I,EAAM89I,WAAapB,EAAQ,GACL,IAAb/mJ,GAAkB+mJ,EAAQ,KAEnC18I,EAAM89I,WAAapB,EAAQ,GAE/B,GACF,CACF,IAAI12J,GAAgBu9B,GAAQ,cAAc,SAAoB07H,EAAUC,GAClED,IAAaC,IACf17J,KAAKy6J,UAAYgB,EAAW,GAAK,EAAI,EAEzC,IAAI17H,IACJ8uD,QAAS,WACP,IAAIwjB,EAASryG,KAEbA,KAAKgoG,WAAU,WACbqK,EAAOvK,MAAMhX,GAAoBuhB,EAAOtyG,QAC1C,GACF,EACA46G,QAAS,WACP36G,KAAKylH,SAAQ,EACf,EAGAE,UAAW,WACT3lH,KAAKylH,SAAQ,EACf,EAGAG,YAAa,WACX5lH,KAAKylH,SAAQ,EACf,EACAvd,cAAe,WACbloG,KAAKylH,SAAQ,EACf,EACA/qB,QAAS,CAEPgH,MAAO,WACA1hG,KAAK6yB,UAER4uE,GAAazhG,KAAK6lH,MAAM81C,SAAS,GAErC,EACA/5D,KAAM,WACJ,IAAK5hG,KAAK6yB,SAAU,CAClB,IAAI8qE,EAAgBF,KAEhBK,GAAS99F,KAAK60G,IAAKlX,IACrBgE,GAAYhE,EAEhB,CACF,EAEAi+D,YAAa,SAAqB/C,GAChC,IAAI8B,EAAY36J,KAAK46J,kBASrB,OAPA/B,EAAK74J,KAAK66J,UAAYhC,EAAK,GAAKA,EAAK,GAAKA,EAE1CA,EAAY,IAAPA,GAA0B,QAAd8B,EAAsB,GAAY,IAAP9B,GAA0B,QAAd8B,EAExD,GAAY,KAAP9B,GAA2B,QAAd8B,EAElB,EAAI9B,EACG74J,KAAKm7J,gBAAgBtC,EAC9B,EACAgD,cAAe,SAAuB/C,GACpC,OAAO94J,KAAKm7J,gBAAgBrC,EAC9B,EACAgD,cAAe,SAAuB/C,GACpC,OAAO/4J,KAAKm7J,gBAAgBpC,EAC9B,EACAgD,WAAY,SAAoB1C,GAG9B,OAAgB,IAATA,EAAar5J,KAAK25J,QAAmB,IAATN,EAAar5J,KAAKg6J,QAAU,EACjE,EAEAgC,SAAU,SAAkB94J,GAC1BlD,KAAKs6J,WAAap3J,CACpB,EACA+4J,WAAY,SAAoB/4J,GAC9BlD,KAAKu6J,aAAer3J,CACtB,EACAg5J,WAAY,SAAoBh5J,GAC9BlD,KAAKw6J,aAAet3J,CACtB,EACAi5J,QAAS,SAAiBj5J,GACxBlD,KAAKy6J,UAAYv3J,CACnB,EACAk5J,gBAAiB,WACf,IAAI1yG,EAAQvnD,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC7EmK,EAAOo9C,EAAMp9C,KACb8pG,EAAU1sD,EAAM0sD,QAEpB,IAAKp2G,KAAK6yB,UAAqB,YAATvmB,IAAuB8pG,IAAYtG,IAAasG,IAAYnG,IAAa,CAC7F5L,GAAU36C,GACV,IAAIiyG,EAAW37J,KAAK6lH,MAAM81C,UAAY,GAClC1nH,EAAQ0nH,EAAS5zJ,KAAI,SAAUs0J,GACjC,QAASA,EAAItlB,QACf,IAAGvzI,SAAQ,GACXywC,GAAiBmiE,IAAYtG,IAAa,EAAI,EAC9C77D,EAAQA,GAAS0nH,EAASv5J,OAAS,EAAI6xC,EAAQ,EAAI0nH,EAASv5J,OAAS,EAAI6xC,EACzEwtD,GAAak6D,EAAS1nH,GACxB,CACF,EACAwxE,QAAS,SAAiBp1B,GACxB,IAAIq1B,EAAS1lH,KAETqwF,EACFrwF,KAAKgoG,WAAU,WACbjL,IAAU,WACR2oB,EAAOvE,QAAS,CAClB,GACF,IAEAnhH,KAAKmhH,QAAS,CAElB,GAEFhiH,OAAQ,SAAgB2B,GACtB,IAAIilH,EAAS/lH,KAKb,GAAIA,KAAKi/G,OACP,OAAOn+G,IAGT,IAAI+xB,EAAW7yB,KAAK6yB,SAChButF,EAAWpgH,KAAKogH,SAChBtD,EAAS98G,KAAKgiH,eACdy0B,EAAiBz2I,KAAKg7J,uBACtBlN,EAAiB9tJ,KAAK8tJ,eACtBD,EAAiB7tJ,KAAK6tJ,eACtBzsC,EAAUphH,KAAKohH,QACfugC,EAAe3hJ,KAAK0hG,MACpB46D,EAAU,GAEVC,EAAiB,SAAwB99I,EAASlc,EAAKkI,GACzD,IAAI+xJ,EAAkBr6J,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACvFy2B,EAAKmtF,EAAOvH,OAAO,eAAev9G,OAAOsB,EAAK,OAAS,KAE3D,OADA+5J,EAAQx6J,KAAK82B,GACN93B,EAAEstJ,GAAiB5rJ,GAAgB,CACxCgH,MAAOiB,EACP3B,MAAO05E,GAAc,CACnB5pD,GAAIA,EACJ4hH,YAAa,KACbrgC,UAAU,EACVxtG,UAAU,EACVkmB,SAAUA,EACVutF,SAAUA,EACVtD,OAAQA,EACRgxC,eAAgBA,EAChBD,eAAgBA,EAChBM,MAAM,EACNzvC,aAAc0C,EACdj6E,IAAK,GACJq1H,GACHzsE,YAAag2B,EAAOs1C,gBACpBhrE,GAAI,CAKF6nD,OAAQz5H,GAEVlc,IAAKA,EACL4e,IAAK,YACJotE,IAAa,GAClB,EAGIkuE,EAAY,WACd,OAAO37J,EAAE,MAAO,CACdykG,YAAa,qBACb/7F,MAAO,CACL,aAAcqpB,GAAYutF,GAE5B92G,MAAO,CACL,cAAe,SAEhB,CAACxI,EAAE2tG,GAAiB,CACrB3lG,MAAO,CACL8jG,OAAQ,EACRF,MAAO,MAEP5rG,EAAE2tG,GAAiB,CACrB3lG,MAAO,CACL8jG,QAAS,EACTF,MAAO,OAGb,EAEIgwD,EAAY,GAEhBA,EAAU56J,KAAKy6J,EAAev8J,KAAKg8J,SAAU,QAAS,eAAgB,CACpE94J,MAAOlD,KAAKs6J,WACZnkI,IAAK,GACLqtD,KAAM,EACNoqE,YAAa5tJ,KAAK47J,YAClB12D,UAAWllG,KAAK65J,cAGlB6C,EAAU56J,KAAK26J,KAEfC,EAAU56J,KAAKy6J,EAAev8J,KAAKi8J,WAAY,UAAW,iBAAkB,CAC1E/4J,MAAOlD,KAAKu6J,aACZpkI,IAAK,GACLqtD,KAAMxjF,KAAKk6J,aAAe,EAC1BtM,YAAa5tJ,KAAK67J,cAClB32D,UAAWllG,KAAK85J,gBAGd95J,KAAKo6J,cAEPsC,EAAU56J,KAAK26J,KAEfC,EAAU56J,KAAKy6J,EAAev8J,KAAKk8J,WAAY,UAAW,iBAAkB,CAC1Eh5J,MAAOlD,KAAKw6J,aACZrkI,IAAK,GACLqtD,KAAMxjF,KAAKm6J,aAAe,EAC1BvM,YAAa5tJ,KAAK87J,cAClB52D,UAAWllG,KAAKi6J,iBAMhBj6J,KAAKmhH,QAAUnhH,KAAK66J,UAKtB6B,EAAU56J,KAAKy6J,EAAev8J,KAAKm8J,QAAS,OAAQ,cAAe,CACjEj5J,MAAOlD,KAAKy6J,UACZtkI,IAAK,EACLy3H,YAAa5tJ,KAAK+7J,WAClB72D,UAAWllG,KAAK45J,UAEhBjtJ,UAAU,KAKd+vJ,EAAY57J,EAAE,MAAO,CACnBykG,YAAa,2DACbj8F,MAAO,CACLg/F,KAAM,QACN8L,SAAUvhF,GAAYutF,EAAW,KAAO,KACxC,kBAAmBq2B,GAErBpmD,GAAI,CACF8lB,QAASn2G,KAAKo8J,gBACd52D,MAEA,SAAe97C,GACTA,EAAMznD,SAAWynD,EAAMirD,eACzBgtC,GAEJ,IAED+a,GAEH,IAAIC,EAAS77J,EAAE,SAAU,CACvBykG,YAAa,2CACb/7F,MAAO,CACLqpB,SAAUA,GAAYutF,GAExB92G,MAAO,CACLsvB,GAAIwoF,EACJ9Y,KAAM,SACNkf,IAAK80C,EAAQ56J,OAAOyhF,IAAU58E,KAAK,MAAQ,KAC3C6tG,SAAUvhF,EAAW,KAAO,KAC5B,YAAa7yB,KAAKmhH,OAAS,SAAW,MACtC,cAAe,QAEjB9wB,GAAI,CAEFmV,MAAOm8C,EACPjgD,MAAOigD,IAER,CAAC7gJ,EAAE,MAAOd,KAAK+6J,qBAAsB/6J,KAAK06J,YAAc55J,EAAE,OAAQ,CACnEykG,YAAa,WACZ,KAAKtkG,OAAOjB,KAAK+/G,cAAe,OAAS,KACxCwH,EAAUzmH,EAAEd,KAAKg/G,UAAW,CAC9BzZ,YAAa,gBACb/7F,MAAO,CACL,UAAWxJ,KAAKk/G,aAEjB,CAACy9C,IACAzyD,EAAWlqG,KAAKs6F,gBAChBszB,EAAU1jB,EAAWppG,EAAEd,KAAK0rH,UAAW,CACzCnmB,YAAa,iBACZ2E,GAAYppG,IACf,OAAOA,EAAE,MAAO,CACdykG,YAAa,+CACbj8F,MAAO,CACLg/F,KAAM,QACNihB,KAAMvpH,KAAK48I,cAAgB,KAC3B,kBAAmBnG,GAAkB,KACrC,gBAAiB5jH,EAAW,OAAS,KACrC,gBAAiButF,IAAavtF,EAAW,OAAS,OAEnD,CAAC00F,EAASm1C,EAAW9uC,GAC1B,IErnBF,SAASzsH,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAkBhN,IAAIikG,GAAkBjD,GAAe,QAAS,CAC5Cv3F,KAAMuoF,GACN16D,aAAc,KAEZ4sE,GAAaD,GAAgB5C,MAC7B8C,GAAaF,GAAgBh+F,MAC7Bm+F,GAAkBH,GAAgBz+F,KAClC6+F,GAAmBJ,GAAgBp9C,MAGnCkzG,GAAY95E,GAAK+5E,GAAY,CAAC,SAAU,KAAM,UAC9CphB,GAA2B34D,GAAK44D,GAA4B,CAAC,iBAAkB,KAAM,OAAQ,MAAO,UAC7F5yI,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAcA,GAAcA,GAAcA,GAAc,CAAC,EAAGi8B,IAAUzX,IAAa41D,IAAYnhB,IAA2B,CAAC,EAAG,CAC5LI,mBAAoB94C,GAASlO,GAAkB,qBAC/CknD,iBAAkBh5C,GAASlO,GAAkB,SAC7CioE,eAAgB/5D,GAASlO,GAAkB,cAC3CmnD,iBAAkBj5C,GAASlO,GAAkB,SAC7CkoE,cAAeh6D,GAASxO,IAAmB,GAC3CyoE,UAAWj6D,GAASxO,IAAmB,GACvC0oE,iBAAkBl6D,GAASlO,GAAkB,mBAC7CsnD,YAAap5C,GAASxO,IAAmB,GACzC6nD,mBAAoBr5C,GAASlO,GAAkB,kBAC/CwnD,WAAYt5C,GAAS1N,OAClB9L,IAGM2zE,GAA+B33E,GAAO,CAC/C3gF,KAAM2kF,GACNpgF,OAAQ,CAACm1G,GAASvX,IAClBj+F,MAAOA,GACPE,KAAM,WACJ,MAAO,CAELm0J,SAAUn9J,KAAKinG,KAAoB,GAEnCy1C,YAAa,KACbh6B,OAAO,EACP63B,eAAgB,GAEhB18C,WAAW,EAEf,EACA8L,SAAU,CACRizC,aAAc,WACZ,OAAQ58I,KAAK08I,aAAe,IAAIh2I,QAAQ,UAAW,KAAO,IAC5D,GAEFkhG,OAAQ7nE,GAAS,CAAC,EAAGv9B,GAAgBu9B,GAAQknE,IAAiB,SAAU90F,GACtEnS,KAAKm9J,SAAWhrJ,GAAY,EAC9B,IAAI3P,GAAgBu9B,GAAQ,YAAY,SAAkB5tB,GAIpDnS,KAAK69F,WACP79F,KAAK8nG,MAAMZ,GAAkB/0F,GAAY,GAE7C,IAAI4tB,IACJ26D,QAAS,CAEPgH,MAAO,WACA1hG,KAAK6yB,UACR4uE,GAAazhG,KAAK6lH,MAAMi3B,QAE5B,EACAl7C,KAAM,WACC5hG,KAAK6yB,UACR8uE,GAAY3hG,KAAK6lH,MAAMi3B,QAE3B,EAEAC,YAAa,SAAqB75I,GAChC,IAAIsZ,EAAQxc,KAEZA,KAAKm9J,SAAWj6J,EAChBlD,KAAKgoG,WAAU,WACbxrF,EAAMqpG,MAAMi3B,QAAQrS,MAAK,EAC3B,GACF,EACAwS,QAAS,SAAiBuc,GACpBx5J,KAAKm9J,WAAa3D,IACpBx5J,KAAKm9J,SAAW3D,EAEpB,EACAtc,UAAW,SAAmB3+H,GAC5B,IAAImkG,EAAQnkG,EAAImkG,MACZ5F,EAASv+F,EAAIu+F,OACb55G,EAAQqb,EAAIrb,MACZ43J,EAAYv8I,EAAIu8I,UACpB96J,KAAK0iH,MAAQA,EACb1iH,KAAK08I,YAAc5/B,EACnB98G,KAAKu6I,eAAiBugB,EACtB96J,KAAKm9J,SAAWj6J,GAAS,GAEzBlD,KAAK8nG,MAAMhX,GAAoBvyE,EACjC,EACA6+I,YAAa,WACX,IAAIvgJ,EAAM,IAAID,KACVs8I,EAAQr8I,EAAIwgJ,WACZlE,EAAUt8I,EAAIygJ,aACdlE,EAAUp5J,KAAKo6J,YAAcv9I,EAAI0gJ,aAAe,EAChDr6J,EAAQ,CAACg2J,EAAOC,EAASC,GAASrxJ,KAAI,SAAU0H,GAClD,MAAO,KAAKxO,OAAOwO,GAAK,IAAI9K,OAAO,EACrC,IAAG4B,KAAK,KACRvG,KAAK+8I,YAAY75I,EACnB,EACAk6I,cAAe,WACbp9I,KAAK+8I,YAAY/8I,KAAKq8I,WACxB,EACAgB,cAAe,WACbr9I,KAAK6lH,MAAMi3B,QAAQrS,MAAK,EAC1B,EACA6S,OAAQ,WACNt9I,KAAK69F,WAAY,CACnB,EACA0/C,QAAS,WACP,IAAIlrC,EAASryG,KAEbA,KAAKgoG,WAAU,WACbvG,GAAa4Q,EAAOwT,MAAMnyD,MAE1B2+C,EAAOvK,MAAMxU,GACf,GACF,EACAkqD,SAAU,WACRx9I,KAAK69F,WAAY,EACjB79F,KAAK8nG,MAAMjW,GACb,EAEA4rD,gBAAiB,SAAyBt9G,GACxC,IAAIu6G,EAAYv6G,EAAKu6G,UACjB3D,EAAW52G,EAAK42G,SACpB,OAAO/2I,KAAK09I,eAAehD,GAAa3D,EAAWpoC,GAAiBD,GAAY,CAC9EplG,MAAO,CACL,cAAe,SAGrB,GAEFnK,OAAQ,SAAgB2B,GACtB,IAAIq8J,EAAWn9J,KAAKm9J,SAChBtqI,EAAW7yB,KAAK6yB,SAChButF,EAAWpgH,KAAKogH,SAChBmQ,EAASvwH,KAAKuwH,OACdiqB,EAAcv4D,GAAkBjiF,KAAKw6I,aAAex6I,KAAK+5J,oBAAsB/5J,KAAKw6I,YAEpF5sB,EAAU,GAEd,GAAI5tH,KAAKg9J,UAAW,CAClB,IAAI93C,EAAQllH,KAAK88J,eACjBlvC,EAAQ9rH,KAAKhB,EAAEo1G,GAAS,CACtBptG,MAAO,CACLwC,KAAM,KACNunB,SAAUA,GAAYutF,EACtB5Y,QAASxnG,KAAKi9J,kBAEhB3zJ,MAAO,CACL,aAAc47G,GAAS,MAEzB70B,GAAI,CACFmV,MAAOxlG,KAAKo9J,aAEd76J,IAAK,WACJ2iH,GACL,CAEA,GAAIllH,KAAKm8I,YAAa,CAChBvuB,EAAQxrH,OAAS,GAEnBwrH,EAAQ9rH,KAAKhB,EAAE,OAAQ,MAGzB,IAAI68I,EAAS39I,KAAKg8I,iBAClBpuB,EAAQ9rH,KAAKhB,EAAEo1G,GAAS,CACtBptG,MAAO,CACLwC,KAAM,KACNunB,SAAUA,GAAYutF,EACtB5Y,QAASxnG,KAAKo8I,oBAEhB9yI,MAAO,CACL,aAAcq0I,GAAU,MAE1BttD,GAAI,CACFmV,MAAOxlG,KAAKo9I,eAEd76I,IAAK,aACJo7I,GACL,CAEA,IAAK39I,KAAK+8J,cAAe,CAEnBnvC,EAAQxrH,OAAS,GACnBwrH,EAAQ9rH,KAAKhB,EAAE,OAAQ,MAGzB,IAAI88I,EAAU59I,KAAK+7I,iBACnBnuB,EAAQ9rH,KAAKhB,EAAEo1G,GAAS,CACtBptG,MAAO,CACLwC,KAAM,KACNunB,SAAUA,EACV20E,QAASxnG,KAAK67I,oBAEhBvyI,MAAO,CACL,aAAcs0I,GAAW,MAE3BvtD,GAAI,CACFmV,MAAOxlG,KAAKq9I,eAEd96I,IAAK,aACJq7I,GACL,CAEIhwB,EAAQxrH,OAAS,IACnBwrH,EAAU,CAAC9sH,EAAE,MAAO,CAClBykG,YAAa,wCACb/7F,MAAO,CACL,0BAA2BokH,EAAQxrH,OAAS,EAC5C,sBAAuBwrH,EAAQxrH,OAAS,IAEzCwrH,KAGL,IAAI4vC,EAAQ18J,EAAEu5J,GAAO,CACnB90D,YAAa,sBACbz8F,MAAO05E,GAAcA,GAAc,CAAC,EAAG4gB,GAAWw5D,GAAWrsC,IAAU,CAAC,EAAG,CACzErtH,MAAOi6J,EACPl+C,QAASj/G,KAAK69F,YAEhBxN,GAAI,CACFnqD,MAAOlmC,KAAKi9I,QACZl9I,QAASC,KAAKk9I,WAEhB/7H,IAAK,QACJysG,GACH,OAAO9sH,EAAE25I,GAAuB,CAC9Bl1C,YAAa,oBACbz8F,MAAO05E,GAAcA,GAAc,CAAC,EAAG4gB,GAAWq4C,GAA0BlrB,IAAU,CAAC,EAAG,CACxF33F,GAAI54B,KAAKw+G,SACTt7G,MAAOi6J,EACP5iB,eAAgB4iB,EAAWn9J,KAAKu6I,eAAiB,GACjDC,YAAaA,EACbx3B,IAAKhjH,KAAK0iH,MACV6G,KAAMvpH,KAAK48I,eAEbvsD,GAAI,CACF+W,KAAMpnG,KAAKs9I,OACXQ,MAAO99I,KAAKu9I,QACZt+B,OAAQj/G,KAAKw9I,UAEfztD,YAAavtF,GAAgB,CAAC,EAAGwzF,GAA0Bh2F,KAAKo6F,aAAapE,KAA6Bh2F,KAAKy9I,iBAC/Gt8H,IAAK,WACJ,CAACq8I,GACN,ICjREC,GAAoCn4E,GAAc,CACpDP,WAAY,CACVm4E,gBAAiBA,GACjBQ,YAAaR,MCFbS,GAA2Br4E,GAAc,CAC3CP,WAAY,CACVunC,KAAMA,GACNsD,SAAUA,MCDH9mH,GAAQ46F,GAAsB,CACvC35F,IAAKg5F,GAASlO,GAAkB,QAC/B5K,IAGQ2zE,GAA+Br4E,GAAO,CAC/C3gF,KAAMqlF,GACNpqF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIr3B,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZC,EAAWk3B,EAAKl3B,SACpB,OAAOnI,EAAEgI,EAAMiB,IAAK47F,GAAU38F,EAAM,CAClCu8F,YAAa,qBACXt8F,EACN,ICfSH,GAAQ46F,GAAsB,CACvCt5C,OAAQ24C,GAASxO,IAAmB,GACpC37D,GAAImqE,GAASlO,IACbgpE,OAAQ96D,GAASxO,IAAmB,GACpCxqF,IAAKg5F,GAASlO,GAAkB,QAC/B/K,IAGQg0E,GAAgCv4E,GAAO,CAChD3gF,KAAMklF,GACNjqF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIr3B,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZC,EAAWk3B,EAAKl3B,SAChBmhD,EAASthD,EAAMshD,OACnB,OAAOtpD,EAAEgI,EAAMiB,IAAK47F,GAAU38F,EAAM,CAClCQ,MAAO,CACL,qBAAsB4gD,EACtB,uBAAwBA,GAE1B9gD,MAAO,CACLsvB,GAAI9vB,EAAM8vB,MAEV9vB,EAAM+0J,OAAS,CAAC/8J,EAAE88J,GAAiB30J,IAAaA,EACtD,IChCF,SAAS9H,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAQzM,IAAIiG,GAAQ46F,GAAsB5gB,GAAKi7E,GAAuB,CAAC,WAAYh0E,IAGvEi0E,GAAiCz4E,GAAO,CACjD3gF,KAAMmlF,GACNlqF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIr3B,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZC,EAAWk3B,EAAKl3B,SAEpB,OAAOnI,EAAEg9J,GAAkBn4D,GAAU38F,EAAM,CACzCF,MAAO05E,GAAcA,GAAc,CAAC,EAAG15E,GAAQ,CAAC,EAAG,CACjDshD,QAAQ,MAERnhD,EACN,IC7BF,SAAS9H,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAQzM,IAAIiG,GAAQ46F,GAAsB5gB,GAAKi7E,GAAuB,CAAC,WAAY/zE,IAGvEi0E,GAAkC14E,GAAO,CAClD3gF,KAAMolF,GACNnqF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIr3B,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZC,EAAWk3B,EAAKl3B,SAEpB,OAAOnI,EAAEg9J,GAAkBn4D,GAAU38F,EAAM,CACzCF,MAAO05E,GAAcA,GAAc,CAAC,EAAG15E,GAAQ,CAAC,EAAG,CACjDshD,QAAQ,MAERnhD,EACN,IC7BF,SAASzG,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAazM,IAAIiG,GAAQ46F,GAAsB,CACvCt5C,OAAQ24C,GAASlO,IACjBqpE,WAAYn7D,GAASlO,IACrBj8D,GAAImqE,GAASlO,IACbspE,QAASp7D,GAASlO,IAClBupE,YAAar7D,GAASlO,IACtBvpF,KAAMy3F,GAASlO,IACf9qF,IAAKg5F,GAASlO,GAAkB,QAC/BhL,IAGQw0E,GAA2B94E,GAAO,CAC3C3gF,KAAMilF,GACNhqF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIr3B,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZymF,EAAQtvD,EAAKsvD,MACbM,EAAc5vD,EAAK4vD,YACnBouE,EAAUr1J,EAAMq1J,QAChBC,EAAct1J,EAAMs1J,YACpBh0G,EAASthD,EAAMshD,OACf8zG,EAAap1J,EAAMo1J,WACnB5yJ,EAAOxC,EAAMwC,KACb8uF,EAAerK,GAAe,CAAC,EAC/BsK,EAAS5K,IACT89B,EAAY,CAAC,EACb+wC,EAAWx9J,IACXy9J,EAAiBrkE,GAAkBrB,GAAmBuB,EAAcC,IAEpEkkE,GAAkBJ,GAAWC,KAC/BE,EAAWx9J,EAAEm9J,GAAoB,CAACM,EAAiBjkE,GAAczB,GAAmB00B,EAAWnzB,EAAcC,GAAUv5F,EAAE88J,GAAiB,CACxIn4D,SAAUwT,GAAWmlD,EAAaD,QAItC,IAAIK,EAAU19J,IACV29J,EAAgBvkE,GAAkBtE,GAAkBwE,EAAcC,GAQtE,OANIokE,GAAiBr0G,GAAU8zG,KAC7BM,EAAU19J,EAAEk9J,GAAmB,CAACS,EAAgBnkE,GAAc1E,GAAkB23B,EAAWnzB,EAAcC,GAAUv5F,EAAE88J,GAAiB,CACpIn4D,SAAUwT,GAAWilD,EAAY9zG,QAI9BtpD,EAAEgI,EAAMiB,IAAK47F,GAAU38F,EAAM,CAClCu8F,YAAa,cACb/7F,MAAOhH,GAAgB,CAAC,EAAG,eAAevB,OAAOqK,GAAOA,GACxDhC,MAAO,CACLsvB,GAAI9vB,EAAM8vB,IAAM,KAChB0vE,KAAM,WAEN,CAACg2D,EAAUhkE,GAAcnE,GAAmBo3B,EAAWnzB,EAAcC,GAASmkE,GACpF,IC7DEE,GAAgCp5E,GAAc,CAChDP,WAAY,CACVs5E,YAAaA,GACbP,iBAAkBA,GAClBG,mBAAoBA,GACpBD,kBAAmBA,GACnBJ,gBAAiBA,MCZrB,SAASp7J,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAOzM,IAAIiG,GAAQ46F,GAAsB,CAEvCuoB,MAAOlpB,GAAS3N,IAA0B,GAC1CrrF,IAAKg5F,GAASlO,GAAkB,QAC/BrN,IAGQm3E,GAA0Bp5E,GAAO,CAC1C3gF,KAAM4iF,GACN3nF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIr3B,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZC,EAAWk3B,EAAKl3B,SAChBgjH,EAAQnjH,EAAMmjH,MAClB,OAAOnrH,EAAEgI,EAAMiB,IAAK47F,GAAU38F,EAAM,CAClCQ,MAAOhH,GAAgB,CACrBo8J,YAAa3yC,GAAmB,KAAVA,GACtB,mBAA6B,IAAVA,GAA4B,KAAVA,GACpC,aAAahrH,OAAOgrH,GAAQA,IAAmB,IAAVA,KACtChjH,EACN,IC7BF,SAASzG,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAWzM,IAAIiG,GAAQ46F,GAAsB,CACvC+lB,UAAW1mB,GAASlO,IACpB60B,cAAe3mB,GAASlO,IACxBgqE,eAAgB97D,GAAS3N,IAA0B,GACnD62B,MAAOlpB,GAASxO,IAAmB,GACnChhE,OAAQwvE,GAASlO,IACjBi2B,WAAY/nB,GAASlO,IACrBiqE,YAAa/7D,GAASxN,GAAyB,GAC/CypB,UAAWjc,GAASlO,GAAkB,MACtCkqE,KAAMh8D,GAASlO,IACfmqE,SAAUj8D,GAASlO,IACnBoqE,QAASl8D,GAASlO,GAAkB,KACpC9qF,IAAKg5F,GAASlO,GAAkB,OAChCuQ,YAAarC,GAASlO,KACrB3K,IAGQg1E,GAA0B35E,GAAO,CAC1C3gF,KAAMslF,GACNrqF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIg4E,EAEArvG,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZymF,EAAQtvD,EAAKsvD,MACbM,EAAc5vD,EAAK4vD,YACnBx8D,EAASzqB,EAAMyqB,OACfu3F,EAAahiH,EAAMgiH,WACnBi0C,EAAOj2J,EAAMi2J,KACbC,EAAWl2J,EAAMk2J,SACjB55D,EAAct8F,EAAMs8F,YACpBqkB,EAAY3gH,EAAM2gH,UAClBC,EAAgB5gH,EAAM4gH,cACtBtvB,EAAerK,GAAe,CAAC,EAC/BsK,EAAS5K,IACT89B,EAAY,CAAC,EACbhG,EAAUzmH,IACV6sH,EAAgBzzB,GAAkBpD,GAAkBsD,EAAcC,GAEtE,GAAIszB,GAAiBp6F,GAAUu3F,EAAY,CACzC,IAAIg0C,EAAch2J,EAAMg2J,YACxBv3C,EAAUzmH,EAAEgI,EAAMk2G,UAAW,CAC3Bx1G,MAAOhH,GAAgB,CAAC,EAAG,WAAWvB,OAAO69J,GAAcA,GAC3Dr5D,SAAUkoB,EAAgB,CAAC,EAAI1U,GAAW6R,EAAYv3F,IACrD+mE,GAAcxD,GAAkBy2B,EAAWnzB,EAAcC,GAC9D,CAEA,IAAI8kE,EAAQr+J,IACRs+J,EAAcllE,GAAkBzC,GAAgB2C,EAAcC,IAE9D+kE,GAAeL,GAAQC,KACzBG,EAAQr+J,EAAEgI,EAAMm2J,QAAS,CACvB15D,YAAa,OACbE,SAAU25D,EAAc,CAAC,EAAInmD,GAAW+lD,EAAUD,IACjDzkE,GAAc7C,GAAgB81B,EAAWnzB,EAAcC,KAG5D,IAAIglE,EAAY,CAAC93C,EAAS43C,EAAO7kE,GAAcnE,GAAmBo3B,EAAWnzB,EAAcC,IAU3F,OARIvxF,EAAMmjH,QACRozC,EAAY,CAACv+J,EAAE69J,GAAY,CACzB71J,MAAO,CACLmjH,MAAOnjH,EAAM+1J,iBAEdQ,KAGEv+J,EAAEgI,EAAMiB,IAAK47F,GAAU38F,EAAM,CAClCu8F,YAAa,YACb/7F,OAAQ2uG,EAAU,CAChB,kBAAmBrvG,EAAMmjH,OACxBzpH,GAAgB21G,EAAS,QAAQl3G,OAAOmkG,GAAcA,GAAc5iG,GAAgB21G,EAAS,MAAMl3G,OAAOwoH,GAAYA,GAAYjnH,GAAgB21G,EAAS,UAAUl3G,OAAOyoH,GAAgBA,GAAgBlnH,GAAgB21G,EAAS,SAAUuR,GAAgBvR,KAChQknD,EACN,ICpFEC,GAA+Bh6E,GAAc,CAC/CP,WAAY,CACVm6E,WAAYA,MCJhB,SAAS/9J,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAahN,IAAI08J,GAAmB,CAAC,QAAS,MAAO,UAIpCC,GAAsB19D,IAAQ,SAAUshD,EAAYS,GAEtD,OADAA,EAAO57I,GAAKvD,GAASm/I,IACdA,EAAO5nD,GAAU,CAAC,WAAYmnD,EAAYS,GAAMniJ,OAAOyhF,IAAU58E,KAAK,MAAQ,IACvF,IAGIk5J,GAA2B39D,IAAQ,SAAUz5F,GAC/C,OAAO4zF,GAAU5zF,EAAK3B,QAAQ,OAAQ,IACxC,IAGIg5J,GAAkB,GAGXnc,GAAgB,WAEzB,IAAIoc,EAAel9D,KAAyBv6F,QAAO,SAAUY,EAAOs6I,GAElE,OADAt6I,EAAM+5F,GAAeugD,EAAY,SAAWrgD,GAASxN,IAC9CzsF,CACT,GAAG+uC,GAAO,OAIV,OAFA6nH,GAAkBp+J,GAAKq+J,GAEhBj8D,GAAsB1gB,GAASR,GAAcA,GAAc,CAAC,EAAGm9E,GAAe,CAAC,EAAG,CACvFC,aAAc78D,GAASlO,GAAkB,MAAM,SAAU3xF,GACvD,OAAOy2F,GAAc14F,GAAOs+J,GAAkB,UAAW,SAAU,WAAYr8J,EACjF,IACA28J,OAAQ98D,GAASlO,GAAkB,MAAM,SAAU3xF,GACjD,OAAOy2F,GAAc14F,GAAOs+J,GAAkB,UAAW,UAAWr8J,EACtE,IACA48J,OAAQ/8D,GAASlO,GAAkB,MAAM,SAAU3xF,GACjD,OAAOy2F,GAAc14F,GAAOs+J,GAAkB,WAAY,WAAYr8J,EACxE,IACA68J,UAAWh9D,GAASxO,IAAmB,GACvCxqF,IAAKg5F,GAASlO,GAAkB,UAC7BnJ,GACP,EAKWs0E,GAAO,CAChBp7J,KAAM8mF,GACN7rF,YAAY,EAEZ,SAAIiJ,GAMF,cAFO9I,KAAK8I,MACZ9I,KAAK8I,MAAQy6I,KACNvjJ,KAAK8I,KACd,EAEA3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAI4jH,EAEAj7I,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZC,EAAWk3B,EAAKl3B,SAChB62J,EAASh3J,EAAMg3J,OACfD,EAAS/2J,EAAM+2J,OACfD,EAAe92J,EAAM82J,aAErBr1J,EAAY,GAWhB,OAVAm1J,GAAgBp9J,SAAQ,SAAU+F,GAChC,IAAIG,EAAIg3J,GAAoBC,GAAyBp3J,GAAOS,EAAMT,IAE9DG,GACF+B,EAAUzI,KAAK0G,EAEnB,IACA+B,EAAUzI,MAAMiiJ,EAAkB,CAChC,aAAcj7I,EAAMi3J,WACnBv9J,GAAgBuhJ,EAAiB,eAAe9iJ,OAAO6+J,GAASA,GAASt9J,GAAgBuhJ,EAAiB,mBAAmB9iJ,OAAO4+J,GAASA,GAASr9J,GAAgBuhJ,EAAiB,iBAAiB9iJ,OAAO2+J,GAAeA,GAAe7b,IACzOjjJ,EAAEgI,EAAMiB,IAAK47F,GAAU38F,EAAM,CAClCu8F,YAAa,MACb/7F,MAAOe,IACLtB,EACN,GC/FEg3J,GAA4B36E,GAAc,CAC5CP,WAAY,CACV45E,WAAYA,GACZqB,KAAMA,GACNlc,KAAMA,GACN5O,SAAUA,MCRVgrB,GAA0B56E,GAAc,CAC1CP,WAAY,CACV6uB,MAAOA,MCJX,SAASpxG,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAQzM,IAAIiG,GAAQ46F,GAAsB,CACvCl7B,MAAOu6B,GAASxO,IAAmB,GACnC4rE,WAAYp9D,GAAS3N,IAA0B,GAC/CrrF,IAAKg5F,GAASlO,GAAkB,QAC/BzK,IAGQg2E,GAA0B76E,GAAO,CAC1C3gF,KAAMwlF,GACNvqF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIr3B,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZC,EAAWk3B,EAAKl3B,SAChBk3J,EAAkC,KAArBr3J,EAAMq3J,YAA2Br3J,EAAMq3J,WACxDA,GAAar3J,EAAM0/D,OAAgB23F,EACnC,IAAI76D,EAAgB,CAClBC,YAAa,aACb/7F,MAAOhH,GAAgB,CACrB,mBAAoBsG,EAAM0/D,MAC1B,yBAAwC,IAAf23F,GACxB,yBAAyBl/J,OAAOk/J,GAAazvJ,GAASyvJ,KAE3D,OAAOr/J,EAAEgI,EAAMiB,IAAK47F,GAAU38F,EAAMs8F,GAAgBr8F,EACtD,ICjCF,SAAS9H,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAYhN,IAAIw9J,GAAa,CAAC,IAAK,cAAe,SAAU,UAE5CvrD,GAAYhyB,GAAKiyB,GAAY,CAAC,QAAS,qBACpCD,GAAU7mE,KAAKzhC,eACfsoG,GAAUhpG,GAAGU,QACb,IAAI1D,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAc,CAAC,EAAGsyB,IAAY,CAAC,EAAG,CAChGwrD,OAAQv9D,GAASxO,IAAmB,GACpCqhB,OAAQ7S,GAASxO,IAAmB,GACpCxqF,IAAKg5F,GAASlO,GAAkB,OAChC2S,QAASzE,GAASlO,OACfxK,IAGMk2E,GAA8Bh7E,GAAO,CAC9C3gF,KAAMylF,GACNxqF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAI4sE,EAEAjkG,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZC,EAAWk3B,EAAKl3B,SAChB2sG,EAAS9sG,EAAM8sG,OACfpO,EAAU1+F,EAAM0+F,QAChBmM,EAAS7qG,EAAM6qG,OACf9gF,EAAW/pB,EAAM+pB,SACjBgjF,EAAO3K,GAAOpiG,GACdiB,EAAM6rG,EAAS,SAAYC,EAAmBjC,GAAZ9qG,EAAMiB,IACxCu2J,KAAYx3J,EAAMw3J,QAAUzqD,GAAQD,GAAUjc,GAAc0mE,GAAYv3J,EAAMiB,MAC9ET,EAAQ,CAAC,EACTk3J,EAAY,CAAC,EAgBjB,OAdI9wE,GAAM3lF,EAAK,WACRf,EAAKM,OAAUN,EAAKM,MAAMgD,OAE7BhD,EAAMgD,KAAO,UAGXxD,EAAM+pB,WAERvpB,EAAMupB,UAAW,IAGnB2tI,EAAYp9D,GAAW0R,GAAWhsG,GAG7BhI,EAAEiJ,EAAK47F,GAAU38F,EAAM,CAC5BM,MAAOA,EACPR,MAAO03J,EACPj7D,YAAa,kBACb/7F,OAAQujG,EAAS,CAAC,EAAGvqG,GAAgBuqG,EAAQ,mBAAmB9rG,OAAOumG,GAAUA,GAAUhlG,GAAgBuqG,EAAQ,yBAA0BuzD,GAAS99J,GAAgBuqG,EAAQ,SAAU4G,GAASnxG,GAAgBuqG,EAAQ,WAAYl6E,GAAWk6E,KAC9O9jG,EACN,IClEEw3J,GAA+Bn7E,GAAc,CAC/CP,WAAY,CACVq7E,WAAYA,GACZG,eAAgBA,MCNpB,SAAS/9J,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAOzM,IAAIiG,GAAQ46F,GAAsB,CACvCl5D,MAAOu4D,GAASxO,IAAmB,GACnCxqF,IAAKg5F,GAASlO,GAAkB,OAChC6rE,cAAe39D,GAASlO,GAAkB,QACzCtK,IAGQo2E,GAA2Bp7E,GAAO,CAC3C3gF,KAAM2lF,GACN1qF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIr3B,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZC,EAAWk3B,EAAKl3B,SAChBy3J,EAAgB53J,EAAM43J,cACtBn0C,EAA0B,QAAlBm0C,EAA0B,QAA4B,WAAlBA,EAA6B,MAE7EA,EACA,OAAO5/J,EAAEgI,EAAMiB,IAAK47F,GAAU38F,EAAM,CAClCu8F,YAAa,cACb/7F,MAAOhH,GAAgB,CACrB,oBAAqBsG,EAAM0hC,OAC1B,cAAcvpC,OAAOsrH,GAAQA,KAC9BtjH,EACN,IC3BSH,GAAQ46F,GAAsB,CACvC35F,IAAKg5F,GAASlO,GAAkB,QAC/BrK,IAGQo2E,GAA0Br7E,GAAO,CAC1C3gF,KAAM4lF,GACN3qF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIr3B,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZC,EAAWk3B,EAAKl3B,SACpB,OAAOnI,EAAEgI,EAAMiB,IAAK47F,GAAU38F,EAAM,CAClCu8F,YAAa,eACXt8F,EACN,ICZSH,GAAQ46F,GAAsB,CACvCspB,OAAQjqB,GAASxO,IAAmB,GACpCssE,WAAY99D,GAASxO,IAAmB,GACxCxqF,IAAKg5F,GAASlO,GAAkB,OAChC6rE,cAAe39D,GAASlO,GAAkB,QACzCvK,IAGQw2E,GAAsBv7E,GAAO,CACtC3gF,KAAM0lF,GACNzqF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIr3B,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZymF,EAAQtvD,EAAKsvD,MACbM,EAAc5vD,EAAK4vD,YACnB9mF,EAAWk3B,EAAKl3B,SAChB+jH,EAASlkH,EAAMkkH,OACf6zC,EAAa/3J,EAAM+3J,WACnBH,EAAgB53J,EAAM43J,cACtBrB,EAAYryC,EAAS/jH,EAAW,GAEpC,IAAK+jH,EAAQ,CACX,IAAIO,EAAY,CAAC,EACblzB,EAAS5K,IACT2K,EAAerK,GAAe,CAAC,EACnCsvE,EAAUv9J,KAAKhB,EAAE8/J,GAAYtmE,GAAcnE,GAAmBo3B,EAAWnzB,EAAcC,KACvF,IAAI0mE,EAASzmE,GAAczE,GAAiB03B,EAAWnzB,EAAcC,GAEjE0mE,GACF1B,EAAUwB,EAAa,OAAS,WAAW//J,EAAE6/J,GAAa,CACxD73J,MAAO,CACL0hC,MAAOq2H,EACPH,cAAeA,IAEhBK,GAEP,CAEA,OAAOjgK,EAAEgI,EAAMiB,IAAK47F,GAAU38F,EAAM,CAClCu8F,YAAa,UACX85D,EACN,IChDE2B,GAA2B17E,GAAc,CAC3CP,WAAY,CACV+7E,OAAQA,GACRH,YAAaA,GACbC,WAAYA,MCDZ/uD,GAAO,sBAGAovD,GAAwB17E,GAAO,CACxCsJ,QAAS,WAIP7uF,KAAK6xG,IAAQ,CAAC,CAChB,EACA3J,cAAe,WACb,IAAI1rF,EAAQxc,KAGZsB,GAAKtB,KAAK6xG,KAAS,CAAC,GAAGvvG,SAAQ,SAAUonD,GACvCltC,EAAMq1F,IAAMnoD,GAAOpnD,SAAQ,SAAU8E,GACnCoV,EAAM0kJ,kBAAkBx3G,EAAOtiD,EACjC,GACF,IACApH,KAAK6xG,IAAQ,IACf,EACAnX,QAAS,CACPymE,yBAA0B,SAAkCz3G,EAAOtiD,GAC7DpH,KAAK6xG,MACP7xG,KAAK6xG,IAAMnoD,GAAS1pD,KAAK6xG,IAAMnoD,IAAU,GAEpCiwC,GAAc35F,KAAK6xG,IAAMnoD,GAAQtiD,IACpCpH,KAAK6xG,IAAMnoD,GAAO5nD,KAAKsF,GAG7B,EACAg6J,2BAA4B,SAAoC13G,EAAOtiD,GACjEpH,KAAK6xG,KAAS7xG,KAAK6xG,IAAMnoD,KAC3B1pD,KAAK6xG,IAAMnoD,GAAS1pD,KAAK6xG,IAAMnoD,GAAOhoD,QAAO,SAAUiO,GACrD,OAAOA,IAAOvI,CAChB,IAEJ,EACAi6J,eAAgB,SAAwBhxE,EAAI3mC,EAAOtiD,GACjDipF,EAAKrwF,KAAKshK,iBAAiB53G,EAAOtiD,GAAYpH,KAAKkhK,kBAAkBx3G,EAAOtiD,EAC9E,EACAk6J,iBAAkB,SAA0B53G,EAAOtiD,GAC7C00E,IACF/pC,GAAQspC,SAAU3xB,EAAOtiD,EAAUgtF,IACnCp0F,KAAKmhK,yBAAyBz3G,EAAOtiD,GAEzC,EACA85J,kBAAmB,SAA2Bx3G,EAAOtiD,GAC/C00E,GACF5pC,GAASmpC,SAAU3xB,EAAOtiD,EAAUgtF,IAGtCp0F,KAAKohK,2BAA2B13G,EAAOtiD,EACzC,KCrDAyqG,GAAO,oBAGA0vD,GAAsBh8E,GAAO,CACtCsJ,QAAS,WAIP7uF,KAAK6xG,IAAQ,CAAC,CAChB,EACA3J,cAAe,WACb,IAAI1rF,EAAQxc,KAGZsB,GAAKtB,KAAK6xG,KAAS,CAAC,GAAGvvG,SAAQ,SAAUonD,GACvCltC,EAAMq1F,IAAMnoD,GAAOpnD,SAAQ,SAAU8E,GACnCoV,EAAMglJ,gBAAgB93G,EAAOtiD,EAC/B,GACF,IACApH,KAAK6xG,IAAQ,IACf,EACAnX,QAAS,CACP+mE,uBAAwB,SAAgC/3G,EAAOtiD,GACzDpH,KAAK6xG,MACP7xG,KAAK6xG,IAAMnoD,GAAS1pD,KAAK6xG,IAAMnoD,IAAU,GAEpCiwC,GAAc35F,KAAK6xG,IAAMnoD,GAAQtiD,IACpCpH,KAAK6xG,IAAMnoD,GAAO5nD,KAAKsF,GAG7B,EACAs6J,yBAA0B,SAAkCh4G,EAAOtiD,GAC7DpH,KAAK6xG,KAAS7xG,KAAK6xG,IAAMnoD,KAC3B1pD,KAAK6xG,IAAMnoD,GAAS1pD,KAAK6xG,IAAMnoD,GAAOhoD,QAAO,SAAUiO,GACrD,OAAOA,IAAOvI,CAChB,IAEJ,EACAu6J,aAAc,SAAsBtxE,EAAI3mC,EAAOtiD,GAC7CipF,EAAKrwF,KAAK4hK,eAAel4G,EAAOtiD,GAAYpH,KAAKwhK,gBAAgB93G,EAAOtiD,EAC1E,EACAw6J,eAAgB,SAAwBl4G,EAAOtiD,GACzC00E,IACF/pC,GAAQ5sC,OAAQukD,EAAOtiD,EAAUgtF,IACjCp0F,KAAKyhK,uBAAuB/3G,EAAOtiD,GAEvC,EACAo6J,gBAAiB,SAAyB93G,EAAOtiD,GAC3C00E,GACF5pC,GAAS/sC,OAAQukD,EAAOtiD,EAAUgtF,IAGpCp0F,KAAK0hK,yBAAyBh4G,EAAOtiD,EACvC,KCzDOy6J,GAAiBt8E,GAAO,CACjCokB,SAAU,CACRm4D,SAAU,WACR,OAAO9hK,KAAKqvG,SAAWrvG,KAAKS,QAAUT,MAAQA,KAAKU,SAASohK,QAC9D,KCJOC,GAAa,SAAoBpwD,GAC1C,IAAIx3E,EAAeh4B,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,KACvF,OAAOwvG,GAAKA,EAAGjxG,SAASZ,UAA2Bq6B,CACrD,ECNA,SAAS33B,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAMzM,IAAIm/J,GAAmBz8E,GAAO,CACnCp8E,OAAQ,CAAC04J,IACTl4D,SAAU,CACRs4D,iBAAkB,WAChB,IAAI1iK,EAAUwiK,GAAW/hK,KAAK8hK,UAC9B,OAAOviK,EAAUiD,GAAgB,CAAC,EAAGjD,EAAS,IAAM,CAAC,CACvD,KCZJ,SAAS4B,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAEzM,IAAIq/J,GAA0B,SAAiC/hK,EAAQgiK,GAC5E,IAAIzhI,EAASv+B,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9EyvG,EAAczxG,EAAOM,MAAQN,EAAOM,MAAMC,SAASkxG,aAAezxG,EAAOM,MAAQ,KACrF,OAAO,IAAI0hK,EAAU3/E,GAAcA,GAAc,CAAC,EAAG9hD,GAAS,CAAC,EAAG,CAChEvgC,OAAQA,EACR2hK,SAAU3hK,EACVyxG,YAAaA,IAEjB,ECYIwwD,GAAmC78E,GAAO,CAI5Ch4E,UAAU,EACV3I,KAAMipF,GACN/kF,MAAO,CAGLu5J,MAAOt/D,GAASjO,KAElB9rF,KAAM,SAAc2oG,GAClB,MAAO,CACL2wD,aAAc3wD,EAAG0wD,MAErB,EACAE,UAAW,WACTjlE,GAAWt9F,KAAK60G,IAClB,EACA11G,OAAQ,SAAgB2B,GACtB,IAAIwhK,EAAetiK,KAAKsiK,aACpBE,EAAS7xJ,GAAW2xJ,GAAgBA,EAAa,CAAC,GAAKA,EAG3D,OAFAE,EAASvhK,GAAOuhK,GAAQ9gK,OAAOyhF,IAE3Bq/E,GAAUA,EAAOpgK,OAAS,IAAMogK,EAAO,GAAGtgI,KACrCsgI,EAAO,GAKT1hK,GACT,IAGSgI,GAAQ,CAIjB81J,UAAW77D,GAAS,CAAC1hB,GAAawT,IAAmB,QACrDhiE,SAAUkwE,GAASxO,IAAmB,GAEtCxqF,IAAKg5F,GAASlO,GAAkB,QAI9B4tE,GAAiCl9E,GAAO,CAC1C3gF,KAAMgpF,GACNzkF,OAAQ,CAACsxF,IACT3xF,MAAOA,GACP8+F,MAAO,CACL/0E,SAAU,CACR6vI,WAAW,EACXjkJ,QAAS,SAAiBoU,GACxBA,EAAW7yB,KAAK2iK,gBAAkB3iK,KAAKgoG,UAAUhoG,KAAK4iK,YACxD,IAGJ/zE,QAAS,WAEP7uF,KAAK6iK,YAAc,KACnB7iK,KAAK8iK,SAAW,IAClB,EACAC,YAAa,WACX/iK,KAAK4iK,aACP,EACAlpC,QAAS,WAOP15H,KAAKgjK,cACP,EACA96D,cAAe,WACbloG,KAAK2iK,gBACL3iK,KAAK6iK,YAAc,IACrB,EACAnoE,QAAS,CAEPuoE,aAAc,WAEZ,GAAInnF,EAAY,CACd,IAAI8iF,EAAY5+J,KAAK4+J,UACrB,OAAOluJ,GAASkuJ,GAAa9/D,GAAO8/D,GAAaA,CACnD,CACE,OAAO,IAEX,EAEAgE,YAAa,WACX,IAAK5iK,KAAK8iK,SAAU,CAClB,IAAII,EAAaljK,KAAKijK,eAEtB,GAAIC,EAAY,CACd,IAAIruD,EAAMx5B,SAASnuE,cAAc,OACjCg2J,EAAWC,YAAYtuD,GACvB70G,KAAK8iK,SAAWZ,GAAwBliK,KAAMoiK,GAAqB,CACjEpzE,GAAI6lB,EACJuuD,UAAW,CAETf,MAAOphK,GAAOjB,KAAKs6F,mBAGzB,CACF,CACF,EAEA0oE,aAAc,WACZ,GAAIlnF,GAAc97E,KAAK8iK,SAAU,CAC/B,IAAIO,EAAYrjK,KAAKo6F,aAAa5tF,QAE7BxM,KAAK6yB,WAEJwwI,GAAarjK,KAAK6iK,cAAgBQ,EAIpCrjK,KAAK8iK,SAASR,aAAee,EACnBA,IAEVrjK,KAAK8iK,SAASR,aAAetiK,KAAKq6F,OAAO7tF,UAK7CxM,KAAK6iK,YAAcQ,CACrB,CACF,EAEAV,cAAe,WACb3iK,KAAK8iK,UAAY9iK,KAAK8iK,SAASQ,WAC/BtjK,KAAK8iK,SAAW,IAClB,GAEF3jK,OAAQ,SAAgB2B,GAEtB,GAAId,KAAK6yB,SAAU,CACjB,IAAI2vI,EAASvhK,GAAOjB,KAAKs6F,iBAAiB54F,OAAOyhF,IAEjD,GAAIq/E,EAAOpgK,OAAS,IAAMogK,EAAO,GAAGtgI,KAClC,OAAOsgI,EAAO,EAElB,CAEA,OAAO1hK,GACT,IAEEyiK,GAAiCh+E,GAAO,CAC1C3gF,KAAMgpF,GACNzkF,OAAQ,CAACsxF,IACT3xF,MAAOA,GACP3J,OAAQ,SAAgB2B,GACtB,GAAId,KAAK6yB,SAAU,CACjB,IAAI2vI,EAASvhK,GAAOjB,KAAKs6F,iBAAiB54F,OAAOyhF,IAEjD,GAAIq/E,EAAOpgK,OAAS,EAClB,OAAOogK,EAAO,EAElB,CAEA,OAAO1hK,EAAE2jF,EAAAA,WAAI++E,SAAU,CACrB13J,GAAI9L,KAAK4+J,WACR5+J,KAAKs6F,gBACV,IAESmpE,GAAgBp1E,GAASk1E,GAAoBd,GChMxD,SAAS7/J,GAAQC,GAAkC,OAAOD,GAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAUF,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqBC,QAAUD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOG,UAAY,gBAAkBJ,CAAK,EAAGD,GAAQC,EAAM,CAE/U,SAAS1B,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAEhN,SAASq8E,GAAgBC,EAAU58D,GAAe,KAAM48D,aAAoB58D,GAAgB,MAAM,IAAIvd,UAAU,oCAAwC,CAExJ,SAAS++E,GAAkB9hF,EAAQ6G,GAAS,IAAK,IAAI5G,EAAI,EAAGA,EAAI4G,EAAM1G,OAAQF,IAAK,CAAE,IAAIygF,EAAa75E,EAAM5G,GAAIygF,EAAW9gF,WAAa8gF,EAAW9gF,aAAc,EAAO8gF,EAAWx/E,cAAe,EAAU,UAAWw/E,IAAYA,EAAWv/E,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ0gF,EAAWpgF,IAAKogF,EAAa,CAAE,CAE5T,SAASqB,GAAazhE,EAAa0hE,EAAYC,GAAyN,OAAtMD,GAAYF,GAAkBxhE,EAAYtf,UAAWghF,GAAiBC,GAAaH,GAAkBxhE,EAAa2hE,GAAc3iF,OAAOoB,eAAe4f,EAAa,YAAa,CAAEnf,UAAU,IAAiBmf,CAAa,CAE5R,SAASmhJ,KAAoX,OAAtTA,GAA9B,qBAAZ3jF,SAA2BA,QAAQ/tE,IAAc+tE,QAAQ/tE,IAAqB,SAAc/P,EAAQ8yB,EAAU4uI,GAAY,IAAIC,EAAOC,GAAe5hK,EAAQ8yB,GAAW,GAAK6uI,EAAL,CAAmB,IAAI3xJ,EAAO1Q,OAAOK,yBAAyBgiK,EAAM7uI,GAAW,OAAI9iB,EAAKD,IAAcC,EAAKD,IAAI3R,KAAK8B,UAAUC,OAAS,EAAIH,EAAS0hK,GAAoB1xJ,EAAK/O,KAA5J,CAAmK,EAAYwgK,GAAK3hK,MAAM/B,KAAMmC,UAAY,CAEja,SAAS0hK,GAAeziK,EAAQ2zB,GAAY,OAAQxzB,OAAO0B,UAAUiD,eAAe7F,KAAKe,EAAQ2zB,GAA+C,GAAlC3zB,EAASy+E,GAAgBz+E,GAAwB,OAAXA,EAAiB,MAAS,OAAOA,CAAQ,CAE7L,SAASg+E,GAAUC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIt6E,UAAU,sDAAyDzD,OAAOoB,eAAe08E,EAAU,YAAa,CAAEn8E,MAAO3B,OAAOs2C,OAAOynC,GAAcA,EAAWr8E,UAAW,CAAED,YAAa,CAAEE,MAAOm8E,EAAUj8E,UAAU,EAAMD,cAAc,KAAWC,UAAU,IAAck8E,GAAYC,GAAgBF,EAAUC,EAAa,CAErb,SAASC,GAAgBh7E,EAAG2iB,GAA+G,OAA1Gq4D,GAAkBh+E,OAAO0/E,gBAAkB,SAAyB18E,EAAG2iB,GAAsB,OAAjB3iB,EAAE8iB,UAAYH,EAAU3iB,CAAG,EAAUg7E,GAAgBh7E,EAAG2iB,EAAI,CAEzK,SAASs4D,GAAaC,GAAW,IAAIC,EAA4BC,KAA6B,OAAO,WAAkC,IAAsC9vE,EAAlC+vE,EAAQC,GAAgBJ,GAAkB,GAAIC,EAA2B,CAAE,IAAII,EAAYD,GAAgB7/E,MAAMgD,YAAa6M,EAASkwE,QAAQC,UAAUJ,EAAOz9E,UAAW29E,EAAY,MAASjwE,EAAS+vE,EAAM79E,MAAM/B,KAAMmC,WAAc,OAAO89E,GAA2BjgF,KAAM6P,EAAS,CAAG,CAExa,SAASowE,GAA2B56E,EAAMhF,GAAQ,GAAIA,IAA2B,WAAlBuC,GAAQvC,IAAsC,oBAATA,GAAwB,OAAOA,EAAa,QAAa,IAATA,EAAmB,MAAM,IAAI2E,UAAU,4DAA+D,OAAOk7E,GAAuB76E,EAAO,CAE/R,SAAS66E,GAAuB76E,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAI86E,eAAe,6DAAgE,OAAO96E,CAAM,CAErK,SAASs6E,KAA8B,GAAuB,qBAAZI,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAUc,KAAM,OAAO,EAAO,GAAqB,oBAAVC,MAAsB,OAAO,EAAM,IAAsF,OAAhFx0E,QAAQtJ,UAAU+9E,QAAQ3gF,KAAK0/E,QAAQC,UAAUzzE,QAAS,IAAI,WAAa,MAAY,CAAM,CAAE,MAAOtC,IAAK,OAAO,CAAO,CAAE,CAExU,SAAS41E,GAAgBt7E,GAAwJ,OAAnJs7E,GAAkBt+E,OAAO0/E,eAAiB1/E,OAAO2/E,eAAiB,SAAyB38E,GAAK,OAAOA,EAAE8iB,WAAa9lB,OAAO2/E,eAAe38E,EAAI,EAAUs7E,GAAgBt7E,EAAI,CAK5M,IAAIu/J,GAA4B,SAAUC,GACxC3kF,GAAU0kF,EAAcC,GAExB,IAAIn0G,EAAS4vB,GAAaskF,GAE1B,SAASA,EAAax3J,GACpB,IAAIkQ,EAEAivH,EAAYtpI,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EASrF,OAPA+8E,GAAgBl/E,KAAM8jK,GAEtBtnJ,EAAQozC,EAAOvvD,KAAKL,KAAMsM,EAAMm/H,GAEhC/oI,GAAiBw9E,GAAuB1jE,GAAQ,CAC9CwnJ,QAAS/gF,OAEJzmE,CACT,CAWA,OATAwnE,GAAa8/E,EAAc,KAAM,CAAC,CAChCvhK,IAAK,WACLyP,IAAK,WACH,OAAOwwE,GAAcA,GAAc,CAAC,EAAGkhF,GAAK7jF,GAAgBikF,GAAe,WAAY9jK,OAAQ,CAAC,EAAG,CACjGgkK,QAAS,MAEb,KAGKF,CACT,CA9BgC,CA8B9Bt4B,ICtDEy4B,GAAiB,KAEjBC,GAAyB,oDACzBC,GAA0B,cAC1BC,GAA0B,kBAG1BC,GAA4B9+E,GAAO,CACrCv8E,KAAM,WACJ,MAAO,CACLs7J,OAAQ,GACRC,WAAY,KACZC,eAAgB,KAChBC,mBAAmB,EAEvB,EACA96D,SAAU,CACR+6D,WAAY,WACV,OAAO1kK,KAAKskK,OAAOliK,MACrB,EACAuiK,cAAe,WACb,OAAO3kK,KAAK0kK,WAAa,CAC3B,GAEF98D,MAAO,CACL88D,WAAY,SAAoBE,EAAUC,GACpC/oF,IACF97E,KAAK8kK,oBAEDF,EAAW,GAAkB,IAAbC,GAElB7kK,KAAK+kK,iBACL/kK,KAAKglK,eACL5lE,GAAS/jB,SAASloC,KAAM,eACF,IAAbyxH,GAAkBC,EAAW,IAEtC7kK,KAAKilK,iBACL5lE,GAAYhkB,SAASloC,KAAM,eAG7BmsD,GAAQjkB,SAASloC,KAAM,wBAAyB1mC,OAAOm4J,IAE3D,EACAN,OAAQ,SAAgBnyJ,GACtB,IAAIqK,EAAQxc,KAEZA,KAAK+kK,iBACLhoE,IAAU,WACRvgF,EAAM0oJ,aAAa/yJ,GAAY,GACjC,GACF,GAEFuoF,QAAS,CAEPyqE,cAAe,SAAuBC,GAEhCA,IAAyC,IAAhCplK,KAAKskK,OAAO9gK,QAAQ4hK,IAC/BplK,KAAKskK,OAAOxiK,KAAKsjK,EAErB,EACAC,gBAAiB,SAAyBD,GACxC,IAAInxH,EAAQj0C,KAAKskK,OAAO9gK,QAAQ4hK,GAE5BnxH,GAAS,IAEXj0C,KAAKskK,OAAOx5H,OAAOmJ,EAAO,GAErBmxH,EAAME,mBAAsBF,EAAMG,cACrCvlK,KAAKwlK,WAAWJ,GAGtB,EACAK,cAAe,WACb,GAAI3pF,GAAckG,GAAOhiF,KAAKukK,YAAa,CAEzC,IAAImB,EAAMrqF,SAASnuE,cAAc,OACjCkyF,GAASsmE,EAAK,kBACdtmE,GAASsmE,EAAK,UACd5lE,GAAS4lE,EAAK,UAAW,QACzBrqF,SAASloC,KAAKgwH,YAAYuC,GAC1B1lK,KAAKukK,WAAazpE,GAAUmF,GAAMylE,GAAKpjB,OAAQ2hB,IAC/C5oF,SAASloC,KAAKoqD,YAAYmoE,EAC5B,CAEA,OAAO1lK,KAAKukK,YAAcN,EAC5B,EACAa,kBAAmB,WACjB,GAAIhpF,GAAckG,GAAOhiF,KAAKwkK,gBAAiB,CAE7C,IAAIkB,EAAMrqF,SAASnuE,cAAc,OACjCkyF,GAASsmE,EAAK,2BACdrqF,SAASloC,KAAKgwH,YAAYuC,GAC1B1lK,KAAKwkK,eAAiBvmE,GAAOynE,GAAKvnE,MAAQunE,EAAI7lC,YAC9CxkD,SAASloC,KAAKoqD,YAAYmoE,EAC5B,CAEA,OAAO1lK,KAAKwkK,gBAAkB,CAChC,EAEAU,aAAc,SAAsBZ,GAClC,IAAIjyD,EAASryG,KAETukK,EAAavkK,KAAKylK,gBAClBjB,EAAiBxkK,KAAK8kK,oBAC1BR,EAAOhiK,SAAQ,SAAU8iK,EAAOnxH,GAE9BmxH,EAAM9iB,OAASiiB,EAAatwH,EAC5BmxH,EAAMZ,eAAiBA,EACvBY,EAAMO,MAAQ1xH,IAAUo+D,EAAOiyD,OAAOliK,OAAS,EAC/CgjK,EAAMX,kBAAoBpyD,EAAOoyD,iBACnC,GACF,EACAe,WAAY,SAAoBJ,GAC1BA,IACFA,EAAM9iB,OAAStiJ,KAAKylK,gBACpBL,EAAMO,OAAQ,EACdP,EAAMX,mBAAoB,EAE9B,EACAM,eAAgB,WAEd,IAAIa,EAAU3nE,GAAO5iB,SAASloC,MAC1B5I,EAAOq7H,EAAQr7H,KACfC,EAAQo7H,EAAQp7H,MAEpBxqC,KAAKykK,kBAAoBl6H,EAAOC,EAAQrlC,OAAOw7H,UACjD,EACAqkC,aAAc,WACZ,IAAI7xH,EAAOkoC,SAASloC,KAOpB,GAHAA,EAAK0yH,wBAA0B1yH,EAAK0yH,yBAA2B,GAC/D1yH,EAAK2yH,uBAAyB3yH,EAAK2yH,wBAA0B,GAEzD9lK,KAAKykK,kBAAmB,CAC1B,IAAID,EAAiBxkK,KAAKwkK,eAI1B/lE,GAAUylE,IAAwB5hK,SAAQ,SAAU0sF,GAClD,IAAI+2E,EAAgBhoE,GAAS/O,EAAI,iBAAmB,GACpDsQ,GAAQtQ,EAAI,qBAAsB+2E,GAClCjmE,GAAS9Q,EAAI,eAAgB,GAAG/tF,OAAOg6F,GAAQgF,GAAMjR,GAAI4pB,aAAc,GAAK4rD,EAAgB,OAE5FrxH,EAAK0yH,wBAAwB/jK,KAAKktF,EACpC,IAIAyP,GAAU0lE,IAAyB7hK,SAAQ,SAAU0sF,GAGnD,IAAIg3E,EAAejoE,GAAS/O,EAAI,gBAAkB,GAClDsQ,GAAQtQ,EAAI,oBAAqBg3E,GACjClmE,GAAS9Q,EAAI,cAAe,GAAG/tF,OAAOg6F,GAAQgF,GAAMjR,GAAI+oB,YAAa,GAAKysD,EAAgB,OAE1FrxH,EAAK2yH,uBAAuBhkK,KAAKktF,EACnC,IAIAyP,GAAU2lE,IAAyB9hK,SAAQ,SAAU0sF,GAGnD,IAAIg3E,EAAejoE,GAAS/O,EAAI,gBAAkB,GAClDsQ,GAAQtQ,EAAI,oBAAqBg3E,GACjClmE,GAAS9Q,EAAI,cAAe,GAAG/tF,OAAOg6F,GAAQgF,GAAMjR,GAAI+oB,YAAa,GAAKysD,EAAgB,OAE1FrxH,EAAK2yH,uBAAuBhkK,KAAKktF,EACnC,IAEA,IAAI+2E,EAAgBhoE,GAAS5qD,EAAM,iBAAmB,GACtDmsD,GAAQnsD,EAAM,qBAAsB4yH,GACpCjmE,GAAS3sD,EAAM,eAAgB,GAAGlyC,OAAOg6F,GAAQgF,GAAM9sD,GAAMylE,aAAc,GAAK4rD,EAAgB,MAClG,CACF,EACAS,eAAgB,WACd,IAAI9xH,EAAOkoC,SAASloC,KAEhBA,EAAK0yH,yBAEP1yH,EAAK0yH,wBAAwBvjK,SAAQ,SAAU0sF,GAEzCqP,GAAQrP,EAAI,wBACd8Q,GAAS9Q,EAAI,eAAgB2Q,GAAQ3Q,EAAI,uBAAyB,IAClEyQ,GAAWzQ,EAAI,sBAEnB,IAGE77C,EAAK2yH,wBAEP3yH,EAAK2yH,uBAAuBxjK,SAAQ,SAAU0sF,GAExCqP,GAAQrP,EAAI,uBACd8Q,GAAS9Q,EAAI,cAAe2Q,GAAQ3Q,EAAI,sBAAwB,IAChEyQ,GAAWzQ,EAAI,qBAEnB,IAGF77C,EAAK0yH,wBAA0B,KAC/B1yH,EAAK2yH,uBAAyB,KAE1BznE,GAAQlrD,EAAM,wBAChB2sD,GAAS3sD,EAAM,eAAgBwsD,GAAQxsD,EAAM,uBAAyB,IACtEssD,GAAWtsD,EAAM,sBAErB,KAIO8yH,GAAe,IAAI5B,GChO9B,SAASljK,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAkChN,IAAIikG,GAAkBjD,GAAe,UAAW,CAC9Cv3F,KAAMioF,GACNp6D,cAAc,EACduvB,MAAOgnC,KAELqW,GAAaD,GAAgB5C,MAC7B8C,GAAaF,GAAgBh+F,MAC7Bm+F,GAAkBH,GAAgBz+F,KAClC6+F,GAAmBJ,GAAgBp9C,MAEnCw8G,GAAmB,WACnBC,GAAc,MACdC,GAAgB,QAChBC,GAAiB,SACjBC,GAAgB,SAEhBC,GAAe,cACfC,GAAY,KACZC,GAAU,CAACH,GAAeC,GAAcC,IAGxCE,GAAkB,CACpBh1C,SAAS,EACTD,WAAW,EACXk1C,eAAe,EACfv9J,YAAY,EACZyrH,gBAAiB,CAAC,QAAS,UAGlB/rH,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAcA,GAAc,CAAC,EAAGi8B,IAAUzX,IAAa,CAAC,EAAG,CACzH9B,UAAWnC,GAASlO,IACpB+xE,gBAAiB7jE,GAASlO,GAAkB,MAE5C,SAAU3xF,GACR,OAAO++E,GAAkB/+E,IAAUy2F,GAAc8sE,GAASvjK,EAC5D,IACAqnH,cAAexnB,GAASlO,IACxBu1B,UAAWrnB,GAAS/N,IACpBy1B,gBAAiB1nB,GAASlO,IAC1BgyE,KAAM9jE,GAASxO,IAAmB,GAClCuyE,WAAY/jE,GAASlO,IACrBkyE,eAAgBhkE,GAASxO,IAAmB,GAC5CyyE,YAAajkE,GAASlO,GAAkB,UACxCoyE,gBAAiBlkE,GAASlO,IAC1BqyE,cAAenkE,GAASlO,GAAkB,aAC1CsyE,SAAUpkE,GAASxO,IAAmB,GACtC6yE,aAAcrkE,GAAS/N,IACvBqyE,YAAatkE,GAAS/N,IACtBu2B,gBAAiBxoB,GAASlO,IAC1B22B,oBAAqBzoB,GAASlO,IAC9Bu2B,YAAaroB,GAAS/N,IACtB02B,UAAW3oB,GAASlO,GAAkB,UACtC42B,kBAAmB1oB,GAASlO,IAC5Bm2B,gBAAiBjoB,GAASlO,IAC1Bo2B,oBAAqBloB,GAASlO,IAC9Bg2B,YAAa9nB,GAAS/N,IACtBsyE,mBAAoBvkE,GAASlO,GAAkB,WAC/C0yE,iBAAkBxkE,GAASlO,GAAkB,SAC7C2yE,mBAAoBzkE,GAASlO,IAC7BmqB,UAAWjc,GAASlO,GAAkB,UACtCq2B,kBAAmBnoB,GAASlO,IAE5B4yE,aAAc1kE,GAASxO,IAAmB,GAE1CmzE,WAAY3kE,GAASxO,IAAmB,GAExC2qB,WAAYnc,GAASxO,IAAmB,GAExCozE,gBAAiB5kE,GAASxO,IAAmB,GAC7CqzE,2BAA4B7kE,GAAS9N,IACrCg7C,KAAMltC,GAASxO,IAAmB,GAClCszE,WAAY9kE,GAAS/N,IACrB8yE,kBAAmB/kE,GAASxO,IAAmB,GAC/CwzE,aAAchlE,GAASxO,IAAmB,GAC1CyzE,eAAgBjlE,GAASxO,IAAmB,GAC5C+R,OAAQvD,GAASxO,IAAmB,GACpC0zE,WAAYllE,GAASxO,IAAmB,GACxC2zE,WAAYnlE,GAASxO,IAAmB,GACxC4zE,OAAQplE,GAASxO,IAAmB,GACpC6zE,QAASrlE,GAASlO,GAAkB,MACpCwzE,YAAatlE,GAASlO,IACtByzE,UAAWvlE,GAASlO,GAAkB,WAEtC0zE,YAAaxlE,GAAS,CAAC1hB,GAAasT,GAAkBE,KACtD2zE,WAAYzlE,GAASxO,IAAmB,GACxCjpF,KAAMy3F,GAASlO,GAAkB,MACjC4zE,OAAQ1lE,GAASxO,IAAmB,GACpCtnF,MAAO81F,GAASlO,IAChB6zE,WAAY3lE,GAAS/N,IACrB2zE,UAAW5lE,GAASlO,IACpB+zE,YAAa7lE,GAASxO,IAAmB,GACzCo1B,SAAU5mB,GAASlO,GAAkB,SAClCpK,IAGMo+E,GAAsBtjF,GAAO,CACtC3gF,KAAM6lF,GACNthF,OAAQ,CAACsoG,GAAY6M,GAASvX,GAAYk6D,GAAuBnvD,GAAmByvD,GAAqB9mE,GAAoBunE,IAC7HnuD,cAAc,EACd/qG,MAAOA,GACPE,KAAM,WACJ,MAAO,CACL61D,UAAU,EAEVg/B,WAAW,EAEXirE,iBAAiB,EAEjBC,QAAQ,EAERlvC,SAAS,EAETmvC,WAAW,EAEXC,WAAW,EAEXC,qBAAqB,EAErBC,oBAAoB,EAEpB3E,eAAgB,EAChBliB,OAAQ2jB,GAAaR,gBACrBE,OAAO,EACPlB,mBAAmB,EAEvB,EACA96D,SAAU,CACRy/D,QAAS,WACP,OAAOppK,KAAKw+G,QACd,EACA6qD,aAAc,WACZ,OAAOrpK,KAAKw+G,OAAO,oBACrB,EACA8qD,cAAe,WACb,OAAOtpK,KAAKw+G,OAAO,qBACrB,EACA+qD,YAAa,WACX,OAAOvpK,KAAKw+G,OAAO,mBACrB,EACAgrD,aAAc,WACZ,OAAOxpK,KAAKw+G,OAAO,oBACrB,EACAirD,eAAgB,WACd,OAAOzpK,KAAKw+G,OAAO,sBACrB,EACAkrD,cAAe,WACb,OAAO1pK,KAAKw+G,OAAO,qBACrB,EACAmrD,gBAAiB,WACf,OAAO3pK,KAAKw+G,OAAO,uBACrB,EACAorD,aAAc,WACZ,MAAO,CAAC,CACN7+J,MAAO/K,KAAKsmG,OACZc,KAAMpnG,KAAK+oK,QACV/oK,KAAK6nK,WACV,EACAgC,YAAa,WACX,IAAIC,EAAU,GAAG7oK,OAAOjB,KAAKwkK,eAAgB,MAC7C,MAAO,CACL7rD,aAAc34G,KAAKykK,mBAAqBzkK,KAAKmpK,mBAAqBW,EAAU,GAC5ElxD,aAAc54G,KAAKykK,oBAAsBzkK,KAAKmpK,mBAAqBW,EAAU,GAG7EhwC,QAAS95H,KAAK65H,QAAU,QAAU,OAEtC,EACAkwC,cAAe,WACb,IAAI5pI,EAEJ,MAAO,EAAEA,EAAO,CAAC,EAAG39B,GAAgB29B,EAAM,SAASl/B,OAAOjB,KAAKsL,MAAOtL,KAAKsL,MAAO9I,GAAgB29B,EAAM,wBAAyBngC,KAAKmnK,UAAW3kK,GAAgB29B,EAAM,0BAA2BngC,KAAKwoK,YAAaroI,GAAOngC,KAAKqnK,YAClO,EACAz0B,cAAe,WACb,IAAIhnC,EAEJ,MAAO,EAAEA,EAAQ,CAAC,EAAGppG,GAAgBopG,EAAO,MAAM3qG,OAAOjB,KAAKgrH,iBAAkBhrH,KAAKgrH,iBAAkBxoH,GAAgBopG,EAAO,QAAQ3qG,OAAOjB,KAAKkrH,mBAAoBlrH,KAAKkrH,mBAAoB1oH,GAAgBopG,EAAO,UAAU3qG,OAAOjB,KAAKirH,qBAAsBjrH,KAAKirH,qBAAsBrf,GAAQ5rG,KAAK6qH,YAC5S,EACAm/C,aAAc,WACZ,MAAO,CAAC,CACN,UAAWhqK,KAAK4oK,aACf5oK,KAAK0oK,WACV,EACAuB,YAAa,WACX,IAAIl+D,EAEJ,MAAO,EAAEA,EAAQ,CAAC,EAAGvpG,GAAgBupG,EAAO,MAAM9qG,OAAOjB,KAAKuqH,eAAgBvqH,KAAKuqH,eAAgB/nH,GAAgBupG,EAAO,QAAQ9qG,OAAOjB,KAAKyqH,iBAAkBzqH,KAAKyqH,iBAAkB1e,GAAQ/rG,KAAKoqH,UACtM,EACA8/C,cAAe,WACb,IAAIC,EAEJ,MAAO,EAAEA,EAAQ,CAAC,EAAG3nK,GAAgB2nK,EAAO,MAAMlpK,OAAOjB,KAAKurH,iBAAkBvrH,KAAKurH,iBAAkB/oH,GAAgB2nK,EAAO,QAAQlpK,OAAOjB,KAAKyrH,mBAAoBzrH,KAAKyrH,mBAAoBjpH,GAAgB2nK,EAAO,UAAUlpK,OAAOjB,KAAKwrH,qBAAsBxrH,KAAKwrH,qBAAsB2+C,GAAQnqK,KAAKorH,YAC5S,EACAg/C,gBAAiB,WAEf,MAAO,CACLvpE,SAAU,WACVyhD,OAAQtiJ,KAAKsiJ,OAEjB,EACA/0B,UAAW,WACT,MAAO,CACL9rG,OAAQzhB,KAAKqqK,SACblxC,MAAOn5H,KAAKsqK,QACZ7/B,KAAMzqI,KAAKyqI,KACX3/E,GAAI9qD,KAAKuqK,KACTp8C,QAASnuH,KAAK69F,UAElB,EACA2sE,kCAAmC,WAEjC,OAAOvpK,GAAOjB,KAAK4nK,4BAA4BlmK,OAAOyhF,IAAU58E,KAAK,KAAK0B,MAC5E,EACAksG,cAAe,WAGb,IAAI8tD,EAAoBjiK,KAAKyoK,OAAiC,CAAC,EAAzBzoK,KAAKiiK,iBAC3C,OAAOz/E,GAAcA,GAAcA,GAAc,CAAC,EAAGy/E,GAAmBjiK,KAAKuxG,SAAU,CAAC,EAAG,CACzF34E,GAAI54B,KAAKqpK,cAEb,EACAoB,mBAAoB,WAClB,IAAI5sE,EAAY79F,KAAK69F,UACjBqH,EAAYllG,KAAKklG,UACrB,MAAO,CACLtsE,GAAI54B,KAAKopK,QACT9gE,KAAM,SACN,cAAezK,EAAY,KAAO,OAClC,aAAcA,EAAY,OAAS,KACnC,aAAcqH,EACd,kBAAmBllG,KAAKk/G,YAAcha,KACpCllG,KAAKk6F,kBAAkBjC,KAA0Bj4F,KAAK2oK,WAAa3oK,KAAKiN,OAAS,KAAOjN,KAAKwpK,aAC/F,mBAAoBxpK,KAAKupK,YAE7B,GAEF3hE,MAAOplG,GAAgB,CAAC,EAAGykG,IAAiB,SAAU90F,EAAU4+F,GAC1D5+F,IAAa4+F,GACf/wG,KAAKmS,EAAW,OAAS,SAE7B,IACA08E,QAAS,WAEP7uF,KAAKq0H,WAAa,KAClBr0H,KAAK0qK,cAAgB1qK,KAAKuoK,aAAe,IAC3C,EACA5tD,QAAS,WAEP36G,KAAKsiJ,OAAS2jB,GAAaR,gBAG3BzlK,KAAKkyG,aAAalN,GAAuBva,GAAY4I,IAAkBrzF,KAAK2qK,aAC5E3qK,KAAKkyG,aAAalN,GAAuBva,GAAYqH,IAAkB9xF,KAAK6vI,aAC5E7vI,KAAKkyG,aAAalN,GAAuBva,GAAYkJ,IAAoB3zF,KAAK4qK,eAG9E5qK,KAAKkyG,aAAanN,GAAiBta,GAAY4I,IAAkBrzF,KAAK6qK,gBAExC,IAA1B7qK,KAAKinG,KACPjnG,KAAKgoG,UAAUhoG,KAAKonG,KAExB,EACAc,cAAe,WAEb+9D,GAAaZ,gBAAgBrlK,MAC7BA,KAAKu0H,aAAY,GAEbv0H,KAAK69F,YACP79F,KAAK69F,WAAY,EACjB79F,KAAK+oK,QAAS,EACd/oK,KAAK8oK,iBAAkB,EAE3B,EACApuE,QAAS,CACP65B,YAAa,WACX,IAAIlkC,EAAKluF,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,IAAmBA,UAAU,GACxEnC,KAAKq0H,YAAcr0H,KAAKq0H,WAAWvF,aACnC9uH,KAAKq0H,WAAa,KAEdhkC,IACFrwF,KAAKq0H,WAAapD,GAAWjxH,KAAK6lH,MAAM1gB,QAASnlG,KAAK8qK,mBAAmB5hK,KAAKlJ,MAAO0mK,IAEzF,EAEAqE,YAAa,SAAqB7nK,GAC5BA,IAAUlD,KAAKinG,KACjBjnG,KAAK8nG,MAAMZ,GAAkBhkG,EAEjC,EAEA8nK,WAAY,SAAoB1+J,GAC9B,IAAI3M,EAAUwC,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,OAAO,IAAI2hK,GAAax3J,EAAMk2E,GAAcA,GAAc,CAExDkpD,YAAY,EACZzpI,OAAQjC,KAAK6lH,MAAMu/C,OAASplK,KAAK60G,KAAO,KACxCoG,cAAe,KACf+oD,QAAS,MACRrkK,GAAU,CAAC,EAAG,CAEfisI,UAAW5rI,KACX6rI,YAAa7rI,KAAKopK,UAEtB,EAEAhiE,KAAM,WACJ,IAAIpnG,KAAK69F,YAAa79F,KAAKgpK,UAS3B,GAAIhpK,KAAKipK,UAIPjpK,KAAKuyG,MAAM1gB,GAAmB7xF,KAAKonG,UAJrC,CAUApnG,KAAKgpK,WAAY,EAEjBhpK,KAAK0qK,cAAgB1qK,KAAK0qK,eAAiB1qK,KAAKy9F,mBAChD,IAAIwtE,EAAYjrK,KAAKgrK,WAAW33E,GAAiB,CAC/Cq4C,YAAY,IAId,GAFA1rI,KAAK0hD,UAAUupH,GAEXA,EAAUn/B,kBAAoB9rI,KAAK69F,UAIrC,OAHA79F,KAAKgpK,WAAY,OAEjBhpK,KAAK+qK,aAAY,GAKnB/qK,KAAKqwH,QAlBL,CAmBF,EAEAoa,KAAM,WACJ,IAAIu5B,EAAU7hK,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,GAElF,GAAKnC,KAAK69F,YAAa79F,KAAKipK,UAA5B,CAKAjpK,KAAKipK,WAAY,EACjB,IAAIiC,EAAYlrK,KAAKgrK,WAAWl5E,GAAiB,CAC/C45C,WAAYs4B,IAAYoC,GACxBpC,QAASA,GAAW,OAatB,GAVIA,IAAYwC,GACdxmK,KAAK8nG,MAAMzV,GAAe64E,GACjBlH,IAAYsC,GACrBtmK,KAAK8nG,MAAMrX,GAAmBy6E,GACrBlH,IAAYuC,IACrBvmK,KAAK8nG,MAAMjX,GAAkBq6E,GAG/BlrK,KAAK0hD,UAAUwpH,GAEXA,EAAUp/B,mBAAqB9rI,KAAK69F,UAItC,OAHA79F,KAAKipK,WAAY,OAEjBjpK,KAAK+qK,aAAY,GAKnB/qK,KAAKu0H,aAAY,GAEjBv0H,KAAK69F,WAAY,EAEjB79F,KAAK+qK,aAAY,EA9BjB,CA+BF,EAEAj1D,OAAQ,SAAgBq1D,GAClBA,IACFnrK,KAAK0qK,cAAgBS,GAGnBnrK,KAAK69F,UACP79F,KAAKyqI,KAAK47B,IAEVrmK,KAAKonG,MAET,EAEA3J,iBAAkB,WAGhB,IAAIE,EAAgBytE,GAAkBtvF,EAAa,CAACT,SAASloC,MAAQ,IASrE,OAAOwqD,GAAiBA,EAAc+D,MAAQ/D,EAAgB,IAChE,EAEA0yB,OAAQ,WACN,IAAI7zG,EAAQxc,KAGRimK,GAAatB,eAAiB3kK,KAAKioK,WAErCjoK,KAAKoyG,iBAAiBrN,GAAiBta,GAAYoH,IAAoB7xF,KAAKqwH,SAI9E41C,GAAad,cAAcnlK,MAE3BA,KAAK6+D,UAAW,EAChB7+D,KAAKgoG,WAAU,WAGbxrF,EAAMqhF,WAAY,EAClBrhF,EAAMwsJ,WAAY,EAElBxsJ,EAAMuuJ,aAAY,GAElBvuJ,EAAMwrF,WAAU,WAGdxrF,EAAM+3G,aAAY,EACpB,GACF,IACF,EAEA82C,cAAe,WACbrrK,KAAK8oK,iBAAkB,EACvB9oK,KAAKsrK,gBAAe,EACtB,EACA1zC,QAAS,WACP,IAAIvlB,EAASryG,KAEbA,KAAK65H,SAAU,EAIf98B,IAAU,WACRA,IAAU,WACRsV,EAAO02D,QAAS,CAClB,GACF,GACF,EACAjxC,aAAc,WACZ,IAAIpS,EAAS1lH,KAEbA,KAAK8qK,qBACL9qK,KAAK8oK,iBAAkB,EAKvB/rE,IAAU,WACR2oB,EAAOhkE,UAAUgkE,EAAOslD,WAAW13E,KAEnCoyB,EAAO6lD,iBAAgB,GAEvB7lD,EAAO1d,WAAU,WAGf0d,EAAO9K,YACT,GACF,GACF,EACA4wD,cAAe,WACbxrK,KAAK8oK,iBAAkB,EACvB9oK,KAAKsrK,gBAAe,GACpBtrK,KAAKurK,iBAAgB,EACvB,EACAxzC,QAAS,WAEP/3H,KAAK+oK,QAAS,CAChB,EACA/wC,aAAc,WACZ,IAAIjS,EAAS/lH,KAEbA,KAAK65H,SAAU,EACf75H,KAAK8oK,iBAAkB,EACvB9oK,KAAKmpK,oBAAqB,EAC1BnpK,KAAK6+D,UAAW,EAChB7+D,KAAKgoG,WAAU,WACb+d,EAAOkjD,WAAY,EACnBhD,GAAaZ,gBAAgBt/C,GAE7BA,EAAO0lD,gBAIP1lD,EAAOrkE,UAAUqkE,EAAOilD,WAAWn5E,IACrC,GACF,EACAnwC,UAAW,SAAmB6sF,GAC5B,IAAIjiI,EAAOiiI,EAAQjiI,KAGnBtM,KAAKyyG,WAAW1N,GAAiBta,GAAYn+E,GAAOiiI,EAASA,EAAQ1C,aACrE7rI,KAAK8nG,MAAMx7F,EAAMiiI,EACnB,EAEAm9B,kBAAmB,WACjB,IAAIzlD,EAASjmH,KAITolK,EAAQplK,KAAK6lH,MAAMu/C,MAEnBuG,EAAmB,SAASA,EAAiBjiH,GAC/CxX,GAASkzH,EAAO,UAAWuG,EAAkBv3E,IAEzC1qC,EAAMznD,SAAWmjK,IACnBn/C,EAAOijD,qBAAsB,EAEjC,EAEAn3H,GAAQqzH,EAAO,UAAWuG,EAAkBv3E,GAC9C,EACAw3E,WAAY,SAAoBliH,GAC1B1pD,KAAKkpK,oBAGPlpK,KAAKkpK,qBAAsB,EAMxBlpK,KAAK69F,YAAa79F,KAAK8nK,mBAAsBhqE,GAASziB,SAASloC,KAAMuW,EAAMznD,UAK3E67F,GAAS99F,KAAK6lH,MAAM1gB,QAASz7C,EAAMznD,SACtCjC,KAAKyqI,KAAKy7B,IAEd,EACAqE,KAAM,WACJvqK,KAAKyqI,KAAK+7B,GACZ,EACA6D,SAAU,WACRrqK,KAAKyqI,KAAK67B,GACZ,EACAgE,QAAS,WACPtqK,KAAKyqI,KAAK87B,GACZ,EACA52B,MAAO,SAAejmF,GAEhBA,EAAM0sD,UAAYxG,IAAY5vG,KAAK69F,YAAc79F,KAAK+nK,cACxD/nK,KAAKyqI,KAAK07B,GAEd,EAEAxkB,aAAc,SAAsBj4F,GAElC,IAAIy7C,EAAUnlG,KAAK6lH,MAAM1gB,QACrBljG,EAASynD,EAAMznD,OAEnB,KAAIjC,KAAKgoK,iBAAmBhoK,KAAK2lK,QAAU3lK,KAAK69F,YAAcsH,GAAW9pB,WAAap5E,GAAU67F,GAASqH,EAASljG,IAAWjC,KAAKwqK,mCAAqChuE,GAAQx8F,KAAKwqK,kCAAmCvoK,GAAQ,IAA/N,CAIA,IAAI4pK,EAAWvqE,GAAYthG,KAAK6lH,MAAM1gB,SAClC2mE,EAAa9rK,KAAK6lH,MAAM,eACxBkmD,EAAU/rK,KAAK6lH,MAAM,YAEzB,GAAIimD,GAAc7pK,IAAW6pK,GAG3B,GAAIrqE,GAAaoqE,EAAS,IAExB,YAEG,GAAIE,GAAW9pK,IAAW8pK,GAG3BtqE,GAAaoqE,EAASA,EAASzpK,OAAS,IAE1C,OAKJq/F,GAAa0D,EAAS,CACpB6mE,eAAe,GAxBjB,CA0BF,EAEAT,gBAAiB,SAAyBl7E,GACxCrwF,KAAKqhK,eAAehxE,EAAI,UAAWrwF,KAAK2hJ,aAC1C,EAEA2pB,eAAgB,SAAwBj7E,GACtCrwF,KAAK2hK,aAAatxE,EAAI,SAAUrwF,KAAK8qK,oBACrC9qK,KAAK2hK,aAAatxE,EAAI,oBAAqBrwF,KAAK8qK,mBAClD,EAEAH,YAAa,SAAqB/xI,EAAIuyI,GAChCvyI,IAAO54B,KAAKopK,UACdppK,KAAK0qK,cAAgBS,GAAanrK,KAAKy9F,mBACvCz9F,KAAKonG,OAET,EACAyoC,YAAa,SAAqBj3G,GAC5BA,IAAO54B,KAAKopK,SACdppK,KAAKyqI,KAAK,QAEd,EACAmgC,cAAe,SAAuBhyI,EAAIuyI,GACpCvyI,IAAO54B,KAAKopK,SACdppK,KAAK81G,OAAOq1D,EAEhB,EACAN,cAAe,SAAuBt8B,GAEhCvuI,KAAKioK,YAAc15B,EAAQ3C,YAAc5rI,MAC3CA,KAAKyqI,MAET,EAEA7vB,WAAY,WACV,IAAIuM,EAASnnH,KAGT87E,GACFihB,IAAU,WACR,IAAIqoE,EAAQj+C,EAAOtB,MAAMu/C,MACrBjgE,EAAUgiB,EAAOtB,MAAM1gB,QAEvBxH,EAAgBwpB,EAAO1pB,mBAG3B,GAAI2nE,GAASjgE,KAAaxH,IAAiBG,GAASqH,EAASxH,IAAiB,CAC5E,IAAI7yC,EAAKq8D,EAAOtB,MAAM,aAClBpkG,EAAS0lG,EAAOtB,MAAM,iBACtBsT,EAAQhS,EAAOtB,MAAM,gBAErBomD,EAAY9kD,EAAOy/C,gBAGnB53E,EAAKi9E,IAAczF,IAAa17G,EAAKA,EAAG+pD,KAAO/pD,EAAKmhH,IAAc3F,IAAiB7kJ,EAASA,EAAOozF,KAAOpzF,EAASwqJ,IAAc1F,IAAgBptC,EAAQA,EAAMtkB,KAAOskB,EAAQh0B,EAElL1D,GAAazS,GAETA,IAAOmW,GAETgiB,EAAOnf,WAAU,WACfo9D,EAAMpmC,UAAY,CACpB,GAEJ,CACF,GAEJ,EACAysC,cAAe,WAGb,IAAIz8E,EAAKhvF,KAAKuoK,aAAevoK,KAAK0qK,eAAiB,KACnD1qK,KAAK0qK,cAAgB,KACrB1qK,KAAKgoG,WAAU,WAEbhZ,EAAKt+E,GAASs+E,GAAM8P,GAAO9P,GAAMA,EAE7BA,IAEFA,EAAKA,EAAG6lB,KAAO7lB,EACfyS,GAAazS,GAEjB,GACF,EACA87E,mBAAoB,WAClB,GAAI9qK,KAAK69F,UAAW,CAClB,IAAIunE,EAAQplK,KAAK6lH,MAAMu/C,MACvBplK,KAAKmpK,mBAAqB/D,EAAMvtC,aAAex8C,SAASqB,gBAAgBojD,YAC1E,CACF,EACAosC,UAAW,SAAmBprK,GAE5B,IAAIymH,EAAUzmH,IAEd,IAAKd,KAAKk/G,WAAY,CAEpB,IAAIitD,EAAensK,KAAKs6F,cAAcxC,GAAwB93F,KAAKutH,WAEnE,IAAK4+C,EAAc,CACjB,IAAIC,EAAetrK,IAEdd,KAAK2nK,kBACRyE,EAAetrK,EAAEukG,GAAc,CAC7Bv8F,MAAO,CACLq8F,QAASnlG,KAAKsnK,mBACdz0I,SAAU7yB,KAAK8oK,gBACf5jE,UAAWllG,KAAKunK,iBAChBniE,YAAaplG,KAAKwnK,oBAAsBxnK,KAAKkrH,mBAE/C76B,GAAI,CACFmV,MAAOxlG,KAAKsqK,SAEdnpJ,IAAK,gBAEP,CAACnhB,KAAKs6F,cAAcvC,OAGtBo0E,EAAe,CAACrrK,EAAEd,KAAK2pH,SAAU,CAC/BpkB,YAAa,cACb/7F,MAAOxJ,KAAKgqK,aACZ1gK,MAAO,CACLsvB,GAAI54B,KAAKwpK,cAGX/jE,SAAUzlG,KAAKk6F,kBAAkBjC,IAAyB,CAAC,EAAIghB,GAAWj5G,KAAK2oK,UAAW3oK,KAAKiN,QAEjGjN,KAAKs6F,cAAcrC,GAAuBj4F,KAAKutH,YAAa6+C,EAC9D,CAEA7kD,EAAUzmH,EAAEd,KAAKg/G,UAAW,CAC1BzZ,YAAa,eACb/7F,MAAOxJ,KAAK4yI,cACZtpI,MAAO,CACLsvB,GAAI54B,KAAKspK,eAEXnoJ,IAAK,UACJ,CAACgrJ,GACN,CAGA,IAAIE,EAAQvrK,EAAE,MAAO,CACnBykG,YAAa,aACb/7F,MAAOxJ,KAAKiqK,YACZ3gK,MAAO,CACLsvB,GAAI54B,KAAKupK,aAEXpoJ,IAAK,QACJnhB,KAAKs6F,cAAcnE,GAAmBn2F,KAAKutH,YAE1CK,EAAU9sH,IAEd,IAAKd,KAAK0nK,WAAY,CAEpB,IAAI4E,EAAetsK,KAAKs6F,cAAczC,GAAwB73F,KAAKutH,WAEnE,IAAK++C,EAAc,CACjB,IAAIC,EAAgBzrK,IAEfd,KAAKmoK,SACRoE,EAAgBzrK,EAAEo1G,GAAS,CACzBptG,MAAO,CACL0+F,QAASxnG,KAAKknK,cACd57J,KAAMtL,KAAK8mK,WACXj0I,SAAU7yB,KAAK+mK,gBAAkB/mK,KAAK6mK,MAAQ7mK,KAAK8oK,iBAGrDrjE,SAAUzlG,KAAKk6F,kBAAkBtC,IAA0B,CAAC,EAAIqhB,GAAWj5G,KAAKinK,gBAAiBjnK,KAAKgnK,aACtG32E,GAAI,CACFmV,MAAOxlG,KAAKqqK,UAEdlpJ,IAAK,iBAEPnhB,KAAKs6F,cAAc1C,MAGrB,IAAI40E,EAAY1rK,EAAEo1G,GAAS,CACzBptG,MAAO,CACL0+F,QAASxnG,KAAKsoK,UACdh9J,KAAMtL,KAAK8mK,WACXj0I,SAAU7yB,KAAKkoK,YAAcloK,KAAK6mK,MAAQ7mK,KAAK8oK,iBAGjDrjE,SAAUzlG,KAAKk6F,kBAAkBlC,IAAsB,CAAC,EAAIihB,GAAWj5G,KAAKqoK,YAAaroK,KAAKooK,SAC9F/3E,GAAI,CACFmV,MAAOxlG,KAAKuqK,MAEdppJ,IAAK,aAEPnhB,KAAKs6F,cAActC,KACnBs0E,EAAe,CAACC,EAAeC,EACjC,CAEA5+C,EAAU9sH,EAAEd,KAAK0rH,UAAW,CAC1BnmB,YAAa,eACb/7F,MAAOxJ,KAAKkqK,cACZ5gK,MAAO,CACLsvB,GAAI54B,KAAK0pK,eAEXvoJ,IAAK,UACJ,CAACmrJ,GACN,CAGA,IAAIG,EAAgB3rK,EAAE,MAAO,CAC3BykG,YAAa,gBACb/7F,MAAOxJ,KAAKonK,aACZ99J,MAAO,CACLsvB,GAAI54B,KAAKypK,eACTr1D,SAAU,MAEZjzF,IAAK,WACJ,CAAComG,EAAS8kD,EAAOz+C,IAGhB8+C,EAAc5rK,IACd6rK,EAAiB7rK,IAEjBd,KAAK69F,YAAc79F,KAAKgoK,iBAC1B0E,EAAc5rK,EAAE,OAAQ,CACtBwI,MAAO,CACL8qG,SAAU,KAEZjzF,IAAK,aAEPwrJ,EAAiB7rK,EAAE,OAAQ,CACzBwI,MAAO,CACL8qG,SAAU,KAEZjzF,IAAK,iBAKT,IAAIyrJ,EAAe9rK,EAAE,MAAO,CAC1BykG,YAAa,eACb/7F,MAAOxJ,KAAK+pK,cACZ15E,GAAI,CACFmhD,UAAWxxI,KAAK0rK,mBAElBvqJ,IAAK,UACJ,CAACurJ,EAAaD,EAAeE,IAE5BE,EAAS/rK,EAAE,MAAO,CACpBykG,YAAa,QACb/7F,MAAOxJ,KAAK4pK,aACZ9hK,MAAO9H,KAAK6pK,YACZvgK,MAAOtJ,KAAKyqK,mBACZp6E,GAAI,CACF8lB,QAASn2G,KAAK2vI,MACdnqC,MAAOxlG,KAAK4rK,YAEd5mF,WAAY,CAAC,CACXpgF,KAAM,OACN1B,MAAOlD,KAAK69F,YAEd18E,IAAK,SACJ,CAACyrJ,IAKJC,EAAS/rK,EAAE,aAAc,CACvBgI,MAAO,CACL+8F,WAAY,GACZE,aAAc,GACdD,iBAAkB,GAClBE,WAAY,GACZC,iBAAkB,GAClBC,aAAc,IAEhB7V,GAAI,CACFy8E,YAAa9sK,KAAKqrK,cAClBlzC,MAAOn4H,KAAK43H,QACZQ,WAAYp4H,KAAK83H,aACjBi1C,YAAa/sK,KAAKwrK,cAClBnzC,MAAOr4H,KAAK+3H,QACZO,WAAYt4H,KAAKg4H,eAElB,CAAC60C,IAEJ,IAAIG,EAAYlsK,IAkBhB,OAhBKd,KAAKynK,cAAgBznK,KAAK69F,YAC7BmvE,EAAYlsK,EAAE,MAAO,CACnBykG,YAAa,iBACbj8F,MAAO,CACLsvB,GAAI54B,KAAK2pK,kBAGb3pK,KAAKs6F,cAAc3C,MAGrBq1E,EAAYlsK,EAAE0lG,GAAc,CAC1B19F,MAAO,CACLw9F,OAAQtmG,KAAKsmG,SAEd,CAAC0mE,IAEGlsK,EAAE,MAAO,CACdgH,MAAO9H,KAAKoqK,gBACZ9gK,MAAOtJ,KAAKm0G,cACZ5xG,IAAK,eAAetB,OAAOjB,KAAKouF,MAC/B,CAACy+E,EAAQG,GACd,GAEF7tK,OAAQ,SAAgB2B,GACtB,OAAId,KAAKyoK,OACAzoK,KAAKiwI,MAAQjwI,KAAK6+D,SAAW/9D,IAAMd,KAAKksK,UAAUprK,GAElDd,KAAK6+D,SAAW/9D,IAAMA,EAAE2iK,GAAe,CAACzjK,KAAKksK,UAAUprK,IAElE,ICv6BEmsK,GAA8BjoE,GAAuBva,GAAY4I,IAEjE65E,GAAW,yBAEXC,GAAY,SAAmBhtI,GACjC,IAAIitI,EAAiBjtI,EAAK6uF,UACtBA,OAA+B,IAAnBo+C,EAA4B,CAAC,EAAIA,EAC7C/8J,EAAM8vB,EAAK9vB,IACXnN,EAAQi9B,EAAKj9B,MAEjB,OAAOwN,GAASxN,GAASA,EAAQwN,GAASL,GAAOA,EAAM/O,GAAK0tH,GAAWlrD,UAAU,EACnF,EAEIupG,GAAoB,SAA2Br+E,GAGjD,OAAOA,GAAMjiD,GAAQiiD,EAAI,qCAAsC8P,GAAO,YAAa9P,IAAYA,CACjG,EAEIs+E,GAAU,SAAiBtJ,GAEzBA,GAA+B,WAApBA,EAAQttC,UAEhBr4B,GAAQ2lE,EAAS,SACpB1kE,GAAQ0kE,EAAS,OAAQ,UAIH,MAApBA,EAAQttC,SAAoBr4B,GAAQ2lE,EAAS,aAC/C1kE,GAAQ0kE,EAAS,WAAY,KAGnC,EAEI96J,GAAO,SAAc8lF,EAAIC,EAASC,GACpC,IAAIjtF,EAASkrK,GAAUl+E,GACnB+0E,EAAUqJ,GAAkBr+E,GAEhC,GAAI/sF,GAAU+hK,EAAS,CACrB,IAAIvlJ,EAAU,SAAiBirC,GAE7B,IAAIirD,EAAgBjrD,EAAMirD,cAE1B,IAAKvW,GAAWuW,GAAgB,CAC9B,IAAIroG,EAAOo9C,EAAMp9C,KACb/J,EAAMmnD,EAAM0sD,QAEH,UAAT9pG,IAA6B,YAATA,GAAuB/J,IAAQotG,IAAcptG,IAAQ2tG,KAC3EwB,GAAayoB,GAAyBjrC,EAAOD,IAAU6Y,MAAMmlE,GAA6BhrK,EAAQ0yG,EAEtG,CACF,EAEA3lB,EAAGk+E,IAAY,CACbzuJ,QAASA,EACTxc,OAAQA,EACR+hK,QAASA,GAGXsJ,GAAQtJ,GAERjyH,GAAQiyH,EAAS,QAASvlJ,EAAS01E,IAEX,WAApB6vE,EAAQttC,SAAqD,WAA7B/2B,GAAQqkE,EAAS,SAGnDjyH,GAAQiyH,EAAS,UAAWvlJ,EAAS01E,GAEzC,CACF,EAEIi7B,GAAS,SAAgBpgC,GAC3B,IAAIu+E,EAAUv+E,EAAGk+E,KAAa,CAAC,EAC3BlJ,EAAUuJ,EAAQvJ,QAClBvlJ,EAAU8uJ,EAAQ9uJ,QAElBulJ,GAAWvlJ,IACbyzB,GAAS8xH,EAAS,QAASvlJ,EAAS01E,IACpCjiD,GAAS8xH,EAAS,UAAWvlJ,EAAS01E,IACtCjiD,GAAS88C,EAAI,QAASvwE,EAAS01E,IAC/BjiD,GAAS88C,EAAI,UAAWvwE,EAAS01E,YAG5BnF,EAAGk+E,GACZ,EAEI/9C,GAAmB,SAA0BngC,EAAIC,EAASC,GAC5D,IAAIq+E,EAAUv+E,EAAGk+E,KAAa,CAAC,EAC3BjrK,EAASkrK,GAAUl+E,GACnB+0E,EAAUqJ,GAAkBr+E,GAE5B/sF,IAAWsrK,EAAQtrK,QAAU+hK,IAAYuJ,EAAQvJ,UAEnD50C,GAAOpgC,EAAIC,EAASC,GACpBhmF,GAAK8lF,EAAIC,EAASC,IAKpBo+E,GAAQtJ,EACV,EAEItqC,GAAU,WAAoB,EAMvB8zC,GAAU,CACnBC,SAAUt+C,GACVuK,QAASA,GACTvK,iBAAkBA,GAClBC,OAAQA,IC1HV,SAASlwC,GAAgBC,EAAU58D,GAAe,KAAM48D,aAAoB58D,GAAgB,MAAM,IAAIvd,UAAU,oCAAwC,CAExJ,SAAS++E,GAAkB9hF,EAAQ6G,GAAS,IAAK,IAAI5G,EAAI,EAAGA,EAAI4G,EAAM1G,OAAQF,IAAK,CAAE,IAAIygF,EAAa75E,EAAM5G,GAAIygF,EAAW9gF,WAAa8gF,EAAW9gF,aAAc,EAAO8gF,EAAWx/E,cAAe,EAAU,UAAWw/E,IAAYA,EAAWv/E,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ0gF,EAAWpgF,IAAKogF,EAAa,CAAE,CAE5T,SAASqB,GAAazhE,EAAa0hE,EAAYC,GAAyN,OAAtMD,GAAYF,GAAkBxhE,EAAYtf,UAAWghF,GAAiBC,GAAaH,GAAkBxhE,EAAa2hE,GAAc3iF,OAAOoB,eAAe4f,EAAa,YAAa,CAAEnf,UAAU,IAAiBmf,CAAa,CAE5R,SAASphB,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAEhN,SAASe,GAAmBC,GAAO,OAAOC,GAAmBD,IAAQE,GAAiBF,IAAQG,GAA4BH,IAAQI,IAAsB,CAExJ,SAASA,KAAuB,MAAM,IAAIe,UAAU,uIAAyI,CAE7L,SAAShB,GAA4BO,EAAGC,GAAU,GAAKD,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOH,GAAkBG,EAAGC,GAAS,IAAIC,EAAIlD,OAAO0B,UAAUyB,SAASrE,KAAKkE,GAAGI,MAAM,GAAI,GAAiE,MAAnD,WAANF,GAAkBF,EAAEvB,cAAayB,EAAIF,EAAEvB,YAAY4B,MAAgB,QAANH,GAAqB,QAANA,EAAoBP,MAAMI,KAAKC,GAAc,cAANE,GAAqB,2CAA2CI,KAAKJ,GAAWL,GAAkBG,EAAGC,QAAzG,CAA7O,CAA+V,CAE/Z,SAAST,GAAiBM,GAAQ,GAAsB,qBAAXvB,QAAmD,MAAzBuB,EAAKvB,OAAOC,WAA2C,MAAtBsB,EAAK,cAAuB,OAAOH,MAAMI,KAAKD,EAAO,CAE7J,SAASP,GAAmBD,GAAO,GAAIK,MAAMC,QAAQN,GAAM,OAAOO,GAAkBP,EAAM,CAE1F,SAASO,GAAkBP,EAAKiB,IAAkB,MAAPA,GAAeA,EAAMjB,EAAIzB,UAAQ0C,EAAMjB,EAAIzB,QAAQ,IAAK,IAAIF,EAAI,EAAG6C,EAAO,IAAIb,MAAMY,GAAM5C,EAAI4C,EAAK5C,IAAO6C,EAAK7C,GAAK2B,EAAI3B,GAAM,OAAO6C,CAAM,CAkBtL,IAAIk4E,GAAY,WACZywF,GAAiB,aAKjBC,GAAa,CAAC,MAAM1sK,OAAO2C,GAAmBtC,GAAKwhF,GAAK8qF,GAAY,CAAC,OAAQ,OAAQ,aAAc,SAAU,eAE7GC,GAAkB,WAA4B,EAG9CC,GAAe,CACjBC,cAAe,UACf9gK,MAAO,cACPm7J,QAAS,WACTpB,YAAa,gBAIXgH,GAAgB,SAAuBruK,GACzC,OAAOguK,GAAWzlK,QAAO,SAAUq7F,EAAMhhG,GAKvC,OAJK4N,GAAYxQ,EAAQ4C,MACvBghG,EAAKhhG,GAAO5C,EAAQ4C,IAGfghG,CACT,GAAG,CAAC,EACN,EAGIvqD,GAAS,SAAgByrC,GAI3B,IAAIwpF,EAAUxpF,EAAIc,OAAO,CACvB3gF,KAAM8lF,GACNwjF,QAASrF,GACT1/J,OAAQ,CAAC04J,IACTU,UAAW,WAELviK,KAAK60G,KAAO70G,KAAK60G,IAAIlY,YACvB38F,KAAK60G,IAAIlY,WAAWY,YAAYv9F,KAAK60G,IAEzC,EACA8F,QAAS,WACP,IAAIn+F,EAAQxc,KAGRmuK,EAAgB,WAClB3xJ,EAAMwrF,WAAU,WAEdjL,IAAU,WACRvgF,EAAM8mJ,UACR,GACF,GACF,EAGAtjK,KAAK8hK,SAASvvD,MAAMxe,GAA2Bo6E,GAE/CnuK,KAAKuyG,MAAM1gB,GAAmBs8E,GAI1BnuK,KAAKwrG,SAAWxrG,KAAKouK,QAIvBpuK,KAAKuyG,MAAMze,GAAgC9zF,KAAKquK,OAAO,UAAWF,IAIpEnuK,KAAKonG,MACP,IAIEknE,EAAc,SAAqBnuK,EAAQ2I,GAC7C,IAAIylK,EAAWpsK,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK0rK,GAEnF,IAAIjqF,GAAc3G,MAAc4G,GAAqB5G,IAArD,CASA,IAAIuxF,EAAStM,GAAwB/hK,EAAQ8tK,EAAS,CAEpD7K,UAAW5gF,GAAcA,GAAcA,GAAc,CAAC,EAAGwrF,GAAc5rE,GAAmB3X,MAAe,CAAC,EAAG,CAE3Gk9E,iBAAiB,EACjBzoD,aAAcp2G,EAAMmE,OAASnE,EAAM6/J,YAClC7lF,GAAKh6E,EAAOxH,GAAKwsK,MAAiB,CAAC,EAAG,CAEvC79B,MAAM,EACN42B,MAAM,EACN14C,SAAS,EACT85C,YAAY,EACZD,gBAAgB,MAYpB,OARA1mK,GAAKwsK,IAAcxrK,SAAQ,SAAU+F,GAC9B8H,GAAYrH,EAAMT,MAGrBmmK,EAAOn0E,OAAOyzE,GAAazlK,IAASpH,GAAO6H,EAAMT,IAErD,IAEO,IAAIozE,SAAQ,SAAUn4B,EAASC,GACpC,IAAIqJ,GAAW,EACf4hH,EAAOj8D,MAAMxe,IAA2B,WACjCnnC,GAEHrJ,EAAO,IAAI7vC,MAAM,gDAErB,IACA86J,EAAOr8D,IAAIrgB,IAAiB,SAAU28E,GACpC,IAAKA,EAAa3iC,iBAAkB,CAClC,IAAIj8H,EAAS0+J,EAASE,GAEjBA,EAAa3iC,mBAChBl/E,GAAW,EACXtJ,EAAQzzC,GAEZ,CACF,IAEA,IAAI61J,EAAMrqF,SAASnuE,cAAc,OACjCmuE,SAASloC,KAAKgwH,YAAYuC,GAC1B8I,EAAOE,OAAOhJ,EAChB,GApDA,CAqDF,EAIIiJ,EAAa,SAAoBxuK,EAAQglG,GAC3C,IAAIxlG,EAAUwC,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/EosK,EAAWpsK,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,KAEnF,GAAKgjG,IAAWthB,GAAqB5G,MAAc2G,GAAc3G,KAAetsE,GAAW49J,GAK3F,OAAOD,EAAYnuK,EAAQqiF,GAAcA,GAAc,CAAC,EAAGwrF,GAAcruK,IAAW,CAAC,EAAG,CACtFouK,cAAe5oE,IACbopE,EACN,EAGIK,EAAuB,WACzB,SAASA,EAAQj9D,GACfzyB,GAAgBl/E,KAAM4uK,GAGtBnsF,GAAOziF,KAAM,CACX6uK,IAAKl9D,EACLm9D,MAAOp9D,GAAaC,KAGtBjvG,GAAiB1C,KAAM,CACrB6uK,IAAK5rF,KACL6rF,MAAO7rF,MAEX,CA6EA,OAzEAe,GAAa4qF,EAAS,CAAC,CACrBrsK,IAAK,OACLW,MAAO,SAAc01B,GACnB,GAAIA,GAAM54B,KAAK8uK,MAAO,CAGpB,IAFA,IAAIC,EAEKrmK,EAAOvG,UAAUC,OAAQ45B,EAAO,IAAI93B,MAAMwE,EAAO,EAAIA,EAAO,EAAI,GAAIE,EAAO,EAAGA,EAAOF,EAAME,IAClGozB,EAAKpzB,EAAO,GAAKzG,UAAUyG,IAG5BmmK,EAAc/uK,KAAK8uK,OAAOhnE,MAAM/lG,MAAMgtK,EAAa,CAAC/pE,GAAuBva,GAAY,QAAS7xD,GAAI33B,OAAO+6B,GAC9G,CACF,GAEC,CACDz5B,IAAK,OACLW,MAAO,SAAc01B,GACnB,GAAIA,GAAM54B,KAAK8uK,MAAO,CAGpB,IAFA,IAAIE,EAEKC,EAAQ9sK,UAAUC,OAAQ45B,EAAO,IAAI93B,MAAM+qK,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxGlzI,EAAKkzI,EAAQ,GAAK/sK,UAAU+sK,IAG7BF,EAAehvK,KAAK8uK,OAAOhnE,MAAM/lG,MAAMitK,EAAc,CAAChqE,GAAuBva,GAAY,QAAS7xD,GAAI33B,OAAO+6B,GAChH,CACF,GAKC,CACDz5B,IAAK,WACLW,MAAO,SAAkBoQ,GACvB,IAAI3T,EAAUwC,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAG/E2G,EAAQ05E,GAAcA,GAAc,CAAC,EAAG7iF,GAAU,CAAC,EAAG,CAExDwoK,QAAQ,EACRD,YAAY,EACZR,YAAY,EACZqG,cAAez6J,IAGjB,OAAOq7J,EAAW3uK,KAAK6uK,IAAKv7J,EAASxK,GAAO,WAE1C,OAAO,CACT,GACF,GAGC,CACDvG,IAAK,gBACLW,MAAO,SAAuBoQ,GAC5B,IAAI3T,EAAUwC,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAG/E2G,EAAQ05E,GAAcA,GAAc,CAAC,EAAG7iF,GAAU,CAAC,EAAG,CAExDwoK,QAAQ,EACRD,YAAY,EACZnB,gBAAgB,EAChBW,YAAY,IAGd,OAAOiH,EAAW3uK,KAAK6uK,IAAKv7J,EAASxK,GAAO,SAAU2lK,GACpD,IAAIzK,EAAUyK,EAAazK,QAC3B,MAAmB,OAAZA,GAAsC,WAAZA,GAA+B,IAClE,GACF,KAGK4K,CACT,CA5F2B,GA+F3BnqF,EAAIyf,MAAM,CACRljG,aAAc,WAGZhB,KAAK0tK,IAAkB,IAAIkB,EAAQ5uK,KACrC,IAIGkG,GAAeu+E,EAAIxhF,UAAWg6E,KACjCt6E,GAAe8hF,EAAIxhF,UAAWg6E,GAAW,CACvCjrE,IAAK,WAMH,OAJKhS,MAASA,KAAK0tK,KACjB/pF,GAAK,IAAK1iF,OAAOg8E,GAAW,0DAA8DwN,IAGrFzqF,KAAK0tK,GACd,GAGN,EAEWyB,GAA6B7pF,GAAc,CACpD1rC,QAAS,CACPZ,OAAQA,MCvTRo2H,GAA2B9pF,GAAc,CAC3CP,WAAY,CACV8jF,OAAQA,IAEV7jF,WAAY,CACVwoF,QAASA,IAGX5zH,QAAS,CACPu1H,cAAeA,MCbnB,SAAS3sK,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAOhN,IAAIwsK,GAAwB,SAA+BnsK,GAEzD,OADAA,EAAkB,SAAVA,EAAmB,QAAoB,UAAVA,EAAoB,MAAQA,EAC1D,mBAAmBjC,OAAOiC,EACnC,EAGW4F,GAAQ46F,GAAsB,CACvC6oB,MAAOxpB,GAASlO,IAEhBy6E,WAAYvsE,GAASxO,IAAmB,GACxCkZ,KAAM1K,GAASxO,IAAmB,GAClCg7E,UAAWxsE,GAASxO,IAAmB,GACvCi7E,MAAOzsE,GAASxO,IAAmB,GACnCk7E,MAAO1sE,GAASxO,IAAmB,GACnCm7E,KAAM3sE,GAASxO,IAAmB,GAClCxqF,IAAKg5F,GAASlO,GAAkB,MAChCslB,SAAUpX,GAASxO,IAAmB,IACrC5J,IAGQglF,GAAoBpqF,GAAO,CACpC3gF,KAAM+lF,GACN9qF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAI4sE,EAEAjkG,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZC,EAAWk3B,EAAKl3B,SAChBymK,EAAO5mK,EAAM4mK,KACbF,EAAQ1mK,EAAM0mK,MACdr1D,EAAWrxG,EAAMqxG,SACjBoS,EAAQzjH,EAAMyjH,MACd+iD,EAAaxmK,EAAMwmK,WACvB,OAAOxuK,EAAEgI,EAAMiB,IAAK47F,GAAU38F,EAAM,CAClCu8F,YAAa,MACb/7F,OAAQujG,EAAS,CACf,WAAY2iE,EACZ,YAAaF,IAAUE,EACvB,oBAAqBv1D,GAAYm1D,GAAcI,EAC/C,qBAAsBv1D,GAAYm1D,GAAcE,IAAUE,EAC1D,cAAev1D,EACf,YAAaA,GAAYrxG,EAAM2kG,KAC/B,iBAAkB0M,GAAYrxG,EAAMymK,WACnC/sK,GAAgBuqG,EAAQsiE,GAAsB9iD,IAASpS,GAAYoS,GAAQ/pH,GAAgBuqG,EAAQ,QAASjkG,EAAM2mK,OAAQ1iE,KAC3H9jG,EACN,ICtDF,SAAS9H,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAShN,IAAIiyG,GAAYhyB,GAAKiyB,GAAY,CAAC,QAAS,cAChCjsG,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAc,CAAC,EAAGsyB,IAAY,CAAC,EAAG,CAChG86D,UAAW7sE,GAASpO,GAAkB,CAAC,GACvCk7E,YAAa9sE,GAAS/N,OACnB/J,IAGM6kF,GAAwBvqF,GAAO,CACxC3gF,KAAMqmF,GACNprF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIr3B,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZumE,EAAYpvC,EAAKovC,UACjBtmE,EAAWk3B,EAAKl3B,SACpB,OAAOnI,EAAE,KAAM6kG,GAAU7iB,GAAK95E,EAAM,CAAC,OAAQ,CAC3Cu8F,YAAa,aACX,CAACzkG,EAAE8yG,GAAO,CACZrO,YAAa,WACb/7F,MAAOV,EAAM+mK,YACbvmK,MAAOR,EAAM8mK,UACb9mK,MAAOs6F,GAAW0R,GAAWhsG,GAC7BunF,GAAI9gB,GACHtmE,IACL,ICnCSH,GAAQ,CAAC,EAGTinK,GAAwBxqF,GAAO,CACxC3gF,KAAMumF,GACNtrF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIn3B,EAAOm3B,EAAKn3B,KACZC,EAAWk3B,EAAKl3B,SACpB,OAAOnI,EAAE,KAAM6kG,GAAU38F,EAAM,CAC7Bu8F,YAAa,gBACXt8F,EACN,IChBF,SAAS9H,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAShN,IAAImtK,GAAYltF,GAAKmtF,GAAY,CAAC,WACvBnnK,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAc,CAAC,EAAGwtF,IAAY,CAAC,EAAG,CAChGz9B,UAAWxvC,GAAS/N,OACjBhK,IAGMklF,GAAwB3qF,GAAO,CACxC3gF,KAAMomF,GACNnrF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIr3B,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZC,EAAWk3B,EAAKl3B,SAChBsmE,EAAYpvC,EAAKovC,UACjBwxE,EAAQjgJ,EAAEuxI,GAAO,CACnB7oI,MAAOV,EAAMypI,UACbzpI,MAAO05E,GAAcA,GAAc,CAAC,EAAG4gB,GAAW4sE,GAAWlnK,IAAS,CAAC,EAAG,CACxEopI,QAAQ,IAEV5oI,MAAON,EAAKM,MACZ+mF,GAAI9gB,GACHtmE,GACH,OAAOnI,EAAE,KAAM6kG,GAAU7iB,GAAK95E,EAAM,CAAC,QAAS,OAAQ,CACpDu8F,YAAa,gBACX,CAACw7C,GACP,ICvCF,SAASn9I,GAAmBC,GAAO,OAAOC,GAAmBD,IAAQE,GAAiBF,IAAQG,GAA4BH,IAAQI,IAAsB,CAExJ,SAASA,KAAuB,MAAM,IAAIe,UAAU,uIAAyI,CAE7L,SAAShB,GAA4BO,EAAGC,GAAU,GAAKD,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOH,GAAkBG,EAAGC,GAAS,IAAIC,EAAIlD,OAAO0B,UAAUyB,SAASrE,KAAKkE,GAAGI,MAAM,GAAI,GAAiE,MAAnD,WAANF,GAAkBF,EAAEvB,cAAayB,EAAIF,EAAEvB,YAAY4B,MAAgB,QAANH,GAAqB,QAANA,EAAoBP,MAAMI,KAAKC,GAAc,cAANE,GAAqB,2CAA2CI,KAAKJ,GAAWL,GAAkBG,EAAGC,QAAzG,CAA7O,CAA+V,CAE/Z,SAAST,GAAiBM,GAAQ,GAAsB,qBAAXvB,QAAmD,MAAzBuB,EAAKvB,OAAOC,WAA2C,MAAtBsB,EAAK,cAAuB,OAAOH,MAAMI,KAAKD,EAAO,CAE7J,SAASP,GAAmBD,GAAO,GAAIK,MAAMC,QAAQN,GAAM,OAAOO,GAAkBP,EAAM,CAE1F,SAASO,GAAkBP,EAAKiB,IAAkB,MAAPA,GAAeA,EAAMjB,EAAIzB,UAAQ0C,EAAMjB,EAAIzB,QAAQ,IAAK,IAAIF,EAAI,EAAG6C,EAAO,IAAIb,MAAMY,GAAM5C,EAAI4C,EAAK5C,IAAO6C,EAAK7C,GAAK2B,EAAI3B,GAAM,OAAO6C,CAAM,CAEtL,SAAS5D,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAczM,IAAIiG,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAc,CAAC,EAAGi8B,IAAU57B,GAAKstF,GAAgB,GAAGlvK,OAAO2C,GAAmBtC,GAAK0uI,KAAiB,CAAC,OAAQ,OAAQ,YAAa,UAAW,OAAQ,OAAQ,mBAAoB9kD,IAGtOklF,GAAgC7qF,GAAO,CAChD3gF,KAAMsmF,GACN/hF,OAAQ,CAACm1G,GAASuvB,GAAepzC,IACjC3xF,MAAOA,GACP6gG,SAAU,CACR0mE,SAAU,WACR,OAAOrwK,KAAKw+G,OAAO,cACrB,EACA8xD,OAAQ,WACN,OAAOtwK,KAAKw+G,OAAO,mBACrB,EACAsyB,gBAAiB,WACf,MAAO,CAAC9wI,KAAKouI,eAAgBpuI,KAAKquI,cAAe,CAC/CjnC,KAAMpnG,KAAKmuH,SAEf,EACA4iB,YAAa,WACX,MAAO,CAAC/wI,KAAKkwI,UAAW,CACtB,sBAAuBlwI,KAAKwqC,MAC5B48D,KAAMpnG,KAAKmuH,SAEf,EACA6iB,cAAe,WACb,MAAO,CAAChxI,KAAK0wI,YAAa,CACxB,2BAA4B1wI,KAAKmwI,SAErC,GAEFhxI,OAAQ,SAAgB2B,GACtB,IAAIuvK,EAAWrwK,KAAKqwK,SAChBC,EAAStwK,KAAKswK,OACdniD,EAAUnuH,KAAKmuH,QACfsc,EAAOzqI,KAAKyqI,KACZ8G,EAAUzwI,EAAE8yG,GAAO,CACrBrO,YAAa,2BACb/7F,MAAOxJ,KAAKgxI,cACZloI,MAAO,CACLmlC,KAAM,IAAIhtC,OAAOjB,KAAK44B,IAAM,IAC5B/F,SAAU7yB,KAAK6yB,UAEjBvpB,MAAO,CACLsvB,GAAIy3I,EACJ/nE,KAAM,SACN,gBAAiB,OACjB,gBAAiB6lB,EAAU,OAAS,QACpC,gBAAiBmiD,GAEnBjgF,GAAI,CACFmhD,UAAWxxI,KAAK0vI,YAChBlqC,MAAOxlG,KAAK81G,OACZK,QAASn2G,KAAK81G,QAGhB30F,IAAK,UACJ,CACHnhB,KAAKs6F,cAAc,CAACtE,GAA0BqD,MAAoBv4F,EAAE,OAAQ,CAC1E2kG,SAAUwT,GAAWj5G,KAAKo5G,KAAMp5G,KAAKkiC,UAEnCuvG,EAAQ3wI,EAAE,KAAM,CAClBykG,YAAa,gBACb/7F,MAAOxJ,KAAK+wI,YACZznI,MAAO,CACL8qG,SAAU,KACV,kBAAmBi8D,EACnBz3I,GAAI03I,GAENjgF,GAAI,CACF8lB,QAASn2G,KAAKk7G,WAGhB/5F,IAAK,SACHnhB,KAAKiwI,MAAQ9hB,EAAUnuH,KAAKs6F,cAAcnE,GAAmB,CAC/Ds0C,KAAMA,IACH,CAAC3pI,MACN,OAAOA,EAAE,KAAM,CACbykG,YAAa,mCACb/7F,MAAOxJ,KAAK8wI,gBACZxnI,MAAO,CACLsvB,GAAI54B,KAAKw+G,WAEV,CAAC+yB,EAASE,GACf,IC3GE8+B,GAAyBjrF,GAAc,CACzCP,WAAY,CACV4qF,KAAMA,GACNG,SAAUA,GACVC,SAAUA,GACVG,SAAUA,GACVE,iBAAkBA,GAClBI,WAAYJ,GACZK,aAAcL,GACdM,OAAQN,IAEVx2H,QAAS,CACPq5F,eAAgBA,MCnBpB,SAASzwI,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAWzM,IAAIiG,GAAQ46F,GAAsB,CACvCitE,MAAO5tE,GAASlO,IAChB+7E,MAAO7tE,GAASxO,IAAmB,GACnCs8E,OAAQ9tE,GAASxO,IAAmB,GACpCxqF,IAAKg5F,GAASlO,GAAkB,OAChCi8E,WAAY/tE,GAAS3N,IAA0B,GAC/C9oF,KAAMy2F,GAASlO,GAAkB,SACjC2S,QAASzE,GAASlO,KACjBjK,IAGQmmF,GAAuBxrF,GAAO,CACvC3gF,KAAMgmF,GACNzhF,OAAQ,CAACsxF,IACTge,QAAS,WACP,IAAIj8F,EAAQxc,KAEZ,MAAO,CACL+tI,YAAa,WACX,OAAOvxH,CACT,EAEJ,EACA1T,MAAOA,GACP6gG,SAAU,CACRqnE,gBAAiB,WACf,IAAIF,EAAa9wK,KAAK8wK,WAClBG,EAAK3uE,KAAiB,GACtB8gD,EAAa,KAQjB,OANI0tB,GAAcpgK,GAASogK,IAAeA,IAAeG,EACvD7tB,EAAa,iBAAiBniJ,OAAO6vK,IACb,IAAfA,IACT1tB,EAAa,iBAGRA,CACT,GAEFjkJ,OAAQ,SAAgB2B,GACtB,IAAIq/B,EAEAp2B,EAAM/J,KAAK+J,IACXuC,EAAOtM,KAAKsM,KACZk7F,EAAUxnG,KAAKwnG,QACfmpE,EAAQ3wK,KAAK2wK,MACjB,OAAO7vK,EAAEiJ,EAAK,CACZw7F,YAAa,SACb/7F,MAAO,EAAE22B,EAAO,CACd,UAAWngC,KAAK4wK,MAChB,aAAc5wK,KAAK6wK,QAClBruK,GAAgB29B,EAAM,UAAUl/B,OAAOqL,GAAOA,GAAO9J,GAAgB29B,EAAM,MAAMl/B,OAAOumG,GAAUA,GAAUhlG,GAAgB29B,EAAM,SAASl/B,OAAO0vK,GAAQA,GAAQxwI,GAAOngC,KAAKgxK,iBACjL1nK,MAAO,CACLg/F,KAAM5Y,GAAM3lF,EAAK,OAAS,KAAO,eAElC,CAAC/J,KAAKs6F,iBACX,ICnEF,SAAS93F,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAQhN,IAAIwsK,GAAwB,SAA+BnsK,GAEzD,OADAA,EAAkB,SAAVA,EAAmB,QAAoB,UAAVA,EAAoB,MAAQA,EAC1D,mBAAmBjC,OAAOiC,EACnC,EAGW4F,GAAQ46F,GAAsB7gB,GAAKquF,GAAW,CAAC,MAAO,OAAQ,YAAa,QAAS,UAAWpmF,IAG/FqmF,GAA0B5rF,GAAO,CAC1C3gF,KAAMkmF,GACNjrF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAI4sE,EAEAjkG,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZC,EAAWk3B,EAAKl3B,SAChBsjH,EAAQzjH,EAAMyjH,MAClB,OAAOzrH,EAAEgI,EAAMiB,IAAK47F,GAAU38F,EAAM,CAClCu8F,YAAa,aACb/7F,OAAQujG,EAAS,CACf,WAAYjkG,EAAM2kG,KAClB,gBAAiB3kG,EAAMymK,WACtB/sK,GAAgBuqG,EAAQsiE,GAAsB9iD,GAAQA,GAAQ/pH,GAAgBuqG,EAAQ,QAASjkG,EAAM2mK,OAAQ1iE,KAC9G9jG,EACN,ICnCF,SAAS9H,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAShN,IAAIiyG,GAAYhyB,GAAKiyB,GAAY,CAAC,QAAS,cAC3CD,GAAU7mE,KAAKzhC,aAAUzD,EACzB+rG,GAAUhpG,GAAGU,aAAUzD,EAChB,IAAID,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAc,CAAC,EAAGsyB,IAAY,CAAC,EAAG,CAChG/qG,IAAKg5F,GAASlO,GAAkB,UAC7BhK,IAGMumF,GAA4B7rF,GAAO,CAC5C3gF,KAAMimF,GACNhrF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIr3B,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZC,EAAWk3B,EAAKl3B,SAChBiiG,EAASpiG,EAAMgD,IAAMhD,EAAMmlC,KAC3BlkC,EAAMmhG,EAAS0I,GAAQ9qG,EAAMiB,IACjC,OAAOjJ,EAAEiJ,EAAK47F,GAAU38F,EAAM,CAC5Bu8F,YAAa,eACbz8F,MAAOoiG,EAAS9H,GAAW0R,GAAWhsG,GAAS,CAAC,IAC9CG,EACN,ICxBEugG,GAAa,iBACbmvB,GAAwB5zB,GAAiBxd,GAAe,SACxDqxC,GAA6B7zB,GAAiBxd,GAAe,cAEtDz+E,GAAQ46F,GAAsB,CACvC7wE,SAAUkwE,GAASxO,IAAmB,GACtC2wB,MAAOniB,GAASlO,GAAkB,qBAClC5yF,OAAQ8gG,GAAS9N,QAAwBlsF,GAAW,IAEnDgiF,IAGQsmF,GAA6B9rF,GAAO,CAC7C3gF,KAAMmmF,GACN/F,WAAY,CACV42C,SAAUA,IAEZzyH,OAAQ,CAAC2oG,GAAmBrX,IAC5B3xF,MAAOA,GACPE,KAAM,WACJ,MAAO,CACLsoK,aAAa,EAEjB,EACAziF,QAAS,WACP7uF,KAAKkyG,aAAaymB,GAAuB34H,KAAKuxK,kBAC9CvxK,KAAKkyG,aAAa0mB,GAA4B54H,KAAKuxK,iBACrD,EACA72E,QAAS,CACP4Z,QAAS,SAAiB5qD,GACnB1pD,KAAK6yB,UAER7yB,KAAK8nG,MAAMlX,GAAkBlnC,EAEjC,EACA6nH,iBAAkB,SAA0B34I,EAAI2C,GAG1C3C,IAAO54B,KAAKiC,SACdjC,KAAKsxK,YAAc/1I,EAEvB,GAEFp8B,OAAQ,SAAgB2B,GACtB,IAAI+xB,EAAW7yB,KAAK6yB,SACpB,OAAO/xB,EAAE,SAAU,CACjBykG,YAAaiE,GACbhgG,MAAO,CACLqpB,SAAUA,GAEZmyD,WAAY,CAAC,CACXpgF,KAAM,WACN1B,MAAOlD,KAAKiC,SAEdqH,MAAO,CACLgD,KAAM,SACNumB,SAAUA,EACV,aAAc7yB,KAAKklH,OAErB70B,GAAI,CACFmV,MAAOxlG,KAAKs0G,UAEb,CAACt0G,KAAKs6F,cAAcnE,GAAmB,CACxCq7E,SAAUxxK,KAAKsxK,eACXxwK,EAAE,OAAQ,CACdykG,YAAa,GAAGtkG,OAAOuoG,GAAY,YAEvC,ICtEEioE,GAA4BnsF,GAAc,CAC5CP,WAAY,CACVgsF,QAASA,GACTI,WAAYA,GACZC,aAAcA,GACdC,cAAeA,GACfK,WAAYL,IAEdz3H,QAAS,CACP22H,UAAWA,GACXz0C,eAAgBA,GAChBmX,eAAgBA,MCnBpB,SAASzwI,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CASzM,IAAIiG,GAAQ46F,GAAsB,CACvCwhB,MAAOniB,GAASlO,IAChByT,KAAMvF,GAASlO,GAAkB,UACjC46E,MAAO1sE,GAASxO,IAAmB,GACnCxqF,IAAKg5F,GAASlO,GAAkB,QAChCvoF,KAAMy2F,GAASlO,GAAkB,UACjC2S,QAASzE,GAASlO,KACjB5I,IAGQ0lF,GAAwBpsF,GAAO,CACxC3gF,KAAMqnF,GACNpsF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAI4sE,EAEAjkG,EAAQq3B,EAAKr3B,MACbE,EAAOm3B,EAAKn3B,KACZymF,EAAQtvD,EAAKsvD,MACbM,EAAc5vD,EAAK4vD,YACnBsK,EAAS5K,IACT2K,EAAerK,GAAe,CAAC,EAC/BsoD,EAAS/9C,GAAc/C,GAAiB,CAAC,EAAG6C,EAAcC,IAAWvxF,EAAMo8G,MAQ/E,OANImzB,IACFA,EAASv3I,EAAE,OAAQ,CACjBykG,YAAa,WACZ8yC,IAGEv3I,EAAEgI,EAAMiB,IAAK47F,GAAU38F,EAAM,CAClCM,MAAO,CACLg/F,KAAM+vC,EAASvvI,EAAMw/F,MAAQ,SAAW,KACxC,cAAe+vC,EAAS,KAAO,QAEjC7uI,OAAQujG,EAAS,CAAC,EAAGvqG,GAAgBuqG,EAAQ,WAAW9rG,OAAO6H,EAAMwD,MAAOxD,EAAMwD,MAAO9J,GAAgBuqG,EAAQ,WAAW9rG,OAAO6H,EAAMwD,KAAM,OAAQxD,EAAM2mK,OAAQjtK,GAAgBuqG,EAAQ,QAAQ9rG,OAAO6H,EAAM0+F,SAAU1+F,EAAM0+F,SAAUuF,KAC1O,CAACsrC,GAAUv3I,KACjB,IC/CF,SAASK,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAahN,ICjBIk9B,GDiBA6xI,GAAiB,CACnBrxE,IAAK,EACLh2D,KAAM,EACN0tE,OAAQ,EACRztE,MAAO,GAGE1hC,GAAQ46F,GAAsB,CAGvCmuE,QAAS9uE,GAASlO,IAClB+M,KAAMmB,GAASlO,GAAkB,OACjC87E,MAAO5tE,GAASxO,IAAmB,GACnCu9E,SAAU/uE,GAASxO,IAAmB,GACtC+R,OAAQvD,GAASxO,IAAmB,GAGpC++B,OAAQvwB,GAASxO,IAAmB,GACpCw9E,QAAShvE,GAASxN,GAAyB,KAAM,SAAUryF,GACzD,IAAIi1B,EAAS8iE,GAAQ/3F,EAAO,GAC5B,OAAOi1B,GAAU,GAAKA,GAAU,CAClC,IACA65I,WAAYjvE,GAASlO,GAAkB,OACvCqiB,QAASnU,GAAS3N,IAA0B,GAC5CgS,KAAMrE,GAASxO,IAAmB,GAClC09E,aAAclvE,GAASxO,IAAmB,GAC1C29E,YAAanvE,GAASlO,GAAkB,UACxCs9E,eAAgBpvE,GAASlO,IACzB2S,QAASzE,GAASlO,GAAkB,SACpCu9E,QAASrvE,GAASlO,GAAkB,OACpCytD,OAAQv/C,GAASxN,GAAyB,KACzCnK,IAGQinF,GAAwB9sF,GAAO,CACxC3gF,KAAMwmF,GACNjiF,OAAQ,CAACsxF,IACT3xF,MAAOA,GACP6gG,SAAU,CACRgO,gBAAiB,WACf,IAAIT,EAAUl3G,KAAKk3G,QACnB,OAAmB,IAAZA,GAAgC,KAAZA,EAAiB,UAAaA,EAAe,WAAWj2G,OAAOi2G,GAAvB,EACrE,EACAQ,gBAAiB,WACf,IAAIlQ,EAAUxnG,KAAKwnG,QACnB,OAAOA,IAAYxnG,KAAK6xK,QAAU,MAAM5wK,OAAOumG,GAAW,EAC5D,EACA+lB,UAAW,WACT,MAAO,CACL2kD,YAAalyK,KAAKkyK,aAAe,KACjCC,eAAgBnyK,KAAKmyK,gBAAkB,KACvCF,aAAcjyK,KAAKiyK,aAEvB,GAEFv3E,QAAS,CACP43E,iBAAkB,SAA0BnyI,GAC1C,IAAI+xI,EAAc/xI,EAAK+xI,YACnBC,EAAiBhyI,EAAKgyI,eACtBF,EAAe9xI,EAAK8xI,aACxB,OAAOjyK,KAAK09I,eAAei0B,GAAU,CACnC7oK,MAAO,CACLwD,KAAM4lK,EACN1qE,QAAS2qE,EACT1C,MAAOwC,IAGb,GAEF9yK,OAAQ,SAAgB2B,GACtB,IAAI0b,EAAQxc,KAERonG,EAAOpnG,KAAKonG,KACZupE,EAAQ3wK,KAAK2wK,MACbrqE,EAAStmG,KAAKsmG,OACdgtB,EAAStzH,KAAKszH,OACd/F,EAAYvtH,KAAKutH,UACjBglD,EAAWzxK,IAEf,GAAIsmG,EAAM,CACR,IAAIorE,EAAc1xK,EAAE,MAAO,CACzBykG,YAAa,oBACb/7F,MAAO,CAACxJ,KAAK03G,gBAAiB13G,KAAK23G,iBACnC7vG,MAAO06E,GAAcA,GAAc,CAAC,EAAGovF,IAAiB,CAAC,EAAG,CAC1DG,QAAS/xK,KAAK+xK,QACdU,gBAAiBzyK,KAAK6xK,SAAW,KACjCa,eAAgB1yK,KAAK4hG,KAAO,QAAQ3gG,OAAOjB,KAAK4hG,KAAM,KAAO,SAG7DsI,EAAWppG,EAAE,MAAO,CACtBykG,YAAa,oBACbz9F,MAAO9H,KAAK8xK,SAEZtvF,GAAc,CAAC,EAAGovF,IAAkB,CAClCrxE,IAAK,MACLh2D,KAAM,MACNx9B,UAAW,sCAEZ,CAAC/M,KAAKs6F,cAAc5B,GAAmB60B,IAAcvtH,KAAKsyK,iBAAiB/kD,KAC9EglD,EAAWzxK,EAAEd,KAAKgyK,WAAY,CAC5BzsE,YAAa,YACb/7F,MAAO,CACL,qBAAsB8pH,GAAUA,IAAWq9C,EAC3C,iBAAkBr9C,GAAUq9C,GAE9B7oK,MAAO06E,GAAcA,GAAc,CAAC,EAAGovF,IAAiB,CAAC,EAAG,CAC1DtvB,OAAQtiJ,KAAKsiJ,QAAU,KAEzBjyD,GAAI,CACFmV,MAAO,SAAe97C,GACpB,OAAOltC,EAAMsrF,MAAMlX,GAAkBlnC,EACvC,GAEFnnD,IAAK,WACJ,CAACiwK,EAAatoE,GACnB,CAkBA,OAfAqoE,EAAWzxK,EAAE0lG,GAAc,CACzB19F,MAAO,CACLw9F,OAAQA,EACRF,QAAQ,GAEV/V,GAAI,CACF,cAAe,WACb,OAAO7zE,EAAMsrF,MAAMxU,GACrB,EACA,cAAe,WACb,OAAO92E,EAAMsrF,MAAMjW,GACrB,IAED,CAAC0gF,IAEAj/C,EACKi/C,EAGFzxK,EAAEd,KAAKoyK,QAAS,CACrB7sE,YAAa,mCACbj8F,MAAO,CACL,YAAa89F,EAAO,OAAS,OAE9BksB,EAAS,CAACi/C,GAAY,CAACvyK,KAAKs6F,gBAAiBi4E,GAClD,IE9JEI,GAA6BrtF,GAAc,CAC7CP,WAAY,CACVstF,SAAUA,MDFd,SAASlxK,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAwBhN,IAAIikG,GAAkBjD,GAAe,QAAS,CAC5Cv3F,KAAM6oF,GACNh7D,aAAc,KAGdztB,UAAW,SAAmBxJ,GAC5B,SAAK8+E,GAAO9+E,IAAU43F,GAAU53F,EAAO,GAAK,KAC1CygF,GAAK,oDAAqD0H,KACnD,EAIX,IAEE0b,GAAaD,GAAgB5C,MAC7B8C,GAAaF,GAAgBh+F,MAC7Bm+F,GAAkBH,GAAgBz+F,KAClC6+F,GAAmBJ,GAAgBp9C,MAInCkpH,GAAqB,EAErBC,GAAgB,EAGhBC,GAAgB,SAAuBC,EAAaC,GACtD,OAAOn5E,GAAYm5E,GAAe,SAAUx3E,EAAGt5F,GAC7C,MAAO,CACLi2B,OAAQ46I,EAAc7wK,EACtBuI,QAAS,KAEb,GACF,EAGIwoK,GAAgB,SAAuB/vK,GACzC,IAAIid,EAAQ26E,GAAU53F,IAAU,EAChC,OAAOid,EAAQ,EAAI0yJ,GAAgB1yJ,CACrC,EAGI+yJ,GAAsB,SAA6B7pK,EAAK2pK,GAC1D,IAAIG,EAAOr4E,GAAUzxF,IAAQ,EAC7B,OAAO8pK,EAAOH,EAAgBA,EAAgBG,EAAO,EAAI,EAAIA,CAC/D,EAIIC,GAAa,SAAoB1pH,GACnC,GAAIA,EAAM0sD,UAAYlG,GAOpB,OALA7L,GAAU36C,EAAO,CACfi7C,sBAAsB,IAGxBj7C,EAAMirD,cAAcnP,SACb,CAEX,EAGW18F,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAc,CAAC,EAAGwkB,IAAa,CAAC,EAAG,CACjGulB,MAAOxpB,GAASlO,GAAkB,QAClCqQ,UAAWnC,GAASlO,GAAkB,cACtChiE,SAAUkwE,GAASxO,IAAmB,GACtC8+E,cAAetwE,GAAS/N,IACxBs+E,aAAcvwE,GAASlO,GAAkB,KAEzC0+E,WAAYxwE,GAAS/N,IACrBw+E,YAAazwE,GAASxO,IAAmB,GACzCk/E,UAAW1wE,GAASlO,GAAkB,KAEtC6+E,aAAc3wE,GAASxO,IAAmB,GAC1Co/E,mBAAoB5wE,GAASxO,IAAmB,GAChDq/E,eAAgB7wE,GAASlO,GAAkB,oBAC3Cg/E,cAAe9wE,GAASlO,GAAkB,mBAC1Ci/E,cAAe/wE,GAASlO,GAAkB,mBAC1Ck/E,UAAWhxE,GAASzN,GAA2B,cAC/C0+E,cAAejxE,GAASlO,GAAkB,uBAC1Co/E,UAAWlxE,GAAS/N,IACpBk/E,WAAYnxE,GAASxO,IAAmB,GACxC4/E,SAAUpxE,GAASlO,GAAkB,KAErC10E,MAAO4iF,GAASxN,GAAyBs9E,IAEzC,SAAU3vK,GACR,QAAI43F,GAAU53F,EAAO,GAAK,KACxBygF,GAAK,iDAAkD0H,KAChD,EAIX,IACA+oF,UAAWrxE,GAAS/N,IACpBq/E,SAAUtxE,GAASlO,GAAkB,KAErCy/E,UAAWvxE,GAAS/N,IACpBw6E,MAAOzsE,GAASxO,IAAmB,GACnCggF,UAAWxxE,GAAS/N,IACpBw/E,SAAUzxE,GAASlO,GAAkB,KAErCvpF,KAAMy3F,GAASlO,OACZ,cAGM4/E,GAAkBlvF,GAAO,CAClCp8E,OAAQ,CAAC49F,GAAYtM,IACrB3xF,MAAOA,GACPE,KAAM,WAEJ,IAAI0rK,EAAc55E,GAAU96F,KAAKinG,IAAkB,GAEnD,OADAytE,EAAcA,EAAc,EAAIA,GAAe,EACxC,CACLA,YAAaA,EACbC,mBAAoB,EACpBC,WAAY/B,GAEhB,EACAlpE,SAAU,CACRkrE,QAAS,WACP,IAAIvpK,EAAOtL,KAAKsL,KAChB,OAAOA,EAAO,cAAcrK,OAAOqK,GAAQ,EAC7C,EACAwpK,UAAW,WACT,IAAIvoD,EAAQvsH,KAAKusH,MAEjB,MAAc,WAAVA,EACK,yBACY,QAAVA,GAA6B,UAAVA,EACrB,sBACY,SAAVA,EAGF,cAGF,EACT,EACAwoD,WAAY,WACV,OAAO/0K,KAAKwvK,MAAQ,qBAAuB,EAC7C,EACAwF,oBAAqB,WACnB,OAAO9B,GAAoBlzK,KAAK00K,YAAa10K,KAAK20K,mBACpD,EACAM,iBAAkB,WAEhB,IAAI90J,EAAQngB,KAAK40K,WACb5B,EAAgBhzK,KAAK20K,mBACrBD,EAAc10K,KAAKg1K,oBACnBtB,EAAe1zK,KAAK0zK,aACpBF,EAAcxzK,KAAKwzK,YACnBU,EAAal0K,KAAKk0K,WAClBgB,GAAgB,EAChBC,GAAe,EACfC,EAAgBj1J,EAChB4yJ,EAAc,EAEdC,GAAiB7yJ,EAEnBi1J,EAAgBpC,EACP0B,EAAcv0J,EAAQ,GAAKA,EAAQyyJ,IACvCc,IAAgBQ,IACnBiB,GAAe,EACfC,EAAgBj1J,GAASqzJ,EAAc,EAAI,IAG7C4B,EAAgB5sE,GAAQ4sE,EAAej1J,IAC9B6yJ,EAAgB0B,EAAc,EAAIv0J,GAASA,EAAQyyJ,IACvDc,IAAgBF,IACnB0B,GAAgB,EAChBE,EAAgBj1J,GAAS+zJ,EAAa,EAAI,IAG5CnB,EAAcC,EAAgBoC,EAAgB,IAG1Cj1J,EAAQyyJ,KACVwC,EAAgBj1J,GAASuzJ,EAAe,EAAI,GAC5CwB,IAAoBxB,IAAgBF,GACpC2B,IAAmBzB,IAAgBQ,IAGrCnB,EAAc2B,EAAc9rE,GAAUwsE,EAAgB,IAMpDrC,EAAc,GAChBA,EAAc,EACdmC,GAAgB,GACPnC,EAAcC,EAAgBoC,IACvCrC,EAAcC,EAAgBoC,EAAgB,EAC9CD,GAAe,GAGbD,GAAiB1B,GAAeT,EAAc,IAChDqC,GAAgC,EAChCrC,EAAc,EACdmC,GAAgB,GAGlB,IAAIG,EAAiBtC,EAAcqC,EAAgB,EAkBnD,OAhBID,GAAgBjB,GAAcmB,EAAiBrC,EAAgB,IACjEoC,GAAiCC,IAAmBrC,EAAgB,EAAI,EAAI,EAC5EmC,GAAe,GAIbh1J,GAASyyJ,KACPY,GAA+B,IAAhBT,EACjBqC,EAAgB5sE,GAAQ4sE,EAAgB,EAAGpC,EAAe7yJ,EAAQ,GACzD+zJ,GAAclB,IAAkBD,EAAcqC,EAAgB,IACvErC,EAAc78J,GAAQ68J,EAAc,EAAG,GACvCqC,EAAgB5sE,GAAQwqE,EAAgBD,EAAc,EAAGC,EAAe7yJ,EAAQ,KAIpFi1J,EAAgB5sE,GAAQ4sE,EAAepC,EAAgBD,EAAc,GAC9D,CACLmC,cAAeA,EACfC,aAAcA,EACdC,cAAeA,EACfrC,YAAaA,EAEjB,EACAuC,SAAU,WAER,IAAIC,EAAwBv1K,KAAKi1K,iBAC7BG,EAAgBG,EAAsBH,cACtCrC,EAAcwC,EAAsBxC,YACpC2B,EAAc10K,KAAKg1K,oBAEnBQ,EAAQ1C,GAAcC,EAAaqC,GAKvC,GAAII,EAAMpzK,OAAS,EAAG,CACpB,IAAI2Y,EAAM25J,EAAc3B,EAEpBtoK,EAAU,oBAEd,GAAY,IAARsQ,EAEF,IAAK,IAAI7Y,EAAI,EAAGA,EAAIszK,EAAMpzK,OAAQF,IAChCszK,EAAMtzK,GAAGuI,QAAUA,OAEhB,GAAIsQ,IAAQy6J,EAAMpzK,OAAS,EAEhC,IAAK,IAAI65B,EAAK,EAAGA,EAAKu5I,EAAMpzK,OAAS,EAAG65B,IACtCu5I,EAAMv5I,GAAIxxB,QAAUA,MAEjB,CAEL,IAAK,IAAIgrK,EAAM,EAAGA,EAAM16J,EAAM,EAAG06J,IAE/BD,EAAMC,GAAKhrK,QAAUA,EAGvB,IAAK,IAAIirK,EAAMF,EAAMpzK,OAAS,EAAGszK,EAAM36J,EAAM,EAAG26J,IAE9CF,EAAME,GAAKjrK,QAAUA,CAEzB,CACF,CAEA,OAAO+qK,CACT,GAEF5tE,OAAQ7nE,GAAS,CAAC,EAAGv9B,GAAgBu9B,GAAQknE,IAAiB,SAAU90F,EAAU4+F,GAC5E5+F,IAAa4+F,IACf/wG,KAAK00K,YAAcxB,GAAoB/gK,EAAUnS,KAAK20K,oBAE1D,IAAInyK,GAAgBu9B,GAAQ,eAAe,SAAqB5tB,EAAU4+F,GACpE5+F,IAAa4+F,GAEf/wG,KAAK8nG,MAAMZ,GAAkB/0F,EAAW,EAAIA,EAAW,KAE3D,IAAI3P,GAAgBu9B,GAAQ,SAAS,SAAe5tB,EAAU4+F,GACxD5+F,IAAa4+F,IACf/wG,KAAK40K,WAAa3B,GAAc9gK,GAEpC,IAAI4tB,IACJ8uD,QAAS,WACP,IAAIryE,EAAQxc,KAGZA,KAAK40K,WAAa3B,GAAcjzK,KAAKmgB,OACrCngB,KAAKgoG,WAAU,WAEbxrF,EAAMk4J,YAAcl4J,EAAMk4J,YAAcl4J,EAAMm4J,mBAAqBn4J,EAAMm4J,mBAAqBn4J,EAAMk4J,WACtG,GACF,EACAh6E,QAAS,CACPi7E,aAAc,SAAsBjsH,GAClC,IAAI0sD,EAAU1sD,EAAM0sD,QAChB+E,EAAWzxD,EAAMyxD,SAGjBn7G,KAAK84H,QAKL1iB,IAAYtG,IAAasG,IAAYjG,IACvC9L,GAAU36C,EAAO,CACf+6C,aAAa,IAEf0W,EAAWn7G,KAAK46G,aAAe56G,KAAK66G,aAC3BzE,IAAYnG,IAAcmG,IAAY3G,KAC/CpL,GAAU36C,EAAO,CACf+6C,aAAa,IAEf0W,EAAWn7G,KAAK+6G,YAAc/6G,KAAK86G,aAEvC,EACA86D,WAAY,WAEV,OAAOn3E,GAAU,gCAAiCz+F,KAAK60G,KAAKnzG,QAAO,SAAUm0K,GAC3E,OAAOh4E,GAAUg4E,EACnB,GACF,EACAC,aAAc,WACZ,IAAIzjE,EAASryG,KAGbA,KAAKgoG,WAAU,WACb,IAAI6tE,EAAMxjE,EAAOujE,aAAa7yC,MAAK,SAAU/zC,GAC3C,OAAO8L,GAAU6E,GAAQ3Q,EAAI,iBAAkB,KAAOqjB,EAAO2iE,mBAC/D,IAEKvzE,GAAao0E,IAEhBxjE,EAAOuI,YAEX,GACF,EACAA,WAAY,WACV,IAAI8K,EAAS1lH,KAGbA,KAAKgoG,WAAU,WACb,IAAI6tE,EAAMnwD,EAAOkwD,aAAa7yC,MAAK,SAAU/zC,GAC3C,OAAQoP,GAAWpP,EACrB,IAEAyS,GAAao0E,EACf,GACF,EACA96D,UAAW,WACT,IAAIgL,EAAS/lH,KAGbA,KAAKgoG,WAAU,WACb,IAAI6tE,EAAM9vD,EAAO6vD,aAAa9xG,UAAUi/D,MAAK,SAAU/zC,GACrD,OAAQoP,GAAWpP,EACrB,IAEAyS,GAAao0E,EACf,GACF,EACAh7D,UAAW,WACT,IAAIoL,EAASjmH,KAGbA,KAAKgoG,WAAU,WACb,IAAIovC,EAAUnxB,EAAO2vD,aAEjB3hI,EAAQmjG,EAAQ5zI,QAAQi6F,MAExBxpD,EAAQ,IAAMmqD,GAAWg5C,EAAQnjG,EAAQ,KAC3CwtD,GAAa21C,EAAQnjG,EAAQ,GAEjC,GACF,EACA6mE,UAAW,WACT,IAAIqM,EAASnnH,KAGbA,KAAKgoG,WAAU,WACb,IAAIovC,EAAUjwB,EAAOyuD,aAEjB3hI,EAAQmjG,EAAQ5zI,QAAQi6F,MAExBxpD,EAAQmjG,EAAQh1I,OAAS,IAAMg8F,GAAWg5C,EAAQnjG,EAAQ,KAC5DwtD,GAAa21C,EAAQnjG,EAAQ,GAEjC,GACF,GAEF90C,OAAQ,SAAgB2B,GACtB,IAAI80J,EAAS51J,KAET+1K,EAAmB3rE,GAAgBpqG,MACnC6yB,EAAWkjJ,EAAiBljJ,SAC5BkhJ,EAAYgC,EAAiBhC,UAC7B7uE,EAAY6wE,EAAiB7wE,UAC7B4zB,EAAQi9C,EAAiBj9C,MACzBk6C,EAAgB+C,EAAiBpB,mBACjCD,EAAcqB,EAAiBf,oBAE/BgB,EAAch2K,KAAKs1K,SAASvtK,KAAI,SAAUmf,GAC5C,OAAOA,EAAEiR,MACX,IACI89I,EAAyBj2K,KAAKi1K,iBAC9BC,EAAgBe,EAAuBf,cACvCC,EAAec,EAAuBd,aACtC1nE,EAAsB,SAAfztG,KAAKusH,MACZ2pD,EAAW,GAEXC,EAAe,SAAsBC,GACvC,OAAOA,IAAe1B,CACxB,EAEI2B,EAAgBr2K,KAAK00K,YAAc,EAEnC4B,EAAa,SAAoBC,EAAQrxE,EAAWsxE,EAASC,EAASC,EAAUC,EAAUp0K,GAC5F,IAAI67F,EAAavrE,GAAYsjJ,EAAaQ,IAAaN,GAAiBE,EAAS,GAAKA,EAASvD,EAC3FoD,EAAaG,EAAS,EAAI,EAAIA,EAASvD,EAAgBA,EAAgBuD,EACvE/7E,EAAQ,CACV3nE,SAAUurE,EACV+0E,KAAMiD,EACNniI,MAAOmiI,EAAa,GAElBQ,EAAchhB,EAAOt7D,cAAck8E,EAASh8E,IAAU91F,GAAS+xK,IAAY31K,IAC3EusG,EAASvsG,EAAEs9F,EAAa,OAAS06B,EAAQllB,GAAQ,SAAU,CAC7DrO,YAAa,YACb/7F,MAAO,CACL,eAAgBsvH,IAAU16B,GAAcqP,GAE1C3kG,MAAOs1F,IAAe06B,EAAQ,CAAC,EAAI88B,EAAO9gD,UAAUyhE,GACpDjtK,MAAO,CACLg/F,KAAMwwB,EAAQ,KAAO,WACrBxsH,KAAMwsH,GAAS16B,EAAa,KAAO,SACnCgW,SAAUhW,GAAc06B,EAAQ,KAAO,KACvC,aAAc5zB,EACd,gBAAiBkF,GAAgBwrD,GAAQl3C,cAAgB,KACzD,gBAAiBtgB,EAAa,OAAS,MAEzC/N,GAAI+N,EAAa,CAAC,EAAI,CACpB,SAAU,SAAe10C,GACvBksG,EAAOthD,QAAQ5qD,EAAO6sH,EACxB,EACApgE,QAASi9D,KAEV,CAACwD,IACJ,OAAO91K,EAAE,KAAM,CACbyB,IAAKA,EACLgjG,YAAa,YACb/7F,MAAO,CAAC,CACNqpB,SAAUurE,EACV,YAAaqP,EACb,SAAUA,IAASqrB,IAAU16B,GAC5Bs4E,GACHptK,MAAO,CACLg/F,KAAMwwB,EAAQ,KAAO,eACrB,cAAe16B,EAAa,OAAS,OAEtC,CAACiP,GACN,EAGIwpE,EAAe,SAAsBC,GACvC,OAAOh2K,EAAE,KAAM,CACbykG,YAAa,YACb/7F,MAAO,CAAC,WAAY,oBAAqBikG,EAAO,YAAc,GAAImoD,EAAOyd,eACzE/pK,MAAO,CACLg/F,KAAM,aAER/lG,IAAK,YAAYtB,OAAO61K,EAAS,OAAS,UACzC,CAACh2K,EAAE,OAAQ,CACZykG,YAAa,aACZ,CAACqwD,EAAOt7D,cAAc/D,KAA4B7xF,GAASkxJ,EAAO0d,eAAiBxyK,OACxF,EAGIi2K,EAAiB,SAAwB5D,EAAMp4J,GACjD,IAAIq7J,EAAajD,EAAKh7I,OAClBw7E,EAASwiE,EAAaC,KAAgBC,EAEtC70E,EAAW3uE,EAAW,KAAO8gF,GAAU0iE,GAAyB,IAARt7J,EAAY,IAAM,KAC1EzR,EAAQ,CACVg/F,KAAMwwB,EAAQ,KAAO,gBACrBxsH,KAAMwsH,GAASjmG,EAAW,KAAO,SACjC,gBAAiBA,EAAW,OAAS,KACrC,gBAAiBu3E,GAAgBwrD,GAAQl3C,cAAgB,KACzD,aAAc9a,GAAgBmwE,GAE9BA,EAAUqC,GAAc,GAAGn1K,OAAO0P,GAAWojK,GAAaA,IAAcA,EAAW,KAAK9yK,OAAOm1K,GAC/F,eAAgBt9C,EAAQ,KAAOnlB,EAAS,OAAS,QACjD,eAAgBmlB,GAASnlB,EAAS,OAAS,KAC3C,gBAAiBmlB,EAAQ,KAAOs9C,EAChC,eAAgBt9C,EAAQ,KAAOk6C,EAE/B5+D,SAAU0kB,EAAQ,KAAOt3B,GAEvBw1E,EAAatyK,GAASkxJ,EAAOqhB,SAASb,IACtC57E,EAAQ,CACV24E,KAAMiD,EACNniI,MAAOmiI,EAAa,EACpBjxE,QAAS6xE,EACTrjE,OAAQA,EACR9gF,SAAUA,GAERw6E,EAASvsG,EAAE+xB,EAAW,OAASimG,EAAQllB,GAAQ,SAAU,CAC3D9qG,MAAO+pB,IAAaimG,EAAQ,CAAC,EAAI88B,EAAO9gD,UAAUshE,GAClD7wE,YAAa,YACb/7F,MAAO,CACL,eAAgBsvH,IAAUjmG,GAAY46E,GAExCnkG,MAAOA,EACP+mF,GAAIx9D,EAAW,CAAC,EAAI,CAClB,SAAU,SAAe62B,GACvBksG,EAAOthD,QAAQ5qD,EAAO0sH,EACxB,EACAjgE,QAASi9D,KAEV,CAACxd,EAAOt7D,cAAc3B,GAAgB6B,IAAUw8E,IACnD,OAAOl2K,EAAE,KAAM,CACbykG,YAAa,YACb/7F,MAAO,CAAC,CACNqpB,SAAUA,EACV8gF,OAAQA,EACR,YAAalG,EACb,SAAUA,IAASqrB,IAAUjmG,GAC5BsgJ,EAAK1oK,QAASmrJ,EAAO0e,WACxBhrK,MAAO,CACLg/F,KAAMwwB,EAAQ,KAAO,gBAEvBv2H,IAAK,QAAQtB,OAAOm1K,IACnB,CAAC/oE,GACN,EAII6pE,EAAgBp2K,IAEfd,KAAKwzK,aAAgBxzK,KAAK2zK,qBAC7BuD,EAAgBZ,EAAW,EAAGt2K,KAAK4zK,eAAgBh9E,GAAsB52F,KAAKyzK,UAAWzzK,KAAKuzK,WAAY,EAAG,0BAG/G2C,EAASp0K,KAAKo1K,GAEdhB,EAASp0K,KAAKw0K,EAAW5B,EAAc,EAAG10K,KAAKg0K,cAAel7E,GAAqB94F,KAAKw0K,SAAUx0K,KAAKu0K,UAAW,EAAG,yBAErH2B,EAASp0K,KAAK9B,KAAKwzK,aAAkC,IAAnBwC,EAAY,GAAWe,EAAe,CACtE5+I,OAAQ,GACP,GAAKr3B,KAERo1K,EAASp0K,KAAKozK,EAAgB2B,GAAa,GAAS/1K,KAEpDd,KAAKs1K,SAAShzK,SAAQ,SAAU6wK,EAAMp4J,GACpC,IAAIslF,EAAS60E,GAAiBtf,EAAO4d,aAAkC,IAAnBwC,EAAY,GAAW,EAAI,EAC/EE,EAASp0K,KAAKi1K,EAAe5D,EAAMp4J,EAAMslF,GAC3C,IAEA61E,EAASp0K,KAAKqzK,EAAe0B,GAAa,GAAQ/1K,KAElDo1K,EAASp0K,KAAK9B,KAAKk0K,YAAc8B,EAAYA,EAAY5zK,OAAS,KAAO4wK,EAAgB+D,EAAe,CACtG5+I,OAAQ66I,IACN,GAAKlyK,KAETo1K,EAASp0K,KAAKw0K,EAAW5B,EAAc,EAAG10K,KAAK8zK,cAAer7E,GAAqBz4F,KAAKq0K,SAAUr0K,KAAKo0K,UAAWpB,EAAe,yBAGjI,IAAImE,EAAer2K,IAEdd,KAAKk0K,YAAel0K,KAAK2zK,qBAC5BwD,EAAeb,EAAWtD,EAAehzK,KAAK6zK,cAAer8E,GAAqBx3F,KAAKm0K,SAAUn0K,KAAKi0K,UAAWjB,EAAe,yBAGlIkD,EAASp0K,KAAKq1K,GAEd,IAAIC,EAAct2K,EAAE,KAAM,CACxBykG,YAAa,aACb/7F,MAAO,CAAC,eAAgBxJ,KAAK60K,QAAS70K,KAAK80K,UAAW90K,KAAK+0K,YAC3DzrK,MAAO,CACLg/F,KAAMwwB,EAAQ,KAAO,UACrB,gBAAiBjmG,EAAW,OAAS,QACrC,aAAcimG,EAAQ,KAAO5zB,GAAa,MAG5C7U,GAAIyoC,EAAQ,CAAC,EAAI,CACf3iB,QAASn2G,KAAK21K,cAEhBx0J,IAAK,MACJ+0J,GAEH,OAAIp9C,EACKh4H,EAAE,MAAO,CACdwI,MAAO,CACL,gBAAiBupB,EAAW,OAAS,KACrC,cAAeA,EAAW,OAAS,QACnC,aAAcimG,GAAQ5zB,GAAoB,OAE3C,CAACkyE,IAGCA,CACT,IExnBF,SAASj2K,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAehN,IAAIw0K,GAAmB,GACnBC,GAAqB,EAGrBC,GAAkB,SAAyBr0K,GAC7C,OAAOgT,GAAQ4kF,GAAU53F,IAAUm0K,GAAkB,EACvD,EAGIG,GAAoB,SAA2Bt0K,GACjD,OAAOgT,GAAQ4kF,GAAU53F,IAAUo0K,GAAoB,EACzD,EAGWxuK,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAc,CAAC,EAAGi1F,IAAkB,CAAC,EAAG,CACtG/4D,aAAc3b,GAASlO,IACvB6iF,QAAS30E,GAASxN,GAAyB8hF,IAC3CM,UAAW50E,GAASxN,GAAyB+hF,OAC1CjsF,IAGMusF,GAA2BryF,GAAO,CAC3C3gF,KAAMymF,GAENliF,OAAQ,CAACsrK,IACT3rK,MAAOA,GACP6gG,SAAU,CACRqpE,cAAe,WACb,IAAInjK,EAAS64F,GAAS8uE,GAAkBx3K,KAAK23K,WAAaJ,GAAgBv3K,KAAK03K,UAC/E,OAAO7nK,EAAS,EAAI,EAAIA,CAC1B,EAEAgoK,sBAAuB,WACrB,MAAO,CACLH,QAASH,GAAgBv3K,KAAK03K,SAC9BC,UAAWH,GAAkBx3K,KAAK23K,WAClC3E,cAAehzK,KAAKgzK,cAExB,GAEFprE,MAAO,CACLiwE,sBAAuB,SAA+B1lK,EAAU4+F,GACzD9uB,GAAkB8uB,KACjB5+F,EAASulK,UAAY3mE,EAAS2mE,SAAWvlK,EAASwlK,YAAc5mE,EAAS4mE,WAGlExlK,EAAS6gK,gBAAkBjiE,EAASiiE,eAAiBhzK,KAAK00K,YAAcviK,EAAS6gK,iBAD1FhzK,KAAK00K,YAAc,GAQvB10K,KAAK20K,mBAAqBxiK,EAAS6gK,aACrC,GAEFnkF,QAAS,WACP,IAAIryE,EAAQxc,KAGZA,KAAK20K,mBAAqB30K,KAAKgzK,cAE/B,IAAI0B,EAAc55E,GAAU96F,KAAKinG,IAAkB,GAE/CytE,EAAc,EAChB10K,KAAK00K,YAAcA,EAEnB10K,KAAKgoG,WAAU,WAGbxrF,EAAMk4J,YAAc,CACtB,GAEJ,EACAh6E,QAAS,CAEP4Z,QAAS,SAAiB5qD,EAAO0sH,GAC/B,IAAI/jE,EAASryG,KAGb,GAAIo2K,IAAep2K,KAAK00K,YAAxB,CAIA,IAAIzyK,EAASynD,EAAMznD,OAEf61K,EAAa,IAAItsC,GAAQj5C,GAAuB,CAClDm5C,YAAY,EACZE,UAAW5rI,KACXiC,OAAQA,IAEVjC,KAAK8nG,MAAMgwE,EAAWxrK,KAAMwrK,EAAY1B,GAEpC0B,EAAWhsC,mBAKf9rI,KAAK00K,YAAc0B,EAEnBp2K,KAAK8nG,MAAMpX,GAAmB1wF,KAAK00K,aAEnC10K,KAAKgoG,WAAU,WACTnK,GAAU57F,IAAWowG,EAAOwC,IAAI/W,SAAS77F,GAC3Cw/F,GAAax/F,GAEbowG,EAAOyjE,cAEX,IA1BA,CA2BF,EACAmB,SAAU,SAAkBc,GAC1B,OAAOA,CACT,EAGAjjE,UAAW,WAET,MAAO,CAAC,CACV,KCvIAkjE,GAAgC1yF,GAAc,CAChDP,WAAY,CACV6yF,YAAaA,MCJjB,SAASz2K,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAsBzM,IAAIo1K,GAAwB,SAA+B/0K,GAChE,OAAOgT,GAAQ4kF,GAAU53F,EAAO,GAAI,EACtC,EAEIg1K,GAAap1F,GAAKiyB,GAAY,CAAC,QAAS,cAExCjsG,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAcA,GAAc,CAAC,EAAGi1F,IAAkBS,IAAa,CAAC,EAAG,CAC1HC,QAASp1E,GAASlO,GAAkB,KACpCujF,QAASr1E,GAAStO,IAElB4jF,aAAct1E,GAASxO,IAAmB,GAC1Cy+E,cAAejwE,GAASxN,GAAyB,GAEjD,SAAUryF,GACR,IAAIi1B,EAAS2iE,GAAU53F,EAAO,GAE9B,QAAIi1B,EAAS,KACXwrD,GAAK,2DAA4D2H,KAC1D,EAIX,IACAgtF,QAASv1E,GAAStO,IAElB+gF,MAAOzyE,GAASzO,IAChBikF,UAAWx1E,GAASxO,IAAmB,MACpCjJ,IAGMktF,GAA8BjzF,GAAO,CAC9C3gF,KAAM0mF,GAENniF,OAAQ,CAACsrK,IACT3rK,MAAOA,GACP6gG,SAAU,CAERmvB,MAAO,WACL,OAAO,CACT,EACA2/C,cAAe,WAEb,IAAIv1K,EAAQ43F,GAAU96F,KAAKkD,MAAO,GAClC,OAAOA,EAAQ,EAAI,KAAOA,CAC5B,GAEF0kG,MAAO,CACLorE,cAAe,WACb,IAAIx2J,EAAQxc,KAEZA,KAAKgoG,WAAU,WACbxrF,EAAMk8J,kBACR,GACF,EACAlD,MAAO,WACL,IAAInjE,EAASryG,KAEbA,KAAKgoG,WAAU,WACbqK,EAAOqmE,kBACT,GACF,GAEF7pF,QAAS,WACP7uF,KAAK04K,kBACP,EACA/9D,QAAS,WACP,IAAI+K,EAAS1lH,KAETA,KAAKwrG,SAEPxrG,KAAKquK,OAAO,UAAU,WACpB3oD,EAAO1d,WAAU,WACfjL,IAAU,WACR2oB,EAAOizD,kBACT,GACF,GACF,GAEJ,EACAj+E,QAAS,CACPg+E,iBAAkB,WAChB,IAAI3yD,EAAS/lH,KAETmE,GAAQnE,KAAKw1K,QAAUx1K,KAAKw1K,MAAMpzK,OAAS,EAC7CpC,KAAK20K,mBAAqB30K,KAAKw1K,MAAMpzK,OAErCpC,KAAK20K,mBAAqBsD,GAAsBj4K,KAAKgzK,eAGvDhzK,KAAKgoG,WAAU,WACb+d,EAAO4yD,kBACT,GACF,EACArkE,QAAS,SAAiB5qD,EAAO0sH,GAC/B,IAAInwD,EAASjmH,KAGb,GAAIo2K,IAAep2K,KAAK00K,YAAxB,CAIA,IAAIzyK,EAASynD,EAAMirD,eAAiBjrD,EAAMznD,OAEtC61K,EAAa,IAAItsC,GAAQj5C,GAAuB,CAClDm5C,YAAY,EACZE,UAAW5rI,KACXiC,OAAQA,IAEVjC,KAAK8nG,MAAMgwE,EAAWxrK,KAAMwrK,EAAY1B,GAEpC0B,EAAWhsC,mBAOf/uC,IAAU,WACRkpB,EAAOyuD,YAAc0B,EAErBnwD,EAAOne,MAAMpX,GAAmB0lF,EAClC,IAIAp2K,KAAKgoG,WAAU,WACbrG,GAAY1/F,EACd,IA5BA,CA6BF,EACA22K,YAAa,SAAqBxC,GAChC,IAAKjyK,GAAQnE,KAAKw1K,QAAgC,IAAtBx1K,KAAKw1K,MAAMpzK,QAAgB+N,GAAYnQ,KAAKw1K,MAAMY,EAAa,IAAK,CAC9F,IAAIvgE,EAAO,GAAG50G,OAAOjB,KAAKm4K,SAASl3K,OAAOm1K,GAC1C,MAAO,CACLvgE,KAAM71G,KAAKu4K,UAAY,CACrB75J,KAAMm3F,GACJA,EACJ3zE,KAAMx9B,GAAS0xK,GAEnB,CAEA,IAAIhxD,EAAOplH,KAAKw1K,MAAMY,EAAa,GAEnC,GAAIxlK,GAASw0G,GAAO,CAClB,IAAIyzD,EAAQzzD,EAAKvP,KACjB,MAAO,CAELA,KAAMjlG,GAASioK,GAASA,EAAQ74K,KAAKu4K,UAAY,CAC/C75J,KAAMm6J,GACJA,EAEJ32I,KAAMx9B,GAAS0gH,EAAKljF,MAAQk0I,GAEhC,CACE,MAAO,CACLvgE,KAAMnxG,GAAS0gH,GACfljF,KAAMx9B,GAAS0xK,GAGrB,EACAa,SAAU,SAAkBb,GAC1B,IAAIkC,EAAUt4K,KAAKs4K,QACflzD,EAAOplH,KAAK44K,YAAYxC,GAE5B,OAAIxyE,GAAgB00E,GACXA,EAAQlC,EAAYhxD,GAGtBA,EAAKljF,IACd,EACA42I,SAAU,SAAkB1C,GAC1B,IAAIgC,EAAUp4K,KAAKo4K,QACfhzD,EAAOplH,KAAK44K,YAAYxC,GAE5B,OAAIxyE,GAAgBw0E,GACXA,EAAQhC,EAAYhxD,GAGtBA,EAAKvP,IACd,EACAf,UAAW,SAAmBshE,GAC5B,IAAIttK,EAAQs6F,GAAW80E,GAAYl4K,MAC/B61G,EAAO71G,KAAK84K,SAAS1C,GAQzB,OANIp2K,KAAKu4K,WAAa3nK,GAASilG,GAC7B/sG,EAAMgD,GAAK+pG,EAEX/sG,EAAMmlC,KAAO4nE,EAGR/sG,CACT,EACAiwK,YAAa,WACX,IAGIljE,EAHA/pG,EAAK3J,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,GAK7E,IAEE0zG,EAAOx6B,SAASnuE,cAAc,KAC9B2oG,EAAK5nE,KAAO69D,GAAY,CACtBhgG,GAAIA,GACH,IAAK,IAAK,KAGbuvE,SAASloC,KAAKgwH,YAAYttD,GAE1B,IAAImjE,EAASnjE,EACT9mE,EAAWiqI,EAAOjqI,SAClB0wB,EAAOu5G,EAAOv5G,KACd1qD,EAASikK,EAAOjkK,OAIpB,OAFAsmE,SAASloC,KAAKoqD,YAAYsY,GAEnB,CACLn3F,KAAMqwB,EACN0wB,KAAMA,EACNmrC,MAAOE,GAAW/1F,GAEtB,CAAE,MAAO9K,IAEP,IACE4rG,GAAQA,EAAKlZ,YAAckZ,EAAKlZ,WAAWY,YAAYsY,EACzD,CAAE,MAAOr5B,GAAU,CAInB,MAAO,CAAC,CACV,CACF,EACAy8F,aAAc,WACZ,IAAIntK,EAAK3J,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,GAI7E,IACE,IAAI+2K,EAAQl5K,KAAKwrG,QAAQloD,QAAQx3C,EAAI9L,KAAKouK,QAAQ8K,MAClD,MAAO,CACLx6J,KAAMw6J,EAAMx6J,KACZ+gD,KAAMy5G,EAAMz5G,KACZmrC,MAAOsuE,EAAMtuE,MAEjB,CAAE,MAAO3gG,IAEP,MAAO,CAAC,CACV,CACF,EACA0uK,iBAAkB,WAChB,IAAIntE,EAAUxrG,KAAKwrG,QACf4iE,EAASpuK,KAAKouK,OACd+K,EAAQn5K,KAAKy4K,cAEjB,IAAKz4K,KAAKq4K,eAAiBc,IAAUr9F,IAAeA,GAAc0vB,GAkBhE,IAhBA,IAAI4tE,EAAe5tE,GAAW4iE,EAAS,CACrC1vJ,KAAM0vJ,EAAO1vJ,KACb+gD,KAAM2uG,EAAO3uG,KACbmrC,MAAOwjE,EAAOxjE,OACZ,CAAC,EAGDyuE,EAAMv9F,EAAa32E,OAAOkwB,UAAYgmD,SAAShmD,SAAW,KAC1DikJ,EAAcD,EAAM,CACtB36J,KAAM26J,EAAItqI,SACV0wB,KAAM45G,EAAI55G,KACVmrC,MAAOE,GAAWuuE,EAAItkK,SAGxB,CAAC,EAEQqhK,EAAa,GAAI+C,GAAS/C,GAAcp2K,KAAK20K,mBAAoByB,IAAc,CACtF,IAAItqK,EAAK9L,KAAK84K,SAAS1C,GAIrB+C,EAFE3tE,IAAY56F,GAAS9E,IAAO9L,KAAKu4K,WAE3BjoE,GAAWtwG,KAAKi5K,aAAantK,GAAKstK,GAAgBhD,EAAa,KAC9Dt6F,EAGDw0B,GAAWtwG,KAAK+4K,YAAYjtK,GAAKwtK,GAAelD,EAAa,MAM5D,CAEb,CAMFp2K,KAAK00K,YAAcyE,EAAQ,EAAIA,EAAQ,CACzC,KC9TAI,GAAmCj0F,GAAc,CACnDP,WAAY,CACVyzF,eAAgBA,MCchBgB,GAAgB,CAClBC,KAAM,OACNC,IAAK,MACLC,MAAO,QACPC,OAAQ,SACRC,KAAM,OACNC,QAAS,MACTC,SAAU,MACVC,SAAU,QACVC,YAAa,QACbC,WAAY,SACZC,YAAa,SACbC,QAAS,OACTC,WAAY,QAEVC,GAAY,CACdb,KAAM,EACNK,SAAU,EACVJ,IAAK,EACLK,SAAU,EACVC,UAAW,EACXL,MAAO,EACPM,YAAa,EACbC,YAAa,EACbN,OAAQ,EACRO,YAAa,EACbC,SAAU,EACVP,KAAM,EACNQ,WAAY,GAGHvxK,GAAQ,CAGjByxK,aAAcx3E,GAASxN,GAAyB,GAEhDg4C,SAAUxqC,GAAS,CAAC1hB,GAAawT,IAAmB,gBAGpD2lF,gBAAiBz3E,GAASxN,GAAyB,GACnDklF,kBAAmB13E,GAAS9N,GAAwB,QACpDoL,OAAQ0C,GAASxN,GAAyB,GAC1CisC,UAAWz+B,GAASlO,GAAkB,OAEtC5yF,OAAQ8gG,GAAS,CAAC1hB,GAAaG,MAItBk5F,GAAwBn1F,GAAO,CACxC3gF,KAAM0oF,GACNnkF,OAAQ,CAAC04J,IACT/4J,MAAOA,GACPE,KAAM,WACJ,MAAO,CAELs9F,QAAQ,EAERqB,WAAW,EACXgzE,WAAY36K,KAAK46K,cAAc56K,KAAKwhI,WAExC,EACA73B,SAAU,CAERkxE,aAAc,WAEZ,MAAO,SACT,EACAxrC,aAAc,WACZ,IAAI7yH,EAAQxc,KAERwhI,EAAYxhI,KAAKwhI,UACrB,MAAO,CACLA,UAAWxhI,KAAK46K,cAAcp5C,GAC9BxS,UAAW,CACT3uB,OAAQ,CACNA,OAAQrgG,KAAK86K,UAAUt5C,IAEzBn2H,KAAM,CACJi9H,SAAUtoI,KAAKy6K,mBAIjB3zC,MAAO,CACLj+H,QAAS,UAEXshI,gBAAiB,CACfvgC,QAAS5pG,KAAKw6K,gBACdv5C,kBAAmBjhI,KAAKutI,WAG5B5J,SAAU,SAAkB36H,GAEtBA,EAAKw6H,oBAAsBx6H,EAAKw4H,WAElChlH,EAAMu+J,sBAAsB/xK,EAEhC,EACA06H,SAAU,SAAkB16H,GAE1BwT,EAAMu+J,sBAAsB/xK,EAC9B,EAEJ,GAEF6lF,QAAS,WACP,IAAIwjB,EAASryG,KAIbA,KAAK4uI,SAAW,KAEhB5uI,KAAK2nG,WAAY,EAEjB3nG,KAAKmyG,IAAI9e,IAAiB,SAAUrE,GAClCqjB,EAAO2oE,aAAahsF,EACtB,IAEA,IAAIm/E,EAAgB,WAClB97D,EAAOrK,WAAU,WAEfjL,IAAU,WACRsV,EAAOixD,UACT,GACF,GACF,EAGAtjK,KAAK8hK,SAASvvD,MAAMxe,GAA2Bo6E,GAE/CnuK,KAAKuyG,MAAM1gB,GAAmBs8E,EAChC,EACApL,YAAa,WAGX/iK,KAAK26K,WAAa36K,KAAK46K,cAAc56K,KAAKwhI,UAC5C,EACA9H,QAAS,WAGP15H,KAAKovI,cACP,EACAlnC,cAAe,WACbloG,KAAK+uI,eACP,EACAwzB,UAAW,WAET,IAAIvzE,EAAKhvF,KAAK60G,IACd7lB,GAAMA,EAAG2N,YAAc3N,EAAG2N,WAAWY,YAAYvO,EACnD,EACA0L,QAAS,CAEP+vC,KAAM,WACJzqI,KAAK2nG,WAAY,CACnB,EAEAizE,cAAe,SAAuBp5C,GACpC,OAAOg4C,GAAc/sK,OAAO+0H,GAAW36H,gBAAkB,MAC3D,EACAi0K,UAAW,SAAmBt5C,GAC5B,IAAKxhI,KAAKqgG,OAAQ,CAEhB,IAAIymC,EAAQ9mI,KAAK6lH,MAAMihB,OAAShoC,GAAO,SAAU9+F,KAAK60G,KAClDomE,EAAchgF,GAAQgF,GAAM6mC,GAAO3oC,MAAO,GAAKlD,GAAQj7F,KAAKu6K,aAAc,GAE9E,OAAQD,GAAU7tK,OAAO+0H,GAAW36H,gBAAkB,GAEpD,KAAK,EAEH,MAAO,WAAW5F,OAAOg6K,EAAa,MAIxC,KAAM,EAEJ,MAAO,WAAWh6K,OAAOg6K,EAAa,MAExC,QACE,OAAO,EAEb,CAIA,OAAOj7K,KAAKqgG,MACd,EACA26E,aAAc,SAAsBhsF,GAClChvF,KAAK+uI,gBAGL/uI,KAAK4uI,SAAW,IAAI/D,GAAO7qI,KAAKiC,OAAQ+sF,EAAIhvF,KAAKqvI,aACnD,EACAN,cAAe,WACb/uI,KAAK4uI,UAAY5uI,KAAK4uI,SAAS7f,UAC/B/uH,KAAK4uI,SAAW,IAClB,EACAQ,aAAc,WACZpvI,KAAK4uI,UAAY5uI,KAAK4uI,SAAS/J,gBACjC,EACAk2C,sBAAuB,SAA+B/xK,GAEpDhJ,KAAK26K,WAAa36K,KAAK46K,cAAc5xK,EAAKw4H,UAC5C,EAGA05C,eAAgB,SAAwBp6K,GAEtC,OAAOA,EAAE,MACX,GAEF3B,OAAQ,SAAgB2B,GACtB,IAAI4kH,EAAS1lH,KAETsmG,EAAStmG,KAAKsmG,OAElB,OAAOxlG,EAAE0lG,GAAc,CAErB19F,MAAO,CACLs9F,QAAQ,EACRE,OAAQA,GAEVjW,GAAI,CAEFy8E,YAAa,SAAqB99E,GAChC,OAAO02B,EAAO5d,MAAMzU,GAAiBrE,EACvC,EACAopC,WAAY,SAAoBppC,GAC9B,OAAO02B,EAAO5d,MAAMxU,GAAkBtE,EACxC,EACA+9E,YAAa,SAAqB/9E,GAChC,OAAO02B,EAAO5d,MAAMhW,GAAiB9C,EACvC,EACAspC,WAAY,SAAoBtpC,GAC9B,OAAO02B,EAAO5d,MAAMjW,GAAmB7C,EACzC,IAED,CAAChvF,KAAK2nG,UAAY3nG,KAAKk7K,eAAep6K,GAAKA,KAChD,IC9PF,SAASK,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAWzM,IAAIiG,GAAQ,CAEjBswG,KAAMrW,GAASxO,IAAmB,GAElC37D,GAAImqE,GAASlO,KAIJsmF,GAAiC51F,GAAO,CACjD3gF,KAAM8oF,GACNwgF,QAASwM,GACTvxK,OAAQ,CAAC64J,IACTl5J,MAAOA,GACPE,KAAM,WAGJ,MAAO,CACLiE,MAAO,GACPk4F,QAAS,GACTqC,QAAS,KACT4zE,YAAa,KACbC,aAAa,EAEjB,EACA1xE,SAAU,CACRkxE,aAAc,WACZ,MAAO,SACT,EACAS,gBAAiB,WACf,IAAIn7I,EAEAqnE,EAAUxnG,KAAKwnG,QACfmzE,EAAa36K,KAAK26K,WAClBE,EAAe76K,KAAK66K,aACxB,MAAO,EAAE16I,EAAO,CAGdo7I,gBAAiBv7K,KAAKq7K,aACrB74K,GAAgB29B,EAAM,KAAKl/B,OAAO45K,EAAc,KAAK55K,OAAOumG,GAAUA,GAAUhlG,GAAgB29B,EAAM,MAAMl/B,OAAO45K,EAAc,KAAK55K,OAAO05K,GAAaA,GAAax6I,GAAOngC,KAAKo7K,YACxL,EACAI,mBAAoB,WAClB,IAAI5iJ,EAAK54B,KAAK44B,GACd,OAAO4pD,GAAcA,GAAc,CAAC,EAAGxiF,KAAK8hK,SAASA,SAAStwD,QAAS,CAAC,EAAG,CACzE54E,GAAIA,EACJ0vE,KAAM,UACN8L,SAAU,MACTp0G,KAAKiiK,iBACV,EACAwZ,kBAAmB,WACjB,IAAIj/J,EAAQxc,KAGZ,MAAO,CACLw2H,WAEA,SAAoB9sE,GAClBltC,EAAMsrF,MAAM5V,GAAuBxoC,EACrC,EACA+sE,WAEA,SAAoB/sE,GAClBltC,EAAMsrF,MAAM3V,GAAuBzoC,EACrC,EACA2sD,QAEA,SAAiB3sD,GACfltC,EAAMsrF,MAAMpW,GAAoBhoC,EAClC,EACA4sD,SAEA,SAAkB5sD,GAChBltC,EAAMsrF,MAAMnW,GAAqBjoC,EACnC,EAEJ,GAEFgxC,QAAS,CACPwgF,eAAgB,SAAwBp6K,GACtC,IAAImM,EAAQjN,KAAKiN,MAEbqgG,EAAS38F,GAAW1D,GAASA,EAAM,CAAC,GAAKA,EAEzCw4F,EAAWzlG,KAAKo5G,OAASzoG,GAAW1D,GAAS,CAC/Cy4F,UAAWz4F,GACT,CAAC,EACL,OAAOnM,EAAE,MAAO,CACdykG,YAAa,oBACb/7F,MAAOxJ,KAAKs7K,gBACZhyK,MAAOtJ,KAAKw7K,mBACZnrF,GAAIrwF,KAAKy7K,mBACR,CAAC36K,EAAE,MAAO,CACXykG,YAAa,QACbpkF,IAAK,UACHrgB,EAAE,MAAO,CACXykG,YAAa,gBACbE,SAAUA,GACT,CAAC6H,KACN,KChHJ,SAASnsG,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CA6BhN,ICjCI64K,GAAuB37I,GDiCvB47I,GAAiB,iBAEjBC,GAA+B72E,GAAiBta,GAAYoH,IAE5DgqF,GAAmB,aAEnBC,GAAqB,CAACH,GAAgBE,IAAkBt1K,KAAK,MAE7Dw1K,GAAiB,WACjBC,GAAyB,sBAEzBC,GAAkB,sBAGlBC,GAAe,CAEjBjvK,MAAO,GAEPk4F,QAAS,GAETqC,QAAS,KAET4zE,YAAa,KAEbe,SAAU,GAEV36C,UAAW,OAEXi5C,kBAAmB,OAInBx4K,OAAQ,KAER28J,UAAW,KAGXt4D,QAAQ,EAERinC,SAAU,eAGVitC,gBAAiB,EAEjBn6E,OAAQ,EAERsuD,MAAO,EAGP4rB,aAAc,EAEdc,aAAa,EAEbxoJ,UAAU,EAEV+F,GAAI,KAEJwgF,MAAM,GAIGgjE,GAAyB72F,GAAO,CACzC3gF,KAAM6oF,GACNtkF,OAAQ,CAAC2oG,GAAmB+vD,IAC5B74J,KAAM,WACJ,OAAOw5E,GAAcA,GAAc,CAAC,EAAG05F,IAAe,CAAC,EAAG,CAExDG,cAAe,CAEbC,OAAO,EACP92E,OAAO,EACP9D,OAAO,GAETiG,WAAW,GAEf,EACAgC,SAAU,CACRkxE,aAAc,WAEZ,MAAO,SACT,EACA0B,WAAY,WACV,OAAOv8K,KAAK44B,IAAM,QAAQ33B,OAAOjB,KAAK66K,aAAc,KAAK55K,OAAOjB,KAAKouF,IAAoB,KAC3F,EACAsgE,cAAe,WAEb,IAAIC,EAAQ,CACVvnD,KAAM,EACNqjC,KAAM,GAUR,OAPIltH,GAAcvd,KAAK2uJ,QACrBA,EAAMvnD,KAAOlxF,GAAQ4kF,GAAU96F,KAAK2uJ,MAAMvnD,KAAM,GAAI,GACpDunD,EAAMlkB,KAAOv0H,GAAQ4kF,GAAU96F,KAAK2uJ,MAAMlkB,KAAM,GAAI,KAC3C35H,GAAS9Q,KAAK2uJ,QAAUj+I,GAAS1Q,KAAK2uJ,UAC/CA,EAAMvnD,KAAOunD,EAAMlkB,KAAOv0H,GAAQ4kF,GAAU96F,KAAK2uJ,MAAO,GAAI,IAGvDA,CACT,EACA6tB,iBAAkB,WAGhB,OAAOv7K,GAAOjB,KAAKm8K,UAAUz6K,OAAOyhF,IAAU58E,KAAK,KAAK0B,OAAOlB,cAAcT,MAAM,OAAOqqC,MAC5F,EACA8rI,oBAAqB,WACnB,IAAK,IAAIzY,KAAWhkK,KAAKq8K,cACvB,GAAIr8K,KAAKq8K,cAAcrY,GACrB,OAAO,EAIX,OAAO,CACT,EACA0Y,qBAAsB,WACpB,IAAIzvK,EAAQjN,KAAKiN,MACbk4F,EAAUnlG,KAAKmlG,QACfqC,EAAUxnG,KAAKwnG,QACf4zE,EAAcp7K,KAAKo7K,YACnB90E,EAAStmG,KAAKsmG,OACd+0E,EAAcr7K,KAAKq7K,YACvB,MAAO,CACLpuK,MAAOA,EACPk4F,QAASA,EACTqC,QAASA,EACT4zE,YAAaA,EACb90E,OAAQA,EACR+0E,YAAaA,EAEjB,GAEFzzE,MAAO,CACL40E,iBAAkB,SAA0BG,EAAaC,GACvD,IAAIpgK,EAAQxc,KAKPswG,GAAWqsE,EAAaC,IAC3B58K,KAAKgoG,WAAU,WAEbxrF,EAAMqgK,WAGND,EAAYt6K,SAAQ,SAAU0hK,GACvBrqE,GAAcgjF,EAAa3Y,IAC1BxnJ,EAAM6/J,cAAcrY,KACtBxnJ,EAAM6/J,cAAcrY,IAAW,EAGrC,IAEAxnJ,EAAMsgK,QACR,GAEJ,EACAJ,qBAAsB,WAGpB18K,KAAK+8K,sBACP,EACA9vK,MAAO,SAAekF,EAAU4+F,GAE1B5+F,IAAa4+F,GAAa5+F,GAC5BnS,KAAKyqI,MAET,EACA53G,SAAU,SAAkB1gB,GACtBA,EACFnS,KAAKg9K,UAELh9K,KAAKi9K,QAET,GAEFpuF,QAAS,WACP,IAAIwjB,EAASryG,KAGbA,KAAKk9K,MAAQ,KACbl9K,KAAKm9K,eAAiB,KACtBn9K,KAAKo9K,aAAe,GACpBp9K,KAAKq9K,kBAAoB,KACzBr9K,KAAKs9K,WAAat9K,KAAK6yB,SACvB7yB,KAAKu9K,OAASvsD,GAAK9nH,KAAKlJ,MAEpBA,KAAK8hK,UACP9hK,KAAK8hK,SAASvvD,MAAMze,IAAgC,WAClDue,EAAOrK,WAAU,WAEfjL,IAAU,WACRsV,EAAOixD,UACT,GACF,GACF,IAGFtjK,KAAKgoG,WAAU,WACb,IAAI/lG,EAASowG,EAAO86D,YAEhBlrK,GAAU67F,GAASziB,SAASloC,KAAMlxC,IAEpCowG,EAAO9yG,QAAUwiK,GAAW1vD,EAAOyvD,UAEnCzvD,EAAOyqE,UAGPn5F,GAAKjzE,GAAS2hG,EAAOpwG,QAAU,yCAA0ChB,OAAOoxG,EAAOpwG,OAAQ,kBAAqB,gDAAiDowG,EAAOwoE,aAEhL,GACF,EAGAnhD,QAAS,WAEP15H,KAAKgoG,UAAUhoG,KAAK+8K,qBACtB,EAGAn3D,YAAa,WAGX5lH,KAAKw9K,WACP,EACAt1E,cAAe,WAEbloG,KAAK68K,WACL78K,KAAKy9K,uBAAsB,GAE3Bz9K,KAAK09K,oBACL19K,KAAK29K,0BAEL39K,KAAK49K,kBAEL59K,KAAKu9K,OAAS,IAChB,EACA7iF,QAAS,CAEPmjF,YAAa,WAEX,OAAO1C,EACT,EACA2C,WAAY,WACV,IAAIp4D,EAAS1lH,KAETgJ,EAAO7G,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAG5E47K,GAAe,EACnBz8K,GAAK46K,IAAc55K,SAAQ,SAAU+F,GAC9B8H,GAAYnH,EAAKX,KAAUq9G,EAAOr9G,KAAUW,EAAKX,KACpDq9G,EAAOr9G,GAAQW,EAAKX,GAEP,UAATA,IACF01K,GAAe,GAGrB,IAIIA,GAAgB/9K,KAAK2nG,WACvB3nG,KAAKg+K,UAET,EACAC,sBAAuB,WAErB,IAAIrf,EAAY5+J,KAAKijK,eACjBib,EAAWl+K,KAAK69K,cAChBM,EAAOn+K,KAAKk9K,MAAQhb,GAAwBliK,KAAMk+K,EAAU,CAE9D9a,UAAW,CAETxqI,GAAI54B,KAAKu8K,WACTnjE,KAAMp5G,KAAKo5G,KACXooB,UAAWxhI,KAAKwhI,UAChBi5C,kBAAmBz6K,KAAKy6K,kBACxBx4K,OAAQjC,KAAKo+K,qBACb7wC,SAAUvtI,KAAKq+K,cAEfh+E,OAAQvF,GAAU96F,KAAKqgG,OAAQ,GAC/Bk6E,aAAcz/E,GAAU96F,KAAKu6K,aAAc,GAC3CC,gBAAiB1/E,GAAU96F,KAAKw6K,gBAAiB,MAIrDx6K,KAAK+8K,uBAGLoB,EAAK5rE,MAAMlf,GAAiBrzF,KAAKs+K,gBAEjCH,EAAK5rE,MAAMjf,GAAkBtzF,KAAKu+K,iBAElCJ,EAAK5rE,MAAMzgB,GAAiB9xF,KAAKw+K,gBAEjCL,EAAK5rE,MAAM1gB,GAAmB7xF,KAAKy+K,kBAEnCN,EAAK5rE,MAAMxe,GAA2B/zF,KAAK49K,iBAI3CO,EAAKhsE,IAAIzgB,GAAoB1xF,KAAK0+K,aAClCP,EAAKhsE,IAAIxgB,GAAqB3xF,KAAK0+K,aACnCP,EAAKhsE,IAAIjgB,GAAuBlyF,KAAK0+K,aACrCP,EAAKhsE,IAAIhgB,GAAuBnyF,KAAK0+K,aAErCP,EAAKzP,OAAO9P,EAAUuE,YAAY9nF,SAASnuE,cAAc,QAC3D,EACAyxK,aAAc,WAKZ3+K,KAAKk9K,OAASl9K,KAAKk9K,MAAMzyC,OAEzBzqI,KAAK4+K,sBAEL5+K,KAAKo9K,aAAe,EACtB,EAEAQ,gBAAiB,WACf59K,KAAKy9K,uBAAsB,GAC3Bz9K,KAAK09K,oBACL19K,KAAKo9K,aAAe,GACpBp9K,KAAK4+K,sBACL5+K,KAAK6+K,qBAAuB,KAE5B,IACE7+K,KAAKk9K,MAAM5Z,UACb,CAAE,MAAO9mF,GAAU,CAEnBx8E,KAAKk9K,MAAQ,KACbl9K,KAAK8+K,wBACL9+K,KAAK++K,eACL/+K,KAAK2nG,WAAY,CACnB,EACAq3E,mBAAoB,WAClB,OAAOh/K,KAAKk9K,MAAQl9K,KAAKk9K,MAAMroE,IAAM,IACvC,EACAkoE,qBAAsB,WACpB,IAAIh3D,EAAS/lH,KAITm+K,EAAOn+K,KAAKk9K,MAEhB,GAAIiB,EAAM,CACR,IAAIr1K,EAAQ,CAAC,QAAS,UAAW,UAAW,cAAe,SAAU,eAErEA,EAAMxG,SAAQ,SAAU+F,GAClB81K,EAAK91K,KAAU09G,EAAO19G,KACxB81K,EAAK91K,GAAQ09G,EAAO19G,GAExB,GACF,CACF,EAGA++F,KAAM,WACJ,IAAInlG,EAASjC,KAAKmtK,YAElB,GAAKlrK,GAAW67F,GAASziB,SAASloC,KAAMlxC,IAAY47F,GAAU57F,KAAWjC,KAAKi/K,kBAAmBh9F,GAAkBjiF,KAAKiN,QAAyB,KAAfjN,KAAKiN,QAAkBg1E,GAAkBjiF,KAAKmlG,UAA6B,KAAjBnlG,KAAKmlG,WAQ7LnlG,KAAKk9K,QAASl9K,KAAK2nG,UAAvB,CAMA3nG,KAAK2nG,WAAY,EAEjB,IAAIsjE,EAAYjrK,KAAKgrK,WAAW33E,GAAiB,CAC/Cq4C,YAAY,IAEd1rI,KAAK0hD,UAAUupH,GAIXA,EAAUn/B,iBAEZ9rI,KAAK49K,mBAKP59K,KAAKg+K,WAELh+K,KAAKk/K,qBAELl/K,KAAKi+K,wBAvBL,CAwBF,EACAxzC,KAAM,WACJ,IAAIyd,EAAQ/lJ,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,IAAmBA,UAAU,GAEvEg9K,EAAMn/K,KAAKg/K,qBAGf,GAAKG,GAAQn/K,KAAK2nG,UAAlB,CAOA,IAAIujE,EAAYlrK,KAAKgrK,WAAWl5E,GAAiB,CAC/C45C,YAAawc,IAEfloJ,KAAK0hD,UAAUwpH,GAGXA,EAAUp/B,kBAMd9rI,KAAK2+K,cAhBL,MAFE3+K,KAAK++K,cAmBT,EACAvB,UAAW,WAET,IAAI2B,EAAMn/K,KAAKg/K,qBAEVG,GAAQn/K,KAAK2nG,YAOlB3nG,KAAKy9K,uBAAsB,GAE3Bz9K,KAAK09K,oBACL19K,KAAKo9K,aAAe,GACpBp9K,KAAK4+K,sBAED5+K,KAAKk9K,QACPl9K,KAAKk9K,MAAM52E,QAAS,GAItBtmG,KAAKyqI,MAAK,GACZ,EACAwyC,OAAQ,WACNj9K,KAAKs9K,WAAY,EAEjBt9K,KAAK0hD,UAAU1hD,KAAKgrK,WAAW15E,IACjC,EACA0rF,QAAS,WACPh9K,KAAKs9K,WAAY,EAEjBt9K,KAAK0hD,UAAU1hD,KAAKgrK,WAAW95E,IACjC,EAGAotF,eAAgB,WAEdt+K,KAAKy9K,uBAAsB,EAC7B,EAEAc,gBAAiB,WACf,IAAIa,EAAiBp/K,KAAKo9K,aAC1Bp9K,KAAKo9K,aAAe,GAGG,QAAnBgC,GACFp/K,KAAKq4H,MAAM,MAIbr4H,KAAK0hD,UAAU1hD,KAAKgrK,WAAW13E,IACjC,EAEAkrF,eAAgB,WAEdx+K,KAAKy9K,uBAAsB,EAC7B,EAEAgB,iBAAkB,WAEhBz+K,KAAK49K,kBAEL59K,KAAK0hD,UAAU1hD,KAAKgrK,WAAWn5E,IACjC,EAEAs7E,UAAW,WACT,IAAIlrK,EAASjC,KAAKiC,OAUlB,OARIyO,GAASzO,GACXA,EAASi9F,GAAQj9F,EAAOyE,QAAQ,KAAM,KAC7BiK,GAAW1O,GACpBA,EAASA,IACAA,IACTA,EAASA,EAAO4yG,KAAO5yG,GAGlBu7F,GAAUv7F,GAAUA,EAAS,IACtC,EACAm8K,mBAAoB,WAQlB,OAAOp+K,KAAKmtK,WACd,EACAkS,YAAa,WAEX,IAAIp9K,EAASjC,KAAKmtK,YAClB,OAAOlrK,GAAUA,EAAO22B,GAAK32B,EAAO22B,GAAK,IAC3C,EACAqqI,aAAc,WAEZ,IAAIrE,IAAY5+J,KAAK4+J,YAAY5+J,KAAK4+J,UAAU/pD,KAAO70G,KAAK4+J,WACxDzrH,EAAOkoC,SAASloC,KAChBlxC,EAASjC,KAAKmtK,YAQlB,OAAqB,IAAdvO,EAAsBpiE,GAAQs/E,GAAoB75K,IAAWkxC,EAEpEziC,GAASkuJ,IAET1/D,GAAQ0/D,EAAUl4J,QAAQ,KAAM,MAEhCysC,CACF,EACAkrI,YAAa,WACX,OAAOr+K,KAAKutI,SAAWvtI,KAAKutI,SAAS14B,KAAO70G,KAAKutI,SAAW,cAC9D,EACA+xC,UAAW,WACT,IAAIr9K,EAASjC,KAAKmtK,YAClB,OAAOlrK,GAAUu6F,GAAQm/E,GAAgB15K,EAC3C,EACAs9K,WAAY,WAEV,IAAIt9K,EAASjC,KAAKmtK,YAClB,OAAOlrK,GAAUq8F,GAASr8F,EAAQ85K,GACpC,EACAkD,aAAc,WAEZ,IAAIh9K,EAASjC,KAAKmtK,YAClB,OAAOntK,KAAKu/K,cAAgBt9K,GAAU68F,GAAOk9E,GAAwB/5K,EACvE,EACAy7K,kBAAmB,WACjBx7J,aAAaliB,KAAKm9K,gBAClBn9K,KAAKm9K,eAAiB,IACxB,EACAQ,wBAAyB,WACvBnpD,cAAcx0H,KAAKq9K,mBACnBr9K,KAAKq9K,kBAAoB,IAC3B,EACAuB,oBAAqB,WACnB,IAAK,IAAI5a,KAAWhkK,KAAKq8K,cACvBr8K,KAAKq8K,cAAcrY,IAAW,CAElC,EACAkb,mBAAoB,WAElB,IAAIj9K,EAASjC,KAAKmtK,YACdl7J,EAAO0tF,GAAQ19F,EAAQ,qBAAuB,GAClDgQ,EAAOA,EAAK3L,MAAM,OAAOrF,OAAOjB,KAAKu8K,YAAYh2K,KAAK,KAAK0B,OAE3Dq3F,GAAQr9F,EAAQ,mBAAoBgQ,EACtC,EACA6sK,sBAAuB,WACrB,IAAI74D,EAASjmH,KAGTiC,EAASjC,KAAKmtK,YACdl7J,EAAO0tF,GAAQ19F,EAAQ,qBAAuB,GAClDgQ,EAAOA,EAAK3L,MAAM,OAAO5E,QAAO,SAAUia,GACxC,OAAOA,IAAMsqG,EAAOs2D,UACtB,IAAGh2K,KAAK,KAAK0B,OAETgK,EAEFqtF,GAAQr9F,EAAQ,mBAAoBgQ,GAEpCwtF,GAAWx9F,EAAQ,mBAEvB,EACA+7K,SAAU,WAGR,IAAI/7K,EAASjC,KAAKmtK,YAElB,GAAI9uE,GAAQp8F,EAAQ,SAAU,CAE5B,IAAIgL,EAAQ0yF,GAAQ19F,EAAQ,SAC5Bq9F,GAAQr9F,EAAQ,QAAS,IAErBgL,GACFqyF,GAAQr9F,EAAQg6K,GAAiBhvK,EAErC,CACF,EACA8xK,aAAc,WAGZ,IAAI98K,EAASjC,KAAKmtK,YAElB,GAAI9uE,GAAQp8F,EAAQg6K,IAAkB,CAEpC,IAAIhvK,EAAQ0yF,GAAQ19F,EAAQg6K,IAC5Bx8E,GAAWx9F,EAAQg6K,IAEfhvK,GACFqyF,GAAQr9F,EAAQ,QAASgL,EAE7B,CACF,EAEA+9J,WAAY,SAAoB1+J,GAC9B,IAAI3M,EAAUwC,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAEnF,OAAO,IAAIqpI,GAAQl/H,EAAMk2E,GAAc,CACrCkpD,YAAY,EACZzpI,OAAQjC,KAAKmtK,YACblyD,cAAej7G,KAAKg/K,sBAAwB,KAC5CnzC,YAAa7rI,KAAKu8K,WAClB3wC,UAAW5rI,MACVL,GACL,EACA+hD,UAAW,SAAmB6sF,GAC5B,IAAIjiI,EAAOiiI,EAAQjiI,KACnBtM,KAAKyyG,WAAW1N,GAAiB/kG,KAAK66K,aAAcvuK,GAAOiiI,GAC3DvuI,KAAK8nG,MAAMx7F,EAAMiiI,EACnB,EAEAuuC,OAAQ,WACN,IAAI31D,EAASnnH,KAGTgvF,EAAKhvF,KAAKmtK,YAETn+E,IAMLhvF,KAAKw/K,iBAAgB,GAErBx/K,KAAKw8K,iBAAiBl6K,SAAQ,SAAU0hK,GACtB,UAAZA,EACFjyH,GAAQi9C,EAAI,QAASm4B,EAAOu3D,YAAatqF,IACpB,UAAZ4vE,GACTjyH,GAAQi9C,EAAI,UAAWm4B,EAAOu3D,YAAatqF,IAC3CriD,GAAQi9C,EAAI,WAAYm4B,EAAOu3D,YAAatqF,KACvB,SAAZ4vE,EAITjyH,GAAQi9C,EAAI,WAAYm4B,EAAOu3D,YAAatqF,IACvB,UAAZ4vE,IACTjyH,GAAQi9C,EAAI,aAAcm4B,EAAOu3D,YAAatqF,IAC9CriD,GAAQi9C,EAAI,aAAcm4B,EAAOu3D,YAAatqF,IAElD,GAAGp0F,MACL,EAGA68K,SAAU,WACR,IAAIjnB,EAAS51J,KAGTqxC,EAAS,CAAC,QAAS,UAAW,WAAY,aAAc,cACxDpvC,EAASjC,KAAKmtK,YAElBntK,KAAKw/K,iBAAgB,GAErBnuI,EAAO/uC,SAAQ,SAAUonD,GACvBznD,GAAUiwC,GAASjwC,EAAQynD,EAAOksG,EAAO8oB,YAAatqF,GACxD,GAAGp0F,KACL,EACAw/K,gBAAiB,SAAyBnvF,GAExC,IAAI39D,EAAS29D,EAAK,eAAiB,gBAC/B/jF,EAAOtM,KAAK66K,aAChB76K,KAAK0yB,GAAQsyE,GAAuB14F,EAAMwlF,IAAkB9xF,KAAKy/K,QACjEz/K,KAAK0yB,GAAQsyE,GAAuB14F,EAAM+mF,IAAkBrzF,KAAKqwH,QACjErwH,KAAK0yB,GAAQsyE,GAAuB14F,EAAM2kF,IAAqBjxF,KAAK0/K,WACpE1/K,KAAK0yB,GAAQsyE,GAAuB14F,EAAM+kF,IAAoBrxF,KAAK2/K,SACrE,EACAlC,sBAAuB,SAA+BptF,GAGpDrwF,KAAK4/K,iBAAiBvvF,GAEtBrwF,KAAK6/K,oBAAoBxvF,GAGzBrwF,KAAK8/K,aAAazvF,GAElBrwF,KAAK+/K,wBAAwB1vF,EAC/B,EAEAyvF,aAAc,SAAsBzvF,GAClC,IAAI2vF,EAAShgL,KAEbA,KAAK29K,0BACL,IAAI17K,EAASjC,KAAKmtK,YAEd98E,IACFrwF,KAAKq9K,kBAAoBroD,aAAY,WACnC,IAAImqD,EAAMa,EAAOhB,sBAEbG,IAAOa,EAAOr4E,WAAe1lG,EAAO06F,YAAekB,GAAU57F,IAE/D+9K,EAAOxC,WAEX,GAAG,KAEP,EACAoC,iBAAkB,SAA0BvvF,GAEtCrwF,KAAKs/K,aAEPt/K,KAAKqwF,EAAK,eAAiB,iBAAiBurF,GAA8B57K,KAAKw9K,UAEnF,EAGAuC,wBAAyB,SAAiC1vF,GACxD,IAAI4vF,EAASjgL,KAMT,iBAAkBq7E,SAASqB,iBAC7BkiB,GAAUvjB,SAASloC,KAAKlqC,UAAU3G,SAAQ,SAAU0sF,GAClDoV,GAAW/T,EAAIrB,EAAI,YAAaixF,EAAO1C,OACzC,GAEJ,EACAsC,oBAAqB,SAA6BxvF,GAChD,IAAIpuF,EAASjC,KAAKmtK,YAElB,GAAKlrK,GAAWjC,KAAK4xG,aAAgB5xG,KAAKu/K,WAA1C,CAWA,IAAIpgG,EAAW4tD,GAAuB9qI,GAElCk9E,GACFA,EAASkR,EAAK,MAAQ,QAAQiD,GAAkBtzF,KAAKw9K,UAZvD,CAcF,EAEAkB,YAAa,SAAqBh1H,GAGhC,IAAIznD,EAASjC,KAAKmtK,YAElB,GAAKlrK,IAAUm8F,GAAWn8F,IAAYjC,KAAKs9K,YAAat9K,KAAKi/K,eAA7D,CAOA,IAAI3yK,EAAOo9C,EAAMp9C,KACb6vK,EAAWn8K,KAAKw8K,iBAEpB,GAAa,UAATlwK,GAAoBqtF,GAAcwiF,EAAU,SAC9Cn8K,KAAKwlG,MAAM97C,QACN,GAAa,eAATp9C,GAAyBqtF,GAAcwiF,EAAU,SAE1Dn8K,KAAKm4H,MAAMzuE,QACN,GAAa,YAATp9C,GAAsBqtF,GAAcwiF,EAAU,SAGvDn8K,KAAKm4H,MAAMzuE,QACN,GAAa,aAATp9C,IAAwBqtF,GAAcwiF,EAAU,UAAYxiF,GAAcwiF,EAAU,UAAqB,eAAT7vK,GAAyBqtF,GAAcwiF,EAAU,SAAU,CAIpK,IAAIgD,EAAMn/K,KAAKg/K,qBAEXkB,EAAcx2H,EAAMznD,OAEpBg5G,EAAgBvxD,EAAMuxD,cAG1B,GACAkkE,GAAOrhF,GAASqhF,EAAKe,IAAgBpiF,GAAS77F,EAAQg5G,IACtDkkE,GAAOrhF,GAAS77F,EAAQi+K,IAAgBpiF,GAASqhF,EAAKlkE,IACtDkkE,GAAOrhF,GAASqhF,EAAKe,IAAgBpiF,GAASqhF,EAAKlkE,IACnDnd,GAAS77F,EAAQi+K,IAAgBpiF,GAAS77F,EAAQg5G,GAEhD,OAIFj7G,KAAKq4H,MAAM3uE,EACb,CApCA,CAqCF,EACA+1H,OAAQ,SAAgB7mJ,GAEjBA,GAAM54B,KAAKq/K,gBAAkBzmJ,GAAM54B,KAAKu8K,aAAe3jJ,GAE1D54B,KAAKw9K,WAET,EACAntD,OAAQ,SAAgBz3F,GAEjBA,GAAM54B,KAAKq/K,gBAAkBzmJ,GAAM54B,KAAKu8K,aAAe3jJ,GAE1D54B,KAAKonG,MAET,EAGAs4E,UAAW,SAAmB9mJ,GAIvBA,GAAM54B,KAAKq/K,gBAAkBzmJ,GAAM54B,KAAKu8K,aAAe3jJ,GAE1D54B,KAAKg9K,SAET,EAGA2C,SAAU,SAAkB/mJ,GAIrBA,GAAM54B,KAAKq/K,gBAAkBzmJ,GAAM54B,KAAKu8K,aAAe3jJ,GAE1D54B,KAAKi9K,QAET,EACAz3E,MAAO,SAAe97C,GACf1pD,KAAKs9K,YAAat9K,KAAKi/K,iBAW5Bx9E,GAAa/3C,EAAMirD,eACnB30G,KAAKq8K,cAAc72E,OAASxlG,KAAKq8K,cAAc72E,MAE3CxlG,KAAKy8K,oBACPz8K,KAAKm4H,MAAM,MAGXn4H,KAAKq4H,MAAM,MAEf,EAGAviB,OAAQ,WAED91G,KAAKs9K,YAAat9K,KAAKi/K,iBAOxBj/K,KAAK2nG,UACP3nG,KAAKq4H,MAAM,MAEXr4H,KAAKm4H,MAAM,MAEf,EACAA,MAAO,WACL,IAAIgoD,EAAUngL,KAEV0pD,EAAQvnD,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,KAI5EunD,IACF1pD,KAAKq8K,cAA6B,YAAf3yH,EAAMp9C,KAAqB,QAAU,UAAW,GAKjEtM,KAAK2nG,WAAmC,OAAtB3nG,KAAKo9K,aACzBp9K,KAAKo9K,aAAe,MAItBp9K,KAAK09K,oBACL19K,KAAKo9K,aAAe,KAEfp9K,KAAK0uJ,cAActnD,MAItBpnG,KAAKg+K,WACLh+K,KAAKm9K,eAAiBn7J,YAAW,WAEF,OAAzBm+J,EAAQ/C,aACV+C,EAAQ/4E,OACE+4E,EAAQx4E,WAClBw4E,EAAQpB,cAEZ,GAAG/+K,KAAK0uJ,cAActnD,OAXtBpnG,KAAKonG,OAaT,EACAixB,MAAO,WACL,IAAI+nD,EAAUpgL,KAEV0pD,EAAQvnD,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,KAI5EunD,IACF1pD,KAAKq8K,cAA6B,aAAf3yH,EAAMp9C,KAAsB,QAAU,UAAW,EAGjD,aAAfo9C,EAAMp9C,MAAuBqtF,GAAc35F,KAAKw8K,iBAAkB,UAEpEx8K,KAAKq8K,cAAc72E,OAAQ,EAC3BxlG,KAAKq8K,cAAcC,OAAQ,IAM3Bt8K,KAAKy8K,sBAITz8K,KAAK09K,oBACL19K,KAAKo9K,aAAe,MAEfp9K,KAAK0uJ,cAAcjkB,KAGtBzqI,KAAKm9K,eAAiBn7J,YAAW,WACF,QAAzBo+J,EAAQhD,cACVgD,EAAQ31C,MAEZ,GAAGzqI,KAAK0uJ,cAAcjkB,MANtBzqI,KAAKyqI,OAQT,KCn+BJ,SAAStpI,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAgBhN,IAAIw9K,GAA0B,WAC1BC,GAA2BtsF,GAA0BqsF,GACrD/wD,GAAuB,OACvBC,GAAwBv7B,GAA0Bs7B,GAE3CxmH,GAAQ46F,IAAuBg4E,GAAwB,CAIhEnuC,SAAUxqC,GAAS,CAAC1hB,GAAasT,GAAkBE,IAAmB,gBACtE2lF,gBAAiBz3E,GAASxN,GAAyB,IAInDqpE,UAAW77D,GAAS,CAAC1hB,GAAasT,GAAkBE,KACpDumF,YAAar4E,GAASlO,IACtB85D,MAAO5rD,GAASvN,GAAgC,KAC/ChzF,GAAgBk5K,GAAuB2E,GAAyBt9E,GAASxO,IAAmB,IAAS/xF,GAAgBk5K,GAAuB,oBAAqB34E,GAAS9N,GAAwB,SAAUzyF,GAAgBk5K,GAAuB,KAAM34E,GAASlO,KAAoBryF,GAAgBk5K,GAAuB,SAAU34E,GAASxO,IAAmB,IAAS/xF,GAAgBk5K,GAAuB,iBAAkB34E,GAASxO,IAAmB,IAAS/xF,GAAgBk5K,GAAuB,SAAU34E,GAASxN,GAAyB,IAAK/yF,GAAgBk5K,GAAuB,YAAa34E,GAASlO,GAAkB,QAASryF,GAAgBk5K,GAAuBpsD,GAAsBvsB,GAASxO,IAAmB,IAAS/xF,GAAgBk5K,GAAuB,SAAU34E,GAAS,CAAC1hB,GAAaG,GAAYiT,GAAoBE,GAAkBE,SAAmB9rF,GAAW,IAAQvG,GAAgBk5K,GAAuB,QAAS34E,GAASlO,KAAoBryF,GAAgBk5K,GAAuB,WAAY34E,GAAS9N,GAAwB,gBAAiBzyF,GAAgBk5K,GAAuB,UAAW34E,GAASlO,KAAoB6mF,IAAwB3uF,IAG7oCwzF,GAAwBh7F,GAAO,CACxC3gF,KAAMmoF,GACN5jF,OAAQ,CAACsxF,GAAoBonE,IAC7BhuD,cAAc,EACd/qG,MAAOA,GACPE,KAAM,WACJ,MAAO,CACL2+F,UAAW3nG,KAAKsvH,IAChBkxD,WAAY,GACZC,aAAc,GAElB,EACA92E,SAAU,CAERuyE,aAAc,WACZ,OAAO15F,GAAc,CACnBv1E,MAAOjN,KAAKwgL,WACZr7E,QAASnlG,KAAKygL,aACdpF,aAAcr7K,KAAKu7K,gBAClB14F,GAAK7iF,KAAKuwH,OAAQ,CAAC,WAAY,kBAAmB,YAAa,cAAe,QAAS,oBAAqB,KAAM,SAAU,SAAU,YAAa,SAAU,SAAU,WAAY,UAAW8vD,KACnM,EAEAK,qBAAsB,WACpB,IAAIzzK,EAAQjN,KAAKiN,MACbk4F,EAAUnlG,KAAKmlG,QACnB,MAAO,CACLl4F,MAAOA,EACPk4F,QAASA,EAEb,GAEFyC,OAAQ7nE,GAAS,CAAC,EAAGv9B,GAAgBu9B,GAAQuvF,IAAsB,SAAUn9G,EAAU4+F,GACjF5+F,IAAa4+F,GAAY5+F,IAAanS,KAAK2nG,WAAa3nG,KAAK2gL,YAC3DxuK,EACFnS,KAAK2gL,UAAUv5E,OAGfpnG,KAAK2gL,UAAUnD,YAGrB,IAAIh7K,GAAgBu9B,GAAQsgJ,IAAyB,SAAUluK,GACzDA,EACFnS,KAAK0/K,YAEL1/K,KAAK2/K,UAET,IAAIn9K,GAAgBu9B,GAAQ,aAAa,SAAmB5tB,GAE1DnS,KAAK8nG,MAAMynB,GAAuBp9G,EACpC,IAAI3P,GAAgBu9B,GAAQ,gBAAgB,WAC1C,IAAIvjB,EAAQxc,KAEZA,KAAKgoG,WAAU,WACTxrF,EAAMmkK,WACRnkK,EAAMmkK,UAAU7C,WAAWthK,EAAM0/J,aAErC,GACF,IAAI15K,GAAgBu9B,GAAQ,wBAAwB,WAClD//B,KAAKgoG,UAAUhoG,KAAK4gL,cACtB,IAAI7gJ,IACJ8uD,QAAS,WAEP7uF,KAAK2gL,UAAY,IACnB,EACAjnD,QAAS,WAGP15H,KAAKgoG,UAAUhoG,KAAK4gL,cACtB,EACA14E,cAAe,WAEbloG,KAAKwyG,KAAKlgB,GAAiBtyF,KAAK6gL,QAChC7gL,KAAKwyG,KAAK3hB,GAAkB7wF,KAAK8gL,SACjC9gL,KAAKwyG,KAAKvhB,GAAoBjxF,KAAK0/K,WACnC1/K,KAAKwyG,KAAKnhB,GAAmBrxF,KAAK2/K,UAE9B3/K,KAAK2gL,YACP3gL,KAAK2gL,UAAUrd,WACftjK,KAAK2gL,UAAY,KAErB,EACAhmE,QAAS,WACP,IAAItI,EAASryG,KAKbA,KAAKgoG,WAAU,WAEb,IAAIm6D,EAAY9vD,EAAO0uE,eAGvB1uE,EAAOuuE,gBAGP,IAAIrhL,EAAUwiK,GAAW1vD,IAAW0vD,GAAW1vD,EAAOyvD,UAElDkf,EAAW3uE,EAAOsuE,UAAYze,GAAwB7vD,EAAQ8vD,EAAW,CAE3EriK,SAAUP,QAAWwJ,IAGvBi4K,EAASlD,WAAWzrE,EAAO6pE,cAE3B8E,EAAS7uE,IAAI9e,GAAiBgf,EAAOirC,QACrC0jC,EAAS7uE,IAAI7e,GAAkB+e,EAAOkrC,SACtCyjC,EAAS7uE,IAAIrgB,GAAiBugB,EAAO4uE,QACrCD,EAAS7uE,IAAItgB,GAAmBwgB,EAAOmrC,UACvCwjC,EAAS7uE,IAAIjhB,GAAqBmhB,EAAO6uE,YACzCF,EAAS7uE,IAAI7gB,GAAoB+gB,EAAO8uE,WAEpC9uE,EAAOguE,KAEThuE,EAAOqtE,YAITrtE,EAAOF,IAAI7f,GAAiB+f,EAAOwuE,QAGnCxuE,EAAOF,IAAIthB,GAAkBwhB,EAAOyuE,SAGpCzuE,EAAOF,IAAIlhB,GAAoBohB,EAAOqtE,WAGtCrtE,EAAOF,IAAI9gB,GAAmBghB,EAAOstE,UAGjCttE,EAAO1K,WACTq5E,EAAS55E,MAEb,GACF,EACA1M,QAAS,CACPqmF,aAAc,WAEZ,OAAO3E,EACT,EACAwE,cAAe,WAMb5gL,KAAKohL,SAASphL,KAAKs6F,iBAAmBt6F,KAAKiN,MAC7C,EAEAm0K,SAAU,SAAkBl+K,GAC1BA,EAAQ++E,GAAkB/+E,GAAS,GAAKA,EAEpClD,KAAKwgL,aAAet9K,IACtBlD,KAAKwgL,WAAat9K,EAEtB,EACAm+K,WAAY,SAAoBn+K,GAC9BA,EAAQ++E,GAAkB/+E,GAAS,GAAKA,EAEpClD,KAAKygL,eAAiBv9K,IACxBlD,KAAKygL,aAAev9K,EAExB,EAEAo6I,OAAQ,SAAgB/O,GAEtBvuI,KAAK8nG,MAAMzU,GAAiBk7C,GAExBA,IACFvuI,KAAK2nG,WAAa4mC,EAAQzC,iBAE9B,EACAyR,QAAS,SAAiBhP,GAExBvuI,KAAK2nG,WAAY,EACjB3nG,KAAK8nG,MAAMxU,GAAkBi7C,EAC/B,EACA0yC,OAAQ,SAAgB1yC,GACtBvuI,KAAK8nG,MAAMhW,GAAiBy8C,EAC9B,EACAiP,SAAU,SAAkBjP,GAE1BvuI,KAAK8nG,MAAMjW,GAAmB08C,GAC9BvuI,KAAK2nG,WAAY,CACnB,EACAu5E,WAAY,SAAoB3yC,GAG1BA,GAAWA,EAAQjiI,OAAS4kF,KAC9BlxF,KAAK8nG,MAAMw4E,IAA0B,GACrCtgL,KAAK8nG,MAAM5W,GAAqBq9C,GAEpC,EACA4yC,UAAW,SAAmB5yC,GAGxBA,GAAWA,EAAQjiI,OAASglF,KAC9BtxF,KAAK8nG,MAAMw4E,IAA0B,GACrCtgL,KAAK8nG,MAAMxW,GAAoBi9C,GAEnC,EAEAsyC,OAAQ,YACL7gL,KAAK2nG,WAAa3nG,KAAK2gL,WAAa3gL,KAAK2gL,UAAUv5E,MACtD,EACA05E,QAAS,WACP9gL,KAAK2nG,WAAa3nG,KAAK2gL,WAAa3gL,KAAK2gL,UAAUl2C,MACrD,EACAi1C,UAAW,WACT1/K,KAAK2gL,WAAa3gL,KAAK2gL,UAAU3D,SACnC,EACA2C,SAAU,WACR3/K,KAAK2gL,WAAa3gL,KAAK2gL,UAAU1D,QACnC,GAEF99K,OAAQ,SAAgB2B,GAKtB,OAAOA,GACT,ICjQSwgL,GAAiC/7F,GAAO,CACjD3gF,KAAMyoF,GACN6gF,QAASiN,GACTxxE,SAAU,CACRkxE,aAAc,WACZ,MAAO,SACT,GAEFngF,QAAS,CACPwgF,eAAgB,SAAwBp6K,GACtC,IAAImM,EAAQjN,KAAKiN,MACbk4F,EAAUnlG,KAAKmlG,QAEfmI,EAAS38F,GAAW1D,GAASA,EAAM,CAAC,GAAKA,EACzCi9F,EAAWv5F,GAAWw0F,GAAWA,EAAQ,CAAC,GAAKA,EAE/Co8E,EAAgBvhL,KAAKo5G,OAASzoG,GAAW1D,GAAS,CACpDy4F,UAAWz4F,GACT,CAAC,EACDu0K,EAAkBxhL,KAAKo5G,OAASzoG,GAAWw0F,GAAW,CACxDO,UAAWP,GACT,CAAC,EACL,OAAOrkG,EAAE,MAAO,CACdykG,YAAa,oBACb/7F,MAAOxJ,KAAKs7K,gBACZhyK,MAAOtJ,KAAKw7K,mBACZnrF,GAAIrwF,KAAKy7K,mBACR,CAAC36K,EAAE,MAAO,CACXykG,YAAa,QACbpkF,IAAK,UACH8gE,GAAkBqrB,IAAsB,KAAXA,EAEjCxsG,IAAMA,EAAE,KAAM,CACZykG,YAAa,iBACbE,SAAU87E,GACT,CAACj0E,IAAUrrB,GAAkBioB,IAA0B,KAAbA,EAE7CppG,IAAMA,EAAE,MAAO,CACbykG,YAAa,eACbE,SAAU+7E,GACT,CAACt3E,KACN,KCpCOu3E,GAAyBl8F,GAAO,CACzC3gF,KAAMwoF,GACN8gF,QAASkO,GACTzyE,SAAU,CAERkxE,aAAc,WACZ,MAAO,SACT,GAEFngF,QAAS,CACPmjF,YAAa,WAEX,OAAOyD,EACT,KCvBJ,SAASngL,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAYzM,IAAIiG,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAc,CAAC,EAAGk/F,IAAgB,CAAC,EAAG,CACpGv8E,QAASpC,GAASlO,IAClB2sC,UAAWz+B,GAASlO,GAAkB,SACtCsnF,SAAUp5E,GAAS9N,GAAwBrE,OACxCrF,IAGMo2F,GAAwBp8F,GAAO,CACxC3gF,KAAM2mF,GACN2iF,QAASqS,GACT1sE,cAAc,EACd/qG,MAAOA,GACP4xF,QAAS,CACPqmF,aAAc,WAEZ,OAAOU,EACT,EACAb,cAAe,WAKb5gL,KAAKqhL,WAAWrhL,KAAKs6F,iBAAmBt6F,KAAKmlG,SAC7CnlG,KAAKohL,SAASphL,KAAKs6F,cAAcf,KAAoBv5F,KAAKiN,MAC5D,KCxCJ,SAAS9L,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAkBhN,IAAI++K,GAAa,iBAEbC,GAAiB,QAEjBC,GAAgB,CAClBpgF,OAAO,EACP46E,OAAO,EACP92E,OAAO,EACP5D,MAAM,EACNmgF,QAAQ,GAGNC,GAAS,UACTC,GAAW,YACXC,GAAc,sFACdC,GAAa,oCACbC,GAAU,UACVC,GAAc,WACdC,GAAc,WACdC,GAAW,YACXC,GAAY,UACZC,GAAW,MAGXC,GAAgB,SAAuBtoD,EAAUlrC,GAInD,IAAIxuD,EAAS,CACXzzB,WAAOlE,EACPo8F,aAASp8F,EACTi7J,QAAS,GAETxiC,UAAW,QACXi5C,kBAAmB,OACnB7b,WAAW,EAEXvyD,WAAW,EACXhM,OAAQ,EACRxtE,UAAU,EACV+F,GAAI,KACJwgF,MAAM,EACNu1C,MAAOvsD,GAAmB7W,GAAc,QAAS,IACjDgiD,SAAU9gI,OAAO21F,GAAmB7W,GAAc,WAAY,iBAC9DivF,gBAAiB1/E,GAAUsH,GAAmB7W,GAAc,kBAAmB,GAAI,GACnFic,QAASpF,GAAmB7W,GAAc,WAC1C6vF,YAAah5E,GAAmB7W,GAAc,gBAsBhD,GAnBI76E,GAAS0pH,EAASl3H,QAAU4N,GAASspH,EAASl3H,QAGvCyN,GAAWypH,EAASl3H,OAD7Bw9B,EAAOykE,QAAUi1B,EAASl3H,MAIjBqa,GAAc68G,EAASl3H,SAEhCw9B,EAAS8hD,GAAcA,GAAc,CAAC,EAAG9hD,GAAS05F,EAASl3H,QAIzDk3H,EAAS/pH,MAGXqwB,EAAOk+H,UAAY,IAAI39J,OAAOm5H,EAAS/pH,MAIrCF,GAAYuwB,EAAOzzB,OAAQ,CAE7B,IAAIjE,EAAOkmF,EAAMlmF,MAAQ,CAAC,EAC1B03B,EAAOzzB,MAAQjE,EAAKM,QAAU24E,GAAkBj5E,EAAKM,MAAM2D,OAASjE,EAAKM,MAAM2D,WAAQlE,CACzF,CAGKwU,GAAcmjB,EAAOiuH,SACxBjuH,EAAOiuH,MAAQ,CACbvnD,KAAMtM,GAAUp6D,EAAOiuH,MAAO,GAC9BlkB,KAAM3vC,GAAUp6D,EAAOiuH,MAAO,KAKlCrtJ,GAAK84H,EAASpL,WAAW1sH,SAAQ,SAAU2sH,GACzC,GAAI+yD,GAAOn9K,KAAKoqH,GAEdvuF,EAAO04E,MAAO,OACT,GAAI6oE,GAASp9K,KAAKoqH,GAEvBvuF,EAAO2rE,WAAY,OACd,GAAI61E,GAAYr9K,KAAKoqH,GAE1BvuF,EAAO8gG,UAAYvS,OACd,GAAIkzD,GAAWt9K,KAAKoqH,GAEzBA,EAAc,iBAARA,EAAyB,eAAiBA,EAChDvuF,EAAO6sG,SAAWte,OACb,GAAImzD,GAAQv9K,KAAKoqH,GAAM,CAE5B,IAAI0/B,EAAQ7zD,GAAUm0B,EAAItqH,MAAM,GAAI,GACpC+7B,EAAOiuH,MAAMvnD,KAAOunD,EACpBjuH,EAAOiuH,MAAMlkB,KAAOkkB,CACtB,MAAW0zB,GAAYx9K,KAAKoqH,GAE1BvuF,EAAOiuH,MAAMvnD,KAAOtM,GAAUm0B,EAAItqH,MAAM,GAAI,GACnC29K,GAAYz9K,KAAKoqH,GAE1BvuF,EAAOiuH,MAAMlkB,KAAO3vC,GAAUm0B,EAAItqH,MAAM,GAAI,GACnC49K,GAAS19K,KAAKoqH,GAEvBvuF,EAAO2/D,OAASvF,GAAUm0B,EAAItqH,MAAM,GAAI,GAC/B69K,GAAU39K,KAAKoqH,KAExBvuF,EAAO8mE,QAAUynB,EAAItqH,MAAM,IAAM,KAErC,IAGA,IAAIg+K,EAAmB,CAAC,EA6BxB,OA3BA1hL,GAAOy/B,EAAOsjI,SAAW,IAAItiK,OAAOyhF,IAAU58E,KAAK,KAAK0B,OAAOlB,cAAcT,MAAMm8K,IAAUngL,SAAQ,SAAU0hK,GACzG8d,GAAc9d,KAChB2e,EAAiB3e,IAAW,EAEhC,IAEA1iK,GAAK84H,EAASpL,WAAW1sH,SAAQ,SAAU2sH,GACzCA,EAAMA,EAAIloH,cAEN+6K,GAAc7yD,KAEhB0zD,EAAiB1zD,IAAO,EAE5B,IAEAvuF,EAAOsjI,QAAU1iK,GAAKqhL,GAAkBp8K,KAAK,KAEtB,SAAnBm6B,EAAOsjI,UAETtjI,EAAOsjI,QAAU,SAGdtjI,EAAOsjI,UAEVtjI,EAAOsjI,QAAU6d,IAGZnhJ,CACT,EAGIkiJ,GAAe,SAAsB5zF,EAAIorC,EAAUlrC,GACrD,GAAKpT,EAAL,CAKA,IAAIp7C,EAASgiJ,GAActoD,EAAUlrC,GAErC,IAAKF,EAAG4yF,IAAa,CACnB,IAAIzhL,EAASg6H,GAAyBjrC,EAAOkrC,GAC7CprC,EAAG4yF,IAAc1f,GAAwB/hK,EAAQshL,GAAW,CAE1D3hL,SAAUiiK,GAAW5hK,OAAQ4I,KAE/BimF,EAAG4yF,IAAYiB,iBAAmB,CAAC,EACnC7zF,EAAG4yF,IAAYzvE,IAAI9e,IAAiB,WAKlC,IAAIrqF,EAAO,CAAC,EAER2H,GAAW+vB,EAAOzzB,SACpBjE,EAAKiE,MAAQyzB,EAAOzzB,MAAM+hF,IAGxBr+E,GAAW+vB,EAAOykE,WACpBn8F,EAAKm8F,QAAUzkE,EAAOykE,QAAQnW,IAG5B1tF,GAAK0H,GAAM5G,OAAS,GACtB4sF,EAAG4yF,IAAY9D,WAAW90K,EAE9B,GACF,CAEA,IAAIA,EAAO,CACTiE,MAAOyzB,EAAOzzB,MACdk4F,QAASzkE,EAAOykE,QAChBg3E,SAAUz7I,EAAOsjI,QACjBxiC,UAAW9gG,EAAO8gG,UAClBi5C,kBAAmB/5I,EAAO+5I,kBAC1BjzE,QAAS9mE,EAAO8mE,QAChB4zE,YAAa16I,EAAO06I,YACpBxc,UAAWl+H,EAAOk+H,UAClBrxB,SAAU7sG,EAAO6sG,SACjBohB,MAAOjuH,EAAOiuH,MACdtuD,OAAQ3/D,EAAO2/D,OACfiG,QAAS5lE,EAAO2rE,UAChBzzE,GAAI8H,EAAO9H,GACX/F,SAAU6N,EAAO7N,SACjBumF,KAAM14E,EAAO04E,MAEX0pE,EAAU9zF,EAAG4yF,IAAYiB,iBAG7B,GAFA7zF,EAAG4yF,IAAYiB,iBAAmB75K,GAE7BsnG,GAAWtnG,EAAM85K,GAAU,CAE9B,IAAIC,EAAU,CACZ9gL,OAAQ+sF,GAEV1tF,GAAK0H,GAAM1G,SAAQ,SAAU+F,GAEvBW,EAAKX,KAAUy6K,EAAQz6K,KAEzB06K,EAAQ16K,GAAkB,UAATA,GAA6B,YAATA,IAAuBsI,GAAW3H,EAAKX,IAE3DW,EAAKX,GAAtBW,EAAKX,GAAM2mF,GAEf,IACAA,EAAG4yF,IAAY9D,WAAWiF,EAC5B,CAnEA,CAoEF,EAGIC,GAAgB,SAAuBh0F,GACrCA,EAAG4yF,MACL5yF,EAAG4yF,IAAYte,WACft0E,EAAG4yF,IAAc,aAGZ5yF,EAAG4yF,GACZ,EAGWqB,GAAY,CACrB/5K,KAAM,SAAc8lF,EAAIorC,EAAUlrC,GAChC0zF,GAAa5zF,EAAIorC,EAAUlrC,EAC7B,EAGAigC,iBAAkB,SAA0BngC,EAAIorC,EAAUlrC,GAExDoB,IAAS,WACPsyF,GAAa5zF,EAAIorC,EAAUlrC,EAC7B,GACF,EACAkgC,OAAQ,SAAgBpgC,GACtBg0F,GAAch0F,EAChB,GC9QEk0F,GAA+B59F,GAAc,CAC/CN,WAAY,CACVi+F,UAAWA,MCDXE,GAA6B79F,GAAc,CAC7CP,WAAY,CACV48F,SAAUA,IAEZ/nI,QAAS,CACPspI,gBAAiBA,MCGVp6K,GAAQ46F,GAAsB,CACvC0/E,SAAUrgF,GAASxO,GAAmB,MACtC2wB,MAAOniB,GAASlO,IAChBwuF,UAAWtgF,GAASlO,IACpB1+D,IAAK4sE,GAASxN,GAAyB,MACvC6F,UAAW2H,GAASxN,GAAyB,MAC7C+tF,aAAcvgF,GAASxO,GAAmB,MAC1Cw2D,UAAWhoD,GAASxO,GAAmB,MACvCgvF,QAASxgF,GAASxO,GAAmB,MACrCrxF,MAAO6/F,GAASxN,GAAyB,GACzCiS,QAASzE,GAASlO,KACjBpJ,IAGQ+3F,GAA4Bj+F,GAAO,CAC5C3gF,KAAM6mF,GACNtiF,OAAQ,CAACsxF,IACT4c,OAAQ,CACNosE,cAAe,CACbj3K,QAEA,WACE,OAAO,WACL,MAAO,CAAC,CACV,CACF,IAGJ1D,MAAOA,GACP6gG,SAAU,CACR+5E,WAAY,WACV,OAAO1jL,KAAKyjL,eACd,EACAE,mBAAoB,WAClB,IAAIC,EAAmB5jL,KAAK4jL,iBACxBlsE,EAAkB13G,KAAK03G,gBAC3B,MAAO,CAACA,EAAkB,MAAMz2G,OAAOy2G,GAAmB,GAAI13G,KAAK6jL,iBAAmBD,EAAmB,uBAAyB,GAAIA,EAAmB,wBAA0B,GACrL,EACAE,kBAAmB,WACjB,MAAO,CACL3lF,MAAcn+F,KAAKy4K,cAAgBz4K,KAAK8hH,YAAjC,IAAgD,IAE3D,EACA22D,cAAe,WACb,OAAOx9E,GAAQj7F,KAAKkD,MAAO,EAC7B,EACA4+G,YAAa,WAGX,IAAI3rF,EAAM8kE,GAAQj7F,KAAKm2B,MAAQ8kE,GAAQj7F,KAAK0jL,WAAWvtJ,IAAK,GAC5D,OAAOA,EAAM,EAAIA,EAAM,GACzB,EACA44H,kBAAmB,WAGjB,OAAO74I,GAAQ4kF,GAAU96F,KAAKo7F,UAAWN,GAAU96F,KAAK0jL,WAAWtoF,UAAW,IAAK,EACrF,EACA2oF,iBAAkB,WAChB,IAAI3oF,EAAYp7F,KAAK+uJ,kBACjB7nI,EAAI2hF,GAAQ,GAAIzN,GACpB,OAAOD,GAAQ,IAAMj0E,EAAIlnB,KAAKy4K,cAAgBz4K,KAAK8hH,YAAc56F,EAAGk0E,EACtE,EACAsc,gBAAiB,WAEf,OAAO13G,KAAKwnG,SAAWxnG,KAAK0jL,WAAWl8E,OACzC,EACAq8E,gBAAiB,WAEf,OAAO9yK,GAAU/Q,KAAKujL,SAAWvjL,KAAKujL,QAAUvjL,KAAK0jL,WAAWH,UAAW,CAC7E,EACAK,iBAAkB,WAEhB,OAAO7yK,GAAU/Q,KAAKojL,UAAYpjL,KAAKojL,SAAWpjL,KAAK0jL,WAAWN,WAAY,CAChF,EACAY,qBAAsB,WAEpB,OAAOjzK,GAAU/Q,KAAKsjL,cAAgBtjL,KAAKsjL,aAAetjL,KAAK0jL,WAAWJ,eAAgB,CAC5F,EACAW,kBAAmB,WAEjB,OAAOlzK,GAAU/Q,KAAK+qJ,WAAa/qJ,KAAK+qJ,UAAY/qJ,KAAK0jL,WAAW34B,YAAa,CACnF,GAEF5rJ,OAAQ,SAAgB2B,GACtB,IAIIu+J,EAJAn6C,EAAQllH,KAAKklH,MACbm+D,EAAYrjL,KAAKqjL,UACjB5K,EAAgBz4K,KAAKy4K,cACrB1pB,EAAoB/uJ,KAAK+uJ,kBAEzBtpD,EAAW,CAAC,EAYhB,OAVIzlG,KAAKk6F,oBACPmlE,EAAYr/J,KAAKs6F,gBACR4qB,GAASm+D,EAClB59E,EAAWwT,GAAWoqE,EAAWn+D,GACxBllH,KAAKgkL,qBACd3kB,EAAYr/J,KAAK+jL,iBACR/jL,KAAKikL,oBACd5kB,EAAYlkE,GAAQs9E,EAAe1pB,IAG9BjuJ,EAAE,MAAO,CACdykG,YAAa,eACb/7F,MAAOxJ,KAAK2jL,mBACZ77K,MAAO9H,KAAK8jL,kBACZx6K,MAAO,CACLg/F,KAAM,cACN,gBAAiB,IACjB,gBAAiB5jG,GAAS1E,KAAK8hH,aAC/B,gBAAiB3mB,GAAQs9E,EAAe1pB,IAE1CtpD,SAAUA,GACT45D,EACL,IC5HF,SAASl+J,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAUhN,ICdIk9B,GDcAmkJ,GAAmBphG,GAAKqhG,GAAmB,CAAC,QAAS,cAC9Cr7K,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAc,CAAC,EAAG0hG,IAAmB,CAAC,EAAG,CACvGd,SAAUrgF,GAASxO,IAAmB,GACtC2J,OAAQ6E,GAASlO,IACjB1+D,IAAK4sE,GAASxN,GAAyB,KACvC6F,UAAW2H,GAASxN,GAAyB,GAC7C+tF,aAAcvgF,GAASxO,IAAmB,GAC1Cw2D,UAAWhoD,GAASxO,IAAmB,GACvCgvF,QAASxgF,GAASxO,IAAmB,MAClC/I,IAGM44F,GAAyB7+F,GAAO,CACzC3gF,KAAM4mF,GACNriF,OAAQ,CAACsxF,IACTge,QAAS,WACP,IAAIj8F,EAAQxc,KAEZ,MAAO,CACLyjL,cAAe,WACb,OAAOjnK,CACT,EAEJ,EACA1T,MAAOA,GACP6gG,SAAU,CACR06E,eAAgB,WACd,MAAO,CACLnmF,OAAQl+F,KAAKk+F,QAAU,KAE3B,GAEF/+F,OAAQ,SAAgB2B,GACtB,IAAIwjL,EAActkL,KAAKs6F,gBAQvB,OANKgqF,IACHA,EAAcxjL,EAAE0iL,GAAc,CAC5B16K,MAAOs6F,GAAW8gF,GAAkBlkL,KAAKuwH,WAItCzvH,EAAE,MAAO,CACdykG,YAAa,WACbz9F,MAAO9H,KAAKqkL,gBACX,CAACC,GACN,IExDEC,GAA8Bj/F,GAAc,CAC9CP,WAAY,CACVq/F,UAAWA,GACXZ,aAAcA,MDJlB,SAASriL,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAsBhN,IAAI2mG,GAAa,YACbivB,GAAuCzzB,GAAuBzd,GAAe,iBAC7EixC,GAAgCxzB,GAAuBzd,GAAe,UACtEoxC,GAAwB5zB,GAAiBxd,GAAe,SACxDqxC,GAA6B7zB,GAAiBxd,GAAe,cAE7Duf,GAAkBjD,GAAe,UAAW,CAC9Cv3F,KAAMioF,GACNp6D,cAAc,EACduvB,MAAOgnC,KAELqW,GAAaD,GAAgB5C,MAC7B8C,GAAaF,GAAgBh+F,MAC7Bm+F,GAAkBH,GAAgBz+F,KAClC6+F,GAAmBJ,GAAgBp9C,MAG5B5gD,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAcA,GAAc,CAAC,EAAGi8B,IAAUzX,IAAa,CAAC,EAAG,CACzH9B,UAAWnC,GAASlO,IACpB4hD,eAAgB1zC,GAASlO,IAEzB2vF,SAAUzhF,GAASxO,IAAmB,GACtCkwF,gBAAiB1hF,GAASlO,GAAkB,QAC5C40B,UAAW1mB,GAASlO,GAAkB,SACtCu1B,UAAWrnB,GAAS/N,IAEpB0vF,WAAY3hF,GAASlO,IACrBu2B,YAAaroB,GAAS/N,IACtB02B,UAAW3oB,GAASlO,GAAkB,UACtCg2B,YAAa9nB,GAAS/N,IACtBgqB,UAAWjc,GAASlO,GAAkB,UACtCo7C,KAAMltC,GAASxO,IAAmB,GAClCuzE,kBAAmB/kE,GAASxO,IAAmB,GAC/CwzE,aAAchlE,GAASxO,IAAmB,GAC1CowF,qBAAsB5hF,GAASxO,IAAmB,GAClDyzE,eAAgBjlE,GAASxO,IAAmB,GAC5CqwF,SAAU7hF,GAASxO,IAAmB,GACtCswF,cAAe9hF,GAASxO,IAAmB,GAC3CuwF,QAAS/hF,GAASxO,IAAmB,GACrC/pD,MAAOu4D,GAASxO,IAAmB,GACnCwwF,OAAQhiF,GAAS3N,IAA0B,GAC3C4vF,aAAcjiF,GAAS/N,IACvBjrF,IAAKg5F,GAASlO,GAAkB,OAChCuQ,YAAarC,GAASlO,GAAkB,QACxC5nF,MAAO81F,GAASlO,IAChBsJ,MAAO4E,GAASlO,IAChBytD,OAAQv/C,GAASxN,OACd5J,IAEDs5F,GAAoB,SAA2BnkL,EAAGyd,GAEpD,IAAItR,EAAQsR,EAAI+7E,cAAcf,GAAiBh7E,EAAIgvG,YAAchvG,EAAItR,MAErE,OAAKA,EAIEnM,EAAE,SAAU,CACjBwI,MAAO,CACLsvB,GAAIra,EAAIigG,OAAO,eAEhB,CAACvxG,IAPKnM,EAAE,OAQb,EAEIokL,GAAoB,SAA2BpkL,EAAGyd,GACpD,GAAIA,EAAIsmK,cACN,OAAO/jL,IAGT,IAAI4jL,EAAanmK,EAAImmK,WACjBt/E,EAAc7mF,EAAI6mF,YAClBqlC,EAAOlsH,EAAIksH,KACf,OAAO3pI,EAAEukG,GAAc,CACrBv8F,MAAO,CACLo8F,UAAWw/E,EACXt/E,YAAaA,GAEf/U,GAAI,CACFmV,MAAOilC,GAETtpH,IAAK,gBACJ,CAAC5C,EAAI+7E,cAAcvD,KAA2Bj2F,EAAEouG,KACrD,EAEIi2E,GAAe,SAAsBrkL,EAAGyd,GAC1C,GAAIA,EAAIqmK,SACN,OAAO9jL,IAGT,IAAIopG,EAAW3rF,EAAI+7E,cAAcxD,GAAkBv4E,EAAIgvG,WAEvD,IAAKrjB,EAAU,CACb,IAAIoD,EAAS23E,GAAkBnkL,EAAGyd,GAC9B6mK,EAASF,GAAkBpkL,EAAGyd,GAClC2rF,EAAW3rF,EAAIisB,MAAQ,CAAC46I,EAAQ93E,GAAU,CAACA,EAAQ83E,EACrD,CAEA,OAAOtkL,EAAEyd,EAAIygG,UAAW,CACtBzZ,YAAa,GAAGtkG,OAAOuoG,GAAY,WACnChgG,MAAO+U,EAAIssG,YACXtoH,IAAK,UACJ2nG,EACL,EAEIm7E,GAAa,SAAoBvkL,EAAGyd,GACtC,OAAOzd,EAAE,MAAO,CACdykG,YAAa,GAAGtkG,OAAOuoG,GAAY,SACnChgG,MAAO+U,EAAI6rG,UACX7nH,IAAK,QACJ,CAACgc,EAAI+7E,cAAcnE,GAAmB53E,EAAIgvG,YAC/C,EAEI+3D,GAAe,SAAsBxkL,EAAGyd,GAC1C,IAAIqvG,EAAUrvG,EAAI+7E,cAAczD,GAAkBt4E,EAAIgvG,WAEtD,OAAKK,EAIE9sH,EAAEyd,EAAImtG,UAAW,CACtBnmB,YAAa,GAAGtkG,OAAOuoG,GAAY,WACnChgG,MAAO+U,EAAI6sG,YACX7oH,IAAK,UACJ,CAACqrH,IAPK9sH,GAQX,EAEIykL,GAAgB,SAAuBzkL,EAAGyd,GAG5C,IAAIgpG,EAAU49D,GAAarkL,EAAGyd,GAE9B,OAAIA,EAAI0xH,OAAS1xH,EAAI+wH,OACZ/nB,EAGF,CAACA,EAAS89D,GAAWvkL,EAAGyd,GAAM+mK,GAAaxkL,EAAGyd,GACvD,EAEIinK,GAAiB,SAAwB1kL,EAAGyd,GAC9C,IAAKA,EAAIimK,SACP,OAAO1jL,IAGT,IAAI2jL,EAAkBlmK,EAAIkmK,gBAC1B,OAAO3jL,EAAE,MAAO,CACdkkF,WAAY,CAAC,CACXpgF,KAAM,OACN1B,MAAOqb,EAAIopF,YAEbpC,YAAa,qBACb/7F,MAAOhH,GAAgB,CAAC,EAAG,MAAMvB,OAAOwjL,GAAkBA,GAC1Dp0F,GAAI,CACFmV,MAAOjnF,EAAIknK,kBAGjB,EAIWC,GAAwBngG,GAAO,CACxC3gF,KAAM+mF,GACNxiF,OAAQ,CAACsoG,GAAY6M,GAASvX,GAAY+K,GAAmBrX,IAC7DoZ,cAAc,EACd/qG,MAAOA,GACPE,KAAM,WACJ,IAAImlH,IAAYnuH,KAAKinG,IACrB,MAAO,CAELU,UAAWwmB,EAEXmhB,OAAQnhB,EAEZ,EACAxkB,SAAU,CACRg8E,gBAAiB,WACf,OAAO3lL,KAAK8kL,QAEZ,CACEl+E,KAAK,GACH,CACFA,KAAK,EACLf,WAAY,GACZC,iBAAkB,QAClBC,aAAc,OACdC,WAAY,OACZC,iBAAkB,QAClBC,aAAc,GAElB,EACAqnB,UAAW,WACT,IAAIkd,EAAOzqI,KAAKyqI,KACZjgG,EAAQxqC,KAAKwqC,MACb2jF,EAAUnuH,KAAK2nG,UACnB,MAAO,CACL8iC,KAAMA,EACNjgG,MAAOA,EACP2jF,QAASA,EAEb,EACAy3D,SAAU,WACR,IAAIxrF,EAAep6F,KAAKo6F,aACpBC,EAASr6F,KAAKq6F,OAClB,OAAQr6F,KAAK4kL,WAAa5kL,KAAKk6F,kBAAkBpD,QAAwB92F,KAAKs6F,cAAcf,GAAiBv5F,KAAKutH,UAAWnzB,EAAcC,KAAWr6F,KAAKiN,MAC7J,EACA44K,QAAS,WACP,OAAO7lL,KAAK4lL,SAAW5lL,KAAKw+G,OAAO,aAAe,IACpD,EACArK,cAAe,WACb,OAAO3xB,GAAcA,GAAc,CAAC,EAAGxiF,KAAKuxG,SAAU,CAAC,EAAG,CACxD34E,GAAI54B,KAAKw+G,SACTpK,SAAU,KACV9L,KAAM,SACN,aAActoG,KAAKwkL,SAAW,OAAS,QACvC,cAAexkL,KAAK2nG,UAAY,KAAO,OACvC,aAAc3nG,KAAKklG,WAAa,KAChC,kBAAmBllG,KAAKy2I,gBAAkBz2I,KAAK6lL,SAAW,MAE9D,GAEFj+E,OAAQ7nE,GAAS,CAAC,EAAGv9B,GAAgBu9B,GAAQknE,IAAiB,SAAU90F,EAAU4+F,GAC5E5+F,IAAa4+F,IACf/wG,KAAK2nG,UAAYx1F,EAErB,IAAI3P,GAAgBu9B,GAAQ,aAAa,SAAmB5tB,EAAU4+F,GAChE5+F,IAAa4+F,IACf/wG,KAAKo5H,UAAUjnH,GACfnS,KAAK8nG,MAAMZ,GAAkB/0F,GAEjC,IAAI3P,GAAgBu9B,GAAQ,UAAU,WACpC,IAAI5tB,EAAWhQ,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAChF4uG,EAAW5uG,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAE/EnC,KAAK2kL,sBAAwBxyK,EAAS2zK,WAAa/0E,EAAS+0E,UAC/D9lL,KAAKyqI,MAET,IAAI1qG,IACJ8uD,QAAS,WAEP7uF,KAAK+lL,gBAAkB,IACzB,EACAprE,QAAS,WACP,IAAIn+F,EAAQxc,KAGZA,KAAKkyG,aAAasmB,GAA+Bx4H,KAAKgmL,cACtDhmL,KAAKkyG,aAAaumB,GAAsCz4H,KAAKimL,YAE7DjmL,KAAKgoG,WAAU,WACbxrF,EAAM48G,UAAU58G,EAAMmrF,UACxB,GACF,EAGAge,UAAW,WACT3lH,KAAKy5H,UACP,EACAvxB,cAAe,WACbloG,KAAK2nG,WAAY,EACjB3nG,KAAK+lL,gBAAkB,IACzB,EACArrF,QAAS,CACP+vC,KAAM,WACJzqI,KAAK2nG,WAAY,CACnB,EACAyxB,UAAW,WACT,IAAI79F,EAAQp5B,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAKnC,KAAK2nG,UACrF3nG,KAAKyyG,WAAWkmB,GAAuB34H,KAAKw+G,SAAUjjF,EACxD,EACAk+F,SAAU,WACR,IAAIl+F,EAAQp5B,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAKnC,KAAK2nG,UACrF3nG,KAAKyyG,WAAWmmB,GAA4B54H,KAAKw+G,SAAUjjF,EAC7D,EACAyqJ,aAAc,SAAsBptJ,GAE9BA,GAAMA,IAAO54B,KAAKw+G,WACpBx+G,KAAK2nG,WAAa3nG,KAAK2nG,UAE3B,EACAs+E,WAAY,SAAoBrtJ,GAC9B,IAAIy5E,EAASryG,KAGT44B,GAAMA,IAAO54B,KAAKw+G,UACpBx+G,KAAKgoG,WAAU,WACbqK,EAAOonB,SAASpnB,EAAO1K,UACzB,GAEJ,EACAuT,UAAW,SAAmBxxD,GAC5B,IAAI0sD,EAAU1sD,EAAM0sD,SAEfp2G,KAAK+nK,cAAgB3xD,IAAYxG,IAAY5vG,KAAK2nG,WACrD3nG,KAAKyqI,MAET,EACAg7C,gBAAiB,WACXzlL,KAAK2nG,YAAc3nG,KAAK8nK,mBAC1B9nK,KAAKyqI,MAET,EAGAy7C,eAAgB,WACd,IAAIra,EAAWvqE,GAAYthG,KAAK6lH,MAAM1gB,SACtCnlG,KAAKmmL,aAAata,EAAS/nG,UAAU,GACvC,EAGAsiH,kBAAmB,WACjB,IAAIva,EAAWvqE,GAAYthG,KAAK6lH,MAAM1gB,SACtCnlG,KAAKmmL,aAAata,EAAS,GAC7B,EACAR,cAAe,WAGbrrK,KAAK+lL,gBAAkBtoF,GAAiB3hB,EAAa,CAACT,SAASloC,MAAQ,IAEvEnzC,KAAKsvI,QAAS,CAChB,EACAxX,aAAc,SAAsB9oC,GAC7B8O,GAAS9O,EAAIyO,OAChBz9F,KAAKmmL,aAAan3F,GAGpBhvF,KAAK8nG,MAAMxU,GACb,EACA0kC,aAAc,WACZh4H,KAAKmmL,aAAanmL,KAAK+lL,iBACvB/lL,KAAK+lL,gBAAkB,KAEvB/lL,KAAKsvI,QAAS,EACdtvI,KAAK8nG,MAAMjW,GACb,EACAs0F,aAAc,SAAsBn3F,GAC7BhvF,KAAKgoK,gBACRvmE,GAAazS,EAEjB,GAEF7vF,OAAQ,SAAgB2B,GACtB,IAAIq/B,EAEAspF,EAAYzpH,KAAKypH,UACjBtrB,EAAQn+F,KAAKm+F,MACbiH,EAAcplG,KAAKolG,YACnBuC,EAAY3nG,KAAK2nG,UACjBo9E,EAAyB,KAAhB/kL,KAAK+kL,QAAuB/kL,KAAK+kL,OAC1CsB,EAAWvlL,EAAEd,KAAK+J,IAAK,CACzBw7F,YAAaiE,GACbhgG,MAAO,EAAE22B,EAAO,CACd4kJ,QAAmB,IAAXA,GACPviL,GAAgB29B,EAAM,UAAUl/B,OAAO8jL,GAASA,IAAqB,IAAXA,GAAkBviL,GAAgB29B,EAAM,GAAGl/B,OAAOuoG,GAAY,UAAWxpG,KAAKwqC,OAAQhoC,GAAgB29B,EAAM,MAAMl/B,OAAOwoH,GAAYA,GAAYjnH,GAAgB29B,EAAM,QAAQl/B,OAAOmkG,GAAcA,GAAcjlE,GAAOngC,KAAKglL,cAC3Rl9K,MAAO,CACLq2F,MAAOA,GAET70F,MAAOtJ,KAAKm0G,cACZnvB,WAAY,CAAC,CACXpgF,KAAM,OACN1B,MAAOykG,IAETxmF,IAAK,WACJ,CAACokK,GAAczkL,EAAGd,QACrBqmL,EAAWvlL,EAAE,aAAc,CACzBgI,MAAO9I,KAAK2lL,gBACZt1F,GAAI,CACFy8E,YAAa9sK,KAAKqrK,cAClBjzC,WAAYp4H,KAAK83H,aACjBQ,WAAYt4H,KAAKg4H,eAElB,CAACquD,IACJ,IAAIrZ,EAAYlsK,EAAE0lG,GAAc,CAC9B19F,MAAO,CACLw9F,OAAQtmG,KAAK8kL,UAEd,CAACU,GAAe1kL,EAAGd,QAClB0sK,EAAc5rK,IACd6rK,EAAiB7rK,IAqBrB,OAnBId,KAAKwkL,UAAY78E,IACnB+kE,EAAc5rK,EAAE,MAAO,CACrBwI,MAAO,CACL8qG,SAAU,KAEZ/jB,GAAI,CACFqR,MAAO1hG,KAAKkmL,kBAGhBvZ,EAAiB7rK,EAAE,MAAO,CACxBwI,MAAO,CACL8qG,SAAU,KAEZ/jB,GAAI,CACFqR,MAAO1hG,KAAKomL,sBAKXtlL,EAAE,MAAO,CACdykG,YAAa,kBACbz9F,MAAO,CACLw6I,OAAQtiJ,KAAKsiJ,QAEfh5I,MAAO,CACL8qG,SAAU,MAEZ/jB,GAAI,CACF8lB,QAASn2G,KAAKk7G,YAEf,CAACwxD,EAAa2Z,EAAU1Z,EAAgBK,GAC7C,IElbEsZ,GAA6BhhG,GAAc,CAC7CP,WAAY,CACV2gG,SAAUA,IAEZ9rI,QAAS,CACPiiF,eAAgBA,MCRpB,SAASr5H,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAOzM,IAAIiG,GAAQ46F,GAAsB,CACvC2I,UAAWtJ,GAASlO,GAAkB,QACtCqJ,OAAQ6E,GAASlO,IACjBvpF,KAAMy3F,GAASlO,IACfvoF,KAAMy2F,GAASlO,GAAkB,QACjC2S,QAASzE,GAASlO,IAClBsJ,MAAO4E,GAASlO,KACfjJ,IAGQ26F,GAAyBhhG,GAAO,CACzC3gF,KAAMgnF,GACN/rF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAI4sE,EAEA/jG,EAAOm3B,EAAKn3B,KACZF,EAAQq3B,EAAKr3B,MACbwC,EAAOxC,EAAMwC,KACb+gG,EAAYvjG,EAAMujG,UAClB7E,EAAU1+F,EAAM0+F,QACpB,OAAO1mG,EAAE,MAAO6kG,GAAU38F,EAAM,CAC9Bu8F,YAAa,aACbz9F,MAAO,CACLq2F,MAAO7yF,GAAQxC,EAAMq1F,MACrBD,OAAQ5yF,GAAQxC,EAAMo1F,QAExB10F,OAAQujG,EAAS,CAAC,EAAGvqG,GAAgBuqG,EAAQ,cAAc9rG,OAAO6H,EAAMwD,OAAO,GAAO9J,GAAgBuqG,EAAQ,sBAAsB9rG,OAAOorG,GAAYA,GAAY7pG,GAAgBuqG,EAAQ,MAAM9rG,OAAOumG,GAAUA,GAAUuF,KAEhO,ICrCF,SAAS5rG,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAQzM,IAAIiG,GAAQ46F,GAAsB,CACvC2I,UAAWtJ,GAASlO,GAAkB,QACtC5oF,KAAM82F,GAASlO,IACf6Y,UAAW3K,GAASpO,GAAkB,CAAC,IACtC9I,IAGQ26F,GAA6BjhG,GAAO,CAC7C3gF,KAAMinF,GACNhsF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIn3B,EAAOm3B,EAAKn3B,KACZF,EAAQq3B,EAAKr3B,MACbmD,EAAOnD,EAAMmD,KACbogG,EAAYvjG,EAAMujG,UAClB0/C,EAAQjrJ,EAAEwuG,GAAO,CACnB/J,YAAa,kBACbz8F,MAAO05E,GAAcA,GAAc,CAAC,EAAG15E,EAAM4kG,WAAY,CAAC,EAAG,CAC3DzhG,KAAMA,MAGV,OAAOnL,EAAE,MAAO6kG,GAAU38F,EAAM,CAC9Bu8F,YAAa,2EACb/7F,MAAOhH,GAAgB,CAAC,EAAG,sBAAsBvB,OAAOorG,GAAYA,KAClE,CAAC0/C,GACP,ICtCF,SAASvpJ,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CASzM,IAAIiG,GAAQ46F,GAAsB,CACvC2I,UAAWtJ,GAASlO,IACpB4U,OAAQ1G,GAASlO,GAAkB,QACnC4xF,QAAS1jF,GAASlO,IAClBqJ,OAAQ6E,GAASlO,IACjB6xF,SAAU3jF,GAASxO,IAAmB,GACtCiT,QAASzE,GAASlO,IAClBsJ,MAAO4E,GAASlO,KACf/I,IAGQ66F,GAA4BphG,GAAO,CAC5C3gF,KAAMknF,GACNjsF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIn3B,EAAOm3B,EAAKn3B,KACZF,EAAQq3B,EAAKr3B,MACb2gG,EAAS3gG,EAAM2gG,OACftL,EAAQr1F,EAAMq1F,MACdD,EAASp1F,EAAMo1F,OACfmO,EAAYvjG,EAAMujG,UAClB7E,EAAU1+F,EAAM0+F,QAChBi/E,EAAU39K,EAAM29K,QAChB/4D,EAAO5sH,EAAEylL,GAAW5gF,GAAU38F,EAAM,CACtCF,MAAO,CACLwD,KAAM,MACN6xF,MAAOA,EACPD,OAAQA,EACRmO,UAAWA,EACX7E,QAASA,GAEXh+F,MAAOhH,GAAgB,CAAC,EAAG,YAAYvB,OAAOwlL,GAAUA,MAE1D,OAAO39K,EAAM49K,SAAWh5D,EAAO5sH,EAAE4oG,GAAS,CACxC5gG,MAAO,CACL2gG,OAAQA,IAET,CAACikB,GACN,ICzCSk5D,GAAmBrhG,GAAO,CACnCmV,QAAS,CACPy/C,YAAa,SAAqBv1I,GAChC,GAAIypF,GACF,OAAO,EAIT,IAAIykB,EAAa9yG,KAAK8yG,YAAc,CAAC,EAIjC+zE,EAAU7mL,KAAK8mL,SAAW,CAAC,EAG/B,OAAQ32K,GAAY2iG,EAAWluG,KAAUT,GAAQ0iL,EAAQjiL,KAAUiiL,EAAQjiL,GAAMxC,OAAS,CAC5F,KCvBJ,SAASI,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAMzM,IAAIiG,GAAQ,CACjB+jG,QAAS9J,GAAS3N,IAA0B,IAInC2xF,GAAexhG,GAAO,CAC/Bz8E,MAAOA,GACP6gG,SAAU,CACRq9E,UAAW,WACT,IAAIn6E,EAAU7sG,KAAK6sG,QAEnB,MAAmB,KAAZA,GAAwBA,CACjC,EACAo6E,gBAAiB,WACf,OAA0B,IAAnBjnL,KAAKgnL,SACd,EACAE,oBAAqB,WACnB,IAAID,EAAkBjnL,KAAKinL,gBAC3B,OAAOzkL,GAAgB,CACrB,kBAAmBykL,GAClB,mBAAmBhmL,OAAOjB,KAAK6sG,UAAWo6E,GAAmBjnL,KAAKgnL,UACvE,KC3BJ,SAAS7lL,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAazM,IAAIiG,GAAQ,CACjBq+K,SAAUpkF,GAASxO,IAAmB,GACtC6yF,WAAYrkF,GAASxO,IAAmB,GACxC8yF,WAAYtkF,GAASxO,IAAmB,GACxCunD,KAAM/4C,GAASxO,IAAmB,GAClCo8E,MAAO5tE,GAASxO,IAAmB,GACnC+nF,MAAOv5E,GAASxO,IAAmB,GACnC+yF,iBAAkBvkF,GAASxO,IAAmB,GAC9CgzF,SAAUxkF,GAASxO,IAAmB,GACtCizF,WAAYzkF,GAAS3N,IAA0B,GAC/Cq6E,MAAO1sE,GAASxO,IAAmB,GAEnCkzF,aAAc1kF,GAAS3N,IAA0B,GACjDmuF,QAASxgF,GAASxO,IAAmB,GACrCmzF,WAAY3kF,GAAS/N,IACrB2yF,aAAc5kF,GAASlO,KAId+yF,GAAqBriG,GAAO,CACrCp8E,OAAQ,CAACsoG,IACTgH,QAAS,WACP,IAAIj8F,EAAQxc,KAEZ,MAAO,CACL6nL,WAAY,WACV,OAAOrrK,CACT,EAEJ,EAGAq3F,cAAc,EACd/qG,MAAOA,GACP6gG,SAAU,CACRm+E,cAAe,WACb,OAAO,CACT,EAEAC,aAAc,WACZ,IAAIP,EAAaxnL,KAAKwnL,WACtB,MAAsB,KAAfA,GAA2BA,CACpC,EACAQ,eAAgB,WACd,IAAIP,EAAeznL,KAAKynL,aAExB,OADAA,EAAgC,KAAjBA,GAA6BA,GACrCznL,KAAKgnL,WAAoBS,CAClC,EACAQ,eAAgB,WACd,IAAIF,EAAe/nL,KAAK+nL,aACxB,MAAO,CAAC/nL,KAAKgoL,eAAiB,wBAA0B,IAAqB,IAAjBD,EAAwB,mBAAqBA,EAAe,oBAAoB9mL,OAAOjB,KAAKwnL,YAAc,IAAI9lL,OAAOyhF,GACnL,EACA+kG,cAAe,WACb,IAAIF,EAAiBhoL,KAAKgoL,eAC1B,OAAOA,IAAmBj3K,GAAUi3K,GAAkB,CACpDG,UAAWH,GACT,CAAC,CACP,EACAI,aAAc,WACZ,IAAIrS,EAAmB3rE,GAAgBpqG,MACnCs8K,EAAQvG,EAAiBuG,MACzBqL,EAAe5R,EAAiB4R,aAChCU,EAAyBtS,EAAiBsS,uBAC1CnB,EAAsBnR,EAAiBmR,oBACvCQ,EAAa3R,EAAiB2R,WAC9BY,EAAevS,EAAiBuS,aAGpC,OADAhM,EAAQt8K,KAAK8nL,cAAgBxL,EAAQA,GAASt8K,KAAKuoL,cAAcnmL,OAAS,IAAMkmL,EACzE,CACPZ,EACA,CACE,gBAAiB1nL,KAAKujL,QACtB,cAAejH,EACf,aAAct8K,KAAK87I,KACnB,iBAAkB97I,KAAKmnL,SACvB,mBAAoBnnL,KAAKonL,WACzB,WAAYpnL,KAAKyvK,MAEjBvkK,OAAQlL,KAAKunL,SACb,gBAAiBvnL,KAAK2wK,MACtB,sBAAuB3wK,KAAKqnL,WAC5B,6BAA8BrnL,KAAKsnL,kBAClCK,EAAe,GAAG1mL,OAAOjB,KAAK87I,KAAO,KAAO,QAAS,KAAK76I,OAAO0mL,GAAgB,GACpFT,EACAmB,EACF,EACAG,WAAY,WACV,IAAIC,EAAoBr+E,GAAgBpqG,MACpCmpC,EAAQs/I,EAAkBF,cAC1BG,EAAgBD,EAAkBC,cAClC59G,EAAS29G,EAAkBE,eAC3BC,EAAuBH,EAAkBG,qBACzCN,EAAeG,EAAkBH,aAEjCO,EAAY7oL,KAAK8nL,cAAgB,CAAC,EAAI,CACxC,YAAapjL,GAAS4jL,GACtB,gBAAiB5jL,GAASomE,EAAO1oE,QAEjC,mBAAoBpC,KAAKuxG,QAAQ,qBAAuBvxG,KAAK6lH,MAAMiR,QAAU92H,KAAK8oL,UAAY,MAE5FC,EAAW5/I,GAASu/I,GAAiBA,EAActmL,OAAS+mC,EAAM/mC,OAASsC,GAASgkL,EAActmL,QAAU,KAChH,OAAOogF,GAAcA,GAAcA,GAAc,CAG/C,gBAAiBumG,GAChB/oL,KAAKuxG,SAAU,CAAC,EAAG,CAEpB34E,GAAI54B,KAAKw+G,SACTlW,KAAMtoG,KAAKuxG,QAAQjJ,MAAQ,SAC1BugF,GAAYD,EACjB,GAEFzpL,OAAQ,SAAgB2B,GACtB,IAAIkoL,EAAoB5+E,GAAgBpqG,MACpCioL,EAAiBe,EAAkBf,eACnCgB,EAAgBD,EAAkBC,cAClCC,EAAiBF,EAAkBE,eACnCC,EAAcH,EAAkBG,YAChCC,EAAcJ,EAAkBI,YAChCC,EAAcL,EAAkBK,YAEhCn/E,EAAW,GAEXlqG,KAAK8nL,cACP59E,EAASpoG,KAAK9B,KAAKs6F,kBAGnB4P,EAASpoG,KAAKmnL,EAAgBA,IAAkB,MAEhD/+E,EAASpoG,KAAKonL,EAAiBA,IAAmB,MAElDh/E,EAASpoG,KAAKqnL,EAAcA,IAAgB,MAE5Cj/E,EAASpoG,KAAKsnL,EAAcA,IAAgB,MAE5Cl/E,EAASpoG,KAAKunL,EAAcA,IAAgB,OAI9C,IAAIC,EAASxoL,EAAE,QAAS,CACtBykG,YAAa,gBACb/7F,MAAOxJ,KAAKooL,aACZ9+K,MAAOtJ,KAAKwoL,WACZjmL,IAAK,WACJ2nG,EAASxoG,OAAOyhF,KAEnB,OAAO8kG,EAAe7lL,OAAS,EAAItB,EAAE,MAAO,CAC1C0I,MAAOy+K,EACPngL,MAAO9H,KAAKkoL,cACZ3lL,IAAK,QACJ,CAAC+mL,IAAWA,CACjB,ICxKF,SAASnoL,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAazM,IAAIiG,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAcA,GAAc,CAAC,EAAGi8B,IAAU8qE,IAAeC,KAAsBl9F,IAGpIm9F,GAA4BlkG,GAAO,CAC5C3gF,KAAM0nF,GAGNnjF,OAAQ,CACRsoG,GAAYm1E,GAAkBtoE,GAAS7jB,GACvCmtF,GAGAb,IACAj+K,MAAOA,GACP6gG,SAAU,CACRm+E,cAAe,WACb,OAAO,CACT,KClCJ,SAAS3mL,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAUhN,IAAI6mL,GAAmB,SAA0BxmL,GAC/C,OAAOA,EAAQ,CACjB,EAGW4F,GAAQ46F,GAAsB,CACvC2I,UAAWtJ,GAASlO,IACpB+7B,QAAS7tB,GAASrO,GAAkB,EAAGg1F,IACvCxqE,WAAYnc,GAASxO,IAAmB,GACxCgjE,KAAMx0D,GAASrO,GAAkB,EAAGg1F,IACpCC,WAAY5mF,GAASxO,IAAmB,GACxCq1F,WAAY7mF,GAASpO,GAAkB,CAAC,IACvC5I,IAGQ89F,GAA8BtkG,GAAO,CAC9C3gF,KAAMmnF,GACNlsF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIn3B,EAAOm3B,EAAKn3B,KACZF,EAAQq3B,EAAKr3B,MACbujG,EAAYvjG,EAAMujG,UAClBukB,EAAU9nH,EAAM8nH,QAChBk5D,EAAMhpL,EAAE,KAAM,CAACA,EAAEylL,GAAW,CAC9Bz9K,MAAO,CACLujG,UAAWA,OAGX09E,EAAQjpL,EAAE,KAAM+4F,GAAY+2B,EAASk5D,IACrCE,EAAMlpL,EAAE,KAAM,CAACA,EAAEylL,GAAW,CAC9Bz9K,MAAO,CACLq1F,MAAO,MACPkO,UAAWA,OAGX49E,EAAQnpL,EAAE,KAAM+4F,GAAY+2B,EAASo5D,IACrCE,EAASppL,EAAE,QAAS+4F,GAAY/wF,EAAMyuJ,KAAM0yB,IAC5CE,EAAUrhL,EAAMo2G,WAAmCp+G,IAAtBA,EAAE,QAAS,CAACipL,IACzCK,EAASthL,EAAM6gL,WAAa7oL,EAAE,QAAS,CAACipL,IAAUjpL,IACtD,OAAOA,EAAE2oL,GAAc9jF,GAAU38F,EAAM,CACrCF,MAAO05E,GAAc,CAAC,EAAG15E,EAAM8gL,cAC7B,CAACO,EAAQD,EAAQE,GACvB,IClDSthL,GAAQ46F,GAAsB,CACvC2mF,QAAStnF,GAASxO,IAAmB,IACpCvI,IAGQs+F,GAAgC/kG,GAAO,CAChD3gF,KAAMonF,GACNnsF,YAAY,EACZiJ,MAAOA,GACP3J,OAAQ,SAAgB2B,EAAGq/B,GACzB,IAAIn3B,EAAOm3B,EAAKn3B,KACZF,EAAQq3B,EAAKr3B,MACb2mF,EAAQtvD,EAAKsvD,MACbM,EAAc5vD,EAAK4vD,YACnBsK,EAAS5K,IACT2K,EAAerK,GAAe,CAAC,EAC/Bw9B,EAAY,CAAC,EAEjB,OAAIzkH,EAAMuhL,QACDvpL,EAAE,MAAO6kG,GAAU38F,EAAM,CAC9BM,MAAO,CACLg/F,KAAM,QACN,YAAa,SACb,aAAa,GAEf/C,YAAa,qBACbhjG,IAAK,YACH+3F,GAAc5C,GAAmB61B,EAAWnzB,EAAcC,IAGzDC,GAAcnE,GAAmBo3B,EAAWnzB,EAAcC,EACnE,IChCEkwF,GAA8BjlG,GAAc,CAC9CP,WAAY,CACVwhG,UAAWA,GACXC,cAAeA,GACfG,aAAcA,GACdkD,eAAgBA,GAChBS,iBAAkBA,MCVlBE,GAA6BllG,GAAc,CAC7CP,WAAY,CACV4sF,SAAUA,MCJd,SAASxwK,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAUhN,IAAI4nL,GAAQ,QACRC,GAAO,OAEA5hL,GAAQ46F,GAAsB,CACvC8D,QAASzE,GAASlO,KACjB7H,IAMQ29F,GAAmBplG,GAAO,CACnC3gF,KAAMooF,GACN7jF,OAAQ,CAACsoG,GAAYsB,GAAgBtY,IACrCge,QAAS,WACP,IAAIj8F,EAAQxc,KAEZ,MAAO,CACL4qL,aAAc,WACZ,OAAOpuK,CACT,EAEJ,EACA66F,OAAQ,CACNwzE,mBAAoB,CAClBr+K,QAEA,WACE,OAAO,WACL,MAAO,CAAC,CACV,CACF,IAGJqnG,cAAc,EACd/qG,MAAOA,GACP6gG,SAAU,CACRmhF,gBAAiB,WACf,OAAO9qL,KAAK6qL,oBACd,EAEAE,QAAS,WACP,OAAO/qL,KAAK8qL,gBAAgBE,OAC9B,EAEAC,QAAS,WACP,OAAOjrL,KAAK8qL,gBAAgBI,OAC9B,EAEAC,QAAS,WACP,OAAOnrL,KAAK8qL,gBAAgBM,OAC9B,EAEAC,OAAQ,WACN,OAAOrrL,KAAK8qL,gBAAgBO,MAC9B,EAEArE,UAAW,WACT,OAAOhnL,KAAK8qL,gBAAgB9D,SAC9B,EAEAe,aAAc,WACZ,OAAO/nL,KAAK8qL,gBAAgB/C,YAC9B,EAGAC,eAAgB,WACd,OAAOhoL,KAAK8qL,gBAAgB9C,cAC9B,EAIAsD,gBAAiB,WACf,OAAQtrL,KAAKgnL,WAAahnL,KAAK8qL,gBAAgBQ,eACjD,EAEA3D,aAAc,WACZ,OAAO3nL,KAAK8qL,gBAAgBnD,YAC9B,EAEA4D,YAAa,WACX,OAAOvrL,KAAKirL,QAAUjrL,KAAK8qL,gBAAgBS,YAAc,IAC3D,EAEAC,YAAa,WACX,OAAOxrL,KAAKmrL,QAAUnrL,KAAK8qL,gBAAgBU,YAAc,IAC3D,EACAC,UAAW,WACT,OAAOzrL,KAAKurL,cAAgBd,IAASzqL,KAAKwrL,cAAgBf,KAElDzqL,KAAKurL,cAAgBb,IAAQ1qL,KAAKwrL,cAAgBd,IAEnD1qL,KAAKqrL,OACd,EACAK,UAAW,WACT,IAAIlkF,EAAUxnG,KAAKwnG,QACnB,MAAO,CAACA,EAAU,GAAGvmG,OAAOjB,KAAKyrL,UAAY,KAAO,QAAS,KAAKxqL,OAAOumG,GAAW,KACtF,EACAmkF,QAAS,WACP,OAAOnpG,GAAc,CACnB8lB,KAAM,OACLtoG,KAAKuxG,QACV,GAEFpyG,OAAQ,SAAgB2B,GACtB,OAAOA,EAAE,KAAM,CACb0I,MAAOxJ,KAAK0rL,UACZpiL,MAAOtJ,KAAK2rL,QAEZt7F,GAAIrwF,KAAK6yG,aACR7yG,KAAKs6F,gBACV,ICxHSxxF,GAAQ,CAAC,EAGT8iL,GAAiBrmG,GAAO,CACjCz8E,MAAOA,GACP4xF,QAAS,CACPmxF,gBAAiB,WACf,IAAI/gH,EAAS9qE,KAAK2oL,eACd97E,EAAU7sG,KAAK6sG,QACfi/E,EAAe9rL,KAAK8rL,aACpBC,EAAc/rL,KAAK+rL,YACnBjrL,EAAId,KAAK09I,eAGb,OAAK19I,KAAKk6F,kBAAkBnE,MAAqC,IAAZ8W,GAAgC,KAAZA,EAIlE/rG,EAAE6pL,GAAK,CACZplF,YAAa,qBACb/7F,MAAO,CAACmH,GAAWm7K,GAEnBA,EAAa,KAAM,cAAgBA,GACnCxiL,MAAOqH,GAAWo7K,GAElBA,EAAY,KAAM,cAAgBA,EAClCxpL,IAAK,gBACJvC,KAAKs6F,cAAcvE,GAAsB,CAC1C66B,QAAS9lD,EAAO1oE,OAChB0oE,OAAQA,KAdDhqE,GAgBX,KCpCJ,SAASK,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAehN,IAAImpL,GAAY,SAAmB9oL,GAEjC,OADAA,EAAQ43F,GAAU53F,EAAO,GAClBA,EAAQ,EAAIA,EAAQ,IAC7B,EAII+oL,GAAgB,SAAuB/oL,GACzC,OAAO++E,GAAkB/+E,IAAU8oL,GAAU9oL,GAAS,CACxD,EAGW4F,GAAQ46F,GAAsB,CACvCwoF,QAASnpF,GAASxN,GAAyB,KAAM02F,IACjDE,QAASppF,GAASxN,GAAyB,KAAM02F,IACjDG,eAAgBrpF,GAASlO,IACzBw3F,aAActpF,GAASxO,IAAmB,GAC1CiT,QAASzE,GAASlO,KACjBzI,IAMQkgG,GAAmB/mG,GAAO,CACnC3gF,KAAMwnF,GAENjjF,OAAQ,CAACsoG,GAAYsB,GAAgBtY,IACrC4c,OAAQ,CACNuzE,aAAc,CACZp+K,QAEA,WACE,OAAO,WACL,MAAO,CAAC,CACV,CACF,IAGJqnG,cAAc,EACd/qG,MAAOA,GACP6gG,SAAU,CACR4iF,UAAW,WACT,OAAOvsL,KAAK4qL,cACd,EAEA7gL,IAAK,WACH,MAAO,IACT,EACAghL,QAAS,WACP,OAAO/qL,KAAKusL,UAAUxB,OACxB,EACAE,QAAS,WACP,OAAOjrL,KAAKusL,UAAUtB,OACxB,EACAE,QAAS,WACP,OAAOnrL,KAAKusL,UAAUpB,OACxB,EACAE,OAAQ,WACN,OAAOrrL,KAAKusL,UAAUlB,MACxB,EACArE,UAAW,WACT,OAAOhnL,KAAKusL,UAAUvF,SACxB,EAEAwF,cAAe,WACb,OAAOxsL,KAAK+qL,SAAW/qL,KAAKgnL,SAC9B,EACAe,aAAc,WACZ,OAAO/nL,KAAKusL,UAAUxE,YACxB,EAIAC,eAAgB,WACd,OAAOhoL,KAAKusL,UAAUvE,cACxB,EAGAsD,gBAAiB,WACf,OAAOtrL,KAAKusL,UAAUjB,eACxB,EAMAmB,eAAgB,WACd,OAAQzsL,KAAKgnL,YAAchnL,KAAK+nL,cAAgB/nL,KAAKsrL,kBAAoBtrL,KAAKqsL,YAChF,EACAK,WAAY,WACV,OAAO1sL,KAAKusL,UAAU/kF,OACxB,EACA+jF,YAAa,WACX,OAAOvrL,KAAKusL,UAAUhB,WACxB,EACAC,YAAa,WACX,OAAOxrL,KAAKusL,UAAUf,WACxB,EACA7D,aAAc,WACZ,OAAO3nL,KAAKusL,UAAU5E,YACxB,EACAgF,gBAAiB,WACf,OAAOX,GAAUhsL,KAAKksL,QACxB,EACAU,gBAAiB,WACf,OAAOZ,GAAUhsL,KAAKmsL,QACxB,EAGAU,YAAa,WACX,IAAIrlF,EAAUxnG,KAAKwnG,QACf+jF,EAAcvrL,KAAKurL,YACnBkB,EAAiBzsL,KAAKysL,eAQ1B,QANKjlF,GAAWxnG,KAAKgoL,iBAAmBuD,IAAgB/jF,GAAWilF,GAAkBzsL,KAAKmrL,UAAYnrL,KAAKwrL,cAAgBhkF,GAAWilF,GAAkBzsL,KAAKirL,UAAYM,IAAgB/jF,GAAWilF,GAAkBzsL,KAAK+qL,WAGzNvjF,EAAUxnG,KAAK0sL,YAAc1sL,KAAK2nL,cAAgB,mBAG7C,CAACngF,EAAU,GAAGvmG,OAAOjB,KAAKqrL,OAAS,KAAO,QAAS,KAAKpqL,OAAOumG,GAAW,KAAMilF,EAAiB,wBAA0B,KACpI,EACAK,UAAW,WACT,IAAIV,EAAiBpsL,KAAKosL,eAGtBW,EAAa/sL,KAAKirL,SAAWjrL,KAAKmrL,QAElCe,EAAUlsL,KAAK2sL,gBACfR,EAAUnsL,KAAK4sL,gBAEftkF,EAAO,OACP9N,EAAQ,KAaZ,OAVIuyF,GAEFzkF,EAAO,eACP9N,EAAQ0xF,EAAU,EAAI,UAAY,OACzBx8F,GAAM1vF,KAAK+J,IAAK,QAEzBu+F,EAAO,YACP9N,EAAQ2xF,EAAU,EAAI,WAAa,OAG9B3pG,GAAcA,GAAc,CACjC0pG,QAASA,EACTC,QAASA,EACT7jF,KAAMA,EACN9N,MAAOA,GACNx6F,KAAKuxG,SAAU,CAAC,EAAG,CAGpB,aAAcvxG,KAAKwsL,gBAAkBvqG,GAAkBmqG,GAEvD1nL,GAAS0nL,GAAkB,MAE/B,GAEFjtL,OAAQ,SAAgB2B,GACtB,IAAIopG,EAAW,CAAClqG,KAAKs6F,iBACrB,OAAOx5F,EAAEd,KAAK+J,IAAK,CACjBP,MAAOxJ,KAAK6sL,YACZvjL,MAAOtJ,KAAK8sL,UAEZz8F,GAAIrwF,KAAK6yG,aACR,CAAC7yG,KAAKwsL,cAAgB1rL,EAAE,MAAO,CAACopG,IAAaA,GAClD,IC3LF,SAAS1nG,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAYhN,IAAImqL,GAAuB,OACvBC,GAAwBj5F,GAA0Bg5F,GAE3ClkL,GAAQtG,GAAgB,CAAC,EAAGwqL,GAAsBjqF,GAASxO,IAAmB,IAG9E24F,GAAY3nG,GAAO,CAC5Bz8E,MAAOA,GACPE,KAAM,WACJ,MAAO,CACLmkL,WAAW,EAEf,EACAxjF,SAAU,CACR2+E,aAAc,WACZ,OAAOtoL,KAAKgtL,KAAyBhtL,KAAKmtL,SAC5C,GAEFvlF,MAAO,CACLulF,UAAW,SAAmBh7K,EAAU4+F,GAClC5+F,IAAa4+F,GACf/wG,KAAK8nG,MAAMmlF,GAAuB96K,EAEtC,GAEFuoF,QAAS,CAEP0yF,WAAY,SAAoB1jI,GAE9B,QAAI1pD,KAAKsoL,eACPjkF,GAAU36C,IACH,EAIX,EAEA2jI,WAAY,WACV,IAAIvB,EAAe9rL,KAAK8rL,aACpBC,EAAc/rL,KAAK+rL,YACnBjrL,EAAId,KAAK09I,eAEb,OAAI19I,KAAKsoL,cAAgBtoL,KAAKk6F,kBAAkBlB,IACvCl4F,EAAE6pL,GAAK,CACZplF,YAAa,oBACb/7F,MAAO,CAACmH,GAAWm7K,GAEnBA,EAAa,KAAM9yF,IAAwB8yF,GAC3CxiL,MAAOqH,GAAWo7K,GAElBA,EAAY,KAAM/yF,IAAwB+yF,EAC1CxpL,IAAK,mBACJ,CAACzB,EAAEwrL,GAAK,CACTxjL,MAAO,CACLojL,QAASlsL,KAAK2oL,eAAevmL,QAAU,OAExC,CAACpC,KAAKs6F,cAActB,QAKlB,IACT,KCpEOlwF,GAAQ,CACjBguH,QAAS/zB,GAASlO,IAClBkiC,YAAah0B,GAASlO,KAMby4F,GAAe/nG,GAAO,CAC/Bz8E,MAAOA,GACP6gG,SAAU,CACRm/E,UAAW,WACT,OAAO9oL,KAAKgnL,UAAYhnL,KAAKw+G,OAAO,aAAe,IACrD,GAEF9jB,QAAS,CACPuuF,cAAe,WACb,IAAInyD,EAAU92H,KAAK82H,QACfC,EAAc/2H,KAAK+2H,YACnBj2H,EAAId,KAAK09I,eACT6vC,EAAWzsL,IACX0sL,EAAiBxtL,KAAKk6F,kBAAkBjB,IAa5C,OAXIu0F,GAAkB12D,GAAWC,KAC/Bw2D,EAAWzsL,EAAE,UAAW,CACtBwI,MAAO,CACLsvB,GAAI54B,KAAK8oL,WAEXrjF,SAAU+nF,EAAiB,CAAC,EAAIv0E,GAAW8d,EAAaD,GACxDv0H,IAAK,UACL4e,IAAK,WACJnhB,KAAKs6F,cAAcrB,MAGjBs0F,CACT,KCtCOzkL,GAAQ,CAAC,EAGT2kL,GAAgBloG,GAAO,CAChCmV,QAAS,CACPwuF,eAAgB,WACd,IAAIp+G,EAAS9qE,KAAK2oL,eACd7nL,EAAId,KAAK09I,eACTgwC,EAAY5sL,IAWhB,OATId,KAAKk6F,kBAAkBhB,MACzBw0F,EAAY5sL,EAAE,WAAY,CACxByB,IAAK,YACJ,CAACvC,KAAKs6F,cAAcpB,GAA0B,CAC/C03B,QAAS9lD,EAAO1oE,OAChB0oE,OAAQA,OAIL4iH,CACT,KCbO5kL,GAAQ,CACjB6kL,kBAAmB5qF,GAASlO,IAC5B+4F,kBAAmB7qF,GAASlO,GAAkB,8CAC9Cg5F,UAAW9qF,GAASlO,IACpBi5F,UAAW/qF,GAASlO,GAAkB,gCACtCk5F,UAAWhrF,GAASxO,IAAmB,IAI9By5F,GAAazoG,GAAO,CAC7Bz8E,MAAOA,GACP4xF,QAAS,CACPuzF,YAAa,WACX,IAAIlY,EAAmB3rE,GAAgBpqG,MACnCmpC,EAAQ4sI,EAAiBwS,cACzBD,EAAevS,EAAiBuS,aAEhCxnL,EAAId,KAAK09I,eACTwwC,EAASptL,IAEb,GAAId,KAAK+tL,aAAe5kJ,GAA0B,IAAjBA,EAAM/mC,WAAmBkmL,IAAgBtoL,KAAKk6F,kBAAkBlB,KAAwB,CACvH,IAAIluB,EAAS9qE,KAAK2oL,eACdwF,EAAanuL,KAAKmuL,WAClBL,EAAY9tL,KAAK8tL,UACjBD,EAAY7tL,KAAK6tL,UACjBD,EAAoB5tL,KAAK4tL,kBACzBD,EAAoB3tL,KAAK2tL,kBACzB7B,EAAe9rL,KAAK8rL,aACpBC,EAAc/rL,KAAK+rL,YACvBmC,EAASluL,KAAKs6F,cAAc6zF,EAAa13F,GAA0BD,GAAiB,CAClFm3F,kBAAmBA,EACnBC,kBAAmBA,EACnBC,UAAWA,EACXC,UAAWA,EACXhjH,OAAQA,EAER3hC,MAAOA,IAGJ+kJ,IACHA,EAASptL,EAAE,MAAO,CAChB0I,MAAO,CAAC,cAAe,QACvBi8F,SAAU0oF,EAAal1E,GAAW00E,EAAmBC,GAAqB30E,GAAW40E,EAAWC,MAIpGI,EAASptL,EAAEwrL,GAAK,CACdxjL,MAAO,CACLojL,QAASphH,EAAO1oE,QAAU,OAE3B,CAACtB,EAAE,MAAO,CACXwI,MAAO,CACLg/F,KAAM,QACN,YAAa,WAEd,CAAC4lF,MACJA,EAASptL,EAAE6pL,GAAK,CACdplF,YAAa,oBACb/7F,MAAO,CAACmH,GAAWm7K,GAEnBA,EAAa,KAAM,aAAeA,GAClCxiL,MAAOqH,GAAWo7K,GAElBA,EAAY,KAAM,aAAeA,EACjCxpL,IAAK4rL,EAAa,uBAAyB,eAC1C,CAACD,GACN,CAEA,OAAOA,CACT,KChEOE,GAAwB,SAASA,EAAsBlrL,GAChE,OAAI++E,GAAkB/+E,GACb,GAKL0N,GAAS1N,KAAW2N,GAAO3N,GACtB5B,GAAK4B,GAAOytC,OAClB5oC,KAAI,SAAUkP,GACb,OAAOm3K,EAAsBlrL,EAAM+T,GACrC,IAAGvV,QAAO,SAAU+N,GAClB,QAASA,CACX,IACClJ,KAAK,KAGD7B,GAASxB,EAClB,ECjCA,SAAS/B,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAGzM,IAAIwrL,GAAyB,gBACzBC,GAAwB,cACxBC,GAAyB,eAGzBC,GAAqB,CAACH,GAAwBC,GAAuBC,IAAwBrmL,QAAO,SAAU2H,EAAQtN,GAC/H,OAAOigF,GAAcA,GAAc,CAAC,EAAG3yE,GAAS,CAAC,EAAGrN,GAAgB,CAAC,EAAGD,GAAK,GAC/E,GAAG,CAAC,GAGOksL,GAAe,CAAC,IAAK,MAChC,SAAU,WACV,uCAAwC,wCAAyC,0CAA2C,gBAAiB,kBAAmB,kBAAmB,oBAAqB,6CAA6CloL,KAAK,KCd/OmoL,GAAc,SAAqBC,EAAKC,EAAcC,GAC/D,IAAIC,EAAY3sL,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAIjF4sL,EAAeztL,GAAKwtL,GAAW5mL,QAAO,SAAU2H,EAAQtN,GAC1D,IAAI2tB,EAAQ4+J,EAAUvsL,GAClBysL,EAAoB9+J,EAAM8+J,kBAC1B/nC,EAAYt2I,GAAWq+K,GAE3BA,EAAoBA,EAEpB9+J,EAAM+2H,UAAY,KAMlB,OAJIt2I,GAAWs2I,KACbp3I,EAAOtN,GAAO0kJ,EAAU0nC,EAAIpsL,GAAMA,EAAKosL,IAGlC9+K,CACT,GAAG+hB,GAAM+8J,IAKLM,EAAc3tL,GAAKytL,GAAcrtL,QAAO,SAAUa,GACpD,OAAQisL,GAAmBjsL,MAAU4B,GAAQyqL,IAAiBA,EAAaxsL,OAAS,GAAKu3F,GAAci1F,EAAcrsL,OAAW4B,GAAQ0qL,IAAkBA,EAAczsL,OAAS,IAAMu3F,GAAck1F,EAAetsL,GACtN,IACA,OAAOsgF,GAAKksG,EAAcE,EAC5B,EC5BWC,GAAwB,SAA+BP,EAAKC,EAAcC,EAAeC,GAClG,OAAOl+K,GAAS+9K,GAAOP,GAAsBM,GAAYC,EAAKC,EAAcC,EAAeC,IAE3F,EACF,ECTA,SAASlrL,GAAmBC,GAAO,OAAOC,GAAmBD,IAAQE,GAAiBF,IAAQG,GAA4BH,IAAQI,IAAsB,CAExJ,SAASA,KAAuB,MAAM,IAAIe,UAAU,uIAAyI,CAE7L,SAAShB,GAA4BO,EAAGC,GAAU,GAAKD,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOH,GAAkBG,EAAGC,GAAS,IAAIC,EAAIlD,OAAO0B,UAAUyB,SAASrE,KAAKkE,GAAGI,MAAM,GAAI,GAAiE,MAAnD,WAANF,GAAkBF,EAAEvB,cAAayB,EAAIF,EAAEvB,YAAY4B,MAAgB,QAANH,GAAqB,QAANA,EAAoBP,MAAMI,KAAKC,GAAc,cAANE,GAAqB,2CAA2CI,KAAKJ,GAAWL,GAAkBG,EAAGC,QAAzG,CAA7O,CAA+V,CAE/Z,SAAST,GAAiBM,GAAQ,GAAsB,qBAAXvB,QAAmD,MAAzBuB,EAAKvB,OAAOC,WAA2C,MAAtBsB,EAAK,cAAuB,OAAOH,MAAMI,KAAKD,EAAO,CAE7J,SAASP,GAAmBD,GAAO,GAAIK,MAAMC,QAAQN,GAAM,OAAOO,GAAkBP,EAAM,CAE1F,SAASO,GAAkBP,EAAKiB,IAAkB,MAAPA,GAAeA,EAAMjB,EAAIzB,UAAQ0C,EAAMjB,EAAIzB,QAAQ,IAAK,IAAIF,EAAI,EAAG6C,EAAO,IAAIb,MAAMY,GAAM5C,EAAI4C,EAAK5C,IAAO6C,EAAK7C,GAAK2B,EAAI3B,GAAM,OAAO6C,CAAM,CAkBtL,IAAIoqL,GAA0B,8FAEnBrmL,GAAQ,CACjBpH,OAAQqhG,GAAS,GAAG9hG,OAAO2C,GAAmBoxF,IAAgC,CAACJ,MAC/Ew6F,eAAgBrsF,GAASxN,GAAyB,GAAG,SAAUryF,GAC7D,OAAOm6E,EAAUx4E,KAAK4H,OAAOvJ,GAC/B,IACAmsL,eAAgBtsF,GAAStO,IACzB66F,oBAAqBvsF,GAASzO,GAAiB,IAC/Ci7F,qBAAsBxsF,GAASzO,GAAiB,KAIvCk7F,GAAiBjqG,GAAO,CACjCz8E,MAAOA,GACPE,KAAM,WACJ,MAAO,CAELmlL,YAAY,EAGZsB,YAAazvL,KAAK0vL,eAAe1vL,KAAK0B,QAE1C,EACAioG,SAAU,CACRgmF,sBAAuB,WACrB,OAAO1uL,GAAOjB,KAAKsvL,qBAAuB,IAAI5tL,OAAOyhF,GACvD,EACAysG,uBAAwB,WACtB,OAAO3uL,GAAOjB,KAAKuvL,sBAAwB,IAAI7tL,OAAOyhF,GACxD,EACA0sG,uBAAwB,WACtB,IAAI5oJ,EAAK6zD,GAAU96F,KAAKovL,eAAgB,GAOxC,OAJInoJ,EAAK,GACP08C,GAAKwrG,GAAyBhjG,IAGzBllD,CACT,EACA6oJ,eAAgB,WACd,OAAO9vL,KAAK+vL,eAAgB/vL,KAAKgwL,mBACnC,EAEAC,cAAe,WACb,IAAIvH,EAAgB1oL,KAAK0oL,cACrBwH,EAAalwL,KAAKkwL,WAClBT,EAAczvL,KAAKyvL,YACvB,MAAO,CACL/G,cAAeA,EACfwH,WAAYA,EACZT,YAAaA,EAEjB,EAEAU,cAAe,WAEb,IAAId,EAAiBrvL,KAAKqvL,eAC1B,OAAOzrF,GAAgByrF,GAAkBA,EAAiB,IAC5D,EAGA3G,cAAe,WAEb,IAAIv/I,EAAQnpC,KAAKkwL,WACbE,EAAWpwL,KAAKyvL,YAIhBY,EAAWrwL,KAAK8vL,eAAiB9vL,KAAKswL,gBAAgBtwL,KAAKmwL,cAAeC,IAAapwL,KAAKuwL,uBAAuBH,GAAY,KAEnI,OAAOC,GAAYlnJ,EAAM/mC,OAAS,EAAI+mC,EAAMznC,OAAO2uL,GAAYlnJ,CACjE,GAEFy+D,MAAO,CAELioF,uBAAwB,SAAgC19K,IACjDA,GAAYnS,KAAKioG,gBACpBjoG,KAAKwwL,mBACLxwL,KAAKyvL,YAAczvL,KAAK0vL,eAAe1vL,KAAK0B,QAEhD,EAEAA,OAAQ,CAGN6vB,MAAM,EACN9S,QAAS,SAAiBgyK,GACxB,IAAIj0K,EAAQxc,KAERqiB,EAAUriB,KAAK6vL,uBACnB7vL,KAAKwwL,mBAEDnuK,GAAWA,EAAU,EAEvBriB,KAAKioG,cAAgBjmF,YAAW,WAC9BxF,EAAMizK,YAAcjzK,EAAMkzK,eAAee,EAC3C,GAAGpuK,GAGHriB,KAAKyvL,YAAczvL,KAAK0vL,eAAee,EAE3C,GAIFR,cAAe,SAAuB9vJ,GACpC,IAAIuoJ,EAAgBvoJ,EAAKuoJ,cACrB+G,EAActvJ,EAAKsvJ,YAEnBtB,GAAa,EAEZsB,EAGMn/E,GAAWm/E,EAAa,KAAOn/E,GAAWm/E,EAAa,CAAC,GAEjEtB,GAAa,EACJsB,IAETtB,GAAa,GANbA,GAAa,EASXA,GACFnuL,KAAK8nG,MAAMvW,GAAqBm3F,EAAeA,EAActmL,QAG/DpC,KAAKmuL,WAAaA,CACpB,EACAA,WAAY,SAAoBh8K,EAAU4+F,GACxC,IAAiB,IAAb5+F,IAAmC,IAAb4+F,EAAmB,CAG3C,IAAIm/E,EAAalwL,KAAKkwL,WACtBlwL,KAAK8nG,MAAMvW,GAAqB2+F,EAAYA,EAAW9tL,OACzD,CACF,GAEFysF,QAAS,WACP,IAAIwjB,EAASryG,KAGbA,KAAKioG,cAAgB,KAMrBjoG,KAAKgoG,WAAU,WACbqK,EAAO87E,WAAa5hL,QAAQ8lG,EAAOo9E,YACrC,GACF,EACAvnF,cAAe,WACbloG,KAAKwwL,kBACP,EACA91F,QAAS,CACP81F,iBAAkB,WAChBtuK,aAAaliB,KAAKioG,eAClBjoG,KAAKioG,cAAgB,IACvB,EACAynF,eAAgB,SAAwBU,GAEtC,OAAIpwL,KAAK8vL,gBAAmB9vL,KAAKmwL,eAAmBz/K,GAAS0/K,IAAa/tG,GAAS+tG,GAS5EltG,GAAUktG,GANR,EAOX,EAEAE,gBAAiB,SAAyBD,EAAUD,GAOlD,IAAKC,IAAa1/K,GAAW0/K,KAAcD,GAAY9/E,GAAW8/E,EAAU,KAAO9/E,GAAW8/E,EAAU,CAAC,GACvG,OAAO,KAIT,IAAI31K,EAAK,SAAYykC,GAGnB,OAAOmxI,EAASnxI,EAAMkxI,EACxB,EAGA,OAAO31K,CACT,EACA81K,uBAAwB,SAAgCH,GACtD,IAAI1qE,EAAS1lH,KAIb,IAAKowL,IAAc1/K,GAAS0/K,KAAa/tG,GAAS+tG,GAEhD,OAAO,KAIT,IAAIM,EAASN,EAEb,GAAI1/K,GAASggL,GAAS,CAGpB,IAAIC,EAAU70F,GAAas0F,GAAU1pL,QAAQq3E,EAAW,QAGxD2yG,EAAS,IAAIroH,OAAO,KAAKpnE,OAAO0vL,EAAS,MAAO,IAClD,CAGA,IAAIl2K,EAAK,SAAYykC,GAenB,OADAwxI,EAAOE,UAAY,EACZF,EAAO7rL,KAAKqqL,GAAsBhwI,EAAMwmE,EAAOiqE,sBAAuBjqE,EAAOkqE,uBAAwBlqE,EAAOmrE,mBACrH,EAGA,OAAOp2K,CACT,KCrQAq2K,GAAe,SAAsBvuL,EAAKW,GAC5C,IAAIgtB,EAAQ,KA0BZ,OAxBIxf,GAASxN,GAEXgtB,EAAQ,CACN3tB,IAAKA,EACL2iH,MAAOhiH,GAEAyN,GAAWzN,GAEpBgtB,EAAQ,CACN3tB,IAAKA,EACL0kJ,UAAW/jJ,GAEJ0N,GAAS1N,IAClBgtB,EAAQ0B,GAAM1uB,GACdgtB,EAAM3tB,IAAM2tB,EAAM3tB,KAAOA,IACN,IAAVW,IAITgtB,EAAQ,CACN3tB,IAAKA,IAIF2tB,CACT,EAIW6gK,GAAkB,SAAyBC,EAAY7nJ,GAChE,IAAI2hC,EAAS,GA0Bb,GAxBI3mE,GAAQ6sL,IAEVA,EAAWtvL,OAAOyhF,IAAU7gF,SAAQ,SAAU6rF,GAC5C,GAAIz9E,GAASy9E,GACXrjB,EAAOhpE,KAAK,CACVS,IAAK4rF,EACL+2B,MAAOzpB,GAAUtN,UAEd,GAAIv9E,GAASu9E,IAAMA,EAAE5rF,KAAOmO,GAASy9E,EAAE5rF,KAE5CuoE,EAAOhpE,KAAK8vB,GAAMu8D,SACb,GAAIv9E,GAASu9E,IAAyB,IAAnB7sF,GAAK6sF,GAAG/rF,OAAc,CAE9C,IAAIG,EAAMjB,GAAK6sF,GAAG,GACdj+D,EAAQ4gK,GAAavuL,EAAK4rF,EAAE5rF,IAE5B2tB,GACF46C,EAAOhpE,KAAKouB,EAEhB,CACF,IAIoB,IAAlB46C,EAAO1oE,QAAgB+B,GAAQglC,IAAUA,EAAM/mC,OAAS,EAAG,CAC7D,IAAI6uL,EAAS9nJ,EAAM,GACnB7nC,GAAK2vL,GAAQ3uL,SAAQ,SAAU2U,GACxBu3K,GAAmBv3K,IACtB6zD,EAAOhpE,KAAK,CACVS,IAAK0U,EACLiuG,MAAOzpB,GAAUxkF,IAGvB,GACF,CAGA,IAAIssF,EAAO,CAAC,EACZ,OAAOz4B,EAAOppE,QAAO,SAAUysF,GAC7B,OAAKoV,EAAKpV,EAAE5rF,OACVghG,EAAKpV,EAAE5rF,MAAO,EACd4rF,EAAE+2B,MAAQx0G,GAASy9E,EAAE+2B,OAAS/2B,EAAE+2B,MAAQzpB,GAAUtN,EAAE5rF,MAC7C,EAIX,GACF,ECxFA,SAASpB,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAgBhN,IAAIikG,GAAkBjD,GAAe,QAAS,CAC5Cv3F,KAAMgoF,GACNn6D,aAAc,KAEZ4sE,GAAaD,GAAgB5C,MAC7B8C,GAAaF,GAAgBh+F,MAC7Bm+F,GAAkBH,GAAgBz+F,KAClC6+F,GAAmBJ,GAAgBp9C,MAI5B5gD,GAAQk6E,GAASR,GAAcA,GAAc,CAAC,EAAGwkB,IAAa,CAAC,EAAGxkG,GAAgB,CAC3FsoE,OAAQi4B,GAASzO,GAAiB,MAElCnrD,MAAO45D,GAASzO,GAAiB,IAGjC48F,WAAYnuF,GAASlO,KACpBoS,GAAiBlE,GAASzO,GAAiB,OAGnC68F,GAAa5rG,GAAO,CAC7Bp8E,OAAQ,CAAC49F,GAAY86D,IACrB/4J,MAAOA,GACPE,KAAM,WACJ,IAAImgC,EAAQnpC,KAAKmpC,MACjB,MAAO,CAGL+mJ,WAAY/rL,GAAQglC,GAASA,EAAMxkC,QAAU,GAEjD,EACAglG,SAAU,CACRg/E,eAAgB,WAGd,OAAOoI,GAAgB/wL,KAAK8qE,OAAQ9qE,KAAKkwL,WAC3C,EACAW,kBAAmB,WAKjB,IAAI/uB,EAAW9hK,KAAK8hK,SACpB,OAAO9hK,KAAK2oL,eAAezgL,QAAO,SAAUrF,EAAKsrF,GAI/C,GAFAtrF,EAAIsrF,EAAE5rF,KAAOqvB,GAAMu8D,GAEfA,EAAE84D,UAAW,CAEf,IAAIA,EAAY94D,EAAE84D,UAEdv2I,GAASu2I,IAAct2I,GAAWmxJ,EAAS7a,IAC7CA,EAAY6a,EAAS7a,GACXt2I,GAAWs2I,KAErBA,OAAYl+I,GAIdlG,EAAIsrF,EAAE5rF,KAAK0kJ,UAAYA,CACzB,CAEA,OAAOpkJ,CACT,GAAG,CAAC,EACN,EACA0lL,cAAe,WACb,IAAIxS,EAAmB3rE,GAAgBpqG,MACnCoxL,EAAiBrb,EAAiBqb,eAClCC,EAActb,EAAiBsb,YAC/B3I,EAAgB3S,EAAiB2S,cACjCwH,EAAana,EAAiBma,WAGlC,OAAQkB,GAAkBC,GAAe3I,GAAiBwH,GAE1D,IAAIvrL,OACN,EACA5E,QAAS,WACP,IAAI0oL,EAAoBr+E,GAAgBpqG,MACpC03K,EAAU+Q,EAAkB/Q,QAC5BhD,EAAc+T,EAAkB/T,YAGpC,MAAO,CACLhzK,OAAQ1B,KAAKyvL,YACb6B,OAAQtxL,KAAKuxL,YACbC,SAAUxxL,KAAKyxL,cACf/Z,QAASxhK,GAAQ4kF,GAAU48E,EAAS,GAAI,GACxChD,YAAax+J,GAAQ4kF,GAAU45E,EAAa,GAAI,GAChDgd,OAAQ1xL,KAAK0xL,OAEjB,GAEF9pF,MAAO,CACLz+D,MAAO,SAAeh3B,GAEpBnS,KAAKkwL,WAAa/rL,GAAQgO,GAAYA,EAASxN,QAAU,EAC3D,EAEA4jL,cAAe,SAAuBp2K,EAAU4+F,GACzCT,GAAWn+F,EAAU4+F,IACxB/wG,KAAK8nG,MAAMZ,GAAkB/0F,EAEjC,EAEApS,QAAS,SAAiBoS,EAAU4+F,GAE7BT,GAAWn+F,EAAU4+F,IACxB/wG,KAAK8nG,MAAM/W,GAA4B5+E,EAE3C,GAEFwoG,QAAS,WAEP36G,KAAK8nG,MAAMZ,GAAkBlnG,KAAKuoL,cACpC,EACA7tF,QAAS,CAEPi3F,kBAAmB,SAA2BpvL,GAC5C,IAAI2tB,EAAQlwB,KAAK6wL,kBAAkBtuL,GAGnC,OAAO2tB,EAAQA,EAAM+2H,eAAYl+I,CACnC,KCzIOD,GAAQ,CACjB4rK,YAAa3xE,GAASxN,GAAyB,GAC/CmiF,QAAS30E,GAASxN,GAAyB,IAIlCk/E,GAAkBlvF,GAAO,CAClCz8E,MAAOA,GACP6gG,SAAU,CACRioF,YAAa,WACX,OAAO5xL,KAAK+vL,eAAgB/vL,KAAK6xL,gBACnC,EACAT,eAAgB,WACd,IAAIrb,EAAmB3rE,GAAgBpqG,MACnCqxL,EAActb,EAAiBsb,YAC/B3I,EAAgB3S,EAAiB2S,cACjCwH,EAAana,EAAiBma,WAE9B/mJ,EAAQkoJ,GAAe3I,GAAiBwH,GAAc,GACtDxb,EAAcx+J,GAAQ4kF,GAAU96F,KAAK00K,YAAa,GAAI,GACtDgD,EAAUxhK,GAAQ4kF,GAAU96F,KAAK03K,QAAS,GAAI,GAQlD,OANI13K,KAAK4xL,aAAela,IAEtBvuI,EAAQA,EAAMxkC,OAAO+vK,EAAc,GAAKgD,EAAShD,EAAcgD,IAI1DvuI,CACT,KCvBA2oJ,GAA4B/sF,GAAiB5Y,GAAYwG,IACzDo/F,GAAiC/sF,GAAuB7Y,GAAYuG,IAE7D5pF,GAAQ,CAGjB4oL,OAAQ3uF,GAASlO,IAEjB1rD,MAAO45D,GAASjO,GAA0B,IAC1Ck7F,oBAAqBjtF,GAASxO,IAAmB,GACjDs9F,iBAAkB9uF,GAASxO,IAAmB,GAC9Cy9F,kBAAmBjvF,GAASxO,IAAmB,IAItC09F,GAAgB1sG,GAAO,CAChCp8E,OAAQ,CAAC2oG,IACThpG,MAAOA,GACP6gG,SAAU,CACRomF,YAAa,WACX,OAAOp/K,GAAW3Q,KAAKmpC,MACzB,EACA+oJ,uBAAwB,WAKtB,IAAI3zK,EAAM,CACRmzK,OAAQ1xL,KAAK0xL,OACbhwL,OAAQ,KACR4vL,OAAQ,KACRE,SAAU,KACV9Z,QAAS,KACThD,YAAa,MAkBf,OAfK10K,KAAKgwL,sBAERzxK,EAAI7c,OAAS1B,KAAKyvL,aAGfzvL,KAAKgyL,oBACRzzK,EAAI+yK,OAAStxL,KAAKuxL,YAClBhzK,EAAIizK,SAAWxxL,KAAKyxL,eAGjBzxL,KAAK6xL,mBACRtzK,EAAIm5J,QAAU13K,KAAK03K,QACnBn5J,EAAIm2J,YAAc10K,KAAK00K,aAGlB9iJ,GAAMrT,EACf,GAEFqpF,MAAO,CAELz+D,MAAO,SAAeh3B,IAEhBnS,KAAK+vL,aAAep/K,GAAWwB,KACjCnS,KAAKgoG,UAAUhoG,KAAKmyL,gBAExB,EACAD,uBAAwB,SAAgC//K,EAAU4+F,GAE3DT,GAAWn+F,EAAU4+F,IACxB/wG,KAAKgoG,UAAUhoG,KAAKmyL,gBAExB,GAEFx3E,QAAS,WACP,IAAIn+F,EAAQxc,MAGRA,KAAK+vL,aAAiB/vL,KAAKkwL,YAAyC,IAA3BlwL,KAAKkwL,WAAW9tL,QAE3DpC,KAAKmyL,kBAIPnyL,KAAKkyG,aAAa6/E,IAAgC,SAAUn5J,GACtDA,IAAOpc,EAAMoc,IAAMA,IAAOpc,GAC5BA,EAAMkF,SAEV,GACF,EACAg5E,QAAS,CACPh5E,QAAS,WACP,IAAIq0J,EAAmB3rE,GAAgBpqG,MACnCmpC,EAAQ4sI,EAAiB5sI,MACzBznB,EAAUq0J,EAAiBr0J,QAC3B4mK,EAAevS,EAAiBuS,aAGpCtoL,KAAKwyG,KAAK7f,GAAsBjxE,GAE5B4mK,EAEEtoL,KAAKmtL,WAAantL,KAAK+vL,aAEzB/vL,KAAKmyG,IAAIxf,GAAsBjxE,IAGjC1hB,KAAKoyL,gBAEDpyL,KAAK+vL,YACP/vL,KAAKgoG,UAAUhoG,KAAKmyL,iBAGpBnyL,KAAKkwL,WAAa/rL,GAAQglC,GAASA,EAAMxkC,QAAU,GAGzD,EAEA0tL,kBAAmB,SAA2BlpJ,GAC5CnpC,KAAKkwL,WAAa/rL,GAAQglC,GAASA,EAAMxkC,QAAU,GACnD3E,KAAKmtL,WAAY,EACjBntL,KAAK8nG,MAAMnV,IAEP3yF,KAAK44B,IACP54B,KAAKyyG,WAAWq/E,GAA2B9xL,KAAK44B,GAEpD,EACAu5J,gBAAiB,WACf,IAAI9/E,EAASryG,KAGRA,KAAK+vL,cAMN3lF,GAAgBpqG,MAAMsoL,aAExBtoL,KAAKgoG,UAAUhoG,KAAK0hB,UAKtB1hB,KAAKmtL,WAAY,EAEjBntL,KAAKgoG,WAAU,WACb,IAEE,IAAIh/F,EAAOqpG,EAAOlpE,MAAMkpE,EAAOtyG,QAASsyG,EAAOggF,mBAE3C/vG,GAAUt5E,GAEZA,EAAKkI,MAAK,SAAUi4B,GAElBkpE,EAAOggF,kBAAkBlpJ,EAC3B,IACShlC,GAAQ6E,GAEjBqpG,EAAOggF,kBAAkBrpL,GAGG,IAAxBqpG,EAAOlpE,MAAM/mC,SAMfuhF,GAAK,kFAAmFwI,IACxFkmB,EAAO86E,WAAY,EAGzB,CAAE,MAAOljL,IAKP05E,GAAK,4BAA4B1iF,OAAOgJ,GAAErF,KAAM,MAAM3D,OAAOgJ,GAAEqJ,QAAS,KAAM64E,IAC9EkmB,EAAO86E,WAAY,EAEnB96E,EAAOG,KAAK7f,GAAsB0f,EAAO3wF,QAC3C,CACF,KACF,KC/LJ,SAASlf,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAchN,ICdIyvL,GAAQvyJ,GDcRwyJ,GAAe,CAAC,QAAS,QAAS,UAClCC,GAAY,OAEL1pL,GAAQ,CAEjB2pL,gBAAiB1vF,GAASxO,IAAmB,GAC7Cm+F,WAAY3vF,GAASlO,GAAkB,SAAS,SAAU3xF,GACxD,OAAOy2F,GAAc44F,GAAcrvL,EACrC,IACAyvL,WAAY5vF,GAASxO,IAAmB,GACxC+rB,gBAAiBvd,GAASlO,GAAkB,WAInC+9F,GAAkBrtG,GAAO,CAClCz8E,MAAOA,GACPE,KAAM,WACJ,MAAO,CACL6pL,aAAc,GACdC,iBAAkB,EAEtB,EACAnpF,SAAU,CACRopF,aAAc,WACZ,OAAO/yL,KAAK2yL,YAAc3yL,KAAK0yL,UACjC,EACAM,sBAAuB,WACrB,OAAOhzL,KAAK+yL,eAAiB/yL,KAAKyyL,eACpC,EACAQ,uBAAwB,WACtB,OAAO,CACT,EACAC,uBAAwB,WACtB,IAAIL,EAAe7yL,KAAK6yL,aACxB,OAAO7yL,KAAK+yL,cAAgBF,GAAgBA,EAAazwL,OAAS,GAAKywL,EAAatuG,KAAKpB,GAC3F,EACAgwG,wBAAyB,WACvB,OAAOnzL,KAAK+yL,cAAgBp5F,GAAc,CAAC,QAAS,SAAU35F,KAAK0yL,WACrE,EACArK,uBAAwB,WACtB,IAAIloJ,EAEA4yJ,EAAe/yL,KAAK+yL,aACxB,OAAO5yJ,EAAO,CACZ,qBAAsB4yJ,GACrBvwL,GAAgB29B,EAAM,kBAAkBl/B,OAAOjB,KAAK0yL,YAAaK,GAAevwL,GAAgB29B,EAAM,oBAAqBngC,KAAKkzL,wBAAyB1wL,GAAgB29B,EAAM,8BAA+B4yJ,IAAiB/yL,KAAKgzL,uBAAwB7yJ,CACjQ,EACAyoJ,qBAAsB,WACpB,IAAK5oL,KAAK+yL,aACR,MAAO,CAAC,EAGV,IAAIzqF,EAAOtoG,KAAKuxG,QAAQjJ,MAAQkqF,GAChC,MAAO,CACLlqF,KAAMA,EAIN,uBAAwBA,IAASkqF,GAAY9tL,GAAS1E,KAAKmzL,yBAA2B,KAE1F,GAEFvrF,MAAO,CACL2gF,cAAe,SAAuBp2K,EAAU4+F,GAE9C,IAAIV,GAAQ,EAEZ,GAAIrwG,KAAK+yL,cAAgB/yL,KAAK6yL,aAAazwL,OAAS,EAAG,CAErDiuG,EAAQlsG,GAAQgO,IAAahO,GAAQ4sG,IAAa5+F,EAAS/P,SAAW2uG,EAAS3uG,OAE/E,IAAK,IAAIF,EAAI,EAAGmuG,GAASnuG,EAAIiQ,EAAS/P,OAAQF,IAE5CmuG,EAAQC,GAAWo+E,GAAYv8K,EAASjQ,IAAKwsL,GAAY39E,EAAS7uG,IAEtE,CAEKmuG,GACHrwG,KAAKoyL,eAET,EACAO,WAAY,SAAoBxgL,GAC9BnS,KAAKoyL,gBACLpyL,KAAKozL,qBAAqBjhL,EAC5B,EACAugL,WAAY,WACV1yL,KAAKoyL,eACP,EACAY,sBAAuB,SAA+B7gL,GACpDnS,KAAKoyL,gBACLpyL,KAAKozL,sBAAsBjhL,EAC7B,EACA0gL,aAAc,SAAsBQ,EAAetiF,GACjD,IAAIv0F,EAAQxc,KAEZ,GAAIA,KAAK+yL,eAAiBziF,GAAW+iF,EAAetiF,GAAW,CAC7D,IAAI5nE,EAAQ,GAEZkqJ,EAAc/wL,SAAQ,SAAUmN,EAAGsL,GAC7BtL,GACF05B,EAAMrnC,KAAK0a,EAAM+rK,cAAcxtK,GAEnC,IAEA/a,KAAK8nG,MAAM5U,GAAyB/pD,EACtC,CACF,GAEF45H,YAAa,WAEP/iK,KAAK+yL,cACP/yL,KAAKozL,sBAAqB,EAE9B,EACA14F,QAAS,CAEP44F,UAAW,SAAmBr/I,GAE5B,GAAIj0C,KAAK+yL,cAAgBjiL,GAASmjC,IAAUA,GAAS,GAAKA,EAAQj0C,KAAKuoL,cAAcnmL,SAAWpC,KAAKuzL,cAAct/I,GAAQ,CACzH,IAAI4+I,EAAe7yL,KAAKmzL,wBAA0BnzL,KAAK6yL,aAAaluL,QAAU,GAC9EkuL,EAAa5+I,IAAS,EACtBj0C,KAAKwzL,qBAAuB,EAC5BxzL,KAAK6yL,aAAeA,CACtB,CACF,EACAY,YAAa,SAAqBx/I,GAEhC,GAAIj0C,KAAK+yL,cAAgBjiL,GAASmjC,IAAUj0C,KAAKuzL,cAAct/I,GAAQ,CACrE,IAAI4+I,EAAe7yL,KAAK6yL,aAAaluL,QACrCkuL,EAAa5+I,IAAS,EACtBj0C,KAAKwzL,qBAAuB,EAC5BxzL,KAAK6yL,aAAeA,CACtB,CACF,EACAa,cAAe,WACb,IAAItxL,EAASpC,KAAKuoL,cAAcnmL,OAE5BpC,KAAK+yL,cAAgB3wL,EAAS,IAChCpC,KAAKwzL,qBAAuB,EAC5BxzL,KAAK6yL,aAAe7yL,KAAKmzL,wBAA0Bt5F,GAAYz3F,GAAQ,GAAQ,EAAC,GAEpF,EACAmxL,cAAe,SAAuBt/I,GAEpC,SAAUnjC,GAASmjC,KAAUj0C,KAAK6yL,aAAa5+I,GACjD,EACAm+I,cAAe,WAEbpyL,KAAKwzL,qBAAuB,EAC5BxzL,KAAK6yL,aAAe,EACtB,EAEAc,qBAAsB,SAA8B1/I,GAClD,GAAIj0C,KAAK+yL,cAAgB/yL,KAAKuzL,cAAct/I,GAAQ,CAClD,IAAIuzD,EAAUxnG,KAAKsgH,gBACnB,OAAO99G,GAAgB,CACrB,wBAAwB,GACvB,GAAGvB,OAAOjB,KAAK87I,KAAO,KAAO,QAAS,KAAK76I,OAAOumG,GAAUA,EACjE,CAEA,MAAO,CAAC,CACV,EACAosF,mBAAoB,SAA4B3/I,GAC9C,MAAO,CACL,gBAAkBj0C,KAAK+yL,aAAsB/yL,KAAKuzL,cAAct/I,GAAS,OAAS,QAA5C,KAE1C,EACAm/I,qBAAsB,SAA8B/iG,GAClD,IAAI39D,EAAS29D,IAAOrwF,KAAKyyL,gBAAkB,MAAQ,OAEnDzyL,KAAK0yB,GAAQmgE,GAAwB7yF,KAAK6zL,kBAE1C7zL,KAAK0yB,GAAQ6+D,GAAqBvxF,KAAKoyL,eACvCpyL,KAAK0yB,GAAQq+D,GAA4B/wF,KAAKoyL,cAChD,EACAyB,iBAAkB,SAA0B30I,EAAMjL,EAAOyV,GAEvD,GAAK1pD,KAAK+yL,eAAgB/yL,KAAKyyL,gBAA/B,CAMA,IAAIC,EAAa1yL,KAAK0yL,WAClBI,EAAkB9yL,KAAK8yL,gBACvBD,EAAe7yL,KAAK6yL,aAAaluL,QACjCk8G,GAAYgyE,EAAa5+I,GAE7B,GAAmB,WAAfy+I,EACFG,EAAe,QACV,GAAmB,UAAfH,EACT,GAAII,GAAmB,GAAKppI,EAAMyxD,SAAU,CAE1C,IAAK,IAAIpgG,EAAMytF,GAAQsqF,EAAiB7+I,GAAQl5B,GAAO7E,GAAQ48K,EAAiB7+I,GAAQl5B,IACtF83K,EAAa93K,IAAO,EAGtB8lG,GAAW,CACb,MACQn3D,EAAM28D,SAAW38D,EAAM2mG,UAE3BwiC,EAAe,GACfhyE,GAAW,GAGTA,IAAU7gH,KAAK8yL,gBAAkB7+I,GAIzC4+I,EAAa5+I,GAAS4sE,EACtB7gH,KAAK6yL,aAAeA,CA7BpB,MAFE7yL,KAAKoyL,eAgCT,KEhNO0B,GAAa,SAAoBl6F,EAAOm6F,GAKjD,OAAOn6F,EAAM7xF,KAAI,SAAU84E,EAAG5sC,GAC5B,MAAO,CAACA,EAAO4sC,EACjB,IAAGlwC,KAAK,SAAUkwC,EAAG/oE,GACnB,OAAO9X,KAAK6gF,EAAE,GAAI/oE,EAAE,KAAO+oE,EAAE,GAAK/oE,EAAE,EACtC,EAAE5O,KAAK6qL,IAAYhsL,KAAI,SAAUkC,GAC/B,OAAOA,EAAE,EACX,GACF,ECxBI+pL,GAAiB,SAAwB9wL,GAC3C,OAAI++E,GAAkB/+E,GACb,GAGLg/E,GAAUh/E,GACL+3F,GAAQ/3F,EAAOA,GAGjBA,CACT,EAWW+wL,GAAqB,SAA4BpzG,EAAG/oE,GAC7D,IAAIqoB,EAAOh+B,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC5E+xL,EAAc/zJ,EAAKmxJ,OACnBA,OAAyB,IAAhB4C,EAAyB,KAAOA,EACzCC,EAAiBh0J,EAAK8mH,UACtBA,OAA+B,IAAnBktC,EAA4B,KAAOA,EAC/CC,EAAcj0J,EAAK28E,OACnBA,OAAyB,IAAhBs3E,OAAyBrrL,EAAYqrL,EAC9CC,EAAqBl0J,EAAKm0J,cAC1BA,OAAuC,IAAvBD,EAAgC,CAAC,EAAIA,EACrDE,EAAgBp0J,EAAKq0J,SACrBA,OAA6B,IAAlBD,GAAmCA,EAG9CE,EAAKziL,GAAI6uE,EAAGywG,EAAQ,MACpBoD,EAAK1iL,GAAI8F,EAAGw5K,EAAQ,MAaxB,OAXI3gL,GAAWs2I,KACbwtC,EAAKxtC,EAAUwtC,EAAInD,EAAQzwG,GAC3B6zG,EAAKztC,EAAUytC,EAAIpD,EAAQx5K,IAM7B28K,EAAKT,GAAeS,GACpBC,EAAKV,GAAeU,GAEhB7jL,GAAO4jL,IAAO5jL,GAAO6jL,IAAO5jL,GAAS2jL,IAAO3jL,GAAS4jL,GAGhDD,EAAKC,GAAM,EAAID,EAAKC,EAAK,EAAI,EAC3BF,GAAmB,KAAPC,GAAoB,KAAPC,EAE3B,EACEF,GAAmB,KAAPC,GAAoB,KAAPC,GAE1B,EAIHtG,GAAsBqG,GAAIE,cAAcvG,GAAsBsG,GAAK53E,EAAQw3E,EACpF,EFlEA,SAASnzL,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAahN,IAAI+xL,GAA0B,SAC1BC,GAA2B7gG,GAA0B4gG,GACrDE,GAA4B,WAC5BC,GAA6B/gG,GAA0B8gG,GACvDE,GAAqB,MACrBC,GAAsB,OACtBC,GAAsB,OACtBC,GAAkB,CAACH,GAAoBC,GAAqBC,IAErDpsL,IAASwpL,GAAS,CAC3B8C,aAAcryF,GAASlO,GAAkB,2BACzCwgG,eAAgBtyF,GAASlO,GAAkB,0BAC3CygG,cAAevyF,GAASlO,GAAkB,4BAC1C0gG,gBAAiBxyF,GAASxO,IAAmB,GAC7CihG,eAAgBzyF,GAASxO,IAAmB,GAK5CkhG,YAAa1yF,GAASxO,IAAmB,IACxC/xF,GAAgB8vL,GAAQsC,GAAyB7xF,GAASlO,KAAoBryF,GAAgB8vL,GAAQ,cAAevvF,GAAStO,KAAsBjyF,GAAgB8vL,GAAQ,oBAAqBvvF,GAAS9N,KAA0BzyF,GAAgB8vL,GAAQ,qBAAsBvvF,GAASpO,GAAkB,CAC9S+gG,SAAS,KACNlzL,GAAgB8vL,GAAQwC,GAA2B/xF,GAASxO,IAAmB,IAAS/xF,GAAgB8vL,GAAQ,gBAAiBvvF,GAASlO,GAAkBmgG,IAAoB,SAAU9xL,GAC7L,OAAOy2F,GAAcw7F,GAAiBjyL,EACxC,KAAKV,GAAgB8vL,GAAQ,eAAgBvvF,GAASxO,IAAmB,IAAS/xF,GAAgB8vL,GAAQ,eAAgBvvF,GAASxO,IAAmB,IAAS+9F,IAGpJqD,GAAepwG,GAAO,CAC/Bz8E,MAAOA,GACPE,KAAM,WACJ,MAAO,CACLuoL,YAAavxL,KAAK40L,KAA4B,GAC9CnD,cAAezxL,KAAK80L,MAA8B,EAEtD,EACAnrF,SAAU,CACRisF,aAAc,WACZ,OAAO51L,KAAK+vL,cAAgB/vL,KAAKgyL,mBAAqBhyL,KAAKw1L,cAC7D,EACAK,WAAY,WACV,OAAO71L,KAAK2oL,eAAepkG,MAAK,SAAU4J,GACxC,OAAOA,EAAE2nG,QACX,GACF,EAGAzE,YAAa,WACX,IAAItb,EAAmB3rE,GAAgBpqG,MACnCsxL,EAASvb,EAAiBwb,YAC1BC,EAAWzb,EAAiB0b,cAC5B30E,EAASi5D,EAAiBggB,kBAC1BvB,EAAWze,EAAiBigB,aAC5BC,EAAclgB,EAAiBkgB,YAC/BL,EAAe7f,EAAiB6f,aAChClN,EAAgB3S,EAAiB2S,cACjCwH,EAAana,EAAiBma,WAE9B/mJ,GAASu/I,GAAiBwH,GAAc,IAAIvrL,QAE5C2vL,EAAgB9xG,GAAcA,GAAc,CAAC,EAAGxiF,KAAKk2L,oBAAqB,CAAC,EAAG,CAChFC,MAAO,SAGT,GAAI7E,GAAUsE,EAAc,CAC1B,IAAI1lK,EAAQlwB,KAAK6wL,kBAAkBS,IAAW,CAAC,EAC3C8E,EAAkBlmK,EAAMkmK,gBACxBnvC,EAAYt2I,GAAWylL,GAE3BA,EAAkBA,EAAkBp2L,KAAK2xL,kBAAkBL,QAAUvoL,EAErE,OAAO+qL,GAAW3qJ,GAAO,SAAU03C,EAAG/oE,GACpC,IAAIjI,EAAS,KAsBb,OApBIc,GAAWslL,KAIbpmL,EAASomL,EAAYp1G,EAAG/oE,EAAGw5K,EAAQE,EAAUvqC,EAAWqtC,EAAex3E,KAKrE76B,GAAkBpyE,KAAsB,IAAXA,KAC/BA,EAASokL,GAAmBpzG,EAAG/oE,EAAG,CAChCw5K,OAAQA,EACRrqC,UAAWA,EACXnqC,OAAQA,EACRw3E,cAAeA,EACfE,SAAUA,MAKN3kL,GAAU,IAAM2hL,GAAY,EAAI,EAC1C,GACF,CAEA,OAAOroJ,CACT,GAEFy+D,OAAQ7nE,GAAS,CAEf81J,WAAY,SAAoB1jL,GAC1BA,EACEnS,KAAK61L,YACP71L,KAAKmyG,IAAIvgB,GAAyB5xF,KAAKq2L,YAGzCr2L,KAAKwyG,KAAK5gB,GAAyB5xF,KAAKq2L,WAE5C,GACC7zL,GAAgBu9B,GAAQ+0J,IAA2B,SAAU3iL,GAE1DA,IAAanS,KAAKyxL,gBAItBzxL,KAAKyxL,cAAgBt/K,IAAY,EACnC,IAAI3P,GAAgBu9B,GAAQ60J,IAAyB,SAAUziL,GAEzDA,IAAanS,KAAKuxL,cAItBvxL,KAAKuxL,YAAcp/K,GAAY,GACjC,IAAI3P,GAAgBu9B,GAAQ,iBAAiB,SAAuB5tB,EAAU4+F,GAExE5+F,IAAa4+F,GACf/wG,KAAK8nG,MAAMitF,GAA4B5iL,EAE3C,IAAI3P,GAAgBu9B,GAAQ,eAAe,SAAqB5tB,EAAU4+F,GACpE5+F,IAAa4+F,GACf/wG,KAAK8nG,MAAM+sF,GAA0B1iL,EAEzC,IAAI4tB,IACJ8uD,QAAS,WACH7uF,KAAK61L,YACP71L,KAAKmyG,IAAIvgB,GAAyB5xF,KAAKq2L,WAE3C,EACA37F,QAAS,CAGP27F,WAAY,SAAoB9zL,EAAK2tB,EAAOw5B,EAAO4sI,GACjD,IAAI95K,EAAQxc,KAEZ,GAAKA,KAAK61L,cAKNS,IAAUt2L,KAAKu1L,iBAAnB,CAMA,IAAIgB,GAAc,EAEdC,EAAsB,WACxB,IAAIC,EAAgBvmK,EAAMumK,eAAiBj6K,EAAMi6K,cAE7CA,IAAkBzB,GACpBx4K,EAAMi1K,eAAgB,EACbgF,IAAkBxB,KAC3Bz4K,EAAMi1K,eAAgB,EAI1B,EAEA,GAAIvhK,EAAM4lK,SAAU,CAClB,IAAIY,GAAW12L,KAAK41L,cAAgB1lK,EAAMwmK,QAAUxmK,EAAMwmK,QAAUn0L,EAEhEvC,KAAKuxL,cAAgBmF,EAEvB12L,KAAKyxL,eAAiBzxL,KAAKyxL,eAG3BzxL,KAAKuxL,YAAcmF,EAEnBF,KAGFD,GAAc,CAChB,MAAWv2L,KAAKuxL,cAAgBvxL,KAAKy1L,cACnCz1L,KAAKuxL,YAAc,GACnBiF,IACAD,GAAc,GAGZA,GAEFv2L,KAAK8nG,MAAMrU,GAAyBzzF,KAAKD,QAxC3C,CA0CF,EAEA42L,mBAAoB,SAA4Bp0L,EAAK2tB,EAAOomK,GAC1D,MAAO,CAEL,yBAA0BpmK,EAAM4lK,UAAY91L,KAAK42L,gBAAkBN,GAAUt2L,KAAKu1L,iBAEtF,EACAsB,iBAAkB,SAA0Bt0L,EAAK2tB,EAAOomK,GACtD,IAAIQ,EAEAjB,EAAa71L,KAAK61L,WAClBN,EAAkBv1L,KAAKu1L,gBACvB9D,EAAgBzxL,KAAKyxL,cACrBF,EAAcvxL,KAAKuxL,YACnBqE,EAAe51L,KAAK41L,aAExB,IAAKC,GAAcS,GAAUf,EAE3B,MAAO,CAAC,EAGV,IAAIO,EAAW5lK,EAAM4lK,SACjBY,EAAWd,EAA+GrzL,EAA3D,QAApCu0L,EAAiB5mK,EAAMwmK,eAAwC,IAAnBI,EAA4BA,EAAiBv0L,EAEpHw0L,EAAWjB,GAAYvE,IAAgBmF,EAAUjF,EAAgB,aAAe,YAAcqE,EAAW,OAAS,KAEtH,MAAO,CACL,YAAaiB,EAEjB,EAEAC,iBAAkB,SAA0Bz0L,EAAK2tB,EAAOomK,GAEtD,IAAKt2L,KAAK61L,YAAcS,GAAUt2L,KAAKu1L,gBACrC,OAAO,KAGT,IAAIhE,EAAcvxL,KAAKuxL,YACnBE,EAAgBzxL,KAAKyxL,cACrB2D,EAAep1L,KAAKo1L,aACpBE,EAAgBt1L,KAAKs1L,cACrBQ,EAAW5lK,EAAM4lK,SAEjBmB,EAAe,GAEnB,GAAInB,EACF,GAAIvE,IAAgBhvL,EAElB00L,EAAexF,EAAgB2D,EAAeE,MACzC,CAIL2B,EAAexF,EAAgB6D,EAAgBF,EAE/C,IAAIqB,EAAgBz2L,KAAKy2L,eAAiBvmK,EAAMumK,cAE5CA,IAAkBzB,GACpBiC,EAAe7B,EACNqB,IAAkBxB,KAC3BgC,EAAe3B,EAEnB,MACUt1L,KAAKy1L,cAEfwB,EAAe1F,EAAcvxL,KAAKq1L,eAAiB,IAIrD,OAAOptL,GAAKgvL,IAAiB,IAC/B,KG7RJ,SAAS91L,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAUzM,IAAIiG,GAAQ46F,GAAsB,CACvCwzF,wBAAyBn0F,GAASpO,IAClCwiG,qBAAsBp0F,GAASpO,KAC9BnI,IAMQ4qG,GAAsB7xG,GAAO,CACtC3gF,KAAM4nF,GACNrjF,OAAQ,CAACsoG,GAAYsB,GAAgBtY,IACrCge,QAAS,WACP,IAAIj8F,EAAQxc,KAEZ,MAAO,CACL6qL,mBAAoB,WAClB,OAAOruK,CACT,EAEJ,EACA66F,OAAQ,CAENwwE,WAAY,CACVr7K,QAEA,WACE,OAAO,WACL,MAAO,CAAC,CACV,CACF,IAGJqnG,cAAc,EACd/qG,MAAOA,GACP6gG,SAAU,CACR0tF,QAAS,WACP,OAAOr3L,KAAK6nL,YACd,EAEAmD,QAAS,WACP,OAAO,CACT,EAEAK,OAAQ,WACN,OAAOrrL,KAAKq3L,QAAQv7C,IACtB,EAEAkrC,UAAW,WACT,OAAOhnL,KAAKq3L,QAAQrQ,SACtB,EAEAe,aAAc,WACZ,OAAO/nL,KAAKq3L,QAAQtP,YACtB,EAGAC,eAAgB,WACd,OAAO,CACT,EAIAsD,gBAAiB,WACf,OAAQtrL,KAAKgnL,WAAahnL,KAAKq3L,QAAQ5P,YACzC,EAEAE,aAAc,WACZ,OAAO3nL,KAAKq3L,QAAQ1P,YACtB,EACA2P,kBAAmB,WACjB,OAAOt3L,KAAKm3L,sBAAwBn3L,KAAKk3L,uBAC3C,EACAK,WAAY,WACV,OAAO/0G,GAAc,CACnB8lB,KAAM,YACLtoG,KAAKuxG,QACV,EACAimF,WAAY,WACV,IAAIL,EAAuBn3L,KAAKm3L,qBAChC,OAAOA,EAAuB30G,GAAcA,GAAc,CAAC,EAAG20G,GAAuB,CAAC,EAAG,CACvFptL,IAAK,UACF,CAAC,CACR,GAEF5K,OAAQ,SAAgB2B,GACtB,IAAIkI,EAAO,CACTF,MAAO9I,KAAKw3L,WACZluL,MAAOtJ,KAAKu3L,YAYd,OATIv3L,KAAKs3L,mBAEPtuL,EAAKqnF,GAAKrwF,KAAKk3L,yBAA2B,CAAC,EAC3CluL,EAAKyuL,SAAWz3L,KAAK6yG,aAGrB7pG,EAAKqnF,GAAKrwF,KAAK6yG,YAGV/xG,EAAEd,KAAKs3L,kBAAoB,mBAAqB,QAAStuL,EAAMhJ,KAAKs6F,gBAC7E,ICjHEo9F,GAAkB,CAAC,KAAM,KAAM,MAGxBC,GAAc,SAAqBjuI,GAE5C,IAAKA,IAAUA,EAAMznD,OAEnB,OAAO,EAGT,IAAI+sF,EAAKtlC,EAAMznD,OAEf,GAAI+sF,EAAGn8D,WAAqD,IAAzC6kK,GAAgBl0L,QAAQwrF,EAAG0nC,SAC5C,OAAO,EAIT,GAAIl6B,GAAQ,iBAAkBxN,GAC5B,OAAO,EAGT,IAAIk2B,EAAuB,UAAfl2B,EAAG0nC,QAAsB1nC,EAAKwN,GAAQ,QAASxN,GAI3D,GAAIk2B,EAAO,CACT,IAAIs/B,EAAW7kD,GAAQulB,EAAO,OAC1Bh/E,EAAQs+G,EAAWtlD,GAAQslD,GAAY1lD,GAAO,0BAA2BomB,GAE7E,GAAIh/E,IAAUA,EAAMrT,SAClB,OAAO,CAEX,CAKA,OAAOka,GAAQiiD,EAAIy/F,GACrB,EClCWmJ,GAAsB,WAC/B,IAAI5oG,EAAK7sF,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAKk5E,SACzEohB,EAAM0D,KACV,SAAO1D,GAAiC,KAA1BA,EAAI/3F,WAAWuD,QAAiBw0F,EAAIo7F,cAAgBr6F,GAAUxO,KAE5EyN,EAAIo7F,aAAa7oG,GAAI,EACvB,ECPWlmF,GAAQ46F,GAAsBo0F,GAAUprG,IAMxCqrG,GAAmBxyG,GAAO,CACnC3gF,KAAM8nF,GACNwhF,QAASoe,GACTxjL,MAAOA,GACP6gG,SAAU,CACR5/F,IAAK,WACH,MAAO,IACT,KClBJ,SAAS5I,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAEhN,SAASe,GAAmBC,GAAO,OAAOC,GAAmBD,IAAQE,GAAiBF,IAAQG,GAA4BH,IAAQI,IAAsB,CAExJ,SAASA,KAAuB,MAAM,IAAIe,UAAU,uIAAyI,CAE7L,SAAShB,GAA4BO,EAAGC,GAAU,GAAKD,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOH,GAAkBG,EAAGC,GAAS,IAAIC,EAAIlD,OAAO0B,UAAUyB,SAASrE,KAAKkE,GAAGI,MAAM,GAAI,GAAiE,MAAnD,WAANF,GAAkBF,EAAEvB,cAAayB,EAAIF,EAAEvB,YAAY4B,MAAgB,QAANH,GAAqB,QAANA,EAAoBP,MAAMI,KAAKC,GAAc,cAANE,GAAqB,2CAA2CI,KAAKJ,GAAWL,GAAkBG,EAAGC,QAAzG,CAA7O,CAA+V,CAE/Z,SAAST,GAAiBM,GAAQ,GAAsB,qBAAXvB,QAAmD,MAAzBuB,EAAKvB,OAAOC,WAA2C,MAAtBsB,EAAK,cAAuB,OAAOH,MAAMI,KAAKD,EAAO,CAE7J,SAASP,GAAmBD,GAAO,GAAIK,MAAMC,QAAQN,GAAM,OAAOO,GAAkBP,EAAM,CAE1F,SAASO,GAAkBP,EAAKiB,IAAkB,MAAPA,GAAeA,EAAMjB,EAAIzB,UAAQ0C,EAAMjB,EAAIzB,QAAQ,IAAK,IAAIF,EAAI,EAAG6C,EAAO,IAAIb,MAAMY,GAAM5C,EAAI4C,EAAK5C,IAAO6C,EAAK7C,GAAK2B,EAAI3B,GAAM,OAAO6C,CAAM,CAiB/K,IAAI+D,GAAQ,CACjBkvL,eAAgBj1F,GAAS/N,IACzB+2F,YAAahpF,GAAStN,IACtBq2F,aAAc/oF,GAAS,GAAG9hG,OAAO2C,GAAmBoxF,IAAgC,CAACP,OAI5EwjG,GAAgB1yG,GAAO,CAChCp8E,OAAQ,CAAC04J,IACT/4J,MAAOA,GACP4xF,QAAS,CAEPw9F,YAAa,SAAqBh5I,EAAM38C,EAAK41L,EAASh+J,GACpD,IAAI2nI,EAAW9hK,KAAK8hK,SAEpB,GAAIq2B,EAAS,CACX,IAAIj1L,EAAQ8O,GAAIktC,EAAM38C,EAAK,IAE3B,OAAIoO,GAAWwnL,GACNA,EAAQj1L,EAAOX,EAAK28C,GAClBxuC,GAASynL,IAAYxnL,GAAWmxJ,EAASq2B,IAC3Cr2B,EAASq2B,GAASj1L,EAAOX,EAAK28C,GAGhCi5I,CACT,CAEA,OAAOh+J,CACT,EACAi+J,YAAa,SAAqBl5I,EAAM38C,EAAK81L,EAAS/rL,EAAM6tB,GAC1D,IAAI2nI,EAAW9hK,KAAK8hK,SAEpB,GAAIu2B,EAAS,CACX,IAAIn1L,EAAQ8O,GAAIktC,EAAM38C,EAAK,IAE3B,OAAIoO,GAAW0nL,GACNA,EAAQn1L,EAAOX,EAAK28C,EAAM5yC,GACxBoE,GAAS2nL,IAAY1nL,GAAWmxJ,EAASu2B,IAC3Cv2B,EAASu2B,GAASn1L,EAAOX,EAAK28C,EAAM5yC,GAGtC+rL,CACT,CAEA,OAAOl+J,CACT,EAEAm+J,kBAAmB,SAA2Bp5I,EAAMhvB,GAClD,IAAI3tB,EAAM2tB,EAAM3tB,IACZ0kJ,EAAYjnJ,KAAK2xL,kBAAkBpvL,GACnCW,EAAQ8O,GAAIktC,EAAM38C,EAAK,MAM3B,OAJIoO,GAAWs2I,KACb/jJ,EAAQ+jJ,EAAU/jJ,EAAOX,EAAK28C,IAGzB+iC,GAAkB/+E,GAAS,GAAKA,CACzC,EAEAq1L,qBAAsB,SAA8BC,EAAgBt5I,GAClE,IAAI1iC,EAAQxc,KAGZ,OAAO,WACDw4L,GACFh8K,EAAM00F,KAAKhyD,EAAMqvI,IAAyBrvI,EAAKqvI,IAEnD,CACF,EAEAkK,WAAY,SAAoB/uI,GAGzB1pD,KAAK04L,qBAAqBhvI,IAE7B1pD,KAAK24L,kBAAkB3lG,GAAwBtpC,EAEnD,EACAkvI,aAAc,SAAsBlvI,GAG7B1pD,KAAK04L,qBAAqBhvI,IAE7B1pD,KAAK24L,kBAAkBxlG,GAA0BzpC,EAErD,EAEAmvI,mBAAoB,SAA4B3oK,EAAO4oK,EAAU55I,EAAM65I,GACrE,IAAI1mF,EAASryG,KAETgnL,EAAYhnL,KAAKgnL,UACjBzkL,EAAM2tB,EAAM3tB,IACZ2iH,EAAQh1F,EAAMg1F,MACd8zE,EAAc9oK,EAAM8oK,YACpBl4L,EAAId,KAAK09I,eACT86C,EAAiBx4L,KAAKk6F,kBAAkBnB,IACxC+hE,EAAY96J,KAAKs4L,kBAAkBp5I,EAAMhvB,GACzCm8J,GAAgBrF,IAAchnL,KAAK+nL,cAAgB/nL,KAAKynL,eAAiBv3J,EAAMm8J,aAI/E4M,EAAU5M,EAAe2M,EAAcjB,GAAMzL,GAAM0M,EAAc,KAAO,KACxEE,EAAch6I,EAAKmvI,KAA2BnvI,EAAKmvI,IAAwB9rL,GAAO28C,EAAKmvI,IAAwB9rL,GAAO2tB,EAAMs3E,SAAW,KACvIx+F,EAAO,CAKTQ,MAAO,CAAC0mB,EAAM1mB,MAAQ0mB,EAAM1mB,MAAQ,GAAIxJ,KAAKk4L,YAAYh5I,EAAM38C,EAAK2tB,EAAMipK,QAAS,KACnFrwL,MAAO,CAAC,EACRQ,MAAOk5E,GAAc,CACnB,gBAAiB/1E,OAAOqsL,EAAW,IAClCE,EAAch5L,KAAKo4L,YAAYl5I,EAAM38C,EAAK2tB,EAAMkpK,OAAQ,MAAO,CAAC,GAAKp5L,KAAKk4L,YAAYh5I,EAAM38C,EAAK2tB,EAAMmpK,OAAQ,CAAC,IACnH92L,IAAK,OAAOtB,OAAO83L,EAAU,UAAU93L,OAAO63L,EAAU,KAAK73L,OAAOsB,IAGlE8pL,EAEFrjL,EAAKF,MAAQ,CACXsjL,eAAgBpF,EAAY9hE,EAAQ,KACpCmnE,cAAc,EACd7kF,QAAS0xF,IAKXlwL,EAAKM,MAAM,cAAgB09K,IAAc/kG,GAAkBijC,GAASxgH,GAASwgH,GAAS,KACtFl8G,EAAKM,MAAMg/F,KAAO0wF,EAAc,YAAc,OAC9ChwL,EAAKM,MAAMkxF,MAAQw+F,EAAc,MAAQ,KAErCE,GACFlwL,EAAKQ,MAAM1H,KAAK,GAAGb,OAAOjB,KAAK87I,KAAO,KAAO,QAAS,KAAK76I,OAAOi4L,KAItE,IAAI3rE,EAAY,CACdruE,KAAMA,EACNjL,MAAO8kJ,EACP7oK,MAAOA,EACPopK,YAAatnL,GAAIktC,EAAM38C,EAAK,IAC5BW,MAAO43J,EACPy+B,cAAev5L,KAAKu4L,qBAAqBC,EAAgBt5I,GACzDs6I,eAAgBjtL,QAAQ2yC,EAAKqvI,MAI3BnkF,GAAgBpqG,MAAMizL,yBACxB1lE,EAAUksE,YAAcz5L,KAAKuzL,cAAcwF,GAE3CxrE,EAAU+lE,UAAY,WACpB,OAAOjhF,EAAOihF,UAAUyF,EAC1B,EAEAxrE,EAAUkmE,YAAc,WACtB,OAAOphF,EAAOohF,YAAYsF,EAC5B,GAWF,IAAIhoC,EAAW/wJ,KAAK05L,yBAAyBn3L,GACzC+hL,EAAcvzB,EAAW/wJ,KAAKs6F,cAAcy2D,EAAUxjC,GAAa7oH,GAASo2J,GAQhF,OANI96J,KAAKgnL,YAEP1C,EAAc,CAACxjL,EAAE,MAAO,CAACwjL,MAIpBxjL,EAAEm4L,EAASjwL,EAAM,CAACs7K,GAC3B,EAEAqV,eAAgB,SAAwBz6I,EAAM65I,GAC5C,IAAIrzE,EAAS1lH,KAET+1K,EAAmB3rE,GAAgBpqG,MACnC8qE,EAASirG,EAAiB4S,eAC1BpF,EAAUxN,EAAiBwN,QAC3B2N,EAAanb,EAAiBmb,WAC9Bxc,EAAcqB,EAAiBrB,YAC/BgD,EAAU3B,EAAiB2B,QAC3BoU,EAAe/V,EAAiB+V,aAChCC,EAAchW,EAAiBgW,YAC/BiH,EAAwBjd,EAAiBid,sBAEzClyL,EAAId,KAAK09I,eACT86C,EAAiBx4L,KAAKk6F,kBAAkBnB,IACxC6gG,EAAiB16I,EAAKqvI,KAA2BiK,EACjDqB,EAAqB75L,KAAK8yG,WAAWjgB,KAA2BmgG,EAEhE8G,EAAQ,GAIRC,EAAYH,EAAiB55L,KAAKw+G,OAAO,YAAYv9G,OAAO83L,EAAU,MAAQ,KAE9EiB,EAAOlvH,EAAO/iE,KAAI,SAAUmoB,EAAO4oK,GACrC,OAAOpzE,EAAOmzE,mBAAmB3oK,EAAO4oK,EAAU55I,EAAM65I,EAC1D,IAEIkB,EAAe,KAEfvlB,GAAegD,GAAWA,EAAU,IACtCuiB,EAAextL,QAAQioK,EAAc,GAAKgD,EAAUqhB,EAAW,IAOjE,IAAImB,EAAkBx1L,GAASsN,GAAIktC,EAAMgyI,KAAgB,KACrDiJ,EAASD,GAAmBx1L,GAASq0L,GAGrCqB,EAAQF,EAAkBl6L,KAAKw+G,OAAO,QAAQv9G,OAAOi5L,IAAoB,KAEzEG,EAAoBjwF,GAAgBpqG,MAAM2zL,qBAAuB3zL,KAAK2zL,qBAAqBoF,GAAY,CAAC,EACxGuB,EAAkBlwF,GAAgBpqG,MAAM4zL,mBAAqB5zL,KAAK4zL,mBAAmBmF,GAAY,CAAC,EAElGwB,EAAgB5pL,GAAWm7K,GAAgBA,EAAa5sI,EAAM,OAAS4sI,EACvE0O,EAAc7pL,GAAWo7K,GAE7BA,EAAY7sI,EAAM,OAAS6sI,EA0B3B,GAxBA+N,EAAMh4L,KAAKhB,EAAE6pL,GAAKnoL,GAAgB,CAChCgH,MAAO,CAAC+wL,EAAeF,EAAmBT,EAAiB,sBAAwB,IACnF9wL,MAAO,CACL0+F,QAAStoD,EAAKovI,KAA0B,MAE1ChlL,MAAOk5E,GAAcA,GAAc,CACjC5pD,GAAIwhK,GACHI,GAAc,CAAC,EAAG,CAEnBpmF,SAAUylF,EAAqB,IAAM,KACrC,UAAWK,GAAmB,KAC9B,eAAgBH,EAChB,YAAaA,EACb,gBAAiBE,GAChBK,GACHjqG,GAAI,CAEFmmC,WAAYx2H,KAAKy4L,WACjBhiE,WAAYz2H,KAAK44L,cAEnBr2L,IAAK,iBAAiBtB,OAAOk5L,EAAQ,MACrCh5K,IAAK,aACJotE,IAAa,GAAOyrG,IAEnBJ,EAAgB,CAClB,IAAIa,EAAe,CACjBv7I,KAAMA,EACNjL,MAAO8kJ,EACPjuH,OAAQA,EACRyuH,cAAev5L,KAAKu4L,qBAAqBC,EAAgBt5I,IAIvDkrD,GAAgBpqG,MAAMizL,yBACxBwH,EAAahB,YAAcz5L,KAAKuzL,cAAcwF,GAE9C0B,EAAanH,UAAY,WACvB,OAAO5tE,EAAO4tE,UAAUyF,EAC1B,EAEA0B,EAAahH,YAAc,WACzB,OAAO/tE,EAAO+tE,YAAYsF,EAC5B,GAIF,IAAI2B,EAAW55L,EAAEwrL,GAAK,CACpBxjL,MAAO,CACLojL,QAASphH,EAAO1oE,QAElBoH,MAAOxJ,KAAKg4L,gBACX,CAACh4L,KAAKs6F,cAAcvB,GAAuB0hG,KAG1ClX,GACFuW,EAAMh4L,KACNhB,EAAE,KAAM,CACNykG,YAAa,SACbj8F,MAAO,CACL,cAAe,OACfg/F,KAAM,gBAER/lG,IAAK,6BAA6BtB,OAAOk5L,MAK7C,IAAIQ,EAAuBhqL,GAAW3Q,KAAK8rL,cAE3C9rL,KAAK8rL,aAAa5sI,EAAM65C,IAAyB/4F,KAAK8rL,aAClD8O,EAAqBjqL,GAAW3Q,KAAK+rL,aAEzC/rL,KAAK+rL,YAAY7sI,EAAM65C,IAAyB/4F,KAAK+rL,YACrD+N,EAAMh4L,KAAKhB,EAAE6pL,GAAK,CAChBplF,YAAa,kBACb/7F,MAAO,CAACmxL,GACR7xL,MAAO,CACL0+F,QAAStoD,EAAKovI,KAA0B,MAE1ChlL,MAAOk5E,GAAcA,GAAc,CAAC,EAAGo4G,GAAqB,CAAC,EAAG,CAE9DhiK,GAAImhK,EACJ3lF,SAAU,OAEZ7xG,IAAK,sBAAsBtB,OAAOk5L,IACjC,CAACO,IACN,MAAWlC,IAETsB,EAAMh4L,KAAKhB,KAEPyiL,GAEFuW,EAAMh4L,KAAKhB,MAKf,OAAOg5L,CACT,KCzWJ,SAAS34L,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAiBhN,IAAIg4L,GAAkB,SAAyB33L,GAC7C,MAAO,QAAQjC,OAAOiC,GAAS,GAAI,IACrC,EAGW4F,GAAQk6E,GAASR,GAAcA,GAAcA,GAAc,CAAC,EAAGs4G,IAAcC,IAAgB,CAAC,EAAG,CAC1GC,WAAYj4F,GAAS/N,OAIZimG,GAAa11G,GAAO,CAC7Bp8E,OAAQ,CAAC8uL,IACTnvL,MAAOA,GACPo/F,cAAe,WACbloG,KAAK05L,yBAA2B,IAClC,EACAh/F,QAAS,CAKPwgG,YAAa,WACX,IAAIr1E,EAAQ7lH,KAAK6lH,MACbs1E,EAAQt1E,EAAMs1E,MAAQt1E,EAAMs1E,MAAMtmF,KAAOgR,EAAMs1E,MAAQ,KACvDC,GAAOv1E,EAAM,cAAgB,IAAI99G,KAAI,SAAUszL,GACjD,OAAOA,EAAGxmF,KAAOwmF,CACnB,IACA,OAAOF,GAASA,EAAMlyL,UAAYkyL,EAAMlyL,SAAS7G,OAAS,GAAKg5L,GAAOA,EAAIh5L,OAAS,EAAIw8F,GAAUu8F,EAAMlyL,UAAUvH,QAAO,SAAU25L,GAChI,OAAO1hG,GAAcyhG,EAAKC,EAC5B,IAEA,EACF,EAGAC,gBAAiB,SAAyBtsG,GAExC,IAAKwO,GAAUxO,GACb,OAAQ,EAGV,IAAIqsG,EAAoB,OAAfrsG,EAAG0nC,QAAmB1nC,EAAKwN,GAAQ,KAAMxN,GAAI,GACtD,OAAOqsG,EAAKr7L,KAAKk7L,cAAc13L,QAAQ63L,IAAO,CAChD,EAEA1C,kBAAmB,SAA2BrsL,EAAMo9C,GAClD,GAAIp9C,GAAQtM,KAAKm6I,YAAY7tI,IAASo9C,GAASA,EAAMznD,OAAQ,CAC3D,IAAI82L,EAAW/4L,KAAKs7L,gBAAgB5xI,EAAMznD,QAE1C,GAAI82L,GAAY,EAAG,CAEjB,IAAI75I,EAAOl/C,KAAKuoL,cAAcwQ,GAC9B/4L,KAAK8nG,MAAMx7F,EAAM4yC,EAAM65I,EAAUrvI,EACnC,CACF,CACF,EACAgvI,qBAAsB,SAA8BhvI,GAClD,OAAO1pD,KAAKotL,YAAcptL,KAAKotL,WAAW1jI,EAC5C,EAEA6xI,kBAAmB,SAA2B7xI,GAE5C,IAAIznD,EAASynD,EAAMznD,OACfm0G,EAAU1sD,EAAM0sD,QAEpB,IAAIp2G,KAAK04L,qBAAqBhvI,IAA6B,OAAnBznD,EAAOy0H,SAAqB94B,GAAgB37F,IAA+B,IAApBA,EAAOu/F,SAKtG,GAAI7H,GAAc,CAACgW,GAAYO,IAAakG,GAE1C/R,GAAU36C,GACV1pD,KAAKw7L,kBAAkB9xI,QAClB,GAAIiwC,GAAc,CAACwW,GAASV,GAAWI,GAAWH,IAAW0G,GAAU,CAE5E,IAAI2iF,EAAW/4L,KAAKs7L,gBAAgBr5L,GAEpC,GAAI82L,GAAY,EAAG,CACjB10F,GAAU36C,GACV,IAAI0xI,EAAMp7L,KAAKk7L,cACXjwF,EAAQvhD,EAAMyxD,SAEd/E,IAAYvG,IAAa5E,GAASmL,IAAYjG,GAEhD1O,GAAa25F,EAAI,IACRhlF,IAAY1G,IAAYzE,GAASmL,IAAY3G,GAEtDhO,GAAa25F,EAAIA,EAAIh5L,OAAS,IACrBg0G,IAAYjG,IAAW4oF,EAAW,EAE3Ct3F,GAAa25F,EAAIrC,EAAW,IACnB3iF,IAAY3G,IAAaspF,EAAWqC,EAAIh5L,OAAS,GAE1Dq/F,GAAa25F,EAAIrC,EAAW,GAEhC,CACF,CACF,EACAyC,kBAAmB,SAA2B9xI,GAC5C,IAAIm8D,EAAQ7lH,KAAK6lH,MACbs1E,EAAQt1E,EAAMs1E,MAAQt1E,EAAMs1E,MAAMtmF,KAAOgR,EAAMs1E,MAAQ,KAGvDn7L,KAAK04L,qBAAqBhvI,IAAUiuI,GAAYjuI,IAAUkuI,GAAoBuD,GAASn7L,KAAK60G,MAIhG70G,KAAK24L,kBAAkB9lG,GAAwBnpC,EACjD,EACA+xI,gCAAiC,SAAyC/xI,GACnE1pD,KAAK04L,qBAAqBhvI,IAA0B,IAAhBA,EAAMgyI,OAC7C17L,KAAK24L,kBAAkB1lG,GAA+BvpC,EAE1D,EACAiyI,sBAAuB,SAA+BjyI,GAC/C1pD,KAAK04L,qBAAqBhvI,IAC7B1pD,KAAK24L,kBAAkB7lG,GAA4BppC,EAEvD,EACAkyI,qBAAsB,SAA8BlyI,GAC7C1pD,KAAK04L,qBAAqBhvI,IAAWiuI,GAAYjuI,IACpD1pD,KAAK24L,kBAAkB5lG,GAA2BrpC,EAEtD,EAKA0/H,YAAa,WACX,IAAI5sK,EAAQxc,KAER+1K,EAAmB3rE,GAAgBpqG,MACnCmpC,EAAQ4sI,EAAiBwS,cACzB8E,EAAatX,EAAiBsX,WAC9BwO,EAAe9lB,EAAiB8lB,aAChC5N,EAAclY,EAAiBkY,YAC/BpC,EAAkB9V,EAAiB8V,gBACnCmH,EAAwBjd,EAAiBid,sBAEzClyL,EAAId,KAAK09I,eACTm8C,EAAqB75L,KAAKm6I,YAAYtnD,KAA2BmgG,EAEjE8G,EAAQ,GAERgC,EAAQzO,EAAaA,IAAe,KAExC,GAAIyO,EAEFhC,EAAMh4L,KAAKg6L,OACN,CAML,IAAI/5F,EAAQ,CAAC,EACTg6F,EAAkBlB,KACtBkB,EAAkB/7L,KAAKk6F,kBAAkB6hG,GAAmBA,EAAkB,KAC9E/7L,KAAK2oL,eAAermL,SAAQ,SAAU4tB,GACpC,IAAI3tB,EAAM2tB,EAAM3tB,IACZwuJ,EAAW8pC,GAAgBt4L,GAC3By5L,EAAoBnB,GAAgBt4L,EAAIwE,eAC5Cg7F,EAAMx/F,GAAOia,EAAM09E,kBAAkB62D,GAAYA,EAAWv0I,EAAM09E,kBAAkB8hG,GAEpFA,EAAoBD,CACtB,IAGA/7L,KAAK05L,yBAA2B33F,EAGhC+3F,EAAMh4L,KAAK+5L,EAAeA,IAAiB/6L,KAE3CqoC,EAAM7mC,SAAQ,SAAU48C,EAAM65I,GAE5Be,EAAMh4L,KAAK0a,EAAMm9K,eAAez6I,EAAM65I,GACxC,IAEAe,EAAMh4L,KAAKmsL,EAAcA,IAAgBntL,KAGzCg5L,EAAMh4L,KAAK+pL,EAAkBA,IAAoB/qL,IACnD,CAGA,IAAImsD,EAAW,CACbgvI,SAAUj8L,KAAKy7L,gCAKfS,YAAal8L,KAAK27L,sBAElBQ,SAAUn8L,KAAK47L,sBAIb/B,IACF5sI,EAASu4C,MAAQxlG,KAAKw7L,kBACtBvuI,EAASkpD,QAAUn2G,KAAKu7L,mBAI1B,IAAIrR,EAASppL,EAAEs2L,GAAQ,CACrB5tL,MAAOxJ,KAAKg7L,YAAc,KAC1BlyL,MAAOs6F,GAAW03F,GAAa96L,KAAKuwH,QAGpClgC,GAAIpjC,EACJ9rC,IAAK,SACJ24K,GAEH,OAAO5P,CACT,KC3OJ,SAAS/oL,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAUzM,IAAIiG,GAAQ46F,GAAsB,CAEvC8nF,YAAazoF,GAASlO,KACrBpI,IAMQ2vG,GAAsB72G,GAAO,CACtC3gF,KAAM6nF,GACNtjF,OAAQ,CAACsoG,GAAYsB,GAAgBtY,IACrCge,QAAS,WACP,IAAIj8F,EAAQxc,KAEZ,MAAO,CACL6qL,mBAAoB,WAClB,OAAOruK,CACT,EAEJ,EACA66F,OAAQ,CAENwwE,WAAY,CACVr7K,QAEA,WACE,OAAO,WACL,MAAO,CAAC,CACV,CACF,IAGJqnG,cAAc,EACd/qG,MAAOA,GACP6gG,SAAU,CACR0tF,QAAS,WACP,OAAOr3L,KAAK6nL,YACd,EAEAuD,QAAS,WACP,OAAO,CACT,EAEAC,OAAQ,WACN,OAAOrrL,KAAKq3L,QAAQv7C,IACtB,EAEAkrC,UAAW,WACT,OAAOhnL,KAAKq3L,QAAQrQ,SACtB,EAEAe,aAAc,WACZ,OAAO/nL,KAAKq3L,QAAQtP,YACtB,EAGAC,eAAgB,WACd,OAAO,CACT,EAIAsD,gBAAiB,WACf,OAAQtrL,KAAKgnL,WAAahnL,KAAKq3L,QAAQ5P,YACzC,EAEAE,aAAc,WACZ,OAAO3nL,KAAKq3L,QAAQ1P,YACtB,EACA0U,aAAc,WACZ,MAAO,CAACr8L,KAAKwrL,YAAc,SAASvqL,OAAOjB,KAAKwrL,aAAe,KACjE,EACA8Q,WAAY,WACV,OAAO95G,GAAcA,GAAc,CAAC,EAAGxiF,KAAKuxG,SAAU,CAAC,EAAG,CACxDjJ,KAAM,YAEV,GAEFnpG,OAAQ,SAAgB2B,GACtB,OAAOA,EAAE,QAAS,CAChB0I,MAAOxJ,KAAKq8L,aACZ/yL,MAAOtJ,KAAKs8L,WAEZjsG,GAAIrwF,KAAK6yG,aACR7yG,KAAKs6F,gBACV,IC9FSxxF,GAAQ,CACjByzL,UAAWx5F,GAASxO,IAAmB,GAGvCioG,eAAgBz5F,GAASlO,IAEzB22F,YAAazoF,GAASlO,IACtB4nG,WAAY15F,GAAS/N,IACrB0nG,aAAc35F,GAAS/N,KAId2nG,GAAap3G,GAAO,CAC7Bz8E,MAAOA,GACP4xF,QAAS,CACPkiG,kBAAmB,WACjB,IAAI97L,EAAId,KAAK09I,eAEb,OAAI19I,KAAKk6F,kBAAkBjE,IAClBn1F,EAAEs7L,GAAQ,CACf5yL,MAAOxJ,KAAKy8L,YAAc,KAC1B3zL,MAAO,CACL0iL,YAAaxrL,KAAKwrL,aAAexrL,KAAKurL,aAAe,MAEvDhpL,IAAK,mBACJvC,KAAKs6F,cAAcrE,GAAuB,CAC3C9sD,MAAOnpC,KAAKuoL,cAAc5jL,QAC1BmmE,OAAQ9qE,KAAK2oL,eAAehkL,QAC5BisH,QAAS5wH,KAAK2oL,eAAevmL,UAI1BtB,GACT,EACAuoL,YAAa,WAEX,OAAOrpL,KAAKu8L,UAAYv8L,KAAKmpL,aAAY,GAAQnpL,KAAK48L,mBACxD,KC3CJ,SAASz7L,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAUzM,IAAIiG,GAAQ46F,GAAsB,CAGvC6nF,YAAaxoF,GAASlO,KACrBlI,IAMQkwG,GAAsBt3G,GAAO,CACtC3gF,KAAM+nF,GACNxjF,OAAQ,CAACsoG,GAAYsB,GAAgBtY,IACrCge,QAAS,WACP,IAAIj8F,EAAQxc,KAEZ,MAAO,CACL6qL,mBAAoB,WAClB,OAAOruK,CACT,EAEJ,EACA66F,OAAQ,CAENwwE,WAAY,CACVr7K,QAEA,WACE,OAAO,WACL,MAAO,CAAC,CACV,CACF,IAGJqnG,cAAc,EACd/qG,MAAOA,GACP6gG,SAAU,CACR0tF,QAAS,WACP,OAAOr3L,KAAK6nL,YACd,EAEAqD,QAAS,WACP,OAAO,CACT,EAEAG,OAAQ,WACN,OAAOrrL,KAAKq3L,QAAQv7C,IACtB,EAEAkrC,UAAW,WACT,OAAOhnL,KAAKq3L,QAAQrQ,SACtB,EAEAe,aAAc,WACZ,OAAO/nL,KAAKq3L,QAAQtP,YACtB,EAKAC,eAAgB,WACd,OAAQhoL,KAAKgnL,WAAahnL,KAAKq3L,QAAQ5P,YACzC,EAIA6D,gBAAiB,WACf,OAAQtrL,KAAKgnL,WAAahnL,KAAKq3L,QAAQ5P,YACzC,EAEAE,aAAc,WACZ,OAAO3nL,KAAKq3L,QAAQ1P,YACtB,EACAmV,aAAc,WACZ,MAAO,CAAC98L,KAAKurL,YAAc,SAAStqL,OAAOjB,KAAKurL,aAAe,KACjE,EACAwR,WAAY,WACV,OAAOv6G,GAAc,CACnB8lB,KAAM,YACLtoG,KAAKuxG,QACV,GAEFpyG,OAAQ,SAAgB2B,GACtB,OAAOA,EAAE,QAAS,CAChB0I,MAAOxJ,KAAK88L,aACZxzL,MAAOtJ,KAAK+8L,WAEZ1sG,GAAIrwF,KAAK6yG,aACR7yG,KAAKs6F,gBACV,ICvGF,SAAS12F,GAAmBC,GAAO,OAAOC,GAAmBD,IAAQE,GAAiBF,IAAQG,GAA4BH,IAAQI,IAAsB,CAExJ,SAASA,KAAuB,MAAM,IAAIe,UAAU,uIAAyI,CAE7L,SAAShB,GAA4BO,EAAGC,GAAU,GAAKD,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOH,GAAkBG,EAAGC,GAAS,IAAIC,EAAIlD,OAAO0B,UAAUyB,SAASrE,KAAKkE,GAAGI,MAAM,GAAI,GAAiE,MAAnD,WAANF,GAAkBF,EAAEvB,cAAayB,EAAIF,EAAEvB,YAAY4B,MAAgB,QAANH,GAAqB,QAANA,EAAoBP,MAAMI,KAAKC,GAAc,cAANE,GAAqB,2CAA2CI,KAAKJ,GAAWL,GAAkBG,EAAGC,QAAzG,CAA7O,CAA+V,CAE/Z,SAAST,GAAiBM,GAAQ,GAAsB,qBAAXvB,QAAmD,MAAzBuB,EAAKvB,OAAOC,WAA2C,MAAtBsB,EAAK,cAAuB,OAAOH,MAAMI,KAAKD,EAAO,CAE7J,SAASP,GAAmBD,GAAO,GAAIK,MAAMC,QAAQN,GAAM,OAAOO,GAAkBP,EAAM,CAE1F,SAASO,GAAkBP,EAAKiB,IAAkB,MAAPA,GAAeA,EAAMjB,EAAIzB,UAAQ0C,EAAMjB,EAAIzB,QAAQ,IAAK,IAAIF,EAAI,EAAG6C,EAAO,IAAIb,MAAMY,GAAM5C,EAAI4C,EAAK5C,IAAO6C,EAAK7C,GAAK2B,EAAI3B,GAAM,OAAO6C,CAAM,CAEtL,SAAS5D,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAsBhN,IAAIm6L,GAAkB,SAAyB95L,GAC7C,MAAO,QAAQjC,OAAOiC,GAAS,GAAI,IACrC,EAEI+5L,GAAkB,SAAyB/5L,GAC7C,MAAO,QAAQjC,OAAOiC,GAAS,GAAI,IACrC,EAGW4F,GAAQ,CAEjBo0L,eAAgBn6F,GAASlO,IAEzB02F,YAAaxoF,GAASlO,IACtBsoG,WAAYp6F,GAAS/N,IACrBooG,aAAcr6F,GAAS/N,KAIdqoG,GAAa93G,GAAO,CAC7Bz8E,MAAOA,GACP4xF,QAAS,CACP4iG,aAAc,SAAsBptK,GAElC,MAAO,CAACA,EAAM1mB,MAAQ0mB,EAAM1mB,MAAQ,GAAI0mB,EAAMqtK,QAAUrtK,EAAMqtK,QAAU,GAC1E,EACAC,YAAa,SAAqB9zI,EAAOx5B,EAAOomK,GAC1Ct2L,KAAKotL,YAAcptL,KAAKotL,WAAW1jI,IAG5BiuI,GAAYjuI,IAGZkuI,GAAoB53L,KAAK60G,OAOpCxQ,GAAU36C,GACV1pD,KAAK8nG,MAAMlW,GAAyB1hE,EAAM3tB,IAAK2tB,EAAOw5B,EAAO4sI,GAC/D,EACAnN,YAAa,WACX,IAAI3sK,EAAQxc,KAERs2L,EAASn0L,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,IAAmBA,UAAU,GAExE4zK,EAAmB3rE,GAAgBpqG,MACnC8qE,EAASirG,EAAiB4S,eAC1BkN,EAAa9f,EAAiB8f,WAC9B9C,EAAehd,EAAiBgd,aAChCxH,EAAcxV,EAAiBwV,YAC/BC,EAAczV,EAAiByV,YAC/B0R,EAAiBnnB,EAAiBmnB,eAClCV,EAAiBzmB,EAAiBymB,eAElC17L,EAAId,KAAK09I,eAGb,GAAI19I,KAAKinL,iBAAqC,IAAlBn8G,EAAO1oE,OACjC,OAAOtB,IAGT,IAAI28L,EAAuB5H,GAAc71L,KAAKm6I,YAAYvoD,IAEtD8hG,EAAgBX,EAAe/yL,KAAK0zL,cAAgB1iE,GACpDohE,EAAgBW,EAAe/yL,KAAKoyL,cAAgBphE,GAEpD0sE,EAAW,SAAkBxtK,EAAO4oK,GACtC,IAAI5zE,EAAQh1F,EAAMg1F,MACdm+D,EAAYnzJ,EAAMmzJ,UAClB77E,EAAUt3E,EAAMs3E,QAChB6kF,EAAen8J,EAAMm8J,aACrB9pL,EAAM2tB,EAAM3tB,IACZ2iG,EAAY,KAEXh1E,EAAMg1F,MAAMj9G,QAAWioB,EAAMytK,cAKhCz4F,EAAYzJ,GAAUvrE,EAAM3tB,MAG9B,IAAI8tF,EAAK,CAAC,EAENotG,IACFptG,EAAGmV,MAAQ,SAAU97C,GACnBltC,EAAMghL,YAAY9zI,EAAOx5B,EAAOomK,EAClC,EAEAjmG,EAAG8lB,QAAU,SAAUzsD,GACrB,IAAI0sD,EAAU1sD,EAAM0sD,QAEhBA,IAAYzG,IAAcyG,IAAYlG,IACxC1zF,EAAMghL,YAAY9zI,EAAOx5B,EAAOomK,EAEpC,GAGF,IAAIsH,EAAY/H,EAAar5K,EAAMq6K,iBAAiBt0L,EAAK2tB,EAAOomK,GAAU,CAAC,EACvEuH,EAAYhI,EAAar5K,EAAMm6K,mBAAmBp0L,EAAK2tB,EAAOomK,GAAU,KACxEwH,EAAYjI,EAAar5K,EAAMw6K,iBAAiBz0L,EAAK2tB,EAAOomK,GAAU,KACtEttL,EAAO,CACTQ,MAAO,CAAC,CAGN,oBAAqBs0L,GACpBthL,EAAM8gL,aAAaptK,GAAQ2tK,GAC9B/0L,MAAO,CACL0+F,QAASA,EACT6kF,aAAcA,GAEhBvkL,MAAOooB,EAAM6tK,SAAW,CAAC,EACzBz0L,MAAOk5E,GAAcA,GAAc,CAGjC4xB,SAAUqpF,GAAwBvtK,EAAM4lK,SAAW,IAAM,KACzDkI,KAAM9tK,EAAM+tK,YAAc,KAC1BhxL,MAAOijB,EAAMytK,aAAe,KAC5B,gBAAiB7E,EAAW,EAC5B,aAAc5zF,GACb1oF,EAAM47K,YAAY,KAAM71L,EAAK2tB,EAAMkpK,OAAQ9C,EAAS,OAAS,OAAQ,CAAC,IAAKsH,GAC9EvtG,GAAIA,EACJ9tF,IAAKA,GAOH27L,EAAY,CAAClB,GAAgBz6L,GAAMy6L,GAAgBz6L,EAAIwE,eAAgBi2L,MAEvE1G,IACF4H,EAAY,CAACjB,GAAgB16L,GAAM06L,GAAgB16L,EAAIwE,eAAgBk2L,MAAmBh8L,OAAO2C,GAAmBs6L,KAGtH,IAAI1jG,EAAQ,CACV0qB,MAAOA,EACPi5E,OAAQ57L,EACR2tB,MAAOA,EACPomK,OAAQA,EAER5C,cAAeA,EACftB,cAAeA,GAEbloF,EAAW1tF,EAAM89E,cAAc4jG,EAAW1jG,IAAU15F,EAAE,MAAO,CAC/D2kG,SAAUwT,GAAWoqE,EAAWn+D,KAE9Bk5E,EAAWN,EAAYh9L,EAAE,OAAQ,CACnCykG,YAAa,WACZ,KAAKtkG,OAAO68L,EAAW,MAAQ,KAElC,OAAOh9L,EAAEi3L,GAAK/uL,EAAM,CAACkhG,EAAUk0F,GAAU18L,OAAOyhF,IAClD,EAGIwlC,EAAS79C,EAAO/iE,IAAI21L,GAAUh8L,OAAOyhF,IAErCk7G,EAAO,GAEX,GAAI/H,EACF+H,EAAKv8L,KAAKhB,EAAE6pL,GAAK,CACfnhL,MAAOxJ,KAAK08L,aACZ5zL,MAAO,CACL0+F,QAASvlB,GAAkBu6G,GAAkBU,EAE7CV,IAED7zE,QACE,CACL,IAAInuB,EAAQ,CACVo2B,QAAS9lD,EAAO1oE,OAChB0oE,OAAQA,EAER4oH,cAAeA,EACftB,cAAeA,GAEjBiM,EAAKv8L,KAAK9B,KAAKs6F,cAAchB,GAAqBkB,IAAU15F,KAC5Du9L,EAAKv8L,KAAKhB,EAAE6pL,GAAK,CACfnhL,MAAOxJ,KAAKo9L,aACZt0L,MAAO,CACL0+F,QAAS01F,IAEVv0E,GACL,CAEA,OAAO7nH,EAAEw1L,EAAS8F,GAASS,GAAQ,CACjCrzL,OAAQ8sL,EAASt2L,KAAKy8L,WAAaz8L,KAAKm9L,aAAe,KACvDr0L,MAAOwtL,EAAS,CACd9K,YAAaA,GAAeD,GAAe,MACzC,CACFA,YAAaA,GAAe,MAE9BhpL,IAAK+zL,EAAS,WAAa,YAC1B+H,EACL,KCtOOv1L,GAAQ,CAAC,EAGTw1L,GAAc/4G,GAAO,CAC9BmV,QAAS,CACPmhG,aAAc,WACZ,IAAI/wH,EAAS9qE,KAAK2oL,eACd97E,EAAU7sG,KAAK6sG,QACfi/E,EAAe9rL,KAAK8rL,aACpBC,EAAc/rL,KAAK+rL,YACnBjrL,EAAId,KAAK09I,eAGb,OAAK19I,KAAKk6F,kBAAkBT,MAAkC,IAAZoT,GAAgC,KAAZA,EAI/D/rG,EAAE6pL,GAAK,CACZplF,YAAa,kBACb/7F,MAAO,CAACmH,GAAWm7K,GAAgBA,EAAa,KAAM,WAAaA,GACnExiL,MAAOqH,GAAWo7K,GAAeA,EAAY,KAAM,WAAaA,EAChExpL,IAAK,aACJ,CAACvC,KAAKs6F,cAAcb,GAAmB,CACxCm3B,QAAS9lD,EAAO1oE,OAChB0oE,OAAQA,MAVDhqE,GAYX,KC/BJ,SAASK,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CA4BzM,IAAIiG,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAc,CAAC,EAAGi8B,IAAU8/E,IAAiBC,IAAYC,IAAeC,IAAgBC,IAAaC,IAAiBC,IAAapnB,IAAkBqnB,IAAgBC,IAAkBC,IAAezV,IAAeC,IAAqBgO,IAAayH,IAAaC,IAAaC,KAAehzG,IAGrjBizG,GAAsB75G,GAAO,CACtC3gF,KAAMunF,GAGNhjF,OAAQ,CACRsoG,GAAYm1E,GAAkBtoE,GAAS7jB,GACvC02F,GAAYvJ,GAAoBb,GAAcsW,GAAYV,GAAY1B,GACtElU,GAAcyI,GAAgBmG,GAAclhB,GAAiB6Y,GAAcG,GAAemF,GAAiB5E,GAAYsQ,GAAa1S,GAAgBsB,GAAW+E,IAC/JnpL,MAAOA,KC3CT,SAAS3H,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAmBzM,ICvBHk9B,GDuBOj3B,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAcA,GAAc,CAAC,EAAGi8B,IAAUggF,IAAeC,IAAgBG,IAAatV,IAAeC,IAAqBgO,IAAayH,IAAaC,KAAc7yG,IAG3SgzG,GAA0B95G,GAAO,CAC1C3gF,KAAMynF,GAGNljF,OAAQ,CACRsoG,GAAYm1E,GAAkBtoE,GAAS7jB,GACvC02F,GAAYvJ,GAAoBb,GAAcsW,GAAYV,GAAY1B,GAEtE3N,GAAcG,IACd3kL,MAAOA,KEzBLw2L,GAA+Bh6G,GAAc,CAC/CP,WAAY,CACVs6G,WAAYA,MAGZE,GAAiCj6G,GAAc,CACjDP,WAAY,CACV0kG,aAAcA,GACd2N,OAAQA,GACRyF,OAAQA,GACRT,OAAQA,GACRzR,IAAKA,GACL2B,IAAKA,GACLyL,IAAKA,MAGLyH,GAA2Bl6G,GAAc,CAC3CP,WAAY,CACVq6G,OAAQA,IAEVxlJ,QAAS,CACP0lJ,gBAAiBA,GACjBC,kBAAmBA,MD9BvB,SAASp+L,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CA4BhN,IElCIb,GAAgB+9B,GFkChB+mE,GAAkBjD,GAAe,QAAS,CAC5Cv3F,KAAMooF,KAEJqS,GAAaD,GAAgB5C,MAC7B8C,GAAaF,GAAgBh+F,MAC7Bm+F,GAAkBH,GAAgBz+F,KAClC6+F,GAAmBJ,GAAgBp9C,MAInC+1I,GAAc,SAAqBC,GACrC,OAAQA,EAAI7sK,QACd,EAII8sK,GAA2Bp6G,GAAO,CACpC3gF,KAAM2oF,GACN8pB,OAAQ,CACNuoF,UAAW,CACTpzL,QAEA,WACE,OAAO,WACL,MAAO,CAAC,CACV,CACF,IAGJ1D,MAAO,CACLwvE,SAAUyqB,GAASlO,IACnBj8D,GAAImqE,GAASlO,IACbsrB,SAAUpd,GAASxO,IAAmB,GACtCsrG,SAAU98F,GAASrO,IACnBorG,QAAS/8F,GAASrO,IAElBgrG,IAAK38F,KACLvB,SAAUuB,GAASrO,KAErBiV,SAAU,CACRo2F,OAAQ,WACN,OAAO//L,KAAK4/L,WACd,GAEFllG,QAAS,CACPgH,MAAO,WACLD,GAAazhG,KAAK6lH,MAAMhQ,KAC1B,EACA6oE,YAAa,SAAqBh1H,GAEhC,IAAI1pD,KAAK0/L,IAAI7sK,SAAb,CAIA,IAAIvmB,EAAOo9C,EAAMp9C,KACb8pG,EAAU1sD,EAAM0sD,QAChB+E,EAAWzxD,EAAMyxD,SAER,UAAT7uG,GAGgB,YAATA,GAAsB8pG,IAAYlG,IAF3C7L,GAAU36C,GACV1pD,KAAK8nG,MAAMlX,GAAkBlnC,IAOX,YAATp9C,GAAuBtM,KAAKmgH,YAEqB,IAAtD,CAAChQ,GAASL,GAAWD,IAAWrsG,QAAQ4yG,IAC1C/R,GAAU36C,GAENyxD,GAAY/E,IAAYvG,GAC1B7vG,KAAK8nG,MAAMtW,GAAkB9nC,GAE7B1pD,KAAK8nG,MAAMrV,GAAiB/oC,KAEmC,IAAxD,CAAC+lD,GAAWQ,GAAYP,IAAUlsG,QAAQ4yG,KACnD/R,GAAU36C,GAENyxD,GAAY/E,IAAY1G,GAC1B1vG,KAAK8nG,MAAM7V,GAAiBvoC,GAE5B1pD,KAAK8nG,MAAM1V,GAAiB1oC,IA/BlC,CAmCF,GAEFvqD,OAAQ,SAAgB2B,GACtB,IAAI83B,EAAK54B,KAAK44B,GACV4oE,EAAWxhG,KAAKwhG,SAChBs+F,EAAU9/L,KAAK8/L,QACfD,EAAW7/L,KAAK6/L,SAChBvnH,EAAWt4E,KAAKs4E,SAChBomG,EAAc1+K,KAAK0+K,YACnBshB,EAAYhgM,KAAK0/L,IACjBzyL,EAAQ+yL,EAAU/yL,MAClBgzL,EAAcD,EAAUC,YACxBptK,EAAWmtK,EAAUntK,SACrBqtK,EAAiBF,EAAUE,eAC3BC,EAAiBH,EAAUG,eAC3BC,EAAsBJ,EAAUI,oBAChCC,EAAQv/L,EAAE8yG,GAAO,CACnBrO,YAAa,WACb/7F,MAAO,CAAC,CACNmqG,OAAQssF,IAAgBptK,EACxBA,SAAUA,GACTstK,EACHF,EAAcjgM,KAAK+/L,OAAOO,mBAAqB,MAC/Cx3L,MAAO,CACL+pB,SAAUA,GAEZvpB,MAAOk5E,GAAcA,GAAc,CAAC,EAAG49G,GAAsB,CAAC,EAAG,CAC/DxnK,GAAIA,EACJ0vE,KAAM,MAEN8L,SAAU5S,EACV,gBAAiBy+F,IAAgBptK,EAAW,OAAS,QACrD,eAAgBitK,EAChB,gBAAiBD,EACjB,gBAAiBvnH,IAEnB+X,GAAI,CACFmV,MAAOk5E,EACPvoE,QAASuoE,GAEXv9J,IAAK,QACJ,CAACnhB,KAAK0/L,IAAIplG,cAAcf,KAAoBtsF,IAC/C,OAAOnM,EAAE,KAAM,CACbykG,YAAa,WACb/7F,MAAO,CAAC02L,GACR52L,MAAO,CACLg/F,KAAM,iBAEP,CAAC+3F,GACN,IAGE34E,GAAW5kC,GAAKouF,GAAW,CAAC,OAAQ,WAAY,eACzCpoK,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAcA,GAAcA,GAAc,CAAC,EAAGi8B,IAAUzX,IAAa0gB,IAAW,CAAC,EAAG,CAElJ44E,mBAAoBv9F,GAAS/N,IAG7BurG,eAAgBx9F,GAAS/N,IACzBwrG,KAAMz9F,GAASxO,IAAmB,GAClC6yE,aAAcrkE,GAAS/N,IAEvB75E,IAAK4nF,GAASxO,IAAmB,GAEjC07C,KAAMltC,GAASxO,IAAmB,GAClCksG,SAAU19F,GAAS/N,IACnB0rG,gBAAiB39F,GAAS/N,IAC1BsR,OAAQvD,GAASxO,IAAmB,GACpC4rB,SAAUpd,GAASxO,IAAmB,GACtCosG,WAAY59F,GAASxO,IAAmB,GACxCxqF,IAAKg5F,GAASlO,GAAkB,UAC7BtI,IAGMq0G,GAAqBr7G,GAAO,CACrC3gF,KAAM2nF,GACNpjF,OAAQ,CAACm1G,GAASvX,GAAYtM,IAC9Bge,QAAS,WACP,IAAIj8F,EAAQxc,KAEZ,MAAO,CACL4/L,UAAW,WACT,OAAOpjL,CACT,EAEJ,EACA1T,MAAOA,GACPE,KAAM,WACJ,MAAO,CAEL63L,WAAY/lG,GAAU96F,KAAKinG,KAAmB,GAE9CyoE,KAAM,GAENoxB,eAAgB,GAEpB,EACAn3F,SAAU,CACR5+F,KAAM,WAEJ,OAAQ/K,KAAKsmG,MACf,EACAy6F,cAAe,WACb,IAAIt2L,EAAU,GAMd,OAJIzK,KAAKwgM,MAAQxgM,KAAKm6G,UACpB1vG,EAAQ3I,KAAK,cAAe,QAAS,kBAAmB,aAGnD,GAAGb,OAAOwJ,EAAS,CAACzK,KAAKygM,UAClC,GAEF74F,OAAQ7nE,GAAS,CAAC,EAAGv9B,GAAgBu9B,GAAQknE,IAAiB,SAAU90F,EAAU4+F,GAChF,GAAI5+F,IAAa4+F,EAAU,CACzB5+F,EAAW2oF,GAAU3oF,GAAW,GAChC4+F,EAAWjW,GAAUiW,EAAU,GAC/B,IAAIiwF,EAAOhhM,KAAK0vK,KAAKv9J,GAEjB6uL,IAASA,EAAKnuK,SAChB7yB,KAAKihM,YAAYD,GAGb7uL,EAAW4+F,EACb/wG,KAAKkhM,cAELlhM,KAAKmhM,SAGX,CACF,IAAI3+L,GAAgBu9B,GAAQ,cAAc,SAAoB5tB,GAC5D,IAAI8hC,GAAS,EAEbj0C,KAAK0vK,KAAKptK,SAAQ,SAAU0+L,EAAM9+L,GAC5BA,IAAMiQ,GAAa6uL,EAAKnuK,SAI1BmuK,EAAKf,aAAc,GAHnBe,EAAKf,aAAc,EACnBhsJ,EAAQ/xC,EAIZ,IAEAlC,KAAK8nG,MAAMZ,GAAkBjzD,EAC/B,IAAIzxC,GAAgBu9B,GAAQ,QAAQ,SAAc5tB,EAAU4+F,GAC1D,IAAIsB,EAASryG,KAIRswG,GAAWn+F,EAASpK,KAAI,SAAUi5L,GACrC,OAAOA,EAAK5yG,GACd,IAAI2iB,EAAShpG,KAAI,SAAUi5L,GACzB,OAAOA,EAAK5yG,GACd,MAEEpuF,KAAKgoG,WAAU,WAGbqK,EAAOvK,MAAMnX,GAAoBx+E,EAASxN,QAASosG,EAASpsG,QAC9D,GAEJ,IAAInC,GAAgBu9B,GAAQ,kBAAkB,WAC5C//B,KAAKohM,YACP,IAAIrhK,IACJ8uD,QAAS,WAEP7uF,KAAKq0H,WAAa,IACpB,EACA1Z,QAAS,WACP36G,KAAKu0H,aAAY,EACnB,EACArsB,cAAe,WACbloG,KAAKu0H,aAAY,GAEjBv0H,KAAK0vK,KAAO,EACd,EACAh1E,QAAS,CACP2mG,YAAa,SAAqBL,GAC3BrnG,GAAc35F,KAAK8gM,eAAgBE,IACtChhM,KAAK8gM,eAAeh/L,KAAKk/L,EAE7B,EACAM,cAAe,SAAuBN,GACpChhM,KAAK8gM,eAAiB9gM,KAAK8gM,eAAen8L,QAAQjD,QAAO,SAAU6/L,GACjE,OAAOA,IAAOP,CAChB,GACF,EAEAzsE,YAAa,WACX,IAAI7O,EAAS1lH,KAETqwF,IAAKluF,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,KAAmBA,UAAU,GAIxE,GAHAnC,KAAKq0H,YAAcr0H,KAAKq0H,WAAWvF,aACnC9uH,KAAKq0H,WAAa,KAEdhkC,EAAI,CAEN,IAAI5xE,EAAU,WACZinG,EAAO1d,WAAU,WACfjL,IAAU,WACR2oB,EAAO07E,YACT,GACF,GACF,EAGAphM,KAAKq0H,WAAapD,GAAWjxH,KAAK6lH,MAAM1gB,QAAS1mF,EAAS,CACxDgzG,WAAW,EACXC,SAAS,EACTtoH,YAAY,EACZyrH,gBAAiB,CAAC,OAEtB,CACF,EACA2sE,QAAS,WACP,IAAIC,EAAQzhM,KAAK8gM,eAMb9iE,EAAQ,GAGZ,GAAIliD,GAAc2lH,EAAMr/L,OAAS,EAAG,CAIlC,IAAIs8F,EAAW+iG,EAAM15L,KAAI,SAAUi5L,GACjC,MAAO,IAAI//L,OAAO+/L,EAAKxiF,SACzB,IAAGj4G,KAAK,MACRy3H,EAAQv/B,GAAUC,EAAU1+F,KAAK60G,KAAK9sG,KAAI,SAAU8sG,GAClD,OAAOA,EAAIj8E,EACb,IAAGl3B,OAAOyhF,GACZ,CAIA,OAAO2wG,GAAW2N,GAAO,SAAU5gH,EAAG/oE,GACpC,OAAOkmH,EAAMx6H,QAAQq9E,EAAE29B,UAAYwf,EAAMx6H,QAAQsU,EAAE0mG,SACrD,GACF,EACA4iF,WAAY,WACV,IAAIK,EAAQzhM,KAAKwhM,UAGbhgG,EAAWigG,EAAMj+L,QAAQi+L,EAAM98L,QAAQm/D,UAAUi/D,MAAK,SAAUi+D,GAClE,OAAOA,EAAKf,cAAgBe,EAAKnuK,QACnC,KAEA,GAAI2uE,EAAW,EAAG,CAChB,IAAIq/F,EAAa7gM,KAAK6gM,WAElBA,GAAcY,EAAMr/L,OAEtBo/F,EAAWigG,EAAMj+L,QAAQi+L,EAAM98L,QAAQm/D,UAAUi/D,KAAK08D,KAC7CgC,EAAMZ,KAAgBY,EAAMZ,GAAYhuK,WAEjD2uE,EAAWq/F,EAEf,CAGIr/F,EAAW,IACbA,EAAWigG,EAAMj+L,QAAQi+L,EAAM1+D,KAAK08D,MAItCgC,EAAMn/L,SAAQ,SAAU0+L,EAAM/sJ,GAC5B+sJ,EAAKf,YAAchsJ,IAAUutD,CAC/B,IACAxhG,KAAK0vK,KAAO+xB,EACZzhM,KAAK6gM,WAAar/F,CACpB,EAGAkgG,gBAAiB,SAAyBV,GACxC,OAAQhhM,KAAK6lH,MAAMuxB,SAAW,IAAIrU,MAAK,SAAU9Z,GAC/C,OAAOA,EAAKy2E,MAAQsB,CACtB,GACF,EAGAW,aAAc,SAAsBX,GAClC,IAAI5oD,EAAUp4I,KAAK0hM,gBAAgBV,GAE/B5oD,GAAWA,EAAQwpD,cACrBxpD,EAAQwpD,cAEZ,EAGAX,YAAa,SAAqBD,GAChC,IAAIH,EAAa7gM,KAAK6gM,WAClBY,EAAQzhM,KAAK0vK,KACb7/J,GAAS,EAEb,GAAImxL,EAAM,CACR,IAAI/sJ,EAAQwtJ,EAAMj+L,QAAQw9L,GAE1B,GAAI/sJ,IAAU4sJ,GAAc5sJ,GAAS,IAAM+sJ,EAAKnuK,SAAU,CACxD,IAAIgvK,EAAW,IAAIr2D,GAAQj7C,GAAyB,CAClDm7C,YAAY,EACZE,UAAW5rI,KACX6rI,YAAa7rI,KAAKw+G,WAEpBx+G,KAAK8nG,MAAM+5F,EAASv1L,KAAM2nC,EAAO4sJ,EAAYgB,GAExCA,EAAS/1D,mBACZ9rI,KAAK6gM,WAAa5sJ,EAClBpkC,GAAS,EAEb,CACF,CASA,OAJKA,GAAU7P,KAAKinG,MAAqB45F,GACvC7gM,KAAK8nG,MAAMZ,GAAkB25F,GAGxBhxL,CACT,EAGAiyL,cAAe,SAAuBd,GACpC,QAAIA,GAGKhhM,KAAKihM,YAAYjhM,KAAK0vK,KAAKhuK,QAAO,SAAU6/L,GACjD,OAAOA,IAAOP,CAChB,IAAGj+D,KAAK08D,IAMZ,EAEAsC,YAAa,SAAqBf,GAChC,IAAIj7E,EAAS/lH,KAGbA,KAAKgoG,WAAU,WACbvG,GAAaskB,EAAO27E,gBAAgBV,GACtC,GACF,EAEAgB,aAAc,SAAsBtC,EAAKh2I,GACnCy4B,GAAQz4B,IAAUg2I,GAAOA,EAAI53F,QAAU43F,EAAI7sK,UAC7C6sK,EAAI53F,MAAMlX,GAAkBlnC,EAEhC,EAEAu4I,SAAU,SAAkBjB,EAAMt3I,GAChC1pD,KAAKihM,YAAYD,GACjBhhM,KAAKgiM,aAAahB,EAAMt3I,EAC1B,EAEAw4I,SAAU,SAAkBxgG,GAC1B,IAAIs/F,EAAOhhM,KAAK0vK,KAAK3sC,KAAK08D,IAEtBz/L,KAAKihM,YAAYD,IAASt/F,IAC5B1hG,KAAK+hM,YAAYf,GACjBhhM,KAAKgiM,aAAahB,EAAMt/F,GAE5B,EAEAw/F,YAAa,SAAqBx/F,GAChC,IAAIygG,EAAejsL,GAAQlW,KAAK6gM,WAAY,GACxCG,EAAOhhM,KAAK0vK,KAAK/qK,MAAM,EAAGw9L,GAAcr+H,UAAUi/D,KAAK08D,IAEvDz/L,KAAKihM,YAAYD,IAASt/F,IAC5B1hG,KAAK+hM,YAAYf,GACjBhhM,KAAKgiM,aAAahB,EAAMt/F,GAE5B,EAEAy/F,QAAS,SAAiBz/F,GACxB,IAAIygG,EAAejsL,GAAQlW,KAAK6gM,YAAa,GACzCG,EAAOhhM,KAAK0vK,KAAK/qK,MAAMw9L,EAAe,GAAGp/D,KAAK08D,IAE9Cz/L,KAAKihM,YAAYD,IAASt/F,IAC5B1hG,KAAK+hM,YAAYf,GACjBhhM,KAAKgiM,aAAahB,EAAMt/F,GAE5B,EAEA0gG,QAAS,SAAiB1gG,GACxB,IAAIs/F,EAAOhhM,KAAK0vK,KAAK/qK,QAAQm/D,UAAUi/D,KAAK08D,IAExCz/L,KAAKihM,YAAYD,IAASt/F,IAC5B1hG,KAAK+hM,YAAYf,GACjBhhM,KAAKgiM,aAAahB,EAAMt/F,GAE5B,GAEFviG,OAAQ,SAAgB2B,GACtB,IAAImlH,EAASjmH,KAETusH,EAAQvsH,KAAKusH,MACbi0E,EAAOxgM,KAAKwgM,KACZrlL,EAAMnb,KAAKmb,IACXsyF,EAAOztG,KAAKytG,KACZy0F,EAAWliM,KAAKkiM,SAChB3yB,EAAYvvK,KAAKuvK,UACjB6yB,EAAUpiM,KAAKoiM,QACfjB,EAAUnhM,KAAKmhM,QACfhhF,EAAWngH,KAAKmgH,SAChBwgF,EAAa3gM,KAAK2gM,WAClBnxB,EAAQxvK,KAAKwvK,MACb0xB,EAAclhM,KAAKkhM,YACnBzxB,EAAQzvK,KAAKyvK,MACbgyB,EAAQzhM,KAAK0vK,KACbv1D,EAAWn6G,KAAKm6G,SAEhBkoF,EAAaZ,EAAM1+D,MAAK,SAAUi+D,GACpC,OAAOA,EAAKf,cAAgBe,EAAKnuK,QACnC,IAEIyvK,EAAeb,EAAM1+D,MAAK,SAAUi+D,GACtC,OAAQA,EAAKnuK,QACf,IAEIqjJ,EAAWurB,EAAM15L,KAAI,SAAUi5L,EAAM/sJ,GACvC,IAAIsuJ,EAEA/jF,EAASwiF,EAAKxiF,OAEdhd,EAAW,KAYf,OAVK2e,IAEH3e,GAAY,GAERw/F,IAASqB,IAAeA,GAAcrB,IAASsB,KAEjD9gG,EAAW,OAIR1gG,EAAE6+L,GAAan9L,GAAgB,CACpCsG,MAAO,CACLwvE,SAAUkmC,EAASA,IAAW,KAC9B5lF,GAAIooK,EAAKwB,eAAiBhkF,EAASA,EAAO,mBAAqB,MAC/D2B,SAAUA,EACV0/E,SAAU5rJ,EAAQ,EAClB6rJ,QAAS2B,EAAMr/L,OACfs9L,IAAKsB,EACLx/F,SAAUA,GAEZnR,IAAKkyG,EAAM,CAAC,EAAG//L,GAAgB+/L,EAAK3xG,IAAkB,SAAUlnC,GAC9Du8D,EAAOg8E,SAASjB,EAAMt3I,EACxB,IAAIlnD,GAAgB+/L,EAAK/wG,GAAkB0wG,GAAW1/L,GAAgB+/L,EAAK9vG,GAAiByuG,GAAc1+L,GAAgB+/L,EAAKnwG,GAAiB+uG,GAAU3+L,GAAgB+/L,EAAKtwG,GAAiBmwG,GAAUG,GAC1MhgM,IAAKy+L,EAAK5yG,KAAsBn6C,EAChC9yB,IAAK,WACJotE,IAAa,GAClB,IACIg6B,EAAOznH,EAAE6uK,GAAM,CACjBnmK,MAAOxJ,KAAK+gM,cACZz3L,MAAO,CACLg/F,KAAM,UACN1vE,GAAI54B,KAAKw+G,OAAO,sBAElB11G,MAAO,CACL2kG,KAAMA,EACN8hE,UAAWA,EACXhjD,MAAOA,EACPmjD,MAAOixB,IAAenxB,EACtBA,OAAQmxB,GAAcnxB,EACtBr1D,SAAUA,EACVs1D,MAAOA,EACPH,WAAYkxB,IAASrmF,GAEvBh5F,IAAK,OACJ,CAACnhB,KAAKs6F,cAAclB,KAAyBt4F,IAAKo1K,EAAUl2K,KAAKs6F,cAAcnB,KAAuBr4F,MACzGynH,EAAOznH,EAAE,MAAO,CACd0I,MAAO,CAAC,CACN,cAAeg3L,IAASrmF,IAAah/F,EACrC,cAAeqlL,IAASrmF,GAAYh/F,EACpC,WAAYg/F,GACXn6G,KAAK0gM,iBACRn+L,IAAK,eACJ,CAACgmH,IACJ,IAAI82C,EAAYr/J,KAAKs6F,iBAAmB,GACpC4zF,EAASptL,IAEY,IAArBu+J,EAAUj9J,SACZ8rL,EAASptL,EAAE,MAAO,CAChB0I,MAAO,CAAC,WAAY,SAAU,CAC5B,YAAag3L,IAEfj+L,IAAK,gBACJvC,KAAKs6F,cAAc9D,MAGxB,IAAI0T,EAAWppG,EAAE,MAAO,CACtBykG,YAAa,cACb/7F,MAAO,CAAC,CACNm6I,IAAKxpC,GACJn6G,KAAKonK,cACR99J,MAAO,CACLsvB,GAAI54B,KAAKw+G,OAAO,uBAElBj8G,IAAK,aACL4e,IAAK,WACJ,CAACk+I,EAAW6uB,IAEf,OAAOptL,EAAEd,KAAK+J,IAAK,CACjBw7F,YAAa,OACb/7F,MAAO,CACLmlL,IAAKx0E,EACL,aAAcA,GAAYqmF,GAE5Bl3L,MAAO,CACLsvB,GAAI54B,KAAKw+G,WAEV,CAACrjG,EAAM+uF,EAAWppG,IAAKynH,EAAMptG,EAAMra,IAAMopG,GAC9C,IE5nBF,SAAS/oG,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAahN,ICnBIk9B,GDmBA0iK,GAAyB,SACzBC,GAA0B1uG,GAA0ByuG,GAE7C35L,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAc,CAAC,EAAGi8B,IAAU,CAAC,GAAIz8G,GAAiB,CAAC,EAAGQ,GAAgBR,GAAgBygM,GAAwB1/F,GAASxO,IAAmB,IAAS/xF,GAAgBR,GAAgB,WAAY+gG,GAASlO,KAAoBryF,GAAgBR,GAAgB,WAAY+gG,GAASxO,IAAmB,IAAS/xF,GAAgBR,GAAgB,OAAQ+gG,GAASxO,IAAmB,IAAS/xF,GAAgBR,GAAgB,SAAU+gG,GAASxO,IAAmB,IAAS/xF,GAAgBR,GAAgB,MAAO+gG,GAASlO,GAAkB,QAASryF,GAAgBR,GAAgB,QAAS+gG,GAASlO,KAAoBryF,GAAgBR,GAAgB,iBAAkB+gG,GAAS/N,KAAiCxyF,GAAgBR,GAAgB,sBAAuB+gG,GAASpO,KAAoBnyF,GAAgBR,GAAgB,iBAAkB+gG,GAAS/N,KAAiChzF,MAAmBkqF,IAG96By2G,GAAoBp9G,GAAO,CACpC3gF,KAAMsnF,GACN/iF,OAAQ,CAACm1G,GAAS7jB,IAClB4c,OAAQ,CACNuoF,UAAW,CACTpzL,QAAS,WACP,OAAO,WACL,MAAO,CAAC,CACV,CACF,IAGJ1D,MAAOA,GACPE,KAAM,WACJ,MAAO,CACLi3L,YAAajgM,KAAKyiM,MAA4BziM,KAAK6yB,SAEvD,EACA82E,SAAU,CACRo2F,OAAQ,WACN,OAAO//L,KAAK4/L,WACd,EAEAgD,OAAQ,WACN,OAAO,CACT,EACAC,WAAY,WACV,IAAIlvF,EAAS3zG,KAAKigM,YACdptK,EAAW7yB,KAAK6yB,SACpB,MAAO,CAAC,CACN8gF,OAAQA,EACR9gF,SAAUA,EACV,YAAa7yB,KAAK+/L,OAAOS,OAASxgM,KAAKgtH,QAEzCrZ,EAAS3zG,KAAK+/L,OAAOQ,eAAiB,KACxC,EACAiC,aAAc,WACZ,OAAOxiM,KAAK8iM,UAAY9iM,KAAKw+G,OAAO,oBACtC,EACAukF,eAAgB,WACd,OAAS/iM,KAAK+/L,OAAOh1L,IACvB,EACAi4L,aAAc,WACZ,OAAOhjM,KAAK+/L,OAAO9vD,MAAQjwI,KAAKiwI,IAClC,GAEFroC,OAAQ7nE,GAAS,CAAC,EAAGv9B,GAAgBu9B,GAAQ0iK,IAAwB,SAAUtwL,EAAU4+F,GACnF5+F,IAAa4+F,IACX5+F,EAEFnS,KAAKijM,WAGAjjM,KAAKkjM,cAGRljM,KAAK8nG,MAAM46F,GAAyB1iM,KAAKigM,aAIjD,IAAIz9L,GAAgBu9B,GAAQ,YAAY,SAAkB5tB,EAAU4+F,GAClE,GAAI5+F,IAAa4+F,EAAU,CACzB,IAAImxF,EAAWliM,KAAK+/L,OAAOmC,SAEvB/vL,GAAYnS,KAAKigM,aAAeiC,IAClCliM,KAAKigM,aAAc,EACnBiC,IAEJ,CACF,IAAI1/L,GAAgBu9B,GAAQ,eAAe,SAAqB5tB,GAE9DnS,KAAK8nG,MAAM46F,GAAyBvwL,EACtC,IAAI4tB,IACJ46E,QAAS,WAEP36G,KAAKqhM,aACP,EACA3nE,QAAS,WAGP,IAAIioE,EAAe3hM,KAAK+/L,OAAO4B,aAE3BA,GAAgB3hM,KAAKk6F,kBAAkBX,KACzCooG,EAAa3hM,KAEjB,EACAkoG,cAAe,WAEbloG,KAAKshM,eACP,EACA5mG,QAAS,CAEP2mG,YAAa,WAEX,IAAIA,EAAcrhM,KAAK+/L,OAAOsB,YAE1BA,GACFA,EAAYrhM,KAEhB,EACAshM,cAAe,WAEb,IAAIA,EAAgBthM,KAAK+/L,OAAOuB,cAE5BA,GACFA,EAActhM,KAElB,EAEAijM,SAAU,WAER,IAAIhC,EAAcjhM,KAAK+/L,OAAOkB,YAC9B,SAAOA,GAAgBjhM,KAAK6yB,WAAWouK,EAAYjhM,KACrD,EACAkjM,WAAY,WAEV,IAAIpB,EAAgB9hM,KAAK+/L,OAAO+B,cAChC,SAAOA,IAAiB9hM,KAAKigM,cAAc6B,EAAc9hM,KAC3D,GAEFb,OAAQ,SAAgB2B,GACtB,IAAIm/L,EAAcjgM,KAAKigM,YACnB/1F,EAAWppG,EAAEd,KAAK+J,IAAK,CACzBw7F,YAAa,WACb/7F,MAAOxJ,KAAK6iM,WACZ79G,WAAY,CAAC,CACXpgF,KAAM,OACN1B,MAAO+8L,IAET32L,MAAO,CACLg/F,KAAM,WACN1vE,GAAI54B,KAAKw+G,SACT,cAAeyhF,EAAc,QAAU,OACvC,kBAAmBjgM,KAAKwiM,cAAgB,MAE1CrhL,IAAK,SAEP,CAAC8+K,IAAgBjgM,KAAKgjM,aAAehjM,KAAKs6F,gBAAkBx5F,MAC5D,OAAOA,EAAE0lG,GAAc,CACrB19F,MAAO,CACLu9F,KAAM,SACNC,OAAQtmG,KAAK+iM,iBAEd,CAAC74F,GACN,IEtKEi5F,GAA0B79G,GAAc,CAC1CP,WAAY,CACV67G,MAAOA,GACP+B,KAAMA,MCJNS,GAA0B99G,GAAc,CAC1CP,WAAY,CACVs1E,MAAOA,M,WCSAgpC,GAAiC99G,GAAO,CACjDp8E,OAAQ,CAACsxF,IACTzxF,KAAM,WACJ,MAAO,CAELpE,KAAM,YAEV,EACA81F,QAAS,CACPo9B,aAAc,SAAsB9oC,GAClC,IAAIxyE,EAAQxc,KAOZ+8F,IAAU,WACRsC,GAAYrQ,EAAI,GAAG/tF,OAAOub,EAAM5X,KAAM,aACxC,GACF,GAEFzF,OAAQ,SAAgB2B,GACtB,OAAOA,EAAE,mBAAoB,CAC3BgI,MAAO,CACLiB,IAAK,MACLnF,KAAM5E,KAAK4E,MAEbyrF,GAAI,CACF+nC,WAAYp4H,KAAK83H,eAElB93H,KAAKs6F,gBACV,IAGSxxF,GAAQ46F,GAAsB,CAEvC4/F,WAAYvgG,GAASlO,IACrBggD,SAAU9xC,GAASlO,IACnBjwF,KAAMm+F,GAASlO,QAAkB9rF,GAAW,GAG5Cu/F,KAAMvF,GAASlO,KACd/H,IAGQy2G,GAAwBh+G,GAAO,CACxC3gF,KAAMkoF,GACN3jF,OAAQ,CAAC2oG,IACThpG,MAAOA,GACPE,KAAM,WACJ,MAAO,CAELw6L,UAAU,EACVC,MAAM,EAENC,WAAY1jM,KAAK4E,KAErB,EACAm+J,YAAa,WACX,IAAIn+J,EAAO5E,KAAK4E,KAChB5E,KAAK0jM,WAAa9+L,EAGd++L,GAAAA,GAASC,UAAUh/L,IACrB++E,GAAK,kCAAqC1iF,OAAO2D,EAAM,qCAAuCkoF,IAC9F9sF,KAAKyjM,MAAO,GAEZzjM,KAAKwjM,UAAW,CAEpB,EACAt7F,cAAe,WAGTloG,KAAKwjM,UACPxjM,KAAKyyG,WAAW1N,GAAiBjY,GAAckE,IAAuBhxF,KAAK4E,KAE/E,EACA29J,UAAW,WAET,IAAI1tD,EAAM70G,KAAK60G,IAGXA,GAAOA,EAAIlY,YACbkY,EAAIlY,WAAWY,YAAYsX,EAE/B,EACA11G,OAAQ,SAAgB2B,GACtB,IAAI+iM,EAAW/iM,EAAE,MAAO,CACtB0I,MAAO,CAAC,SAAU,CAChB,iBAAkBxJ,KAAKyjM,SAI3B,GAAIzjM,KAAKwjM,SAAU,CACjB,IAAIM,EAAUhjM,EAAEijM,GAAAA,GAAc,CAC5Bx+F,YAAa,iBACbz8F,MAAO,CACLlE,KAAM5E,KAAK0jM,WACXnkD,UAAU,EACVx1I,IAAK,MACLi6L,MAAM,EAENvxE,WAAY4wE,MAGhBQ,EAAW/iM,EAAE,MAAO,CAClBykG,YAAa,YACb/7F,MAAO,CAACxJ,KAAK0jM,YACbp6L,MAAO,CACLsvB,GAAI54B,KAAK0jM,WAETp7F,KAAMtoG,KAAKsoG,MAAQ,KACnB,YAAatoG,KAAK60I,SAClB,cAAe70I,KAAKsjM,aAErB,CAACQ,GACN,CAEA,OAAOD,CACT,IHnIF,SAAS1iM,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CA4BhN,IAAIikG,GAAkBjD,GAAe,UAAW,CAC9Cv3F,KAAMioF,GACNp6D,cAAc,EACduvB,MAAOgnC,KAELqW,GAAaD,GAAgB5C,MAC7B8C,GAAaF,GAAgBh+F,MAC7Bm+F,GAAkBH,GAAgBz+F,KAClC6+F,GAAmBJ,GAAgBp9C,MAEnCu6I,GAAe,IAEfnvF,GAAYjyB,GAAKkyB,GAAY,CAAC,OAAQ,OAC/BjsG,GAAQ46F,GAAsB1gB,GAASR,GAAcA,GAAcA,GAAcA,GAAc,CAAC,EAAGi8B,IAAUzX,IAAa8N,IAAY,CAAC,EAAG,CACnJovF,YAAanhG,GAASxO,IAAmB,GACzC4vG,cAAephG,GAASxN,GAAyB,KACjD60B,UAAWrnB,GAAS/N,IACpB61B,YAAa9nB,GAAS/N,IACtBgqB,UAAWjc,GAASlO,GAAkB,UAEtCuvG,SAAUrhG,GAASxO,IAAmB,GACtC8vG,WAAYthG,GAASxO,IAAmB,GACxCwoE,cAAeh6D,GAASxO,IAAmB,GAC3C+R,OAAQvD,GAASxO,IAAmB,GACpC6+B,aAAcrwB,GAASxO,IAAmB,GAC1C+vG,MAAOvhG,GAASxO,IAAmB,GAEnCk0E,OAAQ1lE,GAASxO,IAAmB,GACpCtnF,MAAO81F,GAASlO,IAChB0vG,WAAYxhG,GAAS/N,IACrBwvG,QAASzhG,GAASlO,GAAkB,uBACpC2S,QAASzE,GAASlO,OACfhI,IAGM43G,GAAsBl/G,GAAO,CACtC3gF,KAAMioF,GACN1jF,OAAQ,CAACsoG,GAAY6M,GAASvX,GAAY+K,GAAmBrX,GAAoBunE,IACjFnuD,cAAc,EACd/qG,MAAOA,GACPE,KAAM,WACJ,MAAO,CACL07L,WAAW,EACXlB,UAAU,EACV77F,WAAW,EACXmhE,iBAAiB,EACjB67B,UAAU,EACV3mE,MAAO,EACP4mE,eAAgB,EAChBC,cAAe,EAEnB,EACAl7F,SAAU,CACRm7F,aAAc,WACZ,IAAIZ,EAAclkM,KAAKkkM,YACnB18F,EAAUxnG,KAAKwnG,QACnB,OAAOhlG,GAAgB,CACrB,gBAAiBxC,KAAKskM,MACtB,iBAAkBJ,EAClB,mBAAoBA,GACnB,WAAWjjM,OAAOumG,GAAUA,EACjC,EACA+lB,UAAW,WACT,IAAIkd,EAAOzqI,KAAKyqI,KAChB,MAAO,CACLA,KAAMA,EAEV,EACAs6D,iBAAkB,WAEhB,OAAO7uL,GAAQ4kF,GAAU96F,KAAKmkM,cAAe,GAAIF,GACnD,EACAe,gBAAiB,WACf,OAAOv4L,OAAOzM,KAAKwkM,QACrB,EACAS,mBAAoB,WAClB,MAAO,CACLn4B,YAAa9sK,KAAKqrK,cAClBjzC,WAAYp4H,KAAK83H,aACjBi1C,YAAa/sK,KAAKwrK,cAClBlzC,WAAYt4H,KAAKg4H,aAErB,EACA7jB,cAAe,WACb,OAAO3xB,GAAcA,GAAc,CAAC,EAAGxiF,KAAKuxG,SAAU,CAAC,EAAG,CACxD34E,GAAI54B,KAAKw+G,SACTpK,SAAU,KAEd,GAEFxM,OAAQ7nE,GAAS,CAAC,EAAGv9B,GAAgBu9B,GAAQknE,IAAiB,SAAU90F,GACtEnS,KAAKmS,EAAW,OAAS,SAC3B,IAAI3P,GAAgBu9B,GAAQ,aAAa,SAAmB5tB,GACtDA,IAAanS,KAAKinG,KACpBjnG,KAAK8nG,MAAMZ,GAAkB/0F,EAEjC,IAAI3P,GAAgBu9B,GAAQ,WAAW,WAErC//B,KAAKgoG,UAAUhoG,KAAKklM,cACtB,IAAI1iM,GAAgBu9B,GAAQ,UAAU,SAAiB5tB,GAGjDA,GAAYnS,KAAK2nG,WACnB3nG,KAAKklM,eAET,IAAInlK,IACJ8uD,QAAS,WAEP7uF,KAAKmlM,eAAiB,IACxB,EACAxqF,QAAS,WACP,IAAIn+F,EAAQxc,KAEZA,KAAK0kM,WAAY,EACjB1kM,KAAKgoG,WAAU,WACTxrF,EAAMyqF,KACRlK,IAAU,WACRvgF,EAAM4qF,MACR,GAEJ,IAEApnG,KAAKkyG,aAAalN,GAAuBnY,GAAYwG,KAAkB,SAAUz6D,GAC3EA,IAAOpc,EAAMgiG,UACfhiG,EAAM4qF,MAEV,IAEApnG,KAAKkyG,aAAalN,GAAuBnY,GAAYiF,KAAkB,SAAUl5D,GAC1EA,GAAMA,IAAOpc,EAAMgiG,UACtBhiG,EAAMiuH,MAEV,IAIAzqI,KAAKkyG,aAAanN,GAAiBjY,GAAckE,KAAuB,SAAUwzG,GAE5EA,IAAYhoL,EAAMwoL,iBACpBxoL,EAAMiuH,MAEV,GACF,EACAviC,cAAe,WACbloG,KAAKolM,mBACP,EACA1qG,QAAS,CACP0M,KAAM,WACJ,IAAIiL,EAASryG,KAEb,IAAKA,KAAK2nG,UAAW,CACnB3nG,KAAKklM,gBACL,IAAIj6B,EAAYjrK,KAAKgrK,WAAW33E,IAChCrzF,KAAK0hD,UAAUupH,GACfjrK,KAAK4kM,eAAiB5kM,KAAK6kM,cAAgB,EAC3C7kM,KAAKg+H,MAAQphH,KAAKC,OAAS7c,KAAKkkM,YAAc,GAAK,GACnDlkM,KAAK2kM,UAAW,EAChB3kM,KAAKwjM,UAAW,EAChBxjM,KAAKgoG,WAAU,WAGbjL,IAAU,WACRsV,EAAO1K,WAAY,CACrB,GACF,GACF,CACF,EACA8iC,KAAM,WACJ,IAAI/kB,EAAS1lH,KAEb,GAAIA,KAAK2nG,UAAW,CAClB,IAAIujE,EAAYlrK,KAAKgrK,WAAWl5E,IAChC9xF,KAAK0hD,UAAUwpH,GACflrK,KAAKqlM,iBAAgB,GACrBrlM,KAAK4kM,eAAiB5kM,KAAK6kM,cAAgB,EAC3C7kM,KAAKolM,oBACLplM,KAAK2kM,UAAW,EAChB5nG,IAAU,WACR2oB,EAAO/d,WAAY,CACrB,GACF,CACF,EACAqjE,WAAY,SAAoB1+J,GAC9B,IAAI3M,EAAUwC,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,OAAO,IAAIqpI,GAAQl/H,EAAMk2E,GAAcA,GAAc,CACnDkpD,YAAY,EACZzpI,OAAQjC,KAAK60G,KAAO,KACpBoG,cAAe,MACdt7G,GAAU,CAAC,EAAG,CACfisI,UAAW5rI,KACX6rI,YAAa7rI,KAAKw+G,WAEtB,EACA98D,UAAW,SAAmB6sF,GAC5B,IAAIjiI,EAAOiiI,EAAQjiI,KACnBtM,KAAKyyG,WAAW1N,GAAiBlY,GAAYvgF,GAAOiiI,GACpDvuI,KAAK8nG,MAAMx7F,EAAMiiI,EACnB,EACA22D,cAAe,WACb,IAAIllM,KAAKyoK,OAAT,CAIA,IAAIu8B,EAAkBhlM,KAAKglM,gBAE3B,IAAKrB,GAAAA,GAASC,UAAUoB,GAAkB,CACxC,IAAIt/B,EAAMrqF,SAASnuE,cAAc,OACjCmuE,SAASloC,KAAKgwH,YAAYuC,GAC1B,IAAI8+B,EAAUtiC,GAAwBliK,KAAK4xG,YAAa2xF,GAAU,CAChEngC,UAAW,CACTx+J,KAAMogM,KAGVR,EAAQ91B,OAAOhJ,EACjB,CAbA,CAcF,EACA4/B,kBAAmB,WACjBtlM,KAAKolM,oBAEAplM,KAAKqkM,aACRrkM,KAAKmlM,eAAiBnjL,WAAWhiB,KAAKyqI,KAAMzqI,KAAK6kM,eAAiB7kM,KAAK+kM,kBACvE/kM,KAAK4kM,eAAiBhoL,KAAKC,MAC3B7c,KAAK6kM,cAAgB,EAEzB,EACAO,kBAAmB,WACjBljL,aAAaliB,KAAKmlM,gBAClBnlM,KAAKmlM,eAAiB,IACxB,EACAE,gBAAiB,SAAyBh1G,GACxC,IAAIrB,EAAKhvF,KAAK6lH,MAAM,WACpBzhB,GAAW/T,EAAIrB,EAAI,aAAchvF,KAAKulM,QAASnxG,IAC/CgQ,GAAW/T,EAAIrB,EAAI,aAAchvF,KAAKwlM,UAAWpxG,GACnD,EACAmxG,QAAS,WAEP,IAAIvlM,KAAKqkM,aAAcrkM,KAAKozH,cAAiBpzH,KAAKmlM,iBAAkBnlM,KAAK6kM,cAAzE,CAIA,IAAIY,EAAS7oL,KAAKC,MAAQ7c,KAAK4kM,eAE3Ba,EAAS,IACXzlM,KAAKolM,oBACLplM,KAAK6kM,cAAgB3uL,GAAQlW,KAAK+kM,iBAAmBU,EAAQxB,IAN/D,CAQF,EACAuB,UAAW,WAELxlM,KAAKqkM,YAAcrkM,KAAKozH,eAAiBpzH,KAAK6kM,cAChD7kM,KAAK6kM,cAAgB7kM,KAAK4kM,eAAiB,EAI7C5kM,KAAKslM,mBACP,EACAI,YAAa,WACX,IAAI3/E,EAAS/lH,KAIbA,KAAKgoG,WAAU,WACbjL,IAAU,WACRgpB,EAAO0kB,MACT,GACF,GACF,EACA4gC,cAAe,WACbrrK,KAAK8oK,iBAAkB,CACzB,EACAhxC,aAAc,WACZ93H,KAAK8oK,iBAAkB,EACvB,IAAI68B,EAAc3lM,KAAKgrK,WAAW13E,IAClCtzF,KAAK0hD,UAAUikJ,GACf3lM,KAAKslM,oBACLtlM,KAAKqlM,iBAAgB,EACvB,EACA75B,cAAe,WACbxrK,KAAK8oK,iBAAkB,CACzB,EACA9wC,aAAc,WACZh4H,KAAK8oK,iBAAkB,EACvB9oK,KAAKg+H,MAAQ,EACbh+H,KAAK6kM,cAAgB7kM,KAAK4kM,eAAiB,EAC3C,IAAIe,EAAc3lM,KAAKgrK,WAAWn5E,IAClC7xF,KAAK0hD,UAAUikJ,GACf3lM,KAAKwjM,UAAW,CAClB,EAEAoC,UAAW,SAAmB9kM,GAC5B,IAAImlH,EAASjmH,KAETiN,EAAQjN,KAAKiN,MACbsgH,EAAYvtH,KAAKutH,UACjB1X,EAAO3K,GAAOlrG,MACd6lM,EAAiB,GACjBv4F,EAASttG,KAAKs6F,cAAcd,GAAuB+zB,GAEnDjgB,EACFu4F,EAAe/jM,KAAKwrG,GACXrgG,GACT44L,EAAe/jM,KAAKhB,EAAE,SAAU,CAC9BykG,YAAa,QACZt4F,IAGAjN,KAAK+8J,eACR8oC,EAAe/jM,KAAKhB,EAAEukG,GAAc,CAClCE,YAAa,eACblV,GAAI,CACFmV,MAAO,WACLygB,EAAOwkB,MACT,MAKN,IAAIljB,EAAUzmH,IAEV+kM,EAAezjM,OAAS,IAC1BmlH,EAAUzmH,EAAEd,KAAKg/G,UAAW,CAC1BzZ,YAAa,eACb/7F,MAAOxJ,KAAK6qH,aACXg7E,IAGL,IAAIx5B,EAAQvrK,EAAE+0G,EAAOjC,GAAQ,MAAO,CAClCrO,YAAa,aACb/7F,MAAOxJ,KAAKoqH,UACZthH,MAAO+sG,EAAOzS,GAAW0R,GAAW90G,MAAQ,CAAC,EAC7CqwF,GAAIwlB,EAAO,CACTrQ,MAAOxlG,KAAK0lM,aACV,CAAC,GACJ1lM,KAAKs6F,cAAcnE,GAAmBo3B,IACzC,OAAOzsH,EAAE,MAAO,CACdykG,YAAa,QACb/7F,MAAOxJ,KAAKukM,WACZj7L,MAAOtJ,KAAKm0G,cACZ5xG,IAAK,SAAStB,OAAOjB,KAAKouF,KAC1BjtE,IAAK,SACJ,CAAComG,EAAS8kD,GACf,GAEFltK,OAAQ,SAAgB2B,GACtB,IAAKd,KAAKwjM,WAAaxjM,KAAK0kM,UAC1B,OAAO5jM,IAGT,IAAIk9H,EAAQh+H,KAAKg+H,MACb8nE,EAAW9lM,KAAKyoK,OAChBk8B,EAAW3kM,KAAK2kM,SAChBP,EAAWpkM,KAAKokM,SAChBx/L,EAAO,WAAW3D,OAAOjB,KAAKouF,KAC9B23G,EAASjlM,EAAE,MAAO,CACpBykG,YAAa,UACb/7F,MAAOxJ,KAAK8kM,aACZx7L,MAAOk5E,GAAcA,GAAc,CAAC,EAAGsjH,EAAW,CAAC,EAAI9lM,KAAKiiK,kBAAmB,CAAC,EAAG,CACjFrpI,GAAI54B,KAAKw+G,OAAO,gBAChBlW,KAAMq8F,EAAW,KAAOP,EAAW,SAAW,QAC9C,YAAaO,EAAW,KAAOP,EAAW,SAAW,YACrD,cAAeO,EAAW,KAAO,SAEnCpiM,IAAKqC,EACLuc,IAAK,WACJ,CAACrgB,EAAE0lG,GAAc,CAClB19F,MAAO,CACLw9F,OAAQtmG,KAAKsmG,QAEfjW,GAAIrwF,KAAKilM,oBACR,CAACjlM,KAAK2nG,UAAY3nG,KAAK4lM,UAAU9kM,GAAKA,QACzC,OAAOA,EAAEklM,GAAAA,GAAQ,CACfl9L,MAAO,CACLlE,KAAMA,EACNkH,GAAI9L,KAAKglM,gBACThnE,MAAOA,EACPgmE,MAAM,EACNnxK,SAAUizK,IAEX,CAACC,GACN,II7ZF,SAAS7mH,GAAgBC,EAAU58D,GAAe,KAAM48D,aAAoB58D,GAAgB,MAAM,IAAIvd,UAAU,oCAAwC,CAExJ,SAAS++E,GAAkB9hF,EAAQ6G,GAAS,IAAK,IAAI5G,EAAI,EAAGA,EAAI4G,EAAM1G,OAAQF,IAAK,CAAE,IAAIygF,EAAa75E,EAAM5G,GAAIygF,EAAW9gF,WAAa8gF,EAAW9gF,aAAc,EAAO8gF,EAAWx/E,cAAe,EAAU,UAAWw/E,IAAYA,EAAWv/E,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ0gF,EAAWpgF,IAAKogF,EAAa,CAAE,CAE5T,SAASqB,GAAazhE,EAAa0hE,EAAYC,GAAyN,OAAtMD,GAAYF,GAAkBxhE,EAAYtf,UAAWghF,GAAiBC,GAAaH,GAAkBxhE,EAAa2hE,GAAc3iF,OAAOoB,eAAe4f,EAAa,YAAa,CAAEnf,UAAU,IAAiBmf,CAAa,CAE5R,SAASphB,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAEhN,SAASe,GAAmBC,GAAO,OAAOC,GAAmBD,IAAQE,GAAiBF,IAAQG,GAA4BH,IAAQI,IAAsB,CAExJ,SAASA,KAAuB,MAAM,IAAIe,UAAU,uIAAyI,CAE7L,SAAShB,GAA4BO,EAAGC,GAAU,GAAKD,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAOH,GAAkBG,EAAGC,GAAS,IAAIC,EAAIlD,OAAO0B,UAAUyB,SAASrE,KAAKkE,GAAGI,MAAM,GAAI,GAAiE,MAAnD,WAANF,GAAkBF,EAAEvB,cAAayB,EAAIF,EAAEvB,YAAY4B,MAAgB,QAANH,GAAqB,QAANA,EAAoBP,MAAMI,KAAKC,GAAc,cAANE,GAAqB,2CAA2CI,KAAKJ,GAAWL,GAAkBG,EAAGC,QAAzG,CAA7O,CAA+V,CAE/Z,SAAST,GAAiBM,GAAQ,GAAsB,qBAAXvB,QAAmD,MAAzBuB,EAAKvB,OAAOC,WAA2C,MAAtBsB,EAAK,cAAuB,OAAOH,MAAMI,KAAKD,EAAO,CAE7J,SAASP,GAAmBD,GAAO,GAAIK,MAAMC,QAAQN,GAAM,OAAOO,GAAkBP,EAAM,CAE1F,SAASO,GAAkBP,EAAKiB,IAAkB,MAAPA,GAAeA,EAAMjB,EAAIzB,UAAQ0C,EAAMjB,EAAIzB,QAAQ,IAAK,IAAIF,EAAI,EAAG6C,EAAO,IAAIb,MAAMY,GAAM5C,EAAI4C,EAAK5C,IAAO6C,EAAK7C,GAAK2B,EAAI3B,GAAM,OAAO6C,CAAM,CAoBtL,IAAIk4E,GAAY,WACZywF,GAAiB,aAKjBC,GAAa,CAAC,MAAM1sK,OAAO2C,GAAmBtC,GAAKwhF,GAAKmjH,GAAY,CAAC,SAAU,eAE/En4B,GAAe,CACjBo4B,aAAc,UACdj5L,MAAO,eAIL+gK,GAAgB,SAAuBruK,GACzC,OAAOguK,GAAWzlK,QAAO,SAAUq7F,EAAMhhG,GAKvC,OAJK4N,GAAYxQ,EAAQ4C,MACvBghG,EAAKhhG,GAAO5C,EAAQ4C,IAGfghG,CACT,GAAG,CAAC,EACN,EAGIvqD,GAAS,SAAgByrC,GAI3B,IAAI0hH,EAAa1hH,EAAIc,OAAO,CAC1B3gF,KAAM4oF,GACN0gF,QAASu2B,GACTt7L,OAAQ,CAAC04J,IACTU,UAAW,WAET,IAAI1tD,EAAM70G,KAAK60G,IAEXA,GAAOA,EAAIlY,YACbkY,EAAIlY,WAAWY,YAAYsX,EAE/B,EACA8F,QAAS,WACP,IAAIn+F,EAAQxc,KAGRmuK,EAAgB,WAElB3xJ,EAAMmrF,WAAY,EAClBnrF,EAAMgnL,UAAW,EAEjBhnL,EAAMwrF,WAAU,WACdxrF,EAAMwrF,WAAU,WAGdjL,IAAU,WACRvgF,EAAM8mJ,UACR,GACF,GACF,GACF,EAGAtjK,KAAK8hK,SAASvvD,MAAMxe,GAA2Bo6E,GAE/CnuK,KAAKuyG,MAAM1gB,GAAmBs8E,GAE9BnuK,KAAKkyG,aAAanN,GAAiBjY,GAAckE,KAAuB,SAAUwzG,GAE5EA,IAAYhoL,EAAMgoL,SACpBr2B,GAEJ,GACF,IAGEy3B,EAAY,SAAmB98L,EAAO3I,GACxC,IAAIyjF,GAAc3G,IAAlB,CAMA,IAAImpH,EAAQlkC,GAAwB/hK,EAAQgmM,EAAY,CAGtD/iC,UAAW5gF,GAAcA,GAAcA,GAAc,CAAC,EAAGwrF,GAAc5rE,GAAmBvV,MAAe/J,GAAKh6E,EAAOxH,GAAKwsK,MAAiB,CAAC,EAAG,CAE7IrF,QAAQ,EACRt6C,SAAS,MAIb7sH,GAAKwsK,IAAcxrK,SAAQ,SAAU+F,GACnC,IAAInF,EAAQ4F,EAAMT,GAEb8H,GAAYjN,KAEF,UAATmF,GAAoBqI,GAASxN,KAE/BA,EAAQ,CAAC/C,EAAOu9I,eAAe,SAAU,CACvCl0I,MAAO,QACNtG,KAGLkjM,EAAM/rG,OAAOyzE,GAAazlK,IAASpH,GAAOiC,GAE9C,IAEA,IAAIwiK,EAAMrqF,SAASnuE,cAAc,OACjCmuE,SAASloC,KAAKgwH,YAAYuC,GAC1B0gC,EAAM13B,OAAOhJ,EA/Bb,CAgCF,EAGI2gC,EAAuB,WACzB,SAASA,EAAQ10F,GACfzyB,GAAgBl/E,KAAMqmM,GAGtB5jH,GAAOziF,KAAM,CACX6uK,IAAKl9D,EACLm9D,MAAOp9D,GAAaC,KAGtBjvG,GAAiB1C,KAAM,CACrB6uK,IAAK5rF,KACL6rF,MAAO7rF,MAEX,CAoCA,OAhCAe,GAAaqiH,EAAS,CAAC,CACrB9jM,IAAK,QACLW,MAAO,SAAeiiG,GACpB,IAAIxlG,EAAUwC,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAE9EgjG,IAAWvhB,GAAc3G,KAK9B2oH,EAAUpjH,GAAcA,GAAc,CAAC,EAAGwrF,GAAcruK,IAAW,CAAC,EAAG,CACrEumM,aAAc/gG,IACZnlG,KAAK6uK,IACX,GAEC,CACDtsK,IAAK,OACLW,MAAO,SAAc01B,GACfA,GACF54B,KAAK8uK,MAAMhnE,MAAM9C,GAAuBnY,GAAYwG,IAAkBz6D,EAE1E,GAEC,CACDr2B,IAAK,OACLW,MAAO,WACL,IAAI01B,EAAKz2B,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,KAE7EnC,KAAK8uK,MAAMhnE,MAAM9C,GAAuBnY,GAAYiF,IAAkBl5D,EACxE,KAGKytK,CACT,CAnD2B,GAsD3B5hH,EAAIyf,MAAM,CACRljG,aAAc,WAGZhB,KAAK0tK,IAAkB,IAAI24B,EAAQrmM,KACrC,IAIGkG,GAAeu+E,EAAIxhF,UAAWg6E,KACjCt6E,GAAe8hF,EAAIxhF,UAAWg6E,GAAW,CACvCjrE,IAAK,WAMH,OAJKhS,MAASA,KAAK0tK,KACjB/pF,GAAK,IAAK1iF,OAAOg8E,GAAW,0DAA8D4P,IAGrF7sF,KAAK0tK,GACd,GAGN,EAEW44B,GAA6BhhH,GAAc,CACpD1rC,QAAS,CACPZ,OAAQA,MCvORutJ,GAA2BjhH,GAAc,CAC3CP,WAAY,CACV0/G,OAAQA,GACRlB,SAAUA,IAGZ3pJ,QAAS,CACP0sJ,cAAeA,MCXnB,SAASnlM,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAkBhN,IAAI2jM,GAAa,iBAEb3kB,GAAiB,cAEjBC,GAAgB,CAClBpgF,OAAO,EACP46E,OAAO,EACP92E,OAAO,EACP5D,MAAM,EACNmgF,QAAQ,GAGNC,GAAS,UACTykB,GAAmB,oBACnBxkB,GAAW,YACXC,GAAc,sFACdC,GAAa,oCACbC,GAAU,UACVC,GAAc,WACdC,GAAc,WACdC,GAAW,YACXC,GAAY,UACZC,GAAW,MAGXC,GAAgB,SAAuBtoD,EAAUlrC,GAInD,IAAIxuD,EAAS,CACXzzB,WAAOlE,EACPi7J,QAAS,GAETxiC,UAAW,MACXi5C,kBAAmB,OACnB7b,WAAW,EAEXvyD,WAAW,EACXhM,OAAQ,EACRznE,GAAI,KACJwgF,MAAM,EACNiiE,aAAa,EACbxoJ,UAAU,EACV87H,MAAOvsD,GAAmBrV,GAAc,QAAS,IACjDwgD,SAAU9gI,OAAO21F,GAAmBrV,GAAc,WAAY,iBAC9DytF,gBAAiB1/E,GAAUsH,GAAmBrV,GAAc,kBAAmB,GAAI,GACnFya,QAASpF,GAAmBrV,GAAc,WAC1CquF,YAAah5E,GAAmBrV,GAAc,gBAehD,GAZIr8E,GAAS0pH,EAASl3H,QAAU4N,GAASspH,EAASl3H,QAGvCyN,GAAWypH,EAASl3H,OAD7Bw9B,EAAOzzB,MAAQmtH,EAASl3H,MAIfqa,GAAc68G,EAASl3H,SAEhCw9B,EAAS8hD,GAAcA,GAAc,CAAC,EAAG9hD,GAAS05F,EAASl3H,QAIzDiN,GAAYuwB,EAAOzzB,OAAQ,CAE7B,IAAI3D,EAAQ+kF,GAASa,EAAMpmF,OAASomF,EAAMlmF,MAAQ,CAAC,GAAGM,MACtDo3B,EAAOzzB,MAAQ3D,IAAU24E,GAAkB34E,EAAM2D,OAAS3D,EAAM2D,WAAQlE,CAC1E,CAGKwU,GAAcmjB,EAAOiuH,SACxBjuH,EAAOiuH,MAAQ,CACbvnD,KAAMtM,GAAUp6D,EAAOiuH,MAAO,GAC9BlkB,KAAM3vC,GAAUp6D,EAAOiuH,MAAO,KAK9Bv0B,EAAS/pH,MAGXqwB,EAAOk+H,UAAY,IAAI39J,OAAOm5H,EAAS/pH,MAIzC/O,GAAK84H,EAASpL,WAAW1sH,SAAQ,SAAU2sH,GACzC,GAAI+yD,GAAOn9K,KAAKoqH,GAEdvuF,EAAO04E,MAAO,OACT,GAAIqtF,GAAiB5hM,KAAKoqH,GAE/BvuF,EAAO26I,aAAc,OAChB,GAAI4G,GAASp9K,KAAKoqH,GAEvBvuF,EAAO2rE,WAAY,OACd,GAAI61E,GAAYr9K,KAAKoqH,GAE1BvuF,EAAO8gG,UAAYvS,OACd,GAAIkzD,GAAWt9K,KAAKoqH,GAEzBA,EAAc,iBAARA,EAAyB,eAAiBA,EAChDvuF,EAAO6sG,SAAWte,OACb,GAAImzD,GAAQv9K,KAAKoqH,GAAM,CAE5B,IAAI0/B,EAAQ7zD,GAAUm0B,EAAItqH,MAAM,GAAI,GACpC+7B,EAAOiuH,MAAMvnD,KAAOunD,EACpBjuH,EAAOiuH,MAAMlkB,KAAOkkB,CACtB,MAAW0zB,GAAYx9K,KAAKoqH,GAE1BvuF,EAAOiuH,MAAMvnD,KAAOtM,GAAUm0B,EAAItqH,MAAM,GAAI,GACnC29K,GAAYz9K,KAAKoqH,GAE1BvuF,EAAOiuH,MAAMlkB,KAAO3vC,GAAUm0B,EAAItqH,MAAM,GAAI,GACnC49K,GAAS19K,KAAKoqH,GAEvBvuF,EAAO2/D,OAASvF,GAAUm0B,EAAItqH,MAAM,GAAI,GAC/B69K,GAAU39K,KAAKoqH,KAExBvuF,EAAO8mE,QAAUynB,EAAItqH,MAAM,IAAM,KAErC,IAGA,IAAIg+K,EAAmB,CAAC,EA8BxB,OA5BA1hL,GAAOy/B,EAAOsjI,SAAW,IAAItiK,OAAOyhF,IAAU58E,KAAK,KAAK0B,OAAOlB,cAAcT,MAAMm8K,IAAUngL,SAAQ,SAAU0hK,GACzG8d,GAAc9d,KAChB2e,EAAiB3e,IAAW,EAEhC,IAEA1iK,GAAK84H,EAASpL,WAAW1sH,SAAQ,SAAU2sH,GACzCA,EAAMA,EAAIloH,cAEN+6K,GAAc7yD,KAEhB0zD,EAAiB1zD,IAAO,EAE5B,IAEAvuF,EAAOsjI,QAAU1iK,GAAKqhL,GAAkBp8K,KAAK,KAEtB,SAAnBm6B,EAAOsjI,UAETtjI,EAAOsjI,QAAU,SAGdtjI,EAAOsjI,UAEVtjI,EAAOsjI,QAAU6d,IAIZnhJ,CACT,EAGIgmK,GAAe,SAAsB13G,EAAIorC,EAAUlrC,GACrD,GAAKpT,EAAL,CAKA,IAAIp7C,EAASgiJ,GAActoD,EAAUlrC,GAErC,IAAKF,EAAGw3G,IAAa,CACnB,IAAIrmM,EAASg6H,GAAyBjrC,EAAOkrC,GAC7CprC,EAAGw3G,IAActkC,GAAwB/hK,EAAQi8K,GAAW,CAE1Dt8K,SAAUiiK,GAAW5hK,OAAQ4I,KAE/BimF,EAAGw3G,IAAY3jB,iBAAmB,CAAC,EACnC7zF,EAAGw3G,IAAYr0F,IAAI9e,IAAiB,WAI9B1iF,GAAW+vB,EAAOzzB,QACpB+hF,EAAGw3G,IAAY1oB,WAAW,CACxB7wK,MAAOyzB,EAAOzzB,MAAM+hF,IAG1B,GACF,CAEA,IAAIhmF,EAAO,CACTiE,MAAOyzB,EAAOzzB,MACdkvK,SAAUz7I,EAAOsjI,QACjBxiC,UAAW9gG,EAAO8gG,UAClBi5C,kBAAmB/5I,EAAO+5I,kBAC1BjzE,QAAS9mE,EAAO8mE,QAChB4zE,YAAa16I,EAAO06I,YACpBxc,UAAWl+H,EAAOk+H,UAClBrxB,SAAU7sG,EAAO6sG,SACjBohB,MAAOjuH,EAAOiuH,MACdtuD,OAAQ3/D,EAAO2/D,OACfiG,QAAS5lE,EAAO2rE,UAChBzzE,GAAI8H,EAAO9H,GACXyiJ,YAAa36I,EAAO26I,YACpBxoJ,SAAU6N,EAAO7N,SACjBumF,KAAM14E,EAAO04E,MAEX0pE,EAAU9zF,EAAGw3G,IAAY3jB,iBAG7B,GAFA7zF,EAAGw3G,IAAY3jB,iBAAmB75K,GAE7BsnG,GAAWtnG,EAAM85K,GAAU,CAE9B,IAAIC,EAAU,CACZ9gL,OAAQ+sF,GAEV1tF,GAAK0H,GAAM1G,SAAQ,SAAU+F,GAEvBW,EAAKX,KAAUy6K,EAAQz6K,KAEzB06K,EAAQ16K,GAAiB,UAATA,GAAoBsI,GAAW3H,EAAKX,IAASW,EAAKX,GAAM2mF,GAAMhmF,EAAKX,GAEvF,IACA2mF,EAAGw3G,IAAY1oB,WAAWiF,EAC5B,CAxDA,CAyDF,EAGI4jB,GAAgB,SAAuB33G,GACrCA,EAAGw3G,MACLx3G,EAAGw3G,IAAYljC,WACft0E,EAAGw3G,IAAc,aAGZx3G,EAAGw3G,GACZ,EAGWI,GAAY,CACrB19L,KAAM,SAAc8lF,EAAIorC,EAAUlrC,GAChCw3G,GAAa13G,EAAIorC,EAAUlrC,EAC7B,EAGAigC,iBAAkB,SAA0BngC,EAAIorC,EAAUlrC,GAExDoB,IAAS,WACPo2G,GAAa13G,EAAIorC,EAAUlrC,EAC7B,GACF,EACAkgC,OAAQ,SAAgBpgC,GACtB23G,GAAc33G,EAChB,GCxQE63G,GAA+BvhH,GAAc,CAC/CN,WAAY,CACV4hH,UAAWA,MCDXE,GAA6BxhH,GAAc,CAC7CP,WAAY,CACVw7F,SAAUA,IAEZ3mI,QAAS,CACPitJ,gBAAiBA,MC8CVE,GAAgCzhH,GAAc,CACvD1rC,QAAS,CACP2uD,YAAaA,GACb4B,aAAcA,GACd0O,aAAcA,GACdE,YAAaA,GACbc,iBAAkBA,GAClBC,aAAcA,GACdO,kBAAmBA,GACnBe,oBAAqBA,GACrBoO,eAAgBA,GAChBuH,WAAYA,GACZ2G,eAAgBA,GAChBoE,eAAgBA,GAChBmX,eAAgBA,GAChBa,YAAaA,GACbqB,WAAYA,GACZsE,mBAAoBA,GACpBsE,qBAAsBA,GACtB4E,eAAgBA,GAChB2D,gBAAiBA,GACjBiD,gBAAiBA,GACjBI,gBAAiBA,GACjBwC,iBAAkBA,GAClBa,iBAAkBA,GAClBqE,qBAAsBA,GACtB4F,eAAgBA,GAChBuB,mBAAoBA,GACpBiF,qBAAsBA,GACtBE,YAAaA,GACbe,iBAAkBA,GAClBY,gBAAiBA,GACjBW,aAAcA,GACdC,WAAYA,GACZO,gBAAiBA,GACjBO,YAAaA,GACboO,YAAaA,GACbmB,UAAWA,GACXkB,aAAcA,GACdkB,cAAeA,GACfqF,iBAAkBA,GAClBuB,oBAAqBA,GACrB4J,cAAeA,GACfoB,eAAgBA,GAChB+B,cAAeA,GACfiE,eAAgBA,GAChBC,cAAeA,GACfgV,YAAaA,GACb2D,WAAYA,GACZC,WAAYA,GACZmD,YAAaA,GACbO,cAAeA,MCvGfE,GAA6B1hH,GAAc,CAC7CN,WAAY,CACVq1D,QAASA,MCFT4sD,GAA6B3hH,GAAc,CAC7CN,WAAY,CACVwoF,QAASA,MCJb,SAASrsK,GAAQC,EAAQC,GAAkB,IAAIC,EAAOC,OAAOD,KAAKF,GAAS,GAAIG,OAAOC,sBAAuB,CAAE,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAASC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UAAY,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAAU,CAAE,OAAOH,CAAM,CAEpV,SAASkhF,GAAcvgF,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,CAAC,EAAGA,EAAI,EAAIf,GAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,GAAgBP,EAAQM,EAAKF,EAAOE,GAAO,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,GAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAAOhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAAO,GAAI,CAAE,OAAON,CAAQ,CAEzf,SAASO,GAAgBK,EAAKN,EAAKW,GAAiK,OAApJX,KAAOM,EAAOtB,OAAOoB,eAAeE,EAAKN,EAAK,CAAEW,MAAOA,EAAOrB,YAAY,EAAMsB,cAAc,EAAMC,UAAU,IAAkBP,EAAIN,GAAOW,EAAgBL,CAAK,CAEhN,SAASq8E,GAAgBC,EAAU58D,GAAe,KAAM48D,aAAoB58D,GAAgB,MAAM,IAAIvd,UAAU,oCAAwC,CAExJ,SAAS++E,GAAkB9hF,EAAQ6G,GAAS,IAAK,IAAI5G,EAAI,EAAGA,EAAI4G,EAAM1G,OAAQF,IAAK,CAAE,IAAIygF,EAAa75E,EAAM5G,GAAIygF,EAAW9gF,WAAa8gF,EAAW9gF,aAAc,EAAO8gF,EAAWx/E,cAAe,EAAU,UAAWw/E,IAAYA,EAAWv/E,UAAW,GAAM7B,OAAOoB,eAAeV,EAAQ0gF,EAAWpgF,IAAKogF,EAAa,CAAE,CAE5T,SAASqB,GAAazhE,EAAa0hE,EAAYC,GAAyN,OAAtMD,GAAYF,GAAkBxhE,EAAYtf,UAAWghF,GAAiBC,GAAaH,GAAkBxhE,EAAa2hE,GAAc3iF,OAAOoB,eAAe4f,EAAa,YAAa,CAAEnf,UAAU,IAAiBmf,CAAa,CAoB5R,IAAI7T,GAAO,gBACPw4L,GAA2B,gBAC3BC,GAAoB,SACpBC,GAA0B,oBAC1BC,GAAqB,YACrBC,GAAqB,YACrBC,GAAsB,mBACtBC,GAAoB,qBACpBC,GAA0B,iBAC1BC,GAA2B,mBAC3BC,GAA2B5iG,GAAiB,cAAe,YAC3D6iG,GAAgB,SAChBC,GAAkB,WAClBC,GAAU,CACZj/L,QAAS,OACTw3F,OAAQ,GACR3tE,OAAQ,OACRq1K,SAAU,IAERC,GAAc,CAChBn/L,QAAS,6BACTw3F,OAAQ,SACR3tE,OAAQ,SACRq1K,SAAU,UAGR11E,GAAsB,CAAC,sBAAuB,gBAAiB,iBAAkB,kBAMjFvwC,GAAS,SAAgBj/E,GAG3B,OAAOolM,GAAeplM,GAAK8D,MAAM,iBAAiB,GAAGI,aACvD,EAKImhM,GAAkB,SAAyBC,EAAeznK,EAAQ0nK,GAGpE,IAAK,IAAIrzK,KAAYqzK,EACnB,GAAIliM,GAAekiM,EAAarzK,GAAW,CACzC,IAAIszK,EAAgBD,EAAYrzK,GAC5B7xB,EAAQw9B,EAAO3L,GACfpiB,EAAYzP,GAASs6F,GAAUt6F,GAAS,UAAY4+E,GAAO5+E,GAE/DyP,EAAYzP,GAASA,EAAMolM,OAAS,YAAc31L,EAE7C,IAAI01D,OAAOggI,GAAexjM,KAAK8N,IAElCgxE,GAAK,GAAG1iF,OAAOknM,EAAe,cAAelnM,OAAO8zB,EAAU,qBAAuB9zB,OAAO0R,EAAW,yBAA2B1R,OAAOonM,EAAe,KAE5J,CAEJ,EAUWE,GAEI,WACb,SAASA,EAAY1/L,EAAS63B,EAAQjgC,GACpCy+E,GAAgBl/E,KAAMuoM,GAGtBvoM,KAAK60G,IAAMhsG,EACX7I,KAAKwoM,UAAY,KACjBxoM,KAAKyoM,UAAY,CAACpB,GAAoBE,GAAqBE,IAAyBlhM,KAAK,KACzFvG,KAAK0oM,SAAW,GAChB1oM,KAAK2oM,SAAW,GAChB3oM,KAAK4oM,cAAgB,KACrB5oM,KAAK6oM,cAAgB,EACrB7oM,KAAK8oM,eAAiB,KACtB9oM,KAAK+oM,kBAAoB,KACzB/oM,KAAKgpM,iBAAmB,KACxBhpM,KAAKS,MAAQA,GAAS,KACtBT,KAAKipM,QAAU,KACfjpM,KAAKkpM,aAAaxoK,EACpB,CAoYA,OAlYAsjD,GAAaukH,EAAa,CAAC,CACzBhmM,IAAK,eACLW,MAAO,SAAsBw9B,EAAQjgC,GAC/BT,KAAKwoM,YAEPxoM,KAAKmpM,WACLnpM,KAAKwoM,UAAY,MAGnB,IAAIzuK,EAAMyoD,GAAcA,GAAc,CAAC,EAAGxiF,KAAKgD,YAAY8kM,SAAUpnK,GASrE,GAPIjgC,IACFT,KAAKS,MAAQA,GAGfynM,GAAgBloM,KAAKgD,YAAYomM,KAAMrvK,EAAK/5B,KAAKgD,YAAYglM,aAC7DhoM,KAAKipM,QAAUlvK,EAEX/5B,KAAKS,MAAO,CACd,IAAI4E,EAAOrF,KACXA,KAAKS,MAAMunG,WAAU,WACnB3iG,EAAKy3K,QACP,GACF,MACE98K,KAAK88K,QAET,GACC,CACDv6K,IAAK,UACLW,MAAO,WACLlD,KAAKmpM,WACLjnL,aAAaliB,KAAK8oM,gBAClB9oM,KAAK8oM,eAAiB,KACtB9oM,KAAK60G,IAAM,KACX70G,KAAKipM,QAAU,KACfjpM,KAAKwoM,UAAY,KACjBxoM,KAAKyoM,UAAY,KACjBzoM,KAAK0oM,SAAW,KAChB1oM,KAAK2oM,SAAW,KAChB3oM,KAAK4oM,cAAgB,KACrB5oM,KAAK6oM,cAAgB,IACvB,GACC,CACDtmM,IAAK,SACLW,MAAO,WACL,IAAIsZ,EAAQxc,KAERqpM,EAAWrpM,KAAKspM,cAEhBD,GAAiC,SAArBA,EAAS3yE,SACvB3kF,GAAQs3J,EAAU,SAAUrpM,KAAMo0F,IAGpCriD,GAAQ5sC,OAAQ,SAAUnF,KAAMo0F,IAChCriD,GAAQ5sC,OAAQ,SAAUnF,KAAMo0F,IAChCriD,GAAQ5sC,OAAQ,oBAAqBnF,KAAMo0F,IAC3Ci+B,GAAoB/vH,SAAQ,SAAUiuC,GACpCwB,GAAQ5sC,OAAQorC,EAAW/zB,EAAO43E,GACpC,IACAp0F,KAAKupM,cAAa,GAElBvpM,KAAK0+K,YAAY,UACnB,GACC,CACDn8K,IAAK,WACLW,MAAO,WACL,IAAImvG,EAASryG,KAETqpM,EAAWrpM,KAAKspM,cACpBtpM,KAAKupM,cAAa,GAEdF,GAAiC,SAArBA,EAAS3yE,SACvBxkF,GAASm3J,EAAU,SAAUrpM,KAAMo0F,IAGrCliD,GAAS/sC,OAAQ,SAAUnF,KAAMo0F,IACjCliD,GAAS/sC,OAAQ,SAAUnF,KAAMo0F,IACjCliD,GAAS/sC,OAAQ,oBAAqBnF,KAAMo0F,IAC5Ci+B,GAAoB/vH,SAAQ,SAAUiuC,GACpC2B,GAAS/sC,OAAQorC,EAAW8hE,EAAQje,GACtC,GACF,GACC,CACD7xF,IAAK,eACLW,MAAO,SAAsBmtF,GAC3B,IAAIq1B,EAAS1lH,KAGbA,KAAK+oM,mBAAqB/oM,KAAK+oM,kBAAkBj6E,aACjD9uH,KAAKgpM,kBAAoBhpM,KAAKgpM,iBAAiBl6E,aAC/C9uH,KAAK+oM,kBAAoB,KACzB/oM,KAAKgpM,iBAAmB,KAEpB34G,IACFrwF,KAAKgpM,iBAAmB/3E,GAAWjxH,KAAK60G,KAAK,WAC3C6Q,EAAOg5D,YAAY,WACrB,GAAG,CACDhtD,SAAS,EACTD,WAAW,EACXroH,YAAY,EACZyrH,gBAAiB,CAAC,UAEpB70H,KAAK+oM,kBAAoB93E,GAAWjxH,KAAKspM,eAAe,WACtD5jF,EAAOg5D,YAAY,WACrB,GAAG,CACDhtD,SAAS,EACTD,WAAW,EACXk1C,eAAe,EACfv9J,YAAY,EACZyrH,gBAAiB,CAAC,KAAM,QAAS,WAGvC,GAEC,CACDtyH,IAAK,cACLW,MAAO,SAAqBwmD,GAC1B,IAAIp9C,EAAOoE,GAASg5C,GAASA,EAAQA,EAAMp9C,KACvCjH,EAAOrF,KAEPwpM,EAAiB,WACdnkM,EAAKyjM,iBACRzjM,EAAKyjM,eAAiB9mL,YAAW,WAC/B3c,EAAKqc,UACLrc,EAAKgC,UACLhC,EAAKyjM,eAAiB,IACxB,GAAGzjM,EAAK4jM,QAAQlB,UAEpB,EAEa,WAATz7L,GACGtM,KAAK+oM,mBAGR/oM,KAAK88K,SAGP98K,KAAKqH,WACI,8CAA8CxC,KAAKyH,IAE5Dk9L,GAEJ,GAEC,CACDjnM,IAAK,UACLW,MAAO,WACL,IAAI6iH,EAAS/lH,KAETqpM,EAAWrpM,KAAKspM,cAEpB,GAAKD,EAAL,CAIA,IAAII,EAAaJ,IAAaA,EAASlkM,OAAS0iM,GAAkBD,GAC9Dl1K,EAAiC,SAAxB1yB,KAAKipM,QAAQv2K,OAAoB+2K,EAAazpM,KAAKipM,QAAQv2K,OACpEg3K,EAAWh3K,IAAWm1K,GAAkBhnG,GAAWR,GACnDspG,EAAaj3K,IAAWm1K,GAAkB7nM,KAAK4pM,eAAiB,EA+CpE,OA9CA5pM,KAAK0oM,SAAW,GAChB1oM,KAAK2oM,SAAW,GAChB3oM,KAAK6oM,cAAgB7oM,KAAK6pM,kBAE1BprG,GAAUz+F,KAAKyoM,UAAWzoM,KAAK60G,KAC9B9sG,KAAI,SAAU8tG,GACb,OAAOlW,GAAQkW,EAAM,OACvB,IACCn0G,QAAO,SAAUusC,GAChB,OAAOA,GAAQwwC,EAAQ55E,KAAKopC,GAAQ,GACtC,IACClmC,KAAI,SAAUkmC,GAEb,IAAIrV,EAAKqV,EAAKvnC,QAAQ+3E,EAAS,MAAMx2E,OAErC,IAAK2wB,EACH,OAAO,KAIT,IAAIo2D,EAAK8P,GAAOlmE,EAAIywK,GAEpB,OAAIr6G,GAAM6O,GAAU7O,GACX,CACLqR,OAAQvF,GAAU4uG,EAAS16G,GAAIuR,IAAK,GAAKopG,EACzC1nM,OAAQ22B,GAIL,IACT,IAAGl3B,OAAOyhF,IACTxyC,MAAK,SAAUkwC,EAAG/oE,GACjB,OAAO+oE,EAAEwf,OAASvoF,EAAEuoF,MACtB,IACCn4F,QAAO,SAAUq7F,EAAMrkD,GAStB,OARKqkD,EAAKrkD,EAAKj9C,UACb8jH,EAAO2iF,SAAS5mM,KAAKo9C,EAAKmhD,QAE1B0lB,EAAO4iF,SAAS7mM,KAAKo9C,EAAKj9C,QAE1BshG,EAAKrkD,EAAKj9C,SAAU,GAGfshG,CACT,GAAG,CAAC,GAEGvjG,IApDP,CAqDF,GAEC,CACDuC,IAAK,UACLW,MAAO,WACL,IAAI87H,EAAYh/H,KAAK4pM,eAAiB5pM,KAAKipM,QAAQ5oG,OAC/Cw3B,EAAe73H,KAAK6pM,kBACpBC,EAAY9pM,KAAKipM,QAAQ5oG,OAASw3B,EAAe73H,KAAK+pM,kBAM1D,GAJI/pM,KAAK6oM,gBAAkBhxE,GACzB73H,KAAK0hB,UAGHs9G,GAAa8qE,EAAjB,CACE,IAAI7nM,EAASjC,KAAK2oM,SAAS3oM,KAAK2oM,SAASvmM,OAAS,GAE9CpC,KAAK4oM,gBAAkB3mM,GACzBjC,KAAKijM,SAAShhM,EAIlB,KARA,CAUA,GAAIjC,KAAK4oM,eAAiB5pE,EAAYh/H,KAAK0oM,SAAS,IAAM1oM,KAAK0oM,SAAS,GAAK,EAG3E,OAFA1oM,KAAK4oM,cAAgB,UACrB5oM,KAAKgqM,QAIP,IAAK,IAAI9nM,EAAIlC,KAAK0oM,SAAStmM,OAAQF,KAAM,CACvC,IAAI+nM,EAAiBjqM,KAAK4oM,gBAAkB5oM,KAAK2oM,SAASzmM,IAAM88H,GAAah/H,KAAK0oM,SAASxmM,KAAOiO,GAAYnQ,KAAK0oM,SAASxmM,EAAI,KAAO88H,EAAYh/H,KAAK0oM,SAASxmM,EAAI,IAEjK+nM,GACFjqM,KAAKijM,SAASjjM,KAAK2oM,SAASzmM,GAEhC,CAdA,CAeF,GACC,CACDK,IAAK,cACLW,MAAO,WACL,GAAIlD,KAAKwoM,UACP,OAAOxoM,KAAKwoM,UAGd,IAAIa,EAAWrpM,KAAKipM,QAAQpgM,QAE5B,OAAKwgM,GAEM7rG,GAAU6rG,EAASx0F,KAC5Bw0F,EAAWA,EAASx0F,IACXnkG,GAAS24L,KAClBA,EAAWvqG,GAAOuqG,IAGfA,GAILrpM,KAAKwoM,UAAiC,SAArBa,EAAS3yE,QAAqBvxH,OAASkkM,EACjDrpM,KAAKwoM,WAJH,MARA,IAaX,GACC,CACDjmM,IAAK,eACLW,MAAO,WACL,IAAImmM,EAAWrpM,KAAKspM,cACpB,OAAOD,IAAalkM,OAASkkM,EAAS1oG,YAAc0oG,EAASrqE,SAC/D,GACC,CACDz8H,IAAK,kBACLW,MAAO,WACL,OAAOlD,KAAKspM,cAAczxE,cAAgB3hH,GAAQmlE,SAASloC,KAAK0kF,aAAcx8C,SAASqB,gBAAgBm7C,aACzG,GACC,CACDt1H,IAAK,kBACLW,MAAO,WACL,IAAImmM,EAAWrpM,KAAKspM,cACpB,OAAOD,IAAalkM,OAASA,OAAOy7H,YAAc3iC,GAAOorG,GAAUnrG,MACrE,GACC,CACD37F,IAAK,WACLW,MAAO,SAAkBjB,GACvB,IAAIgkH,EAASjmH,KAEbA,KAAK4oM,cAAgB3mM,EACrBjC,KAAKgqM,QAEL,IAAIE,EAAQzrG,GAAUz+F,KAAKyoM,UAC1BniM,MAAM,KACNyB,KAAI,SAAU22F,GACb,MAAO,GAAGz9F,OAAOy9F,EAAU,YAAaz9F,OAAOgB,EAAQ,KACzD,IACCsE,KAAK,KAAMvG,KAAK60G,KACjBq1F,EAAM5nM,SAAQ,SAAUuzG,GACtB,GAAIvX,GAASuX,EAAMqxF,IAA2B,CAE5C,IAAIiD,EAAW3tG,GAAQgrG,GAAmB3xF,GAEtCs0F,GACFlkF,EAAOmkF,eAAetrG,GAAO4oG,GAA0ByC,IAAW,GAIpElkF,EAAOmkF,eAAev0F,GAAM,EAC9B,KAAO,CAELoQ,EAAOmkF,eAAev0F,GAAM,GAExB9oE,GAAQ8oE,EAAKnZ,cAAe4qG,KAE9BrhF,EAAOmkF,eAAev0F,EAAKnZ,eAAe,GAK5C,IAAI1N,EAAK6mB,EAET,MAAO7mB,EAAI,CACTA,EAAKwN,GAAQ4qG,GAAyBp4G,GACtC,IAAIq7G,EAAUr7G,EAAKA,EAAGs7G,uBAAyB,KAE3CD,GAAWt9J,GAAQs9J,EAAS,GAAGppM,OAAOomM,GAAoB,MAAMpmM,OAAOsmM,MACzEthF,EAAOmkF,eAAeC,GAAS,GAI7BA,GAAWt9J,GAAQs9J,EAAS/C,MAC9BrhF,EAAOmkF,eAAetrG,GAAOuoG,GAAoBgD,IAAU,GAG3DpkF,EAAOmkF,eAAeC,GAAS,GAEnC,CACF,CACF,IAEIH,GAASA,EAAM9nM,OAAS,GAAKpC,KAAKS,OACpCT,KAAKS,MAAMqnG,MAAM6/F,GAA0B1lM,EAAQioM,EAEvD,GACC,CACD3nM,IAAK,QACLW,MAAO,WACL,IAAIikH,EAASnnH,KAEby+F,GAAU,GAAGx9F,OAAOjB,KAAKyoM,UAAW,MAAMxnM,OAAOqmM,IAAqBtnM,KAAK60G,KAAKnzG,QAAO,SAAUstF,GAC/F,OAAOsP,GAAStP,EAAIm4G,GACtB,IAAG7kM,SAAQ,SAAU0sF,GACnB,OAAOm4B,EAAOijF,eAAep7G,GAAI,EACnC,GACF,GACC,CACDzsF,IAAK,iBACLW,MAAO,SAAwB8rF,EAAI2kB,GAC5B3kB,IAID2kB,EACFvU,GAASpQ,EAAIm4G,IAEb9nG,GAAYrQ,EAAIm4G,IAEpB,IACE,CAAC,CACH5kM,IAAK,OACLyP,IAAK,WACH,OAAOtD,EACT,GACC,CACDnM,IAAK,UACLyP,IAAK,WACH,OAAO81L,EACT,GACC,CACDvlM,IAAK,cACLyP,IAAK,WACH,OAAOg2L,EACT,KAGKO,CACT,CAvZe,GC3FXgC,GAAe,mBAEfC,GAAe,QACfjoB,GAAW,2BAKXG,GAAgB,SAAuBtoD,GAGzC,IAAI15F,EAAS,CAAC,EAmCd,OAjCI05F,EAAS/pH,MAGXqwB,EAAO73B,QAAU,IAAI5H,OAAOm5H,EAAS/pH,MAIvC/O,GAAK84H,EAASpL,WAAW1sH,SAAQ,SAAU2sH,GACrCu7E,GAAa3lM,KAAKoqH,GAEpBvuF,EAAO2/D,OAASvF,GAAUm0B,EAAK,GACtBszD,GAAS19K,KAAKoqH,KAEvBvuF,EAAOhO,OAASu8F,EAEpB,IAEIv+G,GAAS0pH,EAASl3H,OAEpBw9B,EAAO73B,QAAUuxH,EAASl3H,MACjB4N,GAASspH,EAASl3H,OAE3Bw9B,EAAO2/D,OAASyI,GAAUsxB,EAASl3H,OAC1B0N,GAASwpH,EAASl3H,QAG3B5B,GAAK84H,EAASl3H,OAAOxB,QAAO,SAAUuV,GACpC,QAASsxL,GAAYP,YAAY/wL,EACnC,IAAG3U,SAAQ,SAAU2U,GACnBypB,EAAOzpB,GAAKmjH,EAASl3H,MAAM+T,EAC7B,IAGKypB,CACT,EAGI+pK,GAAiB,SAAwBz7G,EAAIorC,EAAUlrC,GAGzD,GAAKpT,EAAL,CAKA,IAAIp7C,EAASgiJ,GAActoD,GAEvBprC,EAAGu7G,IACLv7G,EAAGu7G,IAAcrB,aAAaxoK,EAAQgxE,GAAayoB,GAAyBjrC,EAAOkrC,KAEnFprC,EAAGu7G,IAAgB,IAAIhC,GAAYv5G,EAAItuD,EAAQgxE,GAAayoB,GAAyBjrC,EAAOkrC,IAP9F,CASF,EAKIswE,GAAkB,SAAyB17G,GAGzCA,EAAGu7G,MACLv7G,EAAGu7G,IAAcI,UACjB37G,EAAGu7G,IAAgB,YACZv7G,EAAGu7G,IAEd,EAMWK,GAAc,CAEvB1hM,KAAM,SAAc8lF,EAAIorC,EAAUlrC,GAChCu7G,GAAez7G,EAAIorC,EAAUlrC,EAC/B,EAGAu+E,SAAU,SAAkBz+E,EAAIorC,EAAUlrC,GACxCu7G,GAAez7G,EAAIorC,EAAUlrC,EAC/B,EAGA5wC,OAAQ,SAAgB0wC,EAAIorC,EAAUlrC,GAChCkrC,EAASl3H,QAAUk3H,EAASrpB,UAC9B05F,GAAez7G,EAAIorC,EAAUlrC,EAEjC,EAGAigC,iBAAkB,SAA0BngC,EAAIorC,EAAUlrC,GACpDkrC,EAASl3H,QAAUk3H,EAASrpB,UAC9B05F,GAAez7G,EAAIorC,EAAUlrC,EAEjC,EAGAkgC,OAAQ,SAAgBpgC,GACtB07G,GAAgB17G,EAClB,GCvHE67G,GAAiCvlH,GAAc,CACjDN,WAAY,CACV4lH,YAAaA,MCFbE,GAA+BxlH,GAAc,CAC/CN,WAAY,CACVqqC,UAAWA,MCKJ07E,GAAgCzlH,GAAc,CACvD1rC,QAAS,CACPotJ,cAAeA,GACfC,cAAeA,GACf/jB,gBAAiBA,GACjB2nB,kBAAmBA,GACnBhvE,eAAgBA,GAChBgrE,gBAAiBA,GACjBiE,gBAAiBA,MCJjBp8L,GAAO,eAEPu2E,GAAuBH,GAAe,CACxClrC,QAAS,CACPmtJ,iBAAkBA,GAClBgE,iBAAkBA,MAIlBC,GAA4B,CAC9B/lH,QAASA,GACTv2E,KAAMA,IAoRR,K,oCC5Sau8L,EAAA,MAAAA,EAAA,MAAAA,EAAA,MAAAA,EAAA,MAAAA,EAAA,MAEb,IAAIC,EAAoB,SAA2BhoM,GAClD,OAAOioM,EAAgBjoM,KAClBkoM,EAAUloM,EAChB,EAEA,SAASioM,EAAgBjoM,GACxB,QAASA,GAA0B,kBAAVA,CAC1B,CAEA,SAASkoM,EAAUloM,GAClB,IAAImoM,EAAc9pM,OAAO0B,UAAUyB,SAASrE,KAAK6C,GAEjD,MAAuB,oBAAhBmoM,GACa,kBAAhBA,GACAC,EAAepoM,EACpB,CAGA,IAAIqoM,EAAiC,oBAAXzoM,QAAyBA,OAAO0kH,IACtDgkF,EAAqBD,EAAezoM,OAAO0kH,IAAI,iBAAmB,MAEtE,SAAS8jF,EAAepoM,GACvB,OAAOA,EAAMuoM,WAAaD,CAC3B,CAEA,SAASE,EAAYriM,GACpB,OAAOnF,MAAMC,QAAQkF,GAAO,GAAK,CAAC,CACnC,CAEA,SAASsiM,EAA8BzoM,EAAOvD,GAC7C,OAA0B,IAAlBA,EAAQiyB,OAAmBjyB,EAAQurM,kBAAkBhoM,GAC1D0oM,EAAUF,EAAYxoM,GAAQA,EAAOvD,GACrCuD,CACJ,CAEA,SAAS2oM,EAAkB5pM,EAAQI,EAAQ1C,GAC1C,OAAOsC,EAAOhB,OAAOoB,GAAQ0F,KAAI,SAASc,GACzC,OAAO8iM,EAA8B9iM,EAASlJ,EAC/C,GACD,CAEA,SAASmsM,EAAiBvpM,EAAK5C,GAC9B,IAAKA,EAAQosM,YACZ,OAAOH,EAER,IAAIG,EAAcpsM,EAAQosM,YAAYxpM,GACtC,MAA8B,oBAAhBwpM,EAA6BA,EAAcH,CAC1D,CAEA,SAASI,EAAgC/pM,GACxC,OAAOV,OAAOC,sBACXD,OAAOC,sBAAsBS,GAAQP,QAAO,SAASsL,GACtD,OAAOzL,OAAOoC,qBAAqBtD,KAAK4B,EAAQ+K,EACjD,IACE,EACJ,CAEA,SAASi/L,EAAQhqM,GAChB,OAAOV,OAAOD,KAAKW,GAAQhB,OAAO+qM,EAAgC/pM,GACnE,CAEA,SAASiqM,EAAmB9qM,EAAQ2zB,GACnC,IACC,OAAOA,KAAY3zB,CACpB,CAAE,MAAMo6F,GACP,OAAO,CACR,CACD,CAGA,SAAS2wG,EAAiBlqM,EAAQM,GACjC,OAAO2pM,EAAmBjqM,EAAQM,MAC5BhB,OAAO2E,eAAe7F,KAAK4B,EAAQM,IACpChB,OAAOoC,qBAAqBtD,KAAK4B,EAAQM,GAC/C,CAEA,SAAS6pM,EAAYnqM,EAAQI,EAAQ1C,GACpC,IAAI0sM,EAAc,CAAC,EAiBnB,OAhBI1sM,EAAQurM,kBAAkBjpM,IAC7BgqM,EAAQhqM,GAAQK,SAAQ,SAASC,GAChC8pM,EAAY9pM,GAAOopM,EAA8B1pM,EAAOM,GAAM5C,EAC/D,IAEDssM,EAAQ5pM,GAAQC,SAAQ,SAASC,GAC5B4pM,EAAiBlqM,EAAQM,KAIzB2pM,EAAmBjqM,EAAQM,IAAQ5C,EAAQurM,kBAAkB7oM,EAAOE,IACvE8pM,EAAY9pM,GAAOupM,EAAiBvpM,EAAK5C,EAAtBmsM,CAA+B7pM,EAAOM,GAAMF,EAAOE,GAAM5C,GAE5E0sM,EAAY9pM,GAAOopM,EAA8BtpM,EAAOE,GAAM5C,GAEhE,IACO0sM,CACR,CAEA,SAAST,EAAU3pM,EAAQI,EAAQ1C,GAClCA,EAAUA,GAAW,CAAC,EACtBA,EAAQ2sM,WAAa3sM,EAAQ2sM,YAAcT,EAC3ClsM,EAAQurM,kBAAoBvrM,EAAQurM,mBAAqBA,EAGzDvrM,EAAQgsM,8BAAgCA,EAExC,IAAIY,EAAgBroM,MAAMC,QAAQ9B,GAC9BmqM,EAAgBtoM,MAAMC,QAAQlC,GAC9BwqM,EAA4BF,IAAkBC,EAElD,OAAKC,EAEMF,EACH5sM,EAAQ2sM,WAAWrqM,EAAQI,EAAQ1C,GAEnCysM,EAAYnqM,EAAQI,EAAQ1C,GAJ5BgsM,EAA8BtpM,EAAQ1C,EAM/C,CAEAisM,EAAUntD,IAAM,SAAsB7kD,EAAOj6F,GAC5C,IAAKuE,MAAMC,QAAQy1F,GAClB,MAAM,IAAIlmF,MAAM,qCAGjB,OAAOkmF,EAAM1xF,QAAO,SAAS4pH,EAAM/3G,GAClC,OAAO6xL,EAAU95E,EAAM/3G,EAAMpa,EAC9B,GAAG,CAAC,EACL,EAEA,IAAI+sM,EAAcd,EAElBrmM,EAAOrE,QAAUwrM,C,oCCjIjBnnM,EAAOrE,QAAU+pM,EAAAA,MAAAA,U;;;;;;;;wDCHV,SAAS0B,EAAiBvpH,GAC/B,IAAI92E,SAAc82E,EAClB,OAAa,OAANA,IAAwB,WAAT92E,GAA8B,aAATA,E,CAG7C,SAAgBqE,EAAWyyE,GACzB,MAAoB,oBAANA,C,CAOhB,IAAIn9E,OAAW,EAEbA,EADE/B,MAAMC,QACGD,MAAMC,QAEN,SAAUi/E,GACnB,MAA6C,mBAAtC7hF,OAAO0B,UAAUyB,SAASrE,KAAK+iF,E,EAI1C,IAAWj/E,EAAU8B,ECtBjBnB,EAAM,EACN8nM,OAAY,EACZC,OAAoB,EAEbC,EAAO,SAAc1lM,EAAUiJ,GACxC6yB,EAAMp+B,GAAOsC,EACb87B,EAAMp+B,EAAM,GAAKuL,EACjBvL,GAAO,EACK,IAARA,IAIE+nM,EACFA,EAAkBrkI,GAElBukI,I,EAKN,SAAgBC,EAAaC,GAC3BJ,EAAoBI,C,CAGtB,SAAgBC,EAAQC,GACtBL,EAAOK,C,CAGT,IAAIC,EAAkC,qBAAXjoM,OAAyBA,YAAS4D,EACzDskM,EAAgBD,GAAiB,CAAC,EAClCE,EAA0BD,EAAc1xH,kBAAoB0xH,EAAczxH,uBAC1E1iE,EAAyB,qBAAT7T,MAA2C,qBAAZgC,SAAyD,qBAA9B,CAAC,EAAE3C,SAASrE,KAAKgH,SAG3FkmM,EAAwC,qBAAtBC,mBAA8D,qBAAlBC,eAA2D,qBAAnBC,eAG1G,SAASC,IAGP,OAAO,WACL,OAAOtmM,QAAQipF,SAAS9nB,E,EAK5B,SAASolI,IACP,MAAyB,qBAAdhB,EACF,WACLA,EAAUpkI,E,EAIPqlI,G,CAGT,SAASC,IACP,IAAIC,EAAa,EACb7/E,EAAW,IAAIo/E,EAAwB9kI,GACvCpvD,EAAOiiE,SAAS2yH,eAAe,IAGnC,OAFA9/E,EAASQ,QAAQt1G,EAAM,CAAEutJ,eAAe,IAEjC,WACLvtJ,EAAKpQ,KAAO+kM,IAAeA,EAAa,C,EAK5C,SAASE,IACP,IAAIz3H,EAAU,IAAIk3H,eAElB,OADAl3H,EAAQ03H,MAAMC,UAAY3lI,EACnB,WACL,OAAOgO,EAAQ43H,MAAMC,YAAY,E,EAIrC,SAASR,IAGP,IAAIS,EAAmBtsL,WACvB,OAAO,WACL,OAAOssL,EAAiB9lI,EAAO,E,EAInC,IAAItlC,EAAQ,IAAIh/B,MAAM,KACtB,SAASskE,IACP,IAAK,IAAItmE,EAAI,EAAGA,EAAI4C,EAAK5C,GAAK,EAAG,CAC/B,IAAIkF,EAAW87B,EAAMhhC,GACjBmO,EAAM6yB,EAAMhhC,EAAI,GAEpBkF,EAASiJ,GAET6yB,EAAMhhC,QAAK6G,EACXm6B,EAAMhhC,EAAI,QAAK6G,C,CAGjBjE,EAAM,C,CAGR,SAASypM,IACP,IACE,IAAIC,EAAQhxL,SAAS,cAATA,GAA0BytL,QAAQ,SAE9C,OADA2B,EAAY4B,EAAMC,WAAaD,EAAME,aAC9Bd,G,CACP,MAAO3jM,GACP,OAAO4jM,G,EAIX,IAAId,OAAgB,EC1GL,SAAS77L,EAAKy9L,EAAeC,GAC1C,IAAIzuM,EAASH,KAETi/F,EAAQ,IAAIj/F,KAAKgD,YAAYguH,QAEPjoH,IAAtBk2F,EAAM4vG,IACRC,EAAY7vG,GAGd,IAAIr8C,EAASziD,EAAOyiD,OAGpB,GAAIA,EAAQ,CACV,IAAIx7C,EAAWjF,UAAUygD,EAAS,GAClCkqJ,GAAK,WACH,OAAOiC,EAAensJ,EAAQq8C,EAAO73F,EAAUjH,EAAO6uM,Q,SAGxDC,EAAU9uM,EAAQ8+F,EAAO0vG,EAAeC,GAG1C,OAAO3vG,C,CCQT,SAAwBiwG,EAAQ9tM,GAE9B,IAAImhB,EAAcviB,KAElB,GAAIoB,GAA4B,kBAAXA,GAAuBA,EAAO4B,cAAgBuf,EACjE,OAAOnhB,EAGT,IAAI+tM,EAAU,IAAI5sL,EAAYyuG,GAE9B,OADA1tE,EAAS6rJ,EAAS/tM,GACX+tM,C,CFsEPpC,EADE7zL,EACcy0L,IACPL,EACOQ,IACPP,EACOU,SACWllM,IAAlBqkM,EACOmB,IAEAV,IGlHX,IAAIgB,EAAa3/L,KAAKuoB,SAAS/yB,SAAS,IAAI8uB,UAAU,GAE7D,SAASw9F,IAAQ,CAEjB,IAAIhxE,OAAU,EACVovJ,EAAY,EACZhvJ,EAAW,EAEf,SAASivJ,IACP,OAAO,IAAIrqM,UAAU,2C,CAGvB,SAASsqM,IACP,OAAO,IAAItqM,UAAU,uD,CAGvB,SAASuqM,EAAQC,EAAMtsM,EAAOusM,EAAoBC,GAChD,IACEF,EAAKnvM,KAAK6C,EAAOusM,EAAoBC,E,CACrC,MAAOzlM,GACP,OAAOA,C,EAIX,SAAS0lM,EAAsBR,EAASS,EAAUJ,GAChD1C,GAAK,SAAUqC,GACb,IAAIU,GAAS,EACTxlM,EAAQklM,EAAQC,EAAMI,GAAU,SAAU1sM,GACxC2sM,IAGJA,GAAS,EACLD,IAAa1sM,EACfogD,EAAQ6rJ,EAASjsM,GAEjB4sM,EAAQX,EAASjsM,G,IAElB,SAAUumC,GACPomK,IAGJA,GAAS,EAETtsJ,EAAO4rJ,EAAS1lK,G,GACf,YAAc0lK,EAAQxxD,QAAU,sBAE9BkyD,GAAUxlM,IACbwlM,GAAS,EACTtsJ,EAAO4rJ,EAAS9kM,G,GAEjB8kM,E,CAGL,SAASY,EAAkBZ,EAASS,GAC9BA,EAAShtJ,SAAWwsJ,EACtBU,EAAQX,EAASS,EAASZ,SACjBY,EAAShtJ,SAAWxC,EAC7BmD,EAAO4rJ,EAASS,EAASZ,SAEzBC,EAAUW,OAAU7mM,GAAW,SAAU7F,GACvC,OAAOogD,EAAQ6rJ,EAASjsM,E,IACvB,SAAUumC,GACX,OAAO8Z,EAAO4rJ,EAAS1lK,E,IAK7B,SAASumK,EAAoBb,EAASc,EAAeT,GAC/CS,EAAcjtM,cAAgBmsM,EAAQnsM,aAAewsM,IAASt+L,GAAgB++L,EAAcjtM,YAAYsgD,UAAY4rJ,EACtHa,EAAkBZ,EAASc,QAEdlnM,IAATymM,EACFM,EAAQX,EAASc,GACRt/L,EAAW6+L,GACpBG,EAAsBR,EAASc,EAAeT,GAE9CM,EAAQX,EAASc,E,CAKvB,SAAS3sJ,EAAQ6rJ,EAASjsM,GACxB,GAAIisM,IAAYjsM,EACdqgD,EAAO4rJ,EAASE,UACX,GAAI1C,EAAiBzpM,GAAQ,CAClC,IAAIssM,OAAO,EACX,IACEA,EAAOtsM,EAAMgO,I,CACb,MAAO7G,GAEP,YADAk5C,EAAO4rJ,EAAS9kM,E,CAGlB2lM,EAAoBb,EAASjsM,EAAOssM,E,MAEpCM,EAAQX,EAASjsM,E,CAIrB,SAASgtM,EAAiBf,GACpBA,EAAQgB,UACVhB,EAAQgB,SAAShB,EAAQH,SAG3BoB,EAAQjB,E,CAGV,SAASW,EAAQX,EAASjsM,GACpBisM,EAAQvsJ,SAAW5C,IAIvBmvJ,EAAQH,QAAU9rM,EAClBisM,EAAQvsJ,OAASwsJ,EAEmB,IAAhCD,EAAQkB,aAAajuM,QACvB0qM,EAAKsD,EAASjB,G,CAIlB,SAAS5rJ,EAAO4rJ,EAAS1lK,GACnB0lK,EAAQvsJ,SAAW5C,IAGvBmvJ,EAAQvsJ,OAASxC,EACjB+uJ,EAAQH,QAAUvlK,EAElBqjK,EAAKoD,EAAkBf,G,CAGzB,SAASF,EAAU9uM,EAAQ8+F,EAAO0vG,EAAeC,GAC/C,IAAIyB,EAAelwM,EAAOkwM,aACtBjuM,EAASiuM,EAAajuM,OAG1BjC,EAAOgwM,SAAW,KAElBE,EAAajuM,GAAU68F,EACvBoxG,EAAajuM,EAASgtM,GAAaT,EACnC0B,EAAajuM,EAASg+C,GAAYwuJ,EAEnB,IAAXxsM,GAAgBjC,EAAOyiD,QACzBkqJ,EAAKsD,EAASjwM,E,CAIlB,SAASiwM,EAAQjB,GACf,IAAImB,EAAcnB,EAAQkB,aACtBE,EAAUpB,EAAQvsJ,OAEtB,GAA2B,IAAvB0tJ,EAAYluM,OAAhB,CAQA,IAJA,IAAI68F,OAAQ,EACR73F,OAAW,EACXi1B,EAAS8yK,EAAQH,QAEZ9sM,EAAI,EAAGA,EAAIouM,EAAYluM,OAAQF,GAAK,EAC3C+8F,EAAQqxG,EAAYpuM,GACpBkF,EAAWkpM,EAAYpuM,EAAIquM,GAEvBtxG,EACF8vG,EAAewB,EAAStxG,EAAO73F,EAAUi1B,GAEzCj1B,EAASi1B,GAIb8yK,EAAQkB,aAAajuM,OAAS,C,EAGhC,SAAS2sM,EAAewB,EAASpB,EAAS/nM,EAAUi1B,GAClD,IAAIm0K,EAAc7/L,EAAWvJ,GACzBlE,OAAQ,EACRmH,OAAQ,EACRomM,GAAY,EAEhB,GAAID,EAAa,CACf,IACEttM,EAAQkE,EAASi1B,E,CACjB,MAAOpyB,GACPwmM,GAAY,EACZpmM,EAAQJ,C,CAGV,GAAIklM,IAAYjsM,EAEd,YADAqgD,EAAO4rJ,EAASG,I,MAIlBpsM,EAAQm5B,EAGN8yK,EAAQvsJ,SAAW5C,IAEZwwJ,GAAeC,EACxBntJ,EAAQ6rJ,EAASjsM,IACM,IAAdutM,EACTltJ,EAAO4rJ,EAAS9kM,GACPkmM,IAAYnB,EACrBU,EAAQX,EAASjsM,GACRqtM,IAAYnwJ,GACrBmD,EAAO4rJ,EAASjsM,G,CAIpB,SAASwtM,EAAkBvB,EAAS5gC,GAClC,IACEA,GAAS,SAAwBrrK,GAC/BogD,EAAQ6rJ,EAASjsM,E,IAChB,SAAuBumC,GACxB8Z,EAAO4rJ,EAAS1lK,E,IAElB,MAAOx/B,GACPs5C,EAAO4rJ,EAASllM,E,EAIpB,IAAI2uB,EAAK,EACT,SAASmmB,IACP,OAAOnmB,G,CAGT,SAASk2K,EAAYK,GACnBA,EAAQN,GAAcj2K,IACtBu2K,EAAQvsJ,YAAS75C,EACjBomM,EAAQH,aAAUjmM,EAClBomM,EAAQkB,aAAe,E,CC/NzB,SAASM,IACP,OAAO,IAAIj9L,MAAM,0C,CAGnB,IAAIk9L,EAAa,WACf,SAASA,EAAWruL,EAAa2jB,GAC/BlmC,KAAK6wM,qBAAuBtuL,EAC5BviB,KAAKmvM,QAAU,IAAI5sL,EAAYyuG,GAE1BhxH,KAAKmvM,QAAQN,IAChBC,EAAY9uM,KAAKmvM,SAGfhrM,EAAQ+hC,IACVlmC,KAAKoC,OAAS8jC,EAAM9jC,OACpBpC,KAAK8wM,WAAa5qK,EAAM9jC,OAExBpC,KAAKgvM,QAAU,IAAI9qM,MAAMlE,KAAKoC,QAEV,IAAhBpC,KAAKoC,OACP0tM,EAAQ9vM,KAAKmvM,QAASnvM,KAAKgvM,UAE3BhvM,KAAKoC,OAASpC,KAAKoC,QAAU,EAC7BpC,KAAK+wM,WAAW7qK,GACQ,IAApBlmC,KAAK8wM,YACPhB,EAAQ9vM,KAAKmvM,QAASnvM,KAAKgvM,WAI/BzrJ,EAAOvjD,KAAKmvM,QAASwB,I,CA8EzB,OA1EAC,EAAW3tM,UAAU8tM,WAAa,SAAoB7qK,GACpD,IAAK,IAAIhkC,EAAI,EAAGlC,KAAK4iD,SAAW5C,GAAW99C,EAAIgkC,EAAM9jC,OAAQF,IAC3DlC,KAAKgxM,WAAW9qK,EAAMhkC,GAAIA,E,EAI9B0uM,EAAW3tM,UAAU+tM,WAAa,SAAoB3yL,EAAOnc,GAC3D,IAAIsG,EAAIxI,KAAK6wM,qBACTI,EAAUzoM,EAAE86C,QAGhB,GAAI2tJ,IAAY/B,EAAiB,CAC/B,IAAIhsJ,OAAQ,EACR74C,OAAQ,EACR6mM,GAAW,EACf,IACEhuJ,EAAQ7kC,EAAMnN,I,CACd,MAAOjH,GACPinM,GAAW,EACX7mM,EAAQJ,C,CAGV,GAAIi5C,IAAUhyC,GAAgBmN,EAAMukC,SAAW5C,EAC7ChgD,KAAKmxM,WAAW9yL,EAAMukC,OAAQ1gD,EAAGmc,EAAM2wL,cAClC,GAAqB,oBAAV9rJ,EAChBljD,KAAK8wM,aACL9wM,KAAKgvM,QAAQ9sM,GAAKmc,OACb,GAAI7V,IAAM4oM,GAAS,CACxB,IAAIjC,EAAU,IAAI3mM,EAAEwoH,GAChBkgF,EACF3tJ,EAAO4rJ,EAAS9kM,GAEhB2lM,EAAoBb,EAAS9wL,EAAO6kC,GAEtCljD,KAAKqxM,cAAclC,EAASjtM,E,MAE5BlC,KAAKqxM,cAAc,IAAI7oM,GAAE,SAAUyoM,GACjC,OAAOA,EAAQ5yL,E,IACbnc,E,MAGNlC,KAAKqxM,cAAcJ,EAAQ5yL,GAAQnc,E,EAIvC0uM,EAAW3tM,UAAUkuM,WAAa,SAAoB51K,EAAOr5B,EAAGgB,GAC9D,IAAIisM,EAAUnvM,KAAKmvM,QAGfA,EAAQvsJ,SAAW5C,IACrBhgD,KAAK8wM,aAEDv1K,IAAU6kB,EACZmD,EAAO4rJ,EAASjsM,GAEhBlD,KAAKgvM,QAAQ9sM,GAAKgB,GAIE,IAApBlD,KAAK8wM,YACPhB,EAAQX,EAASnvM,KAAKgvM,Q,EAI1B4B,EAAW3tM,UAAUouM,cAAgB,SAAuBlC,EAASjtM,GACnE,IAAIovM,EAAatxM,KAEjBivM,EAAUE,OAASpmM,GAAW,SAAU7F,GACtC,OAAOouM,EAAWH,WAAW/B,EAAWltM,EAAGgB,E,IAC1C,SAAUumC,GACX,OAAO6nK,EAAWH,WAAW/wJ,EAAUl+C,EAAGunC,E,KAIvCmnK,C,CAvGQ,GCkCjB,SAAwBnyD,EAAI9vB,GAC1B,OAAO,IAAIiiF,EAAW5wM,KAAM2uH,GAASwgF,O,CCiBvC,SAAwBoC,EAAK5iF,GAE3B,IAAIpsG,EAAcviB,KAElB,OAAKmE,EAAQwqH,GAKJ,IAAIpsG,GAAY,SAAU+gC,EAASC,GAExC,IADA,IAAInhD,EAASusH,EAAQvsH,OACZF,EAAI,EAAGA,EAAIE,EAAQF,IAC1BqgB,EAAY+gC,QAAQqrE,EAAQzsH,IAAIgP,KAAKoyC,EAASC,E,IAP3C,IAAIhhC,GAAY,SAAUi5E,EAAGj4C,GAClC,OAAOA,EAAO,IAAIv+C,UAAU,mC,ICrClC,SAAwBwsM,EAAO/nK,GAE7B,IAAIlnB,EAAcviB,KACdmvM,EAAU,IAAI5sL,EAAYyuG,GAE9B,OADAztE,EAAQ4rJ,EAAS1lK,GACV0lK,C,CC7BT,SAASsC,KACP,MAAM,IAAIzsM,UAAU,qF,CAGtB,SAAS0sM,KACP,MAAM,IAAI1sM,UAAU,wH,CA2GtB,IAAIosM,GAAU,WACZ,SAAS31H,EAAQ8yF,GACfvuK,KAAK6uM,GAAc9vJ,IACnB/+C,KAAKgvM,QAAUhvM,KAAK4iD,YAAS75C,EAC7B/I,KAAKqwM,aAAe,GAEhBr/E,IAASu9C,IACS,oBAAbA,GAA2BkjC,KAClCzxM,gBAAgBy7E,EAAUi1H,EAAkB1wM,KAAMuuK,GAAYmjC,K,CA6PlE,OA/DAj2H,EAAQx4E,UAAUs/E,MAAQ,SAAgBqsH,GACxC,OAAO5uM,KAAKkR,KAAK,KAAM09L,E,EA2CzBnzH,EAAQx4E,UAAU49C,QAAU,SAAkBz5C,GAC5C,IAAI+nM,EAAUnvM,KACVgD,EAAcmsM,EAAQnsM,YAE1B,OAAI2N,EAAWvJ,GACN+nM,EAAQj+L,MAAK,SAAUhO,GAC5B,OAAOF,EAAYsgD,QAAQl8C,KAAY8J,MAAK,WAC1C,OAAOhO,C,OAER,SAAUumC,GACX,OAAOzmC,EAAYsgD,QAAQl8C,KAAY8J,MAAK,WAC1C,MAAMu4B,C,OAKL0lK,EAAQj+L,KAAK9J,EAAUA,E,EAGzBq0E,C,CArQK,GC3Hd,SAEwBk2H,KACtB,IAAIC,OAAQ,EAEZ,GAAsB,qBAAXxsM,EAAAA,EACTwsM,EAAQxsM,EAAAA,OACH,GAAoB,qBAATC,KAChBusM,EAAQvsM,UAER,IACEusM,EAAQp0L,SAAS,cAATA,E,CACR,MAAOvT,GACP,MAAM,IAAIyJ,MAAM,2E,CAIpB,IAAIm+L,EAAID,EAAMn2H,QAEd,GAAIo2H,EAAG,CACL,IAAIC,EAAkB,KACtB,IACEA,EAAkBvwM,OAAO0B,UAAUyB,SAASrE,KAAKwxM,EAAEvuJ,U,CACnD,MAAOr5C,G,CAIT,GAAwB,qBAApB6nM,IAA2CD,EAAEE,KAC/C,M,CAIJH,EAAMn2H,QAAU21H,E,QDmWlBA,GAAQnuM,UAAUiO,KAAOA,EACzBkgM,GACQ3yD,IAAMA,EACd2yD,GAAQG,KAAOA,EACfH,GAAQ9tJ,QAAU4rJ,EAClBkC,GAAQ7tJ,OAASiuJ,EACjBJ,GAAQY,cAAgBhF,EACxBoE,GAAQa,SAAW/E,EACnBkE,GAAQc,MAAQpF,EExYhBsE,GAAQO,SAAWA,GACnBP,GAAQ31H,QAAU21H,G,0ICLPe,EAAQ,CACf,WACA,UACA,cACA,YACA,YACA,gBACA,SACA,gBACA,UACA,gBACA,eACA,yBAEOnhL,EAAW,CAClBohL,SAAU,GACVC,YAAY,EACZC,qBAAqB,EACrBC,UAAW,SACXC,UAAU,EACVC,cAAe,qBACfC,QAA2B,kBAAXvtM,SACoC,IAAhDA,OAAOo2E,UAAU1lD,UAAUryB,QAAQ,QACvCmvM,eAAgB,SAChBC,qBAAqB,EACrBC,YAAY,EACZC,eAAe,EACfC,YAAa,KACbC,WAAY,QACZC,YAAa,GACbC,cAAe,EACfC,eAAgB,EAChBn2B,QAAS,GACTo2B,eAAe,EACfC,eAAe,EACfC,YAAY,EACZC,aAAc,SAAUr5L,GACpB,MAA0B,qBAAZ9P,SAA2BA,QAAQu5E,KAAKzpE,EAC1D,EACAs5L,QAAS,SAAUC,GACf,IAAI1jL,EAAO,IAAInT,KAAK62L,EAAU12L,WAC9BgT,EAAKisI,SAAS,EAAG,EAAG,EAAG,GACvBjsI,EAAKstF,QAAQttF,EAAKssF,UAAY,GAAMtsF,EAAK40F,SAAW,GAAK,GACzD,IAAI+uF,EAAQ,IAAI92L,KAAKmT,EAAKosF,cAAe,EAAG,GAC5C,OAAQ,EACJjtG,KAAK83B,QAAQjX,EAAKhT,UAAY22L,EAAM32L,WAAa,MAC7C,GACE22L,EAAM/uF,SAAW,GAAK,GACxB,EACZ,EACAgvF,cAAe,EACfC,qBAAsB,GACtB1hE,QAAQ,EACRp1B,OAAQ,UACR+2F,gBAAiB,EACjBxtG,KAAM,SACNytG,kBAAmB,WACnBC,UAAW,yOACXC,YAAY,EACZn3L,IAAK,IAAID,KACTglI,SAAU,GACV0oB,QAAS,GACT2pC,YAAa,GACbC,UAAW,GACXC,UAAW,GACXC,cAAe,GACfC,OAAQ,GACRC,cAAe,GACfC,QAAS,GACTC,cAAe,GACfC,aAAc,GACdC,sBAAuB,GACvB96J,QAAS,GACTinD,SAAU,OACV8zG,qBAAiB5rM,EACjB6rM,UAAW,uOACXC,uBAAuB,EACvBC,WAAY,EACZrsC,QAAQ,EACRssC,WAAW,EACXC,aAAa,EACb7mD,MAAM,GCjFC8mD,EAAU,CACjBC,SAAU,CACNC,UAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtDC,SAAU,CACN,SACA,SACA,UACA,YACA,WACA,SACA,aAGRC,OAAQ,CACJF,UAAW,CACP,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJC,SAAU,CACN,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,aAGR3wF,YAAa,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAC1D6wF,eAAgB,EAChBC,QAAS,SAAUC,GACf,IAAIxtM,EAAIwtM,EAAM,IACd,GAAIxtM,EAAI,GAAKA,EAAI,GACb,MAAO,KACX,OAAQA,EAAI,IACR,KAAK,EACD,MAAO,KACX,KAAK,EACD,MAAO,KACX,KAAK,EACD,MAAO,KACX,QACI,MAAO,KAEnB,EACAytM,eAAgB,OAChBC,iBAAkB,KAClBC,YAAa,sBACbC,YAAa,kBACbC,KAAM,CAAC,KAAM,MACbC,cAAe,OACfC,eAAgB,QAChBC,cAAe,OACfC,gBAAiB,SACjBlB,WAAW,GAEf,ICvEWmB,EAAM,SAAU/9K,EAAQ/1B,GAE/B,YADe,IAAXA,IAAqBA,EAAS,IAC1B,MAAQ+1B,GAAQxzB,OAAgB,EAAVvC,EAClC,EACW+zM,EAAM,SAAUC,GAAQ,OAAiB,IAATA,EAAgB,EAAI,CAAI,EAC5D,SAAS95E,EAAS7hH,EAAI47L,GACzB,IAAIpvL,EACJ,OAAO,WACH,IAAIzK,EAAQxc,KACRg8B,EAAO75B,UACX+f,aAAa+E,GACbA,EAAIjF,YAAW,WAAc,OAAOvH,EAAG1Y,MAAMya,EAAOwf,EAAO,GAAGq6K,EAClE,CACJ,CACO,IAAIC,EAAW,SAAUzzM,GAC5B,OAAOA,aAAeqB,MAAQrB,EAAM,CAACA,EACzC,EChBO,SAAS6tI,EAAY6lE,EAAM1wL,EAAWuwL,GACzC,IAAa,IAATA,EACA,OAAOG,EAAKhsM,UAAUhK,IAAIslB,GAC9B0wL,EAAKhsM,UAAUkjD,OAAO5nC,EAC1B,CACO,SAAS3Y,EAAcnD,EAAK8b,EAAWs/E,GAC1C,IAAIl7F,EAAI9E,OAAOk2E,SAASnuE,cAAcnD,GAMtC,OALA8b,EAAYA,GAAa,GACzBs/E,EAAUA,GAAW,GACrBl7F,EAAE4b,UAAYA,OACE9c,IAAZo8F,IACAl7F,EAAEivG,YAAc/T,GACbl7F,CACX,CACO,SAASusM,EAAUp9L,GACtB,MAAOA,EAAKq9L,WACRr9L,EAAKmkF,YAAYnkF,EAAKq9L,WAC9B,CACO,SAASC,EAAWt9L,EAAMu9L,GAC7B,OAAIA,EAAUv9L,GACHA,EACFA,EAAKujF,WACH+5G,EAAWt9L,EAAKujF,WAAYg6G,QADlC,CAGT,CACO,SAASC,EAAkBC,EAAgBC,GAC9C,IAAIC,EAAU7pM,EAAc,MAAO,mBAAoB8pM,EAAW9pM,EAAc,QAAS,YAAc2pM,GAAiBI,EAAU/pM,EAAc,OAAQ,WAAYgqM,EAAYhqM,EAAc,OAAQ,aAQtM,IAPiD,IAA7CquE,UAAU1lD,UAAUryB,QAAQ,YAC5BwzM,EAAS1qM,KAAO,UAGhB0qM,EAAS1qM,KAAO,OAChB0qM,EAASrmB,QAAU,aAEV5nL,IAAT+tM,EACA,IAAK,IAAIv0M,KAAOu0M,EACZE,EAASx3G,aAAaj9F,EAAKu0M,EAAKv0M,IAIxC,OAHAw0M,EAAQ5zC,YAAY6zC,GACpBD,EAAQ5zC,YAAY8zC,GACpBF,EAAQ5zC,YAAY+zC,GACbH,CACX,CACO,SAASI,EAAeztJ,GAC3B,IACI,GAAkC,oBAAvBA,EAAM0tJ,aAA6B,CAC1C,IAAI14L,EAAOgrC,EAAM0tJ,eACjB,OAAO14L,EAAK,EAChB,CACA,OAAOgrC,EAAMznD,MACjB,CACA,MAAOoI,GACH,OAAOq/C,EAAMznD,MACjB,CACJ,CCpDA,IAAIo1M,EAAY,WAAgC,EACrCC,EAAa,SAAUC,EAAapC,EAAWr4F,GAAU,OAAOA,EAAOu4F,OAAOF,EAAY,YAAc,YAAYoC,EAAc,EAClIC,EAAY,CACnBC,EAAGJ,EACHK,EAAG,SAAUC,EAASC,EAAW96F,GAC7B66F,EAAQp6F,SAAST,EAAOu4F,OAAOD,SAAS5xM,QAAQo0M,GACpD,EACAC,EAAG,SAAUF,EAASvwK,GAClBuwK,EAAQ37C,UAAU27C,EAAQt6C,YAAc,GAAK,GAAK,GAAKn+F,WAAW93B,GACtE,EACA0wK,EAAG,SAAUH,EAASvwK,GAClBuwK,EAAQ37C,SAAS98F,WAAW93B,GAChC,EACA2wK,EAAG,SAAUJ,EAASz7F,GAClBy7F,EAAQt6F,QAAQn+C,WAAWg9C,GAC/B,EACA87F,EAAG,SAAUL,EAAS9B,EAAM/4F,GACxB66F,EAAQ37C,SAAU27C,EAAQt6C,WAAa,GACnC,GAAK84C,EAAI,IAAI9tI,OAAOy0C,EAAO+4F,KAAK,GAAI,KAAKhxM,KAAKgxM,IACtD,EACAoC,EAAG,SAAUN,EAASO,EAAYp7F,GAC9B66F,EAAQp6F,SAAST,EAAOu4F,OAAOF,UAAU3xM,QAAQ00M,GACrD,EACAC,EAAG,SAAUR,EAASv+C,GAClBu+C,EAAQz7C,WAAWh9F,WAAWk6F,GAClC,EACAg/C,EAAG,SAAU58G,EAAG68G,GAAe,OAAO,IAAIz7L,KAA+B,IAA1BsiD,WAAWm5I,GAAsB,EAChFC,EAAG,SAAUX,EAASY,EAASz7F,GAC3B,IAAI07F,EAAa1rM,SAASyrM,GACtBxoL,EAAO,IAAInT,KAAK+6L,EAAQx7F,cAAe,EAAG,EAAuB,GAAlBq8F,EAAa,GAAQ,EAAG,EAAG,EAAG,GAEjF,OADAzoL,EAAKstF,QAAQttF,EAAKssF,UAAYtsF,EAAK40F,SAAW7H,EAAOw4F,gBAC9CvlL,CACX,EACA0oL,EAAG,SAAUd,EAAS37F,GAClB27F,EAAQj6F,YAAYx+C,WAAW88C,GACnC,EACA08F,EAAG,SAAUl9G,EAAGm9G,GAAW,OAAO,IAAI/7L,KAAK+7L,EAAU,EACrDh9L,EAAG,SAAUg8L,EAASz7F,GAClBy7F,EAAQt6F,QAAQn+C,WAAWg9C,GAC/B,EACAp7G,EAAG,SAAU62M,EAASvwK,GAClBuwK,EAAQ37C,UAAU27C,EAAQt6C,YAAc,GAAK,GAAK,GAAKn+F,WAAW93B,GACtE,EACAllC,EAAG,SAAUy1M,EAASx+C,GAClBw+C,EAAQ17C,WAAW/8F,WAAWi6F,GAClC,EACA1xI,EAAG,SAAUkwL,EAASz7F,GAClBy7F,EAAQt6F,QAAQn+C,WAAWg9C,GAC/B,EACAl2G,EAAGqxM,EACHuB,EAAG,SAAUjB,EAAS17F,GAClB07F,EAAQp6F,SAASr+C,WAAW+8C,GAAS,EACzC,EACAx3G,EAAG,SAAUkzM,EAAS17F,GAClB07F,EAAQp6F,SAASr+C,WAAW+8C,GAAS,EACzC,EACAj0G,EAAG,SAAU2vM,EAASv+C,GAClBu+C,EAAQz7C,WAAWh9F,WAAWk6F,GAClC,EACAy/C,EAAG,SAAUr9G,EAAGs9G,GACZ,OAAO,IAAIl8L,KAAKsiD,WAAW45I,GAC/B,EACAjnM,EAAGwlM,EACHnpH,EAAG,SAAUypH,EAAS37F,GAClB27F,EAAQj6F,YAAY,IAAOx+C,WAAW88C,GAC1C,GAEO+8F,EAAa,CACpBtB,EAAG,GACHC,EAAG,GACHG,EAAG,eACHC,EAAG,eACHC,EAAG,mBACHC,EAAG,GACHC,EAAG,GACHE,EAAG,eACHC,EAAG,OACHE,EAAG,eACHG,EAAG,WACHC,EAAG,OACH/8L,EAAG,eACH7a,EAAG,eACHoB,EAAG,eACHulB,EAAG,eACHzhB,EAAG,GACH4yM,EAAG,eACHn0M,EAAG,eACHuD,EAAG,eACH6wM,EAAG,OACHhnM,EAAG,eACHq8E,EAAG,YAEI8qH,EAAU,CACjBN,EAAG,SAAU3oL,GAAQ,OAAOA,EAAKD,aAAe,EAChD2nL,EAAG,SAAU1nL,EAAM+sF,EAAQn9G,GACvB,OAAOm9G,EAAOo4F,SAASC,UAAU6D,EAAQnnM,EAAEke,EAAM+sF,EAAQn9G,GAC7D,EACA+3M,EAAG,SAAU3nL,EAAM+sF,EAAQn9G,GACvB,OAAO23M,EAAW0B,EAAQv0M,EAAEsrB,EAAM+sF,EAAQn9G,GAAW,GAAG,EAAOm9G,EACnE,EACA+6F,EAAG,SAAU9nL,EAAM+sF,EAAQn9G,GACvB,OAAOu2M,EAAI8C,EAAQl4M,EAAEivB,EAAM+sF,EAAQn9G,GACvC,EACAm4M,EAAG,SAAU/nL,GAAQ,OAAOmmL,EAAInmL,EAAKstI,WAAa,EAClD06C,EAAG,SAAUhoL,EAAM+sF,GACf,YAA0B/zG,IAAnB+zG,EAAOy4F,QACRxlL,EAAKssF,UAAYS,EAAOy4F,QAAQxlL,EAAKssF,WACrCtsF,EAAKssF,SACf,EACA27F,EAAG,SAAUjoL,EAAM+sF,GAAU,OAAOA,EAAO+4F,KAAKM,EAAIpmL,EAAKstI,WAAa,IAAM,EAC5E46C,EAAG,SAAUloL,EAAM+sF,GACf,OAAOw6F,EAAWvnL,EAAKqsF,YAAY,EAAMU,EAC7C,EACAq7F,EAAG,SAAUpoL,GAAQ,OAAOmmL,EAAInmL,EAAKwtI,aAAe,EACpD66C,EAAG,SAAUroL,GAAQ,OAAOA,EAAKhT,UAAY,GAAM,EACnDu7L,EAAG,SAAUvoL,EAAMyrE,EAAG77F,GAClB,OAAOA,EAAQ6zM,QAAQzjL,EAC3B,EACA0oL,EAAG,SAAU1oL,GAAQ,OAAOmmL,EAAInmL,EAAKosF,cAAe,EAAI,EACxDxgG,EAAG,SAAUoU,GAAQ,OAAOmmL,EAAInmL,EAAKssF,UAAY,EACjDv7G,EAAG,SAAUivB,GAAQ,OAAQA,EAAKstI,WAAa,GAAKttI,EAAKstI,WAAa,GAAK,EAAK,EAChFn7J,EAAG,SAAU6tB,GAAQ,OAAOmmL,EAAInmL,EAAKutI,aAAe,EACpD71I,EAAG,SAAUsI,GAAQ,OAAOA,EAAKssF,SAAW,EAC5Cr2G,EAAG,SAAU+pB,EAAM+sF,GACf,OAAOA,EAAOo4F,SAASE,SAASrlL,EAAK40F,SACzC,EACAi0F,EAAG,SAAU7oL,GAAQ,OAAOmmL,EAAInmL,EAAKqsF,WAAa,EAAI,EACtD33G,EAAG,SAAUsrB,GAAQ,OAAOA,EAAKqsF,WAAa,CAAG,EACjDp0G,EAAG,SAAU+nB,GAAQ,OAAOA,EAAKwtI,YAAc,EAC/Cs7C,EAAG,SAAU9oL,GAAQ,OAAOA,EAAKhT,SAAW,EAC5ClL,EAAG,SAAUke,GAAQ,OAAOA,EAAK40F,QAAU,EAC3Cz2B,EAAG,SAAUn+D,GAAQ,OAAOtjB,OAAOsjB,EAAKosF,eAAe3oF,UAAU,EAAI,GCjI9DupF,EAAsB,SAAUnhG,GACvC,IAAIqwB,EAAKrwB,EAAG8kB,OAAQA,OAAgB,IAAPuL,EAAgBjb,EAAWib,EAAIgtK,EAAKr9L,EAAGs9L,KAAMA,OAAc,IAAPD,EAAgBhE,EAAUgE,EAAI1vG,EAAK3tF,EAAGu9L,SAAUA,OAAkB,IAAP5vG,GAAwBA,EACpK,OAAO,SAAUouG,EAASyB,EAAMC,GAC5B,IAAIv8F,EAASu8F,GAAkBH,EAC/B,YAA0BnwM,IAAtB23B,EAAO44K,YAA6BH,EAGjCC,EACF9yM,MAAM,IACNyB,KAAI,SAAUS,EAAGtG,EAAG2B,GACrB,OAAOm1M,EAAQxwM,IAAqB,OAAf3E,EAAI3B,EAAI,GACvB82M,EAAQxwM,GAAGmvM,EAAS76F,EAAQp8E,GACtB,OAANl4B,EACIA,EACA,EACd,IACKjC,KAAK,IAXCm6B,EAAO44K,WAAW3B,EAASyB,EAAMt8F,EAYhD,CACJ,EACWy8F,EAAmB,SAAU39L,GACpC,IAAIqwB,EAAKrwB,EAAG8kB,OAAQA,OAAgB,IAAPuL,EAAgBjb,EAAWib,EAAIgtK,EAAKr9L,EAAGs9L,KAAMA,OAAc,IAAPD,EAAgBhE,EAAUgE,EAC3G,OAAO,SAAUlpL,EAAMypL,EAAaC,EAAUC,GAC1C,GAAa,IAAT3pL,GAAeA,EAAnB,CAEA,IACI4pL,EADA78F,EAAS48F,GAAgBR,EAEzBU,EAAW7pL,EACf,GAAIA,aAAgBnT,KAChB+8L,EAAa,IAAI/8L,KAAKmT,EAAKhT,gBAC1B,GAAoB,kBAATgT,QACKhnB,IAAjBgnB,EAAKorE,QACLw+G,EAAa,IAAI/8L,KAAKmT,QACrB,GAAoB,kBAATA,EAAmB,CAC/B,IAAI7c,EAASsmM,IAAgB94K,GAAU1P,GAAUgiL,WAC7C6G,EAAUptM,OAAOsjB,GAAM9nB,OAC3B,GAAgB,UAAZ4xM,EACAF,EAAa,IAAI/8L,KACjB68L,GAAW,OAEV,GAAI/4K,GAAUA,EAAOo5K,UACtBH,EAAaj5K,EAAOo5K,UAAU/pL,EAAM7c,QAEnC,GAAI,KAAKrO,KAAKg1M,IACf,OAAOh1M,KAAKg1M,GACZF,EAAa,IAAI/8L,KAAKmT,OAErB,CAED,IADA,IAAIsyG,OAAU,EAAQ0H,EAAM,GACnB7nI,EAAI,EAAG63M,EAAa,EAAGC,EAAW,GAAI93M,EAAIgR,EAAO9Q,OAAQF,IAAK,CACnE,IAAI+3M,EAAQ/mM,EAAOhR,GACfg4M,EAAwB,OAAVD,EACdE,EAA4B,OAAlBjnM,EAAOhR,EAAI,IAAeg4M,EACxC,GAAInB,EAAWkB,KAAWE,EAAS,CAC/BH,GAAYjB,EAAWkB,GACvB,IAAItzM,EAAQ,IAAI0hE,OAAO2xI,GAAU7uK,KAAKpb,GAClCppB,IAAU07H,GAAU,IACpB0H,EAAc,MAAVkwE,EAAgB,OAAS,WAAW,CACpCx/L,GAAI+8L,EAAUyC,GACd5wM,IAAK1C,IAAQozM,IAGzB,MACUG,IACNF,GAAY,IACpB,CACAL,EACKj5K,GAAWA,EAAOszK,WAEb,IAAIp3L,MAAK,IAAIA,MAAOo/I,SAAS,EAAG,EAAG,EAAG,IADtC,IAAIp/I,MAAK,IAAIA,MAAOu/F,cAAe,EAAG,EAAG,EAAG,EAAG,EAAG,GAE5D4tB,EAAIznI,SAAQ,SAAUsZ,GAClB,IAAInB,EAAKmB,EAAGnB,GAAIpR,EAAMuS,EAAGvS,IACzB,OAAQswM,EAAal/L,EAAGk/L,EAAYtwM,EAAKyzG,IAAW68F,CACxD,IACAA,EAAat3E,EAAUs3E,OAAa5wM,CACxC,CACJ,CACA,GAAM4wM,aAAsB/8L,OAASmqB,MAAM4yK,EAAW58L,WAMtD,OAFiB,IAAb08L,GACAE,EAAW39C,SAAS,EAAG,EAAG,EAAG,GAC1B29C,EALHj5K,EAAO6yK,aAAa,IAAI7/L,MAAM,0BAA4BkmM,GAtD1C,CA4DxB,CACJ,EACO,SAASQ,EAAal9F,EAAOC,EAAOs8F,GAEvC,YADiB,IAAbA,IAAuBA,GAAW,IACrB,IAAbA,EACQ,IAAI78L,KAAKsgG,EAAMngG,WAAWi/I,SAAS,EAAG,EAAG,EAAG,GAChD,IAAIp/I,KAAKugG,EAAMpgG,WAAWi/I,SAAS,EAAG,EAAG,EAAG,GAE7C9+C,EAAMngG,UAAYogG,EAAMpgG,SACnC,CAOO,IAAIs9L,EAAY,SAAUC,EAAIC,EAAKC,GACtC,OAAOF,EAAKprM,KAAKi4B,IAAIozK,EAAKC,IAAQF,EAAKprM,KAAKinB,IAAIokL,EAAKC,EACzD,EACWC,EAAgC,SAAUvhD,EAAOC,EAASC,GACjE,OAAe,KAARF,EAAyB,GAAVC,EAAeC,CACzC,EACWshD,EAAe,SAAUC,GAChC,IAAIzhD,EAAQhqJ,KAAK6oB,MAAM4iL,EAAuB,MAAOxhD,GAAWwhD,EAA+B,KAARzhD,GAAgB,GACvG,MAAO,CAACA,EAAOC,EAASwhD,EAA+B,KAARzhD,EAAyB,GAAVC,EAClE,EACW3xH,EAAW,CAClBozK,IAAK,OAEF,SAASC,EAAgBn6K,GAC5B,IAAIw4H,EAAQx4H,EAAOuyK,YACf95C,EAAUz4H,EAAOwyK,cACjB95C,EAAU14H,EAAOyyK,eACrB,QAAuBpqM,IAAnB23B,EAAOo6K,QAAuB,CAC9B,IAAIC,EAAUr6K,EAAOo6K,QAAQz9C,WACzB29C,EAAat6K,EAAOo6K,QAAQx9C,aAC5B29C,EAAav6K,EAAOo6K,QAAQv9C,aAC5BrE,EAAQ6hD,IACR7hD,EAAQ6hD,GAER7hD,IAAU6hD,GAAW5hD,EAAU6hD,IAC/B7hD,EAAU6hD,GAEV9hD,IAAU6hD,GAAW5hD,IAAY6hD,GAAc5hD,EAAU6hD,IACzD7hD,EAAU14H,EAAOo6K,QAAQv9C,aACjC,CACA,QAAuBx0J,IAAnB23B,EAAOw6K,QAAuB,CAC9B,IAAIC,EAAQz6K,EAAOw6K,QAAQ79C,WACvB+9C,EAAa16K,EAAOw6K,QAAQ59C,aAChCpE,EAAQhqJ,KAAKi4B,IAAI+xH,EAAOiiD,GACpBjiD,IAAUiiD,IACVhiD,EAAUjqJ,KAAKi4B,IAAIi0K,EAAYjiD,IAC/BD,IAAUiiD,GAAShiD,IAAYiiD,IAC/BhiD,EAAU14H,EAAOw6K,QAAQ39C,aACjC,CACA,MAAO,CAAErE,MAAOA,EAAOC,QAASA,EAASC,QAASA,EACtD,C,YC9IIrtH,EAAsC,WAStC,OARAA,EAAWxqC,OAAOkhF,QAAU,SAASx7D,GACjC,IAAK,IAAIjf,EAAG9F,EAAI,EAAGuC,EAAItC,UAAUC,OAAQF,EAAIuC,EAAGvC,IAE5C,IAAK,IAAIglB,KADTlf,EAAI7F,UAAUD,GACA8F,EAAOzG,OAAO0B,UAAUiD,eAAe7F,KAAK2H,EAAGkf,KACzDD,EAAEC,GAAKlf,EAAEkf,IAEjB,OAAOD,CACX,EACO8kB,EAAShqC,MAAM/B,KAAMmC,UAChC,EACIk5M,EAAkD,WAClD,IAAK,IAAIrzM,EAAI,EAAG9F,EAAI,EAAGslB,EAAKrlB,UAAUC,OAAQF,EAAIslB,EAAItlB,IAAK8F,GAAK7F,UAAUD,GAAGE,OACxE,IAAI6rF,EAAI/pF,MAAM8D,GAAIiP,EAAI,EAA3B,IAA8B/U,EAAI,EAAGA,EAAIslB,EAAItlB,IACzC,IAAK,IAAI2+E,EAAI1+E,UAAUD,GAAIulB,EAAI,EAAG6zL,EAAKz6H,EAAEz+E,OAAQqlB,EAAI6zL,EAAI7zL,IAAKxQ,IAC1Dg3E,EAAEh3E,GAAK4pE,EAAEp5D,GACjB,OAAOwmE,CACX,EAQIstH,EAAsB,IAC1B,SAASC,EAAkB3yM,EAAS4yM,GAChC,IAAIp2M,EAAO,CACPq7B,OAAQqL,EAASA,EAAS,CAAC,EAAG2vK,GAAiBC,EAAUh7K,eACzDu4K,KAAM0C,GAyBV,SAASC,IACLx2M,EAAKy2M,MAAQ,CACTC,eAAgB,SAAU9/F,EAAO+/F,GAG7B,YAFc,IAAV//F,IAAoBA,EAAQ52G,EAAK42M,mBAC1B,IAAPD,IAAiBA,EAAK32M,EAAK62M,aACjB,IAAVjgG,IAAiB+/F,EAAK,IAAM,GAAKA,EAAK,MAAQ,GAAMA,EAAK,MAAQ,GAC1D,GACJ32M,EAAK6zM,KAAKz0F,YAAYxI,EACjC,EAER,CACA,SAAS9xD,IACL9kD,EAAKwD,QAAUxD,EAAK6gC,MAAQr9B,EAC5BxD,EAAKiqI,QAAS,EACd6sE,KACAC,KACAC,KACAC,KACAT,IACKx2M,EAAK8zM,UACNoD,IACJC,KACIn3M,EAAKo3M,cAAcr6M,QAAUiD,EAAKq7B,OAAOszK,cACrC3uM,EAAKq7B,OAAO4yK,YACZoJ,EAAiBr3M,EAAKq7B,OAAOszK,WAAa3uM,EAAKs3M,2BAAwB5zM,GAE3Eo/I,IAAY,IAEhBy0D,IACA,IAAIC,EAAW,iCAAiCh4M,KAAK02E,UAAU1lD,YAC1DxwB,EAAK8zM,UAAY0D,GAClBC,KAEJC,GAAa,UACjB,CACA,SAASC,IACL,IAAIphM,EACJ,OAA2C,QAAjCA,EAAKvW,EAAK43M,yBAAsC,IAAPrhM,OAAgB,EAASA,EAAGshM,eAC1Ev/G,eAAiBtiB,SAASsiB,aACnC,CACA,SAASw/G,EAAe1iM,GACpB,OAAOA,EAAGvR,KAAK7D,EACnB,CACA,SAASu3M,IACL,IAAIl8K,EAASr7B,EAAKq7B,QACS,IAAvBA,EAAOs0K,aAA+C,IAAtBt0K,EAAOo0K,aAGZ,IAAtBp0K,EAAOszK,YACZ7uM,OAAO63F,uBAAsB,WAKzB,QAJ+Bj0F,IAA3B1D,EAAK43M,oBACL53M,EAAK43M,kBAAkBn1M,MAAMs1M,WAAa,SAC1C/3M,EAAK43M,kBAAkBn1M,MAAMgyH,QAAU,cAEhB/wH,IAAvB1D,EAAKg4M,cAA6B,CAClC,IAAIC,GAAaj4M,EAAKgiC,KAAK24F,YAAc,GAAKt/F,EAAOo0K,WACrDzvM,EAAKg4M,cAAcv1M,MAAMq2F,MAAQm/G,EAAY,KAC7Cj4M,EAAK43M,kBAAkBn1M,MAAMq2F,MACzBm/G,QAC0Bv0M,IAArB1D,EAAKk4M,YACAl4M,EAAKk4M,YAAYv9E,YACjB,GACN,KACR36H,EAAK43M,kBAAkBn1M,MAAM01M,eAAe,cAC5Cn4M,EAAK43M,kBAAkBn1M,MAAM01M,eAAe,UAChD,CACJ,GAER,CACA,SAASC,EAAWxzM,GAChB,GAAkC,IAA9B5E,EAAKo3M,cAAcr6M,OAAc,CACjC,IAAIs7M,OAAsC30M,IAAxB1D,EAAKq7B,OAAOo6K,SAC1BV,EAAa,IAAIx9L,KAAQvX,EAAKq7B,OAAOo6K,UAAY,EAC/C,IAAIl+L,KACJ,IAAIA,KAAKvX,EAAKq7B,OAAOo6K,QAAQ/9L,WAC/BiU,EAAW6pL,EAAgBx1M,EAAKq7B,QACpCg9K,EAAY1hD,SAAShrI,EAASkoI,MAAOloI,EAASmoI,QAASnoI,EAASooI,QAASskD,EAAYC,mBACrFt4M,EAAKo3M,cAAgB,CAACiB,GACtBr4M,EAAKs3M,sBAAwBe,CACjC,MACU30M,IAANkB,GAA8B,SAAXA,EAAEqC,MACrB2/C,GAAYhiD,GAEhB,IAAI2zM,EAAYv4M,EAAKw4M,OAAO36M,MAC5B46M,IACA31D,KACI9iJ,EAAKw4M,OAAO36M,QAAU06M,GACtBv4M,EAAK04M,kBAEb,CACA,SAASC,EAAc52K,EAAMyuK,GACzB,OAAQzuK,EAAO,GAAM,GAAK+uK,EAAIN,IAASxwM,EAAK6zM,KAAKrD,KAAK,GAC1D,CACA,SAASoI,EAAc72K,GACnB,OAAQA,EAAO,IACX,KAAK,EACL,KAAK,GACD,OAAO,GACX,QACI,OAAOA,EAAO,GAE1B,CACA,SAAS02K,IACL,QAAyB/0M,IAArB1D,EAAK64M,kBAAoDn1M,IAAvB1D,EAAK84M,cAA3C,CAEA,IAAIjlD,GAASpsJ,SAASzH,EAAK64M,YAAYh7M,MAAMyB,OAAO,GAAI,KAAO,GAAK,GAAIw0J,GAAWrsJ,SAASzH,EAAK84M,cAAcj7M,MAAO,KAAO,GAAK,GAAIk2J,OAAiCrwJ,IAAvB1D,EAAK+4M,eAC9ItxM,SAASzH,EAAK+4M,cAAcl7M,MAAO,KAAO,GAAK,GAChD,OACY6F,IAAd1D,EAAKwwM,OACL38C,EAAQ8kD,EAAc9kD,EAAO7zJ,EAAKwwM,KAAK38F,cAE3C,IAAImlG,OAAwCt1M,IAAxB1D,EAAKq7B,OAAO49K,SAC3Bj5M,EAAKq7B,OAAOo6K,SACTz1M,EAAKk5M,gBACLl5M,EAAKs3M,uBAED,IADJvC,EAAa/0M,EAAKs3M,sBAAuBt3M,EAAKq7B,OAAOo6K,SAAS,GAElE0D,OAAwCz1M,IAAxB1D,EAAKq7B,OAAO+9K,SAC3Bp5M,EAAKq7B,OAAOw6K,SACT71M,EAAKq5M,gBACLr5M,EAAKs3M,uBAED,IADJvC,EAAa/0M,EAAKs3M,sBAAuBt3M,EAAKq7B,OAAOw6K,SAAS,GAEtE,QAA4BnyM,IAAxB1D,EAAKq7B,OAAO+9K,cACY11M,IAAxB1D,EAAKq7B,OAAO49K,SACZj5M,EAAKq7B,OAAO49K,QAAUj5M,EAAKq7B,OAAO+9K,QAAS,CAC3C,IAAIE,EAAWlE,EAA8Bp1M,EAAKq7B,OAAO49K,QAAQjhD,WAAYh4J,EAAKq7B,OAAO49K,QAAQhhD,aAAcj4J,EAAKq7B,OAAO49K,QAAQ/gD,cAC/HqhD,EAAWnE,EAA8Bp1M,EAAKq7B,OAAO+9K,QAAQphD,WAAYh4J,EAAKq7B,OAAO+9K,QAAQnhD,aAAcj4J,EAAKq7B,OAAO+9K,QAAQlhD,cAC/HshD,EAAcpE,EAA8BvhD,EAAOC,EAASC,GAChE,GAAIylD,EAAcD,GAAYC,EAAcF,EAAU,CAClD,IAAI9uM,EAAS6qM,EAAaiE,GAC1BzlD,EAAQrpJ,EAAO,GACfspJ,EAAUtpJ,EAAO,GACjBupJ,EAAUvpJ,EAAO,EACrB,CACJ,KACK,CACD,GAAI2uM,EAAe,CACf,IAAIC,OAAkC11M,IAAxB1D,EAAKq7B,OAAO+9K,QACpBp5M,EAAKq7B,OAAO+9K,QACZp5M,EAAKq7B,OAAOw6K,QAClBhiD,EAAQhqJ,KAAKi4B,IAAI+xH,EAAOulD,EAAQphD,YAC5BnE,IAAUulD,EAAQphD,aAClBlE,EAAUjqJ,KAAKi4B,IAAIgyH,EAASslD,EAAQnhD,eACpCnE,IAAYslD,EAAQnhD,eACpBlE,EAAUlqJ,KAAKi4B,IAAIiyH,EAASqlD,EAAQlhD,cAC5C,CACA,GAAI8gD,EAAe,CACf,IAAIC,OAAkCv1M,IAAxB1D,EAAKq7B,OAAO49K,QACpBj5M,EAAKq7B,OAAO49K,QACZj5M,EAAKq7B,OAAOo6K,QAClB5hD,EAAQhqJ,KAAKinB,IAAI+iI,EAAOolD,EAAQjhD,YAC5BnE,IAAUolD,EAAQjhD,YAAclE,EAAUmlD,EAAQhhD,eAClDnE,EAAUmlD,EAAQhhD,cAClBnE,IAAYmlD,EAAQhhD,eACpBlE,EAAUlqJ,KAAKinB,IAAIijI,EAASklD,EAAQ/gD,cAC5C,CACJ,CACAvB,EAAS9C,EAAOC,EAASC,EAtDf,CAuDd,CACA,SAASsjD,EAAiB/E,GACtB,IAAI5nL,EAAO4nL,GAAWtyM,EAAKs3M,sBACvB5sL,GAAQA,aAAgBnT,MACxBo/I,EAASjsI,EAAKstI,WAAYttI,EAAKutI,aAAcvtI,EAAKwtI,aAE1D,CACA,SAASvB,EAAS9C,EAAOC,EAASC,QACKrwJ,IAA/B1D,EAAKs3M,uBACLt3M,EAAKs3M,sBAAsB3gD,SAAS9C,EAAQ,GAAIC,EAASC,GAAW,EAAG,GAEtE/zJ,EAAK64M,aAAgB74M,EAAK84M,gBAAiB94M,EAAK8zM,WAErD9zM,EAAK64M,YAAYh7M,MAAQgzM,EAAK7wM,EAAKq7B,OAAOq0K,UAEpC77C,GADE,GAAKA,GAAS,GAAM,GAAKi9C,EAAIj9C,EAAQ,KAAO,IAEpD7zJ,EAAK84M,cAAcj7M,MAAQgzM,EAAI/8C,QACbpwJ,IAAd1D,EAAKwwM,OACLxwM,EAAKwwM,KAAK38F,YAAc7zG,EAAK6zM,KAAKrD,KAAKM,EAAIj9C,GAAS,WAC7BnwJ,IAAvB1D,EAAK+4M,gBACL/4M,EAAK+4M,cAAcl7M,MAAQgzM,EAAI98C,IACvC,CACA,SAAS0lD,EAAYp1J,GACjB,IAAIw2H,EAAci3B,EAAeztJ,GAC7BsyD,EAAOlvG,SAASozK,EAAYh9K,QAAUwmD,EAAMq1J,OAAS,IACrD/iG,EAAO,IAAO,GACC,UAAdtyD,EAAMnnD,MAAoB,QAAQsC,KAAKm3G,EAAKt3G,cAC7Cs6M,GAAWhjG,EAEnB,CACA,SAAS9yG,EAAKL,EAAS6gD,EAAOjrC,EAAS9e,GACnC,OAAI+pD,aAAiBxlD,MACVwlD,EAAMpnD,SAAQ,SAAU28M,GAAM,OAAO/1M,EAAKL,EAASo2M,EAAIxgM,EAAS9e,EAAU,IACjFkJ,aAAmB3E,MACZ2E,EAAQvG,SAAQ,SAAU0sF,GAAM,OAAO9lF,EAAK8lF,EAAItlC,EAAOjrC,EAAS9e,EAAU,KACrFkJ,EAAQyzE,iBAAiB5yB,EAAOjrC,EAAS9e,QACzC0F,EAAK65M,UAAUp9M,KAAK,CAChB2rD,OAAQ,WAAc,OAAO5kD,EAAQ0zE,oBAAoB7yB,EAAOjrC,EAAS9e,EAAU,IAE3F,CACA,SAASw/M,IACLpC,GAAa,WACjB,CACA,SAASP,IAQL,GAPIn3M,EAAKq7B,OAAOytH,MACZ,CAAC,OAAQ,QAAS,SAAU,SAAS7rJ,SAAQ,SAAUqpC,GACnDznC,MAAMjB,UAAUX,QAAQjC,KAAKgF,EAAKwD,QAAQg2F,iBAAiB,SAAWlzD,EAAM,MAAM,SAAUqjD,GACxF,OAAO9lF,EAAK8lF,EAAI,QAAS3pF,EAAKsmC,GAClC,GACJ,IAEAtmC,EAAK8zM,SACLiG,SADJ,CAIA,IAAIC,EAAkB/iF,EAASgjF,GAAU,IA2BzC,GA1BAj6M,EAAK04M,iBAAmBzhF,EAAS6iF,EAAe5D,GAC5Cl2M,EAAKg4M,gBAAkB,oBAAoBx4M,KAAK02E,UAAU1lD,YAC1D3sB,EAAK7D,EAAKg4M,cAAe,aAAa,SAAUpzM,GACnB,UAArB5E,EAAKq7B,OAAO2lE,MACZk5G,GAAYpI,EAAeltM,GACnC,IACJf,EAAK7D,EAAKw4M,OAAQ,UAAW1J,SACEprM,IAA3B1D,EAAK43M,mBACL/zM,EAAK7D,EAAK43M,kBAAmB,UAAW9I,IAEvC9uM,EAAKq7B,OAAOwxG,QAAW7sI,EAAKq7B,OAAO+nI,QACpCv/J,EAAK/D,OAAQ,SAAUk6M,QACCt2M,IAAxB5D,OAAOq6M,aACPt2M,EAAK/D,OAAOk2E,SAAU,aAAcokI,IAEpCv2M,EAAK/D,OAAOk2E,SAAU,YAAaokI,IACvCv2M,EAAK/D,OAAOk2E,SAAU,QAASokI,GAAe,CAAEluK,SAAS,KAC1B,IAA3BlsC,EAAKq7B,OAAOmyK,aACZ3pM,EAAK7D,EAAKw4M,OAAQ,QAASx4M,EAAK4tB,MAChC/pB,EAAK7D,EAAKw4M,OAAQ,QAASx4M,EAAK4tB,YAETlqB,IAAvB1D,EAAKg4M,gBACLn0M,EAAK7D,EAAKq6M,SAAU,QAASC,IAC7Bz2M,EAAK7D,EAAKq6M,SAAU,CAAC,QAAS,aAAcZ,GAC5C51M,EAAK7D,EAAKg4M,cAAe,QAASuC,UAEX72M,IAAvB1D,EAAKw6M,oBACkB92M,IAAvB1D,EAAK84M,oBACgBp1M,IAArB1D,EAAK64M,YAA2B,CAChC,IAAI4B,EAAU,SAAU71M,GACpB,OAAOktM,EAAeltM,GAAG60F,QAC7B,EACA51F,EAAK7D,EAAKw6M,cAAe,CAAC,aAAcpC,GACxCv0M,EAAK7D,EAAKw6M,cAAe,OAAQpC,EAAY,CAAElsK,SAAS,IACxDroC,EAAK7D,EAAKw6M,cAAe,QAASE,GAClC72M,EAAK,CAAC7D,EAAK64M,YAAa74M,EAAK84M,eAAgB,CAAC,QAAS,SAAU2B,QACtC/2M,IAAvB1D,EAAK+4M,eACLl1M,EAAK7D,EAAK+4M,cAAe,SAAS,WAAc,OAAO/4M,EAAK+4M,eAAiB/4M,EAAK+4M,cAAct/G,QAAU,SAC5F/1F,IAAd1D,EAAKwwM,MACL3sM,EAAK7D,EAAKwwM,KAAM,SAAS,SAAU5rM,GAC/BwzM,EAAWxzM,EACf,GAER,CACI5E,EAAKq7B,OAAO2xK,YACZnpM,EAAK7D,EAAKw4M,OAAQ,OAAQv1D,GA/C9B,CAiDJ,CACA,SAAS03D,EAAWC,EAAUd,GAC1B,IAAIe,OAAsBn3M,IAAbk3M,EACP56M,EAAKy0M,UAAUmG,GACf56M,EAAKs3M,wBACFt3M,EAAKq7B,OAAOo6K,SAAWz1M,EAAKq7B,OAAOo6K,QAAUz1M,EAAKwX,IAC7CxX,EAAKq7B,OAAOo6K,QACZz1M,EAAKq7B,OAAOw6K,SAAW71M,EAAKq7B,OAAOw6K,QAAU71M,EAAKwX,IAC9CxX,EAAKq7B,OAAOw6K,QACZ71M,EAAKwX,KACnBsjM,EAAU96M,EAAK62M,YACfkE,EAAW/6M,EAAK42M,aACpB,SACmBlzM,IAAXm3M,IACA76M,EAAK62M,YAAcgE,EAAO/jG,cAC1B92G,EAAK42M,aAAeiE,EAAO9jG,WAEnC,CACA,MAAOnyG,GACHA,EAAEqJ,QAAU,0BAA4B4sM,EACxC76M,EAAKq7B,OAAO6yK,aAAatpM,EAC7B,CACIk1M,GAAiB95M,EAAK62M,cAAgBiE,IACtCpD,GAAa,gBACbsD,OAEAlB,GACC95M,EAAK62M,cAAgBiE,GAAW96M,EAAK42M,eAAiBmE,GACvDrD,GAAa,iBAEjB13M,EAAKi7M,QACT,CACA,SAASP,EAAc91M,GACnB,IAAIi2K,EAAci3B,EAAeltM,IAC5Bi2K,EAAYr6J,UAAUriB,QAAQ,UAC/B+8M,EAAkBt2M,EAAGi2K,EAAY31K,UAAUuzF,SAAS,WAAa,GAAK,EAC9E,CACA,SAASyiH,EAAkBt2M,EAAG80M,EAAOyB,GACjC,IAAIv+M,EAASgI,GAAKktM,EAAeltM,GAC7Bi8B,EAAQs6K,GACPv+M,GAAUA,EAAO06F,YAAc16F,EAAO06F,WAAW85G,WAClD/sJ,EAAQlI,GAAY,aACxBkI,EAAMq1J,MAAQA,EACd74K,GAASA,EAAMu6K,cAAc/2J,EACjC,CACA,SAAS6yJ,IACL,IAAImE,EAAWv7M,OAAOk2E,SAASslI,yBAG/B,GAFAt7M,EAAK43M,kBAAoB/vM,EAAc,MAAO,sBAC9C7H,EAAK43M,kBAAkBz7G,UAAY,GAC9Bn8F,EAAKq7B,OAAOszK,WAAY,CAGzB,GAFA0M,EAASv9C,YAAYy9C,MACrBv7M,EAAKw7M,eAAiB3zM,EAAc,MAAO,4BACvC7H,EAAKq7B,OAAOs0K,YAAa,CACzB,IAAIp5L,EAAKklM,KAAcvD,EAAc3hM,EAAG2hM,YAAavI,EAAcp5L,EAAGo5L,YACtE3vM,EAAKw7M,eAAe19C,YAAYo6C,GAChCl4M,EAAK2vM,YAAcA,EACnB3vM,EAAKk4M,YAAcA,CACvB,CACAl4M,EAAK07M,WAAa7zM,EAAc,MAAO,wBACvC7H,EAAK07M,WAAW59C,YAAY69C,MACvB37M,EAAKg4M,gBACNh4M,EAAKg4M,cAAgBnwM,EAAc,MAAO,kBAC1C7H,EAAKg4M,cAAc77G,UAAY,GAEnCy/G,KACA57M,EAAK07M,WAAW59C,YAAY99J,EAAKg4M,eACjCh4M,EAAKw7M,eAAe19C,YAAY99J,EAAK07M,YACrCL,EAASv9C,YAAY99J,EAAKw7M,eAC9B,CACIx7M,EAAKq7B,OAAO4yK,YACZoN,EAASv9C,YAAY+9C,MAEzBxwE,EAAYrrI,EAAK43M,kBAAmB,YAAkC,UAArB53M,EAAKq7B,OAAO2lE,MAC7DqqC,EAAYrrI,EAAK43M,kBAAmB,WAAmC,IAAxB53M,EAAKq7B,OAAOgyK,SAC3DhiE,EAAYrrI,EAAK43M,kBAAmB,aAAc53M,EAAKq7B,OAAOo0K,WAAa,GAC3EzvM,EAAK43M,kBAAkB95C,YAAYu9C,GACnC,IAAIS,OAAwCp4M,IAAzB1D,EAAKq7B,OAAO0gL,eACOr4M,IAAlC1D,EAAKq7B,OAAO0gL,SAASxkH,SACzB,IAAIv3F,EAAKq7B,OAAOwxG,QAAU7sI,EAAKq7B,OAAO+nI,UAClCpjK,EAAK43M,kBAAkB1yM,UAAUhK,IAAI8E,EAAKq7B,OAAOwxG,OAAS,SAAW,UACjE7sI,EAAKq7B,OAAOwxG,UACPivE,GAAgB97M,EAAKwD,QAAQ8zF,WAC9Bt3F,EAAKwD,QAAQ8zF,WAAW0kH,aAAah8M,EAAK43M,kBAAmB53M,EAAKw4M,OAAOyD,kBAC3Cv4M,IAAzB1D,EAAKq7B,OAAO0gL,UACjB/7M,EAAKq7B,OAAO0gL,SAASj+C,YAAY99J,EAAK43M,oBAE1C53M,EAAKq7B,OAAO+nI,QAAQ,CACpB,IAAIsuC,EAAU7pM,EAAc,MAAO,qBAC/B7H,EAAKwD,QAAQ8zF,YACbt3F,EAAKwD,QAAQ8zF,WAAW0kH,aAAatK,EAAS1xM,EAAKwD,SACvDkuM,EAAQ5zC,YAAY99J,EAAKwD,SACrBxD,EAAKmtM,UACLuE,EAAQ5zC,YAAY99J,EAAKmtM,UAC7BuE,EAAQ5zC,YAAY99J,EAAK43M,kBAC7B,CAEC53M,EAAKq7B,OAAO+nI,QAAWpjK,EAAKq7B,OAAOwxG,cACVnpI,IAAzB1D,EAAKq7B,OAAO0gL,SACP/7M,EAAKq7B,OAAO0gL,SACZj8M,OAAOk2E,SAASloC,MAAMgwH,YAAY99J,EAAK43M,kBACrD,CACA,SAASsE,EAAU17L,EAAWkK,EAAMyxL,EAAYt/M,GAC5C,IAAIu/M,EAAgBh1I,GAAU18C,GAAM,GAAO2xL,EAAax0M,EAAc,OAAQ2Y,EAAWkK,EAAKssF,UAAU33G,YAuCxG,OAtCAg9M,EAAW/J,QAAU5nL,EACrB2xL,EAAWC,GAAKz/M,EAChBw/M,EAAWliH,aAAa,aAAcn6F,EAAKi0M,WAAWvpL,EAAM1qB,EAAKq7B,OAAOiyK,kBACnC,IAAjC9sL,EAAUriB,QAAQ,WACe,IAAjC42M,EAAarqL,EAAM1qB,EAAKwX,OACxBxX,EAAKu8M,cAAgBF,EACrBA,EAAWn3M,UAAUhK,IAAI,SACzBmhN,EAAWliH,aAAa,eAAgB,SAExCiiH,GACAC,EAAWlgH,UAAY,EACnBqgH,GAAe9xL,KACf2xL,EAAWn3M,UAAUhK,IAAI,YACzB8E,EAAKy8M,iBAAmBJ,EACC,UAArBr8M,EAAKq7B,OAAO2lE,OACZqqC,EAAYgxE,EAAY,aAAcr8M,EAAKo3M,cAAc,IACD,IAApDrC,EAAarqL,EAAM1qB,EAAKo3M,cAAc,IAAI,IAC9C/rE,EAAYgxE,EAAY,WAAYr8M,EAAKo3M,cAAc,IACC,IAApDrC,EAAarqL,EAAM1qB,EAAKo3M,cAAc,IAAI,IAC5B,iBAAd52L,GACA67L,EAAWn3M,UAAUhK,IAAI,cAKrCmhN,EAAWn3M,UAAUhK,IAAI,sBAEJ,UAArB8E,EAAKq7B,OAAO2lE,MACR07G,GAAchyL,KAAU8xL,GAAe9xL,IACvC2xL,EAAWn3M,UAAUhK,IAAI,WAE7B8E,EAAK2vM,aACsB,IAA3B3vM,EAAKq7B,OAAOo0K,YACE,iBAAdjvL,GACA3jB,EAAI,IAAM,GACVmD,EAAK2vM,YAAYgN,mBAAmB,YAAa,+BAAiC38M,EAAKq7B,OAAO8yK,QAAQzjL,GAAQ,WAElHgtL,GAAa,cAAe2E,GACrBA,CACX,CACA,SAASO,EAAeC,GACpBA,EAAWxgH,QACc,UAArBr8F,EAAKq7B,OAAO2lE,MACZk5G,GAAY2C,EACpB,CACA,SAASC,EAAqBpD,GAG1B,IAFA,IAAIqD,EAAarD,EAAQ,EAAI,EAAI15M,EAAKq7B,OAAOo0K,WAAa,EACtDuN,EAAWtD,EAAQ,EAAI15M,EAAKq7B,OAAOo0K,YAAc,EAC5C8D,EAAIwJ,EAAYxJ,GAAKyJ,EAAUzJ,GAAKmG,EAIzC,IAHA,IAAI9iG,EAAQ52G,EAAKg4M,cAAcp0M,SAAS2vM,GACpCl0F,EAAaq6F,EAAQ,EAAI,EAAI9iG,EAAMhzG,SAAS7G,OAAS,EACrDkgN,EAAWvD,EAAQ,EAAI9iG,EAAMhzG,SAAS7G,QAAU,EAC3CF,EAAIwiH,EAAYxiH,GAAKogN,EAAUpgN,GAAK68M,EAAO,CAChD,IAAIv2M,EAAIyzG,EAAMhzG,SAAS/G,GACvB,IAAuC,IAAnCsG,EAAEqd,UAAUriB,QAAQ,WAAoBipE,GAAUjkE,EAAEmvM,SACpD,OAAOnvM,CACf,CAGR,CACA,SAAS+5M,EAAoBC,EAASzD,GAMlC,IALA,IAAI0D,GAAqD,IAAxCD,EAAQ38L,UAAUriB,QAAQ,SACrCg/M,EAAQ7K,QAAQv7F,WAChB/2G,EAAK42M,aACPoG,EAAWtD,EAAQ,EAAI15M,EAAKq7B,OAAOo0K,YAAc,EACjD4N,EAAY3D,EAAQ,EAAI,GAAK,EACxBnG,EAAI6J,EAAap9M,EAAK42M,aAAcrD,GAAKyJ,EAAUzJ,GAAK8J,EAQ7D,IAPA,IAAIzmG,EAAQ52G,EAAKg4M,cAAcp0M,SAAS2vM,GACpCl0F,EAAa+9F,EAAap9M,EAAK42M,eAAiBrD,EAC9C4J,EAAQb,GAAK5C,EACbA,EAAQ,EACJ9iG,EAAMhzG,SAAS7G,OAAS,EACxB,EACNugN,EAAe1mG,EAAMhzG,SAAS7G,OACzBF,EAAIwiH,EAAYxiH,GAAK,GAAKA,EAAIygN,GAAgBzgN,IAAM68M,EAAQ,EAAI4D,GAAgB,GAAIzgN,GAAKwgN,EAAW,CACzG,IAAIl6M,EAAIyzG,EAAMhzG,SAAS/G,GACvB,IAAuC,IAAnCsG,EAAEqd,UAAUriB,QAAQ,WACpBipE,GAAUjkE,EAAEmvM,UACZzoM,KAAKywD,IAAI6iJ,EAAQb,GAAKz/M,IAAMgN,KAAKywD,IAAIo/I,GACrC,OAAOkD,EAAez5M,EAC9B,CAEJnD,EAAKu9M,YAAYF,GACjBG,EAAWV,EAAqBO,GAAY,EAEhD,CACA,SAASG,EAAWL,EAASniH,GACzB,IAAI1C,EAAgBq/G,IAChB8F,EAAaC,GAASplH,GAAiBtiB,SAASloC,MAChD6vK,OAAwBj6M,IAAZy5M,EACVA,EACAM,EACInlH,OAC0B50F,IAA1B1D,EAAKy8M,kBAAkCiB,GAAS19M,EAAKy8M,kBACjDz8M,EAAKy8M,sBACkB/4M,IAAvB1D,EAAKu8M,eAA+BmB,GAAS19M,EAAKu8M,eAC9Cv8M,EAAKu8M,cACLO,EAAqB9hH,EAAS,EAAI,GAAK,QACvCt3F,IAAdi6M,EACA39M,EAAKw4M,OAAOn8G,QAENohH,EAINP,EAAoBS,EAAW3iH,GAH/B4hH,EAAee,EAKvB,CACA,SAASC,GAAejnG,EAAMC,GAK1B,IAJA,IAAIinG,GAAgB,IAAItmM,KAAKo/F,EAAMC,EAAO,GAAG0I,SAAWt/G,EAAK6zM,KAAK5D,eAAiB,GAAK,EACpF6N,EAAgB99M,EAAKy2M,MAAMC,gBAAgB9/F,EAAQ,EAAI,IAAM,GAAID,GACjEyI,EAAcp/G,EAAKy2M,MAAMC,eAAe9/F,EAAOD,GAAO30E,EAAOliC,OAAOk2E,SAASslI,yBAA0ByC,EAAe/9M,EAAKq7B,OAAOo0K,WAAa,EAAGuO,EAAoBD,EAAe,sBAAwB,eAAgBE,EAAoBF,EAAe,sBAAwB,eACxRG,EAAYJ,EAAgB,EAAID,EAAcM,EAAW,EACtDD,GAAaJ,EAAeI,IAAaC,IAC5Cn8K,EAAK87H,YAAYo+C,EAAU,iBAAmB8B,EAAmB,IAAIzmM,KAAKo/F,EAAMC,EAAQ,EAAGsnG,GAAYA,EAAWC,IAEtH,IAAKD,EAAY,EAAGA,GAAa9+F,EAAa8+F,IAAaC,IACvDn8K,EAAK87H,YAAYo+C,EAAU,gBAAiB,IAAI3kM,KAAKo/F,EAAMC,EAAOsnG,GAAYA,EAAWC,IAE7F,IAAK,IAAIC,EAASh/F,EAAc,EAAGg/F,GAAU,GAAKP,IAClB,IAA3B79M,EAAKq7B,OAAOo0K,YAAoB0O,EAAW,IAAM,GAAIC,IAAUD,IAChEn8K,EAAK87H,YAAYo+C,EAAU,iBAAmB+B,EAAmB,IAAI1mM,KAAKo/F,EAAMC,EAAQ,EAAGwnG,EAASh/F,GAAcg/F,EAAQD,IAE9H,IAAIE,EAAex2M,EAAc,MAAO,gBAExC,OADAw2M,EAAavgD,YAAY97H,GAClBq8K,CACX,CACA,SAASzC,KACL,QAA2Bl4M,IAAvB1D,EAAKg4M,cAAT,CAGA7G,EAAUnxM,EAAKg4M,eACXh4M,EAAK2vM,aACLwB,EAAUnxM,EAAK2vM,aAEnB,IADA,IAAIprE,EAAOvuD,SAASslI,yBACXz+M,EAAI,EAAGA,EAAImD,EAAKq7B,OAAOo0K,WAAY5yM,IAAK,CAC7C,IAAIyZ,EAAI,IAAIiB,KAAKvX,EAAK62M,YAAa72M,EAAK42M,aAAc,GACtDtgM,EAAE4hG,SAASl4G,EAAK42M,aAAe/5M,GAC/B0nI,EAAKu5B,YAAY8/C,GAAetnM,EAAEwgG,cAAexgG,EAAEygG,YACvD,CACA/2G,EAAKg4M,cAAcl6C,YAAYv5B,GAC/BvkI,EAAKgiC,KAAOhiC,EAAKg4M,cAAc5G,WACN,UAArBpxM,EAAKq7B,OAAO2lE,MAAkD,IAA9BhhG,EAAKo3M,cAAcr6M,QACnDm9M,IAbJ,CAeJ,CACA,SAASc,KACL,KAAIh7M,EAAKq7B,OAAOo0K,WAAa,GACS,aAAlCzvM,EAAKq7B,OAAOozK,mBADhB,CAGA,IAAI6P,EAAmB,SAAU1nG,GAC7B,aAA4BlzG,IAAxB1D,EAAKq7B,OAAOo6K,SACZz1M,EAAK62M,cAAgB72M,EAAKq7B,OAAOo6K,QAAQ3+F,eACzCF,EAAQ52G,EAAKq7B,OAAOo6K,QAAQ1+F,oBAGCrzG,IAAxB1D,EAAKq7B,OAAOw6K,SACjB71M,EAAK62M,cAAgB72M,EAAKq7B,OAAOw6K,QAAQ/+F,eACzCF,EAAQ52G,EAAKq7B,OAAOw6K,QAAQ9+F,WACpC,EACA/2G,EAAKu+M,wBAAwBpiH,UAAY,EACzCn8F,EAAKu+M,wBAAwBl+G,UAAY,GACzC,IAAK,IAAIxjG,EAAI,EAAGA,EAAI,GAAIA,IACpB,GAAKyhN,EAAiBzhN,GAAtB,CAEA,IAAI+5G,EAAQ/uG,EAAc,SAAU,iCACpC+uG,EAAM/4G,MAAQ,IAAI0Z,KAAKvX,EAAK62M,YAAah6M,GAAGk6G,WAAW13G,WACvDu3G,EAAM/C,YAAco+F,EAAWp1M,EAAGmD,EAAKq7B,OAAOm0K,sBAAuBxvM,EAAK6zM,MAC1Ej9F,EAAMza,UAAY,EACdn8F,EAAK42M,eAAiB/5M,IACtB+5G,EAAM4E,UAAW,GAErBx7G,EAAKu+M,wBAAwBzgD,YAAYlnD,EAR7B,CAfN,CAyBd,CACA,SAAS4nG,KACL,IAEIC,EAFAllD,EAAY1xJ,EAAc,MAAO,mBACjC62M,EAAmB5+M,OAAOk2E,SAASslI,yBAEnCt7M,EAAKq7B,OAAOo0K,WAAa,GACS,WAAlCzvM,EAAKq7B,OAAOozK,kBACZgQ,EAAe52M,EAAc,OAAQ,cAGrC7H,EAAKu+M,wBAA0B12M,EAAc,SAAU,kCACvD7H,EAAKu+M,wBAAwBpkH,aAAa,aAAcn6F,EAAK6zM,KAAKnD,gBAClE7sM,EAAK7D,EAAKu+M,wBAAyB,UAAU,SAAU35M,GACnD,IAAIhI,EAASk1M,EAAeltM,GACxB+5M,EAAgBl3M,SAAS7K,EAAOiB,MAAO,IAC3CmC,EAAKu9M,YAAYoB,EAAgB3+M,EAAK42M,cACtCc,GAAa,gBACjB,IACAsD,KACAyD,EAAez+M,EAAKu+M,yBAExB,IAAIK,EAAYrN,EAAkB,WAAY,CAAExiG,SAAU,OACtD8vG,EAAcD,EAAUE,qBAAqB,SAAS,GAC1DD,EAAY1kH,aAAa,aAAcn6F,EAAK6zM,KAAKpD,eAC7CzwM,EAAKq7B,OAAOo6K,SACZoJ,EAAY1kH,aAAa,MAAOn6F,EAAKq7B,OAAOo6K,QAAQ3+F,cAAcz3G,YAElEW,EAAKq7B,OAAOw6K,UACZgJ,EAAY1kH,aAAa,MAAOn6F,EAAKq7B,OAAOw6K,QAAQ/+F,cAAcz3G,YAClEw/M,EAAYrxL,WACNxtB,EAAKq7B,OAAOo6K,SACVz1M,EAAKq7B,OAAOo6K,QAAQ3+F,gBAAkB92G,EAAKq7B,OAAOw6K,QAAQ/+F,eAEtE,IAAI8/F,EAAe/uM,EAAc,MAAO,2BAKxC,OAJA+uM,EAAa94C,YAAY2gD,GACzB7H,EAAa94C,YAAY8gD,GACzBF,EAAiB5gD,YAAY84C,GAC7Br9C,EAAUuE,YAAY4gD,GACf,CACHnlD,UAAWA,EACXslD,YAAaA,EACbJ,aAAcA,EAEtB,CACA,SAASM,KACL5N,EAAUnxM,EAAKq6M,UACfr6M,EAAKq6M,SAASv8C,YAAY99J,EAAKg/M,cAC3Bh/M,EAAKq7B,OAAOo0K,aACZzvM,EAAKi/M,aAAe,GACpBj/M,EAAKk/M,cAAgB,IAEzB,IAAK,IAAI3L,EAAIvzM,EAAKq7B,OAAOo0K,WAAY8D,KAAM,CACvC,IAAI38F,EAAQ4nG,KACZx+M,EAAKi/M,aAAaxiN,KAAKm6G,EAAMioG,aAC7B7+M,EAAKk/M,cAAcziN,KAAKm6G,EAAM6nG,cAC9Bz+M,EAAKq6M,SAASv8C,YAAYlnD,EAAM2iD,UACpC,CACAv5J,EAAKq6M,SAASv8C,YAAY99J,EAAKm/M,aACnC,CACA,SAAS5D,KA6BL,OA5BAv7M,EAAKq6M,SAAWxyM,EAAc,MAAO,oBACrC7H,EAAKi/M,aAAe,GACpBj/M,EAAKk/M,cAAgB,GACrBl/M,EAAKg/M,aAAen3M,EAAc,OAAQ,wBAC1C7H,EAAKg/M,aAAa3+G,UAAYrgG,EAAKq7B,OAAOk0K,UAC1CvvM,EAAKm/M,aAAet3M,EAAc,OAAQ,wBAC1C7H,EAAKm/M,aAAa9+G,UAAYrgG,EAAKq7B,OAAOqzK,UAC1CqQ,KACA7iN,OAAOoB,eAAe0C,EAAM,sBAAuB,CAC/C2M,IAAK,WAAc,OAAO3M,EAAKo/M,oBAAsB,EACrDvyM,IAAK,SAAUkkM,GACP/wM,EAAKo/M,uBAAyBrO,IAC9B1lE,EAAYrrI,EAAKg/M,aAAc,qBAAsBjO,GACrD/wM,EAAKo/M,qBAAuBrO,EAEpC,IAEJ70M,OAAOoB,eAAe0C,EAAM,sBAAuB,CAC/C2M,IAAK,WAAc,OAAO3M,EAAKq/M,oBAAsB,EACrDxyM,IAAK,SAAUkkM,GACP/wM,EAAKq/M,uBAAyBtO,IAC9B1lE,EAAYrrI,EAAKm/M,aAAc,qBAAsBpO,GACrD/wM,EAAKq/M,qBAAuBtO,EAEpC,IAEJ/wM,EAAKs/M,mBAAqBt/M,EAAKi/M,aAAa,GAC5CM,KACOv/M,EAAKq6M,QAChB,CACA,SAASwB,KACL77M,EAAK43M,kBAAkB1yM,UAAUhK,IAAI,WACjC8E,EAAKq7B,OAAOszK,YACZ3uM,EAAK43M,kBAAkB1yM,UAAUhK,IAAI,cACzC,IAAIywB,EAAW6pL,EAAgBx1M,EAAKq7B,QACpCr7B,EAAKw6M,cAAgB3yM,EAAc,MAAO,kBAC1C7H,EAAKw6M,cAAcr+G,UAAY,EAC/B,IAAIn7F,EAAY6G,EAAc,OAAQ,2BAA4B,KAC9D23M,EAAYjO,EAAkB,iBAAkB,CAChD,aAAcvxM,EAAK6zM,KAAKlD,gBAE5B3wM,EAAK64M,YAAc2G,EAAUV,qBAAqB,SAAS,GAC3D,IAAIW,EAAclO,EAAkB,mBAAoB,CACpD,aAAcvxM,EAAK6zM,KAAKjD,kBAyB5B,GAvBA5wM,EAAK84M,cAAgB2G,EAAYX,qBAAqB,SAAS,GAC/D9+M,EAAK64M,YAAY18G,SAAWn8F,EAAK84M,cAAc38G,UAAY,EAC3Dn8F,EAAK64M,YAAYh7M,MAAQgzM,EAAI7wM,EAAKs3M,sBAC5Bt3M,EAAKs3M,sBAAsBt/C,WAC3Bh4J,EAAKq7B,OAAOq0K,UACR/jL,EAASkoI,MACT+kD,EAAcjtL,EAASkoI,QACjC7zJ,EAAK84M,cAAcj7M,MAAQgzM,EAAI7wM,EAAKs3M,sBAC9Bt3M,EAAKs3M,sBAAsBr/C,aAC3BtsI,EAASmoI,SACf9zJ,EAAK64M,YAAY1+G,aAAa,OAAQn6F,EAAKq7B,OAAOizK,cAAcjvM,YAChEW,EAAK84M,cAAc3+G,aAAa,OAAQn6F,EAAKq7B,OAAOmzK,gBAAgBnvM,YACpEW,EAAK64M,YAAY1+G,aAAa,MAAOn6F,EAAKq7B,OAAOq0K,UAAY,IAAM,KACnE1vM,EAAK64M,YAAY1+G,aAAa,MAAOn6F,EAAKq7B,OAAOq0K,UAAY,KAAO,MACpE1vM,EAAK64M,YAAY1+G,aAAa,YAAa,KAC3Cn6F,EAAK84M,cAAc3+G,aAAa,MAAO,KACvCn6F,EAAK84M,cAAc3+G,aAAa,MAAO,MACvCn6F,EAAK84M,cAAc3+G,aAAa,YAAa,KAC7Cn6F,EAAKw6M,cAAc18C,YAAY0hD,GAC/Bx/M,EAAKw6M,cAAc18C,YAAY98J,GAC/BhB,EAAKw6M,cAAc18C,YAAY2hD,GAC3Bz/M,EAAKq7B,OAAOq0K,WACZ1vM,EAAKw6M,cAAct1M,UAAUhK,IAAI,YACjC8E,EAAKq7B,OAAO2yK,cAAe,CAC3BhuM,EAAKw6M,cAAct1M,UAAUhK,IAAI,cACjC,IAAIwkN,EAAcnO,EAAkB,oBACpCvxM,EAAK+4M,cAAgB2G,EAAYZ,qBAAqB,SAAS,GAC/D9+M,EAAK+4M,cAAcl7M,MAAQgzM,EAAI7wM,EAAKs3M,sBAC9Bt3M,EAAKs3M,sBAAsBp/C,aAC3BvsI,EAASooI,SACf/zJ,EAAK+4M,cAAc5+G,aAAa,OAAQn6F,EAAK84M,cAAcv+G,aAAa,SACxEv6F,EAAK+4M,cAAc5+G,aAAa,MAAO,KACvCn6F,EAAK+4M,cAAc5+G,aAAa,MAAO,MACvCn6F,EAAK+4M,cAAc5+G,aAAa,YAAa,KAC7Cn6F,EAAKw6M,cAAc18C,YAAYj2J,EAAc,OAAQ,2BAA4B,MACjF7H,EAAKw6M,cAAc18C,YAAY4hD,EACnC,CASA,OARK1/M,EAAKq7B,OAAOq0K,YACb1vM,EAAKwwM,KAAO3oM,EAAc,OAAQ,kBAAmB7H,EAAK6zM,KAAKrD,KAAKM,GAAK9wM,EAAKs3M,sBACxEt3M,EAAK64M,YAAYh7M,MACjBmC,EAAKq7B,OAAOuyK,aAAe,MACjC5tM,EAAKwwM,KAAK5oM,MAAQ5H,EAAK6zM,KAAKtD,YAC5BvwM,EAAKwwM,KAAKr0G,UAAY,EACtBn8F,EAAKw6M,cAAc18C,YAAY99J,EAAKwwM,OAEjCxwM,EAAKw6M,aAChB,CACA,SAASmB,KACA37M,EAAK2/M,iBAGNxO,EAAUnxM,EAAK2/M,kBAFf3/M,EAAK2/M,iBAAmB93M,EAAc,MAAO,sBAGjD,IAAK,IAAIhL,EAAImD,EAAKq7B,OAAOo0K,WAAY5yM,KAAM,CACvC,IAAI08J,EAAY1xJ,EAAc,MAAO,8BACrC7H,EAAK2/M,iBAAiB7hD,YAAYvE,EACtC,CAEA,OADAqmD,KACO5/M,EAAK2/M,gBAChB,CACA,SAASC,KACL,GAAK5/M,EAAK2/M,iBAAV,CAGA,IAAI1P,EAAiBjwM,EAAK6zM,KAAK5D,eAC3BJ,EAAWmG,EAAeh2M,EAAK6zM,KAAKhE,SAASC,WAC7CG,EAAiB,GAAKA,EAAiBJ,EAAS9yM,SAChD8yM,EAAWmG,EAAenG,EAASpqK,OAAOwqK,EAAgBJ,EAAS9yM,QAAS8yM,EAASpqK,OAAO,EAAGwqK,KAEnG,IAAK,IAAIpzM,EAAImD,EAAKq7B,OAAOo0K,WAAY5yM,KACjCmD,EAAK2/M,iBAAiB/7M,SAAS/G,GAAGwjG,UAAY,qDAAuDwvG,EAAS3uM,KAAK,2CAA6C,yBAPpK,CASJ,CACA,SAASu6M,KACLz7M,EAAK43M,kBAAkB1yM,UAAUhK,IAAI,YACrC,IAAIg9M,EAAcrwM,EAAc,MAAO,yBACvCqwM,EAAYp6C,YAAYj2J,EAAc,OAAQ,oBAAqB7H,EAAK6zM,KAAKxD,mBAC7E,IAAIV,EAAc9nM,EAAc,MAAO,mBAEvC,OADAqwM,EAAYp6C,YAAY6xC,GACjB,CACHuI,YAAaA,EACbvI,YAAaA,EAErB,CACA,SAAS4N,GAAY1/M,EAAOgiN,QACP,IAAbA,IAAuBA,GAAW,GACtC,IAAInG,EAAQmG,EAAWhiN,EAAQA,EAAQmC,EAAK42M,aACvC8C,EAAQ,IAAkC,IAA7B15M,EAAK8/M,qBAClBpG,EAAQ,IAAkC,IAA7B15M,EAAK+/M,sBAEvB//M,EAAK42M,cAAgB8C,GACjB15M,EAAK42M,aAAe,GAAK52M,EAAK42M,aAAe,MAC7C52M,EAAK62M,aAAe72M,EAAK42M,aAAe,GAAK,GAAK,EAClD52M,EAAK42M,cAAgB52M,EAAK42M,aAAe,IAAM,GAC/Cc,GAAa,gBACbsD,MAEJY,KACAlE,GAAa,iBACb6H,KACJ,CACA,SAAS5a,GAAMqb,EAAoBC,GAc/B,QAb2B,IAAvBD,IAAiCA,GAAqB,QACxC,IAAdC,IAAwBA,GAAY,GACxCjgN,EAAK6gC,MAAMhjC,MAAQ,QACG6F,IAAlB1D,EAAKmtM,WACLntM,EAAKmtM,SAAStvM,MAAQ,SACD6F,IAArB1D,EAAKkgN,cACLlgN,EAAKkgN,YAAYriN,MAAQ,IAC7BmC,EAAKo3M,cAAgB,GACrBp3M,EAAKs3M,2BAAwB5zM,GACX,IAAdu8M,IACAjgN,EAAK62M,YAAc72M,EAAKmgN,aAAarpG,cACrC92G,EAAK42M,aAAe52M,EAAKmgN,aAAappG,aAEX,IAA3B/2G,EAAKq7B,OAAO4yK,WAAqB,CACjC,IAAI13L,EAAKi/L,EAAgBx1M,EAAKq7B,QAASw4H,EAAQt9I,EAAGs9I,MAAOC,EAAUv9I,EAAGu9I,QAASC,EAAUx9I,EAAGw9I,QAC5F4C,EAAS9C,EAAOC,EAASC,EAC7B,CACA/zJ,EAAKi7M,SACD+E,GACAtI,GAAa,WACrB,CACA,SAAS5jF,KACL9zH,EAAKiqI,QAAS,EACTjqI,EAAK8zM,gBACyBpwM,IAA3B1D,EAAK43M,mBACL53M,EAAK43M,kBAAkB1yM,UAAUkjD,OAAO,aAExB1kD,IAAhB1D,EAAKw4M,QACLx4M,EAAKw4M,OAAOtzM,UAAUkjD,OAAO,WAGrCsvJ,GAAa,UACjB,CACA,SAAShuF,UACehmH,IAAhB1D,EAAKq7B,QACLq8K,GAAa,aACjB,IAAK,IAAI76M,EAAImD,EAAK65M,UAAU98M,OAAQF,KAChCmD,EAAK65M,UAAUh9M,GAAGurD,SAGtB,GADApoD,EAAK65M,UAAY,GACb75M,EAAKkgN,YACDlgN,EAAKkgN,YAAY5oH,YACjBt3F,EAAKkgN,YAAY5oH,WAAWY,YAAYl4F,EAAKkgN,aACjDlgN,EAAKkgN,iBAAcx8M,OAElB,GAAI1D,EAAK43M,mBAAqB53M,EAAK43M,kBAAkBtgH,WACtD,GAAIt3F,EAAKq7B,OAAO+nI,QAAUpjK,EAAK43M,kBAAkBtgH,WAAY,CACzD,IAAIo6G,EAAU1xM,EAAK43M,kBAAkBtgH,WAErC,GADAo6G,EAAQ0O,WAAa1O,EAAQx5G,YAAYw5G,EAAQ0O,WAC7C1O,EAAQp6G,WAAY,CACpB,MAAOo6G,EAAQN,WACXM,EAAQp6G,WAAW0kH,aAAatK,EAAQN,WAAYM,GACxDA,EAAQp6G,WAAWY,YAAYw5G,EACnC,CACJ,MAEI1xM,EAAK43M,kBAAkBtgH,WAAWY,YAAYl4F,EAAK43M,mBAEvD53M,EAAKmtM,WACLntM,EAAK6gC,MAAM55B,KAAO,OACdjH,EAAKmtM,SAAS71G,YACdt3F,EAAKmtM,SAAS71G,WAAWY,YAAYl4F,EAAKmtM,iBACvCntM,EAAKmtM,UAEZntM,EAAK6gC,QACL7gC,EAAK6gC,MAAM55B,KAAOjH,EAAK6gC,MAAMw/K,MAC7BrgN,EAAK6gC,MAAM37B,UAAUkjD,OAAO,mBAC5BpoD,EAAK6gC,MAAMw5D,gBAAgB,aAE/B,CACI,iBACA,wBACA,sBACA,sBACA,uBACA,uBACA,WACA,SACA,mBACA,iBACA,iBACA,OACA,gBACA,SACA,mBACA,iBACA,aACA,WACA,gBACA,oBACA,mBACA,eACA,eACA,0BACA,sBACA,qBACA,yBACA,mBACA,UACFp9F,SAAQ,SAAU2U,GAChB,WACW5R,EAAK4R,EAChB,CACA,MAAOukF,GAAK,CAChB,GACJ,CACA,SAASmqH,GAAepP,GACpB,OAAOlxM,EAAK43M,kBAAkBn/G,SAASy4G,EAC3C,CACA,SAASkJ,GAAcx1M,GACnB,GAAI5E,EAAKiqI,SAAWjqI,EAAKq7B,OAAOwxG,OAAQ,CACpC,IAAI0zE,EAAgBzO,EAAeltM,GAC/B47M,EAAoBF,GAAeC,GACnCE,EAAUF,IAAkBvgN,EAAK6gC,OACjC0/K,IAAkBvgN,EAAKmtM,UACvBntM,EAAKwD,QAAQi1F,SAAS8nH,IACrB37M,EAAEyU,MACCzU,EAAEyU,KAAKlb,WACLyG,EAAEyU,KAAKlb,QAAQ6B,EAAK6gC,SACjBj8B,EAAEyU,KAAKlb,QAAQ6B,EAAKmtM,WAC7BuT,GAAaD,IACZD,IACAF,GAAe17M,EAAEgxG,eAClB+qG,GAAa3gN,EAAKq7B,OAAOkzK,qBAAqBrvH,MAAK,SAAUgyH,GAC7D,OAAOA,EAAKz4G,SAAS8nH,EACzB,IACIG,GAAaC,IACT3gN,EAAKq7B,OAAO2xK,YACZhtM,EAAKg4G,QAAQh4G,EAAKw4M,OAAO36M,OAAO,EAAOmC,EAAKq7B,OAAO8xK,SAC7CntM,EAAKq7B,OAAO6xK,UACZltM,EAAKq7B,OAAOsyK,iBAEKjqM,IAAvB1D,EAAKw6M,oBACkB92M,IAAvB1D,EAAK84M,oBACgBp1M,IAArB1D,EAAK64M,aACgB,KAArB74M,EAAK6gC,MAAMhjC,YACU6F,IAArB1D,EAAK6gC,MAAMhjC,OACXu6M,IAEJp4M,EAAK8zH,QACD9zH,EAAKq7B,QACgB,UAArBr7B,EAAKq7B,OAAO2lE,MACkB,IAA9BhhG,EAAKo3M,cAAcr6M,QACnBiD,EAAK2kM,OAAM,GAEvB,CACJ,CACA,SAASgV,GAAWiH,GAChB,MAAKA,GACA5gN,EAAKq7B,OAAOo6K,SAAWmL,EAAU5gN,EAAKq7B,OAAOo6K,QAAQ3+F,eACrD92G,EAAKq7B,OAAOw6K,SAAW+K,EAAU5gN,EAAKq7B,OAAOw6K,QAAQ/+F,eAF1D,CAIA,IAAI+pG,EAAaD,EAASE,EAAY9gN,EAAK62M,cAAgBgK,EAC3D7gN,EAAK62M,YAAcgK,GAAc7gN,EAAK62M,YAClC72M,EAAKq7B,OAAOw6K,SACZ71M,EAAK62M,cAAgB72M,EAAKq7B,OAAOw6K,QAAQ/+F,cACzC92G,EAAK42M,aAAe/sM,KAAKi4B,IAAI9hC,EAAKq7B,OAAOw6K,QAAQ9+F,WAAY/2G,EAAK42M,cAE7D52M,EAAKq7B,OAAOo6K,SACjBz1M,EAAK62M,cAAgB72M,EAAKq7B,OAAOo6K,QAAQ3+F,gBACzC92G,EAAK42M,aAAe/sM,KAAKinB,IAAI9wB,EAAKq7B,OAAOo6K,QAAQ1+F,WAAY/2G,EAAK42M,eAElEkK,IACA9gN,EAAKi7M,SACLvD,GAAa,gBACbsD,KAdM,CAgBd,CACA,SAAS5zI,GAAU18C,EAAM0pL,GACrB,IAAI79L,OACa,IAAb69L,IAAuBA,GAAW,GACtC,IAAI2M,EAAc/gN,EAAKy0M,UAAU/pL,OAAMhnB,EAAW0wM,GAClD,GAAKp0M,EAAKq7B,OAAOo6K,SACbsL,GACAhM,EAAagM,EAAa/gN,EAAKq7B,OAAOo6K,aAAsB/xM,IAAb0wM,EAAyBA,GAAYp0M,EAAKk5M,gBAAkB,GAC1Gl5M,EAAKq7B,OAAOw6K,SACTkL,GACAhM,EAAagM,EAAa/gN,EAAKq7B,OAAOw6K,aAAsBnyM,IAAb0wM,EAAyBA,GAAYp0M,EAAKq5M,gBAAkB,EAC/G,OAAO,EACX,IAAKr5M,EAAKq7B,OAAOu8I,QAAyC,IAA/B53K,EAAKq7B,OAAOs8I,QAAQ56K,OAC3C,OAAO,EACX,QAAoB2G,IAAhBq9M,EACA,OAAO,EAEX,IADA,IAAIhQ,IAAS/wM,EAAKq7B,OAAOu8I,OAAQrjF,EAAsC,QAA7Bh+E,EAAKvW,EAAKq7B,OAAOu8I,cAA2B,IAAPrhK,EAAgBA,EAAKvW,EAAKq7B,OAAOs8I,QACvG96K,EAAI,EAAGyZ,OAAI,EAAQzZ,EAAI03F,EAAMx3F,OAAQF,IAAK,CAE/C,GADAyZ,EAAIi+E,EAAM13F,GACO,oBAANyZ,GACPA,EAAEyqM,GACF,OAAOhQ,EACN,GAAIz6L,aAAaiB,WACF7T,IAAhBq9M,GACAzqM,EAAEoB,YAAcqpM,EAAYrpM,UAC5B,OAAOq5L,EACN,GAAiB,kBAANz6L,EAAgB,CAC5B,IAAIovF,EAAS1lG,EAAKy0M,UAAUn+L,OAAG5S,GAAW,GAC1C,OAAOgiG,GAAUA,EAAOhuF,YAAcqpM,EAAYrpM,UAC5Cq5L,GACCA,CACX,CACK,GAAiB,kBAANz6L,QACI5S,IAAhBq9M,GACAzqM,EAAErX,MACFqX,EAAE7P,IACFs6M,EAAYrpM,WAAapB,EAAErX,KAAKyY,WAChCqpM,EAAYrpM,WAAapB,EAAE7P,GAAGiR,UAC9B,OAAOq5L,CACf,CACA,OAAQA,CACZ,CACA,SAAS2M,GAASxM,GACd,YAA2BxtM,IAAvB1D,EAAKg4M,iBACyC,IAAtC9G,EAAK1wL,UAAUriB,QAAQ,YACuB,IAAlD+yM,EAAK1wL,UAAUriB,QAAQ,uBACvB6B,EAAKg4M,cAAcv/G,SAASy4G,GAExC,CACA,SAASjuD,GAAOr+I,GACZ,IAAI67M,EAAU77M,EAAEhI,SAAWoD,EAAKw4M,OAC5BwI,EAAehhN,EAAKw4M,OAAO36M,MAAMojN,YAAcC,MAC/CT,IACAO,GACEp8M,EAAEgxG,eAAiB0qG,GAAe17M,EAAEgxG,gBACtC51G,EAAKg4G,QAAQh4G,EAAKw4M,OAAO36M,OAAO,EAAM+G,EAAEhI,SAAWoD,EAAKmtM,SAClDntM,EAAKq7B,OAAO6xK,UACZltM,EAAKq7B,OAAOsyK,WAE1B,CACA,SAASmB,GAAUlqM,GACf,IAAIi2K,EAAci3B,EAAeltM,GAC7B67M,EAAUzgN,EAAKq7B,OAAOytH,KACpBtlJ,EAAQi1F,SAASoiF,GACjBA,IAAgB76K,EAAKw4M,OACvBxL,EAAahtM,EAAKq7B,OAAO2xK,WACzBmU,EAAenhN,EAAKiqI,UAAY+iE,IAAeyT,GAC/CW,EAAqBphN,EAAKq7B,OAAOwxG,QAAU4zE,IAAYzT,EAC3D,GAAkB,KAAdpoM,EAAEmsG,SAAkB0vG,EAAS,CAC7B,GAAIzT,EAKA,OAJAhtM,EAAKg4G,QAAQh4G,EAAKw4M,OAAO36M,OAAO,EAAMg9K,IAAgB76K,EAAKmtM,SACrDntM,EAAKq7B,OAAO6xK,UACZltM,EAAKq7B,OAAOsyK,YAClB3tM,EAAK8zH,QACE+mD,EAAYt+E,OAGnBv8F,EAAK4tB,MAEb,MACK,GAAI0yL,GAAezlC,IACpBsmC,GACAC,EAAoB,CACpB,IAAIC,IAAcrhN,EAAKw6M,eACnBx6M,EAAKw6M,cAAc/hH,SAASoiF,GAChC,OAAQj2K,EAAEmsG,SACN,KAAK,GACGswG,GACAz8M,EAAEs6F,iBACFk5G,IACAkJ,MAGA/G,GAAW31M,GACf,MACJ,KAAK,GACDA,EAAEs6F,iBACFoiH,KACA,MACJ,KAAK,EACL,KAAK,GACGb,IAAYzgN,EAAKq7B,OAAO2xK,aACxBpoM,EAAEs6F,iBACFl/F,EAAK2kM,SAET,MACJ,KAAK,GACL,KAAK,GACD,GAAK0c,GAAcZ,EAgBVzgN,EAAK64M,aACV74M,EAAK64M,YAAYx8G,YAjBO,CACxBz3F,EAAEs6F,iBACF,IAAI5G,EAAgBq/G,IACpB,QAA2Bj0M,IAAvB1D,EAAKg4M,iBACW,IAAfhL,GACI10G,GAAiBolH,GAASplH,IAAkB,CACjD,IAAIipH,EAAwB,KAAd38M,EAAEmsG,QAAiB,GAAK,EACjCnsG,EAAEo8G,SAGHp8G,EAAE26F,kBACFg+G,GAAYgE,GACZ/D,EAAWV,EAAqB,GAAI,IAJpCU,OAAW95M,EAAW69M,EAM9B,CACJ,CAGA,MACJ,KAAK,GACL,KAAK,GACD38M,EAAEs6F,iBACF,IAAIw6G,EAAsB,KAAd90M,EAAEmsG,QAAiB,GAAK,EAC/B/wG,EAAKg4M,oBACat0M,IAAnBm3K,EAAYyhC,IACZzhC,IAAgB76K,EAAK6gC,OACrBg6I,IAAgB76K,EAAKmtM,SACjBvoM,EAAEo8G,SACFp8G,EAAE26F,kBACFo6G,GAAW35M,EAAK62M,YAAc6C,GAC9B8D,EAAWV,EAAqB,GAAI,IAE9BuE,GACN7D,OAAW95M,EAAmB,EAARg2M,GAErB7+B,IAAgB76K,EAAKs/M,mBAC1B3F,GAAW35M,EAAK62M,YAAc6C,GAEzB15M,EAAKq7B,OAAO4yK,cACZoT,GAAarhN,EAAK64M,aACnB74M,EAAK64M,YAAYx8G,QACrB+7G,EAAWxzM,GACX5E,EAAK04M,oBAET,MACJ,KAAK,EACD,GAAI2I,EAAW,CACX,IAAIG,EAAQ,CACRxhN,EAAK64M,YACL74M,EAAK84M,cACL94M,EAAK+4M,cACL/4M,EAAKwwM,MAEJ50M,OAAOoE,EAAKyhN,gBACZplN,QAAO,SAAU0hF,GAAK,OAAOA,CAAG,IACjClhF,EAAI2kN,EAAMrjN,QAAQ08K,GACtB,IAAW,IAAPh+K,EAAU,CACV,IAAID,EAAS4kN,EAAM3kN,GAAK+H,EAAEkxG,UAAY,EAAI,IAC1ClxG,EAAEs6F,kBACDtiG,GAAUoD,EAAKw4M,QAAQn8G,OAC5B,CACJ,MACUr8F,EAAKq7B,OAAOszK,YAClB3uM,EAAKg4M,eACLh4M,EAAKg4M,cAAcv/G,SAASoiF,IAC5Bj2K,EAAEkxG,WACFlxG,EAAEs6F,iBACFl/F,EAAKw4M,OAAOn8G,SAEhB,MACJ,QACI,MAEZ,CACA,QAAkB34F,IAAd1D,EAAKwwM,MAAsB31B,IAAgB76K,EAAKwwM,KAChD,OAAQ5rM,EAAE1H,KACN,KAAK8C,EAAK6zM,KAAKrD,KAAK,GAAGx9K,OAAO,GAC9B,KAAKhzB,EAAK6zM,KAAKrD,KAAK,GAAGx9K,OAAO,GAAGtxB,cAC7B1B,EAAKwwM,KAAK38F,YAAc7zG,EAAK6zM,KAAKrD,KAAK,GACvCiI,IACA31D,KACA,MACJ,KAAK9iJ,EAAK6zM,KAAKrD,KAAK,GAAGx9K,OAAO,GAC9B,KAAKhzB,EAAK6zM,KAAKrD,KAAK,GAAGx9K,OAAO,GAAGtxB,cAC7B1B,EAAKwwM,KAAK38F,YAAc7zG,EAAK6zM,KAAKrD,KAAK,GACvCiI,IACA31D,KACA,OAGR29D,GAAWH,GAAezlC,KAC1B68B,GAAa,YAAa9yM,EAElC,CACA,SAASs1M,GAAYhJ,EAAMwQ,GAEvB,QADkB,IAAdA,IAAwBA,EAAY,iBACN,IAA9B1hN,EAAKo3M,cAAcr6M,UAClBm0M,GACKA,EAAKhsM,UAAUuzF,SAASipH,KACtBxQ,EAAKhsM,UAAUuzF,SAAS,uBAHpC,CAUA,IALA,IAAIkpH,EAAYzQ,EACVA,EAAKoB,QAAQ56L,UACb1X,EAAKgiC,KAAKs2F,kBAAkBg6E,QAAQ56L,UAAWoiG,EAAc95G,EAAKy0M,UAAUz0M,EAAKo3M,cAAc,QAAI1zM,GAAW,GAAMgU,UAAWkqM,EAAiB/3M,KAAKi4B,IAAI6/K,EAAW3hN,EAAKo3M,cAAc,GAAG1/L,WAAYmqM,EAAeh4M,KAAKinB,IAAI6wL,EAAW3hN,EAAKo3M,cAAc,GAAG1/L,WACjQoqM,GAAmB,EACnBC,EAAW,EAAGC,EAAW,EACpBpgM,EAAIggM,EAAgBhgM,EAAIigM,EAAcjgM,GAAKugB,EAASozK,IACpDnuI,GAAU,IAAI7vD,KAAKqK,IAAI,KACxBkgM,EACIA,GAAqBlgM,EAAIggM,GAAkBhgM,EAAIigM,EAC/CjgM,EAAIk4F,KAAiBioG,GAAYngM,EAAImgM,GACrCA,EAAWngM,EACNA,EAAIk4F,KAAiBkoG,GAAYpgM,EAAIogM,KAC1CA,EAAWpgM,IAGvB,IAAIqgM,EAAiBpjN,MAAMI,KAAKe,EAAK07M,WAAWliH,iBAAiB,kBAAoBx5F,EAAKq7B,OAAOo0K,WAAa,QAAUiS,IACxHO,EAAehlN,SAAQ,SAAUilN,GAC7B,IAAIx3L,EAAOw3L,EAAQ5P,QACf6P,EAAYz3L,EAAKhT,UACjB0qM,EAAcL,EAAW,GAAKI,EAAYJ,GACzCC,EAAW,GAAKG,EAAYH,EACjC,GAAII,EAKA,OAJAF,EAAQh9M,UAAUhK,IAAI,kBACtB,CAAC,UAAW,aAAc,YAAY+B,SAAQ,SAAUkG,GACpD++M,EAAQh9M,UAAUkjD,OAAOjlD,EAC7B,IAGK2+M,IAAqBM,IAE9B,CAAC,aAAc,UAAW,WAAY,cAAcnlN,SAAQ,SAAUkG,GAClE++M,EAAQh9M,UAAUkjD,OAAOjlD,EAC7B,SACaO,IAATwtM,IACAA,EAAKhsM,UAAUhK,IAAIymN,GAAa3hN,EAAKo3M,cAAc,GAAG1/L,UAChD,aACA,YACFoiG,EAAc6nG,GAAaQ,IAAcroG,EACzCooG,EAAQh9M,UAAUhK,IAAI,cACjB4+G,EAAc6nG,GAAaQ,IAAcroG,GAC9CooG,EAAQh9M,UAAUhK,IAAI,YACtBinN,GAAaJ,IACC,IAAbC,GAAkBG,GAAaH,IAChChN,EAAUmN,EAAWroG,EAAa6nG,IAClCO,EAAQh9M,UAAUhK,IAAI,YAElC,GA/CU,CAgDd,CACA,SAAS++M,MACDj6M,EAAKiqI,QAAWjqI,EAAKq7B,OAAO+nI,QAAWpjK,EAAKq7B,OAAOwxG,QACnD4qE,IACR,CACA,SAAS7pL,GAAKhpB,EAAG0qM,GAEb,QADwB,IAApBA,IAA8BA,EAAkBtvM,EAAKqiN,mBACnC,IAAlBriN,EAAK8zM,SAAmB,CACxB,GAAIlvM,EAAG,CACHA,EAAEs6F,iBACF,IAAI27E,EAAci3B,EAAeltM,GAC7Bi2K,GACAA,EAAYt+E,MAEpB,CAMA,YALyB74F,IAArB1D,EAAKkgN,cACLlgN,EAAKkgN,YAAY7jH,QACjBr8F,EAAKkgN,YAAY//G,cAErBu3G,GAAa,SAEjB,CACK,IAAI13M,EAAKw4M,OAAOhrL,WAAYxtB,EAAKq7B,OAAOwxG,OAAxC,CAGL,IAAIy1E,EAAUtiN,EAAKiqI,OACnBjqI,EAAKiqI,QAAS,EACTq4E,IACDtiN,EAAK43M,kBAAkB1yM,UAAUhK,IAAI,QACrC8E,EAAKw4M,OAAOtzM,UAAUhK,IAAI,UAC1Bw8M,GAAa,UACbD,GAAiBnI,KAEU,IAA3BtvM,EAAKq7B,OAAO4yK,aAAkD,IAA3BjuM,EAAKq7B,OAAOszK,cAChB,IAA3B3uM,EAAKq7B,OAAO2xK,iBACLtpM,IAANkB,GACI5E,EAAKw6M,cAAc/hH,SAAS7zF,EAAEgxG,gBACnCj5F,YAAW,WAAc,OAAO3c,EAAK64M,YAAYp/G,QAAU,GAAG,IAbtE,CAgBJ,CACA,SAAS8oH,GAAiBt7M,GACtB,OAAO,SAAUyjB,GACb,IAAI4nL,EAAWtyM,EAAKq7B,OAAO,IAAMp0B,EAAO,QAAUjH,EAAKy0M,UAAU/pL,EAAM1qB,EAAKq7B,OAAOsyK,YAC/E6U,EAAiBxiN,EAAKq7B,OAAO,KAAgB,QAATp0B,EAAiB,MAAQ,OAAS,aAC1DvD,IAAZ4uM,IACAtyM,EAAc,QAATiH,EAAiB,iBAAmB,kBACrCqrM,EAAQt6C,WAAa,GACjBs6C,EAAQr6C,aAAe,GACvBq6C,EAAQp6C,aAAe,GAE/Bl4J,EAAKo3M,gBACLp3M,EAAKo3M,cAAgBp3M,EAAKo3M,cAAc/6M,QAAO,SAAUia,GAAK,OAAO8wD,GAAU9wD,EAAI,IAC9EtW,EAAKo3M,cAAcr6M,QAAmB,QAATkK,GAC9BowM,EAAiB/E,GACrBxvD,MAEA9iJ,EAAKg4M,gBACLiD,UACgBv3M,IAAZ4uM,EACAtyM,EAAKs/M,mBAAmBr4M,GAAQqrM,EAAQx7F,cAAcz3G,WAEtDW,EAAKs/M,mBAAmBjlH,gBAAgBpzF,GAC5CjH,EAAKs/M,mBAAmB9xL,WAClBg1L,QACc9+M,IAAZ4uM,GACAkQ,EAAe1rG,gBAAkBw7F,EAAQx7F,cAEzD,CACJ,CACA,SAASggG,KACL,IAAI2L,EAAW,CACX,OACA,cACA,aACA,sBACA,aACA,YACA,aACA,aACA,WACA,wBACA,SACA,SACA,gBACA,iBAEAC,EAAah8K,EAASA,EAAS,CAAC,EAAGx4B,KAAKnH,MAAMmH,KAAKC,UAAU3K,EAAQm/M,SAAW,CAAC,KAAMvM,GACvFzC,EAAU,CAAC,EACf3zM,EAAKq7B,OAAOo5K,UAAYiO,EAAWjO,UACnCz0M,EAAKq7B,OAAO44K,WAAayO,EAAWzO,WACpC/3M,OAAOoB,eAAe0C,EAAKq7B,OAAQ,SAAU,CACzC1uB,IAAK,WAAc,OAAO3M,EAAKq7B,OAAOunL,OAAS,EAC/C/1M,IAAK,SAAUg2M,GACX7iN,EAAKq7B,OAAOunL,QAAUE,GAAeD,EACzC,IAEJ3mN,OAAOoB,eAAe0C,EAAKq7B,OAAQ,UAAW,CAC1C1uB,IAAK,WAAc,OAAO3M,EAAKq7B,OAAO0xK,QAAU,EAChDlgM,IAAK,SAAUg2M,GACX7iN,EAAKq7B,OAAO0xK,SAAW+V,GAAeD,EAC1C,IAEJ,IAAIE,EAA+B,SAApBL,EAAW1hH,KAC1B,IAAK0hH,EAAW/U,aAAe+U,EAAWzU,YAAc8U,GAAW,CAC/D,IAAIC,EAAoB1M,EAAUh7K,cAAcqyK,YAAc0I,EAAe1I,WAC7EgG,EAAQhG,WACJ+U,EAAW/T,YAAcoU,EACnB,OAASL,EAAW1U,cAAgB,KAAO,IAC3CgV,EAAoB,QAAUN,EAAW1U,cAAgB,KAAO,GAC9E,CACA,GAAI0U,EAAWvV,WACVuV,EAAWzU,YAAc8U,KACzBL,EAAWxV,UAAW,CACvB,IAAI+V,EAAmB3M,EAAUh7K,cAAc4xK,WAAamJ,EAAenJ,UAC3EyG,EAAQzG,UACJwV,EAAW/T,YAAcoU,EACnB,OAASL,EAAW1U,cAAgB,OAAS,MAC7CiV,EAAoB,QAAUP,EAAW1U,cAAgB,KAAO,IAAM,IACpF,CACA9xM,OAAOoB,eAAe0C,EAAKq7B,OAAQ,UAAW,CAC1C1uB,IAAK,WAAc,OAAO3M,EAAKq7B,OAAO6nL,QAAU,EAChDr2M,IAAK01M,GAAiB,SAE1BrmN,OAAOoB,eAAe0C,EAAKq7B,OAAQ,UAAW,CAC1C1uB,IAAK,WAAc,OAAO3M,EAAKq7B,OAAO8nL,QAAU,EAChDt2M,IAAK01M,GAAiB,SAE1B,IAAIa,EAAmB,SAAUn8M,GAAQ,OAAO,SAAUjD,GACtDhE,EAAKq7B,OAAgB,QAATp0B,EAAiB,WAAa,YAAcjH,EAAKy0M,UAAUzwM,EAAK,QAChF,CAAG,EACH9H,OAAOoB,eAAe0C,EAAKq7B,OAAQ,UAAW,CAC1C1uB,IAAK,WAAc,OAAO3M,EAAKq7B,OAAOgoL,QAAU,EAChDx2M,IAAKu2M,EAAiB,SAE1BlnN,OAAOoB,eAAe0C,EAAKq7B,OAAQ,UAAW,CAC1C1uB,IAAK,WAAc,OAAO3M,EAAKq7B,OAAOioL,QAAU,EAChDz2M,IAAKu2M,EAAiB,SAEF,SAApBV,EAAW1hH,OACXhhG,EAAKq7B,OAAOszK,YAAa,EACzB3uM,EAAKq7B,OAAO4yK,YAAa,GAE7B/xM,OAAOkhF,OAAOp9E,EAAKq7B,OAAQs4K,EAAS+O,GACpC,IAAK,IAAI7lN,EAAI,EAAGA,EAAI4lN,EAAS1lN,OAAQF,IACjCmD,EAAKq7B,OAAOonL,EAAS5lN,KACY,IAA7BmD,EAAKq7B,OAAOonL,EAAS5lN,KACY,SAA7BmD,EAAKq7B,OAAOonL,EAAS5lN,IACjCiwM,EAAMzwM,QAAO,SAAUhC,GAAQ,YAA6BqJ,IAAtB1D,EAAKq7B,OAAOhhC,EAAqB,IAAG4C,SAAQ,SAAU5C,GACxF2F,EAAKq7B,OAAOhhC,GAAQ42M,EAASjxM,EAAKq7B,OAAOhhC,IAAS,IAAIqI,IAAIo1M,EAC9D,IACA93M,EAAK8zM,UACA9zM,EAAKq7B,OAAO0yK,gBACR/tM,EAAKq7B,OAAOwxG,QACQ,WAArB7sI,EAAKq7B,OAAO2lE,OACXhhG,EAAKq7B,OAAOs8I,QAAQ56K,SACpBiD,EAAKq7B,OAAOu8I,SACZ53K,EAAKq7B,OAAOs0K,aACb,iEAAiEnwM,KAAK02E,UAAU1lD,WACxF,IAAS3zB,EAAI,EAAGA,EAAImD,EAAKq7B,OAAOkZ,QAAQx3C,OAAQF,IAAK,CACjD,IAAI0mN,EAAavjN,EAAKq7B,OAAOkZ,QAAQ13C,GAAGmD,IAAS,CAAC,EAClD,IAAK,IAAI9C,KAAOqmN,EACRzW,EAAM3uM,QAAQjB,IAAQ,EACtB8C,EAAKq7B,OAAOn+B,GAAO+zM,EAASsS,EAAWrmN,IAClCwF,IAAIo1M,GACJl8M,OAAOoE,EAAKq7B,OAAOn+B,IAEQ,qBAApBwlN,EAAWxlN,KACvB8C,EAAKq7B,OAAOn+B,GAAOqmN,EAAWrmN,GAE1C,CACKwlN,EAAWtV,gBACZptM,EAAKq7B,OAAO+xK,cACRoW,KAAehjM,UAAY,IAAMxgB,EAAKq7B,OAAO+xK,eAErDsK,GAAa,gBACjB,CACA,SAAS8L,KACL,OAAOxjN,EAAKq7B,OAAOytH,KACbtlJ,EAAQk2F,cAAc,gBACtBl2F,CACV,CACA,SAASuzM,KAC6B,kBAAvB/2M,EAAKq7B,OAAOo8E,QAC4B,qBAAxC6+F,EAAUmN,MAAMzjN,EAAKq7B,OAAOo8E,SACnCz3G,EAAKq7B,OAAO6yK,aAAa,IAAI7/L,MAAM,6BAA+BrO,EAAKq7B,OAAOo8E,SAClFz3G,EAAK6zM,KAAOntK,EAASA,EAAS,CAAC,EAAG4vK,EAAUmN,MAAMt8M,SAAyC,kBAAvBnH,EAAKq7B,OAAOo8E,OAC1Ez3G,EAAKq7B,OAAOo8E,OACW,YAAvBz3G,EAAKq7B,OAAOo8E,OACR6+F,EAAUmN,MAAMzjN,EAAKq7B,OAAOo8E,aAC5B/zG,GACVgwM,EAAWtB,EAAI,IAAMpyM,EAAK6zM,KAAKhE,SAASC,UAAU5uM,KAAK,KAAO,IAC9DwyM,EAAW/yM,EAAI,IAAMX,EAAK6zM,KAAKhE,SAASE,SAAS7uM,KAAK,KAAO,IAC7DwyM,EAAWd,EAAI,IAAM5yM,EAAK6zM,KAAK7D,OAAOF,UAAU5uM,KAAK,KAAO,IAC5DwyM,EAAWrB,EAAI,IAAMryM,EAAK6zM,KAAK7D,OAAOD,SAAS7uM,KAAK,KAAO,IAC3DwyM,EAAWf,EAAI,IAAM3yM,EAAK6zM,KAAKrD,KAAK,GAAK,IAAMxwM,EAAK6zM,KAAKrD,KAAK,GAAK,IAAMxwM,EAAK6zM,KAAKrD,KAAK,GAAG9uM,cAAgB,IAAM1B,EAAK6zM,KAAKrD,KAAK,GAAG9uM,cAAgB,IACnJ,IAAIghN,EAAah8K,EAASA,EAAS,CAAC,EAAG0vK,GAAiBloM,KAAKnH,MAAMmH,KAAKC,UAAU3K,EAAQm/M,SAAW,CAAC,UACzEj/M,IAAzBg/M,EAAWhT,gBAC2BhsM,IAAtC4yM,EAAUh7K,cAAco0K,YACxB1vM,EAAKq7B,OAAOq0K,UAAY1vM,EAAK6zM,KAAKnE,WAEtC1vM,EAAKi0M,WAAav8F,EAAoB13G,GACtCA,EAAKy0M,UAAYP,EAAiB,CAAE74K,OAAQr7B,EAAKq7B,OAAQw4K,KAAM7zM,EAAK6zM,MACxE,CACA,SAAS4D,GAAiBiM,GACtB,GAAoC,oBAAzB1jN,EAAKq7B,OAAOmgE,UAGvB,QAA+B93F,IAA3B1D,EAAK43M,kBAAT,CAEAF,GAAa,yBACb,IAAIpI,EAAkBoU,GAAyB1jN,EAAKqiN,iBAChDsB,EAAiB9kN,MAAMjB,UAAUiF,OAAO7H,KAAKgF,EAAK43M,kBAAkBh0M,UAAW,SAAUd,EAAK82F,GAAS,OAAO92F,EAAM82F,EAAMT,YAAc,GAAI,GAAIm9C,EAAgBt2I,EAAK43M,kBAAkBj9E,YAAaipF,EAAY5jN,EAAKq7B,OAAOmgE,SAASv6F,MAAM,KAAM4iN,EAAoBD,EAAU,GAAIE,EAAsBF,EAAU7mN,OAAS,EAAI6mN,EAAU,GAAK,KAAMG,EAAczU,EAAgB30G,wBAAyBqpH,EAAqBlkN,OAAOy7H,YAAcwoF,EAAYnxG,OAAQqxG,EAAkC,UAAtBJ,GAC/b,UAAtBA,GACGG,EAAqBL,GACrBI,EAAY7oH,IAAMyoH,EACtBzoH,EAAMp7F,OAAOw7F,YACbyoH,EAAY7oH,KACV+oH,GAAgDN,EAAiB,EAArDrU,EAAgBn2G,aAAe,GAGjD,GAFAkyC,EAAYrrI,EAAK43M,kBAAmB,YAAaqM,GACjD54E,EAAYrrI,EAAK43M,kBAAmB,cAAeqM,IAC/CjkN,EAAKq7B,OAAOwxG,OAAhB,CAEA,IAAI3nG,EAAOplC,OAAOy7F,YAAcwoH,EAAY7+K,KACxCg/K,GAAW,EACXC,GAAU,EACc,WAAxBL,GACA5+K,IAASoxG,EAAgBytE,EAAYjrH,OAAS,EAC9CorH,GAAW,GAEkB,UAAxBJ,IACL5+K,GAAQoxG,EAAgBytE,EAAYjrH,MACpCqrH,GAAU,GAEd94E,EAAYrrI,EAAK43M,kBAAmB,aAAcsM,IAAaC,GAC/D94E,EAAYrrI,EAAK43M,kBAAmB,cAAesM,GACnD74E,EAAYrrI,EAAK43M,kBAAmB,aAAcuM,GAClD,IAAIh/K,EAAQrlC,OAAOk2E,SAASloC,KAAK6sF,aAC5B76H,OAAOy7F,YAAcwoH,EAAY5+K,OAClCi/K,EAAYl/K,EAAOoxG,EAAgBx2I,OAAOk2E,SAASloC,KAAK6sF,YACxD0pF,EAAal/K,EAAQmxG,EAAgBx2I,OAAOk2E,SAASloC,KAAK6sF,YAE9D,GADA0Q,EAAYrrI,EAAK43M,kBAAmB,YAAawM,IAC7CpkN,EAAKq7B,OAAO+nI,OAGhB,GADApjK,EAAK43M,kBAAkBn1M,MAAMy4F,IAAMA,EAAM,KACpCkpH,EAIA,GAAKC,EAIL,CACD,IAAIxzL,EAAMyzL,KACV,QAAY5gN,IAARmtB,EACA,OACJ,IAAI0zL,EAAYzkN,OAAOk2E,SAASloC,KAAK6sF,YACjC6pF,EAAa36M,KAAKinB,IAAI,EAAGyzL,EAAY,EAAIjuE,EAAgB,GACzDmuE,EAAe,wCACfC,EAAc,uCACdC,EAAc9zL,EAAI+zL,SAAS7nN,OAC3B8nN,EAAc,SAAWd,EAAY7+K,KAAO,kBAChDmmG,EAAYrrI,EAAK43M,kBAAmB,aAAa,GACjDvsE,EAAYrrI,EAAK43M,kBAAmB,cAAc,GAClD/mL,EAAIi0L,WAAWL,EAAe,IAAMC,EAAcG,EAAaF,GAC/D3kN,EAAK43M,kBAAkBn1M,MAAMyiC,KAAOs/K,EAAa,KACjDxkN,EAAK43M,kBAAkBn1M,MAAM0iC,MAAQ,MACzC,MAlBInlC,EAAK43M,kBAAkBn1M,MAAMyiC,KAAO,OACpCllC,EAAK43M,kBAAkBn1M,MAAM0iC,MAAQA,EAAQ,UAL7CnlC,EAAK43M,kBAAkBn1M,MAAMyiC,KAAOA,EAAO,KAC3CllC,EAAK43M,kBAAkBn1M,MAAM0iC,MAAQ,MAzB/B,CAbA,OAHMnlC,EAAKq7B,OAAOmgE,SAASx7F,EAAM0jN,EA+D/C,CACA,SAASY,KAEL,IADA,IAAIS,EAAgB,KACXloN,EAAI,EAAGA,EAAIm5E,SAASgvI,YAAYjoN,OAAQF,IAAK,CAClD,IAAIooN,EAAQjvI,SAASgvI,YAAYnoN,GACjC,GAAKooN,EAAML,SAAX,CAEA,IACIK,EAAML,QACV,CACA,MAAO/vM,GACH,QACJ,CACAkwM,EAAgBE,EAChB,KARY,CAShB,CACA,OAAwB,MAAjBF,EAAwBA,EAAgBG,IACnD,CACA,SAASA,KACL,IAAIziN,EAAQuzE,SAASnuE,cAAc,SAEnC,OADAmuE,SAASmvI,KAAKrnD,YAAYr7J,GACnBA,EAAMwiN,KACjB,CACA,SAAShK,KACDj7M,EAAKq7B,OAAOszK,YAAc3uM,EAAK8zM,WAEnCkH,KACAuE,KACA3D,KACJ,CACA,SAAS0F,KACLthN,EAAKw4M,OAAOn8G,SACwC,IAAhDv8F,OAAOo2E,UAAU1lD,UAAUryB,QAAQ,cACJuF,IAA/BwyE,UAAUkvI,iBACVzoM,WAAW3c,EAAK8zH,MAAO,GAGvB9zH,EAAK8zH,OAEb,CACA,SAASymF,GAAW31M,GAChBA,EAAEs6F,iBACFt6F,EAAE26F,kBACF,IAAImuF,EAAe,SAAU72E,GACzB,OAAOA,EAAI3xG,WACP2xG,EAAI3xG,UAAUuzF,SAAS,mBACtBoe,EAAI3xG,UAAUuzF,SAAS,wBACvBoe,EAAI3xG,UAAUuzF,SAAS,aAChC,EACI72E,EAAIyvL,EAAWS,EAAeltM,GAAI8oL,GACtC,QAAUhqL,IAANke,EAAJ,CAEA,IAAIhlB,EAASglB,EACT06F,EAAgBt8G,EAAKs3M,sBAAwB,IAAI//L,KAAK3a,EAAO01M,QAAQ56L,WACrE2tM,GAAqB/oG,EAAavF,WAAa/2G,EAAK42M,cACpDt6F,EAAavF,WACT/2G,EAAK42M,aAAe52M,EAAKq7B,OAAOo0K,WAAa,IAC5B,UAArBzvM,EAAKq7B,OAAO2lE,KAEhB,GADAhhG,EAAKy8M,iBAAmB7/M,EACC,WAArBoD,EAAKq7B,OAAO2lE,KACZhhG,EAAKo3M,cAAgB,CAAC96F,QACrB,GAAyB,aAArBt8G,EAAKq7B,OAAO2lE,KAAqB,CACtC,IAAIskH,EAAgB9I,GAAelgG,GAC/BgpG,EACAtlN,EAAKo3M,cAAc3xK,OAAOh+B,SAAS69M,GAAgB,GAEnDtlN,EAAKo3M,cAAc36M,KAAK6/G,EAChC,KAC8B,UAArBt8G,EAAKq7B,OAAO2lE,OACiB,IAA9BhhG,EAAKo3M,cAAcr6M,QACnBiD,EAAK2kM,OAAM,GAAO,GAEtB3kM,EAAKs3M,sBAAwBh7F,EAC7Bt8G,EAAKo3M,cAAc36M,KAAK6/G,GACwC,IAA5Dy4F,EAAaz4F,EAAct8G,EAAKo3M,cAAc,IAAI,IAClDp3M,EAAKo3M,cAAc9rK,MAAK,SAAUkwC,EAAG/oE,GAAK,OAAO+oE,EAAE9jE,UAAYjF,EAAEiF,SAAW,KAGpF,GADA+gM,IACI4M,EAAmB,CACnB,IAAIvE,EAAY9gN,EAAK62M,cAAgBv6F,EAAaxF,cAClD92G,EAAK62M,YAAcv6F,EAAaxF,cAChC92G,EAAK42M,aAAet6F,EAAavF,WAC7B+pG,IACApJ,GAAa,gBACbsD,MAEJtD,GAAa,gBACjB,CAcA,GAbA6H,KACA3D,KACA94D,KACKuiE,GACoB,UAArBrlN,EAAKq7B,OAAO2lE,MACe,IAA3BhhG,EAAKq7B,OAAOo0K,gBAEmB/rM,IAA1B1D,EAAKy8M,uBACW/4M,IAArB1D,EAAK64M,aACL74M,EAAKy8M,kBAAoBz8M,EAAKy8M,iBAAiBpgH,QAH/CugH,EAAehgN,QAKM8G,IAArB1D,EAAK64M,kBACgBn1M,IAArB1D,EAAK64M,aAA6B74M,EAAK64M,YAAYx8G,QACnDr8F,EAAKq7B,OAAOoyK,cAAe,CAC3B,IAAI8X,EAA8B,WAArBvlN,EAAKq7B,OAAO2lE,OAAsBhhG,EAAKq7B,OAAO4yK,WACvDn1E,EAA6B,UAArB94H,EAAKq7B,OAAO2lE,MACU,IAA9BhhG,EAAKo3M,cAAcr6M,SAClBiD,EAAKq7B,OAAO4yK,YACbsX,GAAUzsF,IACVwoF,IAER,CACAxH,GA3DU,CA4Dd,CAniDA95M,EAAKy0M,UAAYP,EAAiB,CAAE74K,OAAQr7B,EAAKq7B,OAAQw4K,KAAM7zM,EAAK6zM,OACpE7zM,EAAK65M,UAAY,GACjB75M,EAAKyhN,eAAiB,GACtBzhN,EAAKwlN,cAAgB,GACrBxlN,EAAKylN,MAAQ5hN,EACb7D,EAAK0lN,kBAAoBrO,EACzBr3M,EAAK2lN,kBAAoBlO,GACzBz3M,EAAKu9M,YAAcA,GACnBv9M,EAAK25M,WAAaA,GAClB35M,EAAK2kM,MAAQA,GACb3kM,EAAK8zH,MAAQA,GACb9zH,EAAKk6M,YAAcA,GACnBl6M,EAAK4lN,eAAiB/9M,EACtB7H,EAAKk8M,UAAYA,EACjBl8M,EAAK0pH,QAAUA,GACf1pH,EAAKonE,UAAYA,GACjBpnE,EAAK26M,WAAaA,EAClB36M,EAAK8iJ,YAAcA,GACnB9iJ,EAAK4tB,KAAOA,GACZ5tB,EAAKi7M,OAASA,GACdj7M,EAAK6M,IAAMA,GACX7M,EAAKg4G,QAAUA,GACfh4G,EAAKywG,OAASA,GA8gDd,IAAIo1G,GAAY,CACZpuG,OAAQ,CAACs/F,GAAa6I,IACtBnQ,WAAY,CAACsP,GAAaxH,EAAkBoE,IAC5ClG,QAAS,CAACkF,GACV9E,QAAS,CAAC8E,GACVrL,gBAAiB,CAACwW,IAClBtY,WAAY,CACR,YACmC,IAA3BxtM,EAAKq7B,OAAOmyK,YACZ3pM,EAAK7D,EAAKw4M,OAAQ,QAASx4M,EAAK4tB,MAChC/pB,EAAK7D,EAAKw4M,OAAQ,QAASx4M,EAAK4tB,QAGhC5tB,EAAKw4M,OAAOthI,oBAAoB,QAASl3E,EAAK4tB,MAC9C5tB,EAAKw4M,OAAOthI,oBAAoB,QAASl3E,EAAK4tB,MAEtD,IAGR,SAAS/gB,GAAIsiI,EAAQtxI,GACjB,GAAe,OAAXsxI,GAAqC,kBAAXA,EAE1B,IAAK,IAAIjyI,KADThB,OAAOkhF,OAAOp9E,EAAKq7B,OAAQ8zG,GACXA,OACWzrI,IAAnBmiN,GAAU3oN,IACV2oN,GAAU3oN,GAAKD,SAAQ,SAAU8gF,GAAK,OAAOA,GAAK,SAI1D/9E,EAAKq7B,OAAO8zG,GAAUtxI,OACI6F,IAAtBmiN,GAAU12E,GACV02E,GAAU12E,GAAQlyI,SAAQ,SAAU8gF,GAAK,OAAOA,GAAK,IAChD+uH,EAAM3uM,QAAQgxI,IAAW,IAC9BnvI,EAAKq7B,OAAO8zG,GAAU8hE,EAASpzM,IAEvCmC,EAAKi7M,SACLn4D,IAAY,EAChB,CACA,SAASijE,GAAgBC,EAAWn4M,GAChC,IAAIg1M,EAAQ,GACZ,GAAImD,aAAqBnnN,MACrBgkN,EAAQmD,EAAUtjN,KAAI,SAAU4T,GAAK,OAAOtW,EAAKy0M,UAAUn+L,EAAGzI,EAAS,SACtE,GAAIm4M,aAAqBzuM,MAA6B,kBAAdyuM,EACzCnD,EAAQ,CAAC7iN,EAAKy0M,UAAUuR,EAAWn4M,SAClC,GAAyB,kBAAdm4M,EACZ,OAAQhmN,EAAKq7B,OAAO2lE,MAChB,IAAK,SACL,IAAK,OACD6hH,EAAQ,CAAC7iN,EAAKy0M,UAAUuR,EAAWn4M,IACnC,MACJ,IAAK,WACDg1M,EAAQmD,EACH/kN,MAAMjB,EAAKq7B,OAAOqyK,aAClBhrM,KAAI,SAAUgoB,GAAQ,OAAO1qB,EAAKy0M,UAAU/pL,EAAM7c,EAAS,IAChE,MACJ,IAAK,QACDg1M,EAAQmD,EACH/kN,MAAMjB,EAAK6zM,KAAKzD,gBAChB1tM,KAAI,SAAUgoB,GAAQ,OAAO1qB,EAAKy0M,UAAU/pL,EAAM7c,EAAS,IAChE,MACJ,QACI,WAIR7N,EAAKq7B,OAAO6yK,aAAa,IAAI7/L,MAAM,0BAA4BH,KAAKC,UAAU63M,KAClFhmN,EAAKo3M,cAAiBp3M,EAAKq7B,OAAO4xK,oBAC5B4V,EACAA,EAAMxmN,QAAO,SAAUia,GAAK,OAAOA,aAAaiB,MAAQ6vD,GAAU9wD,GAAG,EAAQ,IAC1D,UAArBtW,EAAKq7B,OAAO2lE,MACZhhG,EAAKo3M,cAAc9rK,MAAK,SAAUkwC,EAAG/oE,GAAK,OAAO+oE,EAAE9jE,UAAYjF,EAAEiF,SAAW,GACpF,CACA,SAASsgG,GAAQttF,EAAMovL,EAAejsM,GAGlC,QAFsB,IAAlBisM,IAA4BA,GAAgB,QACjC,IAAXjsM,IAAqBA,EAAS7N,EAAKq7B,OAAOsyK,YAChC,IAATjjL,IAAeA,GAAUA,aAAgB7rB,OAAyB,IAAhB6rB,EAAK3tB,OACxD,OAAOiD,EAAK2kM,MAAMmV,GACtBiM,GAAgBr7L,EAAM7c,GACtB7N,EAAKs3M,sBACDt3M,EAAKo3M,cAAcp3M,EAAKo3M,cAAcr6M,OAAS,GACnDiD,EAAKi7M,SACLN,OAAWj3M,EAAWo2M,GACtBzC,IACkC,IAA9Br3M,EAAKo3M,cAAcr6M,QACnBiD,EAAK2kM,OAAM,GAEf7hD,GAAYg3D,GACRA,GACApC,GAAa,WACrB,CACA,SAASoL,GAAetkN,GACpB,OAAOA,EACFc,QACAoD,KAAI,SAAUujN,GACf,MAAoB,kBAATA,GACS,kBAATA,GACPA,aAAgB1uM,KACTvX,EAAKy0M,UAAUwR,OAAMviN,GAAW,GAElCuiN,GACW,kBAATA,GACPA,EAAKhnN,MACLgnN,EAAKx/M,GACE,CACHxH,KAAMe,EAAKy0M,UAAUwR,EAAKhnN,UAAMyE,GAChC+C,GAAIzG,EAAKy0M,UAAUwR,EAAKx/M,QAAI/C,IAE7BuiN,CACX,IACK5pN,QAAO,SAAU0hF,GAAK,OAAOA,CAAG,GACzC,CACA,SAASk5H,KACLj3M,EAAKo3M,cAAgB,GACrBp3M,EAAKwX,IAAMxX,EAAKy0M,UAAUz0M,EAAKq7B,OAAO7jB,MAAQ,IAAID,KAClD,IAAI2uM,EAAgBlmN,EAAKq7B,OAAOg9K,cACF,UAAxBr4M,EAAK6gC,MAAMy2F,UACe,aAAxBt3H,EAAK6gC,MAAMy2F,WACXt3H,EAAK6gC,MAAMs0G,aACXn1I,EAAK6gC,MAAMhjC,QAAUmC,EAAK6gC,MAAMs0G,YAE9Bn1I,EAAK6gC,MAAMhjC,MADX,MAENqoN,GACAH,GAAgBG,EAAelmN,EAAKq7B,OAAOsyK,YAC/C3tM,EAAKmgN,aACDngN,EAAKo3M,cAAcr6M,OAAS,EACtBiD,EAAKo3M,cAAc,GACnBp3M,EAAKq7B,OAAOo6K,SACVz1M,EAAKq7B,OAAOo6K,QAAQ/9L,UAAY1X,EAAKwX,IAAIE,UACvC1X,EAAKq7B,OAAOo6K,QACZz1M,EAAKq7B,OAAOw6K,SACV71M,EAAKq7B,OAAOw6K,QAAQn+L,UAAY1X,EAAKwX,IAAIE,UACvC1X,EAAKq7B,OAAOw6K,QACZ71M,EAAKwX,IACvBxX,EAAK62M,YAAc72M,EAAKmgN,aAAarpG,cACrC92G,EAAK42M,aAAe52M,EAAKmgN,aAAappG,WAClC/2G,EAAKo3M,cAAcr6M,OAAS,IAC5BiD,EAAKs3M,sBAAwBt3M,EAAKo3M,cAAc,SACxB1zM,IAAxB1D,EAAKq7B,OAAO49K,UACZj5M,EAAKq7B,OAAO49K,QAAUj5M,EAAKy0M,UAAUz0M,EAAKq7B,OAAO49K,QAAS,aAClCv1M,IAAxB1D,EAAKq7B,OAAO+9K,UACZp5M,EAAKq7B,OAAO+9K,QAAUp5M,EAAKy0M,UAAUz0M,EAAKq7B,OAAO+9K,QAAS,QAC9Dp5M,EAAKk5M,iBACCl5M,EAAKq7B,OAAOo6K,UACTz1M,EAAKq7B,OAAOo6K,QAAQz9C,WAAa,GAC9Bh4J,EAAKq7B,OAAOo6K,QAAQx9C,aAAe,GACnCj4J,EAAKq7B,OAAOo6K,QAAQv9C,aAAe,GAC/Cl4J,EAAKq5M,iBACCr5M,EAAKq7B,OAAOw6K,UACT71M,EAAKq7B,OAAOw6K,QAAQ79C,WAAa,GAC9Bh4J,EAAKq7B,OAAOw6K,QAAQ59C,aAAe,GACnCj4J,EAAKq7B,OAAOw6K,QAAQ39C,aAAe,EACnD,CACA,SAAS8+C,KACLh3M,EAAK6gC,MAAQ2iL,KACRxjN,EAAK6gC,OAIV7gC,EAAK6gC,MAAMw/K,MAAQrgN,EAAK6gC,MAAM55B,KAC9BjH,EAAK6gC,MAAM55B,KAAO,OAClBjH,EAAK6gC,MAAM37B,UAAUhK,IAAI,mBACzB8E,EAAKw4M,OAASx4M,EAAK6gC,MACf7gC,EAAKq7B,OAAO8xK,WACZntM,EAAKmtM,SAAWtlM,EAAc7H,EAAK6gC,MAAMy2F,SAAUt3H,EAAKq7B,OAAO+xK,eAC/DptM,EAAKw4M,OAASx4M,EAAKmtM,SACnBntM,EAAKmtM,SAASh4D,YAAcn1I,EAAK6gC,MAAMs0G,YACvCn1I,EAAKmtM,SAAS3/K,SAAWxtB,EAAK6gC,MAAMrT,SACpCxtB,EAAKmtM,SAAS7lM,SAAWtH,EAAK6gC,MAAMv5B,SACpCtH,EAAKmtM,SAAShxG,SAAWn8F,EAAK6gC,MAAMs7D,SACpCn8F,EAAKmtM,SAASlmM,KAAO,OACrBjH,EAAK6gC,MAAMs5D,aAAa,OAAQ,WAC3Bn6F,EAAKq7B,OAAO+nI,QAAUpjK,EAAK6gC,MAAMy2D,YAClCt3F,EAAK6gC,MAAMy2D,WAAW0kH,aAAah8M,EAAKmtM,SAAUntM,EAAK6gC,MAAMo7K,cAEhEj8M,EAAKq7B,OAAO2xK,YACbhtM,EAAKw4M,OAAOr+G,aAAa,WAAY,YACzC2rH,MArBI9lN,EAAKq7B,OAAO6yK,aAAa,IAAI7/L,MAAM,mCAsB3C,CACA,SAASy3M,KACL9lN,EAAKqiN,iBAAmBriN,EAAKq7B,OAAOi0K,iBAAmBtvM,EAAKw4M,MAChE,CACA,SAASuB,KACL,IAAIxsD,EAAYvtJ,EAAKq7B,OAAO4yK,WACtBjuM,EAAKq7B,OAAOszK,WACR,OACA,iBACJ,OACN3uM,EAAKkgN,YAAcr4M,EAAc,QAAS7H,EAAK6gC,MAAMrgB,UAAY,qBACjExgB,EAAKkgN,YAAY/jH,SAAW,EAC5Bn8F,EAAKkgN,YAAYj5M,KAAOsmJ,EACxBvtJ,EAAKkgN,YAAY1yL,SAAWxtB,EAAK6gC,MAAMrT,SACvCxtB,EAAKkgN,YAAY54M,SAAWtH,EAAK6gC,MAAMv5B,SACvCtH,EAAKkgN,YAAY/qE,YAAcn1I,EAAK6gC,MAAMs0G,YAC1Cn1I,EAAKmmN,gBACa,mBAAd54D,EACM,gBACc,SAAdA,EACI,QACA,QACVvtJ,EAAKo3M,cAAcr6M,OAAS,IAC5BiD,EAAKkgN,YAAYprL,aAAe90B,EAAKkgN,YAAYriN,MAAQmC,EAAKi0M,WAAWj0M,EAAKo3M,cAAc,GAAIp3M,EAAKmmN,kBAErGnmN,EAAKq7B,OAAOo6K,UACZz1M,EAAKkgN,YAAYp+K,IAAM9hC,EAAKi0M,WAAWj0M,EAAKq7B,OAAOo6K,QAAS,UAC5Dz1M,EAAKq7B,OAAOw6K,UACZ71M,EAAKkgN,YAAYpvL,IAAM9wB,EAAKi0M,WAAWj0M,EAAKq7B,OAAOw6K,QAAS,UAC5D71M,EAAK6gC,MAAM05D,aAAa,UACxBv6F,EAAKkgN,YAAY/hI,KAAO/2E,OAAOpH,EAAK6gC,MAAM05D,aAAa,UAC3Dv6F,EAAK6gC,MAAM55B,KAAO,cACIvD,IAAlB1D,EAAKmtM,WACLntM,EAAKmtM,SAASlmM,KAAO,UACzB,IACQjH,EAAK6gC,MAAMy2D,YACXt3F,EAAK6gC,MAAMy2D,WAAW0kH,aAAah8M,EAAKkgN,YAAalgN,EAAK6gC,MAAMo7K,YACxE,CACA,MAAO1lM,GAAM,CACb1S,EAAK7D,EAAKkgN,YAAa,UAAU,SAAUt7M,GACvC5E,EAAKg4G,QAAQ85F,EAAeltM,GAAG/G,OAAO,EAAOmC,EAAKmmN,iBAClDzO,GAAa,YACbA,GAAa,UACjB,GACJ,CACA,SAASjnG,GAAO7rG,GACZ,IAAoB,IAAhB5E,EAAKiqI,OACL,OAAOjqI,EAAK8zH,QAChB9zH,EAAK4tB,KAAKhpB,EACd,CACA,SAAS8yM,GAAarzJ,EAAO1gD,GACzB,QAAoBD,IAAhB1D,EAAKq7B,OAAT,CAEA,IAAIitB,EAAQtoD,EAAKq7B,OAAOgpB,GACxB,QAAc3gD,IAAV4kD,GAAuBA,EAAMvrD,OAAS,EACtC,IAAK,IAAIF,EAAI,EAAGyrD,EAAMzrD,IAAMA,EAAIyrD,EAAMvrD,OAAQF,IAC1CyrD,EAAMzrD,GAAGmD,EAAKo3M,cAAep3M,EAAK6gC,MAAMhjC,MAAOmC,EAAM2D,GAE/C,aAAV0gD,IACArkD,EAAK6gC,MAAMu6K,cAAcj/J,GAAY,WACrCn8C,EAAK6gC,MAAMu6K,cAAcj/J,GAAY,UAR/B,CAUd,CACA,SAASA,GAAY58C,GACjB,IAAIqF,EAAIoxE,SAAS75B,YAAY,SAE7B,OADAv3C,EAAEw3C,UAAU78C,GAAM,GAAM,GACjBqF,CACX,CACA,SAAS43M,GAAe9xL,GACpB,IAAK,IAAI7tB,EAAI,EAAGA,EAAImD,EAAKo3M,cAAcr6M,OAAQF,IAAK,CAChD,IAAIy/G,EAAet8G,EAAKo3M,cAAcv6M,GACtC,GAAIy/G,aAAwB/kG,MACa,IAArCw9L,EAAaz4F,EAAc5xF,GAC3B,MAAO,GAAK7tB,CACpB,CACA,OAAO,CACX,CACA,SAAS6/M,GAAchyL,GACnB,QAAyB,UAArB1qB,EAAKq7B,OAAO2lE,MAAoBhhG,EAAKo3M,cAAcr6M,OAAS,KAExDg4M,EAAarqL,EAAM1qB,EAAKo3M,cAAc,KAAO,GACjDrC,EAAarqL,EAAM1qB,EAAKo3M,cAAc,KAAO,EACrD,CACA,SAASmI,KACDv/M,EAAKq7B,OAAOszK,YAAc3uM,EAAK8zM,WAAa9zM,EAAKq6M,WAErDr6M,EAAKi/M,aAAahiN,SAAQ,SAAU4hN,EAAahiN,GAC7C,IAAIyZ,EAAI,IAAIiB,KAAKvX,EAAK62M,YAAa72M,EAAK42M,aAAc,GACtDtgM,EAAE4hG,SAASl4G,EAAK42M,aAAe/5M,GAC3BmD,EAAKq7B,OAAOo0K,WAAa,GACS,WAAlCzvM,EAAKq7B,OAAOozK,kBACZzuM,EAAKk/M,cAAcriN,GAAGg3G,YAClBo+F,EAAW37L,EAAEygG,WAAY/2G,EAAKq7B,OAAOm0K,sBAAuBxvM,EAAK6zM,MAAQ,IAG7E7zM,EAAKu+M,wBAAwB1gN,MAAQyY,EAAEygG,WAAW13G,WAEtDw/M,EAAYhhN,MAAQyY,EAAEwgG,cAAcz3G,UACxC,IACAW,EAAK8/M,yBACuBp8M,IAAxB1D,EAAKq7B,OAAOo6K,UACPz1M,EAAK62M,cAAgB72M,EAAKq7B,OAAOo6K,QAAQ3+F,cACpC92G,EAAK42M,cAAgB52M,EAAKq7B,OAAOo6K,QAAQ1+F,WACzC/2G,EAAK62M,YAAc72M,EAAKq7B,OAAOo6K,QAAQ3+F,eACrD92G,EAAK+/M,yBACuBr8M,IAAxB1D,EAAKq7B,OAAOw6K,UACP71M,EAAK62M,cAAgB72M,EAAKq7B,OAAOw6K,QAAQ/+F,cACpC92G,EAAK42M,aAAe,EAAI52M,EAAKq7B,OAAOw6K,QAAQ9+F,WAC5C/2G,EAAK62M,YAAc72M,EAAKq7B,OAAOw6K,QAAQ/+F,eACzD,CACA,SAASoqG,GAAWkF,GAChB,IAAIv4M,EAASu4M,IACRpmN,EAAKq7B,OAAO8xK,SAAWntM,EAAKq7B,OAAO6xK,UAAYltM,EAAKq7B,OAAOsyK,YAChE,OAAO3tM,EAAKo3M,cACP10M,KAAI,SAAU2jN,GAAQ,OAAOrmN,EAAKi0M,WAAWoS,EAAMx4M,EAAS,IAC5DxR,QAAO,SAAUia,EAAGzZ,EAAG2B,GACxB,MAA4B,UAArBwB,EAAKq7B,OAAO2lE,MACfhhG,EAAKq7B,OAAO4yK,YACZzvM,EAAIL,QAAQmY,KAAOzZ,CAC3B,IACKqE,KAA0B,UAArBlB,EAAKq7B,OAAO2lE,KAChBhhG,EAAKq7B,OAAOqyK,YACZ1tM,EAAK6zM,KAAKzD,eACpB,CACA,SAASttD,GAAYg3D,QACK,IAAlBA,IAA4BA,GAAgB,QACvBp2M,IAArB1D,EAAKkgN,aAA6BlgN,EAAKmmN,kBACvCnmN,EAAKkgN,YAAYriN,WACkB6F,IAA/B1D,EAAKs3M,sBACCt3M,EAAKi0M,WAAWj0M,EAAKs3M,sBAAuBt3M,EAAKmmN,iBACjD,IAEdnmN,EAAK6gC,MAAMhjC,MAAQqjN,GAAWlhN,EAAKq7B,OAAOsyK,iBACpBjqM,IAAlB1D,EAAKmtM,WACLntM,EAAKmtM,SAAStvM,MAAQqjN,GAAWlhN,EAAKq7B,OAAO6xK,aAE3B,IAAlB4M,GACApC,GAAa,gBACrB,CACA,SAAS4C,GAAgB11M,GACrB,IAAIi2K,EAAci3B,EAAeltM,GAC7B0hN,EAActmN,EAAKg/M,aAAavmH,SAASoiF,GACzC0rC,EAAcvmN,EAAKm/M,aAAa1mH,SAASoiF,GACzCyrC,GAAeC,EACfhJ,GAAY+I,GAAe,EAAI,GAE1BtmN,EAAKi/M,aAAa9gN,QAAQ08K,IAAgB,EAC/CA,EAAYphF,SAEPohF,EAAY31K,UAAUuzF,SAAS,WACpCz4F,EAAK25M,WAAW35M,EAAK62M,YAAc,GAE9Bh8B,EAAY31K,UAAUuzF,SAAS,cACpCz4F,EAAK25M,WAAW35M,EAAK62M,YAAc,EAE3C,CACA,SAASjwJ,GAAYhiD,GACjBA,EAAEs6F,iBACF,IAAIsnH,EAAuB,YAAX5hN,EAAEqC,KAAoB4zK,EAAci3B,EAAeltM,GAAIi8B,EAAQg6I,OAC7Dn3K,IAAd1D,EAAKwwM,MAAsB31B,IAAgB76K,EAAKwwM,OAChDxwM,EAAKwwM,KAAK38F,YACN7zG,EAAK6zM,KAAKrD,KAAKM,EAAI9wM,EAAKwwM,KAAK38F,cAAgB7zG,EAAK6zM,KAAKrD,KAAK,MAEpE,IAAI1uK,EAAM+3B,WAAWh5B,EAAM05D,aAAa,QAASzpE,EAAM+oC,WAAWh5B,EAAM05D,aAAa,QAASpc,EAAOtkB,WAAWh5B,EAAM05D,aAAa,SAAUksH,EAAWh/M,SAASo5B,EAAMhjC,MAAO,IAAK67M,EAAQ90M,EAAE80M,QACxL8M,EAAyB,KAAZ5hN,EAAEyxL,MAAe,GAAK,EAAK,GACzCvpL,EAAW25M,EAAWtoI,EAAOu7H,EACjC,GAA2B,qBAAhB74K,EAAMhjC,OAAgD,IAAvBgjC,EAAMhjC,MAAMd,OAAc,CAChE,IAAI2pN,EAAa7lL,IAAU7gC,EAAK64M,YAAa8N,EAAe9lL,IAAU7gC,EAAK84M,cACvEhsM,EAAWg1B,GACXh1B,EACIgkB,EACIhkB,EACAgkM,GAAK4V,IACJ5V,EAAI4V,IAAe5V,GAAK9wM,EAAKwwM,OAClCmW,GACAzL,OAAkBx3M,GAAY,EAAG1D,EAAK64M,cAErC/rM,EAAWgkB,IAChBhkB,EACI+zB,IAAU7gC,EAAK64M,YAAc/rM,EAAWgkB,EAAMggL,GAAK9wM,EAAKwwM,MAAQ1uK,EAChE6kL,GACAzL,OAAkBx3M,EAAW,EAAG1D,EAAK64M,cAEzC74M,EAAKwwM,MACLkW,IACU,IAATvoI,EACKrxE,EAAW25M,IAAa,GACxB58M,KAAKywD,IAAIxtD,EAAW25M,GAAYtoI,KACtCn+E,EAAKwwM,KAAK38F,YACN7zG,EAAK6zM,KAAKrD,KAAKM,EAAI9wM,EAAKwwM,KAAK38F,cAAgB7zG,EAAK6zM,KAAKrD,KAAK,MAEpE3vK,EAAMhjC,MAAQgzM,EAAI/jM,EACtB,CACJ,CAEA,OADAg4C,IACO9kD,CACX,CACA,SAAS4mN,EAAWC,EAAUxrL,GAK1B,IAJA,IAAI2hI,EAAQn+J,MAAMjB,UAAU0B,MACvBtE,KAAK6rN,GACLxqN,QAAO,SAAU0hF,GAAK,OAAOA,aAAa/B,WAAa,IACxD8qI,EAAY,GACPjqN,EAAI,EAAGA,EAAImgK,EAAMjgK,OAAQF,IAAK,CACnC,IAAIkX,EAAOipJ,EAAMngK,GACjB,IACI,GAA0C,OAAtCkX,EAAKwmF,aAAa,gBAClB,cACoB72F,IAApBqQ,EAAK6yM,aACL7yM,EAAK6yM,WAAWl9F,UAChB31G,EAAK6yM,gBAAaljN,GAEtBqQ,EAAK6yM,WAAazQ,EAAkBpiM,EAAMsnB,GAAU,CAAC,GACrDyrL,EAAUrqN,KAAKsX,EAAK6yM,WACxB,CACA,MAAOhiN,GACHG,QAAQC,MAAMJ,EAClB,CACJ,CACA,OAA4B,IAArBkiN,EAAU/pN,OAAe+pN,EAAU,GAAKA,CACnD,CAC2B,qBAAhB9qI,aACmB,qBAAnB+qI,gBACa,qBAAbC,WACPD,eAAenpN,UAAU04M,UAAY0Q,SAASppN,UAAU04M,UAAY,SAAUj7K,GAC1E,OAAOurL,EAAWjsN,KAAM0gC,EAC5B,EACA2gD,YAAYp+E,UAAU04M,UAAY,SAAUj7K,GACxC,OAAOurL,EAAW,CAACjsN,MAAO0gC,EAC9B,GAEJ,IAAIi7K,EAAY,SAAUj9G,EAAUh+D,GAChC,MAAwB,kBAAbg+D,EACAutH,EAAW9mN,OAAOk2E,SAASwjB,iBAAiBH,GAAWh+D,GAEzDg+D,aAAoB7B,KAClBovH,EAAW,CAACvtH,GAAWh+D,GAGvBurL,EAAWvtH,EAAUh+D,EAEpC,EACAi7K,EAAUh7K,cAAgB,CAAC,EAC3Bg7K,EAAUmN,MAAQ,CACdwD,GAAIvgL,EAAS,CAAC,EAAG6vK,GACjBpvM,QAASu/B,EAAS,CAAC,EAAG6vK,IAE1BD,EAAU4Q,SAAW,SAAUrT,GAC3ByC,EAAUmN,MAAMt8M,QAAUu/B,EAASA,EAAS,CAAC,EAAG4vK,EAAUmN,MAAMt8M,SAAU0sM,EAC9E,EACAyC,EAAU6Q,YAAc,SAAU9rL,GAC9Bi7K,EAAUh7K,cAAgBoL,EAASA,EAAS,CAAC,EAAG4vK,EAAUh7K,eAAgBD,EAC9E,EACAi7K,EAAU7B,UAAYP,EAAiB,CAAC,GACxCoC,EAAUrC,WAAav8F,EAAoB,CAAC,GAC5C4+F,EAAUvB,aAAeA,EACH,qBAAXqS,QAA+C,qBAAdA,OAAOhyM,KAC/CgyM,OAAOhyM,GAAGkhM,UAAY,SAAUj7K,GAC5B,OAAOurL,EAAWjsN,KAAM0gC,EAC5B,GAEJ9jB,KAAK3Z,UAAUypN,QAAU,SAAUrlL,GAC/B,OAAO,IAAIzqB,KAAK5c,KAAKm8G,cAAen8G,KAAKo8G,WAAYp8G,KAAKq8G,WAA6B,kBAATh1E,EAAoBv6B,SAASu6B,EAAM,IAAMA,GAC3H,EACsB,qBAAXliC,SACPA,OAAOw2M,UAAYA,GAEvB,O,oCC7/Da1Q,EAAA,MAAAA,EAAA,MACgB,oBAAlB1pM,OAAOkhF,SACdlhF,OAAOkhF,OAAS,SAAUxgF,GAEtB,IADA,IAAI+5B,EAAO,GACFC,EAAK,EAAGA,EAAK95B,UAAUC,OAAQ65B,IACpCD,EAAKC,EAAK,GAAK95B,UAAU85B,GAE7B,IAAKh6B,EACD,MAAM+C,UAAU,8CAOpB,IALA,IAAI2nN,EAAU,SAAUtqN,GAChBA,GACAd,OAAOD,KAAKe,GAAQC,SAAQ,SAAUC,GAAO,OAAQN,EAAOM,GAAOF,EAAOE,EAAO,GAEzF,EACSqZ,EAAK,EAAGgxM,EAAS5wL,EAAMpgB,EAAKgxM,EAAOxqN,OAAQwZ,IAAM,CACtD,IAAIvZ,EAASuqN,EAAOhxM,GACpB+wM,EAAQtqN,EACZ,CACA,OAAOJ,CACX,E,uCCjBH,SAAU08F,EAAMkuH,GAGbC,EAAAA,EAAc,mEAOjB,CAVA,CAUE9sN,GAAM,WACP,IAAI+sN,EAAY,CAEhBA,QAAoB,SAEhBC,EAAWD,EAAUE,SAAW,CAClCC,QAAS,IACTC,OAAQ,OACRC,cAAe,GACfC,MAAO,IACPC,SAAS,EACTC,YAAa,IACbC,aAAc,IACdC,aAAa,EACbC,YAAa,eACbC,gBAAiB,mBACjBxtN,OAAQ,OACRytN,SAAU,uIA6QZ,SAASC,EAAMppN,EAAG0iC,EAAKhR,GACrB,OAAI1xB,EAAI0iC,EAAYA,EAChB1iC,EAAI0xB,EAAYA,EACb1xB,CACT,CAOA,SAASqpN,EAAUrpN,GACjB,OAAkB,MAAT,EAAIA,EACf,CAQA,SAASspN,EAAetpN,EAAG4oN,EAAOW,GAChC,IAAIC,EAYJ,OATEA,EAD6B,gBAA3BjB,EAASI,cACF,CAAErgN,UAAW,eAAe+gN,EAAUrpN,GAAG,UACd,cAA3BuoN,EAASI,cACT,CAAErgN,UAAW,aAAa+gN,EAAUrpN,GAAG,QAEvC,CAAE,cAAeqpN,EAAUrpN,GAAG,KAGzCwpN,EAAOx7F,WAAa,OAAO46F,EAAM,MAAMW,EAEhCC,CACT,CAtSAlB,EAAUmB,UAAY,SAASvuN,GAC7B,IAAI4C,EAAKW,EACT,IAAKX,KAAO5C,EACVuD,EAAQvD,EAAQ4C,QACFwG,IAAV7F,GAAuBvD,EAAQuG,eAAe3D,KAAMyqN,EAASzqN,GAAOW,GAG1E,OAAOlD,IACT,EAMA+sN,EAAUxsK,OAAS,KASnBwsK,EAAU76M,IAAM,SAASzN,GACvB,IAAI0pN,EAAUpB,EAAUqB,YAExB3pN,EAAIopN,EAAMppN,EAAGuoN,EAASE,QAAS,GAC/BH,EAAUxsK,OAAgB,IAAN97C,EAAU,KAAOA,EAErC,IAAI4pN,EAAWtB,EAAU5tN,QAAQgvN,GAC7BG,EAAWD,EAAStvH,cAAciuH,EAASU,aAC3CL,EAAWL,EAASK,MACpBW,EAAWhB,EAASG,OAkCxB,OAhCAkB,EAASruF,YAET98F,GAAM,SAASnpB,GAEkB,KAA3BizM,EAASI,gBAAsBJ,EAASI,cAAgBL,EAAUwB,qBAGtE3nH,EAAI0nH,EAAKP,EAAetpN,EAAG4oN,EAAOW,IAExB,IAANvpN,GAEFmiG,EAAIynH,EAAU,CACZ57F,WAAY,OACZs/C,QAAS,IAEXs8C,EAASruF,YAETh+G,YAAW,WACT4kF,EAAIynH,EAAU,CACZ57F,WAAY,OAAS46F,EAAQ,YAC7Bt7C,QAAS,IAEX/vJ,YAAW,WACT+qM,EAAUt/J,SACV1zC,GACF,GAAGszM,EACL,GAAGA,IAEHrrM,WAAWjI,EAAMszM,EAErB,IAEOrtN,IACT,EAEA+sN,EAAUqB,UAAY,WACpB,MAAmC,kBAArBrB,EAAUxsK,MAC1B,EASAwsK,EAAUx2M,MAAQ,WACXw2M,EAAUxsK,QAAQwsK,EAAU76M,IAAI,GAErC,IAAIs8M,EAAO,WACTxsM,YAAW,WACJ+qM,EAAUxsK,SACfwsK,EAAUO,UACVkB,IACF,GAAGxB,EAASQ,aACd,EAIA,OAFIR,EAASM,SAASkB,IAEfxuN,IACT,EAcA+sN,EAAU3yM,KAAO,SAAS8tI,GACxB,OAAKA,GAAU6kE,EAAUxsK,OAElBwsK,EAAU0B,IAAI,GAAM,GAAMv/M,KAAKuoB,UAAUvlB,IAAI,GAFZlS,IAG1C,EAMA+sN,EAAU0B,IAAM,SAASC,GACvB,IAAIjqN,EAAIsoN,EAAUxsK,OAElB,OAAK97C,GAGmB,kBAAXiqN,IACTA,GAAU,EAAIjqN,GAAKopN,EAAM3+M,KAAKuoB,SAAWhzB,EAAG,GAAK,MAGnDA,EAAIopN,EAAMppN,EAAIiqN,EAAQ,EAAG,MAClB3B,EAAU76M,IAAIzN,IAPdsoN,EAAUx2M,OASrB,EAEAw2M,EAAUO,QAAU,WAClB,OAAOP,EAAU0B,IAAIv/M,KAAKuoB,SAAWu1L,EAASO,YAChD,EAQA,WACE,IAAIoB,EAAU,EAAGnM,EAAU,EAE3BuK,EAAU5d,QAAU,SAASyf,GAC3B,OAAKA,GAAiC,aAArBA,EAASrzL,SAIV,IAAZinL,GACFuK,EAAUx2M,QAGZo4M,IACAnM,IAEAoM,EAASC,QAAO,WACdrM,IACgB,IAAZA,GACAmM,EAAU,EACV5B,EAAU3yM,QAEV2yM,EAAU76M,KAAKy8M,EAAUnM,GAAWmM,EAE1C,IAEO3uN,MApBEA,IAqBX,CAED,CA5BD,GAmCA+sN,EAAU5tN,OAAS,SAAS2vN,GAC1B,GAAI/B,EAAUgC,aAAc,OAAO1zI,SAAS8jB,eAAe,aAE3DC,EAAS/jB,SAASqB,gBAAiB,kBAEnC,IAAI2xI,EAAWhzI,SAASnuE,cAAc,OACtCmhN,EAASz1L,GAAK,YACdy1L,EAAS3oH,UAAYsnH,EAASY,SAE9B,IAGI99D,EAHAw+D,EAAWD,EAAStvH,cAAciuH,EAASU,aAC3CsB,EAAWF,EAAY,OAAShB,EAAUf,EAAUxsK,QAAU,GAC9DpgD,EAAWk7E,SAAS0jB,cAAciuH,EAAS7sN,QAkB/C,OAfAymG,EAAI0nH,EAAK,CACP77F,WAAY,eACZ1lH,UAAW,eAAiBiiN,EAAO,WAGhChC,EAASS,cACZ39D,EAAUu+D,EAAStvH,cAAciuH,EAASW,iBAC1C79D,GAAWm/D,EAAcn/D,IAGvB3vJ,GAAUk7E,SAASloC,MACrBisD,EAASj/F,EAAQ,2BAGnBA,EAAOgjK,YAAYkrD,GACZA,CACT,EAMAtB,EAAUt/J,OAAS,WACjB4xC,EAAYhkB,SAASqB,gBAAiB,kBACtC2iB,EAAYhkB,SAAS0jB,cAAciuH,EAAS7sN,QAAS,2BACrD,IAAIkuN,EAAWhzI,SAAS8jB,eAAe,aACvCkvH,GAAYY,EAAcZ,EAC5B,EAMAtB,EAAUgC,WAAa,WACrB,QAAS1zI,SAAS8jB,eAAe,YACnC,EAMA4tH,EAAUwB,kBAAoB,WAE5B,IAAIW,EAAY7zI,SAASloC,KAAKrrC,MAG1BqnN,EAAgB,oBAAqBD,EAAa,SAClC,iBAAkBA,EAAa,MAC/B,gBAAiBA,EAAa,KAC9B,eAAgBA,EAAa,IAAM,GAEvD,OAAIC,EAAe,gBAAiBD,EAE3B,cACEC,EAAe,cAAeD,EAEhC,YAGA,QAEX,EA+CA,IAAIhsL,EAAS,WACX,IAAI8gB,EAAU,GAEd,SAASjqC,IACP,IAAIU,EAAKupC,EAAQinD,QACbxwF,GACFA,EAAGV,EAEP,CAEA,OAAO,SAASU,GACdupC,EAAQliD,KAAK2Y,GACS,GAAlBupC,EAAQ5hD,QAAa2X,GAC3B,CACF,CAda,GAwBT6sF,EAAO,WACT,IAAIwoH,EAAc,CAAE,SAAU,IAAK,MAAO,MACtCC,EAAc,CAAC,EAEnB,SAASC,EAAUlpN,GACjB,OAAOA,EAAOM,QAAQ,QAAS,OAAOA,QAAQ,gBAAgB,SAASC,EAAOipB,GAC5E,OAAOA,EAAO/oB,aAChB,GACF,CAEA,SAAS0oN,EAAc3qN,GACrB,IAAIkD,EAAQuzE,SAASloC,KAAKrrC,MAC1B,GAAIlD,KAAQkD,EAAO,OAAOlD,EAE1B,IAEI4qN,EAFAttN,EAAIktN,EAAYhtN,OAChBqtN,EAAU7qN,EAAKyzB,OAAO,GAAGxxB,cAAgBjC,EAAKD,MAAM,GAExD,MAAOzC,IAEL,GADAstN,EAAaJ,EAAYltN,GAAKutN,EAC1BD,KAAc1nN,EAAO,OAAO0nN,EAGlC,OAAO5qN,CACT,CAEA,SAAS8qN,EAAa9qN,GAEpB,OADAA,EAAO0qN,EAAU1qN,GACVyqN,EAASzqN,KAAUyqN,EAASzqN,GAAQ2qN,EAAc3qN,GAC3D,CAEA,SAAS+qN,EAAS9mN,EAASR,EAAMnF,GAC/BmF,EAAOqnN,EAAarnN,GACpBQ,EAAQf,MAAMO,GAAQnF,CACxB,CAEA,OAAO,SAAS2F,EAAS65B,GACvB,IACIr6B,EACAnF,EAFA84B,EAAO75B,UAIX,GAAmB,GAAf65B,EAAK55B,OACP,IAAKiG,KAAQq6B,EACXx/B,EAAQw/B,EAAWr6B,QACLU,IAAV7F,GAAuBw/B,EAAWx8B,eAAemC,IAAOsnN,EAAS9mN,EAASR,EAAMnF,QAGtFysN,EAAS9mN,EAASmzB,EAAK,GAAIA,EAAK,GAEpC,CACF,CAjDW,GAuDX,SAASsiE,EAASz1F,EAASjE,GACzB,IAAImkJ,EAAyB,iBAAXlgJ,EAAsBA,EAAU0B,EAAU1B,GAC5D,OAAOkgJ,EAAKvlJ,QAAQ,IAAMoB,EAAO,MAAQ,CAC3C,CAMA,SAASw6F,EAASv2F,EAASjE,GACzB,IAAIgrN,EAAUrlN,EAAU1B,GACpBgnN,EAAUD,EAAUhrN,EAEpB05F,EAASsxH,EAAShrN,KAGtBiE,EAAQgd,UAAYgqM,EAAQr8L,UAAU,GACxC,CAMA,SAAS6rE,EAAYx2F,EAASjE,GAC5B,IACIirN,EADAD,EAAUrlN,EAAU1B,GAGnBy1F,EAASz1F,EAASjE,KAGvBirN,EAAUD,EAAQlpN,QAAQ,IAAM9B,EAAO,IAAK,KAG5CiE,EAAQgd,UAAYgqM,EAAQr8L,UAAU,EAAGq8L,EAAQztN,OAAS,GAC5D,CAQA,SAASmI,EAAU1B,GACjB,OAAQ,KAAOA,EAAQgd,WAAa,IAAM,KAAKnf,QAAQ,QAAS,IAClE,CAMA,SAASuoN,EAAcpmN,GACrBA,GAAWA,EAAQ8zF,YAAc9zF,EAAQ8zF,WAAWY,YAAY10F,EAClE,CAEA,OAAOkkN,CACT,G;;;;;;;;;;;wnBCvdO,IAAM+C,EAA8B,qBAAX3qN,OAEhC,SAAgB4qN,EAAU7wK,G,OACpBh7C,MAAMC,QAAQ+6C,IAAyB,WAAhBt8C,EAAOs8C,GACzB39C,OAAOwuN,OAAO7wK,GAEhBA,C,CAGT,SAAgB8wK,EACdtoK,G,IACAuoK,EAAA9tN,UAAAC,OAAA,QAAA2G,IAAA5G,UAAA,GAAAA,UAAA,GAAY,CAAC,E,OAENulD,EAAWx/C,QAChB,SAACgoN,EAAYzpJ,G,IACL0pJ,EAAO1pJ,EAAUypJ,WAAW,GAC5BE,EACY,oBAATD,EACFA,EAAKF,GACLxpJ,EAAUypJ,W,OACVA,EAAWjvN,OAAOmvN,E,GAE3B,G,CAIJ,SAAgBt8B,EAAcl6F,EAAYm6F,G,OACjCn6F,EACJ7xF,KAAI,SAAC0H,EAAMsL,G,MACH,CAACA,EAAKtL,E,IAEdkhC,MAAK,SAASkwC,EAAG/oE,G,OACTi8K,EAAUlzG,EAAE,GAAI/oE,EAAE,KAAO+oE,EAAE,GAAK/oE,EAAE,E,IAE1C/P,KAAI,SAAAS,G,OAAKA,EAAE,E,IAGhB,SAAgBq6E,EACdhgF,EACAvB,G,OAEOA,EAAK4G,QACV,SAACC,EAAK5F,G,OACAM,EAAIqD,eAAe3D,KACrB4F,EAAI5F,GAAOM,EAAIN,IAEV4F,C,GAET,CAAC,E,CCzCL,IAAMu/C,EAAyB,CAAC,EAC1BiF,EAAsB,CAAC,EACvBqS,EAAsB,CAAC,EAEhB2kI,EAAWl/G,EAAIc,OAAO,CACjCv8E,KAAM,W,MAAO,CACX0+C,WAAAA,EACAiF,QAAAA,EACAqS,QAAAA,EACAqxJ,eAAgBP,E,EAElBp1H,QAAS,CACPznE,KADO,SACFwzC,G,GACEqpJ,E,KACGhkN,EAA2C26D,EAA3C36D,GAAIxH,EAAuCmiE,EAAvCniE,KAAM4rN,EAAiCzpJ,EAAjCypJ,W,EAAiCzpJ,EAArBu3D,MAAAA,OAAA,IAAAsyF,EAAQC,IAAAD,E,GACjCxkN,GAAOxH,GAAS4rN,E,KAEfM,EAAe,CACnB1kN,GAAAA,EACAxH,KAAAA,EACA4rN,WAAYH,EAAeG,GAC3BlyF,MAAAA,GAEI18H,EAAOC,OAAOD,KAAKtB,KAAK0nD,aAEJ,IAAtBpmD,EAAKkC,QAAQsI,IACf24E,EAAIvyE,IAAIlS,KAAK0nD,WAAY57C,EAAI,I,IAGzBq2L,EAAeniM,KAAKywN,oBAAoBD,GAExCn+L,EAAgBryB,KAAK0nD,WAAW57C,GAAInH,MAAM,IAC1B,IAAlBw9L,EACF9vK,EAAcvwB,KAAK0uN,GAEnBn+L,EAAc8vK,GAAgBquB,E,KAG3B9oK,WAAW57C,GAAMgoL,EACpBzhK,GACA,SAACwuD,EAAc/oE,G,OAAiB+oE,EAAEm9C,MAAQlmH,EAAEkmH,K,GAzBP,CAFjB,C,EA+BxB7E,MAjCO,SAiCD1yD,G,IAA4ByhF,EAAA/lJ,UAAAC,OAAA,QAAA2G,IAAA5G,UAAA,IAAAA,UAAA,GACxB2J,EAAa26D,EAAb36D,GAAIxH,EAASmiE,EAATniE,K,GACPwH,IAAQxH,IAAkB,IAAV4jJ,IAChBloJ,KAAK0nD,WAAW57C,G,GAIjBo8I,E,KACGxgG,WAAW57C,GAAM,OACjB,C,IACCmoC,EAAQj0C,KAAKywN,oBAAoBhqJ,G,GACnCxyB,GAAS,EAAG,C,IAER5hB,EAAgBryB,KAAK0nD,WAAW57C,GAAInH,MAAM,GAChD0tB,EAAcyY,OAAOmJ,EAAO,G,KACvByT,WAAW57C,GAAMumB,C,IAI5Bq+L,eApDO,SAoDQzuN,EAAgB0vG,EAASu2C,GACjC4nE,IACD9vN,KAAKqwN,iBAAmBnoE,GAASloJ,KAAK2sD,QAAQ1qD,IAChDmI,QAAQu5E,KAAR,wBAAA1iF,OAAqCgB,EAArC,oB,KAEGivG,KAAKlxG,KAAK2sD,QAAS1qD,EAAQV,OAAOwuN,OAAO,CAACp+G,K,EAEjDg/G,iBA3DO,SA2DU1uN,G,KACV+uG,QAAQhxG,KAAK2sD,QAAS1qD,E,EAE7B2uN,eA9DO,SA8DQvuN,EAAgBsvG,EAASu2C,GACjC4nE,IACD9vN,KAAKqwN,iBAAmBnoE,GAASloJ,KAAKg/D,QAAQ38D,IAChD+H,QAAQu5E,KAAR,wBAAA1iF,OAAqCoB,EAArC,oB,KAEG6uG,KAAKlxG,KAAKg/D,QAAS38D,EAAQd,OAAOwuN,OAAO,CAACp+G,K,EAEjDk/G,iBArEO,SAqEUxuN,G,KACV2uG,QAAQhxG,KAAKg/D,QAAS38D,E,EAE7BuhM,UAxEO,SAwEG93L,G,SACE9L,KAAK2sD,QAAQ7gD,KAAO9L,KAAK2sD,QAAQ7gD,GAAI,G,EAEjDglN,UA3EO,SA2EGhlN,G,SACE9L,KAAKg/D,QAAQlzD,KAAO9L,KAAKg/D,QAAQlzD,GAAI,G,EAEjDilN,cA9EO,SA8EOjlN,G,QACH9L,KAAK0nD,WAAW57C,MAAS9L,KAAK0nD,WAAW57C,GAAI1J,M,EAGxDquN,oBAlFO,SAAAtwL,G,IAkFer0B,EAAAq0B,EAAAr0B,GAAIxH,EAAA67B,EAAA77B,K,IACnB,IAAMpC,KAAKlC,KAAK0nD,WAAW57C,G,GAC1B9L,KAAK0nD,WAAW57C,GAAI5J,GAAGoC,OAASA,E,OAC1BpC,E,OAGJ,C,KAKR8uN,EAAW,IAAIrtB,EAASj8I,GC7G1BlJ,EAAM,EAEVwnJ,EAAevhH,EAAIc,OAAO,CACxB3gF,KAAM,SACNkE,MAAO,CACL+pB,SAAU,CAAEvmB,KAAMC,SAClB3H,KAAM,CAAE0H,KAAMG,OAAQD,QAAS,W,OAAMC,OAAO+xC,I,GAC5Cw/E,MAAO,CAAE1xH,KAAMO,OAAQL,QAAS,GAChCw3L,KAAM,CAAE13L,KAAMC,SACd0jN,UAAW,CAAE3jN,KAAM/K,OAAQiL,QAAS,W,MAAO,CAAC,C,GAC5CzC,IAAK,CAAEuC,KAAMG,OAAQD,QAAS,OAC9BV,GAAI,CACFQ,KAAMG,OACND,QAAS,W,OAAMC,OAAOyC,KAAK83B,MAAsB,IAAhB93B,KAAKuoB,U,IAG1Co3D,QAdwB,W,gBAejBmZ,WAAU,WACbgpH,EAASJ,eAAep0M,EAAK5X,KAAM4X,E,KAGvCm+F,QAnBwB,WAoBjB36G,KAAK6yB,U,KACHo+L,Y,EAITv3F,QAzBwB,WA0BlB15H,KAAK6yB,S,KACFm3K,Q,KAEAinB,Y,EAIT/oH,cAjCwB,WAkCtB8oH,EAASH,iBAAiB7wN,KAAK4E,M,KAC1BolM,O,EAEPpiG,MAAO,CACL97F,GADK,SACFqG,EAAkB4+F,GACnBA,GAAYA,IAAa5+F,GAAYnS,KAAKgqM,MAAMj5F,G,KAC3CkgH,Y,GAITv2H,QAAS,CACPsvG,MADO,SACD/nM,G,IACEivN,EAA0B,CAC9B5sN,KAAMtE,KAAK4E,KACXkH,GAAI7J,GAAUjC,KAAK8L,IAErBklN,EAAS73F,MAAM+3F,E,EAEjBC,eARO,W,OASEnxN,KAAKo6F,aAAa5tF,QACrB,CAACxM,KAAKo6F,aAAa5tF,SACnBxM,KAAKq6F,OAAO7tF,O,EAElB4kN,qBAbO,SAacnoN,G,MACQ,oBAAbA,EACVA,EAASjJ,KAAKiwN,WACdhnN,C,EAENgoN,WAlBO,W,IAmBCI,EAAcrxN,KAAKmxN,iB,GACrBE,EAAa,C,IACT5qJ,EAA4B,CAChCniE,KAAMtE,KAAK4E,KACXkH,GAAI9L,KAAK8L,GACTokN,WAAUtsN,EAAMytN,GAChBrzF,MAAOh+H,KAAKg+H,OAEdgzF,EAAS/9L,KAAKwzC,E,WAETujI,O,GAKX7qM,OA9EwB,SA8EjB2B,G,IACCmI,EACJjJ,KAAKq6F,OAAO7tF,SAAWxM,KAAKo6F,aAAa5tF,SAAW,GAChD8kN,EAAMtxN,KAAK+J,I,OACbd,GAAYjJ,KAAK6yB,SACZ5pB,EAAS7G,QAAU,GAAKpC,KAAKgkM,KAClChkM,KAAKoxN,qBAAqBnoN,GAAU,GAEpCnI,EAACwwN,EAAD,CAAMtxN,KAAKoxN,qBAAqBnoN,KAG3BjJ,KAAKgkM,KACRljM,IACAA,EAAEwwN,EAAK,CACL9nN,MAAO,C,YAAc,GACrB1B,MAAO,CAAEgyH,QAAS,QAClBv3H,IAAK,wB,IC9FjBwhM,EAAet/G,EAAIc,OAAO,CACxB3gF,KAAM,eACNkE,MAAO,CACLy2I,SAAU,CAAEjzI,KAAMC,QAASC,SAAS,GACpC5H,KAAM,CAAE0H,KAAMG,OAAQE,UAAU,GAChCq3L,KAAM,CAAE13L,KAAMC,QAASC,SAAS,GAChCyjN,UAAW,CAAE3jN,KAAM/K,OAAQiL,QAAS,W,MAAO,CAAC,C,GAC5CzC,IAAK,CAAEuC,KAAMG,OAAQD,QAAS,OAC9BimH,WAAY,CAAEnmH,KAAM,CAACG,OAAQlL,OAAQic,YAIvCxU,KAZwB,W,MAaf,CACL0+C,WAAYspK,EAAStpK,WACrB6pK,aAAa,E,EAGjB1iI,QAlBwB,W,gBAmBjBmZ,WAAU,WACbgpH,EAASN,eAAel0M,EAAK5X,KAAM4X,E,KAGvCorF,MAAO,CACL4pH,cADK,W,KAEE1pH,MAAM,SAAU9nG,KAAKiJ,WAAW7G,OAAS,E,EAEhDwC,KAJK,SAIA6sN,EAAQC,GAKXV,EAASL,iBAAiBe,GAC1BV,EAASN,eAAee,EAAQzxN,K,GAGpC26G,QApCwB,W,WAqClB36G,KAAKyyH,Y,KACFzqB,WAAU,WAEbqK,EAAKk/G,aAAc,C,KAIzBrpH,cA5CwB,WA6CtB8oH,EAASL,iBAAiB3wN,KAAK4E,K,EAGjC+kG,SAAU,CACR6nH,cADQ,W,IAEA9pK,EAA0B1nD,KAAK0nD,WAAW1nD,KAAK4E,OAAS,G,OAC1D5E,KAAKu/I,SACA73F,EAEoB,IAAtBA,EAAWtlD,OAAe,GAAK,CAACslD,EAAWA,EAAWtlD,OAAS,G,EAExE8tN,WARQ,W,OASCF,EAAkBhwN,KAAKwxN,cAAexxN,KAAKiwN,U,GAItDv1H,QAAS,CAEPzxF,SAFO,W,OAG6B,IAA3BjJ,KAAKkwN,WAAW9tN,OACnBpC,KAAKkwN,WACLlwN,KAAKo6F,aAAa5tF,QACjBxM,KAAKo6F,aAAa5tF,QAAQxM,KAAKiwN,WAChCjwN,KAAKq6F,OAAO7tF,SAAW,E,EAG7BmlN,UAVO,W,IAWCA,EAAY3xN,KAAKgkM,OAAShkM,KAAKyyH,W,OACjCk/F,GAAa3xN,KAAKiJ,WAAW7G,OAAS,GACxCgI,QAAQu5E,KACN,uFAGGguI,C,GAGXxyN,OAjFwB,SAiFjB2B,G,IACC6wN,EAAY3xN,KAAK2xN,YACjB1oN,EAAWjJ,KAAKiJ,WAChBqoN,EAAMtxN,KAAKyyH,YAAczyH,KAAK+J,I,OAE7B4nN,EACH1oN,EAAS,GACTjJ,KAAKgkM,OAASstB,EACdxwN,IACAA,EACEwwN,EACA,CACExoN,MAAO,CAELiB,IAAK/J,KAAKyyH,YAAczyH,KAAK+J,IAAM/J,KAAK+J,SAAMhB,GAEhDS,MAAO,C,qBAAuB,IAGhCP,E,IClGN2oN,EAAM,EAQJC,EAAc,CAClB,WACA,OACA,QACA,OACA,YACA,MACA,MAGIC,EAAc,CAAC,WAAY,cAEjCC,EAAgBttI,EAAyBc,OAAO,CAC9C3gF,KAAM,iBACNivG,cAAc,EACd/qG,MAAO,CACLshD,OAAQ,CAAE99C,KAAM,CAACC,QAASE,SAC1BulN,KAAM,CACJ1lN,KAAMC,SAER0lN,QAAS,CAAE3lN,KAAMG,OAAQE,UAAU,GAGnCkmB,SAAU,CAAEvmB,KAAMC,SAElB3H,KAAM,CACJ0H,KAAMG,OACND,QAAS,W,MAAM,WAAaC,OAAOmlN,I,GAErC5zF,MAAO,CAAE1xH,KAAMO,OAAQL,QAAS,GAChCw3L,KAAM,CAAE13L,KAAMC,SACd0jN,UAAW,CAAE3jN,KAAM/K,OAAQiL,QAAS,W,MAAO,CAAC,C,GAC5CzC,IAAK,CAAEuC,KAAMG,OAAQD,QAAS,OAE9BV,GAAI,CACFQ,KAAMG,OACND,QAAS,W,OAAMC,OAAOyC,KAAK83B,MAAsB,IAAhB93B,KAAKuoB,U,GAIxC8nH,SAAU,CAAEjzI,KAAMC,QAASC,SAAS,GACpC0lN,WAAY,CAAE5lN,KAAMC,SACpB4lN,gBAAiB,CAAE7lN,KAAM/K,OAAQiL,QAAS,W,MAAO,CAAC,C,GAClD4lN,UAAW,CAAE9lN,KAAMG,OAAQD,QAAS,OACpCimH,WAAY,CAAEnmH,KAAM,CAACG,OAAQlL,OAAQic,YAIvCqxE,QApC8C,W,GAqCpB,qBAAbxT,S,KACP2T,EAAyB3T,SAAS0jB,cAAc/+F,KAAKiyN,S,GAEpDjjI,E,KAOClmF,EAAQ9I,KAAKuwH,O,GAGfygG,EAASrkK,QAAQ7jD,EAAMlE,MACrBkE,EAAMkpN,KACR5nN,QAAQu5E,KAAR,wBAAA1iF,OAAqC6H,EAAMlE,KAA3C,uE,KAGKytN,aAAerB,EAASrkK,QAAQ7jD,EAAMlE,U,KAKvCwlD,EAAWthD,EAAXshD,O,GACJA,EAAQ,C,IACJ99C,EAAyB,kBAAX89C,EAAsBA,EAAS,MAC7CkoK,EAAUj3I,SAASnuE,cAAcZ,GACvC0iF,EAAGm0E,YAAYmvD,GACftjI,EAAKsjI,C,KAKDhgC,EAASzvG,EAAK7iF,KAAKuwH,OAAQuhG,GACjCx/B,EAAO0R,KAAOhkM,KAAKkyN,WACnB5/B,EAAOvoL,IAAM/J,KAAKoyN,UAClB9/B,EAAO29B,UAAYjwN,KAAKmyN,gBACxB7/B,EAAO1tL,KAAO5E,KAAK8L,G,KAEdumN,aAAe,IAAItuB,EAAa,CACnC/0G,GAAAA,EACA7uF,OAAQH,KAAKqvG,SAAWrvG,KACxBojK,UAAWkvB,G,OAtCXloL,QAAQC,MAAR,8BAAApJ,OACgCjB,KAAKiyN,QADrC,2BAJyC,C,EA8C7C/pH,cAnF8C,W,IAoFtCjmG,EAASjC,KAAKqyN,a,GAChBryN,KAAKoqD,OAAQ,C,IACT4kC,EAAK/sF,EAAO4yG,IAClB7lB,EAAG2N,WAAWY,YAAYvO,E,CAE5B/sF,EAAOqhK,U,EAGTnkK,OA5F8C,SA4FvC2B,G,IACAd,KAAKqyN,a,OACRjoN,QAAQu5E,KAAK,sCACN7iF,I,IAIJd,KAAKo6F,aAAa2nF,OAAQ,C,IACvBj5K,EAAQ+5E,EAAK7iF,KAAKuwH,OAAQshG,G,OACzB/wN,EACLklM,EACA,CACEl9L,MAAOA,EACPQ,MAAOtJ,KAAKwxG,OACZnhB,GAAIrwF,KAAK8yG,WACT/iB,YAAa/vF,KAAKo6F,cAEpBp6F,KAAKq6F,OAAO7tF,Q,KAKZ24F,EAAkBnlG,KAAKo6F,aAAa2nF,OAAO,CAC7Cj2K,GAAI9L,KAAK8L,K,OAKP5H,MAAMC,QAAQghG,KAChBA,EAAUA,EAAQ,IAGfA,GAAgBrkG,G,IzXtIzB,SAASmkF,EAAQstI,G,IAA0B5yN,EAAAwC,UAAAC,OAAA,QAAA2G,IAAA5G,UAAA,GAAAA,UAAA,GAAyB,GAClEowN,EAAI7sI,UAAU/lF,EAAQ6yN,YAAc,SAAUxsB,GAC9CusB,EAAI7sI,UAAU/lF,EAAQ8yN,kBAAoB,eAAgB1uB,GAC1DwuB,EAAI7sI,UAAU/lF,EAAQ+yN,oBAAsB,iBAAkBX,E,CAYhE,IAAA99K,EAAe,CACbgxC,QAAAA,G,mG0XnCD,SAASh7E,EAAExF,GAAwDc,EAAOrE,QAAQuD,GAA0I,CAA5N,CAA8N,oBAAoBY,MAAKA,MAAW,WAAW,OAAO,SAAS4E,GAAG,IAAIxF,EAAE,CAAC,EAAE,SAASwiB,EAAEgnE,GAAG,GAAGxpF,EAAEwpF,GAAG,OAAOxpF,EAAEwpF,GAAG/sF,QAAQ,IAAIqD,EAAEE,EAAEwpF,GAAG,CAAC/rF,EAAE+rF,EAAEjoF,GAAE,EAAG9E,QAAQ,CAAC,GAAG,OAAO+I,EAAEgkF,GAAG5tF,KAAKkE,EAAErD,QAAQqD,EAAEA,EAAErD,QAAQ+lB,GAAG1iB,EAAEyB,GAAE,EAAGzB,EAAErD,OAAO,CAAC,OAAO+lB,EAAE2xL,EAAE3uM,EAAEgd,EAAEze,EAAE/D,EAAEwiB,EAAEtL,EAAE,SAAS1R,EAAExF,EAAEwpF,GAAGhnE,EAAE1iB,EAAE0F,EAAExF,IAAIlD,OAAOoB,eAAesH,EAAExF,EAAE,CAAC5C,YAAW,EAAGmQ,IAAIi8E,GAAG,EAAEhnE,EAAEgnE,EAAE,SAAShkF,GAAG,oBAAoBnH,QAAQA,OAAOoS,aAAa3T,OAAOoB,eAAesH,EAAEnH,OAAOoS,YAAY,CAAChS,MAAM,WAAW3B,OAAOoB,eAAesH,EAAE,aAAa,CAAC/G,OAAM,GAAI,EAAE+jB,EAAEA,EAAE,SAAShd,EAAExF,GAAG,GAAG,EAAEA,IAAIwF,EAAEgd,EAAEhd,IAAI,EAAExF,EAAE,OAAOwF,EAAE,GAAG,EAAExF,GAAG,iBAAiBwF,GAAGA,GAAGA,EAAE0oN,WAAW,OAAO1oN,EAAE,IAAIgkF,EAAE1sF,OAAOs2C,OAAO,MAAM,GAAG5wB,EAAEgnE,EAAEA,GAAG1sF,OAAOoB,eAAesrF,EAAE,UAAU,CAACpsF,YAAW,EAAGqB,MAAM+G,IAAI,EAAExF,GAAG,iBAAiBwF,EAAE,IAAI,IAAI1F,KAAK0F,EAAEgd,EAAEtL,EAAEsyE,EAAE1pF,EAAE,SAASE,GAAG,OAAOwF,EAAExF,EAAE,EAAEyE,KAAK,KAAK3E,IAAI,OAAO0pF,CAAC,EAAEhnE,EAAExiB,EAAE,SAASwF,GAAG,IAAIxF,EAAEwF,GAAGA,EAAE0oN,WAAW,WAAW,OAAO1oN,EAAEuC,OAAO,EAAE,WAAW,OAAOvC,CAAC,EAAE,OAAOgd,EAAEtL,EAAElX,EAAE,IAAIA,GAAGA,CAAC,EAAEwiB,EAAE1iB,EAAE,SAAS0F,EAAExF,GAAG,OAAOlD,OAAO0B,UAAUiD,eAAe7F,KAAK4J,EAAExF,EAAE,EAAEwiB,EAAEC,EAAE,GAAGD,EAAEA,EAAEjf,EAAE,EAAE,CAAn5B,CAAq5B,CAAC,SAASiC,EAAExF,EAAEwiB,GAAG,aAAa,SAASgnE,EAAEhkF,EAAExF,GAAG,IAAIwiB,EAAE1lB,OAAOD,KAAK2I,GAAG,GAAG1I,OAAOC,sBAAsB,CAAC,IAAIysF,EAAE1sF,OAAOC,sBAAsByI,GAAGxF,IAAIwpF,EAAEA,EAAEvsF,QAAQ,SAAS+C,GAAG,OAAOlD,OAAOK,yBAAyBqI,EAAExF,GAAG5C,UAAU,KAAKolB,EAAEnlB,KAAKC,MAAMklB,EAAEgnE,EAAE,CAAC,OAAOhnE,CAAC,CAAC,SAAS1iB,EAAE0F,GAAG,IAAI,IAAIxF,EAAE,EAAEA,EAAEtC,UAAUC,OAAOqC,IAAI,CAAC,IAAIwiB,EAAE,MAAM9kB,UAAUsC,GAAGtC,UAAUsC,GAAG,CAAC,EAAEA,EAAE,EAAEwpF,EAAEhnE,GAAE,GAAI3kB,SAAS,SAASmC,GAAGvC,EAAE+H,EAAExF,EAAEwiB,EAAExiB,GAAG,IAAIlD,OAAOkB,0BAA0BlB,OAAOmB,iBAAiBuH,EAAE1I,OAAOkB,0BAA0BwkB,IAAIgnE,EAAEhnE,GAAG3kB,SAAS,SAASmC,GAAGlD,OAAOoB,eAAesH,EAAExF,EAAElD,OAAOK,yBAAyBqlB,EAAExiB,GAAG,GAAG,CAAC,OAAOwF,CAAC,CAAC,SAAS/H,EAAE+H,EAAExF,EAAEwiB,GAAG,OAAOxiB,KAAKwF,EAAE1I,OAAOoB,eAAesH,EAAExF,EAAE,CAACvB,MAAM+jB,EAAEplB,YAAW,EAAGsB,cAAa,EAAGC,UAAS,IAAK6G,EAAExF,GAAGwiB,EAAEhd,CAAC,CAACgd,EAAEgnE,EAAExpF,GAAG,IAAI+D,EAAE,CAACoqN,KAAK,KAAKh6L,GAAG,KAAKi6L,OAAO,KAAK/nJ,OAAO,CAAC,EAAEgoJ,eAAe,CAAC,EAAEC,aAAa,GAAGC,QAAQ,GAAGC,SAAS,CAAC,EAAEpgM,UAAS,EAAGqgM,kBAAkB,KAAKhhN,IAAI,GAAG+4L,QAAQ,GAAGkoB,UAAU,CAAC9/K,SAAQ,EAAG1zC,QAAQ,KAAKyzN,UAAS,GAAIC,aAAa,CAACC,YAAW,EAAGC,mBAAmB,KAAKC,cAAa,EAAG/tL,WAAU,EAAGguL,eAAc,EAAGtgD,MAAK,EAAGugD,sBAAqB,EAAGC,gBAAe,EAAGC,iBAAiB,KAAKC,WAAU,EAAGC,aAAY,GAAIC,MAAM,CAAC1gL,SAAQ,EAAG6G,OAAM,EAAG85K,aAAY,GAAInqK,MAAM,CAACxW,SAAQ,EAAGs7G,MAAM,IAAI+/D,OAAO,GAAGuF,uBAAsB,EAAGC,qBAAoB,EAAGC,eAAensN,EAAEosN,MAAMpsN,EAAE6rN,UAAU,IAAIhzI,EAAEt8E,EAAE,CAAC,EAAEiE,GAAG,SAASqwM,EAAE5uM,IAAI,SAASA,EAAExF,EAAEwiB,GAAG,OAAO1lB,OAAOD,KAAK2lB,GAAG3kB,SAAS,SAAS2rF,GAAG,IAAI1pF,EAAEE,EAAEwpF,IAAI1sF,OAAO0B,UAAUyB,SAASrE,KAAKoE,EAAEwpF,IAAI,oBAAoB1pF,GAAG,mBAAmBA,EAAEE,EAAEwpF,GAAGhnE,EAAEgnE,GAAGhkF,EAAExF,EAAEwpF,GAAGhnE,EAAEgnE,GAAG,IAAIxpF,CAAC,CAAnL,CAAqLo8E,EAAE52E,EAAE,CAAC,SAASkkF,IAAI,OAAOtN,EAAEjoD,GAAG,GAAG33B,OAAO4/E,EAAEjoD,IAAI,EAAE,CAAC,IAAI5yB,EAAE66E,EAAE,SAAS74E,IAAI,CAAC,IAAIkf,EAAE,SAASjd,GAAGG,QAAQu5E,KAAK,mBAAmB1iF,OAAOgJ,GAAG,EAAE,SAAS0R,EAAE1R,EAAExF,GAAG,OAAO,IAAIg3E,SAAS,SAASx0D,EAAEgnE,GAAG,IAAI1pF,EAAE82E,SAASmvI,MAAMnvI,SAAS8oI,qBAAqB,QAAQ,GAAGjiN,EAAEm5E,SAASnuE,cAAc,UAAU,GAAGhL,EAAE4nE,OAAM,EAAG5nE,EAAE0c,IAAI3U,EAAE/H,EAAEmyN,QAAQ,QAAQ5vN,EAAE,CAAC,IAAI+D,EAAE6yE,SAASnuE,cAAc,QAAQ1E,EAAEylC,KAAKxpC,EAAE+D,EAAEqjG,IAAI,aAAatnG,EAAE4+J,YAAY36J,EAAE,CAACjE,EAAE4+J,YAAYjhK,GAAGA,EAAEsnD,OAAOviC,EAAE/kB,EAAEunD,QAAQwkC,CAAC,GAAG,CAAC,SAASC,EAAEjkF,GAAG,OAAOA,EAAErF,MAAMqF,EAAEvD,QAAQ,MAAM,GAAG,CAAC,SAASoR,EAAE7N,EAAExF,GAAG,GAAG0pF,IAAI/rF,OAAO,EAAE,CAAC,IAAI6kB,EAAEinE,EAAEzpF,GAAG,MAAM,GAAGxD,OAAOgmB,EAAE,KAAKhmB,OAAOgJ,EAAE,CAAC,OAAOA,CAAC,CAAC,IAAI2uM,EAAEnpM,EAAE,SAASxF,GAAG,GAAGA,EAAEiH,KAAK,OAAOjH,EAAE,GAAG,mBAAmBA,EAAE,CAAC,IAAIxF,EAAEwF,IAAI,OAAOxF,EAAEyM,KAAKzM,EAAEg3E,QAAQn4B,QAAQ7+C,EAAE,CAAC,OAAOg3E,QAAQn4B,QAAQr5C,EAAE,EAAE,SAAS6H,EAAE7H,GAAG,OAAO,SAASA,GAAG,GAAG/F,MAAMC,QAAQ8F,GAAG,CAAC,IAAI,IAAIxF,EAAE,EAAEwiB,EAAE,IAAI/iB,MAAM+F,EAAE7H,QAAQqC,EAAEwF,EAAE7H,OAAOqC,IAAIwiB,EAAExiB,GAAGwF,EAAExF,GAAG,OAAOwiB,CAAC,CAAC,CAArG,CAAuGhd,IAAI,SAASA,GAAG,GAAGnH,OAAOC,YAAYxB,OAAO0I,IAAI,uBAAuB1I,OAAO0B,UAAUyB,SAASrE,KAAK4J,GAAG,OAAO/F,MAAMI,KAAK2F,EAAE,CAA1H,CAA4HA,IAAI,WAAW,MAAM,IAAIjF,UAAU,kDAAkD,CAAjF,EAAoF,CAAC,IAAIlE,EAAE,GAAG,SAAS+Q,EAAE5H,GAAG,IAAI,IAAIxF,EAAEtC,UAAUC,OAAO6kB,EAAE,IAAI/iB,MAAMO,EAAE,EAAEA,EAAE,EAAE,GAAGwpF,EAAE,EAAEA,EAAExpF,EAAEwpF,IAAIhnE,EAAEgnE,EAAE,GAAG9rF,UAAU8rF,GAAG,oBAAoB9oF,QAAQgpF,IAAI7rF,SAAS,SAASmC,GAAG,IAAIwpF,EAAE1pF,EAAE,CAACq0M,EAAE9gM,EAAE7N,EAAExF,GAAGo8E,EAAE55D,GAAG9hB,OAAOmvN,GAAGtuN,EAAE6jD,MAAMxW,SAASvyC,EAAEgB,KAAKyC,GAAGq0M,IAAIA,EAAE5jF,aAAa,WAAWl0H,EAAEsB,OAAOtB,EAAEgqC,OAAO,EAAE9kC,EAAE6jD,MAAM6kK,QAAQpsN,SAAS,SAAS2H,GAAG,IAAIxF,GAAGA,EAAEU,QAAQmvN,GAAGvyN,MAAM0C,EAAE,CAACwF,EAAE2uM,GAAG33M,OAAO6Q,EAAE7H,EAAE42E,IAAI,KAAK2zC,cAAcokF,GAAGA,EAAE,KAAK,GAAG5yM,EAAE6jD,MAAM8kG,UAAU1gE,EAAE9oF,QAAQmvN,GAAGvyN,MAAMksF,EAAE,CAACn2E,EAAE7N,EAAExF,IAAIxD,OAAOgmB,IAAIjhB,EAAE6tN,UAAU/xN,KAAKyC,EAAE,GAAG,CAAC,SAASgwN,EAAEtqN,GAAG,OAAOsqN,EAAE,mBAAmBzxN,QAAQ,iBAAiBA,OAAOC,SAAS,SAASkH,GAAG,cAAcA,CAAC,EAAE,SAASA,GAAG,OAAOA,GAAG,mBAAmBnH,QAAQmH,EAAEjH,cAAcF,QAAQmH,IAAInH,OAAOG,UAAU,gBAAgBgH,CAAC,GAAGA,EAAE,CAAC,SAASwd,IAAI,IAAI,IAAIxd,EAAE9H,UAAUC,OAAOqC,EAAE,IAAIP,MAAM+F,GAAGgd,EAAE,EAAEA,EAAEhd,EAAEgd,IAAIxiB,EAAEwiB,GAAG9kB,UAAU8kB,GAAG,WAAWstM,EAAE9vN,EAAE,KAAKA,EAAE,GAAGzB,cAAczB,OAAOsQ,EAAE,MAAMpN,EAAE,GAAGA,EAAE,IAAIoN,EAAE,MAAMpN,EAAE,GAAG,CAAC,SAASotM,EAAE5nM,EAAExF,GAAG,IAAIwiB,EAAE1lB,OAAOD,KAAK2I,GAAG,GAAG1I,OAAOC,sBAAsB,CAAC,IAAIysF,EAAE1sF,OAAOC,sBAAsByI,GAAGxF,IAAIwpF,EAAEA,EAAEvsF,QAAQ,SAAS+C,GAAG,OAAOlD,OAAOK,yBAAyBqI,EAAExF,GAAG5C,UAAU,KAAKolB,EAAEnlB,KAAKC,MAAMklB,EAAEgnE,EAAE,CAAC,OAAOhnE,CAAC,CAAC,SAASkxL,EAAEluM,EAAExF,EAAEwiB,GAAG,OAAOxiB,KAAKwF,EAAE1I,OAAOoB,eAAesH,EAAExF,EAAE,CAACvB,MAAM+jB,EAAEplB,YAAW,EAAGsB,cAAa,EAAGC,UAAS,IAAK6G,EAAExF,GAAGwiB,EAAEhd,CAAC,CAAC,SAASgN,IAAI,GAAG9R,OAAOmvN,KAAKtuN,EAAE+tN,MAAM1gL,SAAS,GAAGluC,OAAOmvN,GAAG,CAAC,IAAIrqN,EAAEkkF,IAAInoF,EAAE+tN,MAAM1gL,UAAUluC,OAAOqvN,SAAS,CAACt6K,MAAMl0C,EAAE+tN,MAAM75K,QAAQjwC,EAAE3H,SAAS,SAASmC,GAAG,IAAIwiB,EAAEinE,EAAEzpF,GAAGwpF,EAAEjoF,EAAE8sN,eAAeruN,IAAI,CAAC,EAAEF,EAAE0F,EAAE7H,OAAO,EAAE,SAAS6H,GAAG,IAAI,IAAIxF,EAAE,EAAEA,EAAEtC,UAAUC,OAAOqC,IAAI,CAAC,IAAIwiB,EAAE,MAAM9kB,UAAUsC,GAAGtC,UAAUsC,GAAG,CAAC,EAAEA,EAAE,EAAEotM,EAAE5qL,GAAE,GAAI3kB,SAAS,SAASmC,GAAG0zM,EAAEluM,EAAExF,EAAEwiB,EAAExiB,GAAG,IAAIlD,OAAOkB,0BAA0BlB,OAAOmB,iBAAiBuH,EAAE1I,OAAOkB,0BAA0BwkB,IAAI4qL,EAAE5qL,GAAG3kB,SAAS,SAASmC,GAAGlD,OAAOoB,eAAesH,EAAExF,EAAElD,OAAOK,yBAAyBqlB,EAAExiB,GAAG,GAAG,CAAC,OAAOwF,CAAC,CAA9U,CAAgV,CAAC,EAAEjE,EAAE8kE,OAAO,CAAC,EAAEmjB,EAAE,CAACrpF,KAAKqiB,IAAIjhB,EAAE8kE,OAAO3lE,OAAOmvN,GAAG,SAAS7vN,EAAEm0B,IAAIn0B,EAAE,OAAOF,EAAE,IAAIyB,EAAEmuN,iBAAiB,IAAI1vN,EAAEuB,EAAEmtN,UAAU,GAAG1uN,EAAE4uC,QAAQ,CAAC,IAAIpsB,EAAExiB,EAAE2uN,SAAS,KAAK,YAAY3uN,EAAE9E,QAAQkS,EAAE,UAAUoV,EAAExiB,EAAE9E,SAASkS,EAAE,UAAUoV,EAAE,CAACjhB,EAAEgtN,QAAQ5wN,OAAO,IAAIyP,EAAE,UAAU,UAAUA,EAAE,kBAAkB7L,EAAEgtN,UAAUhtN,EAAE+tN,MAAMC,aAAavsM,EAAE,cAAc,KAAK,OAAOP,EAAE,8CAA8C,CAAC,IAAIutM,EAAE,WAAW,GAAGtyN,UAAUC,OAAOyP,EAAE,UAAU1P,UAAUC,QAAQ,OAAE,EAAOD,UAAU,IAAI0P,EAAE,UAAU1P,UAAUC,QAAQ,OAAE,EAAOD,UAAU,GAAGA,UAAUC,QAAQ,OAAE,EAAOD,UAAU,GAAG,EAAE,SAASuyN,EAAEzqN,GAAG,OAAOyqN,EAAE,mBAAmB5xN,QAAQ,iBAAiBA,OAAOC,SAAS,SAASkH,GAAG,cAAcA,CAAC,EAAE,SAASA,GAAG,OAAOA,GAAG,mBAAmBnH,QAAQmH,EAAEjH,cAAcF,QAAQmH,IAAInH,OAAOG,UAAU,gBAAgBgH,CAAC,GAAGA,EAAE,CAAC,IAAIm5E,EAAE,WAAW,IAAIn5E,EAAEjE,EAAEkM,IAAI5P,SAAS,SAAS2H,GAAG,IAAIxF,EAAEwF,EAAEimB,MAAMjJ,EAAEhd,EAAE/G,MAAM,QAAG,IAASuB,QAAG,IAASwiB,EAAE,MAAM,IAAIvT,MAAM,4IAA4I+T,EAAEhjB,EAAEwiB,EAAE,IAAIhd,EAAE,CAAC,KAAK,aAAajE,EAAEilM,QAAQ3oM,SAAS,SAASmC,GAAG,IAAI,IAAIwF,EAAEzG,QAAQiB,KAAK,IAAIwF,EAAEzG,QAAQiB,EAAEG,MAAM,MAAM,IAAI8O,MAAM,0IAA0I,GAAG,iBAAiBjP,GAAG,WAAWiwN,EAAEjwN,GAAG,MAAM,IAAIiP,MAAM,qKAAqK,IAAIuT,EAAExiB,EAAEG,MAAMH,EAAEA,EAAE9E,QAAQ80N,EAAExtM,EAAExiB,EAAE9E,SAAS80N,EAAExtM,EAAE,GAAG,EAAE,SAAS0tM,IAAI,IAAI,IAAI1qN,EAAE9H,UAAUC,OAAOqC,EAAE,IAAIP,MAAM+F,GAAGgd,EAAE,EAAEA,EAAEhd,EAAEgd,IAAIxiB,EAAEwiB,GAAG9kB,UAAU8kB,GAAG,IAAIgnE,EAAExpF,EAAE,GAAG,GAAG,IAAIA,EAAErC,QAAQ,iBAAiB6rF,EAAE,OAAOp8E,EAAE,OAAO,aAAa,CAAC+iN,WAAW3mI,IAAIp8E,EAAE9P,WAAM,EAAO,CAAC,OAAO,cAAcd,OAAOwD,GAAG,CAAC,SAASgzM,EAAExtM,GAAG,OAAOwtM,EAAE,mBAAmB30M,QAAQ,iBAAiBA,OAAOC,SAAS,SAASkH,GAAG,cAAcA,CAAC,EAAE,SAASA,GAAG,OAAOA,GAAG,mBAAmBnH,QAAQmH,EAAEjH,cAAcF,QAAQmH,IAAInH,OAAOG,UAAU,gBAAgBgH,CAAC,GAAGA,EAAE,CAAC,SAAS4qN,IAAI,IAAI,IAAI5qN,EAAE9H,UAAUC,OAAOqC,EAAE,IAAIP,MAAM+F,GAAGgd,EAAE,EAAEA,EAAEhd,EAAEgd,IAAIxiB,EAAEwiB,GAAG9kB,UAAU8kB,GAAG,IAAIgnE,EAAExpF,EAAErC,SAASqC,EAAE,KAAKA,EAAErC,QAAQqC,EAAE,GAAG20K,eAAenrF,EAAExpF,EAAE,GAAG20K,cAAc30K,EAAErC,QAAQ,SAAS6H,GAAG,OAAOA,EAAE2gG,OAAO3gG,EAAE6qN,MAAM,CAApC,CAAsCrwN,EAAE,MAAMwpF,EAAExpF,EAAE,IAAIwpF,EAAE8mI,EAAE9mI,IAAIxmE,EAAE,OAAO,WAAWgwL,EAAEhzM,EAAE,IAAIA,EAAE,GAAG0uK,KAAK1uK,EAAE,IAAIoN,EAAE9P,WAAM,EAAO,CAAC,OAAO,YAAYd,OAAOwD,KAAK,CAAC,SAASswN,EAAE9qN,GAAG,IAAI,EAAExF,EAAEwF,GAAGrF,KAAKH,EAAEia,MAAMhd,OAAO6K,SAASw2H,MAAM,SAAS94H,GAAG,OAAO,IAAIjE,EAAE+sN,aAAavvN,QAAQyG,EAAE,IAAI,CAAC,IAAIxF,EAAEwiB,EAAEjhB,EAAEqtN,aAAaplI,EAAEhkF,EAAE+qN,KAAKC,UAAU1wN,QAAG,IAAS0pF,EAAE,CAAC,EAAEA,GAAG2lI,kBAAkB3sM,EAAE2sM,iBAAiB,GAAG3sM,EAAEqsM,aAAarpN,EAAErF,KAAK,MAAM,IAAI8O,MAAM,kEAAkE,GAAGuT,EAAEqsM,WAAWqB,EAAE1qN,EAAErF,WAAW,GAAGL,EAAEswN,EAAEtwN,EAAE0F,QAAQ,CAAC,IAAI/H,EAAE8D,EAAE6sN,OAAOrqN,EAAExC,EAAEqtN,aAAaxyI,EAAEr4E,EAAEkrN,qBAAqB7a,EAAErwM,EAAEsrN,YAAY3lI,EAAE,SAASlkF,GAAG,IAAIxF,EAAElD,OAAOD,KAAK2I,GAAG/B,QAAQ,SAASzD,EAAEwiB,EAAEgnE,EAAE1pF,GAAG,IAAIrC,EAAE+rF,IAAI1pF,EAAEnC,OAAO,EAAEoG,EAAEyB,EAAEgd,GAAG,OAAO,MAAMze,EAAE/D,EAAEA,GAAG,GAAGxD,OAAOgmB,EAAE,KAAKhmB,OAAOuH,GAAGvH,OAAOiB,EAAE,GAAG,IAAI,GAAG,IAAI,MAAM,KAAKuC,EAAE,IAAIxD,OAAOwD,GAAG,EAAE,CAA1L,CAA4LwF,EAAE2gG,OAAO5iG,EAAE9F,GAAGA,EAAEvC,QAAQikK,KAAK18I,EAAE2xL,GAAG7wM,EAAE2T,EAAE1R,EAAEyU,MAAMmiE,EAAEsN,EAAE,IAAI0mI,EAAEl5M,EAAEuL,EAAE,SAASjd,EAAExF,GAAG,IAAIwiB,EAAExiB,EAAE6B,MAAM,KAAK2nF,EAAEhkF,EAAE3D,MAAM,KAAK,MAAM,KAAK2gB,EAAE,IAAI,MAAMhd,EAAEA,EAAE7H,OAAO,IAAI6kB,EAAEgkF,QAAQhd,EAAE1nF,KAAK,KAAK0gB,EAAE1gB,KAAK,IAAI,CAAvH,CAAyHyB,EAAE2T,GAAGA,EAAE,CAAC,CAAC,CAAC,SAASu5M,EAAEjrN,GAAG,OAAO,SAASA,GAAG,GAAG/F,MAAMC,QAAQ8F,GAAG,CAAC,IAAI,IAAIxF,EAAE,EAAEwiB,EAAE,IAAI/iB,MAAM+F,EAAE7H,QAAQqC,EAAEwF,EAAE7H,OAAOqC,IAAIwiB,EAAExiB,GAAGwF,EAAExF,GAAG,OAAOwiB,CAAC,CAAC,CAArG,CAAuGhd,IAAI,SAASA,GAAG,GAAGnH,OAAOC,YAAYxB,OAAO0I,IAAI,uBAAuB1I,OAAO0B,UAAUyB,SAASrE,KAAK4J,GAAG,OAAO/F,MAAMI,KAAK2F,EAAE,CAA1H,CAA4HA,IAAI,WAAW,MAAM,IAAIjF,UAAU,kDAAkD,CAAjF,EAAoF,CAAC,IAAImwN,EAAE,WAAW,IAAIlrN,IAAI9H,UAAUC,OAAO,QAAG,IAASD,UAAU,KAAKA,UAAU,GAAG,oBAAoBgD,QAAQgpF,IAAI7rF,SAAS,SAASmC,GAAGU,OAAO,cAAclE,OAAOwD,IAAIwF,CAAC,GAAG,EAAEuxF,EAAE,WAAW,GAAG,oBAAoBngB,UAAU,oBAAoBl2E,OAAO,CAAC,GAAGa,EAAE4yB,GAAG,CAAC,IAAI3uB,EAAExF,EAAEwiB,EAAE,CAACxX,EAAEzJ,EAAE4yB,IAAInpB,EAAEzJ,EAAE6sB,WAAW,GAAG5oB,EAAEjE,EAAEiuN,sBAAsBxvN,EAAEuB,EAAEkuN,oBAAoB,CAAC3nN,QAAQpH,QAAQA,OAAOmvN,IAAIrqN,KAAK/F,MAAMjB,UAAU0B,MAAMtE,KAAKg7E,SAAS8oI,qBAAqB,WAAWziN,QAAQ,SAASuI,GAAG,OAAO,IAAIA,EAAE2U,IAAIpb,QAAQ,eAAe,IAAIyG,EAAE2U,IAAIpb,QAAQ,OAAO,IAAIpB,OAAO,IAAIqC,GAAG8/E,KAAKh4E,SAAS,CAAC,IAAI0hF,EAAE,mCAAmC1pF,EAAEyB,EAAE+tN,MAAM1gL,QAAQ,kBAAkB,YAAYnxC,EAAE8D,EAAEktN,kBAAkBv3M,EAAE3V,EAAEktN,mBAAmBv3M,EAAE,GAAG1a,OAAOgtF,EAAE,KAAKhtF,OAAOsD,EAAE,OAAO0pF,GAAGhnE,EAAEnlB,KAAKI,EAAEqgF,OAAO,WAAWr7D,EAAE,4EAA4E,IAAI,CAAC,OAAOu0D,QAAQgjE,IAAIx3H,GAAG/V,MAAM,SAASjH,GAAG,IAAIxF,EAAEwiB,EAAEgnE,EAAE4qH,EAAE,CAACjgL,GAAG3uB,EAAE,GAAG4oB,SAAS5oB,EAAE,KAAKkrN,EAAEnvN,EAAE6sB,UAAU5b,IAAImsE,IAAIp9E,EAAE6tN,UAAUvxN,SAAS,SAAS2H,GAAG4H,EAAE9P,WAAM,EAAO,CAACkI,EAAE2uM,GAAG33M,OAAOi0N,EAAEjrN,EAAE42E,IAAI,IAAIp8E,EAAEuB,EAAE6sN,OAAO5rM,EAAEjhB,EAAEqtN,aAAaplI,EAAEjoF,EAAE4sN,KAAK3rM,EAAEksJ,MAAM1uK,GAAGA,EAAE8vM,SAAS,WAAWttL,EAAE0sM,gBAAgBlvN,EAAE2wN,QAAQhB,OAAOW,EAAEtwN,EAAE20K,cAAc30K,EAAE4wN,WAAW,SAASprN,EAAE1F,GAAG,IAAIrC,EAAE+kB,EAAEusM,aAAahrN,EAAEye,EAAEssM,mBAAmBrxN,GAAG+H,EAAEyU,OAAOna,EAAEma,OAAO,mBAAmBlW,GAAGA,EAAEyB,EAAE1F,KAAK0pF,EAAEqC,WAAWp/E,MAAM,WAAW6jN,EAAEtwN,EAAE20K,aAAa,GAAG,GAAG,IAAIpzK,EAAEouN,OAAO,IAAI7xI,OAAO,SAASt4E,GAAGjE,EAAE+tN,MAAM1gL,SAASnsB,EAAEjd,EAAEqJ,QAAQ,GAAG,CAAC4T,EAAE,kEAAkE,CAAC,EAAMouM,EAAE,SAASrrN,GAAG,IAAIxF,EAAEtC,UAAUC,OAAO,QAAG,IAASD,UAAU,IAAIA,UAAU,GAAG0P,EAAE,OAAO,YAAY,CAAC0jN,cAActrN,EAAEurN,QAAQ/wN,GAAG,EAAEqzM,EAAE,SAAS7tM,GAAG,GAAGjE,EAAEqtN,aAAa5tL,UAAU,CAACtgC,OAAOm3E,iBAAiB,SAAS,SAASryE,GAAGqrN,EAAErrN,EAAEqJ,QAAQ,IAAI,IAAI7O,EAAEwF,EAAEy2B,OAAO6yK,aAAatpM,EAAEy2B,OAAO6yK,aAAa,SAAStpM,EAAEgd,EAAEgnE,GAAGqnI,EAAErrN,EAAEqJ,SAAStN,EAAEqtN,aAAaI,eAAerpN,QAAQC,MAAMJ,GAAG,mBAAmBxF,GAAGA,EAAEpE,UAAK,EAAO4J,EAAEgd,EAAEgnE,EAAE,CAAC,CAAC,EAAEypH,EAAE4d,EAAE,SAASrd,EAAEhuM,EAAExF,GAAG,IAAIwiB,EAAE1lB,OAAOD,KAAK2I,GAAG,GAAG1I,OAAOC,sBAAsB,CAAC,IAAIysF,EAAE1sF,OAAOC,sBAAsByI,GAAGxF,IAAIwpF,EAAEA,EAAEvsF,QAAQ,SAAS+C,GAAG,OAAOlD,OAAOK,yBAAyBqI,EAAExF,GAAG5C,UAAU,KAAKolB,EAAEnlB,KAAKC,MAAMklB,EAAEgnE,EAAE,CAAC,OAAOhnE,CAAC,CAAC,SAASmxL,EAAEnuM,EAAExF,EAAEwiB,GAAG,OAAOxiB,KAAKwF,EAAE1I,OAAOoB,eAAesH,EAAExF,EAAE,CAACvB,MAAM+jB,EAAEplB,YAAW,EAAGsB,cAAa,EAAGC,UAAS,IAAK6G,EAAExF,GAAGwiB,EAAEhd,CAAC,CAAC,IAAIwrN,EAAE,SAASxrN,GAAG,MAAM,GAAGhJ,OAAO+E,EAAEmtN,UAAUC,SAAS,KAAK,YAAY,KAAKnyN,OAAOgJ,EAAE,EAAEyrN,EAAE,CAAC,UAAU,iBAAiB,aAAa,gBAAgB,YAAY,WAAW,QAAQxtN,QAAQ,SAAS+B,EAAExF,GAAG,OAAO,SAASwF,GAAG,IAAI,IAAIxF,EAAE,EAAEA,EAAEtC,UAAUC,OAAOqC,IAAI,CAAC,IAAIwiB,EAAE,MAAM9kB,UAAUsC,GAAGtC,UAAUsC,GAAG,CAAC,EAAEA,EAAE,EAAEwzM,EAAEhxL,GAAE,GAAI3kB,SAAS,SAASmC,GAAG2zM,EAAEnuM,EAAExF,EAAEwiB,EAAExiB,GAAG,IAAIlD,OAAOkB,0BAA0BlB,OAAOmB,iBAAiBuH,EAAE1I,OAAOkB,0BAA0BwkB,IAAIgxL,EAAEhxL,GAAG3kB,SAAS,SAASmC,GAAGlD,OAAOoB,eAAesH,EAAExF,EAAElD,OAAOK,yBAAyBqlB,EAAExiB,GAAG,GAAG,CAAC,OAAOwF,CAAC,CAA9U,CAAgV,CAAC,EAAEA,EAAEmuM,EAAE,CAAC,EAAE3zM,GAAG,WAAW,IAAI,IAAIwF,EAAE9H,UAAUC,OAAO6kB,EAAE,IAAI/iB,MAAM+F,GAAGgkF,EAAE,EAAEA,EAAEhkF,EAAEgkF,IAAIhnE,EAAEgnE,GAAG9rF,UAAU8rF,GAAGp8E,EAAE9P,WAAM,EAAO,CAAC0zN,EAAEhxN,IAAIxD,OAAOgmB,GAAG,IAAI,GAAG,CAAC,GAAG0uM,EAAE,CAACjsK,MAAM,WAAW,IAAI,IAAIz/C,EAAE9H,UAAUC,OAAOqC,EAAE,IAAIP,MAAM+F,GAAGgd,EAAE,EAAEA,EAAEhd,EAAEgd,IAAIxiB,EAAEwiB,GAAG9kB,UAAU8kB,GAAGpV,EAAE9P,WAAM,EAAO,CAAC,OAAO,SAASd,OAAOwD,GAAG,EAAEghC,UAAUiyK,EAAEvkC,KAAK0hD,EAAEjqH,MAAM/4F,EAAEo5L,QAAQwpB,EAAEviN,IAAIuV,EAAEmuM,OAAO,WAAW,IAAI,IAAI3rN,EAAE9H,UAAUC,OAAOqC,EAAE,IAAIP,MAAM+F,GAAGgd,EAAE,EAAEA,EAAEhd,EAAEgd,IAAIxiB,EAAEwiB,GAAG9kB,UAAU8kB,GAAGpV,EAAE9P,WAAM,EAAO,CAAC,OAAO,UAAUd,OAAOwD,GAAG,EAAEivD,KAAK,WAAW,IAAI,IAAIzpD,EAAE9H,UAAUC,OAAOqC,EAAE,IAAIP,MAAM+F,GAAGgd,EAAE,EAAEA,EAAEhd,EAAEgd,IAAIxiB,EAAEwiB,GAAG9kB,UAAU8kB,GAAGpV,EAAE9P,WAAM,EAAO,CAAC,OAAO,UAAUd,OAAOwD,GAAG,EAAE6uN,WAAWqB,EAAExB,UAAUuC,EAAE14C,QAAQ,WAAW,OAAOm4C,GAAE,EAAG,EAAEl4C,OAAO,WAAW,OAAOk4C,GAAE,EAAG,EAAElC,SAASjtN,EAAEitN,UAAU4C,EAAE,CAACpoD,SAAS,SAASxjK,EAAExF,EAAEwiB,GAAG,IAAIgnE,EAAE1sF,OAAOD,KAAKmD,EAAEuqH,WAAW,IAAI/gC,EAAE7rF,QAAQ6rF,EAAEnsF,KAAK,SAASmsF,EAAE3rF,SAAS,SAAS2rF,GAAGhkF,EAAEqyE,iBAAiB2R,GAAG,WAAW,IAAIhkF,EAAE,iBAAiBxF,EAAEvB,MAAM8C,EAAEitN,SAASxuN,EAAEvB,OAAOuB,EAAEvB,MAAM,IAAI+G,EAAE,MAAM,IAAIyJ,MAAM,iFAAiFzJ,EAAElI,MAAMklB,EAAElnB,QAAQ,GAAG,GAAG,GAAG,SAASu4M,EAAEruM,GAAG,OAAO,SAASA,GAAG,GAAG/F,MAAMC,QAAQ8F,GAAG,CAAC,IAAI,IAAIxF,EAAE,EAAEwiB,EAAE,IAAI/iB,MAAM+F,EAAE7H,QAAQqC,EAAEwF,EAAE7H,OAAOqC,IAAIwiB,EAAExiB,GAAGwF,EAAExF,GAAG,OAAOwiB,CAAC,CAAC,CAArG,CAAuGhd,IAAI,SAASA,GAAG,GAAGnH,OAAOC,YAAYxB,OAAO0I,IAAI,uBAAuB1I,OAAO0B,UAAUyB,SAASrE,KAAK4J,GAAG,OAAO/F,MAAMI,KAAK2F,EAAE,CAA1H,CAA4HA,IAAI,WAAW,MAAM,IAAIjF,UAAU,kDAAkD,CAAjF,EAAoF,CAAC,SAAS6yM,EAAE5tM,EAAExF,GAAG,OAAO,SAASwF,GAAG,GAAG/F,MAAMC,QAAQ8F,GAAG,OAAOA,CAAC,CAAxC,CAA0CA,IAAI,SAASA,EAAExF,GAAG,GAAK3B,OAAOC,YAAYxB,OAAO0I,IAAI,uBAAuB1I,OAAO0B,UAAUyB,SAASrE,KAAK4J,GAAzF,CAAoG,IAAIgd,EAAE,GAAGgnE,GAAE,EAAG1pF,GAAE,EAAGrC,OAAE,EAAO,IAAI,IAAI,IAAIsG,EAAEq4E,EAAE52E,EAAEnH,OAAOC,cAAckrF,GAAGzlF,EAAEq4E,EAAE9mE,QAAQK,QAAQ6M,EAAEnlB,KAAK0G,EAAEtF,QAAQuB,GAAGwiB,EAAE7kB,SAASqC,GAAGwpF,GAAE,GAAI,CAAC,MAAMhkF,GAAG1F,GAAE,EAAGrC,EAAE+H,CAAC,CAAC,QAAQ,IAAIgkF,GAAG,MAAMpN,EAAEtmE,QAAQsmE,EAAEtmE,QAAQ,CAAC,QAAQ,GAAGhW,EAAE,MAAMrC,CAAC,CAAC,CAAC,OAAO+kB,CAA7N,CAA8N,CAA/U,CAAiVhd,EAAExF,IAAI,WAAW,MAAM,IAAIO,UAAU,uDAAuD,CAAtF,EAAyF,CAAC,SAAS8wN,EAAE7rN,EAAExF,GAAG,IAAIwiB,EAAE1lB,OAAOD,KAAK2I,GAAG,GAAG1I,OAAOC,sBAAsB,CAAC,IAAIysF,EAAE1sF,OAAOC,sBAAsByI,GAAGxF,IAAIwpF,EAAEA,EAAEvsF,QAAQ,SAAS+C,GAAG,OAAOlD,OAAOK,yBAAyBqI,EAAExF,GAAG5C,UAAU,KAAKolB,EAAEnlB,KAAKC,MAAMklB,EAAEgnE,EAAE,CAAC,OAAOhnE,CAAC,CAAC,SAAS8wL,EAAE9tM,EAAExF,EAAEwiB,GAAG,OAAOxiB,KAAKwF,EAAE1I,OAAOoB,eAAesH,EAAExF,EAAE,CAACvB,MAAM+jB,EAAEplB,YAAW,EAAGsB,cAAa,EAAGC,UAAS,IAAK6G,EAAExF,GAAGwiB,EAAEhd,CAAC,CAAC,SAAS+tM,EAAE/tM,GAAG4uM,EAAE,SAAS5uM,GAAG,IAAI,IAAIxF,EAAE,EAAEA,EAAEtC,UAAUC,OAAOqC,IAAI,CAAC,IAAIwiB,EAAE,MAAM9kB,UAAUsC,GAAGtC,UAAUsC,GAAG,CAAC,EAAEA,EAAE,EAAEqxN,EAAE7uM,GAAE,GAAI3kB,SAAS,SAASmC,GAAGszM,EAAE9tM,EAAExF,EAAEwiB,EAAExiB,GAAG,IAAIlD,OAAOkB,0BAA0BlB,OAAOmB,iBAAiBuH,EAAE1I,OAAOkB,0BAA0BwkB,IAAI6uM,EAAE7uM,GAAG3kB,SAAS,SAASmC,GAAGlD,OAAOoB,eAAesH,EAAExF,EAAElD,OAAOK,yBAAyBqlB,EAAExiB,GAAG,GAAG,CAAC,OAAOwF,CAAC,CAA9U,CAAgV,CAAC,EAAE9H,UAAUC,OAAO,QAAG,IAASD,UAAU,GAAGA,UAAU,GAAG,CAAC,EAAE,CAACywN,KAAK3oN,KAAKA,EAAE27E,UAAU,KAAKiwI,GAAG5rN,EAAEhH,UAAU8yN,IAAI9rN,EAAE8rN,IAAIJ,EAAE7d,EAAE7tM,GAAGuxF,GAAG,CAACv0E,EAAEtL,EAAElX,EAAE,WAAW,WAAW,OAAOuzM,CAAC,IAAI/wL,EAAEtL,EAAElX,EAAE,uBAAuB,WAAW,OAAOuxN,CAAC,IAAI/uM,EAAEtL,EAAElX,EAAE,oBAAoB,WAAW,OAAOwxN,CAAC,IAAIhvM,EAAEtL,EAAElX,EAAE,SAAS,WAAW,OAAOg0M,CAAC,IAAIxxL,EAAEtL,EAAElX,EAAE,aAAa,WAAW,OAAOi0M,CAAC,IAAIzxL,EAAEtL,EAAElX,EAAE,OAAO,WAAW,OAAOyxN,EAAE,IAAIjvM,EAAEtL,EAAElX,EAAE,QAAQ,WAAW,OAAO0xN,EAAE,IAAIlvM,EAAEtL,EAAElX,EAAE,SAAS,WAAW,OAAO2xN,EAAE,IAAInvM,EAAEtL,EAAElX,EAAE,cAAc,WAAW,OAAO4xN,EAAE,IAAIpvM,EAAEtL,EAAElX,EAAE,QAAQ,WAAW,OAAO6xN,EAAE,IAAIrvM,EAAEtL,EAAElX,EAAE,WAAW,WAAW,OAAO8xN,EAAE,IAAItvM,EAAEtL,EAAElX,EAAE,aAAa,WAAW,OAAO+xN,EAAE,IAAIvvM,EAAEtL,EAAElX,EAAE,UAAU,WAAW,OAAOgyN,EAAE,IAAI,IAAIT,EAAE,SAAS/rN,GAAGA,EAAEglM,WAAW,SAAShlM,GAAG,IAAIxF,EAAEwF,EAAEs+C,QAAQ,GAAG9jD,GAAGA,EAAEuwN,MAAMvwN,EAAEuwN,KAAKC,UAAU,CAAC,IAAIhuM,EAAExiB,EAAEuwN,KAAKC,UAAU,IAAI/wN,MAAMC,QAAQ8iB,GAAG,MAAM,IAAIvT,MAAM,iDAAiDuT,EAAE3kB,SAAS,SAAS2H,GAAG,IAAIxF,EAAEwiB,EAAEgnE,EAAEhkF,EAAEghG,QAAQ1mG,EAAE0F,EAAE,GAAGgkF,EAAE0B,SAAS,KAAK,CAAC,IAAIztF,EAAE21M,EAAE5pH,EAAE3nF,MAAM,KAAK,GAAG2nF,EAAE/rF,EAAE,GAAGuC,EAAEvC,EAAE,EAAE,CAAC,KAAK+rF,KAAK0nI,GAAG,MAAM,IAAIjiN,MAAM,kCAAkCzS,OAAOgtF,EAAE,sBAAsB,GAAGxpF,KAAKA,KAAKkxN,EAAE1nI,IAAI,MAAM,IAAIv6E,MAAM,kCAAkCzS,OAAOgtF,EAAE,sBAAsBhtF,OAAOwD,EAAE,OAAO,GAAG,cAAcwpF,IAAIxpF,EAAE,MAAM,IAAIiP,MAAM,kCAAkCzS,OAAOgtF,EAAE,mDAAmDxpF,GAAGwiB,EAAE0uM,EAAE1nI,IAAIxpF,GAAG1C,MAAMklB,EAAEqxL,EAAE/zM,IAAIoxN,EAAE1nI,GAAGlsF,MAAM4zN,EAAErd,EAAE/zM,GAAG,GAAG,CAAC,GAAG,EAAE0xN,EAAE,WAAW,OAAO,IAAIx6I,SAAS,SAASxxE,EAAExF,GAAG,IAAIwiB,EAAE+tG,aAAa,WAAW,oBAAoB7vH,QAAQA,OAAOmvN,KAAKrqN,IAAIuqH,cAAcvtG,GAAG,GAAG,GAAG,GAAG,EAAEwxL,EAAEkd,EAAEjsK,MAAMgvJ,EAAEid,EAAExC,UAAU+C,GAAGP,EAAEzjN,IAAIikN,GAAGR,EAAExiD,KAAKijD,GAAGT,EAAE/qH,MAAMyrH,GAAGV,EAAErC,WAAWgD,GAAGX,EAAEjiK,KAAK6iK,GAAGZ,EAAE1qB,QAAQurB,GAAGb,EAAElwL,UAAUgxL,GAAGd,EAAEC,MAAM,GAAG,G,uCCAlmf,SAA2Cj3H,EAAMkuH,GAE/CtnN,EAAOrE,QAAU2rN,EAAQ5hB,EAAQ,MAOlC,CATD,CASGjrM,GAAO02N,GACM,MACN,aACA,IAAIC,EAAuB,CAE/B,IACEpxN,IAERA,EAAOrE,QAAUw1N,CAEV,GAKOE,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqB/tN,IAAjBguN,EACH,OAAOA,EAAa71N,QAGrB,IAAIqE,EAASqxN,EAAyBE,GAAY,CAGjD51N,QAAS,CAAC,GAOX,OAHAy1N,EAAoBG,GAAUvxN,EAAQA,EAAOrE,QAAS21N,GAG/CtxN,EAAOrE,OACf,CAIA,MAEC21N,EAAoBpyN,EAAKc,IACxB,IAAI63B,EAAS73B,GAAUA,EAAOotN,WAC7B,IAAOptN,EAAO,WACd,IAAOA,EAER,OADAsxN,EAAoBl7M,EAAEyhB,EAAQ,CAAEyjD,EAAGzjD,IAC5BA,CAAM,CAEd,EATD,GAYA,MAECy5L,EAAoBl7M,EAAI,CAACza,EAASkuF,KACjC,IAAI,IAAI7sF,KAAO6sF,EACXynI,EAAoBtyN,EAAE6qF,EAAY7sF,KAASs0N,EAAoBtyN,EAAErD,EAASqB,IAC5EhB,OAAOoB,eAAezB,EAASqB,EAAK,CAAEV,YAAY,EAAMmQ,IAAKo9E,EAAW7sF,IAE1E,CAED,EATD,GAYA,MACCs0N,EAAoBtyN,EAAI,CAAC1B,EAAKwF,IAAU9G,OAAO0B,UAAUiD,eAAe7F,KAAKwC,EAAKwF,EAClF,EAFD,GAKV,IAAI2uN,EAAsB,CAAC,EAsQjB,MApQV,MAGAH,EAAoBl7M,EAAEq7M,EAAqB,CACzC,QAAWxqN,IAAA,IAMb,IAAIyqN,EAAsBJ,EAAoB,KAC1CK,EAA0CL,EAAoBpyN,EAAEwyN,GAGhEE,EAAiB,CAAC,WAAY,UAAW,YAAa,gBAAiB,SAAU,gBAGjFC,EAAiB,CAAC,gBAAiB,cAAe,gBAAiB,UAAW,wBAAyB,aAG3G,SAASvwF,IAAiS,OAApRA,EAAWtlI,OAAOkhF,OAASlhF,OAAOkhF,OAAOv5E,OAAS,SAAUjH,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAIK,KAAOF,EAAcd,OAAO0B,UAAUiD,eAAe7F,KAAKgC,EAAQE,KAAQN,EAAOM,GAAOF,EAAOE,GAAU,CAAE,OAAON,CAAQ,EAAU4kI,EAAS9kI,MAAM/B,KAAMmC,UAAY,CAClV,IAAIk1N,EAAe,SAAsBjxN,GACvC,OAAOA,EAAOM,QAAQ,kBAAmB,SAASK,aACpD,EACIuvM,EAAW,SAAkBzzM,GAC/B,OAAOA,aAAeqB,MAAQrB,EAAM,CAACA,EACvC,EACIy0N,EAAU,SAAiBp0N,GAC7B,OAAOA,GAASA,EAAMd,OAASc,EAAQ,IACzC,EACIq0N,EAAc,SAAqB10N,GACrC,OAAOgkI,EAAS,CAAC,EAAGhkI,EACtB,EASI20N,EAAYL,EAAel2N,OAAOm2N,GAGlCK,EAAkB,CAAC,SAAU,cACJ,MAAM/xI,EAAa,CAC9C9gF,KAAM,aACNzF,OAAQ,SAAgB6vF,GACtB,OAAOA,EAAG,QAAS,CACjB1lF,MAAO,CACLgD,KAAM,OACN,cAAc,GAEhBxD,MAAO,CACL+pB,SAAU7yB,KAAK6yB,UAEjBw9D,GAAI,CACFnqD,MAAOlmC,KAAKi9I,UAGlB,EACAn0I,MAAO,CACL5F,MAAO,CACL,QAAW,KACXyJ,UAAU,EACVD,UAAW,SAAmBxJ,GAC5B,OAAiB,OAAVA,GAAkBA,aAAiB0Z,MAAyB,kBAAV1Z,GAAsBA,aAAiBuJ,QAAUvJ,aAAiBgB,OAA0B,kBAAVhB,CAC7I,GAGFw9B,OAAQ,CACNp0B,KAAM/K,OACN,QAAW,WACT,MAAO,CACL4sJ,MAAM,EACNuvD,YAAa,KAEjB,GAEFrsK,OAAQ,CACN/kC,KAAMpI,MACN,QAAW,WACT,OAAOizN,CACT,GAEFtkM,SAAU,CACRvmB,KAAMC,QACN,SAAW,IAGfvD,KAAM,WACJ,MAAO,CAIL0uN,GAAI,KAER,EACA/8G,QAAS,WACP,IAAIn+F,EAAQxc,KAGZ,IAAIA,KAAK03N,GAAT,CAGA,IAAIC,EAAaJ,EAAYv3N,KAAK0gC,QAClC1gC,KAAKqxC,OAAO/uC,SAAQ,SAAU5C,GAE5B,IAAIk4N,EAAmBV,IAA8Bv2L,cAAcjhC,IAAS,GAGxEm4N,EAAgB,WAClB,IAAK,IAAInvN,EAAOvG,UAAUC,OAAQ45B,EAAO,IAAI93B,MAAMwE,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/EozB,EAAKpzB,GAAQzG,UAAUyG,GAEzB4T,EAAMsrF,MAAM/lG,MAAMya,EAAO,CAAC66M,EAAa33N,IAAOuB,OAAO+6B,GACvD,EAGA27L,EAAWj4N,GAAQ42M,EAASqhB,EAAWj4N,IAAS,IAAIuB,OAAO22N,EAAiBC,EAC9E,IAGAF,EAAWja,YAAc19M,KAAKkD,OAASy0N,EAAWja,YAGlD19M,KAAK03N,GAAK,IAAKR,IAAL,CAAmCl3N,KAAK83N,UAAWH,GAG7D33N,KAAK+3N,UAAUz7I,iBAAiB,OAAQt8E,KAAKsoJ,QAC7CtoJ,KAAKmyG,IAAI,WAAYnyG,KAAKsqK,SAI1BtqK,KAAKquK,OAAO,WAAYruK,KAAKg4N,cAAe,CAC1Ct1D,WAAW,GAjCM,CAmCrB,EACAhoE,QAAS,CAKPo9H,QAAS,WACP,OAAO93N,KAAK0gC,OAAOytH,KAAOnuJ,KAAK60G,IAAIlY,WAAa38F,KAAK60G,GACvD,EAMAooC,QAAS,SAAiBvzF,GACxB,IAAI2oD,EAASryG,KACTkmC,EAAQwjB,EAAMznD,OAElBjC,KAAKgoG,WAAU,WACbqK,EAAOvK,MAAM,QAASwvH,EAAQpxL,EAAMhjC,OACtC,GACF,EAIA60N,QAAS,WACP,OAAO/3N,KAAK03N,GAAGllB,UAAYxyM,KAAK03N,GAAGxxL,KACrC,EAMAoiH,OAAQ,SAAgB5+F,GACtB1pD,KAAK8nG,MAAM,OAAQwvH,EAAQ5tK,EAAMznD,OAAOiB,OAC1C,EAIAonK,QAAS,SAAiBmyC,EAAewb,GACvCj4N,KAAK8nG,MAAM,QAASwvH,EAAQW,GAC9B,EAMAD,cAAe,SAAuBtkL,GAChCA,EACF1zC,KAAK+3N,UAAUv4H,aAAa,WAAY9rD,GAExC1zC,KAAK+3N,UAAUr4H,gBAAgB,WAEnC,GAEFkI,MAAO,CAMLlnE,OAAQ,CACNnP,MAAM,EACN9S,QAAS,SAAiBo+B,GACxB,IAAI6oE,EAAS1lH,KACT23N,EAAaJ,EAAY16K,GAK7B26K,EAAUl1N,SAAQ,SAAU5C,UACnBi4N,EAAWj4N,EACpB,IACAM,KAAK03N,GAAGxlN,IAAIylN,GAGZF,EAAgBn1N,SAAQ,SAAUsC,GACA,qBAArB+yN,EAAW/yN,IACpB8gH,EAAOgyG,GAAGxlN,IAAItN,EAAM+yN,EAAW/yN,GAEnC,GACF,GAOF1B,MAAO,SAAeiP,GAEhBA,IAAamlN,EAAQt3N,KAAK60G,IAAI3xG,QAElClD,KAAK03N,IAEL13N,KAAK03N,GAAGr6G,QAAQlrG,GAAU,EAC5B,GAKF+1F,cAAe,WAETloG,KAAK03N,KACP13N,KAAK+3N,UAAUx7I,oBAAoB,OAAQv8E,KAAKsoJ,QAChDtoJ,KAAK03N,GAAG3oG,UACR/uH,KAAK03N,GAAK,KAEd,GAIF,IAAIQ,EAAS,SAAgBzzI,EAAKqwI,GAChC,IAAIlwN,EAAO,aAEW,kBAAXkwN,IAAqBlwN,EAAOkwN,GACvCrwI,EAAIiB,UAAU9gF,EAAM8gF,EACtB,EACAA,EAAUT,QAAUizI,EACS,MAAMt5M,EAAO8mE,CAEzC,EAjQD,GAmQAsxI,EAAsBA,EAAoB,WACzBA,CACP,EA3UM,I,wJCCZmB,EAAmB,CACrB,iBACA,WACA,kBACA,eACA,gBACA,WACA,kBACA,cACA,QACA,OACA,cACA,cACA,uBACA,wBACA,wBACA,2BACA,4BAGEC,EAAqB,CACvB,YACA,YACA,WACA,gBACA,SACA,YACA,WACA,gBACA,UACA,MACA,OACA,QACA,MACA,OACA,SACA,SACA,gBAMF,SAASz0I,EAAMnhD,EAAKtoB,GACK,qBAAZ9P,UACTA,QAAQu5E,KAAK,cAAgBnhD,GAEzBtoB,GACF9P,QAAQu5E,KAAKzpE,EAAI7G,OAGvB,CAEA,SAAShJ,EAAOm4B,EAAKtoB,GACI,qBAAZ9P,UACTA,QAAQC,MAAM,cAAgBm4B,GAE1BtoB,GACF9P,QAAQC,MAAM6P,EAAI7G,OAGxB,CAEA,IAAIlP,EAAUD,MAAMC,QAEpB,SAASyM,EAAU/N,GACjB,OAAe,OAARA,GAA+B,kBAARA,CAChC,CAEA,SAASkO,EAAW1H,GAClB,MAAsB,mBAARA,CAChB,CAEA,SAASqH,EAAUrH,GACjB,MAAsB,kBAARA,CAChB,CAEA,IAAI3E,EAAWnD,OAAO0B,UAAUyB,SAC5B2zN,EAAgB,kBACpB,SAAS96M,EAAe1a,GACtB,OAAO6B,EAASrE,KAAKwC,KAASw1N,CAChC,CAEA,SAASr2I,EAAQ34E,GACf,OAAe,OAARA,QAAwBN,IAARM,CACzB,CAEA,SAASsH,EAAYtH,GACnB,MAAsB,oBAARA,CAChB,CAEA,SAASivN,IACP,IAAIt8L,EAAO,GAAIl3B,EAAM3C,UAAUC,OAC/B,MAAQ0C,IAAQk3B,EAAMl3B,GAAQ3C,UAAW2C,GAEzC,IAAIg4G,EAAS,KACTg4G,EAAS,KAiBb,OAhBoB,IAAhB94L,EAAK55B,OACHwO,EAASorB,EAAK,KAAO73B,EAAQ63B,EAAK,IACpC84L,EAAS94L,EAAK,GACc,kBAAZA,EAAK,KACrB8gF,EAAS9gF,EAAK,IAES,IAAhBA,EAAK55B,SACS,kBAAZ45B,EAAK,KACd8gF,EAAS9gF,EAAK,KAGZprB,EAASorB,EAAK,KAAO73B,EAAQ63B,EAAK,OACpC84L,EAAS94L,EAAK,KAIX,CAAE8gF,OAAQA,EAAQg4G,OAAQA,EACnC,CAEA,SAASyD,EAAY11N,GACnB,OAAO0Q,KAAKnH,MAAMmH,KAAKC,UAAU3Q,GACnC,CAEA,SAAS4qD,EAAQ5pD,EAAKq7C,GACpB,GAAIr7C,EAAIipI,OAAO5tF,GACb,OAAOr7C,CAEX,CAEA,SAAS+6F,EAAW/6F,GAClB,IAAI20N,EAAM,GAEV,OADA30N,EAAIvB,SAAQ,SAAUu+E,GAAK,OAAO23I,EAAI12N,KAAK++E,EAAI,IACxC23I,CACT,CAEA,SAAS7oI,EAAU9rF,EAAKq7C,GACtB,SAAUr7C,EAAIL,QAAQ07C,EACxB,CAEA,IAAIh5C,EAAiB3E,OAAO0B,UAAUiD,eACtC,SAASuyN,EAAQ51N,EAAKN,GACpB,OAAO2D,EAAe7F,KAAKwC,EAAKN,EAClC,CAEA,SAASqvE,EAAO3vE,GAId,IAHA,IAAIy2N,EAAcv2N,UAEd4D,EAASxE,OAAOU,GACXC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAASq2N,EAAYx2N,GACzB,QAAe6G,IAAX1G,GAAmC,OAAXA,EAAiB,CAC3C,IAAIE,OAAO,EACX,IAAKA,KAAOF,EACNo2N,EAAOp2N,EAAQE,KACbqO,EAASvO,EAAOE,IAClBwD,EAAOxD,GAAOqvE,EAAM7rE,EAAOxD,GAAMF,EAAOE,IAExCwD,EAAOxD,GAAOF,EAAOE,GAI7B,CACF,CACA,OAAOwD,CACT,CAEA,SAASuqG,EAAYzvB,EAAG/oE,GACtB,GAAI+oE,IAAM/oE,EAAK,OAAO,EACtB,IAAI6gN,EAAY/nN,EAASiwE,GACrB+3I,EAAYhoN,EAASkH,GACzB,IAAI6gN,IAAaC,EAsBV,OAAKD,IAAcC,GACjBnsN,OAAOo0E,KAAOp0E,OAAOqL,GAtB5B,IACE,IAAI+gN,EAAW10N,EAAQ08E,GACnBi4I,EAAW30N,EAAQ2T,GACvB,GAAI+gN,GAAYC,EACd,OAAOj4I,EAAEz+E,SAAW0V,EAAE1V,QAAUy+E,EAAE0C,OAAM,SAAUt5E,EAAG/H,GACnD,OAAOouG,EAAWrmG,EAAG6N,EAAE5V,GACzB,IACK,GAAK22N,GAAaC,EAQvB,OAAO,EAPP,IAAIC,EAAQx3N,OAAOD,KAAKu/E,GACpBm4I,EAAQz3N,OAAOD,KAAKwW,GACxB,OAAOihN,EAAM32N,SAAW42N,EAAM52N,QAAU22N,EAAMx1I,OAAM,SAAUhhF,GAC5D,OAAO+tG,EAAWzvB,EAAEt+E,GAAMuV,EAAEvV,GAC9B,GAKJ,CAAE,MAAO0H,GAEP,OAAO,CACT,CAMJ,CAMA,SAASgvN,EAAWC,GAClB,OAAOA,EACJxyN,QAAQ,KAAM,QACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,UACdA,QAAQ,KAAM,SACnB,CAWA,SAASyyN,EAAarE,GAQpB,OAPa,MAAVA,GACDvzN,OAAOD,KAAKwzN,GAAQxyN,SAAQ,SAAUC,GACV,iBAAhBuyN,EAAOvyN,KACfuyN,EAAOvyN,GAAO02N,EAAWnE,EAAOvyN,IAEpC,IAEKuyN,CACT,CAIA,SAASvvI,EAAQd,GACVA,EAAIxhF,UAAUiD,eAAe,UAEhC3E,OAAOoB,eAAe8hF,EAAIxhF,UAAW,QAAS,CAC5C+O,IAAK,WAAkB,OAAOhS,KAAKo5N,KAAM,IAI7C30I,EAAIxhF,UAAUs+L,GAAK,SAAUh/L,GAC3B,IAAIkQ,EAAS,GAAI3N,EAAM3C,UAAUC,OAAS,EAC1C,MAAQ0C,KAAQ,EAAI2N,EAAQ3N,GAAQ3C,UAAW2C,EAAM,GAErD,IAAIu0N,EAAOr5N,KAAKs5N,MAChB,OAAOD,EAAKE,GAAGx3N,MAAMs3N,EAAM,CAAE92N,EAAK82N,EAAKv8G,OAAQu8G,EAAKG,eAAgBx5N,MAAOiB,OAAQwR,GACrF,EAEAgyE,EAAIxhF,UAAUw2N,IAAM,SAAUl3N,EAAKm3N,GACjC,IAAIjnN,EAAS,GAAI3N,EAAM3C,UAAUC,OAAS,EAC1C,MAAQ0C,KAAQ,EAAI2N,EAAQ3N,GAAQ3C,UAAW2C,EAAM,GAErD,IAAIu0N,EAAOr5N,KAAKs5N,MAChB,OAAOD,EAAKM,IAAI53N,MAAMs3N,EAAM,CAAE92N,EAAK82N,EAAKv8G,OAAQu8G,EAAKG,eAAgBx5N,KAAM05N,GAASz4N,OAAQwR,GAC9F,EAEAgyE,EAAIxhF,UAAU22N,IAAM,SAAUr3N,EAAKu6G,GACjC,IAAIu8G,EAAOr5N,KAAKs5N,MAChB,OAAOD,EAAKQ,IAAIt3N,EAAK82N,EAAKv8G,OAAQu8G,EAAKG,eAAgB18G,EACzD,EAEAr4B,EAAIxhF,UAAU62N,GAAK,SAAU52N,GAC3B,IAAIie,EAEA6a,EAAO,GAAIl3B,EAAM3C,UAAUC,OAAS,EACxC,MAAQ0C,KAAQ,EAAIk3B,EAAMl3B,GAAQ3C,UAAW2C,EAAM,GACnD,OAAQqc,EAAMnhB,KAAKs5N,OAAO39M,EAAE5Z,MAAMof,EAAK,CAAEje,GAAQjC,OAAQ+6B,GAC3D,EAEAyoD,EAAIxhF,UAAU82N,GAAK,SAAU72N,GAC3B,IAAIie,EAEA6a,EAAO,GAAIl3B,EAAM3C,UAAUC,OAAS,EACxC,MAAQ0C,KAAQ,EAAIk3B,EAAMl3B,GAAQ3C,UAAW2C,EAAM,GACnD,OAAQqc,EAAMnhB,KAAKs5N,OAAO70N,EAAE1C,MAAMof,EAAK,CAAEje,GAAQjC,OAAQ+6B,GAC3D,CACF,CAUA,SAASg+L,EAAaC,GAGpB,SAASt/G,IACH36G,OAASA,KAAKS,OAAST,KAAKU,SAASw5N,kBAAoBl6N,KAAK60G,KAChE70G,KAAK60G,IAAIrV,aAAa,eAAgBx/F,KAAKU,SAASw5N,iBAExD,CAEA,YARgB,IAAXD,IAAoBA,GAAS,GAQ3BA,EACH,CAAEt/G,QAASA,GACX,CACF35G,aAAc,WACZ,IAAIrB,EAAUK,KAAKU,SAGnB,GAFAf,EAAQ05N,KAAO15N,EAAQ05N,OAAU15N,EAAQw6N,cAAgBx6N,EAAQy6N,OAAU,CAAC,EAAI,MAE5Ez6N,EAAQ05N,KACV,GAAI15N,EAAQ05N,gBAAgBgB,GAAS,CAEnC,GAAK16N,EAAQw6N,cAAgBx6N,EAAQy6N,OACnC,IACE,IAAIE,EAAiB36N,EAAQ05N,MAAQ15N,EAAQ05N,KAAKkB,SAAW56N,EAAQ05N,KAAKkB,SAAW,CAAC,EAClFnB,EAAQz5N,EAAQw6N,cAAgBx6N,EAAQy6N,OAC5ChB,EAAM92N,SAAQ,SAAUk4N,GACtBF,EAAiB1oJ,EAAM0oJ,EAAgB/mN,KAAKnH,MAAMouN,GACpD,IACAj5N,OAAOD,KAAKg5N,GAAgBh4N,SAAQ,SAAUw6G,GAC5Cn9G,EAAQ05N,KAAKoB,mBAAmB39G,EAAQw9G,EAAex9G,GACzD,GACF,CAAE,MAAO7yG,GACH5C,CAGN,CAEFrH,KAAKo5N,MAAQz5N,EAAQ05N,KACrBr5N,KAAK06N,aAAe16N,KAAKo5N,MAAMuB,eACjC,MAAO,GAAIp9M,EAAc5d,EAAQ05N,MAAO,CACtC,IAAIuB,EAAW56N,KAAKS,OAAST,KAAKS,MAAM64N,OAASt5N,KAAKS,MAAM64N,iBAAiBe,GACzEr6N,KAAKS,MAAM64N,MACX,KAcJ,GAZIsB,IACFj7N,EAAQ05N,KAAK16H,KAAO3+F,KAAKS,MACzBd,EAAQ05N,KAAKpyE,UAAY2zE,EAAS3zE,UAClCtnJ,EAAQ05N,KAAKwB,eAAiBD,EAASC,eACvCl7N,EAAQ05N,KAAKyB,uBAAyBF,EAASE,uBAC/Cn7N,EAAQ05N,KAAK0B,sBAAwBH,EAASG,sBAC9Cp7N,EAAQ05N,KAAK2B,mBAAqBJ,EAASI,mBAC3Cr7N,EAAQ05N,KAAK4B,mBAAqBL,EAASK,mBAC3Ct7N,EAAQ05N,KAAK6B,yBAA2BN,EAASM,0BAI9Cv7N,EAAQw6N,cAAgBx6N,EAAQy6N,OACnC,IACE,IAAIe,EAAmBx7N,EAAQ05N,MAAQ15N,EAAQ05N,KAAKkB,SAAW56N,EAAQ05N,KAAKkB,SAAW,CAAC,EACpFa,EAAUz7N,EAAQw6N,cAAgBx6N,EAAQy6N,OAC9CgB,EAAQ94N,SAAQ,SAAUk4N,GACxBW,EAAmBvpJ,EAAMupJ,EAAkB5nN,KAAKnH,MAAMouN,GACxD,IACA76N,EAAQ05N,KAAKkB,SAAWY,CAC1B,CAAE,MAAOlxN,GACH5C,CAGN,CAGF,IAAI8Z,EAAMxhB,EAAQ05N,KACdgC,EAAiBl6M,EAAIk6M,eACrBA,GAAkB99M,EAAc89M,KAClC17N,EAAQ05N,KAAKkB,SAAW3oJ,EAAMjyE,EAAQ05N,KAAKkB,SAAUc,IAGvDr7N,KAAKo5N,MAAQ,IAAIiB,GAAQ16N,EAAQ05N,MACjCr5N,KAAK06N,aAAe16N,KAAKo5N,MAAMuB,sBAEL5xN,IAAtBpJ,EAAQ05N,KAAKl6K,MAAwBx/C,EAAQ05N,KAAKl6K,QACpDn/C,KAAKs7N,eAAiBt7N,KAAKs5N,MAAMiC,eAG/BX,GACFA,EAASY,2BAA2Bx7N,KAAKo5N,MAE7C,MACM/xN,OAIGrH,KAAKS,OAAST,KAAKS,MAAM64N,OAASt5N,KAAKS,MAAM64N,iBAAiBe,GAEvEr6N,KAAKo5N,MAAQp5N,KAAKS,MAAM64N,MACf35N,EAAQQ,QAAUR,EAAQQ,OAAOm5N,OAAS35N,EAAQQ,OAAOm5N,iBAAiBe,KAEnFr6N,KAAKo5N,MAAQz5N,EAAQQ,OAAOm5N,MAEhC,EAEAv2D,YAAa,WACX,IAAIpjK,EAAUK,KAAKU,SACnBf,EAAQ05N,KAAO15N,EAAQ05N,OAAU15N,EAAQw6N,cAAgBx6N,EAAQy6N,OAAU,CAAC,EAAI,MAE5Ez6N,EAAQ05N,MACN15N,EAAQ05N,gBAAgBgB,IAIjB98M,EAAc5d,EAAQ05N,SAF/Br5N,KAAKo5N,MAAMqC,sBAAsBz7N,MACjCA,KAAK07N,cAAe,IASb17N,KAAKS,OAAST,KAAKS,MAAM64N,OAASt5N,KAAKS,MAAM64N,iBAAiBe,IAG9D16N,EAAQQ,QAAUR,EAAQQ,OAAOm5N,OAAS35N,EAAQQ,OAAOm5N,iBAAiBe,MAFnFr6N,KAAKo5N,MAAMqC,sBAAsBz7N,MACjCA,KAAK07N,cAAe,EAKxB,EAEA/gH,QAASA,EAETzS,cAAe,WACb,GAAKloG,KAAKo5N,MAAV,CAEA,IAAI/zN,EAAOrF,KACXA,KAAKgoG,WAAU,WACT3iG,EAAKq2N,eACPr2N,EAAK+zN,MAAMuC,wBAAwBt2N,UAC5BA,EAAKq2N,cAGVr2N,EAAKq1N,eACPr1N,EAAKq1N,eACLr1N,EAAK+zN,MAAMwC,mBACJv2N,EAAKq1N,cAGVr1N,EAAKi2N,iBACPj2N,EAAKi2N,wBACEj2N,EAAKi2N,eAEhB,GAnB0B,CAoB5B,EAEJ,CAIA,IAAIO,EAAyB,CAC3Bj3N,KAAM,OACN/E,YAAY,EACZiJ,MAAO,CACLiB,IAAK,CACHuC,KAAM,CAACG,OAAQF,QAAShL,QACxBiL,QAAS,QAEXkS,KAAM,CACJpS,KAAMG,OACNE,UAAU,GAEZmwG,OAAQ,CACNxwG,KAAMG,QAERqvN,OAAQ,CACNxvN,KAAM,CAACpI,MAAO3C,UAGlBpC,OAAQ,SAAiB2B,EAAGqgB,GAC1B,IAAInY,EAAOmY,EAAInY,KACX7I,EAASghB,EAAIhhB,OACb2I,EAAQqY,EAAIrY,MACZ2mF,EAAQtuE,EAAIsuE,MAEZ6pI,EAAQn5N,EAAOm5N,MACnB,GAAKA,EAAL,CAOA,IAAI56M,EAAO5V,EAAM4V,KACbo+F,EAASh0G,EAAMg0G,OACfg/G,EAAShzN,EAAMgzN,OACfhH,EAASrlI,IACTxmF,EAAWqwN,EAAMp3N,EACnBwc,EACAo+F,EACAi/G,EAAoBjH,IAAWgH,EAC3BE,EAAgBlH,EAAOtoN,QAASsvN,GAChChH,GAGF/qN,EAASjB,EAAMiB,MAAqB,IAAdjB,EAAMiB,MAA+B,IAAdjB,EAAMiB,IAAgBjB,EAAMiB,IAAM,OACnF,OAAOA,EAAMjJ,EAAEiJ,EAAKf,EAAMC,GAAYA,CAftC,CAgBF,GAGF,SAAS8yN,EAAqBjH,GAC5B,IAAIzsN,EACJ,IAAKA,KAAQysN,EACX,GAAa,YAATzsN,EAAsB,OAAO,EAEnC,OAAOkE,QAAQlE,EACjB,CAEA,SAAS2zN,EAAiB/yN,EAAU6yN,GAClC,IAAIhH,EAASgH,EAASG,EAAuBH,GAAU,CAAC,EAExD,IAAK7yN,EAAY,OAAO6rN,EAGxB7rN,EAAWA,EAASvH,QAAO,SAAUu9F,GACnC,OAAOA,EAAMl1F,KAA6B,KAAtBk1F,EAAM/8D,KAAKj6B,MACjC,IAEA,IAAIi0N,EAAajzN,EAASs6E,MAAM44I,GAKhC,OAAOlzN,EAASf,OACdg0N,EAAaE,EAAmBC,EAChCvH,EAEJ,CAEA,SAASmH,EAAwBH,GAK/B,OAAO53N,MAAMC,QAAQ23N,GACjBA,EAAO5zN,OAAOm0N,EAAkB,CAAC,GACjC96N,OAAOkhF,OAAO,CAAC,EAAGq5I,EACxB,CAEA,SAASM,EAAkBtH,EAAQ71H,GAIjC,OAHIA,EAAMj2F,MAAQi2F,EAAMj2F,KAAKM,OAAS21F,EAAMj2F,KAAKM,MAAMgzN,QACrDxH,EAAO71H,EAAMj2F,KAAKM,MAAMgzN,OAASr9H,GAE5B61H,CACT,CAEA,SAASuH,EAAkBvH,EAAQ71H,EAAOhrD,GAExC,OADA6gL,EAAO7gL,GAASgrD,EACT61H,CACT,CAEA,SAASqH,EAAwBjtI,GAC/B,OAAO3iF,QAAQ2iF,EAAMlmF,MAAQkmF,EAAMlmF,KAAKM,OAAS4lF,EAAMlmF,KAAKM,MAAMgzN,MACpE,CAIA,IAgMI73I,EAhMA83I,EAAkB,CACpB33N,KAAM,SACN/E,YAAY,EACZiJ,MAAO,CACLiB,IAAK,CACHuC,KAAM,CAACG,OAAQF,QAAShL,QACxBiL,QAAS,QAEXtJ,MAAO,CACLoJ,KAAMO,OACNF,UAAU,GAEZuG,OAAQ,CACN5G,KAAM,CAACG,OAAQlL,SAEjBu7G,OAAQ,CACNxwG,KAAMG,SAGVtN,OAAQ,SAAiB2B,EAAGqgB,GAC1B,IAAIrY,EAAQqY,EAAIrY,MACZ3I,EAASghB,EAAIhhB,OACb6I,EAAOmY,EAAInY,KAEXqwN,EAAOl5N,EAAOm5N,MAElB,IAAKD,EAIH,OAAO,KAGT,IAAI92N,EAAM,KACN5C,EAAU,KAEV+Q,EAAS5H,EAAMoK,QACjB3Q,EAAMuG,EAAMoK,OACHtC,EAAS9H,EAAMoK,UACpBpK,EAAMoK,OAAO3Q,MACfA,EAAMuG,EAAMoK,OAAO3Q,KAIrB5C,EAAU4B,OAAOD,KAAKwH,EAAMoK,QAAQhL,QAAO,SAAUC,EAAKE,GACxD,IAAIxF,EAEJ,OAAI8sF,EAASwoI,EAAkB9vN,GACtB9G,OAAOkhF,OAAO,CAAC,EAAGt6E,GAAOtF,EAAM,CAAC,EAAGA,EAAIwF,GAAQS,EAAMoK,OAAO7K,GAAOxF,IAErEsF,CACT,GAAG,OAGL,IAAI20G,EAASh0G,EAAMg0G,QAAUu8G,EAAKv8G,OAC9BjuC,EAAQwqJ,EAAKmD,KAAK1zN,EAAM5F,MAAO45G,EAAQv6G,EAAK5C,GAE5C8S,EAASo8D,EAAM9mE,KAAI,SAAU00N,EAAMxoL,GACrC,IAAIpxC,EAEA03F,EAAOvxF,EAAK+mF,aAAe/mF,EAAK+mF,YAAY0sI,EAAKnwN,MACrD,OAAOiuF,EAAOA,GAAO13F,EAAM,CAAC,EAAGA,EAAI45N,EAAKnwN,MAAQmwN,EAAKv5N,MAAOL,EAAIoxC,MAAQA,EAAOpxC,EAAIgsE,MAAQA,EAAOhsE,IAAS45N,EAAKv5N,KAClH,IAEI6G,EAASjB,EAAMiB,MAAqB,IAAdjB,EAAMiB,MAA+B,IAAdjB,EAAMiB,IAAgBjB,EAAMiB,IAAM,OACnF,OAAOA,EACHjJ,EAAEiJ,EAAK,CACPT,MAAON,EAAKM,MACZ,MAASN,EAAK,SACdu8F,YAAav8F,EAAKu8F,aACjB9yF,GACDA,CACN,GAKF,SAASvJ,EAAM8lF,EAAIC,EAASC,GACrBwtI,EAAO1tI,EAAIE,IAEhBjoE,EAAE+nE,EAAIC,EAASC,EACjB,CAEA,SAAS5wC,EAAQ0wC,EAAIC,EAASC,EAAOytI,GACnC,GAAKD,EAAO1tI,EAAIE,GAAhB,CAEA,IAAImqI,EAAOnqI,EAAMnvF,QAAQu5N,MACrBsD,EAAY5tI,EAAIE,IACjBohB,EAAWrhB,EAAQ/rF,MAAO+rF,EAAQ8hB,WAClCT,EAAWthB,EAAG6tI,eAAgBxD,EAAKyD,iBAAiBzD,EAAKv8G,UAE5D71F,EAAE+nE,EAAIC,EAASC,EAPkB,CAQnC,CAEA,SAASkgC,EAAQpgC,EAAIC,EAASC,EAAOytI,GACnC,IAAIhrH,EAAKziB,EAAMnvF,QACf,GAAK4xG,EAAL,CAKA,IAAI0nH,EAAOnqI,EAAMnvF,QAAQu5N,OAAS,CAAC,EAC9BrqI,EAAQ+/B,UAAU+tG,UAAa1D,EAAK6B,2BACvClsI,EAAGkqB,YAAc,IAEnBlqB,EAAGguI,SAAMj0N,SACFimF,EAAG,OACVA,EAAGiuI,aAAUl0N,SACNimF,EAAG,WACVA,EAAG6tI,oBAAiB9zN,SACbimF,EAAG,iBAXV,MAFErL,EAAK,gDAcT,CAEA,SAAS+4I,EAAQ1tI,EAAIE,GACnB,IAAIyiB,EAAKziB,EAAMnvF,QACf,OAAK4xG,IAKAA,EAAG2nH,QACN31I,EAAK,qDACE,IANPA,EAAK,kDACE,EASX,CAEA,SAASi5I,EAAa5tI,EAAIE,GACxB,IAAIyiB,EAAKziB,EAAMnvF,QACf,OAAOivF,EAAGiuI,UAAYtrH,EAAG2nH,MAAMx8G,MACjC,CAEA,SAAS71F,EAAG+nE,EAAIC,EAASC,GACvB,IAAIguI,EAAOC,EAEPj6N,EAAQ+rF,EAAQ/rF,MAEhBie,EAAMi8M,EAAWl6N,GACjBwb,EAAOyC,EAAIzC,KACXo+F,EAAS37F,EAAI27F,OACb9gF,EAAO7a,EAAI6a,KACX09L,EAASv4M,EAAIu4M,OACjB,GAAKh7M,GAASo+F,GAAW9gF,EAKzB,GAAKtd,EAAL,CAKA,IAAIizF,EAAKziB,EAAMnvF,QAEbivF,EAAGguI,IAAMhuI,EAAGkqB,YADA,MAAVwgH,GACyBwD,EAAQvrH,EAAG2nH,OAAO+D,GAAGt7N,MAAMm7N,EAAO,CAAEx+M,EAAMg7M,GAASz4N,OAAQq8N,EAAWxgH,EAAQ9gF,MAE9EmhM,EAAQxrH,EAAG2nH,OAAOryM,EAAEllB,MAAMo7N,EAAO,CAAEz+M,GAAOzd,OAAQq8N,EAAWxgH,EAAQ9gF,KAElGgzD,EAAGiuI,QAAUtrH,EAAG2nH,MAAMx8G,OACtB9tB,EAAG6tI,eAAiBlrH,EAAG2nH,MAAMwD,iBAAiBnrH,EAAG2nH,MAAMx8G,OATvD,MAFEn5B,EAAK,4CALLA,EAAK,2BAiBT,CAEA,SAASy5I,EAAYl6N,GACnB,IAAIwb,EACAo+F,EACA9gF,EACA09L,EAWJ,OATIhpN,EAASxN,GACXwb,EAAOxb,EACEqa,EAAcra,KACvBwb,EAAOxb,EAAMwb,KACbo+F,EAAS55G,EAAM45G,OACf9gF,EAAO94B,EAAM84B,KACb09L,EAASx2N,EAAMw2N,QAGV,CAAEh7M,KAAMA,EAAMo+F,OAAQA,EAAQ9gF,KAAMA,EAAM09L,OAAQA,EAC3D,CAEA,SAAS4D,EAAYxgH,EAAQ9gF,GAC3B,IAAI84L,EAAS,GAOb,OALAh4G,GAAUg4G,EAAOhzN,KAAKg7G,GAClB9gF,IAAS93B,MAAMC,QAAQ63B,IAASze,EAAcye,KAChD84L,EAAOhzN,KAAKk6B,GAGP84L,CACT,CAIA,SAAS7vI,EAASs4I,EAAM59N,QACL,IAAZA,IAAqBA,EAAU,CAAEs6N,QAAQ,IAO9Ch1I,EAAQC,WAAY,EAEpBT,EAAM84I,EAES94I,EAAInsD,SAAWzrB,OAAO43E,EAAInsD,QAAQhyB,MAAM,KAAK,IAO5Di/E,EAAOd,GACPA,EAAIyf,MAAM81H,EAAYr6N,EAAQs6N,SAC9Bx1I,EAAImB,UAAU,IAAK,CAAE18E,KAAMA,EAAMo1C,OAAQA,EAAQ8wE,OAAQA,IACzD3qC,EAAIiB,UAAUm2I,EAAuBj3N,KAAMi3N,GAC3Cp3I,EAAIiB,UAAU62I,EAAgB33N,KAAM23N,GAGpC,IAAIiB,EAAS/4I,EAAI/jD,OAAO+8L,sBACxBD,EAAOnE,KAAO,SAAUqE,EAAWC,GACjC,YAAoB50N,IAAb40N,EACHD,EACAC,CACN,CACF,CAIA,IAAIC,EAAgB,WAClB59N,KAAK69N,QAAUt8N,OAAOs2C,OAAO,KAC/B,EAEA+lL,EAAc36N,UAAU66N,YAAc,SAAsBxqN,EAASb,GACnE,IAAKA,EACH,MAAO,CAACa,GAEV,IAAIyqN,EAAS/9N,KAAK69N,QAAQvqN,GAK1B,OAJKyqN,IACHA,EAAS3xN,EAAMkH,GACftT,KAAK69N,QAAQvqN,GAAWyqN,GAEnBC,EAAQD,EAAQtrN,EACzB,EAIA,IAAIwrN,EAAsB,WACtBC,EAAuB,WAE3B,SAAS9xN,EAAO8G,GACd,IAAI6qN,EAAS,GACTl9H,EAAW,EAEX3+D,EAAO,GACX,MAAO2+D,EAAW3tF,EAAO9Q,OAAQ,CAC/B,IAAI4gJ,EAAO9vI,EAAO2tF,KAClB,GAAa,MAATmiD,EAAc,CACZ9gH,GACF67L,EAAOj8N,KAAK,CAAEwK,KAAM,OAAQpJ,MAAOg/B,IAGrCA,EAAO,GACP,IAAIi8L,EAAM,GACVn7E,EAAO9vI,EAAO2tF,KACd,WAAgB93F,IAATi6I,GAA+B,MAATA,EAC3Bm7E,GAAOn7E,EACPA,EAAO9vI,EAAO2tF,KAEhB,IAAIu9H,EAAoB,MAATp7E,EAEX12I,EAAO2xN,EAAoBp5N,KAAKs5N,GAChC,OACAC,GAAYF,EAAqBr5N,KAAKs5N,GACpC,QACA,UACNJ,EAAOj8N,KAAK,CAAEoB,MAAOi7N,EAAK7xN,KAAMA,GAClC,KAAoB,MAAT02I,EAEkB,MAAvB9vI,EAAQ2tF,KACV3+D,GAAQ8gH,GAGV9gH,GAAQ8gH,CAEZ,CAIA,OAFA9gH,GAAQ67L,EAAOj8N,KAAK,CAAEwK,KAAM,OAAQpJ,MAAOg/B,IAEpC67L,CACT,CAEA,SAASC,EAASD,EAAQtrN,GACxB,IAAI4rN,EAAW,GACXpqL,EAAQ,EAERoyD,EAAOniG,MAAMC,QAAQsO,GACrB,OACA7B,EAAS6B,GACP,QACA,UACN,GAAa,YAAT4zF,EAAsB,OAAOg4H,EAEjC,MAAOpqL,EAAQ8pL,EAAO37N,OAAQ,CAC5B,IAAI63M,EAAQ8jB,EAAO9pL,GACnB,OAAQgmK,EAAM3tM,MACZ,IAAK,OACH+xN,EAASv8N,KAAKm4M,EAAM/2M,OACpB,MACF,IAAK,OACHm7N,EAASv8N,KAAK2Q,EAAO3F,SAASmtM,EAAM/2M,MAAO,MAC3C,MACF,IAAK,QACU,UAATmjG,GACFg4H,EAASv8N,KAAM2Q,EAAQwnM,EAAM/2M,QAM/B,MACF,IAAK,UACCmE,EAGJ,MAEJ4sC,GACF,CAEA,OAAOoqL,CACT,CAWA,IAAIC,EAAS,EACTC,EAAO,EACPC,GAAqB,EACrBC,GAAgB,EAGhBC,GAAc,EACdC,GAAU,EACVC,GAAe,EACfC,GAAW,EACXC,GAAc,EACdC,GAAkB,EAClBC,GAAkB,EAClBC,GAAa,EACbC,GAAQ,EAERC,GAAmB,GAEvBA,GAAiBT,IAAe,CAC9B,GAAM,CAACA,IACP,MAAS,CAACG,GAAUP,GACpB,IAAK,CAACQ,IACN,IAAO,CAACG,KAGVE,GAAiBR,IAAW,CAC1B,GAAM,CAACA,IACP,IAAK,CAACC,IACN,IAAK,CAACE,IACN,IAAO,CAACG,KAGVE,GAAiBP,IAAgB,CAC/B,GAAM,CAACA,IACP,MAAS,CAACC,GAAUP,GACpB,EAAK,CAACO,GAAUP,GAChB,OAAU,CAACO,GAAUP,IAGvBa,GAAiBN,IAAY,CAC3B,MAAS,CAACA,GAAUP,GACpB,EAAK,CAACO,GAAUP,GAChB,OAAU,CAACO,GAAUP,GACrB,GAAM,CAACK,GAASJ,GAChB,IAAK,CAACK,GAAcL,GACpB,IAAK,CAACO,GAAaP,GACnB,IAAO,CAACU,GAAYV,IAGtBY,GAAiBL,IAAe,CAC9B,IAAK,CAACC,GAAiBT,GACvB,IAAK,CAACU,GAAiBV,GACvB,IAAK,CAACQ,GAAaN,IACnB,IAAK,CAACG,GAASF,IACf,IAAOS,GACP,KAAQ,CAACJ,GAAaR,IAGxBa,GAAiBJ,IAAmB,CAClC,IAAK,CAACD,GAAaR,GACnB,IAAOY,GACP,KAAQ,CAACH,GAAiBT,IAG5Ba,GAAiBH,IAAmB,CAClC,IAAK,CAACF,GAAaR,GACnB,IAAOY,GACP,KAAQ,CAACF,GAAiBV,IAO5B,IAAIc,GAAiB,kDACrB,SAASC,GAAWpiN,GAClB,OAAOmiN,GAAev6N,KAAKoY,EAC7B,CAMA,SAASqiN,GAAahkI,GACpB,IAAIza,EAAIya,EAAI57B,WAAW,GACnB5nD,EAAIwjF,EAAI57B,WAAW47B,EAAIl5F,OAAS,GACpC,OAAOy+E,IAAM/oE,GAAY,KAAN+oE,GAAoB,KAANA,EAE7Bya,EADAA,EAAI32F,MAAM,GAAI,EAEpB,CAMA,SAAS46N,GAAiBC,GACxB,QAAWz2N,IAAPy2N,GAA2B,OAAPA,EAAe,MAAO,MAE9C,IAAIC,EAAOD,EAAG9/J,WAAW,GAEzB,OAAQ+/J,GACN,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACH,OAAOD,EAET,KAAK,GACL,KAAK,GACL,KAAK,GACH,MAAO,QAET,KAAK,EACL,KAAK,GACL,KAAK,GACL,KAAK,IACL,KAAK,MACL,KAAK,KACL,KAAK,KACH,MAAO,KAGX,MAAO,OACT,CAQA,SAASE,GAAehhN,GACtB,IAAIihN,EAAUjhN,EAAKzW,OAEnB,OAAuB,MAAnByW,EAAK2Z,OAAO,KAAc0O,MAAMroB,MAE7B2gN,GAAUM,GAAWL,GAAYK,GAAW,IAAMA,EAC3D,CAMA,SAASC,GAASlhN,GAChB,IAIIlW,EACAjG,EACAs9N,EACAvzN,EACAmmH,EACA6tC,EACAw/D,EAVAx+N,EAAO,GACP2yC,GAAS,EACToyD,EAAOq4H,GACPqB,EAAe,EAQfC,EAAU,GAuCd,SAASC,IACP,IAAIC,EAAWxhN,EAAKu1B,EAAQ,GAC5B,GAAKoyD,IAAS04H,IAAgC,MAAbmB,GAC9B75H,IAAS24H,IAAgC,MAAbkB,EAI7B,OAHAjsL,IACA4rL,EAAU,KAAOK,EACjBF,EAAQ1B,MACD,CAEX,CA9CA0B,EAAQzB,GAAQ,gBACFx1N,IAARxG,IACFjB,EAAKQ,KAAKS,GACVA,OAAMwG,EAEV,EAEAi3N,EAAQ1B,GAAU,gBACJv1N,IAARxG,EACFA,EAAMs9N,EAENt9N,GAAOs9N,CAEX,EAEAG,EAAQxB,IAAsB,WAC5BwB,EAAQ1B,KACRyB,GACF,EAEAC,EAAQvB,IAAiB,WACvB,GAAIsB,EAAe,EACjBA,IACA15H,EAAOy4H,GACPkB,EAAQ1B,SACH,CAEL,GADAyB,EAAe,OACHh3N,IAARxG,EAAqB,OAAO,EAEhC,GADAA,EAAMm9N,GAAcn9N,IACR,IAARA,EACF,OAAO,EAEPy9N,EAAQzB,IAEZ,CACF,EAaA,MAAgB,OAATl4H,EAIL,GAHApyD,IACAzrC,EAAIkW,EAAKu1B,GAEC,OAANzrC,IAAcy3N,IAAlB,CAQA,GAJA3zN,EAAOizN,GAAgB/2N,GACvBs3N,EAAUX,GAAiB94H,GAC3BosB,EAAaqtG,EAAQxzN,IAASwzN,EAAQ,SAAWZ,GAE7CzsG,IAAeysG,GACjB,OAKF,GAFA74H,EAAOosB,EAAW,GAClB6tC,EAAS0/D,EAAQvtG,EAAW,IACxB6tC,IACFu/D,EAAUptG,EAAW,GACrBotG,OAAsB92N,IAAZ82N,EACNr3N,EACAq3N,GACa,IAAbv/D,KACF,OAIJ,GAAIj6D,IAAS44H,GACX,OAAO39N,CAvBT,CA0BJ,CAMA,IAAI6+N,GAAW,WACbngO,KAAKsgF,OAAS/+E,OAAOs2C,OAAO,KAC9B,EAKAsoL,GAASl9N,UAAUm9N,UAAY,SAAoB1hN,GACjD,IAAI2hN,EAAMrgO,KAAKsgF,OAAO5hE,GAOtB,OANK2hN,IACHA,EAAMT,GAAQlhN,GACV2hN,IACFrgO,KAAKsgF,OAAO5hE,GAAQ2hN,IAGjBA,GAAO,EAChB,EAKAF,GAASl9N,UAAUq9N,aAAe,SAAuBz9N,EAAK6b,GAC5D,IAAK9N,EAAS/N,GAAQ,OAAO,KAE7B,IAAI09N,EAAQvgO,KAAKogO,UAAU1hN,GAC3B,GAAqB,IAAjB6hN,EAAMn+N,OACR,OAAO,KAEP,IAAIA,EAASm+N,EAAMn+N,OACfo+N,EAAO39N,EACPX,EAAI,EACR,MAAOA,EAAIE,EAAQ,CACjB,IAAIc,EAAQs9N,EAAKD,EAAMr+N,IACvB,QAAc6G,IAAV7F,GAAiC,OAAVA,EACzB,OAAO,KAETs9N,EAAOt9N,EACPhB,GACF,CAEA,OAAOs+N,CAEX,EAMA,IAqkCIC,GArkCAC,GAAiB,0BACjBC,GAAiB,0DACjBC,GAAuB,wBACvBC,GAAkB,QAClBC,GAAmB,CACrB,MAAS,SAAUxlI,GAAO,OAAOA,EAAIylI,mBAAqB,EAC1D,MAAS,SAAUzlI,GAAO,OAAOA,EAAI0lI,mBAAqB,EAC1D,WAAc,SAAU1lI,GAAO,MAAQ,GAAMA,EAAIjjE,OAAO,GAAG0oM,oBAAwBzlI,EAAIx0F,OAAO,EAAM,GAGlGqoJ,GAAmB,IAAIyuE,EAEvBvD,GAAU,SAAkB16N,GAC9B,IAAIshO,EAASjhO,UACI,IAAZL,IAAqBA,EAAU,CAAC,IAMhC8kF,GAAyB,qBAAXt/E,QAA0BA,OAAOs/E,KAClDQ,EAAQ9/E,OAAOs/E,KAGjB,IAAIq4B,EAASn9G,EAAQm9G,QAAU,QAC3B+9G,GAA4C,IAA3Bl7N,EAAQk7N,iBAEzBl7N,EAAQk7N,gBAAkB,SAC1BN,EAAW56N,EAAQ46N,UAAY,CAAC,EAChC2G,EAAkBvhO,EAAQuhO,iBAAmBvhO,EAAQwhO,iBAAmB,CAAC,EACzEC,EAAgBzhO,EAAQyhO,eAAiB,CAAC,EAE9CphO,KAAK6uK,IAAM,KACX7uK,KAAKqhO,WAAa1hO,EAAQsnJ,WAAakI,GACvCnvJ,KAAKswH,WAAa3wH,EAAQqvH,WAAa,CAAC,EACxChvH,KAAKshO,SAAW3hO,EAAQ4hO,SAAW,KACnCvhO,KAAK8uK,MAAQnvK,EAAQg/F,MAAQ,KAC7B3+F,KAAKwhO,WAAyBz4N,IAAjBpJ,EAAQw/C,QAA8Bx/C,EAAQw/C,KAC3Dn/C,KAAKyhO,mBAAyC14N,IAAzBpJ,EAAQ+hO,gBAEvB/hO,EAAQ+hO,aACd1hO,KAAK2hO,kCAAuE54N,IAAxCpJ,EAAQiiO,+BAEtCjiO,EAAQiiO,4BACd5hO,KAAK6hO,6BAA6D94N,IAAnCpJ,EAAQm7N,0BAEjCn7N,EAAQm7N,uBACd96N,KAAK8hO,4BAA2D/4N,IAAlCpJ,EAAQo7N,uBAElCp7N,EAAQo7N,sBACZ/6N,KAAK+hO,yBAAqDh5N,IAA/BpJ,EAAQq7N,sBAE7Br7N,EAAQq7N,mBACdh7N,KAAKgiO,oBAAsB,CAAC,EAC5BhiO,KAAKiiO,kBAAoB,CAAC,EAC1BjiO,KAAKktE,MAAQ,IAAIizJ,GACjBngO,KAAKkiO,eAAiB,IAAIC,IAC1BniO,KAAKoiO,kCAAoCziO,EAAQ0iO,kCAAoC,KACrFriO,KAAKsiO,+BAAiEv5N,IAArCpJ,EAAQu7N,4BAEnCv7N,EAAQu7N,yBACdl7N,KAAKi7N,mBAAqBt7N,EAAQs7N,oBAAsB,CAAC,EACzDj7N,KAAKuiO,mBAAqB5iO,EAAQ6iO,mBAAqB,MACvDxiO,KAAKyiO,iBAAmB9iO,EAAQ+iO,iBAAmB,KACnD1iO,KAAK2iO,qBAAuBhjO,EAAQijO,sBAAuB,EAEvD,wBAAyBjjO,IAC3BK,KAAK6iO,oBAAsBljO,EAAQkjO,qBAQrC7iO,KAAK8iO,eAAiB,SAAUpJ,EAAQqJ,GACtC,IAAIC,EAAgBzhO,OAAO2/E,eAAe+/I,GAC1C,GAAI+B,GAAiBA,EAAcF,eAAgB,CACjD,IAAIG,EAA2BD,EAAcF,eAC7C,OAAQG,EAAyB5iO,KAAK4gO,EAAQvH,EAAQqJ,EACxD,CAGA,IAAIG,EAAc,SAAUC,EAASC,GAGnC,OAFAD,EAAUj0N,KAAKywD,IAAIwjK,GAEI,IAAnBC,EACKD,EACHA,EAAU,EACR,EACA,EACF,EAGCA,EAAUj0N,KAAKi4B,IAAIg8L,EAAS,GAAK,CAC1C,EAEA,OAAIlC,EAAOnkH,UAAUmkH,EAAOhG,mBACnBgG,EAAOhG,mBAAmBgG,EAAOnkH,QAAQ/6G,MAAMk/N,EAAQ,CAACvH,EAAQqJ,IAEhEG,EAAYxJ,EAAQqJ,EAE/B,EAGA/iO,KAAKqjO,OAAS,SAAU/vN,EAAS/Q,GAC/B,SAAK+Q,IAAY/Q,MACZy/E,EAAOi/I,EAAO/zJ,MAAMozJ,aAAahtN,EAAS/Q,OAE3C+Q,EAAQ/Q,GAEd,EAEgC,SAA5BvC,KAAKuiO,oBAA6D,UAA5BviO,KAAKuiO,oBAC7ChhO,OAAOD,KAAKi5N,GAAUj4N,SAAQ,SAAUw6G,GACtCmkH,EAAOqC,oBAAoBxmH,EAAQmkH,EAAOsB,mBAAoBhI,EAASz9G,GACzE,IAGF98G,KAAKujO,QAAQ,CACXzmH,OAAQA,EACR+9G,eAAgBA,EAChBN,SAAUA,EACV2G,gBAAiBA,EACjBE,cAAeA,GAEnB,EAEIoC,GAAqB,CAAE7xH,GAAI,CAAExuG,cAAc,GAAOo3N,SAAU,CAAEp3N,cAAc,GAAO+9N,gBAAiB,CAAE/9N,cAAc,GAAOi+N,cAAe,CAAEj+N,cAAc,GAAOsgO,iBAAkB,CAAEtgO,cAAc,GAAO25G,OAAQ,CAAE35G,cAAc,GAAO03N,eAAgB,CAAE13N,cAAc,GAAO23N,uBAAwB,CAAE33N,cAAc,GAAOo+N,QAAS,CAAEp+N,cAAc,GAAO8jJ,UAAW,CAAE9jJ,cAAc,GAAO43N,sBAAuB,CAAE53N,cAAc,GAAO63N,mBAAoB,CAAE73N,cAAc,GAAO+3N,yBAA0B,CAAE/3N,cAAc,GAAOq/N,kBAAmB,CAAEr/N,cAAc,GAAOu/N,gBAAiB,CAAEv/N,cAAc,GAAOg8C,KAAM,CAAEh8C,cAAc,IAEvnBk3N,GAAQp3N,UAAUqgO,oBAAsB,SAA8BxmH,EAAQhwE,EAAOx5B,GACnF,IAAIitN,EAAQ,GAER9lN,EAAK,SAAUqyB,EAAOgwE,EAAQxpG,EAASitN,GACzC,GAAIhjN,EAAcjK,GAChB/R,OAAOD,KAAKgS,GAAShR,SAAQ,SAAUC,GACrC,IAAI8G,EAAMiK,EAAQ/Q,GACdgb,EAAclU,IAChBk3N,EAAMz+N,KAAKS,GACXg+N,EAAMz+N,KAAK,KACX2Y,EAAGqyB,EAAOgwE,EAAQzzG,EAAKk3N,GACvBA,EAAM98K,MACN88K,EAAM98K,QAEN88K,EAAMz+N,KAAKS,GACXkY,EAAGqyB,EAAOgwE,EAAQzzG,EAAKk3N,GACvBA,EAAM98K,MAEV,SACK,GAAIt/C,EAAQmP,GACjBA,EAAQhR,SAAQ,SAAU48C,EAAMjL,GAC1B12B,EAAc2hC,IAChBqhL,EAAMz+N,KAAM,IAAMmyC,EAAQ,KAC1BssL,EAAMz+N,KAAK,KACX2Y,EAAGqyB,EAAOgwE,EAAQ59D,EAAMqhL,GACxBA,EAAM98K,MACN88K,EAAM98K,QAEN88K,EAAMz+N,KAAM,IAAMmyC,EAAQ,KAC1Bx5B,EAAGqyB,EAAOgwE,EAAQ59D,EAAMqhL,GACxBA,EAAM98K,MAEV,SACK,GAAI/yC,EAAS4C,GAAU,CAC5B,IAAIklN,EAAMkI,GAAe77N,KAAKyO,GAC9B,GAAIklN,EAAK,CACP,IAAIh2L,EAAM,6BAA+BlvB,EAAU,iBAAoBitN,EAAMh6N,KAAK,IAAO,SAAWu2G,EAAS,6FAC/F,SAAVhwE,EACF62C,EAAKnhD,GACc,UAAVsK,GACTziC,EAAMm4B,EAEV,CACF,CACF,EAEA/nB,EAAGqyB,EAAOgwE,EAAQxpG,EAASitN,EAC7B,EAEAlG,GAAQp3N,UAAUsgO,QAAU,SAAkBv6N,GAC5C,IAAI06N,EAASj/I,EAAI/jD,OAAOgjM,OACxBj/I,EAAI/jD,OAAOgjM,QAAS,EACpB1jO,KAAK6uK,IAAM,IAAIpqF,EAAI,CAAEz7E,KAAMA,EAAM26N,sBAAsB,IACvDl/I,EAAI/jD,OAAOgjM,OAASA,CACtB,EAEArJ,GAAQp3N,UAAU24N,UAAY,WAC5B57N,KAAK6uK,IAAIvL,UACX,EAEA+2D,GAAQp3N,UAAUw4N,sBAAwB,SAAgC9pH,GACxE3xG,KAAKkiO,eAAe3hO,IAAIoxG,EAC1B,EAEA0oH,GAAQp3N,UAAU04N,wBAA0B,SAAkChqH,GAC5ElkD,EAAOztD,KAAKkiO,eAAgBvwH,EAC9B,EAEA0oH,GAAQp3N,UAAU03N,cAAgB,WAC9B,IAAIsG,EAASjhO,KACf,OAAOA,KAAK6uK,IAAIR,OAAO,SAAS,WAC9B,IAAI9+F,EAAYqvB,EAAUqiI,EAAOiB,gBAC7BhgO,EAAIqtE,EAAUntE,OAClB,MAAMF,IACJuiF,EAAI6L,UAAS,WACX/gB,EAAUrtE,IAAMqtE,EAAUrtE,GAAG0/L,cAC/B,GAEJ,GAAG,CAAErwK,MAAM,GACb,EAEA8oM,GAAQp3N,UAAUs4N,YAAc,SAAsBqI,GACpD,GAAKA,EAQE,CAEL,IAAK5jO,KAAK6iO,oBAAuB,OAAO,KACxC,IAAIx9N,EAAOrF,KACP6jO,EAAW7jO,KAAK6uK,IACpB,OAAO7uK,KAAK2xG,GAAG08D,OAAO,UAAU,SAAUhlK,GACxCw6N,EAAS3yH,KAAK2yH,EAAU,SAAUx6N,GAC9BhE,EAAKw9N,qBAAuBe,IAC9BA,EAAS9mH,OAAO55G,MAAQmG,GAE1Bw6N,EAASjiC,cACX,GAAG,CAAEl/B,WAAW,GAClB,CAlBE,IAAK1iK,KAAKwhO,QAAUxhO,KAAK8uK,MAAS,OAAO,KACzC,IAAI7sK,EAASjC,KAAK6uK,IAClB,OAAO7uK,KAAK8uK,MAAMwqD,MAAM3nH,GAAG08D,OAAO,UAAU,SAAUhlK,GACpDpH,EAAOivG,KAAKjvG,EAAQ,SAAUoH,GAC9BpH,EAAO2/L,cACT,GAAG,CAAEl/B,WAAW,GAcpB,EAEA23D,GAAQp3N,UAAUu4N,2BAA6B,SAAqCsI,GAC9E9jO,KAAKoiO,mCACPpiO,KAAKoiO,kCAAkC0B,EAAS9jO,KAEpD,EAEAwjO,GAAmB7xH,GAAG3/F,IAAM,WAAc,OAAOhS,KAAK6uK,GAAI,EAE1D20D,GAAmBjJ,SAASvoN,IAAM,WAAc,OAAOumN,EAAWv4N,KAAKw5N,eAAgB,EACvFgK,GAAmBtC,gBAAgBlvN,IAAM,WAAc,OAAOumN,EAAWv4N,KAAK+jO,sBAAuB,EACrGP,GAAmBpC,cAAcpvN,IAAM,WAAc,OAAOumN,EAAWv4N,KAAKgkO,oBAAqB,EACjGR,GAAmBC,iBAAiBzxN,IAAM,WAAc,OAAOzQ,OAAOD,KAAKtB,KAAKu6N,UAAU5pL,MAAO,EAEjG6yL,GAAmB1mH,OAAO9qG,IAAM,WAAc,OAAOhS,KAAK6uK,IAAI/xD,MAAO,EACrE0mH,GAAmB1mH,OAAO5qG,IAAM,SAAU4qG,GACxC98G,KAAK6uK,IAAI39D,KAAKlxG,KAAK6uK,IAAK,SAAU/xD,EACpC,EAEA0mH,GAAmB3I,eAAe7oN,IAAM,WAAc,OAAOhS,KAAK6uK,IAAIgsD,cAAe,EACrF2I,GAAmB3I,eAAe3oN,IAAM,SAAU4qG,GAChD98G,KAAKikO,kBAAoB,CAAC,EAC1BjkO,KAAK6uK,IAAI39D,KAAKlxG,KAAK6uK,IAAK,iBAAkB/xD,EAC5C,EAEA0mH,GAAmB1I,uBAAuB9oN,IAAM,WAAc,OAAOhS,KAAK6hO,uBAAwB,EAClG2B,GAAmB1I,uBAAuB5oN,IAAM,SAAU2nB,GAAY75B,KAAK6hO,wBAA0BhoM,CAAU,EAE/G2pM,GAAmBjC,QAAQvvN,IAAM,WAAc,OAAOhS,KAAKshO,QAAS,EACpEkC,GAAmBjC,QAAQrvN,IAAM,SAAUuM,GAAWze,KAAKshO,SAAW7iN,CAAS,EAE/E+kN,GAAmBv8E,UAAUj1I,IAAM,WAAc,OAAOhS,KAAKqhO,UAAW,EACxEmC,GAAmBv8E,UAAU/0I,IAAM,SAAU+0I,GAAajnJ,KAAKqhO,WAAap6E,CAAW,EAEvFu8E,GAAmBzI,sBAAsB/oN,IAAM,WAAc,OAAOhS,KAAK8hO,sBAAuB,EAChG0B,GAAmBzI,sBAAsB7oN,IAAM,SAAUwxN,GAAU1jO,KAAK8hO,uBAAyB4B,CAAQ,EAEzGF,GAAmBxI,mBAAmBhpN,IAAM,WAAc,OAAOhS,KAAK+hO,mBAAoB,EAC1FyB,GAAmBxI,mBAAmB9oN,IAAM,SAAUwxN,GAAU1jO,KAAK+hO,oBAAsB2B,CAAQ,EAEnGF,GAAmBtI,yBAAyBlpN,IAAM,WAAc,OAAOhS,KAAKsiO,yBAA0B,EACtGkB,GAAmBtI,yBAAyBhpN,IAAM,SAAU6qN,GAAY/8N,KAAKsiO,0BAA4BvF,CAAU,EAEnHyG,GAAmBhB,kBAAkBxwN,IAAM,WAAc,OAAOhS,KAAKuiO,kBAAmB,EACxFiB,GAAmBhB,kBAAkBtwN,IAAM,SAAU46B,GACjD,IAAIm0L,EAASjhO,KAEXkkO,EAAWlkO,KAAKuiO,mBAEpB,GADAviO,KAAKuiO,mBAAqBz1L,EACtBo3L,IAAap3L,IAAoB,SAAVA,GAA8B,UAAVA,GAAoB,CACjE,IAAIytL,EAAWv6N,KAAKw5N,eACpBj4N,OAAOD,KAAKi5N,GAAUj4N,SAAQ,SAAUw6G,GACtCmkH,EAAOqC,oBAAoBxmH,EAAQmkH,EAAOsB,mBAAoBhI,EAASz9G,GACzE,GACF,CACF,EAEA0mH,GAAmBd,gBAAgB1wN,IAAM,WAAc,OAAOhS,KAAKyiO,gBAAiB,EACpFe,GAAmBd,gBAAgBxwN,IAAM,SAAUuM,GAAWze,KAAKyiO,iBAAmBhkN,CAAS,EAE/F+kN,GAAmBrkL,KAAKntC,IAAM,WAAc,OAAOhS,KAAKwhO,KAAM,EAC9DgC,GAAmBrkL,KAAKjtC,IAAM,SAAU7I,GAAOrJ,KAAKwhO,MAAQn4N,CAAK,EAEjEgxN,GAAQp3N,UAAUu2N,aAAe,WAA2B,OAAOx5N,KAAK6uK,IAAI0rD,QAAS,EACrFF,GAAQp3N,UAAU8gO,oBAAsB,WAAkC,OAAO/jO,KAAK6uK,IAAIqyD,eAAgB,EAC1G7G,GAAQp3N,UAAU+gO,kBAAoB,WAAgC,OAAOhkO,KAAK6uK,IAAIuyD,aAAc,EAEpG/G,GAAQp3N,UAAUkhO,aAAe,SAAuBrnH,EAAQv6G,EAAKsN,EAAQ8hG,EAAIl/F,EAAQ2xN,GACvF,IAAKpiJ,EAAOnyE,GAAW,OAAOA,EAC9B,GAAI7P,KAAKshO,SAAU,CACjB,IAAI+C,EAAarkO,KAAKshO,SAASv/N,MAAM,KAAM,CAAC+6G,EAAQv6G,EAAKovG,EAAIl/F,IAC7D,GAAI/B,EAAS2zN,GACX,OAAOA,CAEX,MACMh9N,EAQN,GAAIrH,KAAK6hO,wBAAyB,CAChC,IAAIyC,EAAahM,EAAUv2N,WAAM,EAAQ0Q,GACzC,OAAOzS,KAAKukO,QAAQhiO,EAAK6hO,EAAiBE,EAAWxP,OAAQvyN,EAC/D,CACE,OAAOA,CAEX,EAEA83N,GAAQp3N,UAAUuhO,gBAAkB,SAA0Bn7N,GAC5D,OAAQrJ,KAAK2hO,8BAA+Bt4N,EAAM24E,EAAO34E,MAAU24E,EAAOhiF,KAAK8uK,QAAU9uK,KAAKyhO,aAChG,EAEApH,GAAQp3N,UAAUwhO,sBAAwB,SAAgCliO,GACxE,OAAOvC,KAAK+hO,+BAA+B15J,OACvCroE,KAAK+hO,oBAAoBl9N,KAAKtC,GAC9BvC,KAAK+hO,mBACX,EAEA1H,GAAQp3N,UAAUyhO,kBAAoB,SAA4B5nH,EAAQv6G,GACxE,OAAOvC,KAAKykO,sBAAsBliO,KAASvC,KAAKwkO,mBAAqB1nH,IAAW98G,KAAK66N,eACvF,EAEAR,GAAQp3N,UAAU0hO,yBAA2B,SAAmCpiO,GAC9E,OAAOvC,KAAK8hO,kCAAkCz5J,OAC1CroE,KAAK8hO,uBAAuBj9N,KAAKtC,GACjCvC,KAAK8hO,sBACX,EAEAzH,GAAQp3N,UAAU2hO,aAAe,SAC/B9nH,EACAxpG,EACA/Q,EACAwrC,EACAq2L,EACA3xN,EACAoyN,GAEA,IAAKvxN,EAAW,OAAO,KAEvB,IAGIklN,EAHAsM,EAAU9kO,KAAKktE,MAAMozJ,aAAahtN,EAAS/Q,GAC/C,GAAI4B,EAAQ2gO,IAAYvnN,EAAcunN,GAAY,OAAOA,EAGzD,GAAI9iJ,EAAO8iJ,GAAU,CAEnB,IAAIvnN,EAAcjK,GAShB,OAAO,KAPP,GADAklN,EAAMllN,EAAQ/Q,IACRmO,EAAS8nN,KAAQ7nN,EAAW6nN,GAIhC,OAAO,IAKb,KAAO,CAEL,IAAI9nN,EAASo0N,KAAYn0N,EAAWm0N,GAMlC,OAAO,KALPtM,EAAMsM,CAOV,CAOA,OAJIp0N,EAAS8nN,KAASA,EAAIh1N,QAAQ,OAAS,GAAKg1N,EAAIh1N,QAAQ,OAAS,KACnEg1N,EAAMx4N,KAAK64K,MAAM/7D,EAAQxpG,EAASklN,EAAKzqL,EAAM,MAAOt7B,EAAQoyN,IAGvD7kO,KAAKukO,QAAQ/L,EAAK4L,EAAiB3xN,EAAQlQ,EACpD,EAEA83N,GAAQp3N,UAAU41K,MAAQ,SACxB/7D,EACAxpG,EACAgoF,EACAvtD,EACAq2L,EACA3xN,EACAoyN,GAEA,IAAIrM,EAAMl9H,EAKNvuD,EAAUyrL,EAAI7xN,MAAMg6N,IAGxB,IAAK,IAAI5lN,KAAOgyB,EAGd,GAAKA,EAAQ7mC,eAAe6U,GAA5B,CAGA,IAAI86F,EAAO9oE,EAAQhyB,GACfgqN,EAAuBlvH,EAAKlvG,MAAMi6N,IAClCoE,EAAaD,EAAqB,GAChCE,EAAgBF,EAAqB,GAGvCG,EAAkBrvH,EAAKnvG,QAAQs+N,EAAY,IAAIt+N,QAAQm6N,GAAiB,IAE5E,GAAIlxI,EAASk1I,EAAkBK,GAI7B,OAAO1M,EAETqM,EAAiB/iO,KAAKojO,GAGtB,IAAIC,EAAanlO,KAAK4kO,aACpB9nH,EAAQxpG,EAAS4xN,EAAiBn3L,EACd,QAApBq2L,EAA4B,SAAWA,EACnB,QAApBA,OAA4Br7N,EAAY0J,EACxCoyN,GAGF,GAAI7kO,KAAKwkO,gBAAgBW,GAAa,CAKpC,IAAKnlO,KAAK8uK,MAAS,MAAMp7J,MAAM,oBAC/B,IAAIirF,EAAO3+F,KAAK8uK,MAAMwqD,MACtB6L,EAAaxmI,EAAKymI,WAChBzmI,EAAK66H,eAAgB76H,EAAKme,OAAQne,EAAKk8H,eACvCqK,EAAiBn3L,EAAMq2L,EAAiB3xN,EAE5C,CACA0yN,EAAanlO,KAAKmkO,aAChBrnH,EAAQooH,EAAiBC,EAAYp3L,EACrC5pC,EAAQsO,GAAUA,EAAS,CAACA,GAC5B2xN,GAGEpkO,KAAKswH,WAAWpqH,eAAe++N,GACjCE,EAAanlO,KAAKswH,WAAW20G,GAAeE,GACnCrE,GAAiB56N,eAAe++N,KACzCE,EAAarE,GAAiBmE,GAAeE,IAG/CN,EAAiBphL,MAGjB+0K,EAAO2M,EAAmB3M,EAAI9xN,QAAQmvG,EAAMsvH,GAAxB3M,CApDpB,CAuDF,OAAOA,CACT,EAEA6B,GAAQp3N,UAAUoiO,sBAAwB,SAAgC5yN,EAAQw0I,EAAWvoI,EAAM0lN,GAC/F,IAAInD,EAASjhO,KAEXslO,EAAQnhO,EAAQsO,GAAUA,EAAS,GACnC8yN,EAAS30N,EAAS6B,GAAUA,EAAS,CAAC,EACtCs2I,EAAO,SAAU90G,GAAS,OAAOqxL,EAAMrxL,EAAQ,EAC/CuxL,EAAQ,SAAUjjO,GAAO,OAAOgjO,EAAOhjO,EAAM,EAC7Cg4N,EAAWv6N,KAAKw5N,eAChB18G,EAAS98G,KAAK88G,OAElB,MAAO,CACLisC,KAAMA,EACNy8E,MAAOA,EACP/yN,OAAQA,EACRw0I,UAAWA,EACXvoI,KAAMA,EACN67M,SAAUA,EACVz9G,OAAQA,EACR2oH,OAAQ,SAAUC,GAAa,OAAOzE,EAAO2D,aAAa9nH,EAAQy9G,EAASz9G,IAAW,CAAC,EAAG4oH,EAAW,KAAMtB,OAAiBr7N,EAAW,CAAC28N,GAAa,EAEzJ,EAEArL,GAAQp3N,UAAUshO,QAAU,SAAkBjxN,EAAS8wN,EAAiB3xN,EAAQiM,GAC9E,GAAI/N,EAAW2C,GACb,OAAOA,EACLtT,KAAKqlO,sBAAsB5yN,EAAQzS,KAAKqhO,YAAclyE,GAAkBzwI,EAAM0lN,IAIlF,IAAI5L,EAAMx4N,KAAKqhO,WAAWvD,YAAYxqN,EAASb,EAAQiM,GASvD,OANK85M,IACHA,EAAMrpE,GAAiB2uE,YAAYxqN,EAASb,EAAQiM,IAK3B,WAApB0lN,GAAiC1zN,EAAS8nN,GAAsBA,EAAfA,EAAIjyN,KAAK,GACnE,EAEA8zN,GAAQp3N,UAAU0iO,mBAAqB,SAA6BC,EAAO1mL,EAAM2mL,GAC/E,IAAIC,GAAS,EAYb,OAXKn2I,EAASi2I,EAAO1mL,KACnB4mL,GAAS,EACL5mL,IACF4mL,EAAmC,MAA1B5mL,EAAKA,EAAK98C,OAAS,GAC5B88C,EAAOA,EAAKx4C,QAAQ,KAAM,IAC1Bk/N,EAAM9jO,KAAKo9C,GACP2mL,GAAUA,EAAO3mL,KACnB4mL,EAASD,EAAO3mL,MAIf4mL,CACT,EAEAzL,GAAQp3N,UAAU8iO,qBAAuB,SAA+BH,EAAO9oH,EAAQ+oH,GACrF,IAAIC,EACA/H,EAASjhH,EAAOx2G,MAAM,KAC1B,EAAG,CACD,IAAI44C,EAAO6+K,EAAOx3N,KAAK,KACvBu/N,EAAS9lO,KAAK2lO,mBAAmBC,EAAO1mL,EAAM2mL,GAC9C9H,EAAOjzL,QAAQ,EAAG,EACpB,OAASizL,EAAO37N,SAAsB,IAAX0jO,GAC3B,OAAOA,CACT,EAEAzL,GAAQp3N,UAAU+iO,oBAAsB,SAA8BJ,EAAO5wH,EAAO6wH,GAElF,IADA,IAAIC,GAAS,EACJ5jO,EAAI,EAAIA,EAAI8yG,EAAM5yG,QAAY2O,EAAU+0N,GAAU5jO,IAAK,CAC9D,IAAI46G,EAAS9H,EAAM9yG,GACfwO,EAASosG,KACXgpH,EAAS9lO,KAAK+lO,qBAAqBH,EAAO9oH,EAAQ+oH,GAEtD,CACA,OAAOC,CACT,EAEAzL,GAAQp3N,UAAUgjO,gBAAkB,SAA0B1vN,EAAOskN,GACnE,GAAc,KAAVtkN,EAAgB,MAAO,GAEtBvW,KAAKikO,oBACRjkO,KAAKikO,kBAAoB,CAAC,GAG5B,IAAI2B,EAAQ5lO,KAAKikO,kBAAkB1tN,GACnC,IAAKqvN,EAAO,CACL/K,IACHA,EAAiB76N,KAAK66N,gBAExB+K,EAAQ,GAGR,IAYI50M,EAZAgkF,EAAQ,CAACz+F,GAGb,MAAOpS,EAAQ6wG,GACbA,EAAQh1G,KAAKgmO,oBACXJ,EACA5wH,EACA6lH,GAOF7pM,EADE7sB,EAAQ02N,GACCA,EACFjqN,EAASiqN,GAEdA,EAAe,WACNA,EAAe,WAEf,KAGFA,EAKX7lH,EADEtkG,EAASsgB,GACH,CAACA,GAEDA,EAENgkF,GACFh1G,KAAKgmO,oBACHJ,EACA5wH,EACA,MAGJh1G,KAAKikO,kBAAkB1tN,GAASqvN,CAClC,CACA,OAAOA,CACT,EAEAvL,GAAQp3N,UAAUmiO,WAAa,SAC7B7K,EACAz9G,EACAjjF,EACAt3B,EACAwrC,EACAq2L,EACApoM,GAIA,IAFA,IACIqrB,EADAu+K,EAAQ5lO,KAAKimO,gBAAgBnpH,EAAQjjF,GAEhC33B,EAAI,EAAGA,EAAI0jO,EAAMxjO,OAAQF,IAAK,CACrC,IAAIshF,EAAOoiJ,EAAM1jO,GAGjB,GAFAmlD,EACErnD,KAAK4kO,aAAaphJ,EAAM+2I,EAAS/2I,GAAOjhF,EAAKwrC,EAAMq2L,EAAiBpoM,EAAM,CAACz5B,KACxEy/E,EAAO36B,GAIV,OAAOA,CAEX,CACA,OAAO,IACT,EAEAgzK,GAAQp3N,UAAUs2N,GAAK,SAAah3N,EAAK06N,EAAS1C,EAAUxsL,GACxD,IAAI5sB,EAEA1O,EAAS,GAAI3N,EAAM3C,UAAUC,OAAS,EAC1C,MAAQ0C,KAAQ,EAAI2N,EAAQ3N,GAAQ3C,UAAW2C,EAAM,GACvD,IAAKvC,EAAO,MAAO,GAEnB,IAAI+hO,EAAahM,EAAUv2N,WAAM,EAAQ0Q,GACtCzS,KAAK2iO,uBACN2B,EAAWxP,OAASqE,EAAamL,EAAWxP,SAG9C,IAAIh4G,EAASwnH,EAAWxnH,QAAUmgH,EAE9BzE,EAAMx4N,KAAKolO,WACb7K,EAAUz9G,EAAQ98G,KAAK66N,eAAgBt4N,EACvCwrC,EAAM,SAAUu2L,EAAWxP,QAE7B,GAAI90N,KAAKwkO,gBAAgBhM,GAAM,CAK7B,IAAKx4N,KAAK8uK,MAAS,MAAMp7J,MAAM,oBAC/B,OAAQyN,EAAMnhB,KAAK8uK,OAAOyyB,GAAGx/L,MAAMof,EAAK,CAAE5e,GAAMtB,OAAQwR,GAC1D,CAKE,OAJA+lN,EAAMx4N,KAAKmkO,aAAarnH,EAAQv6G,EAAKi2N,EAAKzqL,EAAMt7B,EAAQ,UACpDzS,KAAKyiO,kBAA4B,OAARjK,QAAwBzvN,IAARyvN,IAC3CA,EAAMx4N,KAAKyiO,iBAAiBjK,EAAKj2N,IAE5Bi2N,CAEX,EAEA6B,GAAQp3N,UAAUgkB,EAAI,SAAY1kB,GAC9B,IAAI4e,EAEA1O,EAAS,GAAI3N,EAAM3C,UAAUC,OAAS,EAC1C,MAAQ0C,KAAQ,EAAI2N,EAAQ3N,GAAQ3C,UAAW2C,EAAM,GACvD,OAAQqc,EAAMnhB,MAAMu5N,GAAGx3N,MAAMof,EAAK,CAAE5e,EAAKvC,KAAK88G,OAAQ98G,KAAKw5N,eAAgB,MAAOv4N,OAAQwR,GAC5F,EAEA4nN,GAAQp3N,UAAUg5B,GAAK,SAAa15B,EAAKu6G,EAAQy9G,EAAUxsL,EAAMt7B,GAC/D,IAAI+lN,EACFx4N,KAAKolO,WAAW7K,EAAUz9G,EAAQ98G,KAAK66N,eAAgBt4N,EAAKwrC,EAAM,MAAOt7B,GAC3E,GAAIzS,KAAKwkO,gBAAgBhM,GAAM,CAI7B,IAAKx4N,KAAK8uK,MAAS,MAAMp7J,MAAM,oBAC/B,OAAO1T,KAAK8uK,MAAMwqD,MAAMp3N,EAAEK,EAAKu6G,EAAQrqG,EACzC,CACE,OAAOzS,KAAKmkO,aAAarnH,EAAQv6G,EAAKi2N,EAAKzqL,EAAM,CAACt7B,GAAS,MAE/D,EAEA4nN,GAAQp3N,UAAUf,EAAI,SAAYK,EAAKu6G,EAAQrqG,GAE7C,OAAKlQ,GAEAmO,EAASosG,KACZA,EAAS98G,KAAK88G,QAGT98G,KAAKi8B,GAAG15B,EAAKu6G,EAAQ98G,KAAKw5N,eAAgB,KAAM/mN,IANpC,EAOrB,EAEA4nN,GAAQp3N,UAAU02N,IAAM,SACtBp3N,EACA06N,EACA1C,EACAxsL,EACA2rL,GAEE,IAAIv4M,EAEA1O,EAAS,GAAI3N,EAAM3C,UAAUC,OAAS,EAC1C,MAAQ0C,KAAQ,EAAI2N,EAAQ3N,GAAQ3C,UAAW2C,EAAM,GACvD,IAAKvC,EAAO,MAAO,QACJwG,IAAX2wN,IACFA,EAAS,GAGX,IAAIwM,EAAa,CAAE,MAASxM,EAAQ,EAAKA,GACrC4K,EAAahM,EAAUv2N,WAAM,EAAQ0Q,GAGzC,OAFA6xN,EAAWxP,OAASvzN,OAAOkhF,OAAOyjJ,EAAY5B,EAAWxP,QACzDriN,EAA+B,OAAtB6xN,EAAWxnH,OAAkB,CAACwnH,EAAWxP,QAAU,CAACwP,EAAWxnH,OAAQwnH,EAAWxP,QACpF90N,KAAKmmO,aAAahlN,EAAMnhB,MAAMu5N,GAAGx3N,MAAMof,EAAK,CAAE5e,EAAK06N,EAAS1C,EAAUxsL,GAAO9sC,OAAQwR,IAAWinN,EACzG,EAEAW,GAAQp3N,UAAUkjO,YAAc,SAAsB7yN,EAASomN,GAE7D,IAAKpmN,IAAY5C,EAAS4C,GAAY,OAAO,KAC7C,IAAI8yN,EAAU9yN,EAAQhN,MAAM,KAG5B,OADAozN,EAAS15N,KAAK8iO,eAAepJ,EAAQ0M,EAAQhkO,QACxCgkO,EAAQ1M,GACN0M,EAAQ1M,GAAQzxN,OADQqL,CAEjC,EAEA+mN,GAAQp3N,UAAUo6N,GAAK,SAAa96N,EAAKm3N,GACrC,IAAIv4M,EAEA1O,EAAS,GAAI3N,EAAM3C,UAAUC,OAAS,EAC1C,MAAQ0C,KAAQ,EAAI2N,EAAQ3N,GAAQ3C,UAAW2C,EAAM,GACvD,OAAQqc,EAAMnhB,MAAM25N,IAAI53N,MAAMof,EAAK,CAAE5e,EAAKvC,KAAK88G,OAAQ98G,KAAKw5N,eAAgB,KAAME,GAASz4N,OAAQwR,GACrG,EAEA4nN,GAAQp3N,UAAU42N,IAAM,SAAct3N,EAAKu6G,EAAQy9G,GAC/C,IAAIv+L,EAAO,GAAIl3B,EAAM3C,UAAUC,OAAS,EACxC,MAAQ0C,KAAQ,EAAIk3B,EAAMl3B,GAAQ3C,UAAW2C,EAAM,GAErD,IAAIm4N,EAAU3E,EAAUv2N,WAAM,EAAQi6B,GAAM8gF,QAAUA,EACtD,OAAO98G,KAAKqjO,OAAO9I,EAAS0C,GAAU16N,EACxC,EAEA83N,GAAQp3N,UAAUmzN,GAAK,SAAa7zN,EAAKu6G,GACvC,OAAO98G,KAAK65N,IAAIt3N,EAAKvC,KAAK88G,OAAQ98G,KAAKw5N,eAAgB18G,EACzD,EAEAu9G,GAAQp3N,UAAU65N,iBAAmB,SAA2BhgH,GAC9D,OAAOy7G,EAAWv4N,KAAK6uK,IAAI0rD,SAASz9G,IAAW,CAAC,EAClD,EAEAu9G,GAAQp3N,UAAUojO,iBAAmB,SAA2BvpH,EAAQxpG,GACtC,SAA5BtT,KAAKuiO,oBAA6D,UAA5BviO,KAAKuiO,oBAC7CviO,KAAKsjO,oBAAoBxmH,EAAQ98G,KAAKuiO,mBAAoBjvN,GAE5DtT,KAAK6uK,IAAI39D,KAAKlxG,KAAK6uK,IAAI0rD,SAAUz9G,EAAQxpG,EAC3C,EAEA+mN,GAAQp3N,UAAUw3N,mBAAqB,SAA6B39G,EAAQxpG,GAC1C,SAA5BtT,KAAKuiO,oBAA6D,UAA5BviO,KAAKuiO,oBAC7CviO,KAAKsjO,oBAAoBxmH,EAAQ98G,KAAKuiO,mBAAoBjvN,GAE5DtT,KAAK6uK,IAAI39D,KAAKlxG,KAAK6uK,IAAI0rD,SAAUz9G,EAAQlrC,EACF,qBAA9B5xE,KAAK6uK,IAAI0rD,SAASz9G,IAA2Bv7G,OAAOD,KAAKtB,KAAK6uK,IAAI0rD,SAASz9G,IAAS16G,OACvFb,OAAOkhF,OAAO,CAAC,EAAGziF,KAAK6uK,IAAI0rD,SAASz9G,IACpC,CAAC,EACLxpG,GAEJ,EAEA+mN,GAAQp3N,UAAUqjO,kBAAoB,SAA4BxpH,GAChE,OAAOy7G,EAAWv4N,KAAK6uK,IAAIqyD,gBAAgBpkH,IAAW,CAAC,EACzD,EAEAu9G,GAAQp3N,UAAUsjO,kBAAoB,SAA4BzpH,EAAQ5pG,GACxElT,KAAK6uK,IAAI39D,KAAKlxG,KAAK6uK,IAAIqyD,gBAAiBpkH,EAAQ5pG,GAChDlT,KAAKwmO,qBAAqB1pH,EAAQ5pG,EACpC,EAEAmnN,GAAQp3N,UAAUwjO,oBAAsB,SAA8B3pH,EAAQ5pG,GAC5ElT,KAAK6uK,IAAI39D,KAAKlxG,KAAK6uK,IAAIqyD,gBAAiBpkH,EAAQlrC,EAAM5xE,KAAK6uK,IAAIqyD,gBAAgBpkH,IAAW,CAAC,EAAG5pG,IAC9FlT,KAAKwmO,qBAAqB1pH,EAAQ5pG,EACpC,EAEAmnN,GAAQp3N,UAAUujO,qBAAuB,SAA+B1pH,EAAQ5pG,GAE9E,IAAK,IAAI3Q,KAAO2Q,EAAQ,CACtB,IAAI0lB,EAAKkkF,EAAS,KAAOv6G,EAEpBvC,KAAKgiO,oBAAoB97N,eAAe0yB,WAItC54B,KAAKgiO,oBAAoBppM,EAClC,CACF,EAEAyhM,GAAQp3N,UAAUyjO,kBAAoB,SACpCxjO,EACA45G,EACAjjF,EACAqnM,EACA3+N,EACA5C,GAMA,IAJA,IAAIs9N,EAAUngH,EACVk8F,EAAUkoB,EAAgBjE,GAE1B2I,EAAQ5lO,KAAKimO,gBAAgBnpH,EAAQjjF,GAChC33B,EAAI,EAAGA,EAAI0jO,EAAMxjO,OAAQF,IAAK,CACrC,IACIshF,EAAOoiJ,EAAM1jO,GAIjB,GAHA82M,EAAUkoB,EAAgB19I,GAC1By5I,EAAUz5I,GAENxB,EAAOg3H,KAAYh3H,EAAOg3H,EAAQz2M,IAKpC,KAEJ,CAEA,GAAIy/E,EAAOg3H,IAAYh3H,EAAOg3H,EAAQz2M,IACpC,OAAO,KAEP,IAEI0kJ,EAFA/zI,EAAS8lM,EAAQz2M,GAGrB,GAAI5C,EACFsnJ,EAAY,IAAItqC,KAAKC,eAAeqgH,EAAS17N,OAAOkhF,OAAO,CAAC,EAAGvvE,EAAQvT,QAClE,CACL,IAAIi5B,EAAKqkM,EAAU,KAAO16N,EAC1B0kJ,EAAYjnJ,KAAKgiO,oBAAoBppM,GAChCquH,IACHA,EAAYjnJ,KAAKgiO,oBAAoBppM,GAAM,IAAI+jF,KAAKC,eAAeqgH,EAAS/pN,GAEhF,CAEA,OAAO+zI,EAAU/zI,OAAOhQ,EAE5B,EAEAm3N,GAAQp3N,UAAUsmG,GAAK,SAAarmG,EAAO45G,EAAQv6G,EAAK5C,GAOtD,IAAK4C,EAAK,CACR,IAAIy6G,EAAOr9G,EAA4C,IAAIg9G,KAAKC,eAAeE,EAAQn9G,GAAlE,IAAIg9G,KAAKC,eAAeE,GAC7C,OAAOE,EAAI9pG,OAAOhQ,EACpB,CAEA,IAAIs1N,EACFx4N,KAAK0mO,kBAAkBxjO,EAAO45G,EAAQ98G,KAAK66N,eAAgB76N,KAAK+jO,sBAAuBxhO,EAAK5C,GAC9F,GAAIK,KAAKwkO,gBAAgBhM,GAAM,CAK7B,IAAKx4N,KAAK8uK,MAAS,MAAMp7J,MAAM,oBAC/B,OAAO1T,KAAK8uK,MAAMwqD,MAAM39M,EAAEzY,EAAOX,EAAKu6G,EACxC,CACE,OAAO07G,GAAO,EAElB,EAEA6B,GAAQp3N,UAAU0Y,EAAI,SAAYzY,GAC9B,IAAI84B,EAAO,GAAIl3B,EAAM3C,UAAUC,OAAS,EACxC,MAAQ0C,KAAQ,EAAIk3B,EAAMl3B,GAAQ3C,UAAW2C,EAAM,GAErD,IAAIg4G,EAAS98G,KAAK88G,OACdv6G,EAAM,KACN5C,EAAU,KAgCd,OA9BoB,IAAhBq8B,EAAK55B,QACHsO,EAASsrB,EAAK,IAChBz5B,EAAMy5B,EAAK,GACFprB,EAASorB,EAAK,MACnBA,EAAK,GAAG8gF,SACVA,EAAS9gF,EAAK,GAAG8gF,QAEf9gF,EAAK,GAAGz5B,MACVA,EAAMy5B,EAAK,GAAGz5B,MAIlB5C,EAAU4B,OAAOD,KAAK06B,EAAK,IAAI9zB,QAAO,SAAUC,EAAK5F,GACjD,IAAIM,EAEN,OAAI8sF,EAASyoI,EAAoB71N,GACxBhB,OAAOkhF,OAAO,CAAC,EAAGt6E,GAAOtF,EAAM,CAAC,EAAGA,EAAIN,GAAOy5B,EAAK,GAAGz5B,GAAMM,IAE9DsF,CACT,GAAG,OAEsB,IAAhB6zB,EAAK55B,SACVsO,EAASsrB,EAAK,MAChBz5B,EAAMy5B,EAAK,IAETtrB,EAASsrB,EAAK,MAChB8gF,EAAS9gF,EAAK,KAIXh8B,KAAKupG,GAAGrmG,EAAO45G,EAAQv6G,EAAK5C,EACrC,EAEA06N,GAAQp3N,UAAU0jO,gBAAkB,SAA0B7pH,GAC5D,OAAOy7G,EAAWv4N,KAAK6uK,IAAIuyD,cAActkH,IAAW,CAAC,EACvD,EAEAu9G,GAAQp3N,UAAU2jO,gBAAkB,SAA0B9pH,EAAQ5pG,GACpElT,KAAK6uK,IAAI39D,KAAKlxG,KAAK6uK,IAAIuyD,cAAetkH,EAAQ5pG,GAC9ClT,KAAK6mO,mBAAmB/pH,EAAQ5pG,EAClC,EAEAmnN,GAAQp3N,UAAU6jO,kBAAoB,SAA4BhqH,EAAQ5pG,GACxElT,KAAK6uK,IAAI39D,KAAKlxG,KAAK6uK,IAAIuyD,cAAetkH,EAAQlrC,EAAM5xE,KAAK6uK,IAAIuyD,cAActkH,IAAW,CAAC,EAAG5pG,IAC1FlT,KAAK6mO,mBAAmB/pH,EAAQ5pG,EAClC,EAEAmnN,GAAQp3N,UAAU4jO,mBAAqB,SAA6B/pH,EAAQ5pG,GAE1E,IAAK,IAAI3Q,KAAO2Q,EAAQ,CACtB,IAAI0lB,EAAKkkF,EAAS,KAAOv6G,EAEpBvC,KAAKiiO,kBAAkB/7N,eAAe0yB,WAIpC54B,KAAKiiO,kBAAkBrpM,EAChC,CACF,EAEAyhM,GAAQp3N,UAAU8jO,oBAAsB,SACtC7jO,EACA45G,EACAjjF,EACAunM,EACA7+N,EACA5C,GAMA,IAJA,IAAIs9N,EAAUngH,EACVk8F,EAAUooB,EAAcnE,GAExB2I,EAAQ5lO,KAAKimO,gBAAgBnpH,EAAQjjF,GAChC33B,EAAI,EAAGA,EAAI0jO,EAAMxjO,OAAQF,IAAK,CACrC,IACIshF,EAAOoiJ,EAAM1jO,GAIjB,GAHA82M,EAAUooB,EAAc59I,GACxBy5I,EAAUz5I,GAENxB,EAAOg3H,KAAYh3H,EAAOg3H,EAAQz2M,IAKpC,KAEJ,CAEA,GAAIy/E,EAAOg3H,IAAYh3H,EAAOg3H,EAAQz2M,IACpC,OAAO,KAEP,IAEI0kJ,EAFA/zI,EAAS8lM,EAAQz2M,GAGrB,GAAI5C,EAEFsnJ,EAAY,IAAItqC,KAAKgH,aAAas5G,EAAS17N,OAAOkhF,OAAO,CAAC,EAAGvvE,EAAQvT,QAChE,CACL,IAAIi5B,EAAKqkM,EAAU,KAAO16N,EAC1B0kJ,EAAYjnJ,KAAKiiO,kBAAkBrpM,GAC9BquH,IACHA,EAAYjnJ,KAAKiiO,kBAAkBrpM,GAAM,IAAI+jF,KAAKgH,aAAas5G,EAAS/pN,GAE5E,CACA,OAAO+zI,CAEX,EAEAozE,GAAQp3N,UAAUqmG,GAAK,SAAapmG,EAAO45G,EAAQv6G,EAAK5C,GAEtD,IAAK06N,GAAQoG,eAAeuG,aAI1B,MAAO,GAGT,IAAKzkO,EAAK,CACR,IAAImhH,EAAM/jH,EAA0C,IAAIg9G,KAAKgH,aAAa7G,EAAQn9G,GAA9D,IAAIg9G,KAAKgH,aAAa7G,GAC1C,OAAO4G,EAAGxwG,OAAOhQ,EACnB,CAEA,IAAI+jJ,EAAYjnJ,KAAK+mO,oBAAoB7jO,EAAO45G,EAAQ98G,KAAK66N,eAAgB76N,KAAKgkO,oBAAqBzhO,EAAK5C,GACxG64N,EAAMvxE,GAAaA,EAAU/zI,OAAOhQ,GACxC,GAAIlD,KAAKwkO,gBAAgBhM,GAAM,CAK7B,IAAKx4N,KAAK8uK,MAAS,MAAMp7J,MAAM,oBAC/B,OAAO1T,KAAK8uK,MAAMwqD,MAAM70N,EAAEvB,EAAO3B,OAAOkhF,OAAO,CAAC,EAAG,CAAElgF,IAAKA,EAAKu6G,OAAQA,GAAUn9G,GACnF,CACE,OAAO64N,GAAO,EAElB,EAEA6B,GAAQp3N,UAAUwB,EAAI,SAAYvB,GAC9B,IAAI84B,EAAO,GAAIl3B,EAAM3C,UAAUC,OAAS,EACxC,MAAQ0C,KAAQ,EAAIk3B,EAAMl3B,GAAQ3C,UAAW2C,EAAM,GAErD,IAAIg4G,EAAS98G,KAAK88G,OACdv6G,EAAM,KACN5C,EAAU,KAgCd,OA9BoB,IAAhBq8B,EAAK55B,OACHsO,EAASsrB,EAAK,IAChBz5B,EAAMy5B,EAAK,GACFprB,EAASorB,EAAK,MACnBA,EAAK,GAAG8gF,SACVA,EAAS9gF,EAAK,GAAG8gF,QAEf9gF,EAAK,GAAGz5B,MACVA,EAAMy5B,EAAK,GAAGz5B,KAIhB5C,EAAU4B,OAAOD,KAAK06B,EAAK,IAAI9zB,QAAO,SAAUC,EAAK5F,GACjD,IAAIM,EAEN,OAAI8sF,EAASwoI,EAAkB51N,GACtBhB,OAAOkhF,OAAO,CAAC,EAAGt6E,GAAOtF,EAAM,CAAC,EAAGA,EAAIN,GAAOy5B,EAAK,GAAGz5B,GAAMM,IAE9DsF,CACT,GAAG,OAEoB,IAAhB6zB,EAAK55B,SACVsO,EAASsrB,EAAK,MAChBz5B,EAAMy5B,EAAK,IAETtrB,EAASsrB,EAAK,MAChB8gF,EAAS9gF,EAAK,KAIXh8B,KAAKspG,GAAGpmG,EAAO45G,EAAQv6G,EAAK5C,EACrC,EAEA06N,GAAQp3N,UAAUu5N,KAAO,SAAet5N,EAAO45G,EAAQv6G,EAAK5C,GAE1D,IAAK06N,GAAQoG,eAAeuG,aAI1B,MAAO,GAGT,IAAKzkO,EAAK,CACR,IAAImhH,EAAM/jH,EAA0C,IAAIg9G,KAAKgH,aAAa7G,EAAQn9G,GAA9D,IAAIg9G,KAAKgH,aAAa7G,GAC1C,OAAO4G,EAAGujH,cAAc/jO,EAC1B,CAEA,IAAI+jJ,EAAYjnJ,KAAK+mO,oBAAoB7jO,EAAO45G,EAAQ98G,KAAK66N,eAAgB76N,KAAKgkO,oBAAqBzhO,EAAK5C,GACxG64N,EAAMvxE,GAAaA,EAAUggF,cAAc/jO,GAC/C,GAAIlD,KAAKwkO,gBAAgBhM,GAAM,CAK7B,IAAKx4N,KAAK8uK,MAAS,MAAMp7J,MAAM,oBAC/B,OAAO1T,KAAK8uK,MAAMwqD,MAAMkD,KAAKt5N,EAAO45G,EAAQv6G,EAAK5C,EACnD,CACE,OAAO64N,GAAO,EAElB,EAEAj3N,OAAOmB,iBAAkB23N,GAAQp3N,UAAWugO,IAI5CjiO,OAAOoB,eAAe03N,GAAS,iBAAkB,CAC/CroN,IAAK,WACH,IAAKyuN,GAAgB,CACnB,IAAIyG,EAA8B,qBAATvqH,KACzB8jH,GAAiB,CACf0G,eAAgBD,GAA8C,qBAAxBvqH,KAAKC,eAC3CoqH,aAAcE,GAA4C,qBAAtBvqH,KAAKgH,aAE7C,CAEA,OAAO88G,EACT,IAGFpG,GAAQp1I,QAAUA,EAClBo1I,GAAQ/hM,QAAU,SAElB,M,+BC/vEA,SAA2CqmE,EAAMkuH,GAE/CtnN,EAAOrE,QAAU2rN,GAOlB,CATD,CASG7sN,GAAM,IACO,MACN,aAEA,IAAI62N,EAAsB,CAAC,EAI3B,MAECA,EAAoBl7M,EAAI,CAACza,EAASkuF,KACjC,IAAI,IAAI7sF,KAAO6sF,EACXynI,EAAoBtyN,EAAE6qF,EAAY7sF,KAASs0N,EAAoBtyN,EAAErD,EAASqB,IAC5EhB,OAAOoB,eAAezB,EAASqB,EAAK,CAAEV,YAAY,EAAMmQ,IAAKo9E,EAAW7sF,IAE1E,CAED,EATD,GAYA,MACCs0N,EAAoBtyN,EAAI,CAAC1B,EAAKwF,IAAU9G,OAAO0B,UAAUiD,eAAe7F,KAAKwC,EAAKwF,EAClF,EAFD,GAKV,IAAI2uN,EAAsB,CAAC,EAG3BH,EAAoBl7M,EAAEq7M,EAAqB,CACzC,QAAWxqN,IAAA,IAIb,IAAIrN,EAAS,WACX,IAAI0vK,EAAM7uK,KACRi5M,EAAKpqC,EAAIpyJ,MAAMw8L,GACjB,OAAOA,EAAG,aAAc,CACtB3vM,MAAO,CACL,KAAQulK,EAAIp8C,aAEb,CAACwmF,EAAG,MAAO,CACZj0H,WAAY,CAAC,CACXpgF,KAAM,OACNwiO,QAAS,SACTlkO,MAAO2rK,EAAI/lD,SACXu+G,WAAY,aAEd9hI,YAAa,wBACb/7F,MAAO,CACL,eAAgBqlK,EAAIy4D,YAEtBx/N,MAAO,CACLw6I,OAAQusB,EAAIvsB,QAEdh5I,MAAO,CACL,SAAY,IACZ,YAAaulK,EAAI/lD,SACjB,aAAc,YAEf,CAACmwF,EAAG,MAAO,CACZ1zG,YAAa,iBACbz9F,MAAO+mK,EAAI04D,QACXl3I,GAAI,CACF,MAAS,SAAUm3I,GAEjB,OADAA,EAAOjjI,iBACAsqE,EAAIptJ,OAAO1f,MAAM,KAAMI,UAChC,KAEA82M,EAAG,MAAO,CACZ1zG,YAAa,YACZ,CAACspE,EAAI0qD,GAAG,UAAW1qD,EAAI0qD,GAAG,WAAW,WACtC,MAAO,CAACtgB,EAAGpqC,EAAI44D,OAAQ,CACrB19N,IAAK,YACLT,MAAO,CACL,MAASulK,EAAIhjD,MACb,MAASgjD,EAAI1wE,MACb,OAAU0wE,EAAI3wE,UAGpB,IAAI2wE,EAAI0qD,GAAG,UAAW,MACxB,EACIn6N,EAAkB,GAGtB,MAAM6vN,EAAgBjgI,IACK,qBAAdA,EAAGvhC,OACZuhC,EAAGvhC,SAEHuhC,EAAG2N,WAAWY,YAAYvO,EAC5B,EAEIp2E,EAAYA,IACS,qBAAXzT,OAEVk8E,EAAczoE,IAAczT,OAAOk8E,YAAc9/E,OAGpBmmO,EAAkB,CACnD/sH,OAAAA,GACM36G,KAAKmmL,cACP9qG,SAASiB,iBAAiB,UAAWt8E,KAAK2nO,QAE9C,EACAjtI,QAAS,CAMPitI,OAAAA,CAAQj+K,GAEN,IAAK1pD,KAAK8oH,SAAU,OACpB,GAEAp/D,EAAMznD,SAAWjC,KAAK60G,KAEtB70G,KAAK60G,IAAI/W,SAASp0C,EAAMznD,QAAS,OAGjC,IAAI9B,EAASH,KAAK4+J,UAAY5+J,KAAK4+J,UAAY5+J,KAAKsnO,WAAa,KAAOtnO,KAAK60G,IAAInY,eAGjF18F,KAAKsnO,YAGLnnO,GAAUA,EAAO29F,SAASp0C,EAAMznD,WAC9BynD,EAAM66C,iBACNvkG,KAAK60G,IAAInT,QAEb,GAEFwG,aAAAA,GACE7sB,SAASkB,oBAAoB,UAAWv8E,KAAK2nO,QAC/C,GAGF,IAAIC,EAA8C,WAChD,IAAI/4D,EAAM7uK,KACRi5M,EAAKpqC,EAAIpyJ,MAAMw8L,GACjB,OAAOA,EAAG,MAAO,CACf3vM,MAAO,CACL,QAAW,YACX,MAAS,6BACT,MAASulK,EAAI1wE,MACb,OAAU0wE,EAAI3wE,OACd,OAAU2wE,EAAIhjD,QAEf,CAACotF,EAAG,IAAK,CACV3vM,MAAO,CACL,KAAQ,OACR,YAAa,YAEd,CAAC2vM,EAAG,IAAK,CACV3vM,MAAO,CACL,UAAa,iBACb,eAAgB,MAEjB,CAAC2vM,EAAG,SAAU,CACf3vM,MAAO,CACL,iBAAkB,MAClB,GAAM,KACN,GAAM,KACN,EAAK,QAEL2vM,EAAG,OAAQ,CACb3vM,MAAO,CACL,EAAK,gCAEN,CAAC2vM,EAAG,mBAAoB,CACzB3vM,MAAO,CACL,cAAiB,YACjB,KAAQ,SACR,KAAQ,UACR,GAAM,YACN,IAAO,OACP,YAAe,iBAEd,QACP,EACIu+N,EAAuD,GAG9B,MAAMC,EAAmC,CACpEljO,KAAM,UACNkE,MAAO,CACL+iH,MAAO,CACLv/G,KAAMG,OACND,QAAS,QAEX0xF,OAAQ,CACN5xF,KAAMO,OACNL,QAAS,IAEX2xF,MAAO,CACL7xF,KAAMO,OACNL,QAAS,MAKqBu7N,EAA2CD,EAQ/E,SAAS7oO,EACPC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GAGA,IAoBIC,EApBAC,EACuB,oBAAlBT,EAA+BA,EAAcS,QAAUT,EAuDhE,GApDIC,IACFQ,EAAQR,OAASA,EACjBQ,EAAQP,gBAAkBA,EAC1BO,EAAQC,WAAY,GAIlBP,IACFM,EAAQE,YAAa,GAInBN,IACFI,EAAQG,SAAW,UAAYP,GAI7BC,GAEFE,EAAO,SAAUK,GAEfA,EACEA,GACCC,KAAKC,QAAUD,KAAKC,OAAOC,YAC3BF,KAAKG,QAAUH,KAAKG,OAAOF,QAAUD,KAAKG,OAAOF,OAAOC,WAEtDH,GAA0C,qBAAxBK,sBACrBL,EAAUK,qBAGRd,GACFA,EAAae,KAAKL,KAAMD,GAGtBA,GAAWA,EAAQO,uBACrBP,EAAQO,sBAAsBC,IAAIf,EAEtC,EAGAG,EAAQa,aAAed,GACdJ,IACTI,EAAOD,EACH,WACEH,EAAae,KACXL,MACCL,EAAQE,WAAaG,KAAKG,OAASH,MAAMS,MAAMC,SAASC,WAE7D,EACArB,GAGFI,EACF,GAAIC,EAAQE,WAAY,CAGtBF,EAAQiB,cAAgBlB,EAExB,IAAImB,EAAiBlB,EAAQR,OAC7BQ,EAAQR,OAAS,SAAkC2B,EAAGf,GAEpD,OADAL,EAAKW,KAAKN,GACHc,EAAeC,EAAGf,EAC3B,CACF,KAAO,CAEL,IAAIgB,EAAWpB,EAAQqB,aACvBrB,EAAQqB,aAAeD,EAAW,GAAGE,OAAOF,EAAUrB,GAAQ,CAACA,EACjE,CAGF,MAAO,CACLwB,QAAShC,EACTS,QAASA,EAEb,CAUA,IAAI+lF,EAAYzmF,EACd8oO,EACAH,EACAC,GACA,EACA,KACA,KACA,MAI2B,MAAM/3E,EAAWpqE,EAAUxkF,QAExD,IAAI8mO,EAA2C,WAC7C,IAAIn5D,EAAM7uK,KACRi5M,EAAKpqC,EAAIpyJ,MAAMw8L,GACjB,OAAOA,EAAG,MAAO,CACf3vM,MAAO,CACL,QAAW,aACX,MAAS,6BACT,KAAQulK,EAAIhjD,MACZ,MAASgjD,EAAI1wE,MACb,OAAU0wE,EAAI3wE,SAEf,CAAC+6G,EAAG,SAAU,CACf3vM,MAAO,CACL,GAAM,KACN,GAAM,KACN,EAAK,OAEN,CAAC2vM,EAAG,UAAW,CAChB3vM,MAAO,CACL,cAAiB,IACjB,KAAQ,KACR,GAAM,KACN,MAAS,KACT,IAAO,OACP,OAAU,UACV,SAAY,SACZ,YAAe,gBAEf2vM,EAAG,UAAW,CAChB3vM,MAAO,CACL,cAAiB,eACjB,KAAQ,IACR,GAAM,IACN,MAAS,KACT,IAAO,OACP,OAAU,SACV,SAAY,SACZ,YAAe,kBAEb2vM,EAAG,SAAU,CACjB3vM,MAAO,CACL,GAAM,KACN,GAAM,KACN,EAAK,IACL,eAAgB,QAEjB,CAAC2vM,EAAG,UAAW,CAChB3vM,MAAO,CACL,cAAiB,IACjB,KAAQ,IACR,GAAM,IACN,MAAS,KACT,IAAO,OACP,OAAU,SACV,SAAY,SACZ,YAAe,gBAEf2vM,EAAG,UAAW,CAChB3vM,MAAO,CACL,cAAiB,eACjB,KAAQ,MACR,GAAM,MACN,MAAS,KACT,IAAO,OACP,OAAU,UACV,SAAY,SACZ,YAAe,kBAEb2vM,EAAG,SAAU,CACjB3vM,MAAO,CACL,GAAM,MACN,GAAM,KACN,EAAK,OAEN,CAAC2vM,EAAG,UAAW,CAChB3vM,MAAO,CACL,cAAiB,IACjB,KAAQ,KACR,GAAM,KACN,MAAS,KACT,IAAO,OACP,OAAU,UACV,SAAY,SACZ,YAAe,gBAEf2vM,EAAG,UAAW,CAChB3vM,MAAO,CACL,cAAiB,eACjB,KAAQ,IACR,GAAM,IACN,MAAS,KACT,IAAO,OACP,OAAU,SACV,SAAY,SACZ,YAAe,mBAGrB,EACI2+N,EAAoD,GAG3B,MAAMC,EAAgC,CACjEtjO,KAAM,OACNkE,MAAO,CACL+iH,MAAO,CACLv/G,KAAMG,OACND,QAAS,QAEX0xF,OAAQ,CACN5xF,KAAMO,OACNL,QAAS,KAEX2xF,MAAO,CACL7xF,KAAMO,OACNL,QAAS,MAKqB27N,EAAwCD,EAS5E,IAAIE,EAAiBnpO,EACnBkpO,EACAH,EACAC,GACA,EACA,KACA,KACA,MAI2B,MAAMI,EAAQD,EAAelnO,QAE1D,IAAIonO,EAA2C,WAC7C,IAAIz5D,EAAM7uK,KACRi5M,EAAKpqC,EAAIpyJ,MAAMw8L,GACjB,OAAOA,EAAG,MAAO,CACf3vM,MAAO,CACL,MAAS,6BACT,QAAW,YACX,OAAUulK,EAAI3wE,OACd,MAAS2wE,EAAI1wE,MACb,KAAQ0wE,EAAIhjD,QAEb,CAACotF,EAAG,OAAQ,CACb3vM,MAAO,CACL,EAAK,IACL,EAAK,KACL,MAAS,IACT,OAAU,MAEX,CAAC2vM,EAAG,UAAW,CAChB3vM,MAAO,CACL,cAAiB,SACjB,cAAiB,MACjB,OAAU,SACV,MAAS,KACT,IAAO,OACP,YAAe,gBAEf2vM,EAAG,UAAW,CAChB3vM,MAAO,CACL,cAAiB,IACjB,cAAiB,MACjB,OAAU,YACV,MAAS,KACT,IAAO,OACP,YAAe,kBAEb2vM,EAAG,OAAQ,CACf3vM,MAAO,CACL,EAAK,KACL,EAAK,KACL,MAAS,IACT,OAAU,MAEX,CAAC2vM,EAAG,UAAW,CAChB3vM,MAAO,CACL,cAAiB,SACjB,cAAiB,MACjB,OAAU,SACV,MAAS,QACT,IAAO,OACP,YAAe,gBAEf2vM,EAAG,UAAW,CAChB3vM,MAAO,CACL,cAAiB,IACjB,cAAiB,MACjB,OAAU,YACV,MAAS,QACT,IAAO,OACP,YAAe,kBAEb2vM,EAAG,OAAQ,CACf3vM,MAAO,CACL,EAAK,KACL,EAAK,KACL,MAAS,IACT,OAAU,MAEX,CAAC2vM,EAAG,UAAW,CAChB3vM,MAAO,CACL,cAAiB,SACjB,cAAiB,MACjB,OAAU,SACV,MAAS,OACT,IAAO,OACP,YAAe,gBAEf2vM,EAAG,UAAW,CAChB3vM,MAAO,CACL,cAAiB,IACjB,cAAiB,MACjB,OAAU,YACV,MAAS,OACT,IAAO,OACP,YAAe,mBAGrB,EACIi/N,EAAoD,GAG3B,MAAMC,EAAgC,CACjE5jO,KAAM,OACNkE,MAAO,CACL+iH,MAAO,CACLv/G,KAAMG,OACND,QAAS,QAEX0xF,OAAQ,CACN5xF,KAAMO,OACNL,QAAS,IAEX2xF,MAAO,CACL7xF,KAAMO,OACNL,QAAS,MAKqBi8N,EAAwCD,EAS5E,IAAIE,EAAiBzpO,EACnBwpO,EACAH,EACAC,GACA,EACA,KACA,KACA,MAI2B,MAAMI,EAAQD,EAAexnO,QAKvB0nO,EAAW,CAC5CC,QAAS/4E,EACTg5E,KAAMT,EACNU,KAAMJ,GAM2BK,EAAqC,CACtEpkO,KAAM,cACNuE,OAAQ,CAACu+N,GACT5+N,MAAO,CACL6qG,OAAQpnG,QACR08N,aAAc18N,QACdqyJ,UAAW,CAACr9J,OAAQic,SAAU6jE,GAC9BimJ,WAAY,CACVh7N,KAAMC,QACNC,SAAS,GAEX25K,aAAc,CACZ75K,KAAMC,QACNC,SAAS,GAEX08N,WAAY,CACV58N,KAAMC,QACNC,SAAS,GAEXimH,WAAY,CACVnmH,KAAMG,OACND,QAAS,QAKX28N,UAAW58N,QAIX89J,SAAU,CACR/9J,KAAMkR,SACNhR,QAASA,QAEXq/G,MAAOp/G,OACPgmK,gBAAiBhmK,OACjBm1F,KAAM,CACJt1F,KAAMG,OACND,QAAS,OAEXulK,QAASllK,OACTsxF,MAAOtxF,OACPqxF,OAAQrxF,OACRy1I,OAAQz1I,OACR46N,OAAQ,CACNn7N,KAAMG,OACND,QAAS,YAGbxD,IAAAA,GACE,MAAO,CAEL8/G,SAAU9oH,KAAK2zG,OAEnB,EACA5uB,WAAY6jJ,EACZ7lE,WAAAA,GAEM/iK,KAAKipO,eACHjpO,KAAK4+J,WACP5+J,KAAKsnO,YAAa,EAClBtnO,KAAK4+J,UAAUuE,YAAYnjK,KAAK60G,MAEhCx5B,SAASloC,KAAKgwH,YAAYnjK,KAAK60G,KAGrC,EACA8F,OAAAA,GAEM36G,KAAKipO,eACPjpO,KAAK8oH,UAAW,GAElBztC,SAASiB,iBAAiB,QAASt8E,KAAKopO,SAC1C,EACA1uI,QAAS,CAKPj5E,MAAAA,GACOzhB,KAAKmpO,WAAcnpO,KAAK8oH,WAC7B9oH,KAAKyqI,OACLzqI,KAAKqqK,SAAStoK,MAAM,KAAMI,WAC5B,EAIAsoI,IAAAA,GACEzqI,KAAK8nG,MAAM,QACX9nG,KAAK8nG,MAAM,iBAAiB,GAGxB9nG,KAAKipO,eACPjpO,KAAK8oH,UAAW,EAChB9mG,YAAW,KACThiB,KAAKsjK,WACL2rD,EAAcjvN,KAAK60G,IAAI,GACtB,KAEP,EACAw0H,aAAAA,GACMrpO,KAAKsnO,YAActnO,KAAKkpO,YAC1B7tJ,SAASloC,KAAK5oC,UAAUhK,IAAI,YAEhC,EACA+oO,YAAAA,GACMtpO,KAAKsnO,YAActnO,KAAKkpO,YAC1B7tJ,SAASloC,KAAK5oC,UAAUkjD,OAAO,YAEnC,EAMA27K,QAAAA,CAAS1/K,GAEe,KAAlBA,EAAM0sD,SAAgBp2G,KAAKyhB,QACjC,GAEFmmF,MAAO,CACL+L,MAAAA,CAAOzwG,GACLlD,KAAK8oH,SAAW5lH,CAClB,EACA4lH,QAAAA,CAAS5lH,GACHA,EACFlD,KAAKqpO,gBAELrpO,KAAKspO,cAET,GAEF3/H,SAAU,CACR49H,OAAAA,GACE,MAAO,CACL50G,WAAY3yH,KAAKyyK,gBACjBV,QAAS/xK,KAAK+xK,QACdW,eAAgB,QAAQ1yK,KAAK4hG,QAEjC,GAEFsG,aAAAA,GACE7sB,SAASkB,oBAAoB,QAASv8E,KAAKopO,SAC7C,GAGkCG,EAAwCP,EAS5E,IAAIQ,EAAsBvqO,EACxBsqO,EACApqO,EACAC,GACA,EACA,KACA,KACA,MAI2B,MAAM+iK,EAAaqnE,EAAoBtoO,QAG9DuoO,EAAM,SAAUhlJ,GACpB,IAAIilJ,EAAcvnO,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnFwnO,EAAcxnO,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACvF,MAAO,CACLilG,IAAAA,GACE,IAAIt+F,EAAQ3G,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAKunO,EAC5Ej6I,EAAQttF,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAKwnO,EAChF,MAAMC,EAAa,CACjBX,cAAc,GAEV7lE,EAAY7hK,OAAOkhF,OAAO,CAAC,EAAGinJ,EAAa5gO,EAAO8gO,GAClDzqJ,EAAW,IAAKsF,EAAIc,OAAO48E,GAAhB,CAA4B,CAC3CnzE,GAAI3T,SAASnuE,cAAc,OAC3Bk2J,cAEIymE,EAActoO,OAAOkhF,OAAO,CAAC,EAAGknJ,EAAal6I,GAInD,OAHAluF,OAAOD,KAAKuoO,GAAa9hO,KAAInD,IAC3Bu6E,EAASkb,OAAOz1F,GAAQilO,EAAYjlO,EAAK,IAEpCu6E,CACT,EAEJ,EACmC2qJ,EAAUL,EAKvCvR,EAAS,SAAUzzI,GACvB,IAAI37E,EAAQ3G,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC7EstF,EAAQttF,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC7E4nO,EAAMD,EAAOrlJ,EAAK37E,EAAO2mF,GAC7BhL,EAAIulJ,SAAWD,EACftlJ,EAAIxhF,UAAU+mO,SAAWD,CAC3B,EACA5nE,EAAUl9E,QAAUizI,EACS,MAAMt5M,EAAOujJ,EAEhC,OADV60D,EAAsBA,EAAoB,WACzBA,CACP,EA3yBM,I,2HCEZ1+L,EAAU,QAEd,SAAS11B,EAAQC,GAaf,OATED,EADoB,oBAAXE,QAAoD,kBAApBA,OAAOC,SACtC,SAAUF,GAClB,cAAcA,CAChB,EAEU,SAAUA,GAClB,OAAOA,GAAyB,oBAAXC,QAAyBD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOG,UAAY,gBAAkBJ,CAC3H,EAGKD,EAAQC,EACjB,CAEA,SAASL,EAAgBK,EAAKN,EAAKW,GAYjC,OAXIX,KAAOM,EACTtB,OAAOoB,eAAeE,EAAKN,EAAK,CAC9BW,MAAOA,EACPrB,YAAY,EACZsB,cAAc,EACdC,UAAU,IAGZP,EAAIN,GAAOW,EAGNL,CACT,CAEA,SAAS1B,EAAQC,EAAQC,GACvB,IAAIC,EAAOC,OAAOD,KAAKF,GAEvB,GAAIG,OAAOC,sBAAuB,CAChC,IAAIC,EAAUF,OAAOC,sBAAsBJ,GACvCC,IAAgBI,EAAUA,EAAQC,QAAO,SAAUC,GACrD,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UACtD,KACAP,EAAKQ,KAAKC,MAAMT,EAAMG,EACxB,CAEA,OAAOH,CACT,CAEA,SAASU,EAAeC,GACtB,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAAyB,MAAhBF,UAAUD,GAAaC,UAAUD,GAAK,CAAC,EAEhDA,EAAI,EACNf,EAAQI,OAAOc,IAAS,GAAMC,SAAQ,SAAUC,GAC9CC,EAAgBP,EAAQM,EAAKF,EAAOE,GACtC,IACShB,OAAOkB,0BAChBlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAEjElB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GACxChB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAC7E,GAEJ,CAEA,OAAON,CACT,CAEA,SAAS2B,EAAmBC,GAC1B,OAAOC,EAAmBD,IAAQE,EAAiBF,IAAQG,EAA4BH,IAAQI,GACjG,CAEA,SAASH,EAAmBD,GAC1B,GAAIK,MAAMC,QAAQN,GAAM,OAAOO,EAAkBP,EACnD,CAEA,SAASE,EAAiBM,GACxB,GAAsB,qBAAXvB,QAA0BA,OAAOC,YAAYxB,OAAO8C,GAAO,OAAOH,MAAMI,KAAKD,EAC1F,CAEA,SAASL,EAA4BO,EAAGC,GACtC,GAAKD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAOH,EAAkBG,EAAGC,GACvD,IAAIC,EAAIlD,OAAO0B,UAAUyB,SAASrE,KAAKkE,GAAGI,MAAM,GAAI,GAEpD,MADU,WAANF,GAAkBF,EAAEvB,cAAayB,EAAIF,EAAEvB,YAAY4B,MAC7C,QAANH,GAAqB,QAANA,EAAoBP,MAAMI,KAAKC,GACxC,cAANE,GAAqB,2CAA2CI,KAAKJ,GAAWL,EAAkBG,EAAGC,QAAzG,CALc,CAMhB,CAEA,SAASJ,EAAkBP,EAAKiB,IACnB,MAAPA,GAAeA,EAAMjB,EAAIzB,UAAQ0C,EAAMjB,EAAIzB,QAE/C,IAAK,IAAIF,EAAI,EAAG6C,EAAO,IAAIb,MAAMY,GAAM5C,EAAI4C,EAAK5C,IAAK6C,EAAK7C,GAAK2B,EAAI3B,GAEnE,OAAO6C,CACT,CAEA,SAASd,IACP,MAAM,IAAIe,UAAU,uIACtB,CAEA,SAASilO,EAA2B1lO,EAAG2lO,GACrC,IAAIC,EAEJ,GAAsB,qBAAXrnO,QAAgD,MAAtByB,EAAEzB,OAAOC,UAAmB,CAC/D,GAAImB,MAAMC,QAAQI,KAAO4lO,EAAKnmO,EAA4BO,KAAO2lO,GAAkB3lO,GAAyB,kBAAbA,EAAEnC,OAAqB,CAChH+nO,IAAI5lO,EAAI4lO,GACZ,IAAIjoO,EAAI,EAEJw1M,EAAI,WAAa,EAErB,MAAO,CACL1vM,EAAG0vM,EACHjzM,EAAG,WACD,OAAIvC,GAAKqC,EAAEnC,OAAe,CACxBgY,MAAM,GAED,CACLA,MAAM,EACNlX,MAAOqB,EAAErC,KAEb,EACA+H,EAAG,SAAUA,GACX,MAAMA,CACR,EACAkkF,EAAGupH,EAEP,CAEA,MAAM,IAAI1yM,UAAU,wIACtB,CAEA,IAEIkV,EAFAkwN,GAAmB,EACnBC,GAAS,EAEb,MAAO,CACLriO,EAAG,WACDmiO,EAAK5lO,EAAEzB,OAAOC,WAChB,EACA0B,EAAG,WACD,IAAI++E,EAAO2mJ,EAAGpwN,OAEd,OADAqwN,EAAmB5mJ,EAAKppE,KACjBopE,CACT,EACAv5E,EAAG,SAAUA,GACXogO,GAAS,EACTnwN,EAAMjQ,CACR,EACAkkF,EAAG,WACD,IACOi8I,GAAiC,MAAbD,EAAG5vN,QAAgB4vN,EAAG5vN,QACjD,CAAE,QACA,GAAI8vN,EAAQ,MAAMnwN,CACpB,CACF,EAEJ,CAOA,SAAS/V,EAAQkM,GACf,OAAOnM,MAAMC,QAAQkM,EACvB,CACA,SAASF,EAAYE,GACnB,MAAsB,qBAARA,CAChB,CACA,SAASO,EAASP,GAChB,MAAwB,WAAjBzN,EAAQyN,EACjB,CACA,SAASi6N,EAAaj6N,GACpB,MAAwB,WAAjBzN,EAAQyN,IAA6B,OAARA,CACtC,CACA,SAASM,EAAWN,GAClB,MAAsB,oBAARA,CAChB,CACA,SAASK,EAASL,GAChB,MAAsB,kBAARA,CAChB,CAEA,SAASk6N,IACP,IACE,OAAQp6N,EAAYhL,OACtB,CAAE,MAAO8E,GACP,OAAO,CACT,CACF,CACA,IAAIugO,EAAkBD,IAElBE,EAAUD,EAAkBrlO,OAASC,EAAAA,EAErCgF,EAAUqgO,EAAQrgO,SAAW,CAAC,EAClC,SAASu5E,EAAK2X,GAEPlxF,GAAYA,EAAQu5E,MAIzBv5E,EAAQu5E,KAAK2X,EACf,CACA,IAAIovI,EAA0B,WAC5B,OAAO/mJ,EAAK,uDACd,EAMIgnJ,EAAc,CAChB19N,WAAOlE,EACP6hO,WAAY,GACZC,cAAe,KACfC,UAAW,CAAC,EACZC,UAAW,CAAC,EACZC,UAAW,CAAC,EACZpnE,KAAM,GACN/tD,KAAM,GACNm/G,KAAM,GACNltN,MAAO,GACPmjO,OAAQ,GACRC,SAAU,GACVC,+BAAgC,GAChCC,sCAAuC,CAAC,GAEtCC,EAAgB,WAGhBC,EAAU,WAGVC,EAAY,gBAGZC,EAAe,gCAKfC,EAAe,OAEfC,EAAsB,WAEtBC,EAAiB,UAEjBC,EAAW,MAEXC,EAAe,GAEfC,GAAkB,EAClBpwB,EAAiB,CACnB4vB,QAASA,EACTC,UAAWA,EACXC,aAAcA,EACdC,aAAcA,EACdE,eAAgBA,EAChBD,oBAAqBA,EACrBI,gBAAiBA,EACjBD,aAAcA,EACdD,SAAUA,GAGRG,EAAkBxqO,OAAOD,KAAKqpO,GAE9BqB,EAAoB,CAACD,EAAgB,IAAKA,EAAgB,KAE1DE,EAAqB,CAACF,EAAgB,GAAIA,EAAgB,GAAI,WAAW9qO,OAAO+qO,GAEhFE,EAAwB,CAACH,EAAgB,GAAIA,EAAgB,GAAIA,EAAgB,IAEjFI,EAAuB,CAAC,OAAQ,QAAS,UAGzCC,EAAoB,CAAC,OAAQ,OAAQ,QAErCC,EAAuB,CAAC,WAAY,SAAU,SAE9CC,EAA6B,CAAC,YAAa,UAAW,QACtDC,EAAgB,CAAC,OAAQ,OAAQ,YAEjCC,EAAuB,CAAC,OAAQ,SAEhCC,EAAwB,CAAC,kBAAmB,MAAO,kBAAmB,QAAS,YAAa,WAAY,UAAW,UAAW,WAAY,UAAW,UAAW,iBAAkB,eAAgB,kBAAmB,QAAS,WAAY,UAAW,iBAAkB,SAAU,gBAAiB,QAAS,QAAS,YAAa,OAAQ,WAAY,QAAS,SAAU,WAAY,UAAW,aAAc,SAAU,OAAQ,cAAe,WAAY,WAAY,WAAY,SAAU,WAAY,WAAY,WAAY,YAAa,gBAAiB,WAE9hBC,EAAU,KACd,SAASC,EAAcxsM,EAAMysM,EAAQC,GACnC,IAAIhB,EAAe1rM,EAAK0rM,aAKnBe,EAAOvB,GAAeyB,cAAgBF,EAAOvB,GAAe0B,cAA6B,YAAbF,IAC/ED,EAAOvB,GAAeyB,YAAc,MAGlCF,EAAOvB,GAAeyB,cAAgBF,EAAOvB,GAAe2B,SAG9DC,IAAY,WACEL,EAAOM,QAAQxrN,SAC7B,GAAGmqN,EAEP,CASA,SAASoB,GAAY7lO,EAAUib,GAG7B,GAFAA,OAAsBtZ,IAAZsZ,EAAwB,GAAKA,EAElCA,EASL,OAJAH,aAAawqN,GACbA,EAAU1qN,YAAW,WACnB5a,GACF,GAAGib,GACIqqN,EARLtlO,GASJ,CAUA,SAAS27H,GAAKnpC,EAAOuzI,EAAWx7N,GAC9B,GAAMzN,MAAMjB,UAAU8/H,KAWtB,OAAOnpC,EAAMmpC,KAAKoqG,EAAWx7N,GAT3B,IAAK,IAAIoJ,EAAM,EAAGA,EAAM6+E,EAAMx3F,OAAQ2Y,IACpC,GAAIoyN,EAAU9sO,KAAKsR,EAASioF,EAAM7+E,GAAMA,EAAK6+E,GAC3C,OAAOA,EAAM7+E,EAQrB,CACA,SAASkoH,GAAUrpC,EAAOuzI,EAAWx7N,GACnC,IAAMzN,MAAMjB,UAAUggI,UAAW,CAE/B,IAAK,IAAIloH,EAAM,EAAGA,EAAM6+E,EAAMx3F,OAAQ2Y,IACpC,GAAIoyN,EAAU9sO,KAAKsR,EAASioF,EAAM7+E,GAAMA,EAAK6+E,GAC3C,OAAO7+E,EAIX,OAAQ,CACV,CAEA,OAAO6+E,EAAMqpC,UAAUkqG,EAAWx7N,EACpC,CACA,SAASy7N,GAAQ/8N,GACf,OAAMnM,MAAMI,KAILJ,MAAMI,KAAK+L,GAHTnM,MAAMjB,UAAU0B,MAAMtE,KAAKgQ,EAItC,CACA,SAASs/E,GAASiK,EAAO12F,GACvB,IAAMgB,MAAMjB,UAAU0sF,SAAU,CAC9B,IAAK,IAAI50E,KAAO6+E,EACd,GAAIA,EAAM7+E,KAAS7X,EACjB,OAAO,EAIX,OAAO,CACT,CAEA,OAAO02F,EAAMjK,SAASzsF,EACxB,CAEA,IAAI67F,GAAgB,SAAuB1uF,EAAK2+E,GAC9C,OAAQA,GAAM3T,UAAUwjB,iBAAiBxuF,EAC3C,EACA,SAASg9N,GAAO55K,EAAM1pD,GAKpB,OAJK0pD,EAAK1pD,KACR0pD,EAAK1pD,GAAOsxE,SAAS8oI,qBAAqBp6M,GAAK,IAG1C0pD,EAAK1pD,EACd,CACA,SAASujO,GAAentM,GACtB,IAAIgT,EAAOhT,EAAKgT,KACZo6L,EAAQptM,EAAKotM,MACjB,OAAOp6L,EAAO,OAASo6L,EAAQ,QAAU,MAC3C,CACA,SAASC,GAAc7wI,EAAYiP,EAAOxiG,GACxC,IAAI48D,EAAQ4lC,EAAM5lC,MACdulK,EAAY3/H,EAAM2/H,UAClBj/N,EAAOs/F,EAAMt/F,KACbm/N,EAAe7/H,EAAM6/H,aACzBriO,EAAaA,GAAc,CAAC,EAC5B,IAAIqkO,EAAU,CAAC,GAAGxsO,OAAOqL,EAAM,KAAKrL,OAAOsqO,EAAW,MAAOtqO,OAAO+kE,EAAO,MAAQ,GAAG/kE,OAAOqL,EAAM,UAAUrL,OAAOwqO,EAAc,MAAM1jO,KAAI,SAAU6iG,GACpJ,IAAK,IAAIroG,KAAO6G,EAAY,CAC1B,IAAIC,EAAMD,EAAW7G,GACjBmrO,EAAiBrkO,IAAe,IAARA,EAAe,KAAMpI,OAAOoI,EAAK,KAAQ,GACrEuhG,GAAS,SAAS3pG,OAAOsB,GAAKtB,OAAOysO,EAAgB,IACvD,CAEA,OAAO9iI,CACT,IACA,OAAOwiI,GAAQruI,GAAc0uI,EAAQlnO,KAAK,MAAOo2F,GACnD,CACA,SAASgxI,GAAsB5hI,EAAO/lC,GACpC,IAAIulK,EAAYx/H,EAAMw/H,UACtB6B,GAAQruI,GAAc,IAAI99F,OAAOsqO,EAAW,MAAOtqO,OAAO+kE,EAAO,QAASj+D,KAAI,SAAUinF,GACtF,OAAOA,EAAGvhC,QACZ,GACF,CACA,SAASiyC,GAAgB1Q,EAAI4+I,GAC3B5+I,EAAG0Q,gBAAgBkuI,EACrB,CAEA,SAASC,GAAYl8H,GAEnB,OADAA,EAAKA,GAAM3xG,KACJ2xG,KAA6B,IAAtBA,EAAG05H,IAA2Bz6N,EAAS+gG,EAAG05H,IAC1D,CAEA,SAASyC,GAAiBn8H,GAExB,OADAA,EAAKA,GAAM3xG,KACJ2xG,IAAOxhG,EAAYwhG,EAAG05H,GAC/B,CAEA,SAAS/iK,GAAMskK,EAAQlrN,GAErB,OADAkrN,EAAOvB,GAAe2B,SAAU,EACzB,WACL,OAAOzkK,GAAOqkK,EAAQlrN,EACxB,CACF,CACA,SAAS6mD,GAAOqkK,EAAQlrN,GAGtB,GAFAkrN,EAAOvB,GAAe2B,SAAU,EAE5BtrN,QAAuB3Y,IAAZ2Y,EACb,OAAOkrN,EAAOM,QAAQxrN,SAE1B,CAEA,SAASqsN,GAAanB,GACpB,IAAI/Z,EAAS+Z,EAAOphI,SAEhBohI,EAAOvB,GAAe2C,WAAcnb,IAKxC+Z,EAAOvB,GAAe2C,WAAY,EAClCnb,EAAOob,YAAW,SAAUniO,EAAIxH,EAAMyV,GACpCuuD,GAAMskK,GACN7yN,GACF,IACA84M,EAAOwC,WAAU,WACfuX,EAAO5kI,WAAU,WACf,IAAIkmI,EAAU3lK,GAAOqkK,GACjBuB,EAAWD,EAAQC,SAEnBA,GAAYx9N,EAAWw9N,EAASC,kBAClCD,EAASC,gBAAgBD,EAE7B,GACF,IACF,CAEA,IAAInoK,GAAQ,EACZ,SAASqoK,GAAY5pJ,EAAK9kF,GAExB,IAAI2uO,EAAwB,CAAC,YAAa,cAAe,eACrDC,GAAoB,EAExB,MAAO,CACLvtO,aAAc,WACZ,IAAIqxG,EAASryG,KAETwuO,EAAU,QACV/tO,EAAQT,KAAKwuO,GACb9tO,EAAWV,KAAKU,SAChB+tO,EAAkBhqJ,EAAI/jD,OAAOguM,SAgCjC,GA/BAntO,OAAOoB,eAAe3C,KAAM,eAAgB,CAC1CmD,cAAc,EACd6O,IAAK,WAOH,OALIy8N,IAAoBhuO,EAAM4qO,GAAesD,0BAC3ChrJ,EAAK,4IACLljF,EAAM4qO,GAAesD,yBAA0B,GAG1Cd,GAAY7tO,KACrB,IAGEA,OAASS,GACXA,EAAM8xG,MAAM,oBAAoB,WAO9B,GANAg8H,EAAoBvuO,KAAK60G,KAA6B,IAAtB70G,KAAK60G,IAAIjY,UAAkB58F,KAAK60G,IAAIhV,aAAa,yBAM5E0uI,GAAqB9tO,EAAM4qO,IAAiD,IAA/B5qO,EAAM4qO,GAAerlK,MAAa,CAClF,IAAI4oK,EAAUvB,GAAO,CAAC,EAAG,QACzBkB,EAAoBK,GAAWA,EAAQ/uI,aAAalgG,EAAQ6rO,aAC9D,CACF,KAMEr7N,EAAYzP,EAASf,EAAQ2rO,WAA2C,OAA9B5qO,EAASf,EAAQ2rO,SAA/D,CA2BA,GAvBK7qO,EAAM4qO,KACT5qO,EAAM4qO,GAAiB,CACrBrlK,MAAOA,IAETA,KAEIyoK,GAAmBhuO,EAAMC,SAASf,EAAQ2rO,UAE5CtrO,KAAKgoG,WAAU,WAEb,IAAI/I,EAAQ8jC,GAAKtiI,EAAM4+J,WAAW,SAAU72J,GAC1C,OAAOA,EAAEvI,QAAUuI,EAAEvI,OAAO4uO,SAC9B,IAEI5vI,GAASA,EAAMh/F,OAAO4uO,UAAUlvO,EAAQ2rO,UAC1C3nJ,EAAK,6DAA6D1iF,OAAOtB,EAAQ2rO,QAAS,4JAE9F,MAMCtrO,KAAKqrO,GAAgB,CACxBrrO,KAAKqrO,IAAiB,EACtB,IAAIlrO,EAASH,KAAKqvG,QAElB,MAAOlvG,GAAUA,IAAWM,EACtB0P,EAAYhQ,EAAOkrO,MACrBlrO,EAAOkrO,IAAiB,GAG1BlrO,EAASA,EAAOkvG,OAEpB,CAII1+F,EAAWjQ,EAASf,EAAQ2rO,YAC9B5qO,EAASipG,SAAWjpG,EAASipG,UAAY,CAAC,EAC1CjpG,EAASipG,SAASmlI,UAAYpuO,EAASf,EAAQ2rO,SAE1CtrO,KAAKi4J,WAIRj4J,KAAKmyG,IAAI,gBAAgB,WACvBnyG,KAAKquK,OAAO,aAAa,WACvBs+D,EAAchtO,EAASK,KAAKwuO,GAAU,UACxC,GACF,KAQAr+N,EAAY1P,EAAM4qO,GAAeyB,eACnCrsO,EAAM4qO,GAAeyB,YAAc9sO,KAAKi4J,UAEnCx3J,EAAM4qO,GAAeyB,cACnBrsO,EAAM4qO,GAAe0D,iBACxBtuO,EAAM4qO,GAAe0D,gBAAiB,EACtC/uO,KAAKmyG,IAAI,oBAAoB,WAC3B,IAAI1xG,EAAQT,KAAKwuO,GAGbD,IACF9tO,EAAM4qO,GAAerlK,MAAQrmE,EAAQisO,SAEzC,KAIF5rO,KAAKmyG,IAAI,gBAAgB,WACvB,IAAI1xG,EAAQT,KAAKwuO,GAEb/tO,EAAM4qO,GAAeyB,cAMzBrsO,EAAM4qO,GAAe0B,cAAe,EAEpC/sO,KAAKgoG,WAAU,WACb,IAAIgnI,EAAuBvuO,EAAMysO,QAAQxrN,UACrC+xC,EAAOu7K,EAAqBv7K,KAC5B06K,EAAWa,EAAqBb,UAQvB,IAAT16K,GAAuD,OAArChzD,EAAM4qO,GAAeyB,aACzC9sO,KAAKgoG,WAAU,WACb,OAAO2kI,EAAchtO,EAASc,EAAO,OACvC,IAGFA,EAAM4qO,GAAeyB,aAAc,SAC5BrsO,EAAM4qO,GAAe0B,cAGvBptO,EAAQsvO,yBAA2Bd,EAASC,iBAC/CL,GAAattO,EAEjB,IACF,IAEId,EAAQsvO,yBACVlB,GAAattO,KAKnBT,KAAKmyG,IAAI,kBAAkB,WACzB,IAAI31F,EAAQxc,KAMPA,KAAKqvG,SAAYw+H,GAAY7tO,eAI3BA,KAAKkvO,aACZlvO,KAAKgoG,WAAU,WACb,GAAKroG,EAAQmsO,iBAAoBtvN,EAAMq4F,KAAQr4F,EAAMq4F,IAAI7T,aAMzD,IAAIpsB,EAAWogD,aAAY,WACrBx4G,EAAMq4F,KAAkC,OAA3Br4F,EAAMq4F,IAAI7T,eAK3BwzB,cAAc5/C,GACd+3J,EAAchtO,EAAS6c,EAAM/b,MAAO,aACtC,GAAG,SAbDksO,EAAchtO,EAAS6c,EAAM/b,MAAO,YAcxC,IACF,IAEIT,KAAKi4J,WAMTq2E,EAAsBhsO,SAAQ,SAAU6sO,GACtC98H,EAAOF,IAAI,QAAQlxG,OAAOkuO,IAAgB,WACxCxC,EAAchtO,EAASK,KAAKwuO,GAAUW,EACxC,GACF,GAlKA,CAmKF,EAEJ,CAEA,SAASC,GAAWzvO,GASlB,OAPAA,EAAUiR,EAASjR,GAAWA,EAAU,CAAC,EAOlC,CACL2rO,QAAS3rO,EAAQ,YAAc+7M,EAAe4vB,QAC9CC,UAAW5rO,EAAQ,cAAgB+7M,EAAe6vB,UAClDC,aAAc7rO,EAAQ,iBAAmB+7M,EAAe8vB,aACxDC,aAAc9rO,EAAQ,iBAAmB+7M,EAAe+vB,aACxDE,eAAgBhsO,EAAQ,mBAAqB+7M,EAAeiwB,eAC5DD,oBAAqB/rO,EAAQ,wBAA0B+7M,EAAegwB,oBACtEG,aAAc17N,EAAYxQ,EAAQ,iBAAmB+7M,EAAemwB,aAAelsO,EAAQ,gBAC3FmsO,gBAAiB37N,EAAYxQ,EAAQ,oBAAsB+7M,EAAeowB,gBAAkBnsO,EAAQ,mBACpGisO,SAAUjsO,EAAQ,aAAe+7M,EAAekwB,SAChDqD,0BAA2BtvO,EAAQ,2BAGvC,CACA,SAAS0vO,GAAW1vO,GAClB,IAAI2vO,EAAc,CAAC,EAEnB,IAAK,IAAI/sO,KAAO5C,EACd2vO,EAAY/sO,GAAO5C,EAAQ4C,GAG7B,OAAO+sO,CACT,CAEA,SAASC,GAAcl/N,EAAK9N,GAC1B,OAAKA,GAAQqO,EAASP,IAIjBlM,EAAQkM,EAAI9N,MACf8N,EAAI9N,GAAO,IAGN8N,GAPElM,EAAQkM,GAAOA,EAAM,EAQhC,CAEA,IAAIm/N,GAAkB,CAAC,CAAC,KAAM,SAAU,CAAC,KAAM,QAAS,CAAC,KAAM,QAAS,CAAC,KAAM,UAAW,CAAC,KAAM,WAC7FC,GAAkB,CAAC,CAAC,KAAM,KAAM,CAAC,KAAM,KAAM,CAAC,KAAM,KAAM,CAAC,KAAM,KAAO,CAAC,KAAM,MAEnF,SAASC,GAAOtqH,EAAMzlH,EAASgwO,EAAeC,GAC5C,IAAInE,EAAe9rO,EAAQ8rO,aACvBoE,EAAwBF,EAAcG,SACtCA,OAAqC,IAA1BD,EAAmC,SAAUpgO,GAC1D,OAAOA,CACT,EAAIogO,EACA11B,EAAU,CAAC,EAEf,IAAK,IAAI53M,KAAO6iH,EAAM,CACpB,IAAIliH,EAAQkiH,EAAK7iH,GAEjB,GAAIotF,GAASs8I,EAAoB1pO,GAC/B43M,EAAQ53M,GAAOW,MADjB,CAOA,IAAI6sO,EAAa/D,EAAkB,GAEnC,GAAI2D,EAAcI,IAAepgJ,GAASggJ,EAAcI,GAAaxtO,GAEnE43M,EAAQ53M,GAAOW,MAFjB,CAMA,IAAIyuJ,EAAQvsC,EAAKqmH,GAEjB,GAAI95E,IACFo+E,EAAa/D,EAAkB,GAE3B2D,EAAcI,IAAeJ,EAAcI,GAAYp+E,IAAUhiE,GAASggJ,EAAcI,GAAYp+E,GAAQpvJ,IAC9G43M,EAAQ53M,GAAOW,OAqBnB,GAhBIwN,EAASxN,GACXi3M,EAAQ53M,GAAOutO,EAAS5sO,GACfiB,EAAQjB,GACjBi3M,EAAQ53M,GAAOW,EAAM6E,KAAI,SAAU0H,GACjC,OAAI66N,EAAa76N,GACRigO,GAAOjgO,EAAG9P,EAASgwO,GAAe,GAGpCG,EAASrgO,EAClB,IACS66N,EAAapnO,GACtBi3M,EAAQ53M,GAAOmtO,GAAOxsO,EAAOvD,EAASgwO,GAAe,GAErDx1B,EAAQ53M,GAAOW,EAGb0sO,EAAY,CACd,IAAII,EAAaF,EAASvtO,GAEtBA,IAAQytO,IACV71B,EAAQ61B,GAAc71B,EAAQ53M,UACvB43M,EAAQ53M,GAEnB,CApCA,CAVA,CA+CF,CAEA,OAAO43M,CACT,CACA,SAAS81B,GAAetwO,EAASylH,EAAM8qH,GACrCA,EAAkBA,GAAmB,GAGrC,IAAIP,EAAgB,CAClBG,SAAU,SAAkB5sO,GAC1B,OAAOgtO,EAAgBhoO,QAAO,SAAUmB,EAAK8mO,GAC3C,OAAO9mO,EAAI3C,QAAQypO,EAAI,GAAIA,EAAI,GACjC,GAAGjtO,EACL,GAcF,OAZA8oO,EAAkB1pO,SAAQ,SAAUytO,EAAY97L,GAC9C,GAAc,IAAVA,EACFs7L,GAAcnqH,EAAM2qH,QACf,GAAc,IAAV97L,EACT,IAAK,IAAI1xC,KAAO6iH,EAAK2qH,GACnBR,GAAcnqH,EAAK2qH,GAAaxtO,GAIpCotO,EAAcI,GAAc3qH,EAAK2qH,EACnC,IAEOL,GAAOtqH,EAAMzlH,EAASgwO,EAC/B,CAEA,SAASS,GAAcjwM,EAAMkwM,EAAYziB,EAAU0iB,GACjD,IAAI5qJ,EAAYvlD,EAAKulD,UACjBgmJ,EAAsBvrM,EAAKurM,oBAC3BC,EAAiBxrM,EAAKwrM,eAE1B,OAAiB,IAAb/d,IAAyD,IAApCyiB,EAAW3E,KAKhCv7N,EAAYy9M,IAAayiB,EAAW3E,KACtC9d,EAAWyiB,EAAW3E,GACtB2E,EAAW3E,IAAuB,GAI/B9d,GAMDz9M,EAAYmgO,KACdA,EAAQD,EAAW1E,IAGrB0E,EAAW1E,GAAkBh7N,EAAWi9M,GAAYA,EAASvtN,KAAKqlF,EAAW4qJ,GAAS1iB,EAASlnN,QAAQ,MAAO4pO,IACvG,WATED,EAAW3E,IACX,GASX,CAEA,SAAS6E,GAAYpwM,EAAMl+B,EAAQI,GACjC,IAAIqjF,EAAYvlD,EAAKulD,UACjB+lJ,EAAetrM,EAAKsrM,aACpBC,EAAsBvrM,EAAKurM,oBAC3BC,EAAiBxrM,EAAKwrM,eAItBt/B,EAAc,GAElB,OAAKpqM,EAAOG,QAAWC,EAAOD,QAI9BH,EAAOK,SAAQ,SAAUkuO,EAAYC,GAEnC,GAAKD,EAAW/E,GAAhB,CAKA,IAAIiF,EAAcztG,GAAU5gI,GAAQ,SAAU68C,GAC5C,OAAOA,EAAKusL,KAAkB+E,EAAW/E,EAC3C,IACIkF,EAAatuO,EAAOquO,GAExB,IAAqB,IAAjBA,EAAJ,CAQA,GAAI/E,KAAkBgF,QAA6C5nO,IAA/B4nO,EAAWhF,IAAiC,cAAegF,QAAuC5nO,IAAzB4nO,EAAWjrI,UAItH,OAHA2mG,EAAYvqM,KAAK0uO,QAEjBnuO,EAAOyoC,OAAO4lM,EAAa,GAM7B,GAAmC,OAA/BC,EAAWhF,IAAqD,OAAzBgF,EAAWjrI,UAAtD,CAOA,IAAIkrI,EAAiBJ,EAAW9E,GAEhC,GAAKkF,EAAL,CAIA,IAAIC,EAAiBF,EAAWjF,GAEhC,IAAKmF,EASH,OAPAT,GAAc,CACZ1qJ,UAAWA,EACXgmJ,oBAAqBA,EACrBC,eAAgBA,GACfgF,EAAYC,QAEfD,EAAW/iB,UAAW,GAInB+iB,EAAWhF,IAEdyE,GAAc,CACZ1qJ,UAAWA,EACXgmJ,oBAAqBA,EACrBC,eAAgBA,GACfgF,OAAY5nO,EAAWynO,EAAW7E,GAtBvC,CAPA,MAFEtpO,EAAOyoC,OAAO4lM,EAAa,EAhB7B,MAFErkC,EAAYvqM,KAAK0uO,EARnB,MAFEnkC,EAAYvqM,KAAK0uO,EA6DrB,IACOnkC,EAAYprM,OAAOoB,IApEjBgqM,CAqEX,CACA,IAAIykC,IAAe,EACnB,SAASl/J,GAAM3vE,EAAQI,EAAQ1C,GAyB7B,OAxBAA,EAAUA,GAAW,CAAC,OAIDoJ,IAAjB1G,EAAO4K,cACF5K,EAAO4K,MAGhBi/N,EAAsB5pO,SAAQ,SAAUyuO,GACtC,GAAK1uO,EAAO0uO,GAIZ,IAAK,IAAIxuO,KAAOF,EAAO0uO,GACjBxuO,KAAOF,EAAO0uO,SAAqChoO,IAAzB1G,EAAO0uO,GAASxuO,KACxCotF,GAAS88I,EAAuBlqO,KAASuuO,KAC3CntJ,EAAK,8IACLmtJ,IAAe,UAGVzuO,EAAO0uO,GAASxuO,GAG7B,IACOqpM,IAAU3pM,EAAQI,EAAQ,CAC/BiqM,WAAY,SAAoBrlL,EAAGjf,GACjC,OAAOuoO,GAAY5wO,EAASsnB,EAAGjf,EACjC,GAEJ,CAEA,SAASgpO,GAAqBrxO,EAAS+lF,GACrC,OAAOurJ,GAAmBtxO,GAAW,CAAC,EAAG+lF,EAAWilJ,EACtD,CAgBA,SAASsG,GAAmBtxO,EAAS+lF,EAAW71E,GAG9C,GAFAA,EAASA,GAAU,CAAC,EAEhB61E,EAAUwrJ,UACZ,OAAOrhO,EAGTlQ,EAAUA,GAAW,CAAC,EACtB,IAAIwxO,EAAWxxO,EACX2rO,EAAU6F,EAAS7F,QACnBwD,EAAYppJ,EAAUopJ,UACtBpuO,EAAWglF,EAAUhlF,SACrB2+J,EAAY35E,EAAU25E,UAE1B,GAAI3+J,EAAS4qO,GAAU,CAKrB,IAAItiO,EAAO8lO,GAAapuO,EAAS4qO,GAI7B16N,EAAS5H,KACX6G,EAAS+hE,GAAM/hE,EAAQ7G,EAAMrJ,GAEjC,CAeA,OAZI0/J,EAAUj9J,QACZi9J,EAAU/8J,SAAQ,SAAU8uO,GAGrBtD,GAAiBsD,KAItBvhO,EAASohO,GAAmBtxO,EAASyxO,EAAgBvhO,GACvD,IAGKA,CACT,CAEA,IAAIw/D,GAAY,GAChB,SAASgiK,GAAc11N,GACrB,MAAsC,cAA9BA,GAAK0/D,UAAU9xB,UACzB,CACA,SAAS+nL,GAAY1mI,EAAOxjG,GACD,IAArBjF,UAAUC,SACZgF,EAAWwjG,EACXA,EAAQ,IAGVv7B,GAAUvtE,KAAK,CAAC8oG,EAAOxjG,GACzB,CACA,SAASmqO,GAAapxM,EAAM7zB,EAAMmnD,EAAM+9K,GACtC,IAAI/F,EAAetrM,EAAKsrM,aACpBgG,GAAmB,EAUvB,OATAh+K,EAAKnxD,SAAQ,SAAUyH,GAChBA,EAAI0hO,IAAkB1hO,EAAI3C,WAI/BqqO,GAAmB,EACnBH,GAAY,GAAGrwO,OAAOqL,EAAM,UAAUrL,OAAOwqO,EAAc,MAAOxqO,OAAO8I,EAAI0hO,GAAe,MAAQ1hO,EAAI3C,UAC1G,IAEKoqO,GAAqBC,EAInBC,KAHED,CAIX,CACA,SAASC,KACHL,KACFM,KAOFt2J,SAAS/xB,mBAAqB,WAC5BqoL,IACF,CACF,CACA,SAASA,GAAeC,GACtBviK,GAAU/sE,SAAQ,SAAU05B,GAG1B,IAAI4uE,EAAQ5uE,EAAK,GACb50B,EAAW40B,EAAK,GAChB0iE,EAAW,GAAGz9F,OAAO2pG,EAAO,4BAC5BinI,EAAW,GAEVD,IACHC,EAAWzE,GAAQruI,GAAcL,KAG/BkzI,GAAgBA,EAAa7kM,QAAQ2xD,KACvCmzI,EAAW,CAACD,IAGdC,EAASvvO,SAAQ,SAAUuG,GAKzB,IAAIA,EAAQipO,QAAZ,CAIA,IAAItoL,EAAS,WAIX3gD,EAAQipO,SAAU,EAMlBpyI,GAAgB72F,EAAS,UACzBzB,EAASyB,EACX,EAUIA,EAAQkpO,OACVvoL,IAIG3gD,EAAQmpO,UACXnpO,EAAQmpO,SAAU,EAClBnpO,EAAQyzE,iBAAiB,OAAQ9yB,GA/BnC,CAiCF,GACF,GACF,CAIA,IAgTIyoL,GAhTAC,GAAe,CAAC,EAQpB,SAASC,GAAgBnsK,EAAOrmE,EAAS2M,EAAMhD,EAAOS,GACpD,IAAIo2B,EAAOxgC,GAAW,CAAC,EACnB4rO,EAAYprM,EAAKorM,UAEjB6G,EAAoBroO,EAAI61F,aAAa2rI,GAErC6G,IACFF,GAAa5lO,GAAQiH,KAAKnH,MAAMimO,UAAUD,IAC1C1yI,GAAgB31F,EAAKwhO,IAGvB,IAAIviO,EAAOkpO,GAAa5lO,IAAS,CAAC,EAC9BgmO,EAAW,GAGf,IAAK,IAAI/yI,KAAQv2F,OACID,IAAfC,EAAKu2F,IAAuBv5B,KAASh9D,EAAKu2F,KAC5C+yI,EAASxwO,KAAKy9F,GAETj2F,EAAMi2F,WACFv2F,EAAKu2F,GAAMv5B,IAKxB,IAAK,IAAIusK,KAASjpO,EAAO,CACvB,IAAIkpO,EAAWxpO,EAAKupO,GAEfC,GAAYA,EAASxsK,KAAW18D,EAAMipO,KACzCD,EAASxwO,KAAKywO,QAEOxpO,IAAjBO,EAAMipO,KACRvpO,EAAKupO,GAASvpO,EAAKupO,IAAU,CAAC,EAC9BvpO,EAAKupO,GAAOvsK,GAAS18D,EAAMipO,IAGjC,CAEA,IAAK,IAAIt2M,EAAK,EAAGw2M,EAAYH,EAAUr2M,EAAKw2M,EAAUrwO,OAAQ65B,IAAM,CAClE,IAAIy2M,EAASD,EAAUx2M,GACnB02M,EAAY3pO,EAAK0pO,GACjBE,EAAa,GAEjB,IAAK,IAAI7sK,KAAU4sK,EACjBzuO,MAAMjB,UAAUnB,KAAKC,MAAM6wO,EAAY,GAAG3xO,OAAO0xO,EAAU5sK,KAG7D,GAAI6sK,EAAWxwO,OAAQ,CACrB,IAAIywO,EAAYljJ,GAAS88I,EAAuBiG,IAAWE,EAAWruJ,KAAKh4E,SAAW,GAAKqmO,EAAWlxO,QAAO,SAAU+N,GACrH,YAAa1G,IAAN0G,CACT,IAAGlJ,KAAK,KACRwD,EAAIy1F,aAAakzI,EAAQG,EAC3B,MACEnzI,GAAgB31F,EAAK2oO,EAEzB,CAEAR,GAAa5lO,GAAQtD,CACvB,CAOA,SAAS8pO,GAAY7lO,IACdA,GAAmB,KAAVA,KAIdouE,SAASpuE,MAAQA,EACnB,CAWA,SAAS8lO,GAAU/sK,EAAOrmE,EAAS2M,EAAMmnD,EAAM+2J,EAAMr3K,GACnD,IAAIhT,EAAOxgC,GAAW,CAAC,EACnB4rO,EAAYprM,EAAKorM,UACjBE,EAAetrM,EAAKsrM,aAEpBuH,EAAiBxG,EAAqB7nO,QAC1CquO,EAAelxO,KAAK2pO,GACpB,IAAIwH,EAAc,GACdC,EAAe,CACjBltK,MAAOA,EACPulK,UAAWA,EACXj/N,KAAMA,EACNm/N,aAAcA,GAEZ0H,EAAkB,CACpB3oB,KAAMgjB,GAAchjB,EAAM0oB,GAC1B3F,MAAOC,GAAcr6L,EAAM+/L,EAAc,CACvC3F,OAAO,IAETp6L,KAAMq6L,GAAcr6L,EAAM+/L,EAAc,CACtC//L,MAAM,KAIV,GAAIsgB,EAAKrxD,OAAS,EAAG,CAInB,IAAIgxO,EAAQ,GACZ3/K,EAAOA,EAAK/xD,QAAO,SAAU0hF,GAC3B,IAAInsE,EAAI1D,KAAKC,UAAU4vE,GACnB/7B,GAAOsoC,GAASyjJ,EAAOn8N,GAE3B,OADAm8N,EAAMtxO,KAAKmV,GACJowC,CACT,GACF,CAEAoM,EAAKnxD,SAAQ,SAAUyH,GACrB,IAAIA,EAAIspO,KAAR,CAIA,IAAIC,EAAaj4J,SAASnuE,cAAcZ,GAEnCvC,EAAIkkH,MACPqlH,EAAW9zI,aAAa+rI,EAAWvlK,GAGrCzkE,OAAOD,KAAKyI,GAAKzH,SAAQ,SAAUi9F,GAEjC,IAAI5P,GAAS48I,EAAehtI,GAI5B,GAAa,cAATA,EAKJ,GAAa,SAATA,EAKJ,GAAa,YAATA,EAWJ,GAAa,aAATA,EAAJ,CAQA,IAAIgzI,EAAQ5iJ,GAASqjJ,EAAgBzzI,GAAQ,QAAQt+F,OAAOs+F,GAAQA,EAEhEg0I,EAAqB5jJ,GAAS88I,EAAuBltI,GAEzD,IAAIg0I,GAAuBxpO,EAAIw1F,GAA/B,CAIA,IAAIr8F,EAAQqwO,EAAqB,GAAKxpO,EAAIw1F,GAC1C+zI,EAAW9zI,aAAa+yI,EAAOrvO,EAH/B,CARA,MALEowO,EAAW9pL,OAAS,WAClB,OAAOz/C,EAAIw1F,GAAM+zI,EACnB,OAbIA,EAAWE,WAEbF,EAAWE,WAAWC,QAAU1pO,EAAI0pO,QAEpCH,EAAWnwE,YAAY9nF,SAAS2yH,eAAejkM,EAAI0pO,eATrDH,EAAW5tI,UAAYnyF,KAAKC,UAAUzJ,EAAI2pO,WAL1CJ,EAAW5tI,UAAY37F,EAAI27F,SAsC/B,IACA,IAEIiuI,EAFAC,EAAcT,EAAgB7F,GAAevjO,IAG7C8pO,EAAkBD,EAAYrvJ,MAAK,SAAUuvJ,EAAa7/L,GAE5D,OADA0/L,EAAgB1/L,EACTq/L,EAAWS,YAAYD,EAChC,IAEID,IAAoBF,GAAmC,IAAlBA,GACvCC,EAAY9oM,OAAO6oM,EAAe,GAElCV,EAAYnxO,KAAKwxO,EAjEnB,CAmEF,IACA,IAAIM,EAAc,GAElB,IAAK,IAAIluB,KAASytB,EAChBjvO,MAAMjB,UAAUnB,KAAKC,MAAM6xO,EAAaT,EAAgBztB,IAqB1D,OAjBAkuB,EAAYtxO,SAAQ,SAAUuG,GAC5BA,EAAQ8zF,WAAWY,YAAY10F,EACjC,IAEAoqO,EAAY3wO,SAAQ,SAAUuG,GACxBA,EAAQg3F,aAAa,aACvB1sD,EAAKgwH,YAAYt6J,GAIfA,EAAQg3F,aAAa,cACvB1sD,EAAKkuK,aAAax4M,EAASsqC,EAAKsjK,YAIlC+T,EAAKrnD,YAAYt6J,EACnB,IACO,CACLmrO,QAASJ,EACTK,QAAShB,EAEb,CAQA,SAASiB,GAAqBluK,EAAOrmE,EAASw0O,GAC5Cx0O,EAAUA,GAAW,CAAC,EACtB,IAAIwxO,EAAWxxO,EACX6rO,EAAe2F,EAAS3F,aACxBI,EAAWuF,EAASvF,SAEpBn4K,EAAO,CAAC,EACRm7K,EAAUvB,GAAO55K,EAAM,QAE3B,GAAIuS,IAAU4lK,GAAYgD,EAAQ/uI,aAAa2rI,GAAe,CAE5D9rI,GAAgBkvI,EAASpD,GAEzB,IAAI4I,GAAmB,EAWvB,OAVAjI,EAAqB7pO,SAAQ,SAAUgK,GACjC6nO,EAAQ7nO,IAASilO,GAAa5xO,EAAS2M,EAAM6nO,EAAQ7nO,MACvD8nO,GAAmB,EAEvB,IAEIA,GACF1C,MAGK,CACT,CAGA,IAAI2C,EAAY,CAAC,EACbC,EAAc,CAAC,EAEnB,IAAK,IAAIhoO,KAAQ6nO,EAEf,IAAIxkJ,GAASs8I,EAAoB3/N,GAIjC,GAAa,UAATA,GAMJ,GAAIqjF,GAASu8I,EAAuB5/N,GAApC,CACE,IAAIoqH,EAAUpqH,EAAKxF,OAAO,EAAG,GAC7BqrO,GAAgBnsK,EAAOrmE,EAAS2M,EAAM6nO,EAAQ7nO,GAAO+gO,GAAO55K,EAAMijE,GAEpE,MAGA,GAAKvyH,EAAQgwO,EAAQ7nO,IAArB,CAIA,IAAIioO,EAAaxB,GAAU/sK,EAAOrmE,EAAS2M,EAAM6nO,EAAQ7nO,GAAO+gO,GAAO55K,EAAM,QAAS45K,GAAO55K,EAAM,SAC/FugL,EAAUO,EAAWP,QACrBC,EAAUM,EAAWN,QAErBA,EAAQ7xO,SACViyO,EAAU/nO,GAAQ2nO,EAClBK,EAAYhoO,GAAQ0nO,EARtB,OAbElB,GAAYqB,EAAQlnO,OAyBxB,MAAO,CACLonO,UAAWA,EACXC,YAAaA,EAEjB,CAGA,SAASE,GAAO5H,EAAQ5mK,EAAOrmE,GAC7B,MAAO,CACLuS,IAAK,SAAai8N,GAChB,OAAOsG,GAAY7H,EAAQ5mK,EAAOrmE,EAASwuO,EAC7C,EACA1gL,OAAQ,WACN,OAAOinL,GAAe9H,EAAQ5mK,EAAOrmE,EACvC,EAEJ,CACA,SAAS80O,GAAY7H,EAAQ5mK,EAAOrmE,EAASwuO,GAE3C,GAAIvB,GAAUA,EAAO/3H,IACnB,OAAOq/H,GAAqBluK,EAAOrmE,EAASwuO,GAK9C8D,GAAeA,IAAgB,CAAC,EAChCA,GAAajsK,GAASmoK,CACxB,CACA,SAASuG,GAAe9H,EAAQ5mK,EAAOrmE,GACrC,GAAIitO,GAAUA,EAAO/3H,IAAK,CACxB,IAGI8/H,EAHAlhL,EAAO,CAAC,EAERmhL,EAAY3K,EAA2BiC,GAG3C,IACE,IAAK0I,EAAU5sO,MAAO2sO,EAAQC,EAAUnwO,KAAK2V,MAAO,CAClD,IAAI9N,EAAOqoO,EAAMzxO,MACbwzH,EAAUpqH,EAAKxF,OAAO,EAAG,GAC7BqrO,GAAgBnsK,EAAOrmE,EAAS2M,EAAM,CAAC,EAAG+gO,GAAO55K,EAAMijE,GACzD,CACF,CAAE,MAAOx8G,GACP06N,EAAU3qO,EAAEiQ,EACd,CAAE,QACA06N,EAAUzmJ,GACZ,CAEA,OAAOw/I,GAAsBhuO,EAASqmE,EACxC,CAEIisK,GAAajsK,YACRisK,GAAajsK,GACpB6uK,KAEJ,CACA,SAASC,KACP,OAAO7C,EACT,CACA,SAAS4C,GAAkB3sF,IACrBA,GAAU3mJ,OAAOD,KAAK2wO,IAAc7vO,SACtC6vO,QAAelpO,EAEnB,CAUA,SAASgsO,GAAYp1O,EAASylH,EAAM8qH,EAAiBxqJ,GACnD/lF,EAAUA,GAAW,CAAC,EACtBuwO,EAAkBA,GAAmB,GACrC,IAAIiB,EAAWxxO,EACX8rO,EAAe0F,EAAS1F,aAyC5B,OAtCIrmH,EAAKn4G,QACPm4G,EAAKwlH,WAAaxlH,EAAKn4G,OAIrBm4G,EAAKylH,eAAwC,OAAvBzlH,EAAKylH,eAC7BuF,GAAc,CACZ1qJ,UAAWA,EACXimJ,eAAgB,SACfvmH,EAAMA,EAAKylH,cAAezlH,EAAKwlH,YAAc,IAK9CxlH,EAAKw+C,OACPx+C,EAAKw+C,KAAOriK,OAAOD,KAAK8jH,EAAKw+C,MAAMxhK,OAAS,CAACgjH,EAAKw+C,MAAQ,IAGxDx+C,EAAK4vG,OAEP5vG,EAAK4vG,KAAO5vG,EAAK4vG,KAAKtzN,QAAO,SAAUszO,EAAU/gM,EAAOpwC,GACtD,IAAIoxO,IAAYD,EAASvJ,GAEzB,IAAKwJ,EACH,OAAO,EAGT,IAAIC,EAAqBjhM,IAAUgvF,GAAUp/H,GAAK,SAAUq7C,GAC1D,OAAOA,EAAKusL,KAAkBuJ,EAASvJ,EACzC,IACA,OAAOyJ,CACT,IAEA9vH,EAAK4vG,KAAK1yN,SAAQ,SAAU6yO,GAC1B,OAAO/E,GAAczwO,EAASw1O,EAChC,KAGKlF,GAAetwO,EAASylH,EAAM8qH,EACvC,CAaA,SAASxuN,GAAQkrN,EAAQjtO,GAGvB,GAFAA,EAAUA,GAAW,CAAC,GAEjBitO,EAAOvB,GAEV,OADAX,IACO,CAAC,EAIV,IAAI0K,EAAUpE,GAAqBrxO,EAASitO,GACxCuB,EAAW4G,GAAYp1O,EAASy1O,EAAS3F,GAAiB7C,GAC1D5mK,EAAQ4mK,EAAOvB,GAAerlK,MAC9BvS,EAAOygL,GAAqBluK,EAAOrmE,EAASwuO,GAE5C16K,GAAQ9iD,EAAWw9N,EAAS/8G,WAC9B+8G,EAAS/8G,QAAQ+8G,EAAU16K,EAAK4gL,UAAW5gL,EAAK6gL,aAChD7gL,EAAO,CACL4hL,UAAW5hL,EAAK4gL,UAChB1gF,YAAalgG,EAAK6gL,cAItB,IAAIrC,EAAe6C,KAEnB,GAAI7C,EAAc,CAChB,IAAK,IAAIqD,KAAmBrD,EAC1BiC,GAAqBoB,EAAiB31O,EAASsyO,EAAaqD,WACrDrD,EAAaqD,GAGtBT,IAAkB,EACpB,CAEA,MAAO,CACLljI,GAAIi7H,EACJuB,SAAUA,EAEV16K,KAAMA,EAEV,CAUA,SAAS8hL,GAAmB51O,EAAS2M,EAAMtD,EAAMm3B,GAC/C,IAAIq1M,EAAkBr1M,EAAKq1M,gBAEvB5pI,EAAQjsG,GAAW,CAAC,EACpB4rO,EAAY3/H,EAAM2/H,UAClBC,EAAe5/H,EAAM4/H,aAErBiK,EAAe,GAEnB,IAAK,IAAIl2I,KAAQv2F,EAAM,CACrB,IAAIwpO,EAAWxpO,EAAKu2F,GAChBqzI,EAAa,GAEjB,IAAK,IAAI5sK,KAASwsK,EAChBI,EAAW9wO,KAAKC,MAAM6wO,EAAYhvO,EAAmB,GAAG3C,OAAOuxO,EAASxsK,MAGtE4sK,EAAWxwO,SACbqzO,GAAgBhJ,EAAsB98I,SAAS4P,IAASqzI,EAAWruJ,KAAKh4E,SAAW,GAAGtL,OAAOs+F,GAAQ,GAAGt+F,OAAOs+F,EAAM,MAAOt+F,OAAO2xO,EAAWrsO,KAAK,KAAM,KACzJkvO,GAAgB,IAEpB,CAMA,OAJIA,IACFA,GAAgB,GAAGx0O,OAAOsqO,EAAW,MAAOtqO,OAAOy0O,UAAUniO,KAAKC,UAAUxK,IAAQ,MAGzE,cAATsD,GAAwBkpO,EACnB,GAAGv0O,OAAOuqO,GAAcvqO,OAAOw0O,EAAe,IAAM,IAAIx0O,OAAOw0O,GAGjEA,CACT,CASA,SAASE,GAAeh2O,EAAS2M,EAAMtD,EAAM4sO,GAC3C,IAAIz1M,EAAOy1M,GAAoB,CAAC,EAC5BC,EAAK11M,EAAK01M,GAEd,OAAK7sO,EAIE,IAAI/H,OAAOqL,EAAM,KAAKrL,OAAO+H,EAAM,MAAM/H,OAAOqL,EAAM,KAAKrL,OAAO40O,EAAK,KAAO,IAH5E,EAIX,CAUA,SAASC,GAAan2O,EAAS2M,EAAMmnD,EAAMmiL,GACzC,IAAIz1M,EAAOxgC,GAAW,CAAC,EACnBisO,EAAWzrM,EAAKyrM,SAChBL,EAAYprM,EAAKorM,UACjBE,EAAetrM,EAAKsrM,aAEpB7/H,EAAQgqI,GAAoB,CAAC,EAC7B5vK,EAAQ4lC,EAAM5lC,MACd+vK,EAAcnqI,EAAMoqI,MACpBA,OAAwB,IAAhBD,GAAgCA,EACxCE,EAAarqI,EAAMz4D,KACnBA,OAAsB,IAAf8iM,GAAgCA,EACvCC,EAActqI,EAAM2hI,MACpBA,OAAwB,IAAhB2I,GAAiCA,EACzCC,EAAWvqI,EAAMiqI,GACjBA,OAAkB,IAAbM,GAA8BA,EAEnCnD,EAAiB,CAACvH,GAAcxqO,OAAO2C,EAAmB4oO,IAE9D,OAAK/4K,GAASA,EAAKrxD,OAKZqxD,EAAKvrD,QAAO,SAAUkuO,EAASrsO,GACpC,GAAIA,EAAIspO,KACN,OAAO+C,EAGT,IAAIC,EAAU90O,OAAOD,KAAKyI,GAE1B,GAAuB,IAAnBssO,EAAQj0O,OACV,OAAOg0O,EAGT,GAAI7pO,QAAQxC,EAAIopC,QAAUA,GAAQ5mC,QAAQxC,EAAIwjO,SAAWA,EACvD,OAAO6I,EAGT,IAAI9sO,EAAQS,EAAIkkH,KAAO,GAAK,IAAIhtH,OAAOsqO,EAAW,MAAOtqO,OAAO+kE,KAAoB,IAAVgwK,EAAkB,IAAMpK,GAAW,KAE7G,IAAK,IAAIrsI,KAAQx1F,EAEf,IAAIuiO,EAA2B38I,SAAS4P,KAASgtI,EAAc58I,SAAS4P,GAIxE,GAAa,aAATA,EAAJ,CAMA,IAAIrzF,EAAS,GAET8mO,EAAerjJ,SAAS4P,KAC1BrzF,EAAS,SAGX,IAAIoqO,GAAiBpqO,GAAUugO,EAAsB98I,SAAS4P,GAE1D+2I,IAAkBvsO,EAAIw1F,KAI1Bj2F,GAAS,IAAIrI,OAAOiL,GAAQjL,OAAOs+F,IAAS+2I,EAAgB,GAAK,KAAMr1O,OAAO8I,EAAIw1F,GAAO,MAfzF,MAFEj2F,GAAS,0BAoBb,IAAIoqO,EAAO,GAEP3pO,EAAI2pO,OACNA,EAAOngO,KAAKC,UAAUzJ,EAAI2pO,OAI5B,IAAIvuI,EAAUp7F,EAAI27F,WAAa37F,EAAI0pO,SAAWC,EAG1C6C,GAAanK,EAAkBz8I,SAASrjF,GAExC6gG,EAAaopI,GAAalK,EAAqB18I,SAASrjF,GAE5D,MAAO,GAAGrL,OAAOm1O,EAAS,KAAKn1O,OAAOqL,GAAMrL,OAAOqI,GAAOrI,QAAQksG,GAAcopI,EAAY,IAAM,GAAI,MAAQppI,EAAa,GAAGlsG,OAAOkkG,EAAS,MAAMlkG,OAAOqL,EAAM,KAAO,KAAOupO,EAAK,KAAO,GAC7L,GAAG,IA/DM,EAgEX,CAUA,SAASW,GAAuB72O,EAASwuO,EAAUsI,GACjD,IAAIC,EAAiB,CACnB1tO,KAAMmlO,EACNwI,eAAW5tO,EACX6tO,QAAS,SAAiB5wK,EAAOmoK,GAC/BnuO,KAAK22O,UAAY32O,KAAK22O,WAAa,CAAC,EACpC32O,KAAK22O,UAAU3wK,GAASmoK,CAC1B,EACA0I,cAAe,SAAuB//B,GACpC,IAAI8B,EAAI54M,KAAK82O,UAEb,OAAQhgC,EAAK3jK,MAAQ2jK,EAAKy2B,MAAQ,GAAK30B,EAAE3rM,MAAMi1B,KAAK40K,IAAS8B,EAAEoc,KAAK9yL,KAAK40K,GAAQ8B,EAAEh1C,KAAK1hI,KAAK40K,GAAQ8B,EAAE/iG,KAAK3zE,KAAK40K,GAAQ8B,EAAE9wM,MAAMo6B,KAAK40K,GAAQ8B,EAAEqyB,OAAO/oM,KAAK40K,GAAQ8B,EAAEsyB,SAAShpM,KAAK40K,EACtL,EACAggC,UAAW,CACTtsB,KAAM,SAAcqrB,GAClB,OAAOa,EAAeG,cAAc70O,EAAeA,EAAe,CAAC,EAAGy0O,GAAsB,CAAC,EAAG,CAC9FZ,GAAIA,IAER,EACAkB,YAAa,SAAqBlB,GAChC,OAAOa,EAAeG,cAAc70O,EAAeA,EAAe,CAAC,EAAGy0O,GAAsB,CAAC,EAAG,CAC9FZ,GAAIA,EACJtI,OAAO,IAEX,EACAyJ,WAAY,SAAoBnB,GAC9B,OAAOa,EAAeG,cAAc70O,EAAeA,EAAe,CAAC,EAAGy0O,GAAsB,CAAC,EAAG,CAC9FZ,GAAIA,EACJ1iM,MAAM,IAEV,IAIA8jM,EAAQ,SAAe3qO,GACzB,GAAI2/N,EAAmBt8I,SAASrjF,GAC9B,MAAO,WAGToqO,EAAeI,UAAUxqO,GAAQ,CAC/B41B,KAAM,SAAcg1M,GAClB,IAAI1B,GAAoC,IAAlB0B,EAKtB,GAJAA,EAAgBl1O,EAAeA,EAAe,CAC5CwzO,gBAAiBA,GAChBiB,GAAsBS,GAEZ,UAAT5qO,EACF,OAAOqpO,GAAeh2O,EAAS2M,EAAMoqO,EAAe1tO,KAAKsD,GAAO4qO,GAGlE,GAAIhL,EAAsBv8I,SAASrjF,GAAO,CACxC,IAAI6qO,EAAgB,CAAC,EACjBnuO,EAAO0tO,EAAe1tO,KAAKsD,GAE/B,GAAItD,EAAM,CACR,IAAIg9D,GAAgC,IAAxBkxK,EAAclB,MAAkB,IAAMr2O,EAAQisO,SAE1D,IAAK,IAAIrsI,KAAQv2F,EACfmuO,EAAc53I,GAAQ/8F,EAAgB,CAAC,EAAGwjE,EAAOh9D,EAAKu2F,GAE1D,CAEA,GAAIm3I,EAAeC,UACjB,IAAK,IAAI5wK,KAAU2wK,EAAeC,UAAW,CAC3C,IAAIS,EAAQV,EAAeC,UAAU5wK,GAAQz5D,GAE7C,GAAI8qO,EACF,IAAK,IAAI7E,KAAS6E,EAChBD,EAAc5E,GAASvwO,EAAeA,EAAe,CAAC,EAAGm1O,EAAc5E,IAAS,CAAC,EAAG/vO,EAAgB,CAAC,EAAGujE,EAAQqxK,EAAM7E,IAG5H,CAGF,OAAOgD,GAAmB51O,EAAS2M,EAAM6qO,EAAeD,EAC1D,CAEA,IAAI57I,EAAMw6I,GAAan2O,EAAS2M,EAAMoqO,EAAe1tO,KAAKsD,GAAO4qO,GAEjE,GAAIR,EAAeC,UACjB,IAAK,IAAIU,KAAWX,EAAeC,UAAW,CAC5C,IAAIW,EAASZ,EAAeC,UAAUU,GAAS/qO,GAC3CirO,EAAWzB,GAAan2O,EAAS2M,EAAMgrO,EAAQt1O,EAAe,CAChEgkE,MAAOqxK,GACNH,IACH57I,EAAM,GAAGr6F,OAAOq6F,GAAKr6F,OAAOs2O,EAC9B,CAGF,OAAOj8I,CACT,EAEJ,EAEA,IAAK,IAAIhvF,KAAQq+N,EACJsM,EAAM3qO,GAKnB,OAAOoqO,CACT,CAUA,SAASr/H,GAAOu1H,EAAQjtO,EAASu3O,GAE/B,IAAKtK,EAAOvB,GAEV,OADAX,IACO,CAAC,EAIV,IAAI0K,EAAUpE,GAAqBrxO,EAASitO,GACxCuB,EAAW4G,GAAYp1O,EAASy1O,EAAS5F,GAAiB5C,GAE1D8J,EAAiBF,GAAuB72O,EAASwuO,EAAU+I,GAE3DjF,EAAe6C,KAEnB,GAAI7C,EAAc,CAChB,IAAK,IAAIqD,KAAmBrD,EAC1ByE,EAAeE,QAAQtB,EAAiBrD,EAAaqD,WAC9CrD,EAAaqD,GAGtBT,IAAkB,EACpB,CAEA,OAAO6B,EAAeI,SACxB,CAEA,SAAS5J,GAAMvtO,GACbA,EAAUA,GAAW,CAAC,EAOtB,IAAIc,EAAQT,KAAKS,MACjB,MAAO,CACL4uO,WAAY,WACV,OAAOA,GAAW1vO,EACpB,EACAyvO,WAAY,SAAoBoI,GAC9B,IAAIC,EAAgB,0BAEhBD,GAAcA,EAAWC,KAC3B93O,EAAQsvO,0BAA4BuI,EAAWC,GAC/C1J,GAAattO,IAGf,IAAIi3O,EAAkB,eAEtB,GAAIF,GAAcE,KAAmBF,EAAY,CAC/C,IAAI3L,EAAe/+N,SAAS0qO,EAAWE,IAElC3wM,MAAM8kM,KACTlsO,EAAQksO,aAAeA,EAE3B,CAEA,IAAI8L,EAAqB,kBAErBH,GAAcG,KAAsBH,IACtC73O,EAAQmsO,kBAAoB0L,EAAWG,GAE3C,EACAj2N,QAAS,WACP,OAAOA,GAAQjhB,EAAOd,EACxB,EACA03G,OAAQ,SAAkB6/H,GACxB,OAAQ7/H,GAAO52G,EAAOd,EAASu3O,EACjC,EACA5uK,MAAO,WACL,OAAOA,GAAM7nE,EACf,EACA8nE,OAAQ,WACN,OAAOA,GAAO9nE,EAChB,EACA+zO,OAAQ,SAAkBxuK,GACxB,OAAOwuK,GAAO/zO,EAAOulE,EAAOrmE,EAC9B,EAEJ,CAEA,SAASi4O,GAASxC,EAASz1O,GACzBA,EAAUyvO,GAAWzvO,GACrB,IAAIwuO,EAAW4G,GAAYp1O,EAASy1O,EAAS5F,IACzCkH,EAAiBF,GAAuB72O,EAASwuO,GACrD,OAAOuI,EAAeI,SACxB,CAOA,SAAS7xJ,GAAQR,EAAK9kF,GAChB8kF,EAAIozJ,sBAIRpzJ,EAAIozJ,qBAAsB,EAC1Bl4O,EAAUyvO,GAAWzvO,GAErB8kF,EAAIxhF,UAAUiqO,MAAQ,WACpB,OAAOA,GAAM7sO,KAAKL,KAAML,EAC1B,EAEA8kF,EAAIyf,MAAMmqI,GAAY5pJ,EAAK9kF,IAC7B,CAEA,IAAIs0C,GAAQ,CACV3b,QAASA,EACT2sD,QAASA,GACT2yJ,SAAU,SAAoBzJ,EAAUxuO,GACtC,OAAQi4O,GAASzJ,EAAUxuO,EAC7B,EACAkuO,YAAaA,IAGf,M,8HCz8DA,SAAStoJ,EAAQ1E,EAAG/oE,GAClB,IAAK,IAAIvV,KAAOuV,EACd+oE,EAAEt+E,GAAOuV,EAAEvV,GAEb,OAAOs+E,CACT,CAIA,IAAIi3J,EAAkB,WAClBxtI,EAAwB,SAAU9hG,GAAK,MAAO,IAAMA,EAAEk3D,WAAW,GAAGh7D,SAAS,GAAK,EAClFqzO,EAAU,OAKVxtI,EAAS,SAAUjP,GAAO,OAAOkP,mBAAmBlP,GACnD50F,QAAQoxO,EAAiBxtI,GACzB5jG,QAAQqxO,EAAS,IAAM,EAE5B,SAASttI,EAAQnP,GACf,IACE,OAAOoP,mBAAmBpP,EAC5B,CAAE,MAAOphF,GACH7S,CAGN,CACA,OAAOi0F,CACT,CAEA,SAAS08I,EACPptI,EACAqtI,EACAC,QAEoB,IAAfD,IAAwBA,EAAa,CAAC,GAE3C,IACIE,EADA/rO,EAAQ8rO,GAAeptI,EAE3B,IACEqtI,EAAc/rO,EAAMw+F,GAAS,GAC/B,CAAE,MAAO3gG,GAEPkuO,EAAc,CAAC,CACjB,CACA,IAAK,IAAI51O,KAAO01O,EAAY,CAC1B,IAAI/0O,EAAQ+0O,EAAW11O,GACvB41O,EAAY51O,GAAO2B,MAAMC,QAAQjB,GAC7BA,EAAM6E,IAAIqwO,GACVA,EAAoBl1O,EAC1B,CACA,OAAOi1O,CACT,CAEA,IAAIC,EAAsB,SAAUl1O,GAAS,OAAiB,MAATA,GAAkC,kBAAVA,EAAqBA,EAAQuJ,OAAOvJ,EAAS,EAE1H,SAAS4nG,EAAYF,GACnB,IAAIvjD,EAAM,CAAC,EAIX,OAFAujD,EAAQA,EAAM3iG,OAAOvB,QAAQ,YAAa,IAErCkkG,GAILA,EAAMtkG,MAAM,KAAKhE,SAAQ,SAAU0oG,GACjC,IAAIn8B,EAAQm8B,EAAMtkG,QAAQ,MAAO,KAAKJ,MAAM,KACxC/D,EAAMkoG,EAAO57B,EAAMo8B,SACnB5hG,EAAMwlE,EAAMzsE,OAAS,EAAIqoG,EAAO57B,EAAMtoE,KAAK,MAAQ,UAEtCwC,IAAbs+C,EAAI9kD,GACN8kD,EAAI9kD,GAAO8G,EACFnF,MAAMC,QAAQkjD,EAAI9kD,IAC3B8kD,EAAI9kD,GAAKT,KAAKuH,GAEdg+C,EAAI9kD,GAAO,CAAC8kD,EAAI9kD,GAAM8G,EAE1B,IAEOg+C,GAjBEA,CAkBX,CAEA,SAASgxL,EAAgBx1O,GACvB,IAAIwkD,EAAMxkD,EACNtB,OAAOD,KAAKuB,GACXkF,KAAI,SAAUxF,GACb,IAAI8G,EAAMxG,EAAIN,GAEd,QAAYwG,IAARM,EACF,MAAO,GAGT,GAAY,OAARA,EACF,OAAOkhG,EAAOhoG,GAGhB,GAAI2B,MAAMC,QAAQkF,GAAM,CACtB,IAAIwG,EAAS,GAWb,OAVAxG,EAAI/G,SAAQ,SAAUg2O,QACPvvO,IAATuvO,IAGS,OAATA,EACFzoO,EAAO/N,KAAKyoG,EAAOhoG,IAEnBsN,EAAO/N,KAAKyoG,EAAOhoG,GAAO,IAAMgoG,EAAO+tI,IAE3C,IACOzoO,EAAOtJ,KAAK,IACrB,CAEA,OAAOgkG,EAAOhoG,GAAO,IAAMgoG,EAAOlhG,EACpC,IACC3H,QAAO,SAAU0hF,GAAK,OAAOA,EAAEhhF,OAAS,CAAG,IAC3CmE,KAAK,KACN,KACJ,OAAO8gD,EAAO,IAAMA,EAAO,EAC7B,CAIA,IAAIkxL,EAAkB,OAEtB,SAASC,EACPC,EACApjN,EACAqjN,EACA7lB,GAEA,IAAIwlB,EAAiBxlB,GAAUA,EAAOlzN,QAAQ04O,eAE1CztI,EAAQv1E,EAASu1E,OAAS,CAAC,EAC/B,IACEA,EAAQh5E,EAAMg5E,EAChB,CAAE,MAAO3gG,GAAI,CAEb,IAAIivK,EAAQ,CACVt0K,KAAMywB,EAASzwB,MAAS6zO,GAAUA,EAAO7zO,KACzCowN,KAAOyjB,GAAUA,EAAOzjB,MAAS,CAAC,EAClCt2M,KAAM2W,EAAS3W,MAAQ,IACvB+gD,KAAMpqC,EAASoqC,MAAQ,GACvBmrC,MAAOA,EACPkqH,OAAQz/L,EAASy/L,QAAU,CAAC,EAC5BhvC,SAAU6yD,EAAYtjN,EAAUgjN,GAChCh2G,QAASo2G,EAASG,EAAYH,GAAU,IAK1C,OAHIC,IACFx/D,EAAMw/D,eAAiBC,EAAYD,EAAgBL,IAE9C92O,OAAOwuN,OAAO72C,EACvB,CAEA,SAAStnJ,EAAO1uB,GACd,GAAIgB,MAAMC,QAAQjB,GAChB,OAAOA,EAAM6E,IAAI6pB,GACZ,GAAI1uB,GAA0B,kBAAVA,EAAoB,CAC7C,IAAImkD,EAAM,CAAC,EACX,IAAK,IAAI9kD,KAAOW,EACdmkD,EAAI9kD,GAAOqvB,EAAM1uB,EAAMX,IAEzB,OAAO8kD,CACT,CACE,OAAOnkD,CAEX,CAGA,IAAI21O,EAAQL,EAAY,KAAM,CAC5B95N,KAAM,MAGR,SAASk6N,EAAaH,GACpB,IAAIpxL,EAAM,GACV,MAAOoxL,EACLpxL,EAAIyxL,QAAQL,GACZA,EAASA,EAAOt4O,OAElB,OAAOknD,CACT,CAEA,SAASsxL,EACPx3N,EACA43N,GAEA,IAAIr6N,EAAOyC,EAAIzC,KACXksF,EAAQzpF,EAAIypF,WAAsB,IAAVA,IAAmBA,EAAQ,CAAC,GACxD,IAAInrC,EAAOt+C,EAAIs+C,UAAoB,IAATA,IAAkBA,EAAO,IAEnD,IAAIjsD,EAAYulO,GAAmBV,EACnC,OAAQ35N,GAAQ,KAAOlL,EAAUo3F,GAASnrC,CAC5C,CAEA,SAASu5K,EAAan4J,EAAG/oE,EAAGmhO,GAC1B,OAAInhO,IAAM+gO,EACDh4J,IAAM/oE,IACHA,IAED+oE,EAAEniE,MAAQ5G,EAAE4G,KACdmiE,EAAEniE,KAAKhY,QAAQ6xO,EAAiB,MAAQzgO,EAAE4G,KAAKhY,QAAQ6xO,EAAiB,MAAQU,GACrFp4J,EAAEphB,OAAS3nD,EAAE2nD,MACby5K,EAAcr4J,EAAE+pB,MAAO9yF,EAAE8yF,WAClB/pB,EAAEj8E,OAAQkT,EAAElT,QAEnBi8E,EAAEj8E,OAASkT,EAAElT,OACZq0O,GACCp4J,EAAEphB,OAAS3nD,EAAE2nD,MACfy5K,EAAcr4J,EAAE+pB,MAAO9yF,EAAE8yF,QACzBsuI,EAAcr4J,EAAEi0I,OAAQh9M,EAAEg9M,UAMhC,CAEA,SAASokB,EAAer4J,EAAG/oE,GAKzB,QAJW,IAAN+oE,IAAeA,EAAI,CAAC,QACd,IAAN/oE,IAAeA,EAAI,CAAC,IAGpB+oE,IAAM/oE,EAAK,OAAO+oE,IAAM/oE,EAC7B,IAAIqhO,EAAQ53O,OAAOD,KAAKu/E,GAAGlwC,OACvByoM,EAAQ73O,OAAOD,KAAKwW,GAAG64B,OAC3B,OAAIwoM,EAAM/2O,SAAWg3O,EAAMh3O,QAGpB+2O,EAAM51J,OAAM,SAAUhhF,EAAKL,GAChC,IAAIm3O,EAAOx4J,EAAEt+E,GACT+2O,EAAOF,EAAMl3O,GACjB,GAAIo3O,IAAS/2O,EAAO,OAAO,EAC3B,IAAIg3O,EAAOzhO,EAAEvV,GAEb,OAAY,MAAR82O,GAAwB,MAARE,EAAuBF,IAASE,EAEhC,kBAATF,GAAqC,kBAATE,EAC9BL,EAAcG,EAAME,GAEtB9sO,OAAO4sO,KAAU5sO,OAAO8sO,EACjC,GACF,CAEA,SAASC,EAAiBh3B,EAASvgN,GACjC,OAGQ,IAFNugN,EAAQ9jM,KAAKhY,QAAQ6xO,EAAiB,KAAK/0O,QACzCvB,EAAOyc,KAAKhY,QAAQ6xO,EAAiB,SAErCt2O,EAAOw9D,MAAQ+iJ,EAAQ/iJ,OAASx9D,EAAOw9D,OACzCg6K,EAAcj3B,EAAQ53G,MAAO3oG,EAAO2oG,MAExC,CAEA,SAAS6uI,EAAej3B,EAASvgN,GAC/B,IAAK,IAAIM,KAAON,EACd,KAAMM,KAAOigN,GACX,OAAO,EAGX,OAAO,CACT,CAEA,SAASk3B,EAAoBxgE,GAC3B,IAAK,IAAIh3K,EAAI,EAAGA,EAAIg3K,EAAM72C,QAAQjgI,OAAQF,IAAK,CAC7C,IAAIu2O,EAASv/D,EAAM72C,QAAQngI,GAC3B,IAAK,IAAI0C,KAAQ6zO,EAAOtsB,UAAW,CACjC,IAAIhtI,EAAWs5J,EAAOtsB,UAAUvnN,GAC5B+0O,EAAMlB,EAAOmB,WAAWh1O,GAC5B,GAAKu6E,GAAaw6J,EAAlB,QACOlB,EAAOmB,WAAWh1O,GACzB,IAAK,IAAIi1O,EAAM,EAAGA,EAAMF,EAAIv3O,OAAQy3O,IAC7B16J,EAASmmF,mBAAqBq0E,EAAIE,GAAK16J,EAHZ,CAKpC,CACF,CACF,CAEA,IAAI26J,EAAO,CACTl1O,KAAM,aACN/E,YAAY,EACZiJ,MAAO,CACLlE,KAAM,CACJ0H,KAAMG,OACND,QAAS,YAGbrN,OAAQ,SAAiBq8F,EAAGr6E,GAC1B,IAAIrY,EAAQqY,EAAIrY,MACZG,EAAWkY,EAAIlY,SACf9I,EAASghB,EAAIhhB,OACb6I,EAAOmY,EAAInY,KAGfA,EAAK+wO,YAAa,EAIlB,IAAIj5O,EAAIX,EAAOu9I,eACX94I,EAAOkE,EAAMlE,KACbs0K,EAAQ/4K,EAAOiuK,OACfrsE,EAAQ5hG,EAAO65O,mBAAqB75O,EAAO65O,iBAAmB,CAAC,GAI/DC,EAAQ,EACRC,GAAW,EACf,MAAO/5O,GAAUA,EAAOg6O,cAAgBh6O,EAAQ,CAC9C,IAAIi6O,EAAYj6O,EAAOF,OAASE,EAAOF,OAAO+I,KAAO,CAAC,EAClDoxO,EAAUL,YACZE,IAEEG,EAAUC,WAAal6O,EAAOm6O,iBAAmBn6O,EAAO+wO,YAC1DgJ,GAAW,GAEb/5O,EAASA,EAAOkvG,OAClB,CAIA,GAHArmG,EAAKuxO,gBAAkBN,EAGnBC,EAAU,CACZ,IAAIM,EAAaz4I,EAAMn9F,GACnB61O,EAAkBD,GAAcA,EAAW90J,UAC/C,OAAI+0J,GAGED,EAAWE,aACbC,EAAgBF,EAAiBzxO,EAAMwxO,EAAWthE,MAAOshE,EAAWE,aAE/D55O,EAAE25O,EAAiBzxO,EAAMC,IAGzBnI,GAEX,CAEA,IAAIuhI,EAAU62C,EAAM72C,QAAQ43G,GACxBv0J,EAAY28C,GAAWA,EAAQt9C,WAAWngF,GAG9C,IAAKy9H,IAAY38C,EAEf,OADAqc,EAAMn9F,GAAQ,KACP9D,IAITihG,EAAMn9F,GAAQ,CAAE8gF,UAAWA,GAI3B18E,EAAK4xO,sBAAwB,SAAUjpI,EAAItoG,GAEzC,IAAIm5M,EAAUngF,EAAQ8pF,UAAUvnN,IAE7ByE,GAAOm5M,IAAY7wG,IAClBtoG,GAAOm5M,IAAY7wG,KAErB0wB,EAAQ8pF,UAAUvnN,GAAQyE,EAE9B,GAIEL,EAAKtJ,OAASsJ,EAAKtJ,KAAO,CAAC,IAAIm7O,SAAW,SAAUr/I,EAAGtM,GACvDmzC,EAAQ8pF,UAAUvnN,GAAQsqF,EAAM4rJ,iBAClC,EAIA9xO,EAAKtJ,KAAKyqD,KAAO,SAAU+kC,GACrBA,EAAMlmF,KAAKqxO,WACbnrJ,EAAM4rJ,mBACN5rJ,EAAM4rJ,oBAAsBz4G,EAAQ8pF,UAAUvnN,KAE9Cy9H,EAAQ8pF,UAAUvnN,GAAQsqF,EAAM4rJ,mBAMlCpB,EAAmBxgE,EACrB,EAEA,IAAIwhE,EAAcr4G,EAAQv5H,OAASu5H,EAAQv5H,MAAMlE,GAUjD,OARI81O,IACFn1J,EAAOwc,EAAMn9F,GAAO,CAClBs0K,MAAOA,EACPwhE,YAAaA,IAEfC,EAAgBj1J,EAAW18E,EAAMkwK,EAAOwhE,IAGnC55O,EAAE4kF,EAAW18E,EAAMC,EAC5B,GAGF,SAAS0xO,EAAiBj1J,EAAW18E,EAAMkwK,EAAOwhE,GAEhD,IAAIK,EAAc/xO,EAAKF,MAAQkyO,EAAa9hE,EAAOwhE,GACnD,GAAIK,EAAa,CAEfA,EAAc/xO,EAAKF,MAAQy8E,EAAO,CAAC,EAAGw1J,GAEtC,IAAIzxO,EAAQN,EAAKM,MAAQN,EAAKM,OAAS,CAAC,EACxC,IAAK,IAAI/G,KAAOw4O,EACTr1J,EAAU58E,OAAWvG,KAAOmjF,EAAU58E,QACzCQ,EAAM/G,GAAOw4O,EAAYx4O,UAClBw4O,EAAYx4O,GAGzB,CACF,CAEA,SAASy4O,EAAc9hE,EAAOx4I,GAC5B,cAAeA,GACb,IAAK,YACH,OACF,IAAK,SACH,OAAOA,EACT,IAAK,WACH,OAAOA,EAAOw4I,GAChB,IAAK,UACH,OAAOx4I,EAASw4I,EAAM47C,YAAS/rN,EACjC,QACM1B,EAQV,CAIA,SAAS4zO,EACPC,EACAt3E,EACAx5G,GAEA,IAAI+wL,EAAYD,EAAS7iN,OAAO,GAChC,GAAkB,MAAd8iN,EACF,OAAOD,EAGT,GAAkB,MAAdC,GAAmC,MAAdA,EACvB,OAAOv3E,EAAOs3E,EAGhB,IAAI7nO,EAAQuwJ,EAAKt9J,MAAM,KAKlB8jD,GAAW/2C,EAAMA,EAAMjR,OAAS,IACnCiR,EAAMowC,MAKR,IADA,IAAI23L,EAAWF,EAASx0O,QAAQ,MAAO,IAAIJ,MAAM,KACxCpE,EAAI,EAAGA,EAAIk5O,EAASh5O,OAAQF,IAAK,CACxC,IAAIm5O,EAAUD,EAASl5O,GACP,OAAZm5O,EACFhoO,EAAMowC,MACe,MAAZ43L,GACThoO,EAAMvR,KAAKu5O,EAEf,CAOA,MAJiB,KAAbhoO,EAAM,IACRA,EAAMylO,QAAQ,IAGTzlO,EAAM9M,KAAK,IACpB,CAEA,SAAS65N,EAAW1hN,GAClB,IAAI+gD,EAAO,GACPmrC,EAAQ,GAER0wI,EAAY58N,EAAKlb,QAAQ,KACzB83O,GAAa,IACf77K,EAAO/gD,EAAK/Z,MAAM22O,GAClB58N,EAAOA,EAAK/Z,MAAM,EAAG22O,IAGvB,IAAIC,EAAa78N,EAAKlb,QAAQ,KAM9B,OALI+3O,GAAc,IAChB3wI,EAAQlsF,EAAK/Z,MAAM42O,EAAa,GAChC78N,EAAOA,EAAK/Z,MAAM,EAAG42O,IAGhB,CACL78N,KAAMA,EACNksF,MAAOA,EACPnrC,KAAMA,EAEV,CAEA,SAAS+7K,EAAW98N,GAClB,OAAOA,EAAKhY,QAAQ,gBAAiB,IACvC,CAEA,IAAI+0O,EAAUv3O,MAAMC,SAAW,SAAUN,GACvC,MAA8C,kBAAvCtC,OAAO0B,UAAUyB,SAASrE,KAAKwD,EACxC,EAKI63O,EAAiBC,EACjBC,EAAUxvO,EACVyvO,EAAY7d,EACZ8d,EAAqBC,EACrBC,EAAmBC,EAOnBC,EAAc,IAAI7zK,OAAO,CAG3B,UAOA,0GACA9hE,KAAK,KAAM,KASb,SAAS6F,EAAOkvF,EAAK37F,GACnB,IAKI0nD,EALA02K,EAAS,GACTx7N,EAAM,EACN0xC,EAAQ,EACRv1B,EAAO,GACPy9N,EAAmBx8O,GAAWA,EAAQy8O,WAAa,IAGvD,MAAwC,OAAhC/0L,EAAM60L,EAAY/wM,KAAKmwD,IAAe,CAC5C,IAAIs9G,EAAIvxJ,EAAI,GACR8yJ,EAAU9yJ,EAAI,GACdg5C,EAASh5C,EAAIpT,MAKjB,GAJAv1B,GAAQ48E,EAAI32F,MAAMsvC,EAAOosD,GACzBpsD,EAAQosD,EAASu4G,EAAEx2M,OAGf+3M,EACFz7L,GAAQy7L,EAAQ,OADlB,CAKA,IAAIpgM,EAAOuhF,EAAIrnD,GACX/nC,EAASm7C,EAAI,GACbziD,EAAOyiD,EAAI,GACX9V,EAAU8V,EAAI,GACdg1L,EAAQh1L,EAAI,GACZ63E,EAAW73E,EAAI,GACfi1L,EAAWj1L,EAAI,GAGf3oC,IACFq/M,EAAOj8N,KAAK4c,GACZA,EAAO,IAGT,IAAI69N,EAAoB,MAAVrwO,GAA0B,MAAR6N,GAAgBA,IAAS7N,EACrDswO,EAAsB,MAAbt9G,GAAiC,MAAbA,EAC7Bu9G,EAAwB,MAAbv9G,GAAiC,MAAbA,EAC/Bk9G,EAAY/0L,EAAI,IAAM80L,EACtBxrD,EAAUp/I,GAAW8qM,EAEzBte,EAAOj8N,KAAK,CACV8C,KAAMA,GAAQrC,IACd2J,OAAQA,GAAU,GAClBkwO,UAAWA,EACXK,SAAUA,EACVD,OAAQA,EACRD,QAASA,EACTD,WAAYA,EACZ3rD,QAASA,EAAU+rD,EAAY/rD,GAAY2rD,EAAW,KAAO,KAAOK,EAAaP,GAAa,OA9BhG,CAgCF,CAYA,OATInoM,EAAQqnD,EAAIl5F,SACdsc,GAAQ48E,EAAIx0F,OAAOmtC,IAIjBv1B,GACFq/M,EAAOj8N,KAAK4c,GAGPq/M,CACT,CASA,SAASC,EAAS1iI,EAAK37F,GACrB,OAAOo8O,EAAiB3vO,EAAMkvF,EAAK37F,GAAUA,EAC/C,CAQA,SAASi9O,EAA0BthJ,GACjC,OAAOo6I,UAAUp6I,GAAK50F,QAAQ,WAAW,SAAU8B,GACjD,MAAO,IAAMA,EAAEk3D,WAAW,GAAGh7D,SAAS,IAAImC,aAC5C,GACF,CAQA,SAASg2O,EAAgBvhJ,GACvB,OAAOo6I,UAAUp6I,GAAK50F,QAAQ,SAAS,SAAU8B,GAC/C,MAAO,IAAMA,EAAEk3D,WAAW,GAAGh7D,SAAS,IAAImC,aAC5C,GACF,CAKA,SAASk1O,EAAkBhe,EAAQp+N,GAKjC,IAHA,IAAIotC,EAAU,IAAI7oC,MAAM65N,EAAO37N,QAGtBF,EAAI,EAAGA,EAAI67N,EAAO37N,OAAQF,IACR,kBAAd67N,EAAO77N,KAChB6qC,EAAQ7qC,GAAK,IAAImmE,OAAO,OAAS01J,EAAO77N,GAAGyuL,QAAU,KAAMjzJ,EAAM/9B,KAIrE,OAAO,SAAUkD,EAAKi0M,GAMpB,IALA,IAAIp4L,EAAO,GACP1V,EAAOnG,GAAO,CAAC,EACflD,EAAUm3M,GAAQ,CAAC,EACnBvsG,EAAS5qG,EAAQm9O,OAASF,EAA2BpyI,mBAEhDtoG,EAAI,EAAGA,EAAI67N,EAAO37N,OAAQF,IAAK,CACtC,IAAI+3M,EAAQ8jB,EAAO77N,GAEnB,GAAqB,kBAAV+3M,EAAX,CAMA,IACIohC,EADAn4O,EAAQ8F,EAAKixM,EAAMr1M,MAGvB,GAAa,MAAT1B,EAAe,CACjB,GAAI+2M,EAAMwiC,SAAU,CAEdxiC,EAAMsiC,UACR79N,GAAQu7L,EAAM/tM,QAGhB,QACF,CACE,MAAM,IAAIlH,UAAU,aAAei1M,EAAMr1M,KAAO,kBAEpD,CAEA,GAAI62O,EAAQv4O,GAAZ,CACE,IAAK+2M,EAAMuiC,OACT,MAAM,IAAIx3O,UAAU,aAAei1M,EAAMr1M,KAAO,kCAAoC2O,KAAKC,UAAUtQ,GAAS,KAG9G,GAAqB,IAAjBA,EAAMd,OAAc,CACtB,GAAI63M,EAAMwiC,SACR,SAEA,MAAM,IAAIz3O,UAAU,aAAei1M,EAAMr1M,KAAO,oBAEpD,CAEA,IAAK,IAAI6iB,EAAI,EAAGA,EAAIvkB,EAAMd,OAAQqlB,IAAK,CAGrC,GAFA4zN,EAAU9wI,EAAOrnG,EAAMukB,KAElBslB,EAAQ7qC,GAAG2C,KAAKw2O,GACnB,MAAM,IAAIr2O,UAAU,iBAAmBi1M,EAAMr1M,KAAO,eAAiBq1M,EAAMtpB,QAAU,oBAAsBp9K,KAAKC,UAAU6nO,GAAW,KAGvI38N,IAAe,IAAN+I,EAAUwyL,EAAM/tM,OAAS+tM,EAAMmiC,WAAaf,CACvD,CAGF,KAxBA,CA4BA,GAFAA,EAAUphC,EAAMqiC,SAAWO,EAAe35O,GAASqnG,EAAOrnG,IAErD6pC,EAAQ7qC,GAAG2C,KAAKw2O,GACnB,MAAM,IAAIr2O,UAAU,aAAei1M,EAAMr1M,KAAO,eAAiBq1M,EAAMtpB,QAAU,oBAAsB0qD,EAAU,KAGnH38N,GAAQu7L,EAAM/tM,OAASmvO,CARvB,CA1CA,MAHE38N,GAAQu7L,CAsDZ,CAEA,OAAOv7L,CACT,CACF,CAQA,SAASi+N,EAAcrhJ,GACrB,OAAOA,EAAI50F,QAAQ,6BAA8B,OACnD,CAQA,SAASg2O,EAAaL,GACpB,OAAOA,EAAM31O,QAAQ,gBAAiB,OACxC,CASA,SAASq2O,EAAY1mB,EAAI/0N,GAEvB,OADA+0N,EAAG/0N,KAAOA,EACH+0N,CACT,CAQA,SAAS34L,EAAO/9B,GACd,OAAOA,GAAWA,EAAQq9O,UAAY,GAAK,GAC7C,CASA,SAASC,EAAgBv+N,EAAMpd,GAE7B,IAAI47O,EAASx+N,EAAKrc,OAAOsE,MAAM,aAE/B,GAAIu2O,EACF,IAAK,IAAIh7O,EAAI,EAAGA,EAAIg7O,EAAO96O,OAAQF,IACjCZ,EAAKQ,KAAK,CACR8C,KAAM1C,EACNgK,OAAQ,KACRkwO,UAAW,KACXK,UAAU,EACVD,QAAQ,EACRD,SAAS,EACTD,UAAU,EACV3rD,QAAS,OAKf,OAAOosD,EAAWr+N,EAAMpd,EAC1B,CAUA,SAAS67O,EAAez+N,EAAMpd,EAAM3B,GAGlC,IAFA,IAAIkvE,EAAQ,GAEH3sE,EAAI,EAAGA,EAAIwc,EAAKtc,OAAQF,IAC/B2sE,EAAM/sE,KAAK65O,EAAaj9N,EAAKxc,GAAIZ,EAAM3B,GAAS0C,QAGlD,IAAI+lE,EAAS,IAAIC,OAAO,MAAQwG,EAAMtoE,KAAK,KAAO,IAAKm3B,EAAM/9B,IAE7D,OAAOo9O,EAAW30K,EAAQ9mE,EAC5B,CAUA,SAAS87O,EAAgB1+N,EAAMpd,EAAM3B,GACnC,OAAOs8O,EAAe7vO,EAAMsS,EAAM/e,GAAU2B,EAAM3B,EACpD,CAUA,SAASs8O,EAAgBle,EAAQz8N,EAAM3B,GAChC87O,EAAQn6O,KACX3B,EAAkC2B,GAAQ3B,EAC1C2B,EAAO,IAGT3B,EAAUA,GAAW,CAAC,EAOtB,IALA,IAAI09O,EAAS19O,EAAQ09O,OACjBliO,GAAsB,IAAhBxb,EAAQwb,IACd+9J,EAAQ,GAGHh3K,EAAI,EAAGA,EAAI67N,EAAO37N,OAAQF,IAAK,CACtC,IAAI+3M,EAAQ8jB,EAAO77N,GAEnB,GAAqB,kBAAV+3M,EACT/gC,GAASyjE,EAAa1iC,OACjB,CACL,IAAI/tM,EAASywO,EAAa1iC,EAAM/tM,QAC5BqlC,EAAU,MAAQ0oK,EAAMtpB,QAAU,IAEtCrvL,EAAKQ,KAAKm4M,GAENA,EAAMuiC,SACRjrM,GAAW,MAAQrlC,EAASqlC,EAAU,MAOpCA,EAJA0oK,EAAMwiC,SACHxiC,EAAMsiC,QAGCrwO,EAAS,IAAMqlC,EAAU,KAFzB,MAAQrlC,EAAS,IAAMqlC,EAAU,MAKnCrlC,EAAS,IAAMqlC,EAAU,IAGrC2nI,GAAS3nI,CACX,CACF,CAEA,IAAI6qM,EAAYO,EAAah9O,EAAQy8O,WAAa,KAC9CkB,EAAoBpkE,EAAMv0K,OAAOy3O,EAAUh6O,UAAYg6O,EAkB3D,OAZKiB,IACHnkE,GAASokE,EAAoBpkE,EAAMv0K,MAAM,GAAIy3O,EAAUh6O,QAAU82K,GAAS,MAAQkjE,EAAY,WAI9FljE,GADE/9J,EACO,IAIAkiO,GAAUC,EAAoB,GAAK,MAAQlB,EAAY,MAG3DW,EAAW,IAAI10K,OAAO,IAAM6wG,EAAOx7I,EAAM/9B,IAAW2B,EAC7D,CAcA,SAASq6O,EAAcj9N,EAAMpd,EAAM3B,GAQjC,OAPK87O,EAAQn6O,KACX3B,EAAkC2B,GAAQ3B,EAC1C2B,EAAO,IAGT3B,EAAUA,GAAW,CAAC,EAElB+e,aAAgB2pD,OACX40K,EAAev+N,EAA6Bpd,GAGjDm6O,EAAQ/8N,GACHy+N,EAAqCz+N,EAA8Bpd,EAAO3B,GAG5Ey9O,EAAsC1+N,EAA8Bpd,EAAO3B,EACpF,CACA+7O,EAAetvO,MAAQwvO,EACvBF,EAAe1d,QAAU6d,EACzBH,EAAeK,iBAAmBD,EAClCJ,EAAeO,eAAiBD,EAKhC,IAAIuB,EAAqBh8O,OAAOs2C,OAAO,MAEvC,SAAS2lM,EACP9+N,EACAo2M,EACA2oB,GAEA3oB,EAASA,GAAU,CAAC,EACpB,IACE,IAAI4oB,EACFH,EAAmB7+N,KAClB6+N,EAAmB7+N,GAAQg9N,EAAe1d,QAAQt/M,IAMrD,MAFgC,kBAArBo2M,EAAO6oB,YAA0B7oB,EAAO,GAAKA,EAAO6oB,WAExDD,EAAO5oB,EAAQ,CAAEgoB,QAAQ,GAClC,CAAE,MAAO7yO,GAKP,MAAO,EACT,CAAE,eAEO6qN,EAAO,EAChB,CACF,CAIA,SAAS8oB,EACPC,EACAr7B,EACAp4J,EACAyoK,GAEA,IAAI94M,EAAsB,kBAAR8jO,EAAmB,CAAEn/N,KAAMm/N,GAAQA,EAErD,GAAI9jO,EAAK+jO,YACP,OAAO/jO,EACF,GAAIA,EAAKnV,KAAM,CACpBmV,EAAOwrE,EAAO,CAAC,EAAGs4J,GAClB,IAAI/oB,EAAS/6M,EAAK+6M,OAIlB,OAHIA,GAA4B,kBAAXA,IACnB/6M,EAAK+6M,OAASvvI,EAAO,CAAC,EAAGuvI,IAEpB/6M,CACT,CAGA,IAAKA,EAAK2E,MAAQ3E,EAAK+6M,QAAUtS,EAAS,CACxCzoM,EAAOwrE,EAAO,CAAC,EAAGxrE,GAClBA,EAAK+jO,aAAc,EACnB,IAAIC,EAAWx4J,EAAOA,EAAO,CAAC,EAAGi9H,EAAQsS,QAAS/6M,EAAK+6M,QACvD,GAAItS,EAAQ59M,KACVmV,EAAKnV,KAAO49M,EAAQ59M,KACpBmV,EAAK+6M,OAASipB,OACT,GAAIv7B,EAAQngF,QAAQjgI,OAAQ,CACjC,IAAI47O,EAAUx7B,EAAQngF,QAAQmgF,EAAQngF,QAAQjgI,OAAS,GAAGsc,KAC1D3E,EAAK2E,KAAO8+N,EAAWQ,EAASD,EAAW,QAAWv7B,EAAQ9jM,KAChE,MAAWrX,EAGX,OAAO0S,CACT,CAEA,IAAIkkO,EAAa7d,EAAUrmN,EAAK2E,MAAQ,IACpCw/N,EAAY17B,GAAWA,EAAQ9jM,MAAS,IACxCA,EAAOu/N,EAAWv/N,KAClBu8N,EAAYgD,EAAWv/N,KAAMw/N,EAAU9zL,GAAUrwC,EAAKqwC,QACtD8zL,EAEAtzI,EAAQotI,EACViG,EAAWrzI,MACX7wF,EAAK6wF,MACLioH,GAAUA,EAAOlzN,QAAQmrG,YAGvBrrC,EAAO1lD,EAAK0lD,MAAQw+K,EAAWx+K,KAKnC,OAJIA,GAA2B,MAAnBA,EAAKpnC,OAAO,KACtBonC,EAAO,IAAMA,GAGR,CACLq+K,aAAa,EACbp/N,KAAMA,EACNksF,MAAOA,EACPnrC,KAAMA,EAEV,CAKA,IA4NI89J,GA5NA4gB,GAAU,CAAC1xO,OAAQlL,QACnB68O,GAAa,CAAC3xO,OAAQvI,OAEtB8sH,GAAO,WAAa,EAMpBqtH,GAAO,CACTz5O,KAAM,aACNkE,MAAO,CACLgD,GAAI,CACFQ,KAAM6xO,GACNxxO,UAAU,GAEZ5C,IAAK,CACHuC,KAAMG,OACND,QAAS,KAEXspI,OAAQvpI,QACR4mG,MAAO5mG,QACP8mG,UAAW9mG,QACX69C,OAAQ79C,QACR7F,QAAS6F,QACT2mG,YAAazmG,OACb2mG,iBAAkB3mG,OAClB6xO,iBAAkB,CAChBhyO,KAAMG,OACND,QAAS,QAEXk9C,MAAO,CACLp9C,KAAM8xO,GACN5xO,QAAS,UAGbrN,OAAQ,SAAiB2B,GACvB,IAAIy9O,EAAWv+O,KAEX6yN,EAAS7yN,KAAKwrG,QACdg3G,EAAUxiN,KAAKouK,OACfjtJ,EAAM0xM,EAAOvvK,QACftjD,KAAK8L,GACL02M,EACAxiN,KAAKoqD,QAEH/0B,EAAWlU,EAAIkU,SACf6jJ,EAAQ/3J,EAAI+3J,MACZjrI,EAAO9sB,EAAI8sB,KAEXxjC,EAAU,CAAC,EACX+zO,EAAoB3rB,EAAOlzN,QAAQ8+O,gBACnCC,EAAyB7rB,EAAOlzN,QAAQg/O,qBAExCC,EACmB,MAArBJ,EAA4B,qBAAuBA,EACjDK,EACwB,MAA1BH,EACI,2BACAA,EACFxrI,EACkB,MAApBlzG,KAAKkzG,YAAsB0rI,EAAsB5+O,KAAKkzG,YACpDE,EACuB,MAAzBpzG,KAAKozG,iBACDyrI,EACA7+O,KAAKozG,iBAEP0rI,EAAgB5lE,EAAMw/D,eACtBF,EAAY,KAAMoF,EAAkB1kE,EAAMw/D,gBAAiB,KAAM7lB,GACjE35C,EAEJzuK,EAAQ2oG,GAAoB4lI,EAAYx2B,EAASs8B,EAAe9+O,KAAKqzG,WACrE5oG,EAAQyoG,GAAelzG,KAAKmzG,OAASnzG,KAAKqzG,UACtC5oG,EAAQ2oG,GACRomI,EAAgBh3B,EAASs8B,GAE7B,IAAIR,EAAmB7zO,EAAQ2oG,GAAoBpzG,KAAKs+O,iBAAmB,KAEvE7/N,EAAU,SAAUxU,GAClB80O,GAAW90O,KACTs0O,EAAS73O,QACXmsN,EAAOnsN,QAAQ2uB,EAAU27F,IAEzB6hG,EAAO/wN,KAAKuzB,EAAU27F,IAG5B,EAEI3gC,EAAK,CAAEmV,MAAOu5I,IACd76O,MAAMC,QAAQnE,KAAK0pD,OACrB1pD,KAAK0pD,MAAMpnD,SAAQ,SAAU2H,GAC3BomF,EAAGpmF,GAAKwU,CACV,IAEA4xE,EAAGrwF,KAAK0pD,OAASjrC,EAGnB,IAAIzV,EAAO,CAAEQ,MAAOiB,GAEhBu0O,GACDh/O,KAAKo6F,aAAapK,YACnBhwF,KAAKo6F,aAAa5tF,SAClBxM,KAAKo6F,aAAa5tF,QAAQ,CACxByhC,KAAMA,EACNirI,MAAOA,EACP+lE,SAAUxgO,EACVqqG,SAAUr+G,EAAQyoG,GAClBgsI,cAAez0O,EAAQ2oG,KAG3B,GAAI4rI,EAAY,CAKd,GAA0B,IAAtBA,EAAW58O,OACb,OAAO48O,EAAW,GACb,GAAIA,EAAW58O,OAAS,IAAM48O,EAAW58O,OAO9C,OAA6B,IAAtB48O,EAAW58O,OAAetB,IAAMA,EAAE,OAAQ,CAAC,EAAGk+O,EAEzD,CAmBA,GAAiB,MAAbh/O,KAAK+J,IACPf,EAAKqnF,GAAKA,EACVrnF,EAAKM,MAAQ,CAAE2kC,KAAMA,EAAM,eAAgBqwM,OACtC,CAEL,IAAIz9J,EAAIs+J,GAAWn/O,KAAKq6F,OAAO7tF,SAC/B,GAAIq0E,EAAG,CAELA,EAAEilH,UAAW,EACb,IAAIs5C,EAASv+J,EAAE73E,KAAOu8E,EAAO,CAAC,EAAG1E,EAAE73E,MAGnC,IAAK,IAAI0gD,KAFT01L,EAAM/uJ,GAAK+uJ,EAAM/uJ,IAAM,CAAC,EAEN+uJ,EAAM/uJ,GAAI,CAC1B,IAAIgvJ,EAAYD,EAAM/uJ,GAAG3mC,GACrBA,KAAS2mC,IACX+uJ,EAAM/uJ,GAAG3mC,GAASxlD,MAAMC,QAAQk7O,GAAaA,EAAY,CAACA,GAE9D,CAEA,IAAK,IAAIC,KAAWjvJ,EACdivJ,KAAWF,EAAM/uJ,GAEnB+uJ,EAAM/uJ,GAAGivJ,GAASx9O,KAAKuuF,EAAGivJ,IAE1BF,EAAM/uJ,GAAGivJ,GAAW7gO,EAIxB,IAAI8gO,EAAU1+J,EAAE73E,KAAKM,MAAQi8E,EAAO,CAAC,EAAG1E,EAAE73E,KAAKM,OAC/Ci2O,EAAOtxM,KAAOA,EACdsxM,EAAO,gBAAkBjB,CAC3B,MAEEt1O,EAAKqnF,GAAKA,CAEd,CAEA,OAAOvvF,EAAEd,KAAK+J,IAAKf,EAAMhJ,KAAKq6F,OAAO7tF,QACvC,GAGF,SAASuyO,GAAY90O,GAEnB,KAAIA,EAAEomJ,SAAWpmJ,EAAEm8G,QAAUn8G,EAAEo8G,SAAWp8G,EAAEkxG,YAExClxG,EAAE6hI,wBAEW/iI,IAAbkB,EAAE2rG,QAAqC,IAAb3rG,EAAE2rG,QAAhC,CAEA,GAAI3rG,EAAE0qG,eAAiB1qG,EAAE0qG,cAAc/U,aAAc,CACnD,IAAI39F,EAASgI,EAAE0qG,cAAc/U,aAAa,UAC1C,GAAI,cAAc/6F,KAAK5C,GAAW,MACpC,CAKA,OAHIgI,EAAEs6F,gBACJt6F,EAAEs6F,kBAEG,CAVgD,CAWzD,CAEA,SAAS46I,GAAYl2O,GACnB,GAAIA,EAEF,IADA,IAAIg2F,EACK/8F,EAAI,EAAGA,EAAI+G,EAAS7G,OAAQF,IAAK,CAExC,GADA+8F,EAAQh2F,EAAS/G,GACC,MAAd+8F,EAAMl1F,IACR,OAAOk1F,EAET,GAAIA,EAAMh2F,WAAag2F,EAAQkgJ,GAAWlgJ,EAAMh2F,WAC9C,OAAOg2F,CAEX,CAEJ,CAIA,SAASha,GAASR,GAChB,IAAIQ,GAAQC,WAAaq4I,KAAS94I,EAAlC,CACAQ,GAAQC,WAAY,EAEpBq4I,GAAO94I,EAEP,IAAI+6J,EAAQ,SAAU/vO,GAAK,YAAa1G,IAAN0G,CAAiB,EAE/CgwO,EAAmB,SAAU9tI,EAAI+tI,GACnC,IAAIx9O,EAAIyvG,EAAGjxG,SAASi/O,aAChBH,EAAMt9O,IAAMs9O,EAAMt9O,EAAIA,EAAE8G,OAASw2O,EAAMt9O,EAAIA,EAAE04O,wBAC/C14O,EAAEyvG,EAAI+tI,EAEV,EAEAj7J,EAAIyf,MAAM,CACRljG,aAAc,WACRw+O,EAAMx/O,KAAKU,SAASmyN,SACtB7yN,KAAKm6O,YAAcn6O,KACnBA,KAAK4/O,QAAU5/O,KAAKU,SAASmyN,OAC7B7yN,KAAK4/O,QAAQz1L,KAAKnqD,MAClBykF,EAAIo7J,KAAKC,eAAe9/O,KAAM,SAAUA,KAAK4/O,QAAQxqB,QAAQ5S,UAE7DxiN,KAAKm6O,YAAen6O,KAAKqvG,SAAWrvG,KAAKqvG,QAAQ8qI,aAAgBn6O,KAEnEy/O,EAAiBz/O,KAAMA,KACzB,EACAuiK,UAAW,WACTk9E,EAAiBz/O,KACnB,IAGFuB,OAAOoB,eAAe8hF,EAAIxhF,UAAW,UAAW,CAC9C+O,IAAK,WAAkB,OAAOhS,KAAKm6O,YAAYyF,OAAQ,IAGzDr+O,OAAOoB,eAAe8hF,EAAIxhF,UAAW,SAAU,CAC7C+O,IAAK,WAAkB,OAAOhS,KAAKm6O,YAAY4F,MAAO,IAGxDt7J,EAAIiB,UAAU,aAAco0J,GAC5Br1J,EAAIiB,UAAU,aAAc24J,IAE5B,IAAI7gB,EAAS/4I,EAAI/jD,OAAO+8L,sBAExBD,EAAOwiB,iBAAmBxiB,EAAOyiB,iBAAmBziB,EAAO0iB,kBAAoB1iB,EAAO3uI,OA5CtC,CA6ClD,CAIA,IAAIihI,GAA8B,qBAAX3qN,OAIvB,SAASg7O,GACPC,EACAC,EACAC,EACAC,EACAC,GAGA,IAAIC,EAAWJ,GAAe,GAE1BK,EAAUJ,GAAc/+O,OAAOs2C,OAAO,MAEtC8oM,EAAUJ,GAAch/O,OAAOs2C,OAAO,MAE1CuoM,EAAO99O,SAAQ,SAAU42K,GACvB0nE,GAAeH,EAAUC,EAASC,EAASznE,EAAOsnE,EACpD,IAGA,IAAK,IAAIt+O,EAAI,EAAG8D,EAAIy6O,EAASr+O,OAAQF,EAAI8D,EAAG9D,IACtB,MAAhBu+O,EAASv+O,KACXu+O,EAAS3+O,KAAK2+O,EAAS31M,OAAO5oC,EAAG,GAAG,IACpC8D,IACA9D,KAgBJ,MAAO,CACLu+O,SAAUA,EACVC,QAASA,EACTC,QAASA,EAEb,CAEA,SAASC,GACPH,EACAC,EACAC,EACAznE,EACA/4K,EACA0gP,GAEA,IAAIniO,EAAOw6J,EAAMx6J,KACb9Z,EAAOs0K,EAAMt0K,KAmBjB,IAAIk8O,EACF5nE,EAAM4nE,qBAAuB,CAAC,EAC5BC,EAAiBC,GAActiO,EAAMve,EAAQ2gP,EAAoBzD,QAElC,mBAAxBnkE,EAAM+nE,gBACfH,EAAoB9D,UAAY9jE,EAAM+nE,eAGxC,IAAIxI,EAAS,CACX/5N,KAAMqiO,EACN32M,MAAO82M,GAAkBH,EAAgBD,GACzC/7J,WAAYm0F,EAAMn0F,YAAc,CAAEv4E,QAAS0sK,EAAMxzF,WACjDy7J,MAAOjoE,EAAMioE,MACc,kBAAhBjoE,EAAMioE,MACX,CAACjoE,EAAMioE,OACPjoE,EAAMioE,MACR,GACJh1B,UAAW,CAAC,EACZytB,WAAY,CAAC,EACbh1O,KAAMA,EACNzE,OAAQA,EACR0gP,QAASA,EACTO,SAAUloE,EAAMkoE,SAChBt0E,YAAaoM,EAAMpM,YACnBkoD,KAAM97C,EAAM87C,MAAQ,CAAC,EACrBlsN,MACiB,MAAfowK,EAAMpwK,MACF,CAAC,EACDowK,EAAMn0F,WACJm0F,EAAMpwK,MACN,CAAE0D,QAAS0sK,EAAMpwK,QAoC3B,GAjCIowK,EAAMjwK,UAoBRiwK,EAAMjwK,SAAS3G,SAAQ,SAAU28F,GAC/B,IAAIoiJ,EAAeR,EACfrF,EAAWqF,EAAU,IAAO5hJ,EAAMvgF,WAClC3V,EACJ63O,GAAeH,EAAUC,EAASC,EAAS1hJ,EAAOw5I,EAAQ4I,EAC5D,IAGGX,EAAQjI,EAAO/5N,QAClB+hO,EAAS3+O,KAAK22O,EAAO/5N,MACrBgiO,EAAQjI,EAAO/5N,MAAQ+5N,QAGL1vO,IAAhBmwK,EAAMioE,MAER,IADA,IAAIG,EAAUp9O,MAAMC,QAAQ+0K,EAAMioE,OAASjoE,EAAMioE,MAAQ,CAACjoE,EAAMioE,OACvDj/O,EAAI,EAAGA,EAAIo/O,EAAQl/O,SAAUF,EAAG,CACvC,IAAIi/O,EAAQG,EAAQp/O,GAChBmF,EASJ,IAAIk6O,EAAa,CACf7iO,KAAMyiO,EACNl4O,SAAUiwK,EAAMjwK,UAElB23O,GACEH,EACAC,EACAC,EACAY,EACAphP,EACAs4O,EAAO/5N,MAAQ,IAEnB,CAGE9Z,IACG+7O,EAAQ/7O,KACX+7O,EAAQ/7O,GAAQ6zO,GAStB,CAEA,SAASyI,GACPxiO,EACAoiO,GAEA,IAAI12M,EAAQsxM,EAAeh9N,EAAM,GAAIoiO,GAWrC,OAAO12M,CACT,CAEA,SAAS42M,GACPtiO,EACAve,EACAk9O,GAGA,OADKA,IAAU3+N,EAAOA,EAAKhY,QAAQ,MAAO,KAC1B,MAAZgY,EAAK,IACK,MAAVve,EAD0Bue,EAEvB88N,EAAYr7O,EAAOue,KAAQ,IAAMA,EAC1C,CAMA,SAAS8iO,GACPpB,EACAvtB,GAEA,IAAI1xM,EAAMg/N,GAAeC,GACrBK,EAAWt/N,EAAIs/N,SACfC,EAAUv/N,EAAIu/N,QACdC,EAAUx/N,EAAIw/N,QAElB,SAASc,EAAWrB,GAClBD,GAAeC,EAAQK,EAAUC,EAASC,EAC5C,CAEA,SAASe,EAAUC,EAAezoE,GAChC,IAAI/4K,EAAmC,kBAAlBwhP,EAA8BhB,EAAQgB,QAAiB54O,EAE5Eo3O,GAAe,CAACjnE,GAASyoE,GAAgBlB,EAAUC,EAASC,EAASxgP,GAGjEA,GAAUA,EAAOghP,MAAM/+O,QACzB+9O,GAEEhgP,EAAOghP,MAAMp5O,KAAI,SAAUo5O,GAAS,MAAQ,CAAEziO,KAAMyiO,EAAOl4O,SAAU,CAACiwK,GAAW,IACjFunE,EACAC,EACAC,EACAxgP,EAGN,CAEA,SAASyhP,IACP,OAAOnB,EAAS14O,KAAI,SAAU2W,GAAQ,OAAOgiO,EAAQhiO,EAAO,GAC9D,CAEA,SAAS/X,EACPk3O,EACAzkE,EACAs/D,GAEA,IAAIrjN,EAAWuoN,EAAkBC,EAAKzkE,GAAc,EAAOy5C,GACvDjuN,EAAOywB,EAASzwB,KAEpB,GAAIA,EAAM,CACR,IAAI6zO,EAASkI,EAAQ/7O,GAIrB,IAAK6zO,EAAU,OAAOoJ,EAAa,KAAMxsN,GACzC,IAAIysN,EAAarJ,EAAOruM,MAAM9oC,KAC3BI,QAAO,SAAUa,GAAO,OAAQA,EAAIk6O,QAAU,IAC9C10O,KAAI,SAAUxF,GAAO,OAAOA,EAAIqC,IAAM,IAMzC,GAJ+B,kBAApBywB,EAASy/L,SAClBz/L,EAASy/L,OAAS,CAAC,GAGjB17C,GAA+C,kBAAxBA,EAAa07C,OACtC,IAAK,IAAIvyN,KAAO62K,EAAa07C,SACrBvyN,KAAO8yB,EAASy/L,SAAWgtB,EAAWt+O,QAAQjB,IAAQ,IAC1D8yB,EAASy/L,OAAOvyN,GAAO62K,EAAa07C,OAAOvyN,IAMjD,OADA8yB,EAAS3W,KAAO8+N,EAAW/E,EAAO/5N,KAAM2W,EAASy/L,OAAS,gBAAmBlwN,EAAO,KAC7Ei9O,EAAapJ,EAAQpjN,EAAUqjN,EACxC,CAAO,GAAIrjN,EAAS3W,KAAM,CACxB2W,EAASy/L,OAAS,CAAC,EACnB,IAAK,IAAI5yN,EAAI,EAAGA,EAAIu+O,EAASr+O,OAAQF,IAAK,CACxC,IAAIwc,EAAO+hO,EAASv+O,GAChB6/O,EAAWrB,EAAQhiO,GACvB,GAAIsjO,GAAWD,EAAS33M,MAAO/U,EAAS3W,KAAM2W,EAASy/L,QACrD,OAAO+sB,EAAaE,EAAU1sN,EAAUqjN,EAE5C,CACF,CAEA,OAAOmJ,EAAa,KAAMxsN,EAC5B,CAEA,SAAS+rN,EACP3I,EACApjN,GAEA,IAAI4sN,EAAmBxJ,EAAO2I,SAC1BA,EAAuC,oBAArBa,EAClBA,EAAiBzJ,EAAYC,EAAQpjN,EAAU,KAAMw9L,IACrDovB,EAMJ,GAJwB,kBAAbb,IACTA,EAAW,CAAE1iO,KAAM0iO,KAGhBA,GAAgC,kBAAbA,EAMtB,OAAOS,EAAa,KAAMxsN,GAG5B,IAAIghM,EAAK+qB,EACLx8O,EAAOyxN,EAAGzxN,KACV8Z,EAAO23M,EAAG33M,KACVksF,EAAQv1E,EAASu1E,MACjBnrC,EAAOpqC,EAASoqC,KAChBq1J,EAASz/L,EAASy/L,OAKtB,GAJAlqH,EAAQyrH,EAAGnwN,eAAe,SAAWmwN,EAAGzrH,MAAQA,EAChDnrC,EAAO42J,EAAGnwN,eAAe,QAAUmwN,EAAG52J,KAAOA,EAC7Cq1J,EAASuB,EAAGnwN,eAAe,UAAYmwN,EAAGvB,OAASA,EAE/ClwN,EAAM,CAEW+7O,EAAQ/7O,GAI3B,OAAO+B,EAAM,CACXm3O,aAAa,EACbl5O,KAAMA,EACNgmG,MAAOA,EACPnrC,KAAMA,EACNq1J,OAAQA,QACP/rN,EAAWssB,EAChB,CAAO,GAAI3W,EAAM,CAEf,IAAIs/N,EAAUkE,GAAkBxjO,EAAM+5N,GAElC0J,EAAe3E,EAAWQ,EAASlpB,EAAS,6BAAgCkpB,EAAU,KAE1F,OAAOr3O,EAAM,CACXm3O,aAAa,EACbp/N,KAAMyjO,EACNv3I,MAAOA,EACPnrC,KAAMA,QACL12D,EAAWssB,EAChB,CAIE,OAAOwsN,EAAa,KAAMxsN,EAE9B,CAEA,SAAS8rN,EACP1I,EACApjN,EACAwrN,GAEA,IAAIuB,EAAc5E,EAAWqD,EAASxrN,EAASy/L,OAAS,4BAA+B+rB,EAAU,KAC7FwB,EAAe17O,EAAM,CACvBm3O,aAAa,EACbp/N,KAAM0jO,IAER,GAAIC,EAAc,CAChB,IAAIhgH,EAAUggH,EAAahgH,QACvBigH,EAAgBjgH,EAAQA,EAAQjgI,OAAS,GAE7C,OADAizB,EAASy/L,OAASutB,EAAavtB,OACxB+sB,EAAaS,EAAejtN,EACrC,CACA,OAAOwsN,EAAa,KAAMxsN,EAC5B,CAEA,SAASwsN,EACPpJ,EACApjN,EACAqjN,GAEA,OAAID,GAAUA,EAAO2I,SACZA,EAAS3I,EAAQC,GAAkBrjN,GAExCojN,GAAUA,EAAOoI,QACZM,EAAM1I,EAAQpjN,EAAUojN,EAAOoI,SAEjCrI,EAAYC,EAAQpjN,EAAUqjN,EAAgB7lB,EACvD,CAEA,MAAO,CACLlsN,MAAOA,EACP+6O,SAAUA,EACVE,UAAWA,EACXH,UAAWA,EAEf,CAEA,SAASO,GACP53M,EACA1rB,EACAo2M,GAEA,IAAIlc,EAAIl6L,EAAK/X,MAAMyjC,GAEnB,IAAKwuK,EACH,OAAO,EACF,IAAKkc,EACV,OAAO,EAGT,IAAK,IAAI5yN,EAAI,EAAG4C,EAAM8zM,EAAEx2M,OAAQF,EAAI4C,IAAO5C,EAAG,CAC5C,IAAIK,EAAM6nC,EAAM9oC,KAAKY,EAAI,GACrBK,IAEFuyN,EAAOvyN,EAAIqC,MAAQ,aAA+B,kBAATg0M,EAAE12M,GAAkBuoG,EAAOmuG,EAAE12M,IAAM02M,EAAE12M,GAElF,CAEA,OAAO,CACT,CAEA,SAASggP,GAAmBxjO,EAAM+5N,GAChC,OAAOwC,EAAYv8N,EAAM+5N,EAAOt4O,OAASs4O,EAAOt4O,OAAOue,KAAO,KAAK,EACrE,CAKA,IAAI6jO,GACFzyB,IAAa3qN,OAAOq9O,aAAer9O,OAAOq9O,YAAY3lO,IAClD1X,OAAOq9O,YACP5lO,KAEN,SAAS6lO,KACP,OAAOF,GAAK1lO,MAAMs+E,QAAQ,EAC5B,CAEA,IAAIvyF,GAAO65O,KAEX,SAASC,KACP,OAAO95O,EACT,CAEA,SAAS+5O,GAAapgP,GACpB,OAAQqG,GAAOrG,CACjB,CAIA,IAAIqgP,GAAgBrhP,OAAOs2C,OAAO,MAElC,SAASgrM,KAEH,sBAAuB19O,OAAOiwN,UAChCjwN,OAAOiwN,QAAQ0tB,kBAAoB,UAOrC,IAAIC,EAAkB59O,OAAOkwB,SAASgZ,SAAW,KAAOlpC,OAAOkwB,SAAS0Y,KACpEi1M,EAAe79O,OAAOkwB,SAAS4Y,KAAKvnC,QAAQq8O,EAAiB,IAE7DE,EAAY19J,EAAO,CAAC,EAAGpgF,OAAOiwN,QAAQ75L,OAI1C,OAHA0nN,EAAU1gP,IAAMmgP,KAChBv9O,OAAOiwN,QAAQ8tB,aAAaD,EAAW,GAAID,GAC3C79O,OAAOm3E,iBAAiB,WAAY6mK,IAC7B,WACLh+O,OAAOo3E,oBAAoB,WAAY4mK,GACzC,CACF,CAEA,SAASC,GACPvwB,EACA/mN,EACAxH,EACA++O,GAEA,GAAKxwB,EAAOh7J,IAAZ,CAIA,IAAIywE,EAAWuqF,EAAOlzN,QAAQ2jP,eACzBh7G,GASLuqF,EAAOh7J,IAAImwC,WAAU,WACnB,IAAInH,EAAW0iJ,KACXC,EAAel7G,EAASjoI,KAC1BwyN,EACA/mN,EACAxH,EACA++O,EAAQxiJ,EAAW,MAGhB2iJ,IAI4B,oBAAtBA,EAAatyO,KACtBsyO,EACGtyO,MAAK,SAAUsyO,GACdC,GAAkBD,EAAe3iJ,EACnC,IACCte,OAAM,SAAUroE,GACX7S,CAGN,IAEFo8O,GAAiBD,EAAc3iJ,GAEnC,GAtCA,CAuCF,CAEA,SAAS6iJ,KACP,IAAInhP,EAAMmgP,KACNngP,IACFqgP,GAAcrgP,GAAO,CACnB6gF,EAAGj+E,OAAOy7F,YACV1S,EAAG/oF,OAAOw7F,aAGhB,CAEA,SAASwiJ,GAAgBl5O,GACvBy5O,KACIz5O,EAAEsxB,OAAStxB,EAAEsxB,MAAMh5B,KACrBogP,GAAY14O,EAAEsxB,MAAMh5B,IAExB,CAEA,SAASghP,KACP,IAAIhhP,EAAMmgP,KACV,GAAIngP,EACF,OAAOqgP,GAAcrgP,EAEzB,CAEA,SAASohP,GAAoB30J,EAAIqR,GAC/B,IAAIujJ,EAAQvoK,SAASqB,gBACjBmnK,EAAUD,EAAM5jJ,wBAChB8jJ,EAAS90J,EAAGgR,wBAChB,MAAO,CACL5c,EAAG0gK,EAAOv5M,KAAOs5M,EAAQt5M,KAAO81D,EAAOjd,EACvC8K,EAAG41J,EAAOvjJ,IAAMsjJ,EAAQtjJ,IAAMF,EAAOnS,EAEzC,CAEA,SAAS61J,GAAiBlhP,GACxB,OAAOiO,GAASjO,EAAIugF,IAAMtyE,GAASjO,EAAIqrF,EACzC,CAEA,SAAS81J,GAAmBnhP,GAC1B,MAAO,CACLugF,EAAGtyE,GAASjO,EAAIugF,GAAKvgF,EAAIugF,EAAIj+E,OAAOy7F,YACpC1S,EAAGp9E,GAASjO,EAAIqrF,GAAKrrF,EAAIqrF,EAAI/oF,OAAOw7F,YAExC,CAEA,SAASsjJ,GAAiBphP,GACxB,MAAO,CACLugF,EAAGtyE,GAASjO,EAAIugF,GAAKvgF,EAAIugF,EAAI,EAC7B8K,EAAGp9E,GAASjO,EAAIqrF,GAAKrrF,EAAIqrF,EAAI,EAEjC,CAEA,SAASp9E,GAAUrB,GACjB,MAAoB,kBAANA,CAChB,CAEA,IAAIy0O,GAAyB,OAE7B,SAAST,GAAkBD,EAAc3iJ,GACvC,IAAIjwF,EAAmC,kBAAjB4yO,EACtB,GAAI5yO,GAA6C,kBAA1B4yO,EAAa9kJ,SAAuB,CAGzD,IAAI1P,EAAKk1J,GAAuBr/O,KAAK2+O,EAAa9kJ,UAC9CrjB,SAAS8jB,eAAeqkJ,EAAa9kJ,SAAS/5F,MAAM,IACpD02E,SAAS0jB,cAAcykJ,EAAa9kJ,UAExC,GAAI1P,EAAI,CACN,IAAIqR,EACFmjJ,EAAanjJ,QAAyC,kBAAxBmjJ,EAAanjJ,OACvCmjJ,EAAanjJ,OACb,CAAC,EACPA,EAAS4jJ,GAAgB5jJ,GACzBQ,EAAW8iJ,GAAmB30J,EAAIqR,EACpC,MAAW0jJ,GAAgBP,KACzB3iJ,EAAWmjJ,GAAkBR,GAEjC,MAAW5yO,GAAYmzO,GAAgBP,KACrC3iJ,EAAWmjJ,GAAkBR,IAG3B3iJ,IAEE,mBAAoBxlB,SAASqB,gBAAgB50E,MAC/C3C,OAAOg/O,SAAS,CACd55M,KAAMs2D,EAASzd,EACfmd,IAAKM,EAAS3S,EAEdo6C,SAAUk7G,EAAal7G,WAGzBnjI,OAAOg/O,SAAStjJ,EAASzd,EAAGyd,EAAS3S,GAG3C,CAIA,IAAIk2J,GACFt0B,IACC,WACC,IAAI75L,EAAK9wB,OAAOo2E,UAAU1lD,UAE1B,QACiC,IAA9BI,EAAGzyB,QAAQ,gBAAuD,IAA/ByyB,EAAGzyB,QAAQ,iBACd,IAAjCyyB,EAAGzyB,QAAQ,mBACe,IAA1ByyB,EAAGzyB,QAAQ,YACsB,IAAjCyyB,EAAGzyB,QAAQ,oBAKN2B,OAAOiwN,SAA+C,oBAA7BjwN,OAAOiwN,QAAQivB,UACjD,CAbC,GAeH,SAASA,GAAWj/M,EAAK1+B,GACvBg9O,KAGA,IAAItuB,EAAUjwN,OAAOiwN,QACrB,IACE,GAAI1uN,EAAS,CAEX,IAAIu8O,EAAY19J,EAAO,CAAC,EAAG6vI,EAAQ75L,OACnC0nN,EAAU1gP,IAAMmgP,KAChBttB,EAAQ8tB,aAAaD,EAAW,GAAI79M,EACtC,MACEgwL,EAAQivB,UAAU,CAAE9hP,IAAKogP,GAAYF,OAAkB,GAAIr9M,EAE/D,CAAE,MAAOn7B,GACP9E,OAAOkwB,SAAS3uB,EAAU,UAAY,UAAU0+B,EAClD,CACF,CAEA,SAAS89M,GAAc99M,GACrBi/M,GAAUj/M,GAAK,EACjB,CAGA,IAAIk/M,GAAwB,CAC1BC,WAAY,EACZC,QAAS,EACTC,UAAW,EACXC,WAAY,IAGd,SAASC,GAAiCrgP,EAAMwH,GAC9C,OAAO84O,GACLtgP,EACAwH,EACAw4O,GAAsBC,WACrB,+BAAmCjgP,EAAKwhL,SAAY,SAAc++D,GACjE/4O,GACG,4BAET,CAEA,SAASg5O,GAAiCxgP,EAAMwH,GAC9C,IAAIzB,EAAQu6O,GACVtgP,EACAwH,EACAw4O,GAAsBI,WACrB,sDAA0DpgP,EAAKwhL,SAAY,MAI9E,OADAz7K,EAAMzF,KAAO,uBACNyF,CACT,CAEA,SAAS06O,GAAgCzgP,EAAMwH,GAC7C,OAAO84O,GACLtgP,EACAwH,EACAw4O,GAAsBG,UACrB,8BAAkCngP,EAAKwhL,SAAY,SAAch6K,EAAGg6K,SAAY,2BAErF,CAEA,SAASk/D,GAA8B1gP,EAAMwH,GAC3C,OAAO84O,GACLtgP,EACAwH,EACAw4O,GAAsBE,QACrB,4BAAgClgP,EAAKwhL,SAAY,SAAch6K,EAAGg6K,SAAY,4BAEnF,CAEA,SAAS8+D,GAAmBtgP,EAAMwH,EAAIQ,EAAMgH,GAC1C,IAAIjJ,EAAQ,IAAIqJ,MAAMJ,GAMtB,OALAjJ,EAAM46O,WAAY,EAClB56O,EAAM/F,KAAOA,EACb+F,EAAMyB,GAAKA,EACXzB,EAAMiC,KAAOA,EAENjC,CACT,CAEA,IAAI66O,GAAkB,CAAC,SAAU,QAAS,QAE1C,SAASL,GAAgB/4O,GACvB,GAAkB,kBAAPA,EAAmB,OAAOA,EACrC,GAAI,SAAUA,EAAM,OAAOA,EAAG4S,KAC9B,IAAI2W,EAAW,CAAC,EAIhB,OAHA6vN,GAAgB5iP,SAAQ,SAAUC,GAC5BA,KAAOuJ,IAAMupB,EAAS9yB,GAAOuJ,EAAGvJ,GACtC,IACOgR,KAAKC,UAAU6hB,EAAU,KAAM,EACxC,CAEA,SAASrkB,GAASkJ,GAChB,OAAO3Y,OAAO0B,UAAUyB,SAASrE,KAAK6Z,GAAK1W,QAAQ,UAAY,CACjE,CAEA,SAAS2hP,GAAqBjrO,EAAK0uB,GACjC,OACE53B,GAAQkJ,IACRA,EAAI+qO,YACU,MAAbr8M,GAAqB1uB,EAAI5N,OAASs8B,EAEvC,CAIA,SAASw8M,GAAUliN,EAAOzoB,EAAI9K,GAC5B,IAAI6zE,EAAO,SAAUvvC,GACfA,GAAS/Q,EAAM9gC,OACjBuN,IAEIuzB,EAAM+Q,GACRx5B,EAAGyoB,EAAM+Q,IAAQ,WACfuvC,EAAKvvC,EAAQ,EACf,IAEAuvC,EAAKvvC,EAAQ,EAGnB,EACAuvC,EAAK,EACP,CAIA,SAAS6hK,GAAwBhjH,GAC/B,OAAO,SAAUv2H,EAAIxH,EAAMyV,GACzB,IAAIurO,GAAW,EACXthM,EAAU,EACV35C,EAAQ,KAEZk7O,GAAkBljH,GAAS,SAAU58C,EAAK+V,EAAG70F,EAAOpE,GAMlD,GAAmB,oBAARkjF,QAAkC18E,IAAZ08E,EAAI+/J,IAAmB,CACtDF,GAAW,EACXthM,IAEA,IA0BIqD,EA1BA/D,EAAU2qE,IAAK,SAAUw3H,GACvBC,GAAWD,KACbA,EAAcA,EAAYj5O,SAG5Bi5E,EAAI74B,SAAkC,oBAAhB64L,EAClBA,EACAloB,GAAKh4I,OAAOkgK,GAChB9+O,EAAMo+E,WAAWxiF,GAAOkjP,EACxBzhM,IACIA,GAAW,GACbjqC,GAEJ,IAEIwpC,EAAS0qE,IAAK,SAAUxkF,GAC1B,IAAIjH,EAAM,qCAAuCjgC,EAAM,KAAOknC,EAEzDp/B,IACHA,EAAQ2G,GAAQy4B,GACZA,EACA,IAAI/1B,MAAM8uB,GACdzoB,EAAK1P,GAET,IAGA,IACEg9C,EAAMo+B,EAAIniC,EAASC,EACrB,CAAE,MAAOt5C,GACPs5C,EAAOt5C,EACT,CACA,GAAIo9C,EACF,GAAwB,oBAAbA,EAAIn2C,KACbm2C,EAAIn2C,KAAKoyC,EAASC,OACb,CAEL,IAAIoiM,EAAOt+L,EAAIq+B,UACXigK,GAA6B,oBAAdA,EAAKz0O,MACtBy0O,EAAKz0O,KAAKoyC,EAASC,EAEvB,CAEJ,CACF,IAEK+hM,GAAYvrO,GACnB,CACF,CAEA,SAASwrO,GACPljH,EACA5nH,GAEA,OAAOu/E,GAAQqoC,EAAQt6H,KAAI,SAAU6wM,GACnC,OAAOr3M,OAAOD,KAAKs3M,EAAE7zH,YAAYh9E,KAAI,SAAUxF,GAAO,OAAOkY,EAC3Dm+L,EAAE7zH,WAAWxiF,GACbq2M,EAAEuT,UAAU5pN,GACZq2M,EAAGr2M,EACF,GACL,IACF,CAEA,SAASy3F,GAASn2F,GAChB,OAAOK,MAAMjB,UAAUhC,OAAOc,MAAM,GAAI8B,EAC1C,CAEA,IAAI2V,GACgB,oBAAX1W,QACuB,kBAAvBA,OAAOoS,YAEhB,SAASwwO,GAAY7iP,GACnB,OAAOA,EAAI8vN,YAAen5M,IAAyC,WAA5B3W,EAAIC,OAAOoS,YACpD,CAMA,SAAS+4G,GAAMxzG,GACb,IAAI66G,GAAS,EACb,OAAO,WACL,IAAIt5F,EAAO,GAAIl3B,EAAM3C,UAAUC,OAC/B,MAAQ0C,IAAQk3B,EAAMl3B,GAAQ3C,UAAW2C,GAEzC,IAAIwwH,EAEJ,OADAA,GAAS,EACF76G,EAAG1Y,MAAM/B,KAAMg8B,EACxB,CACF,CAIA,IAAI4pN,GAAU,SAAkB/yB,EAAQjvD,GACtC5jK,KAAK6yN,OAASA,EACd7yN,KAAK4jK,KAAOiiF,GAAcjiF,GAE1B5jK,KAAKwiN,QAAUq2B,EACf74O,KAAKgkD,QAAU,KACfhkD,KAAKo0N,OAAQ,EACbp0N,KAAK8lP,SAAW,GAChB9lP,KAAK+lP,cAAgB,GACrB/lP,KAAKgmP,SAAW,GAChBhmP,KAAKuvE,UAAY,EACnB,EAuNA,SAASs2K,GAAejiF,GACtB,IAAKA,EACH,GAAIksD,GAAW,CAEb,IAAIm2B,EAAS5qK,SAAS0jB,cAAc,QACpC6kE,EAAQqiF,GAAUA,EAAOrmJ,aAAa,SAAY,IAElDgkE,EAAOA,EAAKl9J,QAAQ,qBAAsB,GAC5C,MACEk9J,EAAO,IAQX,MAJuB,MAAnBA,EAAKvrI,OAAO,KACdurI,EAAO,IAAMA,GAGRA,EAAKl9J,QAAQ,MAAO,GAC7B,CAEA,SAASw/O,GACP1jC,EACAzoM,GAEA,IAAI7X,EACAi0B,EAAMjnB,KAAKinB,IAAIqsL,EAAQpgN,OAAQ2X,EAAK3X,QACxC,IAAKF,EAAI,EAAGA,EAAIi0B,EAAKj0B,IACnB,GAAIsgN,EAAQtgN,KAAO6X,EAAK7X,GACtB,MAGJ,MAAO,CACLw3H,QAAS3/G,EAAKpV,MAAM,EAAGzC,GACvByjH,UAAW5rG,EAAKpV,MAAMzC,GACtB0jH,YAAa48F,EAAQ79M,MAAMzC,GAE/B,CAEA,SAASikP,GACPC,EACAxhP,EACAsE,EACA46D,GAEA,IAAIuiL,EAASd,GAAkBa,GAAS,SAAU3gK,EAAKtG,EAAUx4E,EAAOpE,GACtE,IAAI+jP,EAAQC,GAAa9gK,EAAK7gF,GAC9B,GAAI0hP,EACF,OAAOpiP,MAAMC,QAAQmiP,GACjBA,EAAMv+O,KAAI,SAAUu+O,GAAS,OAAOp9O,EAAKo9O,EAAOnnK,EAAUx4E,EAAOpE,EAAM,IACvE2G,EAAKo9O,EAAOnnK,EAAUx4E,EAAOpE,EAErC,IACA,OAAOy3F,GAAQl2B,EAAUuiL,EAAOviL,UAAYuiL,EAC9C,CAEA,SAASE,GACP9gK,EACAljF,GAMA,MAJmB,oBAARkjF,IAETA,EAAM83I,GAAKh4I,OAAOE,IAEbA,EAAI9lF,QAAQ4C,EACrB,CAEA,SAASikP,GAAoB5gI,GAC3B,OAAOugI,GAAcvgI,EAAa,mBAAoB6gI,IAAW,EACnE,CAEA,SAASC,GAAoBhtH,GAC3B,OAAOysH,GAAczsH,EAAS,oBAAqB+sH,GACrD,CAEA,SAASA,GAAWH,EAAOnnK,GACzB,GAAIA,EACF,OAAO,WACL,OAAOmnK,EAAMvkP,MAAMo9E,EAAUh9E,UAC/B,CAEJ,CAEA,SAASwkP,GACPhhI,GAEA,OAAOwgI,GACLxgI,EACA,oBACA,SAAU2gI,EAAO9qJ,EAAG70F,EAAOpE,GACzB,OAAOqkP,GAAeN,EAAO3/O,EAAOpE,EACtC,GAEJ,CAEA,SAASqkP,GACPN,EACA3/O,EACApE,GAEA,OAAO,SAA0BuJ,EAAIxH,EAAMyV,GACzC,OAAOusO,EAAMx6O,EAAIxH,GAAM,SAAUqL,GACb,oBAAPA,IACJhJ,EAAMizO,WAAWr3O,KACpBoE,EAAMizO,WAAWr3O,GAAO,IAE1BoE,EAAMizO,WAAWr3O,GAAKT,KAAK6N,IAE7BoK,EAAKpK,EACP,GACF,CACF,CAnUAi2O,GAAQ3iP,UAAU65K,OAAS,SAAiBntK,GAC1C3P,KAAK2P,GAAKA,CACZ,EAEAi2O,GAAQ3iP,UAAUsxM,QAAU,SAAkB5kM,EAAIk3O,GAC5C7mP,KAAKo0N,MACPzkN,KAEA3P,KAAK8lP,SAAShkP,KAAK6N,GACfk3O,GACF7mP,KAAK+lP,cAAcjkP,KAAK+kP,GAG9B,EAEAjB,GAAQ3iP,UAAU6jP,QAAU,SAAkBD,GAC5C7mP,KAAKgmP,SAASlkP,KAAK+kP,EACrB,EAEAjB,GAAQ3iP,UAAU8jP,aAAe,SAC/B1xN,EACA+mB,EACA4qM,GAEE,IAEE9tE,EAFEqlE,EAAWv+O,KAIjB,IACEk5K,EAAQl5K,KAAK6yN,OAAOlsN,MAAM0uB,EAAUr1B,KAAKwiN,QAC3C,CAAE,MAAOv4M,GAKP,MAJAjK,KAAKgmP,SAAS1jP,SAAQ,SAAUqN,GAC9BA,EAAG1F,EACL,IAEMA,CACR,CACA,IAAI6nH,EAAO9xH,KAAKwiN,QAChBxiN,KAAKinP,kBACH/tE,GACA,WACEqlE,EAAS2I,YAAYhuE,GACrB98H,GAAcA,EAAW88H,GACzBqlE,EAAS4I,YACT5I,EAAS1rB,OAAOu0B,WAAW9kP,SAAQ,SAAU5C,GAC3CA,GAAQA,EAAKw5K,EAAOpnD,EACtB,IAGKysH,EAASnqB,QACZmqB,EAASnqB,OAAQ,EACjBmqB,EAASuH,SAASxjP,SAAQ,SAAUqN,GAClCA,EAAGupK,EACL,IAEJ,IACA,SAAUh/J,GACJ8sO,GACFA,EAAQ9sO,GAENA,IAAQqkO,EAASnqB,QAKd+wB,GAAoBjrO,EAAKoqO,GAAsBC,aAAezyH,IAAS+mH,IAC1E0F,EAASnqB,OAAQ,EACjBmqB,EAASwH,cAAczjP,SAAQ,SAAUqN,GACvCA,EAAGuK,EACL,KAGN,GAEJ,EAEA0rO,GAAQ3iP,UAAUgkP,kBAAoB,SAA4B/tE,EAAO98H,EAAY4qM,GACjF,IAAIzI,EAAWv+O,KAEbwiN,EAAUxiN,KAAKwiN,QACnBxiN,KAAKgkD,QAAUk1H,EACf,IAAImuE,EAAQ,SAAUntO,IAIfirO,GAAoBjrO,IAAQlJ,GAAQkJ,KACnCqkO,EAASyH,SAAS5jP,OACpBm8O,EAASyH,SAAS1jP,SAAQ,SAAUqN,GAClCA,EAAGuK,EACL,IAKA9P,QAAQC,MAAM6P,IAGlB8sO,GAAWA,EAAQ9sO,EACrB,EACIotO,EAAiBpuE,EAAM72C,QAAQjgI,OAAS,EACxCmlP,EAAmB/kC,EAAQngF,QAAQjgI,OAAS,EAChD,GACE42O,EAAY9/D,EAAOspC,IAEnB8kC,IAAmBC,GACnBruE,EAAM72C,QAAQilH,KAAoB9kC,EAAQngF,QAAQklH,GAMlD,OAJAvnP,KAAKmnP,YACDjuE,EAAMz5G,MACR2jL,GAAapjP,KAAK6yN,OAAQrQ,EAAStpC,GAAO,GAErCmuE,EAAMvC,GAAgCtiC,EAAStpC,IAGxD,IAAI/3J,EAAM+kO,GACRlmP,KAAKwiN,QAAQngF,QACb62C,EAAM72C,SAEF3I,EAAUv4G,EAAIu4G,QACd9T,EAAczkG,EAAIykG,YAClBD,EAAYxkG,EAAIwkG,UAElBziF,EAAQ,GAAGjiC,OAEbulP,GAAmB5gI,GAEnB5lH,KAAK6yN,OAAO20B,YAEZd,GAAmBhtH,GAEnB/T,EAAU59G,KAAI,SAAU6wM,GAAK,OAAOA,EAAE9rC,WAAa,IAEnDu4E,GAAuB1/H,IAGrB5iH,EAAW,SAAUrD,EAAMqa,GAC7B,GAAIwkO,EAASv6L,UAAYk1H,EACvB,OAAOmuE,EAAMtC,GAA+BviC,EAAStpC,IAEvD,IACEx5K,EAAKw5K,EAAOspC,GAAS,SAAU12M,IAClB,IAAPA,GAEFyyO,EAAS4I,WAAU,GACnBE,EAAMrC,GAA6BxiC,EAAStpC,KACnCloK,GAAQlF,IACjByyO,EAAS4I,WAAU,GACnBE,EAAMv7O,IAEQ,kBAAPA,GACQ,kBAAPA,IACc,kBAAZA,EAAG4S,MAAwC,kBAAZ5S,EAAGlH,OAG5CyiP,EAAM1C,GAAgCniC,EAAStpC,IAC7B,kBAAPptK,GAAmBA,EAAGpF,QAC/B63O,EAAS73O,QAAQoF,GAEjByyO,EAASz8O,KAAKgK,IAIhBiO,EAAKjO,EAET,GACF,CAAE,MAAO7B,GACPo9O,EAAMp9O,EACR,CACF,EAEAm7O,GAASliN,EAAOngC,GAAU,WAGxB,IAAI0kP,EAAcd,GAAmBhhI,GACjCziF,EAAQukN,EAAYxmP,OAAOs9O,EAAS1rB,OAAO60B,cAC/CtC,GAASliN,EAAOngC,GAAU,WACxB,GAAIw7O,EAASv6L,UAAYk1H,EACvB,OAAOmuE,EAAMtC,GAA+BviC,EAAStpC,IAEvDqlE,EAASv6L,QAAU,KACnB5H,EAAW88H,GACPqlE,EAAS1rB,OAAOh7J,KAClB0mL,EAAS1rB,OAAOh7J,IAAImwC,WAAU,WAC5B0xI,EAAmBxgE,EACrB,GAEJ,GACF,GACF,EAEA0sE,GAAQ3iP,UAAUikP,YAAc,SAAsBhuE,GACpDl5K,KAAKwiN,QAAUtpC,EACfl5K,KAAK2P,IAAM3P,KAAK2P,GAAGupK,EACrB,EAEA0sE,GAAQ3iP,UAAU0kP,eAAiB,WACjC,EAGF/B,GAAQ3iP,UAAU2kP,SAAW,WAG3B5nP,KAAKuvE,UAAUjtE,SAAQ,SAAUulP,GAC/BA,GACF,IACA7nP,KAAKuvE,UAAY,GAIjBvvE,KAAKwiN,QAAUq2B,EACf74O,KAAKgkD,QAAU,IACjB,EAoHA,IAAI8jM,GAA6B,SAAUlC,GACzC,SAASkC,EAAcj1B,EAAQjvD,GAC7BgiF,EAAQvlP,KAAKL,KAAM6yN,EAAQjvD,GAE3B5jK,KAAK+nP,eAAiB7yN,GAAYl1B,KAAK4jK,KACzC,CAkFA,OAhFKgiF,IAAUkC,EAAazgO,UAAYu+N,GACxCkC,EAAa7kP,UAAY1B,OAAOs2C,OAAQ+tM,GAAWA,EAAQ3iP,WAC3D6kP,EAAa7kP,UAAUD,YAAc8kP,EAErCA,EAAa7kP,UAAU0kP,eAAiB,WACtC,IAAIpJ,EAAWv+O,KAEf,KAAIA,KAAKuvE,UAAUntE,OAAS,GAA5B,CAIA,IAAIywN,EAAS7yN,KAAK6yN,OACdm1B,EAAen1B,EAAOlzN,QAAQ2jP,eAC9B2E,EAAiB7D,IAAqB4D,EAEtCC,GACFjoP,KAAKuvE,UAAUztE,KAAK+gP,MAGtB,IAAIqF,EAAqB,WACvB,IAAI1lC,EAAU+7B,EAAS/7B,QAInBntL,EAAWH,GAAYqpN,EAAS36E,MAChC26E,EAAS/7B,UAAYq2B,GAASxjN,IAAakpN,EAASwJ,gBAIxDxJ,EAASwI,aAAa1xN,GAAU,SAAU6jJ,GACpC+uE,GACF7E,GAAavwB,EAAQ35C,EAAOspC,GAAS,EAEzC,GACF,EACAr9M,OAAOm3E,iBAAiB,WAAY4rK,GACpCloP,KAAKuvE,UAAUztE,MAAK,WAClBqD,OAAOo3E,oBAAoB,WAAY2rK,EACzC,GA7BA,CA8BF,EAEAJ,EAAa7kP,UAAUklP,GAAK,SAAa1jP,GACvCU,OAAOiwN,QAAQ+yB,GAAG1jP,EACpB,EAEAqjP,EAAa7kP,UAAUnB,KAAO,SAAeuzB,EAAU+mB,EAAY4qM,GACjE,IAAIzI,EAAWv+O,KAEXmhB,EAAMnhB,KACNooP,EAAYjnO,EAAIqhM,QACpBxiN,KAAK+mP,aAAa1xN,GAAU,SAAU6jJ,GACpCmrE,GAAU7I,EAAU+C,EAAS36E,KAAOsV,EAAM4M,WAC1Cs9D,GAAa7E,EAAS1rB,OAAQ35C,EAAOkvE,GAAW,GAChDhsM,GAAcA,EAAW88H,EAC3B,GAAG8tE,EACL,EAEAc,EAAa7kP,UAAUyD,QAAU,SAAkB2uB,EAAU+mB,EAAY4qM,GACvE,IAAIzI,EAAWv+O,KAEXmhB,EAAMnhB,KACNooP,EAAYjnO,EAAIqhM,QACpBxiN,KAAK+mP,aAAa1xN,GAAU,SAAU6jJ,GACpCgqE,GAAa1H,EAAU+C,EAAS36E,KAAOsV,EAAM4M,WAC7Cs9D,GAAa7E,EAAS1rB,OAAQ35C,EAAOkvE,GAAW,GAChDhsM,GAAcA,EAAW88H,EAC3B,GAAG8tE,EACL,EAEAc,EAAa7kP,UAAUkkP,UAAY,SAAoBrlP,GACrD,GAAIozB,GAAYl1B,KAAK4jK,QAAU5jK,KAAKwiN,QAAQ18B,SAAU,CACpD,IAAI08B,EAAUg5B,EAAUx7O,KAAK4jK,KAAO5jK,KAAKwiN,QAAQ18B,UACjDhkL,EAAOuiP,GAAU7hC,GAAW0gC,GAAa1gC,EAC3C,CACF,EAEAslC,EAAa7kP,UAAUolP,mBAAqB,WAC1C,OAAOnzN,GAAYl1B,KAAK4jK,KAC1B,EAEOkkF,CACT,CAxFiC,CAwF/BlC,IAEF,SAAS1wN,GAAa0uI,GACpB,IAAIllJ,EAAOvZ,OAAOkwB,SAAS0Z,SACvBu5M,EAAgB5pO,EAAK3X,cACrBwhP,EAAgB3kF,EAAK78J,cAQzB,OAJI68J,GAAU0kF,IAAkBC,GAC6B,IAA1DD,EAAc9kP,QAAQg4O,EAAU+M,EAAgB,QACjD7pO,EAAOA,EAAK/Z,MAAMi/J,EAAKxhK,UAEjBsc,GAAQ,KAAOvZ,OAAOkwB,SAAStgB,OAAS5P,OAAOkwB,SAASoqC,IAClE,CAIA,IAAI+oL,GAA4B,SAAU5C,GACxC,SAAS4C,EAAa31B,EAAQjvD,EAAM/pI,GAClC+rN,EAAQvlP,KAAKL,KAAM6yN,EAAQjvD,GAEvB/pI,GAAY4uN,GAAczoP,KAAK4jK,OAGnC8kF,IACF,CA8FA,OA5FK9C,IAAU4C,EAAYnhO,UAAYu+N,GACvC4C,EAAYvlP,UAAY1B,OAAOs2C,OAAQ+tM,GAAWA,EAAQ3iP,WAC1DulP,EAAYvlP,UAAUD,YAAcwlP,EAIpCA,EAAYvlP,UAAU0kP,eAAiB,WACrC,IAAIpJ,EAAWv+O,KAEf,KAAIA,KAAKuvE,UAAUntE,OAAS,GAA5B,CAIA,IAAIywN,EAAS7yN,KAAK6yN,OACdm1B,EAAen1B,EAAOlzN,QAAQ2jP,eAC9B2E,EAAiB7D,IAAqB4D,EAEtCC,GACFjoP,KAAKuvE,UAAUztE,KAAK+gP,MAGtB,IAAIqF,EAAqB,WACvB,IAAI1lC,EAAU+7B,EAAS/7B,QAClBkmC,MAGLnK,EAASwI,aAAa4B,MAAW,SAAUzvE,GACrC+uE,GACF7E,GAAa7E,EAAS1rB,OAAQ35C,EAAOspC,GAAS,GAE3C4hC,IACHwE,GAAY1vE,EAAM4M,SAEtB,GACF,EACI+iE,EAAYzE,GAAoB,WAAa,aACjDj/O,OAAOm3E,iBACLusK,EACAX,GAEFloP,KAAKuvE,UAAUztE,MAAK,WAClBqD,OAAOo3E,oBAAoBssK,EAAWX,EACxC,GA/BA,CAgCF,EAEAM,EAAYvlP,UAAUnB,KAAO,SAAeuzB,EAAU+mB,EAAY4qM,GAChE,IAAIzI,EAAWv+O,KAEXmhB,EAAMnhB,KACNooP,EAAYjnO,EAAIqhM,QACpBxiN,KAAK+mP,aACH1xN,GACA,SAAU6jJ,GACR4vE,GAAS5vE,EAAM4M,UACfs9D,GAAa7E,EAAS1rB,OAAQ35C,EAAOkvE,GAAW,GAChDhsM,GAAcA,EAAW88H,EAC3B,GACA8tE,EAEJ,EAEAwB,EAAYvlP,UAAUyD,QAAU,SAAkB2uB,EAAU+mB,EAAY4qM,GACtE,IAAIzI,EAAWv+O,KAEXmhB,EAAMnhB,KACNooP,EAAYjnO,EAAIqhM,QACpBxiN,KAAK+mP,aACH1xN,GACA,SAAU6jJ,GACR0vE,GAAY1vE,EAAM4M,UAClBs9D,GAAa7E,EAAS1rB,OAAQ35C,EAAOkvE,GAAW,GAChDhsM,GAAcA,EAAW88H,EAC3B,GACA8tE,EAEJ,EAEAwB,EAAYvlP,UAAUklP,GAAK,SAAa1jP,GACtCU,OAAOiwN,QAAQ+yB,GAAG1jP,EACpB,EAEA+jP,EAAYvlP,UAAUkkP,UAAY,SAAoBrlP,GACpD,IAAI0gN,EAAUxiN,KAAKwiN,QAAQ18B,SACvB6iE,OAAcnmC,IAChB1gN,EAAOgnP,GAAStmC,GAAWomC,GAAYpmC,GAE3C,EAEAgmC,EAAYvlP,UAAUolP,mBAAqB,WACzC,OAAOM,IACT,EAEOH,CACT,CAvGgC,CAuG9B5C,IAEF,SAAS6C,GAAe7kF,GACtB,IAAIvuI,EAAWH,GAAY0uI,GAC3B,IAAK,OAAO/+J,KAAKwwB,GAEf,OADAlwB,OAAOkwB,SAAS3uB,QAAQ80O,EAAU53E,EAAO,KAAOvuI,KACzC,CAEX,CAEA,SAASqzN,KACP,IAAIhqO,EAAOiqO,KACX,MAAuB,MAAnBjqO,EAAK2Z,OAAO,KAGhBuwN,GAAY,IAAMlqO,IACX,EACT,CAEA,SAASiqO,KAGP,IAAI16M,EAAO9oC,OAAOkwB,SAAS4Y,KACvBgG,EAAQhG,EAAKzqC,QAAQ,KAEzB,OAAIywC,EAAQ,EAAY,IAExBhG,EAAOA,EAAKtpC,MAAMsvC,EAAQ,GAEnBhG,EACT,CAEA,SAASi8B,GAAQxrD,GACf,IAAIuvB,EAAO9oC,OAAOkwB,SAAS4Y,KACvB/rC,EAAI+rC,EAAKzqC,QAAQ,KACjBogK,EAAO1hK,GAAK,EAAI+rC,EAAKtpC,MAAM,EAAGzC,GAAK+rC,EACvC,OAAQ21H,EAAO,IAAMllJ,CACvB,CAEA,SAASoqO,GAAUpqO,GACb0lO,GACFC,GAAUn6K,GAAOxrD,IAEjBvZ,OAAOkwB,SAASoqC,KAAO/gD,CAE3B,CAEA,SAASkqO,GAAalqO,GAChB0lO,GACFlB,GAAah5K,GAAOxrD,IAEpBvZ,OAAOkwB,SAAS3uB,QAAQwjE,GAAOxrD,GAEnC,CAIA,IAAIqqO,GAAgC,SAAUnD,GAC5C,SAASmD,EAAiBl2B,EAAQjvD,GAChCgiF,EAAQvlP,KAAKL,KAAM6yN,EAAQjvD,GAC3B5jK,KAAKqT,MAAQ,GACbrT,KAAKi0C,OAAS,CAChB,CAoEA,OAlEK2xM,IAAUmD,EAAgB1hO,UAAYu+N,GAC3CmD,EAAgB9lP,UAAY1B,OAAOs2C,OAAQ+tM,GAAWA,EAAQ3iP,WAC9D8lP,EAAgB9lP,UAAUD,YAAc+lP,EAExCA,EAAgB9lP,UAAUnB,KAAO,SAAeuzB,EAAU+mB,EAAY4qM,GACpE,IAAIzI,EAAWv+O,KAEfA,KAAK+mP,aACH1xN,GACA,SAAU6jJ,GACRqlE,EAASlrO,MAAQkrO,EAASlrO,MAAM1O,MAAM,EAAG45O,EAAStqM,MAAQ,GAAGhzC,OAAOi4K,GACpEqlE,EAAStqM,QACTmI,GAAcA,EAAW88H,EAC3B,GACA8tE,EAEJ,EAEA+B,EAAgB9lP,UAAUyD,QAAU,SAAkB2uB,EAAU+mB,EAAY4qM,GAC1E,IAAIzI,EAAWv+O,KAEfA,KAAK+mP,aACH1xN,GACA,SAAU6jJ,GACRqlE,EAASlrO,MAAQkrO,EAASlrO,MAAM1O,MAAM,EAAG45O,EAAStqM,OAAOhzC,OAAOi4K,GAChE98H,GAAcA,EAAW88H,EAC3B,GACA8tE,EAEJ,EAEA+B,EAAgB9lP,UAAUklP,GAAK,SAAa1jP,GAC1C,IAAI85O,EAAWv+O,KAEXywO,EAAczwO,KAAKi0C,MAAQxvC,EAC/B,KAAIgsO,EAAc,GAAKA,GAAezwO,KAAKqT,MAAMjR,QAAjD,CAGA,IAAI82K,EAAQl5K,KAAKqT,MAAMo9N,GACvBzwO,KAAKinP,kBACH/tE,GACA,WACE,IAAIpnD,EAAOysH,EAAS/7B,QACpB+7B,EAAStqM,MAAQw8L,EACjB8N,EAAS2I,YAAYhuE,GACrBqlE,EAAS1rB,OAAOu0B,WAAW9kP,SAAQ,SAAU5C,GAC3CA,GAAQA,EAAKw5K,EAAOpnD,EACtB,GACF,IACA,SAAU53G,GACJirO,GAAoBjrO,EAAKoqO,GAAsBI,cACjDnG,EAAStqM,MAAQw8L,EAErB,GAhBF,CAkBF,EAEAsY,EAAgB9lP,UAAUolP,mBAAqB,WAC7C,IAAI7lC,EAAUxiN,KAAKqT,MAAMrT,KAAKqT,MAAMjR,OAAS,GAC7C,OAAOogN,EAAUA,EAAQ18B,SAAW,GACtC,EAEAijE,EAAgB9lP,UAAUkkP,UAAY,WACpC,EAGK4B,CACT,CA1EoC,CA0ElCnD,IAMEoD,GAAY,SAAoBrpP,QACjB,IAAZA,IAAqBA,EAAU,CAAC,GAKrCK,KAAK63D,IAAM,KACX73D,KAAKipP,KAAO,GACZjpP,KAAKL,QAAUA,EACfK,KAAKwnP,YAAc,GACnBxnP,KAAK0nP,aAAe,GACpB1nP,KAAKonP,WAAa,GAClBpnP,KAAKkpP,QAAU1H,GAAc7hP,EAAQygP,QAAU,GAAIpgP,MAEnD,IAAIqmG,EAAO1mG,EAAQ0mG,MAAQ,OAW3B,OAVArmG,KAAK65B,SACM,YAATwsE,IAAuB+9I,KAA0C,IAArBzkP,EAAQk6B,SAClD75B,KAAK65B,WACPwsE,EAAO,QAEJypH,KACHzpH,EAAO,YAETrmG,KAAKqmG,KAAOA,EAEJA,GACN,IAAK,UACHrmG,KAAKo1N,QAAU,IAAI0yB,GAAa9nP,KAAML,EAAQikK,MAC9C,MACF,IAAK,OACH5jK,KAAKo1N,QAAU,IAAIozB,GAAYxoP,KAAML,EAAQikK,KAAM5jK,KAAK65B,UACxD,MACF,IAAK,WACH75B,KAAKo1N,QAAU,IAAI2zB,GAAgB/oP,KAAML,EAAQikK,MACjD,MACF,QACMv8J,EAIV,EAEIm8N,GAAqB,CAAEpqD,aAAc,CAAEj2K,cAAc,IAEzD6lP,GAAU/lP,UAAU0D,MAAQ,SAAgBk3O,EAAKr7B,EAASk2B,GACxD,OAAO14O,KAAKkpP,QAAQviP,MAAMk3O,EAAKr7B,EAASk2B,EAC1C,EAEAlV,GAAmBpqD,aAAapnK,IAAM,WACpC,OAAOhS,KAAKo1N,SAAWp1N,KAAKo1N,QAAQ5S,OACtC,EAEAwmC,GAAU/lP,UAAUknD,KAAO,SAAe0N,GACtC,IAAI0mL,EAAWv+O,KA0BjB,GAjBAA,KAAKipP,KAAKnnP,KAAK+1D,GAIfA,EAAI06C,MAAM,kBAAkB,WAE1B,IAAIt+D,EAAQsqM,EAAS0K,KAAKzlP,QAAQq0D,GAC9B5jB,GAAS,GAAKsqM,EAAS0K,KAAKn+M,OAAOmJ,EAAO,GAG1CsqM,EAAS1mL,MAAQA,IAAO0mL,EAAS1mL,IAAM0mL,EAAS0K,KAAK,IAAM,MAE1D1K,EAAS1mL,KAAO0mL,EAASnpB,QAAQwyB,UACxC,KAII5nP,KAAK63D,IAAT,CAIA73D,KAAK63D,IAAMA,EAEX,IAAIu9J,EAAUp1N,KAAKo1N,QAEnB,GAAIA,aAAmB0yB,IAAgB1yB,aAAmBozB,GAAa,CACrE,IAAIW,EAAsB,SAAUC,GAClC,IAAI9kP,EAAO8wN,EAAQ5S,QACfwlC,EAAezJ,EAAS5+O,QAAQ2jP,eAChC2E,EAAiB7D,IAAqB4D,EAEtCC,GAAkB,aAAcmB,GAClChG,GAAa7E,EAAU6K,EAAc9kP,GAAM,EAE/C,EACIqjP,EAAiB,SAAUyB,GAC7Bh0B,EAAQuyB,iBACRwB,EAAoBC,EACtB,EACAh0B,EAAQ2xB,aACN3xB,EAAQizB,qBACRV,EACAA,EAEJ,CAEAvyB,EAAQt4C,QAAO,SAAU5D,GACvBqlE,EAAS0K,KAAK3mP,SAAQ,SAAUu1D,GAC9BA,EAAIkoL,OAAS7mE,CACf,GACF,GA/BA,CAgCF,EAEA8vE,GAAU/lP,UAAUgrO,WAAa,SAAqBxzN,GACpD,OAAO4uO,GAAarpP,KAAKwnP,YAAa/sO,EACxC,EAEAuuO,GAAU/lP,UAAUqmP,cAAgB,SAAwB7uO,GAC1D,OAAO4uO,GAAarpP,KAAK0nP,aAAcjtO,EACzC,EAEAuuO,GAAU/lP,UAAUoyN,UAAY,SAAoB56M,GAClD,OAAO4uO,GAAarpP,KAAKonP,WAAY3sO,EACvC,EAEAuuO,GAAU/lP,UAAUsxM,QAAU,SAAkB5kM,EAAIk3O,GAClD7mP,KAAKo1N,QAAQ7gB,QAAQ5kM,EAAIk3O,EAC3B,EAEAmC,GAAU/lP,UAAU6jP,QAAU,SAAkBD,GAC9C7mP,KAAKo1N,QAAQ0xB,QAAQD,EACvB,EAEAmC,GAAU/lP,UAAUnB,KAAO,SAAeuzB,EAAU+mB,EAAY4qM,GAC5D,IAAIzI,EAAWv+O,KAGjB,IAAKo8C,IAAe4qM,GAA8B,qBAAZvrK,QACpC,OAAO,IAAIA,SAAQ,SAAUn4B,EAASC,GACpCg7L,EAASnpB,QAAQtzN,KAAKuzB,EAAUiuB,EAASC,EAC3C,IAEAvjD,KAAKo1N,QAAQtzN,KAAKuzB,EAAU+mB,EAAY4qM,EAE5C,EAEAgC,GAAU/lP,UAAUyD,QAAU,SAAkB2uB,EAAU+mB,EAAY4qM,GAClE,IAAIzI,EAAWv+O,KAGjB,IAAKo8C,IAAe4qM,GAA8B,qBAAZvrK,QACpC,OAAO,IAAIA,SAAQ,SAAUn4B,EAASC,GACpCg7L,EAASnpB,QAAQ1uN,QAAQ2uB,EAAUiuB,EAASC,EAC9C,IAEAvjD,KAAKo1N,QAAQ1uN,QAAQ2uB,EAAU+mB,EAAY4qM,EAE/C,EAEAgC,GAAU/lP,UAAUklP,GAAK,SAAa1jP,GACpCzE,KAAKo1N,QAAQ+yB,GAAG1jP,EAClB,EAEAukP,GAAU/lP,UAAUsmP,KAAO,WACzBvpP,KAAKmoP,IAAI,EACX,EAEAa,GAAU/lP,UAAUumP,QAAU,WAC5BxpP,KAAKmoP,GAAG,EACV,EAEAa,GAAU/lP,UAAUwmP,qBAAuB,SAA+B39O,GACxE,IAAIotK,EAAQptK,EACRA,EAAGu2H,QACDv2H,EACA9L,KAAKsjD,QAAQx3C,GAAIotK,MACnBl5K,KAAKo5K,aACT,OAAKF,EAGE,GAAGj4K,OAAOc,MACf,GACAm3K,EAAM72C,QAAQt6H,KAAI,SAAU6wM,GAC1B,OAAOr3M,OAAOD,KAAKs3M,EAAE7zH,YAAYh9E,KAAI,SAAUxF,GAC7C,OAAOq2M,EAAE7zH,WAAWxiF,EACtB,GACF,KARO,EAUX,EAEAymP,GAAU/lP,UAAUqgD,QAAU,SAC5Bx3C,EACA02M,EACAp4J,GAEAo4J,EAAUA,GAAWxiN,KAAKo1N,QAAQ5S,QAClC,IAAIntL,EAAWuoN,EAAkB9xO,EAAI02M,EAASp4J,EAAQpqD,MAClDk5K,EAAQl5K,KAAK2G,MAAM0uB,EAAUmtL,GAC7B18B,EAAW5M,EAAMw/D,gBAAkBx/D,EAAM4M,SACzCliB,EAAO5jK,KAAKo1N,QAAQxxD,KACpB31H,EAAOy7M,GAAW9lF,EAAMkiB,EAAU9lL,KAAKqmG,MAC3C,MAAO,CACLhxE,SAAUA,EACV6jJ,MAAOA,EACPjrI,KAAMA,EAEN07M,aAAct0N,EACdu3B,SAAUssH,EAEd,EAEA8vE,GAAU/lP,UAAU2+O,UAAY,WAC9B,OAAO5hP,KAAKkpP,QAAQtH,WACtB,EAEAoH,GAAU/lP,UAAUy+O,SAAW,SAAmBC,EAAezoE,GAC/Dl5K,KAAKkpP,QAAQxH,SAASC,EAAezoE,GACjCl5K,KAAKo1N,QAAQ5S,UAAYq2B,GAC3B74O,KAAKo1N,QAAQ2xB,aAAa/mP,KAAKo1N,QAAQizB,qBAE3C,EAEAW,GAAU/lP,UAAUw+O,UAAY,SAAoBrB,GAIlDpgP,KAAKkpP,QAAQzH,UAAUrB,GACnBpgP,KAAKo1N,QAAQ5S,UAAYq2B,GAC3B74O,KAAKo1N,QAAQ2xB,aAAa/mP,KAAKo1N,QAAQizB,qBAE3C,EAEA9mP,OAAOmB,iBAAkBsmP,GAAU/lP,UAAWugO,IAE9C,IAAIomB,GAAcZ,GAElB,SAASK,GAActgG,EAAMtuI,GAE3B,OADAsuI,EAAKjnJ,KAAK2Y,GACH,WACL,IAAIvY,EAAI6mJ,EAAKvlJ,QAAQiX,GACjBvY,GAAK,GAAK6mJ,EAAKj+G,OAAO5oC,EAAG,EAC/B,CACF,CAEA,SAASwnP,GAAY9lF,EAAMkiB,EAAUz/E,GACnC,IAAI3nF,EAAgB,SAAT2nF,EAAkB,IAAMy/E,EAAWA,EAC9C,OAAOliB,EAAO43E,EAAU53E,EAAO,IAAMllJ,GAAQA,CAC/C,CAGAsqO,GAAU/jK,QAAUA,GACpB+jK,GAAU1wN,QAAU,QACpB0wN,GAAU7D,oBAAsBA,GAChC6D,GAAU1E,sBAAwBA,GAClC0E,GAAUa,eAAiBhR,EAEvB/oB,IAAa3qN,OAAOs/E,KACtBt/E,OAAOs/E,IAAIjlD,IAAIwpN,G,whEC5kGbc,EAAcvoP,OAAOwuN,OAAO,CAAC,GAC7B5rN,EAAUD,MAAMC,QAGpB,SAAS4lP,EAAQt6O,GACb,YAAa1G,IAAN0G,GAAyB,OAANA,CAC9B,CACA,SAAS+vO,EAAM/vO,GACX,YAAa1G,IAAN0G,GAAyB,OAANA,CAC9B,CACA,SAASu6O,EAAOv6O,GACZ,OAAa,IAANA,CACX,CACA,SAASw6O,EAAQx6O,GACb,OAAa,IAANA,CACX,CAIA,SAASy6O,EAAYhnP,GACjB,MAAyB,kBAAVA,GACM,kBAAVA,GAEU,kBAAVA,GACU,mBAAVA,CACf,CACA,SAASyN,EAAWzN,GAChB,MAAwB,oBAAVA,CAClB,CAMA,SAAS0N,EAAS/N,GACd,OAAe,OAARA,GAA+B,kBAARA,CAClC,CAIA,IAAIwhD,EAAY9iD,OAAO0B,UAAUyB,SAQjC,SAAS6Y,EAAc1a,GACnB,MAA+B,oBAAxBwhD,EAAUhkD,KAAKwC,EAC1B,CACA,SAASw/E,EAAS5yE,GACd,MAA6B,oBAAtB40C,EAAUhkD,KAAKoP,EAC1B,CAIA,SAAS06O,EAAkB9gP,GACvB,IAAI5E,EAAIy6D,WAAWzyD,OAAOpD,IAC1B,OAAO5E,GAAK,GAAKyK,KAAK6oB,MAAMtzB,KAAOA,GAAKsgI,SAAS17H,EACrD,CACA,SAASi5E,EAAUj5E,GACf,OAAQm2O,EAAMn2O,IACU,oBAAbA,EAAI6H,MACU,oBAAd7H,EAAIk5E,KACnB,CAIA,SAAS79E,EAAS2E,GACd,OAAc,MAAPA,EACD,GACAnF,MAAMC,QAAQkF,IAASkU,EAAclU,IAAQA,EAAI3E,WAAa2/C,EAC1D9wC,KAAKC,UAAUnK,EAAK+gP,EAAU,GAC9B39O,OAAOpD,EACrB,CACA,SAAS+gP,EAASxhP,EAAMS,GAEpB,OAAIA,GAAOA,EAAIghP,UACJhhP,EAAInG,MAERmG,CACX,CAKA,SAASihP,EAASjhP,GACd,IAAI5E,EAAIy6D,WAAW71D,GACnB,OAAO09B,MAAMtiC,GAAK4E,EAAM5E,CAC5B,CAKA,SAAS8lP,EAAQjvJ,EAAKkvJ,GAGlB,IAFA,IAAIziP,EAAMxG,OAAOs2C,OAAO,MACpBkxG,EAAOztD,EAAIh1F,MAAM,KACZpE,EAAI,EAAGA,EAAI6mJ,EAAK3mJ,OAAQF,IAC7B6F,EAAIghJ,EAAK7mJ,KAAM,EAEnB,OAAOsoP,EAAmB,SAAUnhP,GAAO,OAAOtB,EAAIsB,EAAItC,cAAgB,EAAI,SAAUsC,GAAO,OAAOtB,EAAIsB,EAAM,CACpH,CAImBkhP,EAAQ,kBAAkB,GAA7C,IAIIE,EAAsBF,EAAQ,8BAIlC,SAASG,EAAS7mP,EAAKq7C,GACnB,IAAIp6C,EAAMjB,EAAIzB,OACd,GAAI0C,EAAK,CAEL,GAAIo6C,IAASr7C,EAAIiB,EAAM,GAEnB,YADAjB,EAAIzB,OAAS0C,EAAM,GAGvB,IAAImvC,EAAQpwC,EAAIL,QAAQ07C,GACxB,GAAIjL,GAAS,EACT,OAAOpwC,EAAIinC,OAAOmJ,EAAO,EAEjC,CACJ,CAIA,IAAI/tC,EAAiB3E,OAAO0B,UAAUiD,eACtC,SAASuyN,EAAO51N,EAAKN,GACjB,OAAO2D,EAAe7F,KAAKwC,EAAKN,EACpC,CAIA,SAASooP,EAAOlwO,GACZ,IAAIsnF,EAAQxgG,OAAOs2C,OAAO,MAC1B,OAAO,SAAkByjD,GACrB,IAAI+kI,EAAMt+H,EAAMzG,GAChB,OAAO+kI,IAAQt+H,EAAMzG,GAAO7gF,EAAG6gF,GACnC,CACJ,CAIA,IAAIsvJ,EAAa,SACbpkP,EAAWmkP,GAAO,SAAUrvJ,GAC5B,OAAOA,EAAI50F,QAAQkkP,GAAY,SAAUpvJ,EAAGhzF,GAAK,OAAQA,EAAIA,EAAE3B,cAAgB,EAAK,GACxF,IAIIgkP,EAAaF,GAAO,SAAUrvJ,GAC9B,OAAOA,EAAIjjE,OAAO,GAAGxxB,cAAgBy0F,EAAI32F,MAAM,EACnD,IAIImmP,EAAc,aACdC,EAAYJ,GAAO,SAAUrvJ,GAC7B,OAAOA,EAAI50F,QAAQokP,EAAa,OAAO/jP,aAC3C,IASA,SAASikP,EAAavwO,EAAI8D,GACtB,SAAS0sO,EAAQpqK,GACb,IAAI76E,EAAI7D,UAAUC,OAClB,OAAO4D,EACDA,EAAI,EACAyU,EAAG1Y,MAAMwc,EAAKpc,WACdsY,EAAGpa,KAAKke,EAAKsiE,GACjBpmE,EAAGpa,KAAKke,EAClB,CAEA,OADA0sO,EAAQC,QAAUzwO,EAAGrY,OACd6oP,CACX,CACA,SAASE,EAAW1wO,EAAI8D,GACpB,OAAO9D,EAAGvR,KAAKqV,EACnB,CAEA,IAAIrV,EAAOsU,SAASva,UAAUiG,KAAOiiP,EAAaH,EAIlD,SAAS5d,EAAQrkF,EAAMxyI,GACnBA,EAAQA,GAAS,EACjB,IAAIrU,EAAI6mJ,EAAK3mJ,OAASmU,EAClBiiN,EAAM,IAAIt0N,MAAMhC,GACpB,MAAOA,IACHs2N,EAAIt2N,GAAK6mJ,EAAK7mJ,EAAIqU,GAEtB,OAAOiiN,CACX,CAIA,SAASjzI,EAAOz5E,EAAIs/O,GAChB,IAAK,IAAI7oP,KAAO6oP,EACZt/O,EAAGvJ,GAAO6oP,EAAM7oP,GAEpB,OAAOuJ,CACX,CAIA,SAASu/O,EAASxnP,GAEd,IADA,IAAIwjD,EAAM,CAAC,EACFnlD,EAAI,EAAGA,EAAI2B,EAAIzB,OAAQF,IACxB2B,EAAI3B,IACJqjF,EAAOl+B,EAAKxjD,EAAI3B,IAGxB,OAAOmlD,CACX,CAOA,SAAS2pE,EAAKnwC,EAAG/oE,EAAGtP,GAAK,CAIzB,IAAI8iP,EAAK,SAAUzqK,EAAG/oE,EAAGtP,GAAK,OAAO,CAAO,EAKxC26E,EAAW,SAAUqY,GAAK,OAAOA,CAAG,EAKxC,SAAS8U,EAAWzvB,EAAG/oE,GACnB,GAAI+oE,IAAM/oE,EACN,OAAO,EACX,IAAI6gN,EAAY/nN,EAASiwE,GACrB+3I,EAAYhoN,EAASkH,GACzB,IAAI6gN,IAAaC,EA+BZ,OAAKD,IAAcC,GACbnsN,OAAOo0E,KAAOp0E,OAAOqL,GA/B5B,IACI,IAAI+gN,EAAW30N,MAAMC,QAAQ08E,GACzBi4I,EAAW50N,MAAMC,QAAQ2T,GAC7B,GAAI+gN,GAAYC,EACZ,OAAQj4I,EAAEz+E,SAAW0V,EAAE1V,QACnBy+E,EAAE0C,OAAM,SAAUt5E,EAAG/H,GACjB,OAAOouG,EAAWrmG,EAAG6N,EAAE5V,GAC3B,IAEH,GAAI2+E,aAAajkE,MAAQ9E,aAAa8E,KACvC,OAAOikE,EAAE9jE,YAAcjF,EAAEiF,UAExB,GAAK87M,GAAaC,EAUnB,OAAO,EATP,IAAIC,EAAQx3N,OAAOD,KAAKu/E,GACpBm4I,EAAQz3N,OAAOD,KAAKwW,GACxB,OAAQihN,EAAM32N,SAAW42N,EAAM52N,QAC3B22N,EAAMx1I,OAAM,SAAUhhF,GAClB,OAAO+tG,EAAWzvB,EAAEt+E,GAAMuV,EAAEvV,GAChC,GAMZ,CACA,MAAO0H,GAEH,OAAO,CACX,CAQR,CAMA,SAASqrI,EAAazxI,EAAKwF,GACvB,IAAK,IAAInH,EAAI,EAAGA,EAAI2B,EAAIzB,OAAQF,IAC5B,GAAIouG,EAAWzsG,EAAI3B,GAAImH,GACnB,OAAOnH,EAEf,OAAQ,CACZ,CAIA,SAAS+rH,EAAKxzG,GACV,IAAI66G,GAAS,EACb,OAAO,WACEA,IACDA,GAAS,EACT76G,EAAG1Y,MAAM/B,KAAMmC,WAEvB,CACJ,CAEA,SAASopP,EAAWnoK,EAAG8K,GACnB,OAAI9K,IAAM8K,EACO,IAAN9K,GAAW,EAAIA,IAAM,EAAI8K,EAGzB9K,IAAMA,GAAK8K,IAAMA,CAEhC,CAEA,IAAIs9J,EAAW,uBACXC,EAAc,CAAC,YAAa,YAAa,UACzCC,EAAkB,CAClB,eACA,UACA,cACA,UACA,eACA,UACA,gBACA,YACA,YACA,cACA,gBACA,iBACA,gBACA,mBAGAhrN,EAAS,CAKT+8L,sBAAuBl8N,OAAOs2C,OAAO,MAIrC6rL,QAAQ,EAIRioB,eAAetkP,EAIfqnO,UAAUrnO,EAIVm7O,aAAa,EAIbjvC,aAAc,KAIdq4C,YAAa,KAIbC,gBAAiB,GAKjBC,SAAUvqP,OAAOs2C,OAAO,MAKxBk0M,cAAeT,EAKfU,eAAgBV,EAKhBW,iBAAkBX,EAIlBY,gBAAiBl7H,EAIjBm7H,qBAAsBhpK,EAKtBipK,YAAad,EAKbxhL,OAAO,EAIPuiL,gBAAiBX,GAQjBY,EAAgB,8JAIpB,SAASC,EAAWjxJ,GAChB,IAAI9yF,GAAK8yF,EAAM,IAAI57B,WAAW,GAC9B,OAAa,KAANl3D,GAAoB,KAANA,CACzB,CAIA,SAASi9E,EAAI5iF,EAAKN,EAAK8G,EAAKxH,GACxBN,OAAOoB,eAAeE,EAAKN,EAAK,CAC5BW,MAAOmG,EACPxH,aAAcA,EACduB,UAAU,EACVD,cAAc,GAEtB,CAIA,IAAIqpP,EAAS,IAAInkL,OAAO,KAAKpnE,OAAOqrP,EAAcjqP,OAAQ,YAC1D,SAAS+9N,EAAU1hN,GACf,IAAI8tO,EAAO3nP,KAAK6Z,GAAhB,CAGA,IAAI08N,EAAW18N,EAAKpY,MAAM,KAC1B,OAAO,SAAUzD,GACb,IAAK,IAAIX,EAAI,EAAGA,EAAIk5O,EAASh5O,OAAQF,IAAK,CACtC,IAAKW,EACD,OACJA,EAAMA,EAAIu4O,EAASl5O,GACvB,CACA,OAAOW,CACX,CATA,CAUJ,CAGA,IAAI4pP,EAAW,aAAe,CAAC,EAE3B38B,GAA8B,qBAAX3qN,OACnBunP,GAAK58B,IAAa3qN,OAAOo2E,UAAU1lD,UAAU9uB,cAC7C4uB,GAAO+2N,IAAM,eAAe7nP,KAAK6nP,IACjCC,GAAQD,IAAMA,GAAGlpP,QAAQ,YAAc,EACvCopP,GAASF,IAAMA,GAAGlpP,QAAQ,SAAW,EACzCkpP,IAAMA,GAAGlpP,QAAQ,WACjB,IAAIqpP,GAAQH,IAAM,uBAAuB7nP,KAAK6nP,IAC9CA,IAAM,cAAc7nP,KAAK6nP,IACzBA,IAAM,YAAY7nP,KAAK6nP,IACvB,IAoBII,GApBAC,GAAOL,IAAMA,GAAG/lP,MAAM,kBAGtBqmP,GAAc,CAAC,EAAEplJ,MACjBqlJ,IAAkB,EACtB,GAAIn9B,GACA,IACI,IAAIhZ,GAAO,CAAC,EACZv1M,OAAOoB,eAAem0M,GAAM,UAAW,CACnC9kM,IAAK,WAEDi7O,IAAkB,CACtB,IAEJ9nP,OAAOm3E,iBAAiB,eAAgB,KAAMw6H,GAClD,CACA,MAAO7sM,IAAK,CAKhB,IAAIijP,GAAoB,WAapB,YAZkBnkP,IAAd+jP,KASIA,IAPCh9B,IAA+B,qBAAX1qN,EAAAA,IAIjBA,EAAAA,EAAO,YAAgD,WAAlCA,EAAAA,EAAO,WAAW+3C,IAAIgwM,UAMhDL,EACX,EAEIpe,GAAW5e,IAAa3qN,OAAOioP,6BAEnC,SAASC,GAASC,GACd,MAAuB,oBAATA,GAAuB,cAAczoP,KAAKyoP,EAAK5oP,WACjE,CACA,IAII6oP,GAJA/zO,GAA8B,qBAAX1W,QACnBuqP,GAASvqP,SACU,qBAAZi9E,SACPstK,GAASttK,QAAQ5+E,SAIjBosP,GAFwC,qBAARprB,KAAuBkrB,GAASlrB,KAEzDA,IAIe,WAClB,SAASA,IACLniO,KAAKkS,IAAM3Q,OAAOs2C,OAAO,KAC7B,CAUA,OATAsqL,EAAIl/N,UAAUw9E,IAAM,SAAUl+E,GAC1B,OAAyB,IAAlBvC,KAAKkS,IAAI3P,EACpB,EACA4/N,EAAIl/N,UAAU1C,IAAM,SAAUgC,GAC1BvC,KAAKkS,IAAI3P,IAAO,CACpB,EACA4/N,EAAIl/N,UAAU+mM,MAAQ,WAClBhqM,KAAKkS,IAAM3Q,OAAOs2C,OAAO,KAC7B,EACOsqL,CACX,CAdsB,GAiB1B,IAAIqrB,GAAkB,KAQtB,SAASC,KACL,OAAOD,IAAmB,CAAEj0M,MAAOi0M,GACvC,CAIA,SAASE,GAAmB/7I,QACb,IAAPA,IAAiBA,EAAK,MACrBA,GACD67I,IAAmBA,GAAgBG,OAAOC,MAC9CJ,GAAkB77I,EAClBA,GAAMA,EAAGg8I,OAAOt9J,IACpB,CAKA,IAAIw9J,GAAuB,WACvB,SAASA,EAAM9jP,EAAKf,EAAMC,EAAUi5B,EAAMtnB,EAAK7a,EAAS+tP,EAAkBC,GACtE/tP,KAAK+J,IAAMA,EACX/J,KAAKgJ,KAAOA,EACZhJ,KAAKiJ,SAAWA,EAChBjJ,KAAKkiC,KAAOA,EACZliC,KAAK4a,IAAMA,EACX5a,KAAKqhC,QAAKt4B,EACV/I,KAAKD,QAAUA,EACfC,KAAKguP,eAAYjlP,EACjB/I,KAAK6uO,eAAY9lO,EACjB/I,KAAKiuP,eAAYllP,EACjB/I,KAAKuC,IAAMyG,GAAQA,EAAKzG,IACxBvC,KAAK8tP,iBAAmBA,EACxB9tP,KAAK86O,uBAAoB/xO,EACzB/I,KAAKG,YAAS4I,EACd/I,KAAK69O,KAAM,EACX79O,KAAK8lM,UAAW,EAChB9lM,KAAKkuP,cAAe,EACpBluP,KAAKmuP,WAAY,EACjBnuP,KAAKouP,UAAW,EAChBpuP,KAAKquP,QAAS,EACdruP,KAAK+tP,aAAeA,EACpB/tP,KAAKsuP,eAAYvlP,EACjB/I,KAAKuuP,oBAAqB,CAC9B,CAUA,OATAhtP,OAAOoB,eAAekrP,EAAM5qP,UAAW,QAAS,CAG5C+O,IAAK,WACD,OAAOhS,KAAK86O,iBAChB,EACAj5O,YAAY,EACZsB,cAAc,IAEX0qP,CACX,CApC2B,GAqCvBW,GAAmB,SAAUtsN,QAChB,IAATA,IAAmBA,EAAO,IAC9B,IAAI9oB,EAAO,IAAIy0O,GAGf,OAFAz0O,EAAK8oB,KAAOA,EACZ9oB,EAAK+0O,WAAY,EACV/0O,CACX,EACA,SAASq1O,GAAgBplP,GACrB,OAAO,IAAIwkP,QAAM9kP,OAAWA,OAAWA,EAAW0D,OAAOpD,GAC7D,CAKA,SAASqlP,GAAWx/J,GAChB,IAAIy/J,EAAS,IAAId,GAAM3+J,EAAMnlF,IAAKmlF,EAAMlmF,KAIxCkmF,EAAMjmF,UAAYimF,EAAMjmF,SAAStE,QAASuqF,EAAMhtD,KAAMgtD,EAAMt0E,IAAKs0E,EAAMnvF,QAASmvF,EAAM4+J,iBAAkB5+J,EAAM6+J,cAU9G,OATAY,EAAOttN,GAAK6tD,EAAM7tD,GAClBstN,EAAO7oD,SAAW52G,EAAM42G,SACxB6oD,EAAOpsP,IAAM2sF,EAAM3sF,IACnBosP,EAAOR,UAAYj/J,EAAMi/J,UACzBQ,EAAOX,UAAY9+J,EAAM8+J,UACzBW,EAAO9f,UAAY3/I,EAAM2/I,UACzB8f,EAAOV,UAAY/+J,EAAM++J,UACzBU,EAAOL,UAAYp/J,EAAMo/J,UACzBK,EAAOP,UAAW,EACXO,CACX,CA4B2B,oBAApBC,iBAAiCA,gBAKxC,IAAIC,GAAQ,EACRC,GAAqB,GACrBC,GAAc,WACd,IAAK,IAAI7sP,EAAI,EAAGA,EAAI4sP,GAAmB1sP,OAAQF,IAAK,CAChD,IAAI8sP,EAAMF,GAAmB5sP,GAC7B8sP,EAAIC,KAAOD,EAAIC,KAAKvtP,QAAO,SAAUsG,GAAK,OAAOA,CAAG,IACpDgnP,EAAIE,UAAW,CACnB,CACAJ,GAAmB1sP,OAAS,CAChC,EAMI+sP,GAAqB,WACrB,SAASA,IAELnvP,KAAKkvP,UAAW,EAChBlvP,KAAK44B,GAAKi2N,KACV7uP,KAAKivP,KAAO,EAChB,CAyCA,OAxCAE,EAAIlsP,UAAUmsP,OAAS,SAAUjxB,GAC7Bn+N,KAAKivP,KAAKntP,KAAKq8N,EACnB,EACAgxB,EAAIlsP,UAAUosP,UAAY,SAAUlxB,GAKhCn+N,KAAKivP,KAAKjvP,KAAKivP,KAAKzrP,QAAQ26N,IAAQ,KAC/Bn+N,KAAKkvP,WACNlvP,KAAKkvP,UAAW,EAChBJ,GAAmBhtP,KAAK9B,MAEhC,EACAmvP,EAAIlsP,UAAUqsP,OAAS,SAAUlqI,GACzB+pI,EAAIltP,QACJktP,EAAIltP,OAAOstP,OAAOvvP,KAK1B,EACAmvP,EAAIlsP,UAAUusP,OAAS,SAAUpqI,GAE7B,IAAI6pI,EAAOjvP,KAAKivP,KAAKvtP,QAAO,SAAUsG,GAAK,OAAOA,CAAG,IAOrD,IAAK,IAAI9F,EAAI,EAAG8D,EAAIipP,EAAK7sP,OAAQF,EAAI8D,EAAG9D,IAAK,CACzC,IAAIi8N,EAAM8wB,EAAK/sP,GACXmF,EAIJ82N,EAAI7/K,QACR,CACJ,EACO6wM,CACX,CAhDyB,GAoDzBA,GAAIltP,OAAS,KACb,IAAIwtP,GAAc,GAClB,SAASC,GAAWztP,GAChBwtP,GAAY3tP,KAAKG,GACjBktP,GAAIltP,OAASA,CACjB,CACA,SAAS0tP,KACLF,GAAYhsM,MACZ0rM,GAAIltP,OAASwtP,GAAYA,GAAYrtP,OAAS,EAClD,CAMA,IAAIwtP,GAAa1rP,MAAMjB,UACnB4sP,GAAetuP,OAAOs2C,OAAO+3M,IAC7BE,GAAiB,CACjB,OACA,MACA,QACA,UACA,SACA,OACA,WAKJA,GAAextP,SAAQ,SAAUowB,GAE7B,IAAIq9N,EAAWH,GAAWl9N,GAC1B+yD,EAAIoqK,GAAcn9N,GAAQ,WAEtB,IADA,IAAIsJ,EAAO,GACFC,EAAK,EAAGA,EAAK95B,UAAUC,OAAQ65B,IACpCD,EAAKC,GAAM95B,UAAU85B,GAEzB,IAEIwxI,EAFA59J,EAASkgP,EAAShuP,MAAM/B,KAAMg8B,GAC9Bg0N,EAAKhwP,KAAKiwP,OAEd,OAAQv9N,GACJ,IAAK,OACL,IAAK,UACD+6I,EAAWzxI,EACX,MACJ,IAAK,SACDyxI,EAAWzxI,EAAKr3B,MAAM,GACtB,MAeR,OAbI8oK,GACAuiF,EAAGE,aAAaziF,GAUhBuiF,EAAGhB,IAAIQ,SAEJ3/O,CACX,GACJ,IAEA,IAAIsgP,GAAY5uP,OAAOqhF,oBAAoBitK,IACvCO,GAAmB,CAAC,EAKpBC,IAAgB,EACpB,SAASC,GAAgBptP,GACrBmtP,GAAgBntP,CACpB,CAEA,IAAIqtP,GAAU,CACVf,OAAQx+H,EACRs+H,OAAQt+H,EACRo+H,OAAQp+H,EACRq+H,UAAWr+H,GAQXw/H,GAA0B,WAC1B,SAASA,EAASttP,EAAOutP,EAASC,GAU9B,QATgB,IAAZD,IAAsBA,GAAU,QACvB,IAATC,IAAmBA,GAAO,GAC9B1wP,KAAKkD,MAAQA,EACblD,KAAKywP,QAAUA,EACfzwP,KAAK0wP,KAAOA,EAEZ1wP,KAAKgvP,IAAM0B,EAAOH,GAAU,IAAIpB,GAChCnvP,KAAK2wP,QAAU,EACflrK,EAAIviF,EAAO,SAAUlD,MACjBmE,EAAQjB,GAAQ,CAChB,IAAKwtP,EACD,GAAIjE,EACAvpP,EAAMmkB,UAAYwoO,QAIlB,IAAK,IAAI3tP,EAAI,EAAG8D,EAAImqP,GAAU/tP,OAAQF,EAAI8D,EAAG9D,IAAK,CAC9C,IAAIK,EAAM4tP,GAAUjuP,GACpBujF,EAAIviF,EAAOX,EAAKstP,GAAattP,GACjC,CAGHkuP,GACDzwP,KAAKkwP,aAAahtP,EAE1B,KAOI,KAAI5B,EAAOC,OAAOD,KAAK4B,GACvB,IAAShB,EAAI,EAAGA,EAAIZ,EAAKc,OAAQF,IAAK,CAC9BK,EAAMjB,EAAKY,GACf49O,GAAe58O,EAAOX,EAAK6tP,QAAkBrnP,EAAW0nP,EAASC,EACrE,CAJ6B,CAMrC,CASA,OALAF,EAASvtP,UAAUitP,aAAe,SAAUhtP,GACxC,IAAK,IAAIhB,EAAI,EAAG8D,EAAI9C,EAAMd,OAAQF,EAAI8D,EAAG9D,IACrCwsH,GAAQxrH,EAAMhB,IAAI,EAAOlC,KAAK0wP,KAEtC,EACOF,CACX,CAlD8B,GAyD9B,SAAS9hI,GAAQxrH,EAAOutP,EAASG,GAC7B,OAAI1tP,GAASu1N,EAAOv1N,EAAO,WAAaA,EAAM+sP,kBAAkBO,GACrDttP,EAAM+sP,QAEbI,KACCO,GAAsB1D,OACtB/oP,EAAQjB,KAAUqa,EAAcra,KACjC3B,OAAOsvP,aAAa3tP,IACnBA,EAAM4tP,UACNC,GAAM7tP,IACLA,aAAiB2qP,QANvB,EAOW,IAAI2C,GAASttP,EAAOutP,EAASG,EAE5C,CAIA,SAAS9Q,GAAej9O,EAAKN,EAAK8G,EAAK2nP,EAAcP,EAASC,EAAMO,QACnC,IAAzBA,IAAmCA,GAAuB,GAC9D,IAAIjC,EAAM,IAAIG,GACVp6N,EAAWxzB,OAAOK,yBAAyBiB,EAAKN,GACpD,IAAIwyB,IAAsC,IAA1BA,EAAS5xB,aAAzB,CAIA,IAAIi6B,EAASrI,GAAYA,EAAS/iB,IAC9Bk/O,EAASn8N,GAAYA,EAAS7iB,IAC5BkrB,IAAU8zN,GACX7nP,IAAQ+mP,IAAyC,IAArBjuP,UAAUC,SACvCiH,EAAMxG,EAAIN,IAEd,IAAI4uP,EAAUV,EAAUpnP,GAAOA,EAAI4mP,OAASvhI,GAAQrlH,GAAK,EAAOqnP,GA+DhE,OA9DAnvP,OAAOoB,eAAeE,EAAKN,EAAK,CAC5BV,YAAY,EACZsB,cAAc,EACd6O,IAAK,WACD,IAAI9O,EAAQk6B,EAASA,EAAO/8B,KAAKwC,GAAOwG,EAmBxC,OAlBI8lP,GAAIltP,SASA+sP,EAAIM,SAEJ6B,IACAA,EAAQnC,IAAIM,SACRnrP,EAAQjB,IACRkuP,GAAYluP,KAIjB6tP,GAAM7tP,KAAWutP,EAAUvtP,EAAMA,MAAQA,CACpD,EACAgP,IAAK,SAAwBu/M,GACzB,IAAIvuN,EAAQk6B,EAASA,EAAO/8B,KAAKwC,GAAOwG,EACxC,GAAKkiP,EAAWroP,EAAOuuN,GAAvB,CAMA,GAAIy/B,EACAA,EAAO7wP,KAAKwC,EAAK4uN,OAEhB,IAAIr0L,EAEL,OAEC,IAAKqzN,GAAWM,GAAM7tP,KAAW6tP,GAAMt/B,GAExC,YADAvuN,EAAMA,MAAQuuN,GAIdpoN,EAAMooN,CACV,CACA0/B,EAAUV,EAAUh/B,GAAUA,EAAOw+B,OAASvhI,GAAQ+iG,GAAQ,EAAOi/B,GAWjE1B,EAAIQ,QA7BR,CA+BJ,IAEGR,CAvEP,CAwEJ,CACA,SAAS98O,GAAIjQ,EAAQM,EAAK8G,GAItB,IAAIgoP,GAAWpvP,GAAf,CAIA,IAAI+tP,EAAK/tP,EAAOguP,OAChB,OAAI9rP,EAAQlC,IAAWkoP,EAAkB5nP,IACrCN,EAAOG,OAAS8M,KAAKinB,IAAIl0B,EAAOG,OAAQG,GACxCN,EAAO6oC,OAAOvoC,EAAK,EAAG8G,GAElB2mP,IAAOA,EAAGS,SAAWT,EAAGU,MACxBhiI,GAAQrlH,GAAK,GAAO,GAEjBA,GAEP9G,KAAON,KAAYM,KAAOhB,OAAO0B,YACjChB,EAAOM,GAAO8G,EACPA,GAEPpH,EAAOqmM,QAAW0nD,GAAMA,EAAGW,QAIpBtnP,EAEN2mP,GAILlQ,GAAekQ,EAAG9sP,MAAOX,EAAK8G,OAAKN,EAAWinP,EAAGS,QAAST,EAAGU,MAWzDV,EAAGhB,IAAIQ,SAEJnmP,IAhBHpH,EAAOM,GAAO8G,EACPA,EAvBX,CAuCJ,CACA,SAASslE,GAAI1sE,EAAQM,GAIjB,GAAI4B,EAAQlC,IAAWkoP,EAAkB5nP,GACrCN,EAAO6oC,OAAOvoC,EAAK,OADvB,CAIA,IAAIytP,EAAK/tP,EAAOguP,OACZhuP,EAAOqmM,QAAW0nD,GAAMA,EAAGW,SAM3BU,GAAWpvP,IAKVw2N,EAAOx2N,EAAQM,YAGbN,EAAOM,GACTytP,GAWDA,EAAGhB,IAAIQ,SA5BX,CA8BJ,CAKA,SAAS4B,GAAYluP,GACjB,IAAK,IAAI+G,OAAI,EAAQ/H,EAAI,EAAG8D,EAAI9C,EAAMd,OAAQF,EAAI8D,EAAG9D,IACjD+H,EAAI/G,EAAMhB,GACN+H,GAAKA,EAAEgmP,QACPhmP,EAAEgmP,OAAOjB,IAAIM,SAEbnrP,EAAQ8F,IACRmnP,GAAYnnP,EAGxB,CAEA,SAASqnP,GAASrvP,GAEd,OADAsvP,GAAatvP,GAAQ,GACdA,CACX,CAMA,SAASuvP,GAAgBvvP,GAGrB,OAFAsvP,GAAatvP,GAAQ,GACrBwjF,EAAIxjF,EAAQ,iBAAgD,GACrDA,CACX,CACA,SAASsvP,GAAatvP,EAAQwuP,GAE1B,IAAKY,GAAWpvP,GAAS,CAUZysH,GAAQzsH,EAAQwuP,EAASvD,MAC9B7lP,CAQR,CACJ,CACA,SAASoqP,GAAWvuP,GAChB,OAAImuP,GAAWnuP,GACJuuP,GAAWvuP,EAAM,eAElBA,IAASA,EAAM+sP,OAC7B,CACA,SAASyB,GAAUxuP,GACf,SAAUA,IAASA,EAAMyuP,cAC7B,CACA,SAASN,GAAWnuP,GAChB,SAAUA,IAASA,EAAM0uP,eAC7B,CACA,SAASC,GAAQ3uP,GACb,OAAOuuP,GAAWvuP,IAAUmuP,GAAWnuP,EAC3C,CACA,SAAS4uP,GAAMC,GACX,IAAIlU,EAAMkU,GAAYA,EAAS,WAC/B,OAAOlU,EAAMiU,GAAMjU,GAAOkU,CAC9B,CACA,SAASC,GAAQ9uP,GAKb,OAHI3B,OAAOsvP,aAAa3tP,IACpBuiF,EAAIviF,EAAO,YAAqC,GAE7CA,CACX,CAYA,IAAI+uP,GAAU,YACd,SAASlB,GAAM9iK,GACX,SAAUA,IAAqB,IAAhBA,EAAEo8J,UACrB,CACA,SAASntB,GAAMh6N,GACX,OAAOgvP,GAAUhvP,GAAO,EAC5B,CACA,SAASivP,GAAWjvP,GAChB,OAAOgvP,GAAUhvP,GAAO,EAC5B,CACA,SAASgvP,GAAUE,EAAU3B,GACzB,GAAIM,GAAMqB,GACN,OAAOA,EAEX,IAAIjxO,EAAM,CAAC,EAIX,OAHAskE,EAAItkE,EAAK8wO,IAAS,GAClBxsK,EAAItkE,EAAK,gBAAgDsvO,GACzDhrK,EAAItkE,EAAK,MAAO2+N,GAAe3+N,EAAK,QAASixO,EAAU,KAAM3B,EAASvD,OAC/D/rO,CACX,CACA,SAASkxO,GAAWlxO,GAaZA,EAAI6tO,KAAO7tO,EAAI6tO,IAAIQ,QAE3B,CACA,SAASz6K,GAAM5zD,GACX,OAAO4vO,GAAM5vO,GAAOA,EAAIje,MAAQie,CACpC,CACA,SAASmxO,GAAUC,GACf,GAAId,GAAWc,GACX,OAAOA,EAIX,IAFA,IAAIh5M,EAAQ,CAAC,EACTj4C,EAAOC,OAAOD,KAAKixP,GACdrwP,EAAI,EAAGA,EAAIZ,EAAKc,OAAQF,IAC7BswP,GAAmBj5M,EAAOg5M,EAAgBjxP,EAAKY,IAEnD,OAAOq3C,CACX,CACA,SAASi5M,GAAmBvwP,EAAQI,EAAQE,GACxChB,OAAOoB,eAAeV,EAAQM,EAAK,CAC/BV,YAAY,EACZsB,cAAc,EACd6O,IAAK,WACD,IAAI3I,EAAMhH,EAAOE,GACjB,GAAIwuP,GAAM1nP,GACN,OAAOA,EAAInG,MAGX,IAAI8sP,EAAK3mP,GAAOA,EAAI4mP,OAGpB,OAFID,GACAA,EAAGhB,IAAIM,SACJjmP,CAEf,EACA6I,IAAK,SAAUhP,GACX,IAAI6tG,EAAW1uG,EAAOE,GAClBwuP,GAAMhgJ,KAAcggJ,GAAM7tP,GAC1B6tG,EAAS7tG,MAAQA,EAGjBb,EAAOE,GAAOW,CAEtB,GAER,CACA,SAASuvP,GAAU5lC,GACf,IAAImiC,EAAM,IAAIG,GACVvzO,EAAKixM,GAAQ,WASTmiC,EAAIM,QAEZ,IAAG,WASKN,EAAIQ,QAEZ,IAAIx9O,EAAM4J,EAAG5J,IAAKE,EAAM0J,EAAG1J,IACvBiP,EAAM,CACN,SAAIje,GACA,OAAO8O,GACX,EACA,SAAI9O,CAAMuuN,GACNv/M,EAAIu/M,EACR,GAGJ,OADAhsI,EAAItkE,EAAK8wO,IAAS,GACX9wO,CACX,CACA,SAASuxO,GAAOtxP,GAIZ,IAAIo3N,EAAMr0N,EAAQ/C,GAAU,IAAI8C,MAAM9C,EAAOgB,QAAU,CAAC,EACxD,IAAK,IAAIG,KAAOnB,EACZo3N,EAAIj2N,GAAOowP,GAAMvxP,EAAQmB,GAE7B,OAAOi2N,CACX,CACA,SAASm6B,GAAMvxP,EAAQmB,EAAK43B,GACxB,IAAI9wB,EAAMjI,EAAOmB,GACjB,GAAIwuP,GAAM1nP,GACN,OAAOA,EAEX,IAAI8X,EAAM,CACN,SAAIje,GACA,IAAImG,EAAMjI,EAAOmB,GACjB,YAAewG,IAARM,EAAoB8wB,EAAe9wB,CAC9C,EACA,SAAInG,CAAMuuN,GACNrwN,EAAOmB,GAAOkvN,CAClB,GAGJ,OADAhsI,EAAItkE,EAAK8wO,IAAS,GACX9wO,CACX,CAEA,IAAIyxO,GAAoB,oBACpBC,GAA2B,2BAC/B,SAASzyI,GAASn+G,GACd,OAAO6wP,GAAe7wP,GAAQ,EAClC,CACA,SAAS6wP,GAAe7wP,EAAQwuP,GAC5B,IAAKlzO,EAActb,GAYf,OAAOA,EAMX,GAAIovP,GAAWpvP,GACX,OAAOA,EAGX,IAAI8wP,EAAetC,EAAUoC,GAA2BD,GACpDI,EAAgB/wP,EAAO8wP,GAC3B,GAAIC,EACA,OAAOA,EAEX,IAAIz5M,EAAQh4C,OAAOs2C,OAAOt2C,OAAO2/E,eAAej/E,IAChDwjF,EAAIxjF,EAAQ8wP,EAAcx5M,GAC1BksC,EAAIlsC,EAAO,kBAAkD,GAC7DksC,EAAIlsC,EAAO,UAAmCt3C,GAC1C8uP,GAAM9uP,IACNwjF,EAAIlsC,EAAO04M,IAAS,IAEpBxB,GAAWiB,GAAUzvP,KACrBwjF,EAAIlsC,EAAO,iBAAgD,GAG/D,IADA,IAAIj4C,EAAOC,OAAOD,KAAKW,GACdC,EAAI,EAAGA,EAAIZ,EAAKc,OAAQF,IAC7B+wP,GAAuB15M,EAAOt3C,EAAQX,EAAKY,GAAIuuP,GAEnD,OAAOl3M,CACX,CACA,SAAS05M,GAAuB15M,EAAOt3C,EAAQM,EAAKkuP,GAChDlvP,OAAOoB,eAAe42C,EAAOh3C,EAAK,CAC9BV,YAAY,EACZsB,cAAc,EACd6O,IAAK,WACD,IAAI3I,EAAMpH,EAAOM,GACjB,OAAOkuP,IAAYlzO,EAAclU,GAAOA,EAAM+2G,GAAS/2G,EAC3D,EACA6I,IAAK,WAGL,GAER,CAOA,SAASghP,GAAgBjxP,GACrB,OAAO6wP,GAAe7wP,GAAQ,EAClC,CAEA,SAAS0nG,GAASwpJ,EAAiBC,GAC/B,IAAIh2N,EACA8zN,EACAmC,EAAa1iP,EAAWwiP,GACxBE,GACAj2N,EAAS+1N,EACTjC,EAIMlgI,IAGN5zF,EAAS+1N,EAAgBnhP,IACzBk/O,EAASiC,EAAgBjhP,KAE7B,IAAIohP,EAAUpG,KACR,KACA,IAAIqG,GAAQ/F,GAAiBpwN,EAAQ4zF,EAAM,CAAEif,MAAM,IAKzD,IAAI9uH,EAAM,CAGNqyO,OAAQF,EACR,SAAIpwP,GACA,OAAIowP,GACIA,EAAQG,OACRH,EAAQI,WAERvE,GAAIltP,QASJqxP,EAAQhE,SAELgE,EAAQpwP,OAGRk6B,GAEf,EACA,SAAIl6B,CAAMuuN,GACNy/B,EAAOz/B,EACX,GAIJ,OAFAhsI,EAAItkE,EAAK8wO,IAAS,GAClBxsK,EAAItkE,EAAK,iBAAkDkyO,GACpDlyO,CACX,CAEA,IAAIwyO,GAAU,UACVC,GAAa,GAAG3yP,OAAO0yP,GAAS,aAChCE,GAAiB,GAAG5yP,OAAO0yP,GAAS,WACpCG,GAAkB,GAAG7yP,OAAO0yP,GAAS,YAEzC,SAASI,GAAYP,EAAQ7zP,GACzB,OAAOq0P,GAAQR,EAAQ,KAAM7zP,EACjC,CACA,SAASs0P,GAAgBT,EAAQ7zP,GAC7B,OAAOq0P,GAAQR,EAAQ,KACoC,CAAEhrL,MAAO,QACxE,CACA,SAAS0rL,GAAgBV,EAAQ7zP,GAC7B,OAAOq0P,GAAQR,EAAQ,KACoC,CAAEhrL,MAAO,QACxE,CAEA,IAyMI2rL,GAzMAC,GAAwB,CAAC,EAE7B,SAASxsJ,GAAMvlG,EAAQsN,EAAIhQ,GAMvB,OAAOq0P,GAAQ3xP,EAAQsN,EAAIhQ,EAC/B,CACA,SAASq0P,GAAQ3xP,EAAQsN,EAAIiM,GACzB,IAAIqwB,OAAY,IAAPrwB,EAAgBkuO,EAAcluO,EAAI8mJ,EAAYz2H,EAAGy2H,UAAWnxI,EAAO0a,EAAG1a,KAAM0nL,EAAKhtK,EAAGu8B,MAAOA,OAAe,IAAPywI,EAAgB,MAAQA,EAAchtK,EAAGooN,QAAqBpoN,EAAGqoN,UAW7K,IAYIl3N,EA6DAm3N,EArEAp1K,EAAWquK,GACXntP,EAAO,SAAUoa,EAAInO,EAAM0vB,QACd,IAATA,IAAmBA,EAAO,MAC9B,IAAIqrB,EAAMmtM,GAAwB/5O,EAAI,KAAMuhB,EAAMmjD,EAAU7yE,GAG5D,OAFIilB,GAAQ81B,GAAOA,EAAI4oM,QACnB5oM,EAAI4oM,OAAOjB,IAAIM,SACZjoM,CACX,EAEIotM,GAAe,EACfC,GAAgB,EAuDpB,GAtDI3D,GAAM1uP,IACN+6B,EAAS,WAAc,OAAO/6B,EAAOa,KAAO,EAC5CuxP,EAAe/C,GAAUrvP,IAEpBovP,GAAWpvP,IAChB+6B,EAAS,WAEL,OADA/6B,EAAO4tP,OAAOjB,IAAIM,SACXjtP,CACX,EACAkvB,GAAO,GAEFptB,EAAQ9B,IACbqyP,GAAgB,EAChBD,EAAepyP,EAAOkiF,MAAK,SAAUv8E,GAAK,OAAOypP,GAAWzpP,IAAM0pP,GAAU1pP,EAAI,IAChFo1B,EAAS,WACL,OAAO/6B,EAAO0F,KAAI,SAAUC,GACxB,OAAI+oP,GAAM/oP,GACCA,EAAE9E,MAEJuuP,GAAWzpP,IAChBA,EAAEioP,OAAOjB,IAAIM,SACNqF,GAAS3sP,IAEX2I,EAAW3I,GACT3H,EAAK2H,EAAG6rP,SADd,CAMT,GACJ,GAKIz2N,EAHCzsB,EAAWtO,GACZsN,EAES,WAAc,OAAOtP,EAAKgC,EAAQwxP,GAAiB,EAInD,WACL,IAAI10K,IAAYA,EAASomF,aAMzB,OAHIgvF,GACAA,IAEGl0P,EAAKgC,EAAQsxP,GAAS,CAACiB,GAClC,EAIK5jI,EAGTrhH,GAAM4hB,EAAM,CACZ,IAAIsjO,EAAez3N,EACnBA,EAAS,WAAc,OAAOu3N,GAASE,IAAiB,CAC5D,CAEA,IAAID,EAAY,SAAUn6O,GACtB85O,EAAUjB,EAAQwB,OAAS,WACvBz0P,EAAKoa,EAAIq5O,GACb,CACJ,EAGA,GAAI5G,KAaA,OAXA0H,EAAY5jI,EACPrhH,EAGI+yJ,GACLriK,EAAKsP,EAAIikP,GAAY,CACjBx2N,IACAs3N,EAAgB,QAAK3rP,EACrB6rP,IANJx3N,IASG4zF,EAEX,IAAIsiI,EAAU,IAAIC,GAAQ/F,GAAiBpwN,EAAQ4zF,EAAM,CACrDif,MAAM,IAEVqjH,EAAQyB,WAAaplP,EACrB,IAAIohG,EAAW2jJ,EAAgB,GAAKN,GA0EpC,OAxEAd,EAAQlmM,IAAM,WACV,GAAKkmM,EAAQ3/I,OAGb,GAAIhkG,EAAI,CAEJ,IAAIwC,EAAWmhP,EAAQthP,OACnBuf,GACAkjO,IACCC,EACKviP,EAASoyE,MAAK,SAAU90E,EAAGvN,GACzB,OAAOqpP,EAAW97O,EAAGshG,EAAS7uG,GAClC,IACEqpP,EAAWp5O,EAAU4+F,OAEvBwjJ,GACAA,IAEJl0P,EAAKsP,EAAIikP,GAAY,CACjBzhP,EAEA4+F,IAAaqjJ,QAAwBrrP,EAAYgoG,EACjD6jJ,IAEJ7jJ,EAAW5+F,EAEnB,MAGImhP,EAAQthP,KAEhB,EACc,SAAVw2D,EACA8qL,EAAQh1M,OAASg1M,EAAQlmM,IAEV,SAAVob,GACL8qL,EAAQ0B,MAAO,EACf1B,EAAQh1M,OAAS,WAAc,OAAO22M,GAAa3B,EAAU,GAI7DA,EAAQh1M,OAAS,WACb,GAAI6gC,GAAYA,IAAaquK,KAAoBruK,EAAS+1K,WAAY,CAElE,IAAIn5L,EAASojB,EAASg2K,eAAiBh2K,EAASg2K,aAAe,IAC3Dp5L,EAAOv4D,QAAQ8vP,GAAW,GAC1Bv3L,EAAOj6D,KAAKwxP,EACpB,MAEI2B,GAAa3B,EAErB,EAOA3jP,EACI+yJ,EACA4wF,EAAQlmM,MAGR2jD,EAAWuiJ,EAAQthP,MAGR,SAAVw2D,GAAoB2W,EACzBA,EAASozB,MAAM,gBAAgB,WAAc,OAAO+gJ,EAAQthP,KAAO,IAGnEshP,EAAQthP,MAEL,WACHshP,EAAQ1L,UACZ,CACJ,CAGA,IAAIwN,GAA6B,WAC7B,SAASA,EAAYC,QACA,IAAbA,IAAuBA,GAAW,GACtCr1P,KAAKq1P,SAAWA,EAIhBr1P,KAAK2zG,QAAS,EAId3zG,KAAKs1P,QAAU,GAIft1P,KAAKu1P,SAAW,GAChBv1P,KAAKG,OAASg0P,IACTkB,GAAYlB,KACbn0P,KAAKi0C,OACAkgN,GAAkBqB,SAAWrB,GAAkBqB,OAAS,KAAK1zP,KAAK9B,MAAQ,EAEvF,CAyDA,OAxDAo1P,EAAYnyP,UAAUmqD,IAAM,SAAU3yC,GAClC,GAAIza,KAAK2zG,OAAQ,CACb,IAAI8hJ,EAAqBtB,GACzB,IAEI,OADAA,GAAoBn0P,KACbya,GACX,CAAC,QAEG05O,GAAoBsB,CACxB,CACJ,MACSpuP,CAGb,EAKA+tP,EAAYnyP,UAAUotF,GAAK,WACvB8jK,GAAoBn0P,IACxB,EAKAo1P,EAAYnyP,UAAU2qP,IAAM,WACxBuG,GAAoBn0P,KAAKG,MAC7B,EACAi1P,EAAYnyP,UAAUqrH,KAAO,SAAUonI,GACnC,GAAI11P,KAAK2zG,OAAQ,CACb,IAAIzxG,OAAI,EAAQ8D,OAAI,EACpB,IAAK9D,EAAI,EAAG8D,EAAIhG,KAAKs1P,QAAQlzP,OAAQF,EAAI8D,EAAG9D,IACxClC,KAAKs1P,QAAQpzP,GAAG0lP,WAEpB,IAAK1lP,EAAI,EAAG8D,EAAIhG,KAAKu1P,SAASnzP,OAAQF,EAAI8D,EAAG9D,IACzClC,KAAKu1P,SAASrzP,KAElB,GAAIlC,KAAKw1P,OACL,IAAKtzP,EAAI,EAAG8D,EAAIhG,KAAKw1P,OAAOpzP,OAAQF,EAAI8D,EAAG9D,IACvClC,KAAKw1P,OAAOtzP,GAAGosH,MAAK,GAI5B,IAAKtuH,KAAKq1P,UAAYr1P,KAAKG,SAAWu1P,EAAY,CAE9C,IAAIl1B,EAAOxgO,KAAKG,OAAOq1P,OAAO/xM,MAC1B+8K,GAAQA,IAASxgO,OACjBA,KAAKG,OAAOq1P,OAAOx1P,KAAKi0C,OAASusL,EACjCA,EAAKvsL,MAAQj0C,KAAKi0C,MAE1B,CACAj0C,KAAKG,YAAS4I,EACd/I,KAAK2zG,QAAS,CAClB,CACJ,EACOyhJ,CACX,CA/EiC,GAgFjC,SAASO,GAAYN,GACjB,OAAO,IAAID,GAAYC,EAC3B,CAIA,SAASO,GAAkBpC,EAAQh5J,QACjB,IAAVA,IAAoBA,EAAQ25J,IAC5B35J,GAASA,EAAMmZ,QACfnZ,EAAM86J,QAAQxzP,KAAK0xP,EAE3B,CACA,SAASqC,KACL,OAAO1B,EACX,CACA,SAAS2B,GAAer7O,GAChB05O,IACAA,GAAkBoB,SAASzzP,KAAK2Y,EAMxC,CAEA,SAASg+F,GAAQl2G,EAAKW,GACbsqP,KAODuI,GAAgBvI,IAAiBjrP,GAAOW,EAEhD,CACA,SAAS6yP,GAAgBpkJ,GAMrB,IAAI5wG,EAAW4wG,EAAGqkJ,UACdC,EAAiBtkJ,EAAGtC,SAAWsC,EAAGtC,QAAQ2mJ,UAC9C,OAAIC,IAAmBl1P,EACX4wG,EAAGqkJ,UAAYz0P,OAAOs2C,OAAOo+M,GAG9Bl1P,CAEf,CACA,SAASs2G,GAAO90G,EAAK43B,EAAc+7N,QACD,IAA1BA,IAAoCA,GAAwB,GAGhE,IAAI/2K,EAAWquK,GACf,GAAIruK,EAAU,CAIV,IAAIg3K,EAAWh3K,EAASkwB,SAAWlwB,EAASkwB,QAAQ2mJ,UACpD,GAAIG,GAAY5zP,KAAO4zP,EAEnB,OAAOA,EAAS5zP,GAEf,GAAIJ,UAAUC,OAAS,EACxB,OAAO8zP,GAAyBvlP,EAAWwpB,GACrCA,EAAa95B,KAAK8+E,GAClBhlD,CAKd,MACS9yB,CAGb,CAEA,IAAI+uP,GAAiBzL,GAAO,SAAU/lP,GAClC,IAAIy3E,EAA6B,MAAnBz3E,EAAKyzB,OAAO,GAC1BzzB,EAAOy3E,EAAUz3E,EAAKD,MAAM,GAAKC,EACjC,IAAIqpH,EAA0B,MAAnBrpH,EAAKyzB,OAAO,GACvBzzB,EAAOqpH,EAAOrpH,EAAKD,MAAM,GAAKC,EAC9B,IAAI2sC,EAA6B,MAAnB3sC,EAAKyzB,OAAO,GAE1B,OADAzzB,EAAO2sC,EAAU3sC,EAAKD,MAAM,GAAKC,EAC1B,CACHA,KAAMA,EACNqpH,KAAMA,EACN18E,QAASA,EACT8qC,QAASA,EAEjB,IACA,SAASg6K,GAAgBC,EAAK3kJ,GAC1B,SAAS4kJ,IACL,IAAID,EAAMC,EAAQD,IAClB,IAAInyP,EAAQmyP,GAQR,OAAO9B,GAAwB8B,EAAK,KAAMn0P,UAAWwvG,EAAI,gBANzD,IADA,IAAIg9I,EAAS2H,EAAI3xP,QACRzC,EAAI,EAAGA,EAAIysP,EAAOvsP,OAAQF,IAC/BsyP,GAAwB7F,EAAOzsP,GAAI,KAAMC,UAAWwvG,EAAI,eAOpE,CAEA,OADA4kJ,EAAQD,IAAMA,EACPC,CACX,CACA,SAASt8G,GAAgB5pD,EAAImmK,EAAOj2P,EAAKktD,EAAQgpM,EAAmB9kJ,GAChE,IAAI/sG,EAAMs+H,EAAK5d,EAAK57D,EACpB,IAAK9kD,KAAQyrF,EACT6yC,EAAM7yC,EAAGzrF,GACT0gH,EAAMkxI,EAAM5xP,GACZ8kD,EAAQ0sM,GAAexxP,GACnBmlP,EAAQ7mH,KAIH6mH,EAAQzkI,IACTykI,EAAQ7mH,EAAIozH,OACZpzH,EAAM7yC,EAAGzrF,GAAQyxP,GAAgBnzH,EAAKvxB,IAEtCq4I,EAAOtgM,EAAMukE,QACbiV,EAAM7yC,EAAGzrF,GAAQ6xP,EAAkB/sM,EAAM9kD,KAAMs+H,EAAKx5E,EAAMnY,UAE9DhxC,EAAImpD,EAAM9kD,KAAMs+H,EAAKx5E,EAAMnY,QAASmY,EAAM2yB,QAAS3yB,EAAMorK,SAEpD5xF,IAAQ5d,IACbA,EAAIgxI,IAAMpzH,EACV7yC,EAAGzrF,GAAQ0gH,IAGnB,IAAK1gH,KAAQ4xP,EACLzM,EAAQ15J,EAAGzrF,MACX8kD,EAAQ0sM,GAAexxP,GACvB6oD,EAAO/D,EAAM9kD,KAAM4xP,EAAM5xP,GAAO8kD,EAAMnY,SAGlD,CAEA,SAASmlN,GAAejxK,EAAKkxK,EAASj3P,GAIlC,IAAI62P,EAHA9wK,aAAeooK,KACfpoK,EAAMA,EAAIz8E,KAAKtJ,OAAS+lF,EAAIz8E,KAAKtJ,KAAO,CAAC,IAG7C,IAAIk3P,EAAUnxK,EAAIkxK,GAClB,SAASE,IACLn3P,EAAKqC,MAAM/B,KAAMmC,WAGjBuoP,EAAS6L,EAAQD,IAAKO,EAC1B,CACI9M,EAAQ6M,GAERL,EAAUF,GAAgB,CAACQ,IAIvBrX,EAAMoX,EAAQN,MAAQtM,EAAO4M,EAAQE,SAErCP,EAAUK,EACVL,EAAQD,IAAIx0P,KAAK+0P,IAIjBN,EAAUF,GAAgB,CAACO,EAASC,IAG5CN,EAAQO,QAAS,EACjBrxK,EAAIkxK,GAAWJ,CACnB,CAEA,SAASQ,GAA0B/tP,EAAMskP,EAAMvjP,GAI3C,IAAIitP,EAAc1J,EAAK3tP,QAAQmJ,MAC/B,IAAIihP,EAAQiN,GAAZ,CAGA,IAAI3vM,EAAM,CAAC,EACP/9C,EAAQN,EAAKM,MAAOR,EAAQE,EAAKF,MACrC,GAAI02O,EAAMl2O,IAAUk2O,EAAM12O,GACtB,IAAK,IAAIvG,KAAOy0P,EAAa,CACzB,IAAI5wI,EAAS2kI,EAAUxoP,GAcvB00P,GAAU5vM,EAAKv+C,EAAOvG,EAAK6jH,GAAQ,IAC/B6wI,GAAU5vM,EAAK/9C,EAAO/G,EAAK6jH,GAAQ,EAC3C,CAEJ,OAAO/+D,CAvBP,CAwBJ,CACA,SAAS4vM,GAAU5vM,EAAKoY,EAAMl9D,EAAK6jH,EAAQ22G,GACvC,GAAIyiB,EAAM//K,GAAO,CACb,GAAIg5J,EAAOh5J,EAAMl9D,GAKb,OAJA8kD,EAAI9kD,GAAOk9D,EAAKl9D,GACXw6N,UACMt9J,EAAKl9D,IAET,EAEN,GAAIk2N,EAAOh5J,EAAM2mD,GAKlB,OAJA/+D,EAAI9kD,GAAOk9D,EAAK2mD,GACX22G,UACMt9J,EAAK2mD,IAET,CAEf,CACA,OAAO,CACX,CAaA,SAAS8wI,GAAwBjuP,GAC7B,IAAK,IAAI/G,EAAI,EAAGA,EAAI+G,EAAS7G,OAAQF,IACjC,GAAIiC,EAAQ8E,EAAS/G,IACjB,OAAOgC,MAAMjB,UAAUhC,OAAOc,MAAM,GAAIkH,GAGhD,OAAOA,CACX,CAKA,SAASkuP,GAAkBluP,GACvB,OAAOihP,EAAYjhP,GACb,CAACwlP,GAAgBxlP,IACjB9E,EAAQ8E,GACJmuP,GAAuBnuP,QACvBF,CACd,CACA,SAASsuP,GAAWj+O,GAChB,OAAOomO,EAAMpmO,IAASomO,EAAMpmO,EAAK8oB,OAAS+nN,EAAQ7wO,EAAK+0O,UAC3D,CACA,SAASiJ,GAAuBnuP,EAAUquP,GACtC,IACIp1P,EAAGsG,EAAGooL,EAAW4vC,EADjBn5K,EAAM,GAEV,IAAKnlD,EAAI,EAAGA,EAAI+G,EAAS7G,OAAQF,IAC7BsG,EAAIS,EAAS/G,GACT6nP,EAAQvhP,IAAmB,mBAANA,IAEzBooL,EAAYvpI,EAAIjlD,OAAS,EACzBo+N,EAAOn5K,EAAIupI,GAEPzsL,EAAQqE,GACJA,EAAEpG,OAAS,IACXoG,EAAI4uP,GAAuB5uP,EAAG,GAAGvH,OAAOq2P,GAAe,GAAI,KAAKr2P,OAAOiB,IAEnEm1P,GAAW7uP,EAAE,KAAO6uP,GAAW72B,KAC/Bn5K,EAAIupI,GAAa69D,GAAgBjuB,EAAKt+L,KAAO15B,EAAE,GAAG05B,MAClD15B,EAAEyiG,SAEN5jD,EAAIvlD,KAAKC,MAAMslD,EAAK7+C,IAGnB0hP,EAAY1hP,GACb6uP,GAAW72B,GAIXn5K,EAAIupI,GAAa69D,GAAgBjuB,EAAKt+L,KAAO15B,GAElC,KAANA,GAEL6+C,EAAIvlD,KAAK2sP,GAAgBjmP,IAIzB6uP,GAAW7uP,IAAM6uP,GAAW72B,GAE5Bn5K,EAAIupI,GAAa69D,GAAgBjuB,EAAKt+L,KAAO15B,EAAE05B,OAI3C8nN,EAAO/gP,EAASsuP,WAChB/X,EAAMh3O,EAAEuB,MACRggP,EAAQvhP,EAAEjG,MACVi9O,EAAM8X,KACN9uP,EAAEjG,IAAM,UAAUtB,OAAOq2P,EAAa,KAAKr2P,OAAOiB,EAAG,OAEzDmlD,EAAIvlD,KAAK0G,KAIrB,OAAO6+C,CACX,CAKA,SAASmwM,GAAWnuP,EAAKlK,GACrB,IAAgB+C,EAAG8D,EAAG1E,EAAMiB,EAAxBi2N,EAAM,KACV,GAAIr0N,EAAQkF,IAAuB,kBAARA,EAEvB,IADAmvN,EAAM,IAAIt0N,MAAMmF,EAAIjH,QACfF,EAAI,EAAG8D,EAAIqD,EAAIjH,OAAQF,EAAI8D,EAAG9D,IAC/Bs2N,EAAIt2N,GAAK/C,EAAOkK,EAAInH,GAAIA,QAG3B,GAAmB,kBAARmH,EAEZ,IADAmvN,EAAM,IAAIt0N,MAAMmF,GACXnH,EAAI,EAAGA,EAAImH,EAAKnH,IACjBs2N,EAAIt2N,GAAK/C,EAAO+C,EAAI,EAAGA,QAG1B,GAAI0O,EAASvH,GACd,GAAImQ,IAAanQ,EAAIvG,OAAOC,UAAW,CACnCy1N,EAAM,GACN,IAAIz1N,EAAWsG,EAAIvG,OAAOC,YACtB8M,EAAS9M,EAASgX,OACtB,OAAQlK,EAAOuK,KACXo+M,EAAI12N,KAAK3C,EAAO0Q,EAAO3M,MAAOs1N,EAAIp2N,SAClCyN,EAAS9M,EAASgX,MAE1B,MAII,IAFAzY,EAAOC,OAAOD,KAAK+H,GACnBmvN,EAAM,IAAIt0N,MAAM5C,EAAKc,QAChBF,EAAI,EAAG8D,EAAI1E,EAAKc,OAAQF,EAAI8D,EAAG9D,IAChCK,EAAMjB,EAAKY,GACXs2N,EAAIt2N,GAAK/C,EAAOkK,EAAI9G,GAAMA,EAAKL,GAQ3C,OAJKs9O,EAAMhnB,KACPA,EAAM,IAEVA,EAAI++B,UAAW,EACR/+B,CACX,CAKA,SAASi/B,GAAW7yP,EAAM8yP,EAAgB5uP,EAAO6uP,GAC7C,IACIt1F,EADAu1F,EAAe53P,KAAKo6F,aAAax1F,GAEjCgzP,GAEA9uP,EAAQA,GAAS,CAAC,EACd6uP,IAIA7uP,EAAQy8E,EAAOA,EAAO,CAAC,EAAGoyK,GAAa7uP,IAE3Cu5J,EACIu1F,EAAa9uP,KACR6H,EAAW+mP,GAAkBA,IAAmBA,IAGzDr1F,EACIriK,KAAKq6F,OAAOz1F,KACP+L,EAAW+mP,GAAkBA,IAAmBA,GAE7D,IAAIz1P,EAAS6G,GAASA,EAAMyxF,KAC5B,OAAIt4F,EACOjC,KAAK09I,eAAe,WAAY,CAAEnjD,KAAMt4F,GAAUogK,GAGlDA,CAEf,CAKA,SAASw1F,GAAcj/N,GACnB,OAAOk/N,GAAa93P,KAAKU,SAAU,UAAWk4B,GAAI,IAASuqD,CAC/D,CAEA,SAAS40K,GAAcC,EAAQC,GAC3B,OAAI9zP,EAAQ6zP,IAC2B,IAA5BA,EAAOx0P,QAAQy0P,GAGfD,IAAWC,CAE1B,CAMA,SAASC,GAAcC,EAAc51P,EAAK61P,EAAgBC,EAAcC,GACpE,IAAIC,EAAgB73N,EAAOorN,SAASvpP,IAAQ61P,EAC5C,OAAIE,GAAkBD,IAAiB33N,EAAOorN,SAASvpP,GAC5Cw1P,GAAcO,EAAgBD,GAEhCE,EACER,GAAcQ,EAAeJ,GAE/BE,EACEtN,EAAUsN,KAAkB91P,OAEfwG,IAAjBovP,CACX,CAKA,SAASK,GAAgBxvP,EAAMe,EAAK7G,EAAOu1P,EAAQ3lO,GAC/C,GAAI5vB,EACA,GAAK0N,EAAS1N,GAIT,CACGiB,EAAQjB,KACRA,EAAQmoP,EAASnoP,IAErB,IAAIu8D,OAAO,EACPktJ,EAAU,SAAUpqN,GACpB,GAAY,UAARA,GAA2B,UAARA,GAAmBkoP,EAAoBloP,GAC1Dk9D,EAAOz2D,MAEN,CACD,IAAIsD,EAAOtD,EAAKM,OAASN,EAAKM,MAAMgD,KACpCmzD,EACIg5L,GAAU/3N,EAAO0rN,YAAYriP,EAAKuC,EAAM/J,GAClCyG,EAAKy8F,WAAaz8F,EAAKy8F,SAAW,CAAC,GACnCz8F,EAAKM,QAAUN,EAAKM,MAAQ,CAAC,EAC3C,CACA,IAAIovP,EAAelyP,EAASjE,GACxBo2P,EAAgB5N,EAAUxoP,GAC9B,KAAMm2P,KAAgBj5L,MAAWk5L,KAAiBl5L,KAC9CA,EAAKl9D,GAAOW,EAAMX,GACduwB,GAAQ,CACR,IAAIu9D,EAAKrnF,EAAKqnF,KAAOrnF,EAAKqnF,GAAK,CAAC,GAChCA,EAAG,UAAUpvF,OAAOsB,IAAQ,SAAUilO,GAClCtkO,EAAMX,GAAOilO,CACjB,CACJ,CAER,EACA,IAAK,IAAIjlO,KAAOW,EACZypN,EAAQpqN,EAEhB,MAEJ,OAAOyG,CACX,CAKA,SAAS4vP,GAAa3kN,EAAO4kN,GACzB,IAAIlO,EAAS3qP,KAAK84P,eAAiB94P,KAAK84P,aAAe,IACnDC,EAAOpO,EAAO12M,GAGlB,OAAI8kN,IAASF,IAIbE,EAAOpO,EAAO12M,GAASj0C,KAAKU,SAAStB,gBAAgB60C,GAAO5zC,KAAKL,KAAKg5P,aAAch5P,KAAKi5M,GAAIj5M,MAE7Fi5P,GAAWF,EAAM,aAAa93P,OAAOgzC,IAAQ,IALlC8kN,CAOf,CAKA,SAASG,GAASH,EAAM9kN,EAAO1xC,GAE3B,OADA02P,GAAWF,EAAM,WAAW93P,OAAOgzC,GAAOhzC,OAAOsB,EAAM,IAAItB,OAAOsB,GAAO,KAAK,GACvEw2P,CACX,CACA,SAASE,GAAWF,EAAMx2P,EAAK8rP,GAC3B,GAAIlqP,EAAQ40P,GACR,IAAK,IAAI72P,EAAI,EAAGA,EAAI62P,EAAK32P,OAAQF,IACzB62P,EAAK72P,IAAyB,kBAAZ62P,EAAK72P,IACvBi3P,GAAeJ,EAAK72P,GAAI,GAAGjB,OAAOsB,EAAK,KAAKtB,OAAOiB,GAAImsP,QAK/D8K,GAAeJ,EAAMx2P,EAAK8rP,EAElC,CACA,SAAS8K,GAAe//O,EAAM7W,EAAK8rP,GAC/Bj1O,EAAK0sL,UAAW,EAChB1sL,EAAK7W,IAAMA,EACX6W,EAAKi1O,OAASA,CAClB,CAEA,SAAS+K,GAAoBpwP,EAAM9F,GAC/B,GAAIA,EACA,GAAKqa,EAAcra,GAGd,CACD,IAAImtF,EAAMrnF,EAAKqnF,GAAKrnF,EAAKqnF,GAAK9K,EAAO,CAAC,EAAGv8E,EAAKqnF,IAAM,CAAC,EACrD,IAAK,IAAI9tF,KAAOW,EAAO,CACnB,IAAInC,EAAWsvF,EAAG9tF,GACd82P,EAAOn2P,EAAMX,GACjB8tF,EAAG9tF,GAAOxB,EAAW,GAAGE,OAAOF,EAAUs4P,GAAQA,CACrD,CACJ,MAEJ,OAAOrwP,CACX,CAEA,SAASswP,GAAmBhD,EAAKjvM,EAEjCkyM,EAAgBC,GACZnyM,EAAMA,GAAO,CAAEoyM,SAAUF,GACzB,IAAK,IAAIr3P,EAAI,EAAGA,EAAIo0P,EAAIl0P,OAAQF,IAAK,CACjC,IAAIq4F,EAAO+7J,EAAIp0P,GACXiC,EAAQo2F,GACR++J,GAAmB/+J,EAAMlzC,EAAKkyM,GAEzBh/J,IAGDA,EAAKhhD,QAELghD,EAAK9/E,GAAG8+B,OAAQ,GAEpB8N,EAAIkzC,EAAKh4F,KAAOg4F,EAAK9/E,GAE7B,CAIA,OAHI++O,IACAnyM,EAAIqyM,KAAOF,GAERnyM,CACX,CAGA,SAASsyM,GAAgBC,EAASnnP,GAC9B,IAAK,IAAIvQ,EAAI,EAAGA,EAAIuQ,EAAOrQ,OAAQF,GAAK,EAAG,CACvC,IAAIK,EAAMkQ,EAAOvQ,GACE,kBAARK,GAAoBA,IAC3Bq3P,EAAQnnP,EAAOvQ,IAAMuQ,EAAOvQ,EAAI,GAMxC,CACA,OAAO03P,CACX,CAIA,SAASC,GAAgB32P,EAAO8J,GAC5B,MAAwB,kBAAV9J,EAAqB8J,EAAS9J,EAAQA,CACxD,CAEA,SAAS42P,GAAqB73P,GAC1BA,EAAO83P,GAAKb,GACZj3P,EAAOqnG,GAAKghJ,EACZroP,EAAOknG,GAAKzkG,EACZzC,EAAO+3P,GAAKxC,GACZv1P,EAAOs3N,GAAKk+B,GACZx1P,EAAOg4P,GAAK3pJ,EACZruG,EAAOg6B,GAAKq5G,EACZrzI,EAAOi4P,GAAKtB,GACZ32P,EAAOk4P,GAAKtC,GACZ51P,EAAOm4P,GAAKlC,GACZj2P,EAAOgqC,GAAKusN,GACZv2P,EAAOo4P,GAAK5L,GACZxsP,EAAOmnG,GAAKolJ,GACZvsP,EAAOq4P,GAAKhB,GACZr3P,EAAOs4P,GAAKnB,GACZn3P,EAAOsnG,GAAKowJ,GACZ13P,EAAOu4P,GAAKX,EAChB,CAKA,SAASY,GAAaxxP,EAAUlJ,GAC5B,IAAKkJ,IAAaA,EAAS7G,OACvB,MAAO,CAAC,EAGZ,IADA,IAAIqtF,EAAQ,CAAC,EACJvtF,EAAI,EAAG8D,EAAIiD,EAAS7G,OAAQF,EAAI8D,EAAG9D,IAAK,CAC7C,IAAI+8F,EAAQh2F,EAAS/G,GACjB8G,EAAOi2F,EAAMj2F,KAOjB,GALIA,GAAQA,EAAKM,OAASN,EAAKM,MAAMixF,aAC1BvxF,EAAKM,MAAMixF,KAIjB0E,EAAMl/F,UAAYA,GAAWk/F,EAAM+uJ,YAAcjuP,IAClDiJ,GACa,MAAbA,EAAKuxF,MAWJ9K,EAAMjjF,UAAYijF,EAAMjjF,QAAU,KAAK1K,KAAKm9F,OAX1B,CACnB,IAAI96E,EAASnb,EAAKuxF,KACdA,EAAO9K,EAAMtrE,KAAYsrE,EAAMtrE,GAAU,IAC3B,aAAd86E,EAAMl1F,IACNwwF,EAAKz4F,KAAKC,MAAMw4F,EAAM0E,EAAMh2F,UAAY,IAGxCsxF,EAAKz4F,KAAKm9F,EAElB,CAIJ,CAEA,IAAK,IAAIy7J,KAAUjrK,EACXA,EAAMirK,GAAQn3K,MAAMo3K,YACblrK,EAAMirK,GAGrB,OAAOjrK,CACX,CACA,SAASkrK,GAAavhP,GAClB,OAAQA,EAAK+0O,YAAc/0O,EAAK20O,cAA+B,MAAd30O,EAAK8oB,IAC1D,CAEA,SAASqsN,GAAmBn1O,GAExB,OAAOA,EAAK+0O,WAAa/0O,EAAK20O,YAClC,CAEA,SAAS6M,GAAqBC,EAAS9qK,EAAa+qK,EAAaC,GAC7D,IAAI1zM,EACA2zM,EAAiBz5P,OAAOD,KAAKw5P,GAAa14P,OAAS,EACnD64P,EAAWlrK,IAAgBA,EAAY0pK,SAAWuB,EAClDz4P,EAAMwtF,GAAeA,EAAY2pK,KACrC,GAAK3pK,EAGA,IAAIA,EAAY+tJ,YAEjB,OAAO/tJ,EAAY+tJ,YAElB,GAAImd,GACLF,GACAA,IAAoBjR,GACpBvnP,IAAQw4P,EAAgBrB,OACvBsB,IACAD,EAAgB/qK,WAGjB,OAAO+qK,EAIP,IAAK,IAAIG,KADT7zM,EAAM,CAAC,EACW0oC,EACVA,EAAYmrK,IAAuB,MAAbA,EAAM,KAC5B7zM,EAAI6zM,GAASC,GAAoBN,EAASC,EAAaI,EAAOnrK,EAAYmrK,IAGtF,MAvBI7zM,EAAM,CAAC,EAyBX,IAAK,IAAI+zM,KAASN,EACRM,KAAS/zM,IACXA,EAAI+zM,GAASC,GAAgBP,EAAaM,IAWlD,OANIrrK,GAAexuF,OAAOsvP,aAAa9gK,KACnCA,EAAY+tJ,YAAcz2L,GAE9Bo+B,EAAIp+B,EAAK,UAAW4zM,GACpBx1K,EAAIp+B,EAAK,OAAQ9kD,GACjBkjF,EAAIp+B,EAAK,aAAc2zM,GAChB3zM,CACX,CACA,SAAS8zM,GAAoBxpJ,EAAImpJ,EAAav4P,EAAKkY,GAC/C,IAAI6gP,EAAa,WACb,IAAIp4H,EAAMsqH,GACVE,GAAmB/7I,GACnB,IAAItqD,EAAMllD,UAAUC,OAASqY,EAAG1Y,MAAM,KAAMI,WAAasY,EAAG,CAAC,GAC7D4sC,EACIA,GAAsB,kBAARA,IAAqBljD,EAAQkjD,GACrC,CAACA,GACD8vM,GAAkB9vM,GAC5B,IAAI6nC,EAAQ7nC,GAAOA,EAAI,GAEvB,OADAqmM,GAAmBxqH,GACZ77E,KACD6nC,GACkB,IAAf7nC,EAAIjlD,QAAgB8sF,EAAMi/J,YAAcI,GAAmBr/J,SAC9DnmF,EACAs+C,CACV,EAWA,OAPI5sC,EAAG8+B,OACHh4C,OAAOoB,eAAem4P,EAAav4P,EAAK,CACpCyP,IAAKspP,EACLz5P,YAAY,EACZsB,cAAc,IAGfm4P,CACX,CACA,SAASD,GAAgB5rK,EAAOltF,GAC5B,OAAO,WAAc,OAAOktF,EAAMltF,EAAM,CAC5C,CAEA,SAASg5P,GAAU5pJ,GACf,IAAIhyG,EAAUgyG,EAAGjxG,SACb86P,EAAQ77P,EAAQ67P,MACpB,GAAIA,EAAO,CACP,IAAIj9O,EAAOozF,EAAG8pJ,cAAgBC,GAAmB/pJ,GACjD+7I,GAAmB/7I,GACnB+9I,KACA,IAAIiM,EAAcnH,GAAwBgH,EAAO,KAAM,CAAC7pJ,EAAG2gF,QAAUk/D,GAAgB,CAAC,GAAIjzO,GAAMozF,EAAI,SAGpG,GAFAg+I,KACAjC,KACI/8O,EAAWgrP,GAGXh8P,EAAQR,OAASw8P,OAEhB,GAAI/qP,EAAS+qP,GAQd,GAFAhqJ,EAAGiqJ,YAAcD,EAEZA,EAAYE,MAUZ,CAED,IAAItiN,EAASo4D,EAAGmqJ,YAAc,CAAC,EAC/B,IAAK,IAAIv5P,KAAOo5P,EACA,UAARp5P,GACAiwP,GAAmBj5M,EAAOoiN,EAAap5P,EAGnD,MAjBI,IAAK,IAAIA,KAAOo5P,EACPpP,EAAWhqP,IACZiwP,GAAmB7gJ,EAAIgqJ,EAAap5P,QAiB3C8E,CAGb,CACJ,CACA,SAASq0P,GAAmB/pJ,GAExB,MAAO,CACH,SAAIroG,GACA,IAAKqoG,EAAGoqJ,YAAa,CACjB,IAAIxiN,EAASo4D,EAAGoqJ,YAAc,CAAC,EAC/Bt2K,EAAIlsC,EAAO,iBAAiB,GAC5ByiN,GAAeziN,EAAOo4D,EAAGH,OAAQs4I,EAAan4I,EAAI,SACtD,CACA,OAAOA,EAAGoqJ,WACd,EACA,aAAIxsL,GACA,IAAKoiC,EAAGsqJ,gBAAiB,CACrB,IAAI1iN,EAASo4D,EAAGsqJ,gBAAkB,CAAC,EACnCD,GAAeziN,EAAOo4D,EAAGmB,WAAYg3I,EAAan4I,EAAI,aAC1D,CACA,OAAOA,EAAGsqJ,eACd,EACA,SAAIxsK,GACA,OAAOysK,GAAevqJ,EAC1B,EACAvtD,KAAMl7C,EAAKyoG,EAAG7J,MAAO6J,GACrBwqJ,OAAQ,SAAUC,GAOVA,GACA76P,OAAOD,KAAK86P,GAAS95P,SAAQ,SAAUC,GACnC,OAAOiwP,GAAmB7gJ,EAAIyqJ,EAAS75P,EAC3C,GAER,EAER,CACA,SAASy5P,GAAelwP,EAAIxH,EAAMwtH,EAAM3yC,EAAU7yE,GAC9C,IAAI8kH,GAAU,EACd,IAAK,IAAI7uH,KAAO+B,EACN/B,KAAOuJ,EAIJxH,EAAK/B,KAASuvH,EAAKvvH,KACxB6uH,GAAU,IAJVA,GAAU,EACVirI,GAAgBvwP,EAAIvJ,EAAK48E,EAAU7yE,IAM3C,IAAK,IAAI/J,KAAOuJ,EACNvJ,KAAO+B,IACT8sH,GAAU,SACHtlH,EAAGvJ,IAGlB,OAAO6uH,CACX,CACA,SAASirI,GAAgB9iN,EAAOh3C,EAAK48E,EAAU7yE,GAC3C/K,OAAOoB,eAAe42C,EAAOh3C,EAAK,CAC9BV,YAAY,EACZsB,cAAc,EACd6O,IAAK,WACD,OAAOmtE,EAAS7yE,GAAM/J,EAC1B,GAER,CACA,SAAS25P,GAAevqJ,GAIpB,OAHKA,EAAG2qJ,aACJC,GAAgB5qJ,EAAG2qJ,YAAc,CAAC,EAAI3qJ,EAAGvX,cAEtCuX,EAAG2qJ,WACd,CACA,SAASC,GAAezwP,EAAIxH,GACxB,IAAK,IAAI/B,KAAO+B,EACZwH,EAAGvJ,GAAO+B,EAAK/B,GAEnB,IAAK,IAAIA,KAAOuJ,EACNvJ,KAAO+B,UACFwH,EAAGvJ,EAGtB,CAKA,SAASi6P,KACL,OAAOC,KAAahtK,KACxB,CAKA,SAASitK,KACL,OAAOD,KAAanzP,KACxB,CAMA,SAASqzP,KACL,OAAOF,KAAaltL,SACxB,CACA,SAASktL,KAIL,IAAI9qJ,EAAK67I,GACT,OAAO77I,EAAG8pJ,gBAAkB9pJ,EAAG8pJ,cAAgBC,GAAmB/pJ,GACtE,CAMA,SAASirJ,GAAc/e,EAAK7sN,GACxB,IAAIloB,EAAQ3E,EAAQ05O,GACdA,EAAI31O,QAAO,SAAUozP,EAAYp0O,GAAK,OAASo0O,EAAWp0O,GAAK,CAAC,EAAIo0O,CAAa,GAAG,CAAC,GACrFzd,EACN,IAAK,IAAIt7O,KAAOyuB,EAAU,CACtB,IAAI6rO,EAAM/zP,EAAMvG,GACZs6P,EACI14P,EAAQ04P,IAAQlsP,EAAWksP,GAC3B/zP,EAAMvG,GAAO,CAAE+J,KAAMuwP,EAAKrwP,QAASwkB,EAASzuB,IAG5Cs6P,EAAIrwP,QAAUwkB,EAASzuB,GAGd,OAARs6P,IACL/zP,EAAMvG,GAAO,CAAEiK,QAASwkB,EAASzuB,IAKzC,CACA,OAAOuG,CACX,CAEA,SAASg0P,GAAWnrJ,GAChBA,EAAGorJ,OAAS,KACZprJ,EAAGmnJ,aAAe,KAClB,IAAIn5P,EAAUgyG,EAAGjxG,SACbs8P,EAAerrJ,EAAG1xG,OAASN,EAAQggP,aACnCsd,EAAgBD,GAAeA,EAAYj9P,QAC/C4xG,EAAGtX,OAASogK,GAAa96P,EAAQu9P,gBAAiBD,GAClDtrJ,EAAGvX,aAAe4iK,EACZpC,GAAqBjpJ,EAAGtC,QAAS2tJ,EAAYh0P,KAAK+mF,YAAa4hB,EAAGtX,QAClEyvJ,EAMNn4I,EAAGsnG,GAAK,SAAUp4H,EAAG/oE,EAAGtP,EAAGmT,GAAK,OAAOwhP,GAAgBxrJ,EAAI9wB,EAAG/oE,EAAGtP,EAAGmT,GAAG,EAAQ,EAI/Eg2F,EAAG+rC,eAAiB,SAAU78D,EAAG/oE,EAAGtP,EAAGmT,GAAK,OAAOwhP,GAAgBxrJ,EAAI9wB,EAAG/oE,EAAGtP,EAAGmT,GAAG,EAAO,EAG1F,IAAIyhP,EAAaJ,GAAeA,EAAYh0P,KAWxC82O,GAAenuI,EAAI,SAAWyrJ,GAAcA,EAAW9zP,OAAUwgP,EAAa,MAAM,GACpFhK,GAAenuI,EAAI,aAAchyG,EAAQ09P,kBAAoBvT,EAAa,MAAM,EAExF,CACA,IAAIwT,GAA2B,KAC/B,SAASC,GAAY94K,GAEjBq1K,GAAqBr1K,EAAIxhF,WACzBwhF,EAAIxhF,UAAU+kG,UAAY,SAAUvtF,GAChC,OAAO61E,GAAS71E,EAAIza,KACxB,EACAykF,EAAIxhF,UAAUshO,QAAU,WACpB,IAAI5yH,EAAK3xG,KACL4b,EAAK+1F,EAAGjxG,SAAUvB,EAASyc,EAAGzc,OAAQwgP,EAAe/jO,EAAG+jO,aACxDA,GAAgBhuI,EAAGujJ,aACnBvjJ,EAAGvX,aAAewgK,GAAqBjpJ,EAAGtC,QAASswI,EAAa32O,KAAK+mF,YAAa4hB,EAAGtX,OAAQsX,EAAGvX,cAC5FuX,EAAG2qJ,aACHC,GAAe5qJ,EAAG2qJ,YAAa3qJ,EAAGvX,eAK1CuX,EAAG1xG,OAAS0/O,EAEZ,IAEIzwJ,EAFAsuK,EAAWhQ,GACXiQ,EAAiBH,GAErB,IACI5P,GAAmB/7I,GACnB2rJ,GAA2B3rJ,EAC3BziB,EAAQ/vF,EAAOkB,KAAKsxG,EAAGqnJ,aAAcrnJ,EAAG+rC,eAC5C,CACA,MAAOzzI,IACHyzP,GAAYzzP,GAAG0nG,EAAI,UAcfziB,EAAQyiB,EAAGorJ,MAEnB,CAAC,QAEGO,GAA2BG,EAC3B/P,GAAmB8P,EACvB,CAeA,OAbIr5P,EAAQ+qF,IAA2B,IAAjBA,EAAM9sF,SACxB8sF,EAAQA,EAAM,IAGZA,aAAiB2+J,KAKnB3+J,EAAQs/J,MAGZt/J,EAAM/uF,OAASw/O,EACRzwJ,CACX,CACJ,CAEA,SAASyuK,GAAWhY,EAAM/hF,GAItB,OAHI+hF,EAAKhzB,YAAen5M,IAA0C,WAA7BmsO,EAAK7iP,OAAOoS,gBAC7CywO,EAAOA,EAAKn5O,SAEToE,EAAS+0O,GAAQ/hF,EAAKr+E,OAAOogK,GAAQA,CAChD,CACA,SAASiY,GAAuB/wC,EAAS7jN,EAAMjJ,EAASkJ,EAAUc,GAC9D,IAAIqP,EAAOo1O,KAGX,OAFAp1O,EAAK20O,aAAelhC,EACpBzzM,EAAKk1O,UAAY,CAAEtlP,KAAMA,EAAMjJ,QAASA,EAASkJ,SAAUA,EAAUc,IAAKA,GACnEqP,CACX,CACA,SAASykP,GAAsBhxC,EAASixC,GACpC,GAAI9T,EAAOn9B,EAAQxiN,QAAUm1O,EAAM3yB,EAAQkxC,WACvC,OAAOlxC,EAAQkxC,UAEnB,GAAIve,EAAM3yB,EAAQjgK,UACd,OAAOigK,EAAQjgK,SAEnB,IAAIoxM,EAAQV,GAKZ,GAJIU,GAASxe,EAAM3yB,EAAQoxC,UAA8C,IAAnCpxC,EAAQoxC,OAAOz6P,QAAQw6P,IAEzDnxC,EAAQoxC,OAAOn8P,KAAKk8P,GAEpBhU,EAAOn9B,EAAQxiC,UAAYm1D,EAAM3yB,EAAQqxC,aACzC,OAAOrxC,EAAQqxC,YAEnB,GAAIF,IAAUxe,EAAM3yB,EAAQoxC,QAAS,CACjC,IAAIE,EAAYtxC,EAAQoxC,OAAS,CAACD,GAC9BI,GAAS,EACTC,EAAiB,KACjBC,EAAiB,KACrBN,EAAM7rJ,IAAI,kBAAkB,WAAc,OAAOu4I,EAASyT,EAAUH,EAAQ,IAC5E,IAAIO,EAAgB,SAAUC,GAC1B,IAAK,IAAIt8P,EAAI,EAAG8D,EAAIm4P,EAAS/7P,OAAQF,EAAI8D,EAAG9D,IACxCi8P,EAASj8P,GAAG0/L,eAEZ48D,IACAL,EAAS/7P,OAAS,EACK,OAAnBi8P,IACAn8O,aAAam8O,GACbA,EAAiB,MAEE,OAAnBC,IACAp8O,aAAao8O,GACbA,EAAiB,MAG7B,EACIh7M,EAAU2qE,GAAK,SAAU5mE,GAEzBwlK,EAAQjgK,SAAW+wM,GAAWt2M,EAAKy2M,GAG9BM,EAIDD,EAAS/7P,OAAS,EAHlBm8P,GAAc,EAKtB,IACIE,EAAWxwI,GAAK,SAAUxkF,GAItB+1M,EAAM3yB,EAAQkxC,aACdlxC,EAAQxiN,OAAQ,EAChBk0P,GAAc,GAEtB,IACIG,EAAQ7xC,EAAQvpK,EAASm7M,GA0C7B,OAzCI7tP,EAAS8tP,KACLp8K,EAAUo8K,GAEN3U,EAAQl9B,EAAQjgK,WAChB8xM,EAAMxtP,KAAKoyC,EAASm7M,GAGnBn8K,EAAUo8K,EAAMh5K,aACrBg5K,EAAMh5K,UAAUx0E,KAAKoyC,EAASm7M,GAC1Bjf,EAAMkf,EAAMr0P,SACZwiN,EAAQkxC,UAAYJ,GAAWe,EAAMr0P,MAAOyzP,IAE5Cte,EAAMkf,EAAMr0E,WACZwiC,EAAQqxC,YAAcP,GAAWe,EAAMr0E,QAASyzE,GAC5B,IAAhBY,EAAM/vG,MACNk+D,EAAQxiC,SAAU,EAIlBg0E,EAAiBr8O,YAAW,WACxBq8O,EAAiB,KACbtU,EAAQl9B,EAAQjgK,WAAam9L,EAAQl9B,EAAQxiN,SAC7CwiN,EAAQxiC,SAAU,EAClBk0E,GAAc,GAEtB,GAAGG,EAAM/vG,OAAS,MAGtB6wF,EAAMkf,EAAMr8O,WAEZi8O,EAAiBt8O,YAAW,WACxBs8O,EAAiB,KACbvU,EAAQl9B,EAAQjgK,WAChB6xM,EAA4F,KAEpG,GAAGC,EAAMr8O,YAIrB+7O,GAAS,EAEFvxC,EAAQxiC,QAAUwiC,EAAQqxC,YAAcrxC,EAAQjgK,QAC3D,CACJ,CAEA,SAAS+xM,GAAuB11P,GAC5B,GAAI9E,EAAQ8E,GACR,IAAK,IAAI/G,EAAI,EAAGA,EAAI+G,EAAS7G,OAAQF,IAAK,CACtC,IAAIsG,EAAIS,EAAS/G,GACjB,GAAIs9O,EAAMh3O,KAAOg3O,EAAMh3O,EAAEslP,mBAAqBS,GAAmB/lP,IAC7D,OAAOA,CAEf,CAER,CAEA,IAAIo2P,GAAmB,EACnBC,GAAmB,EAGvB,SAAS1B,GAAgBp9P,EAASgK,EAAKf,EAAMC,EAAU61P,EAAmBC,GAStE,OARI56P,EAAQ6E,IAASkhP,EAAYlhP,MAC7B81P,EAAoB71P,EACpBA,EAAWD,EACXA,OAAOD,GAEPihP,EAAO+U,KACPD,EAAoBD,IAEjB5zC,GAAelrN,EAASgK,EAAKf,EAAMC,EAAU61P,EACxD,CACA,SAAS7zC,GAAelrN,EAASgK,EAAKf,EAAMC,EAAU61P,GAClD,GAAItf,EAAMx2O,IAASw2O,EAAMx2O,EAAKinP,QAG1B,OAAOzB,KAMX,GAHIhP,EAAMx2O,IAASw2O,EAAMx2O,EAAKg2P,MAC1Bj1P,EAAMf,EAAKg2P,KAEVj1P,EAED,OAAOykP,KAmBX,IAAIt/J,EAAO7tD,EACX,GAZIl9B,EAAQ8E,IAAa0H,EAAW1H,EAAS,MACzCD,EAAOA,GAAQ,CAAC,EAChBA,EAAK+mF,YAAc,CAAEvjF,QAASvD,EAAS,IACvCA,EAAS7G,OAAS,GAElB08P,IAAsBD,GACtB51P,EAAWkuP,GAAkBluP,GAExB61P,IAAsBF,KAC3B31P,EAAWiuP,GAAwBjuP,IAGpB,kBAARc,EAAkB,CACzB,IAAIujP,OAAO,EACXjsN,EAAMthC,EAAQE,QAAUF,EAAQE,OAAOohC,IAAOX,EAAOwrN,gBAAgBniP,GASjEmlF,EARAxuD,EAAOqrN,cAAchiP,GAQb,IAAI8jP,GAAMntN,EAAOyrN,qBAAqBpiP,GAAMf,EAAMC,OAAUF,OAAWA,EAAWhJ,GAEnFiJ,GAASA,EAAKi2P,MACrBzf,EAAO8N,EAAOwK,GAAa/3P,EAAQW,SAAU,aAAcqJ,IAQnD,IAAI8jP,GAAM9jP,EAAKf,EAAMC,OAAUF,OAAWA,EAAWhJ,GANrDm/P,GAAgB5R,EAAMtkP,EAAMjJ,EAASkJ,EAAUc,EAQ/D,MAGImlF,EAAQgwK,GAAgBn1P,EAAKf,EAAMjJ,EAASkJ,GAEhD,OAAI9E,EAAQ+qF,GACDA,EAEFswJ,EAAMtwJ,IACPswJ,EAAMn+M,IACN89N,GAAQjwK,EAAO7tD,GACfm+M,EAAMx2O,IACNo2P,GAAqBp2P,GAClBkmF,GAGAs/J,IAEf,CACA,SAAS2Q,GAAQjwK,EAAO7tD,EAAI6mH,GAOxB,GANAh5D,EAAM7tD,GAAKA,EACO,kBAAd6tD,EAAMnlF,MAENs3B,OAAKt4B,EACLm/I,GAAQ,GAERs3F,EAAMtwJ,EAAMjmF,UACZ,IAAK,IAAI/G,EAAI,EAAG8D,EAAIkpF,EAAMjmF,SAAS7G,OAAQF,EAAI8D,EAAG9D,IAAK,CACnD,IAAI+8F,EAAQ/P,EAAMjmF,SAAS/G,GACvBs9O,EAAMvgJ,EAAMl1F,OACXggP,EAAQ9qJ,EAAM59D,KAAQ2oN,EAAO9hG,IAAwB,QAAdjpD,EAAMl1F,MAC9Co1P,GAAQlgK,EAAO59D,EAAI6mH,EAE3B,CAER,CAIA,SAASk3G,GAAqBp2P,GACtB4H,EAAS5H,EAAKlB,QACd6sP,GAAS3rP,EAAKlB,OAEd8I,EAAS5H,EAAKQ,QACdmrP,GAAS3rP,EAAKQ,MAEtB,CAMA,SAAS1I,GAAEwL,EAAMxD,EAAOG,GAMpB,OAAOk0P,GAAgB3P,GAAiBlhP,EAAMxD,EAAOG,EAAU,GAAG,EACtE,CAEA,SAASy0P,GAAYxjP,EAAKy3F,EAAIyT,GAG1BsqI,KACA,IACI,GAAI/9I,EAAI,CACJ,IAAIuxB,EAAMvxB,EACV,MAAQuxB,EAAMA,EAAI7zB,QAAU,CACxB,IAAI1hD,EAAQu1E,EAAIxiI,SAAS2+P,cACzB,GAAI1xM,EACA,IAAK,IAAIzrD,EAAI,EAAGA,EAAIyrD,EAAMvrD,OAAQF,IAC9B,IACI,IAAIqvC,GAAgD,IAAtCoc,EAAMzrD,GAAG7B,KAAK6iI,EAAKhpH,EAAKy3F,EAAIyT,GAC1C,GAAI7zE,EACA,MACR,CACA,MAAOtnC,IACHq1P,GAAkBr1P,GAAGi5H,EAAK,qBAC9B,CAGZ,CACJ,CACAo8H,GAAkBplP,EAAKy3F,EAAIyT,EAC/B,CAAC,QAEGuqI,IACJ,CACJ,CACA,SAAS6E,GAAwB/1O,EAAS1e,EAASi8B,EAAM21E,EAAIyT,GACzD,IAAI/9D,EACJ,IACIA,EAAMrrB,EAAOvd,EAAQ1c,MAAMhC,EAASi8B,GAAQvd,EAAQpe,KAAKN,GACrDsnD,IAAQA,EAAIihJ,QAAUhmH,EAAUj7B,KAASA,EAAIrE,WAC7CqE,EAAIk7B,OAAM,SAAUt4E,GAAK,OAAOyzP,GAAYzzP,EAAG0nG,EAAIyT,EAAO,mBAAqB,IAC/E/9D,EAAIrE,UAAW,EAEvB,CACA,MAAO/4C,IACHyzP,GAAYzzP,GAAG0nG,EAAIyT,EACvB,CACA,OAAO/9D,CACX,CACA,SAASi4M,GAAkBplP,EAAKy3F,EAAIyT,GAChC,GAAI1kF,EAAO6yK,aACP,IACI,OAAO7yK,EAAO6yK,aAAalzM,KAAK,KAAM6Z,EAAKy3F,EAAIyT,EACnD,CACA,MAAOn7G,IAGCA,KAAMiQ,GACNqlP,GAASt1P,GAAG,KAAM,sBAE1B,CAEJs1P,GAASrlP,EAAKy3F,EAAIyT,EACtB,CACA,SAASm6I,GAASrlP,EAAKy3F,EAAIyT,GAKvB,IAAI0qG,IAAgC,qBAAZ1lN,QAIpB,MAAM8P,EAHN9P,QAAQC,MAAM6P,EAKtB,CAGA,IAsBIslP,GAtBAC,IAAmB,EACnBpwL,GAAY,GACZrrB,IAAU,EACd,SAAS07M,KACL17M,IAAU,EACV,IAAI27M,EAAStwL,GAAU1qE,MAAM,GAC7B0qE,GAAUjtE,OAAS,EACnB,IAAK,IAAIF,EAAI,EAAGA,EAAIy9P,EAAOv9P,OAAQF,IAC/By9P,EAAOz9P,IAEf,CAoBA,GAAuB,qBAAZu5E,SAA2B4xK,GAAS5xK,SAAU,CACrD,IAAImkL,GAAMnkL,QAAQn4B,UAClBk8M,GAAY,WACRI,GAAI1uP,KAAKwuP,IAML7S,IACA7qO,WAAWgvG,EACnB,EACAyuI,IAAmB,CACvB,MACK,GAAK9pO,IACsB,qBAArBgmD,mBACN0xK,GAAS1xK,mBAE0B,yCAAhCA,iBAAiBj3E,WAoBrB86P,GAJ6B,qBAAjBK,cAAgCxS,GAASwS,cAIzC,WACRA,aAAaH,GACjB,EAIY,WACR19O,WAAW09O,GAAgB,EAC/B,MA5B6E,CAI7E,IAAII,GAAY,EACZ5xI,GAAW,IAAIvyC,iBAAiB+jL,IAChCK,GAAa1kL,SAAS2yH,eAAevhM,OAAOqzP,KAChD5xI,GAASQ,QAAQqxI,GAAY,CACzBp5F,eAAe,IAEnB64F,GAAY,WACRM,IAAaA,GAAY,GAAK,EAC9BC,GAAW/2P,KAAOyD,OAAOqzP,GAC7B,EACAL,IAAmB,CACvB,CAkBA,SAASnvK,GAAS3gF,EAAI4O,GAClB,IAAI4mC,EAmBJ,GAlBAkqB,GAAUvtE,MAAK,WACX,GAAI6N,EACA,IACIA,EAAGtP,KAAKke,EACZ,CACA,MAAOtU,IACHyzP,GAAYzzP,GAAGsU,EAAK,WACxB,MAEK4mC,GACLA,EAAS5mC,EAEjB,IACKylC,KACDA,IAAU,EACVw7M,OAGC7vP,GAAyB,qBAAZ8rE,QACd,OAAO,IAAIA,SAAQ,SAAUn4B,GACzB6B,EAAW7B,CACf,GAER,CAEA,SAAS08M,GAAap7P,GAId,QAHS,IAATA,IAAmBA,EAAO,WAGrB4oP,GAED,OAAO1D,EAEX,IAAI76H,EAAMu+H,GAAgB5oP,GAC1B,OAAKqqH,GAGM66H,CAInB,CAMA,SAASmW,GAAW7iO,GAChB,GAAK0yL,GAAL,CAEA,IAAI3wI,EAAWquK,GACVruK,GAKL80K,IAAgB,WACZ,IAAIjlK,EAAK7P,EAAS01B,IACdqrJ,EAAO9iO,EAAO+hD,EAAUA,EAAS28K,aACrC,GAAI9sK,GAAsB,IAAhBA,EAAG4N,SAAgB,CACzB,IAAI90F,EAAQknF,EAAGlnF,MACf,IAAK,IAAIvF,KAAO29P,EACZp4P,EAAMq4P,YAAY,KAAKl/P,OAAOsB,GAAM29P,EAAK39P,GAEjD,CACJ,GAhBU,CAiBd,CAOA,SAAS69P,GAAqB/9P,GACtBsO,EAAWtO,KACXA,EAAS,CAAEolO,OAAQplO,IAEvB,IAAIolO,EAASplO,EAAOolO,OAAQ44B,EAAmBh+P,EAAOg+P,iBAAkBC,EAAiBj+P,EAAOi+P,eAAgB1kP,EAAKvZ,EAAOssJ,MAAOA,OAAe,IAAP/yI,EAAgB,IAAMA,EAAIyG,EAAUhgB,EAAOggB,QAGtLk+O,GAFKl+P,EAAOm+P,YAEEn+P,EAAOykP,SAIrB,IAAI2Z,EAAiB,KACjBC,EAAU,EACV78L,EAAQ,WAGR,OAFA68L,IACAD,EAAiB,KACVE,GACX,EACIA,EAAO,WACP,IAAIC,EACJ,OAAQH,IACHG,EAAcH,EACXh5B,IACKllJ,OAAM,SAAUroE,GAEjB,GADAA,EAAMA,aAAexG,MAAQwG,EAAM,IAAIxG,MAAMjH,OAAOyN,IAChDqmP,EACA,OAAO,IAAI9kL,SAAQ,SAAUn4B,EAASC,GAClC,IAAIs9M,EAAY,WAAc,OAAOv9M,EAAQugB,IAAU,EACnDi9L,EAAW,WAAc,OAAOv9M,EAAOrpC,EAAM,EACjDqmP,EAAYrmP,EAAK2mP,EAAWC,EAAUJ,EAAU,EACpD,IAGA,MAAMxmP,CAEd,IACKhJ,MAAK,SAAUy0O,GAChB,OAAIib,IAAgBH,GAAkBA,EAC3BA,GAOP9a,IACCA,EAAKhzB,YAA2C,WAA7BgzB,EAAK7iP,OAAOoS,gBAChCywO,EAAOA,EAAKn5O,SAKTm5O,EACX,IACZ,EACA,OAAO,WACH,IAAIjgK,EAAYi7K,IAChB,MAAO,CACHj7K,UAAWA,EACXipE,MAAOA,EACPtsI,QAASA,EACThY,MAAOi2P,EACPj2E,QAASg2E,EAEjB,CACJ,CAEA,SAASU,GAAgBl0B,GACrB,OAAO,SAAUpyN,EAAIxY,GAEjB,QADe,IAAXA,IAAqBA,EAASurP,IAC7BvrP,EAOL,OAAO++P,GAAW/+P,EAAQ4qO,EAAUpyN,EACxC,CACJ,CAUA,SAASumP,GAAW7hL,EAAU0tJ,EAAUpyN,GACpC,IAAI9a,EAAUw/E,EAASz+E,SACvBf,EAAQktO,GAAYo0B,GAAmBthQ,EAAQktO,GAAWpyN,EAC9D,CACA,IAAIymP,GAAgBH,GAAgB,eAChCI,GAAYJ,GAAgB,WAC5BK,GAAiBL,GAAgB,gBACjCM,GAAYN,GAAgB,WAC5BO,GAAkBP,GAAgB,iBAClCQ,GAAcR,GAAgB,aAC9BS,GAAcT,GAAgB,aAC9BU,GAAgBV,GAAgB,eAChCW,GAAmBX,GAAgB,kBACnCY,GAAkBZ,GAAgB,iBAClCa,GAAoBb,GAAgB,mBACpCc,GAA0Bd,GAAgB,iBAC9C,SAASe,GAAgBpiQ,EAAMuC,QACZ,IAAXA,IAAqBA,EAASurP,IAClCqU,GAAwBniQ,EAAMuC,EAClC,CAKA,IAAIq2B,GAAU,SAId,SAASypO,GAAgBpiQ,GACrB,OAAOA,CACX,CAEA,IAAIqiQ,GAAc,IAAIzU,GAMtB,SAASoH,GAAStrP,GAGd,OAFA44P,GAAU54P,EAAK24P,IACfA,GAAYh4D,QACL3gM,CACX,CACA,SAAS44P,GAAU54P,EAAK64P,GACpB,IAAIhgQ,EAAGZ,EACH6gQ,EAAMh+P,EAAQkF,GAClB,MAAM84P,IAAQvxP,EAASvH,IACnBA,EAAIynP,UACJvvP,OAAO6gQ,SAAS/4P,IAChBA,aAAewkP,IAHnB,CAMA,GAAIxkP,EAAI4mP,OAAQ,CACZ,IAAIoS,EAAQh5P,EAAI4mP,OAAOjB,IAAIp2N,GAC3B,GAAIspO,EAAKzhL,IAAI4hL,GACT,OAEJH,EAAK3hQ,IAAI8hQ,EACb,CACA,GAAIF,EAAK,CACLjgQ,EAAImH,EAAIjH,OACR,MAAOF,IACH+/P,GAAU54P,EAAInH,GAAIggQ,EAC1B,MACK,GAAInR,GAAM1nP,GACX44P,GAAU54P,EAAInG,MAAOg/P,OAEpB,CACD5gQ,EAAOC,OAAOD,KAAK+H,GACnBnH,EAAIZ,EAAKc,OACT,MAAOF,IACH+/P,GAAU54P,EAAI/H,EAAKY,IAAKggQ,EAChC,CArBA,CAsBJ,CAEA,IA4OIr+B,GA5OAy+B,GAAQ,EAOR/O,GAAyB,WACzB,SAASA,EAAQ5hJ,EAAI4wJ,EAAS5yP,EAAIhQ,EAAS6iQ,GACvC5M,GAAkB51P,KAGlBm0P,KAAsBA,GAAkBtlF,IAClCslF,GACAxiJ,EACIA,EAAGg8I,YACH5kP,IACL/I,KAAK2xG,GAAKA,IAAO6wJ,IAClB7wJ,EAAG8wJ,SAAWziQ,MAGdL,GACAK,KAAKuxB,OAAS5xB,EAAQ4xB,KACtBvxB,KAAKy3D,OAAS93D,EAAQ83D,KACtBz3D,KAAKiwI,OAAStwI,EAAQswI,KACtBjwI,KAAKm/C,OAASx/C,EAAQw/C,KACtBn/C,KAAK0iQ,OAAS/iQ,EAAQ+iQ,QAOtB1iQ,KAAKuxB,KAAOvxB,KAAKy3D,KAAOz3D,KAAKiwI,KAAOjwI,KAAKm/C,MAAO,EAEpDn/C,KAAK2P,GAAKA,EACV3P,KAAK44B,KAAO0pO,GACZtiQ,KAAK2zG,QAAS,EACd3zG,KAAKg1P,MAAO,EACZh1P,KAAKyzP,MAAQzzP,KAAKiwI,KAClBjwI,KAAK2iQ,KAAO,GACZ3iQ,KAAK4iQ,QAAU,GACf5iQ,KAAK6iQ,OAAS,IAAItV,GAClBvtP,KAAK8iQ,UAAY,IAAIvV,GACrBvtP,KAAKqnO,WAA0E,GAE3E12N,EAAW4xP,GACXviQ,KAAKo9B,OAASmlO,GAGdviQ,KAAKo9B,OAASgjM,EAAUmiC,GACnBviQ,KAAKo9B,SACNp9B,KAAKo9B,OAAS4zF,IAOtBhxH,KAAKkD,MAAQlD,KAAKiwI,UAAOlnI,EAAY/I,KAAKgS,KAC9C,CA4IA,OAxIAuhP,EAAQtwP,UAAU+O,IAAM,WAEpB,IAAI9O,EADJwsP,GAAW1vP,MAEX,IAAI2xG,EAAK3xG,KAAK2xG,GACd,IACIzuG,EAAQlD,KAAKo9B,OAAO/8B,KAAKsxG,EAAIA,EACjC,CACA,MAAO1nG,IACH,IAAIjK,KAAKy3D,KAIL,MAAMxtD,GAHNyzP,GAAYzzP,GAAG0nG,EAAI,uBAAwB1wG,OAAOjB,KAAKqnO,WAAY,KAK3E,CAAC,QAIOrnO,KAAKuxB,MACLojO,GAASzxP,GAEbysP,KACA3vP,KAAK+uP,aACT,CACA,OAAO7rP,CACX,EAIAqwP,EAAQtwP,UAAUssP,OAAS,SAAUP,GACjC,IAAIp2N,EAAKo2N,EAAIp2N,GACR54B,KAAK8iQ,UAAUriL,IAAI7nD,KACpB54B,KAAK8iQ,UAAUviQ,IAAIq4B,GACnB54B,KAAK4iQ,QAAQ9gQ,KAAKktP,GACbhvP,KAAK6iQ,OAAOpiL,IAAI7nD,IACjBo2N,EAAII,OAAOpvP,MAGvB,EAIAuzP,EAAQtwP,UAAU8rP,YAAc,WAC5B,IAAI7sP,EAAIlC,KAAK2iQ,KAAKvgQ,OAClB,MAAOF,IAAK,CACR,IAAI8sP,EAAMhvP,KAAK2iQ,KAAKzgQ,GACflC,KAAK8iQ,UAAUriL,IAAIuuK,EAAIp2N,KACxBo2N,EAAIK,UAAUrvP,KAEtB,CACA,IAAIi1B,EAAMj1B,KAAK6iQ,OACf7iQ,KAAK6iQ,OAAS7iQ,KAAK8iQ,UACnB9iQ,KAAK8iQ,UAAY7tO,EACjBj1B,KAAK8iQ,UAAU94D,QACf/0K,EAAMj1B,KAAK2iQ,KACX3iQ,KAAK2iQ,KAAO3iQ,KAAK4iQ,QACjB5iQ,KAAK4iQ,QAAU3tO,EACfj1B,KAAK4iQ,QAAQxgQ,OAAS,CAC1B,EAKAmxP,EAAQtwP,UAAUq7C,OAAS,WAEnBt+C,KAAKiwI,KACLjwI,KAAKyzP,OAAQ,EAERzzP,KAAKm/C,KACVn/C,KAAKotD,MAGL6nM,GAAaj1P,KAErB,EAKAuzP,EAAQtwP,UAAUmqD,IAAM,WACpB,GAAIptD,KAAK2zG,OAAQ,CACb,IAAIzwG,EAAQlD,KAAKgS,MACjB,GAAI9O,IAAUlD,KAAKkD,OAIf0N,EAAS1N,IACTlD,KAAKuxB,KAAM,CAEX,IAAIw/E,EAAW/wG,KAAKkD,MAEpB,GADAlD,KAAKkD,MAAQA,EACTlD,KAAKy3D,KAAM,CACX,IAAI2tD,EAAO,yBAA0BnkH,OAAOjB,KAAKqnO,WAAY,KAC7DmtB,GAAwBx0P,KAAK2P,GAAI3P,KAAK2xG,GAAI,CAACzuG,EAAO6tG,GAAW/wG,KAAK2xG,GAAIyT,EAC1E,MAEIplH,KAAK2P,GAAGtP,KAAKL,KAAK2xG,GAAIzuG,EAAO6tG,EAErC,CACJ,CACJ,EAKAwiJ,EAAQtwP,UAAUywP,SAAW,WACzB1zP,KAAKkD,MAAQlD,KAAKgS,MAClBhS,KAAKyzP,OAAQ,CACjB,EAIAF,EAAQtwP,UAAUqsP,OAAS,WACvB,IAAIptP,EAAIlC,KAAK2iQ,KAAKvgQ,OAClB,MAAOF,IACHlC,KAAK2iQ,KAAKzgQ,GAAGotP,QAErB,EAIAiE,EAAQtwP,UAAU2kP,SAAW,WAIzB,GAHI5nP,KAAK2xG,KAAO3xG,KAAK2xG,GAAG2zD,mBACpBolF,EAAS1qP,KAAK2xG,GAAGg8I,OAAO2H,QAASt1P,MAEjCA,KAAK2zG,OAAQ,CACb,IAAIzxG,EAAIlC,KAAK2iQ,KAAKvgQ,OAClB,MAAOF,IACHlC,KAAK2iQ,KAAKzgQ,GAAGmtP,UAAUrvP,MAE3BA,KAAK2zG,QAAS,EACV3zG,KAAK80P,QACL90P,KAAK80P,QAEb,CACJ,EACOvB,CACX,CAlM6B,GA4N7B,SAASwP,GAAWpxJ,GAChBA,EAAGm1E,QAAUvlL,OAAOs2C,OAAO,MAC3B85D,EAAGqxJ,eAAgB,EAEnB,IAAIzzL,EAAYoiC,EAAGjxG,SAAS28P,iBACxB9tL,GACA0zL,GAAyBtxJ,EAAIpiC,EAErC,CAEA,SAAS2zL,GAAMx5M,EAAOjvC,GAClBopN,GAAS1xH,IAAIzoD,EAAOjvC,EACxB,CACA,SAAS0oP,GAASz5M,EAAOjvC,GACrBopN,GAASrxH,KAAK9oD,EAAOjvC,EACzB,CACA,SAAS2oP,GAAoB15M,EAAOjvC,GAChC,IAAI4oP,EAAUx/B,GACd,OAAO,SAASy/B,IACZ,IAAIj8M,EAAM5sC,EAAG1Y,MAAM,KAAMI,WACb,OAARklD,GACAg8M,EAAQ7wJ,KAAK9oD,EAAO45M,EAE5B,CACJ,CACA,SAASL,GAAyBtxJ,EAAIpiC,EAAWg0L,GAC7C1/B,GAAWlyH,EACXsoC,GAAgB1qE,EAAWg0L,GAAgB,CAAC,EAAGL,GAAOC,GAAUC,GAAqBzxJ,GACrFkyH,QAAW96N,CACf,CACA,SAASy6P,GAAY/+K,GACjB,IAAIg/K,EAAS,SACbh/K,EAAIxhF,UAAUkvG,IAAM,SAAUzoD,EAAOjvC,GACjC,IAAIk3F,EAAK3xG,KACT,GAAImE,EAAQulD,GACR,IAAK,IAAIxnD,EAAI,EAAG8D,EAAI0jD,EAAMtnD,OAAQF,EAAI8D,EAAG9D,IACrCyvG,EAAGQ,IAAIzoD,EAAMxnD,GAAIuY,QAIpBk3F,EAAGm1E,QAAQp9H,KAAWioD,EAAGm1E,QAAQp9H,GAAS,KAAK5nD,KAAK2Y,GAGjDgpP,EAAO5+P,KAAK6kD,KACZioD,EAAGqxJ,eAAgB,GAG3B,OAAOrxJ,CACX,EACAltB,EAAIxhF,UAAUsvG,MAAQ,SAAU7oD,EAAOjvC,GACnC,IAAIk3F,EAAK3xG,KACT,SAASqwF,IACLshB,EAAGa,KAAK9oD,EAAO2mC,GACf51E,EAAG1Y,MAAM4vG,EAAIxvG,UACjB,CAGA,OAFAkuF,EAAG51E,GAAKA,EACRk3F,EAAGQ,IAAIzoD,EAAO2mC,GACPshB,CACX,EACAltB,EAAIxhF,UAAUuvG,KAAO,SAAU9oD,EAAOjvC,GAClC,IAAIk3F,EAAK3xG,KAET,IAAKmC,UAAUC,OAEX,OADAuvG,EAAGm1E,QAAUvlL,OAAOs2C,OAAO,MACpB85D,EAGX,GAAIxtG,EAAQulD,GAAQ,CAChB,IAAK,IAAIg6M,EAAM,EAAG19P,EAAI0jD,EAAMtnD,OAAQshQ,EAAM19P,EAAG09P,IACzC/xJ,EAAGa,KAAK9oD,EAAMg6M,GAAMjpP,GAExB,OAAOk3F,CACX,CAEA,IASIhiG,EATAgqO,EAAMhoI,EAAGm1E,QAAQp9H,GACrB,IAAKiwL,EACD,OAAOhoI,EAEX,IAAKl3F,EAED,OADAk3F,EAAGm1E,QAAQp9H,GAAS,KACbioD,EAIX,IAAIzvG,EAAIy3O,EAAIv3O,OACZ,MAAOF,IAEH,GADAyN,EAAKgqO,EAAIz3O,GACLyN,IAAO8K,GAAM9K,EAAG8K,KAAOA,EAAI,CAC3Bk/N,EAAI7uM,OAAO5oC,EAAG,GACd,KACJ,CAEJ,OAAOyvG,CACX,EACAltB,EAAIxhF,UAAU6kG,MAAQ,SAAUp+C,GAC5B,IAAIioD,EAAK3xG,KAWL25O,EAAMhoI,EAAGm1E,QAAQp9H,GACrB,GAAIiwL,EAAK,CACLA,EAAMA,EAAIv3O,OAAS,EAAIgrO,EAAQuM,GAAOA,EAGtC,IAFA,IAAI39M,EAAOoxM,EAAQjrO,UAAW,GAC1BijH,EAAO,sBAAuBnkH,OAAOyoD,EAAO,KACvCxnD,EAAI,EAAG8D,EAAI2zO,EAAIv3O,OAAQF,EAAI8D,EAAG9D,IACnCsyP,GAAwB7a,EAAIz3O,GAAIyvG,EAAI31E,EAAM21E,EAAIyT,EAEtD,CACA,OAAOzT,CACX,CACJ,CAEA,IAAIgyJ,GAAiB,KAErB,SAASC,GAAkBjyJ,GACvB,IAAIkyJ,EAAqBF,GAEzB,OADAA,GAAiBhyJ,EACV,WACHgyJ,GAAiBE,CACrB,CACJ,CACA,SAASC,GAAcnyJ,GACnB,IAAIhyG,EAAUgyG,EAAGjxG,SAEbP,EAASR,EAAQQ,OACrB,GAAIA,IAAWR,EAAQ4N,SAAU,CAC7B,MAAOpN,EAAOO,SAAS6M,UAAYpN,EAAOkvG,QACtClvG,EAASA,EAAOkvG,QAEpBlvG,EAAOk/J,UAAUv9J,KAAK6vG,EAC1B,CACAA,EAAGtC,QAAUlvG,EACbwxG,EAAGlxG,MAAQN,EAASA,EAAOM,MAAQkxG,EACnCA,EAAG0tD,UAAY,GACf1tD,EAAGkU,MAAQ,CAAC,EACZlU,EAAGqkJ,UAAY71P,EAASA,EAAO61P,UAAYz0P,OAAOs2C,OAAO,MACzD85D,EAAG8wJ,SAAW,KACd9wJ,EAAGu/H,UAAY,KACfv/H,EAAG2oI,iBAAkB,EACrB3oI,EAAGujJ,YAAa,EAChBvjJ,EAAG4zD,cAAe,EAClB5zD,EAAG2zD,mBAAoB,CAC3B,CACA,SAASy+F,GAAet/K,GACpBA,EAAIxhF,UAAU+gQ,QAAU,SAAU90K,EAAO+0K,GACrC,IAAItyJ,EAAK3xG,KACLkkQ,EAASvyJ,EAAGkD,IACZsvJ,EAAYxyJ,EAAGorJ,OACfqH,EAAwBR,GAAkBjyJ,GAC9CA,EAAGorJ,OAAS7tK,EASRyiB,EAAGkD,IANFsvJ,EAMQxyJ,EAAG0yJ,UAAUF,EAAWj1K,GAJxByiB,EAAG0yJ,UAAU1yJ,EAAGkD,IAAK3lB,EAAO+0K,GAAW,GAMpDG,IAEIF,IACAA,EAAOtvJ,QAAU,MAEjBjD,EAAGkD,MACHlD,EAAGkD,IAAID,QAAUjD,GAGrB,IAAIolG,EAAUplG,EACd,MAAOolG,GACHA,EAAQ92M,QACR82M,EAAQ1nG,SACR0nG,EAAQ92M,SAAW82M,EAAQ1nG,QAAQ0tJ,OACnChmD,EAAQ1nG,QAAQwF,IAAMkiG,EAAQliG,IAC9BkiG,EAAUA,EAAQ1nG,OAI1B,EACA5qB,EAAIxhF,UAAU2+L,aAAe,WACzB,IAAIjwF,EAAK3xG,KACL2xG,EAAG8wJ,UACH9wJ,EAAG8wJ,SAASnkN,QAEpB,EACAmmC,EAAIxhF,UAAUqgK,SAAW,WACrB,IAAI3xD,EAAK3xG,KACT,IAAI2xG,EAAG2zD,kBAAP,CAGAg/F,GAAW3yJ,EAAI,iBACfA,EAAG2zD,mBAAoB,EAEvB,IAAInlK,EAASwxG,EAAGtC,SACZlvG,GAAWA,EAAOmlK,mBAAsB3zD,EAAGjxG,SAAS6M,UACpDm9O,EAASvqP,EAAOk/J,UAAW1tD,GAI/BA,EAAGg8I,OAAOr/H,OAGN3c,EAAGylI,MAAM6Y,QACTt+I,EAAGylI,MAAM6Y,OAAOU,UAGpBh/I,EAAG4zD,cAAe,EAElB5zD,EAAG0yJ,UAAU1yJ,EAAGorJ,OAAQ,MAExBuH,GAAW3yJ,EAAI,aAEfA,EAAGa,OAECb,EAAGkD,MACHlD,EAAGkD,IAAID,QAAU,MAGjBjD,EAAG1xG,SACH0xG,EAAG1xG,OAAOE,OAAS,KA9BvB,CAgCJ,CACJ,CACA,SAASokQ,GAAe5yJ,EAAI3iB,EAAIi1K,GAoB5B,IAAIO,EAnBJ7yJ,EAAGkD,IAAM7lB,EACJ2iB,EAAGjxG,SAASvB,SAEbwyG,EAAGjxG,SAASvB,OAASqvP,IAezB8V,GAAW3yJ,EAAI,eAoBX6yJ,EAAkB,WACd7yJ,EAAGqyJ,QAAQryJ,EAAG4yH,UAAW0/B,EAC7B,EAEJ,IAAIQ,EAAiB,CACjB/B,OAAQ,WACA/wJ,EAAGujJ,aAAevjJ,EAAG4zD,cACrB++F,GAAW3yJ,EAAI,eAEvB,GASJ,IAAI4hJ,GAAQ5hJ,EAAI6yJ,EAAiBxzI,EAAMyzI,GAAgB,GACvDR,GAAY,EAEZ,IAAIS,EAAc/yJ,EAAGwjJ,aACrB,GAAIuP,EACA,IAAK,IAAIxiQ,EAAI,EAAGA,EAAIwiQ,EAAYtiQ,OAAQF,IACpCwiQ,EAAYxiQ,GAAGkrD,MASvB,OAJiB,MAAbukD,EAAG1xG,SACH0xG,EAAGujJ,YAAa,EAChBoP,GAAW3yJ,EAAI,YAEZA,CACX,CACA,SAASgzJ,GAAqBhzJ,EAAIyxD,EAAW7zF,EAAWytL,EAAa4H,GASjE,IAAIC,EAAiB7H,EAAYh0P,KAAK+mF,YAClC+0K,EAAiBnzJ,EAAGvX,aACpB2qK,KAA2BF,IAAmBA,EAAepL,SAC5DqL,IAAmBhb,IAAgBgb,EAAerL,SAClDoL,GAAkBlzJ,EAAGvX,aAAas/J,OAASmL,EAAenL,OACzDmL,GAAkBlzJ,EAAGvX,aAAas/J,MAIpCsL,KAAsBJ,GACtBjzJ,EAAGjxG,SAASw8P,iBACZ6H,GACAE,EAAYtzJ,EAAG1xG,OACnB0xG,EAAGjxG,SAASi/O,aAAeqd,EAC3BrrJ,EAAG1xG,OAAS+8P,EACRrrJ,EAAGorJ,SAEHprJ,EAAGorJ,OAAO58P,OAAS68P,GAEvBrrJ,EAAGjxG,SAASw8P,gBAAkB0H,EAI9B,IAAIt7P,EAAQ0zP,EAAYh0P,KAAKM,OAASwgP,EAClCn4I,EAAGoqJ,aAGCC,GAAerqJ,EAAGoqJ,YAAazyP,EAAQ27P,EAAUj8P,MAAQi8P,EAAUj8P,KAAKM,OAAUwgP,EAAan4I,EAAI,YACnGqzJ,GAAmB,GAG3BrzJ,EAAGH,OAASloG,EAEZimE,EAAYA,GAAau6K,EACzB,IAAIob,EAAgBvzJ,EAAGjxG,SAAS28P,iBAOhC,GANI1rJ,EAAGsqJ,iBACHD,GAAerqJ,EAAGsqJ,gBAAiB1sL,EAAW21L,GAAiBpb,EAAan4I,EAAI,cAEpFA,EAAGmB,WAAanB,EAAGjxG,SAAS28P,iBAAmB9tL,EAC/C0zL,GAAyBtxJ,EAAIpiC,EAAW21L,GAEpC9hG,GAAazxD,EAAGjxG,SAASoI,MAAO,CAChCwnP,IAAgB,GAGhB,IAFA,IAAIxnP,EAAQ6oG,EAAG2gF,OACX6yE,EAAWxzJ,EAAGjxG,SAAS0kQ,WAAa,GAC/BljQ,EAAI,EAAGA,EAAIijQ,EAAS/iQ,OAAQF,IAAK,CACtC,IAAIK,EAAM4iQ,EAASjjQ,GACf80P,EAAcrlJ,EAAGjxG,SAASoI,MAC9BA,EAAMvG,GAAO8iQ,GAAa9iQ,EAAKy0P,EAAa5zF,EAAWzxD,EAC3D,CACA2+I,IAAgB,GAEhB3+I,EAAGjxG,SAAS0iK,UAAYA,CAC5B,CAEI4hG,IACArzJ,EAAGtX,OAASogK,GAAamK,EAAgB5H,EAAYj9P,SACrD4xG,EAAGiwF,eAKX,CACA,SAAS0jE,GAAiB3zJ,GACtB,MAAOA,IAAOA,EAAKA,EAAGtC,SAClB,GAAIsC,EAAGu/H,UACH,OAAO,EAEf,OAAO,CACX,CACA,SAASq0B,GAAuB5zJ,EAAI6zJ,GAChC,GAAIA,GAEA,GADA7zJ,EAAG2oI,iBAAkB,EACjBgrB,GAAiB3zJ,GACjB,YAGH,GAAIA,EAAG2oI,gBACR,OAEJ,GAAI3oI,EAAGu/H,WAA8B,OAAjBv/H,EAAGu/H,UAAoB,CACvCv/H,EAAGu/H,WAAY,EACf,IAAK,IAAIhvO,EAAI,EAAGA,EAAIyvG,EAAG0tD,UAAUj9J,OAAQF,IACrCqjQ,GAAuB5zJ,EAAG0tD,UAAUn9J,IAExCoiQ,GAAW3yJ,EAAI,YACnB,CACJ,CACA,SAAS8zJ,GAAyB9zJ,EAAI6zJ,GAClC,KAAIA,IACA7zJ,EAAG2oI,iBAAkB,GACjBgrB,GAAiB3zJ,OAIpBA,EAAGu/H,UAAW,CACfv/H,EAAGu/H,WAAY,EACf,IAAK,IAAIhvO,EAAI,EAAGA,EAAIyvG,EAAG0tD,UAAUj9J,OAAQF,IACrCujQ,GAAyB9zJ,EAAG0tD,UAAUn9J,IAE1CoiQ,GAAW3yJ,EAAI,cACnB,CACJ,CACA,SAAS2yJ,GAAW3yJ,EAAIjyG,EAAMs8B,EAAM0pO,QACb,IAAfA,IAAyBA,GAAa,GAE1ChW,KACA,IAAI8N,EAAWhQ,GACXmY,EAAY9P,KAChB6P,GAAchY,GAAmB/7I,GACjC,IAAI1kD,EAAW0kD,EAAGjxG,SAAShB,GACvB0lH,EAAO,GAAGnkH,OAAOvB,EAAM,SAC3B,GAAIutD,EACA,IAAK,IAAI/qD,EAAI,EAAGulB,EAAIwlC,EAAS7qD,OAAQF,EAAIulB,EAAGvlB,IACxCsyP,GAAwBvnM,EAAS/qD,GAAIyvG,EAAI31E,GAAQ,KAAM21E,EAAIyT,GAG/DzT,EAAGqxJ,eACHrxJ,EAAG7J,MAAM,QAAUpoG,GAEnBgmQ,IACAhY,GAAmB8P,GACnBmI,GAAaA,EAAUt1K,MAE3Bs/J,IACJ,CAEA,IACIzsN,GAAQ,GACR0iO,GAAoB,GACpBnlL,GAAM,CAAC,EAEP7Q,IAAU,EACVi2L,IAAW,EACX5xN,GAAQ,EAIZ,SAAS6xN,KACL7xN,GAAQ/Q,GAAM9gC,OAASwjQ,GAAkBxjQ,OAAS,EAClDq+E,GAAM,CAAC,EAIP7Q,GAAUi2L,IAAW,CACzB,CAMA,IAAIE,GAAwB,EAExBC,GAASppP,KAAKC,IAOlB,GAAIizM,KAAcn6L,GAAM,CACpB,IAAIswO,GAAgB9gQ,OAAOq9O,YACvByjB,IAC6B,oBAAtBA,GAAcppP,KACrBmpP,KAAW3qL,SAAS75B,YAAY,SAAS0kN,YAKzCF,GAAS,WAAc,OAAOC,GAAcppP,KAAO,EAE3D,CACA,IAAIspP,GAAgB,SAAUtlL,EAAG/oE,GAC7B,GAAI+oE,EAAEm0K,MACF,IAAKl9O,EAAEk9O,KACH,OAAO,OAEV,GAAIl9O,EAAEk9O,KACP,OAAQ,EAEZ,OAAOn0K,EAAEjoD,GAAK9gB,EAAE8gB,EACpB,EAIA,SAASwtO,KAGL,IAAI9S,EAAS16N,EAYb,IAdAmtO,GAAwBC,KACxBH,IAAW,EAUX3iO,GAAMyN,KAAKw1N,IAGNlyN,GAAQ,EAAGA,GAAQ/Q,GAAM9gC,OAAQ6xC,KAClCq/M,EAAUpwN,GAAM+Q,IACZq/M,EAAQoP,QACRpP,EAAQoP,SAEZ9pO,EAAK06N,EAAQ16N,GACb6nD,GAAI7nD,GAAM,KACV06N,EAAQlmM,MAcZ,IAAIi5M,EAAiBT,GAAkBjhQ,QACnC2hQ,EAAepjO,GAAMv+B,QACzBmhQ,KAEAS,GAAmBF,GACnBG,GAAiBF,GACjBvX,KAGIrgB,IAAYhuM,EAAOguM,UACnBA,GAAStqL,KAAK,QAEtB,CACA,SAASoiN,GAAiBtjO,GACtB,IAAIhhC,EAAIghC,EAAM9gC,OACd,MAAOF,IAAK,CACR,IAAIoxP,EAAUpwN,EAAMhhC,GAChByvG,EAAK2hJ,EAAQ3hJ,GACbA,GAAMA,EAAG8wJ,WAAanP,GAAW3hJ,EAAGujJ,aAAevjJ,EAAG4zD,cACtD++F,GAAW3yJ,EAAI,UAEvB,CACJ,CAKA,SAAS80J,GAAwB90J,GAG7BA,EAAGu/H,WAAY,EACf00B,GAAkB9jQ,KAAK6vG,EAC3B,CACA,SAAS40J,GAAmBrjO,GACxB,IAAK,IAAIhhC,EAAI,EAAGA,EAAIghC,EAAM9gC,OAAQF,IAC9BghC,EAAMhhC,GAAGgvO,WAAY,EACrBq0B,GAAuBriO,EAAMhhC,IAAI,EAEzC,CAMA,SAAS+yP,GAAa3B,GAClB,IAAI16N,EAAK06N,EAAQ16N,GACjB,GAAe,MAAX6nD,GAAI7nD,KAGJ06N,IAAYnE,GAAIltP,SAAUqxP,EAAQyB,WAAtC,CAIA,GADAt0K,GAAI7nD,IAAM,EACLitO,GAGA,CAGD,IAAI3jQ,EAAIghC,GAAM9gC,OAAS,EACvB,MAAOF,EAAI+xC,IAAS/Q,GAAMhhC,GAAG02B,GAAK06N,EAAQ16N,GACtC12B,IAEJghC,GAAM4H,OAAO5oC,EAAI,EAAG,EAAGoxP,EAC3B,MAVIpwN,GAAMphC,KAAKwxP,GAYV1jL,KACDA,IAAU,EAKV0gB,GAAS81K,IArBb,CAuBJ,CAEA,SAASM,GAAY/0J,GACjB,IAAIg1J,EAAgBh1J,EAAGjxG,SAAS+3G,QAChC,GAAIkuJ,EAAe,CACf,IAAIC,EAAWj2P,EAAWg2P,GACpBA,EAActmQ,KAAKsxG,GACnBg1J,EACN,IAAK/1P,EAASg2P,GACV,OAMJ,IAJA,IAAIvkQ,EAAS0zP,GAAgBpkJ,GAGzBrwG,EAAOkY,GAAYumE,QAAQ5+E,QAAQylQ,GAAYrlQ,OAAOD,KAAKslQ,GACtD1kQ,EAAI,EAAGA,EAAIZ,EAAKc,OAAQF,IAAK,CAClC,IAAIK,EAAMjB,EAAKY,GACfX,OAAOoB,eAAeN,EAAQE,EAAKhB,OAAOK,yBAAyBglQ,EAAUrkQ,GACjF,CACJ,CACJ,CACA,SAASskQ,GAAel1J,GACpB,IAAI9hG,EAASi3P,GAAcn1J,EAAGjxG,SAAS22G,OAAQ1F,GAC3C9hG,IACAygP,IAAgB,GAChB/uP,OAAOD,KAAKuO,GAAQvN,SAAQ,SAAUC,GAU9Bu9O,GAAenuI,EAAIpvG,EAAKsN,EAAOtN,GAEvC,IACA+tP,IAAgB,GAExB,CACA,SAASwW,GAAczvJ,EAAQ1F,GAC3B,GAAI0F,EAAQ,CAIR,IAFA,IAAIxnG,EAAStO,OAAOs2C,OAAO,MACvBv2C,EAAOkY,GAAYumE,QAAQ5+E,QAAQk2G,GAAU91G,OAAOD,KAAK+1G,GACpDn1G,EAAI,EAAGA,EAAIZ,EAAKc,OAAQF,IAAK,CAClC,IAAIK,EAAMjB,EAAKY,GAEf,GAAY,WAARK,EAAJ,CAEA,IAAIwkQ,EAAa1vJ,EAAO90G,GAAK+B,KAC7B,GAAIyiQ,KAAcp1J,EAAGqkJ,UACjBnmP,EAAOtN,GAAOovG,EAAGqkJ,UAAU+Q,QAE1B,GAAI,YAAa1vJ,EAAO90G,GAAM,CAC/B,IAAIykQ,EAAiB3vJ,EAAO90G,GAAKiK,QACjCqD,EAAOtN,GAAOoO,EAAWq2P,GACnBA,EAAe3mQ,KAAKsxG,GACpBq1J,CACV,MACS3/P,CAXG,CAchB,CACA,OAAOwI,CACX,CACJ,CAEA,SAASo3P,GAAwBj+P,EAAMF,EAAOG,EAAU9I,EAAQmtP,GAC5D,IAII4Z,EAJA1qP,EAAQxc,KACRL,EAAU2tP,EAAK3tP,QAIf84N,EAAOt4N,EAAQ,SACf+mQ,EAAY3lQ,OAAOs2C,OAAO13C,GAC1B+mQ,EAAUC,UAAYhnQ,IAMtB+mQ,EAAY/mQ,EAEZA,EAASA,EAAOgnQ,WAEpB,IAAIC,EAAapd,EAAOrqP,EAAQC,WAC5BynQ,GAAqBD,EACzBpnQ,KAAKgJ,KAAOA,EACZhJ,KAAK8I,MAAQA,EACb9I,KAAKiJ,SAAWA,EAChBjJ,KAAKG,OAASA,EACdH,KAAKuvE,UAAYvmE,EAAKqnF,IAAMy5J,EAC5B9pP,KAAKsnQ,WAAaR,GAAcnnQ,EAAQ03G,OAAQl3G,GAChDH,KAAKyvF,MAAQ,WAIT,OAHKjzE,EAAM69E,QACPugK,GAAqBz6P,EAAQ6I,EAAK+mF,YAAcvzE,EAAM69E,OAASogK,GAAaxxP,EAAU9I,IAEnFqc,EAAM69E,MACjB,EACA94F,OAAOoB,eAAe3C,KAAM,cAAe,CACvC6B,YAAY,EACZmQ,IAAK,WACD,OAAO4oP,GAAqBz6P,EAAQ6I,EAAK+mF,YAAa/vF,KAAKyvF,QAC/D,IAGA23K,IAEApnQ,KAAKU,SAAWf,EAEhBK,KAAKq6F,OAASr6F,KAAKyvF,QACnBzvF,KAAKo6F,aAAewgK,GAAqBz6P,EAAQ6I,EAAK+mF,YAAa/vF,KAAKq6F,SAExE16F,EAAQG,SACRE,KAAKi5M,GAAK,SAAUp4H,EAAG/oE,EAAGtP,EAAGmT,GACzB,IAAIuzE,EAAQiuK,GAAgB+J,EAAWrmL,EAAG/oE,EAAGtP,EAAGmT,EAAG0rP,GAKnD,OAJIn4K,IAAU/qF,EAAQ+qF,KAClBA,EAAM++J,UAAYtuP,EAAQG,SAC1BovF,EAAM8+J,UAAY7tP,GAEf+uF,CACX,EAGAlvF,KAAKi5M,GAAK,SAAUp4H,EAAG/oE,EAAGtP,EAAGmT,GACzB,OAAOwhP,GAAgB+J,EAAWrmL,EAAG/oE,EAAGtP,EAAGmT,EAAG0rP,EAClD,CAER,CAEA,SAASE,GAA0Bja,EAAMlqF,EAAWp6J,EAAMk+P,EAAWj+P,GACjE,IAAItJ,EAAU2tP,EAAK3tP,QACfmJ,EAAQ,CAAC,EACTkuP,EAAcr3P,EAAQmJ,MAC1B,GAAI02O,EAAMwX,GACN,IAAK,IAAIz0P,KAAOy0P,EACZluP,EAAMvG,GAAO8iQ,GAAa9iQ,EAAKy0P,EAAa5zF,GAAa0mF,QAIzDtK,EAAMx2O,EAAKM,QACXk+P,GAAW1+P,EAAOE,EAAKM,OACvBk2O,EAAMx2O,EAAKF,QACX0+P,GAAW1+P,EAAOE,EAAKF,OAE/B,IAAIm0P,EAAgB,IAAIgK,GAAwBj+P,EAAMF,EAAOG,EAAUi+P,EAAW5Z,GAC9Ep+J,EAAQvvF,EAAQR,OAAOkB,KAAK,KAAM48P,EAAchkD,GAAIgkD,GACxD,GAAI/tK,aAAiB2+J,GACjB,OAAO4Z,GAA6Bv4K,EAAOlmF,EAAMi0P,EAAc98P,OAAQR,EAASs9P,GAE/E,GAAI94P,EAAQ+qF,GAAQ,CAGrB,IAFA,IAAIw4K,EAASvQ,GAAkBjoK,IAAU,GACrC7nC,EAAM,IAAInjD,MAAMwjQ,EAAOtlQ,QAClBF,EAAI,EAAGA,EAAIwlQ,EAAOtlQ,OAAQF,IAC/BmlD,EAAInlD,GAAKulQ,GAA6BC,EAAOxlQ,GAAI8G,EAAMi0P,EAAc98P,OAAQR,EAASs9P,GAE1F,OAAO51M,CACX,CACJ,CACA,SAASogN,GAA6Bv4K,EAAOlmF,EAAMk+P,EAAWvnQ,EAASs9P,GAInE,IAAIrrO,EAAQ88N,GAAWx/J,GAUvB,OATAt9D,EAAMo8N,UAAYkZ,EAClBt1O,EAAMi9M,UAAYlvO,EAKdqJ,EAAKuxF,QACJ3oE,EAAM5oB,OAAS4oB,EAAM5oB,KAAO,CAAC,IAAIuxF,KAAOvxF,EAAKuxF,MAE3C3oE,CACX,CACA,SAAS41O,GAAW17P,EAAIxH,GACpB,IAAK,IAAI/B,KAAO+B,EACZwH,EAAGtF,EAASjE,IAAQ+B,EAAK/B,EAEjC,CAEA,SAASolQ,GAAiBhoQ,GACtB,OAAOA,EAAQiF,MAAQjF,EAAQioQ,QAAUjoQ,EAAQkoQ,aACrD,CAtDA/N,GAAqBmN,GAAwBhkQ,WAwD7C,IAAI6kQ,GAAsB,CACtB39M,KAAM,SAAU+kC,EAAO+0K,GACnB,GAAI/0K,EAAM4rJ,oBACL5rJ,EAAM4rJ,kBAAkBv1E,cACzBr2E,EAAMlmF,KAAKqxO,UAAW,CAEtB,IAAI0tB,EAAc74K,EAClB44K,GAAoBjtB,SAASktB,EAAaA,EAC9C,KACK,CACD,IAAI9oK,EAAS/P,EAAM4rJ,kBAAoBktB,GAAgC94K,EAAOy0K,IAC9E1kK,EAAMyvE,OAAOu1F,EAAY/0K,EAAMt0E,SAAM7R,EAAWk7P,EACpD,CACJ,EACAppB,SAAU,SAAUotB,EAAU/4K,GAC1B,IAAIvvF,EAAUuvF,EAAM4+J,iBAChB7uJ,EAAS/P,EAAM4rJ,kBAAoBmtB,EAASntB,kBAChD6pB,GAAqB1lK,EAAOt/F,EAAQyjK,UACpCzjK,EAAQ4vE,UACR2f,EACAvvF,EAAQsJ,SAEZ,EACAi/P,OAAQ,SAAUh5K,GACd,IAAInvF,EAAUmvF,EAAMnvF,QAAS+6O,EAAoB5rJ,EAAM4rJ,kBAClDA,EAAkBoa,aACnBpa,EAAkBoa,YAAa,EAC/BoP,GAAWxpB,EAAmB,YAE9B5rJ,EAAMlmF,KAAKqxO,YACPt6O,EAAQm1P,WAMRuR,GAAwB3rB,GAGxByqB,GAAuBzqB,GAAmB,GAGtD,EACA/rH,QAAS,SAAU7/B,GACf,IAAI4rJ,EAAoB5rJ,EAAM4rJ,kBACzBA,EAAkBv1E,eACdr2E,EAAMlmF,KAAKqxO,UAIZorB,GAAyB3qB,GAAmB,GAH5CA,EAAkBx3E,WAM9B,GAEA6kG,GAAe5mQ,OAAOD,KAAKwmQ,IAC/B,SAAS5I,GAAgB5R,EAAMtkP,EAAMjJ,EAASkJ,EAAUc,GACpD,IAAIggP,EAAQuD,GAAZ,CAGA,IAAIwQ,EAAW/9P,EAAQW,SAASwmD,MAOhC,GALIt2C,EAAS08O,KACTA,EAAOwQ,EAASv4K,OAAO+nK,IAIP,oBAATA,EAAX,CAOA,IAAIS,EAEJ,GAAIhE,EAAQuD,EAAK9H,OACbuI,EAAeT,EACfA,EAAOuQ,GAAsB9P,EAAc+P,QAC9B/0P,IAATukP,GAIA,OAAOsQ,GAAuB7P,EAAc/kP,EAAMjJ,EAASkJ,EAAUc,GAG7Ef,EAAOA,GAAQ,CAAC,EAGhBo/P,GAA0B9a,GAEtB9N,EAAMx2O,EAAKmvD,QAEXkwM,GAAe/a,EAAK3tP,QAASqJ,GAIjC,IAAIo6J,EAAY2zF,GAA0B/tP,EAAMskP,EAAMvjP,GAGtD,GAAIigP,EAAOsD,EAAK3tP,QAAQE,YACpB,OAAO0nQ,GAA0Bja,EAAMlqF,EAAWp6J,EAAMjJ,EAASkJ,GAIrE,IAAIsmE,EAAYvmE,EAAKqnF,GAKrB,GAFArnF,EAAKqnF,GAAKrnF,EAAKyuL,SAEXuyD,EAAOsD,EAAK3tP,QAAQ4N,UAAW,CAI/B,IAAIgtF,EAAOvxF,EAAKuxF,KAChBvxF,EAAO,CAAC,EACJuxF,IACAvxF,EAAKuxF,KAAOA,EAEpB,CAEA+tK,GAAsBt/P,GAGtB,IAAIpE,EAAO+iQ,GAAiBra,EAAK3tP,UAAYoK,EACzCmlF,EAAQ,IAAI2+J,GAEhB,iBAAiB5sP,OAAOqsP,EAAK9H,KAAKvkP,OAAO2D,EAAO,IAAI3D,OAAO2D,GAAQ,IAAKoE,OAAMD,OAAWA,OAAWA,EAAWhJ,EAE/G,CAAEutP,KAAMA,EAAMlqF,UAAWA,EAAW7zF,UAAWA,EAAWxlE,IAAKA,EAAKd,SAAUA,GAAY8kP,GAC1F,OAAO7+J,CA1DP,CAbA,CAwEJ,CACA,SAAS84K,GAET94K,EAEA/uF,GACI,IAAIR,EAAU,CACV4oQ,cAAc,EACd5oB,aAAczwJ,EACd/uF,OAAQA,GAGRqoQ,EAAiBt5K,EAAMlmF,KAAKw/P,eAKhC,OAJIhpB,EAAMgpB,KACN7oQ,EAAQR,OAASqpQ,EAAerpQ,OAChCQ,EAAQP,gBAAkBopQ,EAAeppQ,iBAEtC,IAAI8vF,EAAM4+J,iBAAiBR,KAAK3tP,EAC3C,CACA,SAAS2oQ,GAAsBt/P,GAE3B,IADA,IAAI2kD,EAAQ3kD,EAAKtJ,OAASsJ,EAAKtJ,KAAO,CAAC,GAC9BwC,EAAI,EAAGA,EAAIimQ,GAAa/lQ,OAAQF,IAAK,CAC1C,IAAIK,EAAM4lQ,GAAajmQ,GACnBnB,EAAW4sD,EAAMprD,GACjBkmQ,EAAUX,GAAoBvlQ,GAE9BxB,IAAa0nQ,GAAa1nQ,GAAYA,EAAS2nQ,UAC/C/6M,EAAMprD,GAAOxB,EAAW4nQ,GAAUF,EAAS1nQ,GAAY0nQ,EAE/D,CACJ,CACA,SAASE,GAAUC,EAAIC,GACnB,IAAI/R,EAAS,SAAUj2K,EAAG/oE,GAEtB8wP,EAAG/nL,EAAG/oE,GACN+wP,EAAGhoL,EAAG/oE,EACV,EAEA,OADAg/O,EAAO4R,SAAU,EACV5R,CACX,CAGA,SAASuR,GAAe1oQ,EAASqJ,GAC7B,IAAIX,EAAQ1I,EAAQw4D,OAASx4D,EAAQw4D,MAAM9vD,MAAS,QAChDqhD,EAAS/pD,EAAQw4D,OAASx4D,EAAQw4D,MAAMzO,OAAU,SACrD1gD,EAAKM,QAAUN,EAAKM,MAAQ,CAAC,IAAIjB,GAAQW,EAAKmvD,MAAMj1D,MACrD,IAAImtF,EAAKrnF,EAAKqnF,KAAOrnF,EAAKqnF,GAAK,CAAC,GAC5BtvF,EAAWsvF,EAAG3mC,GACdtiD,EAAW4B,EAAKmvD,MAAM/wD,SACtBo4O,EAAMz+O,IACFoD,EAAQpD,IAC0B,IAAhCA,EAASyC,QAAQ4D,GACjBrG,IAAaqG,KACfipF,EAAG3mC,GAAS,CAACtiD,GAAUnG,OAAOF,IAIlCsvF,EAAG3mC,GAAStiD,CAEpB,CAEA,IAAIu8E,GAAOqtC,EA8FPwsG,GAAS98L,EAAO+8L,sBAgBpB,SAAS93H,GAAU75F,EAAIxH,EAAMwkQ,GAEzB,QADkB,IAAdA,IAAwBA,GAAY,IACnCxkQ,EACD,OAAOwH,EAKX,IAJA,IAAIvJ,EAAKwmQ,EAAOC,EACZ1nQ,EAAOkY,GACLumE,QAAQ5+E,QAAQmD,GAChB/C,OAAOD,KAAKgD,GACTpC,EAAI,EAAGA,EAAIZ,EAAKc,OAAQF,IAC7BK,EAAMjB,EAAKY,GAEC,WAARK,IAEJwmQ,EAAQj9P,EAAGvJ,GACXymQ,EAAU1kQ,EAAK/B,GACVumQ,GAAcrwC,EAAO3sN,EAAIvJ,GAGrBwmQ,IAAUC,GACfzrP,EAAcwrP,IACdxrP,EAAcyrP,IACdrjK,GAAUojK,EAAOC,GALjB92P,GAAIpG,EAAIvJ,EAAKymQ,IAQrB,OAAOl9P,CACX,CAIA,SAASm9P,GAAcvrC,EAAWC,EAAUhsH,GACxC,OAAKA,EAkBM,WAEH,IAAIu3J,EAAev4P,EAAWgtN,GACxBA,EAASt9N,KAAKsxG,EAAIA,GAClBgsH,EACFwrC,EAAcx4P,EAAW+sN,GACvBA,EAAUr9N,KAAKsxG,EAAIA,GACnB+rH,EACN,OAAIwrC,EACOvjK,GAAUujK,EAAcC,GAGxBA,CAEf,EA9BKxrC,EAGAD,EAQE,WACH,OAAO/3H,GAAUh1F,EAAWgtN,GAAYA,EAASt9N,KAAKL,KAAMA,MAAQ29N,EAAUhtN,EAAW+sN,GAAaA,EAAUr9N,KAAKL,KAAMA,MAAQ09N,EACvI,EATWC,EAHAD,CA+BnB,CAiBA,SAASujC,GAAmBvjC,EAAWC,GACnC,IAAIt2K,EAAMs2K,EACJD,EACIA,EAAUz8N,OAAO08N,GACjBx5N,EAAQw5N,GACJA,EACA,CAACA,GACTD,EACN,OAAOr2K,EAAM+hN,GAAY/hN,GAAOA,CACpC,CACA,SAAS+hN,GAAYz7M,GAEjB,IADA,IAAItG,EAAM,GACDnlD,EAAI,EAAGA,EAAIyrD,EAAMvrD,OAAQF,KACC,IAA3BmlD,EAAI7jD,QAAQmqD,EAAMzrD,KAClBmlD,EAAIvlD,KAAK6rD,EAAMzrD,IAGvB,OAAOmlD,CACX,CAWA,SAASgiN,GAAY3rC,EAAWC,EAAUhsH,EAAIpvG,GAC1C,IAAI8kD,EAAM9lD,OAAOs2C,OAAO6lL,GAAa,MACrC,OAAIC,EAEOp4I,EAAOl+B,EAAKs2K,GAGZt2K,CAEf,CAtDAm2K,GAAOx0N,KAAO,SAAU00N,EAAWC,EAAUhsH,GACzC,OAAKA,EAUEs3J,GAAcvrC,EAAWC,EAAUhsH,GATlCgsH,GAAgC,oBAAbA,EAKZD,EAEJurC,GAAcvrC,EAAWC,EAGxC,EAuBA+tB,EAAgBppP,SAAQ,SAAU5C,GAC9B89N,GAAO99N,GAAQuhQ,EACnB,IAkBAxV,EAAYnpP,SAAQ,SAAUgK,GAC1BkxN,GAAOlxN,EAAO,KAAO+8P,EACzB,IAOA7rC,GAAO51H,MAAQ,SAAU81H,EAAWC,EAAUhsH,EAAIpvG,GAS9C,GANIm7N,IAAcsvB,KACdtvB,OAAY30N,GAEZ40N,IAAaqvB,KACbrvB,OAAW50N,IAEV40N,EACD,OAAOp8N,OAAOs2C,OAAO6lL,GAAa,MAItC,IAAKA,EACD,OAAOC,EACX,IAAInF,EAAM,CAAC,EAEX,IAAK,IAAI0iC,KADT31K,EAAOizI,EAAKkF,GACMC,EAAU,CACxB,IAAI2rC,EAAW9wC,EAAI0iC,GACfj8J,EAAQ0+H,EAASu9B,GACjBoO,IAAanlQ,EAAQmlQ,KACrBA,EAAW,CAACA,IAEhB9wC,EAAI0iC,GAASoO,EAAWA,EAASroQ,OAAOg+F,GAAS96F,EAAQ86F,GAASA,EAAQ,CAACA,EAC/E,CACA,OAAOu5H,CACX,EAIAgF,GAAO10N,MACH00N,GAAO9iI,QACH8iI,GAAOnmH,OACHmmH,GAAO7zH,SACH,SAAU+zH,EAAWC,EAAUhsH,EAAIpvG,GAI/B,IAAKm7N,EACD,OAAOC,EACX,IAAInF,EAAMj3N,OAAOs2C,OAAO,MAIxB,OAHA0tC,EAAOizI,EAAKkF,GACRC,GACAp4I,EAAOizI,EAAKmF,GACTnF,CACX,EAChBgF,GAAO/kH,QAAU,SAAUilH,EAAWC,GAClC,OAAKD,EAEE,WACH,IAAIlF,EAAMj3N,OAAOs2C,OAAO,MAMxB,OALA8tD,GAAU6yH,EAAK7nN,EAAW+sN,GAAaA,EAAUr9N,KAAKL,MAAQ09N,GAC1DC,GACAh4H,GAAU6yH,EAAK7nN,EAAWgtN,GAAYA,EAASt9N,KAAKL,MAAQ29N,GAAU,GAGnEnF,CACX,EATWmF,CAUf,EAIA,IAAI4rC,GAAe,SAAU7rC,EAAWC,GACpC,YAAoB50N,IAAb40N,EAAyBD,EAAYC,CAChD,EA0BA,SAAS6rC,GAAe7pQ,EAASgyG,GAC7B,IAAI7oG,EAAQnJ,EAAQmJ,MACpB,GAAKA,EAAL,CAEA,IACI5G,EAAGmH,EAAKzE,EADRyiD,EAAM,CAAC,EAEX,GAAIljD,EAAQ2E,GAAQ,CAChB5G,EAAI4G,EAAM1G,OACV,MAAOF,IACHmH,EAAMP,EAAM5G,GACO,kBAARmH,IACPzE,EAAO4B,EAAS6C,GAChBg+C,EAAIziD,GAAQ,CAAE0H,KAAM,MAMhC,MACK,GAAIiR,EAAczU,GACnB,IAAK,IAAIvG,KAAOuG,EACZO,EAAMP,EAAMvG,GACZqC,EAAO4B,EAASjE,GAChB8kD,EAAIziD,GAAQ2Y,EAAclU,GAAOA,EAAM,CAAEiD,KAAMjD,QAG9ChC,EAIT1H,EAAQmJ,MAAQu+C,CA3BN,CA4Bd,CAIA,SAASoiN,GAAgB9pQ,EAASgyG,GAC9B,IAAI0F,EAAS13G,EAAQ03G,OACrB,GAAKA,EAAL,CAEA,IAAIikJ,EAAc37P,EAAQ03G,OAAS,CAAC,EACpC,GAAIlzG,EAAQkzG,GACR,IAAK,IAAIn1G,EAAI,EAAGA,EAAIm1G,EAAOj1G,OAAQF,IAC/Bo5P,EAAWjkJ,EAAOn1G,IAAM,CAAEoC,KAAM+yG,EAAOn1G,SAG1C,GAAIqb,EAAc85F,GACnB,IAAK,IAAI90G,KAAO80G,EAAQ,CACpB,IAAIhuG,EAAMguG,EAAO90G,GACjB+4P,EAAW/4P,GAAOgb,EAAclU,GAC1Bk8E,EAAO,CAAEjhF,KAAM/B,GAAO8G,GACtB,CAAE/E,KAAM+E,EAClB,MAEKhC,CAfC,CAmBd,CAIA,SAASqiQ,GAAsB/pQ,GAC3B,IAAIgqQ,EAAOhqQ,EAAQqlF,WACnB,GAAI2kL,EACA,IAAK,IAAIpnQ,KAAOonQ,EAAM,CAClB,IAAIlkL,EAAMkkL,EAAKpnQ,GACXoO,EAAW80E,KACXkkL,EAAKpnQ,GAAO,CAAE2G,KAAMu8E,EAAKnnC,OAAQmnC,GAEzC,CAER,CAWA,SAASmkL,GAAazpQ,EAAQ8+F,EAAO0S,GAejC,GAXIhhG,EAAWsuF,KAEXA,EAAQA,EAAMt/F,SAElB6pQ,GAAevqK,EAAO0S,GACtB83J,GAAgBxqK,EAAO0S,GACvB+3J,GAAsBzqK,IAKjBA,EAAM/3C,QACH+3C,EAAMivE,UACN/tK,EAASypQ,GAAazpQ,EAAQ8+F,EAAMivE,QAASv8D,IAE7C1S,EAAM91F,QACN,IAAK,IAAIjH,EAAI,EAAG8D,EAAIi5F,EAAM91F,OAAO/G,OAAQF,EAAI8D,EAAG9D,IAC5C/B,EAASypQ,GAAazpQ,EAAQ8+F,EAAM91F,OAAOjH,GAAIyvG,GAI3D,IACIpvG,EADA5C,EAAU,CAAC,EAEf,IAAK4C,KAAOpC,EACR0pQ,EAAWtnQ,GAEf,IAAKA,KAAO08F,EACHw5H,EAAOt4N,EAAQoC,IAChBsnQ,EAAWtnQ,GAGnB,SAASsnQ,EAAWtnQ,GAChB,IAAIunQ,EAAQtsC,GAAOj7N,IAAQgnQ,GAC3B5pQ,EAAQ4C,GAAOunQ,EAAM3pQ,EAAOoC,GAAM08F,EAAM18F,GAAMovG,EAAIpvG,EACtD,CACA,OAAO5C,CACX,CAMA,SAASm4P,GAAan4P,EAAS2M,EAAMssB,EAAImxO,GAErC,GAAkB,kBAAPnxO,EAAX,CAGA,IAAIoxO,EAASrqQ,EAAQ2M,GAErB,GAAImsN,EAAOuxC,EAAQpxO,GACf,OAAOoxO,EAAOpxO,GAClB,IAAIqxO,EAAczjQ,EAASoyB,GAC3B,GAAI6/L,EAAOuxC,EAAQC,GACf,OAAOD,EAAOC,GAClB,IAAIC,EAAerf,EAAWof,GAC9B,GAAIxxC,EAAOuxC,EAAQE,GACf,OAAOF,EAAOE,GAElB,IAAI7iN,EAAM2iN,EAAOpxO,IAAOoxO,EAAOC,IAAgBD,EAAOE,GAItD,OAAO7iN,CAhBP,CAiBJ,CAEA,SAASg+M,GAAa9iQ,EAAKy0P,EAAa5zF,EAAWzxD,GAC/C,IAAItpG,EAAO2uP,EAAYz0P,GACnB4nQ,GAAU1xC,EAAOr1D,EAAW7gK,GAC5BW,EAAQkgK,EAAU7gK,GAElB6nQ,EAAeC,GAAa99P,QAASlE,EAAKiE,MAC9C,GAAI89P,GAAgB,EAChB,GAAID,IAAW1xC,EAAOpwN,EAAM,WACxBnF,GAAQ,OAEP,GAAc,KAAVA,GAAgBA,IAAU6nP,EAAUxoP,GAAM,CAG/C,IAAI+nQ,EAAcD,GAAa59P,OAAQpE,EAAKiE,OACxCg+P,EAAc,GAAKF,EAAeE,KAClCpnQ,GAAQ,EAEhB,CAGJ,QAAc6F,IAAV7F,EAAqB,CACrBA,EAAQqnQ,GAAoB54J,EAAItpG,EAAM9F,GAGtC,IAAIioQ,EAAoBna,GACxBC,IAAgB,GAChB5hI,GAAQxrH,GACRotP,GAAgBka,EACpB,CAIA,OAAOtnQ,CACX,CAIA,SAASqnQ,GAAoB54J,EAAItpG,EAAM9F,GAEnC,GAAKk2N,EAAOpwN,EAAM,WAAlB,CAGA,IAAIo9E,EAAMp9E,EAAKmE,QAWf,OAAImlG,GACAA,EAAGjxG,SAAS0iK,gBACmBr6J,IAA/B4oG,EAAGjxG,SAAS0iK,UAAU7gK,SACHwG,IAAnB4oG,EAAG2gF,OAAO/vL,GACHovG,EAAG2gF,OAAO/vL,GAIdoO,EAAW80E,IAA+B,aAAvB+2C,GAAQn0H,EAAKiE,MACjCm5E,EAAIplF,KAAKsxG,GACTlsB,CAtBN,CAuBJ,CAqEA,IAAIglL,GAAsB,qBAM1B,SAASjuI,GAAQ/hH,GACb,IAAI9T,EAAQ8T,GAAMA,EAAG/V,WAAWiC,MAAM8jQ,IACtC,OAAO9jQ,EAAQA,EAAM,GAAK,EAC9B,CACA,SAAS+jQ,GAAW7pL,EAAG/oE,GACnB,OAAO0kH,GAAQ37C,KAAO27C,GAAQ1kH,EAClC,CACA,SAASuyP,GAAa/9P,EAAM+7L,GACxB,IAAKlkM,EAAQkkM,GACT,OAAOqiE,GAAWriE,EAAe/7L,GAAQ,GAAK,EAElD,IAAK,IAAIpK,EAAI,EAAG4C,EAAMujM,EAAcjmM,OAAQF,EAAI4C,EAAK5C,IACjD,GAAIwoQ,GAAWriE,EAAcnmM,GAAIoK,GAC7B,OAAOpK,EAGf,OAAQ,CACZ,CAwHA,IAAIyoQ,GAA2B,CAC3B9oQ,YAAY,EACZsB,cAAc,EACd6O,IAAKg/G,EACL9+G,IAAK8+G,GAET,SAASz3E,GAAMt3C,EAAQ2oQ,EAAWroQ,GAC9BooQ,GAAyB34P,IAAM,WAC3B,OAAOhS,KAAK4qQ,GAAWroQ,EAC3B,EACAooQ,GAAyBz4P,IAAM,SAAqB7I,GAChDrJ,KAAK4qQ,GAAWroQ,GAAO8G,CAC3B,EACA9H,OAAOoB,eAAeV,EAAQM,EAAKooQ,GACvC,CACA,SAASE,GAAUl5J,GACf,IAAImlG,EAAOnlG,EAAGjxG,SAOd,GANIo2M,EAAKhuM,OACLgiQ,GAAYn5J,EAAImlG,EAAKhuM,OAEzByyP,GAAU5pJ,GACNmlG,EAAKp8G,SACLqwK,GAAYp5J,EAAImlG,EAAKp8G,SACrBo8G,EAAK9tM,KACLgiQ,GAASr5J,OAER,CACD,IAAIq+I,EAAKthI,GAAS/c,EAAGylI,MAAQ,CAAC,GAC9B4Y,GAAMA,EAAGW,SACb,CACI75C,EAAKntG,UACLshK,GAAet5J,EAAImlG,EAAKntG,UACxBmtG,EAAKlvG,OAASkvG,EAAKlvG,QAAUolJ,IAC7Bke,GAAUv5J,EAAImlG,EAAKlvG,MAE3B,CACA,SAASkjK,GAAYn5J,EAAIw5J,GACrB,IAAI/nG,EAAYzxD,EAAGjxG,SAAS0iK,WAAa,CAAC,EACtCt6J,EAAS6oG,EAAG2gF,OAASk/D,GAAgB,CAAC,GAGtClwP,EAAQqwG,EAAGjxG,SAAS0kQ,UAAY,GAChCgG,GAAUz5J,EAAGtC,QAEZ+7J,GACD9a,IAAgB,GAEpB,IAAI3jC,EAAU,SAAUpqN,GACpBjB,EAAKQ,KAAKS,GACV,IAAIW,EAAQmiQ,GAAa9iQ,EAAK4oQ,EAAc/nG,EAAWzxD,GAkBnDmuI,GAAeh3O,EAAOvG,EAAKW,OAAO6F,GAAW,GAK3CxG,KAAOovG,GACTp4D,GAAMo4D,EAAI,SAAUpvG,EAE5B,EACA,IAAK,IAAIA,KAAO4oQ,EACZx+C,EAAQpqN,GAEZ+tP,IAAgB,EACpB,CACA,SAAS0a,GAASr5J,GACd,IAAI3oG,EAAO2oG,EAAGjxG,SAASsI,KACvBA,EAAO2oG,EAAGylI,MAAQzmO,EAAW3H,GAAQqiQ,GAAQriQ,EAAM2oG,GAAM3oG,GAAQ,CAAC,EAC7DuU,EAAcvU,KACfA,EAAO,CAAC,GAMZ,IAAI1H,EAAOC,OAAOD,KAAK0H,GACnBF,EAAQ6oG,EAAGjxG,SAASoI,MAEpB5G,GADUyvG,EAAGjxG,SAASg6F,QAClBp5F,EAAKc,QACb,MAAOF,IAAK,CACR,IAAIK,EAAMjB,EAAKY,GACXmF,EAKAyB,GAAS2vN,EAAO3vN,EAAOvG,IAKjBgqP,EAAWhqP,IACjBg3C,GAAMo4D,EAAI,QAASpvG,EAE3B,CAEA,IAAIytP,EAAKthI,GAAQ1lH,GACjBgnP,GAAMA,EAAGW,SACb,CACA,SAAS0a,GAAQriQ,EAAM2oG,GAEnB+9I,KACA,IACI,OAAO1mP,EAAK3I,KAAKsxG,EAAIA,EACzB,CACA,MAAO1nG,IAEH,OADAyzP,GAAYzzP,GAAG0nG,EAAI,UACZ,CAAC,CACZ,CAAC,QAEGg+I,IACJ,CACJ,CACA,IAAI2b,GAAyB,CAAEr7H,MAAM,GACrC,SAASg7H,GAAet5J,EAAIhI,GAExB,IAAI4hK,EAAY55J,EAAG65J,kBAAoBjqQ,OAAOs2C,OAAO,MAEjDm+L,EAAQkX,KACZ,IAAK,IAAI3qP,KAAOonG,EAAU,CACtB,IAAI8hK,EAAU9hK,EAASpnG,GACnB66B,EAASzsB,EAAW86P,GAAWA,EAAUA,EAAQz5P,IACjD3K,EAGC2uO,IAEDu1B,EAAShpQ,GAAO,IAAIgxP,GAAQ5hJ,EAAIv0E,GAAU4zF,EAAMA,EAAMs6I,KAKpD/oQ,KAAOovG,GACT+5J,GAAe/5J,EAAIpvG,EAAKkpQ,EAahC,CACJ,CACA,SAASC,GAAezpQ,EAAQM,EAAKkpQ,GACjC,IAAIE,GAAeze,KACfv8O,EAAW86P,IACXd,GAAyB34P,IAAM25P,EACzBC,GAAqBrpQ,GACrBspQ,GAAoBJ,GAC1Bd,GAAyBz4P,IAAM8+G,IAG/B25I,GAAyB34P,IAAMy5P,EAAQz5P,IACjC25P,IAAiC,IAAlBF,EAAQ1pK,MACnB6pK,GAAqBrpQ,GACrBspQ,GAAoBJ,EAAQz5P,KAChCg/G,EACN25I,GAAyBz4P,IAAMu5P,EAAQv5P,KAAO8+G,GAOlDzvH,OAAOoB,eAAeV,EAAQM,EAAKooQ,GACvC,CACA,SAASiB,GAAqBrpQ,GAC1B,OAAO,WACH,IAAI+wP,EAAUtzP,KAAKwrQ,mBAAqBxrQ,KAAKwrQ,kBAAkBjpQ,GAC/D,GAAI+wP,EAeA,OAdIA,EAAQG,OACRH,EAAQI,WAERvE,GAAIltP,QASJqxP,EAAQhE,SAELgE,EAAQpwP,KAEvB,CACJ,CACA,SAAS2oQ,GAAoBpxP,GACzB,OAAO,WACH,OAAOA,EAAGpa,KAAKL,KAAMA,KACzB,CACJ,CACA,SAAS+qQ,GAAYp5J,EAAIjX,GACTiX,EAAGjxG,SAASoI,MACxB,IAAK,IAAIvG,KAAOm4F,EAcZiX,EAAGpvG,GAA+B,oBAAjBm4F,EAAQn4F,GAAsByuH,EAAO9nH,EAAKwxF,EAAQn4F,GAAMovG,EAEjF,CACA,SAASu5J,GAAUv5J,EAAI/J,GACnB,IAAK,IAAIrlG,KAAOqlG,EAAO,CACnB,IAAInpF,EAAUmpF,EAAMrlG,GACpB,GAAI4B,EAAQsa,GACR,IAAK,IAAIvc,EAAI,EAAGA,EAAIuc,EAAQrc,OAAQF,IAChC4pQ,GAAcn6J,EAAIpvG,EAAKkc,EAAQvc,SAInC4pQ,GAAcn6J,EAAIpvG,EAAKkc,EAE/B,CACJ,CACA,SAASqtP,GAAcn6J,EAAI4wJ,EAAS9jP,EAAS9e,GAQzC,OAPI4d,EAAckB,KACd9e,EAAU8e,EACVA,EAAUA,EAAQA,SAEC,kBAAZA,IACPA,EAAUkzF,EAAGlzF,IAEVkzF,EAAG08D,OAAOk0F,EAAS9jP,EAAS9e,EACvC,CACA,SAASosQ,GAAWtnL,GAIhB,IAAIunL,EAAU,CACdA,IAAc,WACV,OAAOhsQ,KAAKo3O,KAChB,GACI60B,EAAW,CACfA,IAAe,WACX,OAAOjsQ,KAAKsyL,MAChB,GAUA/wL,OAAOoB,eAAe8hF,EAAIxhF,UAAW,QAAS+oQ,GAC9CzqQ,OAAOoB,eAAe8hF,EAAIxhF,UAAW,SAAUgpQ,GAC/CxnL,EAAIxhF,UAAUiuG,KAAOh/F,GACrBuyE,EAAIxhF,UAAU+tG,QAAUriC,GACxB8V,EAAIxhF,UAAUorK,OAAS,SAAUk0F,EAAS5yP,EAAIhQ,GAC1C,IAAIgyG,EAAK3xG,KACT,GAAIud,EAAc5N,GACd,OAAOm8P,GAAcn6J,EAAI4wJ,EAAS5yP,EAAIhQ,GAE1CA,EAAUA,GAAW,CAAC,EACtBA,EAAQ83D,MAAO,EACf,IAAI67L,EAAU,IAAIC,GAAQ5hJ,EAAI4wJ,EAAS5yP,EAAIhQ,GAC3C,GAAIA,EAAQ+iK,UAAW,CACnB,IAAIt9C,EAAO,mCAAoCnkH,OAAOqyP,EAAQjsB,WAAY,KAC1EqoB,KACA8E,GAAwB7kP,EAAIgiG,EAAI,CAAC2hJ,EAAQpwP,OAAQyuG,EAAIyT,GACrDuqI,IACJ,CACA,OAAO,WACH2D,EAAQ1L,UACZ,CACJ,CACJ,CAEA,IAAInpN,GAAM,EACV,SAASytO,GAAYznL,GACjBA,EAAIxhF,UAAUkpQ,MAAQ,SAAUxsQ,GAC5B,IAAIgyG,EAAK3xG,KAET2xG,EAAGy6J,KAAO3tO,KAUVkzE,EAAG22F,QAAS,EAEZ32F,EAAGm/I,UAAW,EAEdn/I,EAAGg8I,OAAS,IAAIyH,IAAY,GAG5BzjJ,EAAGg8I,OAAOxtP,YAAS4I,EACnB4oG,EAAGg8I,OAAO9+E,KAAM,EAEZlvK,GAAWA,EAAQ4oQ,aAInB8D,GAAsB16J,EAAIhyG,GAG1BgyG,EAAGjxG,SAAWkpQ,GAAaxB,GAA0Bz2J,EAAG3uG,aAAcrD,GAAW,CAAC,EAAGgyG,GAOrFA,EAAGqnJ,aAAernJ,EAGtBA,EAAGl1F,MAAQk1F,EACXmyJ,GAAcnyJ,GACdoxJ,GAAWpxJ,GACXmrJ,GAAWnrJ,GACX2yJ,GAAW3yJ,EAAI,oBAAgB5oG,GAAW,GAC1C89P,GAAel1J,GACfk5J,GAAUl5J,GACV+0J,GAAY/0J,GACZ2yJ,GAAW3yJ,EAAI,WAOXA,EAAGjxG,SAASsuF,IACZ2iB,EAAG+8D,OAAO/8D,EAAGjxG,SAASsuF,GAE9B,CACJ,CACA,SAASq9K,GAAsB16J,EAAIhyG,GAC/B,IAAIm3M,EAAQnlG,EAAGjxG,SAAWa,OAAOs2C,OAAO85D,EAAG3uG,YAAYrD,SAEnDq9P,EAAcr9P,EAAQggP,aAC1B7oC,EAAK32M,OAASR,EAAQQ,OACtB22M,EAAK6oC,aAAeqd,EACpB,IAAIsP,EAAwBtP,EAAYlP,iBACxCh3C,EAAK1zC,UAAYkpG,EAAsBlpG,UACvC0zC,EAAKumD,iBAAmBiP,EAAsB/8L,UAC9CunI,EAAKomD,gBAAkBoP,EAAsBrjQ,SAC7C6tM,EAAK+wD,cAAgByE,EAAsBviQ,IACvCpK,EAAQR,SACR23M,EAAK33M,OAASQ,EAAQR,OACtB23M,EAAK13M,gBAAkBO,EAAQP,gBAEvC,CACA,SAASgpQ,GAA0B9a,GAC/B,IAAI3tP,EAAU2tP,EAAK3tP,QACnB,GAAI2tP,EAAKif,MAAO,CACZ,IAAIC,EAAepE,GAA0B9a,EAAKif,OAC9CE,EAAqBnf,EAAKkf,aAC9B,GAAIA,IAAiBC,EAAoB,CAGrCnf,EAAKkf,aAAeA,EAEpB,IAAIE,EAAkBC,GAAuBrf,GAEzCof,GACAnnL,EAAO+nK,EAAKsf,cAAeF,GAE/B/sQ,EAAU2tP,EAAK3tP,QAAUiqQ,GAAa4C,EAAclf,EAAKsf,eACrDjtQ,EAAQiF,OACRjF,EAAQolF,WAAWplF,EAAQiF,MAAQ0oP,EAE3C,CACJ,CACA,OAAO3tP,CACX,CACA,SAASgtQ,GAAuBrf,GAC5B,IAAIuf,EACAC,EAASxf,EAAK3tP,QACdkwM,EAASy9C,EAAKyf,cAClB,IAAK,IAAIxqQ,KAAOuqQ,EACRA,EAAOvqQ,KAASstM,EAAOttM,KAClBsqQ,IACDA,EAAW,CAAC,GAChBA,EAAStqQ,GAAOuqQ,EAAOvqQ,IAG/B,OAAOsqQ,CACX,CAEA,SAASpoL,GAAI9kF,GAITK,KAAKmsQ,MAAMxsQ,EACf,CAYA,SAASqtQ,GAAQvoL,GACbA,EAAIjlD,IAAM,SAAUwZ,GAChB,IAAIi0N,EAAmBjtQ,KAAKktQ,oBAAsBltQ,KAAKktQ,kBAAoB,IAC3E,GAAID,EAAiBzpQ,QAAQw1C,IAAW,EACpC,OAAOh5C,KAGX,IAAIg8B,EAAOoxM,EAAQjrO,UAAW,GAS9B,OARA65B,EAAK88M,QAAQ94O,MACT2Q,EAAWqoC,EAAOisC,SAClBjsC,EAAOisC,QAAQljF,MAAMi3C,EAAQhd,GAExBrrB,EAAWqoC,IAChBA,EAAOj3C,MAAM,KAAMi6B,GAEvBixO,EAAiBnrQ,KAAKk3C,GACfh5C,IACX,CACJ,CAEA,SAASmtQ,GAAU1oL,GACfA,EAAIyf,MAAQ,SAAUA,GAElB,OADAlkG,KAAKL,QAAUiqQ,GAAa5pQ,KAAKL,QAASukG,GACnClkG,IACX,CACJ,CAEA,SAASotQ,GAAW3oL,GAMhBA,EAAI+gK,IAAM,EACV,IAAIA,EAAM,EAIV/gK,EAAIc,OAAS,SAAUqnL,GACnBA,EAAgBA,GAAiB,CAAC,EAClC,IAAIhtL,EAAQ5/E,KACRqtQ,EAAUztL,EAAM4lK,IAChB8nB,EAAcV,EAAcW,QAAUX,EAAcW,MAAQ,CAAC,GACjE,GAAID,EAAYD,GACZ,OAAOC,EAAYD,GAEvB,IAAIzoQ,EAAO+iQ,GAAiBiF,IAAkBjF,GAAiB/nL,EAAMjgF,SAIrE,IAAI6tQ,EAAM,SAAsB7tQ,GAC5BK,KAAKmsQ,MAAMxsQ,EACf,EAoCA,OAnCA6tQ,EAAIvqQ,UAAY1B,OAAOs2C,OAAO+nC,EAAM38E,WACpCuqQ,EAAIvqQ,UAAUD,YAAcwqQ,EAC5BA,EAAIhoB,IAAMA,IACVgoB,EAAI7tQ,QAAUiqQ,GAAahqL,EAAMjgF,QAASitQ,GAC1CY,EAAI,SAAW5tL,EAIX4tL,EAAI7tQ,QAAQmJ,OACZ2kQ,GAAUD,GAEVA,EAAI7tQ,QAAQgqG,UACZ+jK,GAAaF,GAGjBA,EAAIjoL,OAAS3F,EAAM2F,OACnBioL,EAAItpK,MAAQtkB,EAAMskB,MAClBspK,EAAIhuO,IAAMogD,EAAMpgD,IAGhBisN,EAAYnpP,SAAQ,SAAUgK,GAC1BkhQ,EAAIlhQ,GAAQszE,EAAMtzE,EACtB,IAEI1H,IACA4oQ,EAAI7tQ,QAAQolF,WAAWngF,GAAQ4oQ,GAKnCA,EAAIhB,aAAe5sL,EAAMjgF,QACzB6tQ,EAAIZ,cAAgBA,EACpBY,EAAIT,cAAgBxnL,EAAO,CAAC,EAAGioL,EAAI7tQ,SAEnC2tQ,EAAYD,GAAWG,EAChBA,CACX,CACJ,CACA,SAASC,GAAUE,GACf,IAAI7kQ,EAAQ6kQ,EAAKhuQ,QAAQmJ,MACzB,IAAK,IAAIvG,KAAOuG,EACZywC,GAAMo0N,EAAK1qQ,UAAW,SAAUV,EAExC,CACA,SAASmrQ,GAAaC,GAClB,IAAIhkK,EAAWgkK,EAAKhuQ,QAAQgqG,SAC5B,IAAK,IAAIpnG,KAAOonG,EACZ+hK,GAAeiC,EAAK1qQ,UAAWV,EAAKonG,EAASpnG,GAErD,CAEA,SAASqrQ,GAAmBnpL,GAIxBgnK,EAAYnpP,SAAQ,SAAUgK,GAE1Bm4E,EAAIn4E,GAAQ,SAAUssB,EAAIw2D,GACtB,OAAKA,GAQY,cAAT9iF,GAAwBiR,EAAc6xE,KAEtCA,EAAWxqF,KAAOwqF,EAAWxqF,MAAQg0B,EACrCw2D,EAAapvF,KAAKL,QAAQunD,MAAMq+B,OAAO6J,IAE9B,cAAT9iF,GAAwBqE,EAAWy+E,KACnCA,EAAa,CAAElmF,KAAMkmF,EAAY9wC,OAAQ8wC,IAE7CpvF,KAAKL,QAAQ2M,EAAO,KAAKssB,GAAMw2D,EACxBA,GAhBApvF,KAAKL,QAAQ2M,EAAO,KAAKssB,EAkBxC,CACJ,GACJ,CAEA,SAASi1O,GAAkB/2D,GACvB,OAAOA,IAAS6wD,GAAiB7wD,EAAKw2C,KAAK3tP,UAAYm3M,EAAK/sM,IAChE,CACA,SAASgjC,GAAQ4jJ,EAAS/rL,GACtB,OAAIT,EAAQwsL,GACDA,EAAQntL,QAAQoB,IAAS,EAER,kBAAZ+rL,EACLA,EAAQrqL,MAAM,KAAK9C,QAAQoB,IAAS,IAEtCy9E,EAASsuG,IACPA,EAAQ9rL,KAAKD,EAI5B,CACA,SAASkpQ,GAAWC,EAAmBrsQ,GACnC,IAAIqgG,EAAQgsK,EAAkBhsK,MAAOzgG,EAAOysQ,EAAkBzsQ,KAAMy7P,EAASgR,EAAkBhR,OAAQ98P,EAAS8tQ,EAAkB9tQ,OAClI,IAAK,IAAIsC,KAAOw/F,EAAO,CACnB,IAAI1jF,EAAQ0jF,EAAMx/F,GAClB,GAAI8b,EAAO,CACP,IAAI8F,EAAS9F,EAAMzZ,KACfuf,IAAWziB,EAAOyiB,IAClB6pP,GAAgBjsK,EAAOx/F,EAAKjB,EAAMy7P,EAE1C,CACJ,CACA98P,EAAO6tP,iBAAiB7kP,cAAWF,CACvC,CACA,SAASilQ,GAAgBjsK,EAAOx/F,EAAKjB,EAAMkhN,GACvC,IAAInkM,EAAQ0jF,EAAMx/F,IACd8b,GAAWmkM,GAAWnkM,EAAMtU,MAAQy4M,EAAQz4M,KAE5CsU,EAAMy8N,kBAAkBx3E,WAE5BvhE,EAAMx/F,GAAO,KACbmoP,EAASppP,EAAMiB,EACnB,CArLA2pQ,GAAYznL,IAEZsnL,GAAWtnL,IAEX++K,GAAY/+K,IAEZs/K,GAAet/K,IAEf84K,GAAY94K,IA8KZ,IAAIwpL,GAAe,CAACxhQ,OAAQ47D,OAAQnkE,OAEhCgqQ,GAAY,CACZtpQ,KAAM,aACN2I,UAAU,EACVzE,MAAO,CACHqlQ,QAASF,GACTG,QAASH,GACT93O,IAAK,CAAC1pB,OAAQI,SAElB6tF,QAAS,CACL2zK,WAAY,WACR,IAAIzyP,EAAK5b,KAAM+hG,EAAQnmF,EAAGmmF,MAAOzgG,EAAOsa,EAAGta,KAAMgtQ,EAAe1yP,EAAG0yP,aAAcC,EAAa3yP,EAAG2yP,WACjG,GAAID,EAAc,CACd,IAAIvkQ,EAAMukQ,EAAavkQ,IAAK+wO,EAAoBwzB,EAAaxzB,kBAAmBgT,EAAmBwgB,EAAaxgB,iBAChH/rJ,EAAMwsK,GAAc,CAChB3pQ,KAAMipQ,GAAkB/f,GACxB/jP,IAAKA,EACL+wO,kBAAmBA,GAEvBx5O,EAAKQ,KAAKysQ,GAENvuQ,KAAKm2B,KAAO70B,EAAKc,OAAS0K,SAAS9M,KAAKm2B,MACxC63O,GAAgBjsK,EAAOzgG,EAAK,GAAIA,EAAMtB,KAAK+8P,QAE/C/8P,KAAKsuQ,aAAe,IACxB,CACJ,GAEJz/K,QAAS,WACL7uF,KAAK+hG,MAAQxgG,OAAOs2C,OAAO,MAC3B73C,KAAKsB,KAAO,EAChB,EACAihK,UAAW,WACP,IAAK,IAAIhgK,KAAOvC,KAAK+hG,MACjBisK,GAAgBhuQ,KAAK+hG,MAAOx/F,EAAKvC,KAAKsB,KAE9C,EACAq5G,QAAS,WACL,IAAIn+F,EAAQxc,KACZA,KAAKquQ,aACLruQ,KAAKquK,OAAO,WAAW,SAAUhlK,GAC7BykQ,GAAWtxP,GAAO,SAAU5X,GAAQ,OAAOmoC,GAAQ1jC,EAAKzE,EAAO,GACnE,IACA5E,KAAKquK,OAAO,WAAW,SAAUhlK,GAC7BykQ,GAAWtxP,GAAO,SAAU5X,GAAQ,OAAQmoC,GAAQ1jC,EAAKzE,EAAO,GACpE,GACJ,EACA80H,QAAS,WACL15H,KAAKquQ,YACT,EACAlvQ,OAAQ,WACJ,IAAIo7F,EAAOv6F,KAAKq6F,OAAO7tF,QACnB0iF,EAAQyvK,GAAuBpkK,GAC/BuzJ,EAAmB5+J,GAASA,EAAM4+J,iBACtC,GAAIA,EAAkB,CAElB,IAAI4M,EAASmT,GAAkB/f,GAC3BlyO,EAAK5b,KAAMmuQ,EAAUvyP,EAAGuyP,QAASC,EAAUxyP,EAAGwyP,QAClD,GAECD,KAAazT,IAAW3tN,GAAQohO,EAASzT,KAErC0T,GAAW1T,GAAU3tN,GAAQqhO,EAAS1T,GACvC,OAAOxrK,EAEX,IAAIjjD,EAAKjsC,KAAM+hG,EAAQ91D,EAAG81D,MAAOzgG,EAAO2qC,EAAG3qC,KACvCiB,EAAmB,MAAb2sF,EAAM3sF,IAGRurP,EAAiBR,KAAK9H,KACjBsI,EAAiB/jP,IAAM,KAAK9I,OAAO6sP,EAAiB/jP,KAAO,IAClEmlF,EAAM3sF,IACRw/F,EAAMx/F,IACN2sF,EAAM4rJ,kBAAoB/4I,EAAMx/F,GAAKu4O,kBAErC4P,EAASppP,EAAMiB,GACfjB,EAAKQ,KAAKS,KAIVvC,KAAKsuQ,aAAep/K,EACpBlvF,KAAKuuQ,WAAahsQ,GAGtB2sF,EAAMlmF,KAAKqxO,WAAY,CAC3B,CACA,OAAOnrJ,GAAUqL,GAAQA,EAAK,EAClC,GAGAi0K,GAAoB,CACpBN,UAAWA,IAGf,SAASO,GAAchqL,GAEnB,IAAIiqL,EAAY,CAChBA,IAAgB,WAAc,OAAOhuO,CAAQ,GAM7Cn/B,OAAOoB,eAAe8hF,EAAK,SAAUiqL,GAIrCjqL,EAAIo7J,KAAO,CACPl8J,KAAMA,GACN4B,OAAQA,EACRqkL,aAAcA,GACd9pB,eAAgBA,IAEpBr7J,EAAIvyE,IAAMA,GACVuyE,EAAIqoD,OAASn+D,GACb8V,EAAI6L,SAAWA,GAEf7L,EAAIkqL,WAAa,SAAU9rQ,GAEvB,OADA6rH,GAAQ7rH,GACDA,CACX,EACA4hF,EAAI9kF,QAAU4B,OAAOs2C,OAAO,MAC5B4zM,EAAYnpP,SAAQ,SAAUgK,GAC1Bm4E,EAAI9kF,QAAQ2M,EAAO,KAAO/K,OAAOs2C,OAAO,KAC5C,IAGA4sC,EAAI9kF,QAAQunD,MAAQu9B,EACpBc,EAAOd,EAAI9kF,QAAQolF,WAAYypL,IAC/BxB,GAAQvoL,GACR0oL,GAAU1oL,GACV2oL,GAAW3oL,GACXmpL,GAAmBnpL,EACvB,CAEAgqL,GAAchqL,IACdljF,OAAOoB,eAAe8hF,GAAIxhF,UAAW,YAAa,CAC9C+O,IAAKk7O,KAET3rP,OAAOoB,eAAe8hF,GAAIxhF,UAAW,cAAe,CAChD+O,IAAK,WAED,OAAOhS,KAAKC,QAAUD,KAAKC,OAAOC,UACtC,IAGJqB,OAAOoB,eAAe8hF,GAAK,0BAA2B,CAClDvhF,MAAO+jQ,KAEXxiL,GAAInsD,QAAUA,GAId,IAAI0zN,GAAiBzB,EAAQ,eAEzBqkB,GAAcrkB,EAAQ,yCACtB6B,GAAc,SAAUriP,EAAKuC,EAAMizF,GACnC,MAAkB,UAATA,GAAoBqvK,GAAY7kQ,IAAiB,WAATuC,GACnC,aAATizF,GAA+B,WAARx1F,GACd,YAATw1F,GAA8B,UAARx1F,GACb,UAATw1F,GAA4B,UAARx1F,CAC7B,EACI8kQ,GAAmBtkB,EAAQ,wCAC3BukB,GAA8BvkB,EAAQ,sCACtCwkB,GAAyB,SAAUxsQ,EAAKW,GACxC,OAAO8rQ,GAAiB9rQ,IAAoB,UAAVA,EAC5B,QAEU,oBAARX,GAA6BusQ,GAA4B5rQ,GACnDA,EACA,MAClB,EACIozO,GAAgBiU,EAAQ,8XAMxB0kB,GAAU,+BACVC,GAAU,SAAUtqQ,GACpB,MAA0B,MAAnBA,EAAKyzB,OAAO,IAAmC,UAArBzzB,EAAKD,MAAM,EAAG,EACnD,EACIwqQ,GAAe,SAAUvqQ,GACzB,OAAOsqQ,GAAQtqQ,GAAQA,EAAKD,MAAM,EAAGC,EAAKxC,QAAU,EACxD,EACI4sQ,GAAmB,SAAU3lQ,GAC7B,OAAc,MAAPA,IAAuB,IAARA,CAC1B,EAEA,SAAS+lQ,GAAiBlgL,GACtB,IAAIlmF,EAAOkmF,EAAMlmF,KACb2zF,EAAazN,EACbmgL,EAAYngL,EAChB,MAAOswJ,EAAM6vB,EAAUv0B,mBACnBu0B,EAAYA,EAAUv0B,kBAAkBiiB,OACpCsS,GAAaA,EAAUrmQ,OACvBA,EAAOsmQ,GAAeD,EAAUrmQ,KAAMA,IAI9C,MAAOw2O,EAAO7iJ,EAAaA,EAAWx8F,QAC9Bw8F,GAAcA,EAAW3zF,OACzBA,EAAOsmQ,GAAetmQ,EAAM2zF,EAAW3zF,OAG/C,OAAOumQ,GAAYvmQ,EAAKu8F,YAAav8F,EAAKQ,MAC9C,CACA,SAAS8lQ,GAAerwK,EAAO9+F,GAC3B,MAAO,CACHolG,YAAatkG,GAAOg+F,EAAMsG,YAAaplG,EAAOolG,aAC9C/7F,MAAOg2O,EAAMvgJ,EAAMz1F,OAAS,CAACy1F,EAAMz1F,MAAOrJ,EAAOqJ,OAASrJ,EAAOqJ,MAEzE,CACA,SAAS+lQ,GAAYhqK,EAAaiqK,GAC9B,OAAIhwB,EAAMj6I,IAAgBi6I,EAAMgwB,GACrBvuQ,GAAOskG,EAAakqK,GAAeD,IAGvC,EACX,CACA,SAASvuQ,GAAO4/E,EAAG/oE,GACf,OAAO+oE,EAAK/oE,EAAI+oE,EAAI,IAAM/oE,EAAI+oE,EAAK/oE,GAAK,EAC5C,CACA,SAAS23P,GAAevsQ,GACpB,OAAIgB,MAAMC,QAAQjB,GACPwsQ,GAAexsQ,GAEtB0N,EAAS1N,GACFysQ,GAAgBzsQ,GAEN,kBAAVA,EACAA,EAGJ,EACX,CACA,SAASwsQ,GAAexsQ,GAGpB,IAFA,IACI0sQ,EADAvoN,EAAM,GAEDnlD,EAAI,EAAG8D,EAAI9C,EAAMd,OAAQF,EAAI8D,EAAG9D,IACjCs9O,EAAOowB,EAAcH,GAAevsQ,EAAMhB,MAAyB,KAAhB0tQ,IAC/CvoN,IACAA,GAAO,KACXA,GAAOuoN,GAGf,OAAOvoN,CACX,CACA,SAASsoN,GAAgBzsQ,GACrB,IAAImkD,EAAM,GACV,IAAK,IAAI9kD,KAAOW,EACRA,EAAMX,KACF8kD,IACAA,GAAO,KACXA,GAAO9kD,GAGf,OAAO8kD,CACX,CAEA,IAAIwoN,GAAe,CACfC,IAAK,6BACLC,KAAM,sCAENC,GAAYzlB,EAAQ,snBAapB0lB,GAAQ1lB,EAAQ,kNAEoD,GACpEwB,GAAgB,SAAUhiP,GAC1B,OAAOimQ,GAAUjmQ,IAAQkmQ,GAAMlmQ,EACnC,EACA,SAASmiP,GAAgBniP,GACrB,OAAIkmQ,GAAMlmQ,GACC,MAIC,SAARA,EACO,YADX,CAGJ,CACA,IAAImmQ,GAAsB3uQ,OAAOs2C,OAAO,MACxC,SAASo0M,GAAiBliP,GAEtB,IAAK+lN,GACD,OAAO,EAEX,GAAIi8B,GAAchiP,GACd,OAAO,EAIX,GAFAA,EAAMA,EAAIhD,cAEsB,MAA5BmpQ,GAAoBnmQ,GACpB,OAAOmmQ,GAAoBnmQ,GAE/B,IAAIilF,EAAK3T,SAASnuE,cAAcnD,GAChC,OAAIA,EAAIvG,QAAQ,MAAQ,EAEZ0sQ,GAAoBnmQ,GACxBilF,EAAGhsF,cAAgBmC,OAAOgrQ,oBACtBnhL,EAAGhsF,cAAgBmC,OAAOk8E,YAG1B6uL,GAAoBnmQ,GAAO,qBAAqBlF,KAAKmqF,EAAGtqF,WAExE,CACA,IAAI0rQ,GAAkB7lB,EAAQ,6CAK9B,SAAS3/I,GAAM5b,GACX,GAAkB,kBAAPA,EAAiB,CACxB,IAAI6xB,EAAWxlC,SAAS0jB,cAAc/P,GACtC,OAAK6xB,GAEMxlC,SAASnuE,cAAc,MAGtC,CAEI,OAAO8hF,CAEf,CAEA,SAAS9hF,GAAcwpH,EAASxnC,GAC5B,IAAIt0E,EAAMygE,SAASnuE,cAAcwpH,GACjC,MAAgB,WAAZA,GAIAxnC,EAAMlmF,MACNkmF,EAAMlmF,KAAKM,YACmBP,IAA9BmmF,EAAMlmF,KAAKM,MAAMi2I,UACjB3kI,EAAI4kF,aAAa,WAAY,YANtB5kF,CASf,CACA,SAASy1P,GAAgBC,EAAW55I,GAChC,OAAOr7C,SAASg1L,gBAAgBR,GAAaS,GAAY55I,EAC7D,CACA,SAASs3E,GAAe9rK,GACpB,OAAOm5C,SAAS2yH,eAAe9rK,EACnC,CACA,SAASquO,GAAcruO,GACnB,OAAOm5C,SAASk1L,cAAcruO,EAClC,CACA,SAASm/K,GAAa1kH,EAAY6zK,EAAStzI,GACvCvgC,EAAW0kH,aAAamvD,EAAStzI,EACrC,CACA,SAAS3/B,GAAYnkF,EAAM6lF,GACvB7lF,EAAKmkF,YAAY0B,EACrB,CACA,SAASkkE,GAAY/pJ,EAAM6lF,GACvB7lF,EAAK+pJ,YAAYlkE,EACrB,CACA,SAAStC,GAAWvjF,GAChB,OAAOA,EAAKujF,UAChB,CACA,SAAS2kH,GAAYloM,GACjB,OAAOA,EAAKkoM,WAChB,CACA,SAAS5qF,GAAQt9G,GACb,OAAOA,EAAKs9G,OAChB,CACA,SAAS+5I,GAAer3P,EAAM8oB,GAC1B9oB,EAAK8/F,YAAch3E,CACvB,CACA,SAASwuO,GAAct3P,EAAM7Z,GACzB6Z,EAAKomF,aAAajgG,EAAS,GAC/B,CAEA,IAAIoxQ,GAAuBpvQ,OAAOwuN,OAAO,CACvC1oM,UAAW,KACXna,cAAeA,GACfmjQ,gBAAiBA,GACjBriE,eAAgBA,GAChBuiE,cAAeA,GACflvD,aAAcA,GACd9jH,YAAaA,GACb4lE,YAAaA,GACbxmE,WAAYA,GACZ2kH,YAAaA,GACb5qF,QAASA,GACT+5I,eAAgBA,GAChBC,cAAeA,KAGbvvP,GAAM,CACN02B,OAAQ,SAAU2jD,EAAGtM,GACjB0hL,GAAY1hL,EAChB,EACA5wC,OAAQ,SAAU2pN,EAAU/4K,GACpB+4K,EAASj/P,KAAKmY,MAAQ+tE,EAAMlmF,KAAKmY,MACjCyvP,GAAY3I,GAAU,GACtB2I,GAAY1hL,GAEpB,EACA6/B,QAAS,SAAU7/B,GACf0hL,GAAY1hL,GAAO,EACvB,GAEJ,SAAS0hL,GAAY1hL,EAAO2hL,GACxB,IAAI1vP,EAAM+tE,EAAMlmF,KAAKmY,IACrB,GAAKq+N,EAAMr+N,GAAX,CAEA,IAAIwwF,EAAKziB,EAAMnvF,QACX+wQ,EAAW5hL,EAAM4rJ,mBAAqB5rJ,EAAMt0E,IAC5C1X,EAAQ2tQ,EAAY,KAAOC,EAC3BC,EAAaF,OAAY9nQ,EAAY+nQ,EACzC,GAAIngQ,EAAWwQ,GACXqzO,GAAwBrzO,EAAKwwF,EAAI,CAACzuG,GAAQyuG,EAAI,6BADlD,CAIA,IAAIq/J,EAAQ9hL,EAAMlmF,KAAKioQ,SACnBC,EAA2B,kBAAR/vP,GAAmC,kBAARA,EAC9CgwP,EAASpgB,GAAM5vO,GACfiwP,EAAOz/J,EAAGkU,MACd,GAAIqrJ,GAAaC,EACb,GAAIH,EAAO,CACP,IAAIjwQ,EAAWmwQ,EAAYE,EAAKjwP,GAAOA,EAAIje,MACvC2tQ,EACA1sQ,EAAQpD,IAAa2pP,EAAS3pP,EAAU+vQ,GAGnC3sQ,EAAQpD,GASHA,EAAS4uF,SAASmhL,IACxB/vQ,EAASe,KAAKgvQ,GATVI,GACAE,EAAKjwP,GAAO,CAAC2vP,GACbO,GAAY1/J,EAAIxwF,EAAKiwP,EAAKjwP,KAG1BA,EAAIje,MAAQ,CAAC4tQ,EAO7B,MACK,GAAII,EAAW,CAChB,GAAIL,GAAaO,EAAKjwP,KAAS2vP,EAC3B,OAEJM,EAAKjwP,GAAO4vP,EACZM,GAAY1/J,EAAIxwF,EAAKje,EACzB,MACK,GAAIiuQ,EAAQ,CACb,GAAIN,GAAa1vP,EAAIje,QAAU4tQ,EAC3B,OAEJ3vP,EAAIje,MAAQA,CAChB,MACSmE,CAvCb,CARU,CAmDd,CACA,SAASgqQ,GAAYz1P,EAAIrZ,EAAK8G,GAC1B,IAAIuyP,EAAchgP,EAAGggP,YACjBA,GAAenjC,EAAOmjC,EAAar5P,KAC/BwuP,GAAM6K,EAAYr5P,IAClBq5P,EAAYr5P,GAAKW,MAAQmG,EAGzBuyP,EAAYr5P,GAAO8G,EAG/B,CAaA,IAAIioQ,GAAY,IAAIzjB,GAAM,GAAI,CAAC,EAAG,IAC9BlgM,GAAQ,CAAC,SAAU,WAAY,SAAU,SAAU,WACvD,SAAS4jN,GAAU1wL,EAAG/oE,GAClB,OAAQ+oE,EAAEt+E,MAAQuV,EAAEvV,KAChBs+E,EAAEktK,eAAiBj2O,EAAEi2O,eACnBltK,EAAE92E,MAAQ+N,EAAE/N,KACV82E,EAAEstK,YAAcr2O,EAAEq2O,WAClB3O,EAAM3+J,EAAE73E,QAAUw2O,EAAM1nO,EAAE9O,OAC1BwoQ,GAAc3wL,EAAG/oE,IAChBkyO,EAAOnpK,EAAE0tK,qBAAuBxE,EAAQjyO,EAAEi2O,aAAa1jP,OACpE,CACA,SAASmnQ,GAAc3wL,EAAG/oE,GACtB,GAAc,UAAV+oE,EAAE92E,IACF,OAAO,EACX,IAAI7H,EACAuvQ,EAAQjyB,EAAOt9O,EAAI2+E,EAAE73E,OAAUw2O,EAAOt9O,EAAIA,EAAEoH,QAAWpH,EAAEoK,KACzDolQ,EAAQlyB,EAAOt9O,EAAI4V,EAAE9O,OAAUw2O,EAAOt9O,EAAIA,EAAEoH,QAAWpH,EAAEoK,KAC7D,OAAOmlQ,IAAUC,GAAUtB,GAAgBqB,IAAUrB,GAAgBsB,EACzE,CACA,SAASC,GAAkB1oQ,EAAU2oQ,EAAUC,GAC3C,IAAI3vQ,EAAGK,EACHwF,EAAM,CAAC,EACX,IAAK7F,EAAI0vQ,EAAU1vQ,GAAK2vQ,IAAU3vQ,EAC9BK,EAAM0G,EAAS/G,GAAGK,IACdi9O,EAAMj9O,KACNwF,EAAIxF,GAAOL,GAEnB,OAAO6F,CACX,CACA,SAAS+pQ,GAAoBC,GACzB,IAAI7vQ,EAAGulB,EACHkyN,EAAM,CAAC,EACPq4B,EAAUD,EAAQC,QAASrB,EAAUoB,EAAQpB,QACjD,IAAKzuQ,EAAI,EAAGA,EAAIyrD,GAAMvrD,SAAUF,EAE5B,IADAy3O,EAAIhsL,GAAMzrD,IAAM,GACXulB,EAAI,EAAGA,EAAIuqP,EAAQ5vQ,SAAUqlB,EAC1B+3N,EAAMwyB,EAAQvqP,GAAGkmC,GAAMzrD,MACvBy3O,EAAIhsL,GAAMzrD,IAAIJ,KAAKkwQ,EAAQvqP,GAAGkmC,GAAMzrD,KAIhD,SAAS+vQ,EAAYr3P,GACjB,OAAO,IAAIizO,GAAM8iB,EAAQj6I,QAAQ97G,GAAK7T,cAAe,CAAC,EAAG,QAAIgC,EAAW6R,EAC5E,CACA,SAASs3P,EAAWC,EAAU5iM,GAC1B,SAAS9hB,IACsB,MAArBA,EAAO8hB,WACT+tB,EAAW60K,EAEnB,CAEA,OADA1kN,EAAO8hB,UAAYA,EACZ9hB,CACX,CACA,SAAS6vC,EAAWtO,GAChB,IAAI7uF,EAASwwQ,EAAQh0K,WAAW3N,GAE5BwwJ,EAAMr/O,IACNwwQ,EAAQpzK,YAAYp9F,EAAQ6uF,EAEpC,CAaA,SAASojL,EAAUljL,EAAOmjL,EAAoBC,EAAWC,EAAQC,EAAQC,EAAYx+N,GAUjF,GATIurM,EAAMtwJ,EAAMt0E,MAAQ4kO,EAAMizB,KAM1BvjL,EAAQujL,EAAWx+N,GAASy6M,GAAWx/J,IAE3CA,EAAMg/J,cAAgBskB,GAClBtT,EAAgBhwK,EAAOmjL,EAAoBC,EAAWC,GAA1D,CAGA,IAAIvpQ,EAAOkmF,EAAMlmF,KACbC,EAAWimF,EAAMjmF,SACjBc,EAAMmlF,EAAMnlF,IACZy1O,EAAMz1O,IAaNmlF,EAAMt0E,IAAMs0E,EAAM7tD,GACZsvO,EAAQN,gBAAgBnhL,EAAM7tD,GAAIt3B,GAClC4mQ,EAAQzjQ,cAAcnD,EAAKmlF,GACjCwjL,EAASxjL,GACTyjL,EAAezjL,EAAOjmF,EAAUopQ,GAC5B7yB,EAAMx2O,IACN4pQ,EAAkB1jL,EAAOmjL,GAE7BnK,EAAOoK,EAAWpjL,EAAMt0E,IAAK23P,IAKxBvoB,EAAO96J,EAAMi/J,YAClBj/J,EAAMt0E,IAAM+1P,EAAQJ,cAAcrhL,EAAMhtD,MACxCgmO,EAAOoK,EAAWpjL,EAAMt0E,IAAK23P,KAG7BrjL,EAAMt0E,IAAM+1P,EAAQ3iE,eAAe9+G,EAAMhtD,MACzCgmO,EAAOoK,EAAWpjL,EAAMt0E,IAAK23P,GApCjC,CAsCJ,CACA,SAASrT,EAAgBhwK,EAAOmjL,EAAoBC,EAAWC,GAC3D,IAAIrwQ,EAAIgtF,EAAMlmF,KACd,GAAIw2O,EAAMt9O,GAAI,CACV,IAAI2wQ,EAAgBrzB,EAAMtwJ,EAAM4rJ,oBAAsB54O,EAAEm4O,UAQxD,GAPImF,EAAOt9O,EAAIA,EAAExC,OAAU8/O,EAAOt9O,EAAIA,EAAEioD,OACpCjoD,EAAEgtF,GAAO,GAMTswJ,EAAMtwJ,EAAM4rJ,mBAMZ,OALAg4B,EAAc5jL,EAAOmjL,GACrBnK,EAAOoK,EAAWpjL,EAAMt0E,IAAK23P,GACzBvoB,EAAO6oB,IACPE,EAAoB7jL,EAAOmjL,EAAoBC,EAAWC,IAEvD,CAEf,CACJ,CACA,SAASO,EAAc5jL,EAAOmjL,GACtB7yB,EAAMtwJ,EAAMlmF,KAAKgqQ,iBACjBX,EAAmBvwQ,KAAKC,MAAMswQ,EAAoBnjL,EAAMlmF,KAAKgqQ,eAC7D9jL,EAAMlmF,KAAKgqQ,cAAgB,MAE/B9jL,EAAMt0E,IAAMs0E,EAAM4rJ,kBAAkBjmI,IAChCo+J,EAAY/jL,IACZ0jL,EAAkB1jL,EAAOmjL,GACzBK,EAASxjL,KAKT0hL,GAAY1hL,GAEZmjL,EAAmBvwQ,KAAKotF,GAEhC,CACA,SAAS6jL,EAAoB7jL,EAAOmjL,EAAoBC,EAAWC,GAC/D,IAAIrwQ,EAKAgxQ,EAAYhkL,EAChB,MAAOgkL,EAAUp4B,kBAEb,GADAo4B,EAAYA,EAAUp4B,kBAAkBiiB,OACpCvd,EAAOt9O,EAAIgxQ,EAAUlqQ,OAAUw2O,EAAOt9O,EAAIA,EAAEuwH,YAAc,CAC1D,IAAKvwH,EAAI,EAAGA,EAAIy3O,EAAI12C,SAAS7gM,SAAUF,EACnCy3O,EAAI12C,SAAS/gM,GAAGovQ,GAAW4B,GAE/Bb,EAAmBvwQ,KAAKoxQ,GACxB,KACJ,CAIJhL,EAAOoK,EAAWpjL,EAAMt0E,IAAK23P,EACjC,CACA,SAASrK,EAAO/nQ,EAAQya,EAAKuG,GACrBq+N,EAAMr/O,KACFq/O,EAAMr+N,GACFwvP,EAAQh0K,WAAWx7E,KAAShhB,GAC5BwwQ,EAAQtvD,aAAalhN,EAAQya,EAAKuG,GAItCwvP,EAAQxtG,YAAYhjK,EAAQya,GAGxC,CACA,SAAS+3P,EAAezjL,EAAOjmF,EAAUopQ,GACrC,GAAIluQ,EAAQ8E,GAAW,CACf5B,EAGJ,IAAK,IAAIq8P,EAAM,EAAGA,EAAMz6P,EAAS7G,SAAUshQ,EACvC0O,EAAUnpQ,EAASy6P,GAAM2O,EAAoBnjL,EAAMt0E,IAAK,MAAM,EAAM3R,EAAUy6P,EAEtF,MACSxZ,EAAYh7J,EAAMhtD,OACvByuO,EAAQxtG,YAAYj0E,EAAMt0E,IAAK+1P,EAAQ3iE,eAAevhM,OAAOyiF,EAAMhtD,OAE3E,CACA,SAAS+wO,EAAY/jL,GACjB,MAAOA,EAAM4rJ,kBACT5rJ,EAAQA,EAAM4rJ,kBAAkBiiB,OAEpC,OAAOvd,EAAMtwJ,EAAMnlF,IACvB,CACA,SAAS6oQ,EAAkB1jL,EAAOmjL,GAC9B,IAAK,IAAIc,EAAM,EAAGA,EAAMx5B,EAAI9hM,OAAOz1C,SAAU+wQ,EACzCx5B,EAAI9hM,OAAOs7N,GAAK7B,GAAWpiL,GAE/BhtF,EAAIgtF,EAAMlmF,KAAKtJ,KACX8/O,EAAMt9O,KACFs9O,EAAMt9O,EAAE21C,SACR31C,EAAE21C,OAAOy5N,GAAWpiL,GACpBswJ,EAAMt9O,EAAEgmQ,SACRmK,EAAmBvwQ,KAAKotF,GAEpC,CAIA,SAASwjL,EAASxjL,GACd,IAAIhtF,EACJ,GAAIs9O,EAAOt9O,EAAIgtF,EAAM++J,WACjB0iB,EAAQD,cAAcxhL,EAAMt0E,IAAK1Y,OAEhC,CACD,IAAIkxQ,EAAWlkL,EACf,MAAOkkL,EACC5zB,EAAOt9O,EAAIkxQ,EAASrzQ,UAAay/O,EAAOt9O,EAAIA,EAAExB,SAASZ,WACvD6wQ,EAAQD,cAAcxhL,EAAMt0E,IAAK1Y,GAErCkxQ,EAAWA,EAASjzQ,MAE5B,CAEIq/O,EAAOt9O,EAAIyhQ,KACXzhQ,IAAMgtF,EAAMnvF,SACZmC,IAAMgtF,EAAM8+J,WACZxO,EAAOt9O,EAAIA,EAAExB,SAASZ,WACtB6wQ,EAAQD,cAAcxhL,EAAMt0E,IAAK1Y,EAEzC,CACA,SAASmxQ,EAAUf,EAAWC,EAAQ7K,EAAQ4L,EAAUzB,EAAQQ,GAC5D,KAAOiB,GAAYzB,IAAUyB,EACzBlB,EAAU1K,EAAO4L,GAAWjB,EAAoBC,EAAWC,GAAQ,EAAO7K,EAAQ4L,EAE1F,CACA,SAASC,EAAkBrkL,GACvB,IAAIhtF,EAAGulB,EACHze,EAAOkmF,EAAMlmF,KACjB,GAAIw2O,EAAMx2O,GAGN,IAFIw2O,EAAOt9O,EAAI8G,EAAKtJ,OAAU8/O,EAAOt9O,EAAIA,EAAE6sH,UACvC7sH,EAAEgtF,GACDhtF,EAAI,EAAGA,EAAIy3O,EAAI5qH,QAAQ3sH,SAAUF,EAClCy3O,EAAI5qH,QAAQ7sH,GAAGgtF,GAEvB,GAAIswJ,EAAOt9O,EAAIgtF,EAAMjmF,UACjB,IAAKwe,EAAI,EAAGA,EAAIynE,EAAMjmF,SAAS7G,SAAUqlB,EACrC8rP,EAAkBrkL,EAAMjmF,SAASwe,GAG7C,CACA,SAAS+rP,EAAa9L,EAAQ4L,EAAUzB,GACpC,KAAOyB,GAAYzB,IAAUyB,EAAU,CACnC,IAAI9zC,EAAKkoC,EAAO4L,GACZ9zB,EAAMhgB,KACFggB,EAAMhgB,EAAGz1N,MACT0pQ,EAA0Bj0C,GAC1B+zC,EAAkB/zC,IAIlBliI,EAAWkiI,EAAG5kN,KAG1B,CACJ,CACA,SAAS64P,EAA0BvkL,EAAOvvD,GACtC,GAAI6/M,EAAM7/M,IAAO6/M,EAAMtwJ,EAAMlmF,MAAO,CAChC,IAAI0qQ,EACAnkM,EAAYoqK,EAAIlsL,OAAOrrD,OAAS,EAgBpC,IAfIo9O,EAAM7/M,GAGNA,EAAG4vC,WAAaA,EAIhB5vC,EAAKuyO,EAAWhjL,EAAMt0E,IAAK20D,GAG3BiwK,EAAOk0B,EAAMxkL,EAAM4rJ,oBACnB0E,EAAOk0B,EAAMA,EAAI3W,SACjBvd,EAAMk0B,EAAI1qQ,OACVyqQ,EAA0BC,EAAK/zO,GAE9B+zO,EAAM,EAAGA,EAAM/5B,EAAIlsL,OAAOrrD,SAAUsxQ,EACrC/5B,EAAIlsL,OAAOimN,GAAKxkL,EAAOvvD,GAEvB6/M,EAAOk0B,EAAMxkL,EAAMlmF,KAAKtJ,OAAU8/O,EAAOk0B,EAAMA,EAAIjmN,QACnDimN,EAAIxkL,EAAOvvD,GAGXA,GAER,MAEI29D,EAAWpO,EAAMt0E,IAEzB,CACA,SAAS+4P,EAAerB,EAAWsB,EAAOC,EAAOxB,EAAoByB,GACjE,IAQIC,EAAaC,EAAUC,EAAa1B,EARpC2B,EAAc,EACdC,EAAc,EACdC,EAAYR,EAAMxxQ,OAAS,EAC3BiyQ,EAAgBT,EAAM,GACtBU,EAAcV,EAAMQ,GACpBG,EAAYV,EAAMzxQ,OAAS,EAC3BoyQ,EAAgBX,EAAM,GACtBY,EAAcZ,EAAMU,GAKpBG,GAAWZ,EAIf,MAAOI,GAAeE,GAAaD,GAAeI,EAC1CxqB,EAAQsqB,GACRA,EAAgBT,IAAQM,GAEnBnqB,EAAQuqB,GACbA,EAAcV,IAAQQ,GAEjB7C,GAAU8C,EAAeG,IAC9BG,EAAWN,EAAeG,EAAenC,EAAoBwB,EAAOM,GACpEE,EAAgBT,IAAQM,GACxBM,EAAgBX,IAAQM,IAEnB5C,GAAU+C,EAAaG,IAC5BE,EAAWL,EAAaG,EAAapC,EAAoBwB,EAAOU,GAChED,EAAcV,IAAQQ,GACtBK,EAAcZ,IAAQU,IAEjBhD,GAAU8C,EAAeI,IAE9BE,EAAWN,EAAeI,EAAapC,EAAoBwB,EAAOU,GAClEG,GACI/D,EAAQtvD,aAAaixD,EAAW+B,EAAcz5P,IAAK+1P,EAAQrvD,YAAYgzD,EAAY15P,MACvFy5P,EAAgBT,IAAQM,GACxBO,EAAcZ,IAAQU,IAEjBhD,GAAU+C,EAAaE,IAE5BG,EAAWL,EAAaE,EAAenC,EAAoBwB,EAAOM,GAClEO,GACI/D,EAAQtvD,aAAaixD,EAAWgC,EAAY15P,IAAKy5P,EAAcz5P,KACnE05P,EAAcV,IAAQQ,GACtBI,EAAgBX,IAAQM,KAGpBpqB,EAAQgqB,KACRA,EAAcpC,GAAkBiC,EAAOM,EAAaE,IACxDJ,EAAWx0B,EAAMg1B,EAAcjyQ,KACzBwxQ,EAAYS,EAAcjyQ,KAC1BqyQ,EAAaJ,EAAeZ,EAAOM,EAAaE,GAClDrqB,EAAQiqB,GAER5B,EAAUoC,EAAenC,EAAoBC,EAAW+B,EAAcz5P,KAAK,EAAOi5P,EAAOM,IAGzFF,EAAcL,EAAMI,GAChBzC,GAAU0C,EAAaO,IACvBG,EAAWV,EAAaO,EAAenC,EAAoBwB,EAAOM,GAClEP,EAAMI,QAAYjrQ,EAClB2rQ,GACI/D,EAAQtvD,aAAaixD,EAAW2B,EAAYr5P,IAAKy5P,EAAcz5P,MAInEw3P,EAAUoC,EAAenC,EAAoBC,EAAW+B,EAAcz5P,KAAK,EAAOi5P,EAAOM,IAGjGK,EAAgBX,IAAQM,IAG5BD,EAAcE,GACd7B,EAASxoB,EAAQ8pB,EAAMU,EAAY,IAAM,KAAOV,EAAMU,EAAY,GAAG35P,IACrEy4P,EAAUf,EAAWC,EAAQsB,EAAOM,EAAaI,EAAWlC,IAEvD8B,EAAcI,GACnBf,EAAaI,EAAOM,EAAaE,EAEzC,CAgBA,SAASQ,EAAax7P,EAAMw6P,EAAOr9P,EAAO4E,GACtC,IAAK,IAAI05P,EAAMt+P,EAAOs+P,EAAM15P,EAAK05P,IAAO,CACpC,IAAIrsQ,EAAIorQ,EAAMiB,GACd,GAAIr1B,EAAMh3O,IAAM+oQ,GAAUn4P,EAAM5Q,GAC5B,OAAOqsQ,CACf,CACJ,CACA,SAASF,EAAW1M,EAAU/4K,EAAOmjL,EAAoBI,EAAYx+N,EAAO6/N,GACxE,GAAI7L,IAAa/4K,EAAjB,CAGIswJ,EAAMtwJ,EAAMt0E,MAAQ4kO,EAAMizB,KAE1BvjL,EAAQujL,EAAWx+N,GAASy6M,GAAWx/J,IAE3C,IAAIt0E,EAAOs0E,EAAMt0E,IAAMqtP,EAASrtP,IAChC,GAAIovO,EAAOie,EAAS1Z,oBACZ/O,EAAMtwJ,EAAM6+J,aAAanhM,UACzBkoN,EAAQ7M,EAASrtP,IAAKs0E,EAAOmjL,GAG7BnjL,EAAMq/J,oBAAqB,OAQnC,GAAIvE,EAAO96J,EAAM42G,WACbkkD,EAAOie,EAASniE,WAChB52G,EAAM3sF,MAAQ0lQ,EAAS1lQ,MACtBynP,EAAO96J,EAAMk/J,WAAapE,EAAO96J,EAAMm/J,SACxCn/J,EAAM4rJ,kBAAoBmtB,EAASntB,sBAJvC,CAOA,IAAI54O,EACA8G,EAAOkmF,EAAMlmF,KACbw2O,EAAMx2O,IAASw2O,EAAOt9O,EAAI8G,EAAKtJ,OAAU8/O,EAAOt9O,EAAIA,EAAE24O,WACtD34O,EAAE+lQ,EAAU/4K,GAEhB,IAAI0kL,EAAQ3L,EAASh/P,SACjBu2N,EAAKtwI,EAAMjmF,SACf,GAAIu2O,EAAMx2O,IAASiqQ,EAAY/jL,GAAQ,CACnC,IAAKhtF,EAAI,EAAGA,EAAIy3O,EAAIr7L,OAAOl8C,SAAUF,EACjCy3O,EAAIr7L,OAAOp8C,GAAG+lQ,EAAU/4K,GACxBswJ,EAAOt9O,EAAI8G,EAAKtJ,OAAU8/O,EAAOt9O,EAAIA,EAAEo8C,SACvCp8C,EAAE+lQ,EAAU/4K,EACpB,CACI66J,EAAQ76J,EAAMhtD,MACVs9M,EAAMo0B,IAAUp0B,EAAMhgB,GAClBo0C,IAAUp0C,GACVm0C,EAAe/4P,EAAKg5P,EAAOp0C,EAAI6yC,EAAoByB,GAElDt0B,EAAMhgB,IAIPggB,EAAMyoB,EAAS/lO,OACfyuO,EAAQF,eAAe71P,EAAK,IAChCy4P,EAAUz4P,EAAK,KAAM4kN,EAAI,EAAGA,EAAGp9N,OAAS,EAAGiwQ,IAEtC7yB,EAAMo0B,GACXJ,EAAaI,EAAO,EAAGA,EAAMxxQ,OAAS,GAEjCo9O,EAAMyoB,EAAS/lO,OACpByuO,EAAQF,eAAe71P,EAAK,IAG3BqtP,EAAS/lO,OAASgtD,EAAMhtD,MAC7ByuO,EAAQF,eAAe71P,EAAKs0E,EAAMhtD,MAElCs9M,EAAMx2O,IACFw2O,EAAOt9O,EAAI8G,EAAKtJ,OAAU8/O,EAAOt9O,EAAIA,EAAE6yQ,YACvC7yQ,EAAE+lQ,EAAU/4K,EAvCpB,CAzBA,CAkEJ,CACA,SAAS8lL,EAAiB9lL,EAAOhsD,EAAOyrL,GAGpC,GAAIq7B,EAAOr7B,IAAY6wB,EAAMtwJ,EAAM/uF,QAC/B+uF,EAAM/uF,OAAO6I,KAAKgqQ,cAAgB9vO,OAGlC,IAAK,IAAI+xO,EAAM,EAAGA,EAAM/xO,EAAM9gC,SAAU6yQ,EACpC/xO,EAAM+xO,GAAKjsQ,KAAKtJ,KAAKwoQ,OAAOhlO,EAAM+xO,GAG9C,CACA,IAKIC,EAAmB3qB,EAAQ,2CAE/B,SAASuqB,EAAQl6P,EAAKs0E,EAAOmjL,EAAoB8C,GAC7C,IAAIjzQ,EACA6H,EAAMmlF,EAAMnlF,IAAKf,EAAOkmF,EAAMlmF,KAAMC,EAAWimF,EAAMjmF,SAGzD,GAFAksQ,EAASA,GAAWnsQ,GAAQA,EAAKi2P,IACjC/vK,EAAMt0E,IAAMA,EACRovO,EAAO96J,EAAMi/J,YAAc3O,EAAMtwJ,EAAM6+J,cAEvC,OADA7+J,EAAMq/J,oBAAqB,GACpB,EAQX,GAAI/O,EAAMx2O,KACFw2O,EAAOt9O,EAAI8G,EAAKtJ,OAAU8/O,EAAOt9O,EAAIA,EAAEioD,OACvCjoD,EAAEgtF,GAAO,GACTswJ,EAAOt9O,EAAIgtF,EAAM4rJ,oBAGjB,OADAg4B,EAAc5jL,EAAOmjL,IACd,EAGf,GAAI7yB,EAAMz1O,GAAM,CACZ,GAAIy1O,EAAMv2O,GAEN,GAAK2R,EAAIw6P,gBAKL,GAAI51B,EAAOt9O,EAAI8G,IACXw2O,EAAOt9O,EAAIA,EAAEujG,WACb+5I,EAAOt9O,EAAIA,EAAEwjG,YACb,GAAIxjG,IAAM0Y,EAAI8qF,UAUV,OAAO,MAGV,CAID,IAFA,IAAI2vK,GAAgB,EAChBhG,EAAYz0P,EAAI67L,WACX6+D,EAAM,EAAGA,EAAMrsQ,EAAS7G,OAAQkzQ,IAAO,CAC5C,IAAKjG,IACAyF,EAAQzF,EAAWpmQ,EAASqsQ,GAAMjD,EAAoB8C,GAAS,CAChEE,GAAgB,EAChB,KACJ,CACAhG,EAAYA,EAAU/tD,WAC1B,CAGA,IAAK+zD,GAAiBhG,EASlB,OAAO,CAEf,MA7CAsD,EAAezjL,EAAOjmF,EAAUopQ,GAgDxC,GAAI7yB,EAAMx2O,GAAO,CACb,IAAIusQ,GAAa,EACjB,IAAK,IAAIhzQ,KAAOyG,EACZ,IAAKksQ,EAAiB3yQ,GAAM,CACxBgzQ,GAAa,EACb3C,EAAkB1jL,EAAOmjL,GACzB,KACJ,EAECkD,GAAcvsQ,EAAK,UAEpB2rP,GAAS3rP,EAAK,SAEtB,CACJ,MACS4R,EAAI5R,OAASkmF,EAAMhtD,OACxBtnB,EAAI5R,KAAOkmF,EAAMhtD,MAErB,OAAO,CACX,CAYA,OAAO,SAAe+lO,EAAU/4K,EAAO+0K,EAAW6P,GAC9C,IAAI/pB,EAAQ76J,GAAZ,CAKA,IAAIsmL,GAAiB,EACjBnD,EAAqB,GACzB,GAAItoB,EAAQke,GAERuN,GAAiB,EACjBpD,EAAUljL,EAAOmjL,OAEhB,CACD,IAAIoD,EAAgBj2B,EAAMyoB,EAASrrK,UACnC,IAAK64K,GAAiBlE,GAAUtJ,EAAU/4K,GAEtCylL,EAAW1M,EAAU/4K,EAAOmjL,EAAoB,KAAM,KAAMyB,OAE3D,CACD,GAAI2B,EAAe,CAQf,GAJ0B,IAAtBxN,EAASrrK,UAAkBqrK,EAASpoK,aAAa2rJ,KACjDyc,EAASvoK,gBAAgB8rJ,GACzByY,GAAY,GAEZja,EAAOia,IACH6Q,EAAQ7M,EAAU/4K,EAAOmjL,GAEzB,OADA2C,EAAiB9lL,EAAOmjL,GAAoB,GACrCpK,EAYfA,EAAWgK,EAAYhK,EAC3B,CAEA,IAAIyN,EAASzN,EAASrtP,IAClB03P,EAAY3B,EAAQh0K,WAAW+4K,GAQnC,GANAtD,EAAUljL,EAAOmjL,EAIjBqD,EAAOC,SAAW,KAAOrD,EAAW3B,EAAQrvD,YAAYo0D,IAEpDl2B,EAAMtwJ,EAAM/uF,QAAS,CACrB,IAAIizQ,EAAWlkL,EAAM/uF,OACjBy1Q,EAAY3C,EAAY/jL,GAC5B,MAAOkkL,EAAU,CACb,IAAK,IAAIyC,EAAM,EAAGA,EAAMl8B,EAAI5qH,QAAQ3sH,SAAUyzQ,EAC1Cl8B,EAAI5qH,QAAQ8mJ,GAAKzC,GAGrB,GADAA,EAASx4P,IAAMs0E,EAAMt0E,IACjBg7P,EAAW,CACX,IAAK,IAAIE,EAAM,EAAGA,EAAMn8B,EAAI9hM,OAAOz1C,SAAU0zQ,EACzCn8B,EAAI9hM,OAAOi+N,GAAKxE,GAAW8B,GAK/B,IAAI2C,EAAW3C,EAASpqQ,KAAKtJ,KAAKwoQ,OAClC,GAAI6N,EAASjf,OAKT,IADA,IAAInI,EAASonB,EAASzf,IAAI3xP,MAAM,GACvBqxQ,EAAO,EAAGA,EAAOrnB,EAAOvsP,OAAQ4zQ,IACrCrnB,EAAOqnB,IAGnB,MAEIpF,GAAYwC,GAEhBA,EAAWA,EAASjzQ,MACxB,CACJ,CAEIq/O,EAAM8yB,GACNkB,EAAa,CAACvL,GAAW,EAAG,GAEvBzoB,EAAMyoB,EAASl+P,MACpBwpQ,EAAkBtL,EAE1B,CACJ,CAEA,OADA+M,EAAiB9lL,EAAOmjL,EAAoBmD,GACrCtmL,EAAMt0E,GA5Fb,CAHQ4kO,EAAMyoB,IACNsL,EAAkBtL,EA+F9B,CACJ,CAEA,IAAIjjL,GAAa,CACbntC,OAAQo+N,GACR33N,OAAQ23N,GACRlnJ,QAAS,SAA0B7/B,GAE/B+mL,GAAiB/mL,EAAOoiL,GAC5B,GAEJ,SAAS2E,GAAiBhO,EAAU/4K,IAC5B+4K,EAASj/P,KAAKg8E,YAAckK,EAAMlmF,KAAKg8E,aACvCg/K,GAAQiE,EAAU/4K,EAE1B,CACA,SAAS80K,GAAQiE,EAAU/4K,GACvB,IAMI3sF,EAAK2zQ,EAAQvzJ,EANbwzJ,EAAWlO,IAAaqJ,GACxB8E,EAAYlnL,IAAUoiL,GACtB+E,EAAUC,GAAoBrO,EAASj/P,KAAKg8E,WAAYijL,EAASloQ,SACjEw2Q,EAAUD,GAAoBpnL,EAAMlmF,KAAKg8E,WAAYkK,EAAMnvF,SAC3Dy2Q,EAAiB,GACjBC,EAAoB,GAExB,IAAKl0Q,KAAOg0Q,EACRL,EAASG,EAAQ9zQ,GACjBogH,EAAM4zJ,EAAQh0Q,GACT2zQ,GASDvzJ,EAAI5R,SAAWmlK,EAAOhzQ,MACtBy/G,EAAI+zJ,OAASR,EAAO7lQ,IACpBsmQ,GAASh0J,EAAK,SAAUzzB,EAAO+4K,GAC3BtlJ,EAAIl9B,KAAOk9B,EAAIl9B,IAAI0pC,kBACnBsnJ,EAAkB30Q,KAAK6gH,KAX3Bg0J,GAASh0J,EAAK,OAAQzzB,EAAO+4K,GACzBtlJ,EAAIl9B,KAAOk9B,EAAIl9B,IAAIgoF,UACnB+oG,EAAe10Q,KAAK6gH,IAahC,GAAI6zJ,EAAep0Q,OAAQ,CACvB,IAAIw0Q,EAAa,WACb,IAAK,IAAI10Q,EAAI,EAAGA,EAAIs0Q,EAAep0Q,OAAQF,IACvCy0Q,GAASH,EAAet0Q,GAAI,WAAYgtF,EAAO+4K,EAEvD,EACIkO,EACAzf,GAAexnK,EAAO,SAAU0nL,GAGhCA,GAER,CAQA,GAPIH,EAAkBr0Q,QAClBs0P,GAAexnK,EAAO,aAAa,WAC/B,IAAK,IAAIhtF,EAAI,EAAGA,EAAIu0Q,EAAkBr0Q,OAAQF,IAC1Cy0Q,GAASF,EAAkBv0Q,GAAI,mBAAoBgtF,EAAO+4K,EAElE,KAECkO,EACD,IAAK5zQ,KAAO8zQ,EACHE,EAAQh0Q,IAETo0Q,GAASN,EAAQ9zQ,GAAM,SAAU0lQ,EAAUA,EAAUmO,EAIrE,CACA,IAAIS,GAAiBt1Q,OAAOs2C,OAAO,MACnC,SAASy+N,GAAoB3M,EAAMh4J,GAC/B,IAKIzvG,EAAGygH,EALHt7D,EAAM9lD,OAAOs2C,OAAO,MACxB,IAAK8xN,EAED,OAAOtiN,EAGX,IAAKnlD,EAAI,EAAGA,EAAIynQ,EAAKvnQ,OAAQF,IAAK,CAO9B,GANAygH,EAAMgnJ,EAAKznQ,GACNygH,EAAIqM,YAELrM,EAAIqM,UAAY6nJ,IAEpBxvN,EAAIyvN,GAAcn0J,IAAQA,EACtBhR,EAAGiqJ,aAAejqJ,EAAGiqJ,YAAYC,MAAO,CACxC,IAAIkb,EAAWp0J,EAAIl9B,KAAOqyK,GAAanmJ,EAAI,cAAe,KAAOgR,EAAI/9G,MAEjE+9G,EAAIl9B,IADgB,oBAAbsxL,EACG,CACN7tQ,KAAM6tQ,EACNz4N,OAAQy4N,GAIFA,CAElB,CACAp0J,EAAIl9B,IAAMk9B,EAAIl9B,KAAOqyK,GAAanmJ,EAAGjxG,SAAU,aAAciiH,EAAI/9G,MAAM,EAC3E,CAEA,OAAOyiD,CACX,CACA,SAASyvN,GAAcn0J,GACnB,OAAQA,EAAIykH,SAAW,GAAGnmO,OAAO0hH,EAAI/9G,KAAM,KAAK3D,OAAOM,OAAOD,KAAKqhH,EAAIqM,WAAa,CAAC,GAAGzoH,KAAK,KACjG,CACA,SAASowQ,GAASh0J,EAAKjjH,EAAMwvF,EAAO+4K,EAAUmO,GAC1C,IAAI37P,EAAKkoG,EAAIl9B,KAAOk9B,EAAIl9B,IAAI/lF,GAC5B,GAAI+a,EACA,IACIA,EAAGy0E,EAAMt0E,IAAK+nG,EAAKzzB,EAAO+4K,EAAUmO,EACxC,CACA,MAAOnsQ,IACHyzP,GAAYzzP,GAAGilF,EAAMnvF,QAAS,aAAakB,OAAO0hH,EAAI/9G,KAAM,KAAK3D,OAAOvB,EAAM,SAClF,CAER,CAEA,IAAIs3Q,GAAc,CAAC71P,GAAK6jE,IAExB,SAASiyL,GAAYhP,EAAU/4K,GAC3B,IAAI4nH,EAAO5nH,EAAM4+J,iBACjB,KAAItO,EAAM1oC,KAA4C,IAAnCA,EAAKw2C,KAAK3tP,QAAQk0G,iBAGjCk2I,EAAQke,EAASj/P,KAAKM,SAAUygP,EAAQ76J,EAAMlmF,KAAKM,QAAvD,CAGA,IAAI/G,EAAK2gI,EAAK5d,EACV1qG,EAAMs0E,EAAMt0E,IACZs8P,EAAWjP,EAASj/P,KAAKM,OAAS,CAAC,EACnCA,EAAQ4lF,EAAMlmF,KAAKM,OAAS,CAAC,EAKjC,IAAK/G,KAHDi9O,EAAMl2O,EAAM2mP,SAAWjG,EAAO1gP,EAAM6tQ,kBACpC7tQ,EAAQ4lF,EAAMlmF,KAAKM,MAAQi8E,EAAO,CAAC,EAAGj8E,IAE9BA,EACR45H,EAAM55H,EAAM/G,GACZ+iH,EAAM4xJ,EAAS30Q,GACX+iH,IAAQ4d,GACR5jC,GAAQ1kF,EAAKrY,EAAK2gI,EAAKh0C,EAAMlmF,KAAKi2P,KAS1C,IAAK18P,KAHAozB,IAAQi3N,KAAWtjP,EAAMpG,QAAUg0Q,EAASh0Q,OAC7Co8F,GAAQ1kF,EAAK,QAAStR,EAAMpG,OAEpBg0Q,EACJntB,EAAQzgP,EAAM/G,MACV2sQ,GAAQ3sQ,GACRqY,EAAIw8P,kBAAkBnI,GAASE,GAAa5sQ,IAEtCssQ,GAAiBtsQ,IACvBqY,EAAI8kF,gBAAgBn9F,GA5BhC,CAgCJ,CACA,SAAS+8F,GAAQtQ,EAAIzsF,EAAKW,EAAOm0Q,GACzBA,GAAWroL,EAAG0nC,QAAQlzH,QAAQ,MAAQ,EACtC8zQ,GAAYtoL,EAAIzsF,EAAKW,GAEhBozO,GAAc/zO,GAGfysQ,GAAiB9rQ,GACjB8rF,EAAG0Q,gBAAgBn9F,IAKnBW,EAAgB,oBAARX,GAA4C,UAAfysF,EAAG0nC,QAAsB,OAASn0H,EACvEysF,EAAGwQ,aAAaj9F,EAAKW,IAGpB2rQ,GAAiBtsQ,GACtBysF,EAAGwQ,aAAaj9F,EAAKwsQ,GAAuBxsQ,EAAKW,IAE5CgsQ,GAAQ3sQ,GACTysQ,GAAiB9rQ,GACjB8rF,EAAGooL,kBAAkBnI,GAASE,GAAa5sQ,IAG3CysF,EAAGuoL,eAAetI,GAAS1sQ,EAAKW,GAIpCo0Q,GAAYtoL,EAAIzsF,EAAKW,EAE7B,CACA,SAASo0Q,GAAYtoL,EAAIzsF,EAAKW,GAC1B,GAAI8rQ,GAAiB9rQ,GACjB8rF,EAAG0Q,gBAAgBn9F,OAElB,CAKD,GAAIozB,KACCg3N,IACc,aAAf39J,EAAG0nC,SACK,gBAARn0H,GACU,KAAVW,IACC8rF,EAAGwoL,OAAQ,CACZ,IAAIC,EAAY,SAAUxtQ,GACtBA,EAAE46F,2BACF7V,EAAGzS,oBAAoB,QAASk7L,EACpC,EACAzoL,EAAG1S,iBAAiB,QAASm7L,GAE7BzoL,EAAGwoL,QAAS,CAChB,CACAxoL,EAAGwQ,aAAaj9F,EAAKW,EACzB,CACJ,CACA,IAAIoG,GAAQ,CACRuuC,OAAQo/N,GACR34N,OAAQ24N,IAGZ,SAASS,GAAYzP,EAAU/4K,GAC3B,IAAIF,EAAKE,EAAMt0E,IACX5R,EAAOkmF,EAAMlmF,KACb85K,EAAUmlF,EAASj/P,KACvB,KAAI+gP,EAAQ/gP,EAAKu8F,cACbwkJ,EAAQ/gP,EAAKQ,SACZugP,EAAQjnE,IACJinE,EAAQjnE,EAAQv9E,cAAgBwkJ,EAAQjnE,EAAQt5K,SAHzD,CAMA,IAAIjB,EAAM6mQ,GAAiBlgL,GAEvByoL,EAAkB3oL,EAAG4oL,mBACrBp4B,EAAMm4B,KACNpvQ,EAAMtH,GAAOsH,EAAKknQ,GAAekI,KAGjCpvQ,IAAQymF,EAAG6oL,aACX7oL,EAAGwQ,aAAa,QAASj3F,GACzBymF,EAAG6oL,WAAatvQ,EAVpB,CAYJ,CACA,IA8BItG,GA9BA61Q,GAAQ,CACRjgO,OAAQ6/N,GACRp5N,OAAQo5N,IAKRK,GAAc,MACdC,GAAuB,MAM3B,SAASC,GAAgB5nL,GAErB,GAAImvJ,EAAMnvJ,EAAG0nL,KAAe,CAExB,IAAIG,EAAUviP,GAAO,SAAW,QAChC06D,EAAG6nL,GAAW,GAAGj3Q,OAAOovF,EAAG0nL,IAAc1nL,EAAG6nL,IAAY,WACjD7nL,EAAG0nL,GACd,CAIIv4B,EAAMnvJ,EAAG2nL,OACT3nL,EAAG6nD,OAAS,GAAGj3I,OAAOovF,EAAG2nL,IAAuB3nL,EAAG6nD,QAAU,WACtD7nD,EAAG2nL,IAElB,CAEA,SAASvhB,GAAkB/sM,EAAOjrC,EAAS8yB,GACvC,IAAI8xN,EAAUphQ,GACd,OAAO,SAASqhQ,IACZ,IAAIj8M,EAAM5oC,EAAQ1c,MAAM,KAAMI,WAClB,OAARklD,GACAoG,GAAO/D,EAAO45M,EAAa/xN,EAAS8xN,EAE5C,CACJ,CAIA,IAAI8U,GAAkB1Y,MAAsB1S,IAAQlgP,OAAOkgP,GAAK,KAAO,IACvE,SAASxsP,GAAIqE,EAAM6Z,EAAS8yB,EAAS8qC,GAOjC,GAAI87L,GAAiB,CACjB,IAAIC,EAAsBrS,GACtBsS,EAAa55P,EAEjBA,EAAU45P,EAAWC,SAAW,SAAUruQ,GACtC,GAIAA,EAAEhI,SAAWgI,EAAE0qG,eAEX1qG,EAAEi8P,WAAakS,GAIfnuQ,EAAEi8P,WAAa,GAIfj8P,EAAEhI,OAAOw+F,gBAAkBplB,SAC3B,OAAOg9L,EAAWt2Q,MAAM/B,KAAMmC,UAEtC,CACJ,CACAF,GAAOq6E,iBAAiB13E,EAAM6Z,EAASwuO,GAAkB,CAAE17M,QAASA,EAAS8qC,QAASA,GAAY9qC,EACtG,CACA,SAASkc,GAAO7oD,EAAM6Z,EAAS8yB,EAAS8xN,IACnCA,GAAWphQ,IAAQs6E,oBAAoB33E,EAExC6Z,EAAQ65P,UAAY75P,EAAS8yB,EACjC,CACA,SAASgnO,GAAmBtQ,EAAU/4K,GAClC,IAAI66J,EAAQke,EAASj/P,KAAKqnF,MAAO05J,EAAQ76J,EAAMlmF,KAAKqnF,IAApD,CAGA,IAAIA,EAAKnB,EAAMlmF,KAAKqnF,IAAM,CAAC,EACvBmmK,EAAQyR,EAASj/P,KAAKqnF,IAAM,CAAC,EAGjCpuF,GAASitF,EAAMt0E,KAAOqtP,EAASrtP,IAC/Bq9P,GAAgB5nL,GAChB4pD,GAAgB5pD,EAAImmK,EAAOj2P,GAAKktD,GAAQgpM,GAAmBvnK,EAAMnvF,SACjEkC,QAAS8G,CART,CASJ,CACA,IAOIyvQ,GAPAnnO,GAAS,CACTwG,OAAQ0gO,GACRj6N,OAAQi6N,GAERxpJ,QAAS,SAAU7/B,GAAS,OAAOqpL,GAAmBrpL,EAAOoiL,GAAY,GAI7E,SAASmH,GAAexQ,EAAU/4K,GAC9B,IAAI66J,EAAQke,EAASj/P,KAAKy8F,YAAaskJ,EAAQ76J,EAAMlmF,KAAKy8F,UAA1D,CAGA,IAAIljG,EAAK2gI,EACLtoH,EAAMs0E,EAAMt0E,IACZ89P,EAAWzQ,EAASj/P,KAAKy8F,UAAY,CAAC,EACtC38F,EAAQomF,EAAMlmF,KAAKy8F,UAAY,CAAC,EAKpC,IAAKljG,KAHDi9O,EAAM12O,EAAMmnP,SAAWjG,EAAOlhP,EAAMquQ,kBACpCruQ,EAAQomF,EAAMlmF,KAAKy8F,SAAWlgB,EAAO,CAAC,EAAGz8E,IAEjC4vQ,EACFn2Q,KAAOuG,IACT8R,EAAIrY,GAAO,IAGnB,IAAKA,KAAOuG,EAAO,CAKf,GAJAo6H,EAAMp6H,EAAMvG,GAIA,gBAARA,GAAiC,cAARA,EAAqB,CAG9C,GAFI2sF,EAAMjmF,WACNimF,EAAMjmF,SAAS7G,OAAS,GACxB8gI,IAAQw1I,EAASn2Q,GACjB,SAG0B,IAA1BqY,EAAI8+F,WAAWt3G,QACfwY,EAAI2iF,YAAY3iF,EAAI8+F,WAAW,GAEvC,CACA,GAAY,UAARn3G,GAAmC,aAAhBqY,EAAI87G,QAAwB,CAG/C97G,EAAImyI,OAAS7pB,EAEb,IAAIy1I,EAAS5uB,EAAQ7mH,GAAO,GAAKz2H,OAAOy2H,GACpC01I,GAAkBh+P,EAAK+9P,KACvB/9P,EAAI1X,MAAQy1Q,EAEpB,MACK,GAAY,cAARp2Q,GACL0tQ,GAAMr1P,EAAI87G,UACVqzH,EAAQnvO,EAAI8qF,WAAY,CAExB8yK,GAAeA,IAAgBn9L,SAASnuE,cAAc,OACtDsrQ,GAAa9yK,UAAY,QAAQzkG,OAAOiiI,EAAK,UAC7C,IAAI4sI,EAAM0I,GAAa/hE,WACvB,MAAO77L,EAAI67L,WACP77L,EAAI2iF,YAAY3iF,EAAI67L,YAExB,MAAOq5D,EAAIr5D,WACP77L,EAAIuoJ,YAAY2sG,EAAIr5D,WAE5B,MACK,GAKLvzE,IAAQw1I,EAASn2Q,GAGb,IACIqY,EAAIrY,GAAO2gI,CACf,CACA,MAAOj5H,IAAK,CAEpB,CAnEA,CAoEJ,CACA,SAAS2uQ,GAAkBh+P,EAAKi+P,GAC5B,OAECj+P,EAAIytI,YACgB,WAAhBztI,EAAI87G,SACDoiJ,GAAqBl+P,EAAKi+P,IAC1BE,GAAqBn+P,EAAKi+P,GACtC,CACA,SAASC,GAAqBl+P,EAAKi+P,GAG/B,IAAIG,GAAa,EAGjB,IACIA,EAAa39L,SAASsiB,gBAAkB/iF,CAC5C,CACA,MAAO3Q,IAAK,CACZ,OAAO+uQ,GAAcp+P,EAAI1X,QAAU21Q,CACvC,CACA,SAASE,GAAqBn+P,EAAK62M,GAC/B,IAAIvuN,EAAQ0X,EAAI1X,MACZ8rH,EAAYp0G,EAAIq+P,YACpB,GAAIz5B,EAAMxwH,GAAY,CAClB,GAAIA,EAAU72F,OACV,OAAOmyN,EAASpnP,KAAWonP,EAAS74B,GAExC,GAAIziG,EAAU/mH,KACV,OAAO/E,EAAM+E,SAAWwpN,EAAOxpN,MAEvC,CACA,OAAO/E,IAAUuuN,CACrB,CACA,IAAIhsH,GAAW,CACX5tD,OAAQ4gO,GACRn6N,OAAQm6N,IAGRS,GAAiBvuB,GAAO,SAAUlX,GAClC,IAAIpsL,EAAM,CAAC,EACP8xN,EAAgB,gBAChBC,EAAoB,QAOxB,OANA3lC,EAAQntO,MAAM6yQ,GAAe72Q,SAAQ,SAAU48C,GAC3C,GAAIA,EAAM,CACN,IAAIjqB,EAAMiqB,EAAK54C,MAAM8yQ,GACrBnkP,EAAI7yB,OAAS,IAAMilD,EAAIpyB,EAAI,GAAGhtB,QAAUgtB,EAAI,GAAGhtB,OACnD,CACJ,IACOo/C,CACX,IAEA,SAASgyN,GAAmBrwQ,GACxB,IAAIlB,EAAQwxQ,GAAsBtwQ,EAAKlB,OAGvC,OAAOkB,EAAKuwQ,YAAch0L,EAAOv8E,EAAKuwQ,YAAazxQ,GAASA,CAChE,CAEA,SAASwxQ,GAAsBE,GAC3B,OAAIt1Q,MAAMC,QAAQq1Q,GACPnuB,EAASmuB,GAEQ,kBAAjBA,EACAN,GAAeM,GAEnBA,CACX,CAKA,SAASz7K,GAAS7O,EAAOuqL,GACrB,IACIC,EADAryN,EAAM,CAAC,EAEX,GAAIoyN,EAAY,CACZ,IAAIpK,EAAYngL,EAChB,MAAOmgL,EAAUv0B,kBACbu0B,EAAYA,EAAUv0B,kBAAkBiiB,OACpCsS,GACAA,EAAUrmQ,OACT0wQ,EAAYL,GAAmBhK,EAAUrmQ,QAC1Cu8E,EAAOl+B,EAAKqyN,EAGxB,EACKA,EAAYL,GAAmBnqL,EAAMlmF,QACtCu8E,EAAOl+B,EAAKqyN,GAEhB,IAAI/8K,EAAazN,EAEjB,MAAQyN,EAAaA,EAAWx8F,OACxBw8F,EAAW3zF,OAAS0wQ,EAAYL,GAAmB18K,EAAW3zF,QAC9Du8E,EAAOl+B,EAAKqyN,GAGpB,OAAOryN,CACX,CAEA,IA0BIsyN,GA1BAC,GAAW,MACXC,GAAc,iBACdC,GAAU,SAAU9qL,EAAIpqF,EAAMyE,GAE9B,GAAIuwQ,GAAS/0Q,KAAKD,GACdoqF,EAAGlnF,MAAMq4P,YAAYv7P,EAAMyE,QAE1B,GAAIwwQ,GAAYh1Q,KAAKwE,GACtB2lF,EAAGlnF,MAAMq4P,YAAYpV,EAAUnmP,GAAOyE,EAAI3C,QAAQmzQ,GAAa,IAAK,iBAEnE,CACD,IAAIE,EAAiBC,GAAUp1Q,GAC/B,GAAIV,MAAMC,QAAQkF,GAId,IAAK,IAAInH,EAAI,EAAG4C,EAAMuE,EAAIjH,OAAQF,EAAI4C,EAAK5C,IACvC8sF,EAAGlnF,MAAMiyQ,GAAkB1wQ,EAAInH,QAInC8sF,EAAGlnF,MAAMiyQ,GAAkB1wQ,CAEnC,CACJ,EACI4wQ,GAAc,CAAC,SAAU,MAAO,MAEhCD,GAAYrvB,GAAO,SAAUtiP,GAG7B,GAFAsxQ,GAAaA,IAAct+L,SAASnuE,cAAc,OAAOpF,MACzDO,EAAO7B,EAAS6B,GACH,WAATA,GAAqBA,KAAQsxQ,GAC7B,OAAOtxQ,EAGX,IADA,IAAIonN,EAAUpnN,EAAKgwB,OAAO,GAAGxxB,cAAgBwB,EAAK1D,MAAM,GAC/CzC,EAAI,EAAGA,EAAI+3Q,GAAY73Q,OAAQF,IAAK,CACzC,IAAIiiB,EAAS81P,GAAY/3Q,GAAKutN,EAC9B,GAAItrM,KAAUw1P,GACV,OAAOx1P,CAEf,CACJ,IACA,SAAS+1P,GAAYjS,EAAU/4K,GAC3B,IAAIlmF,EAAOkmF,EAAMlmF,KACb85K,EAAUmlF,EAASj/P,KACvB,KAAI+gP,EAAQ/gP,EAAKuwQ,cACbxvB,EAAQ/gP,EAAKlB,QACbiiP,EAAQjnE,EAAQy2F,cAChBxvB,EAAQjnE,EAAQh7K,QAHpB,CAMA,IAAIo7H,EAAKt+H,EACLoqF,EAAKE,EAAMt0E,IACXu/P,EAAiBr3F,EAAQy2F,YACzBa,EAAkBt3F,EAAQu3F,iBAAmBv3F,EAAQh7K,OAAS,CAAC,EAE/DwyQ,EAAWH,GAAkBC,EAC7BtyQ,EAAQwxQ,GAAsBpqL,EAAMlmF,KAAKlB,QAAU,CAAC,EAIxDonF,EAAMlmF,KAAKqxQ,gBAAkB76B,EAAM13O,EAAMmoP,QAAU1qK,EAAO,CAAC,EAAGz9E,GAASA,EACvE,IAAIyyQ,EAAWx8K,GAAS7O,GAAO,GAC/B,IAAKtqF,KAAQ01Q,EACLvwB,EAAQwwB,EAAS31Q,KACjBk1Q,GAAQ9qL,EAAIpqF,EAAM,IAG1B,IAAKA,KAAQ21Q,EACTr3I,EAAMq3I,EAAS31Q,GAEfk1Q,GAAQ9qL,EAAIpqF,EAAa,MAAPs+H,EAAc,GAAKA,EArBzC,CAuBJ,CACA,IAAIp7H,GAAQ,CACR+vC,OAAQqiO,GACR57N,OAAQ47N,IAGRM,GAAe,MAKnB,SAASp7K,GAASpQ,EAAIzmF,GAElB,GAAKA,IAASA,EAAMA,EAAIN,QAIxB,GAAI+mF,EAAGzkF,UACChC,EAAI/E,QAAQ,MAAQ,EACpB+E,EAAIjC,MAAMk0Q,IAAcl4Q,SAAQ,SAAUkG,GAAK,OAAOwmF,EAAGzkF,UAAUhK,IAAIiI,EAAI,IAG3EwmF,EAAGzkF,UAAUhK,IAAIgI,OAGpB,CACD,IAAI26H,EAAM,IAAIjiI,OAAO+tF,EAAG4Q,aAAa,UAAY,GAAI,KACjDsjC,EAAI1/H,QAAQ,IAAM+E,EAAM,KAAO,GAC/BymF,EAAGwQ,aAAa,SAAU0jC,EAAM36H,GAAKN,OAE7C,CACJ,CAKA,SAASo3F,GAAYrQ,EAAIzmF,GAErB,GAAKA,IAASA,EAAMA,EAAIN,QAIxB,GAAI+mF,EAAGzkF,UACChC,EAAI/E,QAAQ,MAAQ,EACpB+E,EAAIjC,MAAMk0Q,IAAcl4Q,SAAQ,SAAUkG,GAAK,OAAOwmF,EAAGzkF,UAAUkjD,OAAOjlD,EAAI,IAG9EwmF,EAAGzkF,UAAUkjD,OAAOllD,GAEnBymF,EAAGzkF,UAAUnI,QACd4sF,EAAG0Q,gBAAgB,aAGtB,CACD,IAAIwjC,EAAM,IAAIjiI,OAAO+tF,EAAG4Q,aAAa,UAAY,GAAI,KACjD66K,EAAM,IAAMlyQ,EAAM,IACtB,MAAO26H,EAAI1/H,QAAQi3Q,IAAQ,EACvBv3I,EAAMA,EAAIx8H,QAAQ+zQ,EAAK,KAE3Bv3I,EAAMA,EAAIj7H,OACNi7H,EACAl0C,EAAGwQ,aAAa,QAAS0jC,GAGzBl0C,EAAG0Q,gBAAgB,QAE3B,CACJ,CAEA,SAASg7K,GAAkBj1L,GACvB,GAAKA,EAAL,CAIA,GAAmB,kBAARA,EAAkB,CACzB,IAAIp+B,EAAM,CAAC,EAKX,OAJgB,IAAZo+B,EAAImhB,KACJrhB,EAAOl+B,EAAKszN,GAAkBl1L,EAAI7gF,MAAQ,MAE9C2gF,EAAOl+B,EAAKo+B,GACLp+B,CACX,CACK,MAAmB,kBAARo+B,EACLk1L,GAAkBl1L,QADxB,CAVL,CAaJ,CACA,IAAIk1L,GAAoBhwB,GAAO,SAAU/lP,GACrC,MAAO,CACHihG,WAAY,GAAG5kG,OAAO2D,EAAM,UAC5BmhG,aAAc,GAAG9kG,OAAO2D,EAAM,aAC9BkhG,iBAAkB,GAAG7kG,OAAO2D,EAAM,iBAClCohG,WAAY,GAAG/kG,OAAO2D,EAAM,UAC5BshG,aAAc,GAAGjlG,OAAO2D,EAAM,aAC9BqhG,iBAAkB,GAAGhlG,OAAO2D,EAAM,iBAE1C,IACIg2Q,GAAgB9qD,KAAc68B,GAC9BkuB,GAAa,aACbC,GAAY,YAEZC,GAAiB,aACjBrnJ,GAAqB,gBACrBsnJ,GAAgB,YAChBC,GAAoB,eACpBL,UAE+B7xQ,IAA3B5D,OAAO+1Q,sBAC0BnyQ,IAAjC5D,OAAOg2Q,wBACPJ,GAAiB,mBACjBrnJ,GAAqB,4BAEK3qH,IAA1B5D,OAAOi2Q,qBACyBryQ,IAAhC5D,OAAOk2Q,uBACPL,GAAgB,kBAChBC,GAAoB,uBAI5B,IAAIK,GAAMxrD,GACJ3qN,OAAO63F,sBACH73F,OAAO63F,sBAAsB9zF,KAAK/D,QAClC6c,WACuB,SAAqCvH,GAAM,OAAOA,GAAM,EACzF,SAAS8gQ,GAAU9gQ,GACf6gQ,IAAI,WAEAA,GAAI7gQ,EACR,GACJ,CACA,SAAS+gQ,GAAmBxsL,EAAIzmF,GAC5B,IAAIkzQ,EAAoBzsL,EAAG4oL,qBAAuB5oL,EAAG4oL,mBAAqB,IACtE6D,EAAkBj4Q,QAAQ+E,GAAO,IACjCkzQ,EAAkB35Q,KAAKyG,GACvB62F,GAASpQ,EAAIzmF,GAErB,CACA,SAASmzQ,GAAsB1sL,EAAIzmF,GAC3BymF,EAAG4oL,oBACHltB,EAAS17J,EAAG4oL,mBAAoBrvQ,GAEpC82F,GAAYrQ,EAAIzmF,EACpB,CACA,SAASozQ,GAAmB3sL,EAAI/vB,EAActvD,GAC1C,IAAIiM,EAAKggQ,GAAkB5sL,EAAI/vB,GAAe3yD,EAAOsP,EAAGtP,KAAM+V,EAAUzG,EAAGyG,QAASw5P,EAAYjgQ,EAAGigQ,UACnG,IAAKvvQ,EACD,OAAOqD,IACX,IAAI+5C,EAAQp9C,IAASuuQ,GAAannJ,GAAqBunJ,GACnDa,EAAQ,EACR3gQ,EAAM,WACN6zE,EAAGzS,oBAAoB7yB,EAAOqyN,GAC9BpsQ,GACJ,EACIosQ,EAAQ,SAAU9xQ,GACdA,EAAEhI,SAAW+sF,KACP8sL,GAASD,GACX1gQ,GAGZ,EACA6G,YAAW,WACH85P,EAAQD,GACR1gQ,GAER,GAAGkH,EAAU,GACb2sE,EAAG1S,iBAAiB5yB,EAAOqyN,EAC/B,CACA,IAAIC,GAAc,yBAClB,SAASJ,GAAkB5sL,EAAI/vB,GAC3B,IAQI3yD,EARA8yH,EAASj6H,OAAO+6F,iBAAiBlR,GAEjCitL,GAAoB78I,EAAO27I,GAAiB,UAAY,IAAIz0Q,MAAM,MAClE41Q,GAAuB98I,EAAO27I,GAAiB,aAAe,IAAIz0Q,MAAM,MACxE61Q,EAAoBC,GAAWH,EAAkBC,GACjDG,GAAmBj9I,EAAO47I,GAAgB,UAAY,IAAI10Q,MAAM,MAChEg2Q,GAAsBl9I,EAAO47I,GAAgB,aAAe,IAAI10Q,MAAM,MACtEi2Q,EAAmBH,GAAWC,EAAiBC,GAE/Cj6P,EAAU,EACVw5P,EAAY,EAEZ58M,IAAiB47M,GACbsB,EAAoB,IACpB7vQ,EAAOuuQ,GACPx4P,EAAU85P,EACVN,EAAYK,EAAoB95Q,QAG/B68D,IAAiB67M,GAClByB,EAAmB,IACnBjwQ,EAAOwuQ,GACPz4P,EAAUk6P,EACVV,EAAYS,EAAmBl6Q,SAInCigB,EAAUnT,KAAKinB,IAAIgmP,EAAmBI,GACtCjwQ,EACI+V,EAAU,EACJ85P,EAAoBI,EAChB1B,GACAC,GACJ,KACVe,EAAYvvQ,EACNA,IAASuuQ,GACLqB,EAAoB95Q,OACpBk6Q,EAAmBl6Q,OACvB,GAEV,IAAIo6Q,EAAelwQ,IAASuuQ,IAAcmB,GAAYn3Q,KAAKu6H,EAAO27I,GAAiB,aACnF,MAAO,CACHzuQ,KAAMA,EACN+V,QAASA,EACTw5P,UAAWA,EACXW,aAAcA,EAEtB,CACA,SAASJ,GAAWK,EAAQC,GAExB,MAAOD,EAAOr6Q,OAASs6Q,EAAUt6Q,OAC7Bq6Q,EAASA,EAAOx7Q,OAAOw7Q,GAE3B,OAAOvtQ,KAAKinB,IAAIp0B,MAAM,KAAM26Q,EAAU30Q,KAAI,SAAU4T,EAAGzZ,GACnD,OAAOy6Q,GAAKhhQ,GAAKghQ,GAAKF,EAAOv6Q,GACjC,IACJ,CAKA,SAASy6Q,GAAK30Q,GACV,OAAkD,IAA3C6E,OAAO7E,EAAErD,MAAM,GAAI,GAAG+B,QAAQ,IAAK,KAC9C,CAEA,SAASyxH,GAAMjpC,EAAO0tL,GAClB,IAAI5tL,EAAKE,EAAMt0E,IAEX4kO,EAAMxwJ,EAAG2mL,YACT3mL,EAAG2mL,SAASlxB,WAAY,EACxBz1J,EAAG2mL,YAEP,IAAI3sQ,EAAO0xQ,GAAkBxrL,EAAMlmF,KAAKypH,YACxC,IAAIs3H,EAAQ/gP,KAIRw2O,EAAMxwJ,EAAG6tL,WAA6B,IAAhB7tL,EAAG4N,SAA7B,CAGA,IAAIgK,EAAM59F,EAAK49F,IAAKt6F,EAAOtD,EAAKsD,KAAMu5F,EAAa78F,EAAK68F,WAAYE,EAAe/8F,EAAK+8F,aAAcD,EAAmB98F,EAAK88F,iBAAkBW,EAAcz9F,EAAKy9F,YAAaE,EAAgB39F,EAAK29F,cAAeD,EAAoB19F,EAAK09F,kBAAmBomE,EAAc9jK,EAAK8jK,YAAa30C,EAAQnvH,EAAKmvH,MAAOC,EAAapvH,EAAKovH,WAAY0kJ,EAAiB9zQ,EAAK8zQ,eAAgBC,EAAe/zQ,EAAK+zQ,aAAc32K,EAASp9F,EAAKo9F,OAAQ42K,EAAch0Q,EAAKg0Q,YAAaC,EAAkBj0Q,EAAKi0Q,gBAAiBz1O,EAAWx+B,EAAKw+B,SAKpgBznC,EAAU4jQ,GACVuZ,EAAiBvZ,GAAe1jQ,OACpC,MAAOi9Q,GAAkBA,EAAe/8Q,OACpCJ,EAAUm9Q,EAAen9Q,QACzBm9Q,EAAiBA,EAAe/8Q,OAEpC,IAAIg9Q,GAAYp9Q,EAAQm1P,aAAehmK,EAAMg/J,aAC7C,IAAIivB,GAAa/2K,GAAqB,KAAXA,EAA3B,CAGA,IAAIg3K,EAAaD,GAAY12K,EAAcA,EAAcZ,EACrDqN,EAAciqK,GAAYz2K,EAAoBA,EAAoBZ,EAClEu3K,EAAUF,GAAYx2K,EAAgBA,EAAgBZ,EACtDu3K,EAAkBH,GAAWJ,GAA8BjwG,EAC3DywG,EAAYJ,GAAYxsQ,EAAWy1F,GAAUA,EAAkB+xB,EAC/DqlJ,EAAiBL,GAAWH,GAA4B5kJ,EACxDqlJ,EAAqBN,GACnBF,GACAH,EACFY,EAAwBpzB,EAAS15O,EAAS42B,GAAYA,EAAS2wF,MAAQ3wF,GACvEngC,EAGJ,IAAIs2Q,GAAqB,IAAR/2K,IAAkB+lJ,GAC/BixB,EAAmBC,GAAuBN,GAC1C5tQ,EAAMq/E,EAAG6tL,SAAW5uJ,GAAK,WACrB0vJ,IACAjC,GAAsB1sL,EAAIquL,GAC1B3B,GAAsB1sL,EAAIkkB,IAG1BvjG,EAAG80O,WACCk5B,GACAjC,GAAsB1sL,EAAIouL,GAE9BK,GAAsBA,EAAmBzuL,IAGzCwuL,GAAkBA,EAAexuL,GAErCA,EAAG6tL,SAAW,IAClB,IACK3tL,EAAMlmF,KAAKo+F,MAEZsvJ,GAAexnK,EAAO,UAAU,WAC5B,IAAI/uF,EAAS6uF,EAAG2N,WACZmhL,EAAc39Q,GAAUA,EAAO+uP,UAAY/uP,EAAO+uP,SAAShgK,EAAM3sF,KACjEu7Q,GACAA,EAAY/zQ,MAAQmlF,EAAMnlF,KAC1B+zQ,EAAYljQ,IAAI+6P,UAChBmI,EAAYljQ,IAAI+6P,WAEpB4H,GAAaA,EAAUvuL,EAAIr/E,EAC/B,IAGJ2tQ,GAAmBA,EAAgBtuL,GAC/B2uL,IACAnC,GAAmBxsL,EAAIouL,GACvB5B,GAAmBxsL,EAAIkkB,GACvBqoK,IAAU,WACNG,GAAsB1sL,EAAIouL,GAErBztQ,EAAG80O,YACJ+2B,GAAmBxsL,EAAIquL,GAClBO,IACGG,GAAgBL,GAChB17P,WAAWrS,EAAI+tQ,GAGf/B,GAAmB3sL,EAAI1iF,EAAMqD,IAI7C,KAEAu/E,EAAMlmF,KAAKo+F,OACXw1K,GAAiBA,IACjBW,GAAaA,EAAUvuL,EAAIr/E,IAE1BguQ,GAAeC,GAChBjuQ,GAxEJ,CAfA,CAyFJ,CACA,SAAS0oH,GAAMnpC,EAAOvvD,GAClB,IAAIqvD,EAAKE,EAAMt0E,IAEX4kO,EAAMxwJ,EAAG6tL,YACT7tL,EAAG6tL,SAASp4B,WAAY,EACxBz1J,EAAG6tL,YAEP,IAAI7zQ,EAAO0xQ,GAAkBxrL,EAAMlmF,KAAKypH,YACxC,GAAIs3H,EAAQ/gP,IAAyB,IAAhBgmF,EAAG4N,SACpB,OAAOj9D,IAGX,IAAI6/M,EAAMxwJ,EAAG2mL,UAAb,CAGA,IAAI/uK,EAAM59F,EAAK49F,IAAKt6F,EAAOtD,EAAKsD,KAAM05F,EAAah9F,EAAKg9F,WAAYE,EAAel9F,EAAKk9F,aAAcD,EAAmBj9F,EAAKi9F,iBAAkB8mE,EAAc/jK,EAAK+jK,YAAa10C,EAAQrvH,EAAKqvH,MAAOC,EAAatvH,EAAKsvH,WAAY0lJ,EAAiBh1Q,EAAKg1Q,eAAgBC,EAAaj1Q,EAAKi1Q,WAAYz2O,EAAWx+B,EAAKw+B,SAClTm2O,GAAqB,IAAR/2K,IAAkB+lJ,GAC/BixB,EAAmBC,GAAuBxlJ,GAC1C6lJ,EAAwB5zB,EAAS15O,EAAS42B,GAAYA,EAAS6wF,MAAQ7wF,GACvEngC,EAGJ,IAAIsI,EAAMq/E,EAAG2mL,SAAW1nJ,GAAK,WACrBj/B,EAAG2N,YAAc3N,EAAG2N,WAAWuyJ,WAC/BlgK,EAAG2N,WAAWuyJ,SAAShgK,EAAM3sF,KAAO,MAEpCo7Q,IACAjC,GAAsB1sL,EAAIkX,GAC1Bw1K,GAAsB1sL,EAAIiX,IAG1Bt2F,EAAG80O,WACCk5B,GACAjC,GAAsB1sL,EAAIgX,GAE9Bg4K,GAAkBA,EAAehvL,KAGjCrvD,IACA24F,GAAcA,EAAWtpC,IAE7BA,EAAG2mL,SAAW,IAClB,IACIsI,EACAA,EAAWE,GAGXA,GAjCJ,CAmCA,SAASA,IAGDxuQ,EAAG80O,aAIFv1J,EAAMlmF,KAAKo+F,MAAQpY,EAAG2N,cACtB3N,EAAG2N,WAAWuyJ,WAAalgK,EAAG2N,WAAWuyJ,SAAW,CAAC,IAAIhgK,EAAM3sF,KAC5D2sF,GAER69E,GAAeA,EAAY/9E,GACvB2uL,IACAnC,GAAmBxsL,EAAIgX,GACvBw1K,GAAmBxsL,EAAIiX,GACvBs1K,IAAU,WACNG,GAAsB1sL,EAAIgX,GAErBr2F,EAAG80O,YACJ+2B,GAAmBxsL,EAAIkX,GAClB03K,IACGG,GAAgBG,GAChBl8P,WAAWrS,EAAIuuQ,GAGfvC,GAAmB3sL,EAAI1iF,EAAMqD,IAI7C,KAEJ0oH,GAASA,EAAMrpC,EAAIr/E,GACdguQ,GAAeC,GAChBjuQ,IAER,CACJ,CAYA,SAASouQ,GAAgB10Q,GACrB,MAAsB,kBAARA,IAAqB09B,MAAM19B,EAC7C,CAOA,SAASw0Q,GAAuBpjQ,GAC5B,GAAIsvO,EAAQtvO,GACR,OAAO,EAGX,IAAI2jQ,EAAa3jQ,EAAG67O,IACpB,OAAI9W,EAAM4+B,GAECP,GAAuB35Q,MAAMC,QAAQi6Q,GAAcA,EAAW,GAAKA,IAIlE3jQ,EAAGywO,SAAWzwO,EAAGrY,QAAU,CAE3C,CACA,SAASi8Q,GAAO7iL,EAAGtM,IACS,IAApBA,EAAMlmF,KAAKo+F,MACX+wB,GAAMjpC,EAEd,CACA,IAAIujC,GAAaq9F,GACX,CACEj4K,OAAQwmO,GACRp7E,SAAUo7E,GACV5wN,OAAQ,SAAUyhC,EAAOvvD,IAEG,IAApBuvD,EAAMlmF,KAAKo+F,KAEXixB,GAAMnpC,EAAOvvD,GAGbA,GAER,GAEF,CAAC,EAEH2+O,GAAkB,CAACh1Q,GAAOwuQ,GAAOzmO,GAAQo0D,GAAU39F,GAAO2qH,IAI1Du/I,GAAUsM,GAAgBr9Q,OAAO+1Q,IACjCuH,GAAQzM,GAAoB,CAAEnB,QAASA,GAASqB,QAASA,KAOzDrlB,IAEAtxK,SAASiB,iBAAiB,mBAAmB,WACzC,IAAI0S,EAAK3T,SAASsiB,cAEd3O,GAAMA,EAAGwvL,QACTx6G,GAAQh1E,EAAI,QAEpB,IAEJ,IAAIpJ,GAAY,CACZ6nF,SAAU,SAAUz+E,EAAIC,EAASC,EAAO+4K,GAClB,WAAd/4K,EAAMnlF,KAEFk+P,EAASrtP,MAAQqtP,EAASrtP,IAAI6jQ,UAC9B/nB,GAAexnK,EAAO,aAAa,WAC/BtJ,GAAUupC,iBAAiBngC,EAAIC,EAASC,EAC5C,IAGAwvL,GAAY1vL,EAAIC,EAASC,EAAMnvF,SAEnCivF,EAAGyvL,UAAY,GAAG12Q,IAAI1H,KAAK2uF,EAAGrvF,QAASg/Q,MAEpB,aAAdzvL,EAAMnlF,KAAsBqmQ,GAAgBphL,EAAG1iF,SACpD0iF,EAAGiqL,YAAchqL,EAAQ+/B,UACpB//B,EAAQ+/B,UAAUihB,OACnBjhD,EAAG1S,iBAAiB,mBAAoBsiM,IACxC5vL,EAAG1S,iBAAiB,iBAAkBuiM,IAKtC7vL,EAAG1S,iBAAiB,SAAUuiM,IAE1BlyB,KACA39J,EAAGwvL,QAAS,IAI5B,EACArvJ,iBAAkB,SAAUngC,EAAIC,EAASC,GACrC,GAAkB,WAAdA,EAAMnlF,IAAkB,CACxB20Q,GAAY1vL,EAAIC,EAASC,EAAMnvF,SAK/B,IAAI++Q,EAAgB9vL,EAAGyvL,UACnBM,EAAgB/vL,EAAGyvL,UAAY,GAAG12Q,IAAI1H,KAAK2uF,EAAGrvF,QAASg/Q,IAC3D,GAAII,EAAax6L,MAAK,SAAUhgF,EAAGrC,GAAK,OAAQouG,EAAW/rG,EAAGu6Q,EAAc58Q,GAAK,IAAI,CAGjF,IAAI88Q,EAAYhwL,EAAGuwD,SACbtwD,EAAQ/rF,MAAMqhF,MAAK,SAAU90E,GAAK,OAAOwvQ,GAAoBxvQ,EAAGsvQ,EAAe,IAC/E9vL,EAAQ/rF,QAAU+rF,EAAQ8hB,UACxBkuK,GAAoBhwL,EAAQ/rF,MAAO67Q,GACvCC,GACAh7G,GAAQh1E,EAAI,SAEpB,CACJ,CACJ,GAEJ,SAAS0vL,GAAY1vL,EAAIC,EAAS0iB,GAC9ButK,GAAoBlwL,EAAIC,EAAS0iB,IAE7Bh8E,IAAQi3N,KACR5qO,YAAW,WACPk9P,GAAoBlwL,EAAIC,EAAS0iB,EACrC,GAAG,EAEX,CACA,SAASutK,GAAoBlwL,EAAIC,EAAS0iB,GACtC,IAAIzuG,EAAQ+rF,EAAQ/rF,MAChBi8Q,EAAanwL,EAAGuwD,SACpB,IAAI4/H,GAAej7Q,MAAMC,QAAQjB,GAAjC,CASA,IADA,IAAI29G,EAAU2zB,EACLtyI,EAAI,EAAG8D,EAAIgpF,EAAGrvF,QAAQyC,OAAQF,EAAI8D,EAAG9D,IAE1C,GADAsyI,EAASxlD,EAAGrvF,QAAQuC,GAChBi9Q,EACAt+J,EAAWy0B,EAAapyI,EAAOy7Q,GAASnqI,KAAY,EAChDA,EAAO3zB,WAAaA,IACpB2zB,EAAO3zB,SAAWA,QAItB,GAAIvQ,EAAWquK,GAASnqI,GAAStxI,GAI7B,YAHI8rF,EAAG27H,gBAAkBzoN,IACrB8sF,EAAG27H,cAAgBzoN,IAM9Bi9Q,IACDnwL,EAAG27H,eAAiB,EApBxB,CAsBJ,CACA,SAASs0D,GAAoB/7Q,EAAOvD,GAChC,OAAOA,EAAQ4jF,OAAM,SAAUh/E,GAAK,OAAQ+rG,EAAW/rG,EAAGrB,EAAQ,GACtE,CACA,SAASy7Q,GAASnqI,GACd,MAAO,WAAYA,EAASA,EAAOuY,OAASvY,EAAOtxI,KACvD,CACA,SAAS07Q,GAAmB30Q,GACxBA,EAAEhI,OAAOomJ,WAAY,CACzB,CACA,SAASw2H,GAAiB50Q,GAEjBA,EAAEhI,OAAOomJ,YAEdp+I,EAAEhI,OAAOomJ,WAAY,EACrB2b,GAAQ/5J,EAAEhI,OAAQ,SACtB,CACA,SAAS+hK,GAAQh1E,EAAI1iF,GACjB,IAAIrC,EAAIoxE,SAAS75B,YAAY,cAC7Bv3C,EAAEw3C,UAAUn1C,GAAM,GAAM,GACxB0iF,EAAGyxH,cAAcx2M,EACrB,CAGA,SAASm1Q,GAAWlwL,GAEhB,OAAOA,EAAM4rJ,mBAAuB5rJ,EAAMlmF,MAASkmF,EAAMlmF,KAAKypH,WAExDvjC,EADAkwL,GAAWlwL,EAAM4rJ,kBAAkBiiB,OAE7C,CACA,IAAI31J,GAAO,CACPl+F,KAAM,SAAU8lF,EAAIpzE,EAAIszE,GACpB,IAAIhsF,EAAQ0Y,EAAG1Y,MACfgsF,EAAQkwL,GAAWlwL,GACnB,IAAIujC,EAAavjC,EAAMlmF,MAAQkmF,EAAMlmF,KAAKypH,WACtC4sJ,EAAmBrwL,EAAGswL,mBACD,SAArBtwL,EAAGlnF,MAAMgyH,QAAqB,GAAK9qC,EAAGlnF,MAAMgyH,QAC5C52H,GAASuvH,GACTvjC,EAAMlmF,KAAKo+F,MAAO,EAClB+wB,GAAMjpC,GAAO,WACTF,EAAGlnF,MAAMgyH,QAAUulJ,CACvB,KAGArwL,EAAGlnF,MAAMgyH,QAAU52H,EAAQm8Q,EAAkB,MAErD,EACA/gO,OAAQ,SAAU0wC,EAAIpzE,EAAIszE,GACtB,IAAIhsF,EAAQ0Y,EAAG1Y,MAAO6tG,EAAWn1F,EAAGm1F,SAEpC,IAAK7tG,KAAW6tG,EAAhB,CAEA7hB,EAAQkwL,GAAWlwL,GACnB,IAAIujC,EAAavjC,EAAMlmF,MAAQkmF,EAAMlmF,KAAKypH,WACtCA,GACAvjC,EAAMlmF,KAAKo+F,MAAO,EACdlkG,EACAi1H,GAAMjpC,GAAO,WACTF,EAAGlnF,MAAMgyH,QAAU9qC,EAAGswL,kBAC1B,IAGAjnJ,GAAMnpC,GAAO,WACTF,EAAGlnF,MAAMgyH,QAAU,MACvB,KAIJ9qC,EAAGlnF,MAAMgyH,QAAU52H,EAAQ8rF,EAAGswL,mBAAqB,MAjB7C,CAmBd,EACAlwJ,OAAQ,SAAUpgC,EAAIC,EAASC,EAAO+4K,EAAUmO,GACvCA,IACDpnL,EAAGlnF,MAAMgyH,QAAU9qC,EAAGswL,mBAE9B,GAGAC,GAAqB,CACrBpnN,MAAOytB,GACPwhB,KAAMA,IAINu+E,GAAkB,CAClB/gL,KAAM6H,OACN25F,OAAQ75F,QACRq6F,IAAKr6F,QACL85F,KAAM55F,OACNH,KAAMG,OACNo5F,WAAYp5F,OACZu5F,WAAYv5F,OACZs5F,aAAct5F,OACdy5F,aAAcz5F,OACdq5F,iBAAkBr5F,OAClBw5F,iBAAkBx5F,OAClBg6F,YAAah6F,OACbi6F,kBAAmBj6F,OACnBk6F,cAAel6F,OACf+6B,SAAU,CAAC36B,OAAQJ,OAAQlL,SAI/B,SAASi+Q,GAAatwL,GAClB,IAAIuwL,EAAcvwL,GAASA,EAAM4+J,iBACjC,OAAI2xB,GAAeA,EAAYnyB,KAAK3tP,QAAQ4N,SACjCiyQ,GAAa7gB,GAAuB8gB,EAAYx2Q,WAGhDimF,CAEf,CACA,SAASwwL,GAAsB/5B,GAC3B,IAAI38O,EAAO,CAAC,EACRrJ,EAAUgmP,EAAKjlP,SAEnB,IAAK,IAAI6B,KAAO5C,EAAQyjK,UACpBp6J,EAAKzG,GAAOojP,EAAKpjP,GAIrB,IAAIgtE,EAAY5vE,EAAQ09P,iBACxB,IAAK,IAAI96P,KAAOgtE,EACZvmE,EAAKxC,EAASjE,IAAQgtE,EAAUhtE,GAEpC,OAAOyG,CACX,CACA,SAASwxI,GAAY15I,EAAG6+Q,GAEpB,GAAI,iBAAiB96Q,KAAK86Q,EAAS51Q,KAC/B,OAAOjJ,EAAE,aAAc,CACnBgI,MAAO62Q,EAAS7xB,iBAAiB1qF,WAG7C,CACA,SAASw8G,GAAoB1wL,GACzB,MAAQA,EAAQA,EAAM/uF,OAClB,GAAI+uF,EAAMlmF,KAAKypH,WACX,OAAO,CAGnB,CACA,SAASotJ,GAAY5gL,EAAO6gL,GACxB,OAAOA,EAASv9Q,MAAQ08F,EAAM18F,KAAOu9Q,EAAS/1Q,MAAQk1F,EAAMl1F,GAChE,CACA,IAAIg2Q,GAAgB,SAAUv3Q,GAAK,OAAOA,EAAEuB,KAAOwkP,GAAmB/lP,EAAI,EACtEw3Q,GAAmB,SAAUrkQ,GAAK,MAAkB,SAAXA,EAAE/W,IAAiB,EAC5Dq7Q,GAAa,CACbr7Q,KAAM,aACNkE,MAAO68K,GACPp4K,UAAU,EACVpO,OAAQ,SAAU2B,GACd,IAAI0b,EAAQxc,KACRiJ,EAAWjJ,KAAKq6F,OAAO7tF,QAC3B,GAAKvD,IAILA,EAAWA,EAASvH,OAAOq+Q,IAEtB92Q,EAAS7G,QAAd,CAIIiF,EAIJ,IAAIg/F,EAAOrmG,KAAKqmG,KAEZh/F,EAGJ,IAAIs4Q,EAAW12Q,EAAS,GAGxB,GAAI22Q,GAAoB5/Q,KAAKC,QACzB,OAAO0/Q,EAIX,IAAI1gL,EAAQugL,GAAaG,GAEzB,IAAK1gL,EACD,OAAO0gL,EAEX,GAAI3/Q,KAAKkgR,SACL,OAAO1lI,GAAY15I,EAAG6+Q,GAK1B,IAAI/mP,EAAK,gBAAgB33B,OAAOjB,KAAKosQ,KAAM,KAC3CntK,EAAM18F,IACW,MAAb08F,EAAM18F,IACA08F,EAAMkvJ,UACFv1N,EAAK,UACLA,EAAKqmE,EAAMl1F,IACfmgP,EAAYjrJ,EAAM18F,KACoB,IAAlCkK,OAAOwyF,EAAM18F,KAAKiB,QAAQo1B,GACtBqmE,EAAM18F,IACNq2B,EAAKqmE,EAAM18F,IACf08F,EAAM18F,IACpB,IAAIyG,GAASi2F,EAAMj2F,OAASi2F,EAAMj2F,KAAO,CAAC,IAAIypH,WAC1CitJ,GAAsB1/Q,MACtBmgR,EAAcngR,KAAK+8P,OACnB+iB,EAAWN,GAAaW,GAM5B,GAHIlhL,EAAMj2F,KAAKg8E,YAAcia,EAAMj2F,KAAKg8E,WAAWT,KAAKy7L,MACpD/gL,EAAMj2F,KAAKo+F,MAAO,GAElB04K,GACAA,EAAS92Q,OACR62Q,GAAY5gL,EAAO6gL,KACnBvxB,GAAmBuxB,MAElBA,EAAShlC,oBACPglC,EAAShlC,kBAAkBiiB,OAAO5O,WAAY,CAGlD,IAAIrrE,EAAWg9F,EAAS92Q,KAAKypH,WAAaltC,EAAO,CAAC,EAAGv8E,GAErD,GAAa,WAATq9F,EAOA,OALArmG,KAAKkgR,UAAW,EAChBxpB,GAAe5zE,EAAS,cAAc,WAClCtmK,EAAM0jQ,UAAW,EACjB1jQ,EAAMolL,cACV,IACOpnD,GAAY15I,EAAG6+Q,GAErB,GAAa,WAATt5K,EAAmB,CACxB,GAAIkoJ,GAAmBtvJ,GACnB,OAAOkhL,EAEX,IAAIC,EACAjC,EAAe,WACfiC,GACJ,EACA1pB,GAAe1tP,EAAM,aAAcm1Q,GACnCznB,GAAe1tP,EAAM,iBAAkBm1Q,GACvCznB,GAAe5zE,EAAS,cAAc,SAAUzqD,GAC5C+nJ,EAAiB/nJ,CACrB,GACJ,CACJ,CACA,OAAOsnJ,CArFP,CAsFJ,GAIA72Q,GAAQy8E,EAAO,CACfx7E,IAAK0C,OACL4zQ,UAAW5zQ,QACZk5K,WACI78K,GAAMu9F,KACb,IAAIi6K,GAAkB,CAClBx3Q,MAAOA,GACPi6J,YAAa,WACT,IAAIvmJ,EAAQxc,KACRs+C,EAASt+C,KAAKgkQ,QAClBhkQ,KAAKgkQ,QAAU,SAAU90K,EAAO+0K,GAC5B,IAAIG,EAAwBR,GAAkBpnP,GAE9CA,EAAM6nP,UAAU7nP,EAAMugP,OAAQvgP,EAAM+jQ,MAAM,GAC1C,GAEA/jQ,EAAMugP,OAASvgP,EAAM+jQ,KACrBnc,IACA9lN,EAAOj+C,KAAKmc,EAAO0yE,EAAO+0K,EAC9B,CACJ,EACA9kQ,OAAQ,SAAU2B,GAOd,IANA,IAAIiJ,EAAM/J,KAAK+J,KAAO/J,KAAKC,OAAO+I,KAAKe,KAAO,OAC1ChC,EAAMxG,OAAOs2C,OAAO,MACpB2oO,EAAgBxgR,KAAKwgR,aAAexgR,KAAKiJ,SACzCw3Q,EAAczgR,KAAKq6F,OAAO7tF,SAAW,GACrCvD,EAAYjJ,KAAKiJ,SAAW,GAC5By3Q,EAAiBhB,GAAsB1/Q,MAClCkC,EAAI,EAAGA,EAAIu+Q,EAAYr+Q,OAAQF,IAAK,CACzC,IAAIsG,EAAIi4Q,EAAYv+Q,GACpB,GAAIsG,EAAEuB,IACF,GAAa,MAATvB,EAAEjG,KAAoD,IAArCkK,OAAOjE,EAAEjG,KAAKiB,QAAQ,WACvCyF,EAASnH,KAAK0G,GACdT,EAAIS,EAAEjG,KAAOiG,GACZA,EAAEQ,OAASR,EAAEQ,KAAO,CAAC,IAAIypH,WAAaiuJ,OAUnD,CACA,GAAIF,EAAc,CACd,IAAID,EAAO,GACPrqM,EAAU,GACd,IAASh0E,EAAI,EAAGA,EAAIs+Q,EAAap+Q,OAAQF,IAAK,CACtCsG,EAAIg4Q,EAAat+Q,GACrBsG,EAAEQ,KAAKypH,WAAaiuJ,EAEpBl4Q,EAAEQ,KAAK23Q,IAAMn4Q,EAAEoS,IAAIolF,wBACfj4F,EAAIS,EAAEjG,KACNg+Q,EAAKz+Q,KAAK0G,GAGV0tE,EAAQp0E,KAAK0G,EAErB,CACAxI,KAAKugR,KAAOz/Q,EAAEiJ,EAAK,KAAMw2Q,GACzBvgR,KAAKk2E,QAAUA,CACnB,CACA,OAAOp1E,EAAEiJ,EAAK,KAAMd,EACxB,EACAywH,QAAS,WACL,IAAIzwH,EAAWjJ,KAAKwgR,aAChBH,EAAYrgR,KAAKqgR,YAAcrgR,KAAK4E,MAAQ,KAAO,QAClDqE,EAAS7G,QAAWpC,KAAK4gR,QAAQ33Q,EAAS,GAAG2R,IAAKylQ,KAKvDp3Q,EAAS3G,QAAQu+Q,IACjB53Q,EAAS3G,QAAQw+Q,IACjB73Q,EAAS3G,QAAQy+Q,IAIjB/gR,KAAKghR,QAAU3lM,SAASloC,KAAKqrD,aAC7Bv1F,EAAS3G,SAAQ,SAAUkG,GACvB,GAAIA,EAAEQ,KAAKi4Q,MAAO,CACd,IAAIC,EAAO14Q,EAAEoS,IACT5S,EAAIk5Q,EAAKp5Q,MACb0zQ,GAAmB0F,EAAMb,GACzBr4Q,EAAE+E,UAAY/E,EAAEm5Q,gBAAkBn5Q,EAAEo5Q,mBAAqB,GACzDF,EAAK5kM,iBAAiBo3C,GAAqBwtJ,EAAKG,QAAU,SAAS1xQ,EAAG1F,GAC9DA,GAAKA,EAAEhI,SAAWi/Q,GAGjBj3Q,IAAK,aAAapF,KAAKoF,EAAEq3Q,gBAC1BJ,EAAK3kM,oBAAoBm3C,GAAoB/jH,GAC7CuxQ,EAAKG,QAAU,KACf3F,GAAsBwF,EAAMb,GAEpC,EACJ,CACJ,IACJ,EACA3lL,QAAS,CACLkmL,QAAS,SAAU5xL,EAAIqxL,GAEnB,IAAKzF,GACD,OAAO,EAGX,GAAI56Q,KAAKuhR,SACL,OAAOvhR,KAAKuhR,SAOhB,IAAI3vP,EAAQo9D,EAAGwyL,YACXxyL,EAAG4oL,oBACH5oL,EAAG4oL,mBAAmBt1Q,SAAQ,SAAUiG,GACpC82F,GAAYztE,EAAOrpB,EACvB,IAEJ62F,GAASxtE,EAAOyuP,GAChBzuP,EAAM9pB,MAAMgyH,QAAU,OACtB95H,KAAK60G,IAAIsuD,YAAYvxI,GACrB,IAAIwzF,EAAOw2J,GAAkBhqP,GAE7B,OADA5xB,KAAK60G,IAAItX,YAAY3rE,GACb5xB,KAAKuhR,SAAWn8J,EAAKo3J,YACjC,IAGR,SAASqE,GAAer4Q,GAEhBA,EAAEoS,IAAIymQ,SACN74Q,EAAEoS,IAAIymQ,UAGN74Q,EAAEoS,IAAIiiQ,UACNr0Q,EAAEoS,IAAIiiQ,UAEd,CACA,SAASiE,GAAet4Q,GACpBA,EAAEQ,KAAKy4Q,OAASj5Q,EAAEoS,IAAIolF,uBAC1B,CACA,SAAS+gL,GAAiBv4Q,GACtB,IAAIk5Q,EAASl5Q,EAAEQ,KAAK23Q,IAChBc,EAASj5Q,EAAEQ,KAAKy4Q,OAChBE,EAAKD,EAAOn3O,KAAOk3O,EAAOl3O,KAC1Bq3O,EAAKF,EAAOnhL,IAAMkhL,EAAOlhL,IAC7B,GAAIohL,GAAMC,EAAI,CACVp5Q,EAAEQ,KAAKi4Q,OAAQ,EACf,IAAIj5Q,EAAIQ,EAAEoS,IAAI9S,MACdE,EAAE+E,UAAY/E,EAAEm5Q,gBAAkB,aAAalgR,OAAO0gR,EAAI,OAAO1gR,OAAO2gR,EAAI,OAC5E55Q,EAAEo5Q,mBAAqB,IAC3B,CACJ,CAEA,IAAIS,GAAqB,CACrB5B,WAAYA,GACZK,gBAAiBA,IAIrB77L,GAAI/jD,OAAO0rN,YAAcA,GACzB3nK,GAAI/jD,OAAOqrN,cAAgBA,GAC3BtnK,GAAI/jD,OAAOsrN,eAAiBA,GAC5BvnK,GAAI/jD,OAAOwrN,gBAAkBA,GAC7BznK,GAAI/jD,OAAOurN,iBAAmBA,GAE9B1mK,EAAOd,GAAI9kF,QAAQqlF,WAAYu6L,IAC/Bh6L,EAAOd,GAAI9kF,QAAQolF,WAAY88L,IAE/Bp9L,GAAIxhF,UAAUohQ,UAAYv0C,GAAYyuD,GAAQvtJ,EAE9CvsC,GAAIxhF,UAAUyrK,OAAS,SAAU1/E,EAAIi1K,GAEjC,OADAj1K,EAAKA,GAAM8gI,GAAYllH,GAAM5b,QAAMjmF,EAC5Bw7P,GAAevkQ,KAAMgvF,EAAIi1K,EACpC,EAGIn0C,IACA9tM,YAAW,WACH0e,EAAOguM,UACHA,IACAA,GAAStqL,KAAK,OAAQqgC,GAiBlC,GAAG,E;;;;;;AChnRP,SAASq9L,EAAYr9L,GACnB,IAAInsD,EAAUzrB,OAAO43E,EAAInsD,QAAQhyB,MAAM,KAAK,IAE5C,GAAIgyB,GAAW,EACbmsD,EAAIyf,MAAM,CAAEljG,aAAc+gR,QACrB,CAGL,IAAI5V,EAAQ1nL,EAAIxhF,UAAUkpQ,MAC1B1nL,EAAIxhF,UAAUkpQ,MAAQ,SAAUxsQ,QACb,IAAZA,IAAqBA,EAAU,CAAC,GAErCA,EAAQwqD,KAAOxqD,EAAQwqD,KACnB,CAAC43N,GAAU9gR,OAAOtB,EAAQwqD,MAC1B43N,EACJ5V,EAAM9rQ,KAAKL,KAAML,EACnB,CACF,CAMA,SAASoiR,IACP,IAAIpiR,EAAUK,KAAKU,SAEff,EAAQqiR,MACVhiR,KAAKiiR,OAAkC,oBAAlBtiR,EAAQqiR,MACzBriR,EAAQqiR,QACRriR,EAAQqiR,MACHriR,EAAQQ,QAAUR,EAAQQ,OAAO8hR,SAC1CjiR,KAAKiiR,OAAStiR,EAAQQ,OAAO8hR,OAEjC,CACF,CAEA,IAAIhgR,EAA2B,qBAAXkD,OAChBA,OACkB,qBAAXC,EAAAA,EACLA,EAAAA,EACA,CAAC,EACH88Q,EAAcjgR,EAAOmrP,6BAEzB,SAAS+0B,EAAeH,GACjBE,IAELF,EAAMI,aAAeF,EAErBA,EAAY99N,KAAK,YAAa49N,GAE9BE,EAAY7xL,GAAG,wBAAwB,SAAUgyL,GAC/CL,EAAM9+B,aAAam/B,EACrB,IAEAL,EAAM/yE,WAAU,SAAU59E,EAAU91F,GAClC2mP,EAAY99N,KAAK,gBAAiBitE,EAAU91F,EAC9C,GAAG,CAAE4iI,SAAS,IAEd6jH,EAAMM,iBAAgB,SAAUhiH,EAAQ/kI,GACtC2mP,EAAY99N,KAAK,cAAek8G,EAAQ/kI,EAC1C,GAAG,CAAE4iI,SAAS,IAChB,CAUA,SAASp7B,EAAMgmB,EAAM56D,GACnB,OAAO46D,EAAKrnJ,OAAOysF,GAAG,EACxB,CAWA,SAASo0L,EAAU1/Q,EAAKk/F,GAItB,QAHe,IAAVA,IAAmBA,EAAQ,IAGpB,OAARl/F,GAA+B,kBAARA,EACzB,OAAOA,EAIT,IAAIw9N,EAAMt9F,EAAKhhC,GAAO,SAAUv5F,GAAK,OAAOA,EAAEunP,WAAaltP,CAAK,IAChE,GAAIw9N,EACF,OAAOA,EAAIrhN,KAGb,IAAIA,EAAO9a,MAAMC,QAAQtB,GAAO,GAAK,CAAC,EAYtC,OATAk/F,EAAMjgG,KAAK,CACTiuP,SAAUltP,EACVmc,KAAMA,IAGRzd,OAAOD,KAAKuB,GAAKP,SAAQ,SAAUC,GACjCyc,EAAKzc,GAAOggR,EAAS1/Q,EAAIN,GAAMw/F,EACjC,IAEO/iF,CACT,CAKA,SAASwjQ,EAAc3/Q,EAAK4X,GAC1BlZ,OAAOD,KAAKuB,GAAKP,SAAQ,SAAUC,GAAO,OAAOkY,EAAG5X,EAAIN,GAAMA,EAAM,GACtE,CAEA,SAASqO,EAAU/N,GACjB,OAAe,OAARA,GAA+B,kBAARA,CAChC,CAEA,SAASy/E,EAAWj5E,GAClB,OAAOA,GAA2B,oBAAbA,EAAI6H,IAC3B,CAMA,SAASqrO,EAAS9hO,EAAIpK,GACpB,OAAO,WACL,OAAOoK,EAAGpK,EACZ,CACF,CAGA,IAAIoyQ,EAAS,SAAiBC,EAAWC,GACvC3iR,KAAK2iR,QAAUA,EAEf3iR,KAAK4iR,UAAYrhR,OAAOs2C,OAAO,MAE/B73C,KAAK6iR,WAAaH,EAClB,IAAII,EAAWJ,EAAUnnP,MAGzBv7B,KAAKu7B,OAA6B,oBAAbunP,EAA0BA,IAAaA,IAAa,CAAC,CAC5E,EAEIt/C,EAAqB,CAAEu/C,WAAY,CAAE5/Q,cAAc,IAEvDqgO,EAAmBu/C,WAAW/wQ,IAAM,WAClC,QAAShS,KAAK6iR,WAAWE,UAC3B,EAEAN,EAAOx/Q,UAAU+/Q,SAAW,SAAmBzgR,EAAKgD,GAClDvF,KAAK4iR,UAAUrgR,GAAOgD,CACxB,EAEAk9Q,EAAOx/Q,UAAUs6F,YAAc,SAAsBh7F,UAC5CvC,KAAK4iR,UAAUrgR,EACxB,EAEAkgR,EAAOx/Q,UAAUggR,SAAW,SAAmB1gR,GAC7C,OAAOvC,KAAK4iR,UAAUrgR,EACxB,EAEAkgR,EAAOx/Q,UAAUigR,SAAW,SAAmB3gR,GAC7C,OAAOA,KAAOvC,KAAK4iR,SACrB,EAEAH,EAAOx/Q,UAAUq7C,OAAS,SAAiBokO,GACzC1iR,KAAK6iR,WAAWE,WAAaL,EAAUK,WACnCL,EAAU1iD,UACZhgO,KAAK6iR,WAAW7iD,QAAU0iD,EAAU1iD,SAElC0iD,EAAUvxJ,YACZnxH,KAAK6iR,WAAW1xJ,UAAYuxJ,EAAUvxJ,WAEpCuxJ,EAAUS,UACZnjR,KAAK6iR,WAAWM,QAAUT,EAAUS,QAExC,EAEAV,EAAOx/Q,UAAUmgR,aAAe,SAAuB3oQ,GACrD+nQ,EAAaxiR,KAAK4iR,UAAWnoQ,EAC/B,EAEAgoQ,EAAOx/Q,UAAUogR,cAAgB,SAAwB5oQ,GACnDza,KAAK6iR,WAAWM,SAClBX,EAAaxiR,KAAK6iR,WAAWM,QAAS1oQ,EAE1C,EAEAgoQ,EAAOx/Q,UAAUqgR,cAAgB,SAAwB7oQ,GACnDza,KAAK6iR,WAAW7iD,SAClBwiD,EAAaxiR,KAAK6iR,WAAW7iD,QAASvlN,EAE1C,EAEAgoQ,EAAOx/Q,UAAUsgR,gBAAkB,SAA0B9oQ,GACvDza,KAAK6iR,WAAW1xJ,WAClBqxJ,EAAaxiR,KAAK6iR,WAAW1xJ,UAAW12G,EAE5C,EAEAlZ,OAAOmB,iBAAkB+/Q,EAAOx/Q,UAAWugO,GAE3C,IAAIggD,EAAmB,SAA2BC,GAEhDzjR,KAAK0jR,SAAS,GAAID,GAAe,EACnC,EA6EA,SAASnlO,EAAQ5/B,EAAMilQ,EAAcC,GASnC,GAHAD,EAAarlO,OAAOslO,GAGhBA,EAAU5R,QACZ,IAAK,IAAIzvQ,KAAOqhR,EAAU5R,QAAS,CACjC,IAAK2R,EAAaV,SAAS1gR,GAOzB,cAEF+7C,EACE5/B,EAAKzd,OAAOsB,GACZohR,EAAaV,SAAS1gR,GACtBqhR,EAAU5R,QAAQzvQ,GAEtB,CAEJ,CAtGAihR,EAAiBvgR,UAAU+O,IAAM,SAAc0M,GAC7C,OAAOA,EAAKxW,QAAO,SAAU3C,EAAQhD,GACnC,OAAOgD,EAAO09Q,SAAS1gR,EACzB,GAAGvC,KAAK2+F,KACV,EAEA6kL,EAAiBvgR,UAAU4gR,aAAe,SAAuBnlQ,GAC/D,IAAInZ,EAASvF,KAAK2+F,KAClB,OAAOjgF,EAAKxW,QAAO,SAAUooQ,EAAW/tQ,GAEtC,OADAgD,EAASA,EAAO09Q,SAAS1gR,GAClB+tQ,GAAa/qQ,EAAOw9Q,WAAaxgR,EAAM,IAAM,GACtD,GAAG,GACL,EAEAihR,EAAiBvgR,UAAUq7C,OAAS,SAAmBmlO,GACrDnlO,EAAO,GAAIt+C,KAAK2+F,KAAM8kL,EACxB,EAEAD,EAAiBvgR,UAAUygR,SAAW,SAAmBhlQ,EAAMgkQ,EAAWC,GACtE,IAAI1hD,EAASjhO,UACI,IAAZ2iR,IAAqBA,GAAU,GAMtC,IAAIiB,EAAY,IAAInB,EAAOC,EAAWC,GACtC,GAAoB,IAAhBjkQ,EAAKtc,OACPpC,KAAK2+F,KAAOilL,MACP,CACL,IAAIzjR,EAASH,KAAKgS,IAAI0M,EAAK/Z,MAAM,GAAI,IACrCxE,EAAO6iR,SAAStkQ,EAAKA,EAAKtc,OAAS,GAAIwhR,EACzC,CAGIlB,EAAU1Q,SACZwQ,EAAaE,EAAU1Q,SAAS,SAAU8R,EAAgBvhR,GACxD0+N,EAAOyiD,SAAShlQ,EAAKzd,OAAOsB,GAAMuhR,EAAgBnB,EACpD,GAEJ,EAEAa,EAAiBvgR,UAAU8gR,WAAa,SAAqBrlQ,GAC3D,IAAIve,EAASH,KAAKgS,IAAI0M,EAAK/Z,MAAM,GAAI,IACjCpC,EAAMmc,EAAKA,EAAKtc,OAAS,GACzB68F,EAAQ9+F,EAAO8iR,SAAS1gR,GAEvB08F,GAUAA,EAAM0jL,SAIXxiR,EAAOo9F,YAAYh7F,EACrB,EAEAihR,EAAiBvgR,UAAU+gR,aAAe,SAAuBtlQ,GAC/D,IAAIve,EAASH,KAAKgS,IAAI0M,EAAK/Z,MAAM,GAAI,IACjCpC,EAAMmc,EAAKA,EAAKtc,OAAS,GAE7B,QAAIjC,GACKA,EAAO+iR,SAAS3gR,EAI3B,EA+BA,IAyCIkiF,EAEJ,IAAIw/L,EAAQ,SAAgBtkR,GAC1B,IAAIshO,EAASjhO,UACI,IAAZL,IAAqBA,EAAU,CAAC,IAKhC8kF,GAAyB,qBAAXt/E,QAA0BA,OAAOs/E,KAClDQ,EAAQ9/E,OAAOs/E,KASjB,IAAI7qC,EAAUj6C,EAAQi6C,aAA0B,IAAZA,IAAqBA,EAAU,IACnE,IAAIyjM,EAAS19O,EAAQ09O,YAAwB,IAAXA,IAAoBA,GAAS,GAG/Dr9O,KAAKkkR,aAAc,EACnBlkR,KAAKmkR,SAAW5iR,OAAOs2C,OAAO,MAC9B73C,KAAKokR,mBAAqB,GAC1BpkR,KAAKqkR,WAAa9iR,OAAOs2C,OAAO,MAChC73C,KAAKskR,gBAAkB/iR,OAAOs2C,OAAO,MACrC73C,KAAKukR,SAAW,IAAIf,EAAiB7jR,GACrCK,KAAKwkR,qBAAuBjjR,OAAOs2C,OAAO,MAC1C73C,KAAKqwM,aAAe,GACpBrwM,KAAKykR,WAAa,IAAIhgM,EACtBzkF,KAAK0kR,uBAAyBnjR,OAAOs2C,OAAO,MAG5C,IAAImqO,EAAQhiR,KACRmhB,EAAMnhB,KACN2kR,EAAWxjQ,EAAIwjQ,SACfC,EAASzjQ,EAAIyjQ,OACjB5kR,KAAK2kR,SAAW,SAAwBr4Q,EAAMi8C,GAC5C,OAAOo8N,EAAStkR,KAAK2hR,EAAO11Q,EAAMi8C,EACpC,EACAvoD,KAAK4kR,OAAS,SAAsBt4Q,EAAMi8C,EAAS5oD,GACjD,OAAOilR,EAAOvkR,KAAK2hR,EAAO11Q,EAAMi8C,EAAS5oD,EAC3C,EAGAK,KAAKq9O,OAASA,EAEd,IAAI9hN,EAAQv7B,KAAKukR,SAAS5lL,KAAKpjE,MAK/BspP,EAAc7kR,KAAMu7B,EAAO,GAAIv7B,KAAKukR,SAAS5lL,MAI7CmmL,EAAa9kR,KAAMu7B,GAGnBqe,EAAQt3C,SAAQ,SAAU02C,GAAU,OAAOA,EAAOioL,EAAS,IAE3D,IAAI8jD,OAAmCh8Q,IAArBpJ,EAAQ+uO,SAAyB/uO,EAAQ+uO,SAAWjqJ,EAAI/jD,OAAOguM,SAC7Eq2C,GACF5C,EAAcniR,KAElB,EAEIglR,EAAuB,CAAEzpP,MAAO,CAAEp4B,cAAc,IAmMpD,SAAS8hR,EAAkBxqQ,EAAIw0O,EAAMtvP,GAMnC,OALIsvP,EAAKzrP,QAAQiX,GAAM,IACrB9a,GAAWA,EAAQw+J,QACf8wF,EAAKnW,QAAQr+N,GACbw0O,EAAKntP,KAAK2Y,IAET,WACL,IAAIvY,EAAI+sP,EAAKzrP,QAAQiX,GACjBvY,GAAK,GACP+sP,EAAKnkN,OAAO5oC,EAAG,EAEnB,CACF,CAEA,SAASgjR,EAAYlD,EAAOmD,GAC1BnD,EAAMmC,SAAW5iR,OAAOs2C,OAAO,MAC/BmqO,EAAMqC,WAAa9iR,OAAOs2C,OAAO,MACjCmqO,EAAMsC,gBAAkB/iR,OAAOs2C,OAAO,MACtCmqO,EAAMwC,qBAAuBjjR,OAAOs2C,OAAO,MAC3C,IAAItc,EAAQymP,EAAMzmP,MAElBspP,EAAc7C,EAAOzmP,EAAO,GAAIymP,EAAMuC,SAAS5lL,MAAM,GAErDmmL,EAAa9C,EAAOzmP,EAAO4pP,EAC7B,CAEA,SAASL,EAAc9C,EAAOzmP,EAAO4pP,GACnC,IAAIC,EAAQpD,EAAMnzG,IAGlBmzG,EAAMmB,QAAU,CAAC,EAEjBnB,EAAM0C,uBAAyBnjR,OAAOs2C,OAAO,MAC7C,IAAIwtO,EAAiBrD,EAAMsC,gBACvB36K,EAAW,CAAC,EAChB64K,EAAa6C,GAAgB,SAAU5qQ,EAAIlY,GAIzConG,EAASpnG,GAAOg6O,EAAQ9hO,EAAIunQ,GAC5BzgR,OAAOoB,eAAeq/Q,EAAMmB,QAAS5gR,EAAK,CACxCyP,IAAK,WAAc,OAAOgwQ,EAAMnzG,IAAItsK,EAAM,EAC1CV,YAAY,GAEhB,IAKA,IAAI6hO,EAASj/I,EAAI/jD,OAAOgjM,OACxBj/I,EAAI/jD,OAAOgjM,QAAS,EACpBs+C,EAAMnzG,IAAM,IAAIpqF,EAAI,CAClBz7E,KAAM,CACJs8Q,QAAS/pP,GAEXouE,SAAUA,IAEZllB,EAAI/jD,OAAOgjM,OAASA,EAGhBs+C,EAAM3kC,QACRkoC,EAAiBvD,GAGfoD,IACED,GAGFnD,EAAMwD,aAAY,WAChBJ,EAAMhuC,MAAMkuC,QAAU,IACxB,IAEF7gM,EAAI6L,UAAS,WAAc,OAAO80L,EAAM9hH,UAAY,IAExD,CAEA,SAASuhH,EAAe7C,EAAOyD,EAAW/mQ,EAAMnZ,EAAQ4/Q,GACtD,IAAI/Z,GAAU1sP,EAAKtc,OACfkuQ,EAAY0R,EAAMuC,SAASV,aAAanlQ,GAW5C,GARInZ,EAAOw9Q,aACLf,EAAMwC,qBAAqBlU,GAG/B0R,EAAMwC,qBAAqBlU,GAAa/qQ,IAIrC6lQ,IAAW+Z,EAAK,CACnB,IAAIO,EAAcC,EAAeF,EAAW/mQ,EAAK/Z,MAAM,GAAI,IACvDihR,EAAalnQ,EAAKA,EAAKtc,OAAS,GACpC4/Q,EAAMwD,aAAY,WAQhB/gM,EAAIvyE,IAAIwzQ,EAAaE,EAAYrgR,EAAOg2B,MAC1C,GACF,CAEA,IAAIq2K,EAAQrsM,EAAOxF,QAAU8lR,EAAiB7D,EAAO1R,EAAW5xP,GAEhEnZ,EAAOg+Q,iBAAgB,SAAUlyJ,EAAU9uH,GACzC,IAAIujR,EAAiBxV,EAAY/tQ,EACjCwjR,EAAiB/D,EAAO8D,EAAgBz0J,EAAUugF,EACpD,IAEArsM,EAAO+9Q,eAAc,SAAUhjH,EAAQ/9J,GACrC,IAAI+J,EAAOg0J,EAAO3hE,KAAOp8F,EAAM+tQ,EAAY/tQ,EACvCkc,EAAU6hJ,EAAO7hJ,SAAW6hJ,EAChC0lH,EAAehE,EAAO11Q,EAAMmS,EAASmzL,EACvC,IAEArsM,EAAO89Q,eAAc,SAAUjmP,EAAQ76B,GACrC,IAAIujR,EAAiBxV,EAAY/tQ,EACjC0jR,EAAejE,EAAO8D,EAAgB1oP,EAAQw0K,EAChD,IAEArsM,EAAO69Q,cAAa,SAAUnkL,EAAO18F,GACnCsiR,EAAc7C,EAAOyD,EAAW/mQ,EAAKzd,OAAOsB,GAAM08F,EAAOkmL,EAC3D,GACF,CAMA,SAASU,EAAkB7D,EAAO1R,EAAW5xP,GAC3C,IAAIwnQ,EAA4B,KAAd5V,EAEd1+D,EAAQ,CACV+yE,SAAUuB,EAAclE,EAAM2C,SAAW,SAAUj/D,EAAOygE,EAAUh1C,GAClE,IAAIn1M,EAAOoqP,EAAiB1gE,EAAOygE,EAAUh1C,GACzC5oL,EAAUvsB,EAAKusB,QACf5oD,EAAUq8B,EAAKr8B,QACf2M,EAAO0vB,EAAK1vB,KAUhB,OARK3M,GAAYA,EAAQg/F,OACvBryF,EAAOgkQ,EAAYhkQ,GAOd01Q,EAAM2C,SAASr4Q,EAAMi8C,EAC9B,EAEAq8N,OAAQsB,EAAclE,EAAM4C,OAAS,SAAUl/D,EAAOygE,EAAUh1C,GAC9D,IAAIn1M,EAAOoqP,EAAiB1gE,EAAOygE,EAAUh1C,GACzC5oL,EAAUvsB,EAAKusB,QACf5oD,EAAUq8B,EAAKr8B,QACf2M,EAAO0vB,EAAK1vB,KAEX3M,GAAYA,EAAQg/F,OACvBryF,EAAOgkQ,EAAYhkQ,GAOrB01Q,EAAM4C,OAAOt4Q,EAAMi8C,EAAS5oD,EAC9B,GAgBF,OAXA4B,OAAOmB,iBAAiBkvM,EAAO,CAC7BuxE,QAAS,CACPnxQ,IAAKk0Q,EACD,WAAc,OAAOlE,EAAMmB,OAAS,EACpC,WAAc,OAAOkD,EAAiBrE,EAAO1R,EAAY,GAE/D/0O,MAAO,CACLvpB,IAAK,WAAc,OAAO2zQ,EAAe3D,EAAMzmP,MAAO7c,EAAO,KAI1DkzL,CACT,CAEA,SAASy0E,EAAkBrE,EAAO1R,GAChC,IAAK0R,EAAM0C,uBAAuBpU,GAAY,CAC5C,IAAIgW,EAAe,CAAC,EAChBC,EAAWjW,EAAUluQ,OACzBb,OAAOD,KAAK0gR,EAAMmB,SAAS7gR,SAAQ,SAAUgK,GAE3C,GAAIA,EAAK3H,MAAM,EAAG4hR,KAAcjW,EAAhC,CAGA,IAAIpnH,EAAY58I,EAAK3H,MAAM4hR,GAK3BhlR,OAAOoB,eAAe2jR,EAAcp9H,EAAW,CAC7Cl3I,IAAK,WAAc,OAAOgwQ,EAAMmB,QAAQ72Q,EAAO,EAC/CzK,YAAY,GAVsC,CAYtD,IACAmgR,EAAM0C,uBAAuBpU,GAAagW,CAC5C,CAEA,OAAOtE,EAAM0C,uBAAuBpU,EACtC,CAEA,SAASyV,EAAkB/D,EAAO11Q,EAAMmS,EAASmzL,GAC/C,IAAIvzL,EAAQ2jQ,EAAMqC,WAAW/3Q,KAAU01Q,EAAMqC,WAAW/3Q,GAAQ,IAChE+R,EAAMvc,MAAK,SAAiCymD,GAC1C9pC,EAAQpe,KAAK2hR,EAAOpwE,EAAMr2K,MAAOgtB,EACnC,GACF,CAEA,SAASy9N,EAAgBhE,EAAO11Q,EAAMmS,EAASmzL,GAC7C,IAAIvzL,EAAQ2jQ,EAAMmC,SAAS73Q,KAAU01Q,EAAMmC,SAAS73Q,GAAQ,IAC5D+R,EAAMvc,MAAK,SAA+BymD,GACxC,IAAIlB,EAAM5oC,EAAQpe,KAAK2hR,EAAO,CAC5B2C,SAAU/yE,EAAM+yE,SAChBC,OAAQhzE,EAAMgzE,OACdzB,QAASvxE,EAAMuxE,QACf5nP,MAAOq2K,EAAMr2K,MACbirP,YAAaxE,EAAMmB,QACnBsC,UAAWzD,EAAMzmP,OAChBgtB,GAIH,OAHK+5B,EAAUj7B,KACbA,EAAMo0B,QAAQn4B,QAAQ+D,IAEpB26N,EAAMI,aACD/6N,EAAIk7B,OAAM,SAAUroE,GAEzB,MADA8nQ,EAAMI,aAAah+N,KAAK,aAAclqC,GAChCA,CACR,IAEOmtC,CAEX,GACF,CAEA,SAAS4+N,EAAgBjE,EAAO11Q,EAAMm6Q,EAAW70E,GAC3CowE,EAAMsC,gBAAgBh4Q,KAM1B01Q,EAAMsC,gBAAgBh4Q,GAAQ,SAAwB01Q,GACpD,OAAOyE,EACL70E,EAAMr2K,MACNq2K,EAAMuxE,QACNnB,EAAMzmP,MACNymP,EAAMmB,QAEV,EACF,CAEA,SAASoC,EAAkBvD,GACzBA,EAAMnzG,IAAIR,QAAO,WAAc,OAAOruK,KAAKo3O,MAAMkuC,OAAQ,IAAG,WACrDj+Q,CAGP,GAAG,CAAEkqB,MAAM,EAAM4tB,MAAM,GACzB,CAEA,SAASwmO,EAAgBpqP,EAAO7c,GAC9B,OAAOA,EAAKxW,QAAO,SAAUqzB,EAAOh5B,GAAO,OAAOg5B,EAAMh5B,EAAM,GAAGg5B,EACnE,CAEA,SAAS6qP,EAAkB95Q,EAAMi8C,EAAS5oD,GAWxC,OAVIiR,EAAStE,IAASA,EAAKA,OACzB3M,EAAU4oD,EACVA,EAAUj8C,EACVA,EAAOA,EAAKA,MAOP,CAAEA,KAAMA,EAAMi8C,QAASA,EAAS5oD,QAASA,EAClD,CAEA,SAASslF,EAASs4I,GACZ94I,GAAO84I,IAAS94I,IAQpBA,EAAM84I,EACNukD,EAAWr9L,GACb,CA1eAugM,EAAqBzpP,MAAMvpB,IAAM,WAC/B,OAAOhS,KAAK6uK,IAAIuoE,MAAMkuC,OACxB,EAEAN,EAAqBzpP,MAAMrpB,IAAM,SAAUzC,GACpCpI,CAGP,EAEA48Q,EAAMhhR,UAAU2hR,OAAS,SAAiBl/D,EAAOygE,EAAUh1C,GACvD,IAAIlQ,EAASjhO,KAGXmhB,EAAMilQ,EAAiB1gE,EAAOygE,EAAUh1C,GACtC7kO,EAAO6U,EAAI7U,KACXi8C,EAAUpnC,EAAIonC,QAGhB8oE,GAFYlwG,EAAIxhB,QAEL,CAAE2M,KAAMA,EAAMi8C,QAASA,IAClClqC,EAAQre,KAAKqkR,WAAW/3Q,GACvB+R,IAMLre,KAAKwlR,aAAY,WACfnnQ,EAAM/b,SAAQ,SAAyBmc,GACrCA,EAAQ8pC,EACV,GACF,IAEAvoD,KAAKqwM,aACF1rM,QACArC,SAAQ,SAAU67N,GAAO,OAAOA,EAAI9sG,EAAU4vG,EAAO1lM,MAAQ,IAWlE,EAEA0oP,EAAMhhR,UAAU0hR,SAAW,SAAmBj/D,EAAOygE,GACjD,IAAIllD,EAASjhO,KAGXmhB,EAAMilQ,EAAiB1gE,EAAOygE,GAC5B75Q,EAAO6U,EAAI7U,KACXi8C,EAAUpnC,EAAIonC,QAEhB+3G,EAAS,CAAEh0J,KAAMA,EAAMi8C,QAASA,GAChClqC,EAAQre,KAAKmkR,SAAS73Q,GAC1B,GAAK+R,EAAL,CAOA,IACEre,KAAKokR,mBACFz/Q,QACAjD,QAAO,SAAUy8N,GAAO,OAAOA,EAAIukC,MAAQ,IAC3CpgQ,SAAQ,SAAU67N,GAAO,OAAOA,EAAIukC,OAAOpiG,EAAQ2gE,EAAO1lM,MAAQ,GACvE,CAAE,MAAOtxB,GACF5C,CAIP,CAEA,IAAIwI,EAASwO,EAAMjc,OAAS,EACxBq5E,QAAQgjE,IAAIpgI,EAAMtW,KAAI,SAAU0W,GAAW,OAAOA,EAAQ8pC,EAAU,KACpElqC,EAAM,GAAGkqC,GAEb,OAAO,IAAIkzB,SAAQ,SAAUn4B,EAASC,GACpC1zC,EAAOqB,MAAK,SAAUm2C,GACpB,IACE45K,EAAOmjD,mBACJ1iR,QAAO,SAAUy8N,GAAO,OAAOA,EAAIuoD,KAAO,IAC1CpkR,SAAQ,SAAU67N,GAAO,OAAOA,EAAIuoD,MAAMpmH,EAAQ2gE,EAAO1lM,MAAQ,GACtE,CAAE,MAAOtxB,GACF5C,CAIP,CACAi8C,EAAQ+D,EACV,IAAG,SAAUh9C,GACX,IACE42N,EAAOmjD,mBACJ1iR,QAAO,SAAUy8N,GAAO,OAAOA,EAAI9zN,KAAO,IAC1C/H,SAAQ,SAAU67N,GAAO,OAAOA,EAAI9zN,MAAMi2J,EAAQ2gE,EAAO1lM,MAAOlxB,EAAQ,GAC7E,CAAE,MAAOJ,GACF5C,CAIP,CACAk8C,EAAOl5C,EACT,GACF,GA5CA,CA6CF,EAEA45Q,EAAMhhR,UAAUgsM,UAAY,SAAoBx0L,EAAI9a,GAClD,OAAOslR,EAAiBxqQ,EAAIza,KAAKqwM,aAAc1wM,EACjD,EAEAskR,EAAMhhR,UAAUq/Q,gBAAkB,SAA0B7nQ,EAAI9a,GAC9D,IAAIsvP,EAAqB,oBAAPx0O,EAAoB,CAAEioP,OAAQjoP,GAAOA,EACvD,OAAOwqQ,EAAiBh2B,EAAMjvP,KAAKokR,mBAAoBzkR,EACzD,EAEAskR,EAAMhhR,UAAU2kG,MAAQ,SAAgBxqE,EAAQztB,EAAIhQ,GAChD,IAAIshO,EAASjhO,KAKf,OAAOA,KAAKykR,WAAWp2G,QAAO,WAAc,OAAOjxI,EAAO6jM,EAAO1lM,MAAO0lM,EAAOkiD,QAAU,GAAGxzQ,EAAIhQ,EAClG,EAEAskR,EAAMhhR,UAAUigP,aAAe,SAAuB3nN,GAClD,IAAI0lM,EAASjhO,KAEfA,KAAKwlR,aAAY,WACfvkD,EAAOpyD,IAAIuoE,MAAMkuC,QAAU/pP,CAC7B,GACF,EAEA0oP,EAAMhhR,UAAU0jR,eAAiB,SAAyBjoQ,EAAMgkQ,EAAW/iR,QACtD,IAAZA,IAAqBA,EAAU,CAAC,GAEnB,kBAAT+e,IAAqBA,EAAO,CAACA,IAOxC1e,KAAKukR,SAASb,SAAShlQ,EAAMgkQ,GAC7BmC,EAAc7kR,KAAMA,KAAKu7B,MAAO7c,EAAM1e,KAAKukR,SAASvyQ,IAAI0M,GAAO/e,EAAQinR,eAEvE9B,EAAa9kR,KAAMA,KAAKu7B,MAC1B,EAEA0oP,EAAMhhR,UAAU4jR,iBAAmB,SAA2BnoQ,GAC1D,IAAIuiN,EAASjhO,KAEK,kBAAT0e,IAAqBA,EAAO,CAACA,IAMxC1e,KAAKukR,SAASR,WAAWrlQ,GACzB1e,KAAKwlR,aAAY,WACf,IAAIE,EAAcC,EAAe1kD,EAAO1lM,MAAO7c,EAAK/Z,MAAM,GAAI,IAC9D8/E,EAAIqoD,OAAO44I,EAAahnQ,EAAKA,EAAKtc,OAAS,GAC7C,IACA8iR,EAAWllR,KACb,EAEAikR,EAAMhhR,UAAU6jR,UAAY,SAAoBpoQ,GAO9C,MANoB,kBAATA,IAAqBA,EAAO,CAACA,IAMjC1e,KAAKukR,SAASP,aAAatlQ,EACpC,EAEAulQ,EAAMhhR,UAAU8jR,UAAY,SAAoBvvC,GAC9Cx3O,KAAKukR,SAASjmO,OAAOk5L,GACrB0tC,EAAWllR,MAAM,EACnB,EAEAikR,EAAMhhR,UAAUuiR,YAAc,SAAsB/qQ,GAClD,IAAIusQ,EAAahnR,KAAKkkR,YACtBlkR,KAAKkkR,aAAc,EACnBzpQ,IACAza,KAAKkkR,YAAc8C,CACrB,EAEAzlR,OAAOmB,iBAAkBuhR,EAAMhhR,UAAW+hR,GAmT1C,IAAIiC,EAAWC,GAAmB,SAAU5W,EAAW6W,GACrD,IAAI9/N,EAAM,CAAC,EA0BX,OAtBA+/N,EAAaD,GAAQ7kR,SAAQ,SAAU6e,GACrC,IAAI5e,EAAM4e,EAAI5e,IACV8G,EAAM8X,EAAI9X,IAEdg+C,EAAI9kD,GAAO,WACT,IAAIg5B,EAAQv7B,KAAKiiR,OAAO1mP,MACpB4nP,EAAUnjR,KAAKiiR,OAAOkB,QAC1B,GAAI7S,EAAW,CACb,IAAI/qQ,EAAS8hR,EAAqBrnR,KAAKiiR,OAAQ,WAAY3R,GAC3D,IAAK/qQ,EACH,OAEFg2B,EAAQh2B,EAAOxF,QAAQw7B,MACvB4nP,EAAU59Q,EAAOxF,QAAQojR,OAC3B,CACA,MAAsB,oBAAR95Q,EACVA,EAAIhJ,KAAKL,KAAMu7B,EAAO4nP,GACtB5nP,EAAMlyB,EACZ,EAEAg+C,EAAI9kD,GAAK+kR,MAAO,CAClB,IACOjgO,CACT,IAQIkgO,EAAeL,GAAmB,SAAU5W,EAAWn/I,GACzD,IAAI9pE,EAAM,CAAC,EA0BX,OAtBA+/N,EAAaj2J,GAAW7uH,SAAQ,SAAU6e,GACxC,IAAI5e,EAAM4e,EAAI5e,IACV8G,EAAM8X,EAAI9X,IAEdg+C,EAAI9kD,GAAO,WACT,IAAIy5B,EAAO,GAAIl3B,EAAM3C,UAAUC,OAC/B,MAAQ0C,IAAQk3B,EAAMl3B,GAAQ3C,UAAW2C,GAGzC,IAAI8/Q,EAAS5kR,KAAKiiR,OAAO2C,OACzB,GAAItU,EAAW,CACb,IAAI/qQ,EAAS8hR,EAAqBrnR,KAAKiiR,OAAQ,eAAgB3R,GAC/D,IAAK/qQ,EACH,OAEFq/Q,EAASr/Q,EAAOxF,QAAQ6kR,MAC1B,CACA,MAAsB,oBAARv7Q,EACVA,EAAItH,MAAM/B,KAAM,CAAC4kR,GAAQ3jR,OAAO+6B,IAChC4oP,EAAO7iR,MAAM/B,KAAKiiR,OAAQ,CAAC54Q,GAAKpI,OAAO+6B,GAC7C,CACF,IACOqrB,CACT,IAQImgO,EAAaN,GAAmB,SAAU5W,EAAW6S,GACvD,IAAI97N,EAAM,CAAC,EAuBX,OAnBA+/N,EAAajE,GAAS7gR,SAAQ,SAAU6e,GACtC,IAAI5e,EAAM4e,EAAI5e,IACV8G,EAAM8X,EAAI9X,IAGdA,EAAMinQ,EAAYjnQ,EAClBg+C,EAAI9kD,GAAO,WACT,IAAI+tQ,GAAc+W,EAAqBrnR,KAAKiiR,OAAQ,aAAc3R,GAOlE,OAAOtwQ,KAAKiiR,OAAOkB,QAAQ95Q,EAC7B,EAEAg+C,EAAI9kD,GAAK+kR,MAAO,CAClB,IACOjgO,CACT,IAQIogO,EAAaP,GAAmB,SAAU5W,EAAWtwC,GACvD,IAAI34K,EAAM,CAAC,EA0BX,OAtBA+/N,EAAapnD,GAAS19N,SAAQ,SAAU6e,GACtC,IAAI5e,EAAM4e,EAAI5e,IACV8G,EAAM8X,EAAI9X,IAEdg+C,EAAI9kD,GAAO,WACT,IAAIy5B,EAAO,GAAIl3B,EAAM3C,UAAUC,OAC/B,MAAQ0C,IAAQk3B,EAAMl3B,GAAQ3C,UAAW2C,GAGzC,IAAI6/Q,EAAW3kR,KAAKiiR,OAAO0C,SAC3B,GAAIrU,EAAW,CACb,IAAI/qQ,EAAS8hR,EAAqBrnR,KAAKiiR,OAAQ,aAAc3R,GAC7D,IAAK/qQ,EACH,OAEFo/Q,EAAWp/Q,EAAOxF,QAAQ4kR,QAC5B,CACA,MAAsB,oBAARt7Q,EACVA,EAAItH,MAAM/B,KAAM,CAAC2kR,GAAU1jR,OAAO+6B,IAClC2oP,EAAS5iR,MAAM/B,KAAKiiR,OAAQ,CAAC54Q,GAAKpI,OAAO+6B,GAC/C,CACF,IACOqrB,CACT,IAOIqgO,EAA0B,SAAUpX,GAAa,MAAQ,CAC3D2W,SAAUA,EAAS/9Q,KAAK,KAAMonQ,GAC9BkX,WAAYA,EAAWt+Q,KAAK,KAAMonQ,GAClCiX,aAAcA,EAAar+Q,KAAK,KAAMonQ,GACtCmX,WAAYA,EAAWv+Q,KAAK,KAAMonQ,GAChC,EASJ,SAAS8W,EAAcr/Q,GACrB,OAAK4/Q,EAAW5/Q,GAGT7D,MAAMC,QAAQ4D,GACjBA,EAAIA,KAAI,SAAUxF,GAAO,MAAQ,CAAEA,IAAKA,EAAK8G,IAAK9G,EAAQ,IAC1DhB,OAAOD,KAAKyG,GAAKA,KAAI,SAAUxF,GAAO,MAAQ,CAAEA,IAAKA,EAAK8G,IAAKtB,EAAIxF,GAAS,IAJvE,EAKX,CAOA,SAASolR,EAAY5/Q,GACnB,OAAO7D,MAAMC,QAAQ4D,IAAQ6I,EAAS7I,EACxC,CAOA,SAASm/Q,EAAoBzsQ,GAC3B,OAAO,SAAU61P,EAAWvoQ,GAO1B,MANyB,kBAAduoQ,GACTvoQ,EAAMuoQ,EACNA,EAAY,IACwC,MAA3CA,EAAUj4O,OAAOi4O,EAAUluQ,OAAS,KAC7CkuQ,GAAa,KAER71P,EAAG61P,EAAWvoQ,EACvB,CACF,CASA,SAASs/Q,EAAsBrF,EAAO4F,EAAQtX,GAC5C,IAAI/qQ,EAASy8Q,EAAMwC,qBAAqBlU,GAIxC,OAAO/qQ,CACT,CAIA,SAASsiR,EAAc1mQ,QACR,IAARA,IAAiBA,EAAM,CAAC,GAC7B,IAAI2mQ,EAAY3mQ,EAAI2mQ,eAA8B,IAAdA,IAAuBA,GAAY,GACvE,IAAIpmR,EAASyf,EAAIzf,YAAwB,IAAXA,IAAoBA,EAAS,SAAU2vH,EAAU02J,EAAaC,GAAc,OAAO,CAAM,GACvH,IAAIC,EAAc9mQ,EAAI8mQ,iBAAkC,IAAhBA,IAAyBA,EAAc,SAAU1sP,GAAS,OAAOA,CAAO,GAChH,IAAI2sP,EAAsB/mQ,EAAI+mQ,yBAAkD,IAAxBA,IAAiCA,EAAsB,SAAUC,GAAO,OAAOA,CAAK,GAC5I,IAAIC,EAAejnQ,EAAIinQ,kBAAoC,IAAjBA,IAA0BA,EAAe,SAAU9nH,EAAQ/kI,GAAS,OAAO,CAAM,GAC3H,IAAI8sP,EAAoBlnQ,EAAIknQ,uBAA8C,IAAtBA,IAA+BA,EAAoB,SAAUzrP,GAAO,OAAOA,CAAK,GACpI,IAAI0rP,EAAennQ,EAAImnQ,kBAAoC,IAAjBA,IAA0BA,GAAe,GACnF,IAAIC,EAAapnQ,EAAIonQ,gBAAgC,IAAfA,IAAwBA,GAAa,GAC3E,IAAI1sP,EAAS1a,EAAI0a,OAEjB,YAFyC,IAAXA,IAAoBA,EAASzxB,SAEpD,SAAU43Q,GACf,IAAIwG,EAAYjG,EAASP,EAAMzmP,OAET,qBAAXM,IAIPysP,GACFtG,EAAM/yE,WAAU,SAAU59E,EAAU91F,GAClC,IAAIktP,EAAYlG,EAAShnP,GAEzB,GAAI75B,EAAO2vH,EAAUm3J,EAAWC,GAAY,CAC1C,IAAIC,EAAgBC,IAChBC,EAAoBV,EAAoB72J,GACxC/9G,EAAU,YAAe+9G,EAAS/kH,KAAQo8Q,EAE9CG,EAAahtP,EAAQvoB,EAASw0Q,GAC9BjsP,EAAO3xB,IAAI,gBAAiB,oCAAqC+9Q,EAAYO,IAC7E3sP,EAAO3xB,IAAI,cAAe,oCAAqC0+Q,GAC/D/sP,EAAO3xB,IAAI,gBAAiB,oCAAqC+9Q,EAAYQ,IAC7EK,EAAWjtP,EACb,CAEA2sP,EAAYC,CACd,IAGEF,GACFvG,EAAMM,iBAAgB,SAAUhiH,EAAQ/kI,GACtC,GAAI6sP,EAAa9nH,EAAQ/kI,GAAQ,CAC/B,IAAImtP,EAAgBC,IAChBI,EAAkBV,EAAkB/nH,GACpChtJ,EAAU,UAAagtJ,EAAOh0J,KAAQo8Q,EAE1CG,EAAahtP,EAAQvoB,EAASw0Q,GAC9BjsP,EAAO3xB,IAAI,YAAa,oCAAqC6+Q,GAC7DD,EAAWjtP,EACb,CACF,IAEJ,CACF,CAEA,SAASgtP,EAAchtP,EAAQvoB,EAASw0Q,GACtC,IAAIe,EAAef,EACfjsP,EAAOmtP,eACPntP,EAAOwgN,MAGX,IACEwsC,EAAaxoR,KAAKw7B,EAAQvoB,EAC5B,CAAE,MAAOrJ,GACP4xB,EAAO3xB,IAAIoJ,EACb,CACF,CAEA,SAASw1Q,EAAYjtP,GACnB,IACEA,EAAOotP,UACT,CAAE,MAAOh/Q,GACP4xB,EAAO3xB,IAAI,gBACb,CACF,CAEA,SAASy+Q,IACP,IAAIj1N,EAAO,IAAI92C,KACf,MAAQ,MAASs5L,EAAIxiJ,EAAK2pG,WAAY,GAAM,IAAO64C,EAAIxiJ,EAAK4pG,aAAc,GAAM,IAAO44C,EAAIxiJ,EAAK6pG,aAAc,GAAM,IAAO24C,EAAIxiJ,EAAKiqJ,kBAAmB,EACzJ,CAEA,SAAS6+B,EAAQlhJ,EAAK4tL,GACpB,OAAQ,IAAIhlR,MAAMglR,EAAQ,GAAI3iR,KAAK+0F,EACrC,CAEA,SAAS46G,EAAK7vK,EAAKpO,GACjB,OAAOukN,EAAO,IAAKvkN,EAAYoO,EAAI3hC,WAAWtC,QAAUikC,CAC1D,CAEA,IAAI4N,EAAQ,CACVgwO,MAAOA,EACPh/L,QAASA,EACT3sD,QAAS,QACT2uP,SAAUA,EACVM,aAAcA,EACdC,WAAYA,EACZC,WAAYA,EACZC,wBAAyBA,EACzBG,aAAcA,GAGhB,M,oCCxtCA,IAAIsB,EAAa,EAAQ,MACrBC,EAAc,EAAQ,MAEtBC,EAAarkR,UAGjBO,EAAOrE,QAAU,SAAUooR,GACzB,GAAIH,EAAWG,GAAW,OAAOA,EACjC,MAAM,IAAID,EAAWD,EAAYE,GAAY,qBAC/C,C,oCCTA,IAAIC,EAAsB,EAAQ,MAE9BC,EAAU/8Q,OACV48Q,EAAarkR,UAEjBO,EAAOrE,QAAU,SAAUooR,GACzB,GAAIC,EAAoBD,GAAW,OAAOA,EAC1C,MAAM,IAAID,EAAW,aAAeG,EAAQF,GAAY,kBAC1D,C,oCCRA,IAAI7oM,EAAM,YAGVl7E,EAAOrE,QAAU,SAAUipO,GAEzB,OADA1pJ,EAAI0pJ,GACGA,CACT,C,mCCNA,IAAIs/C,EAAgB,EAAQ,MAExBJ,EAAarkR,UAEjBO,EAAOrE,QAAU,SAAUipO,EAAI3nN,GAC7B,GAAIinQ,EAAcjnQ,EAAW2nN,GAAK,OAAOA,EACzC,MAAM,IAAIk/C,EAAW,uBACvB,C,oCCPA,IAAIz4Q,EAAW,EAAQ,IAEnB44Q,EAAU/8Q,OACV48Q,EAAarkR,UAGjBO,EAAOrE,QAAU,SAAUooR,GACzB,GAAI14Q,EAAS04Q,GAAW,OAAOA,EAC/B,MAAM,IAAID,EAAWG,EAAQF,GAAY,oBAC3C,C,gCCRA/jR,EAAOrE,QAAgC,oBAAfwoR,aAAiD,oBAAZC,Q,oCCD7D,IAAIzkR,EAAa,EAAQ,MACrB0kR,EAAsB,EAAQ,MAC9BC,EAAU,EAAQ,MAElBH,EAAcxkR,EAAWwkR,YACzB1kR,EAAYE,EAAWF,UAK3BO,EAAOrE,QAAUwoR,GAAeE,EAAoBF,EAAYzmR,UAAW,aAAc,QAAU,SAAUsxN,GAC3G,GAAmB,gBAAfs1D,EAAQt1D,GAAsB,MAAM,IAAIvvN,EAAU,wBACtD,OAAOuvN,EAAEu1D,UACX,C,oCCbA,IAAI5kR,EAAa,EAAQ,MACrB6kR,EAAc,EAAQ,MACtBC,EAAwB,EAAQ,MAEhCN,EAAcxkR,EAAWwkR,YACzBO,EAAuBP,GAAeA,EAAYzmR,UAClD0B,EAAQslR,GAAwBF,EAAYE,EAAqBtlR,OAErEY,EAAOrE,QAAU,SAAUqzN,GACzB,GAAiC,IAA7By1D,EAAsBz1D,GAAU,OAAO,EAC3C,IAAK5vN,EAAO,OAAO,EACnB,IAEE,OADAA,EAAM4vN,EAAG,EAAG,IACL,CACT,CAAE,MAAOlqN,GACP,OAAO,CACT,CACF,C,oCCjBA,IAAI6/Q,EAAa,EAAQ,MAErBb,EAAarkR,UAEjBO,EAAOrE,QAAU,SAAUipO,GACzB,GAAI+/C,EAAW//C,GAAK,MAAM,IAAIk/C,EAAW,2BACzC,OAAOl/C,CACT,C,oCCPA,IAAIjlO,EAAa,EAAQ,MACrB6kR,EAAc,EAAQ,MACtBH,EAAsB,EAAQ,MAC9BO,EAAU,EAAQ,MAClBC,EAAc,EAAQ,MACtBJ,EAAwB,EAAQ,MAChCK,EAAqB,EAAQ,MAC7BC,EAAmC,EAAQ,MAE3CC,EAAkBrlR,EAAWqlR,gBAC7Bb,EAAcxkR,EAAWwkR,YACzBC,EAAWzkR,EAAWykR,SACtBxiP,EAAMj4B,KAAKi4B,IACX8iP,EAAuBP,EAAYzmR,UACnCunR,EAAoBb,EAAS1mR,UAC7B0B,EAAQolR,EAAYE,EAAqBtlR,OACzC8lR,EAAcb,EAAoBK,EAAsB,YAAa,OACrES,EAAgBd,EAAoBK,EAAsB,gBAAiB,OAC3EU,EAAUZ,EAAYS,EAAkBG,SACxCC,EAAUb,EAAYS,EAAkBI,SAE5CrlR,EAAOrE,SAAWopR,GAAoCD,IAAuB,SAAUQ,EAAaC,EAAWC,GAC7G,IAGIxuN,EAHAutN,EAAaE,EAAsBa,GACnCG,OAA8BjiR,IAAd+hR,EAA0BhB,EAAaK,EAAQW,GAC/DG,GAAeR,IAAgBA,EAAYI,GAG/C,GADAT,EAAYS,GACRP,IACFO,EAAcN,EAAgBM,EAAa,CAAEK,SAAU,CAACL,KACpDf,IAAekB,IAAkBD,GAAwBE,IAAc,OAAOJ,EAEpF,GAAIf,GAAckB,KAAmBD,GAAwBE,GAC3D1uN,EAAY53D,EAAMkmR,EAAa,EAAGG,OAC7B,CACL,IAAIrrR,EAAUorR,IAAyBE,GAAeP,EAAgB,CAAEA,cAAeA,EAAcG,SAAiB9hR,EACtHwzD,EAAY,IAAImtN,EAAYsB,EAAerrR,GAI3C,IAHA,IAAIkhF,EAAI,IAAI8oM,EAASkB,GACjB/yQ,EAAI,IAAI6xQ,EAASptN,GACjB4uN,EAAahkP,EAAI6jP,EAAelB,GAC3B5nR,EAAI,EAAGA,EAAIipR,EAAYjpR,IAAK0oR,EAAQ9yQ,EAAG5V,EAAGyoR,EAAQ9pM,EAAG3+E,GAChE,CAEA,OADKooR,GAAkCD,EAAmBQ,GACnDtuN,CACT,C,oCC3CA,IAmCI7tD,EAAM6T,EAAaC,EAnCnB4oQ,EAAsB,EAAQ,MAC9BC,EAAc,EAAQ,MACtBnmR,EAAa,EAAQ,MACrBikR,EAAa,EAAQ,MACrBv4Q,EAAW,EAAQ,IACnB6nN,EAAS,EAAQ,MACjBoxD,EAAU,EAAQ,MAClBT,EAAc,EAAQ,MACtBkC,EAA8B,EAAQ,MACtCC,EAAgB,EAAQ,MACxBC,EAAwB,EAAQ,MAChC/B,EAAgB,EAAQ,MACxBvoM,EAAiB,EAAQ,MACzBD,EAAiB,EAAQ,MACzBwqM,EAAkB,EAAQ,MAC1BhtP,EAAM,EAAQ,MACditP,EAAsB,EAAQ,MAE9BC,EAAuBD,EAAoBE,QAC3CC,EAAmBH,EAAoB15Q,IACvC85Q,EAAY5mR,EAAW4mR,UACvBC,EAAqBD,GAAaA,EAAU7oR,UAC5CuqM,EAAoBtoM,EAAWsoM,kBAC/Bw+E,EAA6Bx+E,GAAqBA,EAAkBvqM,UACpEgpR,EAAaH,GAAa5qM,EAAe4qM,GACzCI,EAAsBH,GAAsB7qM,EAAe6qM,GAC3DI,EAAkB5qR,OAAO0B,UACzB+B,EAAYE,EAAWF,UAEvBonR,EAAgBX,EAAgB,eAChCY,EAAkB5tP,EAAI,mBACtB6tP,EAA0B,wBAE1BC,EAA4BnB,KAAyBnqM,GAAgD,UAA9B4oM,EAAQ3kR,EAAWsnR,OAC1FC,GAA2B,EAG3BC,EAA6B,CAC/BZ,UAAW,EACXa,WAAY,EACZn/E,kBAAmB,EACnBo/E,WAAY,EACZC,YAAa,EACbC,WAAY,EACZj1P,YAAa,EACbk1P,aAAc,EACdC,aAAc,GAGZC,EAA8B,CAChCC,cAAe,EACfC,eAAgB,GAGdC,EAAS,SAAgBjjD,GAC3B,IAAKv5N,EAASu5N,GAAK,OAAO,EAC1B,IAAI2tC,EAAQ+R,EAAQ1/C,GACpB,MAAiB,aAAV2tC,GACFr/C,EAAOi0D,EAA4B5U,IACnCr/C,EAAOw0D,EAA6BnV,EAC3C,EAEIuV,EAA2B,SAAUljD,GACvC,IAAIzuN,EAAQwlE,EAAeipJ,GAC3B,GAAKv5N,EAAS8K,GAAd,CACA,IAAI6f,EAAQswP,EAAiBnwQ,GAC7B,OAAQ6f,GAASk9L,EAAOl9L,EAAO+wP,GAA4B/wP,EAAM+wP,GAA2Be,EAAyB3xQ,EAFzF,CAG9B,EAEI4xQ,EAAe,SAAUnjD,GAC3B,IAAKv5N,EAASu5N,GAAK,OAAO,EAC1B,IAAI2tC,EAAQ+R,EAAQ1/C,GACpB,OAAO1R,EAAOi0D,EAA4B5U,IACrCr/C,EAAOw0D,EAA6BnV,EAC3C,EAEIyV,EAAc,SAAUpjD,GAC1B,GAAImjD,EAAanjD,GAAK,OAAOA,EAC7B,MAAM,IAAInlO,EAAU,8BACtB,EAEIwoR,EAAyB,SAAU93D,GACrC,GAAIyzD,EAAWzzD,MAAQz0I,GAAkBwoM,EAAcwC,EAAYv2D,IAAK,OAAOA,EAC/E,MAAM,IAAI1wN,EAAUokR,EAAY1zD,GAAK,oCACvC,EAEI+3D,EAAyB,SAAUC,EAAK34P,EAAU44P,EAAQhuR,GAC5D,GAAK0rR,EAAL,CACA,GAAIsC,EAAQ,IAAK,IAAIC,KAASlB,EAA4B,CACxD,IAAImB,EAAwB3oR,EAAW0oR,GACvC,GAAIC,GAAyBp1D,EAAOo1D,EAAsB5qR,UAAWyqR,GAAM,WAClEG,EAAsB5qR,UAAUyqR,EACzC,CAAE,MAAOrjR,GAEP,IACEwjR,EAAsB5qR,UAAUyqR,GAAO34P,CACzC,CAAE,MAAO+4P,GAAsB,CACjC,CACF,CACK5B,EAAoBwB,KAAQC,GAC/BpC,EAAcW,EAAqBwB,EAAKC,EAAS54P,EAC7Cw3P,GAA6BR,EAAmB2B,IAAQ34P,EAAUp1B,EAdhD,CAgB1B,EAEIouR,EAA+B,SAAUL,EAAK34P,EAAU44P,GAC1D,IAAIC,EAAOC,EACX,GAAKxC,EAAL,CACA,GAAIpqM,EAAgB,CAClB,GAAI0sM,EAAQ,IAAKC,KAASlB,EAExB,GADAmB,EAAwB3oR,EAAW0oR,GAC/BC,GAAyBp1D,EAAOo1D,EAAuBH,GAAM,WACxDG,EAAsBH,EAC/B,CAAE,MAAOrjR,GAAqB,CAEhC,GAAK4hR,EAAWyB,KAAQC,EAKjB,OAHL,IACE,OAAOpC,EAAcU,EAAYyB,EAAKC,EAAS54P,EAAWw3P,GAA6BN,EAAWyB,IAAQ34P,EAC5G,CAAE,MAAO1qB,GAAqB,CAElC,CACA,IAAKujR,KAASlB,EACZmB,EAAwB3oR,EAAW0oR,IAC/BC,GAA2BA,EAAsBH,KAAQC,GAC3DpC,EAAcsC,EAAuBH,EAAK34P,EAlBtB,CAqB1B,EAEA,IAAKrmB,KAAQg+Q,EACXnqQ,EAAcrd,EAAWwJ,GACzB8T,EAAYD,GAAeA,EAAYtf,UACnCuf,EAAWmpQ,EAAqBnpQ,GAAW8pQ,GAA2B/pQ,EACrEgqQ,GAA4B,EAGnC,IAAK79Q,KAAQu+Q,EACX1qQ,EAAcrd,EAAWwJ,GACzB8T,EAAYD,GAAeA,EAAYtf,UACnCuf,IAAWmpQ,EAAqBnpQ,GAAW8pQ,GAA2B/pQ,GAI5E,KAAKgqQ,IAA8BpD,EAAW8C,IAAeA,IAAezuQ,SAASva,aAEnFgpR,EAAa,WACX,MAAM,IAAIjnR,EAAU,uBACtB,EACIunR,GAA2B,IAAK79Q,KAAQg+Q,EACtCxnR,EAAWwJ,IAAOuyE,EAAe/7E,EAAWwJ,GAAOu9Q,GAI3D,KAAKM,IAA8BL,GAAuBA,IAAwBC,KAChFD,EAAsBD,EAAWhpR,UAC7BspR,GAA2B,IAAK79Q,KAAQg+Q,EACtCxnR,EAAWwJ,IAAOuyE,EAAe/7E,EAAWwJ,GAAMzL,UAAWipR,GASrE,GAJIK,GAA6BrrM,EAAe8qM,KAAgCE,GAC9EjrM,EAAe+qM,EAA4BE,GAGzCb,IAAgB5yD,EAAOyzD,EAAqBE,GAQ9C,IAAK19Q,KAPL+9Q,GAA2B,EAC3BjB,EAAsBU,EAAqBE,EAAe,CACxDjpR,cAAc,EACd6O,IAAK,WACH,OAAOpB,EAAS5Q,MAAQA,KAAKqsR,QAAmBtjR,CAClD,IAEW2jR,EAAgCxnR,EAAWwJ,IACtD48Q,EAA4BpmR,EAAWwJ,GAAO29Q,EAAiB39Q,GAInEnJ,EAAOrE,QAAU,CACfqrR,0BAA2BA,EAC3BF,gBAAiBI,GAA4BJ,EAC7CkB,YAAaA,EACbC,uBAAwBA,EACxBC,uBAAwBA,EACxBM,6BAA8BA,EAC9BV,yBAA0BA,EAC1BD,OAAQA,EACRE,aAAcA,EACdrB,WAAYA,EACZC,oBAAqBA,E,oCC9LvB,IAAI8B,EAAoB,EAAQ,MAEhCzoR,EAAOrE,QAAU,SAAUqhB,EAAawmI,EAAMklI,GAC5C,IAAIh6O,EAAQ,EACR7xC,EAASD,UAAUC,OAAS,EAAI6rR,EAAUD,EAAkBjlI,GAC5Dl5I,EAAS,IAAI0S,EAAYngB,GAC7B,MAAOA,EAAS6xC,EAAOpkC,EAAOokC,GAAS80G,EAAK90G,KAC5C,OAAOpkC,CACT,C,oCCRA,IAAIq+Q,EAAkB,EAAQ,MAC1BC,EAAkB,EAAQ,MAC1BH,EAAoB,EAAQ,MAG5BI,EAAe,SAAUC,GAC3B,OAAO,SAAUC,EAAOt/L,EAAIu/L,GAC1B,IAAIh6D,EAAI25D,EAAgBI,GACpBlsR,EAAS4rR,EAAkBz5D,GAC/B,GAAe,IAAXnyN,EAAc,OAAQisR,IAAgB,EAC1C,IACInrR,EADA+wC,EAAQk6O,EAAgBI,EAAWnsR,GAIvC,GAAIisR,GAAer/L,IAAOA,GAAI,MAAO5sF,EAAS6xC,EAG5C,GAFA/wC,EAAQqxN,EAAEtgL,KAEN/wC,IAAUA,EAAO,OAAO,OAEvB,KAAMd,EAAS6xC,EAAOA,IAC3B,IAAKo6O,GAAep6O,KAASsgL,IAAMA,EAAEtgL,KAAW+6C,EAAI,OAAOq/L,GAAep6O,GAAS,EACnF,OAAQo6O,IAAgB,CAC5B,CACF,EAEA9oR,EAAOrE,QAAU,CAGfyuF,SAAUy+L,GAAa,GAGvB5qR,QAAS4qR,GAAa,G,oCC/BxB,IAAI/C,EAAc,EAAQ,MACtBlnR,EAAU,EAAQ,MAElBklR,EAAarkR,UAEbpD,EAA2BL,OAAOK,yBAGlC4sR,EAAoCnD,IAAgB,WAEtD,QAAatiR,IAAT/I,KAAoB,OAAO,EAC/B,IAEEuB,OAAOoB,eAAe,GAAI,SAAU,CAAES,UAAU,IAAShB,OAAS,CACpE,CAAE,MAAOiI,GACP,OAAOA,aAAiBrF,SAC1B,CACF,CATwD,GAWxDO,EAAOrE,QAAUstR,EAAoC,SAAUj6D,EAAGnyN,GAChE,GAAI+B,EAAQowN,KAAO3yN,EAAyB2yN,EAAG,UAAUnxN,SACvD,MAAM,IAAIimR,EAAW,gCACrB,OAAO90D,EAAEnyN,OAASA,CACtB,EAAI,SAAUmyN,EAAGnyN,GACf,OAAOmyN,EAAEnyN,OAASA,CACpB,C,oCCzBA,IAAI2nR,EAAc,EAAQ,MAE1BxkR,EAAOrE,QAAU6oR,EAAY,GAAGplR,M,oCCFhC,IAAIqpR,EAAoB,EAAQ,MAIhCzoR,EAAOrE,QAAU,SAAUqzN,EAAGmB,GAI5B,IAHA,IAAI5wN,EAAMkpR,EAAkBz5D,GACxBG,EAAI,IAAIgB,EAAE5wN,GACVmS,EAAI,EACDA,EAAInS,EAAKmS,IAAKy9M,EAAEz9M,GAAKs9M,EAAEzvN,EAAMmS,EAAI,GACxC,OAAOy9M,CACT,C,oCCVA,IAAIs5D,EAAoB,EAAQ,MAC5BS,EAAsB,EAAQ,MAE9BC,EAAcC,WAIlBppR,EAAOrE,QAAU,SAAUqzN,EAAGmB,EAAGzhL,EAAO/wC,GACtC,IAAI4B,EAAMkpR,EAAkBz5D,GACxBq6D,EAAgBH,EAAoBx6O,GACpC46O,EAAcD,EAAgB,EAAI9pR,EAAM8pR,EAAgBA,EAC5D,GAAIC,GAAe/pR,GAAO+pR,EAAc,EAAG,MAAM,IAAIH,EAAY,mBAGjE,IAFA,IAAIh6D,EAAI,IAAIgB,EAAE5wN,GACVmS,EAAI,EACDA,EAAInS,EAAKmS,IAAKy9M,EAAEz9M,GAAKA,IAAM43Q,EAAc3rR,EAAQqxN,EAAEt9M,GAC1D,OAAOy9M,CACT,C,oCChBA,IAAIo6D,EAAW,EAAQ,MACnBC,EAAgB,EAAQ,MAG5BxpR,EAAOrE,QAAU,SAAU6B,EAAU0X,EAAIvX,EAAO8rR,GAC9C,IACE,OAAOA,EAAUv0Q,EAAGq0Q,EAAS5rR,GAAO,GAAIA,EAAM,IAAMuX,EAAGvX,EACzD,CAAE,MAAOmH,GACP0kR,EAAchsR,EAAU,QAASsH,EACnC,CACF,C,oCCVA,IAAI0/Q,EAAc,EAAQ,MAEtBrlR,EAAWqlR,EAAY,CAAC,EAAErlR,UAC1BuqR,EAAclF,EAAY,GAAGplR,OAEjCY,EAAOrE,QAAU,SAAUipO,GACzB,OAAO8kD,EAAYvqR,EAASylO,GAAK,GAAI,EACvC,C,oCCPA,IAAI+kD,EAAwB,EAAQ,MAChC/F,EAAa,EAAQ,MACrBgG,EAAa,EAAQ,MACrB1D,EAAkB,EAAQ,MAE1BW,EAAgBX,EAAgB,eAChC2D,EAAU7tR,OAGV8tR,EAAwE,cAApDF,EAAW,WAAc,OAAOhtR,SAAW,CAAhC,IAG/BmtR,EAAS,SAAUnlD,EAAI5nO,GACzB,IACE,OAAO4nO,EAAG5nO,EACZ,CAAE,MAAO8H,GAAqB,CAChC,EAGA9E,EAAOrE,QAAUguR,EAAwBC,EAAa,SAAUhlD,GAC9D,IAAI5V,EAAGxqN,EAAK8F,EACZ,YAAc9G,IAAPohO,EAAmB,YAAqB,OAAPA,EAAc,OAEO,iBAAjDpgO,EAAMulR,EAAO/6D,EAAI66D,EAAQjlD,GAAKiiD,IAA8BriR,EAEpEslR,EAAoBF,EAAW56D,GAEF,YAA5B1kN,EAASs/Q,EAAW56D,KAAoB40D,EAAW50D,EAAEg7D,QAAU,YAAc1/Q,CACpF,C,oCC5BA,IAAI4oN,EAAS,EAAQ,MACjBt3N,EAAU,EAAQ,MAClBquR,EAAiC,EAAQ,MACzCC,EAAuB,EAAQ,MAEnClqR,EAAOrE,QAAU,SAAUe,EAAQI,EAAQipC,GAIzC,IAHA,IAAIhqC,EAAOH,EAAQkB,GACfM,EAAiB8sR,EAAqBthM,EACtCvsF,EAA2B4tR,EAA+BrhM,EACrDjsF,EAAI,EAAGA,EAAIZ,EAAKc,OAAQF,IAAK,CACpC,IAAIK,EAAMjB,EAAKY,GACVu2N,EAAOx2N,EAAQM,IAAU+oC,GAAcmtL,EAAOntL,EAAY/oC,IAC7DI,EAAeV,EAAQM,EAAKX,EAAyBS,EAAQE,GAEjE,CACF,C,oCCfA,IAAImtR,EAAQ,EAAQ,MAEpBnqR,EAAOrE,SAAWwuR,GAAM,WACtB,SAASh4E,IAAkB,CAG3B,OAFAA,EAAEz0M,UAAUD,YAAc,KAEnBzB,OAAO2/E,eAAe,IAAIw2H,KAASA,EAAEz0M,SAC9C,G,gCCLAsC,EAAOrE,QAAU,SAAUgC,EAAOkX,GAChC,MAAO,CAAElX,MAAOA,EAAOkX,KAAMA,EAC/B,C,oCCJA,IAAIixQ,EAAc,EAAQ,MACtBoE,EAAuB,EAAQ,MAC/BE,EAA2B,EAAQ,MAEvCpqR,EAAOrE,QAAUmqR,EAAc,SAAUjqR,EAAQmB,EAAKW,GACpD,OAAOusR,EAAqBthM,EAAE/sF,EAAQmB,EAAKotR,EAAyB,EAAGzsR,GACzE,EAAI,SAAU9B,EAAQmB,EAAKW,GAEzB,OADA9B,EAAOmB,GAAOW,EACP9B,CACT,C,gCCTAmE,EAAOrE,QAAU,SAAU0uR,EAAQ1sR,GACjC,MAAO,CACLrB,aAAuB,EAAT+tR,GACdzsR,eAAyB,EAATysR,GAChBxsR,WAAqB,EAATwsR,GACZ1sR,MAAOA,EAEX,C,oCCPA,IAAImoR,EAAc,EAAQ,MACtBoE,EAAuB,EAAQ,MAC/BE,EAA2B,EAAQ,MAEvCpqR,EAAOrE,QAAU,SAAUE,EAAQmB,EAAKW,GAClCmoR,EAAaoE,EAAqBthM,EAAE/sF,EAAQmB,EAAKotR,EAAyB,EAAGzsR,IAC5E9B,EAAOmB,GAAOW,CACrB,C,oCCPA,IAAI2sR,EAAc,EAAQ,KACtBltR,EAAiB,EAAQ,MAE7B4C,EAAOrE,QAAU,SAAUe,EAAQ2C,EAAM+9E,GAGvC,OAFIA,EAAW3wE,KAAK69Q,EAAYltM,EAAW3wE,IAAKpN,EAAM,CAAEw4B,QAAQ,IAC5DulD,EAAWzwE,KAAK29Q,EAAYltM,EAAWzwE,IAAKtN,EAAM,CAAEssP,QAAQ,IACzDvuP,EAAewrF,EAAElsF,EAAQ2C,EAAM+9E,EACxC,C,oCCPA,IAAIwmM,EAAa,EAAQ,MACrBsG,EAAuB,EAAQ,MAC/BI,EAAc,EAAQ,KACtBC,EAAuB,EAAQ,MAEnCvqR,EAAOrE,QAAU,SAAUqzN,EAAGhyN,EAAKW,EAAOvD,GACnCA,IAASA,EAAU,CAAC,GACzB,IAAIowR,EAASpwR,EAAQkC,WACjB+C,OAAwBmE,IAAjBpJ,EAAQiF,KAAqBjF,EAAQiF,KAAOrC,EAEvD,GADI4mR,EAAWjmR,IAAQ2sR,EAAY3sR,EAAO0B,EAAMjF,GAC5CA,EAAQyF,OACN2qR,EAAQx7D,EAAEhyN,GAAOW,EAChB4sR,EAAqBvtR,EAAKW,OAC1B,CACL,IACOvD,EAAQqwR,OACJz7D,EAAEhyN,KAAMwtR,GAAS,UADEx7D,EAAEhyN,EAEhC,CAAE,MAAO8H,GAAqB,CAC1B0lR,EAAQx7D,EAAEhyN,GAAOW,EAChBusR,EAAqBthM,EAAEomI,EAAGhyN,EAAK,CAClCW,MAAOA,EACPrB,YAAY,EACZsB,cAAexD,EAAQswR,gBACvB7sR,UAAWzD,EAAQuwR,aAEvB,CAAE,OAAO37D,CACX,C,oCC1BA,IAAIg3D,EAAgB,EAAQ,MAE5BhmR,EAAOrE,QAAU,SAAUe,EAAQ2c,EAAKjf,GACtC,IAAK,IAAI4C,KAAOqc,EAAK2sQ,EAActpR,EAAQM,EAAKqc,EAAIrc,GAAM5C,GAC1D,OAAOsC,CACT,C,oCCLA,IAAIiD,EAAa,EAAQ,MAGrBvC,EAAiBpB,OAAOoB,eAE5B4C,EAAOrE,QAAU,SAAUqB,EAAKW,GAC9B,IACEP,EAAeuC,EAAY3C,EAAK,CAAEW,MAAOA,EAAOC,cAAc,EAAMC,UAAU,GAChF,CAAE,MAAOiH,GACPnF,EAAW3C,GAAOW,CACpB,CAAE,OAAOA,CACX,C,oCCXA,IAAIwsR,EAAQ,EAAQ,MAGpBnqR,EAAOrE,SAAWwuR,GAAM,WAEtB,OAA+E,IAAxEnuR,OAAOoB,eAAe,CAAC,EAAG,EAAG,CAAEqP,IAAK,WAAc,OAAO,CAAG,IAAK,EAC1E,G,oCCNA,IAQIm+Q,EAAe35M,EAASza,EAAQq0N,EARhClrR,EAAa,EAAQ,MACrBmrR,EAAuB,EAAQ,MAC/B/F,EAAmC,EAAQ,MAE3CC,EAAkBrlR,EAAWqlR,gBAC7B+F,EAAeprR,EAAWwkR,YAC1B6G,EAAkBrrR,EAAWwoM,eAC7B8iF,GAAS,EAGb,GAAIlG,EACFkG,EAAS,SAAUC,GACjBlG,EAAgBkG,EAAc,CAAEvF,SAAU,CAACuF,IAC7C,OACK,GAAIH,EAAc,IAClBC,IACHJ,EAAgBE,EAAqB,kBACjCF,IAAeI,EAAkBJ,EAAcziF,iBAGjD6iF,IACF/5M,EAAU,IAAI+5M,EACdx0N,EAAS,IAAIu0N,EAAa,GAE1BF,EAAU,SAAUK,GAClBj6M,EAAQ03H,MAAMG,YAAY,KAAM,CAACoiF,GACnC,EAE0B,IAAtB10N,EAAO+tN,aACTsG,EAAQr0N,GACkB,IAAtBA,EAAO+tN,aAAkB0G,EAASJ,IAG5C,CAAE,MAAO/lR,GAAqB,CAE9B9E,EAAOrE,QAAUsvR,C,oCCnCjB,IAAItrR,EAAa,EAAQ,MACrB0L,EAAW,EAAQ,IAEnByqE,EAAWn2E,EAAWm2E,SAEtBq1M,EAAS9/Q,EAASyqE,IAAazqE,EAASyqE,EAASnuE,eAErD3H,EAAOrE,QAAU,SAAUipO,GACzB,OAAOumD,EAASr1M,EAASnuE,cAAci9N,GAAM,CAAC,CAChD,C,gCCTA,IAAIk/C,EAAarkR,UACb2rR,EAAmB,iBAEvBprR,EAAOrE,QAAU,SAAUipO,GACzB,GAAIA,EAAKwmD,EAAkB,MAAMtH,EAAW,kCAC5C,OAAOl/C,CACT,C,gCCNA5kO,EAAOrE,QAAU,CACf0vR,eAAgB,CAAE5oR,EAAG,iBAAkBQ,EAAG,EAAGowM,EAAG,GAChDi4E,mBAAoB,CAAE7oR,EAAG,qBAAsBQ,EAAG,EAAGowM,EAAG,GACxDk4E,sBAAuB,CAAE9oR,EAAG,wBAAyBQ,EAAG,EAAGowM,EAAG,GAC9Dm4E,mBAAoB,CAAE/oR,EAAG,qBAAsBQ,EAAG,EAAGowM,EAAG,GACxDo4E,sBAAuB,CAAEhpR,EAAG,wBAAyBQ,EAAG,EAAGowM,EAAG,GAC9Dq4E,mBAAoB,CAAEjpR,EAAG,sBAAuBQ,EAAG,EAAGowM,EAAG,GACzDs4E,2BAA4B,CAAElpR,EAAG,8BAA+BQ,EAAG,EAAGowM,EAAG,GACzEu4E,cAAe,CAAEnpR,EAAG,gBAAiBQ,EAAG,EAAGowM,EAAG,GAC9Cw4E,kBAAmB,CAAEppR,EAAG,oBAAqBQ,EAAG,EAAGowM,EAAG,GACtDy4E,oBAAqB,CAAErpR,EAAG,sBAAuBQ,EAAG,GAAIowM,EAAG,GAC3D04E,kBAAmB,CAAEtpR,EAAG,oBAAqBQ,EAAG,GAAIowM,EAAG,GACvD24E,YAAa,CAAEvpR,EAAG,aAAcQ,EAAG,GAAIowM,EAAG,GAC1C44E,yBAA0B,CAAExpR,EAAG,2BAA4BQ,EAAG,GAAIowM,EAAG,GACrE64E,eAAgB,CAAEzpR,EAAG,gBAAiBQ,EAAG,GAAIowM,EAAG,GAChD84E,mBAAoB,CAAE1pR,EAAG,qBAAsBQ,EAAG,GAAIowM,EAAG,GACzD+4E,gBAAiB,CAAE3pR,EAAG,iBAAkBQ,EAAG,GAAIowM,EAAG,GAClDg5E,kBAAmB,CAAE5pR,EAAG,oBAAqBQ,EAAG,GAAIowM,EAAG,GACvDi5E,cAAe,CAAE7pR,EAAG,eAAgBQ,EAAG,GAAIowM,EAAG,GAC9Ck5E,aAAc,CAAE9pR,EAAG,cAAeQ,EAAG,GAAIowM,EAAG,GAC5Cm5E,WAAY,CAAE/pR,EAAG,YAAaQ,EAAG,GAAIowM,EAAG,GACxCo5E,iBAAkB,CAAEhqR,EAAG,mBAAoBQ,EAAG,GAAIowM,EAAG,GACrDq5E,mBAAoB,CAAEjqR,EAAG,qBAAsBQ,EAAG,GAAIowM,EAAG,GACzDs5E,aAAc,CAAElqR,EAAG,cAAeQ,EAAG,GAAIowM,EAAG,GAC5Cu5E,qBAAsB,CAAEnqR,EAAG,wBAAyBQ,EAAG,GAAIowM,EAAG,GAC9Dw5E,eAAgB,CAAEpqR,EAAG,iBAAkBQ,EAAG,GAAIowM,EAAG,G,gCCxBnDrzM,EAAOrE,QAAU,CACf,cACA,iBACA,gBACA,uBACA,iBACA,WACA,U,oCCRF,IAAI20B,EAAY,EAAQ,MAGxBtwB,EAAOrE,QAAU,qCAAqC2D,KAAKgxB,E,oCCH3D,IAAIw8P,EAAc,EAAQ,MAE1B9sR,EAAOrE,QAA0B,SAAhBmxR,C,oCCFjB,IAAIntR,EAAa,EAAQ,MAErBq2E,EAAYr2E,EAAWq2E,UACvB1lD,EAAY0lD,GAAaA,EAAU1lD,UAEvCtwB,EAAOrE,QAAU20B,EAAYppB,OAAOopB,GAAa,E,oCCLjD,IAOIlvB,EAAO2xB,EAPPpzB,EAAa,EAAQ,MACrB2wB,EAAY,EAAQ,MAEpBxuB,EAAUnC,EAAWmC,QACrBirR,EAAOptR,EAAWotR,KAClBn5Q,EAAW9R,GAAWA,EAAQ8R,UAAYm5Q,GAAQA,EAAKh6P,QACvDi6P,EAAKp5Q,GAAYA,EAASo5Q,GAG1BA,IACF5rR,EAAQ4rR,EAAGjsR,MAAM,KAGjBgyB,EAAU3xB,EAAM,GAAK,GAAKA,EAAM,GAAK,EAAI,IAAMA,EAAM,GAAKA,EAAM,MAK7D2xB,GAAWzC,IACdlvB,EAAQkvB,EAAUlvB,MAAM,iBACnBA,GAASA,EAAM,IAAM,MACxBA,EAAQkvB,EAAUlvB,MAAM,iBACpBA,IAAO2xB,GAAW3xB,EAAM,MAIhCpB,EAAOrE,QAAUo3B,C,oCCzBjB,IAAIpzB,EAAa,EAAQ,MACrB2wB,EAAY,EAAQ,MACpBg0P,EAAU,EAAQ,MAElB2I,EAAsB,SAAUpsR,GAClC,OAAOyvB,EAAUlxB,MAAM,EAAGyB,EAAOhE,UAAYgE,CAC/C,EAEAb,EAAOrE,QAAU,WACf,OAAIsxR,EAAoB,QAAgB,MACpCA,EAAoB,sBAA8B,aAClDA,EAAoB,SAAiB,OACrCA,EAAoB,YAAoB,OACxCttR,EAAWutR,KAA6B,iBAAfA,IAAIn6P,QAA4B,MACzDpzB,EAAWotR,MAA+B,iBAAhBA,KAAKh6P,QAA4B,OAC3B,YAAhCuxP,EAAQ3kR,EAAWmC,SAA+B,OAClDnC,EAAWC,QAAUD,EAAWm2E,SAAiB,UAC9C,MACR,CAVgB,E,oCCTjB,IAAI0uM,EAAc,EAAQ,MAEtB2I,EAASh/Q,MACThN,EAAUqjR,EAAY,GAAGrjR,SAEzBisR,EAAO,SAAWtiR,GAAO,OAAO5D,OAAO,IAAIimR,EAAOriR,GAAKgD,MAAS,CAAzD,CAA2D,UAElEu/Q,EAA2B,uBAC3BC,EAAwBD,EAAyB/tR,KAAK8tR,GAE1DptR,EAAOrE,QAAU,SAAUmS,EAAOy/Q,GAChC,GAAID,GAAyC,iBAATx/Q,IAAsBq/Q,EAAOK,kBAC/D,MAAOD,IAAez/Q,EAAQ3M,EAAQ2M,EAAOu/Q,EAA0B,IACvE,OAAOv/Q,CACX,C,oCCdA,IAAInO,EAAa,EAAQ,MACrBtD,EAA2B,UAC3B0pR,EAA8B,EAAQ,MACtCC,EAAgB,EAAQ,MACxBuE,EAAuB,EAAQ,MAC/BkD,EAA4B,EAAQ,MACpCC,EAAW,EAAQ,MAiBvB1tR,EAAOrE,QAAU,SAAUvB,EAAS0C,GAClC,IAGI6wR,EAAQjxR,EAAQM,EAAK4wR,EAAgBC,EAAgBzwM,EAHrD0wM,EAAS1zR,EAAQsC,OACjBqxR,EAAS3zR,EAAQyF,OACjBmuR,EAAS5zR,EAAQ6zR,KASrB,GANEvxR,EADEqxR,EACOpuR,EACAquR,EACAruR,EAAWmuR,IAAWvD,EAAqBuD,EAAQ,CAAC,GAEpDnuR,EAAWmuR,IAAWnuR,EAAWmuR,GAAQpwR,UAEhDhB,EAAQ,IAAKM,KAAOF,EAAQ,CAQ9B,GAPA+wR,EAAiB/wR,EAAOE,GACpB5C,EAAQ8zR,gBACV9wM,EAAa/gF,EAAyBK,EAAQM,GAC9C4wR,EAAiBxwM,GAAcA,EAAWz/E,OACrCiwR,EAAiBlxR,EAAOM,GAC/B2wR,EAASD,EAASK,EAAS/wR,EAAM8wR,GAAUE,EAAS,IAAM,KAAOhxR,EAAK5C,EAAQguR,SAEzEuF,QAA6BnqR,IAAnBoqR,EAA8B,CAC3C,UAAWC,UAAyBD,EAAgB,SACpDH,EAA0BI,EAAgBD,EAC5C,EAEIxzR,EAAQmhF,MAASqyM,GAAkBA,EAAeryM,OACpDwqM,EAA4B8H,EAAgB,QAAQ,GAEtD7H,EAActpR,EAAQM,EAAK6wR,EAAgBzzR,EAC7C,CACF,C,gCCrDA4F,EAAOrE,QAAU,SAAUiqC,GACzB,IACE,QAASA,GACX,CAAE,MAAO9gC,GACP,OAAO,CACT,CACF,C,oCCNA,IAAIqpR,EAAc,EAAQ,KAEtBC,EAAoBn2Q,SAASva,UAC7BlB,EAAQ4xR,EAAkB5xR,MAC1B1B,EAAOszR,EAAkBtzR,KAG7BkF,EAAOrE,QAA4B,iBAAX6+E,SAAuBA,QAAQh+E,QAAU2xR,EAAcrzR,EAAK6I,KAAKnH,GAAS,WAChG,OAAO1B,EAAK0B,MAAMA,EAAOI,UAC3B,E,oCCTA,IAAI4nR,EAAc,EAAQ,MACtB6J,EAAY,EAAQ,MACpBF,EAAc,EAAQ,KAEtBxqR,EAAO6gR,EAAYA,EAAY7gR,MAGnC3D,EAAOrE,QAAU,SAAUuZ,EAAI6hC,GAE7B,OADAs3O,EAAUn5Q,QACM1R,IAATuzC,EAAqB7hC,EAAKi5Q,EAAcxqR,EAAKuR,EAAI6hC,GAAQ,WAC9D,OAAO7hC,EAAG1Y,MAAMu6C,EAAMn6C,UACxB,CACF,C,mCCZA,IAAIutR,EAAQ,EAAQ,MAEpBnqR,EAAOrE,SAAWwuR,GAAM,WAEtB,IAAI7qR,EAAO,WAA4B,EAAEqE,OAEzC,MAAsB,mBAARrE,GAAsBA,EAAKqB,eAAe,YAC1D,G,oCCPA,IAAIwtR,EAAc,EAAQ,KAEtBrzR,EAAOmd,SAASva,UAAU5C,KAE9BkF,EAAOrE,QAAUwyR,EAAcrzR,EAAK6I,KAAK7I,GAAQ,WAC/C,OAAOA,EAAK0B,MAAM1B,EAAM8B,UAC1B,C,mCCNA,IAAIkpR,EAAc,EAAQ,MACtB5yD,EAAS,EAAQ,MAEjBk7D,EAAoBn2Q,SAASva,UAE7B4wR,EAAgBxI,GAAe9pR,OAAOK,yBAEtC8uR,EAASj4D,EAAOk7D,EAAmB,QAEnCG,EAASpD,GAA0D,cAAhD,WAAqC,EAAE9rR,KAC1DmvR,EAAerD,KAAYrF,GAAgBA,GAAewI,EAAcF,EAAmB,QAAQxwR,cAEvGoC,EAAOrE,QAAU,CACfwvR,OAAQA,EACRoD,OAAQA,EACRC,aAAcA,E,oCCfhB,IAAIhK,EAAc,EAAQ,MACtB6J,EAAY,EAAQ,MAExBruR,EAAOrE,QAAU,SAAUE,EAAQmB,EAAKmwB,GACtC,IAEE,OAAOq3P,EAAY6J,EAAUryR,OAAOK,yBAAyBR,EAAQmB,GAAKmwB,IAC5E,CAAE,MAAOroB,GAAqB,CAChC,C,oCCRA,IAAI8kR,EAAa,EAAQ,MACrBpF,EAAc,EAAQ,MAE1BxkR,EAAOrE,QAAU,SAAUuZ,GAIzB,GAAuB,aAAnB00Q,EAAW10Q,GAAoB,OAAOsvQ,EAAYtvQ,EACxD,C,oCCRA,IAAIi5Q,EAAc,EAAQ,KAEtBC,EAAoBn2Q,SAASva,UAC7B5C,EAAOszR,EAAkBtzR,KACzB2zR,EAAsBN,GAAeC,EAAkBzqR,KAAKA,KAAK7I,EAAMA,GAE3EkF,EAAOrE,QAAUwyR,EAAcM,EAAsB,SAAUv5Q,GAC7D,OAAO,WACL,OAAOpa,EAAK0B,MAAM0Y,EAAItY,UACxB,CACF,C,oCCVA,IAAI+C,EAAa,EAAQ,MACrB+uR,EAAU,EAAQ,MAEtB1uR,EAAOrE,QAAU,SAAU0D,GACzB,GAAIqvR,EAAS,CACX,IACE,OAAO/uR,EAAWmC,QAAQ6sR,iBAAiBtvR,EAC7C,CAAE,MAAOyF,GAAqB,CAC9B,IAEE,OAAOmT,SAAS,mBAAqB5Y,EAAO,KAArC4Y,EACT,CAAE,MAAOnT,GAAqB,CAChC,CACF,C,oCCbA,IAAInF,EAAa,EAAQ,MACrBikR,EAAa,EAAQ,MAErBgL,EAAY,SAAU7K,GACxB,OAAOH,EAAWG,GAAYA,OAAWvgR,CAC3C,EAEAxD,EAAOrE,QAAU,SAAUovQ,EAAW59O,GACpC,OAAOvwB,UAAUC,OAAS,EAAI+xR,EAAUjvR,EAAWorQ,IAAcprQ,EAAWorQ,IAAcprQ,EAAWorQ,GAAW59O,EAClH,C,gCCPAntB,EAAOrE,QAAU,SAAU2B,GACzB,MAAO,CACLE,SAAUF,EACVkX,KAAMlX,EAAIkX,KACVK,MAAM,EAEV,C,mCCRA,IAAIyvQ,EAAU,EAAQ,MAClBuK,EAAY,EAAQ,MACpB7jR,EAAoB,EAAQ,MAC5B8jR,EAAY,EAAQ,MACpB5I,EAAkB,EAAQ,MAE1B6I,EAAW7I,EAAgB,YAE/BlmR,EAAOrE,QAAU,SAAUipO,GACzB,IAAK55N,EAAkB45N,GAAK,OAAOiqD,EAAUjqD,EAAImqD,IAC5CF,EAAUjqD,EAAI,eACdkqD,EAAUxK,EAAQ1/C,GACzB,C,kCCZA,IAAI9pO,EAAO,EAAQ,MACfuzR,EAAY,EAAQ,MACpB9E,EAAW,EAAQ,MACnB1F,EAAc,EAAQ,MACtBmL,EAAoB,EAAQ,KAE5BlL,EAAarkR,UAEjBO,EAAOrE,QAAU,SAAUooR,EAAUkL,GACnC,IAAIC,EAAiBtyR,UAAUC,OAAS,EAAImyR,EAAkBjL,GAAYkL,EAC1E,GAAIZ,EAAUa,GAAiB,OAAO3F,EAASzuR,EAAKo0R,EAAgBnL,IACpE,MAAM,IAAID,EAAWD,EAAYE,GAAY,mBAC/C,C,oCCZA,IAAIsK,EAAY,EAAQ,MACpBrjR,EAAoB,EAAQ,MAIhChL,EAAOrE,QAAU,SAAU80N,EAAGnkB,GAC5B,IAAItiM,EAAOymN,EAAEnkB,GACb,OAAOthM,EAAkBhB,QAAQxG,EAAY6qR,EAAUrkR,EACzD,C,oCCRA,IAAIqkR,EAAY,EAAQ,MACpB9E,EAAW,EAAQ,MACnBzuR,EAAO,EAAQ,MACfouR,EAAsB,EAAQ,MAC9BiG,EAAoB,EAAQ,MAE5BC,EAAe,eACfjG,EAAcC,WACdtF,EAAarkR,UACbmxB,EAAMjnB,KAAKinB,IAEXy+P,EAAY,SAAU1iR,EAAK2iR,GAC7B70R,KAAKkS,IAAMA,EACXlS,KAAKsL,KAAO6qB,EAAI0+P,EAAS,GACzB70R,KAAKygF,IAAMmzM,EAAU1hR,EAAIuuE,KACzBzgF,KAAKsB,KAAOsyR,EAAU1hR,EAAI5Q,KAC5B,EAEAszR,EAAU3xR,UAAY,CACpB6xR,YAAa,WACX,OAAOJ,EAAkB5F,EAASzuR,EAAKL,KAAKsB,KAAMtB,KAAKkS,MACzD,EACAy9E,SAAU,SAAUw6I,GAClB,OAAO9pO,EAAKL,KAAKygF,IAAKzgF,KAAKkS,IAAKi4N,EAClC,GAKF5kO,EAAOrE,QAAU,SAAU2B,GACzBisR,EAASjsR,GACT,IAAIkyR,GAAWlyR,EAAIyI,KAGnB,GAAIypR,IAAYA,EAAS,MAAM,IAAI1L,EAAWsL,GAC9C,IAAIE,EAAUpG,EAAoBsG,GAClC,GAAIF,EAAU,EAAG,MAAM,IAAInG,EAAYiG,GACvC,OAAO,IAAIC,EAAU/xR,EAAKgyR,EAC5B,C,oCCtCA,IAAI7xJ,EAAQ,SAAUmnG,GACpB,OAAOA,GAAMA,EAAGj7N,OAASA,MAAQi7N,CACnC,EAGA5kO,EAAOrE,QAEL8hI,EAA2B,iBAAd99H,YAA0BA,aACvC89H,EAAuB,iBAAV79H,QAAsBA,SAEnC69H,EAAqB,iBAAR39H,MAAoBA,OACjC29H,EAAuB,iBAAV,EAAAlxH,GAAsB,EAAAA,IACnCkxH,EAAqB,iBAARhjI,MAAoBA,OAEjC,WAAe,OAAOA,IAAO,CAA7B,IAAoCwd,SAAS,cAATA,E,oCCdtC,IAAIusQ,EAAc,EAAQ,MACtB1+B,EAAW,EAAQ,MAEnBnlP,EAAiB6jR,EAAY,CAAC,EAAE7jR,gBAKpCX,EAAOrE,QAAUK,OAAOk3N,QAAU,SAAgB0R,EAAI5nO,GACpD,OAAO2D,EAAemlP,EAASlhB,GAAK5nO,EACtC,C,+BCVAgD,EAAOrE,QAAU,CAAC,C,mCCAlB,IAAI8zR,EAAa,EAAQ,MAEzBzvR,EAAOrE,QAAU8zR,EAAW,WAAY,kB,oCCFxC,IAAI3J,EAAc,EAAQ,MACtBqE,EAAQ,EAAQ,MAChBxiR,EAAgB,EAAQ,MAG5B3H,EAAOrE,SAAWmqR,IAAgBqE,GAAM,WAEtC,OAES,IAFFnuR,OAAOoB,eAAeuK,EAAc,OAAQ,IAAK,CACtD8E,IAAK,WAAc,OAAO,CAAG,IAC5B6uE,CACL,G,oCCVA,IAAIkpM,EAAc,EAAQ,MACtB2F,EAAQ,EAAQ,MAChB7F,EAAU,EAAQ,MAElBuF,EAAU7tR,OACV+E,EAAQyjR,EAAY,GAAGzjR,OAG3Bf,EAAOrE,QAAUwuR,GAAM,WAGrB,OAAQN,EAAQ,KAAKzrR,qBAAqB,EAC5C,IAAK,SAAUwmO,GACb,MAAuB,WAAhB0/C,EAAQ1/C,GAAmB7jO,EAAM6jO,EAAI,IAAMilD,EAAQjlD,EAC5D,EAAIilD,C,oCCdJ,IAAIjG,EAAa,EAAQ,MACrBv4Q,EAAW,EAAQ,IACnBqwE,EAAiB,EAAQ,MAG7B17E,EAAOrE,QAAU,SAAUotR,EAAO2G,EAAOv0M,GACvC,IAAIZ,EAAWo1M,EAUf,OAPEj0M,GAEAkoM,EAAWrpM,EAAYm1M,EAAMjyR,cAC7B88E,IAAcY,GACd9vE,EAASskR,EAAqBp1M,EAAU78E,YACxCiyR,IAAuBx0M,EAAQz9E,WAC/Bg+E,EAAeqtM,EAAO4G,GACjB5G,CACT,C,oCCjBA,IAAIvE,EAAc,EAAQ,MACtBZ,EAAa,EAAQ,MACrBnH,EAAQ,EAAQ,MAEhBmT,EAAmBpL,EAAYvsQ,SAAS9Y,UAGvCykR,EAAWnH,EAAMoT,iBACpBpT,EAAMoT,cAAgB,SAAUjrD,GAC9B,OAAOgrD,EAAiBhrD,EAC1B,GAGF5kO,EAAOrE,QAAU8gR,EAAMoT,a,oCCbvB,IAYIljR,EAAKF,EAAKyuE,EAZV40M,EAAkB,EAAQ,MAC1BnwR,EAAa,EAAQ,MACrB0L,EAAW,EAAQ,IACnB06Q,EAA8B,EAAQ,MACtC7yD,EAAS,EAAQ,MACjB68D,EAAS,EAAQ,MACjBC,EAAY,EAAQ,MACpBC,EAAa,EAAQ,KAErBC,EAA6B,6BAC7BzwR,EAAYE,EAAWF,UACvB2nI,EAAUznI,EAAWynI,QAGrBi/I,EAAU,SAAUzhD,GACtB,OAAO1pJ,EAAI0pJ,GAAMn4N,EAAIm4N,GAAMj4N,EAAIi4N,EAAI,CAAC,EACtC,EAEIurD,EAAY,SAAUC,GACxB,OAAO,SAAUxrD,GACf,IAAI5uM,EACJ,IAAK3qB,EAASu5N,KAAQ5uM,EAAQvpB,EAAIm4N,IAAK79N,OAASqpR,EAC9C,MAAM,IAAI3wR,EAAU,0BAA4B2wR,EAAO,aACvD,OAAOp6P,CACX,CACF,EAEA,GAAI85P,GAAmBC,EAAO/5P,MAAO,CACnC,IAAIymP,EAAQsT,EAAO/5P,QAAU+5P,EAAO/5P,MAAQ,IAAIoxG,GAEhDq1I,EAAMhwQ,IAAMgwQ,EAAMhwQ,IAClBgwQ,EAAMvhM,IAAMuhM,EAAMvhM,IAClBuhM,EAAM9vQ,IAAM8vQ,EAAM9vQ,IAElBA,EAAM,SAAUi4N,EAAIyrD,GAClB,GAAI5T,EAAMvhM,IAAI0pJ,GAAK,MAAM,IAAInlO,EAAUywR,GAGvC,OAFAG,EAASC,OAAS1rD,EAClB63C,EAAM9vQ,IAAIi4N,EAAIyrD,GACPA,CACT,EACA5jR,EAAM,SAAUm4N,GACd,OAAO63C,EAAMhwQ,IAAIm4N,IAAO,CAAC,CAC3B,EACA1pJ,EAAM,SAAU0pJ,GACd,OAAO63C,EAAMvhM,IAAI0pJ,EACnB,CACF,KAAO,CACL,IAAI2rD,EAAQP,EAAU,SACtBC,EAAWM,IAAS,EACpB5jR,EAAM,SAAUi4N,EAAIyrD,GAClB,GAAIn9D,EAAO0R,EAAI2rD,GAAQ,MAAM,IAAI9wR,EAAUywR,GAG3C,OAFAG,EAASC,OAAS1rD,EAClBmhD,EAA4BnhD,EAAI2rD,EAAOF,GAChCA,CACT,EACA5jR,EAAM,SAAUm4N,GACd,OAAO1R,EAAO0R,EAAI2rD,GAAS3rD,EAAG2rD,GAAS,CAAC,CAC1C,EACAr1M,EAAM,SAAU0pJ,GACd,OAAO1R,EAAO0R,EAAI2rD,EACpB,CACF,CAEAvwR,EAAOrE,QAAU,CACfgR,IAAKA,EACLF,IAAKA,EACLyuE,IAAKA,EACLmrM,QAASA,EACT8J,UAAWA,E,oCCpEb,IAAIjK,EAAkB,EAAQ,MAC1B4I,EAAY,EAAQ,MAEpBC,EAAW7I,EAAgB,YAC3BsK,EAAiB7xR,MAAMjB,UAG3BsC,EAAOrE,QAAU,SAAUipO,GACzB,YAAcphO,IAAPohO,IAAqBkqD,EAAUnwR,QAAUimO,GAAM4rD,EAAezB,KAAcnqD,EACrF,C,oCCTA,IAAI0/C,EAAU,EAAQ,MAKtBtkR,EAAOrE,QAAUgD,MAAMC,SAAW,SAAiBmlR,GACjD,MAA6B,UAAtBO,EAAQP,EACjB,C,oCCPA,IAAIO,EAAU,EAAQ,MAEtBtkR,EAAOrE,QAAU,SAAUipO,GACzB,IAAI2tC,EAAQ+R,EAAQ1/C,GACpB,MAAiB,kBAAV2tC,GAAuC,mBAAVA,CACtC,C,gCCJA,IAAIke,EAAiC,iBAAZ36M,UAAwBA,SAASojE,IAK1Dl5I,EAAOrE,QAAgC,oBAAf80R,QAA8CjtR,IAAhBitR,EAA4B,SAAU1M,GAC1F,MAA0B,mBAAZA,GAA0BA,IAAa0M,CACvD,EAAI,SAAU1M,GACZ,MAA0B,mBAAZA,CAChB,C,oCCVA,IAAIoG,EAAQ,EAAQ,MAChBvG,EAAa,EAAQ,MAErB8M,EAAc,kBAEdhD,EAAW,SAAUiD,EAASC,GAChC,IAAIjzR,EAAQ8F,EAAKgxQ,EAAUkc,IAC3B,OAAOhzR,IAAUkzR,GACblzR,IAAUmzR,IACVlN,EAAWgN,GAAazG,EAAMyG,KAC5BA,EACR,EAEInc,EAAYiZ,EAASjZ,UAAY,SAAU5zQ,GAC7C,OAAOqG,OAAOrG,GAAQM,QAAQuvR,EAAa,KAAKlvR,aAClD,EAEIiC,EAAOiqR,EAASjqR,KAAO,CAAC,EACxBqtR,EAASpD,EAASoD,OAAS,IAC3BD,EAAWnD,EAASmD,SAAW,IAEnC7wR,EAAOrE,QAAU+xR,C,gCCnBjB1tR,EAAOrE,QAAU,SAAUipO,GACzB,OAAc,OAAPA,QAAsBphO,IAAPohO,CACxB,C,kCCJA,IAAIg/C,EAAa,EAAQ,MAEzB5jR,EAAOrE,QAAU,SAAUipO,GACzB,MAAoB,iBAANA,EAAwB,OAAPA,EAAcg/C,EAAWh/C,EAC1D,C,oCCJA,IAAIv5N,EAAW,EAAQ,IAEvBrL,EAAOrE,QAAU,SAAUooR,GACzB,OAAO14Q,EAAS04Q,IAA0B,OAAbA,CAC/B,C,gCCJA/jR,EAAOrE,SAAU,C,mCCAjB,IAAI8zR,EAAa,EAAQ,MACrB7L,EAAa,EAAQ,MACrBM,EAAgB,EAAQ,MACxB6M,EAAoB,EAAQ,MAE5BlH,EAAU7tR,OAEdgE,EAAOrE,QAAUo1R,EAAoB,SAAUnsD,GAC7C,MAAoB,iBAANA,CAChB,EAAI,SAAUA,GACZ,IAAIosD,EAAUvB,EAAW,UACzB,OAAO7L,EAAWoN,IAAY9M,EAAc8M,EAAQtzR,UAAWmsR,EAAQjlD,GACzE,C,mCCZA,IAAI9pO,EAAO,EAAQ,MAEnBkF,EAAOrE,QAAU,SAAUu3O,EAAQh+N,EAAI+7Q,GACrC,IAEIhzM,EAAM3zE,EAFN9M,EAAWyzR,EAA6B/9C,EAASA,EAAO11O,SACxDgX,EAAO0+N,EAAO1+N,KAElB,QAASypE,EAAOnjF,EAAK0Z,EAAMhX,IAAWqX,KAEpC,GADAvK,EAAS4K,EAAG+oE,EAAKtgF,YACF6F,IAAX8G,EAAsB,OAAOA,CAErC,C,oCCVA,IAAI3G,EAAO,EAAQ,MACf7I,EAAO,EAAQ,MACfyuR,EAAW,EAAQ,MACnB1F,EAAc,EAAQ,MACtBqN,EAAwB,EAAQ,MAChCzI,EAAoB,EAAQ,MAC5BvE,EAAgB,EAAQ,MACxBqL,EAAc,EAAQ,IACtBP,EAAoB,EAAQ,KAC5BxF,EAAgB,EAAQ,MAExB1F,EAAarkR,UAEb0xR,EAAS,SAAUC,EAAS9mR,GAC9B7P,KAAK22R,QAAUA,EACf32R,KAAK6P,OAASA,CAChB,EAEI+mR,EAAkBF,EAAOzzR,UAE7BsC,EAAOrE,QAAU,SAAU21R,EAAUC,EAAiBn3R,GACpD,IAMIoD,EAAUg0R,EAAQ9iP,EAAO7xC,EAAQyN,EAAQkK,EAAMypE,EAN/ClnC,EAAO38C,GAAWA,EAAQ28C,KAC1B06O,KAAgBr3R,IAAWA,EAAQq3R,YACnCC,KAAet3R,IAAWA,EAAQs3R,WAClCC,KAAiBv3R,IAAWA,EAAQu3R,aACpCC,KAAiBx3R,IAAWA,EAAQw3R,aACpC18Q,EAAKvR,EAAK4tR,EAAiBx6O,GAG3BgyE,EAAO,SAAUqoF,GAEnB,OADI5zM,GAAUgsR,EAAchsR,EAAU,SAAU4zM,GACzC,IAAI+/E,GAAO,EAAM//E,EAC1B,EAEIygF,EAAS,SAAUl0R,GACrB,OAAI8zR,GACFlI,EAAS5rR,GACFi0R,EAAc18Q,EAAGvX,EAAM,GAAIA,EAAM,GAAIorH,GAAQ7zG,EAAGvX,EAAM,GAAIA,EAAM,KAChEi0R,EAAc18Q,EAAGvX,EAAOorH,GAAQ7zG,EAAGvX,EAC9C,EAEA,GAAI+zR,EACFl0R,EAAW8zR,EAAS9zR,cACf,GAAIm0R,EACTn0R,EAAW8zR,MACN,CAEL,GADAE,EAASxC,EAAkBsC,IACtBE,EAAQ,MAAM,IAAI1N,EAAWD,EAAYyN,GAAY,oBAE1D,GAAIJ,EAAsBM,GAAS,CACjC,IAAK9iP,EAAQ,EAAG7xC,EAAS4rR,EAAkB6I,GAAWz0R,EAAS6xC,EAAOA,IAEpE,GADApkC,EAASunR,EAAOP,EAAS5iP,IACrBpkC,GAAU45Q,EAAcmN,EAAiB/mR,GAAS,OAAOA,EAC7D,OAAO,IAAI6mR,GAAO,EACtB,CACA3zR,EAAW+xR,EAAY+B,EAAUE,EACnC,CAEAh9Q,EAAOk9Q,EAAYJ,EAAS98Q,KAAOhX,EAASgX,KAC5C,QAASypE,EAAOnjF,EAAK0Z,EAAMhX,IAAWqX,KAAM,CAC1C,IACEvK,EAASunR,EAAO5zM,EAAKtgF,MACvB,CAAE,MAAOmH,GACP0kR,EAAchsR,EAAU,QAASsH,EACnC,CACA,GAAqB,iBAAVwF,GAAsBA,GAAU45Q,EAAcmN,EAAiB/mR,GAAS,OAAOA,CAC5F,CAAE,OAAO,IAAI6mR,GAAO,EACtB,C,oCCnEA,IAAIr2R,EAAO,EAAQ,MACfyuR,EAAW,EAAQ,MACnBsF,EAAY,EAAQ,MAExB7uR,EAAOrE,QAAU,SAAU6B,EAAUoqC,EAAMjqC,GACzC,IAAIm0R,EAAaC,EACjBxI,EAAS/rR,GACT,IAEE,GADAs0R,EAAcjD,EAAUrxR,EAAU,WAC7Bs0R,EAAa,CAChB,GAAa,UAATlqP,EAAkB,MAAMjqC,EAC5B,OAAOA,CACT,CACAm0R,EAAch3R,EAAKg3R,EAAat0R,EAClC,CAAE,MAAOsH,GACPitR,GAAa,EACbD,EAAchtR,CAChB,CACA,GAAa,UAAT8iC,EAAkB,MAAMjqC,EAC5B,GAAIo0R,EAAY,MAAMD,EAEtB,OADAvI,EAASuI,GACFn0R,CACT,C,oCCtBA,IAAI7C,EAAO,EAAQ,MACfw3C,EAAS,EAAQ,MACjByzO,EAA8B,EAAQ,MACtCiM,EAAiB,EAAQ,MACzB9L,EAAkB,EAAQ,MAC1BC,EAAsB,EAAQ,MAC9B0I,EAAY,EAAQ,MACpBoD,EAAoB,0BACpBC,EAAyB,EAAQ,MACjC1I,EAAgB,EAAQ,MAExB3C,EAAgBX,EAAgB,eAChCiM,EAAkB,iBAClBC,EAA0B,uBAC1BC,EAAmBlM,EAAoBx5Q,IAEvC2lR,EAA+B,SAAUX,GAC3C,IAAIrL,EAAmBH,EAAoBgK,UAAUwB,EAAcS,EAA0BD,GAE7F,OAAOH,EAAe1/O,EAAO2/O,GAAoB,CAC/Cz9Q,KAAM,WACJ,IAAIwhB,EAAQswP,EAAiB7rR,MAI7B,GAAIk3R,EAAa,OAAO37P,EAAMu8P,cAC9B,IACE,IAAIjoR,EAAS0rB,EAAMnhB,UAAOrR,EAAYwyB,EAAMu8P,cAC5C,OAAOL,EAAuB5nR,EAAQ0rB,EAAMnhB,KAC9C,CAAE,MAAO/P,GAEP,MADAkxB,EAAMnhB,MAAO,EACP/P,CACR,CACF,EACA,OAAU,WACR,IAAIkxB,EAAQswP,EAAiB7rR,MACzB+C,EAAWw4B,EAAMx4B,SAErB,GADAw4B,EAAMnhB,MAAO,EACT88Q,EAAa,CACf,IAAIa,EAAe3D,EAAUrxR,EAAU,UACvC,OAAOg1R,EAAe13R,EAAK03R,EAAch1R,GAAY00R,OAAuB1uR,GAAW,EACzF,CACA,GAAIwyB,EAAMq5F,MAAO,IACfm6J,EAAcxzP,EAAMq5F,MAAM7xH,SAAU,SACtC,CAAE,MAAOsH,GACP,OAAO0kR,EAAchsR,EAAU,QAASsH,EAC1C,CAEA,OADItH,GAAUgsR,EAAchsR,EAAU,UAC/B00R,OAAuB1uR,GAAW,EAC3C,GAEJ,EAEIivR,EAAgCH,GAA6B,GAC7DI,EAA0BJ,GAA6B,GAE3DvM,EAA4B2M,EAAyB7L,EAAe,mBAEpE7mR,EAAOrE,QAAU,SAAU42R,EAAaZ,GACtC,IAAIgB,EAAgB,SAAkBz/C,EAAQl9M,GACxCA,GACFA,EAAMx4B,SAAW01O,EAAO11O,SACxBw4B,EAAMxhB,KAAO0+N,EAAO1+N,MACfwhB,EAAQk9M,EACfl9M,EAAMjvB,KAAO4qR,EAAcS,EAA0BD,EACrDn8P,EAAMu8P,YAAcA,EACpBv8P,EAAM0sG,QAAU,EAChB1sG,EAAMnhB,MAAO,EACbw9Q,EAAiB53R,KAAMu7B,EACzB,EAIA,OAFA28P,EAAcj1R,UAAYi0R,EAAcc,EAAgCC,EAEjEC,CACT,C,mCC1EA,IAAI73R,EAAO,EAAQ,MACfuzR,EAAY,EAAQ,MACpB9E,EAAW,EAAQ,MACnB4F,EAAoB,EAAQ,MAC5ByD,EAAsB,EAAQ,MAC9BC,EAA+B,EAAQ,MAEvCF,EAAgBC,GAAoB,WACtC,IAAIp1R,EAAW/C,KAAK+C,SAChB8M,EAASi/Q,EAASzuR,EAAKL,KAAK+Z,KAAMhX,IAClCqX,EAAOpa,KAAKoa,OAASvK,EAAOuK,KAChC,IAAKA,EAAM,OAAOg+Q,EAA6Br1R,EAAU/C,KAAKq4R,OAAQ,CAACxoR,EAAO3M,MAAOlD,KAAKioI,YAAY,EACxG,IAIA1iI,EAAOrE,QAAU,SAAam3R,GAG5B,OAFAvJ,EAAS9uR,MACT4zR,EAAUyE,GACH,IAAIH,EAAcxD,EAAkB10R,MAAO,CAChDq4R,OAAQA,GAEZ,C,oCCtBA,IAcIb,EAAmBc,EAAmCC,EAdtD7I,EAAQ,EAAQ,MAChBvG,EAAa,EAAQ,MACrBv4Q,EAAW,EAAQ,IACnBinC,EAAS,EAAQ,MACjBqpC,EAAiB,EAAQ,MACzBqqM,EAAgB,EAAQ,MACxBE,EAAkB,EAAQ,MAC1B+M,EAAU,EAAQ,MAElBlE,EAAW7I,EAAgB,YAC3BgN,GAAyB,EAOzB,GAAGn3R,OACLi3R,EAAgB,GAAGj3R,OAEb,SAAUi3R,GAEdD,EAAoCp3M,EAAeA,EAAeq3M,IAC9DD,IAAsC/2R,OAAO0B,YAAWu0R,EAAoBc,IAHlDG,GAAyB,GAO3D,IAAIC,GAA0B9nR,EAAS4mR,IAAsB9H,GAAM,WACjE,IAAI7qR,EAAO,CAAC,EAEZ,OAAO2yR,EAAkBlD,GAAUj0R,KAAKwE,KAAUA,CACpD,IAEI6zR,EAAwBlB,EAAoB,CAAC,EACxCgB,IAAShB,EAAoB3/O,EAAO2/O,IAIxCrO,EAAWqO,EAAkBlD,KAChC/I,EAAciM,EAAmBlD,GAAU,WACzC,OAAOt0R,IACT,IAGFuF,EAAOrE,QAAU,CACfs2R,kBAAmBA,EACnBiB,uBAAwBA,E,gCC9C1BlzR,EAAOrE,QAAU,CAAC,C,oCCAlB,IAAIy3R,EAAW,EAAQ,MAIvBpzR,EAAOrE,QAAU,SAAU2B,GACzB,OAAO81R,EAAS91R,EAAIT,OACtB,C,mCCNA,IAAI2nR,EAAc,EAAQ,MACtB2F,EAAQ,EAAQ,MAChBvG,EAAa,EAAQ,MACrB1wD,EAAS,EAAQ,MACjB4yD,EAAc,EAAQ,MACtBuN,EAA6B,oBAC7BxD,EAAgB,EAAQ,MACxB1J,EAAsB,EAAQ,MAE9BC,EAAuBD,EAAoBE,QAC3CC,EAAmBH,EAAoB15Q,IACvCw3Q,EAAU/8Q,OAEV9J,EAAiBpB,OAAOoB,eACxBssR,EAAclF,EAAY,GAAGplR,OAC7B+B,EAAUqjR,EAAY,GAAGrjR,SACzBH,EAAOwjR,EAAY,GAAGxjR,MAEtBsyR,EAAsBxN,IAAgBqE,GAAM,WAC9C,OAAsF,IAA/E/sR,GAAe,WAA0B,GAAG,SAAU,CAAEO,MAAO,IAAKd,MAC7E,IAEI02R,EAAWrsR,OAAOA,QAAQnG,MAAM,UAEhCupR,EAActqR,EAAOrE,QAAU,SAAUgC,EAAO0B,EAAMjF,GACf,YAArCsvR,EAAYzF,EAAQ5kR,GAAO,EAAG,KAChCA,EAAO,IAAM8B,EAAQ8iR,EAAQ5kR,GAAO,wBAAyB,MAAQ,KAEnEjF,GAAWA,EAAQy9B,SAAQx4B,EAAO,OAASA,GAC3CjF,GAAWA,EAAQuxP,SAAQtsP,EAAO,OAASA,KAC1C6zN,EAAOv1N,EAAO,SAAY01R,GAA8B11R,EAAM0B,OAASA,KACtEymR,EAAa1oR,EAAeO,EAAO,OAAQ,CAAEA,MAAO0B,EAAMzB,cAAc,IACvED,EAAM0B,KAAOA,GAEhBi0R,GAAuBl5R,GAAW84N,EAAO94N,EAAS,UAAYuD,EAAMd,SAAWzC,EAAQo5R,OACzFp2R,EAAeO,EAAO,SAAU,CAAEA,MAAOvD,EAAQo5R,QAEnD,IACMp5R,GAAW84N,EAAO94N,EAAS,gBAAkBA,EAAQqD,YACnDqoR,GAAa1oR,EAAeO,EAAO,YAAa,CAAEE,UAAU,IAEvDF,EAAMD,YAAWC,EAAMD,eAAY8F,EAChD,CAAE,MAAOsB,GAAqB,CAC9B,IAAIkxB,EAAQowP,EAAqBzoR,GAG/B,OAFGu1N,EAAOl9L,EAAO,YACjBA,EAAMl5B,OAASkE,EAAKuyR,EAAyB,iBAARl0R,EAAmBA,EAAO,KACxD1B,CACX,EAIAsa,SAASva,UAAUyB,SAAWmrR,GAAY,WACxC,OAAO1G,EAAWnpR,OAAS6rR,EAAiB7rR,MAAMqC,QAAU+yR,EAAcp1R,KAC5E,GAAG,W,+BCrDH,IAAI2oG,EAAOz5F,KAAKy5F,KACZ5wE,EAAQ7oB,KAAK6oB,MAKjBxyB,EAAOrE,QAAUgO,KAAK8pR,OAAS,SAAe51M,GAC5C,IAAI3+E,GAAK2+E,EACT,OAAQ3+E,EAAI,EAAIszB,EAAQ4wE,GAAMlkG,EAChC,C,oCCTA,IAAIC,EAAW,EAAQ,KAEvBa,EAAOrE,QAAU,SAAUooR,EAAU2P,GACnC,YAAoBlwR,IAAbugR,EAAyBnnR,UAAUC,OAAS,EAAI,GAAK62R,EAAWv0R,EAAS4kR,EAClF,C,oCCHA,IAoDI4P,EApDApK,EAAW,EAAQ,MACnBqK,EAAyB,EAAQ,MACjCC,EAAc,EAAQ,MACtB5D,EAAa,EAAQ,KACrBp8K,EAAO,EAAQ,KACfigL,EAAwB,EAAQ,MAChC9D,EAAY,EAAQ,MAEpB+D,EAAK,IACLC,EAAK,IACLprR,EAAY,YACZqrR,EAAS,SACTC,EAAWlE,EAAU,YAErBmE,EAAmB,WAA0B,EAE7CC,EAAY,SAAUx0L,GACxB,OAAOo0L,EAAKC,EAASF,EAAKn0L,EAAUo0L,EAAK,IAAMC,EAASF,CAC1D,EAGIM,EAA4B,SAAUV,GACxCA,EAAgBW,MAAMF,EAAU,KAChCT,EAAgB//J,QAChB,IAAIg3F,EAAO+oE,EAAgBY,aAAav4R,OAGxC,OADA23R,EAAkB,KACX/oE,CACT,EAGI4pE,EAA2B,WAE7B,IAEIC,EAFAC,EAASZ,EAAsB,UAC/Ba,EAAK,OAASV,EAAS,IAU3B,OARAS,EAAOnyR,MAAMgyH,QAAU,OACvB1gB,EAAK+pD,YAAY82H,GAEjBA,EAAOr7Q,IAAMnS,OAAOytR,GACpBF,EAAiBC,EAAOE,cAAc9+M,SACtC2+M,EAAe/mQ,OACf+mQ,EAAeH,MAAMF,EAAU,sBAC/BK,EAAe7gK,QACR6gK,EAAetiF,CACxB,EAQI0iF,EAAkB,WACpB,IACElB,EAAkB,IAAImB,cAAc,WACtC,CAAE,MAAOhwR,GAAsB,CAC/B+vR,EAAqC,oBAAZ/+M,SACrBA,SAAS1iB,QAAUugO,EACjBU,EAA0BV,GAC1Ba,IACFH,EAA0BV,GAC9B,IAAI92R,EAASg3R,EAAYh3R,OACzB,MAAOA,WAAiBg4R,EAAgBjsR,GAAWirR,EAAYh3R,IAC/D,OAAOg4R,GACT,EAEA5E,EAAWiE,IAAY,EAKvBl0R,EAAOrE,QAAUK,OAAOs2C,QAAU,SAAgB08K,EAAG+lE,GACnD,IAAIzqR,EAQJ,OAPU,OAAN0kN,GACFmlE,EAAiBvrR,GAAa2gR,EAASv6D,GACvC1kN,EAAS,IAAI6pR,EACbA,EAAiBvrR,GAAa,KAE9B0B,EAAO4pR,GAAYllE,GACd1kN,EAASuqR,SACMrxR,IAAfuxR,EAA2BzqR,EAASspR,EAAuBhrM,EAAEt+E,EAAQyqR,EAC9E,C,oCCnFA,IAAIjP,EAAc,EAAQ,MACtBkP,EAA0B,EAAQ,MAClC9K,EAAuB,EAAQ,MAC/BX,EAAW,EAAQ,MACnBZ,EAAkB,EAAQ,MAC1BsM,EAAa,EAAQ,MAKzBt5R,EAAQitF,EAAIk9L,IAAgBkP,EAA0Bh5R,OAAOmB,iBAAmB,SAA0B6xN,EAAG+lE,GAC3GxL,EAASv6D,GACT,IAIIhyN,EAJAuG,EAAQolR,EAAgBoM,GACxBh5R,EAAOk5R,EAAWF,GAClBl4R,EAASd,EAAKc,OACd6xC,EAAQ,EAEZ,MAAO7xC,EAAS6xC,EAAOw7O,EAAqBthM,EAAEomI,EAAGhyN,EAAMjB,EAAK2yC,KAAUnrC,EAAMvG,IAC5E,OAAOgyN,CACT,C,oCCnBA,IAAI82D,EAAc,EAAQ,MACtBoP,EAAiB,EAAQ,MACzBF,EAA0B,EAAQ,MAClCzL,EAAW,EAAQ,MACnB4L,EAAgB,EAAQ,MAExBrR,EAAarkR,UAEb21R,EAAkBp5R,OAAOoB,eAEzBi4R,EAA4Br5R,OAAOK,yBACnCi5R,EAAa,aACb9G,EAAe,eACf+G,EAAW,WAIf55R,EAAQitF,EAAIk9L,EAAckP,EAA0B,SAAwBhmE,EAAG1iB,EAAGkpF,GAIhF,GAHAjM,EAASv6D,GACT1iB,EAAI6oF,EAAc7oF,GAClBi9E,EAASiM,GACQ,oBAANxmE,GAA0B,cAAN1iB,GAAqB,UAAWkpF,GAAcD,KAAYC,IAAeA,EAAWD,GAAW,CAC5H,IAAIt4E,EAAUo4E,EAA0BrmE,EAAG1iB,GACvC2Q,GAAWA,EAAQs4E,KACrBvmE,EAAE1iB,GAAKkpF,EAAW73R,MAClB63R,EAAa,CACX53R,aAAc4wR,KAAgBgH,EAAaA,EAAWhH,GAAgBvxE,EAAQuxE,GAC9ElyR,WAAYg5R,KAAcE,EAAaA,EAAWF,GAAcr4E,EAAQq4E,GACxEz3R,UAAU,GAGhB,CAAE,OAAOu3R,EAAgBpmE,EAAG1iB,EAAGkpF,EACjC,EAAIJ,EAAkB,SAAwBpmE,EAAG1iB,EAAGkpF,GAIlD,GAHAjM,EAASv6D,GACT1iB,EAAI6oF,EAAc7oF,GAClBi9E,EAASiM,GACLN,EAAgB,IAClB,OAAOE,EAAgBpmE,EAAG1iB,EAAGkpF,EAC/B,CAAE,MAAO1wR,GAAqB,CAC9B,GAAI,QAAS0wR,GAAc,QAASA,EAAY,MAAM,IAAI1R,EAAW,2BAErE,MADI,UAAW0R,IAAYxmE,EAAE1iB,GAAKkpF,EAAW73R,OACtCqxN,CACT,C,oCC1CA,IAAI82D,EAAc,EAAQ,MACtBhrR,EAAO,EAAQ,MACf26R,EAA6B,EAAQ,MACrCrL,EAA2B,EAAQ,MACnCzB,EAAkB,EAAQ,MAC1BwM,EAAgB,EAAQ,MACxBjiE,EAAS,EAAQ,MACjBgiE,EAAiB,EAAQ,MAGzBG,EAA4Br5R,OAAOK,yBAIvCV,EAAQitF,EAAIk9L,EAAcuP,EAA4B,SAAkCrmE,EAAG1iB,GAGzF,GAFA0iB,EAAI25D,EAAgB35D,GACpB1iB,EAAI6oF,EAAc7oF,GACd4oF,EAAgB,IAClB,OAAOG,EAA0BrmE,EAAG1iB,EACtC,CAAE,MAAOxnM,GAAqB,CAC9B,GAAIouN,EAAOlE,EAAG1iB,GAAI,OAAO89E,GAA0BtvR,EAAK26R,EAA2B7sM,EAAGomI,EAAG1iB,GAAI0iB,EAAE1iB,GACjG,C,oCCrBA,IAAIopF,EAAqB,EAAQ,MAC7B7B,EAAc,EAAQ,MAEtB5D,EAAa4D,EAAYn4R,OAAO,SAAU,aAK9CC,EAAQitF,EAAI5sF,OAAOqhF,qBAAuB,SAA6B2xI,GACrE,OAAO0mE,EAAmB1mE,EAAGihE,EAC/B,C,kCCTAt0R,EAAQitF,EAAI5sF,OAAOC,qB,oCCDnB,IAAIi3N,EAAS,EAAQ,MACjB0wD,EAAa,EAAQ,MACrB99B,EAAW,EAAQ,MACnBkqC,EAAY,EAAQ,MACpB2F,EAA2B,EAAQ,MAEnCzB,EAAWlE,EAAU,YACrBnG,EAAU7tR,OACV4qR,EAAkBiD,EAAQnsR,UAK9BsC,EAAOrE,QAAUg6R,EAA2B9L,EAAQluM,eAAiB,SAAUqzI,GAC7E,IAAInzN,EAASiqP,EAAS92B,GACtB,GAAIkE,EAAOr3N,EAAQq4R,GAAW,OAAOr4R,EAAOq4R,GAC5C,IAAIz2R,EAAc5B,EAAO4B,YACzB,OAAImmR,EAAWnmR,IAAgB5B,aAAkB4B,EACxCA,EAAYC,UACZ7B,aAAkBguR,EAAUjD,EAAkB,IACzD,C,oCCpBA,IAAIpC,EAAc,EAAQ,MAE1BxkR,EAAOrE,QAAU6oR,EAAY,CAAC,EAAEN,c,oCCFhC,IAAIM,EAAc,EAAQ,MACtBtxD,EAAS,EAAQ,MACjBy1D,EAAkB,EAAQ,MAC1B1qR,EAAU,gBACVgyR,EAAa,EAAQ,KAErB1zR,EAAOioR,EAAY,GAAGjoR,MAE1ByD,EAAOrE,QAAU,SAAUE,EAAQ+4F,GACjC,IAGI53F,EAHAgyN,EAAI25D,EAAgB9sR,GACpBc,EAAI,EACJ2N,EAAS,GAEb,IAAKtN,KAAOgyN,GAAIkE,EAAO+8D,EAAYjzR,IAAQk2N,EAAOlE,EAAGhyN,IAAQT,EAAK+N,EAAQtN,GAE1E,MAAO43F,EAAM/3F,OAASF,EAAOu2N,EAAOlE,EAAGhyN,EAAM43F,EAAMj4F,SAChDsB,EAAQqM,EAAQtN,IAAQT,EAAK+N,EAAQtN,IAExC,OAAOsN,CACT,C,oCCnBA,IAAIorR,EAAqB,EAAQ,MAC7B7B,EAAc,EAAQ,MAK1B7zR,EAAOrE,QAAUK,OAAOD,MAAQ,SAAcizN,GAC5C,OAAO0mE,EAAmB1mE,EAAG6kE,EAC/B,C,kCCRA,IAAI+B,EAAwB,CAAC,EAAEx3R,qBAE3B/B,EAA2BL,OAAOK,yBAGlCw5R,EAAcx5R,IAA6Bu5R,EAAsB96R,KAAK,CAAE,EAAG,GAAK,GAIpFa,EAAQitF,EAAIitM,EAAc,SAA8BplE,GACtD,IAAIrzI,EAAa/gF,EAAyB5B,KAAMg2N,GAChD,QAASrzI,GAAcA,EAAW9gF,UACpC,EAAIs5R,C,oCCXJ,IAAIvR,EAAsB,EAAQ,MAC9Bh5Q,EAAW,EAAQ,IACnByqR,EAAyB,EAAQ,MACjCC,EAAqB,EAAQ,MAMjC/1R,EAAOrE,QAAUK,OAAO0/E,iBAAmB,aAAe,CAAC,EAAI,WAC7D,IAEIiwK,EAFAqqC,GAAiB,EACjB12R,EAAO,CAAC,EAEZ,IACEqsP,EAAS04B,EAAoBroR,OAAO0B,UAAW,YAAa,OAC5DiuP,EAAOrsP,EAAM,IACb02R,EAAiB12R,aAAgBX,KACnC,CAAE,MAAOmG,GAAqB,CAC9B,OAAO,SAAwBkqN,EAAG74M,GAGhC,OAFA2/Q,EAAuB9mE,GACvB+mE,EAAmB5/Q,GACd9K,EAAS2jN,IACVgnE,EAAgBrqC,EAAO38B,EAAG74M,GACzB64M,EAAEltM,UAAY3L,EACZ64M,GAHkBA,CAI3B,CACF,CAjB+D,QAiBzDxrN,E,oCC3BN,IAAI1I,EAAO,EAAQ,MACf8oR,EAAa,EAAQ,MACrBv4Q,EAAW,EAAQ,IAEnBy4Q,EAAarkR,UAIjBO,EAAOrE,QAAU,SAAUglC,EAAOs1P,GAChC,IAAI/gR,EAAIpR,EACR,GAAa,WAATmyR,GAAqBrS,EAAW1uQ,EAAKyrB,EAAMxhC,YAAckM,EAASvH,EAAMhJ,EAAKoa,EAAIyrB,IAAS,OAAO78B,EACrG,GAAI8/Q,EAAW1uQ,EAAKyrB,EAAM86C,WAAapwE,EAASvH,EAAMhJ,EAAKoa,EAAIyrB,IAAS,OAAO78B,EAC/E,GAAa,WAATmyR,GAAqBrS,EAAW1uQ,EAAKyrB,EAAMxhC,YAAckM,EAASvH,EAAMhJ,EAAKoa,EAAIyrB,IAAS,OAAO78B,EACrG,MAAM,IAAIggR,EAAW,0CACvB,C,oCCdA,IAAI2L,EAAa,EAAQ,MACrBjL,EAAc,EAAQ,MACtB0R,EAA4B,EAAQ,MACpCC,EAA8B,EAAQ,MACtC5M,EAAW,EAAQ,MAEnB7tR,EAAS8oR,EAAY,GAAG9oR,QAG5BsE,EAAOrE,QAAU8zR,EAAW,UAAW,YAAc,SAAiB7qD,GACpE,IAAI7oO,EAAOm6R,EAA0BttM,EAAE2gM,EAAS3kD,IAC5C3oO,EAAwBk6R,EAA4BvtM,EACxD,OAAO3sF,EAAwBP,EAAOK,EAAME,EAAsB2oO,IAAO7oO,CAC3E,C,oCCbA,IAAIiP,EAAoB,EAAQ,MAE5B84Q,EAAarkR,UAIjBO,EAAOrE,QAAU,SAAUipO,GACzB,GAAI55N,EAAkB45N,GAAK,MAAM,IAAIk/C,EAAW,wBAA0Bl/C,GAC1E,OAAOA,CACT,C,oCCTA,IAAIjlO,EAAa,EAAQ,MACrBnD,EAAQ,EAAQ,MAChBonR,EAAa,EAAQ,MACrBkJ,EAAc,EAAQ,MACtBp2M,EAAa,EAAQ,MACrB0/M,EAAa,EAAQ,MACrBC,EAA0B,EAAQ,MAElCp+Q,EAAWtY,EAAWsY,SAEtBq+Q,EAAO,WAAWh3R,KAAKo3E,IAA+B,QAAhBo2M,GAAyB,WACjE,IAAI/5P,EAAUpzB,EAAWutR,IAAIn6P,QAAQhyB,MAAM,KAC3C,OAAOgyB,EAAQl2B,OAAS,GAAoB,MAAfk2B,EAAQ,KAAeA,EAAQ,GAAK,GAAoB,MAAfA,EAAQ,IAA6B,MAAfA,EAAQ,GACrG,CAHkE,GAQnE/yB,EAAOrE,QAAU,SAAU46R,EAAWC,GACpC,IAAIC,EAAkBD,EAAa,EAAI,EACvC,OAAOF,EAAO,SAAUp9Q,EAAS4D,GAC/B,IAAI45Q,EAAYL,EAAwBz5R,UAAUC,OAAQ,GAAK45R,EAC3DvhR,EAAK0uQ,EAAW1qQ,GAAWA,EAAUjB,EAASiB,GAC9Cq2M,EAASmnE,EAAYN,EAAWx5R,UAAW65R,GAAmB,GAC9D50R,EAAW60R,EAAY,WACzBl6R,EAAM0Y,EAAIza,KAAM80N,EAClB,EAAIr6M,EACJ,OAAOshR,EAAaD,EAAU10R,EAAUib,GAAWy5Q,EAAU10R,EAC/D,EAAI00R,CACN,C,oCC7BA,IAAII,EAAa,EAAQ,MACrBhgP,EAAU,EAAQ,MAElBimL,EAAM+5D,EAAW/5D,IACjB5hO,EAAM27R,EAAW37R,IAErBgF,EAAOrE,QAAU,SAAUgR,GACzB,IAAIrC,EAAS,IAAIsyN,EAIjB,OAHAjmL,EAAQhqC,GAAK,SAAUi4N,GACrB5pO,EAAIsP,EAAQs6N,EACd,IACOt6N,CACT,C,oCCZA,IAAIssR,EAAO,EAAQ,MACfD,EAAa,EAAQ,MACrBtqQ,EAAQ,EAAQ,MAChBtmB,EAAO,EAAQ,MACf8wR,EAAe,EAAQ,MACvBC,EAAa,EAAQ,MACrBC,EAAgB,EAAQ,KAExB77M,EAAMy7M,EAAWz7M,IACjBhzB,EAASyuO,EAAWzuO,OAIxBloD,EAAOrE,QAAU,SAAoBq7R,GACnC,IAAIhoE,EAAI4nE,EAAKn8R,MACTw8R,EAAWJ,EAAaG,GACxB1sR,EAAS+hB,EAAM2iM,GAOnB,OANIjpN,EAAKipN,IAAMioE,EAASlxR,KAAM+wR,EAAW9nE,GAAG,SAAUtqN,GAChDuyR,EAAS7sM,SAAS1lF,IAAIwjD,EAAO59C,EAAQ5F,EAC3C,IACKqyR,EAAcE,EAAS1H,eAAe,SAAU7qR,GAC/Cw2E,EAAI8zI,EAAGtqN,IAAIwjD,EAAO59C,EAAQ5F,EAChC,IACO4F,CACT,C,oCCxBA,IAAIk6Q,EAAc,EAAQ,MAGtB0S,EAAet6D,IAAIl/N,UAEvBsC,EAAOrE,QAAU,CAEfihO,IAAKA,IACL5hO,IAAKwpR,EAAY0S,EAAal8R,KAC9BkgF,IAAKspM,EAAY0S,EAAah8M,KAC9BhzB,OAAQs8N,EAAY0S,EAAa,WACjC/gR,MAAO+gR,E,oCCXT,IAAIN,EAAO,EAAQ,MACfD,EAAa,EAAQ,MACrB5wR,EAAO,EAAQ,MACf8wR,EAAe,EAAQ,MACvBC,EAAa,EAAQ,MACrBC,EAAgB,EAAQ,KAExBn6D,EAAM+5D,EAAW/5D,IACjB5hO,EAAM27R,EAAW37R,IACjBkgF,EAAMy7M,EAAWz7M,IAIrBl7E,EAAOrE,QAAU,SAAsBq7R,GACrC,IAAIhoE,EAAI4nE,EAAKn8R,MACTw8R,EAAWJ,EAAaG,GACxB1sR,EAAS,IAAIsyN,EAYjB,OAVI72N,EAAKipN,GAAKioE,EAASlxR,KACrBgxR,EAAcE,EAAS1H,eAAe,SAAU7qR,GAC1Cw2E,EAAI8zI,EAAGtqN,IAAI1J,EAAIsP,EAAQ5F,EAC7B,IAEAoyR,EAAW9nE,GAAG,SAAUtqN,GAClBuyR,EAAS7sM,SAAS1lF,IAAI1J,EAAIsP,EAAQ5F,EACxC,IAGK4F,CACT,C,oCC7BA,IAAIssR,EAAO,EAAQ,MACf17M,EAAM,YACNn1E,EAAO,EAAQ,MACf8wR,EAAe,EAAQ,MACvBC,EAAa,EAAQ,MACrBC,EAAgB,EAAQ,KACxBvN,EAAgB,EAAQ,MAI5BxpR,EAAOrE,QAAU,SAAwBq7R,GACvC,IAAIhoE,EAAI4nE,EAAKn8R,MACTw8R,EAAWJ,EAAaG,GAC5B,GAAIjxR,EAAKipN,IAAMioE,EAASlxR,KAAM,OAEjB,IAFwB+wR,EAAW9nE,GAAG,SAAUtqN,GAC3D,GAAIuyR,EAAS7sM,SAAS1lF,GAAI,OAAO,CACnC,IAAG,GACH,IAAIlH,EAAWy5R,EAAS1H,cACxB,OAEO,IAFAwH,EAAcv5R,GAAU,SAAUkH,GACvC,GAAIw2E,EAAI8zI,EAAGtqN,GAAI,OAAO8kR,EAAchsR,EAAU,UAAU,EAC1D,GACF,C,oCCpBA,IAAIo5R,EAAO,EAAQ,MACf7wR,EAAO,EAAQ,MACf4wC,EAAU,EAAQ,MAClBkgP,EAAe,EAAQ,MAI3B72R,EAAOrE,QAAU,SAAoBq7R,GACnC,IAAIhoE,EAAI4nE,EAAKn8R,MACTw8R,EAAWJ,EAAaG,GAC5B,QAAIjxR,EAAKipN,GAAKioE,EAASlxR,QAGV,IAFN4wC,EAAQq4K,GAAG,SAAUtqN,GAC1B,IAAKuyR,EAAS7sM,SAAS1lF,GAAI,OAAO,CACpC,IAAG,EACL,C,oCCdA,IAAIkyR,EAAO,EAAQ,MACf17M,EAAM,YACNn1E,EAAO,EAAQ,MACf8wR,EAAe,EAAQ,MACvBE,EAAgB,EAAQ,KACxBvN,EAAgB,EAAQ,MAI5BxpR,EAAOrE,QAAU,SAAsBq7R,GACrC,IAAIhoE,EAAI4nE,EAAKn8R,MACTw8R,EAAWJ,EAAaG,GAC5B,GAAIjxR,EAAKipN,GAAKioE,EAASlxR,KAAM,OAAO,EACpC,IAAIvI,EAAWy5R,EAAS1H,cACxB,OAEO,IAFAwH,EAAcv5R,GAAU,SAAUkH,GACvC,IAAKw2E,EAAI8zI,EAAGtqN,GAAI,OAAO8kR,EAAchsR,EAAU,UAAU,EAC3D,GACF,C,oCCjBA,IAAIgnR,EAAc,EAAQ,MACtBuS,EAAgB,EAAQ,KACxBJ,EAAa,EAAQ,MAErB/5D,EAAM+5D,EAAW/5D,IACjBs6D,EAAeP,EAAWxgR,MAC1BpZ,EAAUynR,EAAY0S,EAAan6R,SACnChB,EAAOyoR,EAAY0S,EAAan7R,MAChCyY,EAAOzY,EAAK,IAAI6gO,GAAOpoN,KAE3BxU,EAAOrE,QAAU,SAAUgR,EAAKuI,EAAIiiR,GAClC,OAAOA,EAAgBJ,EAAc,CAAEv5R,SAAUzB,EAAK4Q,GAAM6H,KAAMA,GAAQU,GAAMnY,EAAQ4P,EAAKuI,EAC/F,C,oCCZA,IAAIu6Q,EAAa,EAAQ,MAErB2H,EAAgB,SAAUrxR,GAC5B,MAAO,CACLA,KAAMA,EACNm1E,IAAK,WACH,OAAO,CACT,EACAn/E,KAAM,WACJ,MAAO,CACLyY,KAAM,WACJ,MAAO,CAAEK,MAAM,EACjB,EAEJ,EAEJ,EAEA7U,EAAOrE,QAAU,SAAU0D,GACzB,IAAIu9N,EAAM6yD,EAAW,OACrB,KACE,IAAI7yD,GAAMv9N,GAAM+3R,EAAc,IAC9B,IAIE,OADA,IAAIx6D,GAAMv9N,GAAM+3R,GAAe,KACxB,CACT,CAAE,MAAO7O,GACP,OAAO,CACT,CACF,CAAE,MAAOzjR,GACP,OAAO,CACT,CACF,C,oCCjCA,IAAIu/Q,EAAsB,EAAQ,MAC9BsS,EAAa,EAAQ,MAEzB32R,EAAOrE,QAAU0oR,EAAoBsS,EAAWxgR,MAAO,OAAQ,QAAU,SAAUxJ,GACjF,OAAOA,EAAI5G,IACb,C,oCCLA,IAAI6wR,EAAO,EAAQ,MACfD,EAAa,EAAQ,MACrBtqQ,EAAQ,EAAQ,MAChBwqQ,EAAe,EAAQ,MACvBE,EAAgB,EAAQ,KAExB/7R,EAAM27R,EAAW37R,IACjBkgF,EAAMy7M,EAAWz7M,IACjBhzB,EAASyuO,EAAWzuO,OAIxBloD,EAAOrE,QAAU,SAA6Bq7R,GAC5C,IAAIhoE,EAAI4nE,EAAKn8R,MACT48R,EAAWR,EAAaG,GAAOzH,cAC/BjlR,EAAS+hB,EAAM2iM,GAKnB,OAJA+nE,EAAcM,GAAU,SAAU3yR,GAC5Bw2E,EAAI8zI,EAAGtqN,GAAIwjD,EAAO59C,EAAQ5F,GACzB1J,EAAIsP,EAAQ5F,EACnB,IACO4F,CACT,C,oCCrBA,IAAIssR,EAAO,EAAQ,MACf57R,EAAM,YACNqxB,EAAQ,EAAQ,MAChBwqQ,EAAe,EAAQ,MACvBE,EAAgB,EAAQ,KAI5B/2R,EAAOrE,QAAU,SAAeq7R,GAC9B,IAAIhoE,EAAI4nE,EAAKn8R,MACT48R,EAAWR,EAAaG,GAAOzH,cAC/BjlR,EAAS+hB,EAAM2iM,GAInB,OAHA+nE,EAAcM,GAAU,SAAUzyD,GAChC5pO,EAAIsP,EAAQs6N,EACd,IACOt6N,CACT,C,oCChBA,IAAIylR,EAAS,EAAQ,MACjB72P,EAAM,EAAQ,MAEdn9B,EAAOg0R,EAAO,QAElB/vR,EAAOrE,QAAU,SAAUqB,GACzB,OAAOjB,EAAKiB,KAASjB,EAAKiB,GAAOk8B,EAAIl8B,GACvC,C,oCCPA,IAAIi2R,EAAU,EAAQ,MAClBtzR,EAAa,EAAQ,MACrB4qR,EAAuB,EAAQ,MAE/B+M,EAAS,qBACT7a,EAAQz8Q,EAAOrE,QAAUgE,EAAW23R,IAAW/M,EAAqB+M,EAAQ,CAAC,IAEhF7a,EAAM7oQ,WAAa6oQ,EAAM7oQ,SAAW,KAAKrX,KAAK,CAC7Cw2B,QAAS,SACT+tE,KAAMmyL,EAAU,OAAS,SACzBsE,UAAW,4CACXC,QAAS,2DACT16R,OAAQ,uC,oCCZV,IAAI2/Q,EAAQ,EAAQ,MAEpBz8Q,EAAOrE,QAAU,SAAUqB,EAAKW,GAC9B,OAAO8+Q,EAAMz/Q,KAASy/Q,EAAMz/Q,GAAOW,GAAS,CAAC,EAC/C,C,oCCJA,IAAIgC,EAAa,EAAQ,MACrBwqR,EAAQ,EAAQ,MAChBsN,EAAK,EAAQ,MACb3K,EAAc,EAAQ,MAEtB9H,EAAkBrlR,EAAWqlR,gBAEjChlR,EAAOrE,UAAYqpR,IAAoBmF,GAAM,WAG3C,GAAqB,SAAhB2C,GAA0B2K,EAAK,IAAwB,SAAhB3K,GAA0B2K,EAAK,IAAwB,YAAhB3K,GAA6B2K,EAAK,GAAK,OAAO,EACjI,IAAIjhO,EAAS,IAAI2tN,YAAY,GACzB93P,EAAQ24P,EAAgBxuN,EAAQ,CAAEmvN,SAAU,CAACnvN,KACjD,OAA6B,IAAtBA,EAAO+tN,YAAyC,IAArBl4P,EAAMk4P,UAC1C,G,oCCbA,IAAImT,EAAa,EAAQ,MACrBvN,EAAQ,EAAQ,MAChBxqR,EAAa,EAAQ,MAErBskR,EAAUtkR,EAAWuH,OAGzBlH,EAAOrE,UAAYK,OAAOC,wBAA0BkuR,GAAM,WACxD,IAAI1iR,EAASlK,OAAO,oBAKpB,OAAQ0mR,EAAQx8Q,MAAazL,OAAOyL,aAAmBlK,UAEpDA,OAAOg+E,MAAQm8M,GAAcA,EAAa,EAC/C,G,oCCjBA,IAuBIC,EAAWC,EAAO3mN,EAASloC,EAvB3BppC,EAAa,EAAQ,MACrBnD,EAAQ,EAAQ,MAChBmH,EAAO,EAAQ,MACfigR,EAAa,EAAQ,MACrB1wD,EAAS,EAAQ,MACjBi3D,EAAQ,EAAQ,MAChBt2K,EAAO,EAAQ,KACfuiL,EAAa,EAAQ,MACrBzuR,EAAgB,EAAQ,MACxB0uR,EAA0B,EAAQ,MAClCwB,EAAS,EAAQ,MACjBnJ,EAAU,EAAQ,MAElB/hR,EAAMhN,EAAW26P,aACjB71D,EAAQ9kM,EAAWm4R,eACnBh2R,EAAUnC,EAAWmC,QACrBi2R,EAAWp4R,EAAWo4R,SACtB9/Q,EAAWtY,EAAWsY,SACtBkwL,EAAiBxoM,EAAWwoM,eAC5BjhM,EAASvH,EAAWuH,OACpBw7H,EAAU,EACV/kG,EAAQ,CAAC,EACTq6P,EAAqB,qBAGzB7N,GAAM,WAEJwN,EAAYh4R,EAAWmwB,QACzB,IAEA,IAAI+3B,EAAM,SAAUx0B,GAClB,GAAI6/L,EAAOv1L,EAAOtK,GAAK,CACrB,IAAIne,EAAKyoB,EAAMtK,UACRsK,EAAMtK,GACbne,GACF,CACF,EAEI+iR,EAAS,SAAU5kQ,GACrB,OAAO,WACLw0B,EAAIx0B,EACN,CACF,EAEI6kQ,EAAgB,SAAU/zO,GAC5B0D,EAAI1D,EAAM1gD,KACZ,EAEI00R,EAAyB,SAAU9kQ,GAErC1zB,EAAWmpM,YAAY5hM,EAAOmsB,GAAKskQ,EAAU7uP,SAAW,KAAO6uP,EAAUnvP,KAC3E,EAGK77B,GAAQ83L,IACX93L,EAAM,SAAsBuM,GAC1Bm9Q,EAAwBz5R,UAAUC,OAAQ,GAC1C,IAAIqY,EAAK0uQ,EAAW1qQ,GAAWA,EAAUjB,EAASiB,GAC9Cud,EAAO2/P,EAAWx5R,UAAW,GAKjC,OAJA+gC,IAAQ+kG,GAAW,WACjBlmI,EAAM0Y,OAAI1R,EAAWizB,EACvB,EACAmhQ,EAAMl1J,GACCA,CACT,EACA+hE,EAAQ,SAAwBpxK,UACvBsK,EAAMtK,EACf,EAEIq7P,EACFkJ,EAAQ,SAAUvkQ,GAChBvxB,EAAQipF,SAASktM,EAAO5kQ,GAC1B,EAES0kQ,GAAYA,EAASzgR,IAC9BsgR,EAAQ,SAAUvkQ,GAChB0kQ,EAASzgR,IAAI2gR,EAAO5kQ,GACtB,EAGS80K,IAAmB0vF,GAC5B5mN,EAAU,IAAIk3H,EACdp/J,EAAOkoC,EAAQ43H,MACf53H,EAAQ03H,MAAMC,UAAYsvF,EAC1BN,EAAQj0R,EAAKolC,EAAK+/J,YAAa//J,IAI/BppC,EAAWo3E,kBACX6sM,EAAWjkR,EAAWmpM,eACrBnpM,EAAWuoM,eACZyvF,GAAoC,UAAvBA,EAAU7uP,WACtBqhP,EAAMgO,IAEPP,EAAQO,EACRx4R,EAAWo3E,iBAAiB,UAAWmhN,GAAe,IAGtDN,EADSI,KAAsBrwR,EAAc,UACrC,SAAU0rB,GAChBwgF,EAAK+pD,YAAYj2J,EAAc,WAAWqwR,GAAsB,WAC9DnkL,EAAK7b,YAAYv9F,MACjBotD,EAAIx0B,EACN,CACF,EAGQ,SAAUA,GAChB5W,WAAWw7Q,EAAO5kQ,GAAK,EACzB,GAIJrzB,EAAOrE,QAAU,CACfgR,IAAKA,EACL83L,MAAOA,E,oCClHT,IAAIykF,EAAsB,EAAQ,MAE9Bt4P,EAAMjnB,KAAKinB,IACXgR,EAAMj4B,KAAKi4B,IAKf5hC,EAAOrE,QAAU,SAAU+yC,EAAO7xC,GAChC,IAAI44F,EAAUyzL,EAAoBx6O,GAClC,OAAO+mD,EAAU,EAAI7kE,EAAI6kE,EAAU54F,EAAQ,GAAK+kC,EAAI6zD,EAAS54F,EAC/D,C,oCCXA,IAAI6S,EAAc,EAAQ,MAEtBo0Q,EAAarkR,UAIjBO,EAAOrE,QAAU,SAAUooR,GACzB,IAAIqU,EAAO1oR,EAAYq0Q,EAAU,UACjC,GAAmB,iBAARqU,EAAkB,MAAM,IAAItU,EAAW,kCAElD,OAAOuU,OAAOD,EAChB,C,oCCXA,IAAIlP,EAAsB,EAAQ,MAC9BkK,EAAW,EAAQ,MAEnBjK,EAAcC,WAIlBppR,EAAOrE,QAAU,SAAUipO,GACzB,QAAWphO,IAAPohO,EAAkB,OAAO,EAC7B,IAAIhyM,EAASs2P,EAAoBtkD,GAC7B/nO,EAASu2R,EAASxgQ,GACtB,GAAIA,IAAW/1B,EAAQ,MAAM,IAAIssR,EAAY,yBAC7C,OAAOtsR,CACT,C,oCCZA,IAAIy7R,EAAgB,EAAQ,MACxBxC,EAAyB,EAAQ,MAErC91R,EAAOrE,QAAU,SAAUipO,GACzB,OAAO0zD,EAAcxC,EAAuBlxD,GAC9C,C,oCCNA,IAAI6uD,EAAQ,EAAQ,KAIpBzzR,EAAOrE,QAAU,SAAUooR,GACzB,IAAInxP,GAAUmxP,EAEd,OAAOnxP,IAAWA,GAAqB,IAAXA,EAAe,EAAI6gQ,EAAM7gQ,EACvD,C,oCCRA,IAAIs2P,EAAsB,EAAQ,MAE9BtnP,EAAMj4B,KAAKi4B,IAIf5hC,EAAOrE,QAAU,SAAUooR,GACzB,IAAIxkR,EAAM2pR,EAAoBnF,GAC9B,OAAOxkR,EAAM,EAAIqiC,EAAIriC,EAAK,kBAAoB,CAChD,C,oCCTA,IAAIu2R,EAAyB,EAAQ,MAEjCjM,EAAU7tR,OAIdgE,EAAOrE,QAAU,SAAUooR,GACzB,OAAO8F,EAAQiM,EAAuB/R,GACxC,C,oCCRA,IAAIjpR,EAAO,EAAQ,MACfuQ,EAAW,EAAQ,IACnBktR,EAAW,EAAQ,KACnB1J,EAAY,EAAQ,MACpB2J,EAAsB,EAAQ,MAC9BtS,EAAkB,EAAQ,MAE1BpC,EAAarkR,UACbg5R,EAAevS,EAAgB,eAInClmR,EAAOrE,QAAU,SAAUglC,EAAOs1P,GAChC,IAAK5qR,EAASs1B,IAAU43P,EAAS53P,GAAQ,OAAOA,EAChD,IACIr2B,EADAouR,EAAe7J,EAAUluP,EAAO83P,GAEpC,GAAIC,EAAc,CAGhB,QAFal1R,IAATyyR,IAAoBA,EAAO,WAC/B3rR,EAASxP,EAAK49R,EAAc/3P,EAAOs1P,IAC9B5qR,EAASf,IAAWiuR,EAASjuR,GAAS,OAAOA,EAClD,MAAM,IAAIw5Q,EAAW,0CACvB,CAEA,YADatgR,IAATyyR,IAAoBA,EAAO,UACxBuC,EAAoB73P,EAAOs1P,EACpC,C,oCCxBA,IAAIvmR,EAAc,EAAQ,MACtB6oR,EAAW,EAAQ,KAIvBv4R,EAAOrE,QAAU,SAAUooR,GACzB,IAAI/mR,EAAM0S,EAAYq0Q,EAAU,UAChC,OAAOwU,EAASv7R,GAAOA,EAAMA,EAAM,EACrC,C,oCCRA,IAAIkpR,EAAkB,EAAQ,MAE1BW,EAAgBX,EAAgB,eAChC5mR,EAAO,CAAC,EAEZA,EAAKunR,GAAiB,IAEtB7mR,EAAOrE,QAA2B,eAAjBuL,OAAO5H,E,mCCPxB,IAAIglR,EAAU,EAAQ,MAElBL,EAAU/8Q,OAEdlH,EAAOrE,QAAU,SAAUooR,GACzB,GAA0B,WAAtBO,EAAQP,GAAwB,MAAM,IAAItkR,UAAU,6CACxD,OAAOwkR,EAAQF,EACjB,C,gCCPA,IAAIE,EAAU/8Q,OAEdlH,EAAOrE,QAAU,SAAUooR,GACzB,IACE,OAAOE,EAAQF,EACjB,CAAE,MAAOj/Q,GACP,MAAO,QACT,CACF,C,oCCRA,IAAI0/Q,EAAc,EAAQ,MAEtBnxP,EAAK,EACLslQ,EAAUhvR,KAAKuoB,SACf/yB,EAAWqlR,EAAY,GAAIrlR,UAE/Ba,EAAOrE,QAAU,SAAUqB,GACzB,MAAO,gBAAqBwG,IAARxG,EAAoB,GAAKA,GAAO,KAAOmC,IAAWk0B,EAAKslQ,EAAS,GACtF,C,oCCPA,IAAIC,EAAgB,EAAQ,MAE5B54R,EAAOrE,QAAUi9R,IACdr7R,OAAOg+E,MACkB,iBAAnBh+E,OAAOC,Q,oCCLhB,IAAIsoR,EAAc,EAAQ,MACtBqE,EAAQ,EAAQ,MAIpBnqR,EAAOrE,QAAUmqR,GAAeqE,GAAM,WAEpC,OAGiB,KAHVnuR,OAAOoB,gBAAe,WAA0B,GAAG,YAAa,CACrEO,MAAO,GACPE,UAAU,IACTH,SACL,G,gCCXA,IAAIomR,EAAarkR,UAEjBO,EAAOrE,QAAU,SAAUukM,EAAQ94L,GACjC,GAAI84L,EAAS94L,EAAU,MAAM,IAAI08Q,EAAW,wBAC5C,OAAO5jF,CACT,C,oCCLA,IAAIvgM,EAAa,EAAQ,MACrBikR,EAAa,EAAQ,MAErBx8I,EAAUznI,EAAWynI,QAEzBpnI,EAAOrE,QAAUioR,EAAWx8I,IAAY,cAAc9nI,KAAK4H,OAAOkgI,G,oCCLlE,IAAIznI,EAAa,EAAQ,MACrBowR,EAAS,EAAQ,MACjB78D,EAAS,EAAQ,MACjBh6L,EAAM,EAAQ,MACd0/P,EAAgB,EAAQ,MACxB7H,EAAoB,EAAQ,MAE5BxzR,EAASoC,EAAWpC,OACpBs7R,EAAwB9I,EAAO,OAC/B+I,EAAwB/H,EAAoBxzR,EAAO,QAAUA,EAASA,GAAUA,EAAOw7R,eAAiB7/P,EAE5Gl5B,EAAOrE,QAAU,SAAU0D,GAKvB,OAJG6zN,EAAO2lE,EAAuBx5R,KACjCw5R,EAAsBx5R,GAAQu5R,GAAiB1lE,EAAO31N,EAAQ8B,GAC1D9B,EAAO8B,GACPy5R,EAAsB,UAAYz5R,IAC/Bw5R,EAAsBx5R,EACjC,C,oCCjBA,IAAIymR,EAAc,EAAQ,MACtBG,EAAwB,EAAQ,MAChCtB,EAAa,EAAQ,MAErBD,EAAuBP,YAAYzmR,UAInCooR,KAAiB,aAAcpB,IACjCuB,EAAsBvB,EAAsB,WAAY,CACtD9mR,cAAc,EACd6O,IAAK,WACH,OAAOk4Q,EAAWlqR,KACpB,G,oCCbJ,IAAIy1N,EAAI,EAAQ,MACZ8oE,EAAY,EAAQ,MAIpBA,GAAW9oE,EAAE,CAAExzN,OAAQ,cAAeyZ,OAAO,GAAQ,CACvD8iR,sBAAuB,WACrB,OAAOD,EAAUv+R,KAAMmC,UAAUC,OAASD,UAAU,QAAK4G,GAAW,EACtE,G,oCCRF,IAAI0sN,EAAI,EAAQ,MACZ8oE,EAAY,EAAQ,MAIpBA,GAAW9oE,EAAE,CAAExzN,OAAQ,cAAeyZ,OAAO,GAAQ,CACvDwvQ,SAAU,WACR,OAAOqT,EAAUv+R,KAAMmC,UAAUC,OAASD,UAAU,QAAK4G,GAAW,EACtE,G,oCCRF,IAAI0sN,EAAI,EAAQ,MACZ41B,EAAW,EAAQ,MACnB2iC,EAAoB,EAAQ,MAC5ByQ,EAAiB,EAAQ,MACzBC,EAA2B,EAAQ,MACnChP,EAAQ,EAAQ,MAEhBiP,EAAsBjP,GAAM,WAC9B,OAAoD,aAA7C,GAAG5tR,KAAKzB,KAAK,CAAE+B,OAAQ,YAAe,EAC/C,IAIIw8R,EAAiC,WACnC,IAEEr9R,OAAOoB,eAAe,GAAI,SAAU,CAAES,UAAU,IAAStB,MAC3D,CAAE,MAAOuI,GACP,OAAOA,aAAiBrF,SAC1B,CACF,EAEIkuR,EAASyL,IAAwBC,IAIrCnpE,EAAE,CAAExzN,OAAQ,QAASyZ,OAAO,EAAMq9Q,MAAO,EAAGpL,OAAQuF,GAAU,CAE5DpxR,KAAM,SAAco9C,GAClB,IAAIq1K,EAAI82B,EAASrrP,MACb8E,EAAMkpR,EAAkBz5D,GACxBsqE,EAAW18R,UAAUC,OACzBs8R,EAAyB55R,EAAM+5R,GAC/B,IAAK,IAAI38R,EAAI,EAAGA,EAAI28R,EAAU38R,IAC5BqyN,EAAEzvN,GAAO3C,UAAUD,GACnB4C,IAGF,OADA25R,EAAelqE,EAAGzvN,GACXA,CACT,G,oCCvCF,IAAI2wN,EAAI,EAAQ,MACZvwN,EAAa,EAAQ,MACrB45R,EAAa,EAAQ,KACrBhQ,EAAW,EAAQ,MACnB3F,EAAa,EAAQ,MACrBjoM,EAAiB,EAAQ,MACzBsqM,EAAwB,EAAQ,MAChCuT,EAAiB,EAAQ,MACzBrP,EAAQ,EAAQ,MAChBj3D,EAAS,EAAQ,MACjBgzD,EAAkB,EAAQ,MAC1B+L,EAAoB,0BACpBnM,EAAc,EAAQ,MACtBmN,EAAU,EAAQ,MAElBlqR,EAAc,cACdgmR,EAAW,WACXlI,EAAgBX,EAAgB,eAEhCpC,EAAarkR,UACbg6R,EAAiB95R,EAAWovR,GAG5BpB,EAASsF,IACPrP,EAAW6V,IACZA,EAAe/7R,YAAcu0R,IAE5B9H,GAAM,WAAcsP,EAAe,CAAC,EAAI,IAE1CC,EAAsB,WAExB,GADAH,EAAW9+R,KAAMw3R,GACbt2M,EAAelhF,QAAUw3R,EAAmB,MAAM,IAAInO,EAAW,qDACvE,EAEI6V,EAAkC,SAAU38R,EAAKW,GAC/CmoR,EACFG,EAAsBgM,EAAmBj1R,EAAK,CAC5CY,cAAc,EACd6O,IAAK,WACH,OAAO9O,CACT,EACAgP,IAAK,SAAU+jR,GAEb,GADAnH,EAAS9uR,MACLA,OAASw3R,EAAmB,MAAM,IAAInO,EAAW,oCACjD5wD,EAAOz4N,KAAMuC,GAAMvC,KAAKuC,GAAO0zR,EAC9B8I,EAAe/+R,KAAMuC,EAAK0zR,EACjC,IAEGuB,EAAkBj1R,GAAOW,CAClC,EAEKu1N,EAAO++D,EAAmBpL,IAAgB8S,EAAgC9S,EAAekI,IAE1FpB,GAAWz6D,EAAO++D,EAAmBlpR,IAAgBkpR,EAAkBlpR,KAAiB/M,QAC1F29R,EAAgC5wR,EAAa2wR,GAG/CA,EAAoBh8R,UAAYu0R,EAIhC/hE,EAAE,CAAErwN,QAAQ,EAAMpC,aAAa,EAAM2qR,OAAQuF,GAAU,CACrDiM,SAAUF,G,oCC9DZ,IAAIxpE,EAAI,EAAQ,MACZv5K,EAAU,EAAQ,MAClB03O,EAAY,EAAQ,MACpB9E,EAAW,EAAQ,MACnB4F,EAAoB,EAAQ,MAIhCj/D,EAAE,CAAExzN,OAAQ,WAAYyZ,OAAO,EAAM0jR,MAAM,GAAQ,CACjD77M,MAAO,SAAe4pJ,GACpB2hD,EAAS9uR,MACT4zR,EAAUzmD,GACV,IAAIsL,EAASi8C,EAAkB10R,MAC3BioI,EAAU,EACd,OAAQ/rF,EAAQu8L,GAAQ,SAAUv1O,EAAOorH,GACvC,IAAK6+G,EAAUjqO,EAAO+kI,KAAY,OAAO3Z,GAC3C,GAAG,CAAE2oK,WAAW,EAAME,aAAa,IAAQR,OAC7C,G,oCCjBF,IAAIlhE,EAAI,EAAQ,MACZp1N,EAAO,EAAQ,MACfuzR,EAAY,EAAQ,MACpB9E,EAAW,EAAQ,MACnB4F,EAAoB,EAAQ,MAC5ByD,EAAsB,EAAQ,MAC9BC,EAA+B,EAAQ,MACvCI,EAAU,EAAQ,MAElBN,EAAgBC,GAAoB,WACtC,IAGItoR,EAAQuK,EAAMlX,EAHdH,EAAW/C,KAAK+C,SAChBoqO,EAAYntO,KAAKmtO,UACjBpzN,EAAO/Z,KAAK+Z,KAEhB,MAAO,EAAM,CAGX,GAFAlK,EAASi/Q,EAASzuR,EAAK0Z,EAAMhX,IAC7BqX,EAAOpa,KAAKoa,OAASvK,EAAOuK,KACxBA,EAAM,OAEV,GADAlX,EAAQ2M,EAAO3M,MACXk1R,EAA6Br1R,EAAUoqO,EAAW,CAACjqO,EAAOlD,KAAKioI,YAAY,GAAO,OAAO/kI,CAC/F,CACF,IAIAuyN,EAAE,CAAExzN,OAAQ,WAAYyZ,OAAO,EAAM0jR,MAAM,EAAMzR,OAAQ6K,GAAW,CAClE92R,OAAQ,SAAgByrO,GAGtB,OAFA2hD,EAAS9uR,MACT4zR,EAAUzmD,GACH,IAAI+qD,EAAcxD,EAAkB10R,MAAO,CAChDmtO,UAAWA,GAEf,G,mCChCF,IAAI1X,EAAI,EAAQ,MACZv5K,EAAU,EAAQ,MAClB03O,EAAY,EAAQ,MACpB9E,EAAW,EAAQ,MACnB4F,EAAoB,EAAQ,MAIhCj/D,EAAE,CAAExzN,OAAQ,WAAYyZ,OAAO,EAAM0jR,MAAM,GAAQ,CACjDr8J,KAAM,SAAcoqG,GAClB2hD,EAAS9uR,MACT4zR,EAAUzmD,GACV,IAAIsL,EAASi8C,EAAkB10R,MAC3BioI,EAAU,EACd,OAAO/rF,EAAQu8L,GAAQ,SAAUv1O,EAAOorH,GACtC,GAAI6+G,EAAUjqO,EAAO+kI,KAAY,OAAO3Z,EAAKprH,EAC/C,GAAG,CAAE+zR,WAAW,EAAME,aAAa,IAAQtnR,MAC7C,G,oCCjBF,IAAI4lN,EAAI,EAAQ,MACZv5K,EAAU,EAAQ,MAClB03O,EAAY,EAAQ,MACpB9E,EAAW,EAAQ,MACnB4F,EAAoB,EAAQ,MAIhCj/D,EAAE,CAAExzN,OAAQ,WAAYyZ,OAAO,EAAM0jR,MAAM,GAAQ,CACjD98R,QAAS,SAAiBmY,GACxBq0Q,EAAS9uR,MACT4zR,EAAUn5Q,GACV,IAAIg+N,EAASi8C,EAAkB10R,MAC3BioI,EAAU,EACd/rF,EAAQu8L,GAAQ,SAAUv1O,GACxBuX,EAAGvX,EAAO+kI,IACZ,GAAG,CAAEgvJ,WAAW,GAClB,G,oCCjBF,IAAIxhE,EAAI,EAAQ,MACZ1tN,EAAM,EAAQ,KACdywR,EAAU,EAAQ,MAItB/iE,EAAE,CAAExzN,OAAQ,WAAYyZ,OAAO,EAAM0jR,MAAM,EAAMzR,OAAQ6K,GAAW,CAClEzwR,IAAKA,G,oCCPP,IAAI0tN,EAAI,EAAQ,MACZv5K,EAAU,EAAQ,MAClB03O,EAAY,EAAQ,MACpB9E,EAAW,EAAQ,MACnB4F,EAAoB,EAAQ,MAE5BrL,EAAarkR,UAIjBywN,EAAE,CAAExzN,OAAQ,WAAYyZ,OAAO,EAAM0jR,MAAM,GAAQ,CACjDl3R,OAAQ,SAAgBm3R,GACtBvQ,EAAS9uR,MACT4zR,EAAUyL,GACV,IAAI5mD,EAASi8C,EAAkB10R,MAC3Bs/R,EAAYn9R,UAAUC,OAAS,EAC/Bm9R,EAAcD,OAAYv2R,EAAY5G,UAAU,GAChD8lI,EAAU,EAUd,GATA/rF,EAAQu8L,GAAQ,SAAUv1O,GACpBo8R,GACFA,GAAY,EACZC,EAAcr8R,GAEdq8R,EAAcF,EAAQE,EAAar8R,EAAO+kI,GAE5CA,GACF,GAAG,CAAEgvJ,WAAW,IACZqI,EAAW,MAAM,IAAIjW,EAAW,kDACpC,OAAOkW,CACT,G,oCC7BF,IAAI9pE,EAAI,EAAQ,MACZv5K,EAAU,EAAQ,MAClB03O,EAAY,EAAQ,MACpB9E,EAAW,EAAQ,MACnB4F,EAAoB,EAAQ,MAIhCj/D,EAAE,CAAExzN,OAAQ,WAAYyZ,OAAO,EAAM0jR,MAAM,GAAQ,CACjD76M,KAAM,SAAc4oJ,GAClB2hD,EAAS9uR,MACT4zR,EAAUzmD,GACV,IAAIsL,EAASi8C,EAAkB10R,MAC3BioI,EAAU,EACd,OAAO/rF,EAAQu8L,GAAQ,SAAUv1O,EAAOorH,GACtC,GAAI6+G,EAAUjqO,EAAO+kI,KAAY,OAAO3Z,GAC1C,GAAG,CAAE2oK,WAAW,EAAME,aAAa,IAAQR,OAC7C,G,oCCjBF,IAAIlhE,EAAI,EAAQ,MACZq5D,EAAW,EAAQ,MACnB5yO,EAAU,EAAQ,MAClBw4O,EAAoB,EAAQ,MAE5B5yR,EAAO,GAAGA,KAId2zN,EAAE,CAAExzN,OAAQ,WAAYyZ,OAAO,EAAM0jR,MAAM,GAAQ,CACjDhyD,QAAS,WACP,IAAIv9N,EAAS,GAEb,OADAqsC,EAAQw4O,EAAkB5F,EAAS9uR,OAAQ8B,EAAM,CAAEw6C,KAAMzsC,EAAQonR,WAAW,IACrEpnR,CACT,G,oCCdF,IAAI4lN,EAAI,EAAQ,MACZ+pE,EAAa,EAAQ,MACrBC,EAAyB,EAAQ,MAIrChqE,EAAE,CAAExzN,OAAQ,MAAOyZ,OAAO,EAAM0jR,MAAM,EAAMzR,QAAS8R,EAAuB,eAAiB,CAC3FD,WAAYA,G,oCCPd,IAAI/pE,EAAI,EAAQ,MACZi6D,EAAQ,EAAQ,MAChBgQ,EAAe,EAAQ,MACvBD,EAAyB,EAAQ,MAEjCE,GAAaF,EAAuB,iBAAmB/P,GAAM,WAE/D,MAAgF,QAAzEjjR,OAAOvI,MAAMI,KAAK,IAAI69N,IAAI,CAAC,EAAG,EAAG,IAAIu9D,aAAa,IAAIv9D,IAAI,CAAC,EAAG,MACvE,IAIA1M,EAAE,CAAExzN,OAAQ,MAAOyZ,OAAO,EAAM0jR,MAAM,EAAMzR,OAAQgS,GAAa,CAC/DD,aAAcA,G,oCCbhB,IAAIjqE,EAAI,EAAQ,MACZmqE,EAAiB,EAAQ,MACzBH,EAAyB,EAAQ,MAIrChqE,EAAE,CAAExzN,OAAQ,MAAOyZ,OAAO,EAAM0jR,MAAM,EAAMzR,QAAS8R,EAAuB,mBAAqB,CAC/FG,eAAgBA,G,oCCPlB,IAAInqE,EAAI,EAAQ,MACZoqE,EAAa,EAAQ,MACrBJ,EAAyB,EAAQ,MAIrChqE,EAAE,CAAExzN,OAAQ,MAAOyZ,OAAO,EAAM0jR,MAAM,EAAMzR,QAAS8R,EAAuB,eAAiB,CAC3FI,WAAYA,G,oCCPd,IAAIpqE,EAAI,EAAQ,MACZqqE,EAAe,EAAQ,MACvBL,EAAyB,EAAQ,MAIrChqE,EAAE,CAAExzN,OAAQ,MAAOyZ,OAAO,EAAM0jR,MAAM,EAAMzR,QAAS8R,EAAuB,iBAAmB,CAC7FK,aAAcA,G,oCCPhB,IAAIrqE,EAAI,EAAQ,MACZsqE,EAAsB,EAAQ,MAC9BN,EAAyB,EAAQ,MAIrChqE,EAAE,CAAExzN,OAAQ,MAAOyZ,OAAO,EAAM0jR,MAAM,EAAMzR,QAAS8R,EAAuB,wBAA0B,CACpGM,oBAAqBA,G,oCCPvB,IAAItqE,EAAI,EAAQ,MACZuqE,EAAQ,EAAQ,MAChBP,EAAyB,EAAQ,MAIrChqE,EAAE,CAAExzN,OAAQ,MAAOyZ,OAAO,EAAM0jR,MAAM,EAAMzR,QAAS8R,EAAuB,UAAY,CACtFO,MAAOA,G,oCCPT,IAAIC,EAAkB,EAAQ,MAC1BC,EAAsB,EAAQ,MAE9B3S,EAAc2S,EAAoB3S,YAClCE,EAAyByS,EAAoBzS,uBAC7CJ,EAA2B6S,EAAoB7S,yBAInDI,EAAuB,cAAc,WACnC,OAAOwS,EAAgB1S,EAAYvtR,MAAOqtR,EAAyBrtR,MACrE,G,oCCXA,IAAIkgS,EAAsB,EAAQ,MAC9BnW,EAAc,EAAQ,MACtB6J,EAAY,EAAQ,MACpBuM,EAA8B,EAAQ,MAEtC5S,EAAc2S,EAAoB3S,YAClCF,EAA2B6S,EAAoB7S,yBAC/CI,EAAyByS,EAAoBzS,uBAC7C98O,EAAOo5O,EAAYmW,EAAoBhU,oBAAoBv7O,MAI/D88O,EAAuB,YAAY,SAAkB15F,QACjChrL,IAAdgrL,GAAyB6/F,EAAU7/F,GACvC,IAAIwgC,EAAIg5D,EAAYvtR,MAChB00N,EAAIyrE,EAA4B9S,EAAyB94D,GAAIA,GACjE,OAAO5jL,EAAK+jL,EAAG3gC,EACjB,G,oCCjBA,IAAIqsG,EAAY,EAAQ,MACpBF,EAAsB,EAAQ,MAC9BG,EAAgB,EAAQ,MACxB5R,EAAsB,EAAQ,MAC9B6R,EAAW,EAAQ,MAEnB/S,EAAc2S,EAAoB3S,YAClCF,EAA2B6S,EAAoB7S,yBAC/CI,EAAyByS,EAAoBzS,uBAE7C8S,IAAiB,WACnB,IAEE,IAAIzU,UAAU,GAAG,QAAQ,EAAG,CAAE9qM,QAAS,WAAc,MAAM,CAAG,GAChE,CAAE,MAAO32E,GAGP,OAAiB,IAAVA,CACT,CACF,CATqB,GAarBojR,EAAuB,OAAQ,CAAE,KAAQ,SAAUx5O,EAAO/wC,GACxD,IAAIqxN,EAAIg5D,EAAYvtR,MAChB4uR,EAAgBH,EAAoBx6O,GACpCusP,EAAcH,EAAc9rE,GAAK+rE,EAASp9R,IAAUA,EACxD,OAAOk9R,EAAU7rE,EAAG84D,EAAyB94D,GAAIq6D,EAAe4R,EAClE,GAAI,SAAUD,E,oCC3Bd,EAAQ,K,oCCAR,EAAQ,K,oCCAR,EAAQ,K,oCCAR,EAAQ,I,oCCAR,EAAQ,K,oCCAR,EAAQ,K,oCCAR,EAAQ,K,oCCAR,EAAQ,K,oCCAR,EAAQ,K,oCCDR,IAAI9qE,EAAI,EAAQ,MACZvwN,EAAa,EAAQ,MACrBm4R,EAAiB,cAIrB5nE,EAAE,CAAErwN,QAAQ,EAAM8D,MAAM,EAAMrH,YAAY,EAAM8rR,OAAQzoR,EAAWm4R,iBAAmBA,GAAkB,CACtGA,eAAgBA,G,oCCPlB,IAAI5nE,EAAI,EAAQ,MACZvwN,EAAa,EAAQ,MACrB8vR,EAAa,EAAQ,MACrBrF,EAA2B,EAAQ,MACnChtR,EAAiB,UACjB81N,EAAS,EAAQ,MACjBqmE,EAAa,EAAQ,KACrB2B,EAAoB,EAAQ,MAC5BC,EAA0B,EAAQ,MAClCC,EAAwB,EAAQ,MAChCC,EAAkB,EAAQ,MAC1BvV,EAAc,EAAQ,MACtBmN,EAAU,EAAQ,MAElBqI,EAAgB,eAChBntR,EAAQshR,EAAW,SACnB8L,EAAqB9L,EAAW6L,GAEhCE,EAAgB,WAClBjC,EAAW9+R,KAAMghS,GACjB,IAAIC,EAAkB9+R,UAAUC,OAC5BkR,EAAUotR,EAAwBO,EAAkB,OAAIl4R,EAAY5G,UAAU,IAC9EyC,EAAO87R,EAAwBO,EAAkB,OAAIl4R,EAAY5G,UAAU,GAAI,SAC/Em6C,EAAO,IAAIwkP,EAAmBxtR,EAAS1O,GACvCyF,EAAQ,IAAIqJ,EAAMJ,GAItB,OAHAjJ,EAAMzF,KAAOi8R,EACbl+R,EAAe25C,EAAM,QAASqzO,EAAyB,EAAGiR,EAAgBv2R,EAAMgJ,MAAO,KACvFotR,EAAkBnkP,EAAMt8C,KAAM+gS,GACvBzkP,CACT,EAEI0kP,EAAwBD,EAAc99R,UAAY69R,EAAmB79R,UAErEi+R,EAAkB,UAAW,IAAIxtR,EAAMmtR,GACvCM,EAA0B,UAAW,IAAIL,EAAmB,EAAG,GAG/Dn+M,EAAam+M,GAAsBzV,GAAe9pR,OAAOK,yBAAyBsD,EAAY27R,GAI9FO,IAAqBz+M,KAAgBA,EAAWv/E,UAAYu/E,EAAWx/E,cAEvEk+R,EAAqBH,IAAoBE,IAAqBD,EAIlE1rE,EAAE,CAAErwN,QAAQ,EAAMpC,aAAa,EAAM2qR,OAAQ6K,GAAW6I,GAAsB,CAC5EC,aAAcD,EAAqBN,EAAgBD,IAGrD,IAAIS,EAAyBvM,EAAW6L,GACpCW,EAAkCD,EAAuBt+R,UAE7D,GAAIu+R,EAAgCx+R,cAAgBu+R,EAKlD,IAAK,IAAIh/R,KAJJi2R,GACH71R,EAAe6+R,EAAiC,cAAe7R,EAAyB,EAAG4R,IAG7EZ,EAAuB,GAAIloE,EAAOkoE,EAAuBp+R,GAAM,CAC7E,IAAIk/R,EAAWd,EAAsBp+R,GACjCm/R,EAAeD,EAASz5R,EACvBywN,EAAO8oE,EAAwBG,IAClC/+R,EAAe4+R,EAAwBG,EAAc/R,EAAyB,EAAG8R,EAASj5R,GAE9F,C,oCChEF,EAAQ,MACR,EAAQ,K,oCCFR,IAAIitN,EAAI,EAAQ,MACZvwN,EAAa,EAAQ,MACrBy8R,EAAU,YACVC,EAAgB,EAAQ,MAGxB/hC,EAAe36P,EAAW26P,aAAe+hC,EAAcD,GAAS,GAASA,EAI7ElsE,EAAE,CAAErwN,QAAQ,EAAM8D,MAAM,EAAMrH,YAAY,EAAM8rR,OAAQzoR,EAAW26P,eAAiBA,GAAgB,CAClGA,aAAcA,G,oCCXhB,IAAI0rB,EAAgB,EAAQ,MACxBxB,EAAc,EAAQ,MACtBrlR,EAAW,EAAQ,KACnBk3R,EAA0B,EAAQ,MAElCiG,EAAmBC,gBACnBC,EAA2BF,EAAiB5+R,UAC5CmnD,EAAS2/N,EAAYgY,EAAyB33O,QAC9C4mD,EAAU+4K,EAAYgY,EAAyB,WAC/Cz/R,EAAUynR,EAAYgY,EAAyBz/R,SAC/CR,EAAOioR,EAAY,GAAGjoR,MACtBgzN,EAAS,IAAI+sE,EAAiB,eAElC/sE,EAAO,UAAU,IAAK,GAGtBA,EAAO,UAAU,SAAK/rN,GAElB+rN,EAAS,KAAO,OAClBy2D,EAAcwW,EAA0B,UAAU,SAAUn9R,GAC1D,IAAIxC,EAASD,UAAUC,OACnBu6J,EAASv6J,EAAS,OAAI2G,EAAY5G,UAAU,GAChD,GAAIC,QAAqB2G,IAAX4zJ,EAAsB,OAAO3rD,EAAQhxG,KAAM4E,GACzD,IAAI+pH,EAAU,GACdrsH,EAAQtC,MAAM,SAAUyP,EAAGwH,GACzBnV,EAAK6sH,EAAS,CAAEpsH,IAAK0U,EAAG/T,MAAOuM,GACjC,IACAmsR,EAAwBx5R,EAAQ,GAChC,IAMIic,EANA9b,EAAMmC,EAASE,GACf1B,EAAQwB,EAASi4J,GACjB1oH,EAAQ,EACR+tP,EAAS,EACT5uD,GAAQ,EACR6uD,EAAgBtzK,EAAQvsH,OAE5B,MAAO6xC,EAAQguP,EACb5jR,EAAQswG,EAAQ16E,KACZm/L,GAAS/0N,EAAM9b,MAAQA,GACzB6wO,GAAQ,EACRpiI,EAAQhxG,KAAMqe,EAAM9b,MACfy/R,IAET,MAAOA,EAASC,EACd5jR,EAAQswG,EAAQqzK,KACV3jR,EAAM9b,MAAQA,GAAO8b,EAAMnb,QAAUA,GAAQknD,EAAOpqD,KAAMqe,EAAM9b,IAAK8b,EAAMnb,MAErF,GAAG,CAAErB,YAAY,EAAMmuR,QAAQ,G,oCC9CjC,IAAIzE,EAAgB,EAAQ,MACxBxB,EAAc,EAAQ,MACtBrlR,EAAW,EAAQ,KACnBk3R,EAA0B,EAAQ,MAElCiG,EAAmBC,gBACnBC,EAA2BF,EAAiB5+R,UAC5Ci/R,EAASnY,EAAYgY,EAAyBG,QAC9CC,EAAOpY,EAAYgY,EAAyBthN,KAC5Cq0I,EAAS,IAAI+sE,EAAiB,QAI9B/sE,EAAOr0I,IAAI,IAAK,IAAOq0I,EAAOr0I,IAAI,SAAK13E,IACzCwiR,EAAcwW,EAA0B,OAAO,SAAan9R,GAC1D,IAAIxC,EAASD,UAAUC,OACnBu6J,EAASv6J,EAAS,OAAI2G,EAAY5G,UAAU,GAChD,GAAIC,QAAqB2G,IAAX4zJ,EAAsB,OAAOwlI,EAAKniS,KAAM4E,GACtD,IAAI6N,EAASyvR,EAAOliS,KAAM4E,GAC1Bg3R,EAAwBx5R,EAAQ,GAChC,IAAIc,EAAQwB,EAASi4J,GACjB1oH,EAAQ,EACZ,MAAOA,EAAQxhC,EAAOrQ,OACpB,GAAIqQ,EAAOwhC,OAAa/wC,EAAO,OAAO,EACtC,OAAO,CACX,GAAG,CAAErB,YAAY,EAAMmuR,QAAQ,G,oCCzBjC,IAAI3E,EAAc,EAAQ,MACtBtB,EAAc,EAAQ,MACtByB,EAAwB,EAAQ,MAEhCuW,EAA2BD,gBAAgB7+R,UAC3CX,EAAUynR,EAAYgY,EAAyBz/R,SAI/C+oR,KAAiB,SAAU0W,IAC7BvW,EAAsBuW,EAA0B,OAAQ,CACtD/vR,IAAK,WACH,IAAIyE,EAAQ,EAEZ,OADAnU,EAAQtC,MAAM,WAAcyW,GAAS,IAC9BA,CACT,EACAtT,cAAc,EACdtB,YAAY,G;;;;;;ACbhB,SAASW,EAAgByH,EAAGgkF,EAAGhnE,GAC7B,OAAQgnE,EAAIm0M,EAAen0M,MAAOhkF,EAAI1I,OAAOoB,eAAesH,EAAGgkF,EAAG,CAChE/qF,MAAO+jB,EACPplB,YAAY,EACZsB,cAAc,EACdC,UAAU,IACP6G,EAAEgkF,GAAKhnE,EAAGhd,CACjB,CAaA,SAAS9I,EAAQ8I,EAAGgkF,GAClB,IAAIhnE,EAAI1lB,OAAOD,KAAK2I,GACpB,GAAI1I,OAAOC,sBAAuB,CAChC,IAAI+C,EAAIhD,OAAOC,sBAAsByI,GACrCgkF,IAAM1pF,EAAIA,EAAE7C,QAAO,SAAUusF,GAC3B,OAAO1sF,OAAOK,yBAAyBqI,EAAGgkF,GAAGpsF,UAC/C,KAAKolB,EAAEnlB,KAAKC,MAAMklB,EAAG1iB,EACvB,CACA,OAAO0iB,CACT,CACA,SAASjlB,EAAeiI,GACtB,IAAK,IAAIgkF,EAAI,EAAGA,EAAI9rF,UAAUC,OAAQ6rF,IAAK,CACzC,IAAIhnE,EAAI,MAAQ9kB,UAAU8rF,GAAK9rF,UAAU8rF,GAAK,CAAC,EAC/CA,EAAI,EAAI9sF,EAAQI,OAAO0lB,IAAI,GAAI3kB,SAAQ,SAAU2rF,GAC/CzrF,EAAgByH,EAAGgkF,EAAGhnE,EAAEgnE,GAC1B,IAAK1sF,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBuH,EAAG1I,OAAOkB,0BAA0BwkB,IAAM9lB,EAAQI,OAAO0lB,IAAI3kB,SAAQ,SAAU2rF,GAC7I1sF,OAAOoB,eAAesH,EAAGgkF,EAAG1sF,OAAOK,yBAAyBqlB,EAAGgnE,GACjE,GACF,CACA,OAAOhkF,CACT,CAMA,SAASo4R,EAAap7Q,EAAGgnE,GACvB,GAAI,iBAAmBhnE,IAAMA,EAAG,OAAOA,EACvC,IAAIhd,EAAIgd,EAAEnkB,OAAOmS,aACjB,QAAI,IAAWhL,EAAG,CAChB,IAAI/H,EAAI+H,EAAE5J,KAAK4mB,EAAGgnE,GAAK,WACvB,GAAI,iBAAmB/rF,EAAG,OAAOA,EACjC,MAAM,IAAI8C,UAAU,+CACtB,CACA,OAAQ,WAAaipF,EAAIxhF,OAASI,QAAQoa,EAC5C,CACA,SAASm7Q,EAAen7Q,GACtB,IAAI/kB,EAAImgS,EAAap7Q,EAAG,UACxB,MAAO,iBAAmB/kB,EAAIA,EAAIA,EAAI,EACxC,CAiDA,MAAM8uH,EAAOA,OACb,IAAIsxK,EAAU,CAAC,EACXC,EAAY,CAAC,EACbC,EAAqB,KACrBC,EAAe,CACjBC,KAAM1xK,EACNhrF,QAASgrF,GAEX,IACwB,qBAAX7rH,SAAwBm9R,EAAUn9R,QACrB,qBAAbk2E,WAA0BknN,EAAYlnN,UACjB,qBAArBM,mBAAkC6mN,EAAqB7mN,kBACvC,qBAAhB6mK,cAA6BigD,EAAejgD,YACzD,CAAE,MAAOv4O,IAAI,CACb,MAAM,UACJ4rB,EAAY,IACVysQ,EAAQ/mN,WAAa,CAAC,EACpBpjE,EAASmqR,EACTvmN,EAAWwmN,EACXI,EAAoBH,EACpBI,EAAcH,EAEdI,GADe1qR,EAAOkjE,WACXU,EAASW,mBAAqBX,EAASyuI,MAA6C,oBAA9BzuI,EAASO,kBAAqE,oBAA3BP,EAAS7uE,eAC7H41R,GAASjtQ,EAAUryB,QAAQ,UAAYqyB,EAAUryB,QAAQ,YAE/D,IAAI0jB,EAAI,mEACNpV,EAAI,wGACFqmM,EAAI,CACJ4qF,QAAS,CACPC,GAAI,QACJC,IAAK,QACL,WAAY,QACZC,IAAK,UACL,aAAc,UACdC,IAAK,QACL,WAAY,QACZC,IAAK,OACL,UAAW,OACXC,IAAK,SACL,YAAa,UAEfC,QAAS,CACPN,GAAI,QACJO,IAAK,QACL,WAAY,QACZ,aAAc,QACdC,KAAM,UACN,aAAc,UACdC,KAAM,QACN,WAAY,QACZC,KAAM,OACN,UAAW,QAEbC,MAAO,CACLX,GAAI,QACJY,KAAM,QACN,WAAY,QACZC,KAAM,UACN,aAAc,UACdC,KAAM,QACN,WAAY,QACZC,KAAM,OACN,UAAW,QAEb,gBAAiB,CACff,GAAI,QACJgB,MAAO,QACP,WAAY,QACZC,MAAO,UACP,aAAc,UACdC,MAAO,QACP,WAAY,QACZC,MAAO,OACP,UAAW,SAGfzvE,EAAI,CACF0vE,MAAO,gBACPC,aAAc,eACdC,QAAS,UACTC,UAAW,aAEb1yF,EAAI,CAAC,aAAc,aAAc,WAAY,oBAC3C7pM,EAAI,UACNif,EAAI,UACJgnE,EAAI,QACJ1pF,EAAI,gBACJ4wN,EAAI,CAACntN,EAAGif,EAAGgnE,EAAG1pF,GACZszM,EAAI,CACJkrF,QAAS,CACP,IAAK,MACL,IAAK,MACLyB,OAAQ,MACR,IAAK,MACL,IAAK,OAEPlB,QAAS,CACP,IAAK,MACL,IAAK,OACL,IAAK,OACL,IAAK,QAEPK,MAAO,CACL,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,QAEP,gBAAiB,CACf,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,UAGPc,EAAK,CACL,sBAAuB,CACrB,IAAK,MACL,IAAK,OAEP,qBAAsB,CACpB,IAAK,MACL,IAAK,MACLD,OAAQ,MACR,IAAK,MACL,IAAK,OAEP,wBAAyB,CACvB,IAAK,MACLA,OAAQ,OAEV,yBAA0B,CACxB,IAAK,MACL,IAAK,OACLA,OAAQ,OACR,IAAK,OACL,IAAK,QAEP,uBAAwB,CACtB,IAAK,OACL,IAAK,OACLA,OAAQ,OACR,IAAK,OACL,IAAK,QAEP,+BAAgC,CAC9B,IAAK,QACL,IAAK,QACLA,OAAQ,QACR,IAAK,QACL,IAAK,UAGPE,EAAK,IAAInkN,IAAI,CAAC,CAAC,UAAW,CAC1BokN,qBAAsB,MACtBC,eAAgB,QAChBC,SAAU,CAAC,QAAS,UAAW,QAAS,OAAQ,UAChDC,eAAgB,GAChBC,kBAAmB,MACjB,CAAC,QAAS,CACZJ,qBAAsB,OACtBC,eAAgB,QAChBC,SAAU,CAAC,QAAS,UAAW,QAAS,QACxCC,eAAgB,GAChBC,kBAAmB,MACjB,CAAC,UAAW,CACdJ,qBAAsB,MACtBC,eAAgB,QAChBC,SAAU,CAAC,QAAS,UAAW,QAAS,QACxCC,eAAgB,GAChBC,kBAAmB,MACjB,CAAC,gBAAiB,CACpBJ,qBAAsB,QACtBC,eAAgB,QAChBC,SAAU,CAAC,QAAS,UAAW,QAAS,QACxCC,eAAgB,GAChBC,kBAAmB,QAErBC,EAAK,CACHjC,QAAS,CACPz+F,MAAO,MACP2gG,QAAS,MACTC,MAAO,MACPC,KAAM,MACNC,OAAQ,OAEV9B,QAAS,CACPh/F,MAAO,MACP2gG,QAAS,OACTC,MAAO,OACPC,KAAM,QAERxB,MAAO,CACLr/F,MAAO,OACP2gG,QAAS,OACTC,MAAO,OACPC,KAAM,QAER,gBAAiB,CACf7gG,MAAO,QACP2gG,QAAS,QACTC,MAAO,QACPC,KAAM,UAGRE,EAAK,CAAC,MAAO,SAAU,OAAQ,kBACjCC,EAAK,CACHC,IAAK,CACHC,IAAK,MACL,SAAU,OAEZ,cAAe,CACbC,KAAM,cACN,iBAAkB,gBAGtBC,EAAK,CAAC,OACJC,EAAK,CACPJ,IAAK,CACH,SAAU,OAEZ,cAAe,CACb,iBAAkB,SAGlBK,EAAK,CAAC,MAAO,QACfC,EAAK,CACHN,IAAK,CACHC,IAAK,UAEP,cAAe,CACbC,KAAM,mBAGRK,EAAK,CACLP,IAAK,CACHA,IAAK,OAEP,cAAe,CACb,cAAe,SAIjBQ,EAAM,CACN3B,MAAO,gBACPC,aAAc,eACdC,QAAS,UACTC,UAAW,aAEbyB,EAAM,CAAC,aAAc,aAAc,WAAY,oBAC7CC,EAAO,CAAC,MAAO,SAAU,OAAQ,kBACjCC,EAAK,CACL,mBAAoB,CAClB,IAAK,MACL1B,OAAQ,OAEV,2BAA4B,CAC1B,IAAK,OACLA,OAAQ,SAGV2B,EAAK,CACLpD,QAAS,CACP,YAAa,MACb,aAAc,MACd,WAAY,MACZ,aAAc,MACd,WAAY,MACZ,UAAW,OAEbO,QAAS,CACP,aAAc,OACd,WAAY,OACZ,UAAW,QAEbK,MAAO,CACL,WAAY,OACZ,aAAc,OACd,WAAY,OACZ,UAAW,QAEb,gBAAiB,CACf,WAAY,QACZ,aAAc,QACd,WAAY,QACZ,UAAW,UAGfyC,EAAM,CACJrD,QAAS,CAAC,MAAO,MAAO,MAAO,MAAO,OACtCO,QAAS,CAAC,OAAQ,OAAQ,QAC1BK,MAAO,CAAC,OAAQ,OAAQ,OAAQ,QAChC,gBAAiB,CAAC,QAAS,QAAS,QAAS,UAE/C0C,EAAK,CACHtD,QAAS,CACPM,IAAK,YACLE,IAAK,aACLJ,IAAK,WACLD,IAAK,aACLD,IAAK,WACLG,IAAK,WAEPE,QAAS,CACPE,KAAM,aACNC,KAAM,WACNC,KAAM,WAERC,MAAO,CACLC,KAAM,WACNC,KAAM,aACNC,KAAM,WACNC,KAAM,WAER,gBAAiB,CACfC,MAAO,WACPC,MAAO,aACPC,MAAO,WACPC,MAAO,YAGX/gN,EAAI,CAAC,WAAY,aAAc,WAAY,UAAW,aAAc,aACpEkjN,EAAK,CAAC,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,OAAQ,OAAQ,OAAQ,MAAO,OAAQ,OAAQ,OAAQ,OAAQ,QAAS,QAAS,QAAS,WAAYN,KAAQ5iN,GAC7JmjN,EAAM,CAAC,QAAS,UAAW,QAAS,OAAQ,UAAW,UACvDC,EAAM,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAClCC,EAAMD,EAAIvlS,OAAO,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KACtDylS,EAAK,IAAInlS,OAAOD,KAAK8kS,MAASG,EAAK,MAAO,KAAM,KAAM,KAAM,KAAM,MAAO,OAAQ,SAAU,OAAQ,YAAa,SAAU,YAAa,kBAAmB,gBAAiB,OAAQ,KAAM,UAAW,iBAAkB,cAAe,SAAU,KAAM,YAAa,aAAc,QAAS,aAAc,aAAc,YAAa,YAAa,QAAS,aAAc,eAAgB,OAAQ,WAAY,WAAY,QAAS,KAAMR,EAAI3B,MAAO2B,EAAI1B,aAAc0B,EAAIzB,QAASyB,EAAIxB,WAAWtjS,OAAOulS,EAAIz+R,KAAIxD,GAAK,GAAGtD,OAAOsD,EAAG,QAAOtD,OAAOwlS,EAAI1+R,KAAIxD,GAAK,KAAKtD,OAAOsD,MACpiBoiS,GAAK,CACL,sBAAuB,CACrB,IAAK,MACL,IAAK,OAEP,qBAAsB,CACpB,IAAK,MACL,IAAK,MACLnC,OAAQ,MACR,IAAK,OAEP,wBAAyB,CACvB,IAAK,MACLA,OAAQ,OAEV,yBAA0B,CACxB,IAAK,QAIX,MAAMoC,GAAuB,qBACvBC,GAAgB,GAChBC,GAAqB,KACrBC,GAA4B,iBAC5BC,GAAgB,gBAChBC,GAAyB,yBACzBC,GAAiC,iCACjCC,GAAc,cACdC,GAAY,YACZC,GAA8B,oBAC9BC,GAA0B,QAC1BC,GAAsC,CAAC,OAAQ,OAAQ,QAAS,UAChEv9R,GAAa,MACjB,IACE,OAAO3C,CACT,CAAE,MAAOmgS,GACP,OAAO,CACT,CACD,EANkB,GAOnB,SAASC,GAAY5kS,GAEnB,OAAO,IAAIk+E,MAAMl+E,EAAK,CACpBmP,GAAAA,CAAI/P,EAAQoG,GACV,OAAOA,KAAQpG,EAASA,EAAOoG,GAAQpG,EAAO+F,EAChD,GAEJ,CACA,MAAM0/R,GAAmB1lS,EAAe,CAAC,EAAGm2M,GAK5CuvF,GAAiB1/R,GAAKhG,EAAeA,EAAeA,EAAeA,EAAe,CAAC,EAAG,CACpF,aAAc,YACZm2M,EAAEnwM,IAAKs9R,EAAG,QAASA,EAAG,gBAC1B,MAAMqC,GAAkBF,GAAYC,IAC9BE,GAAmB5lS,EAAe,CAAC,EAAGgjS,GAI5C4C,GAAiB5/R,GAAKhG,EAAeA,EAAeA,EAAeA,EAAe,CAAC,EAAG,CACpFshS,QAAS,QACPsE,GAAiB5/R,IAAK89R,EAAG,QAASA,EAAG,gBACzC,MAAM+B,GAAkBJ,GAAYG,IAC9BE,GAAwB9lS,EAAe,CAAC,EAAGqkS,GACjDyB,GAAsB9/R,GAAKhG,EAAeA,EAAe,CAAC,EAAG8lS,GAAsB9/R,IAAK69R,EAAG,QAC3F,MAAMkC,GAAuBN,GAAYK,IACnCE,GAAwBhmS,EAAe,CAAC,EAAGmkS,GACjD6B,GAAsBhgS,GAAKhG,EAAeA,EAAe,CAAC,EAAGgmS,GAAsBhgS,IAAK29R,EAAG,QAC9D8B,GAAYO,IAAzC,MACMC,GAAgC/gR,EAEhCghR,GAAwB,iBACxBC,GAAsBr2R,EACtBs2R,GAAyBpmS,EAAe,CAAC,EAAG61M,GAE5CwwF,IADwBZ,GAAYW,IACF,CAAC,QAAS,cAAe,YAAa,oBAAqB,iBAC7FE,GAAkB5zE,EAClB6zE,GAAmB,IAAI7C,KAAOgB,GAE9B/3E,GAAUx2M,EAAOqwR,mBAAqB,CAAC,EAC7C,SAASC,GAAclpM,GACrB,IAAI12F,EAAUkzE,EAASgjB,cAAc,UAAYQ,EAAO,KACxD,GAAI12F,EACF,OAAOA,EAAQ+2F,aAAaL,EAEhC,CACA,SAASmpM,GAAOr/R,GAGd,MAAY,KAARA,GACQ,UAARA,IACQ,SAARA,GACGA,EACT,CACA,GAAI0yE,GAA8C,oBAA3BA,EAASgjB,cAA8B,CAC5D,MAAMz1F,EAAQ,CAAC,CAAC,qBAAsB,gBAAiB,CAAC,kBAAmB,aAAc,CAAC,sBAAuB,iBAAkB,CAAC,qBAAsB,gBAAiB,CAAC,yBAA0B,oBAAqB,CAAC,wBAAyB,kBAAmB,CAAC,oBAAqB,cAAe,CAAC,iBAAkB,YAAa,CAAC,8BAA+B,wBAAyB,CAAC,yBAA0B,oBAAqB,CAAC,uBAAwB,kBAAmB,CAAC,4BAA6B,sBAAuB,CAAC,2BAA4B,sBAAuB,CAAC,0BAA2B,qBACvmBA,EAAMhH,SAAQ69B,IACZ,IAAKo/D,EAAMh9F,GAAO49B,EAClB,MAAM92B,EAAMq/R,GAAOD,GAAclpM,SACrBx2F,IAARM,GAA6B,OAARA,IACvBslN,GAAQpsN,GAAO8G,EACjB,GAEJ,CACA,MAAMs/R,GAAW,CACfC,aAAc,QACdC,cAAe7gS,EACf8gS,UAAWhC,GACXiC,iBAAkBhC,GAClBiC,gBAAgB,EAChBC,YAAY,EACZC,UAAU,EACVC,sBAAsB,EACtBC,kBAAkB,EAClBC,eAAgB,QAChBC,oBAAoB,EACpBC,oBAAoB,EACpBC,kBAAkB,GAIhB76E,GAAQ86E,eACV96E,GAAQm6E,UAAYn6E,GAAQ86E,cAE9B,MAAMjvN,GAAUx4E,EAAeA,EAAe,CAAC,EAAG2mS,IAAWh6E,IACxDn0I,GAAQwuN,iBAAgBxuN,GAAQ4uN,kBAAmB,GACxD,MAAM1oQ,GAAS,CAAC,EAChBn/B,OAAOD,KAAKqnS,IAAUrmS,SAAQC,IAC5BhB,OAAOoB,eAAe+9B,GAAQn+B,EAAK,CACjCV,YAAY,EACZqQ,IAAK,SAAU7I,GACbmxE,GAAQj4E,GAAO8G,EACfqgS,GAAYpnS,SAAQqN,GAAMA,EAAG+wB,KAC/B,EACA1uB,IAAK,WACH,OAAOwoE,GAAQj4E,EACjB,GACA,IAIJhB,OAAOoB,eAAe+9B,GAAQ,eAAgB,CAC5C7+B,YAAY,EACZqQ,IAAK,SAAU7I,GACbmxE,GAAQsuN,UAAYz/R,EACpBqgS,GAAYpnS,SAAQqN,GAAMA,EAAG+wB,KAC/B,EACA1uB,IAAK,WACH,OAAOwoE,GAAQsuN,SACjB,IAEF3wR,EAAOqwR,kBAAoB9nQ,GAC3B,MAAMgpQ,GAAc,GACpB,SAAS9nJ,GAASjyI,GAEhB,OADA+5R,GAAY5nS,KAAK6N,GACV,KACL+5R,GAAY5+P,OAAO4+P,GAAYlmS,QAAQmM,GAAK,EAAE,CAElD,CAEA,MAAMg6R,GAAM9C,GACN+C,GAAuB,CAC3Bt+R,KAAM,GACN83E,EAAG,EACH8K,EAAG,EACHue,OAAQ,EACRo9L,OAAO,EACPC,OAAO,GAET,SAASC,GAAUnjM,GACjB,IAAKA,IAAQi8L,EACX,OAEF,MAAM/6R,EAAQi0E,EAAS7uE,cAAc,SACrCpF,EAAM03F,aAAa,OAAQ,YAC3B13F,EAAM49F,UAAYkB,EAClB,MAAMojM,EAAejuN,EAASyuI,KAAK9wG,WACnC,IAAIuwL,EAAc,KAClB,IAAK,IAAI/nS,EAAI8nS,EAAa5nS,OAAS,EAAGF,GAAK,EAAGA,IAAK,CACjD,MAAM+8F,EAAQ+qM,EAAa9nS,GACrBw0H,GAAWz3B,EAAMy3B,SAAW,IAAI7vH,cAClC,CAAC,QAAS,QAAQrD,QAAQkzH,IAAY,IACxCuzK,EAAchrM,EAElB,CAEA,OADAljB,EAASyuI,KAAKnJ,aAAav5M,EAAOmiS,GAC3BrjM,CACT,CACA,MAAMsjM,GAAS,iEACf,SAASC,KACP,IAAI7+R,EAAO,GACPstB,EAAK,GACT,MAAOttB,KAAS,EACdstB,GAAMsxQ,GAAuB,GAAhBh7R,KAAKuoB,SAAgB,GAEpC,OAAOmB,CACT,CACA,SAASw0M,GAAQvqO,GACf,MAAM+2F,EAAQ,GACd,IAAK,IAAI13F,GAAKW,GAAO,IAAIT,SAAW,EAAGF,KACrC03F,EAAM13F,GAAKW,EAAIX,GAEjB,OAAO03F,CACT,CACA,SAASwwM,GAAWhxR,GAClB,OAAIA,EAAK7O,UACA6iO,GAAQh0N,EAAK7O,YAEZ6O,EAAKwmF,aAAa,UAAY,IAAIt5F,MAAM,KAAK5E,QAAOQ,GAAKA,GAErE,CACA,SAASmoS,GAAW/uM,GAClB,MAAO,GAAGr6F,OAAOq6F,GAAK50F,QAAQ,KAAM,SAASA,QAAQ,KAAM,UAAUA,QAAQ,KAAM,SAASA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,OAClI,CACA,SAAS4jS,GAAelhS,GACtB,OAAO7H,OAAOD,KAAK8H,GAAc,CAAC,GAAGlB,QAAO,CAACC,EAAKylO,IACzCzlO,EAAM,GAAGlH,OAAO2sO,EAAe,MAAO3sO,OAAOopS,GAAWjhS,EAAWwkO,IAAiB,OAC1F,IAAI3lO,MACT,CACA,SAASsiS,GAAWnrK,GAClB,OAAO79H,OAAOD,KAAK89H,GAAU,CAAC,GAAGl3H,QAAO,CAACC,EAAKqiS,IACrCriS,EAAM,GAAGlH,OAAOupS,EAAW,MAAMvpS,OAAOm+H,EAAOorK,GAAWviS,OAAQ,MACxE,GACL,CACA,SAASwiS,GAAsB19R,GAC7B,OAAOA,EAAUzB,OAASs+R,GAAqBt+R,MAAQyB,EAAUq2E,IAAMwmN,GAAqBxmN,GAAKr2E,EAAUmhF,IAAM07M,GAAqB17M,GAAKnhF,EAAU0/F,SAAWm9L,GAAqBn9L,QAAU1/F,EAAU88R,OAAS98R,EAAU+8R,KAC9N,CACA,SAASY,GAAgBvqQ,GACvB,IAAI,UACFpzB,EAAS,eACT49R,EAAc,UACdC,GACEzqQ,EACJ,MAAM0qQ,EAAQ,CACZ99R,UAAW,aAAa9L,OAAO0pS,EAAiB,EAAG,UAE/CG,EAAiB,aAAa7pS,OAAqB,GAAd8L,EAAUq2E,EAAQ,MAAMniF,OAAqB,GAAd8L,EAAUmhF,EAAQ,MACtF68M,EAAa,SAAS9pS,OAAO8L,EAAUzB,KAAO,IAAMyB,EAAU88R,OAAS,EAAI,GAAI,MAAM5oS,OAAO8L,EAAUzB,KAAO,IAAMyB,EAAU+8R,OAAS,EAAI,GAAI,MAC9IkB,EAAc,UAAU/pS,OAAO8L,EAAU0/F,OAAQ,SACjDmoB,EAAQ,CACZ7nH,UAAW,GAAG9L,OAAO6pS,EAAgB,KAAK7pS,OAAO8pS,EAAY,KAAK9pS,OAAO+pS,IAErEtsR,EAAO,CACX3R,UAAW,aAAa9L,OAAO2pS,EAAY,GAAK,EAAG,WAErD,MAAO,CACLC,QACAj2K,QACAl2G,OAEJ,CACA,SAASusR,GAAgBr/L,GACvB,IAAI,UACF7+F,EAAS,MACToxF,EAAQ0oM,GAAa,OACrB3oM,EAAS2oM,GAAa,cACtBqE,GAAgB,GACdt/L,EACAviG,EAAM,GAUV,OAREA,GADE6hS,GAAiBpI,EACZ,aAAa7hS,OAAO8L,EAAUq2E,EAAIumN,GAAMxrM,EAAQ,EAAG,QAAQl9F,OAAO8L,EAAUmhF,EAAIy7M,GAAMzrM,EAAS,EAAG,QAChGgtM,EACF,yBAAyBjqS,OAAO8L,EAAUq2E,EAAIumN,GAAK,qBAAqB1oS,OAAO8L,EAAUmhF,EAAIy7M,GAAK,SAElG,aAAa1oS,OAAO8L,EAAUq2E,EAAIumN,GAAK,QAAQ1oS,OAAO8L,EAAUmhF,EAAIy7M,GAAK,QAElFtgS,GAAO,SAASpI,OAAO8L,EAAUzB,KAAOq+R,IAAO58R,EAAU88R,OAAS,EAAI,GAAI,MAAM5oS,OAAO8L,EAAUzB,KAAOq+R,IAAO58R,EAAU+8R,OAAS,EAAI,GAAI,MAC1IzgS,GAAO,UAAUpI,OAAO8L,EAAU0/F,OAAQ,SACnCpjG,CACT,CAEA,IAAI8hS,GAAa,wlZAEjB,SAASvkM,KACP,MAAMwkM,EAAMtE,GACNuE,EAAMtE,GACNrvE,EAAKh3L,GAAOooQ,UACZwC,EAAK5qQ,GAAOqoQ,iBAClB,IAAI/gS,EAAImjS,GACR,GAAIzzE,IAAO0zE,GAAOE,IAAOD,EAAK,CAC5B,MAAME,EAAQ,IAAIljO,OAAO,MAAMpnE,OAAOmqS,EAAK,OAAQ,KAC7CI,EAAiB,IAAInjO,OAAO,OAAOpnE,OAAOmqS,EAAK,OAAQ,KACvDK,EAAQ,IAAIpjO,OAAO,MAAMpnE,OAAOoqS,GAAM,KAC5CrjS,EAAIA,EAAEtB,QAAQ6kS,EAAO,IAAItqS,OAAOy2N,EAAI,MAAMhxN,QAAQ8kS,EAAgB,KAAKvqS,OAAOy2N,EAAI,MAAMhxN,QAAQ+kS,EAAO,IAAIxqS,OAAOqqS,GACpH,CACA,OAAOtjS,CACT,CACA,IAAI0jS,IAAe,EACnB,SAASC,KACHjrQ,GAAOuoQ,aAAeyC,KACxB3B,GAAUnjM,MACV8kM,IAAe,EAEnB,CACA,IAAIE,GAAY,CACdC,MAAAA,GACE,MAAO,CACLC,IAAK,CACHllM,OACAmjM,UAAW4B,IAGjB,EACAh+O,KAAAA,GACE,MAAO,CACLo+O,wBAAAA,GACEJ,IACF,EACAK,WAAAA,GACEL,IACF,EAEJ,GAGF,MAAM95R,GAAIsG,GAAU,CAAC,EAChBtG,GAAE+0R,MAAuB/0R,GAAE+0R,IAAwB,CAAC,GACpD/0R,GAAE+0R,IAAsBxnK,SAAQvtH,GAAE+0R,IAAsBxnK,OAAS,CAAC,GAClEvtH,GAAE+0R,IAAsBj5O,QAAO97C,GAAE+0R,IAAsBj5O,MAAQ,CAAC,GAChE97C,GAAE+0R,IAAsBqF,QAAOp6R,GAAE+0R,IAAsBqF,MAAQ,IACpE,IAAI37B,GAAYz+P,GAAE+0R,IAElB,MAAMsF,GAAY,GACZ/qQ,GAAW,WACf46C,EAASQ,oBAAoB,mBAAoBp7C,IACjDgrQ,GAAS,EACTD,GAAUnkS,KAAI0S,GAAMA,KACtB,EACA,IAAI0xR,IAAS,EAKb,SAASC,GAAU3xR,GACZooR,IACLsJ,GAASnqR,WAAWvH,EAAI,GAAKyxR,GAAUpqS,KAAK2Y,GAC9C,CAEA,SAAS4xR,GAAOC,GACd,MAAM,IACJviS,EAAG,WACHX,EAAa,CAAC,EAAC,SACfH,EAAW,IACTqjS,EACJ,MAA6B,kBAAlBA,EACFjC,GAAWiC,GAEX,IAAIrrS,OAAO8I,EAAK,KAAK9I,OAAOqpS,GAAelhS,GAAa,KAAKnI,OAAOgI,EAASlB,IAAIskS,IAAQ9lS,KAAK,IAAK,MAAMtF,OAAO8I,EAAK,IAEhI,CAEA,SAASwiS,GAAgBC,EAAStgS,EAAQC,GACxC,GAAIqgS,GAAWA,EAAQtgS,IAAWsgS,EAAQtgS,GAAQC,GAChD,MAAO,CACLD,SACAC,WACAF,KAAMugS,EAAQtgS,GAAQC,GAG5B,CA9BI02R,IACFsJ,IAAUpwN,EAASW,gBAAgB+vN,SAAW,aAAe,iBAAiB5nS,KAAKk3E,EAASxyB,YACvF4iP,IAAQpwN,EAASO,iBAAiB,mBAAoBn7C,KAkC7D,IAAIurQ,GAAgB,SAAuBn9R,EAAMo9R,GAC/C,OAAO,SAAU9rN,EAAG/oE,EAAGtP,EAAGmT,GACxB,OAAOpM,EAAKlP,KAAKssS,EAAa9rN,EAAG/oE,EAAGtP,EAAGmT,EACzC,CACF,EAaIzT,GAAS,SAA0B0kS,EAASnyR,EAAIoyR,EAAcF,GAChE,IAGEzqS,EACAK,EACAsN,EALEvO,EAAOC,OAAOD,KAAKsrS,GACrBxqS,EAASd,EAAKc,OACdW,OAA2BgG,IAAhB4jS,EAA4BD,GAAcjyR,EAAIkyR,GAAelyR,EAW1E,SAPqB1R,IAAjB8jS,GACF3qS,EAAI,EACJ2N,EAAS+8R,EAAQtrS,EAAK,MAEtBY,EAAI,EACJ2N,EAASg9R,GAEJ3qS,EAAIE,EAAQF,IACjBK,EAAMjB,EAAKY,GACX2N,EAAS9M,EAAS8M,EAAQ+8R,EAAQrqS,GAAMA,EAAKqqS,GAE/C,OAAO/8R,CACT,EA2BA,SAASi9R,GAAW1mS,GAClB,MAAML,EAAS,GACf,IAAIkiI,EAAU,EACd,MAAM7lI,EAASgE,EAAOhE,OACtB,MAAO6lI,EAAU7lI,EAAQ,CACvB,MAAMc,EAAQkD,EAAOs5D,WAAWuoE,KAChC,GAAI/kI,GAAS,OAAUA,GAAS,OAAU+kI,EAAU7lI,EAAQ,CAC1D,MAAM2qS,EAAQ3mS,EAAOs5D,WAAWuoE,KACR,QAAX,MAAR8kK,GAEHhnS,EAAOjE,OAAe,KAARoB,IAAkB,KAAe,KAAR6pS,GAAiB,QAExDhnS,EAAOjE,KAAKoB,GACZ+kI,IAEJ,MACEliI,EAAOjE,KAAKoB,EAEhB,CACA,OAAO6C,CACT,CACA,SAASinS,GAAMC,GACb,MAAMC,EAAUJ,GAAWG,GAC3B,OAA0B,IAAnBC,EAAQ9qS,OAAe8qS,EAAQ,GAAGxoS,SAAS,IAAM,IAC1D,CACA,SAASyoS,GAAY/mS,EAAQ6tC,GAC3B,MAAM3oC,EAAOlF,EAAOhE,OACpB,IACIihH,EADA+pL,EAAQhnS,EAAOs5D,WAAWzrB,GAE9B,OAAIm5P,GAAS,OAAUA,GAAS,OAAU9hS,EAAO2oC,EAAQ,IACvDovE,EAASj9G,EAAOs5D,WAAWzrB,EAAQ,GAC/BovE,GAAU,OAAUA,GAAU,OACN,MAAlB+pL,EAAQ,OAAkB/pL,EAAS,MAAS,MAGjD+pL,CACT,CAEA,SAASC,GAAeC,GACtB,OAAO/rS,OAAOD,KAAKgsS,GAAOplS,QAAO,CAACC,EAAKgE,KACrC,MAAMF,EAAOqhS,EAAMnhS,GACbqlK,IAAavlK,EAAKA,KAMxB,OALIulK,EACFrpK,EAAI8D,EAAKE,UAAYF,EAAKA,KAE1B9D,EAAIgE,GAAYF,EAEX9D,CAAG,GACT,CAAC,EACN,CACA,SAASolS,GAAYrhS,EAAQohS,GAC3B,IAAIx4E,EAAS3yN,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAClF,MAAM,UACJqrS,GAAY,GACV14E,EACEwmC,EAAa+xC,GAAeC,GACK,oBAA5Bh9B,GAAU3iN,MAAM8/O,SAA2BD,EAGpDl9B,GAAUlxI,OAAOlzH,GAAUlK,EAAeA,EAAe,CAAC,EAAGsuQ,GAAUlxI,OAAOlzH,IAAW,CAAC,GAAIovP,GAF9FgV,GAAU3iN,MAAM8/O,QAAQvhS,EAAQmhS,GAAeC,IAWlC,QAAXphS,GACFqhS,GAAY,KAAMD,EAEtB,CAEA,MAaM,OACJluK,GAAM,MACN6sK,IACE37B,GACEo9B,GAAensS,OAAOD,KAAKymS,IAC3B4F,GAAsBD,GAAaxlS,QAAO,CAACC,EAAKylS,KACpDzlS,EAAIylS,GAAYrsS,OAAOD,KAAKymS,GAAqB6F,IAC1CzlS,IACN,CAAC,GACJ,IAAI0lS,GAAuB,KACvBC,GAAa,CAAC,EACdC,GAAc,CAAC,EACfC,GAAa,CAAC,EACdC,GAAgB,CAAC,EACjBC,GAAW,CAAC,EAChB,SAAS3hD,GAAW3nP,GAClB,OAAQ2jS,GAAiB/kS,QAAQoB,EACnC,CACA,SAASupS,GAAYrF,EAAWvgS,GAC9B,MAAMsmE,EAAQtmE,EAAIjC,MAAM,KAClB4F,EAAS2iE,EAAM,GACf1iE,EAAW0iE,EAAMlqE,MAAM,GAAG4B,KAAK,KACrC,OAAI2F,IAAW48R,GAA0B,KAAb38R,GAAoBogP,GAAWpgP,GAGlD,KAFAA,CAIX,CACA,MAAMowM,GAAQA,KACZ,MAAM6xF,EAAS/O,GACNn3R,GAAOk3H,IAAQ,CAACivK,EAAMvmS,EAAOoE,KAClCmiS,EAAKniS,GAAUhE,GAAOJ,EAAOu3R,EAAS,CAAC,GAChCgP,IACN,CAAC,GAENP,GAAaM,GAAO,CAACjmS,EAAK8D,EAAME,KAI9B,GAHIF,EAAK,KACP9D,EAAI8D,EAAK,IAAME,GAEbF,EAAK,GAAI,CACX,MAAMq1O,EAAUr1O,EAAK,GAAGvK,QAAO4sS,GACN,kBAATA,IAEhBhtD,EAAQh/O,SAAQ6+O,IACdh5O,EAAIg5O,EAAMz8O,SAAS,KAAOyH,CAAQ,GAEtC,CACA,OAAOhE,CAAG,IAEZ4lS,GAAcK,GAAO,CAACjmS,EAAK8D,EAAME,KAE/B,GADAhE,EAAIgE,GAAYA,EACZF,EAAK,GAAI,CACX,MAAMq1O,EAAUr1O,EAAK,GAAGvK,QAAO4sS,GACN,kBAATA,IAEhBhtD,EAAQh/O,SAAQ6+O,IACdh5O,EAAIg5O,GAASh1O,CAAQ,GAEzB,CACA,OAAOhE,CAAG,IAEZ+lS,GAAWE,GAAO,CAACjmS,EAAK8D,EAAME,KAC5B,MAAMm1O,EAAUr1O,EAAK,GAKrB,OAJA9D,EAAIgE,GAAYA,EAChBm1O,EAAQh/O,SAAQ6+O,IACdh5O,EAAIg5O,GAASh1O,CAAQ,IAEhBhE,CAAG,IAKZ,MAAMomS,EAAa,QAASnvK,IAAU1+F,GAAO8tQ,aACvCC,EAAcvmS,GAAO+jS,IAAO,CAAC9jS,EAAKumS,KACtC,MAAMC,EAAwBD,EAAK,GACnC,IAAIxiS,EAASwiS,EAAK,GAClB,MAAMviS,EAAWuiS,EAAK,GAgBtB,MAfe,QAAXxiS,GAAqBqiS,IACvBriS,EAAS,OAE0B,kBAA1ByiS,IACTxmS,EAAIgyF,MAAMw0M,GAAyB,CACjCziS,SACAC,aAGiC,kBAA1BwiS,IACTxmS,EAAIymS,SAASD,EAAsBjqS,SAAS,KAAO,CACjDwH,SACAC,aAGGhE,CAAG,GACT,CACDgyF,MAAO,CAAC,EACRy0M,SAAU,CAAC,IAEbZ,GAAaS,EAAYt0M,MACzB8zM,GAAgBQ,EAAYG,SAC5Bf,GAAuBgB,GAAmBnuQ,GAAOkoQ,aAAc,CAC7DkG,OAAQpuQ,GAAOmoQ,eACf,EAQJ,SAASkG,GAAU7iS,EAAQ+gS,GACzB,OAAQa,GAAW5hS,IAAW,CAAC,GAAG+gS,EACpC,CACA,SAAS+B,GAAW9iS,EAAQ+iS,GAC1B,OAAQlB,GAAY7hS,IAAW,CAAC,GAAG+iS,EACrC,CACA,SAASC,GAAQhjS,EAAQi1O,GACvB,OAAQ+sD,GAAShiS,IAAW,CAAC,GAAGi1O,EAClC,CACA,SAASguD,GAAUvqS,GACjB,OAAOopS,GAAWppS,IAAS,CACzBsH,OAAQ,KACRC,SAAU,KAEd,CACA,SAASijS,GAAanC,GACpB,MAAMoC,EAAapB,GAAchB,GAC3BqC,EAAaP,GAAU,MAAO9B,GACpC,OAAOoC,IAAeC,EAAa,CACjCpjS,OAAQ,MACRC,SAAUmjS,GACR,OAAS,CACXpjS,OAAQ,KACRC,SAAU,KAEd,CACA,SAASojS,KACP,OAAO1B,EACT,CAlCAjsJ,IAAS4tJ,IACP3B,GAAuBgB,GAAmBW,EAAK5G,aAAc,CAC3DkG,OAAQpuQ,GAAOmoQ,eACf,IAEJtsF,KA8BA,MAAMkzF,GAAqBA,KAClB,CACLvjS,OAAQ,KACRC,SAAU,KACVujS,KAAM,KAGV,SAASC,GAAYl9R,GACnB,IAAIq8R,EAAS9mS,EACb,MAAM4nS,EAAWlC,GAAaxlS,QAAO,CAACC,EAAKylS,KACzCzlS,EAAIylS,GAAY,GAAG3sS,OAAOy/B,GAAOooQ,UAAW,KAAK7nS,OAAO2sS,GACjDzlS,IACN,CAAC,GAMJ,OALAgtN,EAAE7yN,SAAQsrS,KACJn7R,EAAOk9E,SAASigN,EAAShC,KAAcn7R,EAAO8xE,MAAKsrN,GAAQlC,GAAoBC,GAAUj+M,SAASkgN,QACpGf,EAASlB,EACX,IAEKkB,CACT,CACA,SAASD,GAAmBiB,GAC1B,IAAIh7E,EAAS3yN,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAClF,MAAM,OACJ2sS,EAAS9mS,GACP8sN,EACEhtN,EAAQ6/R,GAAgBmH,GAAQgB,GAGtC,GAAIhB,IAAW7nR,IAAM6oR,EACnB,MAAO,MAET,MAAM5jS,EAAS27R,GAAgBiH,GAAQgB,IAAkBjI,GAAgBiH,GAAQhnS,GAC3EioS,EAAUD,KAAiBx/B,GAAUlxI,OAAS0wK,EAAgB,KAC9DjgS,EAAS3D,GAAU6jS,GAAW,KACpC,OAAOlgS,CACT,CACA,SAASmgS,GAAuBC,GAC9B,IAAIP,EAAO,GACPvjS,EAAW,KASf,OARA8jS,EAAW3tS,SAAQiG,IACjB,MAAMsH,EAASs+R,GAAYztQ,GAAOooQ,UAAWvgS,GACzCsH,EACF1D,EAAW0D,EACFtH,GACTmnS,EAAK5tS,KAAKyG,EACZ,IAEK,CACL4D,WACAujS,OAEJ,CACA,SAASQ,GAAmBrsS,GAC1B,OAAOA,EAAI8sC,OAAOjvC,QAAO,CAACwB,EAAO+wC,EAAOpwC,IAC/BA,EAAIL,QAAQN,KAAW+wC,GAElC,CACA,SAASk8P,GAAiB19R,GACxB,IAAIqiN,EAAS3yN,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAClF,MAAM,YACJiuS,GAAc,GACZt7E,EACJ,IAAIu7E,EAAc,KAClB,MAAMC,EAAoBhK,EAAGrlS,OAAOglS,GAC9BsK,EAAyBL,GAAmBz9R,EAAO/Q,QAAO6G,GAAO+nS,EAAkB3gN,SAASpnF,MAC5FioS,EAA0BN,GAAmBz9R,EAAO/Q,QAAO6G,IAAQ+9R,EAAG32M,SAASpnF,MAC/EkoS,EAAWF,EAAuB7uS,QAAO6G,IAC7C8nS,EAAc9nS,GACNspM,EAAEliH,SAASpnF,OAEdmoS,EAAkB,MAAQD,EAC3B3B,EAASa,GAAYY,GACrBI,EAAY3uS,EAAeA,EAAe,CAAC,EAAGguS,GAAuBQ,IAA2B,CAAC,EAAG,CACxGtkS,OAAQ2iS,GAAmB6B,EAAiB,CAC1C5B,aAGJ,OAAO9sS,EAAeA,EAAeA,EAAe,CAAC,EAAG2uS,GAAYC,GAA0B,CAC5Fn+R,SACAq8R,SACA1vK,UACA1+F,UACAiwQ,YACAN,iBACGQ,GAAkBT,EAAaC,EAAaM,GACnD,CACA,SAASE,GAAkBT,EAAaC,EAAaM,GACnD,IAAI,OACFzkS,EAAM,SACNC,GACEwkS,EACJ,GAAIP,IAAgBlkS,IAAWC,EAC7B,MAAO,CACLD,SACAC,YAGJ,MAAMuiS,EAAuB,OAAhB2B,EAAuBlB,GAAUhjS,GAAY,CAAC,EACrD2kS,EAAgB5B,GAAQhjS,EAAQC,GAQtC,OAPAA,EAAWuiS,EAAKviS,UAAY2kS,GAAiB3kS,EAC7CD,EAASwiS,EAAKxiS,QAAUA,EACT,QAAXA,GAAqBkzH,GAAO,SAAUA,GAAO,QAAW1+F,GAAO8tQ,eAGjEtiS,EAAS,OAEJ,CACLA,SACAC,WAEJ,CACA,MAAM4kS,GAAuB57E,EAAEzzN,QAAOksS,GAC7BA,IAAa5lS,GAAK4lS,IAAa3mR,IAElC+pR,GAAqBzvS,OAAOD,KAAK+kS,GAAI3kS,QAAOa,GAAOA,IAAQyF,IAAGD,KAAIxF,GAAOhB,OAAOD,KAAK+kS,EAAG9jS,MAAO0uS,OACrG,SAASL,GAA0BM,GACjC,MAAM,OACJz+R,EAAM,OACNq8R,EAAM,UACN6B,EAAS,YACTN,EAAc,GAAE,OAChBjxK,EAAS,CAAC,EACV1+F,OAAQywQ,EAAY,CAAC,GACnBD,EACEE,EAAkBtC,IAAW7nR,EAC7BoqR,EAAmB5+R,EAAOk9E,SAAS,eAAiBl9E,EAAOk9E,SAAS,OACpE2hN,EAAqD,YAA5BH,EAAUtI,cACnC0I,EAAgD,QAArBZ,EAAUzkS,QAAyC,eAArBykS,EAAUzkS,OAOzE,IANKklS,IAAoBC,GAAoBC,GAA0BC,KACrEZ,EAAUzkS,OAAS,QAEjBuG,EAAOk9E,SAAS,cAAgBl9E,EAAOk9E,SAAS,UAClDghN,EAAUzkS,OAAS,QAEhBykS,EAAUzkS,QAAU6kS,GAAqBphN,SAASm/M,GAAS,CAC9D,MAAM0C,EAAcjwS,OAAOD,KAAK89H,GAAQ2D,MAAKxgI,GAAOyuS,GAAmBrhN,SAASptF,KAChF,GAAIivS,GAAeL,EAAU3C,aAAc,CACzC,MAAMiD,EAAgB/M,EAAG1yR,IAAI88R,GAAQnK,qBACrCgM,EAAUzkS,OAASulS,EACnBd,EAAUxkS,SAAW+iS,GAAQyB,EAAUzkS,OAAQykS,EAAUxkS,WAAawkS,EAAUxkS,QAClF,CACF,CAMA,MALyB,OAArBwkS,EAAUzkS,QAAmC,OAAhBmkS,IAG/BM,EAAUzkS,OAASqjS,MAA4B,OAE1CoB,CACT,CAEA,MAAMe,GACJ1uS,WAAAA,GACEhD,KAAK2xS,YAAc,CAAC,CACtB,CACApxS,GAAAA,GACE,IAAK,IAAImI,EAAOvG,UAAUC,OAAQuvS,EAAc,IAAIztS,MAAMwE,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IACtF+oS,EAAY/oS,GAAQzG,UAAUyG,GAEhC,MAAMgpS,EAAYD,EAAYzpS,OAAOlI,KAAK6xS,iBAAkB,CAAC,GAC7DtwS,OAAOD,KAAKswS,GAAWtvS,SAAQC,IAC7BvC,KAAK2xS,YAAYpvS,GAAOP,EAAeA,EAAe,CAAC,EAAGhC,KAAK2xS,YAAYpvS,IAAQ,CAAC,GAAIqvS,EAAUrvS,IAClGgrS,GAAYhrS,EAAKqvS,EAAUrvS,IAG3B,MAAMuvS,EAAa/J,GAAqB//R,GAAGzF,GACvCuvS,GAAYvE,GAAYuE,EAAYF,EAAUrvS,IAClDg6M,IAAO,GAEX,CACA5mK,KAAAA,GACE31C,KAAK2xS,YAAc,CAAC,CACtB,CACAE,gBAAAA,CAAiBD,EAAWxiN,GAC1B,MAAMksK,EAAalsK,EAAWljF,QAAUkjF,EAAWjjF,UAAYijF,EAAWnjF,KAAO,CAC/E,EAAGmjF,GACDA,EAkBJ,OAjBA7tF,OAAOD,KAAKg6P,GAAYvzP,KAAIxF,IAC1B,MAAM,OACJ2J,EAAM,SACNC,EAAQ,KACRF,GACEqvP,EAAW/4P,GACT++O,EAAUr1O,EAAK,GAChB2lS,EAAU1lS,KAAS0lS,EAAU1lS,GAAU,CAAC,GACzCo1O,EAAQl/O,OAAS,GACnBk/O,EAAQh/O,SAAQ6+O,IACO,kBAAVA,IACTywD,EAAU1lS,GAAQi1O,GAASl1O,EAC7B,IAGJ2lS,EAAU1lS,GAAQC,GAAYF,CAAI,IAE7B2lS,CACT,EAGF,IAAIG,GAAW,GACXzkP,GAAS,CAAC,EACd,MAAM0kP,GAAY,CAAC,EACbC,GAAsB1wS,OAAOD,KAAK0wS,IACxC,SAAS3sN,GAAgB6sN,EAAa/xQ,GACpC,IACEgyQ,UAAWtvS,GACTs9B,EAoCJ,OAnCA4xQ,GAAWG,EACX5kP,GAAS,CAAC,EACV/rD,OAAOD,KAAK0wS,IAAW1vS,SAAQ2U,KACW,IAApCg7R,GAAoBzuS,QAAQyT,WACvB+6R,GAAU/6R,EACnB,IAEF86R,GAASzvS,SAAQ02C,IACf,MAAM6yP,EAAS7yP,EAAO6yP,OAAS7yP,EAAO6yP,SAAW,CAAC,EAclD,GAbAtqS,OAAOD,KAAKuqS,GAAQvpS,SAAQ8vS,IACA,oBAAfvG,EAAOuG,KAChBvvS,EAAIuvS,GAAMvG,EAAOuG,IAEO,kBAAfvG,EAAOuG,IAChB7wS,OAAOD,KAAKuqS,EAAOuG,IAAK9vS,SAAQ+vS,IACzBxvS,EAAIuvS,KACPvvS,EAAIuvS,GAAM,CAAC,GAEbvvS,EAAIuvS,GAAIC,GAAMxG,EAAOuG,GAAIC,EAAG,GAEhC,IAEEr5P,EAAO2U,MAAO,CAChB,MAAMA,EAAQ3U,EAAO2U,QACrBpsD,OAAOD,KAAKqsD,GAAOrrD,SAAQ5C,IACpB4tD,GAAO5tD,KACV4tD,GAAO5tD,GAAQ,IAEjB4tD,GAAO5tD,GAAMoC,KAAK6rD,EAAMjuD,GAAM,GAElC,CACIs5C,EAAOm9M,UACTn9M,EAAOm9M,SAAS67C,GAClB,IAEKnvS,CACT,CACA,SAASyvS,GAAW5yS,EAAM6/R,GACxB,IAAK,IAAI72R,EAAOvG,UAAUC,OAAQ45B,EAAO,IAAI93B,MAAMwE,EAAO,EAAIA,EAAO,EAAI,GAAIE,EAAO,EAAGA,EAAOF,EAAME,IAClGozB,EAAKpzB,EAAO,GAAKzG,UAAUyG,GAE7B,MAAM2pS,EAAUjlP,GAAO5tD,IAAS,GAIhC,OAHA6yS,EAAQjwS,SAAQkwS,IACdjT,EAAciT,EAAOzwS,MAAM,KAAM,CAACw9R,KAAgBvjQ,GAAM,IAEnDujQ,CACT,CACA,SAASkT,GAAU/yS,GACjB,IAAK,IAAIuvK,EAAQ9sK,UAAUC,OAAQ45B,EAAO,IAAI93B,MAAM+qK,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxGlzI,EAAKkzI,EAAQ,GAAK/sK,UAAU+sK,GAE9B,MAAMqjI,EAAUjlP,GAAO5tD,IAAS,GAChC6yS,EAAQjwS,SAAQkwS,IACdA,EAAOzwS,MAAM,KAAMi6B,EAAK,GAG5B,CACA,SAAS02Q,KACP,MAAMhzS,EAAOyC,UAAU,GACjB65B,EAAO93B,MAAMjB,UAAU0B,MAAMtE,KAAK8B,UAAW,GACnD,OAAO6vS,GAAUtyS,GAAQsyS,GAAUtyS,GAAMqC,MAAM,KAAMi6B,QAAQjzB,CAC/D,CAEA,SAAS4pS,GAAmBC,GACA,OAAtBA,EAAW1mS,SACb0mS,EAAW1mS,OAAS,OAEtB,IAAI,SACFC,GACEymS,EACJ,MAAM1mS,EAAS0mS,EAAW1mS,QAAUqjS,KACpC,GAAKpjS,EAEL,OADAA,EAAW+iS,GAAQhjS,EAAQC,IAAaA,EACjCogS,GAAgBsG,GAAQlB,YAAazlS,EAAQC,IAAaogS,GAAgBj8B,GAAUlxI,OAAQlzH,EAAQC,EAC7G,CACA,MAAM0mS,GAAU,IAAInB,GACdoB,GAASA,KACbpyQ,GAAOsoQ,gBAAiB,EACxBtoQ,GAAO0oQ,kBAAmB,EAC1BqJ,GAAU,SAAS,EAEf3G,GAAM,CACViH,MAAO,WACL,IAAIj+E,EAAS3yN,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAClF,OAAI0gS,GACF4P,GAAU,cAAe39E,GACzB49E,GAAa,qBAAsB59E,GAC5B49E,GAAa,QAAS59E,IAEtBr5I,QAAQl4B,OAAO,IAAI7vC,MAAM,0CAEpC,EACAk0F,MAAO,WACL,IAAIktH,EAAS3yN,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAClF,MAAM,mBACJ6wS,GACEl+E,GAC0B,IAA1Bp0L,GAAOsoQ,iBACTtoQ,GAAOsoQ,gBAAiB,GAE1BtoQ,GAAO0oQ,kBAAmB,EAC1BgD,IAAS,KACP6G,GAAY,CACVD,uBAEFP,GAAU,QAAS39E,EAAO,GAE9B,GAEI1oN,GAAQ,CACZH,KAAMA,IACJ,GAAa,OAATA,EACF,OAAO,KAET,GAAoB,kBAATA,GAAqBA,EAAKC,QAAUD,EAAKE,SAClD,MAAO,CACLD,OAAQD,EAAKC,OACbC,SAAU+iS,GAAQjjS,EAAKC,OAAQD,EAAKE,WAAaF,EAAKE,UAG1D,GAAIjI,MAAMC,QAAQ8H,IAAyB,IAAhBA,EAAK7J,OAAc,CAC5C,MAAM+J,EAAsC,IAA3BF,EAAK,GAAGzI,QAAQ,OAAeyI,EAAK,GAAGtH,MAAM,GAAKsH,EAAK,GAClEC,EAAS2iS,GAAmB5iS,EAAK,IACvC,MAAO,CACLC,SACAC,SAAU+iS,GAAQhjS,EAAQC,IAAaA,EAE3C,CACA,GAAoB,kBAATF,IAAsBA,EAAKzI,QAAQ,GAAGvC,OAAOy/B,GAAOooQ,UAAW,OAAS,GAAK78R,EAAKtF,MAAMshS,KAAiC,CAClI,MAAMiL,EAAgB/C,GAAiBlkS,EAAK3F,MAAM,KAAM,CACtD8pS,aAAa,IAEf,MAAO,CACLlkS,OAAQgnS,EAAchnS,QAAUqjS,KAChCpjS,SAAU+iS,GAAQgE,EAAchnS,OAAQgnS,EAAc/mS,WAAa+mS,EAAc/mS,SAErF,CACA,GAAoB,kBAATF,EAAmB,CAC5B,MAAMC,EAASqjS,KACf,MAAO,CACLrjS,SACAC,SAAU+iS,GAAQhjS,EAAQD,IAASA,EAEvC,IAGE89N,GAAM,CACV+oE,UACApyQ,UACAorQ,OACA1/R,SACAymS,WACAF,sBACAtG,WAEI4G,GAAc,WAClB,IAAIn+E,EAAS3yN,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAClF,MAAM,mBACJ6wS,EAAqBj3N,GACnB+4I,GACCvzN,OAAOD,KAAKgvQ,GAAUlxI,QAAQh9H,OAAS,GAAKs+B,GAAO8tQ,eAAiB3L,GAAUniQ,GAAOsoQ,gBAAgBj/D,GAAI+hE,IAAIiH,MAAM,CACtH35R,KAAM45R,GAEV,EAEA,SAASG,GAAY9pS,EAAK+pS,GAiBxB,OAhBA7xS,OAAOoB,eAAe0G,EAAK,WAAY,CACrC2I,IAAKohS,IAEP7xS,OAAOoB,eAAe0G,EAAK,OAAQ,CACjC2I,IAAK,WACH,OAAO3I,EAAIkE,SAASxF,KAAI84E,GAAKwrN,GAAOxrN,IACtC,IAEFt/E,OAAOoB,eAAe0G,EAAK,OAAQ,CACjC2I,IAAK,WACH,IAAK6wR,EAAQ,OACb,MAAMjkI,EAAY7iF,EAAS7uE,cAAc,OAEzC,OADA0xJ,EAAUl5D,UAAYr8F,EAAI+vG,KACnBwlD,EAAU31J,QACnB,IAEKI,CACT,CAEA,SAASgqS,GAAQlzQ,GACf,IAAI,SACFl3B,EAAQ,KACRqqS,EAAI,KACJ1mS,EAAI,WACJxD,EAAU,OACVg2H,EAAM,UACNryH,GACEozB,EACJ,GAAIsqQ,GAAsB19R,IAAcumS,EAAKlgE,QAAUxmO,EAAKwmO,MAAO,CACjE,MAAM,MACJj1I,EAAK,OACLD,GACEo1M,EACEjzM,EAAS,CACbjd,EAAG+a,EAAQD,EAAS,EACpBhQ,EAAG,IAEL9kF,EAAW,SAAWmhS,GAAWvoS,EAAeA,EAAe,CAAC,EAAGo9H,GAAS,CAAC,EAAG,CAC9E,mBAAoB,GAAGn+H,OAAOo/F,EAAOjd,EAAIr2E,EAAUq2E,EAAI,GAAI,OAAOniF,OAAOo/F,EAAOnS,EAAInhF,EAAUmhF,EAAI,GAAI,QAE1G,CACA,MAAO,CAAC,CACNnkF,IAAK,MACLX,aACAH,YAEJ,CAEA,SAASsqS,GAAUpzQ,GACjB,IAAI,OACFj0B,EAAM,SACNC,EAAQ,SACRlD,EAAQ,WACRG,EAAU,OACV4D,GACEmzB,EACJ,MAAMvH,GAAgB,IAAX5rB,EAAkB,GAAG/L,OAAOiL,EAAQ,KAAKjL,OAAOy/B,GAAOooQ,UAAW,KAAK7nS,OAAOkL,GAAYa,EACrG,MAAO,CAAC,CACNjD,IAAK,MACLX,WAAY,CACVtB,MAAO,kBAETmB,SAAU,CAAC,CACTc,IAAK,SACLX,WAAYpH,EAAeA,EAAe,CAAC,EAAGoH,GAAa,CAAC,EAAG,CAC7DwvB,OAEF3vB,cAGN,CAEA,SAASuqS,GAAsB1+E,GAC7B,MACEw4E,OAAO,KACLgG,EAAI,KACJ1mS,GACD,OACDV,EAAM,SACNC,EAAQ,UACRY,EAAS,OACTC,EAAM,MACNC,EAAK,OACLwmS,EAAM,QACN5tH,EAAO,MACPknH,EAAK,UACL2G,GAAY,GACV5+E,GACE,MACJ32H,EAAK,OACLD,GACEtxF,EAAKwmO,MAAQxmO,EAAO0mS,EAClBK,EAAiB/N,EAAGj2M,SAASzjF,GAC7B0nS,EAAY,CAAClzQ,GAAOqoQ,iBAAkB58R,EAAW,GAAGlL,OAAOy/B,GAAOooQ,UAAW,KAAK7nS,OAAOkL,GAAY,IAAIzK,QAAO8tS,IAAyC,IAAjCzC,EAAMtiS,QAAQjH,QAAQgsS,KAAc9tS,QAAO8tS,GAAiB,KAATA,KAAiBA,IAAMvuS,OAAO8rS,EAAMtiS,SAASlE,KAAK,KACnO,IAAI4+F,EAAU,CACZl8F,SAAU,GACVG,WAAYpH,EAAeA,EAAe,CAAC,EAAG+qS,EAAM3jS,YAAa,CAAC,EAAG,CACnE,cAAe8C,EACf,YAAaC,EACb,MAASynS,EACT,KAAQ7G,EAAM3jS,WAAWk/F,MAAQ,MACjC,MAAS,6BACT,QAAW,OAAOrnG,OAAOk9F,EAAO,KAAKl9F,OAAOi9F,MAGhD,MAAM21M,EAAyBF,KAAoB5G,EAAMtiS,QAAQjH,QAAQ,SAAW,CAClF26F,MAAO,GAAGl9F,OAAOk9F,EAAQD,EAAS,GAAK,MAAQ,OAC7C,CAAC,EACDw1M,IACFvuM,EAAQ/7F,WAAW49R,IAAiB,IAElC/5R,IACFk4F,EAAQl8F,SAASnH,KAAK,CACpBiI,IAAK,QACLX,WAAY,CACVwvB,GAAIusE,EAAQ/7F,WAAW,oBAAsB,SAASnI,OAAO4kL,GAAWskH,OAE1ElhS,SAAU,CAACgE,YAENk4F,EAAQ/7F,WAAW6D,OAE5B,MAAM+uB,EAAOh6B,EAAeA,EAAe,CAAC,EAAGmjG,GAAU,CAAC,EAAG,CAC3Dj5F,SACAC,WACAmnS,OACA1mS,OACA6mS,SACA1mS,YACAC,SACAoyH,OAAQp9H,EAAeA,EAAe,CAAC,EAAG6xS,GAAyB9G,EAAM3tK,WAErE,SACJn2H,EAAQ,WACRG,GACEwD,EAAKwmO,OAASkgE,EAAKlgE,MAAQs/D,GAAa,uBAAwB12Q,IAAS,CAC3E/yB,SAAU,GACVG,WAAY,CAAC,GACXspS,GAAa,uBAAwB12Q,IAAS,CAChD/yB,SAAU,GACVG,WAAY,CAAC,GAIf,OAFA4yB,EAAK/yB,SAAWA,EAChB+yB,EAAK5yB,WAAaA,EACd4D,EACKumS,GAASv3Q,GAETq3Q,GAAOr3Q,EAElB,CACA,SAAS83Q,GAAuBh/E,GAC9B,MAAM,QACJ3vH,EAAO,MACPhH,EAAK,OACLD,EAAM,UACNnxF,EAAS,MACTE,EAAK,MACL8/R,EAAK,UACL2G,GAAY,GACV5+E,EACE1rN,EAAapH,EAAeA,EAAeA,EAAe,CAAC,EAAG+qS,EAAM3jS,YAAa6D,EAAQ,CAC7F,MAASA,GACP,CAAC,GAAI,CAAC,EAAG,CACX,MAAS8/R,EAAMtiS,QAAQlE,KAAK,OAE1BmtS,IACFtqS,EAAW49R,IAAiB,IAE9B,MAAM5nK,EAASp9H,EAAe,CAAC,EAAG+qS,EAAM3tK,QACpCqrK,GAAsB19R,KACxBqyH,EAAO,aAAe6rK,GAAgB,CACpCl+R,YACAm+R,eAAe,EACf/sM,QACAD,WAEFkhC,EAAO,qBAAuBA,EAAO,cAEvC,MAAM20K,EAAcxJ,GAAWnrK,GAC3B20K,EAAY3xS,OAAS,IACvBgH,EAAW,SAAW2qS,GAExB,MAAM1qS,EAAM,GAeZ,OAdAA,EAAIvH,KAAK,CACPiI,IAAK,OACLX,aACAH,SAAU,CAACk8F,KAETl4F,GACF5D,EAAIvH,KAAK,CACPiI,IAAK,OACLX,WAAY,CACVI,MAAO,WAETP,SAAU,CAACgE,KAGR5D,CACT,CACA,SAAS2qS,GAA0Bl/E,GACjC,MAAM,QACJ3vH,EAAO,MACPl4F,EAAK,MACL8/R,GACEj4E,EACE1rN,EAAapH,EAAeA,EAAeA,EAAe,CAAC,EAAG+qS,EAAM3jS,YAAa6D,EAAQ,CAC7F,MAASA,GACP,CAAC,GAAI,CAAC,EAAG,CACX,MAAS8/R,EAAMtiS,QAAQlE,KAAK,OAExBwtS,EAAcxJ,GAAWwC,EAAM3tK,QACjC20K,EAAY3xS,OAAS,IACvBgH,EAAW,SAAW2qS,GAExB,MAAM1qS,EAAM,GAeZ,OAdAA,EAAIvH,KAAK,CACPiI,IAAK,OACLX,aACAH,SAAU,CAACk8F,KAETl4F,GACF5D,EAAIvH,KAAK,CACPiI,IAAK,OACLX,WAAY,CACVI,MAAO,WAETP,SAAU,CAACgE,KAGR5D,CACT,CAEA,MACE+1H,OAAQ60K,IACN3jC,GACJ,SAAS4jC,GAAYjoS,GACnB,MAAMkyF,EAAQlyF,EAAK,GACbiyF,EAASjyF,EAAK,IACbkoS,GAAcloS,EAAKtH,MAAM,GAChC,IAAIkE,EAAU,KAgCd,OA9BEA,EADE3E,MAAMC,QAAQgwS,GACN,CACRpqS,IAAK,IACLX,WAAY,CACVI,MAAO,GAAGvI,OAAOy/B,GAAOooQ,UAAW,KAAK7nS,OAAOqnS,GAAgBlE,QAEjEn7R,SAAU,CAAC,CACTc,IAAK,OACLX,WAAY,CACVI,MAAO,GAAGvI,OAAOy/B,GAAOooQ,UAAW,KAAK7nS,OAAOqnS,GAAgB/D,WAC/D92L,KAAM,eACN9xF,EAAGw4R,EAAW,KAEf,CACDpqS,IAAK,OACLX,WAAY,CACVI,MAAO,GAAGvI,OAAOy/B,GAAOooQ,UAAW,KAAK7nS,OAAOqnS,GAAgBhE,SAC/D72L,KAAM,eACN9xF,EAAGw4R,EAAW,OAKV,CACRpqS,IAAK,OACLX,WAAY,CACVqkG,KAAM,eACN9xF,EAAGw4R,IAIF,CACL/gE,OAAO,EACPj1I,QACAD,SACAjyF,KAAMpD,EAEV,CACA,MAAMurS,GAA6B,CACjChhE,OAAO,EACPj1I,MAAO,IACPD,OAAQ,KAEV,SAASm2M,GAAmBloS,EAAUD,GAC/BlC,IAAe02B,GAAO8oQ,mBAAoBr9R,GAC7C/B,QAAQC,MAAM,mBAAoBpJ,OAAOkL,EAAU,kBAAoBlL,OAAOiL,EAAQ,iBAE1F,CACA,SAASooS,GAASnoS,EAAUD,GAC1B,IAAImkS,EAAcnkS,EAIlB,MAHe,OAAXA,GAA2C,OAAxBw0B,GAAOkoQ,eAC5B18R,EAASqjS,MAEJ,IAAI9zN,SAAQ,CAACn4B,EAASC,KAC3B,GAAoB,OAAhB8sP,EAAsB,CACxB,MAAM3B,EAAOS,GAAUhjS,IAAa,CAAC,EACrCA,EAAWuiS,EAAKviS,UAAYA,EAC5BD,EAASwiS,EAAKxiS,QAAUA,CAC1B,CACA,GAAIC,GAAYD,GAAU+nS,GAAS/nS,IAAW+nS,GAAS/nS,GAAQC,GAAW,CACxE,MAAMF,EAAOgoS,GAAS/nS,GAAQC,GAC9B,OAAOm3C,EAAQ4wP,GAAYjoS,GAC7B,CACAooS,GAAmBloS,EAAUD,GAC7Bo3C,EAAQthD,EAAeA,EAAe,CAAC,EAAGoyS,IAA6B,CAAC,EAAG,CACzEnoS,KAAMy0B,GAAO8oQ,kBAAoBr9R,GAAWumS,GAAa,wBAA+B,CAAC,IACxF,GAEP,CAEA,MAAM6B,GAASA,OACTC,GAAM9zQ,GAAO6oQ,oBAAsB3G,GAAeA,EAAYF,MAAQE,EAAY58P,QAAU48P,EAAc,CAC9GF,KAAM6R,GACNvuQ,QAASuuQ,IAELE,GAAW,aACXC,GAAQ9vS,IACZ4vS,GAAI9R,KAAK,GAAGzhS,OAAOwzS,GAAU,KAAKxzS,OAAO2D,EAAM,YACxC,IAAMuW,GAAIvW,IAEbuW,GAAMvW,IACV4vS,GAAI9R,KAAK,GAAGzhS,OAAOwzS,GAAU,KAAKxzS,OAAO2D,EAAM,UAC/C4vS,GAAIxuQ,QAAQ,GAAG/kC,OAAOwzS,GAAU,KAAKxzS,OAAO2D,GAAO,GAAG3D,OAAOwzS,GAAU,KAAKxzS,OAAO2D,EAAM,WAAY,GAAG3D,OAAOwzS,GAAU,KAAKxzS,OAAO2D,EAAM,SAAS,EAEtJ,IAAI+vS,GAAO,CACTD,SACAv5R,QAGF,MAAMy5R,GAASA,OACf,SAASC,GAAUz7R,GACjB,MAAM25R,EAAQ35R,EAAKwmF,aAAexmF,EAAKwmF,aAAaonM,IAAiB,KACrE,MAAwB,kBAAV+L,CAChB,CACA,SAAS+B,GAAiB17R,GACxB,MAAMlN,EAASkN,EAAKwmF,aAAexmF,EAAKwmF,aAAaunM,IAAe,KAC9Dl7R,EAAOmN,EAAKwmF,aAAexmF,EAAKwmF,aAAawnM,IAAa,KAChE,OAAOl7R,GAAUD,CACnB,CACA,SAAS8oS,GAAgB37R,GACvB,OAAOA,GAAQA,EAAK7O,WAAa6O,EAAK7O,UAAUuzF,UAAY1kF,EAAK7O,UAAUuzF,SAASp9D,GAAOqoQ,iBAC7F,CACA,SAASiM,KACP,IAA8B,IAA1Bt0Q,GAAOsoQ,eACT,OAAOiM,GAASvuS,QAElB,MAAMwuS,EAAUD,GAASv0Q,GAAOsoQ,gBAChC,OAAOkM,GAAWD,GAASvuS,OAC7B,CACA,SAAS2pQ,GAAgBtmQ,GACvB,OAAOgyE,EAASs0L,gBAAgB,6BAA8BtmQ,EAChE,CACA,SAASmD,GAAcnD,GACrB,OAAOgyE,EAAS7uE,cAAcnD,EAChC,CACA,SAASorS,GAAWC,GAClB,IAAItgF,EAAS3yN,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAClF,MAAM,KACJkzS,GAA2B,QAApBD,EAAYrrS,IAAgBsmQ,GAAkBnjQ,KACnD4nN,EACJ,GAA2B,kBAAhBsgF,EACT,OAAOr5N,EAASiyH,eAAeonG,GAEjC,MAAMrrS,EAAMsrS,EAAKD,EAAYrrS,KAC7BxI,OAAOD,KAAK8zS,EAAYhsS,YAAc,IAAI9G,SAAQ,SAAUC,GAC1DwH,EAAIy1F,aAAaj9F,EAAK6yS,EAAYhsS,WAAW7G,GAC/C,IACA,MAAM0G,EAAWmsS,EAAYnsS,UAAY,GAMzC,OALAA,EAAS3G,SAAQ,SAAU28F,GACzBl1F,EAAIo5J,YAAYgyI,GAAWl2M,EAAO,CAChCo2M,SAEJ,IACOtrS,CACT,CACA,SAASurS,GAAcl8R,GACrB,IAAIm8R,EAAU,IAAIt0S,OAAOmY,EAAKo8R,UAAW,KAIzC,OAFAD,EAAU,GAAGt0S,OAAOs0S,EAAS,iCAEtBA,CACT,CACA,MAAMN,GAAW,CACfvuS,QAAS,SAAU2qH,GACjB,MAAMj4G,EAAOi4G,EAAS,GACtB,GAAIj4G,EAAKujF,WAIP,GAHA00B,EAAS,GAAG/uH,SAAQiL,IAClB6L,EAAKujF,WAAW0kH,aAAa8zF,GAAW5nS,GAAW6L,EAAK,IAEjB,OAArCA,EAAKwmF,aAAaonM,KAA2BtmQ,GAAO4oQ,mBAAoB,CAC1E,IAAIiM,EAAUx5N,EAASw0L,cAAc+kC,GAAcl8R,IACnDA,EAAKujF,WAAW84M,aAAaF,EAASn8R,EACxC,MACEA,EAAKq0C,QAGX,EACAioP,KAAM,SAAUrkL,GACd,MAAMj4G,EAAOi4G,EAAS,GAChB9jH,EAAW8jH,EAAS,GAI1B,IAAK+4K,GAAWhxR,GAAM5V,QAAQk9B,GAAOqoQ,kBACnC,OAAOkM,GAASvuS,QAAQ2qH,GAE1B,MAAMskL,EAAS,IAAIttO,OAAO,GAAGpnE,OAAOy/B,GAAOooQ,UAAW,QAEtD,UADOv7R,EAAS,GAAGnE,WAAWwvB,GAC1BrrB,EAAS,GAAGnE,WAAWI,MAAO,CAChC,MAAMosS,EAAeroS,EAAS,GAAGnE,WAAWI,MAAMlD,MAAM,KAAK4B,QAAO,CAACC,EAAKI,KACpEA,IAAQm4B,GAAOqoQ,kBAAoBxgS,EAAI5B,MAAMgvS,GAC/CxtS,EAAI0tS,MAAM/zS,KAAKyG,GAEfJ,EAAI2tS,OAAOh0S,KAAKyG,GAEXJ,IACN,CACD2tS,OAAQ,GACRD,MAAO,KAETtoS,EAAS,GAAGnE,WAAWI,MAAQosS,EAAaC,MAAMtvS,KAAK,KACpB,IAA/BqvS,EAAaE,OAAO1zS,OACtBgX,EAAKsmF,gBAAgB,SAErBtmF,EAAKomF,aAAa,QAASo2M,EAAaE,OAAOvvS,KAAK,KAExD,CACA,MAAMwvS,EAAexoS,EAASxF,KAAI84E,GAAKwrN,GAAOxrN,KAAIt6E,KAAK,MACvD6S,EAAKomF,aAAawnM,GAAe,IACjC5tR,EAAKssF,UAAYqwM,CACnB,GAEF,SAASC,GAAqBhsK,GAC5BA,GACF,CACA,SAASisK,GAAQ9kL,EAAW/pH,GAC1B,MAAM8uS,EAAuC,oBAAb9uS,EAA0BA,EAAWwtS,GACrE,GAAyB,IAArBzjL,EAAU/uH,OACZ8zS,QACK,CACL,IAAIjsQ,EAAQ+rQ,GACRt1Q,GAAO2oQ,iBAAmB/B,KAC5Br9P,EAAQ9xB,EAAO6kF,uBAAyBg5M,IAE1C/rQ,GAAM,KACJ,MAAMirQ,EAAUF,KACVtS,EAAOiS,GAAKD,MAAM,UACxBvjL,EAAUppH,IAAImtS,GACdxS,IACAwT,GAAkB,GAEtB,CACF,CACA,IAAIrjR,IAAW,EACf,SAASsjR,KACPtjR,IAAW,CACb,CACA,SAASujR,KACPvjR,IAAW,CACb,CACA,IAAIwjR,GAAO,KACX,SAAS3nL,GAAQ/uH,GACf,IAAKgjS,EACH,OAEF,IAAKjiQ,GAAO0oQ,iBACV,OAEF,MAAM,aACJkN,EAAe1B,GAAM,aACrB2B,EAAe3B,GAAM,uBACrB4B,EAAyB5B,GAAM,qBAC/B6B,EAAuB16N,GACrBp8E,EACJ02S,GAAO,IAAI1T,GAAkB+T,IAC3B,GAAI7jR,GAAU,OACd,MAAM4+Q,EAAgBlC,KACtBniE,GAAQspE,GAASp0S,SAAQq0S,IAUvB,GAT4B,cAAxBA,EAAerqS,MAAwBqqS,EAAeplL,WAAWnvH,OAAS,IAAMyyS,GAAU8B,EAAeplL,WAAW,MAClH7wF,GAAOyoQ,sBACTqN,EAAuBG,EAAe10S,QAExCq0S,EAAaK,EAAe10S,SAEF,eAAxB00S,EAAerqS,MAAyBqqS,EAAe10S,OAAO06F,YAAcj8D,GAAOyoQ,sBACrFqN,EAAuBG,EAAe10S,OAAO06F,YAEnB,eAAxBg6M,EAAerqS,MAAyBuoS,GAAU8B,EAAe10S,UAAYomS,GAAgC7kS,QAAQmzS,EAAe/oE,eACtI,GAAqC,UAAjC+oE,EAAe/oE,eAA6BknE,GAAiB6B,EAAe10S,QAAS,CACvF,MAAM,OACJiK,EAAM,SACNC,GACEgkS,GAAiB/F,GAAWuM,EAAe10S,SAC/C00S,EAAe10S,OAAOu9F,aAAa2nM,GAAaj7R,GAAUulS,GACtDtlS,GAAUwqS,EAAe10S,OAAOu9F,aAAa4nM,GAAWj7R,EAC9D,MAAW4oS,GAAgB4B,EAAe10S,SACxCs0S,EAAaI,EAAe10S,OAEhC,GACA,IAEC4gS,GACLwT,GAAK3nL,QAAQ+nL,EAAsB,CACjChlL,WAAW,EACXroH,YAAY,EACZu9J,eAAe,EACfj1C,SAAS,GAEb,CACA,SAAS5C,KACFunL,IACLA,GAAKvnL,YACP,CAEA,SAAS8nL,GAAax9R,GACpB,MAAMtR,EAAQsR,EAAKwmF,aAAa,SAChC,IAAIv2F,EAAM,GAYV,OAXIvB,IACFuB,EAAMvB,EAAMxB,MAAM,KAAK4B,QAAO,CAACC,EAAKL,KAClC,MAAMs3H,EAASt3H,EAAMxB,MAAM,KACrB+B,EAAO+2H,EAAO,GACdl8H,EAAQk8H,EAAOz6H,MAAM,GAI3B,OAHI0D,GAAQnF,EAAMd,OAAS,IACzB+F,EAAIE,GAAQnF,EAAMqD,KAAK,KAAK0B,QAEvBE,CAAG,GACT,CAAC,IAECkB,CACT,CAEA,SAASwtS,GAAaz9R,GACpB,MAAM09R,EAAiB19R,EAAKwmF,aAAa,eACnCm3M,EAAmB39R,EAAKwmF,aAAa,aACrCo3M,OAA+BjuS,IAAnBqQ,EAAK49R,UAA0B59R,EAAK49R,UAAU/uS,OAAS,GACzE,IAAIoB,EAAM8mS,GAAiB/F,GAAWhxR,IAQtC,OAPK/P,EAAI6C,SACP7C,EAAI6C,OAASqjS,MAEXuH,GAAkBC,IACpB1tS,EAAI6C,OAAS4qS,EACbztS,EAAI8C,SAAW4qS,GAEb1tS,EAAI8C,UAAY9C,EAAI6C,SAGpB7C,EAAI6C,QAAU8qS,EAAU50S,OAAS,IACnCiH,EAAI8C,SAAW6iS,GAAW3lS,EAAI6C,OAAQkN,EAAK49R,YAAcjI,GAAU1lS,EAAI6C,OAAQ8gS,GAAM5zR,EAAK49R,cAEvF3tS,EAAI8C,UAAYu0B,GAAO8tQ,cAAgBp1R,EAAKq9L,YAAcr9L,EAAKq9L,WAAW75G,WAAaC,KAAKy0B,YAC/FjoH,EAAI8C,SAAWiN,EAAKq9L,WAAWztM,OANxBK,CASX,CAEA,SAAS4tS,GAAkB79R,GACzB,MAAM89R,EAAkB9pE,GAAQh0N,EAAKhQ,YAAYlB,QAAO,CAACC,EAAKo3F,KAC3C,UAAbp3F,EAAIvD,MAAiC,UAAbuD,EAAIvD,OAC9BuD,EAAIo3F,EAAK36F,MAAQ26F,EAAKr8F,OAEjBiF,IACN,CAAC,GACE8E,EAAQmM,EAAKwmF,aAAa,SAC1BimF,EAAUzsK,EAAKwmF,aAAa,oBASlC,OARIl/D,GAAOwoQ,WACLj8R,EACFiqS,EAAgB,mBAAqB,GAAGj2S,OAAOy/B,GAAOqoQ,iBAAkB,WAAW9nS,OAAO4kL,GAAWskH,OAErG+M,EAAgB,eAAiB,OACjCA,EAAgB,aAAe,UAG5BA,CACT,CAEA,SAASC,KACP,MAAO,CACLhrS,SAAU,KACVc,MAAO,KACP44K,QAAS,KACT35K,OAAQ,KACRa,UAAW68R,GACX58R,QAAQ,EACRJ,KAAM,CACJT,SAAU,KACVD,OAAQ,KACRwjS,KAAM,IAER+D,OAAQ,KACR1G,MAAO,CACLtiS,QAAS,GACT20H,OAAQ,CAAC,EACTh2H,WAAY,CAAC,GAGnB,CACA,SAASguS,GAAUh+R,GACjB,IAAIi+R,EAASl1S,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAC/Ey0S,aAAa,GAEf,MAAM,SACJzqS,EAAQ,OACRD,EACAwjS,KAAM4H,GACJT,GAAYz9R,GACV89R,EAAkBD,GAAiB79R,GACnCm+R,EAAajF,GAAW,sBAAuB,CAAC,EAAGl5R,GACzD,IAAIo+R,EAAcH,EAAOT,YAAcA,GAAYx9R,GAAQ,GAC3D,OAAOpX,EAAe,CACpBmK,WACAc,MAAOmM,EAAKwmF,aAAa,SACzBimF,QAASzsK,EAAKwmF,aAAa,oBAC3B1zF,SACAa,UAAW68R,GACXh9R,KAAM,CACJT,SAAU,KACVD,OAAQ,KACRwjS,KAAM,IAER+D,OAAQ,KACRzmS,QAAQ,EACR+/R,MAAO,CACLtiS,QAAS6sS,EACTl4K,OAAQo4K,EACRpuS,WAAY8tS,IAEbK,EACL,CAEA,MACEn4K,OAAQq4K,IACNnnC,GACJ,SAASonC,GAAiBt+R,GACxB,MAAMu+R,EAAqC,SAA1Bj3Q,GAAOsoQ,eAA4BoO,GAAUh+R,EAAM,CAClEw9R,aAAa,IACVQ,GAAUh+R,GACf,OAAKu+R,EAAS5K,MAAMtiS,QAAQjH,QAAQ0kS,IAC3BwK,GAAa,qBAAsBt5R,EAAMu+R,GAEzCjF,GAAa,iCAAkCt5R,EAAMu+R,EAEhE,CACA,SAASC,KACP,MAAO,IAAIvS,KAAOiB,EACpB,CACA,SAASuR,GAAOl5M,GACd,IAAIv3F,EAAWjF,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,KACnF,IAAK0gS,EAAQ,OAAOpnN,QAAQn4B,UAC5B,MAAMw0P,EAAgB/7N,EAASW,gBAAgBnyE,UACzCwtS,EAASj1M,GAAUg1M,EAAcv3S,IAAI,GAAGU,OAAOomS,GAA6B,KAAKpmS,OAAO6hG,IACxFk1M,EAAYl1M,GAAUg1M,EAAcrqP,OAAO,GAAGxsD,OAAOomS,GAA6B,KAAKpmS,OAAO6hG,IAC9FihC,EAAWrjG,GAAO8tQ,aAAeoJ,KAAqB/lG,EAAE5wM,OAAOM,OAAOD,KAAKm2S,KAC5E1zK,EAASp0C,SAAS,OACrBo0C,EAASjiI,KAAK,MAEhB,MAAMm2S,EAAmB,CAAC,IAAIh3S,OAAOinS,GAAuB,UAAUjnS,OAAO+lS,GAAe,OAAO/lS,OAAO8iI,EAASh8H,KAAImwS,GAAQ,IAAIj3S,OAAOi3S,EAAM,UAAUj3S,OAAO+lS,GAAe,SAAQzgS,KAAK,MAC7L,GAAgC,IAA5B0xS,EAAiB71S,OACnB,OAAOq5E,QAAQn4B,UAEjB,IAAI60P,EAAa,GACjB,IACEA,EAAa/qE,GAAQzuI,EAAKE,iBAAiBo5M,GAC7C,CAAE,MAAOzQ,GACP,CAEF,KAAI2Q,EAAW/1S,OAAS,GAItB,OAAOq5E,QAAQn4B,UAHfy0P,EAAO,WACPC,EAAU,YAIZ,MAAMtV,EAAOiS,GAAKD,MAAM,UAClBvjL,EAAYgnL,EAAWjwS,QAAO,CAACC,EAAKiR,KACxC,IACE,MAAMi4G,EAAWqmL,GAAiBt+R,GAC9Bi4G,GACFlpH,EAAIrG,KAAKuvH,EAEb,CAAE,MAAOm2K,GACFx9R,IACe,gBAAdw9R,EAAK5iS,MACPwF,QAAQC,MAAMm9R,EAGpB,CACA,OAAOr/R,CAAG,GACT,IACH,OAAO,IAAIszE,SAAQ,CAACn4B,EAASC,KAC3Bk4B,QAAQgjE,IAAIttB,GAAWjgH,MAAKknS,IAC1BnC,GAAQmC,GAAmB,KACzBL,EAAO,UACPA,EAAO,YACPC,EAAU,WACc,oBAAb5wS,GAAyBA,IACpCs7R,IACAp/O,GAAS,GACT,IACDi/B,OAAMilN,IACP9E,IACAn/O,EAAOikP,EAAK,GACZ,GAEN,CACA,SAAS6Q,GAAOj/R,GACd,IAAIhS,EAAWjF,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,KACnFu1S,GAAiBt+R,GAAMlI,MAAKmgH,IACtBA,GACF4kL,GAAQ,CAAC5kL,GAAWjqH,EACtB,GAEJ,CACA,SAASkxS,GAAav+R,GACpB,OAAO,SAAUw+R,GACf,IAAIzjF,EAAS3yN,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAClF,MAAMq2S,GAAkBD,GAAuB,CAAC,GAAGtsS,KAAOssS,EAAsB5F,GAAmB4F,GAAuB,CAAC,GAC3H,IAAI,KACF3rS,GACEkoN,EAIJ,OAHIloN,IACFA,GAAQA,GAAQ,CAAC,GAAGX,KAAOW,EAAO+lS,GAAmB/lS,GAAQ,CAAC,IAEzDmN,EAAKy+R,EAAgBx2S,EAAeA,EAAe,CAAC,EAAG8yN,GAAS,CAAC,EAAG,CACzEloN,SAEJ,CACF,CACA,MAAMzN,GAAS,SAAUq5S,GACvB,IAAI1jF,EAAS3yN,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAClF,MAAM,UACJ4K,EAAY68R,GAAoB,OAChC58R,GAAS,EAAK,KACdJ,EAAO,KAAI,OACX6mS,EAAS,KAAI,MACbxmS,EAAQ,KAAI,QACZ44K,EAAU,KAAI,QACdp7K,EAAU,GAAE,WACZrB,EAAa,CAAC,EAAC,OACfg2H,EAAS,CAAC,GACR01F,EACJ,IAAK0jF,EAAgB,OACrB,MAAM,OACJtsS,EAAM,SACNC,EAAQ,KACRF,GACEusS,EACJ,OAAOrF,GAAYnxS,EAAe,CAChCsK,KAAM,QACLksS,IAAiB,KAClB/F,GAAU,2BAA4B,CACpC+F,iBACA1jF,WAEEp0L,GAAOwoQ,WACLj8R,EACF7D,EAAW,mBAAqB,GAAGnI,OAAOy/B,GAAOqoQ,iBAAkB,WAAW9nS,OAAO4kL,GAAWskH,OAEhG/gS,EAAW,eAAiB,OAC5BA,EAAW,aAAe,UAGvBoqS,GAAsB,CAC3BlG,MAAO,CACLgG,KAAMY,GAAYjoS,GAClBW,KAAMA,EAAOsnS,GAAYtnS,EAAKX,MAAQ,CACpCmnO,OAAO,EACPj1I,MAAO,KACPD,OAAQ,KACRjyF,KAAM,CAAC,IAGXC,SACAC,WACAY,UAAW/K,EAAeA,EAAe,CAAC,EAAG4nS,IAAuB78R,GACpEC,SACAC,QACAwmS,SACA5tH,UACAknH,MAAO,CACL3jS,aACAg2H,SACA30H,eAIR,EACA,IAAIguS,GAAkB,CACpB5M,MAAAA,GACE,MAAO,CACL5/R,KAAMqsS,GAAan5S,IAEvB,EACAwuD,KAAAA,GACE,MAAO,CACL+qP,yBAAAA,CAA0BnZ,GAGxB,OAFAA,EAAY+W,aAAeuB,GAC3BtY,EAAYgX,aAAe8B,GACpB9Y,CACT,EAEJ,EACAppC,QAAAA,CAASwiD,GACPA,EAAa5F,MAAQ,SAAUj+E,GAC7B,MAAM,KACJ17M,EAAO2iE,EAAQ,SACf30E,EAAWA,QACT0tN,EACJ,OAAO+iF,GAAOz+R,EAAMhS,EACtB,EACAuxS,EAAaC,+BAAiC,SAAUx/R,EAAMu+R,GAC5D,MAAM,SACJxrS,EAAQ,MACRc,EAAK,QACL44K,EAAO,OACP35K,EAAM,UACNa,EAAS,OACTC,EAAM,KACNJ,EAAI,OACJ6mS,EAAM,MACN1G,GACE4K,EACJ,OAAO,IAAIl8N,SAAQ,CAACn4B,EAASC,KAC3Bk4B,QAAQgjE,IAAI,CAAC61J,GAASnoS,EAAUD,GAASU,EAAKT,SAAWmoS,GAAS1nS,EAAKT,SAAUS,EAAKV,QAAUuvE,QAAQn4B,QAAQ,CAC9G8vL,OAAO,EACPj1I,MAAO,IACPD,OAAQ,IACRjyF,KAAM,CAAC,MACJiF,MAAKivB,IACR,IAAKmzQ,EAAM1mS,GAAQuzB,EACnBmjB,EAAQ,CAAClqC,EAAMo6R,GAAsB,CACnClG,MAAO,CACLgG,OACA1mS,QAEFV,SACAC,WACAY,YACAC,SACAymS,SACAxmS,QACA44K,UACAknH,QACA2G,WAAW,KACT,IACHnxN,MAAMh/B,EAAO,GAEpB,EACAo1P,EAAaE,qBAAuB,SAAUjtM,GAC5C,IAAI,SACF3iG,EAAQ,WACRG,EAAU,KACVkqS,EAAI,UACJvmS,EAAS,OACTqyH,GACExzB,EACJ,MAAMmoM,EAAcxJ,GAAWnrK,GAI/B,IAAI05K,EAUJ,OAbI/E,EAAY3xS,OAAS,IACvBgH,EAAW,SAAW2qS,GAGpBtJ,GAAsB19R,KACxB+rS,EAAYpG,GAAa,oCAAqC,CAC5DY,OACAvmS,YACA49R,eAAgB2I,EAAKn1M,MACrBysM,UAAW0I,EAAKn1M,SAGpBl1F,EAASnH,KAAKg3S,GAAaxF,EAAKrnS,MACzB,CACLhD,WACAG,aAEJ,CACF,GAGE2vS,GAAS,CACXlN,MAAAA,GACE,MAAO,CACLmN,KAAAA,CAAMC,GACJ,IAAInkF,EAAS3yN,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAClF,MAAM,QACJsI,EAAU,IACRqqN,EACJ,OAAOq+E,GAAY,CACjB7mS,KAAM,UACL,KACDmmS,GAAU,2BAA4B,CACpCwG,YACAnkF,WAEF,IAAI7rN,EAAW,GAMf,OALAgwS,GAAUj9Q,IACR93B,MAAMC,QAAQ63B,GAAQA,EAAKj0B,KAAI84E,IAC7B53E,EAAWA,EAAShI,OAAO4/E,EAAEtzE,SAAS,IACnCtE,EAAWA,EAAShI,OAAO+6B,EAAKzuB,SAAS,IAEzC,CAAC,CACNxD,IAAK,OACLX,WAAY,CACVI,MAAO,CAAC,GAAGvI,OAAOy/B,GAAOooQ,UAAW,cAAer+R,GAASlE,KAAK,MAEnE0C,YACA,GAEN,EAEJ,GAGEiwS,GAAgB,CAClBrN,MAAAA,GACE,MAAO,CACL5jK,OAAAA,CAAQ9iC,GACN,IAAI2vH,EAAS3yN,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAClF,MAAM,MACJ8K,EAAQ,KAAI,QACZxC,EAAU,GAAE,WACZrB,EAAa,CAAC,EAAC,OACfg2H,EAAS,CAAC,GACR01F,EACJ,OAAOq+E,GAAY,CACjB7mS,KAAM,UACN64F,YACC,KACDstM,GAAU,2BAA4B,CACpCttM,UACA2vH,WAEKk/E,GAA0B,CAC/B7uM,QAASA,EAAQzgG,WACjBuI,QACA8/R,MAAO,CACL3jS,aACAg2H,SACA30H,QAAS,CAAC,GAAGxJ,OAAOy/B,GAAOooQ,UAAW,sBAAuBr+R,QAIrE,EAEJ,GAGE0uS,GAAa,CACftN,MAAAA,GACE,MAAO,CACL3pQ,IAAAA,CAAKijE,GACH,IAAI2vH,EAAS3yN,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAClF,MAAM,UACJ4K,EAAY68R,GAAoB,MAChC38R,EAAQ,KAAI,QACZxC,EAAU,GAAE,WACZrB,EAAa,CAAC,EAAC,OACfg2H,EAAS,CAAC,GACR01F,EACJ,OAAOq+E,GAAY,CACjB7mS,KAAM,OACN64F,YACC,KACDstM,GAAU,2BAA4B,CACpCttM,UACA2vH,WAEKg/E,GAAuB,CAC5B3uM,UACAp4F,UAAW/K,EAAeA,EAAe,CAAC,EAAG4nS,IAAuB78R,GACpEE,QACA8/R,MAAO,CACL3jS,aACAg2H,SACA30H,QAAS,CAAC,GAAGxJ,OAAOy/B,GAAOooQ,UAAW,mBAAoBr+R,QAIlE,EAEJ,EACA0rP,QAAAA,CAASwiD,GACPA,EAAaS,mBAAqB,SAAUhgS,EAAMu+R,GAChD,MAAM,MACJ1qS,EAAK,UACLF,EAAS,MACTggS,GACE4K,EACJ,IAAIx5M,EAAQ,KACRD,EAAS,KACb,GAAI4kM,EAAO,CACT,MAAMuW,EAAmBvsS,SAASozF,iBAAiB9mF,GAAMm0F,SAAU,IAC7D+rM,EAAqBlgS,EAAK4mF,wBAChC7B,EAAQm7M,EAAmBn7M,MAAQk7M,EACnCn7M,EAASo7M,EAAmBp7M,OAASm7M,CACvC,CAIA,OAHI34Q,GAAOwoQ,WAAaj8R,IACtB8/R,EAAM3jS,WAAW,eAAiB,QAE7BqyE,QAAQn4B,QAAQ,CAAClqC,EAAM06R,GAAuB,CACnD3uM,QAAS/rF,EAAKssF,UACdvH,QACAD,SACAnxF,YACAE,QACA8/R,QACA2G,WAAW,KAEf,CACF,GAGF,MAAM6F,GAAwB,IAAIlxO,OAAO,IAAU,MAC7CmxO,GAA0B,CAAC,QAAS,SACpCC,GAAgCz3S,EAAeA,EAAeA,EAAeA,EAAe,CAAC,EAAG,CACpG03S,YAAa,CACXlV,OAAQ,MACR,IAAK,SAELC,GAAKkC,IAAKT,GACRyT,GAA+Bp4S,OAAOD,KAAKm4S,IAA+BvxS,QAAO,CAACC,EAAK5F,KAC3F4F,EAAI5F,EAAIwE,eAAiB0yS,GAA8Bl3S,GAChD4F,IACN,CAAC,GACEyxS,GAA8Br4S,OAAOD,KAAKq4S,IAA8BzxS,QAAO,CAACC,EAAK0xS,KACzF,MAAMC,EAAUH,GAA6BE,GAE7C,OADA1xS,EAAI0xS,GAAcC,EAAQ,MAAQ,IAAIv4S,OAAOotH,QAAQmrL,IAAU,GAAG,GAC3D3xS,CAAG,GACT,CAAC,GACJ,SAAS4xS,GAAoB50M,GAC3B,MAAM60M,EAAU70M,EAAQz+F,QAAQ6yS,GAAuB,IACjDU,EAAY9M,GAAY6M,EAAS,GACjCE,EAAeD,GAAaT,GAAwB,IAAMS,GAAaT,GAAwB,GAC/FW,EAA+B,IAAnBH,EAAQ53S,QAAe43S,EAAQ,KAAOA,EAAQ,GAChE,MAAO,CACL92S,MAAmB8pS,GAAZmN,EAAkBH,EAAQ,GAAYA,GAC7CI,YAAaF,GAAgBC,EAEjC,CACA,SAASE,GAAUR,EAAYS,GAC7B,MAAMC,EAAsBV,EAAWnzS,QAAQ,eAAgB,IAAIK,cAC7DyzS,EAAoB1tS,SAASwtS,GAC7BG,EAAsB1zQ,MAAMyzQ,GAAqB,SAAWA,EAClE,OAAQb,GAA6BY,IAAwB,CAAC,GAAGE,IAAwBb,GAA4BW,EACvH,CACA,SAASG,GAAmBthS,EAAMynF,GAChC,MAAM85M,EAAmB,GAAG15S,OAAOimS,IAAgCjmS,OAAO4/F,EAASn6F,QAAQ,IAAK,MAChG,OAAO,IAAI+0E,SAAQ,CAACn4B,EAASC,KAC3B,GAA4C,OAAxCnqC,EAAKwmF,aAAa+6M,GAEpB,OAAOr3P,IAET,MAAMr6C,EAAWmkO,GAAQh0N,EAAKnQ,UACxB2xS,EAAgC3xS,EAASvH,QAAO8tS,GAAQA,EAAK5vM,aAAaqnM,MAA4BpmM,IAAU,GAChHu+B,EAASjnH,EAAO+nF,iBAAiB9mF,EAAMynF,GACvCg5M,EAAaz6K,EAAOy7K,iBAAiB,eACrCC,EAAkBjB,EAAWlzS,MAAMwhS,IACnCmS,EAAal7K,EAAOy7K,iBAAiB,eACrC11M,EAAUi6B,EAAOy7K,iBAAiB,WACxC,GAAID,IAAkCE,EAKpC,OADA1hS,EAAKmkF,YAAYq9M,GACVt3P,IACF,GAAIw3P,GAA+B,SAAZ31M,GAAkC,KAAZA,EAAgB,CAClE,MAAMA,EAAUi6B,EAAOy7K,iBAAiB,WACxC,IAAI3uS,EAASmuS,GAAUR,EAAYS,GACnC,MACEp3S,MAAO63S,EAAQ,YACfX,GACEL,GAAoB50M,GAClB61M,EAAOF,EAAgB,GAAGxsN,WAAW,eAC3C,IAAIniF,EAAW4iS,GAAU7iS,EAAQ6uS,GAC7BE,EAAiB9uS,EACrB,GAAI6uS,EAAM,CACR,MAAME,EAAY9L,GAAa2L,GAC3BG,EAAU/uS,UAAY+uS,EAAUhvS,SAClCC,EAAW+uS,EAAU/uS,SACrBD,EAASgvS,EAAUhvS,OAEvB,CAIA,IAAIC,GAAaiuS,GAAiBQ,GAAiCA,EAA8Bh7M,aAAaunM,MAAiBj7R,GAAU0uS,EAA8Bh7M,aAAawnM,MAAe6T,EAiCjM33P,QAjCkN,CAClNlqC,EAAKomF,aAAam7M,EAAkBM,GAChCL,GAEFxhS,EAAKmkF,YAAYq9M,GAEnB,MAAM5lF,EAAOmiF,MACP,MACJpK,GACE/3E,EACJ+3E,EAAM3jS,WAAW69R,IAA0BpmM,EAC3CyzM,GAASnoS,EAAUD,GAAQgF,MAAKoiS,IAC9B,MAAM/lS,EAAWimS,GAAsBxxS,EAAeA,EAAe,CAAC,EAAGgzN,GAAO,CAAC,EAAG,CAClFs4E,MAAO,CACLgG,OACA1mS,KAAM6iS,MAERvjS,SACAC,SAAU8uS,EACVlO,QACA2G,WAAW,KAEP7qS,EAAUkzE,EAASs0L,gBAAgB,6BAA8B,OACtD,aAAbxvK,EACFznF,EAAKioM,aAAax4M,EAASuQ,EAAKq9L,YAEhCr9L,EAAK+pJ,YAAYt6J,GAEnBA,EAAQ2sS,UAAYjoS,EAASxF,KAAIumS,GAAQjC,GAAOiC,KAAO/nS,KAAK,MAC5D6S,EAAKsmF,gBAAgBi7M,GACrBr3P,GAAS,IACRi/B,MAAMh/B,EACX,CAGF,MACED,GACF,GAEJ,CACA,SAAS58C,GAAQ0S,GACf,OAAOqiE,QAAQgjE,IAAI,CAACi8J,GAAmBthS,EAAM,YAAashS,GAAmBthS,EAAM,YACrF,CACA,SAAS+hS,GAAY/hS,GACnB,OAAOA,EAAKujF,aAAethB,SAASmvI,QAAU+8E,GAAoC/jS,QAAQ4V,EAAKs9G,QAAQ7vH,iBAAmBuS,EAAKwmF,aAAaqnM,OAA6B7tR,EAAKujF,YAA0C,QAA5BvjF,EAAKujF,WAAW+5B,QAC9M,CACA,SAASyyK,GAAqBxqM,GAC5B,GAAKkkM,EACL,OAAO,IAAIpnN,SAAQ,CAACn4B,EAASC,KAC3B,MAAM63P,EAAahuE,GAAQzuI,EAAKE,iBAAiB,MAAMn9F,OAAOy5S,IAAapzS,IAAIrB,IACzEyU,EAAMw5R,GAAKD,MAAM,wBACvByB,KACA16N,QAAQgjE,IAAI28J,GAAYlqS,MAAK,KAC3BiK,IACAi7R,KACA9yP,GAAS,IACRi/B,OAAM,KACPpnE,IACAi7R,KACA7yP,GAAQ,GACR,GAEN,CACA,IAAI83P,GAAiB,CACnB1tP,KAAAA,GACE,MAAO,CACL+qP,yBAAAA,CAA0BnZ,GAExB,OADAA,EAAYiX,uBAAyBrN,GAC9B5J,CACT,EAEJ,EACAppC,QAAAA,CAAS67C,GACPA,EAAUsJ,mBAAqB,SAAUxmF,GACvC,MAAM,KACJ17M,EAAO2iE,GACL+4I,EACAp0L,GAAOyoQ,sBACTA,GAAqB/vR,EAEzB,CACF,GAGF,IAAImiS,IAAa,EACjB,IAAIC,GAAqB,CACvB3P,MAAAA,GACE,MAAO,CACLC,IAAK,CACH2P,OAAAA,GACEtF,KACAoF,IAAa,CACf,GAGN,EACA5tP,KAAAA,GACE,MAAO,CACL+tP,SAAAA,GACEhtL,GAAQ4jL,GAAW,4BAA6B,CAAC,GACnD,EACAQ,MAAAA,GACEhkL,IACF,EACAlnB,KAAAA,CAAMktH,GACJ,MAAM,qBACJ2hF,GACE3hF,EACAymF,GACFnF,KAEA1nL,GAAQ4jL,GAAW,4BAA6B,CAC9CmE,yBAGN,EAEJ,GAGF,MAAMkF,GAAuBC,IAC3B,IAAI7uS,EAAY,CACdzB,KAAM,GACN83E,EAAG,EACH8K,EAAG,EACH27M,OAAO,EACPC,OAAO,EACPr9L,OAAQ,GAEV,OAAOmvM,EAAgB70S,cAAcT,MAAM,KAAK4B,QAAO,CAACC,EAAK1D,KAC3D,MAAMoqE,EAAQpqE,EAAEsC,cAAcT,MAAM,KAC9B8mS,EAAQv+N,EAAM,GACpB,IAAI6gO,EAAO7gO,EAAMlqE,MAAM,GAAG4B,KAAK,KAC/B,GAAI6mS,GAAkB,MAATsC,EAEX,OADAvnS,EAAI0hS,OAAQ,EACL1hS,EAET,GAAIilS,GAAkB,MAATsC,EAEX,OADAvnS,EAAI2hS,OAAQ,EACL3hS,EAGT,GADAunS,EAAOxwO,WAAWwwO,GACd3oQ,MAAM2oQ,GACR,OAAOvnS,EAET,OAAQilS,GACN,IAAK,OACHjlS,EAAImD,KAAOnD,EAAImD,KAAOokS,EACtB,MACF,IAAK,SACHvnS,EAAImD,KAAOnD,EAAImD,KAAOokS,EACtB,MACF,IAAK,OACHvnS,EAAIi7E,EAAIj7E,EAAIi7E,EAAIssN,EAChB,MACF,IAAK,QACHvnS,EAAIi7E,EAAIj7E,EAAIi7E,EAAIssN,EAChB,MACF,IAAK,KACHvnS,EAAI+lF,EAAI/lF,EAAI+lF,EAAIwhN,EAChB,MACF,IAAK,OACHvnS,EAAI+lF,EAAI/lF,EAAI+lF,EAAIwhN,EAChB,MACF,IAAK,SACHvnS,EAAIskG,OAAStkG,EAAIskG,OAASijM,EAC1B,MAEJ,OAAOvnS,CAAG,GACT4E,EAAU,EAEf,IAAI8uS,GAAkB,CACpBhQ,MAAAA,GACE,MAAO,CACLz/R,MAAO,CACLW,UAAW6uS,GACFD,GAAqBC,IAIpC,EACAjuP,KAAAA,GACE,MAAO,CACLmuP,mBAAAA,CAAoBvc,EAAanmR,GAC/B,MAAMwiS,EAAkBxiS,EAAKwmF,aAAa,qBAI1C,OAHIg8M,IACFrc,EAAYxyR,UAAY4uS,GAAqBC,IAExCrc,CACT,EAEJ,EACAppC,QAAAA,CAAS67C,GACPA,EAAU+J,kCAAoC,SAAU57Q,GACtD,IAAI,KACFmzQ,EAAI,UACJvmS,EAAS,eACT49R,EAAc,UACdC,GACEzqQ,EACJ,MAAM0qQ,EAAQ,CACZ99R,UAAW,aAAa9L,OAAO0pS,EAAiB,EAAG,UAE/CG,EAAiB,aAAa7pS,OAAqB,GAAd8L,EAAUq2E,EAAQ,MAAMniF,OAAqB,GAAd8L,EAAUmhF,EAAQ,MACtF68M,EAAa,SAAS9pS,OAAO8L,EAAUzB,KAAO,IAAMyB,EAAU88R,OAAS,EAAI,GAAI,MAAM5oS,OAAO8L,EAAUzB,KAAO,IAAMyB,EAAU+8R,OAAS,EAAI,GAAI,MAC9IkB,EAAc,UAAU/pS,OAAO8L,EAAU0/F,OAAQ,SACjDmoB,EAAQ,CACZ7nH,UAAW,GAAG9L,OAAO6pS,EAAgB,KAAK7pS,OAAO8pS,EAAY,KAAK9pS,OAAO+pS,IAErEtsR,EAAO,CACX3R,UAAW,aAAa9L,OAAO2pS,EAAY,GAAK,EAAG,WAE/CwQ,EAAa,CACjBvQ,QACAj2K,QACAl2G,QAEF,MAAO,CACL3U,IAAK,IACLX,WAAYpH,EAAe,CAAC,EAAGo5S,EAAWvQ,OAC1C5hS,SAAU,CAAC,CACTc,IAAK,IACLX,WAAYpH,EAAe,CAAC,EAAGo5S,EAAWxmL,OAC1C3rH,SAAU,CAAC,CACTc,IAAKupS,EAAKrnS,KAAKlC,IACfd,SAAUqqS,EAAKrnS,KAAKhD,SACpBG,WAAYpH,EAAeA,EAAe,CAAC,EAAGsxS,EAAKrnS,KAAK7C,YAAagyS,EAAW18R,UAIxF,CACF,GAGF,MAAMs9R,GAAY,CAChB54N,EAAG,EACH8K,EAAG,EACHiQ,MAAO,OACPD,OAAQ,QAEV,SAAS+9M,GAAU1uS,GACjB,IAAI26I,IAAQ/lJ,UAAUC,OAAS,QAAsB2G,IAAjB5G,UAAU,KAAmBA,UAAU,GAI3E,OAHIoL,EAASnE,aAAemE,EAASnE,WAAWqkG,MAAQy6C,KACtD36I,EAASnE,WAAWqkG,KAAO,SAEtBlgG,CACT,CACA,SAAS2uS,GAAQ3uS,GACf,MAAqB,MAAjBA,EAASxD,IACJwD,EAAStE,SAET,CAACsE,EAEZ,CACA,IAAI4uS,GAAQ,CACVxuP,KAAAA,GACE,MAAO,CACLmuP,mBAAAA,CAAoBvc,EAAanmR,GAC/B,MAAMgjS,EAAWhjS,EAAKwmF,aAAa,gBAC7BhzF,EAAQwvS,EAAkCjM,GAAiBiM,EAAS91S,MAAM,KAAKyB,KAAI7F,GAAKA,EAAE+F,UAAvEwnS,KAMzB,OALK7iS,EAAKV,SACRU,EAAKV,OAASqjS,MAEhBhQ,EAAY3yR,KAAOA,EACnB2yR,EAAYkU,OAASr6R,EAAKwmF,aAAa,mBAChC2/L,CACT,EAEJ,EACAppC,QAAAA,CAAS67C,GACPA,EAAUqK,qBAAuB,SAAUl8Q,GACzC,IAAI,SACFl3B,EAAQ,WACRG,EAAU,KACVkqS,EAAI,KACJ1mS,EACA6mS,OAAQ6I,EAAc,UACtBvvS,GACEozB,EACJ,MACEg+D,MAAOo+M,EACPtwS,KAAMuwS,GACJlJ,GAEFn1M,MAAOs+M,EACPxwS,KAAMywS,GACJ9vS,EACE+vS,EAAQjS,GAAgB,CAC5B39R,YACA49R,eAAgB8R,EAChB7R,UAAW2R,IAEPK,EAAW,CACf7yS,IAAK,OACLX,WAAYpH,EAAeA,EAAe,CAAC,EAAGg6S,IAAY,CAAC,EAAG,CAC5DvuM,KAAM,WAGJovM,EAA8BL,EAASvzS,SAAW,CACtDA,SAAUuzS,EAASvzS,SAASlB,IAAIk0S,KAC9B,CAAC,EACCa,EAAiB,CACrB/yS,IAAK,IACLX,WAAYpH,EAAe,CAAC,EAAG26S,EAAM/nL,OACrC3rH,SAAU,CAACgzS,GAAUj6S,EAAe,CAClC+H,IAAKyyS,EAASzyS,IACdX,WAAYpH,EAAeA,EAAe,CAAC,EAAGw6S,EAASpzS,YAAauzS,EAAMj+R,OACzEm+R,MAECE,EAAiB,CACrBhzS,IAAK,IACLX,WAAYpH,EAAe,CAAC,EAAG26S,EAAM9R,OACrC5hS,SAAU,CAAC6zS,IAEPrJ,EAAS,QAAQxyS,OAAOq7S,GAAkBnS,MAC1C6S,EAAS,QAAQ/7S,OAAOq7S,GAAkBnS,MAC1C8S,EAAU,CACdlzS,IAAK,OACLX,WAAYpH,EAAeA,EAAe,CAAC,EAAGg6S,IAAY,CAAC,EAAG,CAC5DpjR,GAAI66Q,EACJyJ,UAAW,iBACXC,iBAAkB,mBAEpBl0S,SAAU,CAAC2zS,EAAUG,IAEjBK,EAAO,CACXrzS,IAAK,OACLd,SAAU,CAAC,CACTc,IAAK,WACLX,WAAY,CACVwvB,GAAIokR,GAEN/zS,SAAUizS,GAAQQ,IACjBO,IAUL,OARAh0S,EAASnH,KAAKs7S,EAAM,CAClBrzS,IAAK,OACLX,WAAYpH,EAAe,CACzByrG,KAAM,eACN,YAAa,QAAQxsG,OAAO+7S,EAAQ,KACpCpwS,KAAM,QAAQ3L,OAAOwyS,EAAQ,MAC5BuI,MAEE,CACL/yS,WACAG,aAEJ,CACF,GAGEi0S,GAAuB,CACzBlnD,QAAAA,CAAS67C,GACP,IAAIsL,GAAe,EACfnlS,EAAOolS,aACTD,EAAenlS,EAAOolS,WAAW,oCAAoCxwQ,SAEvEilQ,EAAUwL,oBAAsB,WAC9B,MAAMC,EAAY,GACZC,EAAO,CACXjwM,KAAM,gBAEFkwM,EAAiB,CACrBC,cAAe,MACfC,YAAa,aACbC,IAAK,MAIPL,EAAU37S,KAAK,CACbiI,IAAK,OACLX,WAAYpH,EAAeA,EAAe,CAAC,EAAG07S,GAAO,CAAC,EAAG,CACvD/hS,EAAG,u4CAGP,MAAMoiS,EAAkB/7S,EAAeA,EAAe,CAAC,EAAG27S,GAAiB,CAAC,EAAG,CAC7E/vE,cAAe,YAEXowE,EAAM,CACVj0S,IAAK,SACLX,WAAYpH,EAAeA,EAAe,CAAC,EAAG07S,GAAO,CAAC,EAAG,CACvDO,GAAI,MACJC,GAAI,MACJjwN,EAAG,OAELhlF,SAAU,IA8CZ,OA5CKq0S,GACHU,EAAI/0S,SAASnH,KAAK,CAChBiI,IAAK,UACLX,WAAYpH,EAAeA,EAAe,CAAC,EAAG27S,GAAiB,CAAC,EAAG,CACjE/vE,cAAe,IACfn7N,OAAQ,wBAET,CACD1I,IAAK,UACLX,WAAYpH,EAAeA,EAAe,CAAC,EAAG+7S,GAAkB,CAAC,EAAG,CAClEtrS,OAAQ,mBAIdgrS,EAAU37S,KAAKk8S,GACfP,EAAU37S,KAAK,CACbiI,IAAK,OACLX,WAAYpH,EAAeA,EAAe,CAAC,EAAG07S,GAAO,CAAC,EAAG,CACvD3rI,QAAS,IACTp2J,EAAG,ySAEL1S,SAAUq0S,EAAe,GAAK,CAAC,CAC7BvzS,IAAK,UACLX,WAAYpH,EAAeA,EAAe,CAAC,EAAG+7S,GAAkB,CAAC,EAAG,CAClEtrS,OAAQ,qBAIT6qS,GAEHG,EAAU37S,KAAK,CACbiI,IAAK,OACLX,WAAYpH,EAAeA,EAAe,CAAC,EAAG07S,GAAO,CAAC,EAAG,CACvD3rI,QAAS,IACTp2J,EAAG,gJAEL1S,SAAU,CAAC,CACTc,IAAK,UACLX,WAAYpH,EAAeA,EAAe,CAAC,EAAG+7S,GAAkB,CAAC,EAAG,CAClEtrS,OAAQ,qBAKT,CACL1I,IAAK,IACLX,WAAY,CACV,MAAS,WAEXH,SAAUw0S,EAEd,CACF,GAGEU,GAAa,CACfxwP,KAAAA,GACE,MAAO,CACLmuP,mBAAAA,CAAoBvc,EAAanmR,GAC/B,MAAMglS,EAAahlS,EAAKwmF,aAAa,kBAC/B5yF,EAAwB,OAAfoxS,IAA6C,KAAfA,GAA2BA,GAExE,OADA7e,EAAY,UAAYvyR,EACjBuyR,CACT,EAEJ,GAGE3lP,GAAU,CAACgyP,GAAW6M,GAAiBM,GAAQG,GAAeC,GAAYkC,GAAgBG,GAAoBK,GAAiBM,GAAOkB,GAAsBc,IAEhK94N,GAAgBzrC,GAAS,CACvBu4P,UAAWpoE,KAEIA,GAAI+oE,OAArB,MACMuL,GAAWt0E,GAAIrpM,OACf49Q,GAAYv0E,GAAI8oE,QAEhBjzE,IADQmK,GAAI+hE,IACF/hE,GAAI39N,OAGdH,IAFuB89N,GAAI4oE,mBAChB5oE,GAAIsiE,OACRtiE,GAAI99N,MAEXi2B,IADQ6nM,GAAIivE,MACLjvE,GAAI7nM,MACD6nM,GAAI9hG,O;;;;;;ACl8FpB,MAoBMs2K,EAAiB,CACrBryS,OAAQ,MACRC,SAAU,gBACVF,KAAM,CAAC,IAAK,IAAK,CAAC,gBAAiB,OAAQ,whBAEvCuyS,EAAgBD,C;;;;;;ACzBtB,MA2LME,EAAqB,CACzBvyS,OAAQ,MACRC,SAAU,qBACVF,KAAM,CAAC,IAAK,IAAK,CAAC,gBAAiB,OAAQ,scAEvCyyS,EAAeD,EA4nBfE,EAAsB,CAC1BzyS,OAAQ,MACRC,SAAU,qBACVF,KAAM,CAAC,IAAK,IAAK,CAAC,sBAAuB,OAAQ,mMAE7C2yS,EAAsBD,EA65CtBE,EAAU,CACd3yS,OAAQ,MACRC,SAAU,QACVF,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,uZAykCzB6yS,EAAsB,CAC1B5yS,OAAQ,MACRC,SAAU,qBACVF,KAAM,CAAC,IAAK,IAAK,CAAC,SAAU,OAAQ,kxBAEhC8yS,EAAUD,EA+zCVE,EAAS,CACb9yS,OAAQ,MACRC,SAAU,OACVF,KAAM,CAAC,IAAK,IAAK,CAAC,KAAM,OAAQ,OAAQ,ghCAEpCgzS,EAAQD,EAw2CRE,EAAU,CACdhzS,OAAQ,MACRC,SAAU,QACVF,KAAM,CAAC,IAAK,IAAK,CAAC,OAAQ,MAAO,MAAO,MAAO,IAAK,QAAS,WAAY,SAAU,SAAU,OAAQ,4RAKjGkzS,EAAUD,EA4xBVE,EAAQ,CACZlzS,OAAQ,MACRC,SAAU,MACVF,KAAM,CAAC,IAAK,IAAK,CAAC,QAAS,OAAQ,0TA2D/BozS,EAAU,CACdnzS,OAAQ,MACRC,SAAU,QACVF,KAAM,CAAC,IAAK,IAAK,CAAC,MAAO,OAAQ,OAAQ,yLA+GrCqzS,EAAwB,CAC5BpzS,OAAQ,MACRC,SAAU,uBACVF,KAAM,CAAC,IAAK,IAAK,CAAC,KAAM,uBAAwB,WAAY,OAAQ,4TAEhEszS,EAAwBD,C,gXCv7Nf,SAASp2S,EAAKuR,EAAI9I,GAC/B,OAAO,WACL,OAAO8I,EAAG1Y,MAAM4P,EAASxP,UAC3B,CACF,CCAA,MAAOuC,SAAQA,GAAInD,OAAO0B,WACpB,eAACi+E,GAAkB3/E,OAEnBi+S,EAAS,CAACz9M,GAAS09M,IACrB,MAAMnkN,EAAM52F,EAASrE,KAAKo/S,GAC1B,OAAO19M,EAAMzG,KAASyG,EAAMzG,GAAOA,EAAI32F,MAAM,GAAI,GAAGoC,cAAc,EAFvD,CAGZxF,OAAOs2C,OAAO,OAEX6nQ,EAAcpzS,IAClBA,EAAOA,EAAKvF,cACJ04S,GAAUD,EAAOC,KAAWnzS,GAGhCqzS,EAAarzS,GAAQmzS,UAAgBA,IAAUnzS,GAS/C,QAACnI,GAAWD,MASZiM,EAAcwvS,EAAW,aAS/B,SAASC,EAASv2S,GAChB,OAAe,OAARA,IAAiB8G,EAAY9G,IAA4B,OAApBA,EAAIrG,cAAyBmN,EAAY9G,EAAIrG,cACpF2N,EAAWtH,EAAIrG,YAAY48S,WAAav2S,EAAIrG,YAAY48S,SAASv2S,EACxE,CASA,MAAMw2S,EAAgBH,EAAW,eAUjC,SAASI,EAAkBz2S,GACzB,IAAIwG,EAMJ,OAJEA,EAD0B,qBAAhB65Q,aAAiCA,YAAY0D,OAC9C1D,YAAY0D,OAAO/jR,GAElBA,GAASA,EAAI0yD,QAAY8jP,EAAcx2S,EAAI0yD,QAEhDlsD,CACT,CASA,MAAMa,EAAWivS,EAAW,UAQtBhvS,EAAagvS,EAAW,YASxB7uS,EAAW6uS,EAAW,UAStB/uS,EAAY6uS,GAAoB,OAAVA,GAAmC,kBAAVA,EAQ/C1uS,EAAY0uS,IAAmB,IAAVA,IAA4B,IAAVA,EASvCliS,EAAiBlU,IACrB,GAAoB,WAAhBm2S,EAAOn2S,GACT,OAAO,EAGT,MAAMpG,EAAYi+E,EAAe73E,GACjC,OAAsB,OAAdpG,GAAsBA,IAAc1B,OAAO0B,WAAkD,OAArC1B,OAAO2/E,eAAej+E,OAA0BH,OAAOoS,eAAe7L,MAAUvG,OAAOC,YAAYsG,EAAI,EAUnKwH,EAAS6uS,EAAW,QASpBt9N,EAASs9N,EAAW,QASpBK,EAASL,EAAW,QASpBM,EAAaN,EAAW,YASxBO,EAAY52S,GAAQuH,EAASvH,IAAQsH,EAAWtH,EAAI62S,MASpDC,EAAcV,IAClB,IAAItyQ,EACJ,OAAOsyQ,IACgB,oBAAbW,UAA2BX,aAAiBW,UAClDzvS,EAAW8uS,EAAMr1P,UACY,cAA1Bjd,EAAOqyQ,EAAOC,KAEL,WAATtyQ,GAAqBx8B,EAAW8uS,EAAM/6S,WAAkC,sBAArB+6S,EAAM/6S,YAG/D,EAUG27S,EAAoBX,EAAW,oBAE9BY,EAAkBC,EAAWC,EAAYC,GAAa,CAAC,iBAAkB,UAAW,WAAY,WAAW14S,IAAI23S,GAShHz3S,EAAQqzF,GAAQA,EAAIrzF,KACxBqzF,EAAIrzF,OAASqzF,EAAI50F,QAAQ,qCAAsC,IAiBjE,SAASpE,EAAQO,EAAK4X,GAAI,WAACimS,GAAa,GAAS,CAAC,GAEhD,GAAY,OAAR79S,GAA+B,qBAARA,EACzB,OAGF,IAAIX,EACA8D,EAQJ,GALmB,kBAARnD,IAETA,EAAM,CAACA,IAGLsB,EAAQtB,GAEV,IAAKX,EAAI,EAAG8D,EAAInD,EAAIT,OAAQF,EAAI8D,EAAG9D,IACjCuY,EAAGpa,KAAK,KAAMwC,EAAIX,GAAIA,EAAGW,OAEtB,CAEL,MAAMvB,EAAOo/S,EAAan/S,OAAOqhF,oBAAoB//E,GAAOtB,OAAOD,KAAKuB,GAClEiC,EAAMxD,EAAKc,OACjB,IAAIG,EAEJ,IAAKL,EAAI,EAAGA,EAAI4C,EAAK5C,IACnBK,EAAMjB,EAAKY,GACXuY,EAAGpa,KAAK,KAAMwC,EAAIN,GAAMA,EAAKM,EAEjC,CACF,CAEA,SAAS89S,EAAQ99S,EAAKN,GACpBA,EAAMA,EAAIwE,cACV,MAAMzF,EAAOC,OAAOD,KAAKuB,GACzB,IACI+F,EADA1G,EAAIZ,EAAKc,OAEb,MAAOF,KAAM,EAEX,GADA0G,EAAOtH,EAAKY,GACRK,IAAQqG,EAAK7B,cACf,OAAO6B,EAGX,OAAO,IACT,CAEA,MAAM6hO,EAAU,KAEY,qBAAfvlO,WAAmCA,WACvB,qBAATG,KAAuBA,KAA0B,qBAAXF,OAAyBA,OAASC,OAHxE,GAMVw7S,EAAoB7gT,IAAaoQ,EAAYpQ,IAAYA,IAAY0qO,EAoB3E,SAAS74J,IACP,MAAM,SAACivO,GAAYD,EAAiB5gT,OAASA,MAAQ,CAAC,EAChD6P,EAAS,CAAC,EACVixS,EAAcA,CAACz3S,EAAK9G,KACxB,MAAMw+S,EAAYF,GAAYF,EAAQ9wS,EAAQtN,IAAQA,EAClDgb,EAAc1N,EAAOkxS,KAAexjS,EAAclU,GACpDwG,EAAOkxS,GAAanvO,EAAM/hE,EAAOkxS,GAAY13S,GACpCkU,EAAclU,GACvBwG,EAAOkxS,GAAanvO,EAAM,CAAC,EAAGvoE,GACrBlF,EAAQkF,GACjBwG,EAAOkxS,GAAa13S,EAAI1E,QAExBkL,EAAOkxS,GAAa13S,CACtB,EAGF,IAAK,IAAInH,EAAI,EAAG8D,EAAI7D,UAAUC,OAAQF,EAAI8D,EAAG9D,IAC3CC,UAAUD,IAAMI,EAAQH,UAAUD,GAAI4+S,GAExC,OAAOjxS,CACT,CAYA,MAAM01E,EAASA,CAAC1E,EAAG/oE,EAAGnG,GAAU+uS,cAAa,CAAC,KAC5Cp+S,EAAQwV,GAAG,CAACzO,EAAK9G,KACXoP,GAAWhB,EAAWtH,GACxBw3E,EAAEt+E,GAAO2G,EAAKG,EAAKsI,GAEnBkvE,EAAEt+E,GAAO8G,CACX,GACC,CAACq3S,eACG7/N,GAUHmgO,EAAY77M,IACc,QAA1BA,EAAQzlC,WAAW,KACrBylC,EAAUA,EAAQxgG,MAAM,IAEnBwgG,GAYH87M,EAAWA,CAACj+S,EAAak+S,EAAkBp4S,EAAOq4S,KACtDn+S,EAAYC,UAAY1B,OAAOs2C,OAAOqpQ,EAAiBj+S,UAAWk+S,GAClEn+S,EAAYC,UAAUD,YAAcA,EACpCzB,OAAOoB,eAAeK,EAAa,QAAS,CAC1CE,MAAOg+S,EAAiBj+S,YAE1B6F,GAASvH,OAAOkhF,OAAOz/E,EAAYC,UAAW6F,EAAM,EAYhDs4S,EAAeA,CAACC,EAAWC,EAAS5/S,EAAQ6/S,KAChD,IAAIz4S,EACA5G,EACAmG,EACJ,MAAMyuP,EAAS,CAAC,EAIhB,GAFAwqD,EAAUA,GAAW,CAAC,EAEL,MAAbD,EAAmB,OAAOC,EAE9B,EAAG,CACDx4S,EAAQvH,OAAOqhF,oBAAoBy+N,GACnCn/S,EAAI4G,EAAM1G,OACV,MAAOF,KAAM,EACXmG,EAAOS,EAAM5G,GACPq/S,IAAcA,EAAWl5S,EAAMg5S,EAAWC,IAAcxqD,EAAOzuP,KACnEi5S,EAAQj5S,GAAQg5S,EAAUh5S,GAC1ByuP,EAAOzuP,IAAQ,GAGnBg5S,GAAuB,IAAX3/S,GAAoBw/E,EAAemgO,EACjD,OAASA,KAAe3/S,GAAUA,EAAO2/S,EAAWC,KAAaD,IAAc9/S,OAAO0B,WAEtF,OAAOq+S,CAAO,EAYVE,EAAWA,CAAClmN,EAAK/6E,EAAcsgF,KACnCvF,EAAM7uF,OAAO6uF,SACIvyF,IAAb83F,GAA0BA,EAAWvF,EAAIl5F,UAC3Cy+F,EAAWvF,EAAIl5F,QAEjBy+F,GAAYtgF,EAAane,OACzB,MAAMwuL,EAAYt1F,EAAI93F,QAAQ+c,EAAcsgF,GAC5C,OAAsB,IAAf+vF,GAAoBA,IAAc/vF,CAAQ,EAW7CusI,EAAWqyE,IACf,IAAKA,EAAO,OAAO,KACnB,GAAIt7S,EAAQs7S,GAAQ,OAAOA,EAC3B,IAAIv9S,EAAIu9S,EAAMr9S,OACd,IAAK0O,EAAS5O,GAAI,OAAO,KACzB,MAAM2B,EAAM,IAAIK,MAAMhC,GACtB,MAAOA,KAAM,EACX2B,EAAI3B,GAAKu9S,EAAMv9S,GAEjB,OAAO2B,CAAG,EAYNypR,EAAe,CAACrB,GAEbwzB,GACExzB,GAAcwzB,aAAiBxzB,EAHrB,CAKI,qBAAfU,YAA8BzrM,EAAeyrM,aAUjD80B,EAAeA,CAAC5+S,EAAK4X,KACzB,MAAMinS,EAAY7+S,GAAOA,EAAIC,OAAOC,UAE9BA,EAAW2+S,EAAUrhT,KAAKwC,GAEhC,IAAIgN,EAEJ,OAAQA,EAAS9M,EAASgX,UAAYlK,EAAOuK,KAAM,CACjD,MAAMhS,EAAOyH,EAAO3M,MACpBuX,EAAGpa,KAAKwC,EAAKuF,EAAK,GAAIA,EAAK,GAC7B,GAWI0M,EAAWA,CAAC47K,EAAQp1F,KACxB,IAAIvuD,EACJ,MAAMlpC,EAAM,GAEZ,MAAwC,QAAhCkpC,EAAU2jJ,EAAOvlJ,KAAKmwD,IAC5Bz3F,EAAI/B,KAAKirC,GAGX,OAAOlpC,CAAG,EAIN89S,EAAajC,EAAW,mBAExBkC,EAActmN,GACXA,EAAIv0F,cAAcL,QAAQ,yBAC/B,SAAkBkyM,EAAGipG,EAAIC,GACvB,OAAOD,EAAGh7S,cAAgBi7S,CAC5B,IAKE57S,EAAiB,GAAGA,oBAAoB,CAACrD,EAAKwF,IAASnC,EAAe7F,KAAKwC,EAAKwF,GAA/D,CAAsE9G,OAAO0B,WAS9Fo/E,EAAWq9N,EAAW,UAEtBqC,EAAoBA,CAACl/S,EAAKw8R,KAC9B,MAAM8hB,EAAc5/S,OAAOkB,0BAA0BI,GAC/Cm/S,EAAqB,CAAC,EAE5B1/S,EAAQ6+S,GAAa,CAACx+N,EAAY/9E,KAChC,IAAI4zN,GAC2C,KAA1CA,EAAM6mE,EAAQ18M,EAAY/9E,EAAM/B,MACnCm/S,EAAmBp9S,GAAQ4zN,GAAO71I,EACpC,IAGFphF,OAAOmB,iBAAiBG,EAAKm/S,EAAmB,EAQ5CC,EAAiBp/S,IACrBk/S,EAAkBl/S,GAAK,CAAC8/E,EAAY/9E,KAElC,GAAI+L,EAAW9N,KAA6D,IAArD,CAAC,YAAa,SAAU,UAAUW,QAAQoB,GAC/D,OAAO,EAGT,MAAM1B,EAAQL,EAAI+B,GAEb+L,EAAWzN,KAEhBy/E,EAAW9gF,YAAa,EAEpB,aAAc8gF,EAChBA,EAAWv/E,UAAW,EAInBu/E,EAAWzwE,MACdywE,EAAWzwE,IAAM,KACf,MAAMwB,MAAM,qCAAwC9O,EAAO,IAAK,GAEpE,GACA,EAGEs9S,EAAcA,CAACC,EAAe/lE,KAClC,MAAMv5O,EAAM,CAAC,EAEPiqN,EAAUjpN,IACdA,EAAIvB,SAAQY,IACVL,EAAIK,IAAS,CAAI,GACjB,EAKJ,OAFAiB,EAAQg+S,GAAiBr1F,EAAOq1F,GAAiBr1F,EAAOrgN,OAAO01S,GAAe77S,MAAM81O,IAE7Ev5O,CAAG,EAGNmuH,GAAOA,OAEPoxL,GAAiBA,CAACl/S,EAAOi3B,IACb,MAATj3B,GAAiB2J,OAAOk4H,SAAS7hI,GAASA,GAASA,EAAQi3B,EAG9DkoR,GAAQ,6BAERC,GAAQ,aAERC,GAAW,CACfD,SACAD,SACAG,YAAaH,GAAQA,GAAMx7S,cAAgBy7S,IAGvCG,GAAiBA,CAACn3S,EAAO,GAAIo3S,EAAWH,GAASC,eACrD,IAAIlnN,EAAM,GACV,MAAM,OAACl5F,GAAUsgT,EACjB,MAAOp3S,IACLgwF,GAAOonN,EAASxzS,KAAKuoB,SAAWr1B,EAAO,GAGzC,OAAOk5F,CAAG,EAUZ,SAASqnN,GAAoBlD,GAC3B,SAAUA,GAAS9uS,EAAW8uS,EAAMr1P,SAAyC,aAA9Bq1P,EAAM38S,OAAOoS,cAA+BuqS,EAAM38S,OAAOC,UAC1G,CAEA,MAAM6/S,GAAgB//S,IACpB,MAAMwQ,EAAQ,IAAInP,MAAM,IAElB2+S,EAAQA,CAACxgT,EAAQH,KAErB,GAAI0O,EAASvO,GAAS,CACpB,GAAIgR,EAAM7P,QAAQnB,IAAW,EAC3B,OAGF,KAAK,WAAYA,GAAS,CACxBgR,EAAMnR,GAAKG,EACX,MAAMJ,EAASkC,EAAQ9B,GAAU,GAAK,CAAC,EASvC,OAPAC,EAAQD,GAAQ,CAACa,EAAOX,KACtB,MAAMugT,EAAeD,EAAM3/S,EAAOhB,EAAI,IACrCiO,EAAY2yS,KAAkB7gT,EAAOM,GAAOugT,EAAa,IAG5DzvS,EAAMnR,QAAK6G,EAEJ9G,CACT,CACF,CAEA,OAAOI,CAAM,EAGf,OAAOwgT,EAAMhgT,EAAK,EAAE,EAGhBkgT,GAAYrD,EAAW,iBAEvBsD,GAAcvD,GAClBA,IAAU7uS,EAAS6uS,IAAU9uS,EAAW8uS,KAAW9uS,EAAW8uS,EAAMvuS,OAASP,EAAW8uS,EAAMl9N,OAK1F0gO,GAAgB,EAAEC,EAAuBC,IACzCD,EACKrjD,aAGFsjD,EAAuB,EAAElpG,EAAO5qI,KACrCo7J,EAAQnuJ,iBAAiB,WAAW,EAAEj6E,SAAQ2G,WACxC3G,IAAWooO,GAAWzhO,IAASixM,GACjC5qI,EAAUjtE,QAAUitE,EAAU47B,OAAV57B,EACtB,IACC,GAEK1/D,IACN0/D,EAAUvtE,KAAK6N,GACf86N,EAAQp8B,YAAY4L,EAAO,IAAI,GATL,CAW3B,SAAS/qM,KAAKuoB,WAAY,IAAO9nB,GAAOqS,WAAWrS,GAhBlC,CAkBI,oBAAjBkwP,aACPlvP,EAAW85N,EAAQp8B,cAGfvB,GAAiC,qBAAnBs2G,eAClBA,eAAel6S,KAAKuhO,GAAgC,qBAAZpjO,SAA2BA,QAAQipF,UAAY2yN,GAIzF,QACE9+S,UACA07S,gBACAD,WACAO,aACAL,oBACApvS,WACAI,WACAC,YACAH,WACA2M,gBACA+iS,mBACAC,YACAC,aACAC,YACAtwS,cACAU,SACAuxE,SACA29N,SACA19N,WACA1xE,aACAsvS,WACAI,oBACA/yB,eACA0yB,aACA19S,UACAsvE,QACA2T,SACAt9E,OACA+4S,WACAC,WACAG,eACA5B,SACAE,aACA8B,WACAp0E,UACAq0E,eACA3sS,WACA6sS,aACAz7S,eAAc,EACdm9S,WAAYn9S,EACZ67S,oBACAE,gBACAC,cACAN,cACA5wL,QACAoxL,kBACAzB,UACAv7S,OAAQqlO,EACRm2E,mBACA2B,YACAE,kBACAE,uBACAC,gBACAG,aACAC,cACAnjD,aAAcojD,GACdn2G,S,wBCvuBF,SAASw2G,GAAWhwS,EAASmsN,EAAM/+L,EAAQhK,EAAS2xB,GAClD30C,MAAMrT,KAAKL,MAEP0T,MAAM6I,kBACR7I,MAAM6I,kBAAkBvc,KAAMA,KAAKgD,aAEnChD,KAAKqT,OAAS,IAAIK,OAASL,MAG7BrT,KAAKsT,QAAUA,EACftT,KAAK4E,KAAO,aACZ66N,IAASz/N,KAAKy/N,KAAOA,GACrB/+L,IAAW1gC,KAAK0gC,OAASA,GACzBhK,IAAY12B,KAAK02B,QAAUA,GACvB2xB,IACFroD,KAAKqoD,SAAWA,EAChBroD,KAAKugD,OAAS8H,EAAS9H,OAAS8H,EAAS9H,OAAS,KAEtD,CAEAu7J,GAAMmlG,SAASqC,GAAY5vS,MAAO,CAChCuE,OAAQ,WACN,MAAO,CAEL3E,QAAStT,KAAKsT,QACd1O,KAAM5E,KAAK4E,KAEXuS,YAAanX,KAAKmX,YAClBghB,OAAQn4B,KAAKm4B,OAEboU,SAAUvsC,KAAKusC,SACfd,WAAYzrC,KAAKyrC,WACjBC,aAAc1rC,KAAK0rC,aACnBr4B,MAAOrT,KAAKqT,MAEZqtB,OAAQo7K,GAAM8mG,aAAa5iT,KAAK0gC,QAChC++L,KAAMz/N,KAAKy/N,KACXl/K,OAAQvgD,KAAKugD,OAEjB,IAGF,MAAMt9C,GAAYqgT,GAAWrgT,UACvBk+S,GAAc,CAAC,EAErB,CACE,uBACA,iBACA,eACA,YACA,cACA,4BACA,iBACA,mBACA,kBACA,eACA,kBACA,mBAEA7+S,SAAQm9N,IACR0hF,GAAY1hF,GAAQ,CAACv8N,MAAOu8N,EAAK,IAGnCl+N,OAAOmB,iBAAiB4gT,GAAYnC,IACpC5/S,OAAOoB,eAAeM,GAAW,eAAgB,CAACC,OAAO,IAGzDogT,GAAWh/S,KAAO,CAAC+F,EAAOo1N,EAAM/+L,EAAQhK,EAAS2xB,EAAUk7P,KACzD,MAAMC,EAAajiT,OAAOs2C,OAAO50C,IAgBjC,OAdA64M,GAAMslG,aAAa/2S,EAAOm5S,GAAY,SAAgB3gT,GACpD,OAAOA,IAAQ6Q,MAAMzQ,SACvB,IAAGoF,GACe,iBAATA,IAGTi7S,GAAWjjT,KAAKmjT,EAAYn5S,EAAMiJ,QAASmsN,EAAM/+L,EAAQhK,EAAS2xB,GAElEm7P,EAAWC,MAAQp5S,EAEnBm5S,EAAW5+S,KAAOyF,EAAMzF,KAExB2+S,GAAehiT,OAAOkhF,OAAO+gO,EAAYD,GAElCC,CAAU,EAGnB,UCrGA,QCaA,SAASE,GAAYjE,GACnB,OAAO3jG,GAAMv+L,cAAckiS,IAAU3jG,GAAM33M,QAAQs7S,EACrD,CASA,SAASkE,GAAephT,GACtB,OAAOu5M,GAAM0lG,SAASj/S,EAAK,MAAQA,EAAIoC,MAAM,GAAI,GAAKpC,CACxD,CAWA,SAASqhT,GAAUllS,EAAMnc,EAAK8lO,GAC5B,OAAK3pN,EACEA,EAAKzd,OAAOsB,GAAKwF,KAAI,SAAckyM,EAAO/3M,GAG/C,OADA+3M,EAAQ0pG,GAAe1pG,IACfouB,GAAQnmO,EAAI,IAAM+3M,EAAQ,IAAMA,CAC1C,IAAG1zM,KAAK8hO,EAAO,IAAM,IALH9lO,CAMpB,CASA,SAASshT,GAAYhgT,GACnB,OAAOi4M,GAAM33M,QAAQN,KAASA,EAAI0gF,KAAKm/N,GACzC,CAEA,MAAMI,GAAahoG,GAAMslG,aAAatlG,GAAO,CAAC,EAAG,MAAM,SAAgBzzM,GACrE,MAAO,WAAWxD,KAAKwD,EACzB,IAyBA,SAAS07S,GAAWlhT,EAAKmhT,EAAUrkT,GACjC,IAAKm8M,GAAMlrM,SAAS/N,GAClB,MAAM,IAAImC,UAAU,4BAItBg/S,EAAWA,GAAY,IAAKC,IAAoB7D,UAGhDzgT,EAAUm8M,GAAMslG,aAAazhT,EAAS,CACpCukT,YAAY,EACZ77E,MAAM,EACN87E,SAAS,IACR,GAAO,SAAiB3vK,EAAQnyI,GAEjC,OAAQy5M,GAAM3rM,YAAY9N,EAAOmyI,GACnC,IAEA,MAAM0vK,EAAavkT,EAAQukT,WAErBE,EAAUzkT,EAAQykT,SAAWC,EAC7Bh8E,EAAO1oO,EAAQ0oO,KACf87E,EAAUxkT,EAAQwkT,QAClBG,EAAQ3kT,EAAQ8oD,MAAwB,qBAATA,MAAwBA,KACvD87P,EAAUD,GAASxoG,GAAM6mG,oBAAoBqB,GAEnD,IAAKloG,GAAMnrM,WAAWyzS,GACpB,MAAM,IAAIp/S,UAAU,8BAGtB,SAASw/S,EAAathT,GACpB,GAAc,OAAVA,EAAgB,MAAO,GAE3B,GAAI44M,GAAMjrM,OAAO3N,GACf,OAAOA,EAAM4sB,cAGf,IAAKy0R,GAAWzoG,GAAMikG,OAAO78S,GAC3B,MAAM,IAAIogT,GAAW,gDAGvB,OAAIxnG,GAAM+jG,cAAc38S,IAAU44M,GAAMwxE,aAAapqR,GAC5CqhT,GAA2B,oBAAT97P,KAAsB,IAAIA,KAAK,CAACvlD,IAAUuhT,OAAOngT,KAAKpB,GAG1EA,CACT,CAYA,SAASmhT,EAAenhT,EAAOX,EAAKmc,GAClC,IAAI7a,EAAMX,EAEV,GAAIA,IAAUwb,GAAyB,kBAAVxb,EAC3B,GAAI44M,GAAM0lG,SAASj/S,EAAK,MAEtBA,EAAM2hT,EAAa3hT,EAAMA,EAAIoC,MAAM,GAAI,GAEvCzB,EAAQqQ,KAAKC,UAAUtQ,QAClB,GACJ44M,GAAM33M,QAAQjB,IAAU2gT,GAAY3gT,KACnC44M,GAAMkkG,WAAW98S,IAAU44M,GAAM0lG,SAASj/S,EAAK,SAAWsB,EAAMi4M,GAAMsxB,QAAQlqO,IAYhF,OATAX,EAAMohT,GAAephT,GAErBsB,EAAIvB,SAAQ,SAAc0sF,EAAI/6C,IAC1B6nK,GAAM3rM,YAAY6+E,IAAc,OAAPA,GAAgBg1N,EAAS55P,QAEtC,IAAZ+5P,EAAmBP,GAAU,CAACrhT,GAAM0xC,EAAOo0L,GAAqB,OAAZ87E,EAAmB5hT,EAAMA,EAAM,KACnFiiT,EAAax1N,GAEjB,KACO,EAIX,QAAI00N,GAAYxgT,KAIhB8gT,EAAS55P,OAAOw5P,GAAUllS,EAAMnc,EAAK8lO,GAAOm8E,EAAathT,KAElD,EACT,CAEA,MAAMmQ,EAAQ,GAERqxS,EAAiBnjT,OAAOkhF,OAAOqhO,GAAY,CAC/CO,iBACAG,eACAd,iBAGF,SAASnnG,EAAMr5M,EAAOwb,GACpB,IAAIo9L,GAAM3rM,YAAYjN,GAAtB,CAEA,IAA8B,IAA1BmQ,EAAM7P,QAAQN,GAChB,MAAMwQ,MAAM,kCAAoCgL,EAAKnY,KAAK,MAG5D8M,EAAMvR,KAAKoB,GAEX44M,GAAMx5M,QAAQY,GAAO,SAAc8rF,EAAIzsF,GACrC,MAAMsN,IAAWisM,GAAM3rM,YAAY6+E,IAAc,OAAPA,IAAgBo1N,EAAQ/jT,KAChE2jT,EAAUh1N,EAAI8sH,GAAMprM,SAASnO,GAAOA,EAAI0F,OAAS1F,EAAKmc,EAAMgmS,IAG/C,IAAX70S,GACF0sM,EAAMvtH,EAAItwE,EAAOA,EAAKzd,OAAOsB,GAAO,CAACA,GAEzC,IAEA8Q,EAAMowC,KAlB8B,CAmBtC,CAEA,IAAKq4J,GAAMlrM,SAAS/N,GAClB,MAAM,IAAImC,UAAU,0BAKtB,OAFAu3M,EAAM15M,GAECmhT,CACT,CAEA,UC9MA,SAASz5M,GAAOjP,GACd,MAAMqpN,EAAU,CACd,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,MAAO,IACP,MAAO,MAET,OAAOn6M,mBAAmBlP,GAAK50F,QAAQ,oBAAoB,SAAkBC,GAC3E,OAAOg+S,EAAQh+S,EACjB,GACF,CAUA,SAASi+S,GAAqB9vF,EAAQn1N,GACpCK,KAAK6kT,OAAS,GAEd/vF,GAAUivF,GAAWjvF,EAAQ90N,KAAML,EACrC,CAEA,MAAMsD,GAAY2hT,GAAqB3hT,UAEvCA,GAAUmnD,OAAS,SAAgBxlD,EAAM1B,GACvClD,KAAK6kT,OAAO/iT,KAAK,CAAC8C,EAAM1B,GAC1B,EAEAD,GAAUyB,SAAW,SAAkBogT,GACrC,MAAMC,EAAUD,EAAU,SAAS5hT,GACjC,OAAO4hT,EAAQzkT,KAAKL,KAAMkD,EAAOqnG,GACnC,EAAIA,GAEJ,OAAOvqG,KAAK6kT,OAAO98S,KAAI,SAAcK,GACnC,OAAO28S,EAAQ38S,EAAK,IAAM,IAAM28S,EAAQ38S,EAAK,GAC/C,GAAG,IAAI7B,KAAK,IACd,EAEA,UC5CA,SAASgkG,GAAOlhG,GACd,OAAOmhG,mBAAmBnhG,GACxB3C,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,IACrB,CAWe,SAASs+S,GAAS5/Q,EAAK0vL,EAAQn1N,GAE5C,IAAKm1N,EACH,OAAO1vL,EAGT,MAAM2/Q,EAAUplT,GAAWA,EAAQ4qG,QAAUA,GAEzCuxG,GAAMnrM,WAAWhR,KACnBA,EAAU,CACRslT,UAAWtlT,IAIf,MAAMulT,EAAcvlT,GAAWA,EAAQslT,UAEvC,IAAIE,EAUJ,GAPEA,EADED,EACiBA,EAAYpwF,EAAQn1N,GAEpBm8M,GAAMukG,kBAAkBvrF,GACzCA,EAAOpwN,WACP,IAAIkgT,GAAqB9vF,EAAQn1N,GAAS+E,SAASqgT,GAGnDI,EAAkB,CACpB,MAAMC,EAAgBhgR,EAAI5hC,QAAQ,MAEX,IAAnB4hT,IACFhgR,EAAMA,EAAIzgC,MAAM,EAAGygT,IAErBhgR,KAA8B,IAAtBA,EAAI5hC,QAAQ,KAAc,IAAM,KAAO2hT,CACjD,CAEA,OAAO//Q,CACT,CChEA,MAAMigR,GACJriT,WAAAA,GACEhD,KAAKitD,SAAW,EAClB,CAUAztB,GAAAA,CAAI8lR,EAAW9kQ,EAAU7gD,GAOvB,OANAK,KAAKitD,SAASnrD,KAAK,CACjBwjT,YACA9kQ,WACA+kQ,cAAa5lT,GAAUA,EAAQ4lT,YAC/BC,QAAS7lT,EAAUA,EAAQ6lT,QAAU,OAEhCxlT,KAAKitD,SAAS7qD,OAAS,CAChC,CASAqjT,KAAAA,CAAM7sR,GACA54B,KAAKitD,SAASr0B,KAChB54B,KAAKitD,SAASr0B,GAAM,KAExB,CAOAoxK,KAAAA,GACMhqM,KAAKitD,WACPjtD,KAAKitD,SAAW,GAEpB,CAYA3qD,OAAAA,CAAQmY,GACNqhM,GAAMx5M,QAAQtC,KAAKitD,UAAU,SAAwBnsD,GACzC,OAANA,GACF2Z,EAAG3Z,EAEP,GACF,EAGF,UCpEA,IACE4kT,mBAAmB,EACnBC,mBAAmB,EACnBC,qBAAqB,GCFvB,I,wBAA0C,qBAApB9jB,gBAAkCA,gBAAkB8iB,ICD1E,GAAmC,qBAAbxE,SAA2BA,SAAW,KCA5D,GAA+B,qBAAT33P,KAAuBA,KAAO,KCEpD,IACEszE,WAAW,EACXtxH,QAAS,CACPq3R,gBAAe,GACfse,SAAQ,GACR33P,KAAIA,IAENo9P,UAAW,CAAC,OAAQ,QAAS,OAAQ,OAAQ,MAAO,SCXtD,MAAMC,GAAkC,qBAAX3gT,QAA8C,qBAAbk2E,SAExD5oC,GAAkC,kBAAd8oC,WAA0BA,gBAAaxyE,EAmB3Dg9S,GAAwBD,MAC1BrzQ,IAAc,CAAC,cAAe,eAAgB,MAAMjvC,QAAQivC,GAAWuzQ,SAAW,GAWhFC,GAAiC,KAEN,qBAAtBC,mBAEP7gT,gBAAgB6gT,mBACc,oBAAvB7gT,KAAKooM,cALuB,GASjC1uL,GAAS+mS,IAAiB3gT,OAAOkwB,SAAS4Y,MAAQ,mBCvCxD,WACK6tK,KACAqqG,ICCU,SAASC,GAAiBp9S,EAAMrJ,GAC7C,OAAOokT,GAAW/6S,EAAM,IAAIm9S,GAAS17S,QAAQq3R,gBAAmBvgS,OAAOkhF,OAAO,CAC5E2hO,QAAS,SAASlhT,EAAOX,EAAKmc,EAAM2nS,GAClC,OAAIF,GAASjtS,QAAU4iM,GAAM8jG,SAAS18S,IACpClD,KAAKoqD,OAAO7nD,EAAKW,EAAMwB,SAAS,YACzB,GAGF2hT,EAAQhC,eAAetiT,MAAM/B,KAAMmC,UAC5C,GACCxC,GACL,CCNA,SAAS2mT,GAAc1hT,GAKrB,OAAOk3M,GAAMhnM,SAAS,gBAAiBlQ,GAAMmD,KAAIpB,GAC3B,OAAbA,EAAM,GAAc,GAAKA,EAAM,IAAMA,EAAM,IAEtD,CASA,SAAS4/S,GAAc1iT,GACrB,MAAMhB,EAAM,CAAC,EACPvB,EAAOC,OAAOD,KAAKuC,GACzB,IAAI3B,EACJ,MAAM4C,EAAMxD,EAAKc,OACjB,IAAIG,EACJ,IAAKL,EAAI,EAAGA,EAAI4C,EAAK5C,IACnBK,EAAMjB,EAAKY,GACXW,EAAIN,GAAOsB,EAAItB,GAEjB,OAAOM,CACT,CASA,SAAS2jT,GAAexC,GACtB,SAASyC,EAAU/nS,EAAMxb,EAAOjB,EAAQgyC,GACtC,IAAIrvC,EAAO8Z,EAAKu1B,KAEhB,GAAa,cAATrvC,EAAsB,OAAO,EAEjC,MAAM8hT,EAAe75S,OAAOk4H,UAAUngI,GAChCkyK,EAAS7iI,GAASv1B,EAAKtc,OAG7B,GAFAwC,GAAQA,GAAQk3M,GAAM33M,QAAQlC,GAAUA,EAAOG,OAASwC,EAEpDkyK,EAOF,OANIglC,GAAMunG,WAAWphT,EAAQ2C,GAC3B3C,EAAO2C,GAAQ,CAAC3C,EAAO2C,GAAO1B,GAE9BjB,EAAO2C,GAAQ1B,GAGTwjT,EAGLzkT,EAAO2C,IAAUk3M,GAAMlrM,SAAS3O,EAAO2C,MAC1C3C,EAAO2C,GAAQ,IAGjB,MAAMiL,EAAS42S,EAAU/nS,EAAMxb,EAAOjB,EAAO2C,GAAOqvC,GAMpD,OAJIpkC,GAAUisM,GAAM33M,QAAQlC,EAAO2C,MACjC3C,EAAO2C,GAAQ2hT,GAActkT,EAAO2C,MAG9B8hT,CACV,CAEA,GAAI5qG,GAAMqkG,WAAW6D,IAAaloG,GAAMnrM,WAAWqzS,EAASr1L,SAAU,CACpE,MAAM9rH,EAAM,CAAC,EAMb,OAJAi5M,GAAM2lG,aAAauC,GAAU,CAACp/S,EAAM1B,KAClCujT,EAAUH,GAAc1hT,GAAO1B,EAAOL,EAAK,EAAE,IAGxCA,CACT,CAEA,OAAO,IACT,CAEA,UC1EA,SAAS8jT,GAAgBv0D,EAAUilD,EAAQyN,GACzC,GAAIhpG,GAAMprM,SAAS0hP,GACjB,IAEE,OADCilD,GAAU9jS,KAAKnH,OAAOgmP,GAChBt2C,GAAM7zM,KAAKmqP,EACpB,CAAE,MAAOnoP,GACP,GAAe,gBAAXA,EAAErF,KACJ,MAAMqF,CAEV,CAGF,OAAQ66S,GAAWvxS,KAAKC,WAAW4+O,EACrC,CAEA,MAAMphO,GAAW,CAEf41R,aAAcC,GAEdC,QAAS,CAAC,MAAO,OAAQ,SAEzBC,iBAAkB,CAAC,SAA0B/9S,EAAMoqB,GACjD,MAAM4zR,EAAc5zR,EAAQ6zR,kBAAoB,GAC1CC,EAAqBF,EAAYxjT,QAAQ,qBAAuB,EAChE2jT,EAAkBrrG,GAAMlrM,SAAS5H,GAEnCm+S,GAAmBrrG,GAAM6lG,WAAW34S,KACtCA,EAAO,IAAIo3S,SAASp3S,IAGtB,MAAMm3S,EAAarkG,GAAMqkG,WAAWn3S,GAEpC,GAAIm3S,EACF,OAAO+G,EAAqB3zS,KAAKC,UAAUgzS,GAAex9S,IAASA,EAGrE,GAAI8yM,GAAM+jG,cAAc72S,IACtB8yM,GAAM8jG,SAAS52S,IACf8yM,GAAMmkG,SAASj3S,IACf8yM,GAAM15H,OAAOp5E,IACb8yM,GAAMikG,OAAO/2S,IACb8yM,GAAMwkG,iBAAiBt3S,GAEvB,OAAOA,EAET,GAAI8yM,GAAMgkG,kBAAkB92S,GAC1B,OAAOA,EAAK+yD,OAEd,GAAI+/I,GAAMukG,kBAAkBr3S,GAE1B,OADAoqB,EAAQg0R,eAAe,mDAAmD,GACnEp+S,EAAKtE,WAGd,IAAIs7S,EAEJ,GAAImH,EAAiB,CACnB,GAAIH,EAAYxjT,QAAQ,sCAAwC,EAC9D,OAAO4iT,GAAiBp9S,EAAMhJ,KAAKqnT,gBAAgB3iT,WAGrD,IAAKs7S,EAAalkG,GAAMkkG,WAAWh3S,KAAUg+S,EAAYxjT,QAAQ,wBAA0B,EAAG,CAC5F,MAAM8jT,EAAYtnT,KAAKm9C,KAAOn9C,KAAKm9C,IAAIijQ,SAEvC,OAAO2D,GACL/D,EAAa,CAAC,UAAWh3S,GAAQA,EACjCs+S,GAAa,IAAIA,EACjBtnT,KAAKqnT,eAET,CACF,CAEA,OAAIF,GAAmBD,GACrB9zR,EAAQg0R,eAAe,oBAAoB,GACpCT,GAAgB39S,IAGlBA,CACT,GAEAu+S,kBAAmB,CAAC,SAA2Bv+S,GAC7C,MAAM49S,EAAe5mT,KAAK4mT,cAAgB51R,GAAS41R,aAC7CjB,EAAoBiB,GAAgBA,EAAajB,kBACjD6B,EAAsC,SAAtBxnT,KAAKynT,aAE3B,GAAI3rG,GAAM0kG,WAAWx3S,IAAS8yM,GAAMwkG,iBAAiBt3S,GACnD,OAAOA,EAGT,GAAIA,GAAQ8yM,GAAMprM,SAAS1H,KAAW28S,IAAsB3lT,KAAKynT,cAAiBD,GAAgB,CAChG,MAAM9B,EAAoBkB,GAAgBA,EAAalB,kBACjDgC,GAAqBhC,GAAqB8B,EAEhD,IACE,OAAOj0S,KAAKnH,MAAMpD,EACpB,CAAE,MAAOiB,GACP,GAAIy9S,EAAmB,CACrB,GAAe,gBAAXz9S,EAAErF,KACJ,MAAM0+S,GAAWh/S,KAAK2F,EAAGq5S,GAAWqE,iBAAkB3nT,KAAM,KAAMA,KAAKqoD,UAEzE,MAAMp+C,CACR,CACF,CACF,CAEA,OAAOjB,CACT,GAMAqZ,QAAS,EAETulS,eAAgB,aAChBC,eAAgB,eAEhBC,kBAAmB,EACnBC,eAAgB,EAEhB5qQ,IAAK,CACHijQ,SAAU+F,GAAS17S,QAAQ21S,SAC3B33P,KAAM09P,GAAS17S,QAAQg+C,MAGzBu/P,eAAgB,SAAwBznQ,GACtC,OAAOA,GAAU,KAAOA,EAAS,GACnC,EAEAntB,QAAS,CACP60R,OAAQ,CACN,OAAU,oCACV,oBAAgBl/S,KAKtB+yM,GAAMx5M,QAAQ,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,UAAWowB,IAChE1B,GAASoC,QAAQV,GAAU,CAAC,CAAC,IAG/B,UC1JA,MAAMw1R,GAAoBpsG,GAAMomG,YAAY,CAC1C,MAAO,gBAAiB,iBAAkB,eAAgB,OAC1D,UAAW,OAAQ,OAAQ,oBAAqB,sBAChD,gBAAiB,WAAY,eAAgB,sBAC7C,UAAW,cAAe,eAiB5B,OAAeiG,IACb,MAAMp9M,EAAS,CAAC,EAChB,IAAIxoG,EACA8G,EACAnH,EAsBJ,OApBAimT,GAAcA,EAAW7hT,MAAM,MAAMhE,SAAQ,SAAgBkqC,GAC3DtqC,EAAIsqC,EAAKhpC,QAAQ,KACjBjB,EAAMiqC,EAAKhZ,UAAU,EAAGtxB,GAAG+F,OAAOlB,cAClCsC,EAAMmjC,EAAKhZ,UAAUtxB,EAAI,GAAG+F,QAEvB1F,GAAQwoG,EAAOxoG,IAAQ2lT,GAAkB3lT,KAIlC,eAARA,EACEwoG,EAAOxoG,GACTwoG,EAAOxoG,GAAKT,KAAKuH,GAEjB0hG,EAAOxoG,GAAO,CAAC8G,GAGjB0hG,EAAOxoG,GAAOwoG,EAAOxoG,GAAOwoG,EAAOxoG,GAAO,KAAO8G,EAAMA,EAE3D,IAEO0hG,CACR,ECjDD,MAAMq9M,GAAatlT,OAAO,aAE1B,SAASulT,GAAgB90R,GACvB,OAAOA,GAAU9mB,OAAO8mB,GAAQtrB,OAAOlB,aACzC,CAEA,SAASitL,GAAe9wL,GACtB,OAAc,IAAVA,GAA4B,MAATA,EACdA,EAGF44M,GAAM33M,QAAQjB,GAASA,EAAM6E,IAAIisL,IAAkBvnL,OAAOvJ,EACnE,CAEA,SAASolT,GAAYhtN,GACnB,MAAMyiI,EAASx8N,OAAOs2C,OAAO,MACvB0wQ,EAAW,mCACjB,IAAI5hT,EAEJ,MAAQA,EAAQ4hT,EAASp9Q,KAAKmwD,GAC5ByiI,EAAOp3N,EAAM,IAAMA,EAAM,GAG3B,OAAOo3N,CACT,CAEA,MAAMyqF,GAAqBltN,GAAQ,iCAAiCz2F,KAAKy2F,EAAIrzF,QAE7E,SAASwgT,GAAiB1oT,EAASmD,EAAOqwB,EAAQ7xB,EAAQgnT,GACxD,OAAI5sG,GAAMnrM,WAAWjP,GACZA,EAAOrB,KAAKL,KAAMkD,EAAOqwB,IAG9Bm1R,IACFxlT,EAAQqwB,GAGLuoL,GAAMprM,SAASxN,GAEhB44M,GAAMprM,SAAShP,IACiB,IAA3BwB,EAAMM,QAAQ9B,GAGnBo6M,GAAMz5H,SAAS3gF,GACVA,EAAOmD,KAAK3B,QADrB,OANA,EASF,CAEA,SAASylT,GAAap1R,GACpB,OAAOA,EAAOtrB,OACXlB,cAAcL,QAAQ,mBAAmB,CAACmL,EAAGmxI,EAAM1nD,IAC3C0nD,EAAKn8I,cAAgBy0F,GAElC,CAEA,SAASstN,GAAe/lT,EAAK0wB,GAC3B,MAAMs1R,EAAe/sG,GAAM8lG,YAAY,IAAMruR,GAE7C,CAAC,MAAO,MAAO,OAAOjxB,SAAQwmT,IAC5BvnT,OAAOoB,eAAeE,EAAKimT,EAAaD,EAAc,CACpD3lT,MAAO,SAAS6lT,EAAMC,EAAMC,GAC1B,OAAOjpT,KAAK8oT,GAAYzoT,KAAKL,KAAMuzB,EAAQw1R,EAAMC,EAAMC,EACzD,EACA9lT,cAAc,GACd,GAEN,CAEA,MAAM+lT,GACJlmT,WAAAA,CAAYowB,GACVA,GAAWpzB,KAAKkS,IAAIkhB,EACtB,CAEAlhB,GAAAA,CAAIqhB,EAAQ41R,EAAgBC,GAC1B,MAAM/jT,EAAOrF,KAEb,SAASqpT,EAAUt8J,EAAQu8J,EAASC,GAClC,MAAMC,EAAUnB,GAAgBiB,GAEhC,IAAKE,EACH,MAAM,IAAI91S,MAAM,0CAGlB,MAAMnR,EAAMu5M,GAAM6kG,QAAQt7S,EAAMmkT,KAE5BjnT,QAAqBwG,IAAd1D,EAAK9C,KAAmC,IAAbgnT,QAAmCxgT,IAAbwgT,IAAwC,IAAdlkT,EAAK9C,MACzF8C,EAAK9C,GAAO+mT,GAAWt1H,GAAejnC,GAE1C,CAEA,MAAM08J,EAAaA,CAACr2R,EAASm2R,IAC3BztG,GAAMx5M,QAAQ8wB,GAAS,CAAC25H,EAAQu8J,IAAYD,EAAUt8J,EAAQu8J,EAASC,KAEzE,GAAIztG,GAAMv+L,cAAcgW,IAAWA,aAAkBvzB,KAAKgD,YACxDymT,EAAWl2R,EAAQ41R,QACd,GAAGrtG,GAAMprM,SAAS6iB,KAAYA,EAASA,EAAOtrB,UAAYugT,GAAkBj1R,GACjFk2R,EAAWC,GAAan2R,GAAS41R,QAC5B,GAAIrtG,GAAM2kG,UAAUltR,GACzB,IAAK,MAAOhxB,EAAKW,KAAUqwB,EAAOo7F,UAChC06L,EAAUnmT,EAAOX,EAAK6mT,QAGd,MAAV71R,GAAkB81R,EAAUF,EAAgB51R,EAAQ61R,GAGtD,OAAOppT,IACT,CAEAgS,GAAAA,CAAIuhB,EAAQ8jR,GAGV,GAFA9jR,EAAS80R,GAAgB90R,GAErBA,EAAQ,CACV,MAAMhxB,EAAMu5M,GAAM6kG,QAAQ3gT,KAAMuzB,GAEhC,GAAIhxB,EAAK,CACP,MAAMW,EAAQlD,KAAKuC,GAEnB,IAAK80S,EACH,OAAOn0S,EAGT,IAAe,IAAXm0S,EACF,OAAOiR,GAAYplT,GAGrB,GAAI44M,GAAMnrM,WAAW0mS,GACnB,OAAOA,EAAOh3S,KAAKL,KAAMkD,EAAOX,GAGlC,GAAIu5M,GAAMz5H,SAASg1N,GACjB,OAAOA,EAAOlsQ,KAAKjoC,GAGrB,MAAM,IAAI8B,UAAU,yCACtB,CACF,CACF,CAEAy7E,GAAAA,CAAIltD,EAAQ21N,GAGV,GAFA31N,EAAS80R,GAAgB90R,GAErBA,EAAQ,CACV,MAAMhxB,EAAMu5M,GAAM6kG,QAAQ3gT,KAAMuzB,GAEhC,SAAUhxB,QAAqBwG,IAAd/I,KAAKuC,IAAwB2mP,IAAWu/D,GAAiBzoT,KAAMA,KAAKuC,GAAMA,EAAK2mP,GAClG,CAEA,OAAO,CACT,CAEAp8G,OAAOv5G,EAAQ21N,GACb,MAAM7jP,EAAOrF,KACb,IAAI2pT,GAAU,EAEd,SAASC,EAAaN,GAGpB,GAFAA,EAAUjB,GAAgBiB,GAEtBA,EAAS,CACX,MAAM/mT,EAAMu5M,GAAM6kG,QAAQt7S,EAAMikT,IAE5B/mT,GAAS2mP,IAAWu/D,GAAiBpjT,EAAMA,EAAK9C,GAAMA,EAAK2mP,YACtD7jP,EAAK9C,GAEZonT,GAAU,EAEd,CACF,CAQA,OANI7tG,GAAM33M,QAAQovB,GAChBA,EAAOjxB,QAAQsnT,GAEfA,EAAar2R,GAGRo2R,CACT,CAEA3/G,KAAAA,CAAMk/C,GACJ,MAAM5nP,EAAOC,OAAOD,KAAKtB,MACzB,IAAIkC,EAAIZ,EAAKc,OACTunT,GAAU,EAEd,MAAOznT,IAAK,CACV,MAAMK,EAAMjB,EAAKY,GACbgnP,IAAWu/D,GAAiBzoT,KAAMA,KAAKuC,GAAMA,EAAK2mP,GAAS,YACtDlpP,KAAKuC,GACZonT,GAAU,EAEd,CAEA,OAAOA,CACT,CAEA3vC,SAAAA,CAAU9mQ,GACR,MAAM7N,EAAOrF,KACPozB,EAAU,CAAC,EAsBjB,OApBA0oL,GAAMx5M,QAAQtC,MAAM,CAACkD,EAAOqwB,KAC1B,MAAMhxB,EAAMu5M,GAAM6kG,QAAQvtR,EAASG,GAEnC,GAAIhxB,EAGF,OAFA8C,EAAK9C,GAAOyxL,GAAe9wL,eACpBmC,EAAKkuB,GAId,MAAM+nO,EAAapoP,EAASy1S,GAAap1R,GAAU9mB,OAAO8mB,GAAQtrB,OAE9DqzP,IAAe/nO,UACVluB,EAAKkuB,GAGdluB,EAAKi2P,GAActnE,GAAe9wL,GAElCkwB,EAAQkoO,IAAc,CAAI,IAGrBt7P,IACT,CAEAiB,MAAAA,IAAU0rD,GACR,OAAO3sD,KAAKgD,YAAY/B,OAAOjB,QAAS2sD,EAC1C,CAEA10C,MAAAA,CAAO4xS,GACL,MAAMhnT,EAAMtB,OAAOs2C,OAAO,MAM1B,OAJAikK,GAAMx5M,QAAQtC,MAAM,CAACkD,EAAOqwB,KACjB,MAATrwB,IAA2B,IAAVA,IAAoBL,EAAI0wB,GAAUs2R,GAAa/tG,GAAM33M,QAAQjB,GAASA,EAAMqD,KAAK,MAAQrD,EAAM,IAG3GL,CACT,CAEA,CAACC,OAAOC,YACN,OAAOxB,OAAOotH,QAAQ3uH,KAAKiY,UAAUnV,OAAOC,WAC9C,CAEA2B,QAAAA,GACE,OAAOnD,OAAOotH,QAAQ3uH,KAAKiY,UAAUlQ,KAAI,EAAEwrB,EAAQrwB,KAAWqwB,EAAS,KAAOrwB,IAAOqD,KAAK,KAC5F,CAEA,IAAKzD,OAAOoS,eACV,MAAO,cACT,CAEA,WAAO5Q,CAAKm7S,GACV,OAAOA,aAAiBz/S,KAAOy/S,EAAQ,IAAIz/S,KAAKy/S,EAClD,CAEA,aAAOx+S,CAAOmsS,KAAUzgP,GACtB,MAAMg9C,EAAW,IAAI3pG,KAAKotS,GAI1B,OAFAzgP,EAAQrqD,SAASL,GAAW0nG,EAASz3F,IAAIjQ,KAElC0nG,CACT,CAEA,eAAOmgN,CAASv2R,GACd,MAAMw2R,EAAY/pT,KAAKooT,IAAepoT,KAAKooT,IAAc,CACvD4B,UAAW,CAAC,GAGRA,EAAYD,EAAUC,UACtB/mT,EAAYjD,KAAKiD,UAEvB,SAASgnT,EAAeX,GACtB,MAAME,EAAUnB,GAAgBiB,GAE3BU,EAAUR,KACbZ,GAAe3lT,EAAWqmT,GAC1BU,EAAUR,IAAW,EAEzB,CAIA,OAFA1tG,GAAM33M,QAAQovB,GAAUA,EAAOjxB,QAAQ2nT,GAAkBA,EAAe12R,GAEjEvzB,IACT,EAGFkpT,GAAaY,SAAS,CAAC,eAAgB,iBAAkB,SAAU,kBAAmB,aAAc,kBAGpGhuG,GAAMimG,kBAAkBmH,GAAajmT,WAAW,EAAEC,SAAQX,KACxD,IAAI2nT,EAAS3nT,EAAI,GAAGsE,cAAgBtE,EAAIoC,MAAM,GAC9C,MAAO,CACLqN,IAAKA,IAAM9O,EACXgP,GAAAA,CAAIi4S,GACFnqT,KAAKkqT,GAAUC,CACjB,EACD,IAGHruG,GAAMmmG,cAAciH,IAEpB,UC/Re,SAASkB,GAAc9zD,EAAKjuM,GACzC,MAAM3nB,EAAS1gC,MAAQgxB,GACjBjxB,EAAUsoD,GAAY3nB,EACtBtN,EAAU81R,GAAa5kT,KAAKvE,EAAQqzB,SAC1C,IAAIpqB,EAAOjJ,EAAQiJ,KAQnB,OANA8yM,GAAMx5M,QAAQg0P,GAAK,SAAmB77O,GACpCzR,EAAOyR,EAAGpa,KAAKqgC,EAAQ13B,EAAMoqB,EAAQ4mP,YAAa3xN,EAAWA,EAAS9H,YAASx3C,EACjF,IAEAqqB,EAAQ4mP,YAEDhxQ,CACT,CCzBe,SAASqhT,GAASnnT,GAC/B,SAAUA,IAASA,EAAMonT,WAC3B,CCUA,SAASC,GAAcj3S,EAASotB,EAAQhK,GAEtC4sR,GAAWjjT,KAAKL,KAAiB,MAAXsT,EAAkB,WAAaA,EAASgwS,GAAWkH,aAAc9pR,EAAQhK,GAC/F12B,KAAK4E,KAAO,eACd,CAEAk3M,GAAMmlG,SAASsJ,GAAejH,GAAY,CACxCgH,YAAY,IAGd,UCXe,SAASG,GAAOnnQ,EAASC,EAAQ8E,GAC9C,MAAM2/P,EAAiB3/P,EAAS3nB,OAAOsnR,eAClC3/P,EAAS9H,QAAWynQ,IAAkBA,EAAe3/P,EAAS9H,QAGjEgD,EAAO,IAAI+/P,GACT,mCAAqCj7P,EAAS9H,OAC9C,CAAC+iQ,GAAWoH,gBAAiBpH,GAAWqE,kBAAkBz4S,KAAK6oB,MAAMswB,EAAS9H,OAAS,KAAO,GAC9F8H,EAAS3nB,OACT2nB,EAAS3xB,QACT2xB,IAPF/E,EAAQ+E,EAUZ,CCxBe,SAASsiQ,GAAcvlR,GACpC,MAAMz+B,EAAQ,4BAA4BwkC,KAAK/F,GAC/C,OAAOz+B,GAASA,EAAM,IAAM,EAC9B,CCGA,SAASikT,GAAYC,EAAc1jR,GACjC0jR,EAAeA,GAAgB,GAC/B,MAAMC,EAAQ,IAAI5mT,MAAM2mT,GAClBE,EAAa,IAAI7mT,MAAM2mT,GAC7B,IAEIG,EAFAxgG,EAAO,EACPygG,EAAO,EAKX,OAFA9jR,OAAcp+B,IAARo+B,EAAoBA,EAAM,IAEzB,SAAc+jR,GACnB,MAAMruS,EAAMD,KAAKC,MAEXsuS,EAAYJ,EAAWE,GAExBD,IACHA,EAAgBnuS,GAGlBiuS,EAAMtgG,GAAQ0gG,EACdH,EAAWvgG,GAAQ3tM,EAEnB,IAAI3a,EAAI+oT,EACJG,EAAa,EAEjB,MAAOlpT,IAAMsoN,EACX4gG,GAAcN,EAAM5oT,KACpBA,GAAQ2oT,EASV,GANArgG,GAAQA,EAAO,GAAKqgG,EAEhBrgG,IAASygG,IACXA,GAAQA,EAAO,GAAKJ,GAGlBhuS,EAAMmuS,EAAgB7jR,EACxB,OAGF,MAAMs+J,EAAS0lH,GAAatuS,EAAMsuS,EAElC,OAAO1lH,EAASv2L,KAAK83B,MAAmB,IAAbokR,EAAoB3lH,QAAU18L,CAC3D,CACF,CAEA,UChDA,SAASg/L,GAASttL,EAAI4wS,GACpB,IAEIC,EACAC,EAHA/jG,EAAY,EACZ/4F,EAAY,IAAO48L,EAIvB,MAAMG,EAASA,CAACxvR,EAAMnf,EAAMD,KAAKC,SAC/B2qM,EAAY3qM,EACZyuS,EAAW,KACPC,IACFrpS,aAAaqpS,GACbA,EAAQ,MAEV9wS,EAAG1Y,MAAM,KAAMi6B,EAAK,EAGhByvR,EAAYA,IAAIzvR,KACpB,MAAMnf,EAAMD,KAAKC,MACX4oL,EAAS5oL,EAAM2qM,EAChB/hB,GAAUh3E,EACb+8L,EAAOxvR,EAAMnf,IAEbyuS,EAAWtvR,EACNuvR,IACHA,EAAQvpS,YAAW,KACjBupS,EAAQ,KACRC,EAAOF,EAAS,GACf78L,EAAYg3E,IAEnB,EAGIj9H,EAAQA,IAAM8iP,GAAYE,EAAOF,GAEvC,MAAO,CAACG,EAAWjjP,EACrB,CAEA,UCvCO,MAAMkjP,GAAuBA,CAACvqR,EAAUwqR,EAAkBN,EAAO,KACtE,IAAIO,EAAgB,EACpB,MAAMC,EAAejB,GAAY,GAAI,KAErC,OAAO7iH,IAAS99L,IACd,MAAMkiS,EAASliS,EAAEkiS,OACX2f,EAAQ7hT,EAAE8hT,iBAAmB9hT,EAAE6hT,WAAQ/iT,EACvCijT,EAAgB7f,EAASyf,EACzBK,EAAOJ,EAAaG,GACpBE,EAAU/f,GAAU2f,EAE1BF,EAAgBzf,EAEhB,MAAMnjS,EAAO,CACXmjS,SACA2f,QACAz9F,SAAUy9F,EAAS3f,EAAS2f,OAAS/iT,EACrC+hT,MAAOkB,EACPC,KAAMA,QAAcljT,EACpBojT,UAAWF,GAAQH,GAASI,GAAWJ,EAAQ3f,GAAU8f,OAAOljT,EAChE2gD,MAAOz/C,EACP8hT,iBAA2B,MAATD,EAClB,CAACH,EAAmB,WAAa,WAAW,GAG9CxqR,EAASn4B,EAAK,GACbqiT,EAAK,EAGGe,GAAyBA,CAACN,EAAOL,KAC5C,MAAMM,EAA4B,MAATD,EAEzB,MAAO,CAAE3f,GAAWsf,EAAU,GAAG,CAC/BM,mBACAD,QACA3f,WACEsf,EAAU,GAAG,EAGNY,GAAkB5xS,GAAO,IAAIuhB,IAAS8/K,GAAMhP,MAAK,IAAMryL,KAAMuhB,K,oBCzC1E,GAAemqR,GAASJ,sBAAwB,EAAEhnS,EAAQutS,IAAYlnR,IACpEA,EAAM,IAAImnR,IAAInnR,EAAK+gR,GAASpnS,QAG1BA,EAAOsvB,WAAajJ,EAAIiJ,UACxBtvB,EAAOgvB,OAAS3I,EAAI2I,OACnBu+Q,GAAUvtS,EAAOuvB,OAASlJ,EAAIkJ,OANa,CAS9C,IAAIi+Q,IAAIpG,GAASpnS,QACjBonS,GAAS5qO,WAAa,kBAAkB12E,KAAKshT,GAAS5qO,UAAU1lD,YAC9D,KAAM,ECVV,GAAeswR,GAASJ,sBAGtB,CACElsB,KAAAA,CAAMj1R,EAAM1B,EAAOspT,EAAS9tS,EAAMi6C,EAAQ8zP,GACxC,MAAMC,EAAS,CAAC9nT,EAAO,IAAM4lG,mBAAmBtnG,IAEhD44M,GAAMhrM,SAAS07S,IAAYE,EAAO5qT,KAAK,WAAa,IAAI8a,KAAK4vS,GAASG,eAEtE7wG,GAAMprM,SAASgO,IAASguS,EAAO5qT,KAAK,QAAU4c,GAE9Co9L,GAAMprM,SAASioD,IAAW+zP,EAAO5qT,KAAK,UAAY62D,IAEvC,IAAX8zP,GAAmBC,EAAO5qT,KAAK,UAE/Bu5E,SAASqxO,OAASA,EAAOnmT,KAAK,KAChC,EAEAqmT,IAAAA,CAAKhoT,GACH,MAAM+B,EAAQ00E,SAASqxO,OAAO/lT,MAAM,IAAI0hE,OAAO,aAAezjE,EAAO,cACrE,OAAQ+B,EAAQ+jG,mBAAmB/jG,EAAM,IAAM,IACjD,EAEA8mD,MAAAA,CAAO7oD,GACL5E,KAAK65R,MAAMj1R,EAAM,GAAIgY,KAAKC,MAAQ,MACpC,GAMF,CACEg9Q,KAAAA,GAAS,EACT+yB,IAAAA,GACE,OAAO,IACT,EACAn/P,MAAAA,GAAU,GC9BC,SAASo/P,GAAcznR,GAIpC,MAAO,8BAA8BvgC,KAAKugC,EAC5C,CCJe,SAAS0nR,GAAYC,EAASC,GAC3C,OAAOA,EACHD,EAAQrmT,QAAQ,SAAU,IAAM,IAAMsmT,EAAYtmT,QAAQ,OAAQ,IAClEqmT,CACN,CCCe,SAASE,GAAcF,EAASG,GAC7C,OAAIH,IAAYF,GAAcK,GACrBJ,GAAYC,EAASG,GAEvBA,CACT,CCfA,MAAMC,GAAmB1N,GAAUA,aAAiByJ,GAAe,IAAKzJ,GAAUA,EAWnE,SAAS2N,GAAYC,EAASC,GAE3CA,EAAUA,GAAW,CAAC,EACtB,MAAM5sR,EAAS,CAAC,EAEhB,SAAS6sR,EAAetrT,EAAQI,EAAQgG,EAAMw4S,GAC5C,OAAI/kG,GAAMv+L,cAActb,IAAW65M,GAAMv+L,cAAclb,GAC9Cy5M,GAAMlqI,MAAMvxE,KAAK,CAACwgT,YAAW5+S,EAAQI,GACnCy5M,GAAMv+L,cAAclb,GACtBy5M,GAAMlqI,MAAM,CAAC,EAAGvvE,GACdy5M,GAAM33M,QAAQ9B,GAChBA,EAAOsC,QAETtC,CACT,CAGA,SAASmrT,EAAoB3sO,EAAG/oE,EAAGzP,EAAOw4S,GACxC,OAAK/kG,GAAM3rM,YAAY2H,GAEXgkM,GAAM3rM,YAAY0wE,QAAvB,EACE0sO,OAAexkT,EAAW83E,EAAGx4E,EAAOw4S,GAFpC0M,EAAe1sO,EAAG/oE,EAAGzP,EAAOw4S,EAIvC,CAGA,SAAS4M,EAAiB5sO,EAAG/oE,GAC3B,IAAKgkM,GAAM3rM,YAAY2H,GACrB,OAAOy1S,OAAexkT,EAAW+O,EAErC,CAGA,SAAS41S,EAAiB7sO,EAAG/oE,GAC3B,OAAKgkM,GAAM3rM,YAAY2H,GAEXgkM,GAAM3rM,YAAY0wE,QAAvB,EACE0sO,OAAexkT,EAAW83E,GAF1B0sO,OAAexkT,EAAW+O,EAIrC,CAGA,SAAS61S,EAAgB9sO,EAAG/oE,EAAGzP,GAC7B,OAAIA,KAAQilT,EACHC,EAAe1sO,EAAG/oE,GAChBzP,KAAQglT,EACVE,OAAexkT,EAAW83E,QAD5B,CAGT,CAEA,MAAM+sO,EAAW,CACfxoR,IAAKqoR,EACL/6R,OAAQ+6R,EACRzkT,KAAMykT,EACNV,QAASW,EACT3G,iBAAkB2G,EAClBnG,kBAAmBmG,EACnBG,iBAAkBH,EAClBrrS,QAASqrS,EACTI,eAAgBJ,EAChB96R,gBAAiB86R,EACjBK,cAAeL,EACf5G,QAAS4G,EACTjG,aAAciG,EACd9F,eAAgB8F,EAChB7F,eAAgB6F,EAChBM,iBAAkBN,EAClBO,mBAAoBP,EACpBQ,WAAYR,EACZ5F,iBAAkB4F,EAClB3F,cAAe2F,EACfS,eAAgBT,EAChBjnP,UAAWinP,EACXU,UAAWV,EACXW,WAAYX,EACZY,YAAaZ,EACba,WAAYb,EACZc,iBAAkBd,EAClB1F,eAAgB2F,EAChBv6R,QAASA,CAACytD,EAAG/oE,EAAIzP,IAASmlT,EAAoBL,GAAgBtsO,GAAIssO,GAAgBr1S,GAAGzP,GAAM,IAS7F,OANAyzM,GAAMx5M,QAAQf,OAAOD,KAAKC,OAAOkhF,OAAO,CAAC,EAAG4qO,EAASC,KAAW,SAA4BjlT,GAC1F,MAAMupE,EAAQg8O,EAASvlT,IAASmlT,EAC1BiB,EAAc78O,EAAMy7O,EAAQhlT,GAAOilT,EAAQjlT,GAAOA,GACvDyzM,GAAM3rM,YAAYs+S,IAAgB78O,IAAU+7O,IAAqBjtR,EAAOr4B,GAAQomT,EACnF,IAEO/tR,CACT,CChGA,OAAgBA,IACd,MAAMmc,EAAYuwQ,GAAY,CAAC,EAAG1sR,GAElC,IAaIsmR,GAbA,KAACh+S,EAAI,cAAE+kT,EAAa,eAAElG,EAAc,eAAED,EAAc,QAAEx0R,EAAO,KAAEs7R,GAAQ7xQ,EAe3E,GAbAA,EAAUzpB,QAAUA,EAAU81R,GAAa5kT,KAAK8uB,GAEhDypB,EAAUzX,IAAM4/Q,GAASiI,GAAcpwQ,EAAUkwQ,QAASlwQ,EAAUzX,KAAM1E,EAAOo0L,OAAQp0L,EAAOmtR,kBAG5Fa,GACFt7R,EAAQlhB,IAAI,gBAAiB,SAC3By8S,MAAMD,EAAKE,UAAY,IAAM,KAAOF,EAAKG,SAAWC,SAAStkN,mBAAmBkkN,EAAKG,WAAa,MAMlG/yG,GAAMqkG,WAAWn3S,GACnB,GAAIm9S,GAASJ,uBAAyBI,GAASF,+BAC7C7yR,EAAQg0R,oBAAer+S,QAClB,IAAiD,KAA5Ci+S,EAAc5zR,EAAQ6zR,kBAA6B,CAE7D,MAAO36S,KAASyxN,GAAUipF,EAAcA,EAAY1gT,MAAM,KAAKyB,KAAIkyM,GAASA,EAAMhyM,SAAQvG,OAAO6K,SAAW,GAC5G6mB,EAAQg0R,eAAe,CAAC96S,GAAQ,yBAA0ByxN,GAAQx3N,KAAK,MACzE,CAOF,GAAI4/S,GAASJ,wBACXgI,GAAiBjyG,GAAMnrM,WAAWo9S,KAAmBA,EAAgBA,EAAclxQ,IAE/EkxQ,IAAoC,IAAlBA,GAA2BgB,GAAgBlyQ,EAAUzX,MAAO,CAEhF,MAAM4pR,EAAYnH,GAAkBD,GAAkBqH,GAAQrC,KAAKhF,GAE/DoH,GACF57R,EAAQlhB,IAAI21S,EAAgBmH,EAEhC,CAGF,OAAOnyQ,CACR,EC5CD,MAAMqyQ,GAAkD,qBAAnBl8R,eAErC,OAAek8R,IAAyB,SAAUxuR,GAChD,OAAO,IAAI+6C,SAAQ,SAA4Bn4B,EAASC,GACtD,MAAMi3B,EAAU20O,GAAczuR,GAC9B,IAAI0uR,EAAc50O,EAAQxxE,KAC1B,MAAM8gD,EAAiBo/P,GAAa5kT,KAAKk2E,EAAQpnD,SAAS4mP,YAC1D,IACIq1C,EACAC,EAAiBC,EACjBC,EAAaC,GAHb,aAAChI,EAAY,iBAAEuG,EAAgB,mBAAEC,GAAsBzzO,EAK3D,SAASpgE,IACPo1S,GAAeA,IACfC,GAAiBA,IAEjBj1O,EAAQ8zO,aAAe9zO,EAAQ8zO,YAAYoB,YAAYL,GAEvD70O,EAAQm1O,QAAUn1O,EAAQm1O,OAAOpzO,oBAAoB,QAAS8yO,EAChE,CAEA,IAAI34R,EAAU,IAAI1D,eAOlB,SAAS48R,IACP,IAAKl5R,EACH,OAGF,MAAMm5R,EAAkB3G,GAAa5kT,KACnC,0BAA2BoyB,GAAWA,EAAQo5R,yBAE1CC,EAAgBtI,GAAiC,SAAjBA,GAA4C,SAAjBA,EACxC/wR,EAAQ2xB,SAA/B3xB,EAAQ3E,aACJs2B,EAAW,CACfr/C,KAAM+mT,EACNxvQ,OAAQ7pB,EAAQ6pB,OAChByK,WAAYt0B,EAAQs0B,WACpB53B,QAASy8R,EACTnvR,SACAhK,WAGF+zR,IAAO,SAAkBvnT,GACvBogD,EAAQpgD,GACRkX,GACF,IAAG,SAAiBF,GAClBqpC,EAAOrpC,GACPE,GACF,GAAGiuC,GAGH3xB,EAAU,IACZ,CAlCAA,EAAQzD,KAAKunD,EAAQ9nD,OAAO7rB,cAAe2zE,EAAQp1C,KAAK,GAGxD1O,EAAQrU,QAAUm4D,EAAQn4D,QAiCtB,cAAeqU,EAEjBA,EAAQk5R,UAAYA,EAGpBl5R,EAAQ4yB,mBAAqB,WACtB5yB,GAAkC,IAAvBA,EAAQ6yB,aAQD,IAAnB7yB,EAAQ6pB,QAAkB7pB,EAAQitC,aAAwD,IAAzCjtC,EAAQitC,YAAYngE,QAAQ,WAKjFwe,WAAW4tS,EACb,EAIFl5R,EAAQs5R,QAAU,WACXt5R,IAIL6sB,EAAO,IAAI+/P,GAAW,kBAAmBA,GAAW2M,aAAcvvR,EAAQhK,IAG1EA,EAAU,KACZ,EAGAA,EAAQ+yB,QAAU,WAGhBlG,EAAO,IAAI+/P,GAAW,gBAAiBA,GAAW4M,YAAaxvR,EAAQhK,IAGvEA,EAAU,IACZ,EAGAA,EAAQizB,UAAY,WAClB,IAAIwmQ,EAAsB31O,EAAQn4D,QAAU,cAAgBm4D,EAAQn4D,QAAU,cAAgB,mBAC9F,MAAMukS,EAAepsO,EAAQosO,cAAgBC,GACzCrsO,EAAQ21O,sBACVA,EAAsB31O,EAAQ21O,qBAEhC5sQ,EAAO,IAAI+/P,GACT6M,EACAvJ,EAAahB,oBAAsBtC,GAAW8M,UAAY9M,GAAW2M,aACrEvvR,EACAhK,IAGFA,EAAU,IACZ,OAGgB3tB,IAAhBqmT,GAA6BtlQ,EAAes9P,eAAe,MAGvD,qBAAsB1wR,GACxBolL,GAAMx5M,QAAQwnD,EAAe7xC,UAAU,SAA0B5O,EAAK9G,GACpEm0B,EAAQ25R,iBAAiB9tT,EAAK8G,EAChC,IAIGyyM,GAAM3rM,YAAYqqE,EAAQ5nD,mBAC7B8D,EAAQ9D,kBAAoB4nD,EAAQ5nD,iBAIlC60R,GAAiC,SAAjBA,IAClB/wR,EAAQ+wR,aAAejtO,EAAQitO,cAI7BwG,KACAsB,EAAmBE,GAAiB/D,GAAqBuC,GAAoB,GAC/Ev3R,EAAQ4lD,iBAAiB,WAAYizO,IAInCvB,GAAoBt3R,EAAQ45R,UAC5BhB,EAAiBE,GAAe9D,GAAqBsC,GAEvDt3R,EAAQ45R,OAAOh0O,iBAAiB,WAAYgzO,GAE5C54R,EAAQ45R,OAAOh0O,iBAAiB,UAAWkzO,KAGzCh1O,EAAQ8zO,aAAe9zO,EAAQm1O,UAGjCN,EAAa5tS,IACNiV,IAGL6sB,GAAQ9hC,GAAUA,EAAOnV,KAAO,IAAIi+S,GAAc,KAAM7pR,EAAQhK,GAAWjV,GAC3EiV,EAAQ2wN,QACR3wN,EAAU,KAAI,EAGhB8jD,EAAQ8zO,aAAe9zO,EAAQ8zO,YAAYr/G,UAAUogH,GACjD70O,EAAQm1O,SACVn1O,EAAQm1O,OAAOnrE,QAAU6qE,IAAe70O,EAAQm1O,OAAOrzO,iBAAiB,QAAS+yO,KAIrF,MAAMhhR,EAAWs8Q,GAAcnwO,EAAQp1C,KAEnCiJ,IAAsD,IAA1C83Q,GAASN,UAAUriT,QAAQ6qC,GACzCkV,EAAO,IAAI+/P,GAAW,wBAA0Bj1Q,EAAW,IAAKi1Q,GAAWoH,gBAAiBhqR,IAM9FhK,EAAQkzB,KAAKwlQ,GAAe,KAC9B,GACF,EChMA,MAAMmB,GAAiBA,CAACC,EAASnuS,KAC/B,MAAM,OAACjgB,GAAWouT,EAAUA,EAAUA,EAAQ9uT,OAAO6K,SAAW,GAEhE,GAAI8V,GAAWjgB,EAAQ,CACrB,IAEIoiP,EAFAisE,EAAa,IAAIC,gBAIrB,MAAMV,EAAU,SAAUvmR,GACxB,IAAK+6M,EAAS,CACZA,GAAU,EACVkrE,IACA,MAAMx1S,EAAMuvB,aAAkB/1B,MAAQ+1B,EAASzpC,KAAKypC,OACpDgnR,EAAWppE,MAAMntO,aAAeopS,GAAappS,EAAM,IAAIqwS,GAAcrwS,aAAexG,MAAQwG,EAAI5G,QAAU4G,GAC5G,CACF,EAEA,IAAIqxS,EAAQlpS,GAAWL,YAAW,KAChCupS,EAAQ,KACRyE,EAAQ,IAAI1M,GAAW,WAAWjhS,mBAA0BihS,GAAW8M,WAAW,GACjF/tS,GAEH,MAAMqtS,EAAcA,KACdc,IACFjF,GAASrpS,aAAaqpS,GACtBA,EAAQ,KACRiF,EAAQluT,SAAQqtT,IACdA,EAAOD,YAAcC,EAAOD,YAAYM,GAAWL,EAAOpzO,oBAAoB,QAASyzO,EAAQ,IAEjGQ,EAAU,KACZ,EAGFA,EAAQluT,SAASqtT,GAAWA,EAAOrzO,iBAAiB,QAAS0zO,KAE7D,MAAM,OAACL,GAAUc,EAIjB,OAFAd,EAAOD,YAAc,IAAM5zG,GAAMhP,KAAK4iH,GAE/BC,CACT,GAGF,UC9CO,MAAMgB,GAAc,UAAWrgF,EAAOsgF,GAC3C,IAAI9rT,EAAMwrO,EAAMw5C,WAEhB,IAAK8mC,GAAa9rT,EAAM8rT,EAEtB,kBADMtgF,GAIR,IACIn1N,EADAwlQ,EAAM,EAGV,MAAOA,EAAM77Q,EACXqW,EAAMwlQ,EAAMiwC,QACNtgF,EAAM3rO,MAAMg8Q,EAAKxlQ,GACvBwlQ,EAAMxlQ,CAEV,EAEa01S,GAAY/mP,gBAAiB+sN,EAAU+5B,GAClD,UAAW,MAAMtgF,KAASwgF,GAAWj6B,SAC5B85B,GAAYrgF,EAAOsgF,EAE9B,EAEME,GAAahnP,gBAAiBinP,GAClC,GAAIA,EAAOjuT,OAAO6R,eAEhB,kBADOo8S,GAIT,MAAMC,EAASD,EAAOE,YACtB,IACE,OAAS,CACP,MAAM,KAAC72S,EAAI,MAAElX,SAAe8tT,EAAOpE,OACnC,GAAIxyS,EACF,YAEIlX,CACR,CACF,CAAE,cACM8tT,EAAOvvS,QACf,CACF,EAEayvS,GAAcA,CAACH,EAAQH,EAAWO,EAAYC,KACzD,MAAMruT,EAAW8tT,GAAUE,EAAQH,GAEnC,IACIx2S,EADA0wS,EAAQ,EAERuG,EAAapnT,IACVmQ,IACHA,GAAO,EACPg3S,GAAYA,EAASnnT,GACvB,EAGF,OAAO,IAAIqnT,eAAe,CACxB,UAAM9lT,CAAKilT,GACT,IACE,MAAM,KAACr2S,EAAI,MAAElX,SAAeH,EAASgX,OAErC,GAAIK,EAGF,OAFDi3S,SACCZ,EAAWt3L,QAIb,IAAIr0H,EAAM5B,EAAM4mR,WAChB,GAAIqnC,EAAY,CACd,IAAII,EAAczG,GAAShmT,EAC3BqsT,EAAWI,EACb,CACAd,EAAWe,QAAQ,IAAI7kC,WAAWzpR,GACpC,CAAE,MAAOgX,GAEP,MADAm3S,EAAUn3S,GACJA,CACR,CACF,EACAuH,MAAAA,CAAOgoB,GAEL,OADA4nR,EAAU5nR,GACH1mC,EAASwX,QAClB,GACC,CACDk3S,cAAe,GACf,EC3EEl7R,GAAoC,oBAAVq0B,OAA2C,oBAAZL,SAA8C,oBAAbmnQ,SAC1FC,GAA4Bp7R,IAA8C,oBAAnB+6R,eAGvDM,GAAar7R,KAA4C,oBAAhBs7R,YAC3C,CAAE/M,GAAaxpN,GAAQwpN,EAAQv6M,OAAOjP,GAAtC,CAA4C,IAAIu2N,aAChD/nP,SAAe,IAAI6iN,iBAAiB,IAAI+kC,SAASp2N,GAAKuvL,gBAGpDhmR,GAAOA,CAAC4V,KAAOuhB,KACnB,IACE,QAASvhB,KAAMuhB,EACjB,CAAE,MAAO/xB,GACP,OAAO,CACT,GAGI6nT,GAAwBH,IAA6B9sT,IAAK,KAC9D,IAAIktT,GAAiB,EAErB,MAAMC,EAAiB,IAAIznQ,QAAQ47P,GAASpnS,OAAQ,CAClDo0B,KAAM,IAAIm+Q,eACV5+R,OAAQ,OACR,UAAIu/R,GAEF,OADAF,GAAiB,EACV,MACT,IACC3+R,QAAQqtD,IAAI,gBAEf,OAAOsxO,IAAmBC,CAAc,IAGpCE,GAAqB,MAErBC,GAAyBR,IAC7B9sT,IAAK,IAAMi3M,GAAMwkG,iBAAiB,IAAIoR,SAAS,IAAIv+Q,QAG/Ci/Q,GAAY,CAChBrB,OAAQoB,IAA0B,CAAE9qQ,GAAQA,EAAIlU,OAGlD5c,IAAqB,CAAE8wB,IACrB,CAAC,OAAQ,cAAe,OAAQ,WAAY,UAAU/kD,SAAQgK,KAC3D8lT,GAAU9lT,KAAU8lT,GAAU9lT,GAAQwvM,GAAMnrM,WAAW02C,EAAI/6C,IAAU+6C,GAAQA,EAAI/6C,KAChF,CAACkvF,EAAG96D,KACF,MAAM,IAAI4iR,GAAW,kBAAkBh3S,sBAA0Bg3S,GAAW+O,gBAAiB3xR,EAAO,EACpG,GAEP,EAPoB,CAOlB,IAAIgxR,UAEP,MAAMY,GAAgBxoP,UACpB,GAAY,MAAR32B,EACF,OAAO,EAGT,GAAG2oK,GAAMikG,OAAO5sQ,GACd,OAAOA,EAAK7nC,KAGd,GAAGwwM,GAAM6mG,oBAAoBxvQ,GAAO,CAClC,MAAMo/Q,EAAW,IAAIhoQ,QAAQ47P,GAASpnS,OAAQ,CAC5C2T,OAAQ,OACRygB,SAEF,aAAco/Q,EAAS1nC,eAAef,UACxC,CAEA,OAAGhuE,GAAMgkG,kBAAkB3sQ,IAAS2oK,GAAM+jG,cAAc1sQ,GAC/CA,EAAK22O,YAGXhuE,GAAMukG,kBAAkBltQ,KACzBA,GAAc,IAGb2oK,GAAMprM,SAASyiC,UACFy+Q,GAAWz+Q,IAAO22O,gBADlC,EAEA,EAGI0oC,GAAoB1oP,MAAO12C,EAAS+f,KACxC,MAAM/wC,EAAS05M,GAAMsmG,eAAehvR,EAAQq/R,oBAE5C,OAAiB,MAAVrwT,EAAiBkwT,GAAcn/Q,GAAQ/wC,CAAM,EAGtD,OAAem0B,IAAoB,OAACuzC,IAClC,IAAI,IACF1kC,EAAG,OACH1S,EAAM,KACN1pB,EAAI,OACJ2mT,EAAM,YACNrB,EAAW,QACXjsS,EAAO,mBACP4rS,EAAkB,iBAClBD,EAAgB,aAChBvG,EAAY,QACZr0R,EAAO,gBACPR,EAAkB,cAAa,aAC/B8/R,GACEvD,GAAczuR,GAElB+mR,EAAeA,GAAgBA,EAAe,IAAI1gT,cAAgB,OAElE,IAEI2vB,EAFAi8R,EAAiBpC,GAAe,CAACZ,EAAQrB,GAAeA,EAAYsE,iBAAkBvwS,GAI1F,MAAMqtS,EAAciD,GAAkBA,EAAejD,aAAe,MAChEiD,EAAejD,aAClB,GAED,IAAImD,EAEJ,IACE,GACE7E,GAAoB8D,IAAoC,QAAXp/R,GAA+B,SAAXA,GACG,KAAnEmgS,QAA6BL,GAAkBp/R,EAASpqB,IACzD,CACA,IAMI8pT,EANAP,EAAW,IAAIhoQ,QAAQnlB,EAAK,CAC9B1S,OAAQ,OACRygB,KAAMnqC,EACNipT,OAAQ,SASV,GAJIn2G,GAAMqkG,WAAWn3S,KAAU8pT,EAAoBP,EAASn/R,QAAQphB,IAAI,kBACtEohB,EAAQg0R,eAAe0L,GAGrBP,EAASp/Q,KAAM,CACjB,MAAOg+Q,EAAY3oP,GAAS4jP,GAC1ByG,EACAnH,GAAqBW,GAAe2B,KAGtChlT,EAAOkoT,GAAYqB,EAASp/Q,KAAM++Q,GAAoBf,EAAY3oP,EACpE,CACF,CAEKszI,GAAMprM,SAASkiB,KAClBA,EAAkBA,EAAkB,UAAY,QAKlD,MAAMmgS,EAAyB,gBAAiBxoQ,QAAQtnD,UACxDyzB,EAAU,IAAI6zB,QAAQnlB,EAAK,IACtBstR,EACH/C,OAAQgD,EACRjgS,OAAQA,EAAO7rB,cACfusB,QAASA,EAAQ4mP,YAAY/hQ,SAC7Bk7B,KAAMnqC,EACNipT,OAAQ,OACR5nQ,YAAa0oQ,EAAyBngS,OAAkB7pB,IAG1D,IAAIs/C,QAAiBuC,MAAMl0B,GAE3B,MAAMs8R,EAAmBb,KAA4C,WAAjB1K,GAA8C,aAAjBA,GAEjF,GAAI0K,KAA2BlE,GAAuB+E,GAAoBtD,GAAe,CACvF,MAAM/vT,EAAU,CAAC,EAEjB,CAAC,SAAU,aAAc,WAAW2C,SAAQ+F,IAC1C1I,EAAQ0I,GAAQggD,EAAShgD,EAAK,IAGhC,MAAM4qT,EAAwBn3G,GAAMsmG,eAAe/5P,EAASj1B,QAAQphB,IAAI,oBAEjEm/S,EAAY3oP,GAASylP,GAAsB7B,GAChD6G,EACAvH,GAAqBW,GAAe4B,IAAqB,KACtD,GAEL5lQ,EAAW,IAAIqpQ,SACbR,GAAY7oQ,EAASlV,KAAM++Q,GAAoBf,GAAY,KACzD3oP,GAASA,IACTknP,GAAeA,GAAa,IAE9B/vT,EAEJ,CAEA8nT,EAAeA,GAAgB,OAE/B,IAAIsI,QAAqBqC,GAAUt2G,GAAM6kG,QAAQyR,GAAW3K,IAAiB,QAAQp/P,EAAU3nB,GAI/F,OAFCsyR,GAAoBtD,GAAeA,UAEvB,IAAIj0O,SAAQ,CAACn4B,EAASC,KACjCknQ,GAAOnnQ,EAASC,EAAQ,CACtBv6C,KAAM+mT,EACN38R,QAAS81R,GAAa5kT,KAAK+jD,EAASj1B,SACpCmtB,OAAQ8H,EAAS9H,OACjByK,WAAY3C,EAAS2C,WACrBtqB,SACAhK,WACA,GAEN,CAAE,MAAOxc,GAGP,GAFAw1S,GAAeA,IAEXx1S,GAAoB,cAAbA,EAAItV,MAAwB,SAASC,KAAKqV,EAAI5G,SACvD,MAAM/R,OAAOkhF,OACX,IAAI6gO,GAAW,gBAAiBA,GAAW4M,YAAaxvR,EAAQhK,GAChE,CACE+sR,MAAOvpS,EAAIupS,OAASvpS,IAK1B,MAAMopS,GAAWh/S,KAAK4V,EAAKA,GAAOA,EAAIulN,KAAM/+L,EAAQhK,EACtD,CACD,GC5ND,MAAMw8R,GAAgB,CACpBC,KAAMC,GACNthS,IAAKuhS,GACLzoQ,MAAO0oQ,IAGTx3G,GAAMx5M,QAAQ4wT,IAAe,CAACz4S,EAAIvX,KAChC,GAAIuX,EAAI,CACN,IACElZ,OAAOoB,eAAe8X,EAAI,OAAQ,CAACvX,SACrC,CAAE,MAAO+G,GACP,CAEF1I,OAAOoB,eAAe8X,EAAI,cAAe,CAACvX,SAC5C,KAGF,MAAMqwT,GAAgB9pR,GAAW,KAAKA,IAEhC+pR,GAAoB1M,GAAYhrG,GAAMnrM,WAAWm2S,IAAwB,OAAZA,IAAgC,IAAZA,EAEvF,QACE2M,WAAaC,IACXA,EAAW53G,GAAM33M,QAAQuvT,GAAYA,EAAW,CAACA,GAEjD,MAAM,OAACtxT,GAAUsxT,EACjB,IAAIC,EACA7M,EAEJ,MAAM8M,EAAkB,CAAC,EAEzB,IAAK,IAAI1xT,EAAI,EAAGA,EAAIE,EAAQF,IAAK,CAE/B,IAAI02B,EAIJ,GALA+6R,EAAgBD,EAASxxT,GAGzB4kT,EAAU6M,GAELH,GAAiBG,KACpB7M,EAAUoM,IAAet6R,EAAKnsB,OAAOknT,IAAgB5sT,oBAErCgC,IAAZ+9S,GACF,MAAM,IAAIxD,GAAW,oBAAoB1qR,MAI7C,GAAIkuR,EACF,MAGF8M,EAAgBh7R,GAAM,IAAM12B,GAAK4kT,CACnC,CAEA,IAAKA,EAAS,CAEZ,MAAM+M,EAAUtyT,OAAOotH,QAAQilM,GAC5B7rT,KAAI,EAAE6wB,EAAI2C,KAAW,WAAW3C,OACpB,IAAV2C,EAAkB,sCAAwC,mCAG/D,IAAIvzB,EAAI5F,EACLyxT,EAAQzxT,OAAS,EAAI,YAAcyxT,EAAQ9rT,IAAIwrT,IAAchtT,KAAK,MAAQ,IAAMgtT,GAAaM,EAAQ,IACtG,0BAEF,MAAM,IAAIvQ,GACR,wDAA0Dt7S,EAC1D,kBAEJ,CAEA,OAAO8+S,CAAO,EAEhB4M,SAAUR,IC7DZ,SAASY,GAA6BpzR,GAKpC,GAJIA,EAAO4tR,aACT5tR,EAAO4tR,YAAYyF,mBAGjBrzR,EAAOivR,QAAUjvR,EAAOivR,OAAOnrE,QACjC,MAAM,IAAI+lE,GAAc,KAAM7pR,EAElC,CASe,SAASszR,GAAgBtzR,GACtCozR,GAA6BpzR,GAE7BA,EAAOtN,QAAU81R,GAAa5kT,KAAKo8B,EAAOtN,SAG1CsN,EAAO13B,KAAOohT,GAAc/pT,KAC1BqgC,EACAA,EAAOqmR,mBAGgD,IAArD,CAAC,OAAQ,MAAO,SAASvjT,QAAQk9B,EAAOhO,SAC1CgO,EAAOtN,QAAQg0R,eAAe,qCAAqC,GAGrE,MAAMN,EAAU4M,GAASD,WAAW/yR,EAAOomR,SAAW91R,GAAS81R,SAE/D,OAAOA,EAAQpmR,GAAQxvB,MAAK,SAA6Bm3C,GAYvD,OAXAyrQ,GAA6BpzR,GAG7B2nB,EAASr/C,KAAOohT,GAAc/pT,KAC5BqgC,EACAA,EAAO6mR,kBACPl/P,GAGFA,EAASj1B,QAAU81R,GAAa5kT,KAAK+jD,EAASj1B,SAEvCi1B,CACT,IAAG,SAA4B5e,GAe7B,OAdK4gR,GAAS5gR,KACZqqR,GAA6BpzR,GAGzB+I,GAAUA,EAAO4e,WACnB5e,EAAO4e,SAASr/C,KAAOohT,GAAc/pT,KACnCqgC,EACAA,EAAO6mR,kBACP99Q,EAAO4e,UAET5e,EAAO4e,SAASj1B,QAAU81R,GAAa5kT,KAAKmlC,EAAO4e,SAASj1B,WAIzDqoD,QAAQl4B,OAAO9Z,EACxB,GACF,CChFO,MAAM00B,GAAU,QCKjB81P,GAAa,CAAC,EAGpB,CAAC,SAAU,UAAW,SAAU,WAAY,SAAU,UAAU3xT,SAAQ,CAACgK,EAAMpK,KAC7E+xT,GAAW3nT,GAAQ,SAAmBmzS,GACpC,cAAcA,IAAUnzS,GAAQ,KAAOpK,EAAI,EAAI,KAAO,KAAOoK,CAC/D,CAAC,IAGH,MAAM4nT,GAAqB,CAAC,EA0D5B,SAASC,GAAcx0T,EAASy0T,EAAQC,GACtC,GAAuB,kBAAZ10T,EACT,MAAM,IAAI2jT,GAAW,4BAA6BA,GAAWgR,sBAE/D,MAAMhzT,EAAOC,OAAOD,KAAK3B,GACzB,IAAIuC,EAAIZ,EAAKc,OACb,MAAOF,KAAM,EAAG,CACd,MAAM26P,EAAMv7P,EAAKY,GACXwK,EAAY0nT,EAAOv3D,GACzB,GAAInwP,EAAJ,CACE,MAAMxJ,EAAQvD,EAAQk9P,GAChBhtP,OAAmB9G,IAAV7F,GAAuBwJ,EAAUxJ,EAAO25P,EAAKl9P,GAC5D,IAAe,IAAXkQ,EACF,MAAM,IAAIyzS,GAAW,UAAYzmD,EAAM,YAAchtP,EAAQyzS,GAAWgR,qBAG5E,MACA,IAAqB,IAAjBD,EACF,MAAM,IAAI/Q,GAAW,kBAAoBzmD,EAAKymD,GAAWiR,eAE7D,CACF,CApEAN,GAAWrN,aAAe,SAAsBl6S,EAAW4rB,EAAShlB,GAClE,SAASkhT,EAAc33D,EAAK5qP,GAC1B,MAAO,WAAaksD,GAAU,0BAA6B0+L,EAAM,IAAO5qP,GAAQqB,EAAU,KAAOA,EAAU,GAC7G,CAGA,MAAO,CAACpQ,EAAO25P,EAAK/lD,KAClB,IAAkB,IAAdpqM,EACF,MAAM,IAAI42S,GACRkR,EAAc33D,EAAK,qBAAuBvkO,EAAU,OAASA,EAAU,KACvEgrR,GAAWmR,gBAef,OAXIn8R,IAAY47R,GAAmBr3D,KACjCq3D,GAAmBr3D,IAAO,EAE1BzyP,QAAQu5E,KACN6wO,EACE33D,EACA,+BAAiCvkO,EAAU,8CAK1C5rB,GAAYA,EAAUxJ,EAAO25P,EAAK/lD,EAAY,CAEzD,EAEAm9G,GAAWS,SAAW,SAAkBC,GACtC,MAAO,CAACzxT,EAAO25P,KAEbzyP,QAAQu5E,KAAK,GAAGk5K,gCAAkC83D,MAC3C,EAEX,EAmCA,QACER,iBACAF,eCtFF,MAAMA,GAAavnT,GAAUunT,WAS7B,MAAMW,GACJ5xT,WAAAA,CAAYy4M,GACVz7M,KAAKgxB,SAAWyqL,EAChBz7M,KAAK60T,aAAe,CAClBn+R,QAAS,IAAI2uR,GACbh9P,SAAU,IAAIg9P,GAElB,CAUA,aAAM3uR,CAAQo+R,EAAap0R,GACzB,IACE,aAAa1gC,KAAKuyT,SAASuC,EAAap0R,EAC1C,CAAE,MAAOxmB,GACP,GAAIA,aAAexG,MAAO,CACxB,IAAIuhR,EAAQ,CAAC,EAEbvhR,MAAM6I,kBAAoB7I,MAAM6I,kBAAkB04Q,GAAUA,EAAQ,IAAIvhR,MAGxE,MAAML,EAAQ4hR,EAAM5hR,MAAQ4hR,EAAM5hR,MAAM3M,QAAQ,QAAS,IAAM,GAC/D,IACOwT,EAAI7G,MAGEA,IAAU5G,OAAOyN,EAAI7G,OAAOmuS,SAASnuS,EAAM3M,QAAQ,YAAa,OACzEwT,EAAI7G,OAAS,KAAOA,GAHpB6G,EAAI7G,MAAQA,CAKhB,CAAE,MAAOpJ,GACP,CAEJ,CAEA,MAAMiQ,CACR,CACF,CAEAq4S,QAAAA,CAASuC,EAAap0R,GAGO,kBAAhBo0R,GACTp0R,EAASA,GAAU,CAAC,EACpBA,EAAO0E,IAAM0vR,GAEbp0R,EAASo0R,GAAe,CAAC,EAG3Bp0R,EAAS0sR,GAAYptT,KAAKgxB,SAAU0P,GAEpC,MAAM,aAACkmR,EAAY,iBAAEiH,EAAgB,QAAEz6R,GAAWsN,OAE7B33B,IAAjB69S,GACFl6S,GAAUynT,cAAcvN,EAAc,CACpClB,kBAAmBuO,GAAWrN,aAAaqN,GAAWc,SACtDpP,kBAAmBsO,GAAWrN,aAAaqN,GAAWc,SACtDnP,oBAAqBqO,GAAWrN,aAAaqN,GAAWc,WACvD,GAGmB,MAApBlH,IACE/xG,GAAMnrM,WAAWk9S,GACnBntR,EAAOmtR,iBAAmB,CACxB5I,UAAW4I,GAGbnhT,GAAUynT,cAActG,EAAkB,CACxCtjN,OAAQ0pN,GAAWe,SACnB/P,UAAWgP,GAAWe,WACrB,IAIPtoT,GAAUynT,cAAczzR,EAAQ,CAC9By3I,QAAS87I,GAAWS,SAAS,WAC7BO,cAAehB,GAAWS,SAAS,mBAClC,GAGHh0R,EAAOhO,QAAUgO,EAAOhO,QAAU1yB,KAAKgxB,SAAS0B,QAAU,OAAO3rB,cAGjE,IAAImuT,EAAiB9hS,GAAW0oL,GAAMlqI,MACpCx+C,EAAQ60R,OACR70R,EAAQsN,EAAOhO,SAGjBU,GAAW0oL,GAAMx5M,QACf,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,QAAS,WACjDowB,WACQU,EAAQV,EAAO,IAI1BgO,EAAOtN,QAAU81R,GAAajoT,OAAOi0T,EAAgB9hS,GAGrD,MAAM+hS,EAA0B,GAChC,IAAIC,GAAiC,EACrCp1T,KAAK60T,aAAan+R,QAAQp0B,SAAQ,SAAoC+yT,GACjC,oBAAxBA,EAAY7P,UAA0D,IAAhC6P,EAAY7P,QAAQ9kR,KAIrE00R,EAAiCA,GAAkCC,EAAY9P,YAE/E4P,EAAwBr8E,QAAQu8E,EAAY/P,UAAW+P,EAAY70Q,UACrE,IAEA,MAAM80Q,EAA2B,GAKjC,IAAInmH,EAJJnvM,KAAK60T,aAAaxsQ,SAAS/lD,SAAQ,SAAkC+yT,GACnEC,EAAyBxzT,KAAKuzT,EAAY/P,UAAW+P,EAAY70Q,SACnE,IAGA,IACI17C,EADA5C,EAAI,EAGR,IAAKkzT,EAAgC,CACnC,MAAMxvF,EAAQ,CAACouF,GAAgB9qT,KAAKlJ,WAAO+I,GAC3C68N,EAAMkT,QAAQ/2O,MAAM6jO,EAAOuvF,GAC3BvvF,EAAM9jO,KAAKC,MAAM6jO,EAAO0vF,GACxBxwT,EAAM8gO,EAAMxjO,OAEZ+sM,EAAU1zH,QAAQn4B,QAAQ5iB,GAE1B,MAAOx+B,EAAI4C,EACTqqM,EAAUA,EAAQj+L,KAAK00N,EAAM1jO,KAAM0jO,EAAM1jO,MAG3C,OAAOitM,CACT,CAEArqM,EAAMqwT,EAAwB/yT,OAE9B,IAAIy6C,EAAYnc,EAEhBx+B,EAAI,EAEJ,MAAOA,EAAI4C,EAAK,CACd,MAAMywT,EAAcJ,EAAwBjzT,KACtCkhD,EAAa+xQ,EAAwBjzT,KAC3C,IACE26C,EAAY04Q,EAAY14Q,EAC1B,CAAE,MAAOxyC,GACP+4C,EAAW/iD,KAAKL,KAAMqK,GACtB,KACF,CACF,CAEA,IACE8kM,EAAU6kH,GAAgB3zT,KAAKL,KAAM68C,EACvC,CAAE,MAAOxyC,GACP,OAAOoxE,QAAQl4B,OAAOl5C,EACxB,CAEAnI,EAAI,EACJ4C,EAAMwwT,EAAyBlzT,OAE/B,MAAOF,EAAI4C,EACTqqM,EAAUA,EAAQj+L,KAAKokT,EAAyBpzT,KAAMozT,EAAyBpzT,MAGjF,OAAOitM,CACT,CAEAqmH,MAAAA,CAAO90R,GACLA,EAAS0sR,GAAYptT,KAAKgxB,SAAU0P,GACpC,MAAMolJ,EAAWmnI,GAAcvsR,EAAOqsR,QAASrsR,EAAO0E,KACtD,OAAO4/Q,GAASl/H,EAAUplJ,EAAOo0L,OAAQp0L,EAAOmtR,iBAClD,EAIF/xG,GAAMx5M,QAAQ,CAAC,SAAU,MAAO,OAAQ,YAAY,SAA6BowB,GAE/EkiS,GAAM3xT,UAAUyvB,GAAU,SAAS0S,EAAK1E,GACtC,OAAO1gC,KAAK02B,QAAQ02R,GAAY1sR,GAAU,CAAC,EAAG,CAC5ChO,SACA0S,MACAp8B,MAAO03B,GAAU,CAAC,GAAG13B,OAEzB,CACF,IAEA8yM,GAAMx5M,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+BowB,GAGrE,SAAS+iS,EAAmBC,GAC1B,OAAO,SAAoBtwR,EAAKp8B,EAAM03B,GACpC,OAAO1gC,KAAK02B,QAAQ02R,GAAY1sR,GAAU,CAAC,EAAG,CAC5ChO,SACAU,QAASsiS,EAAS,CAChB,eAAgB,uBACd,CAAC,EACLtwR,MACAp8B,SAEJ,CACF,CAEA4rT,GAAM3xT,UAAUyvB,GAAU+iS,IAE1Bb,GAAM3xT,UAAUyvB,EAAS,QAAU+iS,GAAmB,EACxD,IAEA,UC7NA,MAAME,GACJ3yT,WAAAA,CAAYw/C,GACV,GAAwB,oBAAbA,EACT,MAAM,IAAIx9C,UAAU,gCAGtB,IAAI4wT,EAEJ51T,KAAKmvM,QAAU,IAAI1zH,SAAQ,SAAyBn4B,GAClDsyQ,EAAiBtyQ,CACnB,IAEA,MAAM22J,EAAQj6M,KAGdA,KAAKmvM,QAAQj+L,MAAKuQ,IAChB,IAAKw4L,EAAMxqI,WAAY,OAEvB,IAAIvtE,EAAI+3M,EAAMxqI,WAAWrtE,OAEzB,MAAOF,KAAM,EACX+3M,EAAMxqI,WAAWvtE,GAAGuf,GAEtBw4L,EAAMxqI,WAAa,IAAI,IAIzBzvE,KAAKmvM,QAAQj+L,KAAO2kT,IAClB,IAAI1wQ,EAEJ,MAAMgqJ,EAAU,IAAI1zH,SAAQn4B,IAC1B22J,EAAMhL,UAAU3rJ,GAChB6B,EAAW7B,CAAO,IACjBpyC,KAAK2kT,GAMR,OAJA1mH,EAAQ1tL,OAAS,WACfw4L,EAAMy1G,YAAYvqQ,EACpB,EAEOgqJ,CAAO,EAGhB3sJ,GAAS,SAAgBlvC,EAASotB,EAAQhK,GACpCujL,EAAMxwK,SAKVwwK,EAAMxwK,OAAS,IAAI8gR,GAAcj3S,EAASotB,EAAQhK,GAClDk/R,EAAe37G,EAAMxwK,QACvB,GACF,CAKAsqR,gBAAAA,GACE,GAAI/zT,KAAKypC,OACP,MAAMzpC,KAAKypC,MAEf,CAMAwlK,SAAAA,CAAU9tK,GACJnhC,KAAKypC,OACPtI,EAASnhC,KAAKypC,QAIZzpC,KAAKyvE,WACPzvE,KAAKyvE,WAAW3tE,KAAKq/B,GAErBnhC,KAAKyvE,WAAa,CAACtuC,EAEvB,CAMAuuR,WAAAA,CAAYvuR,GACV,IAAKnhC,KAAKyvE,WACR,OAEF,MAAMx7B,EAAQj0C,KAAKyvE,WAAWjsE,QAAQ29B,IACvB,IAAX8S,GACFj0C,KAAKyvE,WAAW3kC,OAAOmJ,EAAO,EAElC,CAEA2+Q,aAAAA,GACE,MAAMnC,EAAa,IAAIC,gBAEjBrpE,EAASntO,IACbu2S,EAAWppE,MAAMntO,EAAI,EAOvB,OAJAla,KAAKivM,UAAUo4C,GAEfopE,EAAWd,OAAOD,YAAc,IAAM1vT,KAAK0vT,YAAYroE,GAEhDopE,EAAWd,MACpB,CAMA,aAAOttT,GACL,IAAIof,EACJ,MAAMw4L,EAAQ,IAAI07G,IAAY,SAAkBntT,GAC9CiZ,EAASjZ,CACX,IACA,MAAO,CACLyxM,QACAx4L,SAEJ,EAGF,UC/Ge,SAASq0S,GAAO1uT,GAC7B,OAAO,SAAcvD,GACnB,OAAOuD,EAASrF,MAAM,KAAM8B,EAC9B,CACF,CChBe,SAASkyT,GAAaxtQ,GACnC,OAAOuzJ,GAAMlrM,SAAS23C,KAAsC,IAAzBA,EAAQwtQ,YAC7C,CCbA,MAAMC,GAAiB,CACrBC,SAAU,IACVC,mBAAoB,IACpBC,WAAY,IACZC,WAAY,IACZC,GAAI,IACJC,QAAS,IACTC,SAAU,IACVC,4BAA6B,IAC7BC,UAAW,IACXC,aAAc,IACdC,eAAgB,IAChBC,YAAa,IACbC,gBAAiB,IACjBC,OAAQ,IACRC,gBAAiB,IACjBC,iBAAkB,IAClBC,MAAO,IACPC,SAAU,IACVC,YAAa,IACbC,SAAU,IACVC,OAAQ,IACRC,kBAAmB,IACnBC,kBAAmB,IACnBC,WAAY,IACZC,aAAc,IACdC,gBAAiB,IACjBC,UAAW,IACXC,SAAU,IACVC,iBAAkB,IAClBC,cAAe,IACfC,4BAA6B,IAC7BC,eAAgB,IAChBC,SAAU,IACVC,KAAM,IACNC,eAAgB,IAChBC,mBAAoB,IACpBC,gBAAiB,IACjBC,WAAY,IACZC,qBAAsB,IACtBC,oBAAqB,IACrBC,kBAAmB,IACnBC,UAAW,IACXC,mBAAoB,IACpBC,oBAAqB,IACrBC,OAAQ,IACRC,iBAAkB,IAClBC,SAAU,IACVC,gBAAiB,IACjBC,qBAAsB,IACtBC,gBAAiB,IACjBC,4BAA6B,IAC7BC,2BAA4B,IAC5BC,oBAAqB,IACrBC,eAAgB,IAChBC,WAAY,IACZC,mBAAoB,IACpBC,eAAgB,IAChBC,wBAAyB,IACzBC,sBAAuB,IACvBC,oBAAqB,IACrBC,aAAc,IACdC,YAAa,IACbC,8BAA+B,KAGjCx4T,OAAOotH,QAAQqnM,IAAgB1zT,SAAQ,EAAEC,EAAKW,MAC5C8yT,GAAe9yT,GAASX,CAAG,IAG7B,UC3CA,SAASy3T,GAAer5R,GACtB,MAAM5gC,EAAU,IAAI60T,GAAMj0R,GACpBw+C,EAAWj2E,EAAK0rT,GAAM3xT,UAAUyzB,QAAS32B,GAa/C,OAVA+7M,GAAMv2H,OAAOpG,EAAUy1O,GAAM3xT,UAAWlD,EAAS,CAAC2gT,YAAY,IAG9D5kG,GAAMv2H,OAAOpG,EAAUp/E,EAAS,KAAM,CAAC2gT,YAAY,IAGnDvhO,EAAStnC,OAAS,SAAgB4jK,GAChC,OAAOu+G,GAAe5M,GAAYzsR,EAAe86K,GACnD,EAEOt8H,CACT,CAGA,MAAM86O,GAAQD,GAAehpS,IAG7BipS,GAAMrF,MAAQA,GAGdqF,GAAM1P,cAAgBA,GACtB0P,GAAMtE,YAAcA,GACpBsE,GAAM5P,SAAWA,GACjB4P,GAAM97P,QAAUA,GAChB87P,GAAMlW,WAAaA,GAGnBkW,GAAM3W,WAAaA,GAGnB2W,GAAMC,OAASD,GAAM1P,cAGrB0P,GAAMx7K,IAAM,SAAa5mE,GACvB,OAAO4D,QAAQgjE,IAAI5mE,EACrB,EAEAoiP,GAAMnE,OAASA,GAGfmE,GAAMlE,aAAeA,GAGrBkE,GAAM7M,YAAcA,GAEpB6M,GAAM/Q,aAAeA,GAErB+Q,GAAME,WAAa1a,GAAS+G,GAAe1qG,GAAM6lG,WAAWlC,GAAS,IAAIW,SAASX,GAASA,GAE3Fwa,GAAMxG,WAAaC,GAASD,WAE5BwG,GAAMjE,eAAiBA,GAEvBiE,GAAMztT,QAAUytT,GAGhB,S","sources":["webpack://vanfax/./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js","webpack://vanfax/./node_modules/@fortawesome/vue-fontawesome/index.es.js","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/internal/treeshake_helpers.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/internal/constants.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/helpers/base.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/helpers/safe.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/helpers/safe_get.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/object/get_own_prop_desc.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/object/has_own_prop.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/object/has_own.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/object/for_each_key.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/object/define.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/internal/map.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/string/as_string.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/helpers/diagnostics.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/helpers/throw.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/object/object.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/helpers/enum.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/symbol/well_known.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/internal/global.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/internal/unwrapFunction.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/math/min_max.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/string/slice.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/string/substring.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/polyfills/symbol.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/helpers/lazy.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/helpers/cache.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/helpers/environment.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/symbol/symbol.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/iterator/forOf.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/iterator/iterator.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/funcs/funcs.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/array/append.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/array/forEach.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/array/indexOf.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/array/map.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/array/slice.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/array/find.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/array/reduce.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/object/set_proto.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/object/create.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/helpers/customError.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/helpers/date.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/polyfills/trim.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/string/trim.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/helpers/encode.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/object/is_plain_object.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/object/copy.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/helpers/extend.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/helpers/length.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/polyfills/split.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/string/split.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/string/ends_with.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/string/index_of.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/timer/handler.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/timer/timeout.ts","https://raw.githubusercontent.com/nevware21/ts-utils/refs/tags/0.11.5/lib/src/timer/idle.ts","webpack://vanfax/../src/DynamicProto.ts","webpack://vanfax/../src/Constants.ts","webpack://vanfax/../src/TsLibShims.ts","webpack://vanfax/Constants.js","webpack://vanfax/__DynamicConstants.js","webpack://vanfax/InternalConstants.js","webpack://vanfax/HelperFuncs.js","webpack://vanfax/EnvUtils.js","webpack://vanfax/RandomHelper.js","webpack://vanfax/DataCacheHelper.js","webpack://vanfax/ConfigDefaults.js","webpack://vanfax/DynamicSupport.js","webpack://vanfax/DynamicProperty.js","webpack://vanfax/AggregationError.js","webpack://vanfax/DynamicState.js","webpack://vanfax/DynamicConfig.js","webpack://vanfax/DbgExtensionUtils.js","webpack://vanfax/DiagnosticLogger.js","webpack://vanfax/DataSanitizer.js","webpack://vanfax/Event.js","webpack://vanfax/Trace.js","webpack://vanfax/PageView.js","webpack://vanfax/PageViewPerformance.js","webpack://vanfax/Exception.js","webpack://vanfax/DataPoint.js","webpack://vanfax/Metric.js","webpack://vanfax/UrlHelperFuncs.js","webpack://vanfax/Util.js","webpack://vanfax/RemoteDependencyData.js","webpack://vanfax/applicationinsights-common.js","webpack://vanfax/EventHelpers.js","webpack://vanfax/Offline.js","webpack://vanfax/EnumHelperFuncs.js","webpack://vanfax/Enums.js","webpack://vanfax/StorageHelperFuncs.js","webpack://vanfax/RequestResponseHeaders.js","webpack://vanfax/ConfigDefaultHelpers.js","webpack://vanfax/PerfManager.js","webpack://vanfax/W3cTraceParent.js","webpack://vanfax/TelemetryHelpers.js","webpack://vanfax/ProcessTelemetryContext.js","https://raw.githubusercontent.com/nevware21/ts-async/refs/tags/0.5.3/lib/src/promise/debug.ts","webpack://vanfax/InitActiveStatusEnum.js","https://raw.githubusercontent.com/nevware21/ts-async/refs/tags/0.5.3/lib/src/internal/constants.ts","https://raw.githubusercontent.com/nevware21/ts-async/refs/tags/0.5.3/lib/src/promise/await.ts","https://raw.githubusercontent.com/nevware21/ts-async/refs/tags/0.5.3/lib/src/internal/state.ts","https://raw.githubusercontent.com/nevware21/ts-async/refs/tags/0.5.3/lib/src/promise/event.ts","https://raw.githubusercontent.com/nevware21/ts-async/refs/tags/0.5.3/lib/src/promise/base.ts","https://raw.githubusercontent.com/nevware21/ts-async/refs/tags/0.5.3/lib/src/promise/itemProcessor.ts","https://raw.githubusercontent.com/nevware21/ts-async/refs/tags/0.5.3/lib/src/promise/asyncPromise.ts","https://raw.githubusercontent.com/nevware21/ts-async/refs/tags/0.5.3/lib/src/promise/nativePromise.ts","https://raw.githubusercontent.com/nevware21/ts-async/refs/tags/0.5.3/lib/src/promise/syncPromise.ts","https://raw.githubusercontent.com/nevware21/ts-async/refs/tags/0.5.3/lib/src/promise/idlePromise.ts","https://raw.githubusercontent.com/nevware21/ts-async/refs/tags/0.5.3/lib/src/promise/promise.ts","https://raw.githubusercontent.com/nevware21/ts-async/refs/tags/0.5.3/lib/src/polyfills/promise.ts","webpack://vanfax/UnloadHookContainer.js","webpack://vanfax/BaseTelemetryPlugin.js","webpack://vanfax/SenderPostManager.js","webpack://vanfax/AsyncUtils.js","webpack://vanfax/ResponseHelpers.js","webpack://vanfax/UnloadHandlerContainer.js","webpack://vanfax/ContextTagKeys.js","webpack://vanfax/PartAExtensions.js","webpack://vanfax/Envelope.js","webpack://vanfax/Data.js","webpack://vanfax/EnvelopeCreator.js","webpack://vanfax/SendBuffer.js","webpack://vanfax/Sender.js","webpack://vanfax/Serializer.js","webpack://vanfax/HashCodeScoreGenerator.js","webpack://vanfax/SamplingScoreGenerator.js","webpack://vanfax/Sample.js","webpack://vanfax/ConnectionStringParser.js","webpack://vanfax/CookieMgr.js","webpack://vanfax/NotificationManager.js","webpack://vanfax/TelemetryInitializerPlugin.js","webpack://vanfax/AppInsightsCore.js","webpack://vanfax/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/constants/env.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/constants/config.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/constants/regex.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/constants/safe-types.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/utils/inspect.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/utils/object.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/utils/clone-deep.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/utils/identity.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/utils/get.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/utils/env.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/utils/warn.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/utils/config-set.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/utils/plugins.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/constants/components.js","webpack://vanfax/../src/index.ts","webpack://vanfax/./node_modules/bootstrap-vue/esm/vue.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/constants/events.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/constants/props.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/constants/slots.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/utils/array.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/utils/normalize-slot.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/mixins/normalize-slot.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/utils/number.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/utils/string.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/utils/dom.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/utils/memoize.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/utils/config.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/utils/props.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/utils/model.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/utils/events.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/button/button-close.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/transition/bv-transition.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/alert/alert.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/alert/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/utils/math.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/aspect/aspect.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/aspect/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/utils/safe-vue-instance.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/utils/router.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/icons/helpers/icon-base.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/icons/helpers/make-icon.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/icons/icons.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/icons/icon.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/constants/key-codes.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/utils/loose-equal.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/utils/cache.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/mixins/attrs.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/utils/get-event-root.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/mixins/listen-on-root.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/mixins/listeners.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/link/link.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/button/button.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/avatar/avatar.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/avatar/avatar-group.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/avatar/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/badge/badge.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/badge/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/utils/html.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/breadcrumb/breadcrumb-link.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/breadcrumb/breadcrumb-item.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/breadcrumb/breadcrumb.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/breadcrumb/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/button/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/button-group/button-group.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/button-group/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/button-toolbar/button-toolbar.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/button-toolbar/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/constants/date.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/utils/date.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/calendar/calendar.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/utils/locale.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/mixins/id.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/calendar/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/mixins/card.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/card/card-title.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/card/card-sub-title.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/card/card-body.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/card/card-header.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/card/card-footer.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/image/img.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/card/card-img.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/card/card.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/directives/visible/visible.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/image/img-lazy.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/card/card-img-lazy.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/card/card-text.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/card/card-group.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/card/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/utils/noop.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/utils/observe-dom.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/carousel/carousel.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/carousel/carousel-slide.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/collapse/collapse.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/carousel/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/constants/classes.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/collapse/helpers/bv-collapse.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/utils/get-instance-from-directive.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/directives/toggle/toggle.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/directives/toggle/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/collapse/index.js","webpack://vanfax/../../src/utils/isBrowser.js","webpack://vanfax/../../src/utils/debounce.js","webpack://vanfax/../../src/utils/isFunction.js","webpack://vanfax/../../src/utils/getStyleComputedProperty.js","webpack://vanfax/../../src/utils/getParentNode.js","webpack://vanfax/../../src/utils/getScrollParent.js","webpack://vanfax/../../src/utils/getReferenceNode.js","webpack://vanfax/../../src/utils/isIE.js","webpack://vanfax/../../src/utils/getOffsetParent.js","webpack://vanfax/../../src/utils/isOffsetContainer.js","webpack://vanfax/../../src/utils/getRoot.js","webpack://vanfax/../../src/utils/findCommonOffsetParent.js","webpack://vanfax/../../src/utils/getScroll.js","webpack://vanfax/../../src/utils/includeScroll.js","webpack://vanfax/../../src/utils/getBordersSize.js","webpack://vanfax/../../src/utils/getWindowSizes.js","webpack://vanfax/../../src/utils/getClientRect.js","webpack://vanfax/../../src/utils/getBoundingClientRect.js","webpack://vanfax/../../src/utils/getOffsetRectRelativeToArbitraryNode.js","webpack://vanfax/../../src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js","webpack://vanfax/../../src/utils/isFixed.js","webpack://vanfax/../../src/utils/getFixedPositionOffsetParent.js","webpack://vanfax/../../src/utils/getBoundaries.js","webpack://vanfax/../../src/utils/computeAutoPlacement.js","webpack://vanfax/../../src/utils/getReferenceOffsets.js","webpack://vanfax/../../src/utils/getOuterSizes.js","webpack://vanfax/../../src/utils/getOppositePlacement.js","webpack://vanfax/../../src/utils/getPopperOffsets.js","webpack://vanfax/../../src/utils/find.js","webpack://vanfax/../../src/utils/findIndex.js","webpack://vanfax/../../src/utils/runModifiers.js","webpack://vanfax/../../src/methods/update.js","webpack://vanfax/../../src/utils/isModifierEnabled.js","webpack://vanfax/../../src/utils/getSupportedPropertyName.js","webpack://vanfax/../../src/methods/destroy.js","webpack://vanfax/../../src/utils/getWindow.js","webpack://vanfax/../../src/utils/setupEventListeners.js","webpack://vanfax/../../src/methods/enableEventListeners.js","webpack://vanfax/../../src/utils/removeEventListeners.js","webpack://vanfax/../../src/methods/disableEventListeners.js","webpack://vanfax/../../src/utils/isNumeric.js","webpack://vanfax/../../src/utils/setStyles.js","webpack://vanfax/../../src/utils/setAttributes.js","webpack://vanfax/../../src/modifiers/applyStyle.js","webpack://vanfax/../../src/utils/getRoundedOffsets.js","webpack://vanfax/../../src/modifiers/computeStyle.js","webpack://vanfax/../../src/utils/isModifierRequired.js","webpack://vanfax/../../src/modifiers/arrow.js","webpack://vanfax/../../src/utils/getOppositeVariation.js","webpack://vanfax/../../src/methods/placements.js","webpack://vanfax/../../src/utils/clockwise.js","webpack://vanfax/../../src/modifiers/flip.js","webpack://vanfax/../../src/modifiers/keepTogether.js","webpack://vanfax/../../src/modifiers/offset.js","webpack://vanfax/../../src/modifiers/preventOverflow.js","webpack://vanfax/../../src/modifiers/shift.js","webpack://vanfax/../../src/modifiers/hide.js","webpack://vanfax/../../src/modifiers/inner.js","webpack://vanfax/../../src/modifiers/index.js","webpack://vanfax/../../src/methods/defaults.js","webpack://vanfax/../../src/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/constants/popper.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/utils/bv-event.class.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/mixins/click-out.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/mixins/focus-in.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/utils/element-to-vue-instance-registry.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/mixins/dropdown.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/dropdown/dropdown.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/dropdown/dropdown-item.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/dropdown/dropdown-item-button.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/dropdown/dropdown-header.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/dropdown/dropdown-divider.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/form/form.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/dropdown/dropdown-form.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/dropdown/dropdown-text.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/dropdown/dropdown-group.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/dropdown/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/embed/embed.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/embed/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/mixins/form-options.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/form/form-datalist.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/form/form-text.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/mixins/form-radio-check.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/form/form-invalid-feedback.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/form/form-valid-feedback.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/layout/form-row.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/form/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/utils/loose-index-of.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/mixins/form-control.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/mixins/form-custom.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/mixins/form-size.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/mixins/form-state.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/form-checkbox/form-checkbox.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/mixins/form-radio-check-group.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/form-radio/form-radio.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/form-checkbox/form-checkbox-group.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/form-checkbox/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/directives/hover/hover.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/form-btn-label-control/bv-form-btn-label-control.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/form-datepicker/form-datepicker.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/form-file/form-file.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/form-datepicker/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/form-file/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/utils/css-escape.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/layout/col.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/form-group/form-group.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/form-group/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/mixins/form-selection.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/mixins/form-text.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/mixins/form-validity.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/form-input/form-input.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/form-rating/form-rating.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/form-input/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/form-radio/form-radio-group.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/form-radio/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/form-rating/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/mixins/model.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/form-select/helpers/mixin-options.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/form-select/form-select-option.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/form-select/form-select-option-group.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/form-select/form-select.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/form-spinbutton/form-spinbutton.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/form-select/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/form-spinbutton/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/form-tags/form-tag.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/form-tags/form-tags.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/form-tags/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/form-textarea/form-textarea.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/time/time.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/form-textarea/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/form-timepicker/form-timepicker.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/form-timepicker/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/image/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/input-group/input-group-text.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/input-group/input-group-addon.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/input-group/input-group-append.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/input-group/input-group-prepend.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/input-group/input-group.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/input-group/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/layout/container.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/jumbotron/jumbotron.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/jumbotron/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/layout/row.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/layout/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/link/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/list-group/list-group.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/list-group/list-group-item.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/list-group/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/media/media-aside.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/media/media-body.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/media/media.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/media/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/mixins/listen-on-document.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/mixins/listen-on-window.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/mixins/use-parent.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/utils/get-scope-id.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/mixins/scoped-style.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/utils/create-new-child-component.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/transporter/transporter.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/modal/helpers/bv-modal-event.class.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/modal/helpers/modal-manager.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/modal/modal.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/directives/modal/modal.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/modal/helpers/bv-modal.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/modal/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/nav/nav.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/nav/nav-item.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/nav/nav-text.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/nav/nav-form.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/nav/nav-item-dropdown.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/nav/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/navbar/navbar.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/navbar/navbar-nav.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/navbar/navbar-brand.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/navbar/navbar-toggle.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/navbar/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/spinner/spinner.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/overlay/overlay.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/mixins/pagination.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/overlay/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/pagination/pagination.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/pagination/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/pagination-nav/pagination-nav.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/pagination-nav/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/tooltip/helpers/bv-popper.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/tooltip/helpers/bv-tooltip-template.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/tooltip/helpers/bv-tooltip.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/tooltip/tooltip.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/popover/helpers/bv-popover-template.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/popover/helpers/bv-popover.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/popover/popover.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/directives/popover/popover.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/directives/popover/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/popover/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/progress/progress-bar.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/progress/progress.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/sidebar/sidebar.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/progress/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/sidebar/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/skeleton/skeleton.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/skeleton/skeleton-icon.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/skeleton/skeleton-img.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/mixins/has-listener.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-stacked.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-table-renderer.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/table/table-simple.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/skeleton/skeleton-table.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/skeleton/skeleton-wrapper.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/skeleton/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/spinner/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/table/tr.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-bottom-row.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/table/td.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-busy.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-caption.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-colgroup.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-empty.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/utils/stringify-object-values.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/table/helpers/constants.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/table/helpers/sanitize-row.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/table/helpers/stringify-record-values.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-filtering.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/table/helpers/normalize-fields.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-items.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-pagination.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-provider.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-selectable.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-sorting.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/utils/stable-sort.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/table/helpers/default-sort-compare.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/table/tbody.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/table/helpers/filter-event.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/table/helpers/text-selection-active.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/table/th.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-tbody-row.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-tbody.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/table/tfoot.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-tfoot.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/table/thead.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-thead.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/table/helpers/mixin-top-row.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/table/table.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/table/table-lite.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/tabs/tabs.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/table/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/tabs/tab.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/toast/toast.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/tabs/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/time/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/toast/toaster.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/toast/helpers/bv-toast.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/toast/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/directives/tooltip/tooltip.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/directives/tooltip/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/tooltip/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/components/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/directives/hover/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/directives/modal/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/directives/scrollspy/helpers/bv-scrollspy.class.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/directives/scrollspy/scrollspy.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/directives/scrollspy/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/directives/visible/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/directives/index.js","webpack://vanfax/./node_modules/bootstrap-vue/esm/index.js","webpack://vanfax/./node_modules/deepmerge/dist/cjs.js","webpack://vanfax/./node_modules/es6-promise/auto.js","webpack://vanfax/lib/es6-promise/utils.js","webpack://vanfax/lib/es6-promise/asap.js","webpack://vanfax/lib/es6-promise/then.js","webpack://vanfax/lib/es6-promise/promise/resolve.js","webpack://vanfax/lib/es6-promise/-internal.js","webpack://vanfax/lib/es6-promise/enumerator.js","webpack://vanfax/lib/es6-promise/promise/all.js","webpack://vanfax/lib/es6-promise/promise/race.js","webpack://vanfax/lib/es6-promise/promise/reject.js","webpack://vanfax/lib/es6-promise/promise.js","webpack://vanfax/lib/es6-promise/polyfill.js","webpack://vanfax/lib/es6-promise.js","webpack://vanfax/./node_modules/flatpickr/dist/esm/types/options.js","webpack://vanfax/./node_modules/flatpickr/dist/esm/l10n/default.js","webpack://vanfax/./node_modules/flatpickr/dist/esm/utils/index.js","webpack://vanfax/./node_modules/flatpickr/dist/esm/utils/dom.js","webpack://vanfax/./node_modules/flatpickr/dist/esm/utils/formatting.js","webpack://vanfax/./node_modules/flatpickr/dist/esm/utils/dates.js","webpack://vanfax/./node_modules/flatpickr/dist/esm/index.js","webpack://vanfax/./node_modules/flatpickr/dist/esm/utils/polyfills.js","webpack://vanfax/./node_modules/nprogress/nprogress.js","webpack://vanfax/../src/utils/index.ts","webpack://vanfax/../src/components/wormhole.ts","webpack://vanfax/../src/components/portal.tsx","webpack://vanfax/../src/components/portal-target.tsx","webpack://vanfax/../src/components/mounting-portal.tsx","webpack://vanfax/./node_modules/vue-analytics/dist/vue-analytics.js","webpack://vanfax/./node_modules/vue-flatpickr-component/dist/vue-flatpickr.js","webpack://vanfax/./node_modules/vue-i18n/dist/vue-i18n.esm.js","webpack://vanfax/./node_modules/vue-loading-overlay/dist/vue-loading.js","webpack://vanfax/./node_modules/vue-meta/dist/vue-meta.esm.js","webpack://vanfax/./node_modules/vue-router/dist/vue-router.esm.js","webpack://vanfax/./node_modules/vue/dist/vue.runtime.esm.js","webpack://vanfax/./node_modules/vuex/dist/vuex.esm.js","webpack://vanfax/./node_modules/core-js/internals/a-callable.js","webpack://vanfax/./node_modules/core-js/internals/a-possible-prototype.js","webpack://vanfax/./node_modules/core-js/internals/a-set.js","webpack://vanfax/./node_modules/core-js/internals/an-instance.js","webpack://vanfax/./node_modules/core-js/internals/an-object.js","webpack://vanfax/./node_modules/core-js/internals/array-buffer-basic-detection.js","webpack://vanfax/./node_modules/core-js/internals/array-buffer-byte-length.js","webpack://vanfax/./node_modules/core-js/internals/array-buffer-is-detached.js","webpack://vanfax/./node_modules/core-js/internals/array-buffer-not-detached.js","webpack://vanfax/./node_modules/core-js/internals/array-buffer-transfer.js","webpack://vanfax/./node_modules/core-js/internals/array-buffer-view-core.js","webpack://vanfax/./node_modules/core-js/internals/array-from-constructor-and-list.js","webpack://vanfax/./node_modules/core-js/internals/array-includes.js","webpack://vanfax/./node_modules/core-js/internals/array-set-length.js","webpack://vanfax/./node_modules/core-js/internals/array-slice.js","webpack://vanfax/./node_modules/core-js/internals/array-to-reversed.js","webpack://vanfax/./node_modules/core-js/internals/array-with.js","webpack://vanfax/./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://vanfax/./node_modules/core-js/internals/classof-raw.js","webpack://vanfax/./node_modules/core-js/internals/classof.js","webpack://vanfax/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://vanfax/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://vanfax/./node_modules/core-js/internals/create-iter-result-object.js","webpack://vanfax/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://vanfax/./node_modules/core-js/internals/create-property-descriptor.js","webpack://vanfax/./node_modules/core-js/internals/create-property.js","webpack://vanfax/./node_modules/core-js/internals/define-built-in-accessor.js","webpack://vanfax/./node_modules/core-js/internals/define-built-in.js","webpack://vanfax/./node_modules/core-js/internals/define-built-ins.js","webpack://vanfax/./node_modules/core-js/internals/define-global-property.js","webpack://vanfax/./node_modules/core-js/internals/descriptors.js","webpack://vanfax/./node_modules/core-js/internals/detach-transferable.js","webpack://vanfax/./node_modules/core-js/internals/document-create-element.js","webpack://vanfax/./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://vanfax/./node_modules/core-js/internals/dom-exception-constants.js","webpack://vanfax/./node_modules/core-js/internals/enum-bug-keys.js","webpack://vanfax/./node_modules/core-js/internals/environment-is-ios.js","webpack://vanfax/./node_modules/core-js/internals/environment-is-node.js","webpack://vanfax/./node_modules/core-js/internals/environment-user-agent.js","webpack://vanfax/./node_modules/core-js/internals/environment-v8-version.js","webpack://vanfax/./node_modules/core-js/internals/environment.js","webpack://vanfax/./node_modules/core-js/internals/error-stack-clear.js","webpack://vanfax/./node_modules/core-js/internals/export.js","webpack://vanfax/./node_modules/core-js/internals/fails.js","webpack://vanfax/./node_modules/core-js/internals/function-apply.js","webpack://vanfax/./node_modules/core-js/internals/function-bind-context.js","webpack://vanfax/./node_modules/core-js/internals/function-bind-native.js","webpack://vanfax/./node_modules/core-js/internals/function-call.js","webpack://vanfax/./node_modules/core-js/internals/function-name.js","webpack://vanfax/./node_modules/core-js/internals/function-uncurry-this-accessor.js","webpack://vanfax/./node_modules/core-js/internals/function-uncurry-this-clause.js","webpack://vanfax/./node_modules/core-js/internals/function-uncurry-this.js","webpack://vanfax/./node_modules/core-js/internals/get-built-in-node-module.js","webpack://vanfax/./node_modules/core-js/internals/get-built-in.js","webpack://vanfax/./node_modules/core-js/internals/get-iterator-direct.js","webpack://vanfax/./node_modules/core-js/internals/get-iterator-method.js","webpack://vanfax/./node_modules/core-js/internals/get-iterator.js","webpack://vanfax/./node_modules/core-js/internals/get-method.js","webpack://vanfax/./node_modules/core-js/internals/get-set-record.js","webpack://vanfax/./node_modules/core-js/internals/global-this.js","webpack://vanfax/./node_modules/core-js/internals/has-own-property.js","webpack://vanfax/./node_modules/core-js/internals/hidden-keys.js","webpack://vanfax/./node_modules/core-js/internals/html.js","webpack://vanfax/./node_modules/core-js/internals/ie8-dom-define.js","webpack://vanfax/./node_modules/core-js/internals/indexed-object.js","webpack://vanfax/./node_modules/core-js/internals/inherit-if-required.js","webpack://vanfax/./node_modules/core-js/internals/inspect-source.js","webpack://vanfax/./node_modules/core-js/internals/internal-state.js","webpack://vanfax/./node_modules/core-js/internals/is-array-iterator-method.js","webpack://vanfax/./node_modules/core-js/internals/is-array.js","webpack://vanfax/./node_modules/core-js/internals/is-big-int-array.js","webpack://vanfax/./node_modules/core-js/internals/is-callable.js","webpack://vanfax/./node_modules/core-js/internals/is-forced.js","webpack://vanfax/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://vanfax/./node_modules/core-js/internals/is-object.js","webpack://vanfax/./node_modules/core-js/internals/is-possible-prototype.js","webpack://vanfax/./node_modules/core-js/internals/is-pure.js","webpack://vanfax/./node_modules/core-js/internals/is-symbol.js","webpack://vanfax/./node_modules/core-js/internals/iterate-simple.js","webpack://vanfax/./node_modules/core-js/internals/iterate.js","webpack://vanfax/./node_modules/core-js/internals/iterator-close.js","webpack://vanfax/./node_modules/core-js/internals/iterator-create-proxy.js","webpack://vanfax/./node_modules/core-js/internals/iterator-map.js","webpack://vanfax/./node_modules/core-js/internals/iterators-core.js","webpack://vanfax/./node_modules/core-js/internals/iterators.js","webpack://vanfax/./node_modules/core-js/internals/length-of-array-like.js","webpack://vanfax/./node_modules/core-js/internals/make-built-in.js","webpack://vanfax/./node_modules/core-js/internals/math-trunc.js","webpack://vanfax/./node_modules/core-js/internals/normalize-string-argument.js","webpack://vanfax/./node_modules/core-js/internals/object-create.js","webpack://vanfax/./node_modules/core-js/internals/object-define-properties.js","webpack://vanfax/./node_modules/core-js/internals/object-define-property.js","webpack://vanfax/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://vanfax/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://vanfax/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://vanfax/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://vanfax/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://vanfax/./node_modules/core-js/internals/object-keys-internal.js","webpack://vanfax/./node_modules/core-js/internals/object-keys.js","webpack://vanfax/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://vanfax/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://vanfax/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://vanfax/./node_modules/core-js/internals/own-keys.js","webpack://vanfax/./node_modules/core-js/internals/require-object-coercible.js","webpack://vanfax/./node_modules/core-js/internals/schedulers-fix.js","webpack://vanfax/./node_modules/core-js/internals/set-clone.js","webpack://vanfax/./node_modules/core-js/internals/set-difference.js","webpack://vanfax/./node_modules/core-js/internals/set-helpers.js","webpack://vanfax/./node_modules/core-js/internals/set-intersection.js","webpack://vanfax/./node_modules/core-js/internals/set-is-disjoint-from.js","webpack://vanfax/./node_modules/core-js/internals/set-is-subset-of.js","webpack://vanfax/./node_modules/core-js/internals/set-is-superset-of.js","webpack://vanfax/./node_modules/core-js/internals/set-iterate.js","webpack://vanfax/./node_modules/core-js/internals/set-method-accept-set-like.js","webpack://vanfax/./node_modules/core-js/internals/set-size.js","webpack://vanfax/./node_modules/core-js/internals/set-symmetric-difference.js","webpack://vanfax/./node_modules/core-js/internals/set-union.js","webpack://vanfax/./node_modules/core-js/internals/shared-key.js","webpack://vanfax/./node_modules/core-js/internals/shared-store.js","webpack://vanfax/./node_modules/core-js/internals/shared.js","webpack://vanfax/./node_modules/core-js/internals/structured-clone-proper-transfer.js","webpack://vanfax/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://vanfax/./node_modules/core-js/internals/task.js","webpack://vanfax/./node_modules/core-js/internals/to-absolute-index.js","webpack://vanfax/./node_modules/core-js/internals/to-big-int.js","webpack://vanfax/./node_modules/core-js/internals/to-index.js","webpack://vanfax/./node_modules/core-js/internals/to-indexed-object.js","webpack://vanfax/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://vanfax/./node_modules/core-js/internals/to-length.js","webpack://vanfax/./node_modules/core-js/internals/to-object.js","webpack://vanfax/./node_modules/core-js/internals/to-primitive.js","webpack://vanfax/./node_modules/core-js/internals/to-property-key.js","webpack://vanfax/./node_modules/core-js/internals/to-string-tag-support.js","webpack://vanfax/./node_modules/core-js/internals/to-string.js","webpack://vanfax/./node_modules/core-js/internals/try-to-string.js","webpack://vanfax/./node_modules/core-js/internals/uid.js","webpack://vanfax/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://vanfax/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://vanfax/./node_modules/core-js/internals/validate-arguments-length.js","webpack://vanfax/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://vanfax/./node_modules/core-js/internals/well-known-symbol.js","webpack://vanfax/./node_modules/core-js/modules/es.array-buffer.detached.js","webpack://vanfax/./node_modules/core-js/modules/es.array-buffer.transfer-to-fixed-length.js","webpack://vanfax/./node_modules/core-js/modules/es.array-buffer.transfer.js","webpack://vanfax/./node_modules/core-js/modules/es.array.push.js","webpack://vanfax/./node_modules/core-js/modules/es.iterator.constructor.js","webpack://vanfax/./node_modules/core-js/modules/es.iterator.every.js","webpack://vanfax/./node_modules/core-js/modules/es.iterator.filter.js","webpack://vanfax/./node_modules/core-js/modules/es.iterator.find.js","webpack://vanfax/./node_modules/core-js/modules/es.iterator.for-each.js","webpack://vanfax/./node_modules/core-js/modules/es.iterator.map.js","webpack://vanfax/./node_modules/core-js/modules/es.iterator.reduce.js","webpack://vanfax/./node_modules/core-js/modules/es.iterator.some.js","webpack://vanfax/./node_modules/core-js/modules/es.iterator.to-array.js","webpack://vanfax/./node_modules/core-js/modules/es.set.difference.v2.js","webpack://vanfax/./node_modules/core-js/modules/es.set.intersection.v2.js","webpack://vanfax/./node_modules/core-js/modules/es.set.is-disjoint-from.v2.js","webpack://vanfax/./node_modules/core-js/modules/es.set.is-subset-of.v2.js","webpack://vanfax/./node_modules/core-js/modules/es.set.is-superset-of.v2.js","webpack://vanfax/./node_modules/core-js/modules/es.set.symmetric-difference.v2.js","webpack://vanfax/./node_modules/core-js/modules/es.set.union.v2.js","webpack://vanfax/./node_modules/core-js/modules/es.typed-array.to-reversed.js","webpack://vanfax/./node_modules/core-js/modules/es.typed-array.to-sorted.js","webpack://vanfax/./node_modules/core-js/modules/es.typed-array.with.js","webpack://vanfax/./node_modules/core-js/modules/esnext.iterator.constructor.js","webpack://vanfax/./node_modules/core-js/modules/esnext.iterator.every.js","webpack://vanfax/./node_modules/core-js/modules/esnext.iterator.filter.js","webpack://vanfax/./node_modules/core-js/modules/esnext.iterator.find.js","webpack://vanfax/./node_modules/core-js/modules/esnext.iterator.for-each.js","webpack://vanfax/./node_modules/core-js/modules/esnext.iterator.map.js","webpack://vanfax/./node_modules/core-js/modules/esnext.iterator.reduce.js","webpack://vanfax/./node_modules/core-js/modules/esnext.iterator.some.js","webpack://vanfax/./node_modules/core-js/modules/esnext.iterator.to-array.js","webpack://vanfax/./node_modules/core-js/modules/web.clear-immediate.js","webpack://vanfax/./node_modules/core-js/modules/web.dom-exception.stack.js","webpack://vanfax/./node_modules/core-js/modules/web.immediate.js","webpack://vanfax/./node_modules/core-js/modules/web.set-immediate.js","webpack://vanfax/./node_modules/core-js/modules/web.url-search-params.delete.js","webpack://vanfax/./node_modules/core-js/modules/web.url-search-params.has.js","webpack://vanfax/./node_modules/core-js/modules/web.url-search-params.size.js","webpack://vanfax/./node_modules/@fortawesome/fontawesome-svg-core/index.mjs","webpack://vanfax/./node_modules/@fortawesome/free-regular-svg-icons/index.mjs","webpack://vanfax/./node_modules/@fortawesome/free-solid-svg-icons/index.mjs","webpack://vanfax/./node_modules/axios/lib/helpers/bind.js","webpack://vanfax/./node_modules/axios/lib/utils.js","webpack://vanfax/./node_modules/axios/lib/core/AxiosError.js","webpack://vanfax/./node_modules/axios/lib/helpers/null.js","webpack://vanfax/./node_modules/axios/lib/helpers/toFormData.js","webpack://vanfax/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://vanfax/./node_modules/axios/lib/helpers/buildURL.js","webpack://vanfax/./node_modules/axios/lib/core/InterceptorManager.js","webpack://vanfax/./node_modules/axios/lib/defaults/transitional.js","webpack://vanfax/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://vanfax/./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://vanfax/./node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://vanfax/./node_modules/axios/lib/platform/browser/index.js","webpack://vanfax/./node_modules/axios/lib/platform/common/utils.js","webpack://vanfax/./node_modules/axios/lib/platform/index.js","webpack://vanfax/./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://vanfax/./node_modules/axios/lib/helpers/formDataToJSON.js","webpack://vanfax/./node_modules/axios/lib/defaults/index.js","webpack://vanfax/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://vanfax/./node_modules/axios/lib/core/AxiosHeaders.js","webpack://vanfax/./node_modules/axios/lib/core/transformData.js","webpack://vanfax/./node_modules/axios/lib/cancel/isCancel.js","webpack://vanfax/./node_modules/axios/lib/cancel/CanceledError.js","webpack://vanfax/./node_modules/axios/lib/core/settle.js","webpack://vanfax/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://vanfax/./node_modules/axios/lib/helpers/speedometer.js","webpack://vanfax/./node_modules/axios/lib/helpers/throttle.js","webpack://vanfax/./node_modules/axios/lib/helpers/progressEventReducer.js","webpack://vanfax/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://vanfax/./node_modules/axios/lib/helpers/cookies.js","webpack://vanfax/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://vanfax/./node_modules/axios/lib/helpers/combineURLs.js","webpack://vanfax/./node_modules/axios/lib/core/buildFullPath.js","webpack://vanfax/./node_modules/axios/lib/core/mergeConfig.js","webpack://vanfax/./node_modules/axios/lib/helpers/resolveConfig.js","webpack://vanfax/./node_modules/axios/lib/adapters/xhr.js","webpack://vanfax/./node_modules/axios/lib/helpers/composeSignals.js","webpack://vanfax/./node_modules/axios/lib/helpers/trackStream.js","webpack://vanfax/./node_modules/axios/lib/adapters/fetch.js","webpack://vanfax/./node_modules/axios/lib/adapters/adapters.js","webpack://vanfax/./node_modules/axios/lib/core/dispatchRequest.js","webpack://vanfax/./node_modules/axios/lib/env/data.js","webpack://vanfax/./node_modules/axios/lib/helpers/validator.js","webpack://vanfax/./node_modules/axios/lib/core/Axios.js","webpack://vanfax/./node_modules/axios/lib/cancel/CancelToken.js","webpack://vanfax/./node_modules/axios/lib/helpers/spread.js","webpack://vanfax/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://vanfax/./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://vanfax/./node_modules/axios/lib/axios.js"],"sourcesContent":["/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent(\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */,\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options =\n typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import { parse, icon, config, text } from '@fortawesome/fontawesome-svg-core';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nvar humps$1 = {exports: {}};\n\n(function (module) {\n(function(global) {\n\n\t var _processKeys = function(convert, obj, options) {\n\t if(!_isObject(obj) || _isDate(obj) || _isRegExp(obj) || _isBoolean(obj) || _isFunction(obj)) {\n\t return obj;\n\t }\n\n\t var output,\n\t i = 0,\n\t l = 0;\n\n\t if(_isArray(obj)) {\n\t output = [];\n\t for(l=obj.length; i 2 && arguments[2] !== undefined ? arguments[2] : {};\n var data = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var children = (element.children || []).map(convert.bind(null, h));\n var mixins = Object.keys(element.attributes || {}).reduce(function (acc, key) {\n var val = element.attributes[key];\n\n switch (key) {\n case 'class':\n acc['class'] = classToObject(val);\n break;\n\n case 'style':\n acc['style'] = styleToObject(val);\n break;\n\n default:\n acc.attrs[key] = val;\n }\n\n return acc;\n }, {\n 'class': {},\n style: {},\n attrs: {}\n });\n\n var _data$class = data.class,\n dClass = _data$class === void 0 ? {} : _data$class,\n _data$style = data.style,\n dStyle = _data$style === void 0 ? {} : _data$style,\n _data$attrs = data.attrs,\n dAttrs = _data$attrs === void 0 ? {} : _data$attrs,\n remainingData = _objectWithoutProperties(data, _excluded);\n\n if (typeof element === 'string') {\n return element;\n } else {\n return h(element.tag, _objectSpread2(_objectSpread2({\n class: combineClassObjects(mixins.class, dClass),\n style: _objectSpread2(_objectSpread2({}, mixins.style), dStyle),\n attrs: _objectSpread2(_objectSpread2({}, mixins.attrs), dAttrs)\n }, remainingData), {}, {\n props: props\n }), children);\n }\n}\n\nvar PRODUCTION = false;\n\ntry {\n PRODUCTION = process.env.NODE_ENV === 'production';\n} catch (e) {}\n\nfunction log () {\n if (!PRODUCTION && console && typeof console.error === 'function') {\n var _console;\n\n (_console = console).error.apply(_console, arguments);\n }\n}\n\nfunction objectWithKey(key, value) {\n return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? _defineProperty({}, key, value) : {};\n}\nfunction classList(props) {\n var _classes;\n\n var classes = (_classes = {\n 'fa-spin': props.spin,\n 'fa-spin-pulse': props.spinPulse,\n 'fa-spin-reverse': props.spinReverse,\n 'fa-pulse': props.pulse,\n 'fa-beat': props.beat,\n 'fa-fade': props.fade,\n 'fa-flash': props.flash,\n 'fa-fw': props.fixedWidth,\n 'fa-border': props.border,\n 'fa-li': props.listItem,\n 'fa-inverse': props.inverse,\n 'fa-flip': props.flip === true,\n 'fa-flip-horizontal': props.flip === 'horizontal' || props.flip === 'both',\n 'fa-flip-vertical': props.flip === 'vertical' || props.flip === 'both'\n }, _defineProperty(_classes, \"fa-\".concat(props.size), props.size !== null), _defineProperty(_classes, \"fa-rotate-\".concat(props.rotation), props.rotation !== null), _defineProperty(_classes, \"fa-pull-\".concat(props.pull), props.pull !== null), _defineProperty(_classes, 'fa-swap-opacity', props.swapOpacity), _defineProperty(_classes, 'fa-bounce', props.bounce), _defineProperty(_classes, 'fa-shake', props.shake), _defineProperty(_classes, 'fa-beat-fade', props.beatFade), _classes);\n return Object.keys(classes).map(function (key) {\n return classes[key] ? key : null;\n }).filter(function (key) {\n return key;\n });\n}\nfunction addStaticClass(to, what) {\n var val = (to || '').length === 0 ? [] : [to];\n return val.concat(what).join(' ');\n}\n\nfunction normalizeIconArgs(icon) {\n // this has everything that it needs to be rendered which means it was probably imported\n // directly from an icon svg package\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName && icon.icon) {\n return icon;\n }\n\n if (parse.icon) {\n return parse.icon(icon);\n }\n\n if (icon === null) {\n return null;\n }\n\n if (_typeof(icon) === 'object' && icon.prefix && icon.iconName) {\n return icon;\n }\n\n if (Array.isArray(icon) && icon.length === 2) {\n return {\n prefix: icon[0],\n iconName: icon[1]\n };\n }\n\n if (typeof icon === 'string') {\n return {\n prefix: 'fas',\n iconName: icon\n };\n }\n}\n\nvar FontAwesomeIcon = {\n name: 'FontAwesomeIcon',\n functional: true,\n props: {\n beat: {\n type: Boolean,\n default: false\n },\n border: {\n type: Boolean,\n default: false\n },\n fade: {\n type: Boolean,\n default: false\n },\n fixedWidth: {\n type: Boolean,\n default: false\n },\n flash: {\n type: Boolean,\n default: false\n },\n flip: {\n type: [Boolean, String],\n default: false,\n validator: function validator(value) {\n return [true, false, 'horizontal', 'vertical', 'both'].indexOf(value) > -1;\n }\n },\n icon: {\n type: [Object, Array, String],\n required: true\n },\n mask: {\n type: [Object, Array, String],\n default: null\n },\n listItem: {\n type: Boolean,\n default: false\n },\n pull: {\n type: String,\n default: null,\n validator: function validator(value) {\n return ['right', 'left'].indexOf(value) > -1;\n }\n },\n pulse: {\n type: Boolean,\n default: false\n },\n rotation: {\n type: [String, Number],\n default: null,\n validator: function validator(value) {\n return [90, 180, 270].indexOf(parseInt(value, 10)) > -1;\n }\n },\n swapOpacity: {\n type: Boolean,\n default: false\n },\n size: {\n type: String,\n default: null,\n validator: function validator(value) {\n return ['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', '1x', '2x', '3x', '4x', '5x', '6x', '7x', '8x', '9x', '10x'].indexOf(value) > -1;\n }\n },\n spin: {\n type: Boolean,\n default: false\n },\n spinPulse: {\n type: Boolean,\n default: false\n },\n spinReverse: {\n type: Boolean,\n default: false\n },\n transform: {\n type: [String, Object],\n default: null\n },\n symbol: {\n type: [Boolean, String],\n default: false\n },\n title: {\n type: String,\n default: null\n },\n inverse: {\n type: Boolean,\n default: false\n },\n bounce: {\n type: Boolean,\n default: false\n },\n shake: {\n type: Boolean,\n default: false\n },\n beatFade: {\n type: Boolean,\n default: false\n }\n },\n render: function render(createElement, context) {\n var props = context.props;\n var iconArgs = props.icon,\n maskArgs = props.mask,\n symbol = props.symbol,\n title = props.title;\n var icon$1 = normalizeIconArgs(iconArgs);\n var classes = objectWithKey('classes', classList(props));\n var transform = objectWithKey('transform', typeof props.transform === 'string' ? parse.transform(props.transform) : props.transform);\n var mask = objectWithKey('mask', normalizeIconArgs(maskArgs));\n var renderedIcon = icon(icon$1, _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, classes), transform), mask), {}, {\n symbol: symbol,\n title: title\n }));\n\n if (!renderedIcon) {\n return log('Could not find one or more icon(s)', icon$1, mask);\n }\n\n var abstract = renderedIcon.abstract;\n var convertCurry = convert.bind(null, createElement);\n return convertCurry(abstract[0], {}, context.data);\n }\n};\n\nvar FontAwesomeLayers = {\n name: 'FontAwesomeLayers',\n functional: true,\n props: {\n fixedWidth: {\n type: Boolean,\n default: false\n }\n },\n render: function render(createElement, context) {\n var familyPrefix = config.familyPrefix;\n var staticClass = context.data.staticClass;\n var classes = [\"\".concat(familyPrefix, \"-layers\")].concat(_toConsumableArray(context.props.fixedWidth ? [\"\".concat(familyPrefix, \"-fw\")] : []));\n return createElement('div', _objectSpread2(_objectSpread2({}, context.data), {}, {\n staticClass: addStaticClass(staticClass, classes)\n }), context.children);\n }\n};\n\nvar FontAwesomeLayersText = {\n name: 'FontAwesomeLayersText',\n functional: true,\n props: {\n value: {\n type: [String, Number],\n default: ''\n },\n transform: {\n type: [String, Object],\n default: null\n },\n counter: {\n type: Boolean,\n default: false\n },\n position: {\n type: String,\n default: null,\n validator: function validator(value) {\n return ['bottom-left', 'bottom-right', 'top-left', 'top-right'].indexOf(value) > -1;\n }\n }\n },\n render: function render(createElement, context) {\n var familyPrefix = config.familyPrefix;\n var props = context.props;\n var classes = objectWithKey('classes', [].concat(_toConsumableArray(props.counter ? [\"\".concat(familyPrefix, \"-layers-counter\")] : []), _toConsumableArray(props.position ? [\"\".concat(familyPrefix, \"-layers-\").concat(props.position)] : [])));\n var transform = objectWithKey('transform', typeof props.transform === 'string' ? parse.transform(props.transform) : props.transform);\n var renderedText = text(props.value.toString(), _objectSpread2(_objectSpread2({}, transform), classes));\n var abstract = renderedText.abstract;\n\n if (props.counter) {\n abstract[0].attributes.class = abstract[0].attributes.class.replace('fa-layers-text', '');\n }\n\n var convertCurry = convert.bind(null, createElement);\n return convertCurry(abstract[0], {}, context.data);\n }\n};\n\nexport { FontAwesomeIcon, FontAwesomeLayers, FontAwesomeLayersText };\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2024 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n * Internal tree shaking helper to return the first available function from the two provided.\r\n * This is required to ensure that tree-shaking can remove any unused functions as this ensures\r\n * that the alias assignments are not considered side-effects and are tagged correctly as pure.\r\n * @param func1 - The system function to use if available\r\n * @param func2 - The polyfill function to use if the static function is not available\r\n * @returns The first available function from the two provided\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function _pureAssign(func1: F, func2?: F): F {\r\n return func1 || func2;\r\n}\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n * Internal tree shaking helper to return the value of the named property from the provided object.\r\n * By using this helper, we can explicitly tell the tree-shaking tool that this function is pure and\r\n * has no side effects. As some tree-shaking tools may not be able to determine this automatically.\r\n * @param value - The object to get the property value from\r\n * @param name - The name of the property to get the value of\r\n * @returns The value of the named property from the provided object\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function _pureRef(value: T, name: keyof T): R {\r\n return value[name] as R;\r\n}","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { _pureAssign, _pureRef } from \"./treeshake_helpers\";\r\n\r\n// These constants are currently NOT exported directly, we may export them later associated with a frozen namespace (maybe)\r\n// For now do NOT expect that we will export these values.\r\n\r\nexport const UNDEF_VALUE: undefined = undefined;\r\nexport const NULL_VALUE: null = null;\r\n\r\nexport const EMPTY = \"\";\r\nexport const FUNCTION = \"function\";\r\nexport const OBJECT = \"object\";\r\nexport const PROTOTYPE = \"prototype\";\r\nexport const __PROTO__ = \"__proto__\";\r\nexport const UNDEFINED = \"undefined\";\r\nexport const CONSTRUCTOR = \"constructor\";\r\nexport const SYMBOL = \"Symbol\";\r\nexport const POLYFILL_TAG = \"_polyfill\";\r\nexport const LENGTH = \"length\";\r\nexport const NAME = \"name\";\r\nexport const CALL = \"call\";\r\nexport const TO_STRING = \"toString\";\r\n\r\n/**\r\n * @ignore\r\n */\r\nexport const ObjClass = (/*#__PURE__*/_pureAssign(Object));\r\n\r\n/**\r\n * @ignore\r\n */\r\nexport const ObjProto = (/*#__PURE__*/_pureRef(ObjClass, PROTOTYPE));\r\n\r\n/**\r\n * @ignore\r\n */\r\nexport const StrCls = (/*#__PURE__*/_pureAssign(String));\r\n\r\n/**\r\n * @ignore\r\n */\r\nexport const StrProto = (/*#__PURE__*/_pureRef(StrCls, PROTOTYPE)) as String;\r\n\r\n/**\r\n * @ignore\r\n */\r\nexport const MathCls = (/*#__PURE__*/_pureAssign(Math)) as Math;\r\n\r\n/**\r\n * @ignore\r\n */\r\nexport const ArrCls = (/*#__PURE__*/_pureAssign(Array));\r\n\r\n/**\r\n * @ignore\r\n */\r\nexport const ArrProto = (/*#__PURE__*/_pureRef(ArrCls, PROTOTYPE));\r\n\r\n/**\r\n * @ignore\r\n *\r\n */\r\nexport const ArrSlice = (/*#__PURE__*/_pureRef(ArrProto, \"slice\"));","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { ArrCls, FUNCTION, NULL_VALUE, OBJECT, ObjProto, TO_STRING, UNDEFINED, UNDEF_VALUE } from \"../internal/constants\";\r\nimport { _pureRef } from \"../internal/treeshake_helpers\";\r\nimport { safeGet } from \"./safe_get\";\r\n\r\nlet _primitiveTypes: string[];\r\n\r\n/**\r\n * @ignore\r\n * @internal\r\n * Create and returns a function that will return `true` if the argument passed\r\n * to it matches the provided type.\r\n * @param theType - The type to match against the `typeof value`\r\n * @returns A function which takes a single argument and returns a boolean\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function _createIs(theType: string): (value: any) => value is T {\r\n return function (value: any): value is T {\r\n return typeof value === theType;\r\n }\r\n}\r\n\r\n/**\r\n * @ignore\r\n * @internal\r\n * Create and returns a function that will return `true` if the argument passed\r\n * to it matches the object type specified based on {@link objToString}.\r\n * @param - The object name to match for the `objToString(value)`\r\n * @returns A function which takes a single argument and returns a boolean\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function _createObjIs(theName: string): (value: any) => value is T {\r\n const theType = \"[object \" + theName + \"]\";\r\n return function (value: any): value is T {\r\n return !!(value && objToString(value) === theType);\r\n }\r\n}\r\n\r\n/**\r\n * The `objToString()` method returns a string representing the object. This explicitly\r\n * always calls the `Object.prototype.toString()` method.\r\n *\r\n * An object's toString() method is most commonly invoked when that object undergoes:\r\n * - explicit type conversion to a string (for example, String(myObject))\r\n * - implicit type coercion into a string (for example, myObject + \"hello world\")\r\n *\r\n * @group Object\r\n * @param value - The object to be converted into a string\r\n * @returns A string representation of the object\r\n * @example\r\n * ```ts\r\n * objToString(new Date()); // [object Date]\r\n * objToString(new String()); // [object String]\r\n *\r\n * // Math has its Symbol.toStringTag\r\n * objToString(Math); // [object Math]\r\n *\r\n * objToString(undefined); // [object Undefined]\r\n * objToString(null); // [object Null]\r\n * ```\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function objToString(value: any): string {\r\n return ObjProto[TO_STRING].call(value);\r\n}\r\n\r\n/**\r\n * Validate if the provided value object is of the expected type\r\n * @group Type Identity\r\n * @param value - The value to check\r\n * @param theType - The expected type name as a string\r\n * @returns `true` if the value matches the provided type\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function isTypeof(value: any, theType: string): boolean {\r\n return typeof value === theType;\r\n}\r\n\r\n/**\r\n * Checks if the provided value is undefined or contains the string value \"undefined\",\r\n * if you want to consider the string value as undefined see {@link isStrictUndefined}\r\n * @group Type Identity\r\n * @group Value Check\r\n * @param value - The value to check\r\n * @returns true if the value is undefined or \"undefined\", otherwise false\r\n * @example\r\n * ```ts\r\n * isUndefined(undefined); // true\r\n * isUndefined(\"undefined\"); // true\r\n *\r\n * isUndefined(null); // false\r\n * isUndefined(\"null\"); // false\r\n * isUndefined(\"1\"); // false\r\n * isUndefined(\"aa\"); // false\r\n * isUndefined(new Date()); // false\r\n * isUndefined(1); // false\r\n * isUndefined(\"\"); // false\r\n * isUndefined(_dummyFunction); // false\r\n * isUndefined([]); // false\r\n * isUndefined(new Array(1)); // false\r\n * isUndefined(true); // false\r\n * isUndefined(false); // false\r\n * isUndefined(\"true\"); // false\r\n * isUndefined(\"false\"); // false\r\n * isUndefined(new Boolean(true)); // false\r\n * isUndefined(new Boolean(false)); // false\r\n * isUndefined(new Boolean(\"true\")); // false\r\n * isUndefined(new Boolean(\"false\")); // false\r\n * isUndefined(Boolean(true)); // false\r\n * isUndefined(Boolean(false)); // false\r\n * isUndefined(Boolean(\"true\")); // false\r\n * isUndefined(Boolean(\"false\")); // false\r\n * isUndefined(new RegExp(\"\")); // false\r\n * isUndefined(new ArrayBuffer(0)); // false\r\n * isUndefined(new Error(\"Test Error\"));// false\r\n * isUndefined(new TypeError(\"Test TypeError\")); // false\r\n * isUndefined(new TestError(\"Test TestError\")); // false\r\n * isUndefined(_dummyError()); // false\r\n * isUndefined(Promise.reject()); // false\r\n * isUndefined(Promise.resolve()); // false\r\n * isUndefined(new Promise(() => {})); // false\r\n * isUndefined(_simplePromise()); // false\r\n * isUndefined(_simplePromiseLike()); // false\r\n * isUndefined(Object.create(null)); // false\r\n * isUndefined(polyObjCreate(null)); // false\r\n * ```\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function isUndefined(value: any) {\r\n return typeof value === UNDEFINED || value === UNDEFINED;\r\n}\r\n\r\n/**\r\n * Checks if the provided value is undefined, a string value of \"undefined\" is NOT considered\r\n * to be undefined.\r\n * @group Type Identity\r\n * @group Value Check\r\n * @param arg - The value to check\r\n * @returns true if the typeof value === UNDEFINED\r\n * @example\r\n * ```ts\r\n * isStrictUndefined(undefined); // true\r\n *\r\n * isStrictUndefined(null); // false\r\n * isStrictUndefined(\"null\"); // false\r\n * isStrictUndefined(\"undefined\"); // false\r\n * isStrictUndefined(\"1\"); // false\r\n * isStrictUndefined(\"aa\"); // false\r\n * isStrictUndefined(new Date()); // false\r\n * isStrictUndefined(0); // false\r\n * isStrictUndefined(1); // false\r\n * isStrictUndefined(\"\"); // false\r\n * ```\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function isStrictUndefined(arg: any): arg is undefined {\r\n return !isDefined(arg);\r\n}\r\n\r\n/**\r\n * Checks if the provided value is null, undefined or contains the string value of \"undefined\".\r\n * @group Type Identity\r\n * @group Value Check\r\n * @param value - The value to check\r\n * @returns `true` if the value is `null` or `undefined`\r\n * @example\r\n * ```ts\r\n * isNullOrUndefined(null); // true\r\n * isNullOrUndefined(undefined); // true\r\n * isNullOrUndefined(\"undefined\"); // true\r\n *\r\n * let value = null;\r\n * isNullOrUndefined(value); // true\r\n * let value = undefined;\r\n * isNullOrUndefined(value); // true\r\n *\r\n * isNullOrUndefined(\"\"); // false\r\n * isNullOrUndefined(0); // false\r\n * isNullOrUndefined(new Date()); // false\r\n * isNullOrUndefined(true); // false\r\n * isNullOrUndefined(false); // false\r\n * ```\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function isNullOrUndefined(value: any): boolean {\r\n return value === NULL_VALUE || isUndefined(value);\r\n}\r\n\r\n/**\r\n * Checks if the provided value is null, undefined only, a string value of \"undefined\" is NOT considered\r\n * to be undefined.\r\n * @group Type Identity\r\n * @group Value Check\r\n * @param value - The value to check\r\n * @returns\r\n * @example\r\n * ```ts\r\n * isStrictNullOrUndefined(null); // true\r\n * isStrictNullOrUndefined(undefined); // true\r\n * isStrictNullOrUndefined(\"undefined\"); // false\r\n *\r\n * let value = null;\r\n * isStrictNullOrUndefined(value); // true\r\n * let value = undefined;\r\n * isStrictNullOrUndefined(value); // true\r\n *\r\n * isStrictNullOrUndefined(\"\"); // false\r\n * isStrictNullOrUndefined(0); // false\r\n * isStrictNullOrUndefined(new Date()); // false\r\n * isStrictNullOrUndefined(true); // false\r\n * isStrictNullOrUndefined(false); // false\r\n * ```\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function isStrictNullOrUndefined(value: any): boolean {\r\n return value === NULL_VALUE || !isDefined(value);\r\n}\r\n\r\n/**\r\n * Checks if the passed value is defined, which means it has any value and is not undefined.\r\n * A string value of \"undefined\" is considered to be defined.\r\n * @group Value Check\r\n * @param arg - The value to check\r\n * @returns true if arg has a value (is not === undefined)\r\n * @example\r\n * ```ts\r\n * isDefined(null); // false\r\n * isDefined(undefined); // false\r\n * isDefined(\"undefined\"); // true\r\n *\r\n * let value = null;\r\n * isDefined(value); // false\r\n * let value = undefined;\r\n * isDefined(value); // false\r\n *\r\n * isDefined(\"\"); // true\r\n * isDefined(0); // true\r\n * isDefined(new Date()); // true\r\n * isDefined(true); // true\r\n * isDefined(false); // true\r\n * ```\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function isDefined(arg: any): boolean {\r\n return !!arg || arg !== UNDEF_VALUE;\r\n}\r\n\r\n/**\r\n * Identifies whether the provided value is a JavaScript [primitive](https://developer.mozilla.org/en-US/docs/Glossary/Primitive)\r\n * which is when is it not an object and has no methods or properties. There are 7 primitive data types:\r\n * - string\r\n * - number\r\n * - bigint\r\n * - boolean\r\n * - undefined\r\n * - null\r\n * - symbol\r\n *\r\n * Most of the time, a primitive value is represented directly at the lowest level of the language implementation.\r\n *\r\n * All primitives are immutable; that is, they cannot be altered. It is important not to confuse a primitive itself\r\n * with a variable assigned a primitive value. The variable may be reassigned to a new value, but the existing value\r\n * can not be changed in the ways that objects, arrays, and functions can be altered. The language does not offer\r\n * utilities to mutate primitive values.\r\n * @since 0.4.4\r\n * @group Type Identity\r\n * @param value - The value to check whether it's a primitive value\r\n * @example\r\n * ```ts\r\n * isPrimitive(null); // true\r\n * isPrimitive(undefined); // true\r\n * isPrimitive(\"null\"); // true\r\n * isPrimitive(\"undefined\"); // true\r\n * isPrimitive(\"1\"); // true\r\n * isPrimitive(\"aa\"); // true\r\n * isPrimitive(1); // true\r\n * isPrimitive(Number(2)); // true\r\n * isPrimitive(\"\"); // true\r\n * isPrimitive(String(\"\")); // true\r\n * isPrimitive(true); // true\r\n * isPrimitive(false); // true\r\n * isPrimitive(\"true\"); // true\r\n * isPrimitive(\"false\"); // true\r\n * isPrimitive(BigInt(42)); // true\r\n * isPrimitive(Symbol.for(\"Hello\")); // true\r\n *\r\n * isPrimitive(new String(\"aa\")); // false\r\n * isPrimitive(new Date()); // false\r\n * isPrimitive(_dummyFunction); // false\r\n * isPrimitive([]); // false\r\n * isPrimitive(new Array(1)); // false\r\n * isPrimitive(new Boolean(true)); // false\r\n * isPrimitive(new Boolean(false)); // false\r\n * isPrimitive(new Boolean(\"true\")); // false\r\n * isPrimitive(new Boolean(\"false\")); // false\r\n * ```\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function isPrimitive(value: any): value is string | number | bigint | boolean | undefined | symbol | null {\r\n return value === NULL_VALUE || isPrimitiveType(typeof value);\r\n}\r\n\r\n/**\r\n * Identifies whether the provided value is a JavaScript [primitive](https://developer.mozilla.org/en-US/docs/Glossary/Primitive)\r\n * which is when is it not an object and has no methods or properties. There are 6 primitive data types:\r\n * - string\r\n * - number\r\n * - bigint\r\n * - boolean\r\n * - undefined\r\n * - symbol\r\n *\r\n * Most of the time, a primitive value is represented directly at the lowest level of the language implementation.\r\n *\r\n * All primitives are immutable; that is, they cannot be altered. It is important not to confuse a primitive itself\r\n * with a variable assigned a primitive value. The variable may be reassigned to a new value, but the existing value\r\n * can not be changed in the ways that objects, arrays, and functions can be altered. The language does not offer\r\n * utilities to mutate primitive values.\r\n * @since 0.9.6\r\n * @group Type Identity\r\n * @param theType - The type as a string value to be checked whther it's a primitive type, this should be the value\r\n * returned from `typeof value`.\r\n * @example\r\n * ```ts\r\n * isPrimitiveType(null); // false\r\n * isPrimitiveType(undefined); // false\r\n * isPrimitiveType(\"null\"); // false\r\n * isPrimitiveType(\"undefined\"); // false\r\n * isPrimitiveType(\"1\"); // false\r\n * isPrimitiveType(\"aa\"); // false\r\n * isPrimitiveType(1); // false\r\n * isPrimitiveType(Number(2)); // false\r\n * isPrimitiveType(\"\"); // false\r\n * isPrimitiveType(String(\"\")); // false\r\n * isPrimitiveType(true); // false\r\n * isPrimitiveType(false); // false\r\n * isPrimitiveType(\"true\"); // false\r\n * isPrimitiveType(\"false\"); // false\r\n * isPrimitiveType(BigInt(42)); // false\r\n * isPrimitiveType(Symbol.for(\"Hello\")); // false\r\n *\r\n * isPrimitiveType(\"string\"); // true\r\n * isPrimitiveType(\"number\"); // true\r\n * isPrimitiveType(\"boolean\"); // true\r\n * isPrimitiveType(\"undefined\"); // true\r\n * isPrimitiveType(\"symbol\"); // true\r\n * isPrimitiveType(\"bigint\"); // true\r\n * ```\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function isPrimitiveType(theType: string): boolean {\r\n !_primitiveTypes && (_primitiveTypes = [ \"string\", \"number\", \"boolean\", UNDEFINED, \"symbol\", \"bigint\" ]);\r\n\r\n return !!(theType !== OBJECT && _primitiveTypes.indexOf(theType) !== -1);\r\n}\r\n\r\n/**\r\n * Checks to see if the past value is a string value\r\n * @group Type Identity\r\n * @group String\r\n * @param value - The value to check\r\n * @returns\r\n * @example\r\n * ```ts\r\n * isString(\"\"); // true\r\n * isString(\"null\"); // true\r\n * isString(\"undefined\"); // true\r\n * isString(String(\"\")); // true\r\n *\r\n * isString(null); // false\r\n * isString(undefined); // false\r\n * isString(0); // false\r\n * ```\r\n */\r\nexport const isString: (value: any) => value is string = (/*#__PURE__*/_createIs(\"string\"));\r\n\r\n/**\r\n * Checks to see if the past value is a function value\r\n * @group Type Identity\r\n * @param value - The value to check\r\n * @returns\r\n * @example\r\n * ```ts\r\n * function myFunction() { }\r\n * isFunction(null); // false\r\n * isFunction(undefined); // false\r\n * isFunction(\"null\"); // false\r\n * isFunction(\"undefined\"); // false\r\n * isFunction(\"1\"); // false\r\n * isFunction(\"aa\"); // false\r\n * isFunction(new Date()); // false\r\n * isFunction(1); // false\r\n * isFunction(\"\"); // false\r\n * isFunction(myFunction); // true\r\n * isFunction([]); // false\r\n * isFunction(new Array(1)); // false\r\n * ```\r\n */\r\nexport const isFunction: (value: any) => value is Function = (/*#__PURE__*/_createIs(FUNCTION));\r\n\r\n/**\r\n * Checks to see if the past value is an object value\r\n * @group Type Identity\r\n * @group Object\r\n * @typeParam T - The object type, defaults to any\r\n * @param value - The value to check\r\n * @returns\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function isObject(value: T): value is T {\r\n if (!value && isNullOrUndefined(value)) {\r\n return false;\r\n }\r\n\r\n return !!value && typeof value === OBJECT;\r\n}\r\n\r\n/**\r\n * Checks if the type of value is an Array.\r\n *\r\n * @group Type Identity\r\n * @group Array\r\n * @param {any} arg - Value to be checked.\r\n * @return {boolean} True if the value is a Array, false otherwise.\r\n * @example\r\n * ```ts\r\n * import { isArray, isObject } from \"@nevware21/ts-utils\";\r\n *\r\n * function performAction(value: any) {\r\n * if (isArray(value) || isObject(value)) {\r\n * // Do something\r\n * } else {\r\n * // Do something else\r\n * }\r\n * }\r\n * ```\r\n */\r\nexport const isArray: (arg: any) => arg is Array = (/* #__PURE__*/_pureRef(ArrCls as any, \"isArray\"));\r\n\r\n/**\r\n * Check if an object is of type Date\r\n * @group Type Identity\r\n * @example\r\n * ```ts\r\n * import { isDate } from \"@nevware21/ts-utils\";\r\n *\r\n * let _theDate = null;\r\n *\r\n * function getSetDate(newDate?: any) {\r\n * _theDate = isDate(newDate) ? newDate : new Date();\r\n *\r\n * return _theDate;\r\n * }\r\n * ```\r\n */\r\nexport const isDate: (value: any) => value is Date = (/*#__PURE__*/_createObjIs(\"Date\"));\r\n\r\n/**\r\n * Checks if the type of value is a number.\r\n * @group Type Identity\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a number, false otherwise.\r\n */\r\nexport const isNumber: (value: any) => value is number = (/*#__PURE__*/_createIs(\"number\"));\r\n\r\n/**\r\n * Checks if the type of value is a boolean.\r\n * @group Type Identity\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a boolean, false otherwise.\r\n */\r\nexport const isBoolean: (value: any) => value is boolean = (/*#__PURE__*/_createIs(\"boolean\"));\r\n\r\n/**\r\n * Determines if a value is a regular expression object.\r\n * @group Type Identity\r\n * @param {*} value Reference to check.\r\n * @returns {boolean} True if `value` is a `RegExp`.\r\n */\r\nexport const isRegExp: (value: any) => value is RegExp = (/*#__PURE__*/_createObjIs(\"RegExp\"));\r\n\r\n/**\r\n * Checks if the type of value is a File object.\r\n * @group Type Identity\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a File, false otherwise.\r\n */\r\nexport const isFile: (value: any) => value is File = (/*#__PURE__*/_createObjIs(\"File\"));\r\n\r\n/**\r\n * Checks if the type of value is a FormData object.\r\n * @group Type Identity\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a FormData, false otherwise.\r\n */\r\nexport const isFormData: (value: any) => value is FormData = (/*#__PURE__*/_createObjIs(\"FormData\"));\r\n\r\n/**\r\n * Checks if the type of value is a Blob object.\r\n * @group Type Identity\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a Blob, false otherwise.\r\n */\r\nexport const isBlob: (value: any) => value is Blob = (/*#__PURE__*/_createObjIs(\"Blob\"));\r\n\r\n/**\r\n * Checks if the type of value is a ArrayBuffer object.\r\n * @group Type Identity\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a ArrayBuffer, false otherwise.\r\n */\r\nexport const isArrayBuffer: (value: any) => value is ArrayBuffer = (/*#__PURE__*/_createObjIs(\"ArrayBuffer\"));\r\n\r\n/**\r\n * Checks if the type of value is a Error object.\r\n * @group Type Identity\r\n * @group Error\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a Error, false otherwise.\r\n */\r\nexport const isError: (value: any) => value is Error = (/*#__PURE__*/_createObjIs(\"Error\"));\r\n\r\n/**\r\n * Checks if the type of value is a PromiseLike instance (contains a then function).\r\n * @group Type Identity\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a PromiseLike, false otherwise.\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function isPromiseLike(value: any): value is PromiseLike {\r\n return !!(value && value.then && isFunction(value.then));\r\n}\r\n\r\n/**\r\n * Checks if the type of value is a PromiseLike instance (contains a then function).\r\n * This is an alias for {@link isPromiseLike}.\r\n * @group Type Identity\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a PromiseLike, false otherwise.\r\n */\r\nexport const isThenable: (value: any) => value is PromiseLike = isPromiseLike;\r\n\r\n/**\r\n * Checks if the type of value is a Promise instance (contains then and catch functions).\r\n * @group Type Identity\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a Promise, false otherwise.\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function isPromise(value: any): value is Promise {\r\n return !!(value && value.then && value.catch && isFunction(value.then) && isFunction((value as any).catch));\r\n}\r\n\r\n/**\r\n * Checks if the type of value does not evaluate to true value, handling some special\r\n * case usages of Boolean(true/false) and new Boolean(true/false).\r\n * @group Value Check\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is not truthy, false otherwise.\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function isNotTruthy(value: any) {\r\n return !value || !isTruthy(value);\r\n}\r\n\r\n/**\r\n * Checks if the type of value evaluates to true value, handling some special\r\n * case usages of Boolean(true/false) and new Boolean(true/false).\r\n * @group Value Check\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is not truthy, false otherwise.\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function isTruthy(value: any) {\r\n // Objects created with no prototype (Object.create(null)) cannot be converted to primitives\r\n // Which causes this code to throw, additionally just using !! also fails for Boolean objects\r\n // !!(new Boolean(false)) evaluates to true\r\n return !(!value || safeGet(() => !(value && (0 + value)), !value));\r\n //return !(!value || !(value && (0 + value)));\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\n/**\r\n * Infers the return type of the specified function\r\n * @since 0.10.5\r\n * @group Safe\r\n * @typeParam T - The type of the function which to infer the return type\r\n */\r\nexport type SafeReturnType any> = T extends (...args: any) => infer R ? R : any\r\n\r\n/**\r\n * Defines the return value of the {@link safe} function, which is an object with either a value or an error\r\n * @since 0.10.5\r\n * @group Safe\r\n * @typeParam T - The type of the function to call\r\n * @typeParam R - The return type of the function\r\n */\r\nexport interface ISafeReturn any> {\r\n /**\r\n * The value returned by the function call\r\n */\r\n v?: SafeReturnType;\r\n\r\n /**\r\n * The error thrown by the function call\r\n */\r\n e?: Error;\r\n}\r\n\r\n/**\r\n * Call the specified function with zero or more individual arguments, the call will be wrapped in a try / catch\r\n * block and the result returned wrapped in an {@link ISafeReturn} instance. If the function call throws an\r\n * exception the {@link ISafeReturn.e error} property will contain the exception otherwise the {@link ISafeReturn.v value}\r\n * property will contain the value returned from the function.\r\n * @since 0.10.5\r\n * @group Safe\r\n * @param func - The function to call\r\n * @param argArray - An array of the arguments to pass to the function\r\n * @returns The return value of the function or undefined if an exception is thrown\r\n * @example\r\n * ```ts\r\n * let result = safe((value: string) => {\r\n * return JSON.parse(value);\r\n * }, [\"{ invalid: json value\"]);\r\n *\r\n * // result.e instanceof SyntaxError\r\n *\r\n * let result2 = safe((value: string) => {\r\n * return JSON.parse(value);\r\n * }, [\"{ valid: json value\"]);\r\n *\r\n * // result2.v === { valid: \"json value\" }\r\n */\r\nexport function safe any>(func: F, argArray?: any[]): ISafeReturn {\r\n try {\r\n return {\r\n v: func.apply(this, argArray)\r\n };\r\n } catch (e) {\r\n return { e };\r\n }\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { safe } from \"./safe\";\r\n\r\n/**\r\n * Function to safely execute a callback function, if the function throws the provided default\r\n * value will be returned.\r\n * @since 0.9.5\r\n * @group Safe\r\n * @param cb - Callback function be wrapped with an exception\r\n * @param defValue - The default value to return when an exception is thrown\r\n * @returns The result of the callback function or the default if an exception occurred calling the callback\r\n * function.\r\n * @example\r\n * ```ts\r\n * let theExpression = \"{ invalid: json value\";\r\n *\r\n * let result = safeGet(() => {\r\n * return JSON.parse(theExpression);\r\n * }, {});\r\n *\r\n * // result === {};\r\n * ```\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function safeGet(cb: () => T, defValue: T): T {\r\n let result = safe(cb);\r\n \r\n return result.e ? defValue : result.v;\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { ObjClass } from \"../internal/constants\";\r\nimport { _pureRef } from \"../internal/treeshake_helpers\";\r\n\r\n/**\r\n * The objGetOwnPropertyDescriptor() method returns an object describing the configuration of a specific property on\r\n * a given object (that is, one directly present on an object and not in the object's prototype chain). The object\r\n * returned is mutable but mutating it has no effect on the original property's configuration.\r\n * @since 0.4.3\r\n * @group Object\r\n * @param target - Object that contains the property.\r\n * @param prop - Name of the property.\r\n * @returns A property descriptor of the given property if it exists on the object, otherwise undefined.\r\n *\r\n * @example\r\n * ```ts\r\n * o = {};\r\n * objDefineProp(o, 'qux', {\r\n * value: 8675309,\r\n * writable: false,\r\n * enumerable: false\r\n * });\r\n * d = objGetOwnPropertyDescriptor(o, 'qux');\r\n * // d is {\r\n * // value: 8675309,\r\n * // writable: false,\r\n * // enumerable: false,\r\n * // configurable: false\r\n * // }\r\n *\r\n * objGetOwnPropertyDescriptor('foo', 0);\r\n * // TypeError: \"foo\" is not an object // ES5 code\r\n *\r\n * objGetOwnPropertyDescriptor('foo', 0);\r\n * // Object returned by ES2015 code: {\r\n * // configurable: false,\r\n * // enumerable: true,\r\n * // value: \"f\",\r\n * // writable: false\r\n * // }\r\n * ```\r\n * Note: In ES5, if the first argument to this method is not an object (a primitive), then it will cause a TypeError. In ES2015, a non-object first argument will be coerced to an object at first.\r\n */\r\nexport const objGetOwnPropertyDescriptor: (target: any, prop: PropertyKey) => PropertyDescriptor | undefined = (/* #__PURE__ */_pureRef(ObjClass as any, \"getOwnPropertyDescriptor\"));","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { CALL, ObjProto } from \"../internal/constants\";\r\n\r\n/**\r\n * The objHasOwnProperty() method returns a boolean indicating whether the object\r\n * has the specified property as its own property (as opposed to inheriting it).\r\n *\r\n * The objHasOwnProperty() method returns true if the specified property is a direct\r\n * property of the object — even if the value is null or undefined. The method returns\r\n * false if the property is inherited, or has not been declared at all. Unlike the in\r\n * operator, this method does not check for the specified property in the object's\r\n * prototype chain.\r\n *\r\n * The method can be called on most JavaScript objects, because most objects descend\r\n * from Object, and hence inherit its methods. For example Array is an Object, so you\r\n * can use objHasOwnProperty() method to check whether an index exists:\r\n * @group Object\r\n * @param obj - The object being evaluated\r\n * @param prop - The String or Symbol of the property to test\r\n * @returns `true` if the object has the specified property as own property; otherwise `false`\r\n * @example\r\n * ```ts\r\n * let example = {};\r\n * objHasOwnProperty(example, 'prop'); // false\r\n *\r\n * example.prop = 'exists';\r\n * objHasOwnProperty(example, 'prop'); // true - 'prop' has been defined\r\n *\r\n * example.prop = null;\r\n * objHasOwnProperty(example, 'prop'); // true - own property exists with value of null\r\n *\r\n * example.prop = undefined;\r\n * objHasOwnProperty(example, 'prop'); // true - own property exists with value of undefined\r\n * ```\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function objHasOwnProperty(obj: T, prop: PropertyKey): boolean {\r\n return !!obj && ObjProto.hasOwnProperty[CALL](obj, prop);\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { ObjClass } from \"../internal/constants\";\r\nimport { _pureAssign, _pureRef } from \"../internal/treeshake_helpers\";\r\nimport { objGetOwnPropertyDescriptor } from \"./get_own_prop_desc\";\r\nimport { objHasOwnProperty } from \"./has_own_prop\";\r\n\r\n/**\r\n * The objHasOwn() method returns a boolean indicating whether the object\r\n * has the specified property as its own property (as opposed to inheriting it).\r\n * If the property is inherited, or does not exist, the method returns false.\r\n *\r\n * The objHasOwn() method returns true if the specified property is a direct property\r\n * of the object — even if the property value is null or undefined. The method returns\r\n * false if the property is inherited, or has not been declared at all. Unlike the in operator,\r\n * this method does not check for the specified property in the object's prototype chain.\r\n *\r\n * It is recommended over {@link objHasOwnProperty} () because it works for objects created using\r\n * objCreate(null) and with objects that have overridden the inherited hasOwnProperty() method.\r\n * While it is possible to workaround these problems by calling Object.prototype.hasOwnProperty()\r\n * on an external object, Object.hasOwn() is more intuitive.\r\n *\r\n * @since 0.4.3\r\n * @group Object\r\n * @param obj - The object being evaluated\r\n * @param prop - The String or Symbol of the property to test\r\n * @returns `true` if the object has the specified property as own property; otherwise `false`\r\n * @example\r\n * ```ts\r\n * let example = {};\r\n * objHasOwn(example, 'prop'); // false\r\n *\r\n * example.prop = 'exists';\r\n * objHasOwn(example, 'prop'); // true - 'prop' has been defined\r\n *\r\n * example.prop = null;\r\n * objHasOwn(example, 'prop'); // true - own property exists with value of null\r\n *\r\n * example.prop = undefined;\r\n * objHasOwn(example, 'prop'); // true - own property exists with value of undefined\r\n * ```\r\n */\r\nexport const objHasOwn: (obj: T, prop: PropertyKey) => boolean = (/*#__PURE__*/_pureAssign((/* #__PURE__ */_pureRef(ObjClass as any, \"hasOwn\")), polyObjHasOwn));\r\n\r\n/**\r\n * The polyObjHasOwn() method is a polyfill for {@link objHasOwn} when the native\r\n * [Object.hasOwnreturns](https://caniuse.com/?search=hasOwn) is not supported, it returns a\r\n * boolean indicating whether the object has the specified property as its own property (as\r\n * opposed to inheriting it). If the property is inherited, or does not exist, the method\r\n * returns false.\r\n *\r\n * The objHasOwn() method returns true if the specified property is a direct property\r\n * of the object — even if the property value is null or undefined. The method returns\r\n * false if the property is inherited, or has not been declared at all. Unlike the in operator,\r\n * this method does not check for the specified property in the object's prototype chain.\r\n *\r\n * It is recommended over objHasOwnProperty() because it works for objects created using\r\n * objCreate(null) and with objects that have overridden the inherited hasOwnProperty() method.\r\n * While it is possible to workaround these problems by calling Object.prototype.hasOwnProperty()\r\n * on an external object, Object.hasOwn() is more intuitive.\r\n *\r\n * @since 0.4.3\r\n * @group Object\r\n * @group Polyfill\r\n * @param obj - The object being evaluated\r\n * @param prop - The String or Symbol of the property to test\r\n * @returns `true` if the object has the specified property as own property; otherwise `false`\r\n * @example\r\n * ```ts\r\n * let example = {};\r\n * polyObjHasOwn(example, 'prop'); // false\r\n *\r\n * example.prop = 'exists';\r\n * polyObjHasOwn(example, 'prop'); // true - 'prop' has been defined\r\n *\r\n * example.prop = null;\r\n * polyObjHasOwn(example, 'prop'); // true - own property exists with value of null\r\n *\r\n * example.prop = undefined;\r\n * polyObjHasOwn(example, 'prop'); // true - own property exists with value of undefined\r\n * ```\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function polyObjHasOwn(obj: T, prop: PropertyKey): boolean {\r\n return objHasOwnProperty(obj, prop) || !!objGetOwnPropertyDescriptor(obj, prop)\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { isObject } from \"../helpers/base\";\r\nimport { CALL } from \"../internal/constants\";\r\nimport { objHasOwn } from \"./has_own\";\r\n\r\n/**\r\n * Calls the provided `callbackFn` function once for each key in an object. This is equivelent to `arrForEach(Object.keys(theObject), callbackFn)` or\r\n * if not using the array helper `Object.keys(theObject).forEach(callbackFn)` except that this helper avoid creating a temporary of the object\r\n * keys before iterating over them and like the `arrForEach` helper you CAN stop or break the iteration by returning -1 from the `callbackFn` function.\r\n * @group Object\r\n * @typeParam T - The object type\r\n * @param callbackfn A function that accepts up to two arguments, the key name and the current value of the property represented by the key.\r\n * @param thisArg [Optional] An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, null or undefined\r\n * the object will be used as the this value.\r\n * @example\r\n * ```ts\r\n * function performAction(target: T, source: any) {\r\n * if (!isNullOrUndefined(source)) {\r\n * objForEachKey(source, (key, value) => {\r\n * // Set the target with a reference to the same value with the same name\r\n * target[key] = value;\r\n * });\r\n * }\r\n *\r\n * return target;\r\n * }\r\n * ```\r\n */\r\nexport function objForEachKey(theObject: T, callbackfn: (key: string, value: T[keyof T]) => void | number, thisArg?: any): void {\r\n if (theObject && isObject(theObject)) {\r\n for (const prop in theObject) {\r\n if (objHasOwn(theObject, prop)) {\r\n if (callbackfn[CALL](thisArg || theObject, prop, theObject[prop]) === -1) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { ObjClass } from \"../internal/constants\";\r\nimport { isFunction, isStrictUndefined } from \"../helpers/base\";\r\nimport { objForEachKey } from \"./for_each_key\";\r\nimport { ILazyValue } from \"../helpers/lazy\";\r\nimport { objGetOwnPropertyDescriptor } from \"./get_own_prop_desc\";\r\nimport { _pureRef } from \"../internal/treeshake_helpers\";\r\n\r\n/**\r\n * Definition of the Property Descriptor mappings for the objDefine functions.\r\n * If a descriptor has neither of value, writable, get and set keys, it is treated as a data descriptor.\r\n * If a descriptor has both [value or writable] and [get or set] keys, an exception is thrown.\r\n * Bear in mind that these attributes are not necessarily the descriptor's own properties. Inherited\r\n * properties will be considered as well. In order to ensure these defaults are preserved, you might\r\n * freeze existing objects in the descriptor object's prototype chain upfront, specify all options\r\n * explicitly, or point to null with {@link objCreate}(null).\r\n * @since 0.6.0\r\n * @group Object\r\n */\r\nexport interface ObjDefinePropDescriptor {\r\n /**\r\n * Identifies if this property should be configurable (true) when this value is set to false,\r\n * - the type of this property cannot be changed between data property and accessor property, and\r\n * - the property may not be deleted, and\r\n * - other attributes of its descriptor cannot be changed (however, if it's a data descriptor with writable: true,\r\n * the value can be changed, and writable can be changed to false).\r\n * Defaults to true.\r\n */\r\n c?: boolean;\r\n\r\n /**\r\n * Identifies if this property will be visible during enumeration of the properties on the corresponding object.\r\n * Defaults to true.\r\n */\r\n e?: boolean;\r\n\r\n /**\r\n * __data descriptor__\r\n * The value associated with the property. Can be any valid JavaScript value (number, object, function, etc.).\r\n * Defaults to undefined.\r\n */\r\n v?: V;\r\n\r\n /**\r\n * A Lazy value instance which will be used to return the value, this will be wrapped in a getter function.\r\n * @since 0.9.4\r\n */\r\n l?: ILazyValue;\r\n\r\n /**\r\n * true if the value associated with the property may be changed with an assignment operator. Defaults to false.\r\n */\r\n w?: boolean;\r\n\r\n /**\r\n * A function which serves as a getter for the property, or undefined if there is no getter. When the property\r\n * is accessed, this function is called without arguments and with this set to the object through which the\r\n * property is accessed (this may not be the object on which the property is defined due to inheritance). The\r\n * return value will be used as the value of the property. Defaults to undefined.\r\n */\r\n g?(): V;\r\n\r\n /**\r\n * A function which serves as a setter for the property, or undefined if there is no setter. When the property\r\n * is assigned, this function is called with one argument (the value being assigned to the property) and with\r\n * this set to the object through which the property is assigned. Defaults to undefined.\r\n * @param value\r\n */\r\n s?(value: V): void;\r\n}\r\n\r\n/**\r\n * An object whose keys represent the names of properties to be defined or modified and whose values are objects\r\n * describing those properties. Each value in props must be either a data descriptor or an accessor descriptor;\r\n * it cannot be both (see {@link ObjDefinePropDescriptor} for more details).\r\n * @since 0.6.0\r\n * @group Object\r\n */\r\nexport type ObjDefinePropDescriptorMap = {\r\n [key: PropertyKey]: ObjDefinePropDescriptor\r\n};\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n * Mapping from ObjDefinePropDescriptor key to PropertyDescriptor key\r\n */\r\nconst propMap: { [key in keyof ObjDefinePropDescriptor]: keyof PropertyDescriptor } = {\r\n e: \"enumerable\",\r\n c: \"configurable\",\r\n v: \"value\",\r\n w: \"writable\",\r\n g: \"get\",\r\n s: \"set\"\r\n};\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n * Helper to convert ObjDefinePropDescriptor into PropertyDescriptor\r\n * @param value - The prop descriptor to convert\r\n * @returns\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nfunction _createProp(value: ObjDefinePropDescriptor): PropertyDescriptor {\r\n let prop: PropertyDescriptor = {};\r\n prop[propMap[\"c\"]] = true;\r\n prop[propMap[\"e\"]] = true;\r\n\r\n if (value.l) {\r\n // Asign a getter function to return the value when requested\r\n prop.get = () => value.l.v;\r\n\r\n // If it has a setter then expose it as well\r\n let desc = objGetOwnPropertyDescriptor(value.l, \"v\");\r\n if (desc && desc.set) {\r\n prop.set = (newValue: any) => {\r\n value.l.v = newValue;\r\n };\r\n }\r\n }\r\n\r\n objForEachKey(value, (key: keyof ObjDefinePropDescriptor, value) => {\r\n prop[propMap[key]] = isStrictUndefined(value) ? prop[propMap[key]] : value;\r\n });\r\n\r\n return prop;\r\n}\r\n\r\n/**\r\n * Defines a new property directly on an object, or modifies an existing property on an object, and returns the object.\r\n * This is a wrapper for [Object.defineProperty](https://developer.mozilla.org/en-US/docs/web/javascript/reference/global_objects/object/defineproperty)\r\n *\r\n * This method allows a precise addition to or modification of a property on an object. Normal property addition through\r\n * assignment creates properties which show up during property enumeration (for...in loop or objKeys method), whose\r\n * values may be changed, and which may be deleted. This method allows these extra details to be changed from their\r\n * defaults. By default, properties added using objDefineProp() are not writable, not enumerable, and not configurable.\r\n *\r\n * Property descriptors present in objects come in two main flavors: data descriptors and accessor descriptors. A data\r\n * descriptor is a property that has a value, which may or may not be writable. An accessor descriptor is a property\r\n * described by a getter-setter pair of functions. A descriptor must be one of these two flavors; it cannot be both.\r\n *\r\n * This is an alias for Object.defineProperty\r\n * @group Object\r\n * @param target - The object on which to define the property.\r\n * @param key - The name or Symbol of the property to be defined or modified.\r\n * @param descriptor - The descriptor for the property being defined or modified.\r\n * @returns The object that was passed to the function with the new or updated property.\r\n */\r\nexport const objDefineProp: (target: T, key: PropertyKey, descriptor: PropertyDescriptor & ThisType) => T = (/*#__PURE__*/_pureRef(ObjClass as any, \"defineProperty\"));\r\n\r\n/**\r\n * The objDefineProperties() method defines new or modifies existing properties directly on an object, returning the object.\r\n * This is a wrapper for [Object.defineProperties](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperties)\r\n * @since 0.6.0\r\n * @group Object\r\n * @param target - The object on which to define or modify properties.\r\n * @param props - An object whose keys represent the names of properties to be defined or modified and whose values are\r\n * objects describing those properties. Each value in props must be either a data descriptor or an accessor descriptor;\r\n * it cannot be both (see {@link ObjDefinePropDescriptorMap} for more details).\r\n * @returns\r\n */\r\nexport const objDefineProperties: (target: T, props: PropertyDescriptorMap & ThisType) => T = (/*#__PURE__*/_pureRef(ObjClass as any, \"defineProperties\"));\r\n\r\n/**\r\n * Try to define a get object property accessor for the target object, if a function is past as the value this will\r\n * be assumed to be a getter function and NOT the value.\r\n * @deprecated It is recommended that you use {@link objDefine} instead {@link objDefineGet} or {@link objDefineAccessors}\r\n * as it provides a deterministic way for identifying whether the value is a value or a function rather than wrapping any\r\n * function value in another function.\r\n * @group Object\r\n * @param target - The object on which to define the property.\r\n * @param key - The name of the property to be defined or modified\r\n * @param value - The value or a function that returns the value\r\n * @param configurable - Can the value be changed, defaults to true.\r\n * @param enumerable - Should this get property be enumerable, defaults to true.\r\n * @returns The object that was passed to the function\r\n */\r\nexport function objDefineGet(target: T, key: PropertyKey, value: (() => V) | V, configurable?: boolean, enumerable?: boolean): T {\r\n return objDefineProp(target, key, _createProp({\r\n e: enumerable,\r\n c: configurable,\r\n [isFunction(value) ? \"g\" : \"v\"]: value\r\n }));\r\n}\r\n\r\n/**\r\n * Try to define get/set object property accessors for the target object/prototype, this will provide compatibility with\r\n * existing API definition when run within an ES5+ container that supports accessors but still enable the code to be loaded\r\n * and executed in an ES3 container, providing basic IE8 compatibility.\r\n * @deprecated It is recommended that you use {@link objDefine} instead {@link objDefineAccessors} as this internally creates\r\n * the {@link ObjDefinePropDescriptor} definition based on your provided arguments. And only using a minimum set of functions\r\n * reduces your overall bundle size.\r\n * @group Object\r\n * @param target - The object on which to define the property.\r\n * @param prop - The name of the property to be defined or modified.\r\n * @param getProp - The getter function to wire against the getter.\r\n * @param setProp - The setter function to wire against the setter.\r\n * @param configurable - Can the value be changed, defaults to true\r\n * @param enumerable - Should this get property be enumerable, defaults to true.\r\n * @returns The object that was passed to the function\r\n */\r\nexport function objDefineAccessors(target: T, prop: PropertyKey, getProp?: (() => V) | null, setProp?: ((v: V) => void) | null, configurable?: boolean, enumerable?: boolean): T {\r\n let desc: ObjDefinePropDescriptor = {\r\n e: enumerable,\r\n c: configurable\r\n };\r\n\r\n if (getProp) {\r\n desc.g = getProp;\r\n }\r\n\r\n if (setProp) {\r\n desc.s = setProp;\r\n }\r\n \r\n return objDefineProp(target, prop, _createProp(desc));\r\n}\r\n\r\n/**\r\n * The objDefine() method defines a new or modifies an existing single property accessors for the target object based\r\n * on the configuration defined for the propDesc argument of type {@link ObjDefinePropDescriptor}. This will call\r\n * {@link objDefineProp} after creating the required PropertyDescriptor populating defaults for the propDesc values.\r\n * Note, the default values (true) for `configurable` and `enumerable` are different from the defaults provided by objDefineProp.\r\n * @since 0.6.0\r\n * @group Object\r\n * @param target - The object on which to define the property.\r\n * @param key - The name of the property to be defined or modified\r\n * @param propDesc - An object which defines the Property Descriptor mappings for the mapping.\r\n * @returns The target object.\r\n */\r\nexport function objDefine(target: T, key: keyof T, propDesc: ObjDefinePropDescriptor): T {\r\n return objDefineProp(target, key, _createProp(propDesc));\r\n}\r\n\r\n/**\r\n * The objDefineProps() method defines new or modifies existing properties directly for the target object using the keys\r\n * and configuration from the propDescMap argument. This will call {@link objDefineProperties} after creating the required\r\n * PropertyDescriptorMap from the propDescMap values.\r\n * Note, the default values (true) for `configurable` and `enumerable` are different from the defaults provided by objDefineProperties.\r\n * @since 0.6.0\r\n * @group Object\r\n * @param target - The object on which to define or modify properties.\r\n * @param propDescMap - An object whose keys represent the names of properties to be defined or modified and whose values are\r\n * objects describing those properties. Each value in props must be either a data descriptor or an accessor descriptor;\r\n * it cannot be both (see {@link ObjDefinePropDescriptorMap} for more details).\r\n * @returns The target object.\r\n */\r\nexport function objDefineProps(target: T, propDescMap: ObjDefinePropDescriptorMap) {\r\n let props: PropertyDescriptorMap = {};\r\n\r\n objForEachKey(propDescMap, (key, value: ObjDefinePropDescriptor) => {\r\n props[key] = _createProp(value);\r\n });\r\n\r\n return objDefineProperties(target, props);\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { objDefineProp } from \"../object/define\";\r\nimport { objForEachKey } from \"../object/for_each_key\";\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n * Internal constant enum used to identify the mapping values for the _createMap function\r\n */\r\nexport const enum eMapValues {\r\n Key = 0,\r\n Value = 1\r\n}\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n * Internal Helper function to create a key and value mapped representation of the values\r\n * @param values - The source values\r\n * @param keyType - Identifies the value to populate against the key\r\n * @param valueType - Identifies the value to populate against the value\r\n * @param completeFn - The function to call to complete the map (used to freeze the instance)\r\n * @param writable - Flag to indicate if the map should be writable\r\n * @returns\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function _createKeyValueMap(values: any, keyType: eMapValues, valueType: eMapValues, completeFn?: (value: T) => T, writable?: boolean) {\r\n let theMap: any = {};\r\n objForEachKey(values, (key, value) => {\r\n _assignMapValue(theMap, key, keyType ? value : key, writable);\r\n _assignMapValue(theMap, value, valueType ? value : key, writable);\r\n });\r\n\r\n return completeFn ? completeFn(theMap) : theMap;\r\n}\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n * Internal Helper function to assign a key and value to the map\r\n * @param theMap - The map to assign the key and value to\r\n * @param key - The key to assign\r\n * @param value - The value to assign\r\n * @param writable - Flag to indicate if the map should be writable\r\n */\r\nexport function _assignMapValue(theMap: any, key: any, value: any, writable?: boolean) {\r\n objDefineProp(theMap, key, {\r\n value: value,\r\n enumerable: true,\r\n writable: !!writable\r\n });\r\n}","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { StrCls } from \"../internal/constants\";\r\nimport { _pureAssign } from \"../internal/treeshake_helpers\";\r\n\r\n/**\r\n * The asString() method returns a string representing the value by\r\n * explicitly using `String(`value`)`.\r\n *\r\n * @since 0.4.3\r\n * @group String\r\n * @group Conversion\r\n * @group Value\r\n * @param value - The value to get a string representation of\r\n * @example\r\n * ```ts\r\n * const arr = [ 1, 2, 3];\r\n * asString(arr); // \"1,2,3\"\r\n * asString(null); // \"null\"\r\n * asString(undefined); // \"undefined\"\r\n * asString(42); // \"42\"\r\n * asString(Symbol.for(\"Hello\")); // \"Symbol(Hello)\"\r\n * ```\r\n */\r\nexport const asString: (value: any) => string = (/* #__PURE__ */_pureAssign(StrCls));\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { CALL, EMPTY, NULL_VALUE, ObjProto, TO_STRING, UNDEF_VALUE } from \"../internal/constants\";\r\nimport { asString } from \"../string/as_string\";\r\n\r\nconst ERROR_TYPE = \"[object Error]\";\r\n\r\n/**\r\n * Returns string representation of an object suitable for diagnostics logging.\r\n * @group Error\r\n * @group Diagnostic\r\n * @param object - The object to be converted to a diagnostic string value\r\n * @param format - Identifies whether the JSON value should be formated\r\n * - `true` - Format with 4 spaces\r\n * - 'number' - The number of spaces to format with\r\n * - `false` (or not Truthy) - Do not format\r\n * @returns A string representation of the object suitable for diagnostics logging\r\n * @example\r\n * ```ts\r\n * let obj = { a: 1, b: \"Hello\", c: { d: 2, e: \"Darkness\" } };\r\n *\r\n * let objStr = dumpObj(obj);\r\n * // objStr === \"[object Object]: { a: 1, b: \"Hello\", c: { d: 2, e: \"Darkness\" } }\"\r\n *\r\n * let objStrFmt = dumpObj(obj, true);\r\n * // objStrFmt === \"[object Object]: {\\n a: 1,\\n b: \"Hello\",\\n c: {\\n d: 2,\\n e: \"Darkness\"\\n }\\n}\"\r\n *\r\n * let objStrFmt2 = dumpObj(obj, 2);\r\n * // objStrFmt2 === \"[object Object]: {\\n a: 1,\\n b: \"Hello\",\\n c: {\\n d: 2,\\n e: \"Darkness\"\\n }\\n}\"\r\n *\r\n * let objStrFmt3 = dumpObj(obj, 0);\r\n * // objStrFmt3 === \"[object Object]: { a: 1, b: \"Hello\", c: { d: 2, e: \"Darkness\" } }\"\r\n *\r\n * let objStrFmt4 = dumpObj(obj, false);\r\n * // objStrFmt4 === \"[object Object]: { a: 1, b: \"Hello\", c: { d: 2, e: \"Darkness\" } }\"\r\n *\r\n * let objStrFmt5 = dumpObj(obj, null);\r\n * // objStrFmt5 === \"[object Object]: { a: 1, b: \"Hello\", c: { d: 2, e: \"Darkness\" } }\"\r\n *\r\n * let objStrFmt6 = dumpObj(obj, undefined);\r\n * // objStrFmt6 === \"[object Object]: { a: 1, b: \"Hello\", c: { d: 2, e: \"Darkness\" } }\"\r\n *\r\n * let objStrFmt7 = dumpObj(obj, \"\");\r\n * // objStrFmt7 === \"[object Object]: { a: 1, b: \"Hello\", c: { d: 2, e: \"Darkness\" } }\"\r\n *\r\n * let err = new Error(\"Hello Darkness\");\r\n * let errStr = dumpObj(err);\r\n * // errStr === \"[object Error]: { stack: 'Error: Hello Darkness\\n at :1:13', message: 'Hello Darkness', name: 'Error'\"\r\n *\r\n * let errStrFmt = dumpObj(err, true);\r\n * // errStrFmt === \"[object Error]: {\\n stack: \"Error: Hello Darkness\\n at :1:13\",\\n message: \"Hello Darkness\",\\n name: \"Error\"\\n}\"\r\n *\r\n * let errStrFmt2 = dumpObj(err, 2);\r\n * // errStrFmt2 === \"[object Error]: {\\n stack: \"Error: Hello Darkness\\n at :1:13\",\\n message: \"Hello Darkness\",\\n name: \"Error\"\\n}\"\r\n *\r\n * let errStrFmt3 = dumpObj(err, 0);\r\n * // errStrFmt3 === \"[object Error]: { stack: \"Error: Hello Darkness\\n at :1:13\", message: \"Hello Darkness\", name: \"Error\" }\"\r\n *\r\n * ```\r\n * @see {@link dumpObj}\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function dumpObj(object: any, format?: boolean | number): string {\r\n let propertyValueDump = EMPTY;\r\n const objType = ObjProto[TO_STRING][CALL](object);\r\n if (objType === ERROR_TYPE) {\r\n object = { stack: asString(object.stack), message: asString(object.message), name: asString(object.name) };\r\n }\r\n\r\n try {\r\n propertyValueDump = JSON.stringify(object, NULL_VALUE, format ? (((typeof format as unknown) === \"number\") ? format as number : 4) : UNDEF_VALUE);\r\n propertyValueDump = (propertyValueDump ? propertyValueDump.replace(/\"(\\w+)\"\\s*:\\s{0,1}/g, \"$1: \") : NULL_VALUE) || asString(object);\r\n } catch(e) {\r\n // Unable to convert object (probably circular)\r\n propertyValueDump = \" - \" + dumpObj(e, format);\r\n }\r\n\r\n return objType + \": \" + propertyValueDump;\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\n/**\r\n * Throw an error exception with the specified optional message\r\n * @group Error\r\n * @param message\r\n */\r\nexport function throwError(message?: string): never {\r\n throw new Error(message);\r\n}\r\n\r\n/**\r\n * Throw a type error with the specified optional message\r\n * @group Error\r\n * @param message\r\n */\r\nexport function throwTypeError(message?: string): never {\r\n throw new TypeError(message);\r\n}\r\n\r\n/**\r\n * Throw a RangeError with the specified optional message\r\n * @group Error\r\n * @param message\r\n */\r\nexport function throwRangeError(message?: string): never {\r\n throw new RangeError(message);\r\n}","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { NULL_VALUE, ObjClass, __PROTO__ } from \"../internal/constants\";\r\nimport { isArray, isObject } from \"../helpers/base\";\r\nimport { objForEachKey } from \"./for_each_key\";\r\nimport { polyObjEntries, polyObjValues } from \"../polyfills/object\";\r\nimport { _pureAssign, _pureRef } from \"../internal/treeshake_helpers\";\r\n\r\nconst _objFreeze = (/* #__PURE__ */_pureRef(ObjClass, \"freeze\"));\r\n\r\nfunction _doNothing(value: T) {\r\n return value;\r\n}\r\n\r\n/*#__NO_SIDE_EFFECTS__*/\r\nfunction _getProto(value: any) {\r\n return value[__PROTO__] || NULL_VALUE;\r\n}\r\n\r\n/**\r\n * The `objAssign()` method copies all enumerable own properties from one or more source objects\r\n * to a target object. It returns the modified target object.\r\n *\r\n * Properties in the target object are overwritten by properties in the sources if they have the\r\n * same key. Later sources' properties overwrite earlier ones.\r\n *\r\n * The objAssign() method only copies enumerable and own properties from a source object to a\r\n * target object. It uses `Get` on the source and `Set` on the target, so it will invoke\r\n * [getters](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get) and\r\n * [setters](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/set).\r\n * Therefore it assigns properties, versus copying or defining new properties. This may make it\r\n * unsuitable for merging new properties into a prototype if the merge sources contain getters.\r\n *\r\n * For copying property definitions (including their enumerability) into prototypes, use\r\n * {@link objGetOwnPropertyDescriptor} and {@link objDefineProp} instead.\r\n *\r\n * Both String and Symbol properties are copied.\r\n *\r\n * In case of an error, for example if a property is non-writable, a TypeError is raised, and\r\n * the target object is changed if any properties are added before the error is raised.\r\n * @group Object\r\n * @example\r\n * ```ts\r\n * const obj = { a: 1 };\r\n * const copy = objAssign({}, obj);\r\n * console.log(copy); // { a: 1 }\r\n *\r\n * const o1 = { a: 1 };\r\n * const o2 = { b: 2 };\r\n * const o3 = { c: 3 };\r\n *\r\n * const obj = objAssign(o1, o2, o3);\r\n * console.log(obj); // { a: 1, b: 2, c: 3 }\r\n * console.log(o1); // { a: 1, b: 2, c: 3 }, target object itself is changed.\r\n * ```\r\n */\r\nexport const objAssign = (/*#__PURE__*/_pureRef(ObjClass, \"assign\"));\r\n\r\n/**\r\n * The `objKeys()` method returns an array of a given object's own enumerable property names, iterated in\r\n * the same order that a normal loop would.\r\n *\r\n * objKeys() returns an array whose elements are strings corresponding to the enumerable properties found\r\n * directly upon object. The ordering of the properties is the same as that given by looping over the\r\n * properties of the object manually.\r\n * @group Object\r\n * @param value - The object to obtain a copy of the keys from\r\n * @returns An array of the properties names for the value object.\r\n * @example\r\n * ```ts\r\n * // simple array\r\n * const arr = ['a', 'b', 'c'];\r\n * console.log(objKeys(arr)); // console: ['0', '1', '2']\r\n *\r\n * // array-like object\r\n * const obj = { 0: 'a', 1: 'b', 2: 'c' };\r\n * console.log(objKeys(obj)); // console: ['0', '1', '2']\r\n *\r\n * // array-like object with random key ordering\r\n * const anObj = { 100: 'a', 2: 'b', 7: 'c' };\r\n * console.log(objKeys(anObj)); // console: ['2', '7', '100']\r\n *\r\n * // getFoo is a property which isn't enumerable\r\n * const myObj = objCreate({}, {\r\n * getFoo: {\r\n * value() { return this.foo; }\r\n * }\r\n * });\r\n * myObj.foo = 1;\r\n * console.log(objKeys(myObj)); // console: ['foo']\r\n * ```\r\n */\r\nexport const objKeys: (value: any) => string[] = (/*#__PURE__*/_pureRef(ObjClass, \"keys\"));\r\n\r\n/**\r\n * Perform a deep freeze on the object and all of it's contained values / properties by recursively calling\r\n * `objFreeze()` on all enumerable properties of the object and on each property returned.\r\n * @group Object\r\n * @param value - the object to be completly frozen.\r\n * @returns The originally passed in object.\r\n */\r\nexport function objDeepFreeze(value: T): T {\r\n if (_objFreeze) {\r\n objForEachKey(value, (key, value) => {\r\n if (isArray(value) || isObject(value)) {\r\n objDeepFreeze(value);\r\n }\r\n });\r\n }\r\n\r\n return objFreeze(value);\r\n}\r\n\r\n/**\r\n * The `objFreeze()` method freezes an object. A frozen object can no longer be changed; freezing an object\r\n * prevents new properties from being added to it, existing properties from being removed, prevents changing the\r\n * enumerability, configurability, or writability of existing properties, and prevents the values of existing\r\n * properties from being changed. In addition, freezing an object also prevents its prototype from being changed.\r\n * `objFreeze()` returns the same object that was passed in.\r\n *\r\n * Nothing can be added to or removed from the properties set of a frozen object. Any attempt to do so will fail,\r\n * either silently or by throwing a TypeError exception (most commonly, but not exclusively, when in strict mode).\r\n *\r\n * For data properties of a frozen object, values cannot be changed, the writable and configurable attributes are\r\n * set to false. Accessor properties (getters and setters) work the same (and still give the illusion that you are\r\n * changing the value). Note that values that are objects can still be modified, unless they are also frozen. As\r\n * an object, an array can be frozen; after doing so, its elements cannot be altered and no elements can be added\r\n * to or removed from the array.\r\n *\r\n * `objFreeze()` returns the same object that was passed into the function. It does not create a frozen copy.\r\n * @group Object\r\n * @param value - The object to freeze.\r\n * @returns The object that was passed to the function.\r\n */\r\nexport const objFreeze: (value: T) => T = (/* #__PURE__*/_pureAssign(_objFreeze, _doNothing));\r\n\r\n/**\r\n * The `objSeal()` method seals an object, preventing new properties from being added to it and marking all\r\n * existing properties as non-configurable. Values of present properties can still be changed as long as they\r\n * are writable.\r\n * @group Object\r\n * @param value - The object which should be sealed.\r\n * @returns The object being sealed.\r\n */\r\nexport const objSeal: (value: T) => T = (/* #__PURE__*/_pureAssign((/* #__PURE__*/_pureRef(ObjClass, \"seal\")), _doNothing));\r\n\r\n/**\r\n * The objGetPrototypeOf() method returns the prototype (i.e. the value of the internal `Prototype` property)\r\n * of the specified value.\r\n * @since 0.4.4\r\n * @group Object\r\n * @param value - The object whose prototype is to be returned, which may be null.\r\n */\r\nexport const objGetPrototypeOf: (value: any) => any = (/* #__PURE__*/_pureAssign((/* #__PURE__*/_pureRef(ObjClass, \"getPrototypeOf\")), _getProto));\r\n\r\n/**\r\n * Returns an array of key/values of the enumerable properties of an object\r\n * @since 0.9.7\r\n * @group Object\r\n * @group ArrayLike\r\n * @param value Object that contains the properties and methods.\r\n * @example\r\n * ```ts\r\n * objEntries({ Hello: \"Darkness\", my: \"old\", friend: \".\" });\r\n * // [ [ \"Hello\", \"Darkness\" ], [ \"my\", \"old\"], [ \"friend\", \".\" ] ]\r\n *\r\n * // Array-like object\r\n * objEntries({ 0: \"a\", 1: \"b\", 2: \"c\" }));\r\n * // [ ['0', 'a'], ['1', 'b'], ['2', 'c'] ]\r\n *\r\n * // Array-like object with random key ordering\r\n * objEntries({ 100: \"a\", 2: \"b\", 7: \"c\" });\r\n * // [ ['2', 'b'], ['7', 'c'], ['100', 'a'] ]*\r\n * ```\r\n */\r\nexport const objEntries: (value: {} | { [s: string]: T } | ArrayLike) => [string, T][] = (/* #__PURE__*/_pureAssign((/* #__PURE__*/_pureRef(ObjClass, \"entries\")), polyObjEntries));\r\n\r\n/**\r\n * The objValues() returns an array whose elements are values of enumerable string-keyed properties found\r\n * directly upon object. This is the same as iterating with a for...in loop, except that a for...in loop\r\n * enumerates properties in the prototype chain as well. The order of the array returned by objValues()\r\n * is the same as that provided by a for...in loop.\r\n *\r\n * If you need the property keys, use objKeys() instead. If you need both the property keys and values, use objEntries() instead.\r\n * @since 0.9.7\r\n * @group Object\r\n * @group ArrayLike\r\n * @param value - The object that contains the properties and methods.\r\n * @returns An array containing the given object's own enumerable string-keyed property values.\r\n * @example\r\n * ```ts\r\n * objValues({ Hello: \"Darkness\", my: \"old\", friend: \".\" });\r\n * // [ \"Darkness\", \"old\", \".\" ]\r\n *\r\n * // Array-like object\r\n * objValues({ 0: \"a\", 1: \"b\", 2: \"c\" }));\r\n * // [ 'a', 'b', 'c']\r\n *\r\n * // Array-like object with random key ordering\r\n * objValues({ 100: \"a\", 2: \"b\", 7: \"c\" });\r\n * // [ 'b', 'c', 'a']\r\n * ```\r\n */\r\nexport const objValues: (value: {} | { [s: string]: T } | ArrayLike) => T[] = (/* #__PURE__*/_pureAssign((/* #__PURE__*/_pureRef(ObjClass, \"values\")), polyObjValues));\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { eMapValues, _createKeyValueMap, _assignMapValue } from \"../internal/map\";\r\nimport { objForEachKey } from \"../object/for_each_key\";\r\nimport { objFreeze } from \"../object/object\";\r\n\r\n/**\r\n * A type that identifies an enum class generated from a constant enum.\r\n * @group Enum\r\n * @typeParam E - The constant enum type\r\n *\r\n * Returned from {@link createEnum}\r\n */\r\nexport declare type EnumCls = {\r\n readonly [key in keyof E extends string | number | symbol ? keyof E : never]: key extends string ? E[key] : key\r\n} & { readonly [key in keyof E]: E[key] };\r\n\r\n/**\r\n * A type that identifies an object whose property values are generally mapped to the key of the source type.\r\n * @group Enum\r\n * @typeParam E - The source constant enum type which identifies the keys and values\r\n * @typeParam T - The resulting type with the keys from the source type.\r\n *\r\n * Returned from {@link createEnumKeyMap}\r\n */\r\nexport declare type EnumNameMap = {\r\n readonly [key in keyof E extends string | number | symbol ? keyof E : never]: key extends string ? key : keyof E\r\n} & T;\r\n\r\n/**\r\n * A type that identifies an object whose property values are mapped to the resulting values of the source objects keys.\r\n * @group Enum\r\n * @typeParam E - The source type which identifies the keys.\r\n * @typeParam T - The resulting type with the keys from the source type.\r\n *\r\n * Returned from {@link createEnumValueMap}\r\n */\r\nexport declare type EnumValueMap = {\r\n readonly [key in keyof E extends string | number | symbol ? keyof E : never]: key extends string ? E[key] : E[key]\r\n} & T;\r\n\r\n/**\r\n * A type that maps the keys of E to the type of V.\r\n * @group Enum\r\n * @typeParam E - The type of object that defines the Key (typically a constant enum)\r\n * @typeParam V - The value type, typically `string`, `number` but may also be a complex type.\r\n * @typeParam T - The resulting type with the keys from the source type.\r\n *\r\n * Returned from {@link createSimpleMap}\r\n */\r\nexport declare type EnumTypeMap = {\r\n readonly [key in keyof E extends string ? keyof E : never]: V\r\n} & T;\r\n\r\n/**\r\n * Create a TypeScript style enum class which is a mapping that maps from the key -> value and the value -> key.\r\n * This is effectively the same as defining a non-constant enum, but this only repeats the \"Name\" of the enum value once.\r\n * @group Enum\r\n * @example\r\n * ```ts\r\n * const enum Animal {\r\n * Dog = 0,\r\n * Cat = 1,\r\n * Butterfly = 2,\r\n * Bear = 3\r\n * }\r\n * const Animals = createEnum({\r\n * Dog: Animal.Dog,\r\n * Cat: Animal.Cat,\r\n * Butterfly: Animal.Butterfly,\r\n * Bear: Animal.Bear\r\n * });\r\n * // You end up with an object that maps everything to the name\r\n * Animals.Dog === 0; // true\r\n * Animals[0] === \"Dog\"; // true\r\n * Animals[\"Dog\"] === 0; // true\r\n * Animals.Cat === 1; // true\r\n * Animals[1] === \"Cat\"; // true\r\n * Animals[\"Cat\"] === 1; // true\r\n * ```\r\n\r\n * @param values - The values to populate on the new object\r\n * @typeParam E - Identifies the const enum type being mapped\r\n * @returns A new frozen (immutable) object which looks and acts like a TypeScript Enum class.\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function createEnum(values: { [key in keyof E]: E[keyof E] }): EnumCls {\r\n return _createKeyValueMap(values, eMapValues.Value, eMapValues.Key, objFreeze);\r\n}\r\n\r\n/**\r\n * Create a map object which contains both the property key and value which both map to the key,\r\n * E[key] => key and E[value] => key.\r\n * @group Enum\r\n * @example\r\n * ```ts\r\n * const enum Animal {\r\n * Dog = 0,\r\n * Cat = 1,\r\n * Butterfly = 2,\r\n * Bear = 3\r\n * }\r\n * const animalMap = createEnumKeyMap({\r\n * Dog: Animal.Dog,\r\n * Cat: Animal.Cat,\r\n * Butterfly: Animal.Butterfly,\r\n * Bear: Animal.Bear\r\n * });\r\n * // You end up with an object that maps everything to the name\r\n * animalMap.Dog === \"Dog\"; // true\r\n * animalMap[0] === \"Dog\"; // true\r\n * animalMap[\"Dog\"] === \"Dog\"; // true\r\n * animalMap.Cat === \"Cat\"; // true\r\n * animalMap[1] === \"Cat\"; // true\r\n * animalMap[\"Cat\"] === \"Cat\"; // true\r\n * // Helper function to always return the \"Name\" of the type of animal\r\n * function getAnimalType(type: string | number | Animal) {\r\n * return animalMap[type];\r\n * }\r\n * ```\r\n * @param values - The values to populate on the new object\r\n * @typeParam E - Identifies the const enum type being mapped\r\n * @returns A new frozen (immutable) object which contains a property for each key and value that returns the value.\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function createEnumKeyMap(values: { [key in keyof E]: E[keyof E] }): EnumNameMap {\r\n return _createKeyValueMap(values, eMapValues.Key, eMapValues.Key, objFreeze);\r\n}\r\n\r\n/**\r\n * Create a map object which contains both the perperty key and value which both map to the resulting value,\r\n * E[key] => value and E[value] => value.\r\n * @group Enum\r\n * @example\r\n * ```ts\r\n * const enum Animal {\r\n * Dog = 0,\r\n * Cat = 1,\r\n * Butterfly = 2,\r\n * Bear = 3\r\n * }\r\n * const animalMap = createEnumValueMap({\r\n * Dog: Animal.Dog,\r\n * Cat: Animal.Cat,\r\n * Butterfly: Animal.Butterfly,\r\n * Bear: Animal.Bear\r\n * });\r\n * // You end up with an object that maps everything to the name\r\n * animalMap.Dog === 0; // true\r\n * animalMap[0] === 0; // true\r\n * animalMap[\"Dog\"] === 0; // true\r\n * animalMap.Cat === 1; // true\r\n * animalMap[1] === 1; // true\r\n * animalMap[\"Cat\"] === 1; // true\r\n *\r\n * // Helper function to always return the \"Name\" of the type of animal\r\n * function getAnimalValue(type: string | number | Animal) {\r\n * return animalMap[type];\r\n * }\r\n * ```\r\n\r\n * @param values - The values to populate on the new object\r\n * @typeParam E - Identifies the const enum type being mapped\r\n * @returns A new frozen (immutable) object which contains a property for each key and value that returns the value.\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function createEnumValueMap(values: { [key in keyof E]: E[keyof E] }): EnumValueMap {\r\n return _createKeyValueMap(values, eMapValues.Value, eMapValues.Value, objFreeze);\r\n}\r\n\r\n/**\r\n * Create a map object which contains both the perperty key and value which both map to the requested\r\n * generic mapValue with a type of V, E[key] => mapValue and E[value] => mapValue.\r\n * @group Enum\r\n * @example\r\n * ```ts\r\n * const enum Animal {\r\n * Dog = 0,\r\n * Cat = 1,\r\n * Butterfly = 2,\r\n * Bear = 3\r\n * };\r\n * // Creates a simple mapping to a string value\r\n * const animalFamilyMap = createValueMap({\r\n * Dog: [ Animal.Dog, \"Canidae\"],\r\n * Cat: [ Animal.Cat, \"Felidae\"],\r\n * Butterfly: [ Animal.Butterfly, \"Papilionidae\"],\r\n * Bear: [ Animal.Bear, \"Ursidae\"]\r\n * });\r\n * // You end up with an object that maps everything to the name\r\n * animalMap.Dog === \"Canidae\"; // true with typeof animalMap.Dog is \"string\"\r\n * animalMap[0] === \"Canidae\"; // true with typeof animalMap[0] is \"string\"\r\n * animalMap[\"Dog\"] === \"Canidae\"; // true with typeof animalMap[\"Dog\"] is \"string\"\r\n * animalMap.Cat === \"Felidae\"; // true with typeof animalMap.Cat is \"string\"\r\n * animalMap[1] === \"Felidae\"; // true with typeof animalMap[1] is \"string\"\r\n * animalMap[\"Cat\"] === \"Felidae\"; // true with typeof animalMap[\"Cat\"] is \"string\"\r\n * ```\r\n * @param values - The values to populate on the new object\r\n * @typeParam E - Identifies the const enum type (eg. typeof Animal);\r\n * @typeParam V - Identifies the type of the mapping `string`; `number`; etc is not restructed to primitive types.\r\n * @returns A new frozen (immutable) object which contains a property for each key and value that returns the defiend mapped value.\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function createSimpleMap(values: { [key in keyof E]: [ E[keyof E], V] }): EnumTypeMap {\r\n let mapClass: any = {};\r\n objForEachKey(values, (key, value) => {\r\n _assignMapValue(mapClass, key, value[1]);\r\n _assignMapValue(mapClass, value[0], value[1]);\r\n });\r\n\r\n return objFreeze(mapClass);\r\n}\r\n\r\n/**\r\n * Create a strongly types map object which contains both the perperty key and value which both map\r\n * to the requested mapValue,\r\n * E[key] => mapValue and E[value] => mapValue.\r\n * - E = the const enum type (typeof Animal);\r\n * - V = Identifies the valid values for the keys, this should include both the enum numeric and string key of the type. The\r\n * resulting \"Value\" of each entry identifies the valid values withing the assignments.\r\n * @group Enum\r\n * @example\r\n * ```ts\r\n * // Create a strongly types map\r\n * const animalFamilyMap = createTypeMap({\r\n * Dog: [ Animal.Dog, \"Canidae\"],\r\n * Cat: [ Animal.Cat, \"Felidae\"],\r\n * Butterfly: [ Animal.Butterfly, \"Papilionidae\"],\r\n * Bear: [ Animal.Bear, \"Ursidae\"]\r\n * });\r\n * // You end up with a strongly types result for each value\r\n * animalMap.Dog === \"Canidae\"; // true with typeof animalMap.Dog is (const) \"Canidae\"\r\n * animalMap[0] === \"Canidae\"; // true with typeof animalMap[0] is \"Canidae\"\r\n * animalMap[\"Dog\"] === \"Canidae\"; // true with typeof animalMap[\"Dog\"] is \"Canidae\"\r\n * animalMap.Cat === \"Felidae\"; // true with typeof animalMap.Cat is \"Felidae\"\r\n * animalMap[1] === \"Felidae\"; // true with typeof animalMap[1] is \"Felidae\"\r\n * animalMap[\"Cat\"] === \"Felidae\"; // true with typeof animalMap[\"Cat\"] is \"Felidae\"\r\n *\r\n * or using an interface to define the direct string mappings\r\n *\r\n * interface IAnimalFamilyMap {\r\n * Dog: \"Canidae\",\r\n * Cat: \"Felidae\",\r\n * Butterfly: \"Papilionidae\",\r\n * Bear: \"Ursidae\"\r\n * }\r\n *\r\n * // Create a strongly types map\r\n * const animalFamilyMap = createTypeMap({\r\n * Dog: [ Animal.Dog, \"Canidae\"],\r\n * Cat: [ Animal.Cat, \"Felidae\"],\r\n * Butterfly: [ Animal.Butterfly, \"Papilionidae\"],\r\n * Bear: [ Animal.Bear, \"Ursidae\"]\r\n * });\r\n *\r\n * // You also end up with a strongly types result for each value\r\n * animalMap.Dog === \"Canidae\"; // true with typeof animalMap.Dog is (const) \"Canidae\"\r\n * animalMap[0] === \"Canidae\"; // true with typeof animalMap[0] is \"Canidae\"\r\n * animalMap[\"Dog\"] === \"Canidae\"; // true with typeof animalMap[\"Dog\"] is \"Canidae\"\r\n * animalMap.Cat === \"Felidae\"; // true with typeof animalMap.Cat is \"Felidae\"\r\n * animalMap[1] === \"Felidae\"; // true with typeof animalMap[1] is \"Felidae\"\r\n * animalMap[\"Cat\"] === \"Felidae\"; // true with typeof animalMap[\"Cat\"] is \"Felidae\"\r\n * ```\r\n * @param values - The values to populate on the new object\r\n * @typeParam E - Identifies the enum type\r\n * @typeParam T - Identifies the return type that is being created via the mapping.\r\n * @returns A new frozen (immutable) object which contains a property for each key and value that returns the defined mapped value.\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function createTypeMap(values: { [key in keyof E]: [ E[keyof E], T[keyof T] ] }): T {\r\n return createSimpleMap(values as any) as unknown as T;\r\n}","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\nimport { createEnumKeyMap } from \"../helpers/enum\";\r\n\r\n/**\r\n * Identifies the Symbol static properties which are symbols themselves as a constant\r\n * enum to aid in minification when fetching them from the global symbol implementation.\r\n *\r\n * See: [Well Known Symbols](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Symbol#well-known_symbols)\r\n * @group Symbol\r\n */\r\nexport const enum WellKnownSymbols {\r\n /**\r\n * The Symbol.asyncIterator symbol is a builtin symbol that is used to access an\r\n * object's @@asyncIterator method. In order for an object to be async iterable,\r\n * it must have a Symbol.asyncIterator key.\r\n *\r\n * See: [Symbol.asyncIterator](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Symbol/asyncIterator)\r\n */\r\n asyncIterator = 0,\r\n\r\n /**\r\n * The Symbol.hasInstance well-known symbol is used to determine if a constructor\r\n * object recognizes an object as its instance. The instanceof operator's behavior\r\n * can be customized by this symbol.\r\n *\r\n * See: [Symbol.hasInstance](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Symbol/hasInstance)\r\n */\r\n hasInstance = 1,\r\n\r\n /**\r\n * The @@isConcatSpreadable symbol (Symbol.isConcatSpreadable) can be defined as an\r\n * own or inherited property and its value is a boolean. It can control behavior for\r\n * arrays and array-like objects:\r\n * - For array objects, the default behavior is to spread (flatten) elements.\r\n * Symbol.isConcatSpreadable can avoid flattening in these cases.\r\n * - For array-like objects, the default behavior is no spreading or flattening.\r\n * Symbol.isConcatSpreadable can force flattening in these cases.\r\n *\r\n * See: [Symbol.isConcatSpreadable](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Symbol/isConcatSpreadable)\r\n */\r\n isConcatSpreadable = 2,\r\n\r\n /**\r\n * Whenever an object needs to be iterated (such as at the beginning of a for..of loop),\r\n * its @@iterator method is called with no arguments, and the returned iterator is used\r\n * to obtain the values to be iterated.\r\n *\r\n * See: [Symbol.iterator](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Symbol/iterator)\r\n */\r\n iterator = 3,\r\n\r\n /**\r\n * This function is also used to identify if objects have the behavior of regular expressions.\r\n * For example, the methods String.prototype.startsWith(), String.prototype.endsWith() and\r\n * String.prototype.includes(), check if their first argument is a regular expression and\r\n * will throw a TypeError if they are. Now, if the match symbol is set to false (or a Falsy\r\n * value), it indicates that the object is not intended to be used as a regular expression object.\r\n *\r\n * See: [Symbol.match](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Symbol/match)\r\n */\r\n match = 4,\r\n\r\n /**\r\n * The Symbol.matchAll well-known symbol returns an iterator, that yields matches of the regular\r\n * expression against a string. This function is called by the String.prototype.matchAll() method.\r\n *\r\n * See: [Symbol.matchAll](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Symbol/matchAll)\r\n */\r\n matchAll = 5,\r\n\r\n /**\r\n * The Symbol.replace well-known symbol specifies the method that replaces matched substrings\r\n * of a string. This function is called by the String.prototype.replace() method.\r\n *\r\n * For more information, [RegExp.prototype[@@replace]](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/RegExp/@@replace)()\r\n * and [String.prototype.replace](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/replace)().\r\n *\r\n * See: [Symbol.replace](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Symbol/replace)\r\n */\r\n replace = 6,\r\n\r\n /**\r\n * The Symbol.search well-known symbol specifies the method that returns the index within a\r\n * string that matches the regular expression. This function is called by the\r\n * [String.prototype.search()](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/search)\r\n * method.\r\n *\r\n * For more information, see [RegExp.prototype[@@search]](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/RegExp/@@search)()\r\n * and [String.prototype.search()](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/search).\r\n *\r\n * See: [Symbol.species](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Symbol/species)\r\n */\r\n search = 7,\r\n\r\n /**\r\n * The well-known symbol Symbol.species specifies a function-valued property that the constructor\r\n * function uses to create derived objects.\r\n * See: [Symbol.species](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Symbol/species)\r\n */\r\n species = 8,\r\n\r\n /**\r\n * The Symbol.split well-known symbol specifies the method that splits a string at the indices\r\n * that match a regular expression. This function is called by the String.prototype.split() method.\r\n *\r\n * For more information, see [RegExp.prototype[@@split]](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/RegExp/@@split)()\r\n * and [String.prototype.split()](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/split).\r\n * See: [Symbol.split](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Symbol/split)\r\n */\r\n split = 9,\r\n\r\n /**\r\n * With the help of the Symbol.toPrimitive property (used as a function value), an object can be\r\n * converted to a primitive value. The function is called with a string argument hint, which\r\n * specifies the preferred type of the result primitive value. The hint argument can be one of\r\n * \"number\", \"string\", and \"default\".\r\n *\r\n * See: [Symbol.toPrimitive](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Symbol/toPrimitive)\r\n */\r\n toPrimitive = 10,\r\n\r\n /**\r\n * The Symbol.toStringTag well-known symbol is a string valued property that is used in the\r\n * creation of the default string description of an object. It is accessed internally by the\r\n * [Object.prototype.toString](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/toString)()\r\n * method.\r\n *\r\n * See: [Symbol.toStringTag](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Symbol/toStringTag)\r\n */\r\n toStringTag = 11,\r\n\r\n /**\r\n * The Symbol.unscopables well-known symbol is used to specify an object value of whose own\r\n * and inherited property names are excluded from the with environment bindings of the associated\r\n * object.\r\n *\r\n * See: [Symbol.unscopables](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Symbol/unscopables)\r\n */\r\n unscopables = 12\r\n}\r\n\r\n/**\r\n * @ignore\r\n * @internal\r\n */\r\nexport const _wellKnownSymbolMap = /*#__PURE__*/createEnumKeyMap({\r\n asyncIterator: WellKnownSymbols.asyncIterator,\r\n hasInstance: WellKnownSymbols.hasInstance,\r\n isConcatSpreadable: WellKnownSymbols.isConcatSpreadable,\r\n iterator: WellKnownSymbols.iterator,\r\n match: WellKnownSymbols.match,\r\n matchAll: WellKnownSymbols.matchAll,\r\n replace: WellKnownSymbols.replace,\r\n search: WellKnownSymbols.search,\r\n species: WellKnownSymbols.species,\r\n split: WellKnownSymbols.split,\r\n toPrimitive: WellKnownSymbols.toPrimitive,\r\n toStringTag: WellKnownSymbols.toStringTag,\r\n unscopables: WellKnownSymbols.unscopables\r\n});\r\n\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { safe } from \"../helpers/safe\";\r\nimport { UNDEFINED } from \"./constants\";\r\n\r\nconst GLOBAL_CONFIG_KEY = \"__tsUtils$gblCfg\";\r\n\r\ndeclare let globalThis: Window;\r\ndeclare let global: Window;\r\ndeclare let self: any;\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n * Internal interface for holding the global polyfill symbols\r\n */\r\nexport interface _GlobalPolySymbols {\r\n k: { [key: string ]: symbol },\r\n s: { [sym: symbol ]: string },\r\n}\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n * Internal interface for defining global test hooks\r\n */\r\nexport interface _GlobalTestHooks {\r\n lzy?: boolean;\r\n}\r\n\r\nexport interface TsUtilsGlobalConfig extends _GlobalTestHooks {\r\n gblSym?: _GlobalPolySymbols,\r\n}\r\n\r\nlet _globalCfg: { [key: string ]: any };\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n * Helper to get the current global value\r\n * @returns\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function _getGlobalValue(): Window {\r\n var result: Window;\r\n\r\n if (typeof globalThis !== UNDEFINED) {\r\n result = globalThis;\r\n }\r\n\r\n if (!result && typeof self !== UNDEFINED) {\r\n result = self;\r\n }\r\n\r\n if (!result && typeof window !== UNDEFINED) {\r\n result = window;\r\n }\r\n\r\n if (!result && typeof global !== UNDEFINED) {\r\n result = global;\r\n }\r\n\r\n return result;\r\n}\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n * Gets/Sets the named value from the global config store, this is used to share configuration across\r\n * multiple modules. Primarily used for poly symbol and test hooks.\r\n * @returns The globally registered value.\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function _getGlobalConfig(): TsUtilsGlobalConfig {\r\n if (!_globalCfg) {\r\n let gbl = safe(_getGlobalValue).v || {};\r\n _globalCfg = gbl[GLOBAL_CONFIG_KEY] = gbl[GLOBAL_CONFIG_KEY] || {};\r\n }\r\n\r\n return _globalCfg;\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { dumpObj } from \"../helpers/diagnostics\";\r\nimport { throwTypeError } from \"../helpers/throw\";\r\nimport { asString } from \"../string/as_string\";\r\nimport { ArrSlice, CALL, NULL_VALUE } from \"./constants\";\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n * Internal helper to run the named function on the passed first argument, this does not support polyfill\r\n * or prototype fallback, so the function must exist on the provided first argument.\r\n * If the first argument is null, undefined or the function does not exist an exception will be thrown\r\n * by the runtime\r\n * @param funcName - The function name to call on the first argument passed to the wrapped function\r\n * @returns A function which will call the funcName against the first passed argument and pass on the remaining arguments\r\n */\r\nexport const _unwrapInstFunction:(funcName: keyof T) => (this: T, ..._args:any) => R = (/*__PURE__*/_unwrapFunctionWithPoly);\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n * Internal helper to convert an expanded function back into an instance `this` function call\r\n * @param funcName - The function name to call on the first argument passed to the wrapped function\r\n * @param clsProto - The Class or class prototype to fallback to if the instance doesn't have the function.\r\n * @returns A function which will call the funcName against the first passed argument and pass on the remaining arguments\r\n */\r\nexport const _unwrapFunction:(funcName: keyof T, clsProto: T) => (this: T, ..._args:any) => R = (/*__PURE__*/_unwrapFunctionWithPoly);\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n * Internal helper to convert an expanded function back into an instance `this` function call\r\n * @param funcName - The function name to call on the first argument passed to the wrapped function\r\n * @param clsProto - The Class or class prototype to fallback to if the instance doesn't have the function.\r\n * @param polyFunc - The function to call if not available on the thisArg, act like the polyfill\r\n * @returns A function which will call the funcName against the first passed argument and pass on the remaining arguments\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function _unwrapFunctionWithPoly any>(funcName: keyof T, clsProto?: T, polyFunc?: P) {\r\n let clsFn = clsProto ? clsProto[funcName] : NULL_VALUE;\r\n\r\n return function(thisArg: any): ReturnType

{\r\n let theFunc = (thisArg ? thisArg[funcName] : NULL_VALUE) || clsFn;\r\n if (theFunc || polyFunc) {\r\n let theArgs = arguments;\r\n return ((theFunc || polyFunc) as Function).apply(thisArg, theFunc ? ArrSlice[CALL](theArgs, 1) : theArgs);\r\n }\r\n\r\n throwTypeError(\"\\\"\" + asString(funcName) + \"\\\" not defined for \" + dumpObj(thisArg));\r\n };\r\n}\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n * Internal helper to lookup and return the named property from the first argument (which becomes the this)\r\n *\r\n * @since 0.4.2\r\n * @typeParam T - The type of the object which contains the propName\r\n * @param propName - The property name\r\n * @returns The value of the property\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function _unwrapProp(propName: keyof T) {\r\n return function (thisArg: T) {\r\n return thisArg[propName];\r\n };\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { MathCls } from \"../internal/constants\";\r\nimport { _pureRef } from \"../internal/treeshake_helpers\";\r\n\r\n/**\r\n * The mathMin() function returns the lowest-valued number passed into it, or NaN if any\r\n * parameter isn't a number and can't be converted into one.\r\n *\r\n * If no arguments are given, the result is Infinity.\r\n *\r\n * If at least one of arguments cannot be converted to a number, the result is NaN.\r\n *\r\n * @since 0.4.2\r\n * @group Math\r\n * @param values - Zero or more numbers among which the lowest value will be selected and returned.\r\n * @returns The smallest of the given numbers. If any one or more of the parameters cannot\r\n * be converted into a number, NaN is returned. The result is Infinity if no parameters are provided.\r\n * @example\r\n * ```ts\r\n * const x = 10, y = -20;\r\n * const z = Math.min(x, y); // -20\r\n * ```\r\n */\r\nexport const mathMin: (...values: number[]) => number = (/*#__PURE__*/_pureRef(MathCls, \"min\"));\r\n\r\n/**\r\n * The `mathMax()` function returns the largest of the zero or more numbers given as input\r\n * parameters, or NaN if any parameter isn't a number and can't be converted into one.\r\n *\r\n * If no arguments are given, the result is -Infinity.\r\n *\r\n * If at least one of arguments cannot be converted to a number, the result is NaN.\r\n *\r\n * @since 0.4.2\r\n * @group Math\r\n * @param values - Zero or more numbers among which the largest value will be selected and returned.\r\n * @returns The largest of the given numbers. If any one or more of the parameters cannot be\r\n * converted into a number, NaN is returned. The result is -Infinity if no parameters are provided.\r\n * @example\r\n * ```ts\r\n * mathMax(10, 20); // 20\r\n * mathMax(-10, -20); // -10\r\n * mathMax(-10, 20); // 20\r\n * ```\r\n */\r\nexport const mathMax: (...values: number[]) => number = (/*#__PURE__*/_pureRef(MathCls, \"max\"));\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { StrProto } from \"../internal/constants\";\r\nimport { _unwrapFunction } from \"../internal/unwrapFunction\";\r\n\r\n/**\r\n * The `strSlice()` method extracts a section of a string and returns it as a new string, without\r\n * modifying the original string.\r\n * `strSlice()` extracts the text from one string and returns a new string. Changes to the text in one\r\n * string do not affect the other string.\r\n * `strSlice()` extracts up to but not including endIndex. str.slice(1, 4) extracts the second character\r\n * through the fourth character (characters indexed 1, 2, and 3).\r\n * As an example, strSlice(2, -1) extracts the third character through the second to last character\r\n * in the string.\r\n * @group String\r\n * @param value - The value to haveextract a number\r\n * @param beginIndex - The zero-based index at which to begin extraction.\r\n * If `beginIndex` is negative, `strSlice()` begins extraction from `value.length + beginIndex`.\r\n * (E.g. `strSlice(\"test\", -2)` returns \"st\")\r\n * If `beginIndex` is omitted, undefined, or cannot be converted to a number (using Number(`beginIndex`)),\r\n * strSlice() begins extraction from the beginning of the string. (E.g. `strSlice(\"test\")` returns \"test\")\r\n * If `beginIndex` is greater than or equal to `value.length`, an empty string is returned.\r\n * (E.g. `strSlice(\"test\", 4)` returns \"\")\r\n * @param endIndex - The index of the first character to exclude from the returned substring.\r\n * If `endIndex` is omitted, undefined, or cannot be converted to a number (using Number(`endIndex`))\r\n * strSlice() extracts to the end of the string. (E.g. `strSlice(\"test\", 2)` returns \"st\")\r\n * If `endIndex` is greater than `value.length`, strSlice() also extracts to the end of the string.\r\n * (E.g. strSlice(\"test\", 2, 10)` returns \"st\")\r\n * If `endIndex` is negative, `strSlice()` treats it as `value.length + endIndex`. (E.g, if `endIndex`\r\n * is -2, it is treated as `value.length - 2` and `strSlice(\"test\", 1, -2)` returns \"e\") .\r\n * If `endIndex` represents a position that is before the one represented by startIndex, `strSlice()`\r\n * returns \"\". (E.g `strSlice(\"test\", 2, -10)`, strSlice(\"test\", -1, -2)` or `strSlice(\"test\", 3, 2)`).\r\n * @returns A new string containing the extracted section of the string.\r\n */\r\nexport const strSlice: (value: string, beginIndex: number, endIndex?: number) => string = (/*#__PURE__*/_unwrapFunction(\"slice\", StrProto));\r\n\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { isNullOrUndefined, isUndefined } from \"../helpers/base\";\r\nimport { dumpObj } from \"../helpers/diagnostics\";\r\nimport { throwTypeError } from \"../helpers/throw\";\r\nimport { EMPTY, LENGTH, StrProto } from \"../internal/constants\";\r\nimport { _unwrapFunction, _unwrapFunctionWithPoly } from \"../internal/unwrapFunction\";\r\nimport { mathMax } from \"../math/min_max\";\r\nimport { strSlice } from \"./slice\";\r\n\r\n/**\r\n * The `strSubstring()` method returns the part of the string between the start and end indexes, or to the end of the string.\r\n *\r\n * `strSubstring()` extracts characters from indexStart up to but not including indexEnd. In particular:\r\n * - If `indexEnd` is omitted, strSubstring() extracts characters to the end of the string.\r\n * - If `indexStart` is equal to indexEnd, strSubstring() returns an empty string.\r\n * - If `indexStart` is greater than indexEnd, then the effect of strSubstring() is as if the two arguments were swapped; see example below.\r\n *\r\n * Any argument value that is less than 0 or greater than `value.length` is treated as if it were 0 and `value.length`, respectively.\r\n *\r\n * Any argument value that is NaN is treated as if it were 0.\r\n * @group String\r\n * @param value - The string value to return the substring from.\r\n * @param indexStart - The index of the first character to include in the returned substring.\r\n * @param indexEnd - The index of the first character to exclude from the returned substring.\r\n * @return A new string containing the specified part of the given string\r\n * @example\r\n * ```ts\r\n * const anyString = 'Nevware21';\r\n * // Displays 'N'\r\n * console.log(strSubstring(anyString, 0, 1));\r\n * console.log(strSubstring(anyString, 1, 0));\r\n *\r\n * // Displays 'Nevwar'\r\n * console.log(strSubstring(anyString, 0, 6));\r\n *\r\n * // Displays 'are21'\r\n * console.log(strSubstring(anyString, 4));\r\n *\r\n * // Displays 'are'\r\n * console.log(strSubstring(anyString, 4, 7));\r\n *\r\n * // Displays '21'\r\n * console.log(strSubstring(anyString, 7, 4));\r\n *\r\n * // Displays 'Nevware'\r\n * console.log(strSubstring(anyString, 0, 7));\r\n *\r\n * // Displays 'Nevware21'\r\n * console.log(strSubstring(anyString, 0, 10));\r\n * ```\r\n */\r\nexport const strSubstring: (value: string, indexStart: number, indexEnd?: number) => string = (/*#__PURE__*/_unwrapFunction(\"substring\", StrProto));\r\n\r\n/**\r\n * The strSubstr() method returns a portion of the string, starting at the specified index and extending for a given\r\n * number of characters afterwards.\r\n *\r\n * @since 0.4.2\r\n * @group String\r\n * @param value - The string value to return the substring from.\r\n * @param start - The index of the first character to include in the returned substring.\r\n * @param length - The number of characters to extract.\r\n * @returns A new string containing the specified part of the given string.\r\n */\r\nexport const strSubstr: (value: string, start: number, length?: number) => string = (/*#__PURE__*/_unwrapFunctionWithPoly(\"substr\", StrProto, polyStrSubstr));\r\n\r\n/**\r\n * The polyStrSubstr() method returns a portion of the string, starting at the specified index and extending for a given\r\n * number of characters afterwards.\r\n *\r\n * @since 0.4.2\r\n * @group String\r\n * @group Polyfill\r\n * @param value - The string value to return the substring from.\r\n * @param start - The index of the first character to include in the returned substring.\r\n * @param length - The number of characters to extract.\r\n * @returns A new string containing the specified part of the given string.\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function polyStrSubstr(value: string, start: number, length?: number): string {\r\n if (isNullOrUndefined(value)) {\r\n throwTypeError(\"Invalid \" + dumpObj(value));\r\n }\r\n\r\n if (length < 0) {\r\n return EMPTY;\r\n }\r\n\r\n // If start is omitted or undefined, its treated as zero\r\n start = start || 0;\r\n\r\n if (start < 0) {\r\n start = mathMax(start + value[LENGTH], 0);\r\n }\r\n\r\n if (isUndefined(length)) {\r\n return strSlice(value, start);\r\n }\r\n\r\n return strSlice(value, start, start + length);\r\n}\r\n\r\n/**\r\n * Returns a substring of the string starting from the left.\r\n *\r\n * `strLeft()` extracts the number of characters from left of the string up to the count. In particular:\r\n * - If `count` is less than zero, strLeft() returns an empty string.\r\n * - If `count` is less than `value.length', strLeft() returns a new string with the `count` number of characters from the left of the string.\r\n * - If `count` is greater than `value.length`, then the value original value is returned.\r\n *\r\n * Any argument value that is NaN is treated as if it were 0.\r\n *\r\n * @since 0.4.2\r\n * @group String\r\n * @param value - The string value to return the substring from.\r\n * @param count - The number of characters to extract\r\n * @returns The substring based on the count number of characters from the right\r\n * @example\r\n * ```ts\r\n * strLeft(\"Nevware21\", -1); // \"\"\r\n * strLeft(\"Nevware21\", 0); // \"\"\r\n * strLeft(\"Nevware21\", 1); // \"N\"\r\n * strLeft(\"Nevware21\", 3); // \"Nev\"\r\n * strLeft(\"Nevware21\", 21); // \"Nevware21\"\r\n * ```\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function strLeft(value: string, count: number): string {\r\n return strSubstring(value, 0, count);\r\n}\r\n\r\n/**\r\n * Returns a substring of the string starting from the right.\r\n *\r\n * `strRight()` extracts the number of characters from right of the string up to the count. In particular:\r\n * - If `count` is less than zero, strRight() returns an empty string.\r\n * - If `count` is less than `value.length', strRight() returns a new string with the `count` number of characters from the right of the string.\r\n * - If `count` is greater than `value.length`, then the value original value is returned.\r\n *\r\n * Any argument value that is NaN is treated as if it were 0.\r\n *\r\n * @since 0.4.2\r\n * @group String\r\n * @param value - The string value to return the substring from.\r\n * @param count - The number of characters to extract\r\n * @returns The substring based on the count number of characters from the right\r\n * @example\r\n * ```ts\r\n * strRight(\"Nevware21\", -1); // \"\"\r\n * strRight(\"Nevware21\", 0); // \"\"\r\n * strRight(\"Nevware21\", 1); // \"1\"\r\n * strRight(\"Nevware21\", 3); // \"e21\"\r\n * strRight(\"Nevware21\", 21); // \"Nevware21\"\r\n * ```\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function strRight(value: string, count: number): string {\r\n return count <= 0 ? EMPTY : (value[LENGTH] > count ? strSlice(value, -count) : value);\r\n}","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { WellKnownSymbols, _wellKnownSymbolMap } from \"../symbol/well_known\";\r\nimport { throwTypeError } from \"../helpers/throw\";\r\nimport { POLYFILL_TAG, SYMBOL, TO_STRING } from \"../internal/constants\";\r\nimport { objHasOwn } from \"../object/has_own\";\r\nimport { asString } from \"../string/as_string\";\r\nimport { _GlobalPolySymbols, _getGlobalConfig } from \"../internal/global\";\r\nimport { strSubstring } from \"../string/substring\";\r\nimport { objKeys } from \"../object/object\";\r\n\r\nconst UNIQUE_REGISTRY_ID = \"_urid\";\r\nlet _polySymbols: _GlobalPolySymbols;\r\n\r\n/*#__NO_SIDE_EFFECTS__*/\r\nfunction _globalSymbolRegistry(): _GlobalPolySymbols {\r\n if (!_polySymbols) {\r\n let gblCfg = _getGlobalConfig();\r\n _polySymbols = gblCfg.gblSym = gblCfg.gblSym || { k: {}, s:{} };\r\n }\r\n\r\n return _polySymbols;\r\n}\r\n\r\nlet _wellKnownSymbolCache: { [key in keyof typeof WellKnownSymbols ]: symbol };\r\n\r\n/**\r\n * Returns a new (polyfill) Symbol object for the provided description that's guaranteed to be unique.\r\n * Symbols are often used to add unique property keys to an object that won't collide with keys any\r\n * other code might add to the object, and which are hidden from any mechanisms other code will\r\n * typically use to access the object. That enables a form of weak encapsulation, or a weak form of\r\n * information hiding.\r\n * @group Polyfill\r\n * @group Symbol\r\n * @param description - The description of the symbol\r\n * @returns A new polyfill version of a Symbol object\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function polyNewSymbol(description?: string | number): symbol {\r\n let theSymbol: symbol = {\r\n description: asString(description),\r\n toString: () => SYMBOL + \"(\" + description + \")\"\r\n } as symbol;\r\n \r\n // Tag the symbol so we know it a polyfill\r\n theSymbol[POLYFILL_TAG] = true;\r\n\r\n return theSymbol;\r\n}\r\n\r\n/**\r\n * Returns a Symbol object from the global symbol registry matching the given key if found.\r\n * Otherwise, returns a new symbol with this key.\r\n * @group Polyfill\r\n * @group Symbol\r\n * @param key key to search for.\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function polySymbolFor(key: string): symbol {\r\n let registry = _globalSymbolRegistry();\r\n if (!objHasOwn(registry.k, key)) {\r\n let newSymbol = polyNewSymbol(key);\r\n let regId = objKeys(registry.s).length;\r\n newSymbol[UNIQUE_REGISTRY_ID] = () => regId + \"_\" + newSymbol[TO_STRING]();\r\n registry.k[key] = newSymbol;\r\n registry.s[newSymbol[UNIQUE_REGISTRY_ID]()] = asString(key);\r\n }\r\n\r\n return registry.k[key];\r\n}\r\n\r\n/**\r\n * Returns a key from the global symbol registry matching the given Symbol if found.\r\n * Otherwise, returns a undefined.\r\n * @group Polyfill\r\n * @group Symbol\r\n * @param sym Symbol to find the key for.\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function polySymbolKeyFor(sym: symbol): string | undefined {\r\n if (!sym || !sym[TO_STRING] || strSubstring(sym[TO_STRING](), 0, 6) != SYMBOL) {\r\n throwTypeError((sym as any) + \" is not a symbol\");\r\n }\r\n\r\n const regId = sym[POLYFILL_TAG] && sym[UNIQUE_REGISTRY_ID] && sym[UNIQUE_REGISTRY_ID]();\r\n\r\n return regId ? _globalSymbolRegistry().s[regId] : undefined;\r\n}\r\n\r\n/**\r\n * Returns the polyfill version of a well-known global symbol, this will only return\r\n * known values.\r\n * @example\r\n * ```ts\r\n * // Always returns the polyfill version, even if Symbols are supported in the runtime\r\n * polyGetKnownSymbol(\"toStringTag\") === polyGetKnownSymbol(\"toStringTag\"); // true\r\n * polyGetKnownSymbol(WellKnownSymbols.toStringTag) === polyGetKnownSymbol(\"toStringTag\"); // true\r\n * polyGetKnownSymbol(\"toStringTag\") !== Symbol.toStringTag; // true\r\n * polyGetKnownSymbol(WellKnownSymbols.toStringTag) !== Symbol.toStringTag; // true\r\n * polyGetKnownSymbol(\"toStringTag\") !== polySymbolFor(\"toStringTag\"); // true\r\n * polyGetKnownSymbol(WellKnownSymbols.toStringTag) !== polySymbolFor(\"toStringTag\"); // true\r\n * polyGetKnownSymbol(\"toStringTag\") !== polyNewSymbol(\"toStringTag\"); // true\r\n * polyGetKnownSymbol(WellKnownSymbols.toStringTag) !== polyNewSymbol(\"toStringTag\"); // true\r\n * ```\r\n * @group Polyfill\r\n * @group Symbol\r\n * @param name - The property name to return (if it exists) for Symbol\r\n * @returns The value of the property if present\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function polyGetKnownSymbol(name: string | WellKnownSymbols): symbol {\r\n !_wellKnownSymbolCache && (_wellKnownSymbolCache = {} as any);\r\n let result: symbol;\r\n let knownName: WellKnownSymbols = _wellKnownSymbolMap[name];\r\n if (knownName) {\r\n result = _wellKnownSymbolCache[knownName] = _wellKnownSymbolCache[knownName] || polyNewSymbol(SYMBOL + \".\" + knownName);\r\n }\r\n\r\n return result\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { _GlobalTestHooks, _getGlobalConfig } from \"../internal/global\";\r\nimport { objDefineProp } from \"../object/define\";\r\nimport { ICachedValue } from \"./cache\";\r\n\r\n/**\r\n * @internal\r\n * Internal flag which is set by the public {@link setBypassLazyCache}, should not be externally exported\r\n */\r\nexport let _globalLazyTestHooks: _GlobalTestHooks;\r\n\r\nexport function _initTestHooks() {\r\n _globalLazyTestHooks = _getGlobalConfig();\r\n}\r\n\r\n/**\r\n * Interface of the object returned by the {@link getLazy} instance\r\n * @since 0.4.5\r\n * @group Lazy\r\n */\r\nexport interface ILazyValue extends ICachedValue {\r\n /**\r\n * Returns the current cached value from the lazy lookup, if the callback function has not yet occurred\r\n * accessing the value will cause the lazy evaluation to occur and the result will be returned.\r\n */\r\n v: T,\r\n\r\n /**\r\n * Identifies if this instance is bypassing the internal caching mechanism which is used for testing\r\n */\r\n b?: boolean\r\n}\r\n\r\n/**\r\n * Create and return an readonly {@link ILazyValue} instance which will cache and return the value returned\r\n * by the callback function. The callback function will only be called once, multiple access of the value\r\n * does not cause re-execution of the callback as the result from the first call is cached internally.\r\n * @since 0.4.5\r\n * @group Lazy\r\n * @param cb - The callback function to fetch the value to be lazily evaluated and cached\r\n * @returns A new readonly {@link ILazyValue} instance which wraps the callback and will be used to cache\r\n * the result of the callback\r\n * @example\r\n * ```ts\r\n * // This does not cause the evaluation to occur\r\n * let cachedValue = getLazy(() => callSomeExpensiveFunction());\r\n * let theValue;\r\n *\r\n * // Just checking if there is an object still does not cause the evaluation\r\n * if (cachedValue) {\r\n * // This will cause the evaluation to occur and the result will be cached\r\n * theValue = cachedValue.v;\r\n * }\r\n *\r\n * // Accessing the value again will not cause the re-evaluation to occur, it will just return the same\r\n * // result value again.\r\n * theValue === cachedValue.v; // true\r\n *\r\n * ```\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function getLazy(cb: () => T): ILazyValue {\r\n let lazyValue = { } as ILazyValue;\r\n !_globalLazyTestHooks && _initTestHooks();\r\n lazyValue.b = _globalLazyTestHooks.lzy;\r\n\r\n objDefineProp(lazyValue, \"v\", {\r\n configurable: true,\r\n get: function () {\r\n let result = cb();\r\n if (!_globalLazyTestHooks.lzy) {\r\n // Just replace the value\r\n objDefineProp(lazyValue, \"v\", {\r\n value: result\r\n });\r\n }\r\n\r\n lazyValue.b = _globalLazyTestHooks.lzy;\r\n\r\n return result;\r\n }\r\n });\r\n\r\n return lazyValue;\r\n}\r\n\r\n/**\r\n * Test Hook function used to cause the internal caching of objects to be bypassed, this should never\r\n * be enabled for production as it has additional performance impact caused by the repetitive creation\r\n * of the lazy wrappers.\r\n * @group Lazy\r\n * @since 0.5.0\r\n * @param newValue - When `true` will cause all new lazy implementations to bypass the cached lookup.\r\n */\r\nexport function setBypassLazyCache(newValue: boolean) {\r\n !_globalLazyTestHooks && _initTestHooks();\r\n _globalLazyTestHooks.lzy = newValue;\r\n}\r\n\r\n/**\r\n * Create and return a writable {@link ILazyValue} instance which will cache and return the value returned\r\n * by the callback function. The callback function will only be called once, multiple access of the value\r\n * does not cause re-execution of the callback as the result from the first call is cached internally. The\r\n * value may be set as many times as required, if the callback has not been called when you set the value\r\n * it will never get called.\r\n * @since 0.9.4\r\n * @group Lazy\r\n * @param cb - The callback function to fetch the value to be lazily evaluated and cached\r\n * @returns A new writable {@link ILazyValue} instance which wraps the callback and will be used to cache\r\n * the result of the callback\r\n * @example\r\n * ```ts\r\n * // This does not cause the evaluation to occur\r\n * let cachedValue = getWritableLazy(() => callSomeExpensiveFunction());\r\n * let theValue;\r\n *\r\n * // Just checking if there is an object still does not cause the evaluation\r\n * if (cachedValue) {\r\n * // This will cause the evaluation to occur and the result will be cached\r\n * theValue = cachedValue.v;\r\n * }\r\n *\r\n * // Accessing the value again will not cause the re-evaluation to occur, it will just return the same\r\n * // result value again.\r\n * theValue === cachedValue.v; // true\r\n *\r\n * // Setting the value\r\n * let cachedValue = getWritableLazy(() => callSomeExpensiveFunction());\r\n * let theValue = \"new Value\";\r\n *\r\n * // Just checking if there is an object still does not cause the evaluation\r\n * if (cachedValue) {\r\n * // This will set the value to be set explicitly and the callback\r\n * // will now never occur and the result will be cached\r\n * cachedValue.v = theValue;\r\n * }\r\n *\r\n * // Accessing the value again will cause the previously set value to be returned.\r\n * theValue === cachedValue.v; // true\r\n * ```\r\n */\r\nexport function getWritableLazy(cb: () => T): ILazyValue {\r\n let lazyValue = { } as ILazyValue;\r\n !_globalLazyTestHooks && _initTestHooks();\r\n lazyValue.b = _globalLazyTestHooks.lzy;\r\n\r\n let _setValue = (newValue: T) => {\r\n // Just replace the value\r\n objDefineProp(lazyValue, \"v\", {\r\n value: newValue,\r\n writable: true\r\n });\r\n\r\n if (lazyValue.b) {\r\n delete lazyValue.b;\r\n }\r\n };\r\n\r\n objDefineProp(lazyValue, \"v\", {\r\n configurable: true,\r\n get: function () {\r\n let result = cb();\r\n if (!_globalLazyTestHooks.lzy) {\r\n // Just replace the value\r\n _setValue(result);\r\n }\r\n \r\n if (_globalLazyTestHooks.lzy && lazyValue.b !== _globalLazyTestHooks.lzy) {\r\n lazyValue.b = _globalLazyTestHooks.lzy;\r\n }\r\n\r\n return result;\r\n },\r\n set: _setValue\r\n });\r\n\r\n return lazyValue;\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2024 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { NULL_VALUE } from \"../internal/constants\";\r\nimport { objDefineProp } from \"../object/define\";\r\n\r\n/**\r\n * A generic interface for holding a cached value\r\n * @since 0.10.5\r\n * @group Helpers\r\n * @group Cache\r\n * @typeParam T - The type of the value to be cached\r\n * @example\r\n * ```ts\r\n * let cachedValue: ICachedValue = {\r\n * v: \"some value\"\r\n * };\r\n * ```\r\n */\r\nexport interface ICachedValue {\r\n /**\r\n * Returns the current cached value\r\n */\r\n v: T,\r\n\r\n /**\r\n * Returns the current cached value\r\n */\r\n toJSON(): T;\r\n}\r\n\r\n/**\r\n * Create and return a readonly {@link ICachedValue} instance that is populated with the provided value.\r\n * This is useful when you want to cache a previously fetched value and return it without having to re-fetch\r\n * it again.\r\n * This is a lightweight version of {@link getLazy} which does not support any expiration or invalidation,\r\n * it also will not honor the {@link setBypassLazyCache} setting and will always return the provided value.\r\n * @since 0.10.5\r\n * @group Helpers\r\n * @group Cache\r\n * @typeParam T - The type of the value to be cached\r\n * @param value\r\n * @returns A new {@link ICachedValue} instance which wraps the provided value\r\n * @example\r\n * ```ts\r\n * let cachedValue = createCachedValue(\"some value\");\r\n * // cachedValue.v === \"some value\"\r\n *\r\n * JSON.stringify(cachedValue) === '{\"v\":\"some value\"}';\r\n * ```\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function createCachedValue(value: T): ICachedValue {\r\n return objDefineProp({\r\n toJSON: () => value\r\n }, \"v\", { value }) as ICachedValue;\r\n}\r\n\r\n/**\r\n * Create and return a readonly {@link ICachedValue} instance which will cache and return the value returned\r\n * by the callback function. The callback function will only be called once, multiple access of the value\r\n * will not cause re-execution of the callback as the result from the first call is cached internally.\r\n * This is a lightweight version of {@link getLazy} which does not support any expiration or invalidation,\r\n * it also will not honor the {@link setBypassLazyCache} setting and will always return the provided value.\r\n * @since 0.10.5\r\n * @group Helpers\r\n * @group Cache\r\n * @typeParam T - The type of the value to be cached\r\n * @param cb - The callback function to fetch the value to be lazily evaluated and cached\r\n * @returns\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function createDeferredCachedValue(cb: () => T): ICachedValue {\r\n let theValue: any = {\r\n toJSON: () => theValue.v\r\n };\r\n\r\n return objDefineProp(theValue as ICachedValue, \"v\", {\r\n get: () => {\r\n let result = cb();\r\n cb = NULL_VALUE;\r\n objDefineProp(theValue, \"v\", { value: result });\r\n return result;\r\n },\r\n configurable: true\r\n });\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { NULL_VALUE, UNDEF_VALUE } from \"../internal/constants\";\r\nimport { _getGlobalValue } from \"../internal/global\";\r\nimport { ILazyValue, _globalLazyTestHooks, _initTestHooks, getLazy } from \"./lazy\";\r\nimport { ICachedValue, createCachedValue } from \"./cache\";\r\nimport { safe } from \"./safe\";\r\n\r\nconst WINDOW = \"window\";\r\n\r\ndeclare let WorkerGlobalScope: any;\r\ndeclare let self: any;\r\n\r\nlet _cachedGlobal: ICachedValue;\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n * Returns a function which will return the named global object if available, will return `null` if the object is not available.\r\n * @param getFn - The function to use to get the global object\r\n * @param instName - The name of the global object to get, may be any valid PropertyKey (string, number or symbol)\r\n * @returns A function which will return the named global object if available, the funcion will return `null` if the object is not available.\r\n */\r\nexport function _getGlobalInstFn(getFn: (...args: unknown[]) => T, theArgs?: unknown[]): () => T | null | undefined {\r\n let cachedValue: ICachedValue;\r\n return function() {\r\n !_globalLazyTestHooks && _initTestHooks();\r\n if (!cachedValue || _globalLazyTestHooks.lzy) {\r\n cachedValue = createCachedValue(safe(getFn, theArgs).v);\r\n }\r\n \r\n return cachedValue.v;\r\n }\r\n}\r\n\r\n/**\r\n * Create and return an readonly {@link ILazyValue} instance which will cache and return the named global\r\n * value if available, will return `null` if the named global object is not available or if the runtime\r\n * throws an exception when attempting to access the global object.\r\n * Unlike {@link getInst} the value is cached after the first access, so if the global value changes after\r\n * the initial fetch the original cached value is still returned.\r\n * @since 0.9.5\r\n * @group Environment\r\n * @group Lazy\r\n * @group Safe\r\n * @param name The name of the global object to get, may be any valid PropertyKey (string, number or symbol)\r\n * @returns A new readonly {@link ILazyValue} instance which will lazily attempt to return the globally\r\n * available named instance.\r\n * @example\r\n * ```ts\r\n * // This does not cause the evaluation to occur\r\n * window.myGlobal = \"Hello\";\r\n * let cachedValue = lazySafeGetInst(\"myGlobal\");\r\n * // cachedValue.v === \"Hello\"\r\n *\r\n * window.myGlobal = \"Darkness\";\r\n * // cachedValue.v === \"Hello\"\r\n *\r\n * let promiseCls = lazySafeGetInst(\"Promise\");\r\n * // null if Promise is not supported in the runtime\r\n * // otherwise the Promise class.\r\n * ```\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function lazySafeGetInst(name: string | number | symbol) : ILazyValue {\r\n return getLazy(() => safe(getInst, [name]).v || UNDEF_VALUE);\r\n}\r\n\r\n/**\r\n * Returns the current global scope object, for a normal web page this will be the current\r\n * window, for a Web Worker this will be current worker global scope via \"self\". The internal\r\n * implementation returns the first available instance object in the following order\r\n * - globalThis (New standard)\r\n * - self (Will return the current window instance for supported browsers)\r\n * - window (fallback for older browser implementations)\r\n * - global (NodeJS standard)\r\n * - (When all else fails)\r\n * While the return type is a Window for the normal case, not all environments will support all\r\n * of the properties or functions. And this caches the lookup of the global as in some environments\r\n * this can be an expensive operation.\r\n * @group Environment\r\n * @param useCached - [Optional] used for testing to bypass the cached lookup, when `true` this will\r\n * cause the cached global to be reset.\r\n */\r\nexport function getGlobal(useCached?: boolean): Window {\r\n !_globalLazyTestHooks && _initTestHooks();\r\n if (!_cachedGlobal || useCached === false || _globalLazyTestHooks.lzy) {\r\n _cachedGlobal = createCachedValue(safe(_getGlobalValue).v || NULL_VALUE);\r\n }\r\n\r\n return _cachedGlobal.v;\r\n}\r\n\r\n/**\r\n * Return the named global object if available, will return null if the object is not available.\r\n * @group Environment\r\n * @param name The globally named object, may be any valid property key (string, number or symbol)\r\n * @param useCached - [Optional] used for testing to bypass the cached lookup, when `true` this will\r\n * cause the cached global to be reset.\r\n * @example\r\n * ```ts\r\n * // This does not cause the evaluation to occur\r\n * window.myGlobal = \"Hello\";\r\n * let cachedValue = getInst(\"myGlobal\");\r\n * // cachedValue === \"Hello\"\r\n *\r\n * window.myGlobal = \"Darkness\";\r\n * // getInst(\"myGlobal\") === \"Darkness\"\r\n *\r\n * let promiseCls = getInst(\"Promise\");\r\n * // May throw if the global is not supported by the runtime\r\n * // otherwise the Promise class.\r\n * ```\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function getInst(name: string | number | symbol, useCached?: boolean): T | null {\r\n let gbl: any;\r\n if (!_cachedGlobal || useCached === false) {\r\n gbl = getGlobal(useCached);\r\n } else {\r\n gbl = _cachedGlobal.v;\r\n }\r\n\r\n if (gbl && gbl[name]) {\r\n return gbl[name] as T;\r\n }\r\n\r\n // Test workaround, for environments where .window (when global == window) doesn't return the base window\r\n if (name === WINDOW) {\r\n // tslint:disable-next-line: no-angle-bracket-type-assertion\r\n try {\r\n return window as T;\r\n } catch (e) {\r\n // Ignore\r\n }\r\n }\r\n\r\n return NULL_VALUE;\r\n}\r\n\r\n/**\r\n * Identify whether the runtime contains a `document` object\r\n * @group Environment\r\n * @returns - True if a `document` exists\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function hasDocument(): boolean {\r\n return !!( /*#__PURE__*/getDocument());\r\n}\r\n\r\n/**\r\n * Return the global `document` instance.\r\n * @group Environment\r\n * @returns\r\n */\r\nexport const getDocument = (/*#__PURE__*/_getGlobalInstFn(getInst, [\"document\"]));\r\n\r\n/**\r\n * Identify whether the runtime contains a `window` object\r\n * @group Environment\r\n * @returns\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function hasWindow(): boolean {\r\n return !!( /*#__PURE__*/getWindow());\r\n}\r\n\r\n/**\r\n * Return the global `window` instance.\r\n * @group Environment\r\n * @returns\r\n */\r\nexport const getWindow = (/*#__PURE__*/_getGlobalInstFn(getInst, [WINDOW]));\r\n\r\n/**\r\n * Identify whether the runtimne contains a `navigator` object\r\n * @group Environment\r\n * @returns\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function hasNavigator(): boolean {\r\n return !!( /*#__PURE__*/getNavigator());\r\n}\r\n\r\n/**\r\n * Returns the global `navigator` instance\r\n * @group Environment\r\n * @returns\r\n */\r\nexport const getNavigator = (/*#__PURE__*/_getGlobalInstFn(getInst, [\"navigator\"]));\r\n\r\n/**\r\n * Identifies whether the runtime contains a `history` object\r\n * @group Environment\r\n * @returns\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function hasHistory(): boolean {\r\n return !!( /*#__PURE__*/getHistory());\r\n}\r\n\r\n/**\r\n * Returns the global `history` instance\r\n * @group Environment\r\n * @returns\r\n */\r\nexport const getHistory = (/*#__PURE__*/_getGlobalInstFn(getInst, [\"history\"]));\r\n\r\n/**\r\n * Simple method to determine if we are running in a node environment\r\n * @group Environment\r\n * @returns True if you are\r\n */\r\nexport const isNode = (/*#__PURE__*/_getGlobalInstFn(() => {\r\n return !!( /*#__PURE__*/safe(() => (process && (process.versions||{}).node)).v);\r\n}));\r\n\r\n/**\r\n * Helper to identify if you are running as a Dedicated, Shared or Service worker\r\n * @group Environment\r\n * @returns True if the environment you are in looks like a Web Worker\r\n */\r\nexport const isWebWorker = (/*#__PURE__*/_getGlobalInstFn(() => {\r\n return !!( /*#__PURE__*/safe(() => self && self instanceof WorkerGlobalScope).v);\r\n}));\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { NULL_VALUE, SYMBOL, UNDEF_VALUE } from \"../internal/constants\";\r\nimport { polyGetKnownSymbol, polyNewSymbol, polySymbolFor, polySymbolKeyFor } from \"../polyfills/symbol\";\r\nimport { WellKnownSymbols, _wellKnownSymbolMap } from \"./well_known\";\r\nimport { _createIs } from \"../helpers/base\";\r\nimport { _globalLazyTestHooks, _initTestHooks } from \"../helpers/lazy\";\r\nimport { ICachedValue, createCachedValue } from \"../helpers/cache\";\r\nimport { safe } from \"../helpers/safe\";\r\nimport { getInst } from \"../helpers/environment\";\r\n\r\nlet _symbol: ICachedValue;\r\nlet _symbolFor: ICachedValue<(key: string) => symbol>;\r\nlet _symbolKeyFor: ICachedValue<(sym: symbol) => string | undefined>;\r\n\r\n/*#__NO_SIDE_EFFECTS__*/\r\nfunction _initSymbol() {\r\n _symbol = (/*#__PURE__*/createCachedValue(safe(getInst, [SYMBOL]).v));\r\n\r\n return _symbol;\r\n}\r\n\r\nfunction _getSymbolKey(key: string) {\r\n let gblSym = ((!_globalLazyTestHooks.lzy ? _symbol : 0) || _initSymbol());\r\n\r\n return (gblSym.v ? gblSym.v[key] : UNDEF_VALUE) as R;\r\n}\r\n\r\n/**\r\n * Checks if the type of value is a symbol.\r\n * @group Symbol\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a symbol, false otherwise.\r\n */\r\nexport const isSymbol: (value: any) => value is symbol = (/*#__PURE__*/_createIs(\"symbol\"));\r\n\r\n/**\r\n * Helper to identify whether the runtime support the Symbols either via native or an installed polyfill\r\n * @group Symbol\r\n * @returns true if Symbol's are support otherwise false\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function hasSymbol(): boolean {\r\n return !!( /*#__PURE__*/getSymbol());\r\n}\r\n\r\n/**\r\n * If Symbols are supported then attempt to return the named Symbol\r\n * @group Symbol\r\n * @returns The value of the named Symbol (if available)\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function getSymbol(): Symbol {\r\n !_globalLazyTestHooks && _initTestHooks();\r\n \r\n // Get the current lazy symbol or cause it to get initialized\r\n return ((!_globalLazyTestHooks.lzy ? _symbol : 0) || _initSymbol()).v;\r\n}\r\n\r\n/**\r\n * If Symbols are supported then get the property of the global Symbol, if Symbol's are\r\n * not supported and noPoly is true it returns null. Used to access the well known symbols.\r\n * @group Symbol\r\n * @param name - The property name to return (if it exists) for Symbol\r\n * @param noPoly - Flag indicating whether to return a polyfill if symbols are not supported.\r\n * @returns The value of the property if present\r\n * @example\r\n * ```ts\r\n * // If Symbol is supported in the runtime\r\n * getKnownSymbol(\"toStringTag\") === Symbol.toStringTag; // true\r\n * getKnownSymbol(WellKnownSymbols.toStringTag) === Symbol.toStringTag; // true\r\n * ```\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function getKnownSymbol(name: string | WellKnownSymbols, noPoly?: boolean): T {\r\n let knownName = _wellKnownSymbolMap[name];\r\n !_globalLazyTestHooks && _initTestHooks();\r\n\r\n // Get the current lazy symbol or cause it to get initialized\r\n let sym = ((!_globalLazyTestHooks.lzy ? _symbol : 0) || _initSymbol());\r\n \r\n return sym.v ? sym.v[knownName || name] : (!noPoly ? polyGetKnownSymbol(name) : UNDEF_VALUE);\r\n}\r\n\r\n/**\r\n * Returns a new unique Symbol value. If noPoly is true and symbols are not supported\r\n * then this will return null.\r\n * @group Symbol\r\n * @param description Description of the new Symbol object.\r\n * @param noPoly - Flag indicating whether to return a polyfil if symbols are not supported.\r\n * @returns The new symbol\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function newSymbol(description?: string | number, noPoly?: boolean): symbol {\r\n !_globalLazyTestHooks && _initTestHooks();\r\n\r\n // Get the current lazy symbol or cause it to get initialized\r\n let sym = ((!_globalLazyTestHooks.lzy ? _symbol : 0) || _initSymbol());\r\n\r\n return sym.v ? (sym.v as any)(description) : (!noPoly ? polyNewSymbol(description) : NULL_VALUE);\r\n}\r\n\r\n/**\r\n * Returns a Symbol object from the global symbol registry matching the given key if found.\r\n * Otherwise, returns a new symbol with this key. This will always return a polyfill if symbols\r\n * are not supported.\r\n * @group Symbol\r\n * @param key key to search for.\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function symbolFor(key: string): symbol {\r\n !_globalLazyTestHooks && _initTestHooks();\r\n\r\n // Cause lazy symbol to get initialized\r\n _symbolFor = ((!_globalLazyTestHooks.lzy ? _symbolFor : 0) || (/*#__PURE__*/createCachedValue(safe(_getSymbolKey, [\"for\"]).v)));\r\n\r\n return (_symbolFor.v || polySymbolFor)(key);\r\n}\r\n\r\n/**\r\n * Returns a key from the global symbol registry matching the given Symbol if found.\r\n * Otherwise, returns a undefined. This will always attempt to lookup the polyfill\r\n * implementation if symbols are not supported\r\n * @group Symbol\r\n * @param sym Symbol to find the key for.\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function symbolKeyFor(sym: symbol): string | undefined {\r\n !_globalLazyTestHooks && _initTestHooks();\r\n\r\n // Cause lazy symbol to get initialized\r\n _symbolKeyFor = ((!_globalLazyTestHooks.lzy ? _symbolKeyFor : 0) || (/*#__PURE__*/createCachedValue(safe(_getSymbolKey, [\"keyFor\"]).v)));\r\n\r\n return (_symbolKeyFor.v || polySymbolKeyFor)(sym);\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { ICachedValue, createCachedValue } from \"../helpers/cache\";\r\nimport { CALL, NULL_VALUE, UNDEF_VALUE } from \"../internal/constants\";\r\nimport { getKnownSymbol } from \"../symbol/symbol\";\r\nimport { WellKnownSymbols } from \"../symbol/well_known\";\r\nimport { isIterator } from \"./iterator\";\r\n\r\nlet _iterSymbol: ICachedValue;\r\n\r\n/**\r\n * Calls the provided `callbackFn` function once for each element in the iterator or iterator returned by\r\n * the iterable and processed in the same order as returned by the iterator. As with the {@link arrForEach}\r\n * you CAN stop / break the iteration by returning -1 from the`callbackFn` function.\r\n *\r\n * The order of processing is not reset if you add or remove elements to the iterator, the actual behavior\r\n * will depend on the iterator imeplementation.\r\n *\r\n * If the passed `iter` is both an Iterable and Iterator the Iterator interface takes preceedence.\r\n * @remarks\r\n * If Symbols are NOT supported then the iterable MUST be using the same polyFill for the well know symbols,\r\n * if you are targetting a mixed environment you SHOULD either\r\n * - only use the polyfill Symbol's provided by this library\r\n * - ensure that you add any symbol polyfills BEFORE these utilities\r\n * iterForOf expects a `synchronous` function.\r\n * iterForOf does not wait for promises. Make sure you are aware of the implications while using\r\n * promises (or async functions) as forEach callback.\r\n *\r\n * @since 0.4.2\r\n * @group Iterator\r\n * @typeParam T - Identifies the element type of the iterator\r\n * @param callbackfn A `synchronous` function that accepts up to three arguments. iterForOf calls the\r\n * callbackfn function one time for each element returned by the iterator.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is\r\n * omitted, null or undefined the iterator will be used as the this value.\r\n * @throws Any exception thrown while processing the iterator\r\n * @example\r\n * ```ts\r\n * const items = {\r\n * 'item1': 'value1',\r\n * 'item2': 'value2',\r\n * 'item3': 'value3\r\n * };\r\n * const copyItems = [];\r\n *\r\n * iterForOf(items, (item) => {\r\n * copyItems.push(item);\r\n * // May return -1 to abort the iteration\r\n * });\r\n * ```\r\n */\r\nexport function iterForOf(iter: Iterator | Iterable, callbackfn: (value: T, count?: number, iter?: Iterator) => void | number, thisArg?: any): void {\r\n if (iter) {\r\n if (!isIterator(iter)) {\r\n !_iterSymbol && (_iterSymbol = createCachedValue(getKnownSymbol(WellKnownSymbols.iterator)));\r\n iter = iter[_iterSymbol.v] ? iter[_iterSymbol.v]() : NULL_VALUE;\r\n }\r\n \r\n if (isIterator(iter)) {\r\n let err: { e: any } = UNDEF_VALUE;\r\n let iterResult: IteratorResult = UNDEF_VALUE;\r\n try {\r\n let count = 0;\r\n while(!(iterResult = iter.next()).done) {\r\n if (callbackfn[CALL](thisArg || iter, iterResult.value, count, iter) === -1) {\r\n break;\r\n }\r\n \r\n count++;\r\n }\r\n } catch (failed) {\r\n err = { e: failed };\r\n if (iter.throw) {\r\n iterResult = NULL_VALUE;\r\n iter.throw(err);\r\n }\r\n } finally {\r\n try {\r\n if (iterResult && !iterResult.done) {\r\n iter.return && iter.return(iterResult);\r\n }\r\n } finally {\r\n if (err) {\r\n // eslint-disable-next-line no-unsafe-finally\r\n throw err.e;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { getKnownSymbol } from \"../symbol/symbol\";\r\nimport { WellKnownSymbols } from \"../symbol/well_known\";\r\nimport { isFunction, isStrictNullOrUndefined } from \"../helpers/base\";\r\n\r\n/**\r\n * Checks if the type of value looks like an iterator instance (contains a next function).\r\n *\r\n * @since 0.4.0\r\n * @group Type Identity\r\n * @group Iterator\r\n * @typeParam T - Identifies the return type of the iterator defaults to any\r\n * @param value - The value to be checked\r\n * @returns {boolean} True if the value is an Iterator, otherwise false\r\n * @example\r\n * ```ts\r\n * isIterator(null); // false\r\n * isIterator(undefined); // false\r\n * isIterator(\"null\"); // false (Strings are iterable but not iterators)\r\n * isIterator([]); // false (Arrays are iterable but not iterators)\r\n * isIterator({\r\n * next: function() { return true }\r\n * }); // true, iterators must contain a \"next\" function\r\n * ```\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function isIterator(value: any): value is Iterator {\r\n return !!value && isFunction(value.next);\r\n}\r\n\r\n/**\r\n * Checks if the value looks like it is iterable, contains a [symbol.iterator].\r\n *\r\n * @since 0.4.0\r\n * @group Type Identity\r\n * @group Iterator\r\n * @typeParam T - Identifies the return type of the iterator\r\n * @param value - The value to be checked\r\n * @returns {boolean} True if the value is an Iterable, otherwise false\r\n * @example\r\n * ```ts\r\n * isIterable(null); // false\r\n * isIterable(undefined); // false\r\n * isIterable(\"null\"); // true (Strings are iterable)\r\n * isIterable([]); // true (Arrays are iterable)\r\n * ```\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function isIterable(value: any): value is Iterable {\r\n return !isStrictNullOrUndefined(value) && isFunction(value[getKnownSymbol(WellKnownSymbols.iterator)]);\r\n}","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2023 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { ArrSlice, CALL } from \"../internal/constants\";\r\n\r\n/**\r\n * The `fnApply` function calls the specified `fn` function with the given `thisArg` as the `this` value,\r\n * and the optional `argArray` arguments provided as an array (or an Array-Like Object).\r\n *\r\n * Normally, when calling a function, the value of `this` inside the function is the object that the\r\n * function was accessed on. With `fnApply()`, you can assign an arbitrary value as this when calling an\r\n * existing function, without first attaching the function to the object as a property. This allows you\r\n * to use methods of one object as generic utility functions.\r\n *\r\n * You can also use any kind of object which is ArrayLike as the second parameter. In practice, this means\r\n * that it needs to have a length property, and integer (\"index\") properties in the range (0..length - 1).\r\n * For example, you could use a NodeList, or a custom object like `{ 'length': 2, '0': 'eat', '1': 'bananas' }`.\r\n * You can also use `arguments`.\r\n *\r\n * @since 0.9.8\r\n * @group Function\r\n *\r\n * @param fn - The function to be called\r\n * @param thisArg - The value of `this` provided for the call to `fn`. If the function is not in strict mode,\r\n * `null` and `undefined` will be replaced with the global object, and primitive values will be converted to objects.\r\n * @param argArray - An array-like object, specifying the arguments with which `fn` should be called, or `null` or\r\n * `undefined` if no arguments should be provided to the function.\r\n * @returns The result of calling the function with the specified `this` value and arguments.\r\n * @example\r\n * ```ts\r\n * // min / max number in an array\r\n * let max = fnApply(Math.max, null, [ 21, 42, 84, 168, 7, 3 ]);\r\n * // 168\r\n *\r\n * let min = fnApply(Math.min, null, [ 21, 42, 84, 168, 7, 3 ]);\r\n * // 3\r\n *\r\n * const module1 = {\r\n * prefix: \"Hello\",\r\n * x: 21,\r\n * getX() {\r\n * return this.x;\r\n * },\r\n * log(value: string) {\r\n * return this.prefix + \" \" + value + \" : \" + this.x\r\n * }\r\n * };\r\n *\r\n * // The 'this' parameter of 'getX' is bound to 'module'.\r\n * module1.getX(); // 21\r\n * module1.log(\"Darkness\"); // Hello Darkness : 21\r\n *\r\n * // Create a new function 'boundGetX' with the 'this' parameter bound to 'module'.\r\n * let module2 = {\r\n * prefix: \"my\",\r\n * x: 42\r\n * };\r\n *\r\n * // Call the function of module1 with module2 as it's this\r\n * fnApply(module1.getX, module2); // 42\r\n * fnApply(module1.log, module2, [ \"friend\" ]); // my friend : 42\r\n * ```\r\n */\r\nexport function fnApply any, T>(fn: F, thisArg: T, argArray?: ArrayLike): ReturnType {\r\n return fn.apply(thisArg, argArray);\r\n}\r\n\r\n/**\r\n * The `fnCall` function calls the function with the given `thisArg` as the `this` value and with\r\n * al of the `_args` provided as it's `arguments.\r\n *\r\n * > This is almost identical to `fnApply`, except that the function arguments are passed to `fnCall`\r\n * individually as a list, while with `fnApply` that are combined into a single array argument.\r\n *\r\n * Normally, when calling a function, the value of `this` inside the function is the object that the\r\n * function was accessed on. With `fnCall()`, you can pass an arbitrary value as the `this` when calling an\r\n * existing function, without first attaching the function to the object as a property. This allows you\r\n * to use methods of one object as generic utility functions.\r\n *\r\n * @since 0.9.8\r\n * @group Function\r\n *\r\n * @param fn - The function to be called\r\n * @param thisArg - The value of `this` provided for the call to `fn`. If the function is not in strict mode,\r\n * `null` and `undefined` will be replaced with the global object, and primitive values will be converted to objects.\r\n * @param _args - The zero or more arguments to be passed to the `fn` function.\r\n * @returns The result of calling the function with the specified `this` value and arguments.\r\n * @example\r\n * ```ts\r\n * // min / max number in an array\r\n * let max = fnCall(Math.max, null, 21, 42, 84, 168, 7, 3);\r\n * // 168\r\n *\r\n * let min = fnCall(Math.min, null, 21, 42, 84, 168, 7, 3);\r\n * // 3\r\n *\r\n * const module1 = {\r\n * prefix: \"Hello\",\r\n * x: 21,\r\n * getX() {\r\n * return this.x;\r\n * },\r\n * log(value: string) {\r\n * return this.prefix + \" \" + value + \" : \" + this.x\r\n * }\r\n * };\r\n *\r\n * // The 'this' parameter of 'getX' is bound to 'module'.\r\n * module1.getX(); // 21\r\n * module1.log(\"Darkness\"); // Hello Darkness : 21\r\n *\r\n * // Create a new function 'boundGetX' with the 'this' parameter bound to 'module'.\r\n * let module2 = {\r\n * prefix: \"my\",\r\n * x: 42\r\n * };\r\n *\r\n * // Call the function of module1 with module2 as it's this\r\n * fnCall(module1.getX, module2); // 42\r\n * fnCall(module1.log, module2, \"friend\"); // my friend : 42\r\n * ```\r\n */\r\nexport function fnCall any, T>(fn: F, thisArg: T, ...argArray: any[]): ReturnType;\r\n\r\n/**\r\n * The `fnCall` function calls the function with the given `thisArg` as the `this` value and with\r\n * al of the `_args` provided as it's `arguments.\r\n *\r\n * > This is almost identical to `fnApply`, except that the function arguments are passed to `fnCall`\r\n * individually as a list, while with `fnApply` that are combined into a single array argument.\r\n *\r\n * Normally, when calling a function, the value of `this` inside the function is the object that the\r\n * function was accessed on. With `fnCall()`, you can pass an arbitrary value as the `this` when calling an\r\n * existing function, without first attaching the function to the object as a property. This allows you\r\n * to use methods of one object as generic utility functions.\r\n *\r\n * @since 0.9.8\r\n * @group Function\r\n *\r\n * @param fn - The function to be called\r\n * @param thisArg - The value of `this` provided for the call to `fn`. If the function is not in strict mode,\r\n * `null` and `undefined` will be replaced with the global object, and primitive values will be converted to objects.\r\n * @param _args - The zero or more arguments to be passed to the `fn` function.\r\n * @returns The result of calling the function with the specified `this` value and arguments.\r\n * @example\r\n * ```ts\r\n * const module1 = {\r\n * prefix: \"Hello\",\r\n * x: 21,\r\n * getX() {\r\n * return this.x;\r\n * },\r\n * log(value: string) {\r\n * return this.prefix + \" \" + value + \" : \" + this.x\r\n * }\r\n * };\r\n *\r\n * // The 'this' parameter of 'getX' is bound to 'module'.\r\n * module1.getX(); // 21\r\n * module1.log(\"Darkness\"); // Hello Darkness : 21\r\n *\r\n * // Create a new function 'boundGetX' with the 'this' parameter bound to 'module'.\r\n * let module2 = {\r\n * prefix: \"my\",\r\n * x: 42\r\n * };\r\n *\r\n * // Call the function of module1 with module2 as it's this\r\n * fnCall(module1.getX, module2); // 42\r\n * fnCall(module1.log, module2, \"friend\"); // my friend : 42\r\n * ```\r\n */\r\nexport function fnCall any, T>(fn: F, thisArg: T): ReturnType {\r\n return fn.apply(thisArg, ArrSlice[CALL](arguments, 2));\r\n}\r\n\r\n/**\r\n * Creates a new function that when called will set the value of `thisArg` as the `this` keyword\r\n * value whrn calling the provided `fn` instance, and all of the arguments passed to the new\r\n * function will be passed along to the original provided instance.\r\n * @param fn - The function instance to be called\r\n * @param thisArg - The value to be used as the `this` when calling the `fn`\r\n * @returns The value returned by the original `fn` after executing with the provided `thisArg`.\r\n * @since 0.9.8\r\n * @group Function\r\n * @example\r\n * ```ts\r\n * const module1 = {\r\n * x: 21,\r\n * getX() {\r\n * return this.x;\r\n * },\r\n * };\r\n *\r\n * // The 'this' parameter of 'getX' is bound to 'module'.\r\n * console.log(module1.getX()); // 21\r\n *\r\n * // Create a new function 'boundGetX' with the 'this' parameter bound to 'module'.\r\n * let module2 = {\r\n * x: 42\r\n * };\r\n *\r\n * module2.getX = fnBind(module1.getX, module2);\r\n * module2.getX(); // 42\r\n *\r\n * // It can also be used to proxy to the original function from the new one\r\n * module2.getX = fnBind(module1.getX, module1);\r\n * module2.getX(); // 21\r\n * ```\r\n */\r\nexport function fnBind(fn: F, thisArg: T, ...argArray: any[]): F;\r\n\r\n/**\r\n * Creates a new function that when called will set the value of `thisArg` as the `this` keyword\r\n * value whrn calling the provided `fn` instance, and all of the arguments passed to the new\r\n * function will be passed along to the original provided instance.\r\n * @param fn - The function instance to be called\r\n * @param thisArg - The value to be used as the `this` when calling the `fn`\r\n * @returns The value returned by the original `fn` after executing with the provided `thisArg`.\r\n * @since 0.9.8\r\n * @group Function\r\n * @example\r\n * ```ts\r\n * const module1 = {\r\n * x: 21,\r\n * getX() {\r\n * return this.x;\r\n * },\r\n * };\r\n *\r\n * // The 'this' parameter of 'getX' is bound to 'module'.\r\n * console.log(module1.getX()); // 21\r\n *\r\n * // Create a new function 'boundGetX' with the 'this' parameter bound to 'module'.\r\n * let module2 = {\r\n * x: 42\r\n * };\r\n *\r\n * module2.getX = fnBind(module1.getX, module2);\r\n * module2.getX(); // 42\r\n *\r\n * // It can also be used to proxy to the original function from the new one\r\n * module2.getX = fnBind(module1.getX, module1);\r\n * module2.getX(); // 21\r\n * ```\r\n */\r\nexport function fnBind(fn: F, thisArg: T): F {\r\n return fn.bind.apply(fn, ArrSlice[CALL](arguments, 1));\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { isArray, isUndefined } from \"../helpers/base\";\r\nimport { isIterable, isIterator } from \"../iterator/iterator\";\r\nimport { iterForOf } from \"../iterator/forOf\";\r\nimport { fnApply } from \"../funcs/funcs\";\r\n\r\n/**\r\n * Appends the `elms` to the `target` where the elms may be an array, a single object\r\n * or an iterator object\r\n * @group Array\r\n * @group Iterator\r\n * @example\r\n * ```ts\r\n * let theArray = arrAppend([], 1);\r\n * arrAppend(theArray, [ 2, 3, 4 ]);\r\n * arrAppend(theArray, [ \"a\", \"b\", \"c\" ]);\r\n * // theArray is now [ 1, 2, 3, 4, \"a\", \"b\", \"c\" ]\r\n * ```\r\n * @param target - The target array\r\n * @param elms - The item, array of items an iterable or iterator object of items to add to the target\r\n * @returns The passed in target array\r\n * @example\r\n * ```ts\r\n * // Adding a single value\r\n * arrAppend([], undefined); // []\r\n * arrAppend([], 0); // [ 0 ]\r\n * arrAppend([1], undefined); // [ 1 ]\r\n * arrAppend([1], 2); // [ 1, 2 ]\r\n *\r\n * // Adding an array\r\n * arrAppend([], [] as number[]); // []\r\n * arrAppend([], [0]); // [ 0 ]\r\n * arrAppend([1], []); // [ 1 ]\r\n * arrAppend([1], [2]); // [ 1, 2 ]\r\n *\r\n * // Adding with an iterator\r\n * arrAppend([], ([] as number[]).values()); // []\r\n * arrAppend([], [0].values()); // [ 0 ]\r\n * arrAppend([1], [].keys()); // [ 1 ]\r\n * arrAppend([1], [2].values()); // [ 1, 2 ]\r\n * arrAppend([1], [2].keys()); // [ 1, 0 ] - 0 is from the index from the first element\r\n * ```\r\n */\r\nexport function arrAppend(target: T[], elms: T | T[] | Iterator): T[] {\r\n if (!isUndefined(elms) && target) {\r\n if (isArray(elms)) {\r\n // This is not just \"target.push(elms)\" but becomes effectively \"target.push(elms[0], elms[1], ...)\"\r\n fnApply(target.push, target, elms);\r\n } else if (isIterator(elms) || isIterable(elms)) {\r\n iterForOf(elms, (elm) => {\r\n target.push(elm);\r\n });\r\n } else {\r\n target.push(elms);\r\n }\r\n }\r\n\r\n return target;\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { CALL, LENGTH } from \"../internal/constants\";\r\n\r\n/**\r\n * Calls the provided `callbackFn` function once for each element in an array in ascending index order. It is not invoked for index properties\r\n * that have been deleted or are uninitialized. And unlike the ES6 forEach() you CAN stop or break the iteration by returning -1 from the\r\n * `callbackFn` function.\r\n *\r\n * The range (number of elements) processed by arrForEach() is set before the first call to the `callbackFn`. Any elements added beyond the range\r\n * or elements which as assigned to indexes already processed will not be visited by the `callbackFn`.\r\n * @group Array\r\n * @group ArrayLike\r\n * @typeParam T - Identifies the element type of the array\r\n * @param theArray - The array or array like object of elements to be searched.\r\n * @param callbackfn A `synchronous` function that accepts up to three arguments. arrForEach calls the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, null or undefined\r\n * the array will be used as the this value.\r\n * @remarks\r\n * arrForEach expects a `synchronous` function.\r\n * arrForEach does not wait for promises. Make sure you are aware of the implications while using promises (or async functions) as forEach callback.\r\n * @example\r\n * ```ts\r\n * const items = ['item1', 'item2', 'item3'];\r\n * const copyItems = [];\r\n *\r\n * // before using for loop\r\n * for (let i = 0; i < items.length; i++) {\r\n * copyItems.push(items[i]);\r\n * }\r\n *\r\n * // before using forEach()\r\n * items.forEach((item) => {\r\n * copyItems.push(item);\r\n * });\r\n *\r\n * // after\r\n * arrForEach(items, (item) => {\r\n * copyItems.push(item);\r\n * // May return -1 to abort the iteration\r\n * });\r\n *\r\n * // Also supports input as an array like object\r\n * const items = { length: 3, 0: 'item1', 1: 'item2', 2: 'item3' };\r\n * ```\r\n */\r\nexport function arrForEach(theArray: ArrayLike, callbackfn: (value: T, index: number, array: T[]) => void | number, thisArg?: any): void {\r\n if (theArray) {\r\n const len = theArray[LENGTH] >>> 0;\r\n for (let idx = 0; idx < len; idx++) {\r\n if (idx in theArray) {\r\n if (callbackfn[CALL](thisArg || theArray, theArray[idx], idx, theArray) === -1) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { ArrProto } from \"../internal/constants\";\r\nimport { _unwrapFunction } from \"../internal/unwrapFunction\";\r\n\r\n/**\r\n * The arrIndexOf() method returns the first index at which a given element can be found in the array,\r\n * or -1 if it is not present.\r\n * `arrIndexOf()` compares searchElement to elements of the Array using strict equality (the same\r\n * method used by the === or triple-equals operator).\r\n * @group Array\r\n * @group ArrayLike\r\n * @typeParam T - Identifies the type of array elements\r\n * @param theArray - The array or array like object of elements to be searched.\r\n * @param searchElement - The element to locate in the array.\r\n * @param fromIndex - The index to start the search at. If the index is greater than or equal to\r\n * the array's length, -1 is returned, which means the array will not be searched. If the provided\r\n * index value is a negative number, it is taken as the offset from the end of the array.\r\n * Note: if the provided index is negative, the array is still searched from front to back. If the\r\n * provided index is 0, then the whole array will be searched. Default: 0 (entire array is searched).\r\n * @return The first index of the element in the array; -1 if not found.\r\n * @example\r\n * ```ts\r\n * const array = [2, 9, 9];\r\n * arrIndexOf(array, 2); // 0\r\n * arrIndexOf(array, 7); // -1\r\n * arrIndexOf(array, 9, 2); // 2\r\n * arrIndexOf(array, 2, -1); // -1\r\n * arrIndexOf(array, 2, -3); // 0\r\n *\r\n * let indices: number[] = [];\r\n * const array = ['a', 'b', 'a', 'c', 'a', 'd'];\r\n * const element = 'a';\r\n * let idx = arrIndexOf(array, element);\r\n * while (idx !== -1) {\r\n * indices.push(idx);\r\n * idx = arrIndexOf(array, element, idx + 1);\r\n * }\r\n * console.log(indices);\r\n * // [0, 2, 4]\r\n *\r\n * function updateVegetablesCollection (veggies, veggie) {\r\n * if (arrIndexOf(veggies, veggie) === -1) {\r\n * veggies.push(veggie);\r\n * console.log('New veggies collection is : ' + veggies);\r\n * } else {\r\n * console.log(veggie + ' already exists in the veggies collection.');\r\n * }\r\n * }\r\n *\r\n * let veggies = ['potato', 'tomato', 'chillies', 'green-pepper'];\r\n *\r\n * updateVegetablesCollection(veggies, 'spinach');\r\n * // New veggies collection is : potato,tomato,chillies,green-pepper,spinach\r\n * updateVegetablesCollection(veggies, 'spinach');\r\n * // spinach already exists in the veggies collection.\r\n *\r\n * // Array Like\r\n * let arrayLike = {\r\n * length: 3,\r\n * 0: \"potato\",\r\n * 1: \"tomato\",\r\n * 2: \"chillies\",\r\n * 3: \"green-pepper\" // Not checked as index is > length\r\n * };\r\n *\r\n * arrIndexOf(arrayLike, \"potato\"); // 0\r\n * arrIndexOf(arrayLike, \"tomato\"); // 1\r\n * arrIndexOf(arrayLike, \"chillies\"); 2\r\n * arrIndexOf(arrayLike, \"green-pepper\"); // -1\r\n * ```\r\n */\r\nexport const arrIndexOf: (theArray: ArrayLike, searchElement: T, fromIndex?: number) => number = (/*#__PURE__*/_unwrapFunction(\"indexOf\", ArrProto));\r\n\r\n/**\r\n * The arrLastIndexOf() method returns the last index at which a given element can be found in the array,\r\n * or -1 if it is not present.\r\n * `arrLastIndexOf()` compares searchElement to elements of the Array using strict equality (the same\r\n * method used by the === or triple-equals operator). [NaN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN)\r\n * values are never compared as equal, so arrLastIndexOf() always returns -1 when searchElement is NaN.\r\n *\r\n * The arrLastIndexOf() method skips empty slots in sparse arrays.\r\n *\r\n * The arrLastIndexOf() method is generic. It only expects the this value to have a length property and integer-keyed properties.\r\n *\r\n * @since 0.8.0\r\n * @group Array\r\n * @group ArrayLike\r\n * @typeParam T - Identifies the type of array elements\r\n * @param theArray - The array or array like object of elements to be searched.\r\n * @param searchElement - The element to locate in the array.\r\n * @param fromIndex - Zero-based index at which to start searching backwards, converted to an integer.\r\n * - Negative index counts back from the end of the array — if fromIndex < 0, fromIndex + array.length is used.\r\n * - If fromIndex < -array.length, the array is not searched and -1 is returned. You can think of it conceptually\r\n * as starting at a nonexistent position before the beginning of the array and going backwards from there. There\r\n * are no array elements on the way, so searchElement is never found.\r\n * - If fromIndex >= array.length or fromIndex is omitted, array.length - 1 is used, causing the entire array to\r\n * be searched. You can think of it conceptually as starting at a nonexistent position beyond the end of the array and going backwards from there. It eventually reaches the real end position of the array, at which point it starts searching backwards through the actual array elements.\r\n * @return The first index of the element in the array; -1 if not found.\r\n * @example\r\n * ```ts\r\n * const numbers = [2, 5, 9, 2];\r\n * arrLastIndexOf(numbers, 2); // 3\r\n * arrLastIndexOf(numbers, 7); // -1\r\n * arrLastIndexOf(numbers, 2, 3); // 3\r\n * arrLastIndexOf(numbers, 2, 2); // 0\r\n * arrLastIndexOf(numbers, 2, -2); // 0\r\n * arrLastIndexOf(numbers, 2, -1); // 3\r\n *\r\n * let indices: number[] = [];\r\n * const array = [\"a\", \"b\", \"a\", \"c\", \"a\", \"d\"];\r\n * const element = \"a\";\r\n * let idx = arrLastIndexOf(array, element);\r\n * while (idx !== -1) {\r\n * indices.push(idx);\r\n * idx = arrLastIndexOf(array, element, idx ? idx - 1 : -(array.length + 1));\r\n * }\r\n * console.log(indices);\r\n * // [4, 2, 0]\r\n *\r\n * function updateVegetablesCollection (veggies, veggie) {\r\n * if (arrLastIndexOf(veggies, veggie) === -1) {\r\n * veggies.push(veggie);\r\n * console.log('New veggies collection is : ' + veggies);\r\n * } else {\r\n * console.log(veggie + ' already exists in the veggies collection.');\r\n * }\r\n * }\r\n *\r\n * let veggies = ['potato', 'tomato', 'chillies', 'green-pepper'];\r\n *\r\n * updateVegetablesCollection(veggies, 'spinach');\r\n * // New veggies collection is : potato,tomato,chillies,green-pepper,spinach\r\n * updateVegetablesCollection(veggies, 'spinach');\r\n * // spinach already exists in the veggies collection.\r\n *\r\n * // Array Like\r\n * let arrayLike = {\r\n * length: 3,\r\n * 0: \"potato\",\r\n * 1: \"tomato\",\r\n * 2: \"chillies\",\r\n * 3: \"green-pepper\" // Not checked as index is > length\r\n * };\r\n *\r\n * arrLastIndexOf(arrayLike, \"potato\"); // 0\r\n * arrLastIndexOf(arrayLike, \"tomato\"); // 1\r\n * arrLastIndexOf(arrayLike, \"chillies\"); 2\r\n * arrLastIndexOf(arrayLike, \"green-pepper\"); // -1\r\n * ```\r\n */\r\nexport const arrLastIndexOf: (theArray: ArrayLike, searchElement: T, fromIndex?: number) => number = (/*#__PURE__*/_unwrapFunction(\"lastIndexOf\", ArrProto));","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { ArrProto } from \"../internal/constants\";\r\nimport { _unwrapFunction } from \"../internal/unwrapFunction\";\r\nimport { ArrMapCallbackFn } from \"./callbacks\";\r\n\r\n/**\r\n * The arrMap() method creates a new array populated with the results of calling a provided function on every\r\n * element in the calling array.\r\n *\r\n * `arrMap` calls a provided callbackFn function once for each element in an array, in order, and constructs\r\n * a new array from the results. callbackFn is invoked only for indexes of the array which have assigned\r\n * values (including undefined).\r\n *\r\n * It is not called for missing elements of the array; that is:\r\n * - indexes that have never been set;\r\n * - indexes which have been deleted.\r\n *\r\n * @since 0.3.3\r\n * @group Array\r\n * @group ArrayLike\r\n * @typeParam T - Identifies the type of the array elements\r\n * @typeParam R - Identifies the type of the elements returned by the callback function, defaults to T.\r\n * @param theArray - The array or array like object of elements to be searched.\r\n * @param callbackFn - The function that is called for evetn element of `theArray`.\r\n * @param thisArg - The value to use as the `this` when executing the `callbackFn`.\r\n * @example\r\n * ```ts\r\n * const numbers = [1, 4, 9];\r\n * const roots = arrMap(numbers, (num) => Math.sqrt(num));\r\n *\r\n * // roots is now [1, 2, 3]\r\n * // numbers is still [1, 4, 9]\r\n *\r\n * const kvArray = [{ key: 1, value: 10 },\r\n * { key: 2, value: 20 },\r\n * { key: 3, value: 30 }];\r\n *\r\n * const reformattedArray = arrMap(kvArray, ({ key, value}) => ({ [key]: value }));\r\n *\r\n * // reformattedArray is now [{1: 10}, {2: 20}, {3: 30}],\r\n *\r\n * // kvArray is still:\r\n * // [{key: 1, value: 10},\r\n * // {key: 2, value: 20},\r\n * // {key: 3, value: 30}]\r\n *\r\n * // Also supports Array Like objects with same output\r\n * const kvArray = {\r\n * length: 3,\r\n * 0: { key: 1, value: 10 },\r\n * 1: { key: 2, value: 20 },\r\n * 2: { key: 3, value: 30 }\r\n * };\r\n * ```\r\n */\r\nexport const arrMap: (theArray: ArrayLike, callbackFn: ArrMapCallbackFn, thisArg?: any) => R[] = (/*#__PURE__*/_unwrapFunction(\"map\", ArrProto));\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { ArrSlice, CALL, NULL_VALUE } from \"../internal/constants\";\r\n\r\n/**\r\n * The arrSlice() method returns a shallow copy of a portion of an array into a new array object\r\n * selected from start to end (end not included) where start and end represent the index of items\r\n * in that array. The original array will not be modified.\r\n *\r\n * The `arrSlice()` method is a copying method. It does not alter this but instead returns a shallow\r\n * copy that contains some of the same elements as the ones from the original array.\r\n *\r\n * The `arrSlice()` method preserves empty slots. If the sliced portion is sparse, the returned arra\r\n * is sparse as well.\r\n *\r\n * The `arrSlice()` method is generic. It only expects the this value to have a length property and\r\n * integer-keyed properties.\r\n *\r\n * For both start and end, a negative index can be used to indicate an offset from the end of the array.\r\n * For example, -2 refers to the second to last element of the array.\r\n * @since 0.9.3\r\n * @group Array\r\n * @group ArrayLike\r\n * @param start Zero-based index at which to start extraction, converted to an integer.\r\n * - Negative index counts back from the end of the array — if start < 0, start + array.length is used.\r\n * - If start < -array.length or start is omitted, 0 is used.\r\n * - If start >= array.length, nothing is extracted.\r\n * @param end Zero-based index at which to end extraction, converted to an integer. slice() extracts\r\n * up to but not including end.\r\n * - Negative index counts back from the end of the array — if end < 0, end + array.length is used.\r\n * - If end < -array.length, 0 is used.\r\n * - If end >= array.length or end is omitted, array.length is used, causing all elements until the\r\n * end to be extracted.\r\n * - If end is positioned before or at start after normalization, nothing is extracted.\r\n * @example\r\n * ```ts\r\n * const lyrics = [\"Hello\", \"Darkness\", \"my\", \"old\", \"friend.\", \"I've\", \"come\", \"to\", \"talk\" ];\r\n *\r\n * arrSlice(lyrics); // [ \"Hello\", \"Darkness\", \"my\", \"old\", \"friend.\", \"I've\", \"come\", \"to\", \"talk\" ]\r\n * arrSlice(lyrics, 1, 3); // [ \"Darkness\", \"my\" ]\r\n * arrSlicw(lyrics, 2); // [ \"my\", \"old\", \"friend.\", \"I've\", \"come\", \"to\", \"talk\" ]\r\n * arrSlice(lyrics, 2, 4); // [ \"my\", \"old\" ]\r\n * arrSlice(lyrics, 1, 5); // [ \"Darkness\", \"my\", \"old\", \"friend.\" ]\r\n * arrSlice(lyrics, -2); // [ \"to\", \"talk\" ]\r\n * arrSlice(lyrics, 2, -1); // [ \"my\", \"old\", \"friend.\", \"I've\", \"come\", \"to\" ]\r\n * ```\r\n */\r\nexport function arrSlice(theArray: ArrayLike, start?: number, end?: number): T[] {\r\n return ((theArray ? theArray[\"slice\"] : NULL_VALUE) || ArrSlice).apply(theArray, ArrSlice[CALL](arguments, 1));\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { ArrProto } from \"../internal/constants\";\r\nimport { _unwrapFunctionWithPoly } from \"../internal/unwrapFunction\";\r\nimport { polyArrFind, polyArrFindIndex, polyArrFindLast, polyArrFindLastIndex } from \"../polyfills/array\";\r\nimport { ArrPredicateCallbackFn, ArrPredicateCallbackFn2 } from \"./callbacks\";\r\n\r\n/**\r\n * The arrFind() method returns the first element in the provided array that satisfies\r\n * the provided testing function. If no values satisfy the testing function, undefined\r\n * is returned.\r\n * - If you need the index of the found element in the array, use {@link arrFindIndex}.\r\n * - If you need to find the index of a value, use arrIndexOf(). (It's similar to {@link arrFindIndex}, but\r\n * checks each element for equality with the value instead of using a testing function.)\r\n * - If you need to find if a value exists in an array, use {@link arrIncludes}. Again, it checks each element for\r\n * equality with the value instead of using a testing function.\r\n * - If you need to find if any element satisfies the provided testing function, use {@link arrSome}.\r\n *\r\n * The arrFind() method is an iterative method. It calls a provided `callbackFn` function once for each element\r\n * in an array in ascending-index order, until `callbackFn` returns a truthy value. arrFind() then returns that\r\n * element and stops iterating through the array. If callbackFn never returns a truthy value, arrFind() returns\r\n * undefined.\r\n *\r\n * `callbackFn` is invoked for every index of the array, not just those with assigned values. Empty slots in\r\n * sparse arrays behave the same as undefined.\r\n *\r\n * arrFind() does not mutate the array on which it is called, but the function provided as callbackFn can.\r\n * Note, however, that the length of the array is saved before the first invocation of `callbackFn`. Therefore:\r\n * - `callbackFn` will not visit any elements added beyond the array's initial length when the call to arrFind() began.\r\n * - Changes to already-visited indexes do not cause callbackFn to be invoked on them again.\r\n * - If an existing, yet-unvisited element of the array is changed by callbackFn, its value passed to the\r\n * `callbackFn` will be the value at the time that element gets visited. Deleted elements are visited as if they\r\n * were undefined.\r\n * @since 0.8.0\r\n * @group Array\r\n * @group ArrayLike\r\n * @typeParam T - Identifies the base type of array elements\r\n * @typeParam E - Identifies a more specific instance of the base array type\r\n * @param theArray - The array or array like object of elements to be searched.\r\n * @param callbackFn A function that accepts up to three arguments of type {@link ArrPredicateCallbackFn} or\r\n * {@link ArrPredicateCallbackFn2}. The predicate function is called for each element in the thArray until\r\n * the predicate returns a value which is coercible to the Boolean value false, or until the end of the array.\r\n * @param thisArg - A value to use as this when executing callbackFn. Defaults to the array if not provided.\r\n * @return The first element in the array that satisfies the provided testing function. Otherwise, undefined\r\n * is returned.\r\n * @example\r\n * ```ts\r\n * const inventory = [\r\n * { name: \"apples\", quantity: 2 },\r\n * { name: \"bananas\", quantity: 0 },\r\n * { name: \"cherries\", quantity: 5 },\r\n * ];\r\n *\r\n * function isCherries(fruit) {\r\n * return fruit.name === \"cherries\";\r\n * }\r\n *\r\n * console.log(arrFind(inventory, isCherries));\r\n * // { name: 'cherries', quantity: 5 }\r\n *\r\n * function isPrime(element, index, array) {\r\n * let start = 2;\r\n * while (start <= Math.sqrt(element)) {\r\n * if (element % start++ < 1) {\r\n * return false;\r\n * }\r\n * }\r\n * return element > 1;\r\n * }\r\n *\r\n * console.log(arrFind([4, 6, 8, 12], isPrime)); // undefined, not found\r\n * console.log(arrFind([4, 5, 8, 12], isPrime)); // 5\r\n *\r\n * // Array Like\r\n * console.log(arrFind({ length: 4, 0: 4, 1: 6, 2: 8, 3: 12 }, isPrime)); // undefined, not found\r\n * console.log(arrFind({ length: 4:, 0: 4, 1: 5, 2: 8, 3: 12 }, isPrime)); // 5\r\n * ```\r\n */\r\nexport const arrFind = (/*#__PURE__*/_unwrapFunctionWithPoly(\"find\", ArrProto, polyArrFind) as (theArray: ArrayLike, callbackFn: ArrPredicateCallbackFn | ArrPredicateCallbackFn2, thisArg?: any) => T | E | undefined);\r\n\r\n/**\r\n * The arrFindIndex() method returns the index of the first element in an array that satisfies the provided testing\r\n * function. If no elements satisfy the testing function, -1 is returned.\r\n *\r\n * The arrFindIndex() is an iterative method. It calls a provided callbackFn function once for each element in an\r\n * array in ascending-index order, until callbackFn returns a truthy value. arrFindIndex() then returns the index\r\n * of that element and stops iterating through the array. If `callbackFn` never returns a truthy value, arrFindIndex()\r\n * returns -1.\r\n *\r\n * `callbackFn` is invoked for every index of the array, not just those with assigned values. Empty slots in sparse\r\n * arrays behave the same as undefined.\r\n *\r\n * arrFindIndex() does not mutate the array on which it is called, but the function provided as `callbackFn` can.\r\n * Note, however, that the length of the array is saved before the first invocation of callbackFn. Therefore:\r\n * - `callbackFn` will not visit any elements added beyond the array's initial length when the call to arrFindIndex() began.\r\n * - Changes to already-visited indexes do not cause `callbackFn` to be invoked on them again.\r\n * If an existing, yet-unvisited element of the array is changed by `callbackFn`, its value passed to the `callbackFn`\r\n * will be the value at the time that element gets visited. Deleted elements are visited as if they were undefined.\r\n * @since 0.8.0\r\n * @group Array\r\n * @group ArrayLike\r\n * @typeParam T - Identifies the base type of array elements\r\n * @typeParam E - Identifies a more specific instance of the base array type\r\n * @param theArray - The array or array like object of elements to be searched.\r\n * @param callbackFn A function that accepts up to three arguments of type {@link ArrPredicateCallbackFn} or\r\n * {@link ArrPredicateCallbackFn2}. The predicate function is called for each element in the thArray until\r\n * the predicate returns a value which is coercible to the Boolean value false, or until the end of the array.\r\n * @param thisArg - A value to use as this when executing callbackFn. Defaults to the array if not provided.\r\n * @return The index of the first element in the array that passes the test. Otherwise, -1.\r\n * @example\r\n * ```ts\r\n * const inventory: Array<{ name: string, quantity: number}> = [\r\n * { name: \"apples\", quantity: 2 },\r\n * { name: \"bananas\", quantity: 0 },\r\n * { name: \"cherries\", quantity: 5 }\r\n * ];\r\n *\r\n * function isCherries(fruit: { name: string, quantity: number}) {\r\n * return fruit.name === \"cherries\";\r\n * }\r\n *\r\n * arrFindIndex(inventory, isCherries); // 2\r\n *\r\n * function isPrime(element: number) {\r\n * if (element % 2 === 0 || element < 2) {\r\n * return false;\r\n * }\r\n *\r\n * for (let factor = 3; factor <= Math.sqrt(element); factor += 2) {\r\n * if (element % factor === 0) {\r\n * return false;\r\n * }\r\n * }\r\n * return true;\r\n * }\r\n *\r\n * arrFindIndex([4, 6, 8, 9, 12], isPrime) // -1\r\n * arrFindIndex([4, 6, 7, 9, 12], isPrime) // 2\r\n *\r\n * // Array Like\r\n * arrFindIndex({ length: 5, 0: 4, 1: 6, 2: 8, 3: 9, 4: 12 }, isPrime) // -1\r\n * arrFindIndex({ length: 5:, 0: 4, 1: 6, 2: 7, 3: 9, 4: 12 }, isPrime) // 2\r\n * ```\r\n */\r\nexport const arrFindIndex = (/*#__PURE__*/_unwrapFunctionWithPoly(\"findIndex\", ArrProto, polyArrFindIndex) as (theArray: ArrayLike, callbackFn: ArrPredicateCallbackFn | ArrPredicateCallbackFn2, thisArg?: any) => number);\r\n\r\n/**\r\n * The arrFindLast() method iterates the array in reverse order and returns the value of the first element that\r\n * satisfies the provided testing function. If no elements satisfy the testing function, undefined is returned.\r\n * - If you need the index of the found element in the array, use arrFindLastIndex().\r\n * - If you need to find the index of a value, use arrLastIndexOf(). (It's similar to arrFindLastIndex(), but checks\r\n * each element for equality with the value instead of using a testing function.)\r\n * - If you need to find if a value exists in an array, use {@link arrIncludes}. Again, it checks each element for\r\n * equality with the value instead of using a testing function.\r\n * - If you need to find if any element satisfies the provided testing function, use {@link arrSome}.\r\n *\r\n * The arrFindLast() method is an iterative method. It calls a provided callbackFn function once for each element\r\n * in an array in descending-index order, until callbackFn returns a truthy value. arrFindLast() then returns that\r\n * element and stops iterating through the array. If `callbackFn` never returns a truthy value, arrFindLast() returns\r\n * undefined.\r\n *\r\n * `callbackFn` is invoked for every index of the array, not just those with assigned values. Empty slots in sparse\r\n * arrays behave the same as undefined.\r\n *\r\n * arrFindLast() does not mutate the array on which it is called, but the function provided as `callbackFn` can.\r\n * Note, however, that the length of the array is saved before the first invocation of `callbackFn`. Therefore:\r\n * - `callbackFn` will not visit any elements added beyond the array's initial length when the call to arrFindLast() began.\r\n * - Changes to already-visited indexes do not cause callbackFn to be invoked on them again.\r\n * - If an existing, yet-unvisited element of the array is changed by `callbackFn`, its value passed to the `callbackFn`\r\n * will be the value at the time that element gets visited. Deleted elements are visited as if they were undefined.\r\n * @since 0.8.0\r\n * @group Array\r\n * @group ArrayLike\r\n * @typeParam T - Identifies the base type of array elements\r\n * @typeParam E - Identifies a more specific instance of the base array type\r\n * @param theArray - The array or array like object of elements to be searched.\r\n * @param callbackFn A function that accepts up to three arguments of type {@link ArrPredicateCallbackFn} or\r\n * {@link ArrPredicateCallbackFn2}. The predicate function is called for each element in the thArray until\r\n * the predicate returns a value which is coercible to the Boolean value false, or until the end of the array.\r\n * @param thisArg - A value to use as this when executing callbackFn. Defaults to the array if not provided.\r\n * @return The last element in the array that satisfies the provided testing function. Otherwise, undefined\r\n * is returned.\r\n * @example\r\n * ```ts\r\n * const inventory = [\r\n * { name: \"apples\", quantity: 2 },\r\n * { name: \"bananas\", quantity: 0 },\r\n * { name: \"cherries\", quantity: 5 },\r\n * ];\r\n *\r\n * function isCherries(fruit) {\r\n * return fruit.name === \"cherries\";\r\n * }\r\n *\r\n * console.log(arrFindLast(inventory, isCherries));\r\n * // { name: 'cherries', quantity: 5 }\r\n *\r\n * function isPrime(element, index, array) {\r\n * let start = 2;\r\n * while (start <= Math.sqrt(element)) {\r\n * if (element % start++ < 1) {\r\n * return false;\r\n * }\r\n * }\r\n * return element > 1;\r\n * }\r\n *\r\n * console.log(arrFindLast([4, 6, 8, 12], isPrime)); // undefined, not found\r\n * console.log(arrFindLast([4, 5, 7, 12], isPrime)); // 7\r\n *\r\n * // Array Like\r\n * console.log(arrFindLast({ length: 4, 0: 4, 1: 6, 2: 8, 3: 12 }, isPrime)); // undefined, not found\r\n * console.log(arrFindLast({ length: 4, 0: 4, 1: 5, 2: 7, 3: 12 }, isPrime)); // 7\r\n * ```\r\n */\r\nexport const arrFindLast = (/*#__PURE__*/_unwrapFunctionWithPoly(\"findLast\", ArrProto as any, polyArrFindLast) as (theArray: ArrayLike, callbackFn: ArrPredicateCallbackFn | ArrPredicateCallbackFn2, thisArg?: any) => T | E | undefined);\r\n\r\n/**\r\n * The arrFindLastIndex() method iterates the array in reverse order and returns the index of the first element that\r\n * satisfies the provided testing function. If no elements satisfy the testing function, -1 is returned.\r\n *\r\n * The arrFindLastIndex() method is an iterative method. It calls a provided `callbackFn` function once for each element\r\n * in an array in descending-index order, until callbackFn returns a truthy value. arrFindLastIndex() then returns the\r\n * index of that element and stops iterating through the array. If callbackFn never returns a truthy value, returns -1.\r\n *\r\n * `callbackFn` is invoked for every index of the array, not just those with assigned values. Empty slots in sparse arrays\r\n * behave the same as undefined.\r\n *\r\n * arrFindLastIndex() does not mutate the array on which it is called, but the function provided as callbackFn can.\r\n * Note, however, that the length of the array is saved before the first invocation of callbackFn. Therefore:\r\n * - `callbackFn` will not visit any elements added beyond the array's initial length when the call to arrFindLastIndex() began.\r\n * - Changes to already-visited indexes do not cause callbackFn to be invoked on them again.\r\n * - If an existing, yet-unvisited element of the array is changed by `callbackFn`, its value passed to the callbackFn\r\n * will be the value at the time that element gets visited. Deleted elements are visited as if they were undefined.\r\n * @since 0.8.0\r\n * @group Array\r\n * @group ArrayLike\r\n * @typeParam T - Identifies the base type of array elements\r\n * @typeParam E - Identifies a more specific instance of the base array type\r\n * @param theArray - The array or array like object of elements to be searched.\r\n * @param callbackFn A function that accepts up to three arguments of type {@link ArrPredicateCallbackFn} or\r\n * {@link ArrPredicateCallbackFn2}. The predicate function is called for each element in the thArray until\r\n * the predicate returns a value which is coercible to the Boolean value false, or until the end of the array.\r\n * @param thisArg - A value to use as this when executing callbackFn. Defaults to the array if not provided.\r\n * @return The index of the last (highest-index) element in the array that passes the test. Otherwise -1 if\r\n * no matching element is found.\r\n * @example\r\n * ```ts\r\n * const inventory: Array<{ name: string, quantity: number}> = [\r\n * { name: \"apples\", quantity: 2 },\r\n * { name: \"bananas\", quantity: 0 },\r\n * { name: \"cherries\", quantity: 5 }\r\n * ];\r\n *\r\n * let called = 0;\r\n * function isCherries(fruit: { name: string, quantity: number}) {\r\n * called++;\r\n * return fruit.name === \"cherries\";\r\n * }\r\n *\r\n * arrFindLastIndex(inventory, isCherries)' // 2\r\n * // called === 1\r\n *\r\n * called = 0;\r\n * function isPrime(element: number) {\r\n * called++;\r\n * if (element % 2 === 0 || element < 2) {\r\n * return false;\r\n * }\r\n * for (let factor = 3; factor <= Math.sqrt(element); factor += 2) {\r\n * if (element % factor === 0) {\r\n * return false;\r\n * }\r\n * }\r\n * return true;\r\n * }\r\n *\r\n * arrFindLastIndex([4, 6, 8, 9, 12], isPrime); // -1\r\n * // called === 5\r\n *\r\n * called = 0;\r\n * arrFindLastIndex([4, 6, 7, 9, 12], isPrime); // 2\r\n * // called === 3\r\n *\r\n * // Array Like\r\n * called = 0;\r\n * arrFindLastIndex({ length: 5: 0: 4, 1: 6, 2: 8, 3: 9, 4: 12 }, isPrime); // -1\r\n * // called === 5\r\n *\r\n * called = 0;\r\n * arrFindLastIndex({ length: 5: 0: 4, 1: 6, 2: 7, 3: 9, 4: 12 }, isPrime); // 2\r\n * // called === 3\r\n\r\n * ```\r\n */\r\nexport const arrFindLastIndex = (/*#__PURE__*/_unwrapFunctionWithPoly(\"findLastIndex\", ArrProto as any, polyArrFindLastIndex) as (theArray: ArrayLike, callbackFn: ArrPredicateCallbackFn | ArrPredicateCallbackFn2, thisArg?: any) => number);\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { ArrProto } from \"../internal/constants\";\r\nimport { _unwrapFunction } from \"../internal/unwrapFunction\";\r\n\r\n/**\r\n * The `reducer` function called for {@link arrReduce}.\r\n * @group Array\r\n * @group ArrayLike\r\n * @typeParam T - Identifies the type of array elements\r\n * @typeParam R - Identifies the type of the return array elements (defaults to T)\r\n * @param previousValue - The value resulting from the previous call to callbackFn. On first call, initialValue if\r\n * specified, otherwise the value of array[0].\r\n * @param currentValue - The value of the current element. On first call, the value of array[0] if an initialValue\r\n * was specified, otherwise the value of array[1].\r\n * @param currentIndex - The index position of currentValue in the array. On first call, 0 if initialValue was\r\n * specified, otherwise 1.\r\n * @param array -The array being traversed.\r\n */\r\nexport type ArrReduceCallbackFn = (previousValue: T | R, currentValue: T, currentIndex: number, array: T[]) => R;\r\n\r\n/**\r\n * The arrReduce() method executes a user-supplied \"reducer\" callback function on each element of the array,\r\n * in order, passing in the return value from the calculation on the preceding element. The final result of\r\n * running the reducer across all elements of the array is a single value.\r\n *\r\n * The first time that the callback is run there is no \"return value of the previous calculation\". If supplied,\r\n * an initial value may be used in its place. Otherwise the array element at index 0 is used as the initial\r\n * value and iteration starts from the next element (index 1 instead of index 0).\r\n * @group Array\r\n * @group ArrayLike\r\n * @typeParam T - Identifies the type of array elements\r\n * @param theArray - The array or array like object of elements to be searched.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\r\n * @returns The value that results from running the \"reducer\" callback function to completion over the entire array.\r\n * @example\r\n * ```ts\r\n * const getMax = (a: number, b: number) => Math.max(a, b);\r\n *\r\n * // callback is invoked for each element in the array starting at index 0\r\n * arrReduce([1, 100], getMax, 50); // 100\r\n * arrReduce([ 50], getMax, 10); // 50\r\n *\r\n * // callback is invoked once for element at index 1\r\n * arrReduce([1, 100], getMax); // 100\r\n *\r\n * // callback is not invoked\r\n * arrReduce([ 50], getMax); // 50\r\n * arrReduce([ ], getMax, 1); // 1\r\n *\r\n * arrReduce([ ], getMax); // throws TypeError\r\n *\r\n * // Also supports Array like objects\r\n * arrReduce({ length: 2, 0: 1, 1: 100 }, getMax, 50); // 100\r\n * arrReduce({ length: 1, 0: 50 }, getMax, 10); // 50\r\n *\r\n * // callback is invoked once for element at index 1\r\n * arrReduce({ length: 2, 0: 1, 1: 100 }, getMax); // 100\r\n *\r\n * // callback is not invoked\r\n * arrReduce({ length: 1, 0: 50 }, getMax); // 50\r\n * arrReduce({ length: 0 }, getMax, 1); // 1\r\n * ```\r\n */\r\nexport const arrReduce: (theArray: ArrayLike, callbackfn: ArrReduceCallbackFn, initialValue?: T | R) => R = (/*#__PURE__*/_unwrapFunction(\"reduce\", ArrProto));\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { ICachedValue, createCachedValue } from \"../helpers/cache\";\r\nimport { ObjClass, __PROTO__ } from \"../internal/constants\";\r\nimport { objForEachKey } from \"./for_each_key\";\r\n\r\nlet _isProtoArray: ICachedValue;\r\n\r\n/**\r\n * The objSetPrototypeOf() method sets the prototype (i.e., the internal [Prototype] property) of a specified\r\n * object to another object or null.\r\n * @group Object\r\n * @param obj - The object which is to have it's prototype set.\r\n * @param proto - The object's new prototype (an object or null)\r\n * @returns The specified object.\r\n */\r\nexport function objSetPrototypeOf(obj: any, proto: object) {\r\n let fn = ObjClass[\"setPrototypeOf\"] ||\r\n // tslint:disable-next-line: only-arrow-functions\r\n function (d: any, b: any) {\r\n !_isProtoArray && (_isProtoArray = createCachedValue({ [__PROTO__]: [] } instanceof Array));\r\n _isProtoArray.v ? d[__PROTO__] = b : objForEachKey(b, (key: any, value: any) => d[key] = value );\r\n };\r\n\r\n return fn(obj, proto);\r\n}","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { FUNCTION, ObjClass, OBJECT, PROTOTYPE } from \"../internal/constants\";\r\nimport { dumpObj } from \"../helpers/diagnostics\";\r\nimport { throwTypeError } from \"../helpers/throw\";\r\nimport { _pureAssign, _pureRef } from \"../internal/treeshake_helpers\";\r\n\r\n/**\r\n * Creates an object that has the specified prototype, and that optionally contains specified properties. This helper exists to avoid adding a polyfil\r\n * for older browsers that do not define Object.create eg. ES3 only, IE8 just in case any page checks for presence/absence of the prototype implementation.\r\n * Note: For consistency this will not use the Object.create implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @group Object\r\n * @param obj Object to use as a prototype. May be null\r\n */\r\nexport const objCreate: (obj: any) => any = (/* #__PURE__*/_pureAssign((/* #__PURE__*/_pureRef(ObjClass as any, \"create\")), polyObjCreate));\r\n\r\n/**\r\n * Creates an object that has the specified prototype, and that optionally contains specified properties. This helper exists to avoid adding a polyfil\r\n * for older browsers that do not define Object.create eg. ES3 only, IE8 just in case any page checks for presence/absence of the prototype implementation.\r\n * Note: For consistency this will not use the Object.create implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @group Polyfill\r\n * @group Object\r\n * @param obj Object to use as a prototype. May be null\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function polyObjCreate(obj: any): any {\r\n if (!obj) {\r\n return {};\r\n }\r\n\r\n let type = typeof obj;\r\n if (type !== OBJECT && type !== FUNCTION) {\r\n throwTypeError(\"Prototype must be an Object or function: \" + dumpObj(obj));\r\n }\r\n\r\n function tempFunc() {}\r\n tempFunc[PROTOTYPE] = obj;\r\n\r\n return new (tempFunc as any)();\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { fnApply } from \"../funcs/funcs\";\r\nimport { ArrSlice, CALL, CONSTRUCTOR, NAME, NULL_VALUE, PROTOTYPE } from \"../internal/constants\";\r\nimport { objCreate } from \"../object/create\";\r\nimport { objDefine } from \"../object/define\";\r\nimport { objGetPrototypeOf } from \"../object/object\";\r\nimport { objSetPrototypeOf } from \"../object/set_proto\";\r\nimport { safe } from \"./safe\";\r\n\r\n/**\r\n * Defines the definition of the custom error constructor\r\n * Used by: {@link createCustomError}\r\n * @group Error\r\n */\r\nexport interface CustomErrorConstructor extends ErrorConstructor {\r\n new(message?: string): T;\r\n (message?: string): T;\r\n readonly prototype: T;\r\n}\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nfunction _createCustomError(name: string, d: any, b: any): T {\r\n safe(objDefine, [ d, NAME, { v: name, c: true, e: false }]);\r\n d = objSetPrototypeOf(d, b);\r\n function __() {\r\n this[CONSTRUCTOR] = d;\r\n safe(objDefine, [this, NAME, { v: name, c: true, e: false }]);\r\n }\r\n\r\n d[PROTOTYPE] = b === NULL_VALUE ? objCreate(b) : ((__ as any)[PROTOTYPE] = b[PROTOTYPE], new (__ as any)());\r\n\r\n return d;\r\n}\r\n\r\nfunction _setName(baseClass: any, name: string) {\r\n name && (baseClass[NAME] = name);\r\n //name && (baseClass[PROTOTYPE][NAME] = name);\r\n}\r\n\r\n/**\r\n * Create a Custom Error class which may be used to throw custom errors.\r\n * @group Error\r\n * @param name - The name of the Custom Error\r\n * @param constructCb - [Optional] An optional callback function to call when a\r\n * new Customer Error instance is being created.\r\n * @param errorBase - [Optional] (since v0.9.6) The error class to extend for this class, defaults to Error.\r\n * @returns A new Error `class`\r\n * @example\r\n * ```ts\r\n * import { createCustomError, isError } from \"@nevware21/ts-utils\";\r\n *\r\n * // For an error that just contains a message\r\n * let myCustomErrorError = createCustomError(\"MessageError\");\r\n *\r\n * try {\r\n * throw new myCustomErrorError(\"Error Message!\");\r\n * } catch(e) {\r\n * // e.name === MessageError\r\n * // isError(e) === true;\r\n * // Object.prototype.toString.call(e) === \"[object Error]\";\r\n * }\r\n *\r\n * // Or a more complex error object\r\n * interface MyCriticalErrorConstructor extends CustomErrorConstructor {\r\n * new(message: string, file: string, line: number, col: number): MyCriticalError;\r\n * (message: string, file: string, line: number, col: number): MyCriticalError;\r\n * }\r\n *\r\n * interface MyCriticalError extends Error {\r\n * readonly errorId: number;\r\n * readonly args: any[]; // Holds all of the arguments passed during construction\r\n * }\r\n *\r\n * let _totalErrors = 0;\r\n * let myCustomError = createCustomError(\"CriticalError\", (self, args) => {\r\n * _totalErrors++;\r\n * self.errorId = _totalErrors;\r\n * self.args = args;\r\n * });\r\n *\r\n * try {\r\n * throw new myCustomError(\"Not Again!\");\r\n * } catch(e) {\r\n * // e.name === CriticalError\r\n * // isError(e) === true;\r\n * // Object.prototype.toString.call(e) === \"[object Error]\";\r\n * }\r\n *\r\n * // ----------------------------------------------------------\r\n * // Extending another custom error class\r\n * // ----------------------------------------------------------\r\n *\r\n * let AppError = createCustomError(\"ApplicationError\");\r\n * let theAppError = new appError();\r\n *\r\n * isError(theAppError); // true\r\n * theAppError instanceof Error; // true\r\n * theAppError instanceof AppError; // true\r\n *\r\n * let StartupError = createCustomError(\"StartupError\", null, AppError);\r\n * let theStartupError = new StartupError();\r\n *\r\n * isError(theStartupError); // true\r\n * theStartupError instanceof Error; // true\r\n * theStartupError instanceof AppError; // true\r\n * theStartupError instanceof StartupError; // true\r\n * ```\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function createCustomError(\r\n name: string,\r\n constructCb?: ((self: any, args: IArguments) => void) | null,\r\n errorBase?: B): T {\r\n\r\n let theBaseClass = errorBase || Error;\r\n let orgName = theBaseClass[PROTOTYPE][NAME];\r\n let captureFn = Error.captureStackTrace;\r\n return _createCustomError(name, function (this: any) {\r\n let _this = this;\r\n let theArgs = arguments;\r\n try {\r\n safe(_setName, [theBaseClass, name]);\r\n let _self = fnApply(theBaseClass, _this, ArrSlice[CALL](theArgs)) || _this;\r\n if (_self !== _this) {\r\n // Looks like runtime error constructor reset the prototype chain, so restore it\r\n let orgProto = objGetPrototypeOf(_this);\r\n if (orgProto !== objGetPrototypeOf(_self)) {\r\n objSetPrototypeOf(_self, orgProto);\r\n }\r\n }\r\n\r\n // Make sure we only capture our stack details\r\n captureFn && captureFn(_self, _this[CONSTRUCTOR]);\r\n \r\n // Run the provided construction function\r\n constructCb && constructCb(_self, theArgs);\r\n \r\n return _self;\r\n } finally {\r\n safe(_setName, [theBaseClass, orgName]);\r\n }\r\n }, theBaseClass);\r\n}\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n */\r\nlet _unsupportedError: CustomErrorConstructor;\r\n\r\n/**\r\n * Throw a custom `UnsupportedError` Error instance with the given message.\r\n * @group Error\r\n * @param message - The message to include in the exception\r\n * @example\r\n * ```ts\r\n * import { throwUnsupported } from \"@nevware21/ts-utils\";\r\n *\r\n * if (!window) {\r\n * throwUnsupported(\"A window is needed for this operation\");\r\n * }\r\n * ```\r\n */\r\nexport function throwUnsupported(message?: string): never {\r\n if (!_unsupportedError) {\r\n // Lazily create the class\r\n _unsupportedError = createCustomError(\"UnsupportedError\");\r\n }\r\n\r\n throw new _unsupportedError(message);\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\n/**\r\n * Return the number of milliseconds that have elapsed since January 1, 1970 00:00:00 UTC.\r\n *\r\n * To offer protection against timing attacks and fingerprinting, the precision of utcNow()\r\n * might get rounded depending on browser settings. In Firefox, the privacy.reduceTimerPrecision\r\n * preference is enabled by default and defaults to 20µs in Firefox 59; in 60 it will be 2ms.\r\n *\r\n * @since 0.4.4\r\n * @group Timer\r\n *\r\n * @returns A Number representing the milliseconds elapsed since the UNIX epoch.\r\n * @example\r\n * ```ts\r\n * let now = utcNow();\r\n * ```\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function utcNow() {\r\n return (Date.now || polyUtcNow)();\r\n}\r\n\r\n/**\r\n * Polyfill fallback to return the number of milliseconds that have elapsed since January 1, 1970 00:00:00 UTC.\r\n *\r\n * To offer protection against timing attacks and fingerprinting, the precision of utcNow()\r\n * might get rounded depending on browser settings. In Firefox, the privacy.reduceTimerPrecision\r\n * preference is enabled by default and defaults to 20µs in Firefox 59; in 60 it will be 2ms.\r\n *\r\n * @since 0.4.4\r\n * @group Timer\r\n * @group Polyfill\r\n *\r\n * @returns A Number representing the milliseconds elapsed since the UNIX epoch.\r\n * @example\r\n * ```ts\r\n * let now = polyUtcNow();\r\n * ```\r\n*/\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function polyUtcNow() {\r\n return new Date().getTime();\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { isNullOrUndefined } from \"../helpers/base\";\r\nimport { dumpObj } from \"../helpers/diagnostics\";\r\nimport { throwTypeError } from \"../helpers/throw\";\r\nimport { EMPTY } from \"../internal/constants\";\r\n\r\n/*#__NO_SIDE_EFFECTS__*/\r\nfunction _createTrimFn(exp: RegExp): (value: string) => string {\r\n return function _doTrim(value: string): string {\r\n if (isNullOrUndefined(value)) {\r\n throwTypeError(\"strTrim called [\" + dumpObj(value) + \"]\")\r\n }\r\n \r\n if (value && value.replace) {\r\n value = value.replace(exp, EMPTY);\r\n }\r\n \r\n return value;\r\n }\r\n}\r\n\r\n/**\r\n * The trim() method removes whitespace from both ends of a string and returns a new string,\r\n * without modifying the original string. Whitespace in this context is all the whitespace\r\n * characters (space, tab, no-break space, etc.) and all the line terminator characters\r\n * (LF, CR, etc.).\r\n * @group Polyfill\r\n * @group String\r\n * @param value - The string value to be trimmed.\r\n * @returns A new string representing str stripped of whitespace from both its beginning and end.\r\n * If neither the beginning or end of str has any whitespace, a new string is still returned (essentially\r\n * a copy of str), with no exception being thrown.\r\n * To return a new string with whitespace trimmed from just one end, use `strTrimStart()` or `strTrimEnd()`.\r\n */\r\nexport const polyStrTrim = (/*#__PURE__*/_createTrimFn(/^\\s+|(?=\\s)\\s+$/g));\r\n\r\n/**\r\n * The `polyStrTrimStart()` method removes whitespace from the beginning of a string.\r\n * @group Polyfill\r\n * @group String\r\n * @param value - The value to be trimmed.\r\n * @returns A new string representing str stripped of whitespace from its beginning (left side).\r\n * If the beginning of str has no whitespace, a new string is still returned (essentially a copy of str),\r\n * with no exception being thrown.\r\n */\r\nexport const polyStrTrimStart = (/*#__PURE__*/_createTrimFn(/^\\s+/g));\r\n \r\n/**\r\n * The `polyStrTrimEnd()` method removes whitespace from the end of a string.\r\n * @group Polyfill\r\n * @group String\r\n * @param value - The value to be trimmed.\r\n * @returns A new string representing str stripped of whitespace from its end (right side).\r\n * If the end of str has no whitespace, a new string is still returned (essentially a copy of str),\r\n * with no exception being thrown.\r\n */\r\nexport const polyStrTrimEnd = (/*#__PURE__*/_createTrimFn(/(?=\\s)\\s+$/g));\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { StrProto } from \"../internal/constants\";\r\nimport { _pureAssign } from \"../internal/treeshake_helpers\";\r\nimport { _unwrapFunctionWithPoly } from \"../internal/unwrapFunction\";\r\nimport { polyStrTrim, polyStrTrimEnd, polyStrTrimStart } from \"../polyfills/trim\";\r\n\r\n/**\r\n * The trim() method removes whitespace from both ends of a string and returns a new string,\r\n * without modifying the original string. Whitespace in this context is all the whitespace\r\n * characters (space, tab, no-break space, etc.) and all the line terminator characters\r\n * (LF, CR, etc.).\r\n * @group String\r\n * @param value - The string value to be trimmed.\r\n * @returns A new string representing str stripped of whitespace from both its beginning and end.\r\n * If neither the beginning or end of str has any whitespace, a new string is still returned (essentially\r\n * a copy of str), with no exception being thrown.\r\n * To return a new string with whitespace trimmed from just one end, use `strTrimStart()` or `strTrimEnd()`.\r\n */\r\nexport const strTrim: (value: string) => string = (/*#__PURE__*/_unwrapFunctionWithPoly(\"trim\", StrProto, polyStrTrim));\r\n\r\n/**\r\n * The `strTrimStart()` method removes whitespace from the beginning of a string.\r\n * @group String\r\n * @param value - The value to be trimmed.\r\n * @returns A new string representing str stripped of whitespace from its beginning (left side).\r\n * If the beginning of str has no whitespace, a new string is still returned (essentially a copy of str),\r\n * with no exception being thrown.\r\n */\r\nexport const strTrimStart: (value: string) => string = (/*#__PURE__*/_unwrapFunctionWithPoly(\"trimStart\", StrProto, polyStrTrimStart));\r\n\r\n/**\r\n * Alias for `strTrimStart()` method removes whitespace from the beginning of a string.\r\n * @group String\r\n * @param value - The value to be trimmed.\r\n * @returns A new string representing str stripped of whitespace from its beginning (left side).\r\n * If the beginning of str has no whitespace, a new string is still returned (essentially a copy of str),\r\n * with no exception being thrown.\r\n */\r\nexport const strTrimLeft = (/*#__PURE__*/_pureAssign(strTrimStart));\r\n\r\n/**\r\n * The `strTrimEnd()` method removes whitespace from the end of a string.\r\n * @group String\r\n * @param value - The value to be trimmed.\r\n * @returns A new string representing str stripped of whitespace from its end (right side).\r\n * If the end of str has no whitespace, a new string is still returned (essentially a copy of str),\r\n * with no exception being thrown.\r\n */\r\nexport const strTrimEnd: (value: string) => string = (/*#__PURE__*/_unwrapFunctionWithPoly(\"trimEnd\", StrProto, polyStrTrimEnd));\r\n\r\n/**\r\n * Alias for `strTrimEnd()` method removes whitespace from the end of a string.\r\n * @group String\r\n * @param value - The value to be trimmed.\r\n * @returns A new string representing str stripped of whitespace from its end (right side).\r\n * If the end of str has no whitespace, a new string is still returned (essentially a copy of str),\r\n * with no exception being thrown.\r\n */\r\nexport const strTrimRight = (/*#__PURE__*/_pureAssign(strTrimEnd));\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { NULL_VALUE, TO_STRING, UNDEF_VALUE } from \"../internal/constants\";\r\nimport { asString } from \"../string/as_string\";\r\nimport { strCamelCase } from \"../string/conversion\";\r\nimport { strPadStart } from \"../string/pad\";\r\nimport { strUpper } from \"../string/upper_lower\";\r\nimport { isNumber, isString, isUndefined } from \"./base\";\r\nimport { dumpObj } from \"./diagnostics\";\r\n\r\nconst DBL_QUOTE = \"\\\"\";\r\nconst INVALID_JS_NAME = /([^\\w\\d_$])/g;\r\nlet _htmlEntityCache: { [key: string]: string};\r\n\r\n/**\r\n * Validates that the string name conforms to the JS IdentifierName specification and if not\r\n * normalizes the name so that it would. This method does not identify or change any keywords\r\n * meaning that if you pass in a known keyword the same value will be returned.\r\n * @since 0.9.0\r\n * @group Conversion\r\n * @group Value\r\n * @param jsName - The string value to validate\r\n * @param camelCase - Optionally (see [1]) convert into CamelCase with the leading character either\r\n * - `true` => lowercase\r\n * - 'false' => uppercase\r\n * - undefined => not converted\r\n * @return The original string name, if it conforms to the JS naming convention otherwise an encoded version.\r\n *\r\n * > **[1]**: Camel casing the name will remove all non-word characters from the result\r\n * so you will NOT end up with any leading, embedded or trailing `_` characters which may cause\r\n * duplicate results for different string values.\r\n * @example\r\n * ```ts\r\n * normalizeJsName(\"HelloDarkness\"); // \"HelloDarkness\"\r\n * normalizeJsName(\"Hello Darkness\"); // \"Hello_Darkness\"\r\n * normalizeJsName(\"hello Darkness\"); // \"hello_Darkness\"\r\n * normalizeJsName(\"hello Darkness\"); // \"hello_Darkness\"\r\n * normalizeJsName(\"hello.Darkness\"); // \"hello_Darkness\"\r\n * normalizeJsName(\"hello-Darkness\"); // \"hello_Darkness\"\r\n * normalizeJsName(\"hello_Darkness\"); // \"hello_Darkness\"\r\n * normalizeJsName(\"abc-123\"); // \"abc_123\"\r\n * normalizeJsName(\"0abc0\"); // \"0abc0\"\r\n * normalizeJsName(\"\\\"HelloDarkness\\\"\"); // \"_HelloDarkness_\"\r\n * normalizeJsName(\"\\\"Hello Darkness\\\"\"); // \"_Hello_Darkness_\"\r\n * normalizeJsName(\"\\\"hello Darkness\\\"\"); // \"_hello_Darkness_\"\r\n * normalizeJsName(\"\\\"hello Darkness\\\"\"); // \"_hello_Darkness_\"\r\n * normalizeJsName(\"\\\"hello .,#[]Darkness\\\"\"); // \"_hello______Darkness_\"\r\n *\r\n * normalizeJsName(\"HelloDarkness\", true); // \"helloDarkness\"\r\n * normalizeJsName(\"Hello Darkness\", true); // \"helloDarkness\"\r\n * normalizeJsName(\"hello Darkness\", true); // \"helloDarkness\"\r\n * normalizeJsName(\"hello Darkness\", true); // \"helloDarkness\"\r\n * normalizeJsName(\"hello.Darkness\", true); // \"helloDarkness\"\r\n * normalizeJsName(\"hello-Darkness\", true); // \"helloDarkness\"\r\n * normalizeJsName(\"hello_Darkness\", true); // \"helloDarkness\"\r\n * normalizeJsName(\"abc-123\", true); // \"abc123\"\r\n * normalizeJsName(\"0abc0\", true); // \"0abc0\"\r\n * normalizeJsName(\"\\\"HelloDarkness\\\"\", true); // \"helloDarkness\"\r\n * normalizeJsName(\"\\\"Hello Darkness\\\"\", true); // \"helloDarkness\"\r\n * normalizeJsName(\"hello \\\"Darkness\\\"\", true); // \"helloDarkness\"\r\n * normalizeJsName(\"hello \\\"Darkness\\\"\", true); // \"helloDarkness\"\r\n * normalizeJsName(\"\\\"hello .,#[]Darkness\\\"\", true); // \"helloDarkness\"\r\n * ```\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function normalizeJsName(jsName: string, camelCase?: boolean): string {\r\n let result = asString(jsName).replace(INVALID_JS_NAME, \"_\");\r\n\r\n return !isUndefined(camelCase) ? strCamelCase(result, !camelCase) : result;\r\n}\r\n\r\n/**\r\n * Encode the value into a JSON string, if the provided value is a string this will encode\r\n * any character that is not an alpha, numeric, space or some special characters as `\\uXXXX`\r\n * and will always be returned wrapped in double quotes `\"xxx\"`, if the value is any other\r\n * object it will be encoded using JSON.stringify() and if there is an exception encoding\r\n * with JSON.stringify() it will return the exception as a string using {@link dumpObj}().\r\n * @since 0.9.0\r\n * @group Conversion\r\n * @group Value\r\n * @param value - The value to be encoded as JSON\r\n * @param format - Identifies whether the JSON value should be formatted when an object\r\n * - `true` - Format with 4 spaces\r\n * - 'number' - The number of spaces to format with\r\n * - `false` (or not Truthy) - Do not format*\r\n * @returns A JSON encoded string representation of the value.\r\n * @example\r\n * ```ts\r\n * // String values\r\n * encodeAsJson(\"abc.123\"); // \"\\\"abc.123\\\"\"\r\n * encodeAsJson(\"321-abc\"); // \"\\\"321-abc\\\"\"\r\n * encodeAsJson(\"Hello darkness, my \\\"old\\\" friend...\"); // \"\\\"Hello darkness, my \\\\\\\"old\\\\\\\" friend...\\\"\"\r\n * encodeAsJson(\"Hello: Darkness\"); // \"\\\"Hello: Darkness\\\"\"\r\n * encodeAsJson(\"Hello\\\\u003A Darkness\"); // \"\\\"Hello\\\\\\\\u003A Darkness\\\"\"\r\n * encodeAsJson(\"`!@#$%^&*()_-+=[]{}:;'<>?\"); // \"\\\"\\\\u0060!@#$%^&*()_-+=[]{}:;\\\\u0027<>?\\\"\"\r\n * encodeAsJson(\"0\"); // \"\\\"0\\\"\"\r\n * encodeAsJson(\"1\"); // \"\\\"1\\\"\"\r\n *\r\n * encodeAsJson([]); // \"[]\"\r\n * encodeAsJson([\"A\"]); // \"[\\\"A\\\"]\"\r\n * encodeAsJson([0]); // \"[0]\"\r\n * encodeAsJson([false]); // \"[false]\"\r\n * encodeAsJson(new Array(1)); // \"[null]\"\r\n * encodeAsJson(true); // \"true\",\r\n * encodeAsJson(false); // \"false\"\r\n *\r\n * encodeAsJson({}); // \"{}\"\r\n * encodeAsJson({ Hello: \"Darkness\" }); // \"{\\\"Hello\\\":\\\"Darkness\\\"}\");\r\n * ```\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function encodeAsJson(value: T, format?: boolean | number): string {\r\n let result: string;\r\n\r\n if (isString(value)) {\r\n // encode if a character is not an alpha, numeric, space or some special characters\r\n result = DBL_QUOTE + value.replace(/[^\\w .,\\-!@#$%\\^&*\\(\\)_+={}\\[\\]:;|<>?]/g, (match) => {\r\n if(match === DBL_QUOTE || match === \"\\\\\") {\r\n return \"\\\\\" + match;\r\n }\r\n\r\n var hex = match.charCodeAt(0)[TO_STRING](16);\r\n return \"\\\\u\" + strPadStart(strUpper(hex), 4, \"0\");\r\n }) + DBL_QUOTE;\r\n } else {\r\n try {\r\n result = JSON.stringify(value, NULL_VALUE, format ? (isNumber(format) ? format : 4) : UNDEF_VALUE);\r\n } catch (e) {\r\n // Unable to convert to JSON\r\n result = DBL_QUOTE + dumpObj(e) + DBL_QUOTE;\r\n }\r\n }\r\n\r\n return result;\r\n}\r\n\r\n/**\r\n * Encode the provided string to a safe HTML form, converting the base `&`, `<`, `>`, `\\\"` and `'`\r\n * characters into their HTML encoded representations\r\n * @since 0.9.0\r\n * @group Conversion\r\n * @group Value\r\n * @param value - The string value to be converted into a HTML safe form\r\n * @returns The converted string as HTML\r\n * @example\r\n * ```ts\r\n * encodeAsHtml(\"HelloDarkness\"); // \"HelloDarkness\"\r\n * encodeAsHtml(\"Hello Darkness\"); // \"Hello Darkness\"\r\n * encodeAsHtml(\"hello.Darkness\"); // \"hello.Darkness\"\r\n * encodeAsHtml(\"hello-Darkness\"); // \"hello-Darkness\"\r\n * encodeAsHtml(\"hello_Darkness\"); // \"hello_Darkness\"\r\n * encodeAsHtml(\"abc-123\"); // \"abc-123\"\r\n * encodeAsHtml(\"0abc0\"); // \"0abc0\"\r\n * encodeAsHtml(\"\\\"HelloDarkness\\\"\"); // \""HelloDarkness"\"\r\n * encodeAsHtml(\"\\\"Hello Darkness\\\"\"); // \""Hello Darkness"\"\r\n * encodeAsHtml(\"\\\"hello Darkness\\\"\"); // \""hello Darkness"\"\r\n * encodeAsHtml(\"\\\"hello Darkness\\\"\"); // \""hello Darkness"\"\r\n * encodeAsHtml(\"\\\"hello .,#<[]>Darkness\\\"\"); // \""hello .,#<[]>Darkness"\"\r\n * encodeAsHtml(\"\"); // \"<script src="javascript:alert('Hello');"></script>\"\r\n * ```\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function encodeAsHtml(value: string) {\r\n !_htmlEntityCache && (_htmlEntityCache = {\r\n \"&\": \"amp\",\r\n \"<\": \"lt\",\r\n \">\": \"gt\",\r\n \"\\\"\": \"quot\",\r\n \"'\": \"#39\"\r\n });\r\n \r\n return asString(value).replace(/[&<>\"']/g, match => \"&\" + _htmlEntityCache[match] + \";\");\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { getWindow, hasWindow } from \"../helpers/environment\";\r\nimport { CALL, CONSTRUCTOR, FUNCTION, ObjClass, OBJECT, PROTOTYPE, TO_STRING } from \"../internal/constants\";\r\nimport { objHasOwnProperty } from \"./has_own_prop\";\r\nimport { objGetPrototypeOf } from \"./object\";\r\n\r\n// Use to cache the result of Object.cont\r\nlet _fnToString: () => string;\r\nlet _objCtrFnString: string;\r\nlet _gblWindow: Window;\r\n\r\n/**\r\n * Checks to see if the past value is a plain object (not a class/array) value.\r\n * Object are considered to be \"plain\" if they are created with no prototype `Object.create(null)`\r\n * or by using the Object global (native) function, all other \"objects\" ar\r\n * @since 0.4.4\r\n * @group Type Identity\r\n * @group Object\r\n * @param value - The value to check\r\n * @returns true if `value` is a normal plain object\r\n * @example\r\n * ```ts\r\n * console.log(isPlainObject({ 0: 'a', 1: 'b', 2: 'c' })); // true\r\n * console.log(isPlainObject({ 100: 'a', 2: 'b', 7: 'c' })); // true\r\n * console.log(isPlainObject(objCreate(null))); // true\r\n *\r\n * const myObj = objCreate({}, {\r\n * getFoo: {\r\n * value() { return this.foo; }\r\n * }\r\n * });\r\n * myObj.foo = 1;\r\n * console.log(isPlainObject(myObj)); // true\r\n *\r\n * console.log(isPlainObject(['a', 'b', 'c'])); // false\r\n * console.log(isPlainObject(new Date())); // false\r\n * console.log(isPlainObject(new Error(\"An Error\"))); // false\r\n * console.log(isPlainObject(null)); // false\r\n * console.log(isPlainObject(undefined)); // false\r\n * console.log(isPlainObject(\"null\")); // false\r\n * console.log(isPlainObject(\"undefined\")); // false\r\n * console.log(isPlainObject(\"1\")); // false\r\n * console.log(isPlainObject(\"aa\")); // false\r\n * ```\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function isPlainObject(value: any): value is object {\r\n if (!value || typeof value !== OBJECT) {\r\n return false;\r\n }\r\n\r\n if (!_gblWindow) {\r\n // Lazily cache the current global window value and default it to \"true\" (so we bypass this check in the future)\r\n _gblWindow = hasWindow() ? getWindow() : (true as any);\r\n }\r\n\r\n let result = false;\r\n if (value !== _gblWindow) {\r\n\r\n if (!_objCtrFnString) {\r\n // Lazily caching what the runtime reports as the object function constructor (as a string)\r\n // Using an current function lookup to find what this runtime calls a \"native\" function\r\n _fnToString = Function[PROTOTYPE][TO_STRING];\r\n _objCtrFnString = _fnToString[CALL](ObjClass);\r\n }\r\n\r\n try {\r\n let proto = objGetPrototypeOf(value);\r\n\r\n // No prototype so looks like an object created with Object.create(null)\r\n result = !proto;\r\n if (!result) {\r\n if (objHasOwnProperty(proto, CONSTRUCTOR)) {\r\n proto = proto[CONSTRUCTOR]\r\n }\r\n \r\n result = !!(proto && typeof proto === FUNCTION && _fnToString[CALL](proto) === _objCtrFnString);\r\n }\r\n } catch (ex) {\r\n // Something went wrong, so it's not an object we are playing with\r\n }\r\n }\r\n\r\n return result;\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { arrForEach } from \"../array/forEach\";\r\nimport { isArray, isDate, isNullOrUndefined, isPrimitiveType } from \"../helpers/base\";\r\nimport { CALL, FUNCTION, NULL_VALUE, OBJECT } from \"../internal/constants\";\r\nimport { objDefine } from \"./define\";\r\nimport { isPlainObject } from \"./is_plain_object\";\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n * Provides the current context while performing a deep copy\r\n */\r\ninterface _DeepCopyContext {\r\n handler: ObjDeepCopyHandler;\r\n src: any;\r\n path?: Array;\r\n}\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n * Defines the type used for tracking visited objects during deep copy to identify recursive\r\n * objects.\r\n */\r\ninterface _RecursiveVisitMap {\r\n k: any;\r\n v: any;\r\n}\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n * Generic Object deep copy handler which creates a new plain object and copies enumerable properties from\r\n * the source to the new target plain object. The source object does not have to be a plain object.\r\n * @param details - The details object for the current property being copied\r\n * @returns true if the handler processed the field.\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nfunction _defaultDeepCopyHandler(details: IObjDeepCopyHandlerDetails): boolean {\r\n // Make sure we at least copy plain objects\r\n details.value && plainObjDeepCopyHandler(details);\r\n\r\n // Always return true so that the iteration completes\r\n return true;\r\n}\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n * The ordered default deep copy handlers\r\n */\r\nconst defaultDeepCopyHandlers: ObjDeepCopyHandler[] = [\r\n arrayDeepCopyHandler,\r\n plainObjDeepCopyHandler,\r\n functionDeepCopyHandler,\r\n dateDeepCopyHandler\r\n];\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n * Helper function used for detecting and handling recursive properties\r\n * @param visitMap - The current map of objects that have been visited\r\n * @param source - The value (object) to be copied\r\n * @param newPath - The new access path from the origin to the current property\r\n * @param cb - The callback function to call if the current object has not already been processed.\r\n * @returns The new deep copied property, may be incomplete as the object is recursive and is still in the process of being copied\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nfunction _getSetVisited(visitMap: _RecursiveVisitMap[], source: any, newPath: Array, cb: (newEntry: _RecursiveVisitMap) => void) {\r\n let theEntry: _RecursiveVisitMap;\r\n arrForEach(visitMap, (entry) => {\r\n if (entry.k === source) {\r\n theEntry = entry;\r\n return -1;\r\n }\r\n });\r\n\r\n if (!theEntry) {\r\n // Add the target to the visit map so that deep nested objects refer to the single instance\r\n // Even if we have not finished processing it yet.\r\n theEntry = { k: source, v: source };\r\n visitMap.push(theEntry);\r\n\r\n // Now call the copy callback so that it populates the target\r\n cb(theEntry);\r\n }\r\n\r\n return theEntry.v;\r\n}\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n * Internal helper which performs the recursive deep copy\r\n * @param visitMap - The current map of objects that have been visited\r\n * @param value - The value being copied\r\n * @param ctx - The current copy context\r\n * @param key - [Optional] the current `key` for the value from the source object\r\n * @returns The new deep copied instance of the value.\r\n */\r\nfunction _deepCopy(visitMap: _RecursiveVisitMap[], value: T, ctx: _DeepCopyContext, key?: string | number | symbol): T {\r\n let userHandler = ctx.handler;\r\n let newPath = ctx.path ? (key ? ctx.path.concat(key) : ctx.path) : [];\r\n\r\n let newCtx: _DeepCopyContext = {\r\n handler: ctx.handler,\r\n src: ctx.src,\r\n path: newPath\r\n };\r\n\r\n const theType = typeof value;\r\n let isPlain = false;\r\n let isPrim = value === NULL_VALUE;\r\n if (!isPrim) {\r\n if (value && theType === OBJECT) {\r\n isPlain = isPlainObject(value);\r\n } else {\r\n isPrim = isPrimitiveType(theType);\r\n }\r\n }\r\n\r\n let details: IObjDeepCopyHandlerDetails = {\r\n type: theType,\r\n isPrim: isPrim,\r\n isPlain: isPlain,\r\n value: value,\r\n result: value,\r\n path: newPath,\r\n origin: ctx.src,\r\n copy: (source: T, newKey?: string | number | symbol): T => {\r\n return _deepCopy(visitMap, source, newKey ? newCtx : ctx, newKey);\r\n },\r\n copyTo: (target: T, source: T): T => {\r\n return _copyProps(visitMap, target, source, newCtx);\r\n }\r\n };\r\n\r\n if (!details.isPrim) {\r\n return _getSetVisited(visitMap, value, newPath, (newEntry) => {\r\n\r\n // Use an accessor to set the new value onto the new entry\r\n objDefine(details, \"result\", {\r\n g: function () {\r\n return newEntry.v;\r\n },\r\n s: function (newValue: any) {\r\n newEntry.v = newValue;\r\n }\r\n });\r\n\r\n let idx = 0;\r\n let handler = userHandler;\r\n while (!(handler || (idx < defaultDeepCopyHandlers.length ? defaultDeepCopyHandlers[idx++] : _defaultDeepCopyHandler))[CALL](ctx, details)) {\r\n handler = NULL_VALUE;\r\n }\r\n });\r\n }\r\n\r\n // Allow the user handler to override the provided value\r\n if (userHandler && userHandler[CALL](ctx, details)) {\r\n return details.result;\r\n }\r\n\r\n return value;\r\n}\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n * Internal helper to copy all of the enumerable properties from the source object to the new target object\r\n * @param visitMap - The current map of objects that have been visited\r\n * @param target - The target object to copy the properties to.\r\n * @param source - The source object to copy the properties from.\r\n * @param ctx - The current deep copy context\r\n * @returns The populated target object\r\n */\r\nfunction _copyProps(visitMap: _RecursiveVisitMap[], target: T, source: T, ctx: _DeepCopyContext) {\r\n if (!isNullOrUndefined(source)) {\r\n // Copy all properties (not just own properties)\r\n for (const key in source) {\r\n // Perform a deep copy of the object\r\n target[key] = _deepCopy(visitMap, source[key], ctx, key);\r\n }\r\n }\r\n\r\n return target;\r\n}\r\n\r\n/**\r\n * Object helper to copy all of the enumerable properties from the source object to the target, the\r\n * properties are copied via {@link objDeepCopy}. Automatic handling of recursive properties was added in v0.4.4\r\n * @group Object\r\n * @param target - The target object to populated\r\n * @param source - The source object to copy the properties from\r\n * @param handler - An optional callback that lets you provide / overide the deep cloning (Since 0.4.4)\r\n * @returns The target object\r\n * @example\r\n * ```ts\r\n * let a: any = { a: 1 };\r\n * let b: any = { b: 2, d: new Date(), e: new TestClass(\"Hello Darkness\") };\r\n * a.b = b; // { a: 1, b: { b: 2} }\r\n * b.a = a; // { a: 1, b: { b: 2, a: { a: 1, { b: 2, a: ... }}}}\r\n *\r\n * function copyHandler(details: IObjDeepCopyHandlerDetails) {\r\n * // details.origin === a\r\n * // details.path[] is the path to the current value\r\n * if (details.value && isDate(details.value)) {\r\n * // So for the date path === [ \"b\", \"d\" ] which represents\r\n * // details.origin[\"b\"][\"d\"] === The Date\r\n *\r\n * // Create a clone the Date object and set as the \"newValue\"\r\n * details.value = new Date(details.value.getTime());\r\n *\r\n * // Return true to indicate that we have \"handled\" the conversion\r\n * // See objDeepCopy example for just reusing the original value (just don't replace details.value)\r\n * return true;\r\n * }\r\n *\r\n * return false;\r\n * }\r\n *\r\n * let c: any = objCopyProps({}, a, copyHandler);\r\n *\r\n * assert.notEqual(a, c, \"check a and c are not the same\");\r\n * assert.ok(c !== c.b.a, \"The root object won't be the same for the target reference as are are copying properties to our target\");\r\n * assert.ok(c.b === c.b.a.b, \"Check that the 2 'b' references are the same object\");\r\n * assert.ok(c.b.a === c.b.a.b.a, \"Check that the 2 'a' references are the same object\");\r\n * assert.ok(c.b.d === c.b.a.b.d, \"Check that the 2 'd' references are the same object\");\r\n * assert.ok(isDate(c.b.d), \"The copied date is still real 'Date' instance\");\r\n * assert.notEqual(c.b.d, a.b.d, \"And the copied date is not the same as the original\");\r\n * assert.equal(c.b.d.getTime(), a.b.d.getTime(), \"But the dates are the same\");\r\n *\r\n * assert.ok(isObject(c.b.d), \"The copied date is now an object\");\r\n * ```\r\n */\r\nexport function objCopyProps(target: T, source: any, handler?: ObjDeepCopyHandler) {\r\n let ctx: _DeepCopyContext = {\r\n handler: handler,\r\n src: source,\r\n path: []\r\n };\r\n\r\n return _copyProps([], target, source, ctx);\r\n}\r\n\r\n/**\r\n * Context details passed to the deep copy handler to allow it parse the current value based on the original source\r\n * and path to reach the current value. The provided value should be updated with the value to by copied into the\r\n * new deep copy and will be used when the handler returns true.\r\n * @since 0.4.4\r\n * @group Object - Deep Copy\r\n */\r\nexport interface IObjDeepCopyHandlerDetails {\r\n /**\r\n * Identifies the type of the value as per `typeof value`, saves each check having to process this value.\r\n */\r\n type: string;\r\n\r\n /**\r\n * Identifies whether the type of the value is considered to be a primitive value\r\n */\r\n isPrim: boolean;\r\n\r\n /**\r\n * Identifies whether the type is a plain object or not, this also saves each handler from checking\r\n * the `type`, currently the type will also be \"object\" if this is `true`.\r\n * @since 0.9.6\r\n */\r\n isPlain: boolean;\r\n\r\n /**\r\n * The current value to be processed, replace this value with the new deep copied value to use when returning\r\n * true from the handler. Ignored when the handler returns false.\r\n */\r\n readonly value: any;\r\n\r\n /**\r\n * Replace this value with the new deep copied value (defaults to the same as the value property) this value will be\r\n * used when returning true from the handler. Ignored when the handler returns false.\r\n */\r\n result: any;\r\n\r\n /**\r\n * A array of keys from the orginal source (origin) object which lead to the current value\r\n */\r\n path: Array;\r\n\r\n /**\r\n * The original source object passed into the `objDeepCopy()` or `objCopyProps()` functions.\r\n */\r\n origin?: any;\r\n\r\n /**\r\n * Continue the deep copy with the current context and recursive checks, effectively calls {@link objDeepCopy}\r\n * but keeps the current context and recursive references.\r\n * @param source - The source object to be copied\r\n */\r\n copy(source: T, key?: string | number | symbol): T;\r\n\r\n /**\r\n * Continue the deep copy with the current context and recursive checks by copying all of the properties\r\n * from the source to the target instance, effectively calls {@link objCopyProps} but keeps the current context\r\n * and recursive references.\r\n * @param target - The target object to populated\r\n * @param source - The source object to copy the properties from\r\n */\r\n copyTo(target: T, source: T): T;\r\n}\r\n\r\n/**\r\n * An optional deep copy handler that lets you provide your own logic for deep copying objects, will\r\n * only be called once per object/property combination, so if an object is recursively included it\r\n * will only get called for the first instance.\r\n * Handlers SHOULD assign the \"result\" value with the new target instance BEFORE performing any additional deep copying,\r\n * so any recursive objects will get a reference to the new instance and not keep attempting to create new copies.\r\n * @since 0.4.4\r\n * @group Object - Deep Copy\r\n * @return true if handled and the value in details should be used otherwise false to continue with the default handling\r\n * The library includes several helpers which can be reused by any user provided handler\r\n * - {@link functionDeepCopyHandler} - Used to copy functions\r\n * - {@link arrayDeepCopyHandler} - Used to copy arrays\r\n * - {@link plainObjDeepCopyHandler} - Used to copy plain objects\r\n * - {@link dateDeepCopyHandler} - Used to copy date instances\r\n */\r\nexport type ObjDeepCopyHandler = (details: IObjDeepCopyHandlerDetails) => boolean;\r\n\r\n/**\r\n * Performs a deep copy of the source object, this is designed to work with base (plain) objects, arrays and primitives\r\n * if the source object contains class objects they will either be not cloned or may be considered non-operational after\r\n * performing a deep copy. ie. This is performing a deep copy of the objects properties so that altering the copy will\r\n * not mutate the source object hierarchy.\r\n * Automatic handling of recursive properties was added in v0.4.4.\r\n * @group Object\r\n * @group Object - Deep Copy\r\n * @param source - The source object to be copied\r\n * @param handler - An optional callback that lets you provide / overide the deep cloning (Since 0.4.4)\r\n * @return A new object which contains a deep copy of the source properties\r\n * @example\r\n * ```ts\r\n * let a: any = { a: 1 };\r\n * let b: any = { b: 2, d: new Date(), e: new TestClass(\"Hello Darkness\") };\r\n * a.b = b; // { a: 1, b: { b: 2} }\r\n * b.a = a; // { a: 1, b: { b: 2, a: { a: 1, { b: 2, a: ... }}}}\r\n *\r\n * function copyHandler(details: IObjDeepCopyHandlerDetails) {\r\n * // details.origin === a\r\n * // details.path[] is the path to the current value\r\n * if (details.value && isDate(details.value)) {\r\n * // So for the date path === [ \"b\", \"d\" ] which represents\r\n * // details.origin[\"b\"][\"d\"] === The Date\r\n *\r\n * // Return true to indicate that we have \"handled\" the conversion\r\n * // Which in this case will reuse the existing instance (as we didn't replace details.value)\r\n * // See objCopyProps example for replacing the Date instance\r\n * return true;\r\n * }\r\n *\r\n * return false;\r\n * }\r\n *\r\n * let c: any = objDeepCopy(a, copyHandler);\r\n *\r\n * assert.notEqual(a, c, \"check a and c are not the same\");\r\n * assert.ok(c === c.b.a, \"The root object won't be the same for the target reference\");\r\n * assert.ok(c.b === c.b.a.b, \"Check that the 2 'b' references are the same object\");\r\n * assert.ok(c.b.a === c.b.a.b.a, \"Check that the 2 'a' references are the same object\");\r\n * assert.ok(c.b.d === c.b.a.b.d, \"Check that the 2 'd' references are the same object\");\r\n * assert.ok(isDate(c.b.d), \"The copied date is still real 'Date' instance\");\r\n * assert.equal(c.b.d, a.b.d, \"And the copied date is the original date\");\r\n * assert.equal(c.b.d.getTime(), a.b.d.getTime(), \"But the dates are the same\");\r\n * assert.ok(isObject(c.b.d), \"The copied date is now an object\");\r\n * assert.ok(!isError(c.b.e), \"The copied error is no longer a real 'Error' instance\");\r\n * assert.ok(isObject(c.b.e), \"The copied error is now an object\");\r\n * assert.equal(42, c.b.e.value, \"Expect that the local property was copied\");\r\n * ```\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function objDeepCopy(source: T, handler?: ObjDeepCopyHandler): T {\r\n let ctx: _DeepCopyContext = {\r\n handler: handler,\r\n src: source\r\n };\r\n\r\n return _deepCopy([], source, ctx);\r\n}\r\n\r\n/**\r\n * Deep copy handler to identify and copy arrays.\r\n * @since 0.4.4\r\n * @group Object - Deep Copy\r\n * @param details - The details object for the current property being copied\r\n * @returns `true` if the current value is a function otherwise `false`\r\n */\r\nexport function arrayDeepCopyHandler(details: IObjDeepCopyHandlerDetails): boolean {\r\n let value = details.value;\r\n if (isArray(value)) {\r\n // Assign the \"result\" value before performing any additional deep Copying, so any recursive object get a reference to this instance\r\n let target: any[] = details.result = [];\r\n target.length = value.length;\r\n\r\n // Copying all properties as arrays can contain non-indexed based properties\r\n details.copyTo(target, value);\r\n return true;\r\n }\r\n\r\n return false;\r\n}\r\n\r\n/**\r\n * Deep copy handler to identify and copy Date instances.\r\n * @since 0.4.4\r\n * @group Object - Deep Copy\r\n * @param details - The details object for the current property being copied\r\n * @returns `true` if the current value is a function otherwise `false`\r\n */\r\nexport function dateDeepCopyHandler(details: IObjDeepCopyHandlerDetails) {\r\n let value = details.value;\r\n if (isDate(value)) {\r\n details.result = new Date(value.getTime());\r\n return true;\r\n }\r\n\r\n return false;\r\n}\r\n\r\n/**\r\n * Deep copy handler to identify and copy functions. This handler just returns the original\r\n * function so the original function will be assigned to any new deep copied instance.\r\n * @since 0.4.4\r\n * @group Object - Deep Copy\r\n * @param details - The details object for the current property being copied\r\n * @returns `true` if the current value is a function otherwise `false`\r\n */\r\nexport function functionDeepCopyHandler(details: IObjDeepCopyHandlerDetails): boolean {\r\n if (details.type === FUNCTION) {\r\n return true;\r\n }\r\n\r\n return false;\r\n}\r\n\r\n/**\r\n * Deep copy handler to identify and copy plain objects.\r\n * @since 0.4.4\r\n * @group Object - Deep Copy\r\n * @param details - The details object for the current property being copied\r\n * @returns `true` if the current value is a function otherwise `false`\r\n */\r\nexport function plainObjDeepCopyHandler(details: IObjDeepCopyHandlerDetails): boolean {\r\n let value = details.value;\r\n if (value && details.isPlain) {\r\n // Assign the \"result\" value before performing any additional deep Copying, so any recursive object get a reference to this instance\r\n let target = details.result = {};\r\n details.copyTo(target, value);\r\n return true;\r\n }\r\n\r\n return false;\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { arrForEach } from \"../array/forEach\";\r\nimport { ArrSlice, CALL } from \"../internal/constants\";\r\nimport { objCopyProps, objDeepCopy } from \"../object/copy\";\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n */\r\nfunction _doExtend(target: T, theArgs: any[]): any {\r\n arrForEach(theArgs, (theArg) => {\r\n objCopyProps(target, theArg);\r\n });\r\n\r\n return target;\r\n}\r\n\r\n/**\r\n * Create a new object by merging the passed arguments, this is effectively the same as calling `objExtend({}, ...theArgs)` where\r\n * all of the arguments are added to a new object that is returned.\r\n * @group Object\r\n * @param target - The original object to be extended.\r\n * @param theArgs - The optional number of arguments to be copied\r\n * @returns - A new object or the original\r\n */\r\nexport function deepExtend(target: T, ...theArgs: any): T & any;\r\n\r\n/**\r\n * Create a new object by merging the passed arguments, this is effectively the same as calling `objExtend({}, ...theArgs)` where\r\n * all of the arguments are added to a new object that is returned.\r\n * @group Object\r\n * @param target - The original object to be extended.\r\n * @param objN - The optional number of arguments to be copied\r\n * @returns - A new object or the original\r\n */\r\nexport function deepExtend(target: T, obj1?: T1, obj2?: T2, obj3?: T3, obj4?: T4, obj5?: T5, obj6?: T6): T & T1 & T2 & T3 & T4 & T5 & T6 {\r\n return _doExtend(objDeepCopy(target) || {}, ArrSlice[CALL](arguments));\r\n}\r\n \r\n/**\r\n * Extend the target object by merging the passed arguments into it\r\n * @group Object\r\n * @param target - The object to be extended or overwritten\r\n * @param theArgs - The optional number of arguments to be copied\r\n * @returns - A new object or the original\r\n */\r\nexport function objExtend(target: T, ...theArgs: any): T & any;\r\n\r\n/**\r\n * Extend the target object by merging the passed arguments into it\r\n * @group Object\r\n * @param target - The object to be extended or overwritten\r\n * @param objN - The optional number of arguments to be copied\r\n * @returns - A new object or the original\r\n */\r\nexport function objExtend(target: T, obj1?: T1, obj2?: T2, obj3?: T3, obj4?: T4, obj5?: T5, obj6?: T6): T & T1 & T2 & T3 & T4 & T5 & T6 {\r\n return _doExtend(target || {}, ArrSlice[CALL](arguments));\r\n}\r\n\r\n ","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { LENGTH } from \"../internal/constants\";\r\nimport { _unwrapProp } from \"../internal/unwrapFunction\";\r\n\r\n/**\r\n * Interface to identify that an object contains the length property used as a type\r\n * constraint for {@link getLength}\r\n *\r\n * @since 0.4.2\r\n * @group String\r\n * @group Array\r\n * @group Object\r\n */\r\nexport interface IGetLength {\r\n\r\n /**\r\n * Identifies the property that returns the length of the instance\r\n */\r\n length: unknown;\r\n}\r\n\r\n/**\r\n * Helper to return the length value of an object, this will return the value\r\n * of the \"length\" property. Generally used to return the length of a string or array.\r\n *\r\n * @since 0.4.2\r\n * @group Array\r\n * @group String\r\n * @group String\r\n * @group Array\r\n * @group Object\r\n * @param value - The value to return the length property from, must contain a `length` property\r\n * @example\r\n * ```ts\r\n * getLength(\"\"); // returns 0\r\n * getLength(\"Hello World\"); // returns 11\r\n * getLength([]); // returns 0;\r\n * getLength([0, 1, 2, 3]); // returns 4;\r\n * getLength({ length: 42}); // returns 42\r\n * getLength({ length: () => 53; }); // returns the function that if called would return 53\r\n * ```\r\n */\r\nexport const getLength: (value: T) => T[\"length\"] = (/*#__PURE__*/_unwrapProp(LENGTH));\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2023 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { UNDEF_VALUE } from \"../internal/constants\";\r\nimport { getKnownSymbol } from \"../symbol/symbol\";\r\nimport { WellKnownSymbols } from \"../symbol/well_known\";\r\n\r\n/**\r\n * The `polyStrSymSplit()` splits a string into substrings using the [`Symbol.split`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/split)\r\n * method from the splitter object to provide custom behavior. It uses {@link getKnownSymbol}\r\n * to get the {@link WellKnownSymbols.split} symbol which will return the polyfill symbol value.\r\n * @since 0.9.1\r\n * @group Polyfill\r\n * @group String\r\n * @param value - The string value to be split into substrings.\r\n * @param splitter - The object which contains a Symbol.split method, Omitting splitter or passing\r\n * an object that doesn't contain a Symbol.split causes it to return an array with the calling\r\n * string as a single element.\r\n * @param limit - A non-negative integer specifying a limit on the number of substrings to be\r\n * included in the array. If provided, splits the string at each occurrence of the specified\r\n * separator, but stops when limit entries have been placed in the array. Any leftover text is\r\n * not included in the array at all.\r\n * - The array may contain fewer entries than limit if the end of the string is reached before\r\n * the limit is reached.\r\n * - If limit is 0, [] is returned.\r\n * @return An Array of strings, split at each point where the separator occurs in the given string.\r\n * @example\r\n * ```ts\r\n * const splitByNumber = {\r\n * [getKnownSymbol(WellKnownSymbols.split)]: (str: string) => {\r\n * let num = 1;\r\n * let pos = 0;\r\n * const result = [];\r\n * while (pos < str.length) {\r\n * const matchPos = strIndexOf(str, asString(num), pos);\r\n * if (matchPos === -1) {\r\n * result.push(strSubstring(str, pos));\r\n * break;\r\n * }\r\n * result.push(strSubstring(str, pos, matchPos));\r\n * pos = matchPos + asString(num).length;\r\n * num++;\r\n * }\r\n * return result;\r\n * }\r\n * };\r\n *\r\n * const myString = \"a1bc2c5d3e4f\";\r\n * console.log(polyStrSymSplit(myString, splitByNumber)); // [ \"a\", \"bc\", \"c5d\", \"e\", \"f\" ]\r\n * ```\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function polyStrSymSplit(value: string, splitter: { [Symbol.split](string: string, limit?: number): string[]; }, limit?: number): string[] {\r\n let splitFn: (string: string, limit?: number) => string[] = splitter ?(splitter as any)[getKnownSymbol(WellKnownSymbols.split)] : UNDEF_VALUE;\r\n \r\n return splitFn ? splitFn(value, limit) : [ value ];\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2023 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { NULL_VALUE, StrProto } from \"../internal/constants\";\r\nimport { _unwrapFunction, _unwrapFunctionWithPoly } from \"../internal/unwrapFunction\";\r\nimport { polyStrSymSplit } from \"../polyfills/split\";\r\nimport { hasSymbol } from \"../symbol/symbol\";\r\n\r\n/**\r\n * The `strSplit()` splits a string into substrings using the pattern and divides a String\r\n * into an ordered list of substrings by searching for the pattern, puts these substrings\r\n * into an array, and returns the array.\r\n * @since 0.9.1\r\n * @group String\r\n * @param value - The string value to be split into substrings.\r\n * @param separator - The pattern describing where each split should occur. Can be undefined, a\r\n * string, or an object with a [`Symbol.split`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/split)\r\n * method (if supported) — the typical example being a regular expression. Omitting separator or\r\n * passing undefined causes strSplit() to return an array with the calling string as a single\r\n * element. All values that are not undefined or objects with a `@@split` method are coerced to strings.\r\n * @param limit - A non-negative integer specifying a limit on the number of substrings to be\r\n * included in the array. If provided, splits the string at each occurrence of the specified\r\n * separator, but stops when limit entries have been placed in the array. Any leftover text is\r\n * not included in the array at all.\r\n * - The array may contain fewer entries than limit if the end of the string is reached before\r\n * the limit is reached.\r\n * - If limit is 0, [] is returned.\r\n * @return An Array of strings, split at each point where the separator occurs in the given string.\r\n * @example\r\n * ```ts\r\n * strSplit(\"Oh brave new world that has such people in it.\", \" \");\r\n * // [ \"Oh\", \"brave\", \"new\", \"world\", \"that\", \"has\", \"such\", \"people\", \"in\", \"it.\" ]\r\n *\r\n * strSplit(\"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec\", \",\");\r\n * // [ \"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\" ]\r\n * ```\r\n */\r\nexport const strSplit: (value: string, separator: string | RegExp, limit?: number) => string[] = (/*#__PURE__*/_unwrapFunction(\"split\", StrProto));\r\n\r\n/**\r\n * The `strSymSplit()` splits a string into substrings using the [`Symbol.split`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/split)\r\n * method from the splitter object to provide custom behavior. If the runtime supports symbols\r\n * then the default runtime `split` method will be called, It will use {@link getKnownSymbol}\r\n * to get the {@link WellKnownSymbols.split} symbol which will return the runtime symbol or the\r\n * polyfill symbol when not supported by the runtime.\r\n * @since 0.9.1\r\n * @group String\r\n * @param value - The string value to be split into substrings.\r\n * @param splitter - The object which contains a Symbol.split method, Omitting splitter or passing\r\n * an object that doesn't contain a Symbol.split causes it to return an array with the calling\r\n * string as a single element.\r\n * @param limit - A non-negative integer specifying a limit on the number of substrings to be\r\n * included in the array. If provided, splits the string at each occurrence of the specified\r\n * separator, but stops when limit entries have been placed in the array. Any leftover text is\r\n * not included in the array at all.\r\n * - The array may contain fewer entries than limit if the end of the string is reached before\r\n * the limit is reached.\r\n * - If limit is 0, [] is returned.\r\n * @return An Array of strings, split at each point where the separator occurs in the given string.\r\n * @example\r\n * ```ts\r\n * const splitByNumber = {\r\n * [Symbol.split]: (str: string) => {\r\n * let num = 1;\r\n * let pos = 0;\r\n * const result = [];\r\n * while (pos < str.length) {\r\n * const matchPos = strIndexOf(str, asString(num), pos);\r\n * if (matchPos === -1) {\r\n * result.push(strSubstring(str, pos));\r\n * break;\r\n * }\r\n * result.push(strSubstring(str, pos, matchPos));\r\n * pos = matchPos + asString(num).length;\r\n * num++;\r\n * }\r\n * return result;\r\n * }\r\n * };\r\n *\r\n * const myString = \"a1bc2c5d3e4f\";\r\n * console.log(strSymSplit(myString, splitByNumber)); // [ \"a\", \"bc\", \"c5d\", \"e\", \"f\" ]\r\n * ```\r\n */\r\nexport const strSymSplit: (value: string, splitter: { [Symbol.split](string: string, limit?: number): string[]; }, limit?: number) => string[] = (/*#__PURE__*/_unwrapFunctionWithPoly(\"split\", StrProto, !hasSymbol() ? polyStrSymSplit : NULL_VALUE));\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { isString, isUndefined } from \"../helpers/base\";\r\nimport { dumpObj } from \"../helpers/diagnostics\";\r\nimport { throwTypeError } from \"../helpers/throw\";\r\nimport { LENGTH, StrProto } from \"../internal/constants\";\r\nimport { _unwrapFunctionWithPoly } from \"../internal/unwrapFunction\";\r\nimport { asString } from \"./as_string\";\r\nimport { strSubstring } from \"./substring\";\r\n\r\n/**\r\n * This method lets you determine whether or not a string ends with another string. This method is case-sensitive.\r\n * @group String\r\n * @param value - The value to be checked\r\n * @param searchString - The characters to be searched for at the end of `value` string.\r\n * @param length - If provided, it is used as the length of `value`. Defaults to value.length.\r\n */\r\nexport const strEndsWith: (value: string, searchString: string, length?: number) => boolean = (/*#__PURE__*/_unwrapFunctionWithPoly(\"endsWith\", StrProto, polyStrEndsWith));\r\n\r\n/**\r\n * This method lets you determine whether or not a string ends with another string. This method is case-sensitive.\r\n * @group Polyfill\r\n * @group String\r\n * @param value - The value to be checked\r\n * @param searchString - The characters to be searched for at the end of `value` string.\r\n * @param length - If provided, it is used as the length of `value`. Defaults to value.length.\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function polyStrEndsWith(value: string, searchString: string, length?: number): boolean {\r\n if (!isString(value)) {\r\n throwTypeError(\"'\" + dumpObj(value) + \"' is not a string\");\r\n }\r\n\r\n let searchValue = isString(searchString) ? searchString : asString(searchString);\r\n let end = (!isUndefined(length) && length < value[LENGTH]) ? length : value[LENGTH];\r\n\r\n return strSubstring(value, end - searchValue[LENGTH], end) === searchValue;\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { StrProto } from \"../internal/constants\";\r\nimport { _unwrapFunction } from \"../internal/unwrapFunction\";\r\n\r\n/**\r\n * The `strIndexOf()` method, given two arguments: the string and a substring to search for, searches\r\n * the entire calling string, and returns the index of the first occurrence of the specified substring.\r\n * Given a thrid argument: a number, the method returns the first occurrence of the specified substring\r\n * at an index greater than or equal to the specified number.\r\n * @group String\r\n * @param value - The value to be checked for the seeach string\r\n * @param searchString - The substring to search for in the value\r\n * @param position - The starting position to search from\r\n * @example\r\n * ```ts\r\n * strIndexOf('hello world', '') // returns 0\r\n * strIndexOf('hello world', '', 0) // returns 0\r\n * strIndexOf('hello world', '', 3) // returns 3\r\n * strIndexOf('hello world', '', 8) // returns 8\r\n *\r\n * // However, if the thrid argument is greater than the length of the string\r\n * strIndexOf('hello world', '', 11) // returns 11\r\n * strIndexOf('hello world', '', 13) // returns 11\r\n * strIndexOf('hello world', '', 22) // returns 11\r\n *\r\n * strIndexOf('Blue Whale', 'Blue') // returns 0\r\n * strIndexOf('Blue Whale', 'Blute') // returns -1\r\n * strIndexOf('Blue Whale', 'Whale', 0) // returns 5\r\n * strIndexOf('Blue Whale', 'Whale', 5) // returns 5\r\n * strIndexOf('Blue Whale', 'Whale', 7) // returns -1\r\n * strIndexOf('Blue Whale', '') // returns 0\r\n * strIndexOf('Blue Whale', '', 9) // returns 9\r\n * strIndexOf('Blue Whale', '', 10) // returns 10\r\n * strIndexOf('Blue Whale', '', 11) // returns 10\r\n * ```\r\n */\r\nexport const strIndexOf: (value: string, searchString: string, position?: number) => number = (/*#__PURE__*/_unwrapFunction(\"indexOf\", StrProto));\r\n\r\n/**\r\n * The `strLastIndexOf()` method, given two arguments: the string and a substring to search for, searches\r\n * the entire calling string, and returns the index of the last occurrence of the specified substring.\r\n * Given a third argument: a number, the method returns the last occurrence of the specified substring\r\n * at an index less than or equal to the specified number.\r\n * @group String\r\n * @param value - The value to be checked for the seeach string\r\n * @param searchString - The substring to search for in the value\r\n * @param position - The starting position to search from\r\n * @example\r\n * ```ts\r\n * strLastIndexOf('canal', 'a'); // returns 3\r\n * strLastIndexOf('canal', 'a', 2); // returns 1\r\n * strLastIndexOf('canal', 'a', 0); // returns -1\r\n * strLastIndexOf('canal', 'x'); // returns -1\r\n * strLastIndexOf('canal', 'c', -5); // returns 0\r\n * strLastIndexOf('canal', 'c', 0); // returns 0\r\n * strLastIndexOf('canal', ''); // returns 5\r\n * strLastIndexOf('canal', '', 2); // returns 2\r\n * ```\r\n */\r\nexport const strLastIndexOf: (value: string, searchString: string, position?: number) => number = (/*#__PURE__*/_unwrapFunction(\"lastIndexOf\", StrProto));\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { NULL_VALUE } from \"../internal/constants\";\r\nimport { objDefineProp } from \"../object/define\";\r\n\r\nconst REF = \"ref\";\r\nconst UNREF = \"unref\";\r\nconst HAS_REF = \"hasRef\";\r\nconst ENABLED = \"enabled\";\r\n\r\n/**\r\n * A Timer handler which is returned from {@link scheduleTimeout} which contains functions to\r\n * cancel or restart (refresh) the timeout function.\r\n *\r\n * @since 0.4.4\r\n * @group Timer\r\n */\r\nexport interface ITimerHandler {\r\n /**\r\n * Cancels a timeout that was previously scheduled, after calling this function any previously\r\n * scheduled timer will not execute.\r\n * @example\r\n * ```ts\r\n * let theTimer = scheduleTimeout(...);\r\n * theTimer.cancel();\r\n * ```\r\n */\r\n cancel(): void;\r\n\r\n /**\r\n * Reschedules the timer to call its callback at the previously specified duration\r\n * adjusted to the current time. This is useful for refreshing a timer without allocating\r\n * a new JavaScript object.\r\n *\r\n * Using this on a timer that has already called its callback will reactivate the timer.\r\n * Calling on a timer that has not yet executed will just reschedule the current timer.\r\n * @example\r\n * ```ts\r\n * let theTimer = scheduleTimeout(...);\r\n * // The timer will be restarted (if already executed) or rescheduled (if it has not yet executed)\r\n * theTimer.refresh();\r\n * ```\r\n */\r\n refresh(): ITimerHandler;\r\n\r\n /**\r\n * When called, requests that the event loop not exit so long when the ITimerHandler is active.\r\n * Calling timer.ref() multiple times will have no effect. By default, all ITimerHandler objects\r\n * will create \"ref'ed\" instances, making it normally unnecessary to call timer.ref() unless\r\n * timer.unref() had been called previously.\r\n * @since 0.7.0\r\n * @returns the ITimerHandler instance\r\n * @example\r\n * ```ts\r\n * let theTimer = createTimeout(...);\r\n *\r\n * // Make sure the timer is referenced (the default) so that the runtime (Node) does not terminate\r\n * // if there is a waiting referenced timer.\r\n * theTimer.ref();\r\n * ```\r\n */\r\n ref(): this;\r\n\r\n /**\r\n * When called, the any active ITimerHandler instance will not require the event loop to remain\r\n * active (Node.js). If there is no other activity keeping the event loop running, the process may\r\n * exit before the ITimerHandler instance callback is invoked. Calling timer.unref() multiple times\r\n * will have no effect.\r\n * @since 0.7.0\r\n * @returns the ITimerHandler instance\r\n * @example\r\n * ```ts\r\n * let theTimer = createTimeout(...);\r\n *\r\n * // Unreference the timer so that the runtime (Node) may terminate if nothing else is running.\r\n * theTimer.unref();\r\n * ```\r\n */\r\n unref(): this;\r\n\r\n /**\r\n * If true, any running referenced `ITimerHandler` instance will keep the Node.js event loop active.\r\n * @since 0.7.0\r\n * @example\r\n * ```ts\r\n * let theTimer = createTimeout(...);\r\n *\r\n * // Unreference the timer so that the runtime (Node) may terminate if nothing else is running.\r\n * theTimer.unref();\r\n * let hasRef = theTimer.hasRef(); // false\r\n *\r\n * theTimer.ref();\r\n * hasRef = theTimer.hasRef(); // true\r\n * ```\r\n */\r\n hasRef(): boolean;\r\n\r\n /**\r\n * Gets or Sets a flag indicating if the underlying timer is currently enabled and running.\r\n * Setting the enabled flag to the same as it's current value has no effect, setting to `true`\r\n * when already `true` will not {@link ITimerHandler.refresh | refresh}() the timer.\r\n * And setting to 'false` will {@link ITimerHandler.cancel | cancel}() the timer.\r\n * @since 0.8.1\r\n * @example\r\n * ```ts\r\n * let theTimer = createTimeout(...);\r\n *\r\n * // Check if enabled\r\n * theTimer.enabled; // false\r\n *\r\n * // Start the timer\r\n * theTimer.enabled = true; // Same as calling refresh()\r\n * theTimer.enabled; //true\r\n *\r\n * // Has no effect as it's already running\r\n * theTimer.enabled = true;\r\n *\r\n * // Will refresh / restart the time\r\n * theTimer.refresh()\r\n *\r\n * let theTimer = scheduleTimeout(...);\r\n *\r\n * // Check if enabled\r\n * theTimer.enabled; // true\r\n * ```\r\n */\r\n enabled: boolean;\r\n}\r\n\r\n/**\r\n * @ignore\r\n * @internal\r\n */\r\nexport interface _TimerHandler {\r\n /**\r\n * The public handler to return to the caller\r\n */\r\n h: ITimerHandler,\r\n\r\n /**\r\n * The callback function that should be called when the timer operation\r\n * has completed and will not automatically rescheduled\r\n * @returns\r\n */\r\n dn: () => void\r\n}\r\n\r\n/**\r\n * @ignore\r\n * @internal\r\n * Internal function to create and manage an ITimerHandler implementation, the object returned from this function\r\n * it directly used / returned by the pulic functions used to create timers (idle, interval and timeout)\r\n * @param startTimer - Should the timer be started as part of creating the handler\r\n * @param refreshFn - The function used to create/start or refresh the timer\r\n * @param cancelFn - The function used to cancel the timer.\r\n * @returns The new ITimerHandler instance\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function _createTimerHandler(startTimer: boolean, refreshFn: (timerId: T) => T, cancelFn: (timerId: T) => void): _TimerHandler {\r\n let ref = true;\r\n let timerId: T = startTimer ? refreshFn(NULL_VALUE) : NULL_VALUE;\r\n let theTimerHandler: ITimerHandler;\r\n\r\n function _unref() {\r\n ref = false;\r\n timerId && timerId[UNREF] && timerId[UNREF]();\r\n return theTimerHandler;\r\n }\r\n\r\n function _cancel() {\r\n timerId && cancelFn(timerId);\r\n timerId = NULL_VALUE;\r\n }\r\n\r\n function _refresh() {\r\n timerId = refreshFn(timerId);\r\n if (!ref) {\r\n _unref();\r\n }\r\n\r\n return theTimerHandler;\r\n }\r\n\r\n function _setEnabled(value: boolean) {\r\n !value && timerId && _cancel();\r\n value && !timerId && _refresh();\r\n }\r\n\r\n theTimerHandler = {\r\n cancel: _cancel,\r\n refresh: _refresh\r\n } as any;\r\n\r\n theTimerHandler[HAS_REF] = () => {\r\n if (timerId && timerId[HAS_REF]) {\r\n return timerId[HAS_REF]();\r\n }\r\n\r\n return ref;\r\n };\r\n\r\n theTimerHandler[REF] = () => {\r\n ref = true;\r\n timerId && timerId[REF] && timerId[REF]();\r\n return theTimerHandler;\r\n };\r\n\r\n theTimerHandler[UNREF] = _unref;\r\n\r\n theTimerHandler = objDefineProp(theTimerHandler, ENABLED, {\r\n get: () => !!timerId,\r\n set: _setEnabled\r\n });\r\n\r\n return {\r\n h: theTimerHandler,\r\n dn: () => {\r\n timerId = NULL_VALUE;\r\n }\r\n };\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { fnApply } from \"../funcs/funcs\";\r\nimport { isArray } from \"../helpers/base\";\r\nimport { ArrSlice, CALL, UNDEF_VALUE } from \"../internal/constants\";\r\nimport { ITimerHandler, _createTimerHandler } from \"./handler\";\r\n\r\nfunction _createTimeoutWith(startTimer: boolean, overrideFn: TimeoutOverrideFn | TimeoutOverrideFuncs, theArgs: any[]): ITimerHandler {\r\n let isArr = isArray(overrideFn);\r\n let len = isArr ? overrideFn.length : 0;\r\n let setFn: TimeoutOverrideFn = (len > 0 ? overrideFn[0] : (!isArr ? overrideFn : UNDEF_VALUE)) || setTimeout;\r\n let clearFn: ClearTimeoutOverrideFn = (len > 1 ? overrideFn[1] : UNDEF_VALUE) || clearTimeout;\r\n\r\n let timerFn = theArgs[0];\r\n theArgs[0] = function () {\r\n handler.dn();\r\n fnApply(timerFn, UNDEF_VALUE, ArrSlice[CALL](arguments));\r\n };\r\n \r\n let handler = _createTimerHandler(startTimer, (timerId?: any) => {\r\n if (timerId) {\r\n if (timerId.refresh) {\r\n timerId.refresh();\r\n return timerId;\r\n }\r\n\r\n fnApply(clearFn, UNDEF_VALUE, [ timerId ]);\r\n }\r\n\r\n return fnApply(setFn, UNDEF_VALUE, theArgs);\r\n }, function (timerId: any) {\r\n fnApply(clearFn, UNDEF_VALUE, [ timerId ]);\r\n });\r\n\r\n return handler.h;\r\n}\r\n\r\n/**\r\n * The signature of the override timeout function used to create a new timeout instance, it follows the same signature as\r\n * the native `setTimeout` API.\r\n * @since 0.4.4\r\n * @group Timer\r\n * @param callback - A function to be executed after the timer expires.\r\n * @param ms - The time, in milliseconds that the timer should wait before the specified function or code is executed.\r\n * If this parameter is omitted, a value of 0 is used, meaning execute \"immediately\", or more accurately, the next event cycle.\r\n * @param args - Additional arguments which are passed through to the function specified by callback.\r\n * @return The returned timeoutID is a positive integer value which identifies the timer created by the call to setTimeout().\r\n * This value can be passed to clearTimeout() to cancel the timeout.\r\n */\r\nexport type TimeoutOverrideFn = (callback: (...args: TArgs) => void, ms?: number, ...args: TArgs) => number | any;\r\n\r\n/**\r\n * The signatire of the function to override clearing a previous timeout created with the {@link TimeoutOverrideFn}, it will be passed\r\n * the result returned from the {@link TimeoutOverrideFn} call.\r\n * @since 0.4.5\r\n * @group Timer\r\n * @param timeoutId - The value returned from the previous {@link TimeoutOverrideFn}.\r\n */\r\nexport type ClearTimeoutOverrideFn = (timeoutId: number | any) => void;\r\n\r\n/**\r\n * Defines the array signature used to pass the override set and clean functions for creating a timeout.\r\n * The first index [0] is the set function to be used and the second index [1] is the clear function to be used.\r\n * @since 0.4.5\r\n * @group Timer\r\n */\r\nexport type TimeoutOverrideFuncs = [ TimeoutOverrideFn | null, ClearTimeoutOverrideFn | null ];\r\n\r\n/**\r\n * Creates and starts a timer which executes a function or specified piece of code once the timer expires, this is simular\r\n * to using `setTimeout` but provides a return object for cancelling and restarting (refresh) the timer.\r\n *\r\n * The timer may be cancelled (cleared) by calling the `cancel()` function on the returned {@link ITimerHandler}, or\r\n * you can \"reschedule\" and/or \"restart\" the timer by calling the `refresh()` function on the returned {@link ITimerHandler}\r\n * instance\r\n *\r\n * @since 0.4.4\r\n * @group Timer\r\n *\r\n * @param callback - The function to be executed after the timer expires.\r\n * @param timeout - The time, in milliseconds that the timer should wait before the specified\r\n * function or code is executed. If this parameter is omitted, a value of 0 is used, meaning\r\n * execute \"immediately\", or more accurately, the next event cycle.\r\n * @param args - Additional arguments which are passed through to the function specified by `callback`.\r\n * @returns A {@link ITimerHandler} instance which can be used to cancel the timeout.\r\n * @example\r\n * ```ts\r\n * let timeoutCalled = false;\r\n * let theTimeout = scheduleTimeout(() => {\r\n * // This callback will be called after 100ms as this uses setTimeout()\r\n * timeoutCalled = true;\r\n * }, 100);\r\n *\r\n * // Instead of calling clearTimeout() with the returned value from setTimeout() the returned\r\n * // handler instance can be used instead to cancel the timer\r\n * theTimeout.cancel();\r\n * theTimeout.enabled; // false\r\n *\r\n * // You can start the timer via enabled\r\n * theTimeout.enabled = true;\r\n *\r\n * // You can also \"restart\" the timer, whether it has previously triggered not not via the `refresh()`\r\n * theTimeout.refresh();\r\n * ```\r\n */\r\nexport function scheduleTimeout(callback: (...args: A) => void, timeout: number, ...args: A): ITimerHandler;\r\n\r\n/**\r\n * Creates and starts a timer which executes a function or specified piece of code once the timer expires, this is simular\r\n * to using `setTimeout` but provides a return object for cancelling and restarting (refresh) the timer.\r\n *\r\n * The timer may be cancelled (cleared) by calling the `cancel()` function on the returned {@link ITimerHandler}, or\r\n * you can \"reschedule\" and/or \"restart\" the timer by calling the `refresh()` function on the returned {@link ITimerHandler}\r\n * instance\r\n *\r\n * @since 0.4.4\r\n * @group Timer\r\n *\r\n * @param callback - The function to be executed after the timer expires.\r\n * @param timeout - The time, in milliseconds that the timer should wait before the specified\r\n * function or code is executed. If this parameter is omitted, a value of 0 is used, meaning\r\n * execute \"immediately\", or more accurately, the next event cycle.\r\n * @param args - Additional arguments which are passed through to the function specified by `callback`.\r\n * @returns A {@link ITimerHandler} instance which can be used to cancel the timeout.\r\n * @example\r\n * ```ts\r\n * let timeoutCalled = false;\r\n * let theTimeout = scheduleTimeout(() => {\r\n * // This callback will be called after 100ms as this uses setTimeout()\r\n * timeoutCalled = true;\r\n * }, 100);\r\n *\r\n * // Instead of calling clearTimeout() with the returned value from setTimeout() the returned\r\n * // handler instance can be used instead to cancel the timer\r\n * theTimeout.cancel();\r\n * theTimeout.enabled; // false\r\n *\r\n * // You can start the timer via enabled\r\n * theTimeout.enabled = true;\r\n *\r\n * // You can also \"restart\" the timer, whether it has previously triggered not not via the `refresh()`\r\n * theTimeout.refresh();\r\n * ```\r\n */\r\nexport function scheduleTimeout(callback: (...args: A) => void, timeout: number): ITimerHandler {\r\n return _createTimeoutWith(true, UNDEF_VALUE, ArrSlice[CALL](arguments));\r\n}\r\n\r\n/**\r\n * Creates and starts a timer which executes a function or specified piece of code once the timer expires. The overrideFn will be\r\n * used to create the timer, this is simular to using `setTimeout` but provides a return object for cancelling and restarting\r\n * (refresh) the timer.\r\n *\r\n * The timer may be cancelled (cleared) by calling the `cancel()` function on the returned {@link ITimerHandler}, or\r\n * you can \"reschedule\" and/or \"restart\" the timer by calling the `refresh()` function on the returned {@link ITimerHandler}\r\n * instance\r\n *\r\n * @since 0.4.4\r\n * @group Timer\r\n *\r\n * @param overrideFn - setTimeout override function this will be called instead of the `setTimeout`, if the value\r\n * of `overrideFn` is null or undefined it will revert back to the native `setTimeout`. May also be an array with contains\r\n * both the setTimeout and clearTimeout override functions, if either is not provided the default native functions will be used\r\n * @param callback - The function to be executed after the timer expires.\r\n * @param timeout - The time, in milliseconds that the timer should wait before the specified\r\n * function or code is executed. If this parameter is omitted, a value of 0 is used, meaning\r\n * execute \"immediately\", or more accurately, the next event cycle.\r\n * @param args - Additional arguments which are passed through to the function specified by `callback`.\r\n * @returns A {@link ITimerHandler} instance which can be used to cancel the timeout.\r\n * @example\r\n * ```ts\r\n * let timeoutCalled = false;\r\n * // Your own \"setTimeout\" implementation to allow you to perform additional operations or possible wrap\r\n * // the callback to add timings.\r\n * function newSetTimeoutFn(callback: TimeoutOverrideFn) {\r\n * overrideCalled ++;\r\n * return setTimeout(callback, timeout);\r\n * }\r\n *\r\n * let theTimeout = scheduleTimeoutWith(newSetTimeoutFn, () => {\r\n * // This callback will be called after 100ms as this uses setTimeout()\r\n * timeoutCalled = true;\r\n * }, 100);\r\n *\r\n * // Instead of calling clearTimeout() with the returned value from setTimeout() the returned\r\n * // handler instance can be used instead to cancel the timer\r\n * theTimeout.cancel();\r\n * theTimeout.enabled; // false\r\n *\r\n * // You can start the timer via enabled\r\n * theTimeout.enabled = true;\r\n *\r\n * // You can also \"restart\" the timer, whether it has previously triggered not not via the `refresh()`\r\n * theTimeout.refresh();\r\n * ```\r\n * @example\r\n * ```ts\r\n * let timeoutCalled = false;\r\n * // Your own \"setTimeout\" implementation to allow you to perform additional operations or possible wrap\r\n * // the callback to add timings.\r\n * function newSetTimeoutFn(callback: TimeoutOverrideFn) {\r\n * overrideCalled ++;\r\n * return setTimeout(callback, timeout);\r\n * }\r\n *\r\n * // Your own \"clearTimeout\" implementation to allow you to perform additional operations or possible wrap\r\n * // the callback to add timings.\r\n * function newClearTimeoutFn(timeoutId: number) {\r\n * overrideCalled ++;\r\n * return clearTimeout( timeout);\r\n * }\r\n *\r\n * let theTimeout = scheduleTimeoutWith([newSetTimeoutFn, newClearTimeoutFn], () => {\r\n * // This callback will be called after 100ms as this uses setTimeout()\r\n * timeoutCalled = true;\r\n * }, 100);\r\n *\r\n * // Instead of calling clearTimeout() with the returned value from setTimeout() the returned\r\n * // handler instance can be used instead to cancel the timer, internally this will call the newClearTimeoutFn\r\n * theTimeout.cancel();\r\n * theTimeout.enabled; // false\r\n *\r\n * // You can start the timer via enabled\r\n * theTimeout.enabled = true;\r\n *\r\n * // You can also \"restart\" the timer, whether it has previously triggered not not via the `refresh()`\r\n * theTimeout.refresh();\r\n * ```\r\n */\r\nexport function scheduleTimeoutWith(overrideFn: TimeoutOverrideFn | TimeoutOverrideFuncs, callback: (...args: A) => void, timeout: number, ...args: A): ITimerHandler;\r\n\r\n/**\r\n * Creates and starts a timer which executes a function or specified piece of code once the timer expires. The overrideFn will be\r\n * used to create the timer, this is simular to using `setTimeout` but provides a return object for cancelling and restarting\r\n * (refresh) the timer.\r\n *\r\n * The timer may be cancelled (cleared) by calling the `cancel()` function on the returned {@link ITimerHandler}, or\r\n * you can \"reschedule\" and/or \"restart\" the timer by calling the `refresh()` function on the returned {@link ITimerHandler}\r\n * instance\r\n *\r\n * @since 0.4.4\r\n * @group Timer\r\n *\r\n * @param overrideFn - setTimeout override function this will be called instead of the `setTimeout`, if the value\r\n * of `overrideFn` is null or undefined it will revert back to the native `setTimeout`. May also be an array with contains\r\n * both the setTimeout and clearTimeout override functions, if either is not provided the default native functions will be used\r\n * @param callback - The function to be executed after the timer expires.\r\n * @param timeout - The time, in milliseconds that the timer should wait before the specified\r\n * function or code is executed. If this parameter is omitted, a value of 0 is used, meaning\r\n * execute \"immediately\", or more accurately, the next event cycle.\r\n * @param args - Additional arguments which are passed through to the function specified by `callback`.\r\n * @returns A {@link ITimerHandler} instance which can be used to cancel the timeout.\r\n * @example\r\n * ```ts\r\n * let timeoutCalled = false;\r\n * // Your own \"setTimeout\" implementation to allow you to perform additional operations or possible wrap\r\n * // the callback to add timings.\r\n * function newSetTimeoutFn(callback: TimeoutOverrideFn) {\r\n * overrideCalled ++;\r\n * return setTimeout(callback, timeout);\r\n * }\r\n *\r\n * let theTimeout = scheduleTimeoutWith(newSetTimeoutFn, () => {\r\n * // This callback will be called after 100ms as this uses setTimeout()\r\n * timeoutCalled = true;\r\n * }, 100);\r\n *\r\n * // Instead of calling clearTimeout() with the returned value from setTimeout() the returned\r\n * // handler instance can be used instead to cancel the timer\r\n * theTimeout.cancel();\r\n * theTimeout.enabled; // false\r\n *\r\n * // You can start the timer via enabled\r\n * theTimeout.enabled = true;\r\n *\r\n * // You can also \"restart\" the timer, whether it has previously triggered not not via the `refresh()`\r\n * theTimeout.refresh();\r\n * ```\r\n * @example\r\n * ```ts\r\n * let timeoutCalled = false;\r\n * // Your own \"setTimeout\" implementation to allow you to perform additional operations or possible wrap\r\n * // the callback to add timings.\r\n * function newSetTimeoutFn(callback: TimeoutOverrideFn) {\r\n * overrideCalled ++;\r\n * return setTimeout(callback, timeout);\r\n * }\r\n *\r\n * // Your own \"clearTimeout\" implementation to allow you to perform additional operations or possible wrap\r\n * // the callback to add timings.\r\n * function newClearTimeoutFn(timeoutId: number) {\r\n * overrideCalled ++;\r\n * return clearTimeout( timeout);\r\n * }\r\n *\r\n * let theTimeout = scheduleTimeoutWith([newSetTimeoutFn, newClearTimeoutFn], () => {\r\n * // This callback will be called after 100ms as this uses setTimeout()\r\n * timeoutCalled = true;\r\n * }, 100);\r\n *\r\n * // Instead of calling clearTimeout() with the returned value from setTimeout() the returned\r\n * // handler instance can be used instead to cancel the timer, internally this will call the newClearTimeoutFn\r\n * theTimeout.cancel();\r\n * theTimeout.enabled; // false\r\n *\r\n * // You can start the timer via enabled\r\n * theTimeout.enabled = true;\r\n *\r\n * // You can also \"restart\" the timer, whether it has previously triggered not not via the `refresh()`\r\n * theTimeout.refresh();\r\n * ```\r\n */\r\nexport function scheduleTimeoutWith(overrideFn: TimeoutOverrideFn | TimeoutOverrideFuncs, callback: (...args: A) => void, timeout: number): ITimerHandler {\r\n return _createTimeoutWith(true, overrideFn, ArrSlice[CALL](arguments, 1));\r\n}\r\n\r\n/**\r\n * Creates a non-running (paused) timer which will execute a function or specified piece of code when enabled and the timer expires,\r\n * this is simular to using `scheduleTimeout` but the timer is not enabled (running) and you MUST call `refresh` to start the timer.\r\n *\r\n * The timer may be cancelled (cleared) by calling the `cancel()` function on the returned {@link ITimerHandler}, or\r\n * you can \"reschedule\" and/or \"restart\" the timer by calling the `refresh()` function on the returned {@link ITimerHandler}\r\n * instance\r\n *\r\n * @since 0.7.0\r\n * @group Timer\r\n *\r\n * @param callback - The function to be executed after the timer expires.\r\n * @param timeout - The time, in milliseconds that the timer should wait before the specified\r\n * function or code is executed. If this parameter is omitted, a value of 0 is used, meaning\r\n * execute \"immediately\", or more accurately, the next event cycle.\r\n * @param args - Additional arguments which are passed through to the function specified by `callback`.\r\n * @returns A {@link ITimerHandler} instance which can be used to cancel the timeout.\r\n * @example\r\n * ```ts\r\n * let timeoutCalled = false;\r\n * let theTimeout = createTimeout(() => {\r\n * // This callback will be called after 100ms as this uses setTimeout()\r\n * timeoutCalled = true;\r\n * }, 100);\r\n *\r\n * // As the timer is not started you will need to call \"refresh\" to start the timer\r\n * theTimeout.refresh();\r\n *\r\n * // or set enabled to true\r\n * theTimeout.enabled = true;\r\n * ```\r\n */\r\nexport function createTimeout(callback: (...args: A) => void, timeout: number, ...args: A): ITimerHandler;\r\n\r\n/**\r\n * Creates a non-running (paused) timer which will execute a function or specified piece of code when enabled and the timer expires,\r\n * this is simular to using `scheduleTimeout` but the timer is not enabled (running) and you MUST call `refresh` to start the timer.\r\n *\r\n * The timer may be cancelled (cleared) by calling the `cancel()` function on the returned {@link ITimerHandler}, or\r\n * you can \"reschedule\" and/or \"restart\" the timer by calling the `refresh()` function on the returned {@link ITimerHandler}\r\n * instance\r\n *\r\n * @since 0.7.0\r\n * @group Timer\r\n *\r\n * @param callback - The function to be executed after the timer expires.\r\n * @param timeout - The time, in milliseconds that the timer should wait before the specified\r\n * function or code is executed. If this parameter is omitted, a value of 0 is used, meaning\r\n * execute \"immediately\", or more accurately, the next event cycle.\r\n * @param args - Additional arguments which are passed through to the function specified by `callback`.\r\n * @returns A {@link ITimerHandler} instance which can be used to cancel the timeout.\r\n * @example\r\n * ```ts\r\n * let timeoutCalled = false;\r\n * let theTimeout = createTimeout(() => {\r\n * // This callback will be called after 100ms as this uses setTimeout()\r\n * timeoutCalled = true;\r\n * }, 100);\r\n *\r\n * // As the timer is not started you will need to call \"refresh\" to start the timer\r\n * theTimeout.refresh();\r\n *\r\n * // or set enabled to true\r\n * theTimeout.enabled = true;\r\n * ```\r\n */\r\nexport function createTimeout(callback: (...args: A) => void, timeout: number): ITimerHandler {\r\n return _createTimeoutWith(false, UNDEF_VALUE, ArrSlice[CALL](arguments));\r\n}\r\n\r\n/**\r\n * Creates a non-running (paused) timer which will execute a function or specified piece of code when enabled once the timer expires.\r\n * The overrideFn will be used to create the timer, this is simular to using `scheduleTimeoutWith` but the timer is not enabled (running)\r\n * and you MUST call `refresh` to start the timer.\r\n *\r\n * The timer may be cancelled (cleared) by calling the `cancel()` function on the returned {@link ITimerHandler}, or\r\n * you can \"reschedule\" and/or \"restart\" the timer by calling the `refresh()` function on the returned {@link ITimerHandler}\r\n * instance\r\n *\r\n * @since 0.7.0\r\n * @group Timer\r\n *\r\n * @param overrideFn - setTimeout override function this will be called instead of the `setTimeout`, if the value\r\n * of `overrideFn` is null or undefined it will revert back to the native `setTimeout`. May also be an array with contains\r\n * both the setTimeout and clearTimeout override functions, if either is not provided the default native functions will be used\r\n * @param callback - The function to be executed after the timer expires.\r\n * @param timeout - The time, in milliseconds that the timer should wait before the specified\r\n * function or code is executed. If this parameter is omitted, a value of 0 is used, meaning\r\n * execute \"immediately\", or more accurately, the next event cycle.\r\n * @param args - Additional arguments which are passed through to the function specified by `callback`.\r\n * @returns A {@link ITimerHandler} instance which can be used to cancel the timeout.\r\n * @example\r\n * ```ts\r\n * let timeoutCalled = false;\r\n * // Your own \"setTimeout\" implementation to allow you to perform additional operations or possible wrap\r\n * // the callback to add timings.\r\n * function newSetTimeoutFn(callback: TimeoutOverrideFn) {\r\n * overrideCalled ++;\r\n * return setTimeout(callback, timeout);\r\n * }\r\n *\r\n * let theTimeout = createTimeoutWith(newSetTimeoutFn, () => {\r\n * // This callback will be called after 100ms as this uses setTimeout()\r\n * timeoutCalled = true;\r\n * }, 100);\r\n *\r\n * // As the timer is not started you will need to call \"refresh\" to start the timer\r\n * theTimeout.refresh();\r\n *\r\n * // or set enabled to true\r\n * theTimeout.enabled = true;\r\n * ```\r\n * @example\r\n * ```ts\r\n * let timeoutCalled = false;\r\n * // Your own \"setTimeout\" implementation to allow you to perform additional operations or possible wrap\r\n * // the callback to add timings.\r\n * function newSetTimeoutFn(callback: TimeoutOverrideFn) {\r\n * overrideCalled ++;\r\n * return setTimeout(callback, timeout);\r\n * }\r\n *\r\n * // Your own \"clearTimeout\" implementation to allow you to perform additional operations or possible wrap\r\n * // the callback to add timings.\r\n * function newClearTimeoutFn(timeoutId: number) {\r\n * overrideCalled ++;\r\n * return clearTimeout( timeout);\r\n * }\r\n *\r\n * let theTimeout = createTimeoutWith([newSetTimeoutFn, newClearTimeoutFn], () => {\r\n * // This callback will be called after 100ms as this uses setTimeout()\r\n * timeoutCalled = true;\r\n * }, 100);\r\n *\r\n * // As the timer is not started you will need to call \"refresh\" to start the timer\r\n * theTimeout.refresh();\r\n *\r\n * // or set enabled to true\r\n * theTimeout.enabled = true;\r\n * ```\r\n */\r\nexport function createTimeoutWith(overrideFn: TimeoutOverrideFn | TimeoutOverrideFuncs, callback: (...args: A) => void, timeout: number, ...args: A): ITimerHandler;\r\n\r\n/**\r\n * Creates a non-running (paused) timer which will execute a function or specified piece of code when enabled once the timer expires.\r\n * The overrideFn will be used to create the timer, this is simular to using `scheduleTimeoutWith` but the timer is not enabled (running)\r\n * and you MUST call `refresh` to start the timer.\r\n *\r\n * The timer may be cancelled (cleared) by calling the `cancel()` function on the returned {@link ITimerHandler}, or\r\n * you can \"reschedule\" and/or \"restart\" the timer by calling the `refresh()` function on the returned {@link ITimerHandler}\r\n * instance\r\n *\r\n * @since 0.7.0\r\n * @group Timer\r\n *\r\n * @param overrideFn - setTimeout override function this will be called instead of the `setTimeout`, if the value\r\n * of `overrideFn` is null or undefined it will revert back to the native `setTimeout`. May also be an array with contains\r\n * both the setTimeout and clearTimeout override functions, if either is not provided the default native functions will be used\r\n * @param callback - The function to be executed after the timer expires.\r\n * @param timeout - The time, in milliseconds that the timer should wait before the specified\r\n * function or code is executed. If this parameter is omitted, a value of 0 is used, meaning\r\n * execute \"immediately\", or more accurately, the next event cycle.\r\n * @param args - Additional arguments which are passed through to the function specified by `callback`.\r\n * @returns A {@link ITimerHandler} instance which can be used to cancel the timeout.\r\n * @example\r\n * ```ts\r\n * let timeoutCalled = false;\r\n * // Your own \"setTimeout\" implementation to allow you to perform additional operations or possible wrap\r\n * // the callback to add timings.\r\n * function newSetTimeoutFn(callback: TimeoutOverrideFn) {\r\n * overrideCalled ++;\r\n * return setTimeout(callback, timeout);\r\n * }\r\n *\r\n * let theTimeout = createTimeoutWith(newSetTimeoutFn, () => {\r\n * // This callback will be called after 100ms as this uses setTimeout()\r\n * timeoutCalled = true;\r\n * }, 100);\r\n *\r\n * // As the timer is not started you will need to call \"refresh\" to start the timer\r\n * theTimeout.refresh();\r\n *\r\n * // or set enabled to true\r\n * theTimeout.enabled = true;\r\n * ```\r\n * @example\r\n * ```ts\r\n * let timeoutCalled = false;\r\n * // Your own \"setTimeout\" implementation to allow you to perform additional operations or possible wrap\r\n * // the callback to add timings.\r\n * function newSetTimeoutFn(callback: TimeoutOverrideFn) {\r\n * overrideCalled ++;\r\n * return setTimeout(callback, timeout);\r\n * }\r\n *\r\n * // Your own \"clearTimeout\" implementation to allow you to perform additional operations or possible wrap\r\n * // the callback to add timings.\r\n * function newClearTimeoutFn(timeoutId: number) {\r\n * overrideCalled ++;\r\n * return clearTimeout( timeout);\r\n * }\r\n *\r\n * let theTimeout = createTimeoutWith([newSetTimeoutFn, newClearTimeoutFn], () => {\r\n * // This callback will be called after 100ms as this uses setTimeout()\r\n * timeoutCalled = true;\r\n * }, 100);\r\n *\r\n * // As the timer is not started you will need to call \"refresh\" to start the timer\r\n * theTimeout.refresh();\r\n *\r\n * // or set enabled to true\r\n * theTimeout.enabled = true;\r\n * ```\r\n */\r\nexport function createTimeoutWith(overrideFn: TimeoutOverrideFn | TimeoutOverrideFuncs, callback: (...args: A) => void, timeout: number): ITimerHandler {\r\n return _createTimeoutWith(false, overrideFn, ArrSlice[CALL](arguments, 1));\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { isUndefined } from \"../helpers/base\";\r\nimport { _getGlobalInstFn, getInst } from \"../helpers/environment\";\r\nimport { elapsedTime, perfNow } from \"../helpers/perf\";\r\nimport { ITimerHandler, _createTimerHandler } from \"./handler\";\r\nimport { scheduleTimeout } from \"./timeout\";\r\n\r\nlet _defaultIdleTimeout = 100;\r\nlet _maxExecutionTime = 50;\r\n\r\n/**\r\n * Type that represents the global `requestIdleCallback` function, which can be used to\r\n * schedule work when there is free time in the event loop. Defined as a type alias for\r\n * easier reference and to support older TypeScript versions.\r\n * @since 0.11.2\r\n * @param callback - A callback function that should be called in the near future, when\r\n * the event loop is idle. The callback function is passed an [IdleDeadline](https://developer.mozilla.org/en-US/docs/Web/API/IdleDeadline)\r\n * object describing the amount of time available and whether or not the callback has\r\n * been run because the timeout period expired.\r\n * @param options - Contains optional configuration parameters. Currently only one property is defined:\r\n * - `timeout` If the number of milliseconds represented by this parameter has elapsed and the callback\r\n * has not already been called, then a task to execute the callback is queued in the event loop (even\r\n * if doing so risks causing a negative performance impact). timeout must be a positive value or it\r\n * is ignored.\r\n * @returns A handle which can be used to cancel the callback by passing it into the `cancelIdleCallback()` method.\r\n */\r\nexport type RequestIdleCallback = (callback: IdleRequestCallback, options?: IdleRequestOptions) => number;\r\n\r\n/**\r\n * Type that represents the global `cancelIdleCallback` function, which can be used to\r\n * cancel a previously scheduled idle callback. Defined as a type alias for easier reference\r\n * and to support older TypeScript versions.\r\n * @since 0.11.2\r\n * @param handle - The handle returned by the `requestIdleCallback` function that identifies\r\n * the idle callback to cancel.\r\n */\r\nexport type CancelIdleCallback = (handle: number) => void;\r\n\r\n/**\r\n * Identifies if the runtime supports the `requestIdleCallback` API.\r\n *\r\n * @since 0.4.4\r\n * @group Timer\r\n * @group Idle\r\n * @group Environment\r\n *\r\n * @returns True if the runtime supports `requestIdleCallback` otherwise false.\r\n * @example\r\n * ```ts\r\n * let nativeIdleTimeouts = hasIdleCallback();\r\n * // true === idle timeouts are supported by the runtime otherwise false and the {@linke scheduleIdleCallback}\r\n * will use `setTimeout` instead.\r\n * ```\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function hasIdleCallback(): boolean {\r\n return !!( /*#__PURE__*/getIdleCallback());\r\n}\r\n\r\n/**\r\n * Returns the global `requestIdleCallback` function if available, which can be used to\r\n * schedule work when there is free time in the event loop, or if the runtime does not\r\n * support the `requestIdleCallback` it will return `null`.\r\n * @since 0.11.2\r\n * @group Idle\r\n * @group Environment\r\n */\r\nexport const getIdleCallback = (/*#__PURE__*/_getGlobalInstFn(getInst, [\"requestIdleCallback\"]));\r\n\r\n/**\r\n * Returns the global `cancelIdleCallback` function if available, which can be used to\r\n * cancel a previously scheduled idle callback, or if the runtime does not support the\r\n * `cancelIdleCallback` it will return `null`.\r\n * @since 0.11.2\r\n * @group Idle\r\n * @group Environment\r\n */\r\nexport const getCancelIdleCallback = (/*#__PURE__*/_getGlobalInstFn(getInst, [\"cancelIdleCallback\"]));\r\n\r\n/**\r\n * Set the idle timeout fallback timeout which is used when the runtime does not support `requestIdleCallback`\r\n * the default idle timeout will be used for the scheduled timer. Defaults to 100ms\r\n *\r\n * @since 0.4.4\r\n * @group Timer\r\n *\r\n * @param timeout - The time in milliseconds that the timer should wait before calling the idle function.\r\n */\r\nexport function setDefaultIdleTimeout(timeout: number) {\r\n _defaultIdleTimeout = timeout;\r\n}\r\n\r\n/**\r\n * Set the idle timeout fallback simulated maximum execution time, used when the runtime doesn't\r\n * support `requestIdleTimeout` to simulate the [IdleDeadline](https://w3c.github.io/requestidlecallback/#dom-idledeadline)\r\n * `timeRemaining` value.\r\n * This value is used as the base time of the [IdleDeadline.timeRemaining](https://developer.mozilla.org/en-US/docs/Web/API/IdleDeadline/timeRemaining)\r\n * less the start time the callback was called. Defaults to 50ms.\r\n *\r\n * @since 0.4.4\r\n * @group Timer\r\n *\r\n * @param maxTime - The maximum execution time in milliseconds.\r\n */\r\nexport function setDefaultMaxExecutionTime(maxTime: number) {\r\n _maxExecutionTime = maxTime;\r\n}\r\n\r\n/**\r\n * Queues a function to be called during a browser's idle periods. This enables developers to\r\n * perform background and low priority work on the main event loop, without impacting latency-critical\r\n * events such as animation and input response. Functions are generally called in first-in-first-out\r\n * order; however, callbacks which have a timeout specified may be called out-of-order if necessary\r\n * in order to run them before the timeout elapses.\r\n *\r\n * You can call scheduledleCallback() within an idle callback function to schedule another callback to\r\n * take place no sooner than the next pass through the event loop.\r\n *\r\n * If the runtime does not support the [requestIdleCallback](https://developer.mozilla.org/en-US/docs/Web/API/Window/requestIdleCallback)\r\n * it will fallback to use `setTimeout` with either the provided timeout or the current default idle\r\n * timeout, which can be set via {@link setDefaultIdleTimeout}. It will always supply a deadline which\r\n * indicates that the request timed out.\r\n *\r\n * @since 0.4.4\r\n * @group Timer\r\n *\r\n * @param callback - A reference to a function that should be called in the near future, when the\r\n * event loop is idle. The callback function is passed an [IdleDeadline](https://w3c.github.io/requestidlecallback/#dom-idledeadline)\r\n * object describing the amount of time available and whether or not the callback has been run because\r\n * the timeout period expired.\r\n * @param options - Contains optional configuration parameters. Currently only one property is defined:\r\n * `timeout` If the number of milliseconds represented by this parameter has elapsed and the callback\r\n * has not already been called, then a task to execute the callback is queued in the event loop (even\r\n * if doing so risks causing a negative performance impact). timeout must be a positive value or it\r\n * is ignored.\r\n * @returns A handle which can be used to cancel the callback by passing it into the `cancelIdleCallback()`\r\n * method.\r\n * @example\r\n * ```ts\r\n * let idleCalled = false;\r\n * let idleTimedOut = false;\r\n * let theIdleTimer = scheduleIdleCallback((idleDeadline: IdleDeadline) => {\r\n * // This callback will be called when the system is idle (via requestIdleCallback) or after the provided timeout 100ms\r\n * idleCalled = true;\r\n * idleTimedOut = idleDeadline?.didTimeout;\r\n * while ((idleDeadline.timeRemaining() > 0 || deadline.didTimeout)) {\r\n * // Do some background operations while there is time remaining or we timed out\r\n * // Unlike interval timers this callback will NOT be called again unless you call \"refresh\"\r\n * // to restart it or create a new idle timer\r\n * }\r\n * }, 100);\r\n *\r\n * // Instead of calling cancelIdleCallback() with the returned value from requestIdleCallback() the returned\r\n * // handler instance can be used instead to cancel the idle timer\r\n * theIdleTimer.cancel();\r\n * theIdleTimer.enabled; // false\r\n *\r\n * // You can start the timer via enabled\r\n * theIdleTimer.enabled = true;\r\n *\r\n * // You can also \"restart\" the timer, whether it has previously triggered not not via the `refresh()`\r\n * theIdleTimer.refresh();\r\n * ```\r\n */\r\nexport function scheduleIdleCallback(callback: IdleRequestCallback, options?: IdleRequestOptions): ITimerHandler {\r\n function _createDeadline(timedOut: boolean) {\r\n let startTime = perfNow();\r\n return {\r\n didTimeout: timedOut,\r\n timeRemaining: () => {\r\n return _maxExecutionTime - elapsedTime(startTime);\r\n }\r\n };\r\n }\r\n\r\n if (hasIdleCallback()) {\r\n let handler = _createTimerHandler(true, (idleId: number) => {\r\n idleId && getCancelIdleCallback()(idleId);\r\n return getIdleCallback()((deadline: IdleDeadline) => {\r\n handler.dn();\r\n callback(deadline || _createDeadline(false));\r\n }, options);\r\n }, (idleId: number) => {\r\n getCancelIdleCallback()(idleId);\r\n });\r\n\r\n return handler.h;\r\n }\r\n\r\n let timeout = (options || {}).timeout;\r\n if (isUndefined(timeout)) {\r\n timeout = _defaultIdleTimeout;\r\n }\r\n \r\n return scheduleTimeout(() => {\r\n callback(_createDeadline(true));\r\n }, timeout);\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { getGlobal, objCreate, objHasOwnProperty, throwTypeError } from \"@nevware21/ts-utils\";\r\n\r\ninterface DynamicGlobalSettings {\r\n /**\r\n * Stores the global options which will also be exposed on the runtime global\r\n */\r\n o: IDynamicProtoOpts,\r\n\r\n /**\r\n * Internal Global used to generate a unique dynamic class name, every new class will increase this value\r\n * @ignore\r\n */ \r\n n: number\r\n};\r\n\r\nconst UNDEFINED = \"undefined\";\r\n\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */ \r\nconst Constructor = 'constructor';\r\n\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */ \r\nconst Prototype = 'prototype';\r\n \r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nconst strFunction = 'function';\r\n\r\n/**\r\n * Used to define the name of the instance function lookup table\r\n * @ignore\r\n */ \r\nconst DynInstFuncTable = '_dynInstFuncs';\r\n \r\n/**\r\n * Name used to tag the dynamic prototype function\r\n * @ignore\r\n */ \r\nconst DynProxyTag = '_isDynProxy';\r\n \r\n/**\r\n * Name added to a prototype to define the dynamic prototype \"class\" name used to lookup the function table\r\n * @ignore\r\n */ \r\nconst DynClassName = '_dynClass';\r\n \r\n/**\r\n * Prefix added to the classname to avoid any name clashes with other instance level properties\r\n * @ignore\r\n */ \r\nconst DynClassNamePrefix = '_dynCls$';\r\n \r\n/**\r\n * A tag which is used to check if we have already to attempted to set the instance function if one is not present\r\n * @ignore\r\n */\r\nconst DynInstChkTag = '_dynInstChk';\r\n \r\n/**\r\n * A tag which is used to check if we are allows to try and set an instance function is one is not present. Using the same \r\n * tag name as the function level but a different const name for readability only.\r\n */\r\nconst DynAllowInstChkTag = DynInstChkTag;\r\n \r\n/**\r\n * The global (imported) instances where the global performance options are stored\r\n */\r\nconst DynProtoDefaultOptions = '_dfOpts';\r\n \r\n/**\r\n * Value used as the name of a class when it cannot be determined\r\n * @ignore\r\n */ \r\nconst UnknownValue = '_unknown_';\r\n \r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nconst str__Proto = \"__proto__\";\r\n \r\n/**\r\n * The polyfill version of __proto__ so that it doesn't cause issues for anyone not expecting it to exist\r\n */\r\nconst DynProtoBaseProto = \"_dyn\" + str__Proto;\r\n\r\n/**\r\n * Runtime Global holder for dynamicProto settings\r\n */\r\nconst DynProtoGlobalSettings = \"__dynProto$Gbl\";\r\n\r\n/**\r\n * Track the current prototype for IE8 as you can't look back to get the prototype\r\n */\r\nconst DynProtoCurrent = \"_dynInstProto\";\r\n \r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nconst strUseBaseInst = 'useBaseInst';\r\n \r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nconst strSetInstFuncs = 'setInstFuncs';\r\n \r\nconst Obj = Object;\r\n\r\n/**\r\n * Pre-lookup to check if we are running on a modern browser (i.e. not IE8)\r\n * @ignore\r\n */\r\nlet _objGetPrototypeOf = Obj[\"getPrototypeOf\"];\r\n\r\n/**\r\n * Pre-lookup to check for the existence of this function\r\n */\r\nlet _objGetOwnProps = Obj[\"getOwnPropertyNames\"];\r\n\r\n// Since 1.1.7 moving these to the runtime global to work around mixed version and module issues\r\n// See Issue https://github.com/microsoft/DynamicProto-JS/issues/57 for details\r\nlet _gbl = getGlobal();\r\nlet _gblInst: DynamicGlobalSettings = _gbl[DynProtoGlobalSettings] || (_gbl[DynProtoGlobalSettings] = {\r\n o: {\r\n [strSetInstFuncs]: true,\r\n [strUseBaseInst]: true\r\n },\r\n n: 1000 // Start new global index @ 1000 so we \"fix\" some cases when mixed with 1.1.6 or earlier\r\n});\r\n\r\n/**\r\n * Helper used to check whether the target is an Object prototype or Array prototype\r\n * @ignore\r\n */ \r\nfunction _isObjectOrArrayPrototype(target:any) {\r\n return target && (target === Obj[Prototype] || target === Array[Prototype]);\r\n}\r\n\r\n/**\r\n * Helper used to check whether the target is an Object prototype, Array prototype or Function prototype\r\n * @ignore\r\n */ \r\nfunction _isObjectArrayOrFunctionPrototype(target:any) {\r\n return _isObjectOrArrayPrototype(target) || target === Function[Prototype];\r\n}\r\n\r\n/**\r\n * Helper used to get the prototype of the target object as getPrototypeOf is not available in an ES3 environment.\r\n * @ignore\r\n */ \r\nfunction _getObjProto(target:any) {\r\n let newProto;\r\n\r\n if (target) {\r\n // This method doesn't exist in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n return _objGetPrototypeOf(target);\r\n }\r\n\r\n let curProto = target[str__Proto] || target[Prototype] || (target[Constructor] ? target[Constructor][Prototype] : null);\r\n\r\n // Using the pre-calculated value as IE8 doesn't support looking up the prototype of a prototype and thus fails for more than 1 base class\r\n newProto = target[DynProtoBaseProto] || curProto;\r\n if (!objHasOwnProperty(target, DynProtoBaseProto)) {\r\n // As this prototype doesn't have this property then this is from an inherited class so newProto is the base to return so save it\r\n // so we can look it up value (which for a multiple hierarchy dynamicProto will be the base class)\r\n delete target[DynProtoCurrent]; // Delete any current value allocated to this instance so we pick up the value from prototype hierarchy\r\n newProto = target[DynProtoBaseProto] = target[DynProtoCurrent] || target[DynProtoBaseProto];\r\n target[DynProtoCurrent] = curProto;\r\n }\r\n }\r\n\r\n return newProto;\r\n}\r\n\r\n/**\r\n * Helper to get the properties of an object, including none enumerable ones as functions on a prototype in ES6\r\n * are not enumerable.\r\n * @param target \r\n */\r\nfunction _forEachProp(target: any, func: (name: string) => void) {\r\n let props: string[] = [];\r\n if (_objGetOwnProps) {\r\n props = _objGetOwnProps(target);\r\n } else {\r\n for (let name in target) {\r\n if (typeof name === \"string\" && objHasOwnProperty(target, name)) {\r\n props.push(name);\r\n }\r\n }\r\n }\r\n\r\n if (props && props.length > 0) {\r\n for (let lp = 0; lp < props.length; lp++) {\r\n func(props[lp]);\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Helper function to check whether the provided function name is a potential candidate for dynamic\r\n * callback and prototype generation.\r\n * @param target The target object, may be a prototype or class object\r\n * @param funcName The function name\r\n * @param skipOwn Skips the check for own property\r\n * @ignore\r\n */\r\nfunction _isDynamicCandidate(target:any, funcName:string, skipOwn:boolean) {\r\n return (funcName !== Constructor && typeof target[funcName] === strFunction && (skipOwn || objHasOwnProperty(target, funcName)) && funcName !== str__Proto && funcName !== Prototype);\r\n}\r\n\r\n/**\r\n * Helper to throw a TypeError exception\r\n * @param message the message\r\n * @ignore\r\n */\r\nfunction _throwTypeError(message:string) {\r\n throwTypeError(\"DynamicProto: \" + message);\r\n}\r\n\r\n/**\r\n * Returns a collection of the instance functions that are defined directly on the thisTarget object, it does \r\n * not return any inherited functions\r\n * @param thisTarget The object to get the instance functions from\r\n * @ignore\r\n */\r\nfunction _getInstanceFuncs(thisTarget:any): any {\r\n // Get the base proto\r\n var instFuncs = objCreate(null);\r\n\r\n // Save any existing instance functions\r\n _forEachProp(thisTarget, (name) => {\r\n // Don't include any dynamic prototype instances - as we only want the real functions\r\n if (!instFuncs[name] && _isDynamicCandidate(thisTarget, name, false)) {\r\n // Create an instance callback for passing the base function to the caller\r\n instFuncs[name] = thisTarget[name];\r\n }\r\n });\r\n\r\n return instFuncs;\r\n}\r\n\r\n/**\r\n * Returns whether the value is included in the array\r\n * @param values The array of values\r\n * @param value The value\r\n */\r\nfunction _hasVisited(values:any[], value:any) {\r\n for (let lp = values.length - 1; lp >= 0; lp--) {\r\n if (values[lp] === value) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n}\r\n\r\n/**\r\n * Returns an object that contains callback functions for all \"base/super\" functions, this is used to \"save\"\r\n * enabling calling super.xxx() functions without requiring that the base \"class\" has defined a prototype references\r\n * @param target The current instance\r\n * @ignore\r\n */\r\nfunction _getBaseFuncs(classProto:any, thisTarget:any, instFuncs:any, useBaseInst:boolean): any {\r\n function _instFuncProxy(target:any, funcHost: any, funcName: string) {\r\n let theFunc = funcHost[funcName];\r\n if (theFunc[DynProxyTag] && useBaseInst) {\r\n // grab and reuse the hosted looking function (if available) otherwise the original passed function\r\n let instFuncTable = target[DynInstFuncTable] || {};\r\n if (instFuncTable[DynAllowInstChkTag] !== false) {\r\n theFunc = (instFuncTable[funcHost[DynClassName]] || {})[funcName] || theFunc;\r\n }\r\n }\r\n\r\n return function() {\r\n // eslint-disable-next-line prefer-rest-params\r\n return theFunc.apply(target, arguments);\r\n };\r\n }\r\n\r\n // Start creating a new baseFuncs by creating proxies for the instance functions (as they may get replaced)\r\n var baseFuncs = objCreate(null);\r\n _forEachProp(instFuncs, (name) => {\r\n // Create an instance callback for passing the base function to the caller\r\n baseFuncs[name] = _instFuncProxy(thisTarget, instFuncs, name);\r\n });\r\n \r\n // Get the base prototype functions\r\n var baseProto = _getObjProto(classProto);\r\n let visited:any[] = [];\r\n\r\n // Don't include base object functions for Object, Array or Function\r\n while (baseProto && !_isObjectArrayOrFunctionPrototype(baseProto) && !_hasVisited(visited, baseProto)) {\r\n // look for prototype functions\r\n _forEachProp(baseProto, (name) => {\r\n // Don't include any dynamic prototype instances - as we only want the real functions\r\n // For IE 7/8 the prototype lookup doesn't provide the full chain so we need to bypass the \r\n // hasOwnProperty check we get all of the methods, main difference is that IE7/8 doesn't return\r\n // the Object prototype methods while bypassing the check\r\n if (!baseFuncs[name] && _isDynamicCandidate(baseProto, name, !_objGetPrototypeOf)) {\r\n // Create an instance callback for passing the base function to the caller\r\n baseFuncs[name] = _instFuncProxy(thisTarget, baseProto, name);\r\n }\r\n });\r\n\r\n // We need to find all possible functions that might be overloaded by walking the entire prototype chain\r\n // This avoids the caller from needing to check whether it's direct base class implements the function or not\r\n // by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.\r\n visited.push(baseProto);\r\n baseProto = _getObjProto(baseProto);\r\n }\r\n\r\n return baseFuncs;\r\n}\r\n\r\nfunction _getInstFunc(target: any, funcName: string, proto: any, currentDynProtoProxy: any) {\r\n let instFunc = null;\r\n\r\n // We need to check whether the class name is defined directly on this prototype otherwise\r\n // it will walk the proto chain and return any parent proto classname.\r\n if (target && objHasOwnProperty(proto, DynClassName)) {\r\n\r\n let instFuncTable = target[DynInstFuncTable] || objCreate(null);\r\n instFunc = (instFuncTable[proto[DynClassName]] || objCreate(null))[funcName];\r\n\r\n if (!instFunc) {\r\n // Avoid stack overflow from recursive calling the same function\r\n _throwTypeError(\"Missing [\" + funcName + \"] \" + strFunction);\r\n }\r\n\r\n // We have the instance function, lets check it we can speed up further calls\r\n // by adding the instance function back directly on the instance (avoiding the dynamic func lookup)\r\n if (!instFunc[DynInstChkTag] && instFuncTable[DynAllowInstChkTag] !== false) {\r\n // If the instance already has an instance function we can't replace it\r\n let canAddInst = !objHasOwnProperty(target, funcName);\r\n\r\n // Get current prototype\r\n let objProto = _getObjProto(target);\r\n let visited:any[] = [];\r\n\r\n // Lookup the function starting at the top (instance level prototype) and traverse down, if the first matching function\r\n // if nothing is found or if the first hit is a dynamic proto instance then we can safely add an instance shortcut\r\n while (canAddInst && objProto && !_isObjectArrayOrFunctionPrototype(objProto) && !_hasVisited(visited, objProto)) {\r\n let protoFunc = objProto[funcName];\r\n if (protoFunc) {\r\n canAddInst = (protoFunc === currentDynProtoProxy);\r\n break;\r\n }\r\n\r\n // We need to find all possible initial functions to ensure that we don't bypass a valid override function\r\n visited.push(objProto);\r\n objProto = _getObjProto(objProto);\r\n }\r\n\r\n try {\r\n if (canAddInst) {\r\n // This instance doesn't have an instance func and the class hierarchy does have a higher level prototype version\r\n // so it's safe to directly assign for any subsequent calls (for better performance)\r\n target[funcName] = instFunc;\r\n }\r\n\r\n // Block further attempts to set the instance function for any\r\n instFunc[DynInstChkTag] = 1;\r\n } catch (e) {\r\n // Don't crash if the object is readonly or the runtime doesn't allow changing this\r\n // And set a flag so we don't try again for any function\r\n instFuncTable[DynAllowInstChkTag] = false;\r\n }\r\n }\r\n }\r\n\r\n return instFunc;\r\n}\r\n\r\nfunction _getProtoFunc(funcName: string, proto: any, currentDynProtoProxy: any) {\r\n let protoFunc = proto[funcName];\r\n\r\n // Check that the prototype function is not a self reference -- try to avoid stack overflow!\r\n if (protoFunc === currentDynProtoProxy) {\r\n // It is so lookup the base prototype\r\n protoFunc = _getObjProto(proto)[funcName];\r\n }\r\n\r\n if (typeof protoFunc !== strFunction) {\r\n _throwTypeError(\"[\" + funcName + \"] is not a \" + strFunction);\r\n }\r\n\r\n return protoFunc;\r\n}\r\n\r\n/**\r\n * Add the required dynamic prototype methods to the the class prototype\r\n * @param proto - The class prototype\r\n * @param className - The instance classname \r\n * @param target - The target instance\r\n * @param baseInstFuncs - The base instance functions\r\n * @param setInstanceFunc - Flag to allow prototype function to reset the instance function if one does not exist\r\n * @ignore\r\n */\r\nfunction _populatePrototype(proto:any, className:string, target:any, baseInstFuncs:any, setInstanceFunc:boolean) {\r\n function _createDynamicPrototype(proto:any, funcName:string) {\r\n let dynProtoProxy = function() {\r\n // Use the instance or prototype function\r\n let instFunc = _getInstFunc(this, funcName, proto, dynProtoProxy) || _getProtoFunc(funcName, proto, dynProtoProxy);\r\n // eslint-disable-next-line prefer-rest-params\r\n return instFunc.apply(this, arguments);\r\n };\r\n \r\n // Tag this function as a proxy to support replacing dynamic proxy elements (primary use case is for unit testing\r\n // via which can dynamically replace the prototype function reference)\r\n (dynProtoProxy as any)[DynProxyTag] = 1;\r\n return dynProtoProxy;\r\n }\r\n \r\n if (!_isObjectOrArrayPrototype(proto)) {\r\n let instFuncTable = target[DynInstFuncTable] = target[DynInstFuncTable] || objCreate(null);\r\n if (!_isObjectOrArrayPrototype(instFuncTable)) {\r\n let instFuncs = instFuncTable[className] = (instFuncTable[className] || objCreate(null)); // fetch and assign if as it may not exist yet\r\n\r\n // Set whether we are allow to lookup instances, if someone has set to false then do not re-enable\r\n if (instFuncTable[DynAllowInstChkTag] !== false) {\r\n instFuncTable[DynAllowInstChkTag] = !!setInstanceFunc;\r\n }\r\n\r\n if (!_isObjectOrArrayPrototype(instFuncs)) {\r\n _forEachProp(target, (name) => {\r\n // Only add overridden functions\r\n if (_isDynamicCandidate(target, name, false) && target[name] !== baseInstFuncs[name] ) {\r\n // Save the instance Function to the lookup table and remove it from the instance as it's not a dynamic proto function\r\n instFuncs[name] = target[name];\r\n delete target[name];\r\n \r\n // Add a dynamic proto if one doesn't exist or if a prototype function exists and it's not a dynamic one\r\n if (!objHasOwnProperty(proto, name) || (proto[name] && !proto[name][DynProxyTag])) {\r\n proto[name] = _createDynamicPrototype(proto, name);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Checks whether the passed prototype object appears to be correct by walking the prototype hierarchy of the instance\r\n * @param classProto The class prototype instance\r\n * @param thisTarget The current instance that will be checked whether the passed prototype instance is in the hierarchy\r\n * @ignore\r\n */\r\nfunction _checkPrototype(classProto:any, thisTarget:any) {\r\n // This method doesn't existing in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n // As this is primarily a coding time check, don't bother checking if running in IE8 or lower\r\n let visited:any[] = [];\r\n let thisProto = _getObjProto(thisTarget);\r\n while (thisProto && !_isObjectArrayOrFunctionPrototype(thisProto) && !_hasVisited(visited, thisProto)) {\r\n if (thisProto === classProto) {\r\n return true;\r\n }\r\n\r\n // This avoids the caller from needing to check whether it's direct base class implements the function or not\r\n // by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.\r\n visited.push(thisProto);\r\n thisProto = _getObjProto(thisProto);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n // If objGetPrototypeOf doesn't exist then just assume everything is ok.\r\n return true;\r\n}\r\n\r\n/**\r\n * Gets the current prototype name using the ES6 name if available otherwise falling back to a use unknown as the name.\r\n * It's not critical for this to return a name, it's used to decorate the generated unique name for easier debugging only.\r\n * @param target \r\n * @param unknownValue \r\n * @ignore\r\n */\r\nfunction _getObjName(target:any, unknownValue?:string) {\r\n if (objHasOwnProperty(target, Prototype)) {\r\n // Look like a prototype\r\n return target.name || unknownValue || UnknownValue\r\n }\r\n\r\n return (((target || {})[Constructor]) || {}).name || unknownValue || UnknownValue;\r\n}\r\n\r\n/**\r\n * Interface to define additional configuration options to control how the dynamic prototype functions operate.\r\n */\r\nexport interface IDynamicProtoOpts {\r\n\r\n /**\r\n * Should the dynamic prototype attempt to set an instance function for instances that do not already have an\r\n * function of the same name or have been extended by a class with a (non-dynamic proto) prototype function.\r\n */\r\n setInstFuncs: boolean,\r\n\r\n /**\r\n * When looking for base (super) functions if it finds a dynamic proto instances can it use the instance functions\r\n * and bypass the prototype lookups. Defaults to true.\r\n */\r\n useBaseInst?: boolean\r\n}\r\n\r\n/**\r\n * The delegate signature for the function used as the callback for dynamicProto() \r\n * @typeparam DPType This is the generic type of the class, used to keep intellisense valid for the proxy instance, even \r\n * though it is only a proxy that only contains the functions \r\n * @param theTarget This is the real \"this\" of the current target object\r\n * @param baseFuncProxy The is a proxy object which ONLY contains this function that existed on the \"this\" instance before\r\n * calling dynamicProto, it does NOT contain properties of this. This is basically equivalent to using the \"super\" keyword.\r\n */\r\nexport type DynamicProtoDelegate = (theTarget:DPType, baseFuncProxy?:DPType) => void;\r\n\r\n/**\r\n * Helper function when creating dynamic (inline) functions for classes, this helper performs the following tasks :-\r\n * - Saves references to all defined base class functions\r\n * - Calls the delegateFunc with the current target (this) and a base object reference that can be used to call all \"super\" functions.\r\n * - Will populate the class prototype for all overridden functions to support class extension that call the prototype instance.\r\n * Callers should use this helper when declaring all function within the constructor of a class, as mentioned above the delegateFunc is \r\n * passed both the target \"this\" and an object that can be used to call any base (super) functions, using this based object in place of\r\n * super.XXX() (which gets expanded to _super.prototype.XXX()) provides a better minification outcome and also ensures the correct \"this\"\r\n * context is maintained as TypeScript creates incorrect references using super.XXXX() for dynamically defined functions i.e. Functions\r\n * defined in the constructor or some other function (rather than declared as complete typescript functions).\r\n * ### Usage\r\n * ```typescript\r\n * import dynamicProto from \"@microsoft/dynamicproto-js\";\r\n * class ExampleClass extends BaseClass {\r\n * constructor() {\r\n * dynamicProto(ExampleClass, this, (_self, base) => {\r\n * // This will define a function that will be converted to a prototype function\r\n * _self.newFunc = () => {\r\n * // Access any \"this\" instance property \r\n * if (_self.someProperty) {\r\n * ...\r\n * }\r\n * }\r\n * // This will define a function that will be converted to a prototype function\r\n * _self.myFunction = () => {\r\n * // Access any \"this\" instance property\r\n * if (_self.someProperty) {\r\n * // Call the base version of the function that we are overriding\r\n * base.myFunction();\r\n * }\r\n * ...\r\n * }\r\n * _self.initialize = () => {\r\n * ...\r\n * }\r\n * // Warnings: While the following will work as _self is simply a reference to\r\n * // this, if anyone overrides myFunction() the overridden will be called first\r\n * // as the normal JavaScript method resolution will occur and the defined\r\n * // _self.initialize() function is actually gets removed from the instance and\r\n * // a proxy prototype version is created to reference the created method.\r\n * _self.initialize();\r\n * });\r\n * }\r\n * }\r\n * ```\r\n * @typeparam DPType This is the generic type of the class, used to keep intellisense valid\r\n * @typeparam DPCls The type that contains the prototype of the current class\r\n * @param theClass - This is the current class instance which contains the prototype for the current class\r\n * @param target - The current \"this\" (target) reference, when the class has been extended this.prototype will not be the 'theClass' value.\r\n * @param delegateFunc - The callback function (closure) that will create the dynamic function\r\n * @param options - Additional options to configure how the dynamic prototype operates\r\n */\r\nexport default function dynamicProto(theClass:DPCls, target:DPType, delegateFunc: DynamicProtoDelegate, options?:IDynamicProtoOpts): void {\r\n // Make sure that the passed theClass argument looks correct\r\n if (!objHasOwnProperty(theClass, Prototype)) {\r\n _throwTypeError(\"theClass is an invalid class definition.\");\r\n }\r\n\r\n // Quick check to make sure that the passed theClass argument looks correct (this is a common copy/paste error)\r\n let classProto = theClass[Prototype];\r\n if (!_checkPrototype(classProto, target)) {\r\n _throwTypeError(\"[\" + _getObjName(theClass) + \"] not in hierarchy of [\" + _getObjName(target) + \"]\");\r\n }\r\n\r\n let className = null;\r\n if (objHasOwnProperty(classProto, DynClassName)) {\r\n // Only grab the class name if it's defined on this prototype (i.e. don't walk the prototype chain)\r\n className = classProto[DynClassName];\r\n } else {\r\n // As not all browser support name on the prototype creating a unique dynamic one if we have not already\r\n // assigned one, so we can use a simple string as the lookup rather than an object for the dynamic instance\r\n // function table lookup.\r\n className = DynClassNamePrefix + _getObjName(theClass, \"_\") + \"$\" + _gblInst.n ;\r\n _gblInst.n++;\r\n classProto[DynClassName] = className;\r\n }\r\n\r\n let perfOptions = dynamicProto[DynProtoDefaultOptions];\r\n let useBaseInst = !!perfOptions[strUseBaseInst];\r\n if (useBaseInst && options && options[strUseBaseInst] !== undefined) {\r\n useBaseInst = !!options[strUseBaseInst];\r\n }\r\n\r\n // Get the current instance functions\r\n let instFuncs = _getInstanceFuncs(target);\r\n\r\n // Get all of the functions for any base instance (before they are potentially overridden)\r\n let baseFuncs = _getBaseFuncs(classProto, target, instFuncs, useBaseInst);\r\n\r\n // Execute the delegate passing in both the current target \"this\" and \"base\" function references\r\n // Note casting the same type as we don't actually have the base class here and this will provide some intellisense support\r\n delegateFunc(target, baseFuncs as DPType);\r\n\r\n // Don't allow setting instance functions for older IE instances\r\n let setInstanceFunc = !!_objGetPrototypeOf && !!perfOptions[strSetInstFuncs];\r\n if (setInstanceFunc && options) {\r\n setInstanceFunc = !!options[strSetInstFuncs];\r\n }\r\n\r\n // Populate the Prototype for any overridden instance functions\r\n _populatePrototype(classProto, className, target, instFuncs, setInstanceFunc !== false);\r\n}\r\n\r\n/**\r\n * Exposes the default global options to allow global configuration, if the global values are disabled these will override\r\n * any passed values. This is primarily exposed to support unit-testing without the need for individual classes to expose\r\n * their internal usage of dynamic proto.\r\n */\r\ndynamicProto[DynProtoDefaultOptions] = _gblInst.o;\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nexport const strShimFunction = \"function\";\r\nexport const strShimObject = \"object\";\r\nexport const strShimUndefined = \"undefined\";\r\nexport const strShimPrototype = \"prototype\";\r\nexport const strDefault = \"default\";\r\n\r\nexport const ObjClass = Object;\r\nexport const ObjProto = ObjClass[strShimPrototype];\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { getGlobal, objAssign, objCreate, objDefineProp, objHasOwnProperty, throwTypeError } from \"@nevware21/ts-utils\";\r\nimport {\r\n ObjClass, ObjProto,\r\n strDefault, strShimFunction, strShimPrototype\r\n} from \"./Constants\";\r\n\r\n// Most of these functions have been directly shamelessly \"lifted\" from the https://github.com/@microsoft/tslib and\r\n// modified to be ES5 compatible and applying several minification and tree-shaking techniques so that Application Insights\r\n// can successfully use TypeScript \"importHelpers\" which imports tslib during compilation but it will use these at runtime\r\n// Which is also why all of the functions have not been included as Application Insights currently doesn't use or require\r\n// them.\r\n\r\nexport const SymbolObj = (getGlobal()||{})[\"Symbol\"];\r\nexport const ReflectObj = (getGlobal()||{})[\"Reflect\"];\r\nexport const __hasReflect = !!ReflectObj;\r\n\r\nconst strDecorate = \"decorate\";\r\nconst strMetadata = \"metadata\";\r\nconst strGetOwnPropertySymbols = \"getOwnPropertySymbols\";\r\nconst strIterator = \"iterator\";\r\nconst strHasOwnProperty = \"hasOwnProperty\";\r\n\r\nexport declare type ObjAssignFunc = (t: any, ...sources:any[]) => any;\r\n\r\nexport var __objAssignFnImpl: ObjAssignFunc = function(t: any): any {\r\n // tslint:disable-next-line: ban-comma-operator\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) {\r\n if (ObjProto[strHasOwnProperty].call(s, p)) {\r\n (t as any)[p] = s[p];\r\n }\r\n }\r\n }\r\n return t;\r\n};\r\n\r\nexport var __assignFn: ObjAssignFunc = objAssign || __objAssignFnImpl;\r\n\r\n// tslint:disable-next-line: only-arrow-functions\r\nvar extendStaticsFn = function(d: any, b: any): any {\r\n extendStaticsFn = ObjClass[\"setPrototypeOf\"] ||\r\n // tslint:disable-next-line: only-arrow-functions\r\n ({ __proto__: [] } instanceof Array && function (d: any, b: any) {\r\n d.__proto__ = b;\r\n }) ||\r\n // tslint:disable-next-line: only-arrow-functions\r\n function (d: any, b: any) {\r\n for (var p in b) {\r\n if (b[strHasOwnProperty](p)) {\r\n d[p] = b[p];\r\n }\r\n }\r\n };\r\n return extendStaticsFn(d, b);\r\n};\r\n\r\nexport function __extendsFn(d: any, b: any) {\r\n if (typeof b !== strShimFunction && b !== null) {\r\n throwTypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n }\r\n extendStaticsFn(d, b);\r\n function __(this: any) {\r\n this.constructor = d;\r\n }\r\n // tslint:disable-next-line: ban-comma-operator\r\n d[strShimPrototype] = b === null ? objCreate(b) : (__[strShimPrototype] = b[strShimPrototype], new (__ as any)());\r\n}\r\n\r\nexport function __restFn(s: any, e: any) {\r\n var t = {};\r\n for (var k in s) {\r\n if (objHasOwnProperty(s, k) && e.indexOf(k) < 0) {\r\n t[k] = s[k];\r\n }\r\n }\r\n if (s != null && typeof ObjClass[strGetOwnPropertySymbols] === strShimFunction) {\r\n for (var i = 0, p = ObjClass[strGetOwnPropertySymbols](s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && ObjProto[\"propertyIsEnumerable\"].call(s, p[i])) {\r\n t[p[i]] = s[p[i]];\r\n }\r\n }\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorateFn(decorators: any, target: any, key: any, desc: any) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = ObjClass[\"getOwnPropertyDescriptor\"](target, key) : desc, d;\r\n if (__hasReflect && typeof ReflectObj[strDecorate] === strShimFunction) {\r\n r = ReflectObj[strDecorate](decorators, target, key, desc);\r\n } else {\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n // eslint-disable-next-line no-cond-assign\r\n if (d = decorators[i]) {\r\n r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n }\r\n }\r\n }\r\n\r\n // tslint:disable-next-line:ban-comma-operator\r\n return c > 3 && r && objDefineProp(target, key, r), r;\r\n}\r\n\r\nexport function __paramFn(paramIndex: number, decorator: Function) {\r\n return function (target: any, key: any) {\r\n decorator(target, key, paramIndex);\r\n }\r\n}\r\n\r\nexport function __metadataFn(metadataKey: any, metadataValue: any) {\r\n if (__hasReflect && ReflectObj[strMetadata] === strShimFunction) {\r\n return ReflectObj[strMetadata](metadataKey, metadataValue);\r\n }\r\n}\r\n\r\nexport function __exportStarFn(m: any, o: any) {\r\n for (var p in m) {\r\n if (p !== strDefault && !objHasOwnProperty(o, p)) {\r\n __createBindingFn(o, m, p);\r\n }\r\n }\r\n}\r\n\r\nexport function __createBindingFn(o: any, m: any, k: any, k2?: any) {\r\n if (k2 === undefined) {\r\n k2 = k;\r\n }\r\n \r\n if (!!objDefineProp) {\r\n objDefineProp(o, k2, {\r\n enumerable: true,\r\n get() {\r\n return m[k];\r\n }\r\n });\r\n } else {\r\n o[k2] = m[k];\r\n }\r\n}\r\n\r\nexport function __valuesFn(o: any) {\r\n var s = typeof SymbolObj === strShimFunction && SymbolObj[strIterator], m = s && o[s], i = 0;\r\n if (m) {\r\n return m.call(o);\r\n }\r\n\r\n if (o && typeof o.length === \"number\") {\r\n return {\r\n next () {\r\n if (o && i >= o.length) {\r\n o = void 0;\r\n }\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n }\r\n\r\n throwTypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __readFn(o: any, n: any) {\r\n var m = typeof SymbolObj === strShimFunction && o[SymbolObj[strIterator]];\r\n if (!m) {\r\n return o;\r\n }\r\n\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\r\n ar.push(r.value);\r\n }\r\n } catch (error) {\r\n e = {\r\n error\r\n };\r\n } finally {\r\n try {\r\n // tslint:disable-next-line:no-conditional-assignment\r\n if (r && !r.done && (m = i[\"return\"])) {\r\n m.call(i);\r\n }\r\n } finally {\r\n if (e) {\r\n // eslint-disable-next-line no-unsafe-finally\r\n throw e.error;\r\n }\r\n }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArraysFn() {\r\n var theArgs = arguments;\r\n // Calculate new total size\r\n for (var s = 0, i = 0, il = theArgs.length; i < il; i++) {\r\n s += theArgs[i].length;\r\n }\r\n\r\n // Create new full array\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\r\n for (var a = theArgs[i], j = 0, jl = a.length; j < jl; j++, k++) {\r\n r[k] = a[j];\r\n }\r\n }\r\n\r\n return r;\r\n}\r\n\r\nexport function __spreadArrayFn(to: any, from: any) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) {\r\n to[j] = from[i];\r\n }\r\n\r\n return to;\r\n}\r\n\r\nexport function __makeTemplateObjectFn(cooked: any, raw: any) {\r\n if (objDefineProp) {\r\n objDefineProp(cooked, \"raw\", { value: raw });\r\n } else {\r\n cooked.raw = raw;\r\n }\r\n\r\n return cooked;\r\n}\r\n\r\nexport function __importStarFn(mod: any) {\r\n if (mod && mod.__esModule) {\r\n return mod;\r\n }\r\n\r\n var result = {};\r\n if (mod != null) {\r\n for (var k in mod) {\r\n if (k !== strDefault && Object.prototype.hasOwnProperty.call(mod, k)) {\r\n __createBindingFn(result, mod, k);\r\n }\r\n }\r\n }\r\n\r\n // Set default module\r\n if (!!objDefineProp) {\r\n objDefineProp( result, strDefault, { enumerable: true, value: mod });\r\n } else {\r\n result[strDefault] = mod;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport function __importDefaultFn(mod:any) {\r\n return (mod && mod.__esModule) ? mod : { strDefault: mod };\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n/**\r\n * This is an internal property used to cause internal (reporting) requests to be ignored from reporting\r\n * additional telemetry, to handle polyfil implementations ALL urls used with a disabled request will\r\n * also be ignored for future requests even when this property is not provided.\r\n * Tagging as Ignore as this is an internal value and is not expected to be used outside of the SDK\r\n * @ignore\r\n */\r\nexport var DisabledPropertyName = \"Microsoft_ApplicationInsights_BypassAjaxInstrumentation\";\r\nexport var SampleRate = \"sampleRate\";\r\nexport var ProcessLegacy = \"ProcessLegacy\";\r\nexport var HttpMethod = \"http.method\";\r\nexport var DEFAULT_BREEZE_ENDPOINT = \"https://dc.services.visualstudio.com\";\r\nexport var DEFAULT_BREEZE_PATH = \"/v2/track\";\r\nexport var strNotSpecified = \"not_specified\";\r\nexport var strIkey = \"iKey\";\r\n//# sourceMappingURL=Constants.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_SPLIT = \"split\"; // Count: 6\r\nexport var _DYN_LENGTH = \"length\"; // Count: 41\r\nexport var _DYN_TO_LOWER_CASE = \"toLowerCase\"; // Count: 6\r\nexport var _DYN_INGESTIONENDPOINT = \"ingestionendpoint\"; // Count: 6\r\nexport var _DYN_TO_STRING = \"toString\"; // Count: 9\r\nexport var _DYN_PUSH = \"push\"; // Count: 5\r\nexport var _DYN_REMOVE_ITEM = \"removeItem\"; // Count: 3\r\nexport var _DYN_NAME = \"name\"; // Count: 11\r\nexport var _DYN_MESSAGE = \"message\"; // Count: 10\r\nexport var _DYN_COUNT = \"count\"; // Count: 8\r\nexport var _DYN_PRE_TRIGGER_DATE = \"preTriggerDate\"; // Count: 4\r\nexport var _DYN_DISABLED = \"disabled\"; // Count: 3\r\nexport var _DYN_INTERVAL = \"interval\"; // Count: 3\r\nexport var _DYN_DAYS_OF_MONTH = \"daysOfMonth\"; // Count: 3\r\nexport var _DYN_DATE = \"date\"; // Count: 5\r\nexport var _DYN_GET_UTCDATE = \"getUTCDate\"; // Count: 3\r\nexport var _DYN_STRINGIFY = \"stringify\"; // Count: 4\r\nexport var _DYN_PATHNAME = \"pathname\"; // Count: 4\r\nexport var _DYN_CORRELATION_HEADER_E0 = \"correlationHeaderExcludePatterns\"; // Count: 2\r\nexport var _DYN_EXTENSION_CONFIG = \"extensionConfig\"; // Count: 4\r\nexport var _DYN_EXCEPTIONS = \"exceptions\"; // Count: 6\r\nexport var _DYN_PARSED_STACK = \"parsedStack\"; // Count: 13\r\nexport var _DYN_PROPERTIES = \"properties\"; // Count: 9\r\nexport var _DYN_MEASUREMENTS = \"measurements\"; // Count: 9\r\nexport var _DYN_SIZE_IN_BYTES = \"sizeInBytes\"; // Count: 11\r\nexport var _DYN_TYPE_NAME = \"typeName\"; // Count: 11\r\nexport var _DYN_SEVERITY_LEVEL = \"severityLevel\"; // Count: 5\r\nexport var _DYN_PROBLEM_GROUP = \"problemGroup\"; // Count: 3\r\nexport var _DYN_IS_MANUAL = \"isManual\"; // Count: 3\r\nexport var _DYN__CREATE_FROM_INTERFA1 = \"CreateFromInterface\"; // Count: 2\r\nexport var _DYN_ASSEMBLY = \"assembly\"; // Count: 7\r\nexport var _DYN_FILE_NAME = \"fileName\"; // Count: 8\r\nexport var _DYN_HAS_FULL_STACK = \"hasFullStack\"; // Count: 6\r\nexport var _DYN_LEVEL = \"level\"; // Count: 5\r\nexport var _DYN_METHOD = \"method\"; // Count: 7\r\nexport var _DYN_LINE = \"line\"; // Count: 6\r\nexport var _DYN_DURATION = \"duration\"; // Count: 4\r\nexport var _DYN_RECEIVED_RESPONSE = \"receivedResponse\"; // Count: 2\r\n//# sourceMappingURL=__DynamicConstants.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n// ###################################################################################################################################################\r\n// Note: DON'T Export these const from the package as we are still targeting IE/ES5 this will export a mutable variables that someone could change ###\r\n// ###################################################################################################################################################\r\nexport var UNDEFINED_VALUE = undefined;\r\nexport var STR_EMPTY = \"\";\r\nexport var STR_CHANNELS = \"channels\";\r\nexport var STR_CORE = \"core\";\r\nexport var STR_CREATE_PERF_MGR = \"createPerfMgr\";\r\nexport var STR_DISABLED = \"disabled\";\r\nexport var STR_EXTENSION_CONFIG = \"extensionConfig\";\r\nexport var STR_EXTENSIONS = \"extensions\";\r\nexport var STR_PROCESS_TELEMETRY = \"processTelemetry\";\r\nexport var STR_PRIORITY = \"priority\";\r\nexport var STR_EVENTS_SENT = \"eventsSent\";\r\nexport var STR_EVENTS_DISCARDED = \"eventsDiscarded\";\r\nexport var STR_EVENTS_SEND_REQUEST = \"eventsSendRequest\";\r\nexport var STR_PERF_EVENT = \"perfEvent\";\r\nexport var STR_OFFLINE_STORE = \"offlineEventsStored\";\r\nexport var STR_OFFLINE_SENT = \"offlineBatchSent\";\r\nexport var STR_OFFLINE_DROP = \"offlineBatchDrop\";\r\nexport var STR_GET_PERF_MGR = \"getPerfMgr\";\r\nexport var STR_DOMAIN = \"domain\";\r\nexport var STR_PATH = \"path\";\r\nexport var STR_NOT_DYNAMIC_ERROR = \"Not dynamic - \";\r\n//# sourceMappingURL=InternalConstants.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { ObjAssign, ObjClass } from \"@microsoft/applicationinsights-shims\";\r\nimport { arrForEach, asString as asString21, isArray, isBoolean, isError, isFunction, isNullOrUndefined, isNumber, isObject, isPlainObject, isString, isUndefined, objDeepFreeze, objDefine, objForEachKey, objHasOwn, strIndexOf, strTrim } from \"@nevware21/ts-utils\";\r\nimport { _DYN_APPLY, _DYN_GET_ALL_RESPONSE_HEA5, _DYN_GET_RESPONSE_HEADER, _DYN_LENGTH, _DYN_NAME, _DYN_REPLACE, _DYN_SPLIT, _DYN_STATUS, _DYN_TO_LOWER_CASE } from \"../__DynamicConstants\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n// RESTRICT and AVOID circular dependencies you should not import other contained modules or export the contents of this file directly\r\n// Added to help with minification\r\nvar strGetPrototypeOf = \"getPrototypeOf\";\r\nvar rCamelCase = /-([a-z])/g;\r\nvar rNormalizeInvalid = /([^\\w\\d_$])/g;\r\nvar rLeadingNumeric = /^(\\d+[\\w\\d_$])/;\r\nexport var _getObjProto = Object[strGetPrototypeOf];\r\nexport function isNotUndefined(value) {\r\n return !isUndefined(value);\r\n}\r\nexport function isNotNullOrUndefined(value) {\r\n return !isNullOrUndefined(value);\r\n}\r\n/**\r\n * Validates that the string name conforms to the JS IdentifierName specification and if not\r\n * normalizes the name so that it would. This method does not identify or change any keywords\r\n * meaning that if you pass in a known keyword the same value will be returned.\r\n * This is a simplified version\r\n * @param name - The name to validate\r\n */\r\nexport function normalizeJsName(name) {\r\n var value = name;\r\n if (value && isString(value)) {\r\n // CamelCase everything after the \"-\" and remove the dash\r\n value = value[_DYN_REPLACE /* @min:%2ereplace */](rCamelCase, function (_all, letter) {\r\n return letter.toUpperCase();\r\n });\r\n value = value[_DYN_REPLACE /* @min:%2ereplace */](rNormalizeInvalid, \"_\");\r\n value = value[_DYN_REPLACE /* @min:%2ereplace */](rLeadingNumeric, function (_all, match) {\r\n return \"_\" + match;\r\n });\r\n }\r\n return value;\r\n}\r\n/**\r\n * A simple wrapper (for minification support) to check if the value contains the search string.\r\n * @param value - The string value to check for the existence of the search value\r\n * @param search - The value search within the value\r\n */\r\nexport function strContains(value, search) {\r\n if (value && search) {\r\n return strIndexOf(value, search) !== -1;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Convert a date to I.S.O. format in IE8\r\n */\r\nexport function toISOString(date) {\r\n return date && date.toISOString() || \"\";\r\n}\r\nexport var deepFreeze = objDeepFreeze;\r\n/**\r\n * Returns the name of object if it's an Error. Otherwise, returns empty string.\r\n */\r\nexport function getExceptionName(object) {\r\n if (isError(object)) {\r\n return object[_DYN_NAME /* @min:%2ename */];\r\n }\r\n return STR_EMPTY;\r\n}\r\n/**\r\n * Sets the provided value on the target instance using the field name when the provided chk function returns true, the chk\r\n * function will only be called if the new value is no equal to the original value.\r\n * @param target - The target object\r\n * @param field - The key of the target\r\n * @param value - The value to set\r\n * @param valChk - [Optional] Callback to check the value that if supplied will be called check if the new value can be set\r\n * @param srcChk - [Optional] Callback to check to original value that if supplied will be called if the new value should be set (if allowed)\r\n * @returns The existing or new value, depending what was set\r\n */\r\nexport function setValue(target, field, value, valChk, srcChk) {\r\n var theValue = value;\r\n if (target) {\r\n theValue = target[field];\r\n if (theValue !== value && (!srcChk || srcChk(theValue)) && (!valChk || valChk(value))) {\r\n theValue = value;\r\n target[field] = theValue;\r\n }\r\n }\r\n return theValue;\r\n}\r\n/**\r\n * Returns the current value from the target object if not null or undefined otherwise sets the new value and returns it\r\n * @param target - The target object to return or set the default value\r\n * @param field - The key for the field to set on the target\r\n * @param defValue - [Optional] The value to set if not already present, when not provided a empty object will be added\r\n */\r\nexport function getSetValue(target, field, defValue) {\r\n var theValue;\r\n if (target) {\r\n theValue = target[field];\r\n if (!theValue && isNullOrUndefined(theValue)) {\r\n // Supports having the default as null\r\n theValue = !isUndefined(defValue) ? defValue : {};\r\n target[field] = theValue;\r\n }\r\n }\r\n else {\r\n // Expanded for performance so we only check defValue if required\r\n theValue = !isUndefined(defValue) ? defValue : {};\r\n }\r\n return theValue;\r\n}\r\nfunction _createProxyFunction(source, funcName) {\r\n var srcFunc = null;\r\n var src = null;\r\n if (isFunction(source)) {\r\n srcFunc = source;\r\n }\r\n else {\r\n src = source;\r\n }\r\n return function () {\r\n // Capture the original arguments passed to the method\r\n var originalArguments = arguments;\r\n if (srcFunc) {\r\n src = srcFunc();\r\n }\r\n if (src) {\r\n return src[funcName][_DYN_APPLY /* @min:%2eapply */](src, originalArguments);\r\n }\r\n };\r\n}\r\n/**\r\n * Effectively assigns all enumerable properties (not just own properties) and functions (including inherited prototype) from\r\n * the source object to the target, it attempts to use proxy getters / setters (if possible) and proxy functions to avoid potential\r\n * implementation issues by assigning prototype functions as instance ones\r\n *\r\n * This method is the primary method used to \"update\" the snippet proxy with the ultimate implementations.\r\n *\r\n * Special ES3 Notes:\r\n * Updates (setting) of direct property values on the target or indirectly on the source object WILL NOT WORK PROPERLY, updates to the\r\n * properties of \"referenced\" object will work (target.context.newValue = 10 => will be reflected in the source.context as it's the\r\n * same object). ES3 Failures: assigning target.myProp = 3 -> Won't change source.myProp = 3, likewise the reverse would also fail.\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param chkSet - An optional callback to determine whether a specific property/function should be proxied\r\n */\r\nexport function proxyAssign(target, source, chkSet) {\r\n if (target && source && isObject(target) && isObject(source)) {\r\n var _loop_1 = function (field) {\r\n if (isString(field)) {\r\n var value = source[field];\r\n if (isFunction(value)) {\r\n if (!chkSet || chkSet(field, true, source, target)) {\r\n // Create a proxy function rather than just copying the (possible) prototype to the new object as an instance function\r\n target[field] = _createProxyFunction(source, field);\r\n }\r\n }\r\n else if (!chkSet || chkSet(field, false, source, target)) {\r\n if (objHasOwn(target, field)) {\r\n // Remove any previous instance property\r\n delete target[field];\r\n }\r\n objDefine(target, field, {\r\n g: function () {\r\n return source[field];\r\n },\r\n s: function (theValue) {\r\n source[field] = theValue;\r\n }\r\n });\r\n }\r\n }\r\n };\r\n // effectively apply/proxy full source to the target instance\r\n for (var field in source) {\r\n _loop_1(field);\r\n }\r\n }\r\n return target;\r\n}\r\n/**\r\n * Creates a proxy function on the target which internally will call the source version with all arguments passed to the target method.\r\n *\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param name - The function name that will be added on the target\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param theFunc - The function name on the source that will be proxied on the target\r\n * @param overwriteTarget - If `false` this will not replace any pre-existing name otherwise (the default) it will overwrite any existing name\r\n */\r\nexport function proxyFunctionAs(target, name, source, theFunc, overwriteTarget) {\r\n if (target && name && source) {\r\n if (overwriteTarget !== false || isUndefined(target[name])) {\r\n target[name] = _createProxyFunction(source, theFunc);\r\n }\r\n }\r\n}\r\n/**\r\n * Creates proxy functions on the target which internally will call the source version with all arguments passed to the target method.\r\n *\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param functionsToProxy - An array of function names that will be proxied on the target\r\n * @param overwriteTarget - If false this will not replace any pre-existing name otherwise (the default) it will overwrite any existing name\r\n */\r\nexport function proxyFunctions(target, source, functionsToProxy, overwriteTarget) {\r\n if (target && source && isObject(target) && isArray(functionsToProxy)) {\r\n arrForEach(functionsToProxy, function (theFuncName) {\r\n if (isString(theFuncName)) {\r\n proxyFunctionAs(target, theFuncName, source, theFuncName, overwriteTarget);\r\n }\r\n });\r\n }\r\n return target;\r\n}\r\n/**\r\n * Simpler helper to create a dynamic class that implements the interface and populates the values with the defaults.\r\n * Only instance properties (hasOwnProperty) values are copied from the defaults to the new instance\r\n * @param defaults - Simple helper\r\n */\r\nexport function createClassFromInterface(defaults) {\r\n return /** @class */ (function () {\r\n function class_1() {\r\n var _this = this;\r\n if (defaults) {\r\n objForEachKey(defaults, function (field, value) {\r\n _this[field] = value;\r\n });\r\n }\r\n }\r\n return class_1;\r\n }());\r\n}\r\n/**\r\n * A helper function to assist with JIT performance for objects that have properties added / removed dynamically\r\n * this is primarily for chromium based browsers and has limited effects on Firefox and none of IE. Only call this\r\n * function after you have finished \"updating\" the object, calling this within loops reduces or defeats the benefits.\r\n * This helps when iterating using for..in, objKeys() and objForEach()\r\n * @param theObject - The object to be optimized if possible\r\n */\r\nexport function optimizeObject(theObject) {\r\n // V8 Optimization to cause the JIT compiler to create a new optimized object for looking up the own properties\r\n // primarily for object with <= 19 properties for >= 20 the effect is reduced or non-existent\r\n if (theObject && ObjAssign) {\r\n theObject = ObjClass(ObjAssign({}, theObject));\r\n }\r\n return theObject;\r\n}\r\nexport function objExtend(obj1, obj2, obj3, obj4, obj5, obj6) {\r\n // Variables\r\n var theArgs = arguments;\r\n var extended = theArgs[0] || {};\r\n var argLen = theArgs[_DYN_LENGTH /* @min:%2elength */];\r\n var deep = false;\r\n var idx = 1;\r\n // Check for \"Deep\" flag\r\n if (argLen > 0 && isBoolean(extended)) {\r\n deep = extended;\r\n extended = theArgs[idx] || {};\r\n idx++;\r\n }\r\n // Handle case when target is a string or something (possible in deep copy)\r\n if (!isObject(extended)) {\r\n extended = {};\r\n }\r\n // Loop through each remaining object and conduct a merge\r\n for (; idx < argLen; idx++) {\r\n var arg = theArgs[idx];\r\n var isArgArray = isArray(arg);\r\n var isArgObj = isObject(arg);\r\n for (var prop in arg) {\r\n var propOk = (isArgArray && (prop in arg)) || (isArgObj && objHasOwn(arg, prop));\r\n if (!propOk) {\r\n continue;\r\n }\r\n var newValue = arg[prop];\r\n var isNewArray = void 0;\r\n // If deep merge and property is an object, merge properties\r\n if (deep && newValue && ((isNewArray = isArray(newValue)) || isPlainObject(newValue))) {\r\n // Grab the current value of the extended object\r\n var clone = extended[prop];\r\n if (isNewArray) {\r\n if (!isArray(clone)) {\r\n // We can't \"merge\" an array with a non-array so overwrite the original\r\n clone = [];\r\n }\r\n }\r\n else if (!isPlainObject(clone)) {\r\n // We can't \"merge\" an object with a non-object\r\n clone = {};\r\n }\r\n // Never move the original objects always clone them\r\n newValue = objExtend(deep, clone, newValue);\r\n }\r\n // Assign the new (or previous) value (unless undefined)\r\n if (newValue !== undefined) {\r\n extended[prop] = newValue;\r\n }\r\n }\r\n }\r\n return extended;\r\n}\r\nexport var asString = asString21;\r\nexport function isFeatureEnabled(feature, cfg) {\r\n var rlt = false;\r\n var ft = cfg && cfg.featureOptIn && cfg.featureOptIn[feature];\r\n if (feature && ft) {\r\n var mode = ft.mode;\r\n // NOTE: None will be considered as true\r\n rlt = (mode == 3 /* FeatureOptInMode.enable */) || (mode == 1 /* FeatureOptInMode.none */);\r\n }\r\n return rlt;\r\n}\r\nexport function getResponseText(xhr) {\r\n try {\r\n return xhr.responseText;\r\n }\r\n catch (e) {\r\n // Best effort, as XHR may throw while XDR wont so just ignore\r\n }\r\n return null;\r\n}\r\nexport function formatErrorMessageXdr(xdr, message) {\r\n if (xdr) {\r\n return \"XDomainRequest,Response:\" + getResponseText(xdr) || \"\";\r\n }\r\n return message;\r\n}\r\nexport function formatErrorMessageXhr(xhr, message) {\r\n if (xhr) {\r\n return \"XMLHttpRequest,Status:\" + xhr[_DYN_STATUS /* @min:%2estatus */] + \",Response:\" + getResponseText(xhr) || xhr.response || \"\";\r\n }\r\n return message;\r\n}\r\nexport function prependTransports(theTransports, newTransports) {\r\n if (newTransports) {\r\n if (isNumber(newTransports)) {\r\n theTransports = [newTransports].concat(theTransports);\r\n }\r\n else if (isArray(newTransports)) {\r\n theTransports = newTransports.concat(theTransports);\r\n }\r\n }\r\n return theTransports;\r\n}\r\nvar strDisabledPropertyName = \"Microsoft_ApplicationInsights_BypassAjaxInstrumentation\";\r\nvar strWithCredentials = \"withCredentials\";\r\nvar strTimeout = \"timeout\";\r\n/**\r\n * Create and open an XMLHttpRequest object\r\n * @param method - The request method\r\n * @param urlString - The url\r\n * @param withCredentials - Option flag indicating that credentials should be sent\r\n * @param disabled - Optional flag indicating that the XHR object should be marked as disabled and not tracked (default is false)\r\n * @param isSync - Optional flag indicating if the instance should be a synchronous request (defaults to false)\r\n * @param timeout - Optional value identifying the timeout value that should be assigned to the XHR request\r\n * @returns A new opened XHR request\r\n */\r\nexport function openXhr(method, urlString, withCredentials, disabled, isSync, timeout) {\r\n if (disabled === void 0) { disabled = false; }\r\n if (isSync === void 0) { isSync = false; }\r\n function _wrapSetXhrProp(xhr, prop, value) {\r\n try {\r\n xhr[prop] = value;\r\n }\r\n catch (e) {\r\n // - Wrapping as depending on the environment setting the property may fail (non-terminally)\r\n }\r\n }\r\n var xhr = new XMLHttpRequest();\r\n if (disabled) {\r\n // Tag the instance so it's not tracked (trackDependency)\r\n // If the environment has locked down the XMLHttpRequest (preventExtensions and/or freeze), this would\r\n // cause the request to fail and we no telemetry would be sent\r\n _wrapSetXhrProp(xhr, strDisabledPropertyName, disabled);\r\n }\r\n if (withCredentials) {\r\n // Some libraries require that the withCredentials flag is set \"before\" open and\r\n // - Wrapping as IE 10 has started throwing when setting before open\r\n _wrapSetXhrProp(xhr, strWithCredentials, withCredentials);\r\n }\r\n xhr.open(method, urlString, !isSync);\r\n if (withCredentials) {\r\n // withCredentials should be set AFTER open (https://xhr.spec.whatwg.org/#the-withcredentials-attribute)\r\n // And older firefox instances from 11+ will throw for sync events (current versions don't) which happens during unload processing\r\n _wrapSetXhrProp(xhr, strWithCredentials, withCredentials);\r\n }\r\n // Only set the timeout for asynchronous requests as\r\n // \"Timeout shouldn't be used for synchronous XMLHttpRequests requests used in a document environment or it will throw an InvalidAccessError exception.\"\"\r\n // https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/timeout\r\n if (!isSync && timeout) {\r\n _wrapSetXhrProp(xhr, strTimeout, timeout);\r\n }\r\n return xhr;\r\n}\r\n/**\r\n* Converts the XHR getAllResponseHeaders to a map containing the header key and value.\r\n* @internal\r\n*/\r\n// tslint:disable-next-line: align\r\nexport function convertAllHeadersToMap(headersString) {\r\n var headers = {};\r\n if (isString(headersString)) {\r\n var headersArray = strTrim(headersString)[_DYN_SPLIT /* @min:%2esplit */](/[\\r\\n]+/);\r\n arrForEach(headersArray, function (headerEntry) {\r\n if (headerEntry) {\r\n var idx = headerEntry.indexOf(\": \");\r\n if (idx !== -1) {\r\n // The new spec has the headers returning all as lowercase -- but not all browsers do this yet\r\n var header = strTrim(headerEntry.substring(0, idx))[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n var value = strTrim(headerEntry.substring(idx + 1));\r\n headers[header] = value;\r\n }\r\n else {\r\n headers[strTrim(headerEntry)] = 1;\r\n }\r\n }\r\n });\r\n }\r\n return headers;\r\n}\r\n/**\r\n* append the XHR headers.\r\n* @internal\r\n*/\r\nexport function _appendHeader(theHeaders, xhr, name) {\r\n if (!theHeaders[name] && xhr && xhr[_DYN_GET_RESPONSE_HEADER /* @min:%2egetResponseHeader */]) {\r\n var value = xhr[_DYN_GET_RESPONSE_HEADER /* @min:%2egetResponseHeader */](name);\r\n if (value) {\r\n theHeaders[name] = strTrim(value);\r\n }\r\n }\r\n return theHeaders;\r\n}\r\nvar STR_KILL_DURATION_HEADER = \"kill-duration\";\r\nvar STR_KILL_DURATION_SECONDS_HEADER = \"kill-duration-seconds\";\r\nvar STR_TIME_DELTA_HEADER = \"time-delta-millis\";\r\n/**\r\n* get the XHR getAllResponseHeaders.\r\n* @internal\r\n*/\r\nexport function _getAllResponseHeaders(xhr, isOneDs) {\r\n var theHeaders = {};\r\n if (!xhr[_DYN_GET_ALL_RESPONSE_HEA5 /* @min:%2egetAllResponseHeaders */]) {\r\n // Firefox 2-63 doesn't have getAllResponseHeaders function but it does have getResponseHeader\r\n // Only call these if getAllResponseHeaders doesn't exist, otherwise we can get invalid response errors\r\n // as collector is not currently returning the correct header to allow JS to access these headers\r\n if (!!isOneDs) {\r\n theHeaders = _appendHeader(theHeaders, xhr, STR_TIME_DELTA_HEADER);\r\n theHeaders = _appendHeader(theHeaders, xhr, STR_KILL_DURATION_HEADER);\r\n theHeaders = _appendHeader(theHeaders, xhr, STR_KILL_DURATION_SECONDS_HEADER);\r\n }\r\n }\r\n else {\r\n theHeaders = convertAllHeadersToMap(xhr[_DYN_GET_ALL_RESPONSE_HEA5 /* @min:%2egetAllResponseHeaders */]());\r\n }\r\n return theHeaders;\r\n}\r\n//# sourceMappingURL=HelperFuncs.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport { getGlobal, strShimObject, strShimPrototype, strShimUndefined } from \"@microsoft/applicationinsights-shims\";\r\nimport { getDocument, getInst, getNavigator, getPerformance, hasNavigator, isFunction, isString, isUndefined, strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH, _DYN_NAME, _DYN_SPLIT, _DYN_TO_LOWER_CASE, _DYN_USER_AGENT } from \"../__DynamicConstants\";\r\nimport { strContains } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n/**\r\n * This file exists to hold environment utilities that are required to check and\r\n * validate the current operating environment. Unless otherwise required, please\r\n * only use defined methods (functions) in this class so that users of these\r\n * functions/properties only need to include those that are used within their own modules.\r\n */\r\nvar strDocumentMode = \"documentMode\";\r\nvar strLocation = \"location\";\r\nvar strConsole = \"console\";\r\nvar strJSON = \"JSON\";\r\nvar strCrypto = \"crypto\";\r\nvar strMsCrypto = \"msCrypto\";\r\nvar strReactNative = \"ReactNative\";\r\nvar strMsie = \"msie\";\r\nvar strTrident = \"trident/\";\r\nvar strXMLHttpRequest = \"XMLHttpRequest\";\r\nvar _isTrident = null;\r\nvar _navUserAgentCheck = null;\r\nvar _enableMocks = false;\r\nvar _useXDomainRequest = null;\r\nvar _beaconsSupported = null;\r\nfunction _hasProperty(theClass, property) {\r\n var supported = false;\r\n if (theClass) {\r\n try {\r\n supported = property in theClass;\r\n if (!supported) {\r\n var proto = theClass[strShimPrototype];\r\n if (proto) {\r\n supported = property in proto;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // Do Nothing\r\n }\r\n if (!supported) {\r\n try {\r\n var tmp = new theClass();\r\n supported = !isUndefined(tmp[property]);\r\n }\r\n catch (e) {\r\n // Do Nothing\r\n }\r\n }\r\n }\r\n return supported;\r\n}\r\n/**\r\n * Enable the lookup of test mock objects if requested\r\n * @param enabled\r\n */\r\nexport function setEnableEnvMocks(enabled) {\r\n _enableMocks = enabled;\r\n}\r\n/**\r\n * Returns the global location object if it is present otherwise null.\r\n * This helper is used to access the location object without causing an exception\r\n * \"Uncaught ReferenceError: location is not defined\"\r\n */\r\nexport function getLocation(checkForMock) {\r\n if (checkForMock && _enableMocks) {\r\n var mockLocation = getInst(\"__mockLocation\");\r\n if (mockLocation) {\r\n return mockLocation;\r\n }\r\n }\r\n if (typeof location === strShimObject && location) {\r\n return location;\r\n }\r\n return getInst(strLocation);\r\n}\r\n/**\r\n * Returns the global console object\r\n */\r\nexport function getConsole() {\r\n if (typeof console !== strShimUndefined) {\r\n return console;\r\n }\r\n return getInst(strConsole);\r\n}\r\n/**\r\n * Checks if JSON object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a history\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: JSON is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasJSON() {\r\n return Boolean((typeof JSON === strShimObject && JSON) || getInst(strJSON) !== null);\r\n}\r\n/**\r\n * Returns the global JSON object if it is present otherwise null.\r\n * This helper is used to access the JSON object without causing an exception\r\n * \"Uncaught ReferenceError: JSON is not defined\"\r\n */\r\nexport function getJSON() {\r\n if (hasJSON()) {\r\n return JSON || getInst(strJSON);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Returns the crypto object if it is present otherwise null.\r\n * This helper is used to access the crypto object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getCrypto() {\r\n return getInst(strCrypto);\r\n}\r\n/**\r\n * Returns the crypto object if it is present otherwise null.\r\n * This helper is used to access the crypto object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getMsCrypto() {\r\n return getInst(strMsCrypto);\r\n}\r\n/**\r\n * Returns whether the environment is reporting that we are running in a React Native Environment\r\n */\r\nexport function isReactNative() {\r\n // If running in React Native, navigator.product will be populated\r\n var nav = getNavigator();\r\n if (nav && nav.product) {\r\n return nav.product === strReactNative;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Identifies whether the current environment appears to be IE\r\n */\r\nexport function isIE() {\r\n var nav = getNavigator();\r\n if (nav && (nav[_DYN_USER_AGENT /* @min:%2euserAgent */] !== _navUserAgentCheck || _isTrident === null)) {\r\n // Added to support test mocking of the user agent\r\n _navUserAgentCheck = nav[_DYN_USER_AGENT /* @min:%2euserAgent */];\r\n var userAgent = (_navUserAgentCheck || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n _isTrident = (strContains(userAgent, strMsie) || strContains(userAgent, strTrident));\r\n }\r\n return _isTrident;\r\n}\r\n/**\r\n * Gets IE version returning the document emulation mode if we are running on IE, or null otherwise\r\n */\r\nexport function getIEVersion(userAgentStr) {\r\n if (userAgentStr === void 0) { userAgentStr = null; }\r\n if (!userAgentStr) {\r\n var navigator_1 = getNavigator() || {};\r\n userAgentStr = navigator_1 ? (navigator_1.userAgent || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() : STR_EMPTY;\r\n }\r\n var ua = (userAgentStr || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n // Also check for documentMode in case X-UA-Compatible meta tag was included in HTML.\r\n if (strContains(ua, strMsie)) {\r\n var doc = getDocument() || {};\r\n return Math.max(parseInt(ua[_DYN_SPLIT /* @min:%2esplit */](strMsie)[1]), (doc[strDocumentMode] || 0));\r\n }\r\n else if (strContains(ua, strTrident)) {\r\n var tridentVer = parseInt(ua[_DYN_SPLIT /* @min:%2esplit */](strTrident)[1]);\r\n if (tridentVer) {\r\n return tridentVer + 4;\r\n }\r\n }\r\n return null;\r\n}\r\nexport function isSafari(userAgentStr) {\r\n if (!userAgentStr || !isString(userAgentStr)) {\r\n var navigator_2 = getNavigator() || {};\r\n userAgentStr = navigator_2 ? (navigator_2.userAgent || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() : STR_EMPTY;\r\n }\r\n var ua = (userAgentStr || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n return (strIndexOf(ua, \"safari\") >= 0);\r\n}\r\n/**\r\n * Checks if HTML5 Beacons are supported in the current environment.\r\n * @param useCached - [Optional] used for testing to bypass the cached lookup, when `true` this will\r\n * cause the cached global to be reset.\r\n * @returns True if supported, false otherwise.\r\n */\r\nexport function isBeaconsSupported(useCached) {\r\n if (_beaconsSupported === null || useCached === false) {\r\n _beaconsSupported = hasNavigator() && Boolean(getNavigator().sendBeacon);\r\n }\r\n return _beaconsSupported;\r\n}\r\n/**\r\n * Checks if the Fetch API is supported in the current environment.\r\n * @param withKeepAlive - [Optional] If True, check if fetch is available and it supports the keepalive feature, otherwise only check if fetch is supported\r\n * @returns True if supported, otherwise false\r\n */\r\nexport function isFetchSupported(withKeepAlive) {\r\n var isSupported = false;\r\n try {\r\n isSupported = !!getInst(\"fetch\");\r\n var request = getInst(\"Request\");\r\n if (isSupported && withKeepAlive && request) {\r\n isSupported = _hasProperty(request, \"keepalive\");\r\n }\r\n }\r\n catch (e) {\r\n // Just Swallow any failure during availability checks\r\n }\r\n return isSupported;\r\n}\r\nexport function useXDomainRequest() {\r\n if (_useXDomainRequest === null) {\r\n _useXDomainRequest = (typeof XDomainRequest !== strShimUndefined);\r\n if (_useXDomainRequest && isXhrSupported()) {\r\n _useXDomainRequest = _useXDomainRequest && !_hasProperty(getInst(strXMLHttpRequest), \"withCredentials\");\r\n }\r\n }\r\n return _useXDomainRequest;\r\n}\r\n/**\r\n * Checks if XMLHttpRequest is supported\r\n * @returns True if supported, otherwise false\r\n */\r\nexport function isXhrSupported() {\r\n var isSupported = false;\r\n try {\r\n var xmlHttpRequest = getInst(strXMLHttpRequest);\r\n isSupported = !!xmlHttpRequest;\r\n }\r\n catch (e) {\r\n // Just Swallow any failure during availability checks\r\n }\r\n return isSupported;\r\n}\r\nfunction _getNamedValue(values, name) {\r\n if (values) {\r\n for (var i = 0; i < values[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n var value = values[i];\r\n if (value[_DYN_NAME /* @min:%2ename */]) {\r\n if (value[_DYN_NAME /* @min:%2ename */] === name) {\r\n return value;\r\n }\r\n }\r\n }\r\n }\r\n return {};\r\n}\r\n/**\r\n * Helper function to fetch the named meta-tag from the page.\r\n * @param name\r\n */\r\nexport function findMetaTag(name) {\r\n var doc = getDocument();\r\n if (doc && name) {\r\n // Look for a meta-tag\r\n return _getNamedValue(doc.querySelectorAll(\"meta\"), name).content;\r\n }\r\n return null;\r\n}\r\n/**\r\n * Helper function to fetch the named server timing value from the page response (first navigation event).\r\n * @param name\r\n */\r\nexport function findNamedServerTiming(name) {\r\n var value;\r\n var perf = getPerformance();\r\n if (perf) {\r\n // Try looking for a server-timing header\r\n var navPerf = perf.getEntriesByType(\"navigation\") || [];\r\n value = _getNamedValue((navPerf[_DYN_LENGTH /* @min:%2elength */] > 0 ? navPerf[0] : {}).serverTiming, name).description;\r\n }\r\n return value;\r\n}\r\n// TODO: should reuse this method for analytics plugin\r\nexport function dispatchEvent(target, evnt) {\r\n if (target && target.dispatchEvent && evnt) {\r\n target.dispatchEvent(evnt);\r\n return true;\r\n }\r\n return false;\r\n}\r\nexport function createCustomDomEvent(eventName, details) {\r\n var event = null;\r\n var detail = { detail: details || null };\r\n if (isFunction(CustomEvent)) { // Use CustomEvent constructor when available\r\n event = new CustomEvent(eventName, detail);\r\n }\r\n else { // CustomEvent has no constructor in IE\r\n var doc = getDocument();\r\n if (doc && doc.createEvent) {\r\n event = doc.createEvent(\"CustomEvent\");\r\n event.initCustomEvent(eventName, true, true, detail);\r\n }\r\n }\r\n return event;\r\n}\r\nexport function sendCustomEvent(evtName, cfg, customDetails) {\r\n var global = getGlobal();\r\n if (global && global.CustomEvent) {\r\n try {\r\n var details = { cfg: cfg || null, customDetails: customDetails || null };\r\n return dispatchEvent(global, createCustomDomEvent(evtName, details));\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n return false;\r\n}\r\n//# sourceMappingURL=EnvUtils.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { utcNow } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { getCrypto, getMsCrypto, isIE } from \"./EnvUtils\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nvar UInt32Mask = 0x100000000;\r\nvar MaxUInt32 = 0xffffffff;\r\nvar SEED1 = 123456789;\r\nvar SEED2 = 987654321;\r\n// MWC based Random generator (for IE)\r\nvar _mwcSeeded = false;\r\nvar _mwcW = SEED1;\r\nvar _mwcZ = SEED2;\r\n// Takes any integer\r\nfunction _mwcSeed(seedValue) {\r\n if (seedValue < 0) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n seedValue >>>= 0;\r\n }\r\n _mwcW = (SEED1 + seedValue) & MaxUInt32;\r\n _mwcZ = (SEED2 - seedValue) & MaxUInt32;\r\n _mwcSeeded = true;\r\n}\r\nfunction _autoSeedMwc() {\r\n // Simple initialization using default Math.random() - So we inherit any entropy from the browser\r\n // and bitwise XOR with the current milliseconds\r\n try {\r\n var now = utcNow() & 0x7fffffff;\r\n _mwcSeed(((Math.random() * UInt32Mask) ^ now) + now);\r\n }\r\n catch (e) {\r\n // Don't crash if something goes wrong\r\n }\r\n}\r\n/**\r\n * Generate a random value between 0 and maxValue, max value should be limited to a 32-bit maximum.\r\n * So maxValue(16) will produce a number from 0..16 (range of 17)\r\n * @param maxValue\r\n */\r\nexport function randomValue(maxValue) {\r\n if (maxValue > 0) {\r\n return Math.floor((random32() / MaxUInt32) * (maxValue + 1)) >>> 0;\r\n }\r\n return 0;\r\n}\r\n/**\r\n * generate a random 32-bit number (0x000000..0xFFFFFFFF) or (-0x80000000..0x7FFFFFFF), defaults un-unsigned.\r\n * @param signed - True to return a signed 32-bit number (-0x80000000..0x7FFFFFFF) otherwise an unsigned one (0x000000..0xFFFFFFFF)\r\n */\r\nexport function random32(signed) {\r\n var value = 0;\r\n var c = getCrypto() || getMsCrypto();\r\n if (c && c.getRandomValues) {\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = c.getRandomValues(new Uint32Array(1))[0] & MaxUInt32;\r\n }\r\n if (value === 0 && isIE()) {\r\n // For IE 6, 7, 8 (especially on XP) Math.random is not very random\r\n if (!_mwcSeeded) {\r\n // Set the seed for the Mwc algorithm\r\n _autoSeedMwc();\r\n }\r\n // Don't use Math.random for IE\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = mwcRandom32() & MaxUInt32;\r\n }\r\n if (value === 0) {\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = Math.floor((UInt32Mask * Math.random()) | 0);\r\n }\r\n if (!signed) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n value >>>= 0;\r\n }\r\n return value;\r\n}\r\n/**\r\n * Seed the MWC random number generator with the specified seed or a random value\r\n * @param value - optional the number to used as the seed, if undefined, null or zero a random value will be chosen\r\n */\r\nexport function mwcRandomSeed(value) {\r\n if (!value) {\r\n _autoSeedMwc();\r\n }\r\n else {\r\n _mwcSeed(value);\r\n }\r\n}\r\n/**\r\n * Generate a random 32-bit number between (0x000000..0xFFFFFFFF) or (-0x80000000..0x7FFFFFFF), using MWC (Multiply with carry)\r\n * instead of Math.random() defaults to un-signed.\r\n * Used as a replacement random generator for IE to avoid issues with older IE instances.\r\n * @param signed - True to return a signed 32-bit number (-0x80000000..0x7FFFFFFF) otherwise an unsigned one (0x000000..0xFFFFFFFF)\r\n */\r\nexport function mwcRandom32(signed) {\r\n _mwcZ = (36969 * (_mwcZ & 0xFFFF) + (_mwcZ >> 16)) & MaxUInt32;\r\n _mwcW = (18000 * (_mwcW & 0xFFFF) + (_mwcW >> 16)) & MaxUInt32;\r\n var value = (((_mwcZ << 16) + (_mwcW & 0xFFFF)) >>> 0) & MaxUInt32 | 0;\r\n if (!signed) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n value >>>= 0;\r\n }\r\n return value;\r\n}\r\n/**\r\n * Generate random base64 id string.\r\n * The default length is 22 which is 132-bits so almost the same as a GUID but as base64 (the previous default was 5)\r\n * @param maxLength - Optional value to specify the length of the id to be generated, defaults to 22\r\n */\r\nexport function newId(maxLength) {\r\n if (maxLength === void 0) { maxLength = 22; }\r\n var base64chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\r\n // Start with an initial random number, consuming the value in reverse byte order\r\n var number = random32() >>> 0; // Make sure it's a +ve number\r\n var chars = 0;\r\n var result = STR_EMPTY;\r\n while (result[_DYN_LENGTH /* @min:%2elength */] < maxLength) {\r\n chars++;\r\n result += base64chars.charAt(number & 0x3F);\r\n number >>>= 6; // Zero fill with right shift\r\n if (chars === 5) {\r\n // 5 base64 characters === 30 bits so we don't have enough bits for another base64 char\r\n // So add on another 30 bits and make sure it's +ve\r\n number = (((random32() << 2) & 0xFFFFFFFF) | (number & 0x03)) >>> 0;\r\n chars = 0; // We need to reset the number every 5 chars (30 bits)\r\n }\r\n }\r\n return result;\r\n}\r\n//# sourceMappingURL=RandomHelper.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { objDefine } from \"@nevware21/ts-utils\";\r\nimport { _DYN_NODE_TYPE } from \"../__DynamicConstants\";\r\nimport { normalizeJsName } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nimport { newId } from \"./RandomHelper\";\r\nvar version = '3.3.4';\r\nvar instanceName = \".\" + newId(6);\r\nvar _dataUid = 0;\r\n// Accepts only:\r\n// - Node\r\n// - Node.ELEMENT_NODE\r\n// - Node.DOCUMENT_NODE\r\n// - Object\r\n// - Any\r\nfunction _canAcceptData(target) {\r\n return target[_DYN_NODE_TYPE /* @min:%2enodeType */] === 1 || target[_DYN_NODE_TYPE /* @min:%2enodeType */] === 9 || !(+target[_DYN_NODE_TYPE /* @min:%2enodeType */]);\r\n}\r\nfunction _getCache(data, target) {\r\n var theCache = target[data.id];\r\n if (!theCache) {\r\n theCache = {};\r\n try {\r\n if (_canAcceptData(target)) {\r\n objDefine(target, data.id, {\r\n e: false,\r\n v: theCache\r\n });\r\n }\r\n }\r\n catch (e) {\r\n // Not all environments allow extending all objects, so just ignore the cache in those cases\r\n }\r\n }\r\n return theCache;\r\n}\r\nexport function createUniqueNamespace(name, includeVersion) {\r\n if (includeVersion === void 0) { includeVersion = false; }\r\n return normalizeJsName(name + (_dataUid++) + (includeVersion ? \".\" + version : STR_EMPTY) + instanceName);\r\n}\r\nexport function createElmNodeData(name) {\r\n var data = {\r\n id: createUniqueNamespace(\"_aiData-\" + (name || STR_EMPTY) + \".\" + version),\r\n accept: function (target) {\r\n return _canAcceptData(target);\r\n },\r\n get: function (target, name, defValue, addDefault) {\r\n var theCache = target[data.id];\r\n if (!theCache) {\r\n if (addDefault) {\r\n // Side effect is adds the cache\r\n theCache = _getCache(data, target);\r\n theCache[normalizeJsName(name)] = defValue;\r\n }\r\n return defValue;\r\n }\r\n return theCache[normalizeJsName(name)];\r\n },\r\n kill: function (target, name) {\r\n if (target && target[name]) {\r\n try {\r\n delete target[name];\r\n }\r\n catch (e) {\r\n // Just cleaning up, so if this fails -- ignore\r\n }\r\n }\r\n }\r\n };\r\n return data;\r\n}\r\n//# sourceMappingURL=DataCacheHelper.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { asString, isArray, isDefined, isNullOrUndefined, isObject, isPlainObject, isUndefined, objForEachKey, objHasOwn } from \"@nevware21/ts-utils\";\r\nimport { _DYN_BLK_VAL, _DYN_LENGTH, _DYN_RD_ONLY } from \"../__DynamicConstants\";\r\nfunction _isConfigDefaults(value) {\r\n return (value && isObject(value) && (value.isVal || value.fb || objHasOwn(value, \"v\") || objHasOwn(value, \"mrg\") || objHasOwn(value, \"ref\") || value.set));\r\n}\r\nfunction _getDefault(dynamicHandler, theConfig, cfgDefaults) {\r\n var defValue;\r\n var isDefaultValid = cfgDefaults.dfVal || isDefined;\r\n // There is a fallback config key so try and grab that first\r\n if (theConfig && cfgDefaults.fb) {\r\n var fallbacks = cfgDefaults.fb;\r\n if (!isArray(fallbacks)) {\r\n fallbacks = [fallbacks];\r\n }\r\n for (var lp = 0; lp < fallbacks[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var fallback = fallbacks[lp];\r\n var fbValue = theConfig[fallback];\r\n if (isDefaultValid(fbValue)) {\r\n defValue = fbValue;\r\n }\r\n else if (dynamicHandler) {\r\n // Needed to ensure that the fallback value (and potentially) new field is also dynamic even if null/undefined\r\n fbValue = dynamicHandler.cfg[fallback];\r\n if (isDefaultValid(fbValue)) {\r\n defValue = fbValue;\r\n }\r\n // Needed to ensure that the fallback value (and potentially) new field is also dynamic even if null/undefined\r\n dynamicHandler.set(dynamicHandler.cfg, asString(fallback), fbValue);\r\n }\r\n if (isDefaultValid(defValue)) {\r\n // We have a valid default so break out of the look\r\n break;\r\n }\r\n }\r\n }\r\n // If the value is still not defined and we have a default value then use that\r\n if (!isDefaultValid(defValue) && isDefaultValid(cfgDefaults.v)) {\r\n defValue = cfgDefaults.v;\r\n }\r\n return defValue;\r\n}\r\n/**\r\n * Recursively resolve the default value\r\n * @param dynamicHandler\r\n * @param theConfig\r\n * @param cfgDefaults\r\n * @returns\r\n */\r\nfunction _resolveDefaultValue(dynamicHandler, theConfig, cfgDefaults) {\r\n var theValue = cfgDefaults;\r\n if (cfgDefaults && _isConfigDefaults(cfgDefaults)) {\r\n theValue = _getDefault(dynamicHandler, theConfig, cfgDefaults);\r\n }\r\n if (theValue) {\r\n if (_isConfigDefaults(theValue)) {\r\n theValue = _resolveDefaultValue(dynamicHandler, theConfig, theValue);\r\n }\r\n var newValue_1;\r\n if (isArray(theValue)) {\r\n newValue_1 = [];\r\n newValue_1[_DYN_LENGTH /* @min:%2elength */] = theValue[_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n else if (isPlainObject(theValue)) {\r\n newValue_1 = {};\r\n }\r\n if (newValue_1) {\r\n objForEachKey(theValue, function (key, value) {\r\n if (value && _isConfigDefaults(value)) {\r\n value = _resolveDefaultValue(dynamicHandler, theConfig, value);\r\n }\r\n newValue_1[key] = value;\r\n });\r\n theValue = newValue_1;\r\n }\r\n }\r\n return theValue;\r\n}\r\n/**\r\n * Applies the default value on the config property and makes sure that it's dynamic\r\n * @param theConfig\r\n * @param name\r\n * @param defaultValue\r\n */\r\nexport function _applyDefaultValue(dynamicHandler, theConfig, name, defaultValue) {\r\n // Resolve the initial config value from the provided value or use the defined default\r\n var isValid;\r\n var setFn;\r\n var defValue;\r\n var cfgDefaults = defaultValue;\r\n var mergeDf;\r\n var reference;\r\n var readOnly;\r\n var blkDynamicValue;\r\n if (_isConfigDefaults(cfgDefaults)) {\r\n // looks like a IConfigDefault\r\n isValid = cfgDefaults.isVal;\r\n setFn = cfgDefaults.set;\r\n readOnly = cfgDefaults[_DYN_RD_ONLY /* @min:%2erdOnly */];\r\n blkDynamicValue = cfgDefaults[_DYN_BLK_VAL /* @min:%2eblkVal */];\r\n mergeDf = cfgDefaults.mrg;\r\n reference = cfgDefaults.ref;\r\n if (!reference && isUndefined(reference)) {\r\n reference = !!mergeDf;\r\n }\r\n defValue = _getDefault(dynamicHandler, theConfig, cfgDefaults);\r\n }\r\n else {\r\n defValue = defaultValue;\r\n }\r\n if (blkDynamicValue) {\r\n // Mark the property so that any value assigned will be blocked from conversion, we need to do this\r\n // before assigning or fetching the value to ensure it's not converted\r\n dynamicHandler[_DYN_BLK_VAL /* @min:%2eblkVal */](theConfig, name);\r\n }\r\n // Set the value to the default value;\r\n var theValue;\r\n var usingDefault = true;\r\n var cfgValue = theConfig[name];\r\n // try and get and user provided values\r\n if (cfgValue || !isNullOrUndefined(cfgValue)) {\r\n // Use the defined theConfig[name] value\r\n theValue = cfgValue;\r\n usingDefault = false;\r\n // The values are different and we have a special default value check, which is used to\r\n // override config values like empty strings to continue using the default\r\n if (isValid && theValue !== defValue && !isValid(theValue)) {\r\n theValue = defValue;\r\n usingDefault = true;\r\n }\r\n if (setFn) {\r\n theValue = setFn(theValue, defValue, theConfig);\r\n usingDefault = theValue === defValue;\r\n }\r\n }\r\n if (!usingDefault) {\r\n if (isPlainObject(theValue) || isArray(defValue)) {\r\n // we are using the user supplied value and it's an object\r\n if (mergeDf && defValue && (isPlainObject(defValue) || isArray(defValue))) {\r\n // Resolve/apply the defaults\r\n objForEachKey(defValue, function (dfName, dfValue) {\r\n // Sets the value and makes it dynamic (if it doesn't already exist)\r\n _applyDefaultValue(dynamicHandler, theValue, dfName, dfValue);\r\n });\r\n }\r\n }\r\n }\r\n else if (defValue) {\r\n // Just resolve the default\r\n theValue = _resolveDefaultValue(dynamicHandler, theConfig, defValue);\r\n }\r\n else {\r\n theValue = defValue;\r\n }\r\n // if (theValue && usingDefault && (isPlainObject(theValue) || isArray(theValue))) {\r\n // theValue = _cfgDeepCopy(theValue);\r\n // }\r\n // Needed to ensure that the (potentially) new field is dynamic even if null/undefined\r\n dynamicHandler.set(theConfig, name, theValue);\r\n if (reference) {\r\n dynamicHandler.ref(theConfig, name);\r\n }\r\n if (readOnly) {\r\n dynamicHandler[_DYN_RD_ONLY /* @min:%2erdOnly */](theConfig, name);\r\n }\r\n}\r\n//# sourceMappingURL=ConfigDefaults.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { isArray, isPlainObject, objForEachKey, symbolFor, throwTypeError } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\n// Using Symbol.for so that if the same symbol was already created it would be returned\r\n// To handle multiple instances using potentially different versions we are not using\r\n// createUniqueNamespace()\r\nexport var CFG_HANDLER_LINK = symbolFor(\"[[ai_dynCfg_1]]\");\r\n/**\r\n * @internal\r\n * @ignore\r\n * The symbol to tag objects / arrays with if they should not be converted\r\n */\r\nvar BLOCK_DYNAMIC = symbolFor(\"[[ai_blkDynCfg_1]]\");\r\n/**\r\n * @internal\r\n * @ignore\r\n * The symbol to tag objects to indicate that when included into the configuration that\r\n * they should be converted into a trackable dynamic object.\r\n */\r\nvar FORCE_DYNAMIC = symbolFor(\"[[ai_frcDynCfg_1]]\");\r\nexport function _cfgDeepCopy(source) {\r\n if (source) {\r\n var target_1;\r\n if (isArray(source)) {\r\n target_1 = [];\r\n target_1[_DYN_LENGTH /* @min:%2elength */] = source[_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n else if (isPlainObject(source)) {\r\n target_1 = {};\r\n }\r\n if (target_1) {\r\n // Copying index values by property name as the extensionConfig can be an array or object\r\n objForEachKey(source, function (key, value) {\r\n // Perform a deep copy of the object\r\n target_1[key] = _cfgDeepCopy(value);\r\n });\r\n return target_1;\r\n }\r\n }\r\n return source;\r\n}\r\n/**\r\n * @internal\r\n * Get the dynamic config handler if the value is already dynamic\r\n * @param value\r\n * @returns\r\n */\r\nexport function getDynamicConfigHandler(value) {\r\n if (value) {\r\n var handler = value[CFG_HANDLER_LINK] || value;\r\n if (handler.cfg && (handler.cfg === value || handler.cfg[CFG_HANDLER_LINK] === handler)) {\r\n return handler;\r\n }\r\n }\r\n return null;\r\n}\r\n/**\r\n * Mark the provided value so that if it's included into the configuration it will NOT have\r\n * its properties converted into a dynamic (reactive) object. If the object is not a plain object\r\n * or an array (ie. a class) this function has not affect as only Objects and Arrays are converted\r\n * into dynamic objects in the dynamic configuration.\r\n *\r\n * When you have tagged a value as both {@link forceDynamicConversion} and blocked force will take precedence.\r\n *\r\n * You should only need to use this function, if you are creating dynamic \"classes\" from objects\r\n * which confirm to the require interface. A common case for this is during unit testing where it's\r\n * easier to create mock extensions.\r\n *\r\n * If `value` is falsy (null / undefined / 0 / empty string etc) it will not be tagged and\r\n * if there is an exception adding the property to the value (because its frozen etc) the\r\n * exception will be swallowed\r\n *\r\n * @example\r\n * ```ts\r\n * // This is a valid \"extension\", but it is technically an object\r\n * // So when included in the config.extensions it WILL be cloned and then\r\n * // converted into a dynamic object, where all of its properties will become\r\n * // get/set object properties and will be tracked. While this WILL still\r\n * // function, when attempt to use a mocking framework on top of this the\r\n * // functions are now technically get accessors which return a function\r\n * // and this can cause some mocking frameworks to fail.\r\n * let mockChannel = {\r\n * pause: () => { },\r\n* resume: () => { },\r\n* teardown: () => { },\r\n* flush: (async: any, callBack: any) => { },\r\n* processTelemetry: (env: any) => { },\r\n* setNextPlugin: (next: any) => { },\r\n* initialize: (config: any, core: any, extensions: any) => { },\r\n* identifier: \"testChannel\",\r\n* priority: 1003\r\n* };\r\n * ```\r\n * @param value - The object that you want to block from being converted into a\r\n * trackable dynamic object\r\n * @returns The original value\r\n */\r\nexport function blockDynamicConversion(value) {\r\n if (value && (isPlainObject(value) || isArray(value))) {\r\n try {\r\n value[BLOCK_DYNAMIC] = true;\r\n }\r\n catch (e) {\r\n // Don't throw for this case as it's an ask only\r\n }\r\n }\r\n return value;\r\n}\r\n/**\r\n * This is the reverse case of {@link blockDynamicConversion} in that this will tag an\r\n * object to indicate that it should always be converted into a dynamic trackable object\r\n * even when not an object or array. So all properties of this object will become\r\n * get / set accessor functions.\r\n *\r\n * When you have tagged a value as both {@link forceDynamicConversion} and blocked force will take precedence.\r\n *\r\n * If `value` is falsy (null / undefined / 0 / empty string etc) it will not be tagged and\r\n * if there is an exception adding the property to the value (because its frozen etc) the\r\n * exception will be swallowed.\r\n * @param value - The object that should be tagged and converted if included into a dynamic\r\n * configuration.\r\n * @returns The original value\r\n */\r\nexport function forceDynamicConversion(value) {\r\n if (value) {\r\n try {\r\n value[FORCE_DYNAMIC] = true;\r\n }\r\n catch (e) {\r\n // Don't throw for this case as it's an ask only\r\n }\r\n }\r\n return value;\r\n}\r\n/**\r\n * @internal\r\n * @ignore\r\n * Helper function to check whether an object can or should be converted into a dynamic\r\n * object.\r\n * @param value - The object to check whether it should be converted\r\n * @returns `true` if the value should be converted otherwise `false`.\r\n */\r\nexport function _canMakeDynamic(getFunc, state, value) {\r\n var result = false;\r\n // Object must exist and be truthy\r\n if (value && !getFunc[state.blkVal]) {\r\n // Tagged as always convert\r\n result = value[FORCE_DYNAMIC];\r\n // Check that it's not explicitly tagged as blocked\r\n if (!result && !value[BLOCK_DYNAMIC]) {\r\n // Only convert plain objects or arrays by default\r\n result = isPlainObject(value) || isArray(value);\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * Throws an invalid access exception\r\n * @param message - The message to include in the exception\r\n */\r\nexport function throwInvalidAccess(message) {\r\n throwTypeError(\"InvalidAccess:\" + message);\r\n}\r\n//# sourceMappingURL=DynamicSupport.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { arrForEach, arrIndexOf, dumpObj, isArray, objDefine, objDefineProp, objForEachKey, objGetOwnPropertyDescriptor } from \"@nevware21/ts-utils\";\r\nimport { UNDEFINED_VALUE } from \"../JavaScriptSDK/InternalConstants\";\r\nimport { _DYN_APPLY, _DYN_HDLR, _DYN_LOGGER, _DYN_PUSH, _DYN_SPLICE, _DYN_THROW_INTERNAL } from \"../__DynamicConstants\";\r\nimport { CFG_HANDLER_LINK, _canMakeDynamic, blockDynamicConversion, throwInvalidAccess } from \"./DynamicSupport\";\r\nvar arrayMethodsToPatch = [\r\n \"push\",\r\n \"pop\",\r\n \"shift\",\r\n \"unshift\",\r\n \"splice\"\r\n];\r\nexport var _throwDynamicError = function (logger, name, desc, e) {\r\n logger && logger[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */](3 /* eLoggingSeverity.DEBUG */, 108 /* _eInternalMessageId.DynamicConfigException */, \"\".concat(desc, \" [\").concat(name, \"] failed - \") + dumpObj(e));\r\n};\r\nfunction _patchArray(state, target, name) {\r\n if (isArray(target)) {\r\n // Monkey Patch the methods that might change the array\r\n arrForEach(arrayMethodsToPatch, function (method) {\r\n var orgMethod = target[method];\r\n target[method] = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var result = orgMethod[_DYN_APPLY /* @min:%2eapply */](this, args);\r\n // items may be added, removed or moved so need to make some new dynamic properties\r\n _makeDynamicObject(state, target, name, \"Patching\");\r\n return result;\r\n };\r\n });\r\n }\r\n}\r\nfunction _getOwnPropGetter(target, name) {\r\n var propDesc = objGetOwnPropertyDescriptor(target, name);\r\n return propDesc && propDesc.get;\r\n}\r\nfunction _createDynamicProperty(state, theConfig, name, value) {\r\n // Does not appear to be dynamic so lets make it so\r\n var detail = {\r\n n: name,\r\n h: [],\r\n trk: function (handler) {\r\n if (handler && handler.fn) {\r\n if (arrIndexOf(detail.h, handler) === -1) {\r\n // Add this handler to the collection that should be notified when the value changes\r\n detail.h[_DYN_PUSH /* @min:%2epush */](handler);\r\n }\r\n state.trk(handler, detail);\r\n }\r\n },\r\n clr: function (handler) {\r\n var idx = arrIndexOf(detail.h, handler);\r\n if (idx !== -1) {\r\n detail.h[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n }\r\n }\r\n };\r\n // Flag to optimize lookup response time by avoiding additional function calls\r\n var checkDynamic = true;\r\n var isObjectOrArray = false;\r\n function _getProperty() {\r\n if (checkDynamic) {\r\n isObjectOrArray = isObjectOrArray || _canMakeDynamic(_getProperty, state, value);\r\n // Make sure that if it's an object that we make it dynamic\r\n if (value && !value[CFG_HANDLER_LINK] && isObjectOrArray) {\r\n // It doesn't look like it's already dynamic so lets make sure it's converted the object into a dynamic Config as well\r\n value = _makeDynamicObject(state, value, name, \"Converting\");\r\n }\r\n // If it needed to be converted it now has been\r\n checkDynamic = false;\r\n }\r\n // If there is an active handler then add it to the tracking set of handlers\r\n var activeHandler = state.act;\r\n if (activeHandler) {\r\n detail.trk(activeHandler);\r\n }\r\n return value;\r\n }\r\n // Tag this getter as our dynamic property and provide shortcut for notifying a change\r\n _getProperty[state.prop] = {\r\n chng: function () {\r\n state.add(detail);\r\n }\r\n };\r\n function _setProperty(newValue) {\r\n if (value !== newValue) {\r\n if (!!_getProperty[state.ro] && !state.upd) {\r\n // field is marked as readonly so return false\r\n throwInvalidAccess(\"[\" + name + \"] is read-only:\" + dumpObj(theConfig));\r\n }\r\n if (checkDynamic) {\r\n isObjectOrArray = isObjectOrArray || _canMakeDynamic(_getProperty, state, value);\r\n checkDynamic = false;\r\n }\r\n // The value must be a plain object or an array to enforce the reference (in-place updates)\r\n var isReferenced = isObjectOrArray && _getProperty[state.rf];\r\n if (isObjectOrArray) {\r\n // We are about to replace a plain object or an array\r\n if (isReferenced) {\r\n // Reassign the properties from the current value to the same properties from the newValue\r\n // This will set properties not in the newValue to undefined\r\n objForEachKey(value, function (key) {\r\n value[key] = newValue ? newValue[key] : UNDEFINED_VALUE;\r\n });\r\n // Now assign / re-assign value with all of the keys from newValue\r\n try {\r\n objForEachKey(newValue, function (key, theValue) {\r\n _setDynamicProperty(state, value, key, theValue);\r\n });\r\n // Now drop newValue so when we assign value later it keeps the existing reference\r\n newValue = value;\r\n }\r\n catch (e) {\r\n // Unable to convert to dynamic property so just leave as non-dynamic\r\n _throwDynamicError((state.hdlr || {})[_DYN_LOGGER /* @min:%2elogger */], name, \"Assigning\", e);\r\n // Mark as not an object or array so we don't try and do this again\r\n isObjectOrArray = false;\r\n }\r\n }\r\n else if (value && value[CFG_HANDLER_LINK]) {\r\n // As we are replacing the value, if it's already dynamic then we need to notify the listeners\r\n // for every property it has already\r\n objForEachKey(value, function (key) {\r\n // Check if the value is dynamic\r\n var getter = _getOwnPropGetter(value, key);\r\n if (getter) {\r\n // And if it is tell it's listeners that the value has changed\r\n var valueState = getter[state.prop];\r\n valueState && valueState.chng();\r\n }\r\n });\r\n }\r\n }\r\n if (newValue !== value) {\r\n var newIsObjectOrArray = newValue && _canMakeDynamic(_getProperty, state, newValue);\r\n if (!isReferenced && newIsObjectOrArray) {\r\n // As the newValue is an object/array lets preemptively make it dynamic\r\n newValue = _makeDynamicObject(state, newValue, name, \"Converting\");\r\n }\r\n // Now assign the internal \"value\" to the newValue\r\n value = newValue;\r\n isObjectOrArray = newIsObjectOrArray;\r\n }\r\n // Cause any listeners to be scheduled for notification\r\n state.add(detail);\r\n }\r\n }\r\n objDefine(theConfig, detail.n, { g: _getProperty, s: _setProperty });\r\n}\r\nexport function _setDynamicProperty(state, target, name, value) {\r\n if (target) {\r\n // To be a dynamic property it needs to have a get function\r\n var getter = _getOwnPropGetter(target, name);\r\n var isDynamic = getter && !!getter[state.prop];\r\n if (!isDynamic) {\r\n _createDynamicProperty(state, target, name, value);\r\n }\r\n else {\r\n // Looks like it's already dynamic just assign the new value\r\n target[name] = value;\r\n }\r\n }\r\n return target;\r\n}\r\nexport function _setDynamicPropertyState(state, target, name, flags) {\r\n if (target) {\r\n // To be a dynamic property it needs to have a get function\r\n var getter = _getOwnPropGetter(target, name);\r\n var isDynamic = getter && !!getter[state.prop];\r\n var inPlace = flags && flags[0 /* _eSetDynamicPropertyFlags.inPlace */];\r\n var rdOnly = flags && flags[1 /* _eSetDynamicPropertyFlags.readOnly */];\r\n var blkProp = flags && flags[2 /* _eSetDynamicPropertyFlags.blockDynamicProperty */];\r\n if (!isDynamic) {\r\n if (blkProp) {\r\n try {\r\n // Attempt to mark the target as blocked from conversion\r\n blockDynamicConversion(target);\r\n }\r\n catch (e) {\r\n _throwDynamicError((state.hdlr || {})[_DYN_LOGGER /* @min:%2elogger */], name, \"Blocking\", e);\r\n }\r\n }\r\n try {\r\n // Make sure it's dynamic so that we can tag the property as per the state\r\n _setDynamicProperty(state, target, name, target[name]);\r\n getter = _getOwnPropGetter(target, name);\r\n }\r\n catch (e) {\r\n // Unable to convert to dynamic property so just leave as non-dynamic\r\n _throwDynamicError((state.hdlr || {})[_DYN_LOGGER /* @min:%2elogger */], name, \"State\", e);\r\n }\r\n }\r\n // Assign the optional flags if true\r\n if (inPlace) {\r\n getter[state.rf] = inPlace;\r\n }\r\n if (rdOnly) {\r\n getter[state.ro] = rdOnly;\r\n }\r\n if (blkProp) {\r\n getter[state.blkVal] = true;\r\n }\r\n }\r\n return target;\r\n}\r\nexport function _makeDynamicObject(state, target, name, desc) {\r\n try {\r\n // Assign target with new value properties (converting into dynamic properties in the process)\r\n objForEachKey(target, function (key, value) {\r\n // Assign and/or make the property dynamic\r\n _setDynamicProperty(state, target, key, value);\r\n });\r\n if (!target[CFG_HANDLER_LINK]) {\r\n // Link the config back to the dynamic config details\r\n objDefineProp(target, CFG_HANDLER_LINK, {\r\n get: function () {\r\n return state[_DYN_HDLR /* @min:%2ehdlr */];\r\n }\r\n });\r\n _patchArray(state, target, name);\r\n }\r\n }\r\n catch (e) {\r\n // Unable to convert to dynamic property so just leave as non-dynamic\r\n _throwDynamicError((state.hdlr || {})[_DYN_LOGGER /* @min:%2elogger */], name, desc, e);\r\n }\r\n return target;\r\n}\r\n//# sourceMappingURL=DynamicProperty.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { arrForEach, createCustomError, dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nvar aggregationErrorType;\r\n/**\r\n * Throws an Aggregation Error which includes all of the errors that led to this error occurring\r\n * @param message - The message describing the aggregation error (the sourceError details are added to this)\r\n * @param sourceErrors - An array of the errors that caused this situation\r\n */\r\nexport function throwAggregationError(message, sourceErrors) {\r\n if (!aggregationErrorType) {\r\n aggregationErrorType = createCustomError(\"AggregationError\", function (self, args) {\r\n if (args[_DYN_LENGTH /* @min:%2elength */] > 1) {\r\n // Save the provided errors\r\n self.errors = args[1];\r\n }\r\n });\r\n }\r\n var theMessage = message || \"One or more errors occurred.\";\r\n arrForEach(sourceErrors, function (srcError, idx) {\r\n theMessage += \"\\n\".concat(idx, \" > \").concat(dumpObj(srcError));\r\n });\r\n throw new aggregationErrorType(theMessage, sourceErrors || []);\r\n}\r\n//# sourceMappingURL=AggregationError.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { arrForEach, arrIndexOf, dumpObj, newSymbol, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { throwAggregationError } from \"../JavaScriptSDK/AggregationError\";\r\nimport { _DYN_BLK_VAL, _DYN_CANCEL, _DYN_HDLR, _DYN_LENGTH, _DYN_LOGGER, _DYN_NOTIFY, _DYN_PUSH, _DYN_RD_ONLY, _DYN_SET_DF, _DYN_THROW_INTERNAL } from \"../__DynamicConstants\";\r\nvar symPrefix = \"[[ai_\";\r\nvar symPostfix = \"]]\";\r\nexport function _createState(cfgHandler) {\r\n var _a;\r\n var dynamicPropertySymbol = newSymbol(symPrefix + \"get\" + cfgHandler.uid + symPostfix);\r\n var dynamicPropertyReadOnly = newSymbol(symPrefix + \"ro\" + cfgHandler.uid + symPostfix);\r\n var dynamicPropertyReferenced = newSymbol(symPrefix + \"rf\" + cfgHandler.uid + symPostfix);\r\n var dynamicPropertyBlockValue = newSymbol(symPrefix + \"blkVal\" + cfgHandler.uid + symPostfix);\r\n var dynamicPropertyDetail = newSymbol(symPrefix + \"dtl\" + cfgHandler.uid + symPostfix);\r\n var _waitingHandlers = null;\r\n var _watcherTimer = null;\r\n var theState;\r\n function _useHandler(activeHandler, callback) {\r\n var prevWatcher = theState.act;\r\n try {\r\n theState.act = activeHandler;\r\n if (activeHandler && activeHandler[dynamicPropertyDetail]) {\r\n // Clear out the previously tracked details for this handler, so that access are re-evaluated\r\n arrForEach(activeHandler[dynamicPropertyDetail], function (detail) {\r\n detail.clr(activeHandler);\r\n });\r\n activeHandler[dynamicPropertyDetail] = [];\r\n }\r\n callback({\r\n cfg: cfgHandler.cfg,\r\n set: cfgHandler.set.bind(cfgHandler),\r\n setDf: cfgHandler[_DYN_SET_DF /* @min:%2esetDf */].bind(cfgHandler),\r\n ref: cfgHandler.ref.bind(cfgHandler),\r\n rdOnly: cfgHandler[_DYN_RD_ONLY /* @min:%2erdOnly */].bind(cfgHandler)\r\n });\r\n }\r\n catch (e) {\r\n var logger = cfgHandler[_DYN_LOGGER /* @min:%2elogger */];\r\n if (logger) {\r\n // Don't let one individual failure break everyone\r\n logger[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */](1 /* eLoggingSeverity.CRITICAL */, 107 /* _eInternalMessageId.ConfigWatcherException */, dumpObj(e));\r\n }\r\n // Re-throw the exception so that any true \"error\" is reported back to the called\r\n throw e;\r\n }\r\n finally {\r\n theState.act = prevWatcher || null;\r\n }\r\n }\r\n function _notifyWatchers() {\r\n if (_waitingHandlers) {\r\n var notifyHandlers = _waitingHandlers;\r\n _waitingHandlers = null;\r\n // Stop any timer as we are running them now anyway\r\n _watcherTimer && _watcherTimer[_DYN_CANCEL /* @min:%2ecancel */]();\r\n _watcherTimer = null;\r\n var watcherFailures_1 = [];\r\n // Now run the handlers\r\n arrForEach(notifyHandlers, function (handler) {\r\n if (handler) {\r\n if (handler[dynamicPropertyDetail]) {\r\n arrForEach(handler[dynamicPropertyDetail], function (detail) {\r\n // Clear out this handler from previously tracked details, so that access are re-evaluated\r\n detail.clr(handler);\r\n });\r\n handler[dynamicPropertyDetail] = null;\r\n }\r\n // The handler may have self removed as part of another handler so re-check\r\n if (handler.fn) {\r\n try {\r\n _useHandler(handler, handler.fn);\r\n }\r\n catch (e) {\r\n // Don't let a single failing watcher cause other watches to fail\r\n watcherFailures_1[_DYN_PUSH /* @min:%2epush */](e);\r\n }\r\n }\r\n }\r\n });\r\n // During notification we may have had additional updates -- so notify those updates as well\r\n if (_waitingHandlers) {\r\n try {\r\n _notifyWatchers();\r\n }\r\n catch (e) {\r\n watcherFailures_1[_DYN_PUSH /* @min:%2epush */](e);\r\n }\r\n }\r\n if (watcherFailures_1[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n throwAggregationError(\"Watcher error(s): \", watcherFailures_1);\r\n }\r\n }\r\n }\r\n function _addWatcher(detail) {\r\n if (detail && detail.h[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n if (!_waitingHandlers) {\r\n _waitingHandlers = [];\r\n }\r\n if (!_watcherTimer) {\r\n _watcherTimer = scheduleTimeout(function () {\r\n _watcherTimer = null;\r\n _notifyWatchers();\r\n }, 0);\r\n }\r\n // Add all of the handlers for this detail (if not already present) - using normal for-loop for performance\r\n for (var idx = 0; idx < detail.h[_DYN_LENGTH /* @min:%2elength */]; idx++) {\r\n var handler = detail.h[idx];\r\n // Add this handler to the collection of handlers to re-execute\r\n if (handler && arrIndexOf(_waitingHandlers, handler) === -1) {\r\n _waitingHandlers[_DYN_PUSH /* @min:%2epush */](handler);\r\n }\r\n }\r\n }\r\n }\r\n function _trackHandler(handler, detail) {\r\n if (handler) {\r\n var details = handler[dynamicPropertyDetail] = handler[dynamicPropertyDetail] || [];\r\n if (arrIndexOf(details, detail) === -1) {\r\n // If this detail is not already listed as tracked then add it so that we re-evaluate it's usage\r\n details[_DYN_PUSH /* @min:%2epush */](detail);\r\n }\r\n }\r\n }\r\n theState = (_a = {\r\n prop: dynamicPropertySymbol,\r\n ro: dynamicPropertyReadOnly,\r\n rf: dynamicPropertyReferenced\r\n },\r\n _a[_DYN_BLK_VAL /* @min:blkVal */] = dynamicPropertyBlockValue,\r\n _a[_DYN_HDLR /* @min:hdlr */] = cfgHandler,\r\n _a.add = _addWatcher,\r\n _a[_DYN_NOTIFY /* @min:notify */] = _notifyWatchers,\r\n _a.use = _useHandler,\r\n _a.trk = _trackHandler,\r\n _a);\r\n return theState;\r\n}\r\n//# sourceMappingURL=DynamicState.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { dumpObj, isUndefined, objDefine, objForEachKey } from \"@nevware21/ts-utils\";\r\nimport { createUniqueNamespace } from \"../JavaScriptSDK/DataCacheHelper\";\r\nimport { STR_NOT_DYNAMIC_ERROR } from \"../JavaScriptSDK/InternalConstants\";\r\nimport { _DYN_BLK_VAL, _DYN_LOGGER, _DYN_NOTIFY, _DYN_RD_ONLY, _DYN_SET_DF, _DYN_THROW_INTERNAL, _DYN_WARN_TO_CONSOLE, _DYN_WATCH } from \"../__DynamicConstants\";\r\nimport { _applyDefaultValue } from \"./ConfigDefaults\";\r\nimport { _makeDynamicObject, _setDynamicProperty, _setDynamicPropertyState, _throwDynamicError } from \"./DynamicProperty\";\r\nimport { _createState } from \"./DynamicState\";\r\nimport { CFG_HANDLER_LINK, _cfgDeepCopy, getDynamicConfigHandler, throwInvalidAccess } from \"./DynamicSupport\";\r\n/**\r\n * Identifies a function which will be re-called whenever any of it's accessed configuration values\r\n * change.\r\n * @param configHandler - The callback that will be called for the initial request and then whenever any\r\n * accessed configuration changes are identified.\r\n */\r\nfunction _createAndUseHandler(state, configHandler) {\r\n var handler = {\r\n fn: configHandler,\r\n rm: function () {\r\n // Clear all references to the handler so it can be garbage collected\r\n // This will also cause this handler to never get called and eventually removed\r\n handler.fn = null;\r\n state = null;\r\n configHandler = null;\r\n }\r\n };\r\n objDefine(handler, \"toJSON\", { v: function () { return \"WatcherHandler\" + (handler.fn ? \"\" : \"[X]\"); } });\r\n state.use(handler, configHandler);\r\n return handler;\r\n}\r\n/**\r\n * Creates the dynamic config handler and associates with the target config as the root object\r\n * @param target - The config that you want to be root of the dynamic config\r\n * @param inPlace - Should the passed config be converted in-place or a new proxy returned\r\n * @returns The existing dynamic handler or a new instance with the provided config values\r\n */\r\nfunction _createDynamicHandler(logger, target, inPlace) {\r\n var _a;\r\n var dynamicHandler = getDynamicConfigHandler(target);\r\n if (dynamicHandler) {\r\n // The passed config is already dynamic so return it's tracker\r\n return dynamicHandler;\r\n }\r\n var uid = createUniqueNamespace(\"dyncfg\", true);\r\n var newTarget = (target && inPlace !== false) ? target : _cfgDeepCopy(target);\r\n var theState;\r\n function _notifyWatchers() {\r\n theState[_DYN_NOTIFY /* @min:%2enotify */]();\r\n }\r\n function _setValue(target, name, value) {\r\n try {\r\n target = _setDynamicProperty(theState, target, name, value);\r\n }\r\n catch (e) {\r\n // Unable to convert to dynamic property so just leave as non-dynamic\r\n _throwDynamicError(logger, name, \"Setting value\", e);\r\n }\r\n return target[name];\r\n }\r\n function _watch(configHandler) {\r\n return _createAndUseHandler(theState, configHandler);\r\n }\r\n function _block(configHandler, allowUpdate) {\r\n theState.use(null, function (details) {\r\n var prevUpd = theState.upd;\r\n try {\r\n if (!isUndefined(allowUpdate)) {\r\n theState.upd = allowUpdate;\r\n }\r\n configHandler(details);\r\n }\r\n finally {\r\n theState.upd = prevUpd;\r\n }\r\n });\r\n }\r\n function _ref(target, name) {\r\n var _a;\r\n // Make sure it's dynamic and mark as referenced with it's current value\r\n return _setDynamicPropertyState(theState, target, name, (_a = {}, _a[0 /* _eSetDynamicPropertyFlags.inPlace */] = true, _a))[name];\r\n }\r\n function _rdOnly(target, name) {\r\n var _a;\r\n // Make sure it's dynamic and mark as readonly with it's current value\r\n return _setDynamicPropertyState(theState, target, name, (_a = {}, _a[1 /* _eSetDynamicPropertyFlags.readOnly */] = true, _a))[name];\r\n }\r\n function _blkPropValue(target, name) {\r\n var _a;\r\n // Make sure it's dynamic and mark as readonly with it's current value\r\n return _setDynamicPropertyState(theState, target, name, (_a = {}, _a[2 /* _eSetDynamicPropertyFlags.blockDynamicProperty */] = true, _a))[name];\r\n }\r\n function _applyDefaults(theConfig, defaultValues) {\r\n if (defaultValues) {\r\n // Resolve/apply the defaults\r\n objForEachKey(defaultValues, function (name, value) {\r\n // Sets the value and makes it dynamic (if it doesn't already exist)\r\n _applyDefaultValue(cfgHandler, theConfig, name, value);\r\n });\r\n }\r\n return theConfig;\r\n }\r\n var cfgHandler = (_a = {\r\n uid: null,\r\n cfg: newTarget\r\n },\r\n _a[_DYN_LOGGER /* @min:logger */] = logger,\r\n _a[_DYN_NOTIFY /* @min:notify */] = _notifyWatchers,\r\n _a.set = _setValue,\r\n _a[_DYN_SET_DF /* @min:setDf */] = _applyDefaults,\r\n _a[_DYN_WATCH /* @min:watch */] = _watch,\r\n _a.ref = _ref,\r\n _a[_DYN_RD_ONLY /* @min:rdOnly */] = _rdOnly,\r\n _a[_DYN_BLK_VAL /* @min:blkVal */] = _blkPropValue,\r\n _a._block = _block,\r\n _a);\r\n objDefine(cfgHandler, \"uid\", {\r\n c: false,\r\n e: false,\r\n w: false,\r\n v: uid\r\n });\r\n theState = _createState(cfgHandler);\r\n // Setup tracking for all defined default keys\r\n _makeDynamicObject(theState, newTarget, \"config\", \"Creating\");\r\n return cfgHandler;\r\n}\r\n/**\r\n * Log an invalid access message to the console\r\n * @param message\r\n */\r\nfunction _logInvalidAccess(logger, message) {\r\n if (logger) {\r\n logger[_DYN_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */](message);\r\n logger[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */](2 /* eLoggingSeverity.WARNING */, 108 /* _eInternalMessageId.DynamicConfigException */, message);\r\n }\r\n else {\r\n // We don't have a logger so just throw an exception\r\n throwInvalidAccess(message);\r\n }\r\n}\r\n/**\r\n * Create or return a dynamic version of the passed config, if it is not already dynamic\r\n * @param config - The config to be converted into a dynamic config\r\n * @param defaultConfig - The default values to apply on the config if the properties don't already exist\r\n * @param inPlace - Should the config be converted in-place into a dynamic config or a new instance returned, defaults to true\r\n * @returns The dynamic config handler for the config (whether new or existing)\r\n */\r\nexport function createDynamicConfig(config, defaultConfig, logger, inPlace) {\r\n var dynamicHandler = _createDynamicHandler(logger, config || {}, inPlace);\r\n if (defaultConfig) {\r\n dynamicHandler[_DYN_SET_DF /* @min:%2esetDf */](dynamicHandler.cfg, defaultConfig);\r\n }\r\n return dynamicHandler;\r\n}\r\n/**\r\n * Watch and track changes for accesses to the current config, the provided config MUST already be\r\n * a dynamic config or a child accessed via the dynamic config\r\n * @param config\r\n * @param configHandler\r\n * @param logger - The logger instance to use if there is no existing handler\r\n * @returns A watcher handler instance that can be used to remove itself when being unloaded\r\n * @throws TypeError if the provided config is not a dynamic config instance\r\n */\r\nexport function onConfigChange(config, configHandler, logger) {\r\n var handler = config[CFG_HANDLER_LINK] || config;\r\n if (handler.cfg && (handler.cfg === config || handler.cfg[CFG_HANDLER_LINK] === handler)) {\r\n return handler[_DYN_WATCH /* @min:%2ewatch */](configHandler);\r\n }\r\n _logInvalidAccess(logger, STR_NOT_DYNAMIC_ERROR + dumpObj(config));\r\n return createDynamicConfig(config, null, logger)[_DYN_WATCH /* @min:%2ewatch */](configHandler);\r\n}\r\n//# sourceMappingURL=DynamicConfig.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { getInst } from \"@nevware21/ts-utils\";\r\nimport { _DYN_APPLY, _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { STR_EVENTS_DISCARDED, STR_EVENTS_SEND_REQUEST, STR_EVENTS_SENT, STR_PERF_EVENT } from \"./InternalConstants\";\r\nvar listenerFuncs = [STR_EVENTS_SENT, STR_EVENTS_DISCARDED, STR_EVENTS_SEND_REQUEST, STR_PERF_EVENT];\r\nvar _aiNamespace = null;\r\nvar _debugListener;\r\nfunction _listenerProxyFunc(name, config) {\r\n return function () {\r\n var args = arguments;\r\n var dbgExt = getDebugExt(config);\r\n if (dbgExt) {\r\n var listener = dbgExt.listener;\r\n if (listener && listener[name]) {\r\n listener[name][_DYN_APPLY /* @min:%2eapply */](listener, args);\r\n }\r\n }\r\n };\r\n}\r\nfunction _getExtensionNamespace() {\r\n // Cache the lookup of the global namespace object\r\n var target = getInst(\"Microsoft\");\r\n if (target) {\r\n _aiNamespace = target[\"ApplicationInsights\"];\r\n }\r\n return _aiNamespace;\r\n}\r\nexport function getDebugExt(config) {\r\n var ns = _aiNamespace;\r\n if (!ns && config.disableDbgExt !== true) {\r\n ns = _aiNamespace || _getExtensionNamespace();\r\n }\r\n return ns ? ns[\"ChromeDbgExt\"] : null;\r\n}\r\nexport function getDebugListener(config) {\r\n if (!_debugListener) {\r\n _debugListener = {};\r\n for (var lp = 0; lp < listenerFuncs[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n _debugListener[listenerFuncs[lp]] = _listenerProxyFunc(listenerFuncs[lp], config);\r\n }\r\n }\r\n return _debugListener;\r\n}\r\n//# sourceMappingURL=DbgExtensionUtils.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nvar _a;\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { dumpObj, isFunction, isUndefined } from \"@nevware21/ts-utils\";\r\nimport { createDynamicConfig, onConfigChange } from \"../Config/DynamicConfig\";\r\nimport { _DYN_DIAG_LOG, _DYN_LOGGER, _DYN_LOGGING_LEVEL_CONSOL4, _DYN_LOG_INTERNAL_MESSAGE, _DYN_MESSAGE, _DYN_MESSAGE_ID, _DYN_PUSH, _DYN_REPLACE, _DYN_THROW_INTERNAL, _DYN_UNLOAD, _DYN_WARN_TO_CONSOLE } from \"../__DynamicConstants\";\r\nimport { getDebugExt } from \"./DbgExtensionUtils\";\r\nimport { getConsole, getJSON, hasJSON } from \"./EnvUtils\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nvar STR_WARN_TO_CONSOLE = \"warnToConsole\";\r\n/**\r\n * For user non actionable traces use AI Internal prefix.\r\n */\r\nvar AiNonUserActionablePrefix = \"AI (Internal): \";\r\n/**\r\n * Prefix of the traces in portal.\r\n */\r\nvar AiUserActionablePrefix = \"AI: \";\r\n/**\r\n * Session storage key for the prefix for the key indicating message type already logged\r\n */\r\nvar AIInternalMessagePrefix = \"AITR_\";\r\nvar defaultValues = {\r\n loggingLevelConsole: 0,\r\n loggingLevelTelemetry: 1,\r\n maxMessageLimit: 25,\r\n enableDebug: false\r\n};\r\nvar _logFuncs = (_a = {},\r\n _a[0 /* eLoggingSeverity.DISABLED */] = null,\r\n _a[1 /* eLoggingSeverity.CRITICAL */] = \"errorToConsole\",\r\n _a[2 /* eLoggingSeverity.WARNING */] = STR_WARN_TO_CONSOLE,\r\n _a[3 /* eLoggingSeverity.DEBUG */] = \"debugToConsole\",\r\n _a);\r\nfunction _sanitizeDiagnosticText(text) {\r\n if (text) {\r\n return \"\\\"\" + text[_DYN_REPLACE /* @min:%2ereplace */](/\\\"/g, STR_EMPTY) + \"\\\"\";\r\n }\r\n return STR_EMPTY;\r\n}\r\nfunction _logToConsole(func, message) {\r\n var theConsole = getConsole();\r\n if (!!theConsole) {\r\n var logFunc = \"log\";\r\n if (theConsole[func]) {\r\n logFunc = func;\r\n }\r\n if (isFunction(theConsole[logFunc])) {\r\n theConsole[logFunc](message);\r\n }\r\n }\r\n}\r\nvar _InternalLogMessage = /** @class */ (function () {\r\n function _InternalLogMessage(msgId, msg, isUserAct, properties) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n var _self = this;\r\n _self[_DYN_MESSAGE_ID /* @min:%2emessageId */] = msgId;\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] =\r\n (isUserAct ? AiUserActionablePrefix : AiNonUserActionablePrefix) +\r\n msgId;\r\n var strProps = STR_EMPTY;\r\n if (hasJSON()) {\r\n strProps = getJSON().stringify(properties);\r\n }\r\n var diagnosticText = (msg ? \" message:\" + _sanitizeDiagnosticText(msg) : STR_EMPTY) +\r\n (properties ? \" props:\" + _sanitizeDiagnosticText(strProps) : STR_EMPTY);\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] += diagnosticText;\r\n }\r\n _InternalLogMessage.dataType = \"MessageData\";\r\n return _InternalLogMessage;\r\n}());\r\nexport { _InternalLogMessage };\r\nexport function safeGetLogger(core, config) {\r\n return (core || {})[_DYN_LOGGER /* @min:%2elogger */] || new DiagnosticLogger(config);\r\n}\r\nvar DiagnosticLogger = /** @class */ (function () {\r\n function DiagnosticLogger(config) {\r\n this.identifier = \"DiagnosticLogger\";\r\n /**\r\n * The internal logging queue\r\n */\r\n this.queue = [];\r\n /**\r\n * Count of internal messages sent\r\n */\r\n var _messageCount = 0;\r\n /**\r\n * Holds information about what message types were already logged to console or sent to server.\r\n */\r\n var _messageLogged = {};\r\n var _loggingLevelConsole;\r\n var _loggingLevelTelemetry;\r\n var _maxInternalMessageLimit;\r\n var _enableDebug;\r\n var _unloadHandler;\r\n dynamicProto(DiagnosticLogger, this, function (_self) {\r\n _unloadHandler = _setDefaultsFromConfig(config || {});\r\n _self.consoleLoggingLevel = function () { return _loggingLevelConsole; };\r\n /**\r\n * This method will throw exceptions in debug mode or attempt to log the error as a console warning.\r\n * @param severity - {LoggingSeverity} - The severity of the log message\r\n * @param message - {_InternalLogMessage} - The log message.\r\n */\r\n _self[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */] = function (severity, msgId, msg, properties, isUserAct) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n var message = new _InternalLogMessage(msgId, msg, isUserAct, properties);\r\n if (_enableDebug) {\r\n throw dumpObj(message);\r\n }\r\n else {\r\n // Get the logging function and fallback to warnToConsole of for some reason errorToConsole doesn't exist\r\n var logFunc = _logFuncs[severity] || STR_WARN_TO_CONSOLE;\r\n if (!isUndefined(message[_DYN_MESSAGE /* @min:%2emessage */])) {\r\n if (isUserAct) {\r\n // check if this message type was already logged to console for this page view and if so, don't log it again\r\n var messageKey = +message[_DYN_MESSAGE_ID /* @min:%2emessageId */];\r\n if (!_messageLogged[messageKey] && _loggingLevelConsole >= severity) {\r\n _self[logFunc](message[_DYN_MESSAGE /* @min:%2emessage */]);\r\n _messageLogged[messageKey] = true;\r\n }\r\n }\r\n else {\r\n // Only log traces if the console Logging Level is >= the throwInternal severity level\r\n if (_loggingLevelConsole >= severity) {\r\n _self[logFunc](message[_DYN_MESSAGE /* @min:%2emessage */]);\r\n }\r\n }\r\n _logInternalMessage(severity, message);\r\n }\r\n else {\r\n _debugExtMsg(\"throw\" + (severity === 1 /* eLoggingSeverity.CRITICAL */ ? \"Critical\" : \"Warning\"), message);\r\n }\r\n }\r\n };\r\n _self.debugToConsole = function (message) {\r\n _logToConsole(\"debug\", message);\r\n _debugExtMsg(\"warning\", message);\r\n };\r\n _self[_DYN_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */] = function (message) {\r\n _logToConsole(\"warn\", message);\r\n _debugExtMsg(\"warning\", message);\r\n };\r\n _self.errorToConsole = function (message) {\r\n _logToConsole(\"error\", message);\r\n _debugExtMsg(\"error\", message);\r\n };\r\n _self.resetInternalMessageCount = function () {\r\n _messageCount = 0;\r\n _messageLogged = {};\r\n };\r\n _self[_DYN_LOG_INTERNAL_MESSAGE /* @min:%2elogInternalMessage */] = _logInternalMessage;\r\n _self[_DYN_UNLOAD /* @min:%2eunload */] = function (isAsync) {\r\n _unloadHandler && _unloadHandler.rm();\r\n _unloadHandler = null;\r\n };\r\n function _logInternalMessage(severity, message) {\r\n if (_areInternalMessagesThrottled()) {\r\n return;\r\n }\r\n // check if this message type was already logged for this session and if so, don't log it again\r\n var logMessage = true;\r\n var messageKey = AIInternalMessagePrefix + message[_DYN_MESSAGE_ID /* @min:%2emessageId */];\r\n // if the session storage is not available, limit to only one message type per page view\r\n if (_messageLogged[messageKey]) {\r\n logMessage = false;\r\n }\r\n else {\r\n _messageLogged[messageKey] = true;\r\n }\r\n if (logMessage) {\r\n // Push the event in the internal queue\r\n if (severity <= _loggingLevelTelemetry) {\r\n _self.queue[_DYN_PUSH /* @min:%2epush */](message);\r\n _messageCount++;\r\n _debugExtMsg((severity === 1 /* eLoggingSeverity.CRITICAL */ ? \"error\" : \"warn\"), message);\r\n }\r\n // When throttle limit reached, send a special event\r\n if (_messageCount === _maxInternalMessageLimit) {\r\n var throttleLimitMessage = \"Internal events throttle limit per PageView reached for this app.\";\r\n var throttleMessage = new _InternalLogMessage(23 /* _eInternalMessageId.MessageLimitPerPVExceeded */, throttleLimitMessage, false);\r\n _self.queue[_DYN_PUSH /* @min:%2epush */](throttleMessage);\r\n if (severity === 1 /* eLoggingSeverity.CRITICAL */) {\r\n _self.errorToConsole(throttleLimitMessage);\r\n }\r\n else {\r\n _self[_DYN_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */](throttleLimitMessage);\r\n }\r\n }\r\n }\r\n }\r\n function _setDefaultsFromConfig(config) {\r\n // make sure the config is dynamic\r\n return onConfigChange(createDynamicConfig(config, defaultValues, _self).cfg, function (details) {\r\n var config = details.cfg;\r\n _loggingLevelConsole = config[_DYN_LOGGING_LEVEL_CONSOL4 /* @min:%2eloggingLevelConsole */];\r\n _loggingLevelTelemetry = config.loggingLevelTelemetry;\r\n _maxInternalMessageLimit = config.maxMessageLimit;\r\n _enableDebug = config.enableDebug;\r\n });\r\n }\r\n function _areInternalMessagesThrottled() {\r\n return _messageCount >= _maxInternalMessageLimit;\r\n }\r\n function _debugExtMsg(name, data) {\r\n var dbgExt = getDebugExt(config || {});\r\n if (dbgExt && dbgExt[_DYN_DIAG_LOG /* @min:%2ediagLog */]) {\r\n dbgExt[_DYN_DIAG_LOG /* @min:%2ediagLog */](name, data);\r\n }\r\n }\r\n });\r\n }\r\n /**\r\n * 0: OFF (default)\r\n * 1: CRITICAL\r\n * 2: >= WARNING\r\n */\r\n DiagnosticLogger.prototype.consoleLoggingLevel = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return 0;\r\n };\r\n /**\r\n * This method will throw exceptions in debug mode or attempt to log the error as a console warning.\r\n * @param severity - {LoggingSeverity} - The severity of the log message\r\n * @param message - {_InternalLogMessage} - The log message.\r\n */\r\n DiagnosticLogger.prototype.throwInternal = function (severity, msgId, msg, properties, isUserAct) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * This will write a debug message to the console if possible\r\n * @param message - {string} - The debug message\r\n */\r\n DiagnosticLogger.prototype.debugToConsole = function (message) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * This will write a warning to the console if possible\r\n * @param message - {string} - The warning message\r\n */\r\n DiagnosticLogger.prototype.warnToConsole = function (message) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * This will write an error to the console if possible\r\n * @param message - {string} - The warning message\r\n */\r\n DiagnosticLogger.prototype.errorToConsole = function (message) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Resets the internal message count\r\n */\r\n DiagnosticLogger.prototype.resetInternalMessageCount = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Logs a message to the internal queue.\r\n * @param severity - {LoggingSeverity} - The severity of the log message\r\n * @param message - {_InternalLogMessage} - The message to log.\r\n */\r\n DiagnosticLogger.prototype.logInternalMessage = function (severity, message) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Unload and remove any state that this IDiagnosticLogger may be holding, this is generally called when the\r\n * owning SDK is being unloaded.\r\n * @param isAsync - Can the unload be performed asynchronously (default)\r\n * @return If the unload occurs synchronously then nothing should be returned, if happening asynchronously then\r\n * the function should return an [IPromise](https://nevware21.github.io/ts-async/typedoc/interfaces/IPromise.html)\r\n * / Promise to allow any listeners to wait for the operation to complete.\r\n */\r\n DiagnosticLogger.prototype.unload = function (isAsync) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return DiagnosticLogger;\r\n}());\r\nexport { DiagnosticLogger };\r\nfunction _getLogger(logger) {\r\n return (logger || new DiagnosticLogger());\r\n}\r\n/**\r\n * This is a helper method which will call throwInternal on the passed logger, will throw exceptions in\r\n * debug mode or attempt to log the error as a console warning. This helper is provided mostly to better\r\n * support minification as logger.throwInternal() will not compress the publish \"throwInternal\" used throughout\r\n * the code.\r\n * @param logger - The Diagnostic Logger instance to use.\r\n * @param severity - {LoggingSeverity} - The severity of the log message\r\n * @param message - {_InternalLogMessage} - The log message.\r\n */\r\nexport function _throwInternal(logger, severity, msgId, msg, properties, isUserAct) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n _getLogger(logger)[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */](severity, msgId, msg, properties, isUserAct);\r\n}\r\n/**\r\n * This is a helper method which will call warnToConsole on the passed logger with the provided message.\r\n * @param logger - The Diagnostic Logger instance to use.\r\n * @param message - {_InternalLogMessage} - The log message.\r\n */\r\nexport function _warnToConsole(logger, message) {\r\n _getLogger(logger)[_DYN_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */](message);\r\n}\r\n/**\r\n * Logs a message to the internal queue.\r\n * @param logger - The Diagnostic Logger instance to use.\r\n * @param severity - {LoggingSeverity} - The severity of the log message\r\n * @param message - {_InternalLogMessage} - The message to log.\r\n */\r\nexport function _logInternalMessage(logger, severity, message) {\r\n _getLogger(logger)[_DYN_LOG_INTERNAL_MESSAGE /* @min:%2elogInternalMessage */](severity, message);\r\n}\r\n//# sourceMappingURL=DiagnosticLogger.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { _throwInternal, getJSON, hasJSON, isObject, objForEachKey, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { asString, strSubstr, strSubstring } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH, _DYN_STRINGIFY, _DYN_TO_STRING } from \"../../__DynamicConstants\";\r\nexport function dataSanitizeKeyAndAddUniqueness(logger, key, map) {\r\n var origLength = key[_DYN_LENGTH /* @min:%2elength */];\r\n var field = dataSanitizeKey(logger, key);\r\n // validation truncated the length. We need to add uniqueness\r\n if (field[_DYN_LENGTH /* @min:%2elength */] !== origLength) {\r\n var i = 0;\r\n var uniqueField = field;\r\n while (map[uniqueField] !== undefined) {\r\n i++;\r\n uniqueField = strSubstring(field, 0, 150 /* DataSanitizerValues.MAX_NAME_LENGTH */ - 3) + dsPadNumber(i);\r\n }\r\n field = uniqueField;\r\n }\r\n return field;\r\n}\r\nexport function dataSanitizeKey(logger, name) {\r\n var nameTrunc;\r\n if (name) {\r\n // Remove any leading or trailing whitespace\r\n name = strTrim(asString(name));\r\n // truncate the string to 150 chars\r\n if (name[_DYN_LENGTH /* @min:%2elength */] > 150 /* DataSanitizerValues.MAX_NAME_LENGTH */) {\r\n nameTrunc = strSubstring(name, 0, 150 /* DataSanitizerValues.MAX_NAME_LENGTH */);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 57 /* _eInternalMessageId.NameTooLong */, \"name is too long. It has been truncated to \" + 150 /* DataSanitizerValues.MAX_NAME_LENGTH */ + \" characters.\", { name: name }, true);\r\n }\r\n }\r\n return nameTrunc || name;\r\n}\r\nexport function dataSanitizeString(logger, value, maxLength) {\r\n if (maxLength === void 0) { maxLength = 1024 /* DataSanitizerValues.MAX_STRING_LENGTH */; }\r\n var valueTrunc;\r\n if (value) {\r\n maxLength = maxLength ? maxLength : 1024 /* DataSanitizerValues.MAX_STRING_LENGTH */; // in case default parameters dont work\r\n value = strTrim(asString(value));\r\n if (value[_DYN_LENGTH /* @min:%2elength */] > maxLength) {\r\n valueTrunc = strSubstring(value, 0, maxLength);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 61 /* _eInternalMessageId.StringValueTooLong */, \"string value is too long. It has been truncated to \" + maxLength + \" characters.\", { value: value }, true);\r\n }\r\n }\r\n return valueTrunc || value;\r\n}\r\nexport function dataSanitizeUrl(logger, url) {\r\n return dataSanitizeInput(logger, url, 2048 /* DataSanitizerValues.MAX_URL_LENGTH */, 66 /* _eInternalMessageId.UrlTooLong */);\r\n}\r\nexport function dataSanitizeMessage(logger, message) {\r\n var messageTrunc;\r\n if (message) {\r\n if (message[_DYN_LENGTH /* @min:%2elength */] > 32768 /* DataSanitizerValues.MAX_MESSAGE_LENGTH */) {\r\n messageTrunc = strSubstring(message, 0, 32768 /* DataSanitizerValues.MAX_MESSAGE_LENGTH */);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 56 /* _eInternalMessageId.MessageTruncated */, \"message is too long, it has been truncated to \" + 32768 /* DataSanitizerValues.MAX_MESSAGE_LENGTH */ + \" characters.\", { message: message }, true);\r\n }\r\n }\r\n return messageTrunc || message;\r\n}\r\nexport function dataSanitizeException(logger, exception) {\r\n var exceptionTrunc;\r\n if (exception) {\r\n // Make surte its a string\r\n var value = \"\" + exception;\r\n if (value[_DYN_LENGTH /* @min:%2elength */] > 32768 /* DataSanitizerValues.MAX_EXCEPTION_LENGTH */) {\r\n exceptionTrunc = strSubstring(value, 0, 32768 /* DataSanitizerValues.MAX_EXCEPTION_LENGTH */);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 52 /* _eInternalMessageId.ExceptionTruncated */, \"exception is too long, it has been truncated to \" + 32768 /* DataSanitizerValues.MAX_EXCEPTION_LENGTH */ + \" characters.\", { exception: exception }, true);\r\n }\r\n }\r\n return exceptionTrunc || exception;\r\n}\r\nexport function dataSanitizeProperties(logger, properties) {\r\n if (properties) {\r\n var tempProps_1 = {};\r\n objForEachKey(properties, function (prop, value) {\r\n if (isObject(value) && hasJSON()) {\r\n // Stringify any part C properties\r\n try {\r\n value = getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](value);\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 49 /* _eInternalMessageId.CannotSerializeObjectNonSerializable */, \"custom property is not valid\", { exception: e }, true);\r\n }\r\n }\r\n value = dataSanitizeString(logger, value, 8192 /* DataSanitizerValues.MAX_PROPERTY_LENGTH */);\r\n prop = dataSanitizeKeyAndAddUniqueness(logger, prop, tempProps_1);\r\n tempProps_1[prop] = value;\r\n });\r\n properties = tempProps_1;\r\n }\r\n return properties;\r\n}\r\nexport function dataSanitizeMeasurements(logger, measurements) {\r\n if (measurements) {\r\n var tempMeasurements_1 = {};\r\n objForEachKey(measurements, function (measure, value) {\r\n measure = dataSanitizeKeyAndAddUniqueness(logger, measure, tempMeasurements_1);\r\n tempMeasurements_1[measure] = value;\r\n });\r\n measurements = tempMeasurements_1;\r\n }\r\n return measurements;\r\n}\r\nexport function dataSanitizeId(logger, id) {\r\n return id ? dataSanitizeInput(logger, id, 128 /* DataSanitizerValues.MAX_ID_LENGTH */, 69 /* _eInternalMessageId.IdTooLong */)[_DYN_TO_STRING /* @min:%2etoString */]() : id;\r\n}\r\nexport function dataSanitizeInput(logger, input, maxLength, _msgId) {\r\n var inputTrunc;\r\n if (input) {\r\n input = strTrim(asString(input));\r\n if (input[_DYN_LENGTH /* @min:%2elength */] > maxLength) {\r\n inputTrunc = strSubstring(input, 0, maxLength);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, _msgId, \"input is too long, it has been truncated to \" + maxLength + \" characters.\", { data: input }, true);\r\n }\r\n }\r\n return inputTrunc || input;\r\n}\r\nexport function dsPadNumber(num) {\r\n var s = \"00\" + num;\r\n return strSubstr(s, s[_DYN_LENGTH /* @min:%2elength */] - 3);\r\n}\r\n//# sourceMappingURL=DataSanitizer.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nvar Event = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the EventTelemetry object\r\n */\r\n function Event(logger, name, properties, measurements) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n name: 1 /* FieldType.Required */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n Event.envelopeType = \"Microsoft.ApplicationInsights.{0}.Event\";\r\n Event.dataType = \"EventData\";\r\n return Event;\r\n}());\r\nexport { Event };\r\n//# sourceMappingURL=Event.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_MEASUREMENTS, _DYN_MESSAGE, _DYN_PROPERTIES, _DYN_SEVERITY_LEVEL } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeMessage, dataSanitizeProperties } from \"./Common/DataSanitizer\";\r\nvar Trace = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the TraceTelemetry object\r\n */\r\n function Trace(logger, message, severityLevel, properties, measurements) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n message: 1 /* FieldType.Required */,\r\n severityLevel: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n message = message || strNotSpecified;\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] = dataSanitizeMessage(logger, message);\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n if (severityLevel) {\r\n _self[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */] = severityLevel;\r\n }\r\n }\r\n Trace.envelopeType = \"Microsoft.ApplicationInsights.{0}.Message\";\r\n Trace.dataType = \"MessageData\";\r\n return Trace;\r\n}());\r\nexport { Trace };\r\n//# sourceMappingURL=Trace.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { msToTimeSpan } from \"../HelperFuncs\";\r\nimport { _DYN_DURATION, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { dataSanitizeId, dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nvar PageView = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the PageEventTelemetry object\r\n */\r\n function PageView(logger, name, url, durationMs, properties, measurements, id) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n name: 0 /* FieldType.Default */,\r\n url: 0 /* FieldType.Default */,\r\n duration: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */,\r\n id: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self.id = dataSanitizeId(logger, id);\r\n _self.url = dataSanitizeUrl(logger, url);\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n if (!isNaN(durationMs)) {\r\n _self[_DYN_DURATION /* @min:%2eduration */] = msToTimeSpan(durationMs);\r\n }\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n PageView.envelopeType = \"Microsoft.ApplicationInsights.{0}.Pageview\";\r\n PageView.dataType = \"PageviewData\";\r\n return PageView;\r\n}());\r\nexport { PageView };\r\n//# sourceMappingURL=PageView.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_DURATION, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES, _DYN_RECEIVED_RESPONSE } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nvar PageViewPerformance = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the PageEventTelemetry object\r\n */\r\n function PageViewPerformance(logger, name, url, unused, properties, measurements, cs4BaseData) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n name: 0 /* FieldType.Default */,\r\n url: 0 /* FieldType.Default */,\r\n duration: 0 /* FieldType.Default */,\r\n perfTotal: 0 /* FieldType.Default */,\r\n networkConnect: 0 /* FieldType.Default */,\r\n sentRequest: 0 /* FieldType.Default */,\r\n receivedResponse: 0 /* FieldType.Default */,\r\n domProcessing: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self.url = dataSanitizeUrl(logger, url);\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n if (cs4BaseData) {\r\n _self.domProcessing = cs4BaseData.domProcessing;\r\n _self[_DYN_DURATION /* @min:%2eduration */] = cs4BaseData[_DYN_DURATION /* @min:%2eduration */];\r\n _self.networkConnect = cs4BaseData.networkConnect;\r\n _self.perfTotal = cs4BaseData.perfTotal;\r\n _self[_DYN_RECEIVED_RESPONSE /* @min:%2ereceivedResponse */] = cs4BaseData[_DYN_RECEIVED_RESPONSE /* @min:%2ereceivedResponse */];\r\n _self.sentRequest = cs4BaseData.sentRequest;\r\n }\r\n }\r\n PageViewPerformance.envelopeType = \"Microsoft.ApplicationInsights.{0}.PageviewPerformance\";\r\n PageViewPerformance.dataType = \"PageviewPerformanceData\";\r\n return PageViewPerformance;\r\n}());\r\nexport { PageViewPerformance };\r\n//# sourceMappingURL=PageViewPerformance.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __assign } from \"tslib\";\r\nimport { arrForEach, arrMap, isArray, isError, isFunction, isNullOrUndefined, isObject, isString, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { getWindow, strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_ASSEMBLY, _DYN_EXCEPTIONS, _DYN_FILE_NAME, _DYN_HAS_FULL_STACK, _DYN_IS_MANUAL, _DYN_LENGTH, _DYN_LEVEL, _DYN_LINE, _DYN_MEASUREMENTS, _DYN_MESSAGE, _DYN_METHOD, _DYN_NAME, _DYN_PARSED_STACK, _DYN_PROBLEM_GROUP, _DYN_PROPERTIES, _DYN_PUSH, _DYN_SEVERITY_LEVEL, _DYN_SIZE_IN_BYTES, _DYN_SPLIT, _DYN_STRINGIFY, _DYN_TO_STRING, _DYN_TYPE_NAME, _DYN__CREATE_FROM_INTERFA1 } from \"../__DynamicConstants\";\r\nimport { dataSanitizeException, dataSanitizeMeasurements, dataSanitizeMessage, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nvar NoMethod = \"\";\r\nvar strError = \"error\";\r\nvar strStack = \"stack\";\r\nvar strStackDetails = \"stackDetails\";\r\nvar strErrorSrc = \"errorSrc\";\r\nvar strMessage = \"message\";\r\nvar strDescription = \"description\";\r\nfunction _stringify(value, convertToString) {\r\n var result = value;\r\n if (result && !isString(result)) {\r\n if (JSON && JSON[_DYN_STRINGIFY /* @min:%2estringify */]) {\r\n result = JSON[_DYN_STRINGIFY /* @min:%2estringify */](value);\r\n if (convertToString && (!result || result === \"{}\")) {\r\n if (isFunction(value[_DYN_TO_STRING /* @min:%2etoString */])) {\r\n result = value[_DYN_TO_STRING /* @min:%2etoString */]();\r\n }\r\n else {\r\n result = \"\" + value;\r\n }\r\n }\r\n }\r\n else {\r\n result = \"\" + value + \" - (Missing JSON.stringify)\";\r\n }\r\n }\r\n return result || \"\";\r\n}\r\nfunction _formatMessage(theEvent, errorType) {\r\n var evtMessage = theEvent;\r\n if (theEvent) {\r\n if (evtMessage && !isString(evtMessage)) {\r\n evtMessage = theEvent[strMessage] || theEvent[strDescription] || evtMessage;\r\n }\r\n // Make sure the message is a string\r\n if (evtMessage && !isString(evtMessage)) {\r\n // tslint:disable-next-line: prefer-conditional-expression\r\n evtMessage = _stringify(evtMessage, true);\r\n }\r\n if (theEvent[\"filename\"]) {\r\n // Looks like an event object with filename\r\n evtMessage = evtMessage + \" @\" + (theEvent[\"filename\"] || \"\") + \":\" + (theEvent[\"lineno\"] || \"?\") + \":\" + (theEvent[\"colno\"] || \"?\");\r\n }\r\n }\r\n // Automatically add the error type to the message if it does already appear to be present\r\n if (errorType && errorType !== \"String\" && errorType !== \"Object\" && errorType !== \"Error\" && strIndexOf(evtMessage || \"\", errorType) === -1) {\r\n evtMessage = errorType + \": \" + evtMessage;\r\n }\r\n return evtMessage || \"\";\r\n}\r\nfunction _isExceptionDetailsInternal(value) {\r\n try {\r\n if (isObject(value)) {\r\n return \"hasFullStack\" in value && \"typeName\" in value;\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n return false;\r\n}\r\nfunction _isExceptionInternal(value) {\r\n try {\r\n if (isObject(value)) {\r\n return (\"ver\" in value && \"exceptions\" in value && \"properties\" in value);\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n return false;\r\n}\r\nfunction _isStackDetails(details) {\r\n return details && details.src && isString(details.src) && details.obj && isArray(details.obj);\r\n}\r\nfunction _convertStackObj(errorStack) {\r\n var src = errorStack || \"\";\r\n if (!isString(src)) {\r\n if (isString(src[strStack])) {\r\n src = src[strStack];\r\n }\r\n else {\r\n src = \"\" + src;\r\n }\r\n }\r\n var items = src[_DYN_SPLIT /* @min:%2esplit */](\"\\n\");\r\n return {\r\n src: src,\r\n obj: items\r\n };\r\n}\r\nfunction _getOperaStack(errorMessage) {\r\n var stack = [];\r\n var lines = errorMessage[_DYN_SPLIT /* @min:%2esplit */](\"\\n\");\r\n for (var lp = 0; lp < lines[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var entry = lines[lp];\r\n if (lines[lp + 1]) {\r\n entry += \"@\" + lines[lp + 1];\r\n lp++;\r\n }\r\n stack[_DYN_PUSH /* @min:%2epush */](entry);\r\n }\r\n return {\r\n src: errorMessage,\r\n obj: stack\r\n };\r\n}\r\nfunction _getStackFromErrorObj(errorObj) {\r\n var details = null;\r\n if (errorObj) {\r\n try {\r\n /* Using bracket notation is support older browsers (IE 7/8 -- dont remember the version) that throw when using dot\r\n notation for undefined objects and we don't want to loose the error from being reported */\r\n if (errorObj[strStack]) {\r\n // Chrome/Firefox\r\n details = _convertStackObj(errorObj[strStack]);\r\n }\r\n else if (errorObj[strError] && errorObj[strError][strStack]) {\r\n // Edge error event provides the stack and error object\r\n details = _convertStackObj(errorObj[strError][strStack]);\r\n }\r\n else if (errorObj[\"exception\"] && errorObj.exception[strStack]) {\r\n details = _convertStackObj(errorObj.exception[strStack]);\r\n }\r\n else if (_isStackDetails(errorObj)) {\r\n details = errorObj;\r\n }\r\n else if (_isStackDetails(errorObj[strStackDetails])) {\r\n details = errorObj[strStackDetails];\r\n }\r\n else if (getWindow() && getWindow()[\"opera\"] && errorObj[strMessage]) {\r\n // Opera\r\n details = _getOperaStack(errorObj[_DYN_MESSAGE /* @min:%2emessage */]);\r\n }\r\n else if (errorObj[\"reason\"] && errorObj.reason[strStack]) {\r\n // UnhandledPromiseRejection\r\n details = _convertStackObj(errorObj.reason[strStack]);\r\n }\r\n else if (isString(errorObj)) {\r\n details = _convertStackObj(errorObj);\r\n }\r\n else {\r\n var evtMessage = errorObj[strMessage] || errorObj[strDescription] || \"\";\r\n if (isString(errorObj[strErrorSrc])) {\r\n if (evtMessage) {\r\n evtMessage += \"\\n\";\r\n }\r\n evtMessage += \" from \" + errorObj[strErrorSrc];\r\n }\r\n if (evtMessage) {\r\n details = _convertStackObj(evtMessage);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // something unexpected happened so to avoid failing to report any error lets swallow the exception\r\n // and fallback to the callee/caller method\r\n details = _convertStackObj(e);\r\n }\r\n }\r\n return details || {\r\n src: \"\",\r\n obj: null\r\n };\r\n}\r\nfunction _formatStackTrace(stackDetails) {\r\n var stack = \"\";\r\n if (stackDetails) {\r\n if (stackDetails.obj) {\r\n arrForEach(stackDetails.obj, function (entry) {\r\n stack += entry + \"\\n\";\r\n });\r\n }\r\n else {\r\n stack = stackDetails.src || \"\";\r\n }\r\n }\r\n return stack;\r\n}\r\nfunction _parseStack(stack) {\r\n var parsedStack;\r\n var frames = stack.obj;\r\n if (frames && frames[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n parsedStack = [];\r\n var level_1 = 0;\r\n var totalSizeInBytes_1 = 0;\r\n arrForEach(frames, function (frame) {\r\n var theFrame = frame[_DYN_TO_STRING /* @min:%2etoString */]();\r\n if (_StackFrame.regex.test(theFrame)) {\r\n var parsedFrame = new _StackFrame(theFrame, level_1++);\r\n totalSizeInBytes_1 += parsedFrame[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */];\r\n parsedStack[_DYN_PUSH /* @min:%2epush */](parsedFrame);\r\n }\r\n });\r\n // DP Constraint - exception parsed stack must be < 32KB\r\n // remove frames from the middle to meet the threshold\r\n var exceptionParsedStackThreshold = 32 * 1024;\r\n if (totalSizeInBytes_1 > exceptionParsedStackThreshold) {\r\n var left = 0;\r\n var right = parsedStack[_DYN_LENGTH /* @min:%2elength */] - 1;\r\n var size = 0;\r\n var acceptedLeft = left;\r\n var acceptedRight = right;\r\n while (left < right) {\r\n // check size\r\n var lSize = parsedStack[left][_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */];\r\n var rSize = parsedStack[right][_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */];\r\n size += lSize + rSize;\r\n if (size > exceptionParsedStackThreshold) {\r\n // remove extra frames from the middle\r\n var howMany = acceptedRight - acceptedLeft + 1;\r\n parsedStack.splice(acceptedLeft, howMany);\r\n break;\r\n }\r\n // update pointers\r\n acceptedLeft = left;\r\n acceptedRight = right;\r\n left++;\r\n right--;\r\n }\r\n }\r\n }\r\n return parsedStack;\r\n}\r\nfunction _getErrorType(errorType) {\r\n // Gets the Error Type by passing the constructor (used to get the true type of native error object).\r\n var typeName = \"\";\r\n if (errorType) {\r\n typeName = errorType.typeName || errorType[_DYN_NAME /* @min:%2ename */] || \"\";\r\n if (!typeName) {\r\n try {\r\n var funcNameRegex = /function (.{1,200})\\(/;\r\n var results = (funcNameRegex).exec((errorType).constructor[_DYN_TO_STRING /* @min:%2etoString */]());\r\n typeName = (results && results[_DYN_LENGTH /* @min:%2elength */] > 1) ? results[1] : \"\";\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty -- Ignoring any failures as nothing we can do\r\n }\r\n }\r\n }\r\n return typeName;\r\n}\r\n/**\r\n * Formats the provided errorObj for display and reporting, it may be a String, Object, integer or undefined depending on the browser.\r\n * @param errorObj - The supplied errorObj\r\n */\r\nexport function _formatErrorCode(errorObj) {\r\n if (errorObj) {\r\n try {\r\n if (!isString(errorObj)) {\r\n var errorType = _getErrorType(errorObj);\r\n var result = _stringify(errorObj, false);\r\n if (!result || result === \"{}\") {\r\n if (errorObj[strError]) {\r\n // Looks like an MS Error Event\r\n errorObj = errorObj[strError];\r\n errorType = _getErrorType(errorObj);\r\n }\r\n result = _stringify(errorObj, true);\r\n }\r\n if (strIndexOf(result, errorType) !== 0 && errorType !== \"String\") {\r\n return errorType + \":\" + result;\r\n }\r\n return result;\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty -- Ignoring any failures as nothing we can do\r\n }\r\n }\r\n // Fallback to just letting the object format itself into a string\r\n return \"\" + (errorObj || \"\");\r\n}\r\nvar Exception = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the ExceptionTelemetry object\r\n */\r\n function Exception(logger, exception, properties, measurements, severityLevel, id) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n exceptions: 1 /* FieldType.Required */,\r\n severityLevel: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2; // TODO: handle the CS\"4.0\" ==> breeze 2 conversion in a better way\r\n if (!_isExceptionInternal(exception)) {\r\n if (!properties) {\r\n properties = {};\r\n }\r\n if (id) {\r\n properties.id = id;\r\n }\r\n _self[_DYN_EXCEPTIONS /* @min:%2eexceptions */] = [new _ExceptionDetails(logger, exception, properties)];\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n if (severityLevel) {\r\n _self[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */] = severityLevel;\r\n }\r\n if (id) {\r\n _self.id = id;\r\n }\r\n }\r\n else {\r\n _self[_DYN_EXCEPTIONS /* @min:%2eexceptions */] = exception[_DYN_EXCEPTIONS /* @min:%2eexceptions */] || [];\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = exception[_DYN_PROPERTIES /* @min:%2eproperties */];\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = exception[_DYN_MEASUREMENTS /* @min:%2emeasurements */];\r\n if (exception[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */]) {\r\n _self[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */] = exception[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */];\r\n }\r\n if (exception.id) {\r\n _self.id = exception.id;\r\n exception[_DYN_PROPERTIES /* @min:%2eproperties */].id = exception.id;\r\n }\r\n if (exception[_DYN_PROBLEM_GROUP /* @min:%2eproblemGroup */]) {\r\n _self[_DYN_PROBLEM_GROUP /* @min:%2eproblemGroup */] = exception[_DYN_PROBLEM_GROUP /* @min:%2eproblemGroup */];\r\n }\r\n // bool/int types, use isNullOrUndefined\r\n if (!isNullOrUndefined(exception[_DYN_IS_MANUAL /* @min:%2eisManual */])) {\r\n _self[_DYN_IS_MANUAL /* @min:%2eisManual */] = exception[_DYN_IS_MANUAL /* @min:%2eisManual */];\r\n }\r\n }\r\n }\r\n Exception.CreateAutoException = function (message, url, lineNumber, columnNumber, error, evt, stack, errorSrc) {\r\n var _a;\r\n var errorType = _getErrorType(error || evt || message);\r\n return _a = {},\r\n _a[_DYN_MESSAGE /* @min:message */] = _formatMessage(message, errorType),\r\n _a.url = url,\r\n _a.lineNumber = lineNumber,\r\n _a.columnNumber = columnNumber,\r\n _a.error = _formatErrorCode(error || evt || message),\r\n _a.evt = _formatErrorCode(evt || message),\r\n _a[_DYN_TYPE_NAME /* @min:typeName */] = errorType,\r\n _a.stackDetails = _getStackFromErrorObj(stack || error || evt),\r\n _a.errorSrc = errorSrc,\r\n _a;\r\n };\r\n Exception.CreateFromInterface = function (logger, exception, properties, measurements) {\r\n var exceptions = exception[_DYN_EXCEPTIONS /* @min:%2eexceptions */]\r\n && arrMap(exception[_DYN_EXCEPTIONS /* @min:%2eexceptions */], function (ex) { return _ExceptionDetails[_DYN__CREATE_FROM_INTERFA1 /* @min:%2eCreateFromInterface */](logger, ex); });\r\n var exceptionData = new Exception(logger, __assign(__assign({}, exception), { exceptions: exceptions }), properties, measurements);\r\n return exceptionData;\r\n };\r\n Exception.prototype.toInterface = function () {\r\n var _a;\r\n var _b = this, exceptions = _b.exceptions, properties = _b.properties, measurements = _b.measurements, severityLevel = _b.severityLevel, problemGroup = _b.problemGroup, id = _b.id, isManual = _b.isManual;\r\n var exceptionDetailsInterface = exceptions instanceof Array\r\n && arrMap(exceptions, function (exception) { return exception.toInterface(); })\r\n || undefined;\r\n return _a = {\r\n ver: \"4.0\"\r\n },\r\n _a[_DYN_EXCEPTIONS /* @min:exceptions */] = exceptionDetailsInterface,\r\n _a.severityLevel = severityLevel,\r\n _a.properties = properties,\r\n _a.measurements = measurements,\r\n _a.problemGroup = problemGroup,\r\n _a.id = id,\r\n _a.isManual = isManual,\r\n _a;\r\n };\r\n /**\r\n * Creates a simple exception with 1 stack frame. Useful for manual constracting of exception.\r\n */\r\n Exception.CreateSimpleException = function (message, typeName, assembly, fileName, details, line) {\r\n var _a;\r\n return {\r\n exceptions: [\r\n (_a = {},\r\n _a[_DYN_HAS_FULL_STACK /* @min:hasFullStack */] = true,\r\n _a.message = message,\r\n _a.stack = details,\r\n _a.typeName = typeName,\r\n _a)\r\n ]\r\n };\r\n };\r\n Exception.envelopeType = \"Microsoft.ApplicationInsights.{0}.Exception\";\r\n Exception.dataType = \"ExceptionData\";\r\n Exception.formatError = _formatErrorCode;\r\n return Exception;\r\n}());\r\nexport { Exception };\r\nvar _ExceptionDetails = /** @class */ (function () {\r\n function _ExceptionDetails(logger, exception, properties) {\r\n this.aiDataContract = {\r\n id: 0 /* FieldType.Default */,\r\n outerId: 0 /* FieldType.Default */,\r\n typeName: 1 /* FieldType.Required */,\r\n message: 1 /* FieldType.Required */,\r\n hasFullStack: 0 /* FieldType.Default */,\r\n stack: 0 /* FieldType.Default */,\r\n parsedStack: 2 /* FieldType.Array */\r\n };\r\n var _self = this;\r\n if (!_isExceptionDetailsInternal(exception)) {\r\n var error = exception;\r\n var evt = error && error.evt;\r\n if (!isError(error)) {\r\n error = error[strError] || evt || error;\r\n }\r\n _self[_DYN_TYPE_NAME /* @min:%2etypeName */] = dataSanitizeString(logger, _getErrorType(error)) || strNotSpecified;\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] = dataSanitizeMessage(logger, _formatMessage(exception || error, _self[_DYN_TYPE_NAME /* @min:%2etypeName */])) || strNotSpecified;\r\n var stack = exception[strStackDetails] || _getStackFromErrorObj(exception);\r\n _self[_DYN_PARSED_STACK /* @min:%2eparsedStack */] = _parseStack(stack);\r\n // after parsedStack is inited, iterate over each frame object, sanitize its assembly field\r\n if (isArray(_self[_DYN_PARSED_STACK /* @min:%2eparsedStack */])) {\r\n arrMap(_self[_DYN_PARSED_STACK /* @min:%2eparsedStack */], function (frame) {\r\n frame[_DYN_ASSEMBLY /* @min:%2eassembly */] = dataSanitizeString(logger, frame[_DYN_ASSEMBLY /* @min:%2eassembly */]);\r\n frame[_DYN_FILE_NAME /* @min:%2efileName */] = dataSanitizeString(logger, frame[_DYN_FILE_NAME /* @min:%2efileName */]);\r\n });\r\n }\r\n _self[strStack] = dataSanitizeException(logger, _formatStackTrace(stack));\r\n _self.hasFullStack = isArray(_self.parsedStack) && _self.parsedStack[_DYN_LENGTH /* @min:%2elength */] > 0;\r\n if (properties) {\r\n properties[_DYN_TYPE_NAME /* @min:%2etypeName */] = properties[_DYN_TYPE_NAME /* @min:%2etypeName */] || _self[_DYN_TYPE_NAME /* @min:%2etypeName */];\r\n }\r\n }\r\n else {\r\n _self[_DYN_TYPE_NAME /* @min:%2etypeName */] = exception[_DYN_TYPE_NAME /* @min:%2etypeName */];\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] = exception[_DYN_MESSAGE /* @min:%2emessage */];\r\n _self[strStack] = exception[strStack];\r\n _self[_DYN_PARSED_STACK /* @min:%2eparsedStack */] = exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */] || [];\r\n _self[_DYN_HAS_FULL_STACK /* @min:%2ehasFullStack */] = exception[_DYN_HAS_FULL_STACK /* @min:%2ehasFullStack */];\r\n }\r\n }\r\n _ExceptionDetails.prototype.toInterface = function () {\r\n var _a;\r\n var _self = this;\r\n var parsedStack = _self[_DYN_PARSED_STACK /* @min:%2eparsedStack */] instanceof Array\r\n && arrMap(_self[_DYN_PARSED_STACK /* @min:%2eparsedStack */], function (frame) { return frame.toInterface(); });\r\n var exceptionDetailsInterface = (_a = {\r\n id: _self.id,\r\n outerId: _self.outerId,\r\n typeName: _self[_DYN_TYPE_NAME /* @min:%2etypeName */],\r\n message: _self[_DYN_MESSAGE /* @min:%2emessage */],\r\n hasFullStack: _self[_DYN_HAS_FULL_STACK /* @min:%2ehasFullStack */],\r\n stack: _self[strStack]\r\n },\r\n _a[_DYN_PARSED_STACK /* @min:parsedStack */] = parsedStack || undefined,\r\n _a);\r\n return exceptionDetailsInterface;\r\n };\r\n _ExceptionDetails.CreateFromInterface = function (logger, exception) {\r\n var parsedStack = (exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */] instanceof Array\r\n && arrMap(exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */], function (frame) { return _StackFrame[_DYN__CREATE_FROM_INTERFA1 /* @min:%2eCreateFromInterface */](frame); }))\r\n || exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */];\r\n var exceptionDetails = new _ExceptionDetails(logger, __assign(__assign({}, exception), { parsedStack: parsedStack }));\r\n return exceptionDetails;\r\n };\r\n return _ExceptionDetails;\r\n}());\r\nexport { _ExceptionDetails };\r\nvar _StackFrame = /** @class */ (function () {\r\n function _StackFrame(sourceFrame, level) {\r\n this.aiDataContract = {\r\n level: 1 /* FieldType.Required */,\r\n method: 1 /* FieldType.Required */,\r\n assembly: 0 /* FieldType.Default */,\r\n fileName: 0 /* FieldType.Default */,\r\n line: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */] = 0;\r\n // Not converting this to isString() as typescript uses this logic to \"understand\" the different\r\n // types for the 2 different code paths\r\n if (typeof sourceFrame === \"string\") {\r\n var frame = sourceFrame;\r\n _self[_DYN_LEVEL /* @min:%2elevel */] = level;\r\n _self[_DYN_METHOD /* @min:%2emethod */] = NoMethod;\r\n _self[_DYN_ASSEMBLY /* @min:%2eassembly */] = strTrim(frame);\r\n _self[_DYN_FILE_NAME /* @min:%2efileName */] = \"\";\r\n _self[_DYN_LINE /* @min:%2eline */] = 0;\r\n var matches = frame.match(_StackFrame.regex);\r\n if (matches && matches[_DYN_LENGTH /* @min:%2elength */] >= 5) {\r\n _self[_DYN_METHOD /* @min:%2emethod */] = strTrim(matches[2]) || _self[_DYN_METHOD /* @min:%2emethod */];\r\n _self[_DYN_FILE_NAME /* @min:%2efileName */] = strTrim(matches[4]);\r\n _self[_DYN_LINE /* @min:%2eline */] = parseInt(matches[5]) || 0;\r\n }\r\n }\r\n else {\r\n _self[_DYN_LEVEL /* @min:%2elevel */] = sourceFrame[_DYN_LEVEL /* @min:%2elevel */];\r\n _self[_DYN_METHOD /* @min:%2emethod */] = sourceFrame[_DYN_METHOD /* @min:%2emethod */];\r\n _self[_DYN_ASSEMBLY /* @min:%2eassembly */] = sourceFrame[_DYN_ASSEMBLY /* @min:%2eassembly */];\r\n _self[_DYN_FILE_NAME /* @min:%2efileName */] = sourceFrame[_DYN_FILE_NAME /* @min:%2efileName */];\r\n _self[_DYN_LINE /* @min:%2eline */] = sourceFrame[_DYN_LINE /* @min:%2eline */];\r\n _self[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */] = 0;\r\n }\r\n _self.sizeInBytes += _self.method[_DYN_LENGTH /* @min:%2elength */];\r\n _self.sizeInBytes += _self.fileName[_DYN_LENGTH /* @min:%2elength */];\r\n _self.sizeInBytes += _self.assembly[_DYN_LENGTH /* @min:%2elength */];\r\n // todo: these might need to be removed depending on how the back-end settles on their size calculation\r\n _self[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */] += _StackFrame.baseSize;\r\n _self.sizeInBytes += _self.level.toString()[_DYN_LENGTH /* @min:%2elength */];\r\n _self.sizeInBytes += _self.line.toString()[_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n _StackFrame.CreateFromInterface = function (frame) {\r\n return new _StackFrame(frame, null /* level is available in frame interface */);\r\n };\r\n _StackFrame.prototype.toInterface = function () {\r\n var _self = this;\r\n return {\r\n level: _self[_DYN_LEVEL /* @min:%2elevel */],\r\n method: _self[_DYN_METHOD /* @min:%2emethod */],\r\n assembly: _self[_DYN_ASSEMBLY /* @min:%2eassembly */],\r\n fileName: _self[_DYN_FILE_NAME /* @min:%2efileName */],\r\n line: _self[_DYN_LINE /* @min:%2eline */]\r\n };\r\n };\r\n // regex to match stack frames from ie/chrome/ff\r\n // methodName=$2, fileName=$4, lineNo=$5, column=$6\r\n _StackFrame.regex = /^([\\s]+at)?[\\s]{0,50}([^\\@\\()]+?)[\\s]{0,50}(\\@|\\()([^\\(\\n]+):([0-9]+):([0-9]+)(\\)?)$/;\r\n _StackFrame.baseSize = 58; // '{\"method\":\"\",\"level\":,\"assembly\":\"\",\"fileName\":\"\",\"line\":}'.length\r\n return _StackFrame;\r\n}());\r\nexport { _StackFrame };\r\n//# sourceMappingURL=Exception.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar DataPoint = /** @class */ (function () {\r\n function DataPoint() {\r\n /**\r\n * The data contract for serializing this object.\r\n */\r\n this.aiDataContract = {\r\n name: 1 /* FieldType.Required */,\r\n kind: 0 /* FieldType.Default */,\r\n value: 1 /* FieldType.Required */,\r\n count: 0 /* FieldType.Default */,\r\n min: 0 /* FieldType.Default */,\r\n max: 0 /* FieldType.Default */,\r\n stdDev: 0 /* FieldType.Default */\r\n };\r\n /**\r\n * Metric type. Single measurement or the aggregated value.\r\n */\r\n this.kind = 0 /* DataPointType.Measurement */;\r\n }\r\n return DataPoint;\r\n}());\r\nexport { DataPoint };\r\n//# sourceMappingURL=DataPoint.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_COUNT, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { DataPoint } from \"./Common/DataPoint\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nvar Metric = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the MetricTelemetry object\r\n */\r\n function Metric(logger, name, value, count, min, max, stdDev, properties, measurements) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n metrics: 1 /* FieldType.Required */,\r\n properties: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n var dataPoint = new DataPoint();\r\n dataPoint[_DYN_COUNT /* @min:%2ecount */] = count > 0 ? count : undefined;\r\n dataPoint.max = isNaN(max) || max === null ? undefined : max;\r\n dataPoint.min = isNaN(min) || min === null ? undefined : min;\r\n dataPoint[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n dataPoint.value = value;\r\n dataPoint.stdDev = isNaN(stdDev) || stdDev === null ? undefined : stdDev;\r\n _self.metrics = [dataPoint];\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n Metric.envelopeType = \"Microsoft.ApplicationInsights.{0}.Metric\";\r\n Metric.dataType = \"MetricData\";\r\n return Metric;\r\n}());\r\nexport { Metric };\r\n//# sourceMappingURL=Metric.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { getDocument, isString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_LENGTH, _DYN_PATHNAME, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\nvar _document = getDocument() || {};\r\nvar _htmlAnchorIdx = 0;\r\n// Use an array of temporary values as it's possible for multiple calls to parseUrl() will be called with different URLs\r\n// Using a cache size of 5 for now as it current depth usage is at least 2, so adding a minor buffer to handle future updates\r\nvar _htmlAnchorElement = [null, null, null, null, null];\r\nexport function urlParseUrl(url) {\r\n var anchorIdx = _htmlAnchorIdx;\r\n var anchorCache = _htmlAnchorElement;\r\n var tempAnchor = anchorCache[anchorIdx];\r\n if (!_document.createElement) {\r\n // Always create the temp instance if createElement is not available\r\n tempAnchor = { host: urlParseHost(url, true) };\r\n }\r\n else if (!anchorCache[anchorIdx]) {\r\n // Create and cache the unattached anchor instance\r\n tempAnchor = anchorCache[anchorIdx] = _document.createElement(\"a\");\r\n }\r\n tempAnchor.href = url;\r\n // Move the cache index forward\r\n anchorIdx++;\r\n if (anchorIdx >= anchorCache[_DYN_LENGTH /* @min:%2elength */]) {\r\n anchorIdx = 0;\r\n }\r\n _htmlAnchorIdx = anchorIdx;\r\n return tempAnchor;\r\n}\r\nexport function urlGetAbsoluteUrl(url) {\r\n var result;\r\n var a = urlParseUrl(url);\r\n if (a) {\r\n result = a.href;\r\n }\r\n return result;\r\n}\r\nexport function urlGetPathName(url) {\r\n var result;\r\n var a = urlParseUrl(url);\r\n if (a) {\r\n result = a[_DYN_PATHNAME /* @min:%2epathname */];\r\n }\r\n return result;\r\n}\r\nexport function urlGetCompleteUrl(method, absoluteUrl) {\r\n if (method) {\r\n return method.toUpperCase() + \" \" + absoluteUrl;\r\n }\r\n return absoluteUrl;\r\n}\r\n// Fallback method to grab host from url if document.createElement method is not available\r\nexport function urlParseHost(url, inclPort) {\r\n var fullHost = urlParseFullHost(url, inclPort) || \"\";\r\n if (fullHost) {\r\n var match = fullHost.match(/(www\\d{0,5}\\.)?([^\\/:]{1,256})(:\\d{1,20})?/i);\r\n if (match != null && match[_DYN_LENGTH /* @min:%2elength */] > 3 && isString(match[2]) && match[2][_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n return match[2] + (match[3] || \"\");\r\n }\r\n }\r\n return fullHost;\r\n}\r\nexport function urlParseFullHost(url, inclPort) {\r\n var result = null;\r\n if (url) {\r\n var match = url.match(/(\\w{1,150}):\\/\\/([^\\/:]{1,256})(:\\d{1,20})?/i);\r\n if (match != null && match[_DYN_LENGTH /* @min:%2elength */] > 2 && isString(match[2]) && match[2][_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n result = match[2] || \"\";\r\n if (inclPort && match[_DYN_LENGTH /* @min:%2elength */] > 2) {\r\n var protocol = (match[1] || \"\")[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n var port = match[3] || \"\";\r\n // IE includes the standard port so pass it off if it's the same as the protocol\r\n if (protocol === \"http\" && port === \":80\") {\r\n port = \"\";\r\n }\r\n else if (protocol === \"https\" && port === \":443\") {\r\n port = \"\";\r\n }\r\n result += port;\r\n }\r\n }\r\n }\r\n return result;\r\n}\r\n//# sourceMappingURL=UrlHelperFuncs.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { arrForEach, arrIndexOf, dateNow, getPerformance, isNullOrUndefined, isValidSpanId, isValidTraceId } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH } from \"./Constants\";\r\nimport { RequestHeaders } from \"./RequestResponseHeaders\";\r\nimport { dataSanitizeString } from \"./Telemetry/Common/DataSanitizer\";\r\nimport { urlParseFullHost, urlParseUrl } from \"./UrlHelperFuncs\";\r\nimport { _DYN_CORRELATION_HEADER_E0, _DYN_LENGTH, _DYN_NAME, _DYN_PATHNAME, _DYN_SPLIT, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\n// listing only non-geo specific locations\r\nvar _internalEndpoints = [\r\n DEFAULT_BREEZE_ENDPOINT + DEFAULT_BREEZE_PATH,\r\n \"https://breeze.aimon.applicationinsights.io\" + DEFAULT_BREEZE_PATH,\r\n \"https://dc-int.services.visualstudio.com\" + DEFAULT_BREEZE_PATH\r\n];\r\nvar _correlationIdPrefix = \"cid-v1:\";\r\nexport function isInternalApplicationInsightsEndpoint(endpointUrl) {\r\n return arrIndexOf(_internalEndpoints, endpointUrl[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]()) !== -1;\r\n}\r\nexport function correlationIdSetPrefix(prefix) {\r\n _correlationIdPrefix = prefix;\r\n}\r\nexport function correlationIdGetPrefix() {\r\n return _correlationIdPrefix;\r\n}\r\n/**\r\n * Checks if a request url is not on a excluded domain list and if it is safe to add correlation headers.\r\n * Headers are always included if the current domain matches the request domain. If they do not match (CORS),\r\n * they are regex-ed across correlationHeaderDomains and correlationHeaderExcludedDomains to determine if headers are included.\r\n * Some environments don't give information on currentHost via window.location.host (e.g. Cordova). In these cases, the user must\r\n * manually supply domains to include correlation headers on. Else, no headers will be included at all.\r\n */\r\nexport function correlationIdCanIncludeCorrelationHeader(config, requestUrl, currentHost) {\r\n if (!requestUrl || (config && config.disableCorrelationHeaders)) {\r\n return false;\r\n }\r\n if (config && config[_DYN_CORRELATION_HEADER_E0 /* @min:%2ecorrelationHeaderExcludePatterns */]) {\r\n for (var i = 0; i < config.correlationHeaderExcludePatterns[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n if (config[_DYN_CORRELATION_HEADER_E0 /* @min:%2ecorrelationHeaderExcludePatterns */][i].test(requestUrl)) {\r\n return false;\r\n }\r\n }\r\n }\r\n var requestHost = urlParseUrl(requestUrl).host[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n if (requestHost && (strIndexOf(requestHost, \":443\") !== -1 || strIndexOf(requestHost, \":80\") !== -1)) {\r\n // [Bug #1260] IE can include the port even for http and https URLs so if present\r\n // try and parse it to remove if it matches the default protocol port\r\n requestHost = (urlParseFullHost(requestUrl, true) || \"\")[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n }\r\n if ((!config || !config.enableCorsCorrelation) && (requestHost && requestHost !== currentHost)) {\r\n return false;\r\n }\r\n var includedDomains = config && config.correlationHeaderDomains;\r\n if (includedDomains) {\r\n var matchExists_1;\r\n arrForEach(includedDomains, function (domain) {\r\n var regex = new RegExp(domain.toLowerCase().replace(/\\\\/g, \"\\\\\\\\\").replace(/\\./g, \"\\\\.\").replace(/\\*/g, \".*\"));\r\n matchExists_1 = matchExists_1 || regex.test(requestHost);\r\n });\r\n if (!matchExists_1) {\r\n return false;\r\n }\r\n }\r\n var excludedDomains = config && config.correlationHeaderExcludedDomains;\r\n if (!excludedDomains || excludedDomains[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n return true;\r\n }\r\n for (var i = 0; i < excludedDomains[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n var regex = new RegExp(excludedDomains[i].toLowerCase().replace(/\\\\/g, \"\\\\\\\\\").replace(/\\./g, \"\\\\.\").replace(/\\*/g, \".*\"));\r\n if (regex.test(requestHost)) {\r\n return false;\r\n }\r\n }\r\n // if we don't know anything about the requestHost, require the user to use included/excludedDomains.\r\n // Previously we always returned false for a falsy requestHost\r\n return requestHost && requestHost[_DYN_LENGTH /* @min:%2elength */] > 0;\r\n}\r\n/**\r\n * Combines target appId and target role name from response header.\r\n */\r\nexport function correlationIdGetCorrelationContext(responseHeader) {\r\n if (responseHeader) {\r\n var correlationId = correlationIdGetCorrelationContextValue(responseHeader, RequestHeaders[1 /* eRequestHeaders.requestContextTargetKey */]);\r\n if (correlationId && correlationId !== _correlationIdPrefix) {\r\n return correlationId;\r\n }\r\n }\r\n}\r\n/**\r\n * Gets key from correlation response header\r\n */\r\nexport function correlationIdGetCorrelationContextValue(responseHeader, key) {\r\n if (responseHeader) {\r\n var keyValues = responseHeader[_DYN_SPLIT /* @min:%2esplit */](\",\");\r\n for (var i = 0; i < keyValues[_DYN_LENGTH /* @min:%2elength */]; ++i) {\r\n var keyValue = keyValues[i][_DYN_SPLIT /* @min:%2esplit */](\"=\");\r\n if (keyValue[_DYN_LENGTH /* @min:%2elength */] === 2 && keyValue[0] === key) {\r\n return keyValue[1];\r\n }\r\n }\r\n }\r\n}\r\nexport function AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName) {\r\n var target, name = commandName, data = commandName;\r\n if (absoluteUrl && absoluteUrl[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var parsedUrl = urlParseUrl(absoluteUrl);\r\n target = parsedUrl.host;\r\n if (!name) {\r\n if (parsedUrl[_DYN_PATHNAME /* @min:%2epathname */] != null) {\r\n var pathName = (parsedUrl.pathname[_DYN_LENGTH /* @min:%2elength */] === 0) ? \"/\" : parsedUrl[_DYN_PATHNAME /* @min:%2epathname */];\r\n if (pathName.charAt(0) !== \"/\") {\r\n pathName = \"/\" + pathName;\r\n }\r\n data = parsedUrl[_DYN_PATHNAME /* @min:%2epathname */];\r\n name = dataSanitizeString(logger, method ? method + \" \" + pathName : pathName);\r\n }\r\n else {\r\n name = dataSanitizeString(logger, absoluteUrl);\r\n }\r\n }\r\n }\r\n else {\r\n target = commandName;\r\n name = commandName;\r\n }\r\n return {\r\n target: target,\r\n name: name,\r\n data: data\r\n };\r\n}\r\nexport function dateTimeUtilsNow() {\r\n // returns the window or webworker performance object\r\n var perf = getPerformance();\r\n if (perf && perf.now && perf.timing) {\r\n var now = perf.now() + perf.timing.navigationStart;\r\n // Known issue with IE where this calculation can be negative, so if it is then ignore and fallback\r\n if (now > 0) {\r\n return now;\r\n }\r\n }\r\n return dateNow();\r\n}\r\nexport function dateTimeUtilsDuration(start, end) {\r\n var result = null;\r\n if (start !== 0 && end !== 0 && !isNullOrUndefined(start) && !isNullOrUndefined(end)) {\r\n result = end - start;\r\n }\r\n return result;\r\n}\r\n/**\r\n * Creates a IDistributedTraceContext from an optional telemetryTrace\r\n * @param telemetryTrace - The telemetryTrace instance that is being wrapped\r\n * @param parentCtx - An optional parent distributed trace instance, almost always undefined as this scenario is only used in the case of multiple property handlers.\r\n * @returns A new IDistributedTraceContext instance that is backed by the telemetryTrace or temporary object\r\n */\r\nexport function createDistributedTraceContextFromTrace(telemetryTrace, parentCtx) {\r\n var trace = telemetryTrace || {};\r\n return {\r\n getName: function () {\r\n return trace[_DYN_NAME /* @min:%2ename */];\r\n },\r\n setName: function (newValue) {\r\n parentCtx && parentCtx.setName(newValue);\r\n trace[_DYN_NAME /* @min:%2ename */] = newValue;\r\n },\r\n getTraceId: function () {\r\n return trace.traceID;\r\n },\r\n setTraceId: function (newValue) {\r\n parentCtx && parentCtx.setTraceId(newValue);\r\n if (isValidTraceId(newValue)) {\r\n trace.traceID = newValue;\r\n }\r\n },\r\n getSpanId: function () {\r\n return trace.parentID;\r\n },\r\n setSpanId: function (newValue) {\r\n parentCtx && parentCtx.setSpanId(newValue);\r\n if (isValidSpanId(newValue)) {\r\n trace.parentID = newValue;\r\n }\r\n },\r\n getTraceFlags: function () {\r\n return trace.traceFlags;\r\n },\r\n setTraceFlags: function (newTraceFlags) {\r\n parentCtx && parentCtx.setTraceFlags(newTraceFlags);\r\n trace.traceFlags = newTraceFlags;\r\n }\r\n };\r\n}\r\n//# sourceMappingURL=Util.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { msToTimeSpan } from \"../HelperFuncs\";\r\nimport { AjaxHelperParseDependencyPath } from \"../Util\";\r\nimport { _DYN_DURATION, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nvar RemoteDependencyData = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the RemoteDependencyData object\r\n */\r\n function RemoteDependencyData(logger, id, absoluteUrl, commandName, value, success, resultCode, method, requestAPI, correlationContext, properties, measurements) {\r\n if (requestAPI === void 0) { requestAPI = \"Ajax\"; }\r\n this.aiDataContract = {\r\n id: 1 /* FieldType.Required */,\r\n ver: 1 /* FieldType.Required */,\r\n name: 0 /* FieldType.Default */,\r\n resultCode: 0 /* FieldType.Default */,\r\n duration: 0 /* FieldType.Default */,\r\n success: 0 /* FieldType.Default */,\r\n data: 0 /* FieldType.Default */,\r\n target: 0 /* FieldType.Default */,\r\n type: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */,\r\n kind: 0 /* FieldType.Default */,\r\n value: 0 /* FieldType.Default */,\r\n count: 0 /* FieldType.Default */,\r\n min: 0 /* FieldType.Default */,\r\n max: 0 /* FieldType.Default */,\r\n stdDev: 0 /* FieldType.Default */,\r\n dependencyKind: 0 /* FieldType.Default */,\r\n dependencySource: 0 /* FieldType.Default */,\r\n commandName: 0 /* FieldType.Default */,\r\n dependencyTypeName: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self.id = id;\r\n _self[_DYN_DURATION /* @min:%2eduration */] = msToTimeSpan(value);\r\n _self.success = success;\r\n _self.resultCode = resultCode + \"\";\r\n _self.type = dataSanitizeString(logger, requestAPI);\r\n var dependencyFields = AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName);\r\n _self.data = dataSanitizeUrl(logger, commandName) || dependencyFields.data; // get a value from hosturl if commandName not available\r\n _self.target = dataSanitizeString(logger, dependencyFields.target);\r\n if (correlationContext) {\r\n _self.target = \"\".concat(_self.target, \" | \").concat(correlationContext);\r\n }\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, dependencyFields[_DYN_NAME /* @min:%2ename */]);\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n RemoteDependencyData.envelopeType = \"Microsoft.ApplicationInsights.{0}.RemoteDependency\";\r\n RemoteDependencyData.dataType = \"RemoteDependencyData\";\r\n return RemoteDependencyData;\r\n}());\r\nexport { RemoteDependencyData };\r\n//# sourceMappingURL=RemoteDependencyData.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the\r\nexport { correlationIdSetPrefix, correlationIdGetPrefix, correlationIdCanIncludeCorrelationHeader, correlationIdGetCorrelationContext, correlationIdGetCorrelationContextValue, dateTimeUtilsNow, dateTimeUtilsDuration, isInternalApplicationInsightsEndpoint, createDistributedTraceContextFromTrace } from \"./Util\";\r\nexport { ThrottleMgr } from \"./ThrottleMgr\";\r\nexport { parseConnectionString, ConnectionStringParser } from \"./ConnectionStringParser\";\r\nexport { RequestHeaders } from \"./RequestResponseHeaders\";\r\nexport { DisabledPropertyName, ProcessLegacy, SampleRate, HttpMethod, DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH, strNotSpecified } from \"./Constants\";\r\nexport { Envelope } from \"./Telemetry/Common/Envelope\";\r\nexport { Event } from \"./Telemetry/Event\";\r\nexport { Exception } from \"./Telemetry/Exception\";\r\nexport { Metric } from \"./Telemetry/Metric\";\r\nexport { PageView } from \"./Telemetry/PageView\";\r\nexport { RemoteDependencyData } from \"./Telemetry/RemoteDependencyData\";\r\nexport { Trace } from \"./Telemetry/Trace\";\r\nexport { PageViewPerformance } from \"./Telemetry/PageViewPerformance\";\r\nexport { Data } from \"./Telemetry/Common/Data\";\r\nexport { SeverityLevel } from \"./Interfaces/Contracts/SeverityLevel\";\r\nexport { ConfigurationManager } from \"./Interfaces/IConfig\";\r\nexport { ContextTagKeys } from \"./Interfaces/Contracts/ContextTagKeys\";\r\nexport { dataSanitizeKeyAndAddUniqueness, dataSanitizeKey, dataSanitizeString, dataSanitizeUrl, dataSanitizeMessage, dataSanitizeException, dataSanitizeProperties, dataSanitizeMeasurements, dataSanitizeId, dataSanitizeInput, dsPadNumber } from \"./Telemetry/Common/DataSanitizer\";\r\nexport { TelemetryItemCreator, createTelemetryItem } from \"./TelemetryItemCreator\";\r\nexport { CtxTagKeys, Extensions } from \"./Interfaces/PartAExtensions\";\r\nexport { DistributedTracingModes, EventPersistence } from \"./Enums\";\r\nexport { stringToBoolOrDefault, msToTimeSpan, getExtensionByName, isCrossOriginError } from \"./HelperFuncs\";\r\nexport { isBeaconsSupported as isBeaconApiSupported, createTraceParent, parseTraceParent, isValidTraceId, isValidSpanId, isValidTraceParent, isSampledFlag, formatTraceParent, findW3cTraceParent, findAllScripts } from \"@microsoft/applicationinsights-core-js\";\r\nexport { createDomEvent } from \"./DomHelperFuncs\";\r\nexport { utlDisableStorage, utlEnableStorage, utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage, utlRemoveStorage, utlCanUseSessionStorage, utlGetSessionStorageKeys, utlGetSessionStorage, utlSetSessionStorage, utlRemoveSessionStorage, utlSetStoragePrefix } from \"./StorageHelperFuncs\";\r\nexport { urlParseUrl, urlGetAbsoluteUrl, urlGetPathName, urlGetCompleteUrl, urlParseHost, urlParseFullHost } from \"./UrlHelperFuncs\";\r\nexport { createOfflineListener } from \"./Offline\";\r\nexport var PropertiesPluginIdentifier = \"AppInsightsPropertiesPlugin\";\r\nexport var BreezeChannelIdentifier = \"AppInsightsChannelPlugin\";\r\nexport var AnalyticsPluginIdentifier = \"ApplicationInsightsAnalytics\";\r\n//# sourceMappingURL=applicationinsights-common.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { arrForEach, arrIndexOf, getDocument, getWindow, isArray, objForEachKey, objKeys } from \"@nevware21/ts-utils\";\r\nimport { _DYN_HANDLER, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_REPLACE, _DYN_SPLICE, _DYN_SPLIT, _DYN_TYPE } from \"../__DynamicConstants\";\r\nimport { createElmNodeData, createUniqueNamespace } from \"./DataCacheHelper\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n// Added to help with minfication\r\nvar strOnPrefix = \"on\";\r\nvar strAttachEvent = \"attachEvent\";\r\nvar strAddEventHelper = \"addEventListener\";\r\nvar strDetachEvent = \"detachEvent\";\r\nvar strRemoveEventListener = \"removeEventListener\";\r\nvar strEvents = \"events\";\r\nvar strVisibilityChangeEvt = \"visibilitychange\";\r\nvar strPageHide = \"pagehide\";\r\nvar strPageShow = \"pageshow\";\r\nvar strUnload = \"unload\";\r\nvar strBeforeUnload = \"beforeunload\";\r\nvar strPageHideNamespace = createUniqueNamespace(\"aiEvtPageHide\");\r\nvar strPageShowNamespace = createUniqueNamespace(\"aiEvtPageShow\");\r\nvar rRemoveEmptyNs = /\\.[\\.]+/g;\r\nvar rRemoveTrailingEmptyNs = /[\\.]+$/;\r\nvar _guid = 1;\r\nvar elmNodeData = createElmNodeData(\"events\");\r\nvar eventNamespace = /^([^.]*)(?:\\.(.+)|)/;\r\nfunction _normalizeNamespace(name) {\r\n if (name && name[_DYN_REPLACE /* @min:%2ereplace */]) {\r\n return name[_DYN_REPLACE /* @min:%2ereplace */](/^[\\s\\.]+|(?=[\\s\\.])[\\.\\s]+$/g, STR_EMPTY);\r\n }\r\n return name;\r\n}\r\nfunction _getEvtNamespace(eventName, evtNamespace) {\r\n var _a;\r\n if (evtNamespace) {\r\n var theNamespace_1 = STR_EMPTY;\r\n if (isArray(evtNamespace)) {\r\n theNamespace_1 = STR_EMPTY;\r\n arrForEach(evtNamespace, function (name) {\r\n name = _normalizeNamespace(name);\r\n if (name) {\r\n if (name[0] !== \".\") {\r\n name = \".\" + name;\r\n }\r\n theNamespace_1 += name;\r\n }\r\n });\r\n }\r\n else {\r\n theNamespace_1 = _normalizeNamespace(evtNamespace);\r\n }\r\n if (theNamespace_1) {\r\n if (theNamespace_1[0] !== \".\") {\r\n theNamespace_1 = \".\" + theNamespace_1;\r\n }\r\n // We may only have the namespace and not an eventName\r\n eventName = (eventName || STR_EMPTY) + theNamespace_1;\r\n }\r\n }\r\n var parsedEvent = (eventNamespace.exec(eventName || STR_EMPTY) || []);\r\n return _a = {},\r\n _a[_DYN_TYPE /* @min:type */] = parsedEvent[1],\r\n _a.ns = ((parsedEvent[2] || STR_EMPTY).replace(rRemoveEmptyNs, \".\").replace(rRemoveTrailingEmptyNs, STR_EMPTY)[_DYN_SPLIT /* @min:%2esplit */](\".\").sort()).join(\".\"),\r\n _a;\r\n}\r\n/**\r\n * Get all of the registered events on the target object, this is primarily used for testing cleanup but may also be used by\r\n * applications to remove their own events\r\n * @param target - The EventTarget that has registered events\r\n * @param eventName - [Optional] The name of the event to return the registered handlers and full name (with namespaces)\r\n * @param evtNamespace - [Optional] Additional namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace,\r\n * if the eventName also includes a namespace the namespace(s) are merged into a single namespace\r\n */\r\nexport function __getRegisteredEvents(target, eventName, evtNamespace) {\r\n var theEvents = [];\r\n var eventCache = elmNodeData.get(target, strEvents, {}, false);\r\n var evtName = _getEvtNamespace(eventName, evtNamespace);\r\n objForEachKey(eventCache, function (evtType, registeredEvents) {\r\n arrForEach(registeredEvents, function (value) {\r\n var _a;\r\n if (!evtName[_DYN_TYPE /* @min:%2etype */] || evtName[_DYN_TYPE /* @min:%2etype */] === value.evtName[_DYN_TYPE /* @min:%2etype */]) {\r\n if (!evtName.ns || evtName.ns === evtName.ns) {\r\n theEvents[_DYN_PUSH /* @min:%2epush */]((_a = {},\r\n _a[_DYN_NAME /* @min:name */] = value.evtName[_DYN_TYPE /* @min:%2etype */] + (value.evtName.ns ? \".\" + value.evtName.ns : STR_EMPTY),\r\n _a.handler = value[_DYN_HANDLER /* @min:%2ehandler */],\r\n _a));\r\n }\r\n }\r\n });\r\n });\r\n return theEvents;\r\n}\r\n// Exported for internal unit testing only\r\nfunction _getRegisteredEvents(target, evtName, addDefault) {\r\n if (addDefault === void 0) { addDefault = true; }\r\n var aiEvts = elmNodeData.get(target, strEvents, {}, addDefault);\r\n var registeredEvents = aiEvts[evtName];\r\n if (!registeredEvents) {\r\n registeredEvents = aiEvts[evtName] = [];\r\n }\r\n return registeredEvents;\r\n}\r\nfunction _doDetach(obj, evtName, handlerRef, useCapture) {\r\n if (obj && evtName && evtName[_DYN_TYPE /* @min:%2etype */]) {\r\n if (obj[strRemoveEventListener]) {\r\n obj[strRemoveEventListener](evtName[_DYN_TYPE /* @min:%2etype */], handlerRef, useCapture);\r\n }\r\n else if (obj[strDetachEvent]) {\r\n obj[strDetachEvent](strOnPrefix + evtName[_DYN_TYPE /* @min:%2etype */], handlerRef);\r\n }\r\n }\r\n}\r\nfunction _doAttach(obj, evtName, handlerRef, useCapture) {\r\n var result = false;\r\n if (obj && evtName && evtName[_DYN_TYPE /* @min:%2etype */] && handlerRef) {\r\n if (obj[strAddEventHelper]) {\r\n // all browsers except IE before version 9\r\n obj[strAddEventHelper](evtName[_DYN_TYPE /* @min:%2etype */], handlerRef, useCapture);\r\n result = true;\r\n }\r\n else if (obj[strAttachEvent]) {\r\n // IE before version 9\r\n obj[strAttachEvent](strOnPrefix + evtName[_DYN_TYPE /* @min:%2etype */], handlerRef);\r\n result = true;\r\n }\r\n }\r\n return result;\r\n}\r\nfunction _doUnregister(target, events, evtName, unRegFn) {\r\n var idx = events[_DYN_LENGTH /* @min:%2elength */];\r\n while (idx--) {\r\n var theEvent = events[idx];\r\n if (theEvent) {\r\n if (!evtName.ns || evtName.ns === theEvent.evtName.ns) {\r\n if (!unRegFn || unRegFn(theEvent)) {\r\n _doDetach(target, theEvent.evtName, theEvent[_DYN_HANDLER /* @min:%2ehandler */], theEvent.capture);\r\n // Remove the registered event\r\n events[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n }\r\n }\r\n }\r\n }\r\n}\r\nfunction _unregisterEvents(target, evtName, unRegFn) {\r\n if (evtName[_DYN_TYPE /* @min:%2etype */]) {\r\n _doUnregister(target, _getRegisteredEvents(target, evtName[_DYN_TYPE /* @min:%2etype */]), evtName, unRegFn);\r\n }\r\n else {\r\n var eventCache = elmNodeData.get(target, strEvents, {});\r\n objForEachKey(eventCache, function (evtType, events) {\r\n _doUnregister(target, events, evtName, unRegFn);\r\n });\r\n // Cleanup\r\n if (objKeys(eventCache)[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n elmNodeData.kill(target, strEvents);\r\n }\r\n }\r\n}\r\nexport function mergeEvtNamespace(theNamespace, namespaces) {\r\n var newNamespaces;\r\n if (namespaces) {\r\n if (isArray(namespaces)) {\r\n newNamespaces = [theNamespace].concat(namespaces);\r\n }\r\n else {\r\n newNamespaces = [theNamespace, namespaces];\r\n }\r\n // resort the namespaces so they are always in order\r\n newNamespaces = (_getEvtNamespace(\"xx\", newNamespaces).ns)[_DYN_SPLIT /* @min:%2esplit */](\".\");\r\n }\r\n else {\r\n newNamespaces = theNamespace;\r\n }\r\n return newNamespaces;\r\n}\r\n/**\r\n * Binds the specified function to an event, so that the function gets called whenever the event fires on the object\r\n * @param obj - Object to add the event too.\r\n * @param eventName - String that specifies any of the standard DHTML Events without \"on\" prefix, if may also include an optional (dot \".\" prefixed)\r\n * namespaces \"click\" \"click.mynamespace\" in addition to specific namespaces.\r\n * @param handlerRef - Pointer that specifies the function to call when event fires\r\n * @param evtNamespace - [Optional] Additional namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace,\r\n * if the eventName also includes a namespace the namespace(s) are merged into a single namespace\r\n * @param useCapture - [Optional] Defaults to false\r\n * @returns True if the function was bound successfully to the event, otherwise false\r\n */\r\nexport function eventOn(target, eventName, handlerRef, evtNamespace, useCapture) {\r\n var _a;\r\n if (useCapture === void 0) { useCapture = false; }\r\n var result = false;\r\n if (target) {\r\n try {\r\n var evtName = _getEvtNamespace(eventName, evtNamespace);\r\n result = _doAttach(target, evtName, handlerRef, useCapture);\r\n if (result && elmNodeData.accept(target)) {\r\n var registeredEvent = (_a = {\r\n guid: _guid++,\r\n evtName: evtName\r\n },\r\n _a[_DYN_HANDLER /* @min:handler */] = handlerRef,\r\n _a.capture = useCapture,\r\n _a);\r\n _getRegisteredEvents(target, evtName.type)[_DYN_PUSH /* @min:%2epush */](registeredEvent);\r\n }\r\n }\r\n catch (e) {\r\n // Just Ignore any error so that we don't break any execution path\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * Removes an event handler for the specified event\r\n * @param Object - to remove the event from\r\n * @param eventName - {string} - The name of the event, with optional namespaces or just the namespaces,\r\n * such as \"click\", \"click.mynamespace\" or \".mynamespace\"\r\n * @param handlerRef - {any} - The callback function that needs to be removed from the given event, when using a\r\n * namespace (with or without a qualifying event) this may be null to remove all previously attached event handlers\r\n * otherwise this will only remove events with this specific handler.\r\n * @param evtNamespace - [Optional] Additional namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace,\r\n * if the eventName also includes a namespace the namespace(s) are merged into a single namespace\r\n * @param useCapture - [Optional] Defaults to false\r\n */\r\nexport function eventOff(target, eventName, handlerRef, evtNamespace, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n if (target) {\r\n try {\r\n var evtName_1 = _getEvtNamespace(eventName, evtNamespace);\r\n var found_1 = false;\r\n _unregisterEvents(target, evtName_1, function (regEvent) {\r\n if ((evtName_1.ns && !handlerRef) || regEvent[_DYN_HANDLER /* @min:%2ehandler */] === handlerRef) {\r\n found_1 = true;\r\n return true;\r\n }\r\n return false;\r\n });\r\n if (!found_1) {\r\n // fallback to try and remove as requested\r\n _doDetach(target, evtName_1, handlerRef, useCapture);\r\n }\r\n }\r\n catch (e) {\r\n // Just Ignore any error so that we don't break any execution path\r\n }\r\n }\r\n}\r\n/**\r\n * Binds the specified function to an event, so that the function gets called whenever the event fires on the object\r\n * @param obj - Object to add the event too.\r\n * @param eventNameWithoutOn - String that specifies any of the standard DHTML Events without \"on\" prefix and optional (dot \".\" prefixed) namespaces \"click\" \"click.mynamespace\".\r\n * @param handlerRef - Pointer that specifies the function to call when event fires\r\n * @param useCapture - [Optional] Defaults to false\r\n * @returns True if the function was bound successfully to the event, otherwise false\r\n */\r\nexport function attachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n return eventOn(obj, eventNameWithoutOn, handlerRef, null, useCapture);\r\n}\r\n/**\r\n * Removes an event handler for the specified event\r\n * @param Object - to remove the event from\r\n * @param eventNameWithoutOn - {string} - The name of the event, with optional namespaces or just the namespaces,\r\n * such as \"click\", \"click.mynamespace\" or \".mynamespace\"\r\n * @param handlerRef - {any} - The callback function that needs to be removed from the given event, when using a\r\n * namespace (with or without a qualifying event) this may be null to remove all previously attached event handlers\r\n * otherwise this will only remove events with this specific handler.\r\n * @param useCapture - [Optional] Defaults to false\r\n */\r\nexport function detachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n eventOff(obj, eventNameWithoutOn, handlerRef, null, useCapture);\r\n}\r\n/**\r\n * Trys to add an event handler for the specified event to the window, body and document\r\n * @param eventName - {string} - The name of the event\r\n * @param callback - {any} - The callback function that needs to be executed for the given event\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @return {boolean} - true if the handler was successfully added\r\n */\r\nexport function addEventHandler(eventName, callback, evtNamespace) {\r\n var result = false;\r\n var w = getWindow();\r\n if (w) {\r\n result = eventOn(w, eventName, callback, evtNamespace);\r\n result = eventOn(w[\"body\"], eventName, callback, evtNamespace) || result;\r\n }\r\n var doc = getDocument();\r\n if (doc) {\r\n result = eventOn(doc, eventName, callback, evtNamespace) || result;\r\n }\r\n return result;\r\n}\r\n/**\r\n * Trys to remove event handler(s) for the specified event/namespace to the window, body and document\r\n * @param eventName - {string} - The name of the event, with optional namespaces or just the namespaces,\r\n * such as \"click\", \"click.mynamespace\" or \".mynamespace\"\r\n * @param callback - {any} - - The callback function that needs to be removed from the given event, when using a\r\n * namespace (with or without a qualifying event) this may be null to remove all previously attached event handlers\r\n * otherwise this will only remove events with this specific handler.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n */\r\nexport function removeEventHandler(eventName, callback, evtNamespace) {\r\n var w = getWindow();\r\n if (w) {\r\n eventOff(w, eventName, callback, evtNamespace);\r\n eventOff(w[\"body\"], eventName, callback, evtNamespace);\r\n }\r\n var doc = getDocument();\r\n if (doc) {\r\n eventOff(doc, eventName, callback, evtNamespace);\r\n }\r\n}\r\n/**\r\n * Bind the listener to the array of events\r\n * @param events - An string array of event names to bind the listener to\r\n * @param listener - The event callback to call when the event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nfunction _addEventListeners(events, listener, excludeEvents, evtNamespace) {\r\n var added = false;\r\n if (listener && events && events[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(events, function (name) {\r\n if (name) {\r\n if (!excludeEvents || arrIndexOf(excludeEvents, name) === -1) {\r\n added = addEventHandler(name, listener, evtNamespace) || added;\r\n }\r\n }\r\n });\r\n }\r\n return added;\r\n}\r\n/**\r\n * Bind the listener to the array of events\r\n * @param events - An string array of event names to bind the listener to\r\n * @param listener - The event callback to call when the event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addEventListeners(events, listener, excludeEvents, evtNamespace) {\r\n var added = false;\r\n if (listener && events && isArray(events)) {\r\n added = _addEventListeners(events, listener, excludeEvents, evtNamespace);\r\n if (!added && excludeEvents && excludeEvents[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // Failed to add any listeners and we excluded some, so just attempt to add the excluded events\r\n added = _addEventListeners(events, listener, null, evtNamespace);\r\n }\r\n }\r\n return added;\r\n}\r\n/**\r\n * Remove the listener from the array of events\r\n * @param events - An string array of event names to bind the listener to\r\n * @param listener - The event callback to call when the event is triggered\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n */\r\nexport function removeEventListeners(events, listener, evtNamespace) {\r\n if (events && isArray(events)) {\r\n arrForEach(events, function (name) {\r\n if (name) {\r\n removeEventHandler(name, listener, evtNamespace);\r\n }\r\n });\r\n }\r\n}\r\n/**\r\n * Listen to the 'beforeunload', 'unload' and 'pagehide' events which indicates a page unload is occurring,\r\n * this does NOT listen to the 'visibilitychange' event as while it does indicate that the page is being hidden\r\n * it does not *necessarily* mean that the page is being completely unloaded, it can mean that the user is\r\n * just navigating to a different Tab and may come back (without unloading the page). As such you may also\r\n * need to listen to the 'addPageHideEventListener' and 'addPageShowEventListener' events.\r\n * @param listener - The event callback to call when a page unload event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked, unless no other events can be.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageUnloadEventListener(listener, excludeEvents, evtNamespace) {\r\n // Hook the unload event for the document, window and body to ensure that the client events are flushed to the server\r\n // As just hooking the window does not always fire (on chrome) for page navigation's.\r\n return addEventListeners([strBeforeUnload, strUnload, strPageHide], listener, excludeEvents, evtNamespace);\r\n}\r\n/**\r\n * Remove any matching 'beforeunload', 'unload' and 'pagehide' events that may have been added via addEventListener,\r\n * addEventListeners, addPageUnloadEventListener or addPageHideEventListener.\r\n * @param listener - The specific event callback to to be removed\r\n * @param evtNamespace - [Optional] Namespace(s) uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function removePageUnloadEventListener(listener, evtNamespace) {\r\n removeEventListeners([strBeforeUnload, strUnload, strPageHide], listener, evtNamespace);\r\n}\r\n/**\r\n * Listen to the pagehide and visibility changing to 'hidden' events, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when if you plan to call\r\n * removePageShowEventListener as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The event callback to call when a page hide event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional] A Namespace to append to the event listeners so they can be uniquely identified and removed\r\n * based on this namespace. This call also adds an additional unique \"pageshow\" namespace to the events\r\n * so that only the matching \"removePageHideEventListener\" can remove these events.\r\n * Suggestion: pass as true if you are also calling addPageUnloadEventListener as that also hooks pagehide\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageHideEventListener(listener, excludeEvents, evtNamespace) {\r\n function _handlePageVisibility(evt) {\r\n var doc = getDocument();\r\n if (listener && doc && doc.visibilityState === \"hidden\") {\r\n listener(evt);\r\n }\r\n }\r\n // add the unique page show namespace to any provided namespace so we can only remove the ones added by \"pagehide\"\r\n var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);\r\n var pageUnloadAdded = _addEventListeners([strPageHide], listener, excludeEvents, newNamespaces);\r\n if (!excludeEvents || arrIndexOf(excludeEvents, strVisibilityChangeEvt) === -1) {\r\n pageUnloadAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageUnloadAdded;\r\n }\r\n if (!pageUnloadAdded && excludeEvents) {\r\n // Failed to add any listeners and we where requested to exclude some, so just call again without excluding anything\r\n pageUnloadAdded = addPageHideEventListener(listener, null, evtNamespace);\r\n }\r\n return pageUnloadAdded;\r\n}\r\n/**\r\n * Removes the pageHide event listeners added by addPageHideEventListener, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when calling addPageHideEventListener\r\n * as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The specific listener to remove for the 'pageshow' event only (ignored for 'visibilitychange')\r\n * @param evtNamespace - The unique namespace used when calling addPageShowEventListener\r\n */\r\nexport function removePageHideEventListener(listener, evtNamespace) {\r\n // add the unique page show namespace to any provided namespace so we only remove the ones added by \"pagehide\"\r\n var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);\r\n removeEventListeners([strPageHide], listener, newNamespaces);\r\n removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);\r\n}\r\n/**\r\n * Listen to the pageshow and visibility changing to 'visible' events, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when if you plan to call\r\n * removePageShowEventListener as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The event callback to call when a page is show event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional/Recommended] A Namespace to append to the event listeners so they can be uniquely\r\n * identified and removed based on this namespace. This call also adds an additional unique \"pageshow\" namespace to the events\r\n * so that only the matching \"removePageShowEventListener\" can remove these events.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageShowEventListener(listener, excludeEvents, evtNamespace) {\r\n function _handlePageVisibility(evt) {\r\n var doc = getDocument();\r\n if (listener && doc && doc.visibilityState === \"visible\") {\r\n listener(evt);\r\n }\r\n }\r\n // add the unique page show namespace to any provided namespace so we can only remove the ones added by \"pageshow\"\r\n var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);\r\n var pageShowAdded = _addEventListeners([strPageShow], listener, excludeEvents, newNamespaces);\r\n pageShowAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageShowAdded;\r\n if (!pageShowAdded && excludeEvents) {\r\n // Failed to add any listeners and we where requested to exclude some, so just call again without excluding anything\r\n pageShowAdded = addPageShowEventListener(listener, null, evtNamespace);\r\n }\r\n return pageShowAdded;\r\n}\r\n/**\r\n * Removes the pageShow event listeners added by addPageShowEventListener, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when calling addPageShowEventListener\r\n * as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The specific listener to remove for the 'pageshow' event only (ignored for 'visibilitychange')\r\n * @param evtNamespace - The unique namespace used when calling addPageShowEventListener\r\n */\r\nexport function removePageShowEventListener(listener, evtNamespace) {\r\n // add the unique page show namespace to any provided namespace so we only remove the ones added by \"pageshow\"\r\n var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);\r\n removeEventListeners([strPageShow], listener, newNamespaces);\r\n removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);\r\n}\r\n//# sourceMappingURL=EventHelpers.js.map","import { arrForEach, createUniqueNamespace, eventOff, eventOn, getDocument, getNavigator, getWindow, isNullOrUndefined, isUndefined, mergeEvtNamespace } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_PUSH } from \"./__DynamicConstants\";\r\nfunction _disableEvents(target, evtNamespace) {\r\n eventOff(target, null, null, evtNamespace);\r\n}\r\n/**\r\n * Create a new OfflineListener instance to monitor browser online / offline events\r\n * @param parentEvtNamespace - The parent event namespace to append to any specific events for this instance\r\n */\r\nexport function createOfflineListener(parentEvtNamespace) {\r\n var _document = getDocument();\r\n var _navigator = getNavigator(); // Gets the window.navigator or workerNavigator depending on the global\r\n var _isListening = false;\r\n var listenerList = [];\r\n // Set the initial state\r\n // rState is changed by the browser, both via events and when we check the navigator.onLine property\r\n var rState = 1 /* eOfflineValue.Online */;\r\n if (_navigator && !isNullOrUndefined(_navigator.onLine) && !_navigator.onLine) { // navigator.onLine is undefined in react-native\r\n rState = 2 /* eOfflineValue.Offline */;\r\n }\r\n // ustate is changed by the user calling setOnlineState\r\n var uState = 0 /* eOfflineValue.Unknown */;\r\n // current state would be updated each time rState or uState is changed\r\n // it is a resolved value of rState and uState\r\n var _currentState = calCurrentState();\r\n var _evtNamespace = mergeEvtNamespace(createUniqueNamespace(\"OfflineListener\"), parentEvtNamespace);\r\n try {\r\n if (_enableEvents(getWindow())) {\r\n _isListening = true;\r\n }\r\n if (_document) {\r\n // Also attach to the document.body or document\r\n var target = _document.body || _document;\r\n if (target.ononline) {\r\n if (_enableEvents(target)) {\r\n _isListening = true;\r\n }\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // this makes react-native less angry\r\n _isListening = false;\r\n }\r\n function _enableEvents(target) {\r\n var enabled = false;\r\n if (target) {\r\n enabled = eventOn(target, \"online\", _setOnline, _evtNamespace);\r\n if (enabled) {\r\n eventOn(target, \"offline\", _setOffline, _evtNamespace);\r\n }\r\n }\r\n return enabled;\r\n }\r\n function _isOnline() {\r\n return _currentState;\r\n }\r\n function calCurrentState() {\r\n if (uState === 2 /* eOfflineValue.Offline */ || rState === 2 /* eOfflineValue.Offline */) {\r\n return false;\r\n }\r\n return true; // if both unknown, then we assume the network is good\r\n }\r\n function listnerNoticeCheck() {\r\n // we were offline and are now online or we were online and now offline\r\n var newState = calCurrentState();\r\n if (_currentState !== newState) {\r\n _currentState = newState; // use the resolved state to update\r\n // send all the callbacks with the current state\r\n arrForEach(listenerList, function (callback) {\r\n var offlineState = {\r\n isOnline: _currentState,\r\n rState: rState,\r\n uState: uState\r\n };\r\n try {\r\n callback(offlineState);\r\n }\r\n catch (e) {\r\n // Do nothing, just making sure we run all of the callbacks\r\n }\r\n });\r\n }\r\n }\r\n function setOnlineState(newState) {\r\n uState = newState;\r\n listnerNoticeCheck();\r\n }\r\n function _setOnline() {\r\n rState = 1 /* eOfflineValue.Online */;\r\n listnerNoticeCheck();\r\n }\r\n function _setOffline() {\r\n rState = 2 /* eOfflineValue.Offline */;\r\n listnerNoticeCheck();\r\n }\r\n function _unload() {\r\n var win = getWindow();\r\n if (win && _isListening) {\r\n _disableEvents(win, _evtNamespace);\r\n if (_document) {\r\n // Also attach to the document.body or document\r\n var target = _document.body || _document;\r\n if (!isUndefined(target.ononline)) {\r\n _disableEvents(target, _evtNamespace);\r\n }\r\n }\r\n _isListening = false;\r\n }\r\n }\r\n function addListener(callback) {\r\n listenerList[_DYN_PUSH /* @min:%2epush */](callback);\r\n // Define rm as an instance of IUnloadHook\r\n return {\r\n rm: function () {\r\n var index = listenerList.indexOf(callback);\r\n if (index > -1) {\r\n return listenerList.splice(index, 1);\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n };\r\n }\r\n return {\r\n isOnline: _isOnline,\r\n isListening: function () { return _isListening; },\r\n unload: _unload,\r\n addListener: addListener,\r\n setOnlineState: setOnlineState\r\n };\r\n}\r\n//# sourceMappingURL=Offline.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { createEnum, createTypeMap } from \"@nevware21/ts-utils\";\r\n/**\r\n * Create an enum style object which has both the key => value and value => key mappings\r\n * @param values - The values to populate on the new object\r\n * @returns\r\n */\r\nexport var createEnumStyle = createEnum;\r\n/**\r\n * Create a 2 index map that maps an enum's key and value to the defined map value, X[\"key\"] => mapValue and X[0] => mapValue.\r\n * Generic values\r\n * - E = the const enum type (typeof eRequestHeaders);\r\n * - V = Identifies the valid values for the keys, this should include both the enum numeric and string key of the type. The\r\n * resulting \"Value\" of each entry identifies the valid values withing the assignments.\r\n * @param values - The values to populate on the new object\r\n * @returns\r\n */\r\nexport var createValueMap = createTypeMap;\r\n//# sourceMappingURL=EnumHelperFuncs.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { createEnumStyle } from \"@microsoft/applicationinsights-core-js\";\r\nexport var StorageType = createEnumStyle({\r\n LocalStorage: 0 /* eStorageType.LocalStorage */,\r\n SessionStorage: 1 /* eStorageType.SessionStorage */\r\n});\r\nexport var DistributedTracingModes = createEnumStyle({\r\n AI: 0 /* eDistributedTracingModes.AI */,\r\n AI_AND_W3C: 1 /* eDistributedTracingModes.AI_AND_W3C */,\r\n W3C: 2 /* eDistributedTracingModes.W3C */\r\n});\r\n/**\r\n * The EventPersistence contains a set of values that specify the event's persistence.\r\n */\r\nexport var EventPersistence = createEnumStyle({\r\n /**\r\n * Normal persistence.\r\n */\r\n Normal: 1 /* EventPersistenceValue.Normal */,\r\n /**\r\n * Critical persistence.\r\n */\r\n Critical: 2 /* EventPersistenceValue.Critical */\r\n});\r\n//# sourceMappingURL=Enums.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { _throwInternal, dumpObj, getExceptionName, getGlobal, getGlobalInst, isNullOrUndefined, objForEachKey } from \"@microsoft/applicationinsights-core-js\";\r\nimport { StorageType } from \"./Enums\";\r\nimport { _DYN_PUSH, _DYN_REMOVE_ITEM, _DYN_TO_STRING } from \"./__DynamicConstants\";\r\nvar _canUseLocalStorage = undefined;\r\nvar _canUseSessionStorage = undefined;\r\nvar _storagePrefix = \"\";\r\n/**\r\n * Gets the localStorage object if available\r\n * @return {Storage} - Returns the storage object if available else returns null\r\n */\r\nfunction _getLocalStorageObject() {\r\n if (utlCanUseLocalStorage()) {\r\n return _getVerifiedStorageObject(StorageType.LocalStorage);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Tests storage object (localStorage or sessionStorage) to verify that it is usable\r\n * More details here: https://mathiasbynens.be/notes/localstorage-pattern\r\n * @param storageType - Type of storage\r\n * @return {Storage} Returns storage object verified that it is usable\r\n */\r\nfunction _getVerifiedStorageObject(storageType) {\r\n try {\r\n if (isNullOrUndefined(getGlobal())) {\r\n return null;\r\n }\r\n var uid = (new Date)[_DYN_TO_STRING /* @min:%2etoString */]();\r\n var storage = getGlobalInst(storageType === StorageType.LocalStorage ? \"localStorage\" : \"sessionStorage\");\r\n var name_1 = _storagePrefix + uid;\r\n storage.setItem(name_1, uid);\r\n var fail = storage.getItem(name_1) !== uid;\r\n storage[_DYN_REMOVE_ITEM /* @min:%2eremoveItem */](name_1);\r\n if (!fail) {\r\n return storage;\r\n }\r\n }\r\n catch (exception) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n}\r\n/**\r\n * Gets the sessionStorage object if available\r\n * @return {Storage} - Returns the storage object if available else returns null\r\n */\r\nfunction _getSessionStorageObject() {\r\n if (utlCanUseSessionStorage()) {\r\n return _getVerifiedStorageObject(StorageType.SessionStorage);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Disables the global SDK usage of local or session storage if available\r\n */\r\nexport function utlDisableStorage() {\r\n _canUseLocalStorage = false;\r\n _canUseSessionStorage = false;\r\n}\r\nexport function utlSetStoragePrefix(storagePrefix) {\r\n _storagePrefix = storagePrefix || \"\";\r\n}\r\n/**\r\n * Re-enables the global SDK usage of local or session storage if available\r\n */\r\nexport function utlEnableStorage() {\r\n _canUseLocalStorage = utlCanUseLocalStorage(true);\r\n _canUseSessionStorage = utlCanUseSessionStorage(true);\r\n}\r\n/**\r\n * Returns whether LocalStorage can be used, if the reset parameter is passed a true this will override\r\n * any previous disable calls.\r\n * @param reset - Should the usage be reset and determined only based on whether LocalStorage is available\r\n */\r\nexport function utlCanUseLocalStorage(reset) {\r\n if (reset || _canUseLocalStorage === undefined) {\r\n _canUseLocalStorage = !!_getVerifiedStorageObject(StorageType.LocalStorage);\r\n }\r\n return _canUseLocalStorage;\r\n}\r\nexport function utlGetLocalStorage(logger, name) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n return storage.getItem(name);\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 1 /* _eInternalMessageId.BrowserCannotReadLocalStorage */, \"Browser failed read of local storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return null;\r\n}\r\nexport function utlSetLocalStorage(logger, name, data) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.setItem(name, data);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 3 /* _eInternalMessageId.BrowserCannotWriteLocalStorage */, \"Browser failed write to local storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlRemoveStorage(logger, name) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage[_DYN_REMOVE_ITEM /* @min:%2eremoveItem */](name);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 5 /* _eInternalMessageId.BrowserFailedRemovalFromLocalStorage */, \"Browser failed removal of local storage item. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlCanUseSessionStorage(reset) {\r\n if (reset || _canUseSessionStorage === undefined) {\r\n _canUseSessionStorage = !!_getVerifiedStorageObject(StorageType.SessionStorage);\r\n }\r\n return _canUseSessionStorage;\r\n}\r\nexport function utlGetSessionStorageKeys() {\r\n var keys = [];\r\n if (utlCanUseSessionStorage()) {\r\n objForEachKey(getGlobalInst(\"sessionStorage\"), function (key) {\r\n keys[_DYN_PUSH /* @min:%2epush */](key);\r\n });\r\n }\r\n return keys;\r\n}\r\nexport function utlGetSessionStorage(logger, name) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n return storage.getItem(name);\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 2 /* _eInternalMessageId.BrowserCannotReadSessionStorage */, \"Browser failed read of session storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return null;\r\n}\r\nexport function utlSetSessionStorage(logger, name, data) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.setItem(name, data);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 4 /* _eInternalMessageId.BrowserCannotWriteSessionStorage */, \"Browser failed write to session storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlRemoveSessionStorage(logger, name) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage[_DYN_REMOVE_ITEM /* @min:%2eremoveItem */](name);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 6 /* _eInternalMessageId.BrowserFailedRemovalFromSessionStorage */, \"Browser failed removal of session storage item. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\n//# sourceMappingURL=StorageHelperFuncs.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { createValueMap } from \"@microsoft/applicationinsights-core-js\";\r\nexport var RequestHeaders = createValueMap({\r\n requestContextHeader: [0 /* eRequestHeaders.requestContextHeader */, \"Request-Context\"],\r\n requestContextTargetKey: [1 /* eRequestHeaders.requestContextTargetKey */, \"appId\"],\r\n requestContextAppIdFormat: [2 /* eRequestHeaders.requestContextAppIdFormat */, \"appId=cid-v1:\"],\r\n requestIdHeader: [3 /* eRequestHeaders.requestIdHeader */, \"Request-Id\"],\r\n traceParentHeader: [4 /* eRequestHeaders.traceParentHeader */, \"traceparent\"],\r\n traceStateHeader: [5 /* eRequestHeaders.traceStateHeader */, \"tracestate\"],\r\n sdkContextHeader: [6 /* eRequestHeaders.sdkContextHeader */, \"Sdk-Context\"],\r\n sdkContextHeaderAppIdRequest: [7 /* eRequestHeaders.sdkContextHeaderAppIdRequest */, \"appId\"],\r\n requestContextHeaderLowerCase: [8 /* eRequestHeaders.requestContextHeaderLowerCase */, \"request-context\"]\r\n});\r\n//# sourceMappingURL=RequestResponseHeaders.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { asString, isBoolean, isFunction, isNullOrUndefined, isString } from \"@nevware21/ts-utils\";\r\nimport { STR_EMPTY } from \"../JavaScriptSDK/InternalConstants\";\r\nimport { _DYN_BLK_VAL, _DYN_TO_LOWER_CASE } from \"../__DynamicConstants\";\r\n/**\r\n * @internal\r\n * @ignore\r\n * @param str\r\n * @param defaultValue\r\n * @returns\r\n */\r\nfunction _stringToBoolOrDefault(theValue, defaultValue, theConfig) {\r\n if (!theValue && isNullOrUndefined(theValue)) {\r\n return defaultValue;\r\n }\r\n if (isBoolean(theValue)) {\r\n return theValue;\r\n }\r\n return asString(theValue)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() === \"true\";\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance with the field defined as an object\r\n * that should be merged\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfMerge(defaultValue) {\r\n return {\r\n mrg: true,\r\n v: defaultValue\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance with the provided field set function\r\n * @param setter - The IConfigCheckFn function to validate the user provided value\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfSet(setter, defaultValue) {\r\n return {\r\n set: setter,\r\n v: defaultValue\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance with the provided field validator\r\n * @param validator - The IConfigCheckFn function to validate the user provided value\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @param fallBackName - The fallback configuration name if the current value is not available\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfValidate(validator, defaultValue, fallBackName) {\r\n return {\r\n fb: fallBackName,\r\n isVal: validator,\r\n v: defaultValue\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance that will validate and convert the user\r\n * provided value to a boolean from a string or boolean value\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @param fallBackName - The fallback configuration name if the current value is not available\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfBoolean(defaultValue, fallBackName) {\r\n return {\r\n fb: fallBackName,\r\n set: _stringToBoolOrDefault,\r\n v: !!defaultValue\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance that will validate that the user\r\n * provided value is a function.\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfFunc(defaultValue) {\r\n return {\r\n isVal: isFunction,\r\n v: defaultValue || null\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance that will validate that the user\r\n * provided value is a function.\r\n * @param defaultValue - The default string value to apply it not provided or it's not valid, defaults to an empty string\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfString(defaultValue) {\r\n return {\r\n isVal: isString,\r\n v: asString(defaultValue || STR_EMPTY)\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance identifying that value associated with this property\r\n * should not have it's properties converted into a dynamic config properties.\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfBlockPropValue(defaultValue) {\r\n var _a;\r\n return _a = {},\r\n _a[_DYN_BLK_VAL /* @min:blkVal */] = true,\r\n _a.v = defaultValue,\r\n _a;\r\n}\r\n//# sourceMappingURL=ConfigDefaultHelpers.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { isArray, isFunction, objDefine, utcNow } from \"@nevware21/ts-utils\";\r\nimport { _DYN_COMPLETE, _DYN_GET_CTX, _DYN_IS_ASYNC, _DYN_IS_CHILD_EVT, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_SET_CTX, _DYN_TIME } from \"../__DynamicConstants\";\r\nimport { STR_GET_PERF_MGR, STR_PERF_EVENT } from \"./InternalConstants\";\r\nvar strExecutionContextKey = \"ctx\";\r\nvar strParentContextKey = \"ParentContextKey\";\r\nvar strChildrenContextKey = \"ChildrenContextKey\";\r\nvar _defaultPerfManager = null;\r\nvar PerfEvent = /** @class */ (function () {\r\n function PerfEvent(name, payloadDetails, isAsync) {\r\n var _self = this;\r\n _self.start = utcNow();\r\n _self[_DYN_NAME /* @min:%2ename */] = name;\r\n _self[_DYN_IS_ASYNC /* @min:%2eisAsync */] = isAsync;\r\n _self[_DYN_IS_CHILD_EVT /* @min:%2eisChildEvt */] = function () { return false; };\r\n if (isFunction(payloadDetails)) {\r\n // Create an accessor to minimize the potential performance impact of executing the payloadDetails callback\r\n var theDetails_1;\r\n objDefine(_self, \"payload\", {\r\n g: function () {\r\n // Delay the execution of the payloadDetails until needed\r\n if (!theDetails_1 && isFunction(payloadDetails)) {\r\n theDetails_1 = payloadDetails();\r\n // clear it out now so the referenced objects can be garbage collected\r\n payloadDetails = null;\r\n }\r\n return theDetails_1;\r\n }\r\n });\r\n }\r\n _self[_DYN_GET_CTX /* @min:%2egetCtx */] = function (key) {\r\n if (key) {\r\n // The parent and child links are located directly on the object (for better viewing in the DebugPlugin)\r\n if (key === PerfEvent[strParentContextKey] || key === PerfEvent[strChildrenContextKey]) {\r\n return _self[key];\r\n }\r\n return (_self[strExecutionContextKey] || {})[key];\r\n }\r\n return null;\r\n };\r\n _self[_DYN_SET_CTX /* @min:%2esetCtx */] = function (key, value) {\r\n if (key) {\r\n // Put the parent and child links directly on the object (for better viewing in the DebugPlugin)\r\n if (key === PerfEvent[strParentContextKey]) {\r\n // Simple assumption, if we are setting a parent then we must be a child\r\n if (!_self[key]) {\r\n _self[_DYN_IS_CHILD_EVT /* @min:%2eisChildEvt */] = function () { return true; };\r\n }\r\n _self[key] = value;\r\n }\r\n else if (key === PerfEvent[strChildrenContextKey]) {\r\n _self[key] = value;\r\n }\r\n else {\r\n var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};\r\n ctx[key] = value;\r\n }\r\n }\r\n };\r\n _self[_DYN_COMPLETE /* @min:%2ecomplete */] = function () {\r\n var childTime = 0;\r\n var childEvts = _self[_DYN_GET_CTX /* @min:%2egetCtx */](PerfEvent[strChildrenContextKey]);\r\n if (isArray(childEvts)) {\r\n for (var lp = 0; lp < childEvts[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var childEvt = childEvts[lp];\r\n if (childEvt) {\r\n childTime += childEvt[_DYN_TIME /* @min:%2etime */];\r\n }\r\n }\r\n }\r\n _self[_DYN_TIME /* @min:%2etime */] = utcNow() - _self.start;\r\n _self.exTime = _self[_DYN_TIME /* @min:%2etime */] - childTime;\r\n _self[_DYN_COMPLETE /* @min:%2ecomplete */] = function () { };\r\n };\r\n }\r\n PerfEvent.ParentContextKey = \"parent\";\r\n PerfEvent.ChildrenContextKey = \"childEvts\";\r\n return PerfEvent;\r\n}());\r\nexport { PerfEvent };\r\nvar PerfManager = /** @class */ (function () {\r\n function PerfManager(manager) {\r\n /**\r\n * General bucket used for execution context set and retrieved via setCtx() and getCtx.\r\n * Defined as private so it can be visualized via the DebugPlugin\r\n */\r\n this.ctx = {};\r\n dynamicProto(PerfManager, this, function (_self) {\r\n _self.create = function (src, payloadDetails, isAsync) {\r\n // TODO (@MSNev): at some point we will want to add additional configuration to \"select\" which events to instrument\r\n // for now this is just a simple do everything.\r\n return new PerfEvent(src, payloadDetails, isAsync);\r\n };\r\n _self.fire = function (perfEvent) {\r\n if (perfEvent) {\r\n perfEvent[_DYN_COMPLETE /* @min:%2ecomplete */]();\r\n if (manager && isFunction(manager[STR_PERF_EVENT /* @min:%2eperfEvent */])) {\r\n manager[STR_PERF_EVENT /* @min:%2eperfEvent */](perfEvent);\r\n }\r\n }\r\n };\r\n _self[_DYN_SET_CTX /* @min:%2esetCtx */] = function (key, value) {\r\n if (key) {\r\n var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};\r\n ctx[key] = value;\r\n }\r\n };\r\n _self[_DYN_GET_CTX /* @min:%2egetCtx */] = function (key) {\r\n return (_self[strExecutionContextKey] || {})[key];\r\n };\r\n });\r\n }\r\n /**\r\n * Create a new event and start timing, the manager may return null/undefined to indicate that it does not\r\n * want to monitor this source event.\r\n * @param src - The source name of the event\r\n * @param payloadDetails - An optional callback function to fetch the payload details for the event.\r\n * @param isAsync - Is the event occurring from a async event\r\n */\r\n PerfManager.prototype.create = function (src, payload, isAsync) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Complete the perfEvent and fire any notifications.\r\n * @param perfEvent - Fire the event which will also complete the passed event\r\n */\r\n PerfManager.prototype.fire = function (perfEvent) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Set an execution context value\r\n * @param key - The context key name\r\n * @param value - The value\r\n */\r\n PerfManager.prototype.setCtx = function (key, value) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Get the execution context value\r\n * @param key - The context key\r\n */\r\n PerfManager.prototype.getCtx = function (key) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return PerfManager;\r\n}());\r\nexport { PerfManager };\r\nvar doPerfActiveKey = \"CoreUtils.doPerf\";\r\n/**\r\n * Helper function to wrap a function with a perf event\r\n * @param mgrSource - The Performance Manager or a Performance provider source (may be null)\r\n * @param getSource - The callback to create the source name for the event (if perf monitoring is enabled)\r\n * @param func - The function to call and measure\r\n * @param details - A function to return the payload details\r\n * @param isAsync - Is the event / function being call asynchronously or synchronously\r\n */\r\nexport function doPerf(mgrSource, getSource, func, details, isAsync) {\r\n if (mgrSource) {\r\n var perfMgr = mgrSource;\r\n if (perfMgr[STR_GET_PERF_MGR]) {\r\n // Looks like a perf manager provider object\r\n perfMgr = perfMgr[STR_GET_PERF_MGR]();\r\n }\r\n if (perfMgr) {\r\n var perfEvt = void 0;\r\n var currentActive = perfMgr[_DYN_GET_CTX /* @min:%2egetCtx */](doPerfActiveKey);\r\n try {\r\n perfEvt = perfMgr.create(getSource(), details, isAsync);\r\n if (perfEvt) {\r\n if (currentActive && perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */]) {\r\n perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */](PerfEvent[strParentContextKey], currentActive);\r\n if (currentActive[_DYN_GET_CTX /* @min:%2egetCtx */] && currentActive[_DYN_SET_CTX /* @min:%2esetCtx */]) {\r\n var children = currentActive[_DYN_GET_CTX /* @min:%2egetCtx */](PerfEvent[strChildrenContextKey]);\r\n if (!children) {\r\n children = [];\r\n currentActive[_DYN_SET_CTX /* @min:%2esetCtx */](PerfEvent[strChildrenContextKey], children);\r\n }\r\n children[_DYN_PUSH /* @min:%2epush */](perfEvt);\r\n }\r\n }\r\n // Set this event as the active event now\r\n perfMgr[_DYN_SET_CTX /* @min:%2esetCtx */](doPerfActiveKey, perfEvt);\r\n return func(perfEvt);\r\n }\r\n }\r\n catch (ex) {\r\n if (perfEvt && perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */]) {\r\n perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */](\"exception\", ex);\r\n }\r\n }\r\n finally {\r\n // fire the perf event\r\n if (perfEvt) {\r\n perfMgr.fire(perfEvt);\r\n }\r\n // Reset the active event to the previous value\r\n perfMgr[_DYN_SET_CTX /* @min:%2esetCtx */](doPerfActiveKey, currentActive);\r\n }\r\n }\r\n }\r\n return func();\r\n}\r\n/**\r\n * Set the global performance manager to use when there is no core instance or it has not been initialized yet.\r\n * @param perfManager - The IPerfManager instance to use when no performance manager is supplied.\r\n */\r\nexport function setGblPerfMgr(perfManager) {\r\n _defaultPerfManager = perfManager;\r\n}\r\n/**\r\n * Get the current global performance manager that will be used with no performance manager is supplied.\r\n * @returns - The current default manager\r\n */\r\nexport function getGblPerfMgr() {\r\n return _defaultPerfManager;\r\n}\r\n//# sourceMappingURL=PerfManager.js.map","import { arrForEach, isArray, isString, strLeft, strTrim } from \"@nevware21/ts-utils\";\r\nimport { _DYN_GET_ATTRIBUTE, _DYN_LENGTH, _DYN_PUSH, _DYN_SPAN_ID, _DYN_SPLIT, _DYN_TO_LOWER_CASE, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN_VERSION } from \"../__DynamicConstants\";\r\nimport { generateW3CId } from \"./CoreUtils\";\r\nimport { findMetaTag, findNamedServerTiming } from \"./EnvUtils\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n// using {0,16} for leading and trailing whitespace just to constrain the possible runtime of a random string\r\nvar TRACE_PARENT_REGEX = /^([\\da-f]{2})-([\\da-f]{32})-([\\da-f]{16})-([\\da-f]{2})(-[^\\s]{1,64})?$/i;\r\nvar DEFAULT_VERSION = \"00\";\r\nvar INVALID_VERSION = \"ff\";\r\nvar INVALID_TRACE_ID = \"00000000000000000000000000000000\";\r\nvar INVALID_SPAN_ID = \"0000000000000000\";\r\nvar SAMPLED_FLAG = 0x01;\r\nfunction _isValid(value, len, invalidValue) {\r\n if (value && value[_DYN_LENGTH /* @min:%2elength */] === len && value !== invalidValue) {\r\n return !!value.match(/^[\\da-f]*$/i);\r\n }\r\n return false;\r\n}\r\nfunction _formatValue(value, len, defValue) {\r\n if (_isValid(value, len)) {\r\n return value;\r\n }\r\n return defValue;\r\n}\r\nfunction _formatFlags(value) {\r\n if (isNaN(value) || value < 0 || value > 255) {\r\n value = 0x01;\r\n }\r\n var result = value.toString(16);\r\n while (result[_DYN_LENGTH /* @min:%2elength */] < 2) {\r\n result = \"0\" + result;\r\n }\r\n return result;\r\n}\r\n/**\r\n * Create a new ITraceParent instance using the provided values.\r\n * @param traceId - The traceId to use, when invalid a new random W3C id will be generated.\r\n * @param spanId - The parent/span id to use, a new random value will be generated if it is invalid.\r\n * @param flags - The traceFlags to use, defaults to zero (0) if not supplied or invalid\r\n * @param version - The version to used, defaults to version \"01\" if not supplied or invalid.\r\n * @returns\r\n */\r\nexport function createTraceParent(traceId, spanId, flags, version) {\r\n var _a;\r\n return _a = {},\r\n _a[_DYN_VERSION /* @min:version */] = _isValid(version, 2, INVALID_VERSION) ? version : DEFAULT_VERSION,\r\n _a[_DYN_TRACE_ID /* @min:traceId */] = isValidTraceId(traceId) ? traceId : generateW3CId(),\r\n _a[_DYN_SPAN_ID /* @min:spanId */] = isValidSpanId(spanId) ? spanId : strLeft(generateW3CId(), 16),\r\n _a.traceFlags = flags >= 0 && flags <= 0xFF ? flags : 1,\r\n _a;\r\n}\r\n/**\r\n * Attempt to parse the provided string as a W3C TraceParent header value (https://www.w3.org/TR/trace-context/#traceparent-header)\r\n *\r\n * @param value - The value to be parsed\r\n * @param selectIdx - If the found value is comma separated which is the preferred entry to select, defaults to the first\r\n * @returns\r\n */\r\nexport function parseTraceParent(value, selectIdx) {\r\n var _a;\r\n if (!value) {\r\n // Don't pass a null/undefined or empty string\r\n return null;\r\n }\r\n if (isArray(value)) {\r\n // The value may have been encoded on the page into an array so handle this automatically\r\n value = value[0] || \"\";\r\n }\r\n if (!value || !isString(value) || value[_DYN_LENGTH /* @min:%2elength */] > 8192) {\r\n // limit potential processing based on total length\r\n return null;\r\n }\r\n if (value.indexOf(\",\") !== -1) {\r\n var values = value[_DYN_SPLIT /* @min:%2esplit */](\",\");\r\n value = values[selectIdx > 0 && values[_DYN_LENGTH /* @min:%2elength */] > selectIdx ? selectIdx : 0];\r\n }\r\n // See https://www.w3.org/TR/trace-context/#versioning-of-traceparent\r\n var match = TRACE_PARENT_REGEX.exec(strTrim(value));\r\n if (!match || // No match\r\n match[1] === INVALID_VERSION || // version ff is forbidden\r\n match[2] === INVALID_TRACE_ID || // All zeros is considered to be invalid\r\n match[3] === INVALID_SPAN_ID) { // All zeros is considered to be invalid\r\n return null;\r\n }\r\n return _a = {\r\n version: (match[1] || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](),\r\n traceId: (match[2] || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](),\r\n spanId: (match[3] || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]()\r\n },\r\n _a[_DYN_TRACE_FLAGS /* @min:traceFlags */] = parseInt(match[4], 16),\r\n _a;\r\n}\r\n/**\r\n * Is the provided W3c Trace Id a valid string representation, it must be a 32-character string\r\n * of lowercase hexadecimal characters for example, 4bf92f3577b34da6a3ce929d0e0e4736.\r\n * If all characters as zero (00000000000000000000000000000000) it will be considered an invalid value.\r\n * @param value - The W3c trace Id to be validated\r\n * @returns true if valid otherwise false\r\n */\r\nexport function isValidTraceId(value) {\r\n return _isValid(value, 32, INVALID_TRACE_ID);\r\n}\r\n/**\r\n * Is the provided W3c span id (aka. parent id) a valid string representation, it must be a 16-character\r\n * string of lowercase hexadecimal characters, for example, 00f067aa0ba902b7.\r\n * If all characters are zero (0000000000000000) this is considered an invalid value.\r\n * @param value - The W3c span id to be validated\r\n * @returns true if valid otherwise false\r\n */\r\nexport function isValidSpanId(value) {\r\n return _isValid(value, 16, INVALID_SPAN_ID);\r\n}\r\n/**\r\n * Validates that the provided ITraceParent instance conforms to the currently supported specifications\r\n * @param value\r\n * @returns\r\n */\r\nexport function isValidTraceParent(value) {\r\n if (!value ||\r\n !_isValid(value[_DYN_VERSION /* @min:%2eversion */], 2, INVALID_VERSION) ||\r\n !_isValid(value[_DYN_TRACE_ID /* @min:%2etraceId */], 32, INVALID_TRACE_ID) ||\r\n !_isValid(value[_DYN_SPAN_ID /* @min:%2espanId */], 16, INVALID_SPAN_ID) ||\r\n !_isValid(_formatFlags(value[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */]), 2)) {\r\n // Each known field must contain a valid value\r\n return false;\r\n }\r\n return true;\r\n}\r\n/**\r\n * Is the parsed traceParent indicating that the trace is currently sampled.\r\n * @param value - The parsed traceParent value\r\n * @returns\r\n */\r\nexport function isSampledFlag(value) {\r\n if (isValidTraceParent(value)) {\r\n return (value[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] & SAMPLED_FLAG) === SAMPLED_FLAG;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Format the ITraceParent value as a string using the supported and know version formats.\r\n * So even if the passed traceParent is a later version the string value returned from this\r\n * function will convert it to only the known version formats.\r\n * This currently only supports version \"00\" and invalid \"ff\"\r\n * @param value - The parsed traceParent value\r\n * @returns\r\n */\r\nexport function formatTraceParent(value) {\r\n if (value) {\r\n // Special Note: This only supports formatting as version 00, future versions should encode any known supported version\r\n // So parsing a future version will populate the correct version value but reformatting will reduce it to version 00.\r\n var flags = _formatFlags(value[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */]);\r\n if (!_isValid(flags, 2)) {\r\n flags = \"01\";\r\n }\r\n var version = value[_DYN_VERSION /* @min:%2eversion */] || DEFAULT_VERSION;\r\n if (version !== \"00\" && version !== \"ff\") {\r\n // Reduce version to \"00\"\r\n version = DEFAULT_VERSION;\r\n }\r\n // Format as version 00\r\n return \"\".concat(version.toLowerCase(), \"-\").concat(_formatValue(value.traceId, 32, INVALID_TRACE_ID).toLowerCase(), \"-\").concat(_formatValue(value.spanId, 16, INVALID_SPAN_ID).toLowerCase(), \"-\").concat(flags.toLowerCase());\r\n }\r\n return \"\";\r\n}\r\n/**\r\n * Helper function to fetch the passed traceparent from the page, looking for it as a meta-tag or a Server-Timing header.\r\n * @param selectIdx - If the found value is comma separated which is the preferred entry to select, defaults to the first\r\n * @returns\r\n */\r\nexport function findW3cTraceParent(selectIdx) {\r\n var name = \"traceparent\";\r\n var traceParent = parseTraceParent(findMetaTag(name), selectIdx);\r\n if (!traceParent) {\r\n traceParent = parseTraceParent(findNamedServerTiming(name), selectIdx);\r\n }\r\n return traceParent;\r\n}\r\n/**\r\n * Find all script tags in the provided document and return the information about them.\r\n * @param doc\r\n * @returns\r\n */\r\nexport function findAllScripts(doc) {\r\n var scripts = doc.getElementsByTagName(\"script\");\r\n var result = [];\r\n arrForEach(scripts, function (script) {\r\n var src = script[_DYN_GET_ATTRIBUTE /* @min:%2egetAttribute */](\"src\");\r\n if (src) {\r\n var crossOrigin = script[_DYN_GET_ATTRIBUTE /* @min:%2egetAttribute */](\"crossorigin\");\r\n var async = script.hasAttribute(\"async\") === true;\r\n var defer = script.hasAttribute(\"defer\") === true;\r\n var referrerPolicy = script[_DYN_GET_ATTRIBUTE /* @min:%2egetAttribute */](\"referrerpolicy\");\r\n var info = { url: src };\r\n if (crossOrigin) {\r\n info.crossOrigin = crossOrigin;\r\n }\r\n if (async) {\r\n info.async = async;\r\n }\r\n if (defer) {\r\n info.defer = defer;\r\n }\r\n if (referrerPolicy) {\r\n info.referrerPolicy = referrerPolicy;\r\n }\r\n result[_DYN_PUSH /* @min:%2epush */](info);\r\n }\r\n });\r\n return result;\r\n}\r\n//# sourceMappingURL=W3cTraceParent.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport { arrForEach, isFunction } from \"@nevware21/ts-utils\";\r\nimport { _DYN_GET_NEXT, _DYN_GET_PLUGIN, _DYN_INITIALIZE, _DYN_IS_INITIALIZED, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_SET_NEXT_PLUGIN, _DYN_SPAN_ID, _DYN_TEARDOWN, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { createElmNodeData } from \"./DataCacheHelper\";\r\nimport { STR_CORE, STR_PRIORITY, STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nimport { isValidSpanId, isValidTraceId } from \"./W3cTraceParent\";\r\nvar pluginStateData = createElmNodeData(\"plugin\");\r\nexport function _getPluginState(plugin) {\r\n return pluginStateData.get(plugin, \"state\", {}, true);\r\n}\r\n/**\r\n * Initialize the queue of plugins\r\n * @param plugins - The array of plugins to initialize and setting of the next plugin\r\n * @param config - The current config for the instance\r\n * @param core - THe current core instance\r\n * @param extensions - The extensions\r\n */\r\nexport function initializePlugins(processContext, extensions) {\r\n // Set the next plugin and identified the uninitialized plugins\r\n var initPlugins = [];\r\n var lastPlugin = null;\r\n var proxy = processContext[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n var pluginState;\r\n while (proxy) {\r\n var thePlugin = proxy[_DYN_GET_PLUGIN /* @min:%2egetPlugin */]();\r\n if (thePlugin) {\r\n if (lastPlugin && lastPlugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */] && thePlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */]) {\r\n // Set this plugin as the next for the previous one\r\n lastPlugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */](thePlugin);\r\n }\r\n pluginState = _getPluginState(thePlugin);\r\n var isInitialized = !!pluginState[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */];\r\n if (thePlugin[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]) {\r\n isInitialized = thePlugin[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]();\r\n }\r\n if (!isInitialized) {\r\n initPlugins[_DYN_PUSH /* @min:%2epush */](thePlugin);\r\n }\r\n lastPlugin = thePlugin;\r\n proxy = proxy[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n }\r\n }\r\n // Now initialize the plugins\r\n arrForEach(initPlugins, function (thePlugin) {\r\n var core = processContext[STR_CORE /* @min:%2ecore */]();\r\n thePlugin[_DYN_INITIALIZE /* @min:%2einitialize */](processContext.getCfg(), core, extensions, processContext[_DYN_GET_NEXT /* @min:%2egetNext */]());\r\n pluginState = _getPluginState(thePlugin);\r\n // Only add the core to the state if the plugin didn't set it (doesn't extend from BaseTelemetryPlugin)\r\n if (!thePlugin[STR_CORE] && !pluginState[STR_CORE]) {\r\n pluginState[STR_CORE] = core;\r\n }\r\n pluginState[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = true;\r\n delete pluginState[_DYN_TEARDOWN /* @min:%2eteardown */];\r\n });\r\n}\r\nexport function sortPlugins(plugins) {\r\n // Sort by priority\r\n return plugins.sort(function (extA, extB) {\r\n var result = 0;\r\n if (extB) {\r\n var bHasProcess = extB[STR_PROCESS_TELEMETRY];\r\n if (extA[STR_PROCESS_TELEMETRY]) {\r\n result = bHasProcess ? extA[STR_PRIORITY] - extB[STR_PRIORITY] : 1;\r\n }\r\n else if (bHasProcess) {\r\n result = -1;\r\n }\r\n }\r\n else {\r\n result = extA ? 1 : -1;\r\n }\r\n return result;\r\n });\r\n // sort complete\r\n}\r\n/**\r\n * Teardown / Unload helper to perform teardown/unloading operations for the provided components synchronously or asynchronously, this will call any\r\n * _doTeardown() or _doUnload() functions on the provided components to allow them to finish removal.\r\n * @param components - The components you want to unload\r\n * @param unloadCtx - This is the context that should be used during unloading.\r\n * @param unloadState - The details / state of the unload process, it holds details like whether it should be unloaded synchronously or asynchronously and the reason for the unload.\r\n * @param asyncCallback - An optional callback that the plugin must call if it returns true to inform the caller that it has completed any async unload/teardown operations.\r\n * @returns boolean - true if the plugin has or will call asyncCallback, this allows the plugin to perform any asynchronous operations.\r\n */\r\nexport function unloadComponents(components, unloadCtx, unloadState, asyncCallback) {\r\n var idx = 0;\r\n function _doUnload() {\r\n while (idx < components[_DYN_LENGTH /* @min:%2elength */]) {\r\n var component = components[idx++];\r\n if (component) {\r\n var func = component._doUnload || component[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */];\r\n if (isFunction(func)) {\r\n if (func.call(component, unloadCtx, unloadState, _doUnload) === true) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return _doUnload();\r\n}\r\n/**\r\n * Creates a IDistributedTraceContext which optionally also \"sets\" the value on a parent\r\n * @param parentCtx - An optional parent distributed trace instance\r\n * @returns A new IDistributedTraceContext instance that uses an internal temporary object\r\n */\r\nexport function createDistributedTraceContext(parentCtx) {\r\n var trace = {};\r\n return {\r\n getName: function () {\r\n return trace[_DYN_NAME /* @min:%2ename */];\r\n },\r\n setName: function (newValue) {\r\n parentCtx && parentCtx.setName(newValue);\r\n trace[_DYN_NAME /* @min:%2ename */] = newValue;\r\n },\r\n getTraceId: function () {\r\n return trace[_DYN_TRACE_ID /* @min:%2etraceId */];\r\n },\r\n setTraceId: function (newValue) {\r\n parentCtx && parentCtx.setTraceId(newValue);\r\n if (isValidTraceId(newValue)) {\r\n trace[_DYN_TRACE_ID /* @min:%2etraceId */] = newValue;\r\n }\r\n },\r\n getSpanId: function () {\r\n return trace[_DYN_SPAN_ID /* @min:%2espanId */];\r\n },\r\n setSpanId: function (newValue) {\r\n parentCtx && parentCtx.setSpanId(newValue);\r\n if (isValidSpanId(newValue)) {\r\n trace[_DYN_SPAN_ID /* @min:%2espanId */] = newValue;\r\n }\r\n },\r\n getTraceFlags: function () {\r\n return trace[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n },\r\n setTraceFlags: function (newTraceFlags) {\r\n parentCtx && parentCtx.setTraceFlags(newTraceFlags);\r\n trace[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = newTraceFlags;\r\n }\r\n };\r\n}\r\n//# sourceMappingURL=TelemetryHelpers.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nimport { arrForEach, dumpObj, isArray, isFunction, isNullOrUndefined, isUndefined, objForEachKey, objFreeze, objKeys } from \"@nevware21/ts-utils\";\r\nimport { _applyDefaultValue } from \"../Config/ConfigDefaults\";\r\nimport { createDynamicConfig } from \"../Config/DynamicConfig\";\r\nimport { _DYN_CREATE_NEW, _DYN_DIAG_LOG, _DYN_GET_NEXT, _DYN_GET_PLUGIN, _DYN_IDENTIFIER, _DYN_IS_ASYNC, _DYN_IS_INITIALIZED, _DYN_LENGTH, _DYN_LOGGER, _DYN_PROCESS_NEXT, _DYN_PUSH, _DYN_SET_DF, _DYN_SET_NEXT_PLUGIN, _DYN_TEARDOWN, _DYN_UNLOAD, _DYN_UPDATE } from \"../__DynamicConstants\";\r\nimport { _throwInternal, safeGetLogger } from \"./DiagnosticLogger\";\r\nimport { proxyFunctions } from \"./HelperFuncs\";\r\nimport { STR_CORE, STR_DISABLED, STR_EMPTY, STR_EXTENSION_CONFIG, STR_PRIORITY, STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nimport { doPerf } from \"./PerfManager\";\r\nimport { _getPluginState } from \"./TelemetryHelpers\";\r\nvar strTelemetryPluginChain = \"TelemetryPluginChain\";\r\nvar strHasRunFlags = \"_hasRun\";\r\nvar strGetTelCtx = \"_getTelCtx\";\r\nvar _chainId = 0;\r\nfunction _getNextProxyStart(proxy, core, startAt) {\r\n while (proxy) {\r\n if (proxy[_DYN_GET_PLUGIN /* @min:%2egetPlugin */]() === startAt) {\r\n return proxy;\r\n }\r\n proxy = proxy[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n }\r\n // This wasn't found in the existing chain so create an isolated one with just this plugin\r\n return createTelemetryProxyChain([startAt], core.config || {}, core);\r\n}\r\n/**\r\n * @ignore\r\n * @param telemetryChain\r\n * @param dynamicHandler\r\n * @param core\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n * @returns\r\n */\r\nfunction _createInternalContext(telemetryChain, dynamicHandler, core, startAt) {\r\n // We have a special case where we want to start execution from this specific plugin\r\n // or we simply reuse the existing telemetry plugin chain (normal execution case)\r\n var _nextProxy = null; // By Default set as no next plugin\r\n var _onComplete = [];\r\n if (!dynamicHandler) {\r\n dynamicHandler = createDynamicConfig({}, null, core[_DYN_LOGGER /* @min:%2elogger */]);\r\n }\r\n if (startAt !== null) {\r\n // There is no next element (null) vs not defined (undefined) so use the full chain\r\n _nextProxy = startAt ? _getNextProxyStart(telemetryChain, core, startAt) : telemetryChain;\r\n }\r\n var context = {\r\n _next: _moveNext,\r\n ctx: {\r\n core: function () {\r\n return core;\r\n },\r\n diagLog: function () {\r\n return safeGetLogger(core, dynamicHandler.cfg);\r\n },\r\n getCfg: function () {\r\n return dynamicHandler.cfg;\r\n },\r\n getExtCfg: _resolveExtCfg,\r\n getConfig: _getConfig,\r\n hasNext: function () {\r\n return !!_nextProxy;\r\n },\r\n getNext: function () {\r\n return _nextProxy;\r\n },\r\n setNext: function (nextPlugin) {\r\n _nextProxy = nextPlugin;\r\n },\r\n iterate: _iterateChain,\r\n onComplete: _addOnComplete\r\n }\r\n };\r\n function _addOnComplete(onComplete, that) {\r\n var args = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n args[_i - 2] = arguments[_i];\r\n }\r\n if (onComplete) {\r\n _onComplete[_DYN_PUSH /* @min:%2epush */]({\r\n func: onComplete,\r\n self: !isUndefined(that) ? that : context.ctx,\r\n args: args\r\n });\r\n }\r\n }\r\n function _moveNext() {\r\n var nextProxy = _nextProxy;\r\n // Automatically move to the next plugin\r\n _nextProxy = nextProxy ? nextProxy[_DYN_GET_NEXT /* @min:%2egetNext */]() : null;\r\n if (!nextProxy) {\r\n var onComplete = _onComplete;\r\n if (onComplete && onComplete[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(onComplete, function (completeDetails) {\r\n try {\r\n completeDetails.func.call(completeDetails.self, completeDetails.args);\r\n }\r\n catch (e) {\r\n _throwInternal(core[_DYN_LOGGER /* @min:%2elogger */], 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, \"Unexpected Exception during onComplete - \" + dumpObj(e));\r\n }\r\n });\r\n _onComplete = [];\r\n }\r\n }\r\n return nextProxy;\r\n }\r\n function _getExtCfg(identifier, createIfMissing) {\r\n var idCfg = null;\r\n var cfg = dynamicHandler.cfg;\r\n if (cfg && identifier) {\r\n var extCfg = cfg[STR_EXTENSION_CONFIG /* @min:%2eextensionConfig */];\r\n if (!extCfg && createIfMissing) {\r\n extCfg = {};\r\n }\r\n // Always set the value so that the property always exists\r\n cfg[STR_EXTENSION_CONFIG] = extCfg; // Note: it is valid for the \"value\" to be undefined\r\n // Calling `ref()` has a side effect of causing the referenced property to become dynamic (if not already)\r\n extCfg = dynamicHandler.ref(cfg, STR_EXTENSION_CONFIG);\r\n if (extCfg) {\r\n idCfg = extCfg[identifier];\r\n if (!idCfg && createIfMissing) {\r\n idCfg = {};\r\n }\r\n // Always set the value so that the property always exists\r\n extCfg[identifier] = idCfg; // Note: it is valid for the \"value\" to be undefined\r\n // Calling `ref()` has a side effect of causing the referenced property to become dynamic (if not already)\r\n idCfg = dynamicHandler.ref(extCfg, identifier);\r\n }\r\n }\r\n return idCfg;\r\n }\r\n function _resolveExtCfg(identifier, defaultValues) {\r\n var newConfig = _getExtCfg(identifier, true);\r\n if (defaultValues) {\r\n // Enumerate over the defaultValues and if not already populated attempt to\r\n // find a value from the root config or use the default value\r\n objForEachKey(defaultValues, function (field, defaultValue) {\r\n // for each unspecified field, set the default value\r\n if (isNullOrUndefined(newConfig[field])) {\r\n var cfgValue = dynamicHandler.cfg[field];\r\n if (cfgValue || !isNullOrUndefined(cfgValue)) {\r\n newConfig[field] = cfgValue;\r\n }\r\n }\r\n _applyDefaultValue(dynamicHandler, newConfig, field, defaultValue);\r\n });\r\n }\r\n return dynamicHandler[_DYN_SET_DF /* @min:%2esetDf */](newConfig, defaultValues);\r\n }\r\n function _getConfig(identifier, field, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = false; }\r\n var theValue;\r\n var extConfig = _getExtCfg(identifier, false);\r\n var rootConfig = dynamicHandler.cfg;\r\n if (extConfig && (extConfig[field] || !isNullOrUndefined(extConfig[field]))) {\r\n theValue = extConfig[field];\r\n }\r\n else if (rootConfig[field] || !isNullOrUndefined(rootConfig[field])) {\r\n theValue = rootConfig[field];\r\n }\r\n return (theValue || !isNullOrUndefined(theValue)) ? theValue : defaultValue;\r\n }\r\n function _iterateChain(cb) {\r\n // Keep processing until we reach the end of the chain\r\n var nextPlugin;\r\n while (!!(nextPlugin = context._next())) {\r\n var plugin = nextPlugin[_DYN_GET_PLUGIN /* @min:%2egetPlugin */]();\r\n if (plugin) {\r\n // callback with the current on\r\n cb(plugin);\r\n }\r\n }\r\n }\r\n return context;\r\n}\r\n/**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n */\r\nexport function createProcessTelemetryContext(telemetryChain, cfg, core, startAt) {\r\n var config = createDynamicConfig(cfg);\r\n var internalContext = _createInternalContext(telemetryChain, config, core, startAt);\r\n var context = internalContext.ctx;\r\n function _processNext(env) {\r\n var nextPlugin = internalContext._next();\r\n if (nextPlugin) {\r\n // Run the next plugin which will call \"processNext()\"\r\n nextPlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */](env, context);\r\n }\r\n return !nextPlugin;\r\n }\r\n function _createNew(plugins, startAt) {\r\n if (plugins === void 0) { plugins = null; }\r\n if (isArray(plugins)) {\r\n plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);\r\n }\r\n return createProcessTelemetryContext(plugins || context[_DYN_GET_NEXT /* @min:%2egetNext */](), config.cfg, core, startAt);\r\n }\r\n context[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = _processNext;\r\n context[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = _createNew;\r\n return context;\r\n}\r\n/**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain for handling the unloading of the chain\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n */\r\nexport function createProcessTelemetryUnloadContext(telemetryChain, core, startAt) {\r\n var config = createDynamicConfig(core.config);\r\n var internalContext = _createInternalContext(telemetryChain, config, core, startAt);\r\n var context = internalContext.ctx;\r\n function _processNext(unloadState) {\r\n var nextPlugin = internalContext._next();\r\n nextPlugin && nextPlugin[_DYN_UNLOAD /* @min:%2eunload */](context, unloadState);\r\n return !nextPlugin;\r\n }\r\n function _createNew(plugins, startAt) {\r\n if (plugins === void 0) { plugins = null; }\r\n if (isArray(plugins)) {\r\n plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);\r\n }\r\n return createProcessTelemetryUnloadContext(plugins || context[_DYN_GET_NEXT /* @min:%2egetNext */](), core, startAt);\r\n }\r\n context[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = _processNext;\r\n context[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = _createNew;\r\n return context;\r\n}\r\n/**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain for updating the configuration\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n */\r\nexport function createProcessTelemetryUpdateContext(telemetryChain, core, startAt) {\r\n var config = createDynamicConfig(core.config);\r\n var internalContext = _createInternalContext(telemetryChain, config, core, startAt);\r\n var context = internalContext.ctx;\r\n function _processNext(updateState) {\r\n return context.iterate(function (plugin) {\r\n if (isFunction(plugin[_DYN_UPDATE /* @min:%2eupdate */])) {\r\n plugin[_DYN_UPDATE /* @min:%2eupdate */](context, updateState);\r\n }\r\n });\r\n }\r\n function _createNew(plugins, startAt) {\r\n if (plugins === void 0) { plugins = null; }\r\n if (isArray(plugins)) {\r\n plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);\r\n }\r\n return createProcessTelemetryUpdateContext(plugins || context[_DYN_GET_NEXT /* @min:%2egetNext */](), core, startAt);\r\n }\r\n context[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = _processNext;\r\n context[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = _createNew;\r\n return context;\r\n}\r\n/**\r\n * Creates an execution chain from the array of plugins\r\n * @param plugins - The array of plugins that will be executed in this order\r\n * @param defItemCtx - The default execution context to use when no telemetry context is passed to processTelemetry(), this\r\n * should be for legacy plugins only. Currently, only used for passing the current core instance and to provide better error\r\n * reporting (hasRun) when errors occur.\r\n */\r\nexport function createTelemetryProxyChain(plugins, config, core, startAt) {\r\n var firstProxy = null;\r\n var add = startAt ? false : true;\r\n if (isArray(plugins) && plugins[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // Create the proxies and wire up the next plugin chain\r\n var lastProxy_1 = null;\r\n arrForEach(plugins, function (thePlugin) {\r\n if (!add && startAt === thePlugin) {\r\n add = true;\r\n }\r\n if (add && thePlugin && isFunction(thePlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */])) {\r\n // Only add plugins that are processors\r\n var newProxy = createTelemetryPluginProxy(thePlugin, config, core);\r\n if (!firstProxy) {\r\n firstProxy = newProxy;\r\n }\r\n if (lastProxy_1) {\r\n // Set this new proxy as the next for the previous one\r\n lastProxy_1._setNext(newProxy);\r\n }\r\n lastProxy_1 = newProxy;\r\n }\r\n });\r\n }\r\n if (startAt && !firstProxy) {\r\n // Special case where the \"startAt\" was not in the original list of plugins\r\n return createTelemetryProxyChain([startAt], config, core);\r\n }\r\n return firstProxy;\r\n}\r\n/**\r\n * Create the processing telemetry proxy instance, the proxy is used to abstract the current plugin to allow monitoring and\r\n * execution plugins while passing around the dynamic execution state (IProcessTelemetryContext), the proxy instance no longer\r\n * contains any execution state and can be reused between requests (this was not the case for 2.7.2 and earlier with the\r\n * TelemetryPluginChain class).\r\n * @param plugin - The plugin instance to proxy\r\n * @param config - The default execution context to use when no telemetry context is passed to processTelemetry(), this\r\n * should be for legacy plugins only. Currently, only used for passing the current core instance and to provide better error\r\n * reporting (hasRun) when errors occur.\r\n * @returns\r\n */\r\nexport function createTelemetryPluginProxy(plugin, config, core) {\r\n var nextProxy = null;\r\n var hasProcessTelemetry = isFunction(plugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */]);\r\n var hasSetNext = isFunction(plugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */]);\r\n var chainId;\r\n if (plugin) {\r\n chainId = plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] + \"-\" + plugin[STR_PRIORITY /* @min:%2epriority */] + \"-\" + _chainId++;\r\n }\r\n else {\r\n chainId = \"Unknown-0-\" + _chainId++;\r\n }\r\n var proxyChain = {\r\n getPlugin: function () {\r\n return plugin;\r\n },\r\n getNext: function () {\r\n return nextProxy;\r\n },\r\n processTelemetry: _processTelemetry,\r\n unload: _unloadPlugin,\r\n update: _updatePlugin,\r\n _id: chainId,\r\n _setNext: function (nextPlugin) {\r\n nextProxy = nextPlugin;\r\n }\r\n };\r\n function _getTelCtx() {\r\n var itemCtx;\r\n // Looks like a plugin didn't pass the (optional) context, so create a new one\r\n if (plugin && isFunction(plugin[strGetTelCtx])) {\r\n // This plugin extends from the BaseTelemetryPlugin so lets use it\r\n itemCtx = plugin[strGetTelCtx]();\r\n }\r\n if (!itemCtx) {\r\n // Create a temporary one\r\n itemCtx = createProcessTelemetryContext(proxyChain, config, core);\r\n }\r\n return itemCtx;\r\n }\r\n function _processChain(itemCtx, processPluginFn, name, details, isAsync) {\r\n var hasRun = false;\r\n var identifier = plugin ? plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] : strTelemetryPluginChain;\r\n var hasRunContext = itemCtx[strHasRunFlags];\r\n if (!hasRunContext) {\r\n // Assign and populate\r\n hasRunContext = itemCtx[strHasRunFlags] = {};\r\n }\r\n // Ensure that we keep the context in sync\r\n itemCtx.setNext(nextProxy);\r\n if (plugin) {\r\n doPerf(itemCtx[STR_CORE /* @min:%2ecore */](), function () { return identifier + \":\" + name; }, function () {\r\n // Mark this component as having run\r\n hasRunContext[chainId] = true;\r\n try {\r\n // Set a flag on the next plugin so we know if it was attempted to be executed\r\n var nextId = nextProxy ? nextProxy._id : STR_EMPTY;\r\n if (nextId) {\r\n hasRunContext[nextId] = false;\r\n }\r\n hasRun = processPluginFn(itemCtx);\r\n }\r\n catch (error) {\r\n var hasNextRun = nextProxy ? hasRunContext[nextProxy._id] : true;\r\n if (hasNextRun) {\r\n // The next plugin after us has already run so set this one as complete\r\n hasRun = true;\r\n }\r\n if (!nextProxy || !hasNextRun) {\r\n // Either we have no next plugin or the current one did not attempt to call the next plugin\r\n // Which means the current one is the root of the failure so log/report this failure\r\n _throwInternal(itemCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 73 /* _eInternalMessageId.PluginException */, \"Plugin [\" + identifier + \"] failed during \" + name + \" - \" + dumpObj(error) + \", run flags: \" + dumpObj(hasRunContext));\r\n }\r\n }\r\n }, details, isAsync);\r\n }\r\n return hasRun;\r\n }\r\n function _processTelemetry(env, itemCtx) {\r\n itemCtx = itemCtx || _getTelCtx();\r\n function _callProcessTelemetry(itemCtx) {\r\n if (!plugin || !hasProcessTelemetry) {\r\n return false;\r\n }\r\n var pluginState = _getPluginState(plugin);\r\n if (pluginState[_DYN_TEARDOWN /* @min:%2eteardown */] || pluginState[STR_DISABLED]) {\r\n return false;\r\n }\r\n // Ensure that we keep the context in sync (for processNext()), just in case a plugin\r\n // doesn't calls processTelemetry() instead of itemContext.processNext() or some\r\n // other form of error occurred\r\n if (hasSetNext) {\r\n // Backward compatibility setting the next plugin on the instance\r\n plugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */](nextProxy);\r\n }\r\n plugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */](env, itemCtx);\r\n // Process Telemetry is expected to call itemCtx.processNext() or nextPlugin.processTelemetry()\r\n return true;\r\n }\r\n if (!_processChain(itemCtx, _callProcessTelemetry, \"processTelemetry\", function () { return ({ item: env }); }, !(env.sync))) {\r\n // The underlying plugin is either not defined, not enabled or does not have a processTelemetry implementation\r\n // so we still want the next plugin to be executed.\r\n itemCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](env);\r\n }\r\n }\r\n function _unloadPlugin(unloadCtx, unloadState) {\r\n function _callTeardown() {\r\n // Setting default of hasRun as false so the proxyProcessFn() is called as teardown() doesn't have to exist or call unloadNext().\r\n var hasRun = false;\r\n if (plugin) {\r\n var pluginState = _getPluginState(plugin);\r\n var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE /* @min:%2ecore */];\r\n // Only teardown the plugin if it was initialized by the current core (i.e. It's not a shared plugin)\r\n if (plugin && (!pluginCore || pluginCore === unloadCtx.core()) && !pluginState[_DYN_TEARDOWN /* @min:%2eteardown */]) {\r\n // Handle plugins that don't extend from the BaseTelemetryPlugin\r\n pluginState[STR_CORE /* @min:%2ecore */] = null;\r\n pluginState[_DYN_TEARDOWN /* @min:%2eteardown */] = true;\r\n pluginState[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = false;\r\n if (plugin[_DYN_TEARDOWN /* @min:%2eteardown */] && plugin[_DYN_TEARDOWN /* @min:%2eteardown */](unloadCtx, unloadState) === true) {\r\n // plugin told us that it was going to (or has) call unloadCtx.processNext()\r\n hasRun = true;\r\n }\r\n }\r\n }\r\n return hasRun;\r\n }\r\n if (!_processChain(unloadCtx, _callTeardown, \"unload\", function () { }, unloadState[_DYN_IS_ASYNC /* @min:%2eisAsync */])) {\r\n // Only called if we hasRun was not true\r\n unloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](unloadState);\r\n }\r\n }\r\n function _updatePlugin(updateCtx, updateState) {\r\n function _callUpdate() {\r\n // Setting default of hasRun as false so the proxyProcessFn() is called as teardown() doesn't have to exist or call unloadNext().\r\n var hasRun = false;\r\n if (plugin) {\r\n var pluginState = _getPluginState(plugin);\r\n var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE /* @min:%2ecore */];\r\n // Only update the plugin if it was initialized by the current core (i.e. It's not a shared plugin)\r\n if (plugin && (!pluginCore || pluginCore === updateCtx.core()) && !pluginState[_DYN_TEARDOWN /* @min:%2eteardown */]) {\r\n if (plugin[_DYN_UPDATE /* @min:%2eupdate */] && plugin[_DYN_UPDATE /* @min:%2eupdate */](updateCtx, updateState) === true) {\r\n // plugin told us that it was going to (or has) call unloadCtx.processNext()\r\n hasRun = true;\r\n }\r\n }\r\n }\r\n return hasRun;\r\n }\r\n if (!_processChain(updateCtx, _callUpdate, \"update\", function () { }, false)) {\r\n // Only called if we hasRun was not true\r\n updateCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](updateState);\r\n }\r\n }\r\n return objFreeze(proxyChain);\r\n}\r\n/**\r\n * This class will be removed!\r\n * @deprecated use createProcessTelemetryContext() instead\r\n */\r\nvar ProcessTelemetryContext = /** @class */ (function () {\r\n /**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n */\r\n function ProcessTelemetryContext(pluginChain, config, core, startAt) {\r\n var _self = this;\r\n var context = createProcessTelemetryContext(pluginChain, config, core, startAt);\r\n // Proxy all functions of the context to this object\r\n proxyFunctions(_self, context, objKeys(context));\r\n }\r\n return ProcessTelemetryContext;\r\n}());\r\nexport { ProcessTelemetryContext };\r\n//# sourceMappingURL=ProcessTelemetryContext.js.map","/*\r\n * @nevware21/ts-async\r\n * https://github.com/nevware21/ts-async\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { objDefineProperties } from \"@nevware21/ts-utils\";\r\n\r\nlet _debugState: any;\r\nlet _debugResult: any;\r\nlet _debugHandled: any;\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n */\r\nexport let _promiseDebugEnabled = false;\r\n\r\n//#ifdef DEBUG\r\n//#:(!DEBUG) let _theLogger: (id: string, message: string) => void = null;\r\n//#endif\r\n\r\n/**\r\n * @internal\r\n * @ignore Internal function enable logging the internal state of the promise during execution, this code and references are\r\n * removed from the production artifacts\r\n */\r\nexport const _debugLog = /*#__PURE__*/(id: string, message: string) => {\r\n //#ifdef DEBUG\r\n //#:(!DEBUG) if (_theLogger) {\r\n //#:(!DEBUG) _theLogger(id, message);\r\n //#:(!DEBUG) }\r\n //#endif\r\n}\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n * Internal function to add the debug state to the promise so that it provides simular visibility as you would\r\n * see from native promises\r\n * @param thePromise - The Promise implementation\r\n * @param stateFn - The function to return the state of the promise\r\n * @param resultFn - The function to return the result (settled value) of the promise\r\n * @param handledFn - The function to return whether the promise has been handled (used for throwing\r\n * unhandled rejection events)\r\n */\r\nexport function _addDebugState(thePromise: any, stateFn: () => string, resultFn: () => string, handledFn: () => boolean) {\r\n // While the IPromise implementations provide a `state` property, keeping the `[[PromiseState]]`\r\n // as native promises also have a non-enumerable property of the same name\r\n _debugState = _debugState || { toString: () => \"[[PromiseState]]\" };\r\n _debugResult = _debugResult || { toString: () => \"[[PromiseResult]]\" };\r\n _debugHandled = _debugHandled || { toString: () => \"[[PromiseIsHandled]]\" };\r\n \r\n let props: PropertyDescriptorMap = {};\r\n props[_debugState] = { get: stateFn };\r\n props[_debugResult] = { get: resultFn };\r\n props[_debugHandled] = { get: handledFn };\r\n\r\n objDefineProperties(thePromise, props);\r\n}\r\n\r\n/**\r\n * Debug helper to enable internal debugging of the promise implementations. Disabled by default.\r\n * For the generated packages included in the npm package the `logger` will not be called as the\r\n * `_debugLog` function that uses this logger is removed during packaging.\r\n *\r\n * It is available directly from the repository for unit testing.\r\n *\r\n * @group Debug\r\n * @param enabled - Should debugging be enabled (defaults `false`, when `true` promises will have\r\n * additional debug properties and the `toString` will include extra details.\r\n * @param logger - Optional logger that will log internal state changes, only called in debug\r\n * builds as the calling function is removed is the production artifacts.\r\n * @example\r\n * ```ts\r\n * // The Id is the id of the promise\r\n * // The message is the internal debug message\r\n * function promiseDebugLogger(id: string, message: string) {\r\n * if (console && console.log) {\r\n * console.log(id, message);\r\n * }\r\n * }\r\n *\r\n * setPromiseDebugState(true, promiseDebugLogger);\r\n *\r\n * // While the logger will not be called for the production packages\r\n * // Setting the `enabled` flag to tru will cause each promise to have\r\n * // the following additional properties added\r\n * // [[PromiseState]]; => Same as the `state` property\r\n * // [[PromiseResult]]; => The settled value\r\n * // [[PromiseIsHandled]] => Identifies if the promise has been handled\r\n * // It will also cause the `toString` for the promise to include additional\r\n * // debugging information\r\n * ```\r\n */\r\nexport function setPromiseDebugState(enabled: boolean, logger?: (id: string, message: string) => void) {\r\n _promiseDebugEnabled = enabled;\r\n //#ifdef DEBUG\r\n //#:(!DEBUG) _theLogger = logger;\r\n //#endif\r\n}","import { createEnumStyle } from \"./EnumHelperFuncs\";\r\nexport var ActiveStatus = createEnumStyle({\r\n NONE: 0 /* eActiveStatus.NONE */,\r\n PENDING: 3 /* eActiveStatus.PENDING */,\r\n INACTIVE: 1 /* eActiveStatus.INACTIVE */,\r\n ACTIVE: 2 /* eActiveStatus.ACTIVE */\r\n});\r\n//# sourceMappingURL=InitActiveStatusEnum.js.map","/*\r\n * @nevware21/ts-async\r\n * https://github.com/nevware21/ts-async\r\n *\r\n * Copyright (c) 2023 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nexport const STR_PROMISE = \"Promise\";\r\nexport const DONE = \"done\";\r\nexport const VALUE = \"value\";\r\nexport const ITERATOR = \"iterator\";\r\nexport const RETURN = \"return\";\r\nexport const REJECTED = \"rejected\";","/*\r\n * @nevware21/ts-async\r\n * https://github.com/nevware21/ts-async\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { isPromiseLike } from \"@nevware21/ts-utils\";\r\nimport { AwaitResponse } from \"../interfaces/await-response\";\r\nimport { IPromise } from \"../interfaces/IPromise\";\r\nimport { FinallyPromiseHandler, RejectedPromiseHandler, ResolvedPromiseHandler } from \"../interfaces/types\";\r\nimport { REJECTED } from \"../internal/constants\";\r\n\r\n/**\r\n * Helper to coallesce the promise resolved / reject into a single callback to simplify error handling.\r\n * @group Await Helper\r\n * @param value - The value or promise like value to wait\r\n * @param cb - The callback function to call with the resulting value, if the value is not a\r\n * promise like value then the callback is called synchronously, if the value is a promise then\r\n * the callback will be called once the promise completes the resulting value will be passed as an\r\n * IAwaitResponse instance, it will be called whether any promise resolves or rejects.\r\n * @returns The value returned by the `cb` callback function, if the value is a promise then the return value\r\n * of the callback will be returned as a promise whether the callback returns a promise or not.\r\n * @example\r\n * ```ts\r\n * let promise = createPromise((resolve, reject) => {\r\n * resolve(42);\r\n * });\r\n *\r\n * // Handle via doAwaitResponse\r\n * doAwaitResponse(promise, (value) => {\r\n * if (!value.rejected) {\r\n * // Do something with the value\r\n * } else {\r\n * // Do something with the reason\r\n * }\r\n * });\r\n *\r\n * // It can also handle the raw value, so you could process the result of either a\r\n * // synchrounous return of the value or a Promise\r\n * doAwaitResponse(42, (value) => {\r\n * if (!value.rejected) {\r\n * // Do something with the value\r\n * } else {\r\n * // This will never be true as the value is not a promise\r\n * }\r\n * });\r\n * ```\r\n */\r\nexport function doAwaitResponse(value: T | Promise, cb: (response: AwaitResponse) => T | TResult1 | TResult2 | Promise): T | TResult1 | TResult2 | Promise;\r\n\r\n/**\r\n * Helper to coallesce the promise resolved / reject into a single callback to simplify error handling.\r\n * @group Await Helper\r\n * @param value - The value or promise like value to wait for\r\n * @param cb - The callback function to call with the resulting value, if the value is not a\r\n * promise like value then the callback is called synchronously, if the value is a promise then\r\n * the callback will be called once the promise completes the resulting value will be passed as an\r\n * IAwaitResponse instance, it will be called whether any promise resolves or rejects.\r\n * @returns The value returned by the `cb` callback function, if the value is a promise then the return value\r\n * of the callback will be returned as a promise whether the callback returns a promise or not.\r\n * @example\r\n * ```ts\r\n * let promise = createPromise((resolve, reject) => {\r\n * resolve(42);\r\n * });\r\n *\r\n * // Handle via doAwaitResponse\r\n * doAwaitResponse(promise, (value) => {\r\n * if (!value.rejected) {\r\n * // Do something with the value\r\n * } else {\r\n * // Do something with the reason\r\n * }\r\n * });\r\n *\r\n * // It can also handle the raw value, so you could process the result of either a\r\n * // synchrounous return of the value or a Promise\r\n * doAwaitResponse(42, (value) => {\r\n * if (!value.rejected) {\r\n * // Do something with the value\r\n * } else {\r\n * // This will never be true as the value is not a promise\r\n * }\r\n * });\r\n * ```\r\n */\r\nexport function doAwaitResponse(value: T | PromiseLike, cb: (response: AwaitResponse) => T | TResult1 | TResult2 | PromiseLike): T | TResult1 | TResult2 | PromiseLike;\r\n\r\n/**\r\n * Helper to coallesce the promise resolved / reject into a single callback to simplify error handling.\r\n * @group Await Helper\r\n * @param value - The value or promise like value to wait to be resolved or rejected.\r\n * @param cb - The callback function to call with the resulting value, if the value is not a\r\n * promise like value then the callback is called synchronously, if the value is a promise then\r\n * the callback will be called once the promise completes the resulting value will be passed as an\r\n * IAwaitResponse instance, it will be called whether any promise resolves or rejects.\r\n * @returns The value returned by the `cb` callback function, if the value is a promise then the return value\r\n * of the callback will be returned as a promise whether the callback returns a promise or not.\r\n * @example\r\n * ```ts\r\n * let promise = createPromise((resolve, reject) => {\r\n * resolve(42);\r\n * });\r\n *\r\n * // Handle via doAwaitResponse\r\n * doAwaitResponse(promise, (value) => {\r\n * if (!value.rejected) {\r\n * // Do something with the value\r\n * } else {\r\n * // Do something with the reason\r\n * }\r\n * });\r\n *\r\n * // It can also handle the raw value, so you could process the result of either a\r\n * // synchrounous return of the value or a Promise\r\n * doAwaitResponse(42, (value) => {\r\n * if (!value.rejected) {\r\n * // Do something with the value\r\n * } else {\r\n * // This will never be true as the value is not a promise\r\n * }\r\n * });\r\n * ```\r\n */\r\nexport function doAwaitResponse(value: T | IPromise, cb: (response: AwaitResponse) => T | TResult1 | TResult2 | IPromise): T | TResult1 | TResult2 | IPromise {\r\n return doAwait(value as T, (value) => {\r\n return cb ? cb({\r\n status: \"fulfilled\",\r\n rejected: false,\r\n value: value\r\n }) : value;\r\n },\r\n (reason) => {\r\n return cb ? cb({\r\n status: REJECTED,\r\n rejected: true,\r\n reason: reason\r\n }) : reason;\r\n });\r\n}\r\n\r\n/**\r\n * Wait for the promise to resolve or reject, if resolved the callback function will be called with it's value and if\r\n * rejected the rejectFn will be called with the reason. If the passed promise argument is not a promise the callback\r\n * will be called synchronously with the value.\r\n * @group Await Helper\r\n * @param value - The value or promise like value to wait for\r\n * @param resolveFn - The callback to call on the promise successful resolving.\r\n * @param rejectFn - The callback to call when the promise rejects\r\n * @param finallyFn - The callback to call once the promise has resolved or rejected\r\n * @returns The passed value, if it is a promise and there is either a resolve or reject handler\r\n * then it will return a chained promise with the value from the resolve or reject handler (depending\r\n * whether it resolve or rejects)\r\n * @example\r\n * ```ts\r\n * let promise = createPromise((resolve, reject) => {\r\n * resolve(42);\r\n * });\r\n *\r\n * // Handle via a chained promise\r\n * let chainedPromise = promise.then((value) => {\r\n * // Do something with the value\r\n * });\r\n *\r\n * // Handle via doAwait\r\n * doAwait(promise, (value) => {\r\n * // Do something with the value\r\n * });\r\n *\r\n * // It can also handle the raw value, so you could process the result of either a\r\n * // synchrounous return of the value or a Promise\r\n * doAwait(42, (value) => {\r\n * // Do something with the value\r\n * });\r\n * ```\r\n */\r\nexport function doAwait(value: T | Promise, resolveFn: ResolvedPromiseHandler, rejectFn?: RejectedPromiseHandler, finallyFn?: FinallyPromiseHandler): TResult1 | TResult2 | Promise;\r\n\r\n/**\r\n * Wait for the promise to resolve or reject, if resolved the callback function will be called with it's value and if\r\n * rejected the rejectFn will be called with the reason. If the passed promise argument is not a promise the callback\r\n * will be called synchronously with the value.\r\n * @group Await Helper\r\n * @param value - The value or promise like value to wait for\r\n * @param resolveFn - The callback to call on the promise successful resolving.\r\n * @param rejectFn - The callback to call when the promise rejects\r\n * @param finallyFn - The callback to call once the promise has resolved or rejected\r\n * @returns The passed value, if it is a promise and there is either a resolve or reject handler\r\n * then it will return a chained promise with the value from the resolve or reject handler (depending\r\n * whether it resolve or rejects)\r\n * @example\r\n * ```ts\r\n * let promise = createPromise((resolve, reject) => {\r\n * resolve(42);\r\n * });\r\n *\r\n * // Handle via a chained promise\r\n * let chainedPromise = promise.then((value) => {\r\n * // Do something with the value\r\n * });\r\n *\r\n * // Handle via doAwait\r\n * doAwait(promise, (value) => {\r\n * // Do something with the value\r\n * });\r\n *\r\n * // It can also handle the raw value, so you could process the result of either a\r\n * // synchrounous return of the value or a Promise\r\n * doAwait(42, (value) => {\r\n * // Do something with the value\r\n * });\r\n * ```\r\n */\r\nexport function doAwait(value: T | PromiseLike, resolveFn: ResolvedPromiseHandler, rejectFn?: RejectedPromiseHandler, finallyFn?: FinallyPromiseHandler): TResult1 | TResult2 | PromiseLike;\r\n\r\n/**\r\n * Wait for the promise to resolve or reject, if resolved the callback function will be called with it's value and if\r\n * rejected the rejectFn will be called with the reason. If the passed promise argument is not a promise the callback\r\n * will be called synchronously with the value.\r\n * @group Await Helper\r\n * @param value - The value or promise like value to wait for\r\n * @param resolveFn - The callback to call on the promise successful resolving.\r\n * @param rejectFn - The callback to call when the promise rejects\r\n * @param finallyFn - The callback to call once the promise has resolved or rejected\r\n * @returns The passed value, if it is a promise and there is either a resolve or reject handler\r\n * then it will return a chained promise with the value from the resolve or reject handler (depending\r\n * whether it resolve or rejects)\r\n * @example\r\n * ```ts\r\n * let promise = createPromise((resolve, reject) => {\r\n * resolve(42);\r\n * });\r\n *\r\n * // Handle via a chained promise\r\n * let chainedPromise = promise.then((value) => {\r\n * // Do something with the value\r\n * });\r\n *\r\n * // Handle via doAwait\r\n * doAwait(promise, (value) => {\r\n * // Do something with the value\r\n * });\r\n *\r\n * // It can also handle the raw value, so you could process the result of either a\r\n * // synchrounous return of the value or a Promise\r\n * doAwait(42, (value) => {\r\n * // Do something with the value\r\n * });\r\n * ```\r\n */\r\nexport function doAwait(value: T | IPromise, resolveFn: ResolvedPromiseHandler, rejectFn?: RejectedPromiseHandler, finallyFn?: FinallyPromiseHandler): TResult1 | TResult2 | IPromise {\r\n let result: T | TResult1 | TResult2 | IPromise | PromiseLike = value;\r\n \r\n try {\r\n if (isPromiseLike(value)) {\r\n if (resolveFn || rejectFn) {\r\n result = value.then(resolveFn, rejectFn) as any;\r\n }\r\n } else {\r\n try {\r\n if (resolveFn) {\r\n result = resolveFn(value);\r\n }\r\n } catch (err) {\r\n if (rejectFn) {\r\n result = rejectFn(err);\r\n } else {\r\n throw err;\r\n }\r\n }\r\n }\r\n } finally {\r\n if (finallyFn) {\r\n doFinally(result as any, finallyFn);\r\n }\r\n }\r\n\r\n return result as any;\r\n}\r\n\r\n/**\r\n * Wait for the promise to resolve or reject and then call the finallyFn. If the passed promise argument is not a promise the callback\r\n * will be called synchronously with the value. If the passed promise doesn't implement finally then a finally implementation will be\r\n * simulated using then(..., ...).\r\n * @group Await Helper\r\n * @param value - The value or promise like value to wait for\r\n * @param finallyFn - The finally function to call once the promise has resolved or rejected\r\n */\r\nexport function doFinally(value: T | Promise, finallyFn: FinallyPromiseHandler): T | Promise;\r\n\r\n/**\r\n * Wait for the promise to resolve or reject and then call the finallyFn. If the passed promise argument is not a promise the callback\r\n * will be called synchronously with the value. If the passed promise doesn't implement finally then a finally implementation will be\r\n * simulated using then(..., ...).\r\n * @group Await Helper\r\n * @param value - The value or promise like value to wait for\r\n * @param finallyFn - The finally function to call once the promise has resolved or rejected\r\n */\r\nexport function doFinally(value: T | PromiseLike, finallyFn: FinallyPromiseHandler): T | PromiseLike;\r\n\r\n/**\r\n * Wait for the promise to resolve or reject and then call the finallyFn. If the passed promise argument is not a promise the callback\r\n * will be called synchronously with the value. If the passed promise doesn't implement finally then a finally implementation will be\r\n * simulated using then(..., ...).\r\n * @group Await Helper\r\n * @param value - The value or promise like value to wait for\r\n * @param finallyFn - The finally function to call once the promise has resolved or rejected\r\n */\r\nexport function doFinally(value: T | IPromise, finallyFn: FinallyPromiseHandler): T | IPromise {\r\n let result = value;\r\n if (finallyFn) {\r\n if (isPromiseLike(value)) {\r\n if ((value as IPromise).finally) {\r\n result = (value as IPromise).finally(finallyFn);\r\n } else {\r\n // Simulate finally if not available\r\n result = value.then(\r\n function(value) {\r\n finallyFn();\r\n return value;\r\n }, function(reason: any) {\r\n finallyFn();\r\n throw reason;\r\n });\r\n }\r\n } else {\r\n finallyFn();\r\n }\r\n }\r\n\r\n return result;\r\n}","/*\r\n * @nevware21/ts-async\r\n * https://github.com/nevware21/ts-async\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { REJECTED } from \"./constants\";\r\n\r\n/**\r\n * @ignore -- Don't include in the generated documentation\r\n * @internal\r\n */\r\nexport const enum ePromiseState {\r\n Pending = 0,\r\n Resolving = 1,\r\n Resolved = 2,\r\n Rejected = 3\r\n}\r\n\r\n/**\r\n * @ignore -- Don't include in the generated documentation\r\n * @internal\r\n */\r\nexport const STRING_STATES: string[] = /*#__PURE__*/[\r\n \"pending\", \"resolving\", \"resolved\", REJECTED\r\n];\r\n","/*\r\n * @nevware21/ts-async\r\n * https://github.com/nevware21/ts-async\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { dumpObj, getDocument, getInst, ICachedValue, createCachedValue, safe } from \"@nevware21/ts-utils\";\r\n\r\nconst DISPATCH_EVENT = \"dispatchEvent\";\r\nlet _hasInitEvent: ICachedValue;\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n * Helper function to determine if the document has the `initEvent` function\r\n * @param doc - The document to check\r\n * @returns\r\n */\r\nfunction _hasInitEventFn(doc: Document) {\r\n let evt: any;\r\n if (doc && doc.createEvent) {\r\n evt = doc.createEvent(\"Event\");\r\n }\r\n \r\n return (!!evt && evt.initEvent);\r\n}\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n * @param target\r\n * @param evtName\r\n * @param populateEvent\r\n * @param useNewEvent\r\n */\r\nexport function emitEvent(target: any, evtName: string, populateEvent: (theEvt: Event | any) => Event | any, useNewEvent: boolean) {\r\n\r\n let doc = getDocument();\r\n !_hasInitEvent && (_hasInitEvent = createCachedValue(!!safe(_hasInitEventFn, [ doc ]).v));\r\n\r\n let theEvt: Event = _hasInitEvent.v ? doc.createEvent(\"Event\") : (useNewEvent ? new Event(evtName) : {} as Event);\r\n populateEvent && populateEvent(theEvt);\r\n\r\n if (_hasInitEvent.v) {\r\n theEvt.initEvent(evtName, false, true);\r\n }\r\n\r\n if (theEvt && target[DISPATCH_EVENT]) {\r\n target[DISPATCH_EVENT](theEvt);\r\n } else {\r\n let handler = target[\"on\" + evtName];\r\n if (handler) {\r\n handler(theEvt);\r\n } else {\r\n let theConsole = getInst(\"console\");\r\n theConsole && (theConsole[\"error\"] || theConsole[\"log\"])(evtName, dumpObj(theEvt));\r\n }\r\n }\r\n}\r\n","/*\r\n * @nevware21/ts-async\r\n * https://github.com/nevware21/ts-async\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport {\r\n arrSlice, dumpObj, getKnownSymbol, hasSymbol, isFunction, isPromiseLike, isUndefined,\r\n throwTypeError, WellKnownSymbols, objToString, scheduleTimeout, ITimerHandler, getWindow, isNode,\r\n getGlobal, objDefine, objDefineProp, iterForOf, isIterable, isArray, arrForEach, createCachedValue,\r\n ICachedValue, safe, getInst, createCustomError\r\n} from \"@nevware21/ts-utils\";\r\nimport { doAwait, doAwaitResponse } from \"./await\";\r\nimport { _addDebugState, _promiseDebugEnabled } from \"./debug\";\r\nimport { IPromise } from \"../interfaces/IPromise\";\r\nimport { PromisePendingProcessor } from \"./itemProcessor\";\r\nimport {\r\n FinallyPromiseHandler, PromiseCreatorFn, PromiseExecutor, RejectedPromiseHandler, ResolvedPromiseHandler\r\n} from \"../interfaces/types\";\r\nimport { ePromiseState, STRING_STATES } from \"../internal/state\";\r\nimport { emitEvent } from \"./event\";\r\nimport { REJECTED, STR_PROMISE } from \"../internal/constants\";\r\nimport { IPromiseResult } from \"../interfaces/IPromiseResult\";\r\n\r\n//#ifdef DEBUG\r\n//#:(!DEBUG) import { _debugLog } from \"./debug\";\r\n//#endif\r\n\r\nconst NODE_UNHANDLED_REJECTION = \"unhandledRejection\";\r\nconst UNHANDLED_REJECTION = NODE_UNHANDLED_REJECTION.toLowerCase();\r\n\r\nlet _currentPromiseId: number[] = [];\r\nlet _uniquePromiseId = 0;\r\nlet _unhandledRejectionTimeout = 10;\r\nlet _aggregationError: ICachedValue;\r\n\r\n/**\r\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PromiseRejectionEvent)\r\n */\r\ninterface _PromiseRejectionEvent extends Event {\r\n /**\r\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PromiseRejectionEvent/promise)\r\n */\r\n readonly promise: IPromise;\r\n\r\n /**\r\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PromiseRejectionEvent/reason)\r\n */\r\n readonly reason: any;\r\n}\r\n\r\nlet _hasPromiseRejectionEvent: ICachedValue<_PromiseRejectionEvent>;\r\n\r\nfunction dumpFnObj(value: any) {\r\n if (isFunction(value)) {\r\n return value.toString();\r\n }\r\n\r\n return dumpObj(value);\r\n}\r\n\r\n//#ifdef DEBUG\r\n//#:(!DEBUG) function _getCaller(prefix: string, start: number) {\r\n//#:(!DEBUG) let stack = new Error().stack;\r\n//#:(!DEBUG) if (stack) {\r\n//#:(!DEBUG) let lines = stack.split(\"\\n\");\r\n//#:(!DEBUG) if (lines.length > start) {\r\n//#:(!DEBUG) return prefix + \":\" + arrSlice(lines, start, start + 5).join(\"\\n\") + \"\\n...\";\r\n//#:(!DEBUG) }\r\n//#:(!DEBUG) }\r\n//#:(!DEBUG) return null;\r\n//#:(!DEBUG) }\r\n//#endif\r\n\r\n/*#__NO_SIDE_EFFECTS__*/\r\nfunction _createAggregationError(values: any[]) {\r\n !_aggregationError && (_aggregationError = createCachedValue(safe(getInst, [\"AggregationError\"]).v || createCustomError(\"AggregationError\", (self, args) => {\r\n self.errors = args[0];\r\n })));\r\n\r\n return new _aggregationError.v(values);\r\n}\r\n\r\n/**\r\n * @ignore\r\n * @internal\r\n *\r\n * Implementing a simple synchronous promise interface for support within any environment that\r\n * doesn't support the Promise API\r\n * @param newPromise - The delegate function used to create a new promise object\r\n * @param processor - The function to use to process the pending\r\n * @param executor - The resolve function\r\n * @param additionalArgs - [Optional] Additional arguments that will be passed to the PromiseCreatorFn\r\n */\r\nexport function _createPromise(newPromise: PromiseCreatorFn, processor: PromisePendingProcessor, executor: PromiseExecutor, ...additionalArgs: any): IPromise;\r\n\r\n/**\r\n * @ignore\r\n * @internal\r\n *\r\n * Implementing a simple synchronous promise interface for support within any environment that\r\n * doesn't support the Promise API\r\n * @param newPromise - The delegate function used to create a new promise object\r\n * @param processor - The function to use to process the pending\r\n * @param executor - The resolve function\r\n * @param additionalArgs - [Optional] Additional arguments that will be passed to the PromiseCreatorFn\r\n */\r\nexport function _createPromise(newPromise: PromiseCreatorFn, processor: PromisePendingProcessor, executor: PromiseExecutor): IPromise {\r\n let additionalArgs = arrSlice(arguments, 3);\r\n let _state = ePromiseState.Pending;\r\n let _hasResolved = false;\r\n let _settledValue: T;\r\n let _queue: (() => void)[] = [];\r\n let _id = _uniquePromiseId++;\r\n let _parentId = _currentPromiseId.length > 0 ? _currentPromiseId[_currentPromiseId.length - 1] : undefined;\r\n let _handled = false;\r\n let _unHandledRejectionHandler: ITimerHandler = null;\r\n let _thePromise: IPromise;\r\n \r\n // https://tc39.es/ecma262/#sec-promise.prototype.then\r\n function _then(onResolved?: ResolvedPromiseHandler, onRejected?: RejectedPromiseHandler): IPromise {\r\n try {\r\n _currentPromiseId.push(_id);\r\n _handled = true;\r\n _unHandledRejectionHandler && _unHandledRejectionHandler.cancel();\r\n _unHandledRejectionHandler = null;\r\n\r\n let thenPromise = newPromise(function (resolve, reject) {\r\n //#ifdef DEBUG\r\n //#:(!DEBUG) _debugLog(_toString(), _getCaller(\"_then\", 7));\r\n //#endif\r\n\r\n // Queue the new promise returned to be resolved or rejected\r\n // when this promise settles.\r\n _queue.push(function () {\r\n // https://tc39.es/ecma262/#sec-newpromisereactionjob\r\n //let value: any;\r\n try {\r\n // First call the onFulfilled or onRejected handler, on the settled value\r\n // of this promise. If the corresponding `handler` does not exist, simply\r\n // pass through the settled value.\r\n //#ifdef DEBUG\r\n //#:(!DEBUG) _debugLog(_toString(), \"Handling settled value \" + dumpFnObj(_settledValue));\r\n //#endif\r\n let handler = _state === ePromiseState.Resolved ? onResolved : onRejected;\r\n let value = isUndefined(handler) ? _settledValue : (isFunction(handler) ? handler(_settledValue) : handler);\r\n //#ifdef DEBUG\r\n //#:(!DEBUG) _debugLog(_toString(), \"Handling Result \" + dumpFnObj(value));\r\n //#endif\r\n \r\n if (isPromiseLike(value)) {\r\n // The called handlers returned a new promise, so the chained promise\r\n // will follow the state of this promise.\r\n value.then(resolve as any, reject);\r\n } else if (handler) {\r\n // If we have a handler then chained promises are always \"resolved\" with the result returned\r\n resolve(value as any);\r\n } else if (_state === ePromiseState.Rejected) {\r\n // If this promise is rejected then the chained promise should be rejected\r\n // with either the settled value of this promise or the return value of the handler.\r\n reject(value);\r\n } else {\r\n // If this promise is fulfilled, then the chained promise is also fulfilled\r\n // with either the settled value of this promise or the return value of the handler.\r\n resolve(value as any);\r\n }\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n \r\n //#ifdef DEBUG\r\n //#:(!DEBUG) _debugLog(_toString(), \"Added to Queue \" + _queue.length);\r\n //#endif\r\n \r\n // If this promise is already settled, then immediately process the callback we\r\n // just added to the queue.\r\n if (_hasResolved) {\r\n _processQueue();\r\n }\r\n }, additionalArgs);\r\n \r\n //#ifdef DEBUG\r\n //#:(!DEBUG) _debugLog(_toString(), \"Created -> \" + thenPromise.toString());\r\n //#endif\r\n \r\n return thenPromise;\r\n \r\n } finally {\r\n _currentPromiseId.pop();\r\n }\r\n }\r\n\r\n // https://tc39.es/ecma262/#sec-promise.prototype.catch\r\n function _catch(onRejected: RejectedPromiseHandler) {\r\n // Reuse then onRejected to support rejection\r\n return _then(undefined, onRejected);\r\n }\r\n\r\n // https://tc39.es/ecma262/#sec-promise.prototype.finally\r\n function _finally(onFinally: FinallyPromiseHandler): IPromise {\r\n let thenFinally: any = onFinally;\r\n let catchFinally: any = onFinally;\r\n if (isFunction(onFinally)) {\r\n thenFinally = function(value: TResult1 | TResult2) {\r\n onFinally && onFinally();\r\n return value;\r\n }\r\n \r\n catchFinally = function(reason: any) {\r\n onFinally && onFinally();\r\n throw reason;\r\n }\r\n }\r\n\r\n return _then(thenFinally as any, catchFinally as any);\r\n }\r\n\r\n function _strState() {\r\n return STRING_STATES[_state];\r\n }\r\n\r\n function _processQueue() {\r\n if (_queue.length > 0) {\r\n // The onFulfilled and onRejected handlers must be called asynchronously. Thus,\r\n // we make a copy of the queue and work on it once the current call stack unwinds.\r\n let pending = _queue.slice();\r\n _queue = [];\r\n\r\n //#ifdef DEBUG\r\n //#:(!DEBUG) _debugLog(_toString(), \"Processing queue \" + pending.length);\r\n //#endif\r\n\r\n _handled = true;\r\n _unHandledRejectionHandler && _unHandledRejectionHandler.cancel();\r\n _unHandledRejectionHandler = null;\r\n processor(pending);\r\n //#ifdef DEBUG\r\n //#:(!DEBUG) _debugLog(_toString(), \"Processing done\");\r\n //#endif\r\n\r\n } else {\r\n //#ifdef DEBUG\r\n //#:(!DEBUG) _debugLog(_toString(), \"Empty Processing queue \");\r\n //#endif\r\n }\r\n }\r\n\r\n function _createSettleIfFn(newState: ePromiseState, allowState: ePromiseState) {\r\n return (theValue: T) => {\r\n if (_state === allowState) {\r\n if (newState === ePromiseState.Resolved && isPromiseLike(theValue)) {\r\n _state = ePromiseState.Resolving;\r\n //#ifdef DEBUG\r\n //#:(!DEBUG) _debugLog(_toString(), \"Resolving\");\r\n //#endif\r\n theValue.then(\r\n _createSettleIfFn(ePromiseState.Resolved, ePromiseState.Resolving),\r\n _createSettleIfFn(ePromiseState.Rejected, ePromiseState.Resolving));\r\n return;\r\n }\r\n\r\n _state = newState;\r\n _hasResolved = true;\r\n _settledValue = theValue;\r\n //#ifdef DEBUG\r\n //#:(!DEBUG) _debugLog(_toString(), _strState());\r\n //#endif\r\n _processQueue();\r\n if (!_handled && newState === ePromiseState.Rejected && !_unHandledRejectionHandler) {\r\n //#ifdef DEBUG\r\n //#:(!DEBUG) _debugLog(_toString(), \"Setting up unhandled rejection\");\r\n //#endif\r\n _unHandledRejectionHandler = scheduleTimeout(_notifyUnhandledRejection, _unhandledRejectionTimeout)\r\n }\r\n } else {\r\n //#ifdef DEBUG\r\n //#:(!DEBUG) _debugLog(_toString(), \"Already \" + _strState());\r\n //#endif\r\n }\r\n };\r\n }\r\n\r\n function _notifyUnhandledRejection() {\r\n if (!_handled) {\r\n // Mark as handled so we don't keep notifying\r\n _handled = true;\r\n if (isNode()) {\r\n //#ifdef DEBUG\r\n //#:(!DEBUG) _debugLog(_toString(), \"Emitting \" + NODE_UNHANDLED_REJECTION);\r\n //#endif\r\n process.emit(NODE_UNHANDLED_REJECTION, _settledValue, _thePromise);\r\n } else {\r\n let gbl = getWindow() || getGlobal();\r\n \r\n !_hasPromiseRejectionEvent && (_hasPromiseRejectionEvent = createCachedValue(safe(getInst<_PromiseRejectionEvent>, [STR_PROMISE + \"RejectionEvent\"]).v));\r\n\r\n //#ifdef DEBUG\r\n //#:(!DEBUG) _debugLog(_toString(), \"Emitting \" + UNHANDLED_REJECTION);\r\n //#endif\r\n emitEvent(gbl, UNHANDLED_REJECTION, (theEvt: any) => {\r\n objDefine(theEvt, \"promise\", { g: () => _thePromise });\r\n theEvt.reason = _settledValue;\r\n return theEvt;\r\n }, !!_hasPromiseRejectionEvent.v);\r\n }\r\n }\r\n }\r\n\r\n _thePromise = {\r\n then: _then,\r\n \"catch\": _catch,\r\n finally: _finally\r\n } as any;\r\n\r\n objDefineProp(_thePromise, \"state\", {\r\n get: _strState\r\n });\r\n\r\n if (_promiseDebugEnabled) {\r\n // eslint-disable-next-line brace-style\r\n _addDebugState(_thePromise, _strState, () => { return objToString(_settledValue); }, () => _handled);\r\n }\r\n\r\n if (hasSymbol()) {\r\n _thePromise[getKnownSymbol(WellKnownSymbols.toStringTag)] = \"IPromise\";\r\n }\r\n\r\n let createStack: string;\r\n //#if DEBUG\r\n //#:(!{DEBUG}) createStack = _getCaller(\"Created\", 5);\r\n //#endif\r\n function _toString() {\r\n return \"IPromise\" + (_promiseDebugEnabled ? \"[\" + _id + (!isUndefined(_parentId) ? (\":\" + _parentId) : \"\") + \"]\" : \"\") + \" \" + _strState() + (_hasResolved ? (\" - \" + dumpFnObj(_settledValue)) : \"\") + (createStack ? \" @ \" + createStack : \"\");\r\n }\r\n\r\n _thePromise.toString = _toString;\r\n\r\n (function _initialize() {\r\n if (!isFunction(executor)) {\r\n throwTypeError(STR_PROMISE + \": executor is not a function - \" + dumpFnObj(executor));\r\n }\r\n\r\n const _rejectFn = _createSettleIfFn(ePromiseState.Rejected, ePromiseState.Pending);\r\n try {\r\n //#ifdef DEBUG\r\n //#:(!DEBUG) _debugLog(_toString(), \"Executing\");\r\n //#endif\r\n executor.call(\r\n _thePromise,\r\n _createSettleIfFn(ePromiseState.Resolved, ePromiseState.Pending),\r\n _rejectFn);\r\n } catch (e) {\r\n //#ifdef DEBUG\r\n //#:(!DEBUG) _debugLog(_toString(), \"Exception thrown: \" + dumpFnObj(e));\r\n //#endif\r\n _rejectFn(e);\r\n }\r\n\r\n //#ifdef DEBUG\r\n //#:(!DEBUG) _debugLog(_toString(), \"~Executing\");\r\n //#endif\r\n })();\r\n\r\n //#ifdef DEBUG\r\n //#:(!DEBUG) _debugLog(_toString(), \"Returning\");\r\n //#endif\r\n return _thePromise;\r\n}\r\n\r\n/**\r\n * @ignore\r\n * @internal\r\n * Returns a function which when called will return a new Promise object that resolves to an array of the\r\n * results from the input promises. The returned promise will resolve when all of the inputs' promises have\r\n * resolved, or if the input contains no promises. It rejects immediately upon any of the input promises\r\n * rejected or non-promises throwing an error, and will reject with this first rejection message / error.\r\n * @param newPromise - The delegate function used to create a new promise object the new promise instance.\r\n * @returns A function to create a promise that will be resolved when all arguments are resolved.\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function _createAllPromise(newPromise: PromiseCreatorFn): (input: Iterable>, ...additionalArgs: any) => IPromise[]> {\r\n return function (input: Iterable>): IPromise[]> {\r\n let additionalArgs = arrSlice(arguments, 1);\r\n return newPromise[]>((resolve, reject) => {\r\n try {\r\n let values = [] as any;\r\n let pending = 1; // Prefix to 1 so we finish iterating over all of the input promises first\r\n\r\n iterForOf(input, (item, idx) => {\r\n if (item) {\r\n pending++;\r\n doAwait(item, (value) => {\r\n // Set the result values\r\n values[idx] = value;\r\n if (--pending === 0) {\r\n resolve(values);\r\n }\r\n }, reject);\r\n }\r\n });\r\n\r\n // Now decrement the pending so that we finish correctly\r\n pending--;\r\n if (pending === 0) {\r\n // All promises were either resolved or where not a promise\r\n resolve(values);\r\n }\r\n } catch (e) {\r\n reject(e);\r\n }\r\n }, additionalArgs);\r\n };\r\n}\r\n\r\n/**\r\n * @ignore\r\n * @internal\r\n * The createResolvedPromise returns a PromiseLike object that is resolved with a given value. If the value is\r\n * PromiseLike (i.e. has a \"then\" method), the returned promise will \"follow\" that thenable, adopting its eventual\r\n * state; otherwise the returned promise will be fulfilled with the value. This function flattens nested layers\r\n * of promise-like objects (e.g. a promise that resolves to a promise that resolves to something) into a single layer.\r\n * @param newPromise - The delegate function used to create a new promise object\r\n * @param value Argument to be resolved by this Promise. Can also be a Promise or a thenable to resolve.\r\n * @param additionalArgs - Any additional arguments that should be passed to the delegate to assist with the creation of\r\n * the new promise instance.\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function _createResolvedPromise(newPromise: PromiseCreatorFn): (value: T, ...additionalArgs: any) => IPromise {\r\n return function (value: T): IPromise {\r\n let additionalArgs = arrSlice(arguments, 1);\r\n if (isPromiseLike(value)) {\r\n return value as unknown as IPromise;\r\n }\r\n \r\n return newPromise((resolve) => {\r\n //#ifdef DEBUG\r\n //#:(!DEBUG) _debugLog(String(this), \"Resolving Promise\");\r\n //#endif\r\n resolve(value);\r\n }, additionalArgs);\r\n };\r\n}\r\n\r\n/**\r\n * @ignore\r\n * @internal\r\n * Return a promise like object that is rejected with the given reason.\r\n * @param newPromise - The delegate function used to create a new promise object\r\n * @param reason - The rejection reason\r\n * @param additionalArgs - Any additional arguments that should be passed to the delegate to assist with the creation of\r\n * the new promise instance.\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function _createRejectedPromise(newPromise: PromiseCreatorFn): (reason: any, ...additionalArgs: any) => IPromise {\r\n return function (reason: any): IPromise {\r\n let additionalArgs = arrSlice(arguments, 1);\r\n return newPromise((_resolve, reject) => {\r\n //#ifdef DEBUG\r\n //#:(!DEBUG) _debugLog(String(this), \"Rejecting Promise\");\r\n //#endif\r\n reject(reason);\r\n }, additionalArgs);\r\n };\r\n}\r\n\r\n/**\r\n * @ignore\r\n * @internal\r\n * @since 0.5.0\r\n * Returns a function which when called will return a new Promise object that resolves to an array of\r\n * IPromiseResults from the input promises. The returned promise will resolve when all of the inputs'\r\n * promises have resolved or rejected, or if the input contains no promises. It will resolve only after\r\n * all input promises have been fulfilled (resolve or rejected).\r\n * @param newPromise - The delegate function used to create a new promise object the new promise instance.\r\n * @returns A function to create a promise that will be resolved when all arguments are resolved.\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function _createAllSettledPromise(newPromise: PromiseCreatorFn, ..._args: any[]): ICachedValue<(input: T, timeout?: number) => IPromise<{ -readonly [P in keyof T]: IPromiseResult>; }>> {\r\n return createCachedValue(function (input: T, ..._args: any[]): IPromise<{ -readonly [P in keyof T]: IPromiseResult>; }> {\r\n let additionalArgs = arrSlice(arguments, 1);\r\n return newPromise<{ -readonly [P in keyof T]: IPromiseResult>; }>((resolve, reject) => {\r\n let values: { -readonly [P in keyof T]: IPromiseResult>; } = [] as any;\r\n let pending = 1; // Prefix to 1 so we finish iterating over all of the input promises first\r\n\r\n function processItem(item: any, idx: number) {\r\n pending++;\r\n doAwaitResponse(item, (value) => {\r\n if (value.rejected) {\r\n values[idx] = {\r\n status: REJECTED,\r\n reason: value.reason\r\n };\r\n } else {\r\n values[idx] = {\r\n status: \"fulfilled\",\r\n value: value.value\r\n };\r\n }\r\n \r\n if (--pending === 0) {\r\n resolve(values);\r\n }\r\n });\r\n }\r\n\r\n try {\r\n\r\n if (isArray(input)) {\r\n arrForEach(input, processItem);\r\n } else if (isIterable(input)) {\r\n iterForOf(input, processItem);\r\n } else {\r\n throwTypeError(\"Input is not an iterable\");\r\n }\r\n\r\n // Now decrement the pending so that we finish correctly\r\n pending--;\r\n if (pending === 0) {\r\n // All promises were either resolved or where not a promise\r\n resolve(values);\r\n }\r\n } catch (e) {\r\n reject(e);\r\n }\r\n }, additionalArgs);\r\n });\r\n}\r\n\r\n/**\r\n * @ignore\r\n * @internal\r\n * @since 0.5.0\r\n * Returns a function takes an iterable of promises as input and returns a single Promise.\r\n * This returned promise settles with the eventual state of the first promise that settles.\r\n * @description The returned promise is one of the promise concurrency methods. It's useful when you want\r\n * the first async task to complete, but do not care about its eventual state (i.e. it can either succeed\r\n * or fail).\r\n * @param newPromise - The delegate function used to create a new promise object the new promise instance.\r\n * @returns A function to create a promise that will resolve when the first promise to settle is fulfilled,\r\n * and rejects if the first promise to settle is rejected. The returned promise remains pending forever\r\n * if the iterable passed is empty. If the iterable passed is non-empty but contains no pending promises,\r\n * the returned promise is still settled.\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function _createRacePromise(newPromise: PromiseCreatorFn, ..._args: any[]): ICachedValue<(values: T, timeout?: number) => IPromise>> {\r\n return createCachedValue(function (input: T, ..._args: any[]): IPromise> {\r\n let additionalArgs = arrSlice(arguments, 1);\r\n return newPromise>((resolve, reject) => {\r\n let isDone = false;\r\n\r\n function processItem(item: any) {\r\n doAwaitResponse(item, (value) => {\r\n if (!isDone) {\r\n isDone = true;\r\n if (value.rejected) {\r\n reject(value.reason);\r\n } else {\r\n resolve(value.value);\r\n }\r\n }\r\n });\r\n }\r\n\r\n try {\r\n if (isArray(input)) {\r\n arrForEach(input, processItem);\r\n } else if (isIterable(input)) {\r\n iterForOf(input, processItem);\r\n } else {\r\n throwTypeError(\"Input is not an iterable\");\r\n }\r\n\r\n } catch (e) {\r\n reject(e);\r\n }\r\n }, additionalArgs);\r\n });\r\n}\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n * @since 0.5.0\r\n * Returns a function takes an iterable of promises as input and returns a single Promise.\r\n * This returned promise fulfills when any of the input's promises fulfills, with this first fulfillment\r\n * value. It rejects when all of the input's promises reject (including when an empty iterable is passed),\r\n * with an AggregateError containing an array of rejection reasons.\r\n * @param newPromise - The delegate function used to create a new promise object the new promise instance.\r\n * @returns A function to create a promise that will resolve when the any of the input's promises fulfills,\r\n * with this first fulfillment value. It rejects when all of the input's promises reject (including when\r\n * an empty iterable is passed), with an AggregateError containing an array of rejection reasons.\r\n */\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function _createAnyPromise(newPromise: PromiseCreatorFn, ..._args: any[]): ICachedValue<(values: T) => IPromise>> {\r\n return createCachedValue(function (input: T, ..._args: any[]): IPromise> {\r\n let additionalArgs = arrSlice(arguments, 1);\r\n return newPromise>((resolve, reject) => {\r\n let theErros: Array = [] as any;\r\n let pending = 1; // Prefix to 1 so we finish iterating over all of the input promises first\r\n let isDone = false;\r\n\r\n function processItem(item: any, idx: number) {\r\n pending++;\r\n doAwaitResponse(item, (value ) => {\r\n if (!value.rejected) {\r\n isDone = true;\r\n resolve(value.value);\r\n return;\r\n } else {\r\n theErros[idx] = value.reason;\r\n }\r\n\r\n if (--pending === 0 && !isDone) {\r\n reject(_createAggregationError(theErros));\r\n }\r\n });\r\n }\r\n\r\n try {\r\n if (isArray(input)) {\r\n arrForEach(input, processItem);\r\n } else if (isIterable(input)) {\r\n iterForOf(input, processItem);\r\n } else {\r\n throwTypeError(\"Input is not an iterable\");\r\n }\r\n\r\n // Now decrement the pending so that we finish correctly\r\n pending--;\r\n if (pending === 0 && !isDone) {\r\n // All promises were either resolved or where not a promise\r\n reject(_createAggregationError(theErros));\r\n }\r\n } catch (e) {\r\n reject(e);\r\n }\r\n }, additionalArgs);\r\n });\r\n}\r\n","/*\r\n * @nevware21/ts-async\r\n * https://github.com/nevware21/ts-async\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { arrForEach, isNumber, scheduleIdleCallback, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { IPromise } from \"../interfaces/IPromise\";\r\nimport { PromiseExecutor } from \"../interfaces/types\";\r\n\r\nexport type PromisePendingProcessor = (pending: PromisePendingFn[]) => void;\r\nexport type PromisePendingFn = () => void;\r\nexport type PromiseCreatorFn = (newExecutor: PromiseExecutor, ...extraArgs: any) => IPromise;\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n * Return an item processor that processes all of the pending items synchronously\r\n * @return An item processor\r\n */\r\nexport function syncItemProcessor(pending: PromisePendingFn[]): void {\r\n arrForEach(pending, (fn: PromisePendingFn) => {\r\n try {\r\n fn();\r\n } catch (e) {\r\n // Don't let 1 failing handler break all others\r\n // TODO: Add some form of error reporting (i.e. Call any registered JS error handler so the error is reported)\r\n }\r\n });\r\n}\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n * Return an item processor that processes all of the pending items asynchronously using the optional timeout.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero.\r\n * @return An item processor\r\n */\r\nexport function timeoutItemProcessor(timeout?: number): (pending: PromisePendingFn[]) => void {\r\n let callbackTimeout = isNumber(timeout) ? timeout : 0;\r\n\r\n return (pending: PromisePendingFn[]) => {\r\n scheduleTimeout(() => {\r\n syncItemProcessor(pending);\r\n }, callbackTimeout);\r\n }\r\n}\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n * Return an item processor that processes all of the pending items using an idle callback (if available) or based on\r\n * a timeout (when `requestIdenCallback` is not supported) using the optional timeout.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero.\r\n * @return An item processor\r\n */\r\nexport function idleItemProcessor(timeout?: number): (pending: PromisePendingFn[]) => void {\r\n let options: any;\r\n if (timeout >= 0) {\r\n options = {\r\n timeout: +timeout\r\n };\r\n }\r\n\r\n return (pending: PromisePendingFn[]) => {\r\n scheduleIdleCallback((deadline: IdleDeadline) => {\r\n syncItemProcessor(pending);\r\n }, options);\r\n };\r\n}","/*\r\n * @nevware21/ts-async\r\n * https://github.com/nevware21/ts-async\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport {\r\n _createAllPromise, _createAllSettledPromise, _createAnyPromise, _createPromise, _createRacePromise,\r\n _createRejectedPromise, _createResolvedPromise\r\n} from \"./base\";\r\nimport { IPromise } from \"../interfaces/IPromise\";\r\nimport { timeoutItemProcessor } from \"./itemProcessor\";\r\nimport { PromiseExecutor } from \"../interfaces/types\";\r\nimport { IPromiseResult } from \"../interfaces/IPromiseResult\";\r\nimport { ICachedValue } from \"@nevware21/ts-utils\";\r\n\r\nlet _allAsyncSettledCreator: ICachedValue<(input: T, timeout?: number) => IPromise<{ -readonly [P in keyof T]: IPromiseResult>; }>>;\r\nlet _raceAsyncCreator: ICachedValue<(values: T, timeout?: number) => IPromise>>;\r\nlet _anyAsyncCreator: ICachedValue<(values: T, timeout?: number) => IPromise>>;\r\n\r\n/**\r\n * Creates an asynchronous Promise instance that when resolved or rejected will execute it's pending chained operations\r\n * __asynchronously__ using the optional provided timeout value to schedule when the chained items will be ececuted.\r\n * @group Async\r\n * @group Promise\r\n * @param executor - The function to be executed during the creation of the promise. Any errors thrown in the executor will\r\n * cause the promise to be rejected. The return value of the executor is always ignored\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero.\r\n */\r\nexport function createAsyncPromise(executor: PromiseExecutor, timeout?: number): IPromise {\r\n return _createPromise(createAsyncPromise, timeoutItemProcessor(timeout), executor, timeout);\r\n}\r\n\r\n/**\r\n * Returns a single asynchronous Promise instance that resolves to an array of the results from the input promises.\r\n * This returned promise will resolve and execute it's pending chained operations __asynchronously__ using the optional\r\n * provided timeout value to schedule when the chained items will be executed, or if the input contains no promises.\r\n * It rejects immediately upon any of the input promises rejected or non-promises throwing an error,\r\n * and will reject with this first rejection message / error.\r\n * When resolved or rejected any additional chained operations will execute __asynchronously__ using the optional\r\n * timeout value to schedul when the chained item will be executed (eg. `then()`; `catch()`; `finally()`).\r\n * @group Async\r\n * @group Promise\r\n * @group All\r\n * @param input - The array of promises to wait to be resolved / rejected before resolving or rejecting the new promise\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero.\r\n * @returns\r\n *

\r\n */\r\nexport const createAsyncAllPromise: (input: Iterable>, timeout?: number) => IPromise = /*#__PURE__*/_createAllPromise(createAsyncPromise);\r\n\r\n/**\r\n * Returns a single asynchronous Promise instance that is already resolved with the given value. If the value passed is\r\n * a promise then that promise is returned instead of creating a new asynchronous promise instance.\r\n * If a new instance is returned then any chained operations will execute __asynchronously__ using the optional\r\n * timeout value to schedule when the chained items will be executed.(eg. `then()`; `finally()`).\r\n * @group Async\r\n * @group Promise\r\n * @group Resolved\r\n * @param value - The value to be used by this `Promise`. Can also be a `Promise` or a thenable to resolve.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero.\r\n */\r\nexport const createAsyncResolvedPromise: (value: T, timeout?: number) => IPromise = /*#__PURE__*/_createResolvedPromise(createAsyncPromise);\r\n\r\n/**\r\n * Returns a single asynchronous Promise instance that is already rejected with the given reason.\r\n * Any chained operations will execute __asynchronously__ using the optional timeout value to schedule\r\n * when then chained items will be executed. (eg. `catch()`; `finally()`).\r\n * @group Async\r\n * @group Promise\r\n * @group Rejected\r\n * @param reason - The rejection reason\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero.\r\n */\r\nexport const createAsyncRejectedPromise: (reason: any, timeout?: number) => IPromise = /*#__PURE__*/_createRejectedPromise(createAsyncPromise);\r\n\r\n/**\r\n * Returns a single Promise instance that resolves to an array of the results from the input promises.\r\n * This returned promise will resolve and execute it's pending chained operations based on the\r\n * {@link createAsyncPromise Aasynchronous} promise implementation. Any chained operations will execute\r\n * __asynchronously__ when the final operation pending promises have resolved, or if the input contains\r\n * no promises. It will resolve only after all of the input promises have either resolved or rejected,\r\n * and will resolve with an array of {@link IPromiseResult } objects that each describe the outcome of\r\n * each promise.\r\n * @since 0.5.0\r\n * @group Async\r\n * @group Promise\r\n * @group AllSettled\r\n * @param values - The iterator of promises to wait to be resolved / rejected before resolving or rejecting the new promise\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero, only used when Native promises are not available.\r\n * @returns A pending `Promise` that will resolve to an array of {@link IPromiseResult } objects that each describe the outcome of each promise.\r\n *\r\n * @example\r\n * ```ts\r\n * const promises = [\r\n * createResolvedPromise(1),\r\n * createResolvedPromise(2),\r\n * createResolvedPromise(3),\r\n * createRejectedPromise(\"error\"),\r\n * ];\r\n *\r\n * const results = await createAllSettledPromise(promises);\r\n *\r\n * // results is:\r\n * // [\r\n * // { status: \"fulfilled\", value: 1 },\r\n * // { status: \"fulfilled\", value: 2 },\r\n * // { status: \"fulfilled\", value: 3 },\r\n * // { status: \"rejected\", reason: \"error\" }\r\n * // ]\r\n * ```\r\n */\r\nexport function createAsyncAllSettledPromise(values: Iterable>, timeout?: number): IPromise>[]>;\r\n\r\n/**\r\n * Returns a single Promise instance that resolves to an array of the results from the input promises.\r\n * This returned promise will resolve and execute it's pending chained operations based on the\r\n * {@link createAsyncPromise Aasynchronous} promise implementation. Any chained operations will execute\r\n * __asynchronously__ when the final operation pending promises have resolved, or if the input contains\r\n * no promises. It will resolve only after all of the input promises have either resolved or rejected,\r\n * and will resolve with an array of {@link IPromiseResult } objects that each describe the outcome of\r\n * each promise.\r\n * @since 0.5.0\r\n * @group Async\r\n * @group Promise\r\n * @group AllSettled\r\n * @param input - An array of promises to wait to be resolved / rejected before resolving or rejecting the new promise\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero, only used when Native promises are not available.\r\n * @returns A pending `Promise` that will resolve to an array of {@link IPromiseResult } objects that each describe the outcome of each promise.\r\n *\r\n * @example\r\n * ```ts\r\n * const promises = [\r\n * createResolvedPromise(1),\r\n * createResolvedPromise(2),\r\n * createResolvedPromise(3),\r\n * createRejectedPromise(\"error\"),\r\n * ];\r\n *\r\n * const results = await createAllSettledPromise(promises);\r\n *\r\n * // results is:\r\n * // [\r\n * // { status: \"fulfilled\", value: 1 },\r\n * // { status: \"fulfilled\", value: 2 },\r\n * // { status: \"fulfilled\", value: 3 },\r\n * // { status: \"rejected\", reason: \"error\" }\r\n * // ]\r\n * ```\r\n */\r\nexport function createAsyncAllSettledPromise(input: T, timeout?: number): IPromise<{ -readonly [P in keyof T]: IPromiseResult>; }> {\r\n !_allAsyncSettledCreator && (_allAsyncSettledCreator = _createAllSettledPromise(createAsyncPromise));\r\n return _allAsyncSettledCreator.v(input, timeout);\r\n}\r\n\r\n/**\r\n * The `createAsyncRacePromise` method takes an array of promises as input and returns a single Promise. This returned promise\r\n * settles with the eventual state of the first promise that settles.\r\n * @description The `createAsyncRacePromise` method is one of the promise concurrency methods. It's useful when you want the first\r\n * async task to complete, but do not care about its eventual state (i.e. it can either succeed or fail).\r\n * If the iterable contains one or more non-promise values and/or an already settled promise, then Promise.race() will settle to\r\n * the first of these values found in the iterable.\r\n * @since 0.5.0\r\n * @group Async\r\n * @group Promise\r\n * @group Race\r\n * @param values - An iterable object of promises.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero, only used when Native promises are not available.\r\n * @returns A Promise that settles with the eventual state of the first promise in the iterable to settle. In other words, it fulfills if the\r\n * first promise to settle is fulfilled, and rejects if the first promise to settle is rejected. The returned promise remains pending forever\r\n * if the iterable passed is empty. If the iterable passed is non-empty but contains no pending promises, the returned promise is still\r\n * asynchronously settled.\r\n */\r\nexport function createAsyncRacePromise(values: Iterable>, timeout?: number): IPromise>;\r\n\r\n/**\r\n * The `createAsyncRacePromise` method takes an array of promises as input and returns a single Promise. This returned promise\r\n * settles with the eventual state of the first promise that settles.\r\n * @description The `createAsyncRacePromise` method is one of the promise concurrency methods. It's useful when you want the first\r\n * async task to complete, but do not care about its eventual state (i.e. it can either succeed or fail).\r\n * If the iterable contains one or more non-promise values and/or an already settled promise, then Promise.race() will settle to\r\n * the first of these values found in the iterable.\r\n * @since 0.5.0\r\n * @group Async\r\n * @group Promise\r\n * @group Race\r\n * @param values - An the array of promises.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero, only used when Native promises are not available.\r\n * @returns A Promise that settles with the eventual state of the first promise in the iterable to settle. In other words, it fulfills if the\r\n * first promise to settle is fulfilled, and rejects if the first promise to settle is rejected. The returned promise remains pending forever\r\n * if the iterable passed is empty. If the iterable passed is non-empty but contains no pending promises, the returned promise is still\r\n * asynchronously settled.\r\n */\r\nexport function createAsyncRacePromise(values: T, timeout?: number): IPromise> {\r\n !_raceAsyncCreator && (_raceAsyncCreator = _createRacePromise(createAsyncPromise));\r\n return _raceAsyncCreator.v(values, timeout);\r\n}\r\n\r\n/**\r\n * The `createAsyncAnyPromise` method takes an iterable of promises as input and returns a single Promise.\r\n * This returned promise fulfills when any of the input's promises fulfills, with this first fulfillment value.\r\n * It rejects when all of the input's promises reject (including when an empty iterable is passed), with an\r\n * AggregateError containing an array of rejection reasons.\r\n * @since 0.5.0\r\n * @group Async\r\n * @group Promise\r\n * @group Any\r\n * @param values - An iterable object of promises.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero, only used when Native promises are not available.\r\n * @returns A new Promise that is:\r\n * - Already rejected, if the iterable passed is empty.\r\n * - Asynchronously fulfilled, when any of the promises in the given iterable fulfills. The fulfillment value\r\n * is the fulfillment value of the first promise that was fulfilled.\r\n * - Asynchronously rejected, when all of the promises in the given iterable reject. The rejection reason is\r\n * an AggregateError containing an array of rejection reasons in its errors property. The errors are in the\r\n * order of the promises passed, regardless of completion order. If the iterable passed is non-empty but\r\n * contains no pending promises, the returned promise is still asynchronously (instead of synchronously)\r\n * rejected.\r\n */\r\nexport function createAsyncAnyPromise(values: Iterable>, timeout?: number): IPromise>;\r\n \r\n/**\r\n * The `createAsyncAnyPromise` method takes an array of promises as input and returns a single Promise.\r\n * This returned promise fulfills when any of the input's promises fulfills, with this first fulfillment value.\r\n * It rejects when all of the input's promises reject (including when an empty iterable is passed), with an\r\n * AggregateError containing an array of rejection reasons.\r\n * @since 0.5.0\r\n * @group Async\r\n * @group Promise\r\n * @group Any\r\n * @param values - An Array promises.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero, only used when Native promises are not available.\r\n * @returns A new Promise that is:\r\n * - Already rejected, if the iterable passed is empty.\r\n * - Asynchronously fulfilled, when any of the promises in the given iterable fulfills. The fulfillment value\r\n * is the fulfillment value of the first promise that was fulfilled.\r\n * - Asynchronously rejected, when all of the promises in the given iterable reject. The rejection reason is\r\n * an AggregateError containing an array of rejection reasons in its errors property. The errors are in the\r\n * order of the promises passed, regardless of completion order. If the iterable passed is non-empty but\r\n * contains no pending promises, the returned promise is still asynchronously (instead of synchronously)\r\n * rejected.\r\n */\r\nexport function createAsyncAnyPromise(values: T, timeout?: number): IPromise> {\r\n !_anyAsyncCreator && (_anyAsyncCreator = _createAnyPromise(createAsyncPromise));\r\n return _anyAsyncCreator.v(values, timeout);\r\n}","/*\r\n * @nevware21/ts-async\r\n * https://github.com/nevware21/ts-async\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { createAsyncPromise } from \"./asyncPromise\";\r\nimport { _createAllPromise, _createAllSettledPromise, _createAnyPromise, _createRacePromise, _createRejectedPromise, _createResolvedPromise } from \"./base\";\r\nimport { IPromise } from \"../interfaces/IPromise\";\r\nimport { ePromiseState, STRING_STATES } from \"../internal/state\";\r\nimport { PromiseExecutor } from \"../interfaces/types\";\r\nimport { dumpObj, isFunction, objDefineProp, throwTypeError, getInst, ICachedValue, createCachedValue, safe } from \"@nevware21/ts-utils\";\r\nimport { STR_PROMISE } from \"../internal/constants\";\r\nimport { IPromiseResult } from \"../interfaces/IPromiseResult\";\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n * Flag to determine if the native Promise class should be used if available, used for testing purposes.\r\n */\r\nlet _useNative: boolean = true;\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n * Cached value for the native Promise class\r\n */\r\nlet _promiseCls: ICachedValue;\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n * Cached value for the `Promise.all` method\r\n */\r\nlet _allCreator: ICachedValue<(input: Iterable>, ...additionalArgs: any) => IPromise[]>>;\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n * Cached value for the `Promise.allSettled` method\r\n */\r\nlet _allNativeSettledCreator: ICachedValue<(input: T, timeout?: number) => IPromise<{ -readonly [P in keyof T]: IPromiseResult>; }>>;\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n * Cached value for the `Promise.race` method\r\n */\r\nlet _raceNativeCreator: ICachedValue<(values: T, timeout?: number) => IPromise>>;\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n * Cached value for the `Promise.any` method\r\n */\r\nlet _anyNativeCreator: ICachedValue<(values: T, timeout?: number) => IPromise>>;\r\n\r\n/**\r\n * @internal\r\n * @ignore\r\n * Test Hook function to clear the cached values and set whether to use the native Promise class\r\n * @param useNative\r\n */\r\nexport function _clearPromiseCache(useNative: boolean) {\r\n//#ifdef _DEBUG\r\n//#:(!_DEBUG) _useNative = !!useNative;\r\n//#:(!_DEBUG) _promiseCls = null as any;\r\n//#:(!_DEBUG) _allCreator = null as any;\r\n//#:(!_DEBUG) _allNativeSettledCreator = null as any;\r\n//#:(!_DEBUG) _raceNativeCreator = null as any;\r\n//#:(!_DEBUG) _anyNativeCreator = null as any;\r\n//#endif\r\n}\r\n\r\n/*#__NO_SIDE_EFFECTS__*/\r\nexport function _createNativePromiseHelper(name: string, func: () => ICachedValue): ICachedValue {\r\n !_promiseCls && (_promiseCls = createCachedValue((_useNative && safe(getInst, [STR_PROMISE]).v) || null as any));\r\n if (_promiseCls.v && _promiseCls.v[name]) {\r\n return createCachedValue(function(input: T, timeout?: number) {\r\n return createNativePromise((resolve, reject) => {\r\n _promiseCls.v[name](input).then(resolve, reject);\r\n });\r\n } as F);\r\n }\r\n \r\n return func();\r\n}\r\n\r\n/**\r\n * Creates a Promise instance that when resolved or rejected will execute it's pending chained operations using the\r\n * available native Promise implementation.\r\n * If runtime does not support native `Promise` class (or no polyfill is available) this function will fallback to using\r\n * `createAsyncPromise` which will resolve them __asynchronously__ using the optional provided timeout value to\r\n * schedule when the chained items will be executed.\r\n * @group Alias\r\n * @group Promise\r\n * @group Native\r\n * @param executor - The function to be executed during the creation of the promise. Any errors thrown in the executor will\r\n * cause the promise to be rejected. The return value of the executor is always ignored\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero.\r\n */\r\nexport function createNativePromise(executor: PromiseExecutor, timeout?: number): IPromise {\r\n !_promiseCls && (_promiseCls = createCachedValue((_useNative && safe(getInst, [STR_PROMISE]).v) || null as any));\r\n const PrmCls = _promiseCls.v;\r\n if (!PrmCls) {\r\n return createAsyncPromise(executor);\r\n }\r\n\r\n if (!isFunction(executor)) {\r\n throwTypeError(STR_PROMISE + \": executor is not a function - \" + dumpObj(executor));\r\n }\r\n\r\n let _state = ePromiseState.Pending;\r\n\r\n function _strState() {\r\n return STRING_STATES[_state];\r\n }\r\n\r\n let thePromise = new PrmCls((resolve, reject) => {\r\n function _resolve(value: T) {\r\n _state = ePromiseState.Resolved;\r\n resolve(value);\r\n }\r\n\r\n function _reject(reason: any) {\r\n _state = ePromiseState.Rejected;\r\n reject(reason);\r\n }\r\n\r\n executor(_resolve, _reject);\r\n\r\n }) as IPromise;\r\n\r\n objDefineProp(thePromise, \"state\", {\r\n get: _strState\r\n });\r\n\r\n return thePromise;\r\n}\r\n\r\n/**\r\n * Returns a single asynchronous Promise instance that resolves to an array of the results from the input promises.\r\n * This returned promise will resolve and execute it's pending chained operations __asynchronously__ using the optional\r\n * provided timeout value to schedule when the chained items will be executed, or if the input contains no promises.\r\n * It rejects immediately upon any of the input promises rejected or non-promises throwing an error,\r\n * and will reject with this first rejection message / error.\r\n * If the runtime doesn't support the Promise.all it will fallback back to an asynchronous Promise implementation.\r\n * @group Alias\r\n * @group Promise\r\n * @group All\r\n * @group Native\r\n * @param input - The array of promises to wait to be resolved / rejected before resolving or rejecting the new promise\r\n * @param timeout\r\n * @returns\r\n *
    \r\n *
  • An already resolved `Promise`, if the input passed is empty.\r\n *
  • A pending `Promise` in all other cases. This returned promise is then resolved/rejected __synchronously__\r\n * (as soon as the pending items is empty) when all the promises in the given input have resolved, or if any of the\r\n * promises reject.\r\n *
\r\n */\r\nexport function createNativeAllPromise(input: Iterable>, timeout?: number): IPromise {\r\n !_allCreator && (_allCreator = _createNativePromiseHelper(\"all\", () => createCachedValue(_createAllPromise(createNativePromise))));\r\n return _allCreator.v(input, timeout);\r\n}\r\n\r\n/**\r\n * Returns a single asynchronous Promise instance that is already resolved with the given value. If the value passed is\r\n * a promise then that promise is returned instead of creating a new asynchronous promise instance.\r\n * If a new instance is returned then any chained operations will execute __asynchronously__ using the optional\r\n * timeout value to schedule when the chained items will be executed.(eg. `then()`; `finally()`).\r\n * @group Alias\r\n * @group Promise\r\n * @group Resolved\r\n * @group Native\r\n * @param value - The value to be used by this `Promise`. Can also be a `Promise` or a thenable to resolve.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero.\r\n */\r\nexport const createNativeResolvedPromise: (value: T, timeout?: number) => Promise = /*#__PURE__*/_createResolvedPromise(createNativePromise);\r\n\r\n/**\r\n * Returns a single asynchronous Promise instance that is already rejected with the given reason.\r\n * Any chained operations will execute __asynchronously__ using the optional timeout value to schedule\r\n * when then chained items will be executed. (eg. `catch()`; `finally()`).\r\n * @group Alias\r\n * @group Promise\r\n * @group Rejected\r\n * @group Native\r\n * @param reason - The rejection reason\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero.\r\n */\r\nexport const createNativeRejectedPromise: (reason: any, timeout?: number) => Promise = /*#__PURE__*/_createRejectedPromise(createNativePromise);\r\n\r\n/**\r\n * Returns a single asynchronous Promise instance that resolves to an array of the results from the input promises.\r\n * This returned promise will resolve and execute it's pending chained operations using {@link createNativePromise native}\r\n * environment promise implementation, if the runtime does not provide any native then the optional provided\r\n * timeout value will be used to schedule when the chained items will be executed or if the input contains no promises.\r\n * It will resolve only after all of the input promises have either resolved or rejected, and will resolve with an array\r\n * of {@link IPromiseResult } objects that each describe the outcome of each promise.\r\n * @since 0.5.0\r\n * @group Alias\r\n * @group Promise\r\n * @group AllSettled\r\n * @group Native\r\n * @param values - The iterator of promises to wait to be resolved / rejected before resolving or rejecting the new promise\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero, only used when Native promises are not available.\r\n * @returns A pending `Promise` that will resolve to an array of {@link IPromiseResult } objects that each describe the outcome of each promise.\r\n *\r\n * @example\r\n * ```ts\r\n * const promises = [\r\n * createNativeResolvedPromise(1),\r\n * createNativeResolvedPromise(2),\r\n * createNativeResolvedPromise(3),\r\n * createNativeRejectedPromise(\"error\"),\r\n * ];\r\n *\r\n * const results = await createNativeAllSettledPromise(promises);\r\n *\r\n * // results is:\r\n * // [\r\n * // { status: \"fulfilled\", value: 1 },\r\n * // { status: \"fulfilled\", value: 2 },\r\n * // { status: \"fulfilled\", value: 3 },\r\n * // { status: \"rejected\", reason: \"error\" }\r\n * // ]\r\n * ```\r\n */\r\nexport function createNativeAllSettledPromise(values: Iterable>, timeout?: number): IPromise>[]>;\r\n\r\n/**\r\n * Returns a single asynchronous Promise instance that resolves to an array of the results from the input promises.\r\n * This returned promise will resolve and execute it's pending chained operations using {@link createNativePromise native}\r\n * environment promise implementation, if the runtime does not provide any native then the optional provided\r\n * timeout value will be used to schedule when the chained items will be executed or if the input contains no promises.\r\n * It will resolve only after all of the input promises have either resolved or rejected, and will resolve with an array\r\n * of {@link IPromiseResult } objects that each describe the outcome of each promise.\r\n * @since 0.5.0\r\n * @group Alias\r\n * @group Promise\r\n * @group AllSettled\r\n * @group Native\r\n * @param input - An array of promises to wait to be resolved / rejected before resolving or rejecting the new promise\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero, only used when Native promises are not available.\r\n * @returns A pending `Promise` that will resolve to an array of {@link IPromiseResult } objects that each describe the outcome of each promise.\r\n *\r\n * @example\r\n * ```ts\r\n * const promises = [\r\n * createNativeResolvedPromise(1),\r\n * createNativeResolvedPromise(2),\r\n * createNativeResolvedPromise(3),\r\n * createNativeRejectedPromise(\"error\"),\r\n * ];\r\n *\r\n * const results = await createNativeAllSettledPromise(promises);\r\n *\r\n * // results is:\r\n * // [\r\n * // { status: \"fulfilled\", value: 1 },\r\n * // { status: \"fulfilled\", value: 2 },\r\n * // { status: \"fulfilled\", value: 3 },\r\n * // { status: \"rejected\", reason: \"error\" }\r\n * // ]\r\n * ```\r\n */\r\nexport function createNativeAllSettledPromise(input: T, timeout?: number): IPromise<{ -readonly [P in keyof T]: IPromiseResult>; }> {\r\n !_allNativeSettledCreator && (_allNativeSettledCreator = _createNativePromiseHelper(\"allSettled\", () => _createAllSettledPromise(createNativePromise)));\r\n return _allNativeSettledCreator.v(input, timeout);\r\n}\r\n\r\n/**\r\n * The `createNativeRacePromise` method takes an array of promises as input and returns a single Promise. This returned promise\r\n * settles with the eventual state of the first promise that settles.\r\n * @description The `createNativeRacePromise` method is one of the promise concurrency methods. It's useful when you want the first\r\n * async task to complete, but do not care about its eventual state (i.e. it can either succeed or fail).\r\n * If the iterable contains one or more non-promise values and/or an already settled promise, then Promise.race() will settle to\r\n * the first of these values found in the iterable.\r\n * @since 0.5.0\r\n * @group Alias\r\n * @group Promise\r\n * @group Race\r\n * @group Native\r\n * @param values - An iterable object of promises.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero, only used when Native promises are not available.\r\n * @returns A Promise that settles with the eventual state of the first promise in the iterable to settle. In other words, it fulfills if the\r\n * first promise to settle is fulfilled, and rejects if the first promise to settle is rejected. The returned promise remains pending forever\r\n * if the iterable passed is empty. If the iterable passed is non-empty but contains no pending promises, the returned promise will settle\r\n * asynchronously.\r\n */\r\nexport function createNativeRacePromise(values: Iterable>, timeout?: number): IPromise>;\r\n\r\n/**\r\n * The `createNativeRacePromise` method takes an array of promises as input and returns a single Promise. This returned promise\r\n * settles with the eventual state of the first promise that settles.\r\n * @description The `createNativeRacePromise` method is one of the promise concurrency methods. It's useful when you want the first\r\n * async task to complete, but do not care about its eventual state (i.e. it can either succeed or fail).\r\n * If the iterable contains one or more non-promise values and/or an already settled promise, then Promise.race() will settle to\r\n * the first of these values found in the iterable.\r\n * @since 0.5.0\r\n * @group Alias\r\n * @group Promise\r\n * @group Race\r\n * @group Native\r\n * @param values - An the array of promises.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero, only used when Native promises are not available.\r\n * @returns A Promise that settles with the eventual state of the first promise in the iterable to settle. In other words, it fulfills if the\r\n * first promise to settle is fulfilled, and rejects if the first promise to settle is rejected. The returned promise remains pending forever\r\n * if the iterable passed is empty. If the iterable passed is non-empty but contains no pending promises, the returned promise will settle\r\n * asynchronously.\r\n */\r\nexport function createNativeRacePromise(values: T, timeout?: number): IPromise> {\r\n !_raceNativeCreator && (_raceNativeCreator = _createNativePromiseHelper(\"race\", () => _createRacePromise(createNativePromise)));\r\n return _raceNativeCreator.v(values, timeout);\r\n}\r\n\r\n/**\r\n * The `createNativeAnyPromise` method takes an iterable of promises as input and returns a single Promise.\r\n * This returned promise fulfills when any of the input's promises fulfills, with this first fulfillment value.\r\n * It rejects when all of the input's promises reject (including when an empty iterable is passed), with an\r\n * AggregateError containing an array of rejection reasons.\r\n * @since 0.5.0\r\n * @group Alias\r\n * @group Promise\r\n * @group Any\r\n * @group Native\r\n * @param values - An iterable object of promises.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero, only used when Native promises are not available.\r\n * @returns A new Promise that is:\r\n * - Already rejected, if the iterable passed is empty.\r\n * - Asynchronously fulfilled, when any of the promises in the given iterable fulfills. The fulfillment value\r\n * is the fulfillment value of the first promise that was fulfilled.\r\n * - Asynchronously rejected, when all of the promises in the given iterable reject. The rejection reason is\r\n * an AggregateError containing an array of rejection reasons in its errors property. The errors are in the\r\n * order of the promises passed, regardless of completion order. If the iterable passed is non-empty but\r\n * contains no pending promises, the returned promise is still asynchronously (instead of synchronously)\r\n * rejected.\r\n */\r\nexport function createNativeAnyPromise(values: Iterable>, timeout?: number): IPromise>;\r\n \r\n/**\r\n * The `createNativeAnyPromise` method takes an array of promises as input and returns a single Promise.\r\n * This returned promise fulfills when any of the input's promises fulfills, with this first fulfillment value.\r\n * It rejects when all of the input's promises reject (including when an empty iterable is passed), with an\r\n * AggregateError containing an array of rejection reasons.\r\n * @since 0.5.0\r\n * @group Alias\r\n * @group Promise\r\n * @group Any\r\n * @group Native\r\n * @param values - An Array promises.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero, only used when Native promises are not available.\r\n * @returns A new Promise that is:\r\n * - Already rejected, if the iterable passed is empty.\r\n * - Asynchronously fulfilled, when any of the promises in the given iterable fulfills. The fulfillment value\r\n * is the fulfillment value of the first promise that was fulfilled.\r\n * - Asynchronously rejected, when all of the promises in the given iterable reject. The rejection reason is\r\n * an AggregateError containing an array of rejection reasons in its errors property. The errors are in the\r\n * order of the promises passed, regardless of completion order. If the iterable passed is non-empty but\r\n * contains no pending promises, the returned promise is still asynchronously (instead of synchronously)\r\n * rejected.\r\n */\r\nexport function createNativeAnyPromise(values: T, timeout?: number): IPromise> {\r\n !_anyNativeCreator && (_anyNativeCreator = _createNativePromiseHelper(\"any\", () => _createAnyPromise(createNativePromise)));\r\n return _anyNativeCreator.v(values, timeout);\r\n}\r\n","/*\r\n * @nevware21/ts-async\r\n * https://github.com/nevware21/ts-async\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport {\r\n _createAllPromise, _createAllSettledPromise, _createAnyPromise, _createPromise, _createRacePromise,\r\n _createRejectedPromise, _createResolvedPromise\r\n} from \"./base\";\r\nimport { IPromise } from \"../interfaces/IPromise\";\r\nimport { syncItemProcessor } from \"./itemProcessor\";\r\nimport { PromiseExecutor } from \"../interfaces/types\";\r\nimport { IPromiseResult } from \"../interfaces/IPromiseResult\";\r\nimport { ICachedValue } from \"@nevware21/ts-utils\";\r\n\r\nlet _allSyncSettledCreator: ICachedValue<(input: T, timeout?: number) => IPromise<{ -readonly [P in keyof T]: IPromiseResult>; }>>;\r\nlet _raceSyncCreator: ICachedValue<(values: T, timeout?: number) => IPromise>>;\r\nlet _anySyncCreator: ICachedValue<(values: T, timeout?: number) => IPromise>>;\r\n\r\n/**\r\n * Creates a synchronous Promise instance that when resolved or rejected will execute it's pending chained operations\r\n * __synchronously__ in the same execution cycle as the operation that calls the `executors`, `resolve` or `reject` functions.\r\n *\r\n * @group Synchronous\r\n * @group Promise\r\n * @param executor - The function to be executed during the creation of the promise. Any errors thrown in the executor will\r\n * cause the promise to be rejected. The return value of the executor is always ignored\r\n */\r\nexport function createSyncPromise(executor: PromiseExecutor): IPromise {\r\n return _createPromise(createSyncPromise, syncItemProcessor, executor);\r\n}\r\n\r\n/**\r\n * Returns a single synchronous Promise instance that resolves to an array of the results from the input promises.\r\n * This returned promise will resolve and execute it's pending chained operations __synchronously__ in the same\r\n * execution cycle as the final operation pending promises have resolved, or if the input contains no promises.\r\n * It rejects immediately upon any of the input promises rejected or non-promises throwing an error,\r\n * and will reject with this first rejection message / error.\r\n * When resolved or rejected any additional chained operations will execute __synchronously__ at the point of\r\n * being added (eg. `then()`; `catch()`; `finally()`).\r\n * @group Synchronous\r\n * @group Promise\r\n * @group All\r\n * @param input - The array of promises to wait to be resolved / rejected before resolving or rejecting the new promise\r\n * @returns\r\n *
    \r\n *
  • An already resolved `Promise`, if the input passed is empty.\r\n *
  • A pending `Promise` in all other cases. This returned promise is then resolved/rejected __synchronously__\r\n * (as soon as the pending items is empty) when all the promises in the given input have resolved, or if any of the\r\n * promises reject.\r\n *
\r\n */\r\nexport const createSyncAllPromise: (input: Iterable>) => IPromise = /*#__PURE__*/_createAllPromise(createSyncPromise);\r\n\r\n/**\r\n * Returns a single synchronous Promise instance that is already resolved with the given value. If the value passed is\r\n * a promise then that promise is returned instead of creating a new synchronous promise instance.\r\n * If a new instance is returned then any chained operations will execute __synchronously__ at the point of being\r\n * added (calling `then()`).\r\n * @group Synchronous\r\n * @group Promise\r\n * @group Resolved\r\n * @param value - The value to be used by this `Promise`. Can also be a `Promise` or a thenable to resolve.\r\n */\r\nexport const createSyncResolvedPromise: (value: T) => IPromise = /*#__PURE__*/_createResolvedPromise(createSyncPromise);\r\n\r\n/**\r\n * Returns a single synchronous Promise instance that is already rejected with the given reason.\r\n * Any chained operations will execute __synchronously__ at the point of being added (eg. `catch()`; `finally()`).\r\n * @group Synchronous\r\n * @group Promise\r\n * @group Rejected\r\n * @param reason - The rejection reason\r\n */\r\nexport const createSyncRejectedPromise: (reason: any) => IPromise = /*#__PURE__*/_createRejectedPromise(createSyncPromise);\r\n\r\n/**\r\n * Returns a single Promise instance that resolves to an array of the results from the input promises.\r\n * This returned promise will resolve and execute it's pending chained operations based on the\r\n * {@link createSyncPromise synchronous} promise implementation. Any chained operations will execute\r\n * __synchronously__ in the same execution cycle as the final operation pending promises have resolved,\r\n * or if the input contains no promises. It will resolve only after all of the input promises have either\r\n * resolved or rejected, and will resolve with an array of {@link IPromiseResult } objects that each describe\r\n * the outcome of each promise.\r\n * @since 0.5.0\r\n * @group Synchronous\r\n * @group Promise\r\n * @group AllSettled\r\n * @param values - The iterator of promises to wait to be resolved / rejected before resolving or rejecting the new promise\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero, only used when Native promises are not available.\r\n * @returns A pending `Promise` that will resolve to an array of {@link IPromiseResult } objects that each describe the outcome of each promise.\r\n *\r\n * @example\r\n * ```ts\r\n * const promises = [\r\n * createResolvedPromise(1),\r\n * createResolvedPromise(2),\r\n * createResolvedPromise(3),\r\n * createRejectedPromise(\"error\"),\r\n * ];\r\n *\r\n * const results = await createAllSettledPromise(promises);\r\n *\r\n * // results is:\r\n * // [\r\n * // { status: \"fulfilled\", value: 1 },\r\n * // { status: \"fulfilled\", value: 2 },\r\n * // { status: \"fulfilled\", value: 3 },\r\n * // { status: \"rejected\", reason: \"error\" }\r\n * // ]\r\n * ```\r\n */\r\nexport function createSyncAllSettledPromise(values: Iterable>, timeout?: number): IPromise>[]>;\r\n\r\n/**\r\n * Returns a single Promise instance that resolves to an array of the results from the input promises.\r\n * This returned promise will resolve and execute it's pending chained operations based on the\r\n * {@link createSyncPromise synchronous} promise implementation. Any chained operations will execute\r\n * __synchronously__ in the same execution cycle as the final operation pending promises have resolved,\r\n * or if the input contains no promises. It will resolve only after all of the input promises have either\r\n * resolved or rejected, and will resolve with an array of {@link IPromiseResult } objects that each describe\r\n * the outcome of each promise.\r\n * @since 0.5.0\r\n * @group Synchronous\r\n * @group Promise\r\n * @group AllSettled\r\n * @param input - An array of promises to wait to be resolved / rejected before resolving or rejecting the new promise\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero, only used when Native promises are not available.\r\n * @returns A pending `Promise` that will resolve to an array of {@link IPromiseResult } objects that each describe the outcome of each promise.\r\n *\r\n * @example\r\n * ```ts\r\n * const promises = [\r\n * createResolvedPromise(1),\r\n * createResolvedPromise(2),\r\n * createResolvedPromise(3),\r\n * createRejectedPromise(\"error\"),\r\n * ];\r\n *\r\n * const results = await createAllSettledPromise(promises);\r\n *\r\n * // results is:\r\n * // [\r\n * // { status: \"fulfilled\", value: 1 },\r\n * // { status: \"fulfilled\", value: 2 },\r\n * // { status: \"fulfilled\", value: 3 },\r\n * // { status: \"rejected\", reason: \"error\" }\r\n * // ]\r\n * ```\r\n */\r\nexport function createSyncAllSettledPromise(input: T, timeout?: number): IPromise<{ -readonly [P in keyof T]: IPromiseResult>; }> {\r\n !_allSyncSettledCreator && (_allSyncSettledCreator = _createAllSettledPromise(createSyncPromise));\r\n return _allSyncSettledCreator.v(input, timeout);\r\n}\r\n\r\n/**\r\n * The `createSyncRacePromise` method takes an array of promises as input and returns a single Promise. This returned promise\r\n * settles with the eventual state of the first promise that settles.\r\n * @description The `createSyncRacePromise` method is one of the promise concurrency methods. It's useful when you want the first\r\n * async task to complete, but do not care about its eventual state (i.e. it can either succeed or fail).\r\n * If the iterable contains one or more non-promise values and/or an already settled promise, then Promise.race() will settle to\r\n * the first of these values found in the iterable.\r\n * @since 0.5.0\r\n * @group Synchronous\r\n * @group Promise\r\n * @group Race\r\n * @param values - An iterable object of promises.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero, only used when Native promises are not available.\r\n * @returns A Promise that settles with the eventual state of the first promise in the iterable to settle. In other words, it fulfills if the\r\n * first promise to settle is fulfilled, and rejects if the first promise to settle is rejected. The returned promise remains pending forever\r\n * if the iterable passed is empty. If the iterable passed is non-empty but contains no pending promises, the returned promise will settle\r\n * synchronously.\r\n */\r\nexport function createSyncRacePromise(values: Iterable>, timeout?: number): IPromise>;\r\n\r\n/**\r\n * The `createSyncRacePromise` method takes an array of promises as input and returns a single Promise. This returned promise\r\n * settles with the eventual state of the first promise that settles.\r\n * @description The `createSyncRacePromise` method is one of the promise concurrency methods. It's useful when you want the first\r\n * async task to complete, but do not care about its eventual state (i.e. it can either succeed or fail).\r\n * If the iterable contains one or more non-promise values and/or an already settled promise, then Promise.race() will settle to\r\n * the first of these values found in the iterable.\r\n * @since 0.5.0\r\n * @group Synchronous\r\n * @group Promise\r\n * @group Race\r\n * @param values - An the array of promises.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero, only used when Native promises are not available.\r\n * @returns A Promise that settles with the eventual state of the first promise in the iterable to settle. In other words, it fulfills if the\r\n * first promise to settle is fulfilled, and rejects if the first promise to settle is rejected. The returned promise remains pending forever\r\n * if the iterable passed is empty. If the iterable passed is non-empty but contains no pending promises, the returned promise will settle\r\n * synchronously.\r\n */\r\nexport function createSyncRacePromise(values: T, timeout?: number): IPromise> {\r\n !_raceSyncCreator && (_raceSyncCreator = _createRacePromise(createSyncPromise));\r\n return _raceSyncCreator.v(values, timeout);\r\n}\r\n\r\n/**\r\n * The `createSyncAnyPromise` method takes an iterable of promises as input and returns a single Promise.\r\n * This returned promise fulfills when any of the input's promises fulfills, with this first fulfillment value.\r\n * It rejects when all of the input's promises reject (including when an empty iterable is passed), with an\r\n * AggregateError containing an array of rejection reasons.\r\n * @since 0.5.0\r\n * @group Synchronous\r\n * @group Promise\r\n * @group Any\r\n * @param values - An iterable object of promises.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero, only used when Native promises are not available.\r\n * @returns A new Promise that is:\r\n * - Already rejected, if the iterable passed is empty.\r\n * - Asynchronously fulfilled, when any of the promises in the given iterable fulfills. The fulfillment value\r\n * is the fulfillment value of the first promise that was fulfilled.\r\n * - Asynchronously rejected, when all of the promises in the given iterable reject. The rejection reason is\r\n * an AggregateError containing an array of rejection reasons in its errors property. The errors are in the\r\n * order of the promises passed, regardless of completion order. If the iterable passed is non-empty but\r\n * contains no pending promises, the returned promise is still asynchronously (instead of synchronously)\r\n * rejected.\r\n */\r\nexport function createSyncAnyPromise(values: Iterable>, timeout?: number): IPromise>;\r\n \r\n/**\r\n * The `createSyncAnyPromise` method takes an array of promises as input and returns a single Promise.\r\n * This returned promise fulfills when any of the input's promises fulfills, with this first fulfillment value.\r\n * It rejects when all of the input's promises reject (including when an empty iterable is passed), with an\r\n * AggregateError containing an array of rejection reasons.\r\n * @since 0.5.0\r\n * @group Synchronous\r\n * @group Promise\r\n * @group Any\r\n * @param values - An Array promises.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero, only used when Native promises are not available.\r\n * @returns A new Promise that is:\r\n * - Already rejected, if the iterable passed is empty.\r\n * - Asynchronously fulfilled, when any of the promises in the given iterable fulfills. The fulfillment value\r\n * is the fulfillment value of the first promise that was fulfilled.\r\n * - Asynchronously rejected, when all of the promises in the given iterable reject. The rejection reason is\r\n * an AggregateError containing an array of rejection reasons in its errors property. The errors are in the\r\n * order of the promises passed, regardless of completion order. If the iterable passed is non-empty but\r\n * contains no pending promises, the returned promise is still asynchronously (instead of synchronously)\r\n * rejected.\r\n */\r\nexport function createSyncAnyPromise(values: T, timeout?: number): IPromise> {\r\n !_anySyncCreator && (_anySyncCreator = _createAnyPromise(createSyncPromise));\r\n return _anySyncCreator.v(values, timeout);\r\n}","/*\r\n * @nevware21/ts-async\r\n * https://github.com/nevware21/ts-async\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { ICachedValue, isUndefined } from \"@nevware21/ts-utils\";\r\nimport { _createAllPromise, _createAllSettledPromise, _createAnyPromise, _createPromise, _createRacePromise, _createRejectedPromise, _createResolvedPromise } from \"./base\";\r\nimport { IPromise } from \"../interfaces/IPromise\";\r\nimport { idleItemProcessor } from \"./itemProcessor\";\r\nimport { PromiseExecutor } from \"../interfaces/types\";\r\nimport { IPromiseResult } from \"../interfaces/IPromiseResult\";\r\n\r\nlet _defaultIdleTimeout: number | undefined;\r\n\r\nlet _allIdleSettledCreator: ICachedValue<(input: T, timeout?: number) => IPromise<{ -readonly [P in keyof T]: IPromiseResult>; }>>;\r\nlet _raceIdleCreator: ICachedValue<(values: T, timeout?: number) => IPromise>>;\r\nlet _anyIdleCreator: ICachedValue<(values: T, timeout?: number) => IPromise>>;\r\n\r\n/**\r\n * Sets the global default idle timeout / deadline to use when no timeout is passed during promise creation.\r\n * @param idleDeadline - Specifies the time in milliseconds to use as the idle timeout / deadline by when any\r\n * outstanding chained items should be executed.\r\n * @group Idle\r\n */\r\nexport function setDefaultIdlePromiseTimeout(idleDeadline?: number | undefined) {\r\n _defaultIdleTimeout = idleDeadline;\r\n}\r\n\r\n/**\r\n * @deprecated Use `setDefaultIdlePromiseTimeout` instead\r\n * Sets the global default idle timeout / deadline to use when no timeout is passed during promise creation.\r\n * @param idleDeadline - Specifies the time in milliseconds to use as the idle timeout / deadline by when any\r\n * outstanding chained items should be executed.\r\n * @group Idle\r\n */\r\nexport const setDefaultIdleTimeout = (/*#__PURE__*/setDefaultIdlePromiseTimeout);\r\n\r\n/**\r\n * Creates an idle Promise instance that when resolved or rejected will execute it's pending chained operations\r\n * __asynchronously__ using the `requestIdleCallback` API (if available) with the optional provided timeout value to\r\n * schedule when the chained items will be executed. When `requestIdleCallback` is not available this becomes the same as\r\n * `createAsyncPromise` which uses `setTimeout` to schedule executions.\r\n * @group Idle\r\n * @group Promise\r\n * @param executor - The function to be executed during the creation of the promise. Any errors thrown in the executor will\r\n * cause the promise to be rejected. The return value of the executor is always ignored\r\n * @param timeout - Optional deadline timeout to wait before processing the items, defaults to undefined. If the number of\r\n * milliseconds represented by this parameter has elapsed and the callback has not already been called, then a task to execute\r\n * the callback is queued in the event loop (even if doing so risks causing a negative performance impact). timeout must be a\r\n * positive value or it is ignored.\r\n */\r\nexport function createIdlePromise(executor: PromiseExecutor, timeout?: number): IPromise {\r\n let theTimeout = isUndefined(timeout) ? _defaultIdleTimeout : timeout;\r\n return _createPromise(createIdlePromise, idleItemProcessor(theTimeout), executor, theTimeout);\r\n}\r\n\r\n/**\r\n * Returns an idle Promise instance that resolves to an array of the results from the input promises.\r\n * This returned promise will resolve and execute it's pending chained operations __asynchronously__\r\n * using the `requestIdleCallback` API (if available) with the optional provided timeout value to\r\n * schedule when the chained items will be executed.\r\n * It rejects immediately upon any of the input promises rejected or non-promises throwing an error,\r\n * and will reject with this first rejection message / error.\r\n * When resolved or rejected any additional chained operations will execute __asynchronously__ using\r\n * the `requestIdleCallback` API (if available) with the optional provided timeout value to schedule\r\n * when the chained items will be executed. (eg. `then()`; `catch()`; `finally()`).\r\n * @group Idle\r\n * @group Promise\r\n * @group All\r\n * @param input - The array of promises to wait to be resolved / rejected before resolving or rejecting the new promise\r\n * @param timeout\r\n * @returns\r\n *
    \r\n *
  • An already resolved `Promise`, if the input passed is empty.\r\n *
  • A pending `Promise` in all other cases. This returned promise is then resolved/rejected __synchronously__\r\n * (as soon as the pending items is empty) when all the promises in the given input have resolved, or if any of the\r\n * promises reject.\r\n *
\r\n */\r\nexport const createIdleAllPromise: (input: Iterable>, timeout?: number) => IPromise = /*#__PURE__*/_createAllPromise(createIdlePromise);\r\n\r\n/**\r\n * Returns an idle Promise instance that is already resolved with the given value. If the value passed is\r\n * a promise then that promise is returned instead of creating a new asynchronous promise instance.\r\n * If a new instance is returned then any chained operations will execute __asynchronously__ using the\r\n * `requestIdleCallback` API (if available) with the optional provided timeout value to schedule when\r\n * the chained items will be executed. (eg. `then()`; `finally()`).\r\n * @group Idle\r\n * @group Promise\r\n * @group Resolved\r\n * @param value - The value to be used by this `Promise`. Can also be a `Promise` or a thenable to resolve.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero.\r\n */\r\nexport const createIdleResolvedPromise: (value: T, timeout?: number) => IPromise = /*#__PURE__*/_createResolvedPromise(createIdlePromise);\r\n\r\n/**\r\n * Returns an idle Promise instance that is already rejected with the given reason.\r\n * Any chained operations will execute __asynchronously__ using the o`requestIdleCallback` API\r\n * (if available) with the optional provided timeout value to schedule when the chained items will\r\n * be executed. (eg. `catch()`; `finally()`).\r\n * @group Idle\r\n * @group Promise\r\n * @group Rejected\r\n * @param reason - The rejection reason\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero.\r\n */\r\nexport const createIdleRejectedPromise: (reason: any, timeout?: number) => IPromise = /*#__PURE__*/_createRejectedPromise(createIdlePromise);\r\n\r\n/**\r\n * Returns a single Promise instance that resolves to an array of the results from the input promises.\r\n * This returned promise will resolve and execute it's pending chained operations based on the\r\n * {@link createIdlePromise idle} promise implementation. Any chained operations will execute\r\n * __asynchronously__ when the environment is idle as the final operation pending promises have resolved,\r\n * or if the input contains no promises. It will resolve only after all of the input promises have either\r\n * resolved or rejected, and will resolve with an array of {@link IPromiseResult } objects that each describe\r\n * the outcome of each promise.\r\n * @since 0.5.0\r\n * @group Idle\r\n * @group Promise\r\n * @group AllSettled\r\n * @param values - The iterator of promises to wait to be resolved / rejected before resolving or rejecting the new promise\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero, only used when Native promises are not available.\r\n * @returns A pending `Promise` that will resolve to an array of {@link IPromiseResult } objects that each describe the outcome of each promise.\r\n *\r\n * @example\r\n * ```ts\r\n * const promises = [\r\n * createResolvedPromise(1),\r\n * createResolvedPromise(2),\r\n * createResolvedPromise(3),\r\n * createRejectedPromise(\"error\"),\r\n * ];\r\n *\r\n * const results = await createAllSettledPromise(promises);\r\n *\r\n * // results is:\r\n * // [\r\n * // { status: \"fulfilled\", value: 1 },\r\n * // { status: \"fulfilled\", value: 2 },\r\n * // { status: \"fulfilled\", value: 3 },\r\n * // { status: \"rejected\", reason: \"error\" }\r\n * // ]\r\n * ```\r\n */\r\nexport function createIdleAllSettledPromise(values: Iterable>, timeout?: number): IPromise>[]>;\r\n\r\n/**\r\n * Returns a single Promise instance that resolves to an array of the results from the input promises.\r\n * This returned promise will resolve and execute it's pending chained operations based on the\r\n * {@link createIdlePromise idle} promise implementation. Any chained operations will execute\r\n * __asynchronously__ when the environment is idle as the final operation pending promises have resolved,\r\n * or if the input contains no promises. It will resolve only after all of the input promises have either\r\n * resolved or rejected, and will resolve with an array of {@link IPromiseResult } objects that each describe\r\n * the outcome of each promise.\r\n * @since 0.5.0\r\n * @group Idle\r\n * @group Promise\r\n * @group AllSettled\r\n * @param input - An array of promises to wait to be resolved / rejected before resolving or rejecting the new promise\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero, only used when Native promises are not available.\r\n * @returns A pending `Promise` that will resolve to an array of {@link IPromiseResult } objects that each describe the outcome of each promise.\r\n *\r\n * @example\r\n * ```ts\r\n * const promises = [\r\n * createResolvedPromise(1),\r\n * createResolvedPromise(2),\r\n * createResolvedPromise(3),\r\n * createRejectedPromise(\"error\"),\r\n * ];\r\n *\r\n * const results = await createAllSettledPromise(promises);\r\n *\r\n * // results is:\r\n * // [\r\n * // { status: \"fulfilled\", value: 1 },\r\n * // { status: \"fulfilled\", value: 2 },\r\n * // { status: \"fulfilled\", value: 3 },\r\n * // { status: \"rejected\", reason: \"error\" }\r\n * // ]\r\n * ```\r\n */\r\nexport function createIdleAllSettledPromise(input: T, timeout?: number): IPromise<{ -readonly [P in keyof T]: IPromiseResult>; }> {\r\n !_allIdleSettledCreator && (_allIdleSettledCreator = _createAllSettledPromise(createIdlePromise));\r\n return _allIdleSettledCreator.v(input, timeout);\r\n}\r\n\r\n/**\r\n * The `createIdleRacePromise` method takes an array of promises as input and returns a single Promise. This returned promise\r\n * settles with the eventual state of the first promise that settles.\r\n * @description The `createIdleRacePromise` method is one of the promise concurrency methods. It's useful when you want the first\r\n * async task to complete, but do not care about its eventual state (i.e. it can either succeed or fail).\r\n * If the iterable contains one or more non-promise values and/or an already settled promise, then Promise.race() will settle to\r\n * the first of these values found in the iterable.\r\n * @since 0.5.0\r\n * @group Idle\r\n * @group Promise\r\n * @group Race\r\n * @param values - An iterable object of promises.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero, only used when Native promises are not available.\r\n * @returns A Promise that settles with the eventual state of the first promise in the iterable to settle. In other words, it fulfills if the\r\n * first promise to settle is fulfilled, and rejects if the first promise to settle is rejected. The returned promise remains pending forever\r\n * if the iterable passed is empty. If the iterable passed is non-empty but contains no pending promises, the returned promise will settle\r\n * asynchronously when the system detects that the runtime is idle.\r\n */\r\nexport function createIdleRacePromise(values: Iterable>, timeout?: number): IPromise>;\r\n\r\n/**\r\n * The `createIdleRacePromise` method takes an array of promises as input and returns a single Promise. This returned promise\r\n * settles with the eventual state of the first promise that settles.\r\n * @description The `createIdleRacePromise` method is one of the promise concurrency methods. It's useful when you want the first\r\n * async task to complete, but do not care about its eventual state (i.e. it can either succeed or fail).\r\n * If the iterable contains one or more non-promise values and/or an already settled promise, then Promise.race() will settle to\r\n * the first of these values found in the iterable.\r\n * @since 0.5.0\r\n * @group Idle\r\n * @group Promise\r\n * @group Race\r\n * @param values - An the array of promises.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero, only used when Native promises are not available.\r\n * @returns A Promise that settles with the eventual state of the first promise in the iterable to settle. In other words, it fulfills if the\r\n * first promise to settle is fulfilled, and rejects if the first promise to settle is rejected. The returned promise remains pending forever\r\n * if the iterable passed is empty. If the iterable passed is non-empty but contains no pending promises, the returned promise will settle\r\n * asynchronously when the system detects that the runtime is idle.\r\n */\r\nexport function createIdleRacePromise(values: T, timeout?: number): IPromise> {\r\n !_raceIdleCreator && (_raceIdleCreator = _createRacePromise(createIdlePromise));\r\n return _raceIdleCreator.v(values, timeout);\r\n}\r\n\r\n/**\r\n * The `createIdleAnyPromise` method takes an iterable of promises as input and returns a single Promise.\r\n * This returned promise fulfills when any of the input's promises fulfills, with this first fulfillment value.\r\n * It rejects when all of the input's promises reject (including when an empty iterable is passed), with an\r\n * AggregateError containing an array of rejection reasons.\r\n * @since 0.5.0\r\n * @group Idle\r\n * @group Promise\r\n * @group Any\r\n * @param values - An iterable object of promises.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero, only used when Native promises are not available.\r\n * @returns A new Promise that is:\r\n * - Already rejected, if the iterable passed is empty.\r\n * - Asynchronously fulfilled, when any of the promises in the given iterable fulfills. The fulfillment value\r\n * is the fulfillment value of the first promise that was fulfilled.\r\n * - Asynchronously rejected, when all of the promises in the given iterable reject. The rejection reason is\r\n * an AggregateError containing an array of rejection reasons in its errors property. The errors are in the\r\n * order of the promises passed, regardless of completion order. If the iterable passed is non-empty but\r\n * contains no pending promises, the returned promise is still asynchronously (instead of synchronously)\r\n * rejected.\r\n */\r\nexport function createIdleAnyPromise(values: Iterable>, timeout?: number): IPromise>;\r\n \r\n/**\r\n * The `createIdleAnyPromise` method takes an array of promises as input and returns a single Promise.\r\n * This returned promise fulfills when any of the input's promises fulfills, with this first fulfillment value.\r\n * It rejects when all of the input's promises reject (including when an empty iterable is passed), with an\r\n * AggregateError containing an array of rejection reasons.\r\n * @since 0.5.0\r\n * @group Idle\r\n * @group Promise\r\n * @group Any\r\n * @param values - An Array promises.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero, only used when Native promises are not available.\r\n * @returns A new Promise that is:\r\n * - Already rejected, if the iterable passed is empty.\r\n * - Asynchronously fulfilled, when any of the promises in the given iterable fulfills. The fulfillment value\r\n * is the fulfillment value of the first promise that was fulfilled.\r\n * - Asynchronously rejected, when all of the promises in the given iterable reject. The rejection reason is\r\n * an AggregateError containing an array of rejection reasons in its errors property. The errors are in the\r\n * order of the promises passed, regardless of completion order. If the iterable passed is non-empty but\r\n * contains no pending promises, the returned promise is still asynchronously (instead of synchronously)\r\n * rejected.\r\n */\r\nexport function createIdleAnyPromise(values: T, timeout?: number): IPromise> {\r\n !_anyIdleCreator && (_anyIdleCreator = _createAnyPromise(createIdlePromise));\r\n return _anyIdleCreator.v(values, timeout);\r\n}","/*\r\n * @nevware21/ts-async\r\n * https://github.com/nevware21/ts-async\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { createCachedValue, ICachedValue } from \"@nevware21/ts-utils\";\r\nimport { _createAllPromise, _createAllSettledPromise, _createAnyPromise, _createRacePromise, _createRejectedPromise, _createResolvedPromise } from \"./base\";\r\nimport { IPromise } from \"../interfaces/IPromise\";\r\nimport { createNativePromise } from \"./nativePromise\";\r\nimport { PromiseExecutor } from \"../interfaces/types\";\r\nimport { IPromiseResult } from \"../interfaces/IPromiseResult\";\r\n\r\nlet _promiseCreator: ICachedValue<(executor: PromiseExecutor, timeout?: number) => IPromise>;\r\nlet _allSettledCreator: ICachedValue<(input: T, timeout?: number) => IPromise<{ -readonly [P in keyof T]: IPromiseResult>; }>>;\r\nlet _raceCreator: ICachedValue<(values: T, timeout?: number) => IPromise>>;\r\nlet _anyCreator: ICachedValue<(values: T, timeout?: number) => IPromise>>;\r\n\r\n/**\r\n * Set the default promise implementation to use when calling `createPromise`; `createAllPromise`; `createResolvedPromise`\r\n * and `createRejectedPromise`. This is effective a global value and changing this will affect ALL callers of these\r\n * functions, as such these functions should only be used when switching implementations would have not unexpected\r\n * consequences like switching from a `createSyncPromise` to `createIdlePromise` where idle promises have a possibility\r\n * of never getting called during application shutdown or during an expected timeframe.\r\n * @group Alias\r\n * @group Promise\r\n * @param creator - The creator function to call when a new promise is required.\r\n */\r\nexport function setCreatePromiseImpl(\r\n creator: (executor: PromiseExecutor, timeout?: number) => IPromise\r\n) {\r\n _promiseCreator = creator ? createCachedValue(creator) : null;\r\n}\r\n\r\n/**\r\n * Creates a Promise instance using the current default promise creator that when resolved or rejected will execute\r\n * it's pending chained operations.\r\n * @group Alias\r\n * @group Promise\r\n * @param executor - The function to be executed during the creation of the promise. Any errors thrown in the executor will\r\n * cause the promise to be rejected. The return value of the executor is always ignored\r\n * @param timeout - [Optional] timeout to wait before processing the items, defaults to zero.\r\n */\r\nexport function createPromise(executor: PromiseExecutor, timeout?: number): IPromise {\r\n !_promiseCreator && (_promiseCreator = createCachedValue(createNativePromise));\r\n\r\n return _promiseCreator.v.call(this, executor, timeout);\r\n}\r\n\r\n/**\r\n * Returns a single asynchronous Promise instance that resolves to an array of the results from the input promises.\r\n * This returned promise will resolve and execute it's pending chained operations __asynchronously__ using the optional\r\n * provided timeout value to schedule when the chained items will be executed, or if the input contains no promises.\r\n * It rejects immediately upon any of the input promises rejected or non-promises throwing an error,\r\n * and will reject with this first rejection message / error.\r\n * If the runtime doesn't support the Promise.all it will fallback back to an asynchronous Promise implementation.\r\n * @group Alias\r\n * @group Promise\r\n * @group All\r\n * @param input - The array of promises to wait to be resolved / rejected before resolving or rejecting the new promise\r\n * @param timeout\r\n * @returns\r\n *
    \r\n *
  • An already resolved `Promise`, if the input passed is empty.\r\n *
  • A pending `Promise` in all other cases. This returned promise is then resolved/rejected __synchronously__\r\n * (as soon as the pending items is empty) when all the promises in the given input have resolved, or if any of the\r\n * promises reject.\r\n *
\r\n */\r\nexport const createAllPromise: (input: Iterable>, timeout?: number) => IPromise = /*#__PURE__*/_createAllPromise(createPromise);\r\n\r\n\r\n/**\r\n * Returns a single asynchronous Promise instance that is already resolved with the given value. If the value passed is\r\n * a promise then that promise is returned instead of creating a new asynchronous promise instance.\r\n * If a new instance is returned then any chained operations will execute __asynchronously__ using the optional\r\n * timeout value to schedule when the chained items will be executed.(eg. `then()`; `finally()`).\r\n * @group Alias\r\n * @group Promise\r\n * @group Resolved\r\n * @param value - The value to be used by this `Promise`. Can also be a `Promise` or a thenable to resolve.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero.\r\n */\r\nexport const createResolvedPromise: (value: T, timeout?: number) => IPromise = /*#__PURE__*/_createResolvedPromise(createPromise);\r\n\r\n/**\r\n * Returns a single asynchronous Promise instance that is already rejected with the given reason.\r\n * Any chained operations will execute __asynchronously__ using the optional timeout value to schedule\r\n * when then chained items will be executed. (eg. `catch()`; `finally()`).\r\n * @group Alias\r\n * @group Promise\r\n * @group Rejected\r\n * @param reason - The rejection reason\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero.\r\n */\r\nexport const createRejectedPromise: (reason: any, timeout?: number) => IPromise = /*#__PURE__*/_createRejectedPromise(createPromise);\r\n\r\n/**\r\n * Returns a single Promise instance that resolves to an array of the results from the input promises.\r\n * This returned promise will resolve and execute it's pending chained operations based on the current\r\n * promise implementation. If the current implementation is synchronous then the chained operations will\r\n * execute __synchronously__ in the same execution cycle as the final operation pending promises have resolved,\r\n * or if the input contains no promises. If the current implementation is asynchronous then the chained\r\n * operations will execute __asynchronously__ using the optional provided timeout value to schedule when the\r\n * chained items will be executed or if the input contains no promises.\r\n * It will resolve only after all of the input promises have either resolved or rejected, and will resolve with an array\r\n * of {@link IPromiseResult } objects that each describe the outcome of each promise.\r\n * @since 0.5.0\r\n * @group Alias\r\n * @group Promise\r\n * @group AllSettled\r\n * @param values - The iterator of promises to wait to be resolved / rejected before resolving or rejecting the new promise\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero, only used when Native promises are not available.\r\n * @returns A pending `Promise` that will resolve to an array of {@link IPromiseResult } objects that each describe the outcome of each promise.\r\n *\r\n * @example\r\n * ```ts\r\n * const promises = [\r\n * createResolvedPromise(1),\r\n * createResolvedPromise(2),\r\n * createResolvedPromise(3),\r\n * createRejectedPromise(\"error\"),\r\n * ];\r\n *\r\n * const results = await createAllSettledPromise(promises);\r\n *\r\n * // results is:\r\n * // [\r\n * // { status: \"fulfilled\", value: 1 },\r\n * // { status: \"fulfilled\", value: 2 },\r\n * // { status: \"fulfilled\", value: 3 },\r\n * // { status: \"rejected\", reason: \"error\" }\r\n * // ]\r\n * ```\r\n */\r\nexport function createAllSettledPromise(values: Iterable>, timeout?: number): IPromise>[]>;\r\n\r\n/**\r\n * Returns a single Promise instance that resolves to an array of the results from the input promises.\r\n * This returned promise will resolve and execute it's pending chained operations based on the current\r\n * promise implementation. If the current implementation is synchronous then the chained operations will\r\n * execute __synchronously__ in the same execution cycle as the final operation pending promises have resolved,\r\n * or if the input contains no promises. If the current implementation is asynchronous then the chained\r\n * operations will execute __asynchronously__ using the optional provided timeout value to schedule when the\r\n * chained items will be executed or if the input contains no promises.\r\n * It will resolve only after all of the input promises have either resolved or rejected, and will resolve with an array\r\n * of {@link IPromiseResult } objects that each describe the outcome of each promise.\r\n * @since 0.5.0\r\n * @group Alias\r\n * @group Promise\r\n * @group AllSettled\r\n * @param input - An array of promises to wait to be resolved / rejected before resolving or rejecting the new promise\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero, only used when Native promises are not available.\r\n * @returns A pending `Promise` that will resolve to an array of {@link IPromiseResult } objects that each describe the outcome of each promise.\r\n *\r\n * @example\r\n * ```ts\r\n * const promises = [\r\n * createResolvedPromise(1),\r\n * createResolvedPromise(2),\r\n * createResolvedPromise(3),\r\n * createRejectedPromise(\"error\"),\r\n * ];\r\n *\r\n * const results = await createAllSettledPromise(promises);\r\n *\r\n * // results is:\r\n * // [\r\n * // { status: \"fulfilled\", value: 1 },\r\n * // { status: \"fulfilled\", value: 2 },\r\n * // { status: \"fulfilled\", value: 3 },\r\n * // { status: \"rejected\", reason: \"error\" }\r\n * // ]\r\n * ```\r\n */\r\nexport function createAllSettledPromise(input: T, timeout?: number): IPromise<{ -readonly [P in keyof T]: IPromiseResult>; }> {\r\n !_allSettledCreator && (_allSettledCreator = _createAllSettledPromise(createPromise));\r\n return _allSettledCreator.v(input, timeout);\r\n}\r\n\r\n/**\r\n * The `createRacePromise` method takes an array of promises as input and returns a single Promise. This returned promise\r\n * settles with the eventual state of the first promise that settles.\r\n * @description The `createRacePromise` method is one of the promise concurrency methods. It's useful when you want the first\r\n * async task to complete, but do not care about its eventual state (i.e. it can either succeed or fail).\r\n * If the iterable contains one or more non-promise values and/or an already settled promise, then Promise.race() will settle to\r\n * the first of these values found in the iterable.\r\n * @since 0.5.0\r\n * @group Alias\r\n * @group Promise\r\n * @group Race\r\n * @param values - An iterable object of promises.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero, only used when Native promises are not available.\r\n * @returns A Promise that settles with the eventual state of the first promise in the iterable to settle. In other words, it fulfills if the\r\n * first promise to settle is fulfilled, and rejects if the first promise to settle is rejected. The returned promise remains pending forever\r\n * if the iterable passed is empty. If the iterable passed is non-empty but contains no pending promises, the returned promise will settle\r\n * based on the current promise implementation.\r\n */\r\nexport function createRacePromise(values: Iterable>, timeout?: number): IPromise>;\r\n\r\n/**\r\n * The `createRacePromise` method takes an array of promises as input and returns a single Promise. This returned promise\r\n * settles with the eventual state of the first promise that settles.\r\n * @description The `createRacePromise` method is one of the promise concurrency methods. It's useful when you want the first\r\n * async task to complete, but do not care about its eventual state (i.e. it can either succeed or fail).\r\n * If the iterable contains one or more non-promise values and/or an already settled promise, then Promise.race() will settle to\r\n * the first of these values found in the iterable.\r\n * @since 0.5.0\r\n * @group Alias\r\n * @group Promise\r\n * @group Race\r\n * @param values - An the array of promises.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero, only used when Native promises are not available.\r\n * @returns A Promise that settles with the eventual state of the first promise in the iterable to settle. In other words, it fulfills if the\r\n * first promise to settle is fulfilled, and rejects if the first promise to settle is rejected. The returned promise remains pending forever\r\n * if the iterable passed is empty. If the iterable passed is non-empty but contains no pending promises, the returned promise will settle\r\n * based on the current promise implementation.\r\n */\r\nexport function createRacePromise(values: T, timeout?: number): IPromise> {\r\n !_raceCreator && (_raceCreator = _createRacePromise(createPromise));\r\n return _raceCreator.v(values, timeout);\r\n}\r\n\r\n/**\r\n * The `createAnyPromise` method takes an iterable of promises as input and returns a single Promise.\r\n * This returned promise fulfills when any of the input's promises fulfills, with this first fulfillment value.\r\n * It rejects when all of the input's promises reject (including when an empty iterable is passed), with an\r\n * AggregateError containing an array of rejection reasons.\r\n * @since 0.5.0\r\n * @group Alias\r\n * @group Promise\r\n * @group Any\r\n * @param values - An iterable object of promises.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero, only used when Native promises are not available.\r\n * @returns A new Promise that is:\r\n * - Already rejected, if the iterable passed is empty.\r\n * - Asynchronously fulfilled, when any of the promises in the given iterable fulfills. The fulfillment value\r\n * is the fulfillment value of the first promise that was fulfilled.\r\n * - Asynchronously rejected, when all of the promises in the given iterable reject. The rejection reason is\r\n * an AggregateError containing an array of rejection reasons in its errors property. The errors are in the\r\n * order of the promises passed, regardless of completion order. If the iterable passed is non-empty but\r\n * contains no pending promises, the returned promise is still asynchronously (instead of synchronously)\r\n * rejected.\r\n */\r\nexport function createAnyPromise(values: Iterable>, timeout?: number): IPromise>;\r\n \r\n/**\r\n * The `createAnyPromise` method takes an array of promises as input and returns a single Promise.\r\n * This returned promise fulfills when any of the input's promises fulfills, with this first fulfillment value.\r\n * It rejects when all of the input's promises reject (including when an empty iterable is passed), with an\r\n * AggregateError containing an array of rejection reasons.\r\n * @since 0.5.0\r\n * @group Alias\r\n * @group Promise\r\n * @group Any\r\n * @param values - An Array promises.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero, only used when Native promises are not available.\r\n * @returns A new Promise that is:\r\n * - Already rejected, if the iterable passed is empty.\r\n * - Asynchronously fulfilled, when any of the promises in the given iterable fulfills. The fulfillment value\r\n * is the fulfillment value of the first promise that was fulfilled.\r\n * - Asynchronously rejected, when all of the promises in the given iterable reject. The rejection reason is\r\n * an AggregateError containing an array of rejection reasons in its errors property. The errors are in the\r\n * order of the promises passed, regardless of completion order. If the iterable passed is non-empty but\r\n * contains no pending promises, the returned promise is still asynchronously (instead of synchronously)\r\n * rejected.\r\n */\r\nexport function createAnyPromise(values: T, timeout?: number): IPromise> {\r\n !_anyCreator && (_anyCreator = _createAnyPromise(createPromise));\r\n return _anyCreator.v(values, timeout);\r\n}","/*\r\n * @nevware21/ts-async\r\n * https://github.com/nevware21/ts-async\r\n *\r\n * Copyright (c) 2022 NevWare21 Solutions LLC\r\n * Licensed under the MIT license.\r\n */\r\n\r\nimport { getKnownSymbol, objDefineProp, WellKnownSymbols } from \"@nevware21/ts-utils\";\r\nimport { createAsyncAllPromise, createAsyncAllSettledPromise, createAsyncAnyPromise, createAsyncPromise, createAsyncRacePromise, createAsyncRejectedPromise, createAsyncResolvedPromise } from \"../promise/asyncPromise\";\r\nimport { IPromise } from \"../interfaces/IPromise\";\r\nimport { PromiseExecutor } from \"../interfaces/types\";\r\nimport { IPromiseResult } from \"../interfaces/IPromiseResult\";\r\n\r\nconst toStringTagSymbol: symbol = getKnownSymbol(WellKnownSymbols.toStringTag) as typeof Symbol.toStringTag;\r\n\r\n/**\r\n * The PolyPromiseConstructor interface represents the constructor for the polyfill Promise object.\r\n * @since 0.5.0\r\n * @group Polyfill\r\n */\r\nexport interface PolyPromiseConstructor {\r\n /**\r\n * Creates a new Promise.\r\n * @constructor\r\n * @param executor - A callback used to initialize the promise. This callback is passed two arguments:\r\n * a resolve callback used to resolve the promise with a value or the result of another promise,\r\n * and a reject callback used to reject the promise with a provided reason or error.\r\n */\r\n new (executor: PromiseExecutor): IPromise;\r\n\r\n /**\r\n * Returns a single asynchronous Promise instance that resolves to an array of the results from the input promises.\r\n * This returned promise will resolve and execute it's pending chained operations __asynchronously__ using the optional\r\n * provided timeout value to schedule when the chained items will be executed, or if the input contains no promises.\r\n * It rejects immediately upon any of the input promises rejected or non-promises throwing an error,\r\n * and will reject with this first rejection message / error.\r\n * When resolved or rejected any additional chained operations will execute __asynchronously__ using the optional\r\n * timeout value to schedul when the chained item will be executed (eg. `then()`; `catch()`; `finally()`).\r\n * @group Polyfill\r\n * @param input - The array of promises to wait to be resolved / rejected before resolving or rejecting the new promise\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero.\r\n * @returns\r\n *
    \r\n *
  • An already resolved `Promise`, if the input passed is empty.\r\n *
  • A pending `Promise` in all other cases. This returned promise is then resolved/rejected __synchronously__\r\n * (as soon as the pending items is empty) when all the promises in the given input have resolved, or if any of the\r\n * promises reject.\r\n *
\r\n */\r\n all(input: Iterable>, timeout?: number): IPromise;\r\n\r\n /**\r\n * The `createAsyncRacePromise` method takes an array of promises as input and returns a single Promise. This returned promise\r\n * settles with the eventual state of the first promise that settles.\r\n * @description The `createAsyncRacePromise` method is one of the promise concurrency methods. It's useful when you want the first\r\n * async task to complete, but do not care about its eventual state (i.e. it can either succeed or fail).\r\n * If the iterable contains one or more non-promise values and/or an already settled promise, then Promise.race() will settle to\r\n * the first of these values found in the iterable.\r\n * @since 0.5.0\r\n * @group Polyfill\r\n * @param values - An iterable object of promises.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero, only used when Native promises are not available.\r\n * @returns A Promise that settles with the eventual state of the first promise in the iterable to settle. In other words, it fulfills if the\r\n * first promise to settle is fulfilled, and rejects if the first promise to settle is rejected. The returned promise remains pending forever\r\n * if the iterable passed is empty. If the iterable passed is non-empty but contains no pending promises, the returned promise is still\r\n * asynchronously settled.\r\n */\r\n race(values: Iterable>, timeout?: number): IPromise>;\r\n\r\n /**\r\n * The `createAsyncRacePromise` method takes an array of promises as input and returns a single Promise. This returned promise\r\n * settles with the eventual state of the first promise that settles.\r\n * @description The `createAsyncRacePromise` method is one of the promise concurrency methods. It's useful when you want the first\r\n * async task to complete, but do not care about its eventual state (i.e. it can either succeed or fail).\r\n * If the iterable contains one or more non-promise values and/or an already settled promise, then Promise.race() will settle to\r\n * the first of these values found in the iterable.\r\n * @since 0.5.0\r\n * @group Polyfill\r\n * @param values - An iterable object of promises.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero, only used when Native promises are not available.\r\n * @returns A Promise that settles with the eventual state of the first promise in the iterable to settle. In other words, it fulfills if the\r\n * first promise to settle is fulfilled, and rejects if the first promise to settle is rejected. The returned promise remains pending forever\r\n * if the iterable passed is empty. If the iterable passed is non-empty but contains no pending promises, the returned promise is still\r\n * asynchronously settled.\r\n */\r\n race(values: T, timeout?: number): IPromise>;\r\n\r\n /**\r\n * The `createAsyncAnyPromise` method takes an iterable of promises as input and returns a single Promise.\r\n * This returned promise fulfills when any of the input's promises fulfills, with this first fulfillment value.\r\n * It rejects when all of the input's promises reject (including when an empty iterable is passed), with an\r\n * AggregateError containing an array of rejection reasons.\r\n * @since 0.5.0\r\n * @group Polyfill\r\n * @param values - An iterable object of promises.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero, only used when Native promises are not available.\r\n * @returns A new Promise that is:\r\n * - Already rejected, if the iterable passed is empty.\r\n * - Asynchronously fulfilled, when any of the promises in the given iterable fulfills. The fulfillment value\r\n * is the fulfillment value of the first promise that was fulfilled.\r\n * - Asynchronously rejected, when all of the promises in the given iterable reject. The rejection reason is\r\n * an AggregateError containing an array of rejection reasons in its errors property. The errors are in the\r\n * order of the promises passed, regardless of completion order. If the iterable passed is non-empty but\r\n * contains no pending promises, the returned promise is still asynchronously (instead of synchronously)\r\n * rejected.\r\n */\r\n any(values: Iterable>, timeout?: number): IPromise>;\r\n \r\n /**\r\n * The `createAsyncAnyPromise` method takes an iterable of promises as input and returns a single Promise.\r\n * This returned promise fulfills when any of the input's promises fulfills, with this first fulfillment value.\r\n * It rejects when all of the input's promises reject (including when an empty iterable is passed), with an\r\n * AggregateError containing an array of rejection reasons.\r\n * @since 0.5.0\r\n * @group Polyfill\r\n * @param values - An iterable object of promises.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero, only used when Native promises are not available.\r\n * @returns A new Promise that is:\r\n * - Already rejected, if the iterable passed is empty.\r\n * - Asynchronously fulfilled, when any of the promises in the given iterable fulfills. The fulfillment value\r\n * is the fulfillment value of the first promise that was fulfilled.\r\n * - Asynchronously rejected, when all of the promises in the given iterable reject. The rejection reason is\r\n * an AggregateError containing an array of rejection reasons in its errors property. The errors are in the\r\n * order of the promises passed, regardless of completion order. If the iterable passed is non-empty but\r\n * contains no pending promises, the returned promise is still asynchronously (instead of synchronously)\r\n * rejected.\r\n */\r\n any(values: T, timeout?: number): IPromise>;\r\n\r\n /**\r\n * Returns a single asynchronous Promise instance that is already rejected with the given reason.\r\n * Any chained operations will execute __asynchronously__ using the optional timeout value to schedule\r\n * when then chained items will be executed. (eg. `catch()`; `finally()`).\r\n * @group Polyfill\r\n * @param reason - The rejection reason\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero.\r\n * @returns A rejected promise.\r\n */\r\n reject(reason?: any, timeout?: number): IPromise;\r\n \r\n /**\r\n * Returns a single asynchronous Promise instance that is already resolved with the given value. If the value passed is\r\n * a promise then that promise is returned instead of creating a new asynchronous promise instance.\r\n * If a new instance is returned then any chained operations will execute __asynchronously__ using the optional\r\n * timeout value to schedule when the chained items will be executed.(eg. `then()`; `finally()`).\r\n * @group Polyfill\r\n * @returns A resolved promise.\r\n */\r\n resolve(): IPromise;\r\n \r\n /**\r\n * Returns a single asynchronous Promise instance that is already resolved with the given value. If the value passed is\r\n * a promise then that promise is returned instead of creating a new asynchronous promise instance.\r\n * If a new instance is returned then any chained operations will execute __asynchronously__ using the optional\r\n * timeout value to schedule when the chained items will be executed.(eg. `then()`; `finally()`).\r\n * @group Polyfill\r\n * @param value - The value to be used by this `Promise`. Can also be a `Promise` or a thenable to resolve.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero.\r\n * @returns A resolved promise.\r\n */\r\n resolve(value: T | PromiseLike, timeout?: number): IPromise;\r\n\r\n /**\r\n * Returns a single Promise instance that resolves to an array of the results from the input promises.\r\n * This returned promise will resolve and execute it's pending chained operations based on the\r\n * {@link createAsyncPromise Aasynchronous} promise implementation. Any chained operations will execute\r\n * __asynchronously__ when the final operation pending promises have resolved, or if the input contains\r\n * no promises. It will resolve only after all of the input promises have either resolved or rejected,\r\n * and will resolve with an array of {@link IPromiseResult } objects that each describe the outcome of\r\n * each promise.\r\n * @since 0.5.0\r\n * @group Polyfill\r\n * @param values - An array of promises to wait to be resolved / rejected before resolving or rejecting the new promise\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero, only used when Native promises are not available.\r\n * @returns A pending `Promise` that will resolve to an array of {@link IPromiseResult } objects that each describe the outcome of each promise.\r\n */\r\n allSettled(values: T, timeout?: number): Promise<{ -readonly [P in keyof T]: IPromiseResult>; }>;\r\n\r\n /**\r\n * Returns a single Promise instance that resolves to an array of the results from the input promises.\r\n * This returned promise will resolve and execute it's pending chained operations based on the\r\n * {@link createAsyncPromise Aasynchronous} promise implementation. Any chained operations will execute\r\n * __asynchronously__ when the final operation pending promises have resolved, or if the input contains\r\n * no promises. It will resolve only after all of the input promises have either resolved or rejected,\r\n * and will resolve with an array of {@link IPromiseResult } objects that each describe the outcome of\r\n * each promise.\r\n * @since 0.5.0\r\n * @group Polyfill\r\n * @param values - An array of promises to wait to be resolved / rejected before resolving or rejecting the new promise\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero, only used when Native promises are not available.\r\n * @returns A pending `Promise` that will resolve to an array of {@link IPromiseResult } objects that each describe the outcome of each promise.\r\n */\r\n allSettled(values: Iterable>, timeout?: number): IPromise>[]>;\r\n}\r\n\r\n/**\r\n * A full polyfill for the Promise class.\r\n * Represents the completion of an asynchronous operation, and its resulting value.\r\n * @since 0.5.0\r\n * @class\r\n * @group Polyfill\r\n * @group Promise\r\n */\r\nexport let PolyPromise = /*#__PURE__*/(function () {\r\n /**\r\n * Creates a new Promise.\r\n * @constructor\r\n * @param executor A callback used to initialize the promise. This callback is passed two arguments:\r\n * a resolve callback used to resolve the promise with a value or the result of another promise,\r\n * and a reject callback used to reject the promise with a provided reason or error.\r\n */\r\n function PolyPromiseImpl(executor: PromiseExecutor) {\r\n this._$ = createAsyncPromise(executor);\r\n if (toStringTagSymbol) {\r\n this[toStringTagSymbol] = \"Promise\";\r\n }\r\n // Re-Expose the state of the underlying promise\r\n objDefineProp(this, \"state\", {\r\n get: function() {\r\n return this._$.state;\r\n }\r\n });\r\n }\r\n\r\n /**\r\n */\r\n PolyPromiseImpl.all = createAsyncAllPromise;\r\n PolyPromiseImpl.race = createAsyncRacePromise;\r\n PolyPromiseImpl.any = createAsyncAnyPromise;\r\n PolyPromiseImpl.reject = createAsyncRejectedPromise;\r\n PolyPromiseImpl.resolve = createAsyncResolvedPromise;\r\n PolyPromiseImpl.allSettled = createAsyncAllSettledPromise;\r\n let theProto = PolyPromiseImpl.prototype;\r\n theProto.then = function (onResolved: any, onRejected: any) {\r\n return this._$.then(onResolved, onRejected);\r\n };\r\n theProto.catch = function (onRejected: any) {\r\n return this._$.catch(onRejected);\r\n };\r\n theProto.finally = function (onfinally: any) {\r\n return this._$.finally(onfinally);\r\n };\r\n return PolyPromiseImpl as unknown as PolyPromiseConstructor;\r\n}());","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { arrAppend, arrForEach, dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nvar _maxHooks;\r\nvar _hookAddMonitor;\r\n/**\r\n * Test hook for setting the maximum number of unload hooks and calling a monitor function when the hooks are added or removed\r\n * This allows for automatic test failure when the maximum number of unload hooks is exceeded\r\n * @param maxHooks - The maximum number of unload hooks\r\n * @param addMonitor - The monitor function to call when hooks are added or removed\r\n */\r\nexport function _testHookMaxUnloadHooksCb(maxHooks, addMonitor) {\r\n _maxHooks = maxHooks;\r\n _hookAddMonitor = addMonitor;\r\n}\r\n/**\r\n * Create a IUnloadHookContainer which can be used to remember unload hook functions to be executed during the component unloading\r\n * process.\r\n * @returns A new IUnloadHookContainer instance\r\n */\r\nexport function createUnloadHookContainer() {\r\n var _hooks = [];\r\n function _doUnload(logger) {\r\n var oldHooks = _hooks;\r\n _hooks = [];\r\n // Remove all registered unload hooks\r\n arrForEach(oldHooks, function (fn) {\r\n // allow either rm or remove callback function\r\n try {\r\n (fn.rm || fn.remove).call(fn);\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, \"Unloading:\" + dumpObj(e));\r\n }\r\n });\r\n if (_maxHooks && oldHooks[_DYN_LENGTH /* @min:%2elength */] > _maxHooks) {\r\n _hookAddMonitor ? _hookAddMonitor(\"doUnload\", oldHooks) : _throwInternal(null, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.MaxUnloadHookExceeded */, \"Max unload hooks exceeded. An excessive number of unload hooks has been detected.\");\r\n }\r\n }\r\n function _addHook(hooks) {\r\n if (hooks) {\r\n arrAppend(_hooks, hooks);\r\n if (_maxHooks && _hooks[_DYN_LENGTH /* @min:%2elength */] > _maxHooks) {\r\n _hookAddMonitor ? _hookAddMonitor(\"Add\", _hooks) : _throwInternal(null, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.MaxUnloadHookExceeded */, \"Max unload hooks exceeded. An excessive number of unload hooks has been detected.\");\r\n }\r\n }\r\n }\r\n return {\r\n run: _doUnload,\r\n add: _addHook\r\n };\r\n}\r\n//# sourceMappingURL=UnloadHookContainer.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nvar _a;\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { isFunction, objDefine } from \"@nevware21/ts-utils\";\r\nimport { createDynamicConfig } from \"../Config/DynamicConfig\";\r\nimport { _DYN_CREATE_NEW, _DYN_DIAG_LOG, _DYN_GET_NEXT, _DYN_GET_PROCESS_TEL_CONT2, _DYN_INITIALIZE, _DYN_IS_ASYNC, _DYN_IS_INITIALIZED, _DYN_PROCESS_NEXT, _DYN_SET_NEXT_PLUGIN, _DYN_TEARDOWN, _DYN_UPDATE, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { safeGetLogger } from \"./DiagnosticLogger\";\r\nimport { isNotNullOrUndefined, proxyFunctionAs } from \"./HelperFuncs\";\r\nimport { STR_CORE, STR_EXTENSION_CONFIG, STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nimport { createProcessTelemetryContext, createProcessTelemetryUnloadContext, createProcessTelemetryUpdateContext } from \"./ProcessTelemetryContext\";\r\nimport { createUnloadHandlerContainer } from \"./UnloadHandlerContainer\";\r\nimport { createUnloadHookContainer } from \"./UnloadHookContainer\";\r\nvar strGetPlugin = \"getPlugin\";\r\nvar defaultValues = (_a = {},\r\n _a[STR_EXTENSION_CONFIG] = { isVal: isNotNullOrUndefined, v: {} },\r\n _a);\r\n/**\r\n * BaseTelemetryPlugin provides a basic implementation of the ITelemetryPlugin interface so that plugins\r\n * can avoid implementation the same set of boiler plate code as well as provide a base\r\n * implementation so that new default implementations can be added without breaking all plugins.\r\n */\r\nvar BaseTelemetryPlugin = /** @class */ (function () {\r\n function BaseTelemetryPlugin() {\r\n var _self = this; // Setting _self here as it's used outside of the dynamicProto as well\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var _isinitialized;\r\n var _rootCtx; // Used as the root context, holding the current config and initialized core\r\n var _nextPlugin; // Used for backward compatibility where plugins don't call the main pipeline\r\n var _unloadHandlerContainer;\r\n var _hookContainer;\r\n _initDefaults();\r\n dynamicProto(BaseTelemetryPlugin, _self, function (_self) {\r\n _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, core, extensions, pluginChain) {\r\n _setDefaults(config, core, pluginChain);\r\n _isinitialized = true;\r\n };\r\n _self[_DYN_TEARDOWN /* @min:%2eteardown */] = function (unloadCtx, unloadState) {\r\n var _a;\r\n // If this plugin has already been torn down (not operational) or is not initialized (core is not set)\r\n // or the core being used for unload was not the same core used for initialization.\r\n var core = _self[STR_CORE /* @min:%2ecore */];\r\n if (!core || (unloadCtx && core !== unloadCtx[STR_CORE /* @min:%2ecore */]())) {\r\n // Do Nothing as either the plugin is not initialized or was not initialized by the current core\r\n return;\r\n }\r\n var result;\r\n var unloadDone = false;\r\n var theUnloadCtx = unloadCtx || createProcessTelemetryUnloadContext(null, core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);\r\n var theUnloadState = unloadState || (_a = {\r\n reason: 0 /* TelemetryUnloadReason.ManualTeardown */\r\n },\r\n _a[_DYN_IS_ASYNC /* @min:isAsync */] = false,\r\n _a);\r\n function _unloadCallback() {\r\n if (!unloadDone) {\r\n unloadDone = true;\r\n _unloadHandlerContainer.run(theUnloadCtx, unloadState);\r\n _hookContainer.run(theUnloadCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */]());\r\n if (result === true) {\r\n theUnloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](theUnloadState);\r\n }\r\n _initDefaults();\r\n }\r\n }\r\n if (!_self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */] || _self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */](theUnloadCtx, theUnloadState, _unloadCallback) !== true) {\r\n _unloadCallback();\r\n }\r\n else {\r\n // Tell the caller that we will be calling processNext()\r\n result = true;\r\n }\r\n return result;\r\n };\r\n _self[_DYN_UPDATE /* @min:%2eupdate */] = function (updateCtx, updateState) {\r\n // If this plugin has already been torn down (not operational) or is not initialized (core is not set)\r\n // or the core being used for unload was not the same core used for initialization.\r\n var core = _self[STR_CORE /* @min:%2ecore */];\r\n if (!core || (updateCtx && core !== updateCtx[STR_CORE /* @min:%2ecore */]())) {\r\n // Do Nothing\r\n return;\r\n }\r\n var result;\r\n var updateDone = false;\r\n var theUpdateCtx = updateCtx || createProcessTelemetryUpdateContext(null, core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);\r\n var theUpdateState = updateState || {\r\n reason: 0 /* TelemetryUpdateReason.Unknown */\r\n };\r\n function _updateCallback() {\r\n if (!updateDone) {\r\n updateDone = true;\r\n _setDefaults(theUpdateCtx.getCfg(), theUpdateCtx.core(), theUpdateCtx[_DYN_GET_NEXT /* @min:%2egetNext */]());\r\n }\r\n }\r\n if (!_self._doUpdate || _self._doUpdate(theUpdateCtx, theUpdateState, _updateCallback) !== true) {\r\n _updateCallback();\r\n }\r\n else {\r\n result = true;\r\n }\r\n return result;\r\n };\r\n proxyFunctionAs(_self, \"_addUnloadCb\", function () { return _unloadHandlerContainer; }, \"add\");\r\n proxyFunctionAs(_self, \"_addHook\", function () { return _hookContainer; }, \"add\");\r\n objDefine(_self, \"_unloadHooks\", { g: function () { return _hookContainer; } });\r\n });\r\n // These are added after the dynamicProto so that are not moved to the prototype\r\n _self[_DYN_DIAG_LOG /* @min:%2ediagLog */] = function (itemCtx) {\r\n return _getTelCtx(itemCtx)[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n };\r\n _self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = function () {\r\n return _isinitialized;\r\n };\r\n _self.setInitialized = function (isInitialized) {\r\n _isinitialized = isInitialized;\r\n };\r\n // _self.getNextPlugin = () => DO NOT IMPLEMENT\r\n // Sub-classes of this base class *should* not be relying on this value and instead\r\n // should use processNext() function. If you require access to the plugin use the\r\n // IProcessTelemetryContext.getNext().getPlugin() while in the pipeline, Note getNext() may return null.\r\n _self[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */] = function (next) {\r\n _nextPlugin = next;\r\n };\r\n _self[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = function (env, itemCtx) {\r\n if (itemCtx) {\r\n // Normal core execution sequence\r\n itemCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](env);\r\n }\r\n else if (_nextPlugin && isFunction(_nextPlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */])) {\r\n // Looks like backward compatibility or out of band processing. And as it looks\r\n // like a ITelemetryPlugin or ITelemetryPluginChain, just call processTelemetry\r\n _nextPlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */](env, null);\r\n }\r\n };\r\n _self._getTelCtx = _getTelCtx;\r\n function _getTelCtx(currentCtx) {\r\n if (currentCtx === void 0) { currentCtx = null; }\r\n var itemCtx = currentCtx;\r\n if (!itemCtx) {\r\n var rootCtx = _rootCtx || createProcessTelemetryContext(null, {}, _self[STR_CORE /* @min:%2ecore */]);\r\n // tslint:disable-next-line: prefer-conditional-expression\r\n if (_nextPlugin && _nextPlugin[strGetPlugin]) {\r\n // Looks like a chain object\r\n itemCtx = rootCtx[_DYN_CREATE_NEW /* @min:%2ecreateNew */](null, _nextPlugin[strGetPlugin]);\r\n }\r\n else {\r\n itemCtx = rootCtx[_DYN_CREATE_NEW /* @min:%2ecreateNew */](null, _nextPlugin);\r\n }\r\n }\r\n return itemCtx;\r\n }\r\n function _setDefaults(config, core, pluginChain) {\r\n // Make sure the extensionConfig exists and the config is dynamic\r\n createDynamicConfig(config, defaultValues, safeGetLogger(core));\r\n if (!pluginChain && core) {\r\n // Get the first plugin from the core\r\n pluginChain = core[_DYN_GET_PROCESS_TEL_CONT2 /* @min:%2egetProcessTelContext */]()[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n }\r\n var nextPlugin = _nextPlugin;\r\n if (_nextPlugin && _nextPlugin[strGetPlugin]) {\r\n // If it looks like a proxy/chain then get the plugin\r\n nextPlugin = _nextPlugin[strGetPlugin]();\r\n }\r\n // Support legacy plugins where core was defined as a property\r\n _self[STR_CORE /* @min:%2ecore */] = core;\r\n _rootCtx = createProcessTelemetryContext(pluginChain, config, core, nextPlugin);\r\n }\r\n function _initDefaults() {\r\n _isinitialized = false;\r\n _self[STR_CORE /* @min:%2ecore */] = null;\r\n _rootCtx = null;\r\n _nextPlugin = null;\r\n _hookContainer = createUnloadHookContainer();\r\n _unloadHandlerContainer = createUnloadHandlerContainer();\r\n }\r\n }\r\n BaseTelemetryPlugin.prototype.initialize = function (config, core, extensions, pluginChain) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Tear down the plugin and remove any hooked value, the plugin should be removed so that it is no longer initialized and\r\n * therefore could be re-initialized after being torn down. The plugin should ensure that once this has been called any further\r\n * processTelemetry calls are ignored and it just calls the processNext() with the provided context.\r\n * @param unloadCtx - This is the context that should be used during unloading.\r\n * @param unloadState - The details / state of the unload process, it holds details like whether it should be unloaded synchronously or asynchronously and the reason for the unload.\r\n * @returns boolean - true if the plugin has or will call processNext(), this for backward compatibility as previously teardown was synchronous and returned nothing.\r\n */\r\n BaseTelemetryPlugin.prototype.teardown = function (unloadCtx, unloadState) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return false;\r\n };\r\n /**\r\n * The the plugin should re-evaluate configuration and update any cached configuration settings.\r\n * @param updateCtx - This is the context that should be used during updating.\r\n * @param updateState - The details / state of the update process, it holds details like the current and previous configuration.\r\n * @returns boolean - true if the plugin has or will call updateCtx.processNext(), this allows the plugin to perform any asynchronous operations.\r\n */\r\n BaseTelemetryPlugin.prototype.update = function (updateCtx, updateState) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Add an unload handler that will be called when the SDK is being unloaded\r\n * @param handler - the handler\r\n */\r\n BaseTelemetryPlugin.prototype._addUnloadCb = function (handler) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Add this hook so that it is automatically removed during unloading\r\n * @param hooks - The single hook or an array of IInstrumentHook objects\r\n */\r\n BaseTelemetryPlugin.prototype._addHook = function (hooks) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return BaseTelemetryPlugin;\r\n}());\r\nexport { BaseTelemetryPlugin };\r\n//# sourceMappingURL=BaseTelemetryPlugin.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { createPromise, doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { arrForEach, dumpObj, getNavigator, getWindow, isFunction, objKeys } from \"@nevware21/ts-utils\";\r\nimport { _DYN_DATA, _DYN_HEADERS, _DYN_INITIALIZE, _DYN_LENGTH, _DYN_MESSAGE, _DYN_PROTOCOL, _DYN_REPLACE, _DYN_SEND_POST, _DYN_SET_REQUEST_HEADER, _DYN_STATUS, _DYN_TIMEOUT, _DYN_TO_LOWER_CASE, _DYN_URL_STRING, _DYN_VALUE, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { DisabledPropertyName } from \"./Constants\";\r\nimport { _throwInternal, _warnToConsole } from \"./DiagnosticLogger\";\r\nimport { getLocation, isBeaconsSupported, isFetchSupported, isXhrSupported, useXDomainRequest } from \"./EnvUtils\";\r\nimport { _getAllResponseHeaders, formatErrorMessageXdr, formatErrorMessageXhr, getResponseText, openXhr } from \"./HelperFuncs\";\r\nvar STR_EMPTY = \"\";\r\nvar STR_NO_RESPONSE_BODY = \"NoResponseBody\";\r\nvar _noResponseQs = \"&\" + STR_NO_RESPONSE_BODY + \"=true\";\r\nvar STR_POST_METHOD = \"POST\";\r\n/**\r\n * This Internal component\r\n * Manager SendPost functions\r\n * SendPostManger\r\n * @internal for internal use only\r\n */\r\nvar SenderPostManager = /** @class */ (function () {\r\n function SenderPostManager() {\r\n var _syncFetchPayload = 0; // Keep track of the outstanding sync fetch payload total (as sync fetch has limits)\r\n var _enableSendPromise;\r\n var _isInitialized;\r\n var _diagLog;\r\n var _isOneDs;\r\n var _onCompleteFuncs;\r\n var _disableCredentials;\r\n var _fetchCredentials;\r\n var _fallbackInst;\r\n var _disableXhr;\r\n var _disableBeacon;\r\n var _disableBeaconSync;\r\n var _disableFetchKeepAlive;\r\n var _addNoResponse;\r\n var _timeoutWrapper;\r\n dynamicProto(SenderPostManager, this, function (_self, _base) {\r\n var _sendCredentials = true; // for 1ds\r\n _initDefaults();\r\n _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, diagLog) {\r\n _diagLog = diagLog;\r\n if (_isInitialized) {\r\n _throwInternal(_diagLog, 1 /* eLoggingSeverity.CRITICAL */, 28 /* _eInternalMessageId.SenderNotInitialized */, \"Sender is already initialized\");\r\n }\r\n _self.SetConfig(config);\r\n _isInitialized = true;\r\n };\r\n _self[\"_getDbgPlgTargets\"] = function () {\r\n return [_isInitialized, _isOneDs, _disableCredentials, _enableSendPromise];\r\n };\r\n // This componet might get its config from sender, offline sender, 1ds post\r\n // so set this function to mock dynamic changes\r\n _self.SetConfig = function (config) {\r\n try {\r\n _onCompleteFuncs = config.senderOnCompleteCallBack || {};\r\n _disableCredentials = !!config.disableCredentials;\r\n _fetchCredentials = config.fetchCredentials;\r\n _isOneDs = !!config.isOneDs;\r\n _enableSendPromise = !!config.enableSendPromise;\r\n _disableXhr = !!config.disableXhr;\r\n _disableBeacon = !!config.disableBeacon;\r\n _disableBeaconSync = !!config.disableBeaconSync;\r\n _timeoutWrapper = config.timeWrapper;\r\n _addNoResponse = !!config.addNoResponse;\r\n _disableFetchKeepAlive = !!config.disableFetchKeepAlive;\r\n _fallbackInst = { sendPOST: _xhrSender };\r\n if (!_isOneDs) {\r\n _sendCredentials = false; // for appInsights, set it to false always\r\n }\r\n if (_disableCredentials) {\r\n var location_1 = getLocation();\r\n if (location_1 && location_1.protocol && location_1.protocol[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() === \"file:\") {\r\n // Special case where a local html file fails with a CORS error on Chromium browsers\r\n _sendCredentials = false;\r\n }\r\n }\r\n return true;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n };\r\n _self.getSyncFetchPayload = function () {\r\n return _syncFetchPayload;\r\n };\r\n _self.getSenderInst = function (transports, sync) {\r\n if (transports && transports[_DYN_LENGTH /* @min:%2elength */]) {\r\n return _getSenderInterface(transports, sync);\r\n }\r\n return null;\r\n };\r\n _self.getFallbackInst = function () {\r\n return _fallbackInst;\r\n };\r\n _self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */] = function (unloadCtx, unloadState) {\r\n _initDefaults();\r\n };\r\n /**\r\n * success handler\r\n */\r\n function _onSuccess(res, onComplete) {\r\n _doOnComplete(onComplete, 200, {}, res);\r\n }\r\n /**\r\n * error handler\r\n */\r\n function _onError(message, onComplete) {\r\n _throwInternal(_diagLog, 2 /* eLoggingSeverity.WARNING */, 26 /* _eInternalMessageId.OnError */, \"Failed to send telemetry.\", { message: message });\r\n _doOnComplete(onComplete, 400, {});\r\n }\r\n function _onNoPayloadUrl(onComplete) {\r\n _onError(\"No endpoint url is provided for the batch\", onComplete);\r\n }\r\n function _getSenderInterface(transports, syncSupport) {\r\n var _a;\r\n var transportType = 0 /* TransportType.NotSet */;\r\n var sendPostFunc = null;\r\n var lp = 0;\r\n while (sendPostFunc == null && lp < transports[_DYN_LENGTH /* @min:%2elength */]) {\r\n transportType = transports[lp];\r\n if (!_disableXhr && transportType === 1 /* TransportType.Xhr */) {\r\n if (useXDomainRequest()) {\r\n // IE 8 and 9\r\n sendPostFunc = _xdrSender;\r\n }\r\n else if (isXhrSupported()) {\r\n sendPostFunc = _xhrSender;\r\n }\r\n }\r\n else if (transportType === 2 /* TransportType.Fetch */ && isFetchSupported(syncSupport) && (!syncSupport || !_disableFetchKeepAlive)) {\r\n sendPostFunc = _doFetchSender;\r\n }\r\n else if (transportType === 3 /* TransportType.Beacon */ && isBeaconsSupported() && (syncSupport ? !_disableBeaconSync : !_disableBeacon)) {\r\n sendPostFunc = _beaconSender;\r\n }\r\n lp++;\r\n }\r\n if (sendPostFunc) {\r\n return _a = {\r\n _transport: transportType,\r\n _isSync: syncSupport\r\n },\r\n _a[_DYN_SEND_POST /* @min:sendPOST */] = sendPostFunc,\r\n _a;\r\n }\r\n return null;\r\n }\r\n function _doOnComplete(oncomplete, status, headers, response) {\r\n try {\r\n oncomplete && oncomplete(status, headers, response);\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n function _doBeaconSend(payload, oncomplete) {\r\n var nav = getNavigator();\r\n var url = payload[_DYN_URL_STRING /* @min:%2eurlString */];\r\n if (!url) {\r\n _onNoPayloadUrl(oncomplete);\r\n // return true here, because we don't want to retry it with fallback sender\r\n return true;\r\n }\r\n url = payload[_DYN_URL_STRING /* @min:%2eurlString */] + (_addNoResponse ? _noResponseQs : STR_EMPTY);\r\n var data = payload[_DYN_DATA /* @min:%2edata */];\r\n // Chrome only allows CORS-safelisted values for the sendBeacon data argument\r\n // see: https://bugs.chromium.org/p/chromium/issues/detail?id=720283\r\n // Chrome only allows CORS-safelisted values for the sendBeacon data argument\r\n // see: https://bugs.chromium.org/p/chromium/issues/detail?id=720283\r\n var plainTextBatch = _isOneDs ? data : new Blob([data], { type: \"text/plain;charset=UTF-8\" });\r\n // The sendBeacon method returns true if the user agent is able to successfully queue the data for transfer. Otherwise it returns false.\r\n var queued = nav.sendBeacon(url, plainTextBatch);\r\n return queued;\r\n }\r\n /**\r\n * Send Beacon API request\r\n * @param payload - {string} - The data payload to be sent.\r\n * @param sync - {boolean} - not used\r\n * Note: Beacon API does not support custom headers and we are not able to get\r\n * appId from the backend for the correct correlation.\r\n */\r\n function _beaconSender(payload, oncomplete, sync) {\r\n var data = payload[_DYN_DATA /* @min:%2edata */];\r\n try {\r\n if (data) {\r\n // The sendBeacon method returns true if the user agent is able to successfully queue the data for transfer. Otherwise it returns false.\r\n if (!_doBeaconSend(payload, oncomplete)) {\r\n var onRetry = _onCompleteFuncs && _onCompleteFuncs.beaconOnRetry;\r\n if (onRetry && isFunction(onRetry)) {\r\n onRetry(payload, oncomplete, _doBeaconSend);\r\n }\r\n else {\r\n _fallbackInst && _fallbackInst[_DYN_SEND_POST /* @min:%2esendPOST */](payload, oncomplete, true);\r\n _throwInternal(_diagLog, 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + \"Failed to send telemetry with Beacon API, retried with normal sender.\");\r\n }\r\n }\r\n else {\r\n // if can send\r\n _onSuccess(STR_EMPTY, oncomplete);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _isOneDs && _warnToConsole(_diagLog, \"Failed to send telemetry using sendBeacon API. Ex:\" + dumpObj(e));\r\n _doOnComplete(oncomplete, _isOneDs ? 0 : 400, {}, STR_EMPTY);\r\n }\r\n return;\r\n }\r\n /**\r\n * Send XMLHttpRequest\r\n * @param payload - {string} - The data payload to be sent.\r\n * @param sync - {boolean} - Indicates if the request should be sent synchronously\r\n */\r\n function _xhrSender(payload, oncomplete, sync) {\r\n //let internalPayload = payload as IInternalPayloadData;\r\n var thePromise;\r\n var resolveFunc;\r\n var rejectFunc;\r\n var headers = payload[_DYN_HEADERS /* @min:%2eheaders */] || {};\r\n if (!sync && _enableSendPromise) {\r\n thePromise = createPromise(function (resolve, reject) {\r\n resolveFunc = resolve;\r\n rejectFunc = reject;\r\n });\r\n }\r\n if (_isOneDs && sync && payload.disableXhrSync) {\r\n sync = false;\r\n }\r\n //const xhr = new XMLHttpRequest();\r\n var endPointUrl = payload[_DYN_URL_STRING /* @min:%2eurlString */];\r\n if (!endPointUrl) {\r\n _onNoPayloadUrl(oncomplete);\r\n resolveFunc && resolveFunc(false);\r\n return;\r\n }\r\n var xhr = openXhr(STR_POST_METHOD, endPointUrl, _sendCredentials, true, sync, payload[_DYN_TIMEOUT /* @min:%2etimeout */]);\r\n if (!_isOneDs) {\r\n // application/json should NOT add to 1ds post by default\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](\"Content-type\", \"application/json\");\r\n }\r\n arrForEach(objKeys(headers), function (headerName) {\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](headerName, headers[headerName]);\r\n });\r\n xhr.onreadystatechange = function () {\r\n if (!_isOneDs) {\r\n _doOnReadyFunc(xhr);\r\n if (xhr.readyState === 4) {\r\n resolveFunc && resolveFunc(true);\r\n }\r\n }\r\n };\r\n xhr.onload = function () {\r\n if (_isOneDs) {\r\n _doOnReadyFunc(xhr);\r\n }\r\n };\r\n function _doOnReadyFunc(xhr) {\r\n var onReadyFunc = _onCompleteFuncs && _onCompleteFuncs.xhrOnComplete;\r\n var onReadyFuncExist = onReadyFunc && isFunction(onReadyFunc);\r\n if (onReadyFuncExist) {\r\n onReadyFunc(xhr, oncomplete, payload);\r\n }\r\n else {\r\n var response = getResponseText(xhr);\r\n _doOnComplete(oncomplete, xhr[_DYN_STATUS /* @min:%2estatus */], _getAllResponseHeaders(xhr, _isOneDs), response);\r\n }\r\n }\r\n xhr.onerror = function (event) {\r\n _doOnComplete(oncomplete, _isOneDs ? xhr[_DYN_STATUS /* @min:%2estatus */] : 400, _getAllResponseHeaders(xhr, _isOneDs), _isOneDs ? STR_EMPTY : formatErrorMessageXhr(xhr));\r\n rejectFunc && rejectFunc(event);\r\n };\r\n xhr.ontimeout = function () {\r\n _doOnComplete(oncomplete, _isOneDs ? xhr[_DYN_STATUS /* @min:%2estatus */] : 500, _getAllResponseHeaders(xhr, _isOneDs), _isOneDs ? STR_EMPTY : formatErrorMessageXhr(xhr));\r\n resolveFunc && resolveFunc(false);\r\n };\r\n xhr.send(payload[_DYN_DATA /* @min:%2edata */]);\r\n return thePromise;\r\n }\r\n /**\r\n * Send fetch API request\r\n * @param payload - {string} - The data payload to be sent.\r\n * @param sync - {boolean} - For fetch this identifies whether we are \"unloading\" (false) or a normal request\r\n */\r\n function _doFetchSender(payload, oncomplete, sync) {\r\n var _a;\r\n var endPointUrl = payload[_DYN_URL_STRING /* @min:%2eurlString */];\r\n var batch = payload[_DYN_DATA /* @min:%2edata */];\r\n var plainTextBatch = _isOneDs ? batch : new Blob([batch], { type: \"application/json\" });\r\n var thePromise;\r\n var resolveFunc;\r\n var rejectFunc;\r\n var requestHeaders = new Headers();\r\n var batchLength = batch[_DYN_LENGTH /* @min:%2elength */];\r\n var ignoreResponse = false;\r\n var responseHandled = false;\r\n var headers = payload[_DYN_HEADERS /* @min:%2eheaders */] || {};\r\n //TODO: handle time out for 1ds\r\n var init = (_a = {\r\n method: STR_POST_METHOD,\r\n body: plainTextBatch\r\n },\r\n _a[DisabledPropertyName] = true // Mark so we don't attempt to track this request\r\n ,\r\n _a);\r\n // Only add headers if there are headers to add, due to issue with some polyfills\r\n if (payload.headers && objKeys(payload.headers)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(objKeys(headers), function (headerName) {\r\n requestHeaders.append(headerName, headers[headerName]);\r\n });\r\n init[_DYN_HEADERS /* @min:%2eheaders */] = requestHeaders;\r\n }\r\n if (_fetchCredentials) { // if user passed in this value via post channel (1ds), then use it\r\n init.credentials = _fetchCredentials;\r\n }\r\n else if (_sendCredentials && _isOneDs) {\r\n // for 1ds, Don't send credentials when URL is file://\r\n init.credentials = \"include\";\r\n }\r\n if (sync) {\r\n init.keepalive = true;\r\n _syncFetchPayload += batchLength;\r\n if (_isOneDs) {\r\n if (payload[\"_sendReason\"] === 2 /* SendRequestReason.Unload */) {\r\n // As a sync request (during unload), it is unlikely that we will get a chance to process the response so\r\n // just like beacon send assume that the events have been accepted and processed\r\n ignoreResponse = true;\r\n if (_addNoResponse) {\r\n endPointUrl += _noResponseQs;\r\n }\r\n }\r\n }\r\n else {\r\n // for appinsights, set to true for all sync request\r\n ignoreResponse = true;\r\n }\r\n }\r\n var request = new Request(endPointUrl, init);\r\n try {\r\n // Also try and tag the request (just in case the value in init is not copied over)\r\n request[DisabledPropertyName] = true;\r\n }\r\n catch (e) {\r\n // If the environment has locked down the XMLHttpRequest (preventExtensions and/or freeze), this would\r\n // cause the request to fail and we no telemetry would be sent\r\n }\r\n if (!sync && _enableSendPromise) {\r\n thePromise = createPromise(function (resolve, reject) {\r\n resolveFunc = resolve;\r\n rejectFunc = reject;\r\n });\r\n }\r\n if (!endPointUrl) {\r\n _onNoPayloadUrl(oncomplete);\r\n resolveFunc && resolveFunc(false);\r\n return;\r\n }\r\n function _handleError(res) {\r\n // In case there is an error in the request. Set the status to 0 for 1ds and 400 for appInsights\r\n // so that the events can be retried later.\r\n _doOnComplete(oncomplete, _isOneDs ? 0 : 400, {}, _isOneDs ? STR_EMPTY : res);\r\n }\r\n function _onFetchComplete(response, payload, value) {\r\n var status = response[_DYN_STATUS /* @min:%2estatus */];\r\n var onCompleteFunc = _onCompleteFuncs.fetchOnComplete;\r\n if (onCompleteFunc && isFunction(onCompleteFunc)) {\r\n onCompleteFunc(response, oncomplete, value || STR_EMPTY, payload);\r\n }\r\n else {\r\n _doOnComplete(oncomplete, status, {}, value || STR_EMPTY);\r\n }\r\n }\r\n try {\r\n doAwaitResponse(fetch(_isOneDs ? endPointUrl : request, _isOneDs ? init : null), function (result) {\r\n if (sync) {\r\n _syncFetchPayload -= batchLength;\r\n batchLength = 0;\r\n }\r\n if (!responseHandled) {\r\n responseHandled = true;\r\n if (!result.rejected) {\r\n var response_1 = result[_DYN_VALUE /* @min:%2evalue */];\r\n try {\r\n /**\r\n * The Promise returned from fetch() won’t reject on HTTP error status even if the response is an HTTP 404 or 500.\r\n * Instead, it will resolve normally (with ok status set to false), and it will only reject on network failure\r\n * or if anything prevented the request from completing.\r\n */\r\n if (!_isOneDs && !response_1.ok) {\r\n // this is for appInsights only\r\n _handleError(response_1.statusText);\r\n resolveFunc && resolveFunc(false);\r\n }\r\n else {\r\n if (_isOneDs && !response_1.body) {\r\n _onFetchComplete(response_1, null, STR_EMPTY);\r\n resolveFunc && resolveFunc(true);\r\n }\r\n else {\r\n doAwaitResponse(response_1.text(), function (resp) {\r\n _onFetchComplete(response_1, payload, resp[_DYN_VALUE /* @min:%2evalue */]);\r\n resolveFunc && resolveFunc(true);\r\n });\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _handleError(dumpObj(e));\r\n rejectFunc && rejectFunc(e);\r\n }\r\n }\r\n else {\r\n _handleError(result.reason && result.reason[_DYN_MESSAGE /* @min:%2emessage */]);\r\n rejectFunc && rejectFunc(result.reason);\r\n }\r\n }\r\n });\r\n }\r\n catch (e) {\r\n if (!responseHandled) {\r\n _handleError(dumpObj(e));\r\n rejectFunc && rejectFunc(e);\r\n }\r\n }\r\n if (ignoreResponse && !responseHandled) {\r\n // Assume success during unload processing as we most likely won't get the response\r\n responseHandled = true;\r\n _doOnComplete(oncomplete, 200, {});\r\n resolveFunc && resolveFunc(true);\r\n }\r\n if (_isOneDs && !responseHandled && payload[_DYN_TIMEOUT /* @min:%2etimeout */] > 0) {\r\n // Simulate timeout\r\n _timeoutWrapper && _timeoutWrapper.set(function () {\r\n if (!responseHandled) {\r\n // Assume a 500 response (which will cause a retry)\r\n responseHandled = true;\r\n _doOnComplete(oncomplete, 500, {});\r\n resolveFunc && resolveFunc(true);\r\n }\r\n }, payload[_DYN_TIMEOUT /* @min:%2etimeout */]);\r\n }\r\n return thePromise;\r\n }\r\n /**\r\n * Send XDomainRequest\r\n * @param payload - {string} - The data payload to be sent.\r\n * @param sync - {boolean} - Indicates if the request should be sent synchronously\r\n *\r\n * Note: XDomainRequest does not support sync requests. This 'isAsync' parameter is added\r\n * to maintain consistency with the xhrSender's contract\r\n * Note: XDomainRequest does not support custom headers and we are not able to get\r\n * appId from the backend for the correct correlation.\r\n */\r\n function _xdrSender(payload, oncomplete, sync) {\r\n // It doesn't support custom headers, so no action is taken with current requestHeaders\r\n var _window = getWindow();\r\n var xdr = new XDomainRequest();\r\n var data = payload[_DYN_DATA /* @min:%2edata */];\r\n xdr.onload = function () {\r\n var response = getResponseText(xdr);\r\n var onloadFunc = _onCompleteFuncs && _onCompleteFuncs.xdrOnComplete;\r\n if (onloadFunc && isFunction(onloadFunc)) {\r\n onloadFunc(xdr, oncomplete, payload);\r\n }\r\n else {\r\n _doOnComplete(oncomplete, 200, {}, response);\r\n }\r\n };\r\n xdr.onerror = function () {\r\n _doOnComplete(oncomplete, 400, {}, _isOneDs ? STR_EMPTY : formatErrorMessageXdr(xdr));\r\n };\r\n xdr.ontimeout = function () {\r\n _doOnComplete(oncomplete, 500, {});\r\n };\r\n xdr.onprogress = function () { };\r\n // XDomainRequest requires the same protocol as the hosting page.\r\n // If the protocol doesn't match, we can't send the telemetry :(.\r\n var hostingProtocol = _window && _window.location && _window.location[_DYN_PROTOCOL /* @min:%2eprotocol */] || \"\";\r\n var endpoint = payload[_DYN_URL_STRING /* @min:%2eurlString */];\r\n if (!endpoint) {\r\n _onNoPayloadUrl(oncomplete);\r\n return;\r\n }\r\n if (!_isOneDs && endpoint.lastIndexOf(hostingProtocol, 0) !== 0) {\r\n var msg = \"Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.\";\r\n _throwInternal(_diagLog, 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + msg);\r\n _onError(msg, oncomplete);\r\n return;\r\n }\r\n var endpointUrl = _isOneDs ? endpoint : endpoint[_DYN_REPLACE /* @min:%2ereplace */](/^(https?:)/, \"\");\r\n xdr.open(STR_POST_METHOD, endpointUrl);\r\n if (payload[_DYN_TIMEOUT /* @min:%2etimeout */]) {\r\n xdr[_DYN_TIMEOUT /* @min:%2etimeout */] = payload[_DYN_TIMEOUT /* @min:%2etimeout */];\r\n }\r\n xdr.send(data);\r\n if (_isOneDs && sync) {\r\n _timeoutWrapper && _timeoutWrapper.set(function () {\r\n xdr.send(data);\r\n }, 0);\r\n }\r\n else {\r\n xdr.send(data);\r\n }\r\n }\r\n function _initDefaults() {\r\n _syncFetchPayload = 0;\r\n _isInitialized = false;\r\n _enableSendPromise = false;\r\n _diagLog = null;\r\n _isOneDs = null;\r\n _onCompleteFuncs = null;\r\n _disableCredentials = null;\r\n _fetchCredentials = null;\r\n _fallbackInst = null;\r\n _disableXhr = false;\r\n _disableBeacon = false;\r\n _disableBeaconSync = false;\r\n _disableFetchKeepAlive = false;\r\n _addNoResponse = false;\r\n _timeoutWrapper = null;\r\n }\r\n });\r\n }\r\n SenderPostManager.prototype.initialize = function (config, diagLog) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Get size of current sync fetch payload\r\n */\r\n SenderPostManager.prototype.getSyncFetchPayload = function () {\r\n // @DynamicProtoStub - DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * reset Config\r\n * @returns True if set is successfully\r\n */\r\n SenderPostManager.prototype.SetConfig = function (config) {\r\n // @DynamicProtoStub - DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Get current xhr instance\r\n */\r\n SenderPostManager.prototype.getSenderInst = function (transports, sync) {\r\n // @DynamicProtoStub - DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Get current fallback sender instance\r\n */\r\n SenderPostManager.prototype.getFallbackInst = function () {\r\n // @DynamicProtoStub - DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n SenderPostManager.prototype._doTeardown = function (unloadCtx, unloadState) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return SenderPostManager;\r\n}());\r\nexport { SenderPostManager };\r\n//# sourceMappingURL=SenderPostManager.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { createPromise, doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { arrSlice, getLength } from \"@nevware21/ts-utils\";\r\nimport { _DYN_UNLOAD } from \"../__DynamicConstants\";\r\n/**\r\n * Run the unload function of the target object if it exists\r\n * @param target - The target object that contains the unload function\r\n * @param isAsync - The caller identifies whether it is expecting the operation to complete synchronously or asynchronously. Even\r\n * if the caller is not waiting the operation may still be performed asynchronously depending on the component and the reverse is\r\n * also true.\r\n * @returns The result of the target function\r\n */\r\nexport function runTargetUnload(target, isAsync) {\r\n if (target && target[_DYN_UNLOAD /* @min:%2eunload */]) {\r\n return target[_DYN_UNLOAD /* @min:%2eunload */](isAsync);\r\n }\r\n}\r\n/**\r\n * Call the unload function on all targets handling any returned [IPromise](https://nevware21.github.io/ts-async/typedoc/interfaces/IPromise.html)\r\n * / Promise before calling the next targets unload\r\n * @param targets - An array of the targets to unload\r\n * @param isAsync - The caller identifies whether it is expecting the operations to complete synchronously or asynchronously. Even\r\n * if the caller is not waiting the operation may still be performed asynchronously depending on the component and the reverse is\r\n * also true.\r\n * @param done - Optional callback function to call once all of the unload functions have been called.\r\n */\r\nexport function doUnloadAll(targets, isAsync, done) {\r\n var result;\r\n if (!done) {\r\n result = createPromise(function (resolved) {\r\n done = resolved;\r\n });\r\n }\r\n if (targets && getLength(targets) > 0) {\r\n doAwaitResponse(runTargetUnload(targets[0], isAsync), function () {\r\n doUnloadAll(arrSlice(targets, 1), isAsync, done);\r\n });\r\n }\r\n else {\r\n done();\r\n }\r\n return result;\r\n}\r\n//# sourceMappingURL=AsyncUtils.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_ITEMS_RECEIVED, _DYN_LENGTH, _DYN_NAME } from \"../__DynamicConstants\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nimport { getJSON } from \"./EnvUtils\";\r\n/**\r\n * Parses the response from the backend.\r\n * @param response - XMLHttpRequest or XDomainRequest response\r\n */\r\nexport function parseResponse(response, diagLog) {\r\n try {\r\n if (response && response !== \"\") {\r\n var result = getJSON().parse(response);\r\n if (result && result[_DYN_ITEMS_RECEIVED /* @min:%2eitemsReceived */] && result[_DYN_ITEMS_RECEIVED /* @min:%2eitemsReceived */] >= result.itemsAccepted &&\r\n result.itemsReceived - result.itemsAccepted === result.errors[_DYN_LENGTH /* @min:%2elength */]) {\r\n return result;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(diagLog, 1 /* eLoggingSeverity.CRITICAL */, 43 /* _eInternalMessageId.InvalidBackendResponse */, \"Cannot parse the response. \" + (e[_DYN_NAME /* @min:%2ename */] || dumpObj(e)), {\r\n response: response\r\n });\r\n }\r\n return null;\r\n}\r\n//# sourceMappingURL=ResponseHelpers.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { arrForEach, dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_DIAG_LOG, _DYN_PUSH } from \"../__DynamicConstants\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nexport function createUnloadHandlerContainer() {\r\n var handlers = [];\r\n function _addHandler(handler) {\r\n if (handler) {\r\n handlers[_DYN_PUSH /* @min:%2epush */](handler);\r\n }\r\n }\r\n function _runHandlers(unloadCtx, unloadState) {\r\n arrForEach(handlers, function (handler) {\r\n try {\r\n handler(unloadCtx, unloadState);\r\n }\r\n catch (e) {\r\n _throwInternal(unloadCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, \"Unexpected error calling unload handler - \" + dumpObj(e));\r\n }\r\n });\r\n handlers = [];\r\n }\r\n return {\r\n add: _addHandler,\r\n run: _runHandlers\r\n };\r\n}\r\n//# sourceMappingURL=UnloadHandlerContainer.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { __extends } from \"tslib\";\r\nimport { createClassFromInterface } from \"@microsoft/applicationinsights-core-js\";\r\nfunction _aiNameFunc(baseName) {\r\n var aiName = \"ai.\" + baseName + \".\";\r\n return function (name) {\r\n return aiName + name;\r\n };\r\n}\r\nvar _aiApplication = _aiNameFunc(\"application\");\r\nvar _aiDevice = _aiNameFunc(\"device\");\r\nvar _aiLocation = _aiNameFunc(\"location\");\r\nvar _aiOperation = _aiNameFunc(\"operation\");\r\nvar _aiSession = _aiNameFunc(\"session\");\r\nvar _aiUser = _aiNameFunc(\"user\");\r\nvar _aiCloud = _aiNameFunc(\"cloud\");\r\nvar _aiInternal = _aiNameFunc(\"internal\");\r\nvar ContextTagKeys = /** @class */ (function (_super) {\r\n __extends(ContextTagKeys, _super);\r\n function ContextTagKeys() {\r\n return _super.call(this) || this;\r\n }\r\n return ContextTagKeys;\r\n}(createClassFromInterface({\r\n applicationVersion: _aiApplication(\"ver\"),\r\n applicationBuild: _aiApplication(\"build\"),\r\n applicationTypeId: _aiApplication(\"typeId\"),\r\n applicationId: _aiApplication(\"applicationId\"),\r\n applicationLayer: _aiApplication(\"layer\"),\r\n deviceId: _aiDevice(\"id\"),\r\n deviceIp: _aiDevice(\"ip\"),\r\n deviceLanguage: _aiDevice(\"language\"),\r\n deviceLocale: _aiDevice(\"locale\"),\r\n deviceModel: _aiDevice(\"model\"),\r\n deviceFriendlyName: _aiDevice(\"friendlyName\"),\r\n deviceNetwork: _aiDevice(\"network\"),\r\n deviceNetworkName: _aiDevice(\"networkName\"),\r\n deviceOEMName: _aiDevice(\"oemName\"),\r\n deviceOS: _aiDevice(\"os\"),\r\n deviceOSVersion: _aiDevice(\"osVersion\"),\r\n deviceRoleInstance: _aiDevice(\"roleInstance\"),\r\n deviceRoleName: _aiDevice(\"roleName\"),\r\n deviceScreenResolution: _aiDevice(\"screenResolution\"),\r\n deviceType: _aiDevice(\"type\"),\r\n deviceMachineName: _aiDevice(\"machineName\"),\r\n deviceVMName: _aiDevice(\"vmName\"),\r\n deviceBrowser: _aiDevice(\"browser\"),\r\n deviceBrowserVersion: _aiDevice(\"browserVersion\"),\r\n locationIp: _aiLocation(\"ip\"),\r\n locationCountry: _aiLocation(\"country\"),\r\n locationProvince: _aiLocation(\"province\"),\r\n locationCity: _aiLocation(\"city\"),\r\n operationId: _aiOperation(\"id\"),\r\n operationName: _aiOperation(\"name\"),\r\n operationParentId: _aiOperation(\"parentId\"),\r\n operationRootId: _aiOperation(\"rootId\"),\r\n operationSyntheticSource: _aiOperation(\"syntheticSource\"),\r\n operationCorrelationVector: _aiOperation(\"correlationVector\"),\r\n sessionId: _aiSession(\"id\"),\r\n sessionIsFirst: _aiSession(\"isFirst\"),\r\n sessionIsNew: _aiSession(\"isNew\"),\r\n userAccountAcquisitionDate: _aiUser(\"accountAcquisitionDate\"),\r\n userAccountId: _aiUser(\"accountId\"),\r\n userAgent: _aiUser(\"userAgent\"),\r\n userId: _aiUser(\"id\"),\r\n userStoreRegion: _aiUser(\"storeRegion\"),\r\n userAuthUserId: _aiUser(\"authUserId\"),\r\n userAnonymousUserAcquisitionDate: _aiUser(\"anonUserAcquisitionDate\"),\r\n userAuthenticatedUserAcquisitionDate: _aiUser(\"authUserAcquisitionDate\"),\r\n cloudName: _aiCloud(\"name\"),\r\n cloudRole: _aiCloud(\"role\"),\r\n cloudRoleVer: _aiCloud(\"roleVer\"),\r\n cloudRoleInstance: _aiCloud(\"roleInstance\"),\r\n cloudEnvironment: _aiCloud(\"environment\"),\r\n cloudLocation: _aiCloud(\"location\"),\r\n cloudDeploymentUnit: _aiCloud(\"deploymentUnit\"),\r\n internalNodeName: _aiInternal(\"nodeName\"),\r\n internalSdkVersion: _aiInternal(\"sdkVersion\"),\r\n internalAgentVersion: _aiInternal(\"agentVersion\"),\r\n internalSnippet: _aiInternal(\"snippet\"),\r\n internalSdkSrc: _aiInternal(\"sdkSrc\")\r\n})));\r\nexport { ContextTagKeys };\r\n//# sourceMappingURL=ContextTagKeys.js.map","import { ContextTagKeys } from \"./Contracts/ContextTagKeys\";\r\nexport var Extensions = {\r\n UserExt: \"user\",\r\n DeviceExt: \"device\",\r\n TraceExt: \"trace\",\r\n WebExt: \"web\",\r\n AppExt: \"app\",\r\n OSExt: \"os\",\r\n SessionExt: \"ses\",\r\n SDKExt: \"sdk\"\r\n};\r\nexport var CtxTagKeys = new ContextTagKeys();\r\n//# sourceMappingURL=PartAExtensions.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strNotSpecified } from \"../../Constants\";\r\nimport { _DYN_NAME } from \"../../__DynamicConstants\";\r\nimport { dataSanitizeString } from \"./DataSanitizer\";\r\nvar Envelope = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of telemetry data.\r\n */\r\n function Envelope(logger, data, name) {\r\n var _this = this;\r\n var _self = this;\r\n _self.ver = 1;\r\n _self.sampleRate = 100.0;\r\n _self.tags = {};\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n _self.data = data;\r\n _self.time = toISOString(new Date());\r\n _self.aiDataContract = {\r\n time: 1 /* FieldType.Required */,\r\n iKey: 1 /* FieldType.Required */,\r\n name: 1 /* FieldType.Required */,\r\n sampleRate: function () {\r\n return (_this.sampleRate === 100) ? 4 /* FieldType.Hidden */ : 1 /* FieldType.Required */;\r\n },\r\n tags: 1 /* FieldType.Required */,\r\n data: 1 /* FieldType.Required */\r\n };\r\n }\r\n return Envelope;\r\n}());\r\nexport { Envelope };\r\n//# sourceMappingURL=Envelope.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar Data = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of telemetry data.\r\n */\r\n function Data(baseType, data) {\r\n /**\r\n * The data contract for serializing this object.\r\n */\r\n this.aiDataContract = {\r\n baseType: 1 /* FieldType.Required */,\r\n baseData: 1 /* FieldType.Required */\r\n };\r\n this.baseType = baseType;\r\n this.baseData = data;\r\n }\r\n return Data;\r\n}());\r\nexport { Data };\r\n//# sourceMappingURL=Data.js.map","import { __assign } from \"tslib\";\r\nimport { CtxTagKeys, Data, Envelope, Event, Exception, HttpMethod, Metric, PageView, PageViewPerformance, RemoteDependencyData, SampleRate, Trace, dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, _warnToConsole, getJSON, hasJSON, isNullOrUndefined, isNumber, isString, isTruthy, objForEachKey, optimizeObject, setValue, toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { STR_DURATION } from \"./InternalConstants\";\r\nimport { _DYN_DATA, _DYN_DATA_TYPE, _DYN_DEVICE_TYPE, _DYN_ENVELOPE_TYPE, _DYN_LENGTH, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_STRINGIFY, _DYN_TAGS, _DYN_TO_STRING, _DYN_TRACE_ID } from \"./__DynamicConstants\";\r\n// these two constants are used to filter out properties not needed when trying to extract custom properties and measurements from the incoming payload\r\nvar strBaseType = \"baseType\";\r\nvar strBaseData = \"baseData\";\r\nvar strProperties = \"properties\";\r\nvar strTrue = \"true\";\r\nfunction _setValueIf(target, field, value) {\r\n return setValue(target, field, value, isTruthy);\r\n}\r\n/*\r\n * Maps Part A data from CS 4.0\r\n */\r\nfunction _extractPartAExtensions(logger, item, env) {\r\n // todo: switch to keys from common in this method\r\n var envTags = env[_DYN_TAGS /* @min:%2etags */] = env[_DYN_TAGS /* @min:%2etags */] || {};\r\n var itmExt = item.ext = item.ext || {};\r\n var itmTags = item[_DYN_TAGS /* @min:%2etags */] = item[_DYN_TAGS /* @min:%2etags */] || [];\r\n var extUser = itmExt.user;\r\n if (extUser) {\r\n _setValueIf(envTags, CtxTagKeys.userAuthUserId, extUser.authId);\r\n _setValueIf(envTags, CtxTagKeys.userId, extUser.id || extUser.localId);\r\n }\r\n var extApp = itmExt.app;\r\n if (extApp) {\r\n _setValueIf(envTags, CtxTagKeys.sessionId, extApp.sesId);\r\n }\r\n var extDevice = itmExt.device;\r\n if (extDevice) {\r\n _setValueIf(envTags, CtxTagKeys.deviceId, extDevice.id || extDevice.localId);\r\n _setValueIf(envTags, CtxTagKeys[_DYN_DEVICE_TYPE /* @min:%2edeviceType */], extDevice.deviceClass);\r\n _setValueIf(envTags, CtxTagKeys.deviceIp, extDevice.ip);\r\n _setValueIf(envTags, CtxTagKeys.deviceModel, extDevice.model);\r\n _setValueIf(envTags, CtxTagKeys[_DYN_DEVICE_TYPE /* @min:%2edeviceType */], extDevice[_DYN_DEVICE_TYPE /* @min:%2edeviceType */]);\r\n }\r\n var web = item.ext.web;\r\n if (web) {\r\n _setValueIf(envTags, CtxTagKeys.deviceLanguage, web.browserLang);\r\n _setValueIf(envTags, CtxTagKeys.deviceBrowserVersion, web.browserVer);\r\n _setValueIf(envTags, CtxTagKeys.deviceBrowser, web.browser);\r\n var envData = env[_DYN_DATA /* @min:%2edata */] = env[_DYN_DATA /* @min:%2edata */] || {};\r\n var envBaseData = envData[strBaseData] = envData[strBaseData] || {};\r\n var envProps = envBaseData[strProperties] = envBaseData[strProperties] || {};\r\n _setValueIf(envProps, \"domain\", web.domain);\r\n _setValueIf(envProps, \"isManual\", web.isManual ? strTrue : null);\r\n _setValueIf(envProps, \"screenRes\", web.screenRes);\r\n _setValueIf(envProps, \"userConsent\", web.userConsent ? strTrue : null);\r\n }\r\n var extOs = itmExt.os;\r\n if (extOs) {\r\n _setValueIf(envTags, CtxTagKeys.deviceOS, extOs[_DYN_NAME /* @min:%2ename */]);\r\n _setValueIf(envTags, CtxTagKeys.deviceOSVersion, extOs.osVer);\r\n }\r\n // No support for mapping Trace.traceState to 2.0 as it is currently empty\r\n var extTrace = itmExt.trace;\r\n if (extTrace) {\r\n _setValueIf(envTags, CtxTagKeys.operationParentId, extTrace.parentID);\r\n _setValueIf(envTags, CtxTagKeys.operationName, dataSanitizeString(logger, extTrace[_DYN_NAME /* @min:%2ename */]));\r\n _setValueIf(envTags, CtxTagKeys.operationId, extTrace[_DYN_TRACE_ID /* @min:%2etraceID */]);\r\n }\r\n // Sample 4.0 schema\r\n // {\r\n // \"time\" : \"2018-09-05T22:51:22.4936Z\",\r\n // \"name\" : \"MetricWithNamespace\",\r\n // \"iKey\" : \"ABC-5a4cbd20-e601-4ef5-a3c6-5d6577e4398e\",\r\n // \"ext\": { \"cloud\": {\r\n // \"role\": \"WATSON3\",\r\n // \"roleInstance\": \"CO4AEAP00000260\"\r\n // },\r\n // \"device\": {}, \"correlation\": {} },\r\n // \"tags\": [\r\n // { \"amazon.region\" : \"east2\" },\r\n // { \"os.expid\" : \"wp:02df239\" }\r\n // ]\r\n // }\r\n var tgs = {};\r\n // deals with tags.push({object})\r\n for (var i = itmTags[_DYN_LENGTH /* @min:%2elength */] - 1; i >= 0; i--) {\r\n var tg = itmTags[i];\r\n objForEachKey(tg, function (key, value) {\r\n tgs[key] = value;\r\n });\r\n itmTags.splice(i, 1);\r\n }\r\n // deals with tags[key]=value (and handles hasOwnProperty)\r\n objForEachKey(itmTags, function (tg, value) {\r\n tgs[tg] = value;\r\n });\r\n var theTags = __assign(__assign({}, envTags), tgs);\r\n if (!theTags[CtxTagKeys.internalSdkVersion]) {\r\n // Append a version in case it is not already set\r\n theTags[CtxTagKeys.internalSdkVersion] = dataSanitizeString(logger, \"javascript:\".concat(EnvelopeCreator.Version), 64);\r\n }\r\n env[_DYN_TAGS /* @min:%2etags */] = optimizeObject(theTags);\r\n}\r\nfunction _extractPropsAndMeasurements(data, properties, measurements) {\r\n if (!isNullOrUndefined(data)) {\r\n objForEachKey(data, function (key, value) {\r\n if (isNumber(value)) {\r\n measurements[key] = value;\r\n }\r\n else if (isString(value)) {\r\n properties[key] = value;\r\n }\r\n else if (hasJSON()) {\r\n properties[key] = getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](value);\r\n }\r\n });\r\n }\r\n}\r\nfunction _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue) {\r\n if (!isNullOrUndefined(properties)) {\r\n objForEachKey(properties, function (key, value) {\r\n properties[key] = value || customUndefinedValue;\r\n });\r\n }\r\n}\r\n// TODO: Do we want this to take logger as arg or use this._logger as nonstatic?\r\nfunction _createEnvelope(logger, envelopeType, telemetryItem, data) {\r\n var envelope = new Envelope(logger, data, envelopeType);\r\n _setValueIf(envelope, \"sampleRate\", telemetryItem[SampleRate]);\r\n if ((telemetryItem[strBaseData] || {}).startTime) {\r\n // Starting from Version 3.0.3, the time property will be assigned by the startTime value,\r\n // which records the loadEvent time for the pageView event.\r\n envelope.time = toISOString(telemetryItem[strBaseData].startTime);\r\n }\r\n envelope.iKey = telemetryItem.iKey;\r\n var iKeyNoDashes = telemetryItem.iKey.replace(/-/g, \"\");\r\n envelope[_DYN_NAME /* @min:%2ename */] = envelope[_DYN_NAME /* @min:%2ename */].replace(\"{0}\", iKeyNoDashes);\r\n // extract all extensions from ctx\r\n _extractPartAExtensions(logger, telemetryItem, envelope);\r\n // loop through the envelope tags (extension of Part A) and pick out the ones that should go in outgoing envelope tags\r\n telemetryItem[_DYN_TAGS /* @min:%2etags */] = telemetryItem[_DYN_TAGS /* @min:%2etags */] || [];\r\n return optimizeObject(envelope);\r\n}\r\nfunction EnvelopeCreatorInit(logger, telemetryItem) {\r\n if (isNullOrUndefined(telemetryItem[strBaseData])) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 46 /* _eInternalMessageId.TelemetryEnvelopeInvalid */, \"telemetryItem.baseData cannot be null.\");\r\n }\r\n}\r\nexport var EnvelopeCreator = {\r\n Version: '3.3.4'\r\n};\r\nexport function DependencyEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var customMeasurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n var customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], customProperties, customMeasurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n if (isNullOrUndefined(bd)) {\r\n _warnToConsole(logger, \"Invalid input for dependency data\");\r\n return null;\r\n }\r\n var method = bd[strProperties] && bd[strProperties][HttpMethod] ? bd[strProperties][HttpMethod] : \"GET\";\r\n var remoteDepData = new RemoteDependencyData(logger, bd.id, bd.target, bd[_DYN_NAME /* @min:%2ename */], bd[STR_DURATION /* @min:%2eduration */], bd.success, bd.responseCode, method, bd.type, bd.correlationContext, customProperties, customMeasurements);\r\n var data = new Data(RemoteDependencyData[_DYN_DATA_TYPE /* @min:%2edataType */], remoteDepData);\r\n return _createEnvelope(logger, RemoteDependencyData[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function EventEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var customProperties = {};\r\n var customMeasurements = {};\r\n if (telemetryItem[strBaseType] !== Event[_DYN_DATA_TYPE /* @min:%2edataType */]) {\r\n customProperties[\"baseTypeSource\"] = telemetryItem[strBaseType]; // save the passed in base type as a property\r\n }\r\n if (telemetryItem[strBaseType] === Event[_DYN_DATA_TYPE /* @min:%2edataType */]) { // take collection\r\n customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n customMeasurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n }\r\n else { // if its not a known type, convert to custom event\r\n if (telemetryItem[strBaseData]) {\r\n _extractPropsAndMeasurements(telemetryItem[strBaseData], customProperties, customMeasurements);\r\n }\r\n }\r\n // Extract root level properties from part C telemetryItem.data\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], customProperties, customMeasurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n }\r\n var eventName = telemetryItem[strBaseData][_DYN_NAME /* @min:%2ename */];\r\n var eventData = new Event(logger, eventName, customProperties, customMeasurements);\r\n var data = new Data(Event[_DYN_DATA_TYPE /* @min:%2edataType */], eventData);\r\n return _createEnvelope(logger, Event[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function ExceptionEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n // Extract root level properties from part C telemetryItem.data\r\n var customMeasurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n var customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], customProperties, customMeasurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n var exData = Exception.CreateFromInterface(logger, bd, customProperties, customMeasurements);\r\n var data = new Data(Exception[_DYN_DATA_TYPE /* @min:%2edataType */], exData);\r\n return _createEnvelope(logger, Exception[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function MetricEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var baseData = telemetryItem[strBaseData];\r\n var props = baseData[strProperties] || {};\r\n var measurements = baseData[_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], props, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(props, customUndefinedValue);\r\n }\r\n var baseMetricData = new Metric(logger, baseData[_DYN_NAME /* @min:%2ename */], baseData.average, baseData.sampleCount, baseData.min, baseData.max, baseData.stdDev, props, measurements);\r\n var data = new Data(Metric[_DYN_DATA_TYPE /* @min:%2edataType */], baseMetricData);\r\n return _createEnvelope(logger, Metric[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function PageViewEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n // Since duration is not part of the domain properties in Common Schema, extract it from part C\r\n var duration;\r\n var baseData = telemetryItem[strBaseData];\r\n if (!isNullOrUndefined(baseData) &&\r\n !isNullOrUndefined(baseData[strProperties]) &&\r\n !isNullOrUndefined(baseData[strProperties][STR_DURATION])) { // from part B properties\r\n duration = baseData[strProperties][STR_DURATION];\r\n delete baseData[strProperties][STR_DURATION];\r\n }\r\n else if (!isNullOrUndefined(telemetryItem[_DYN_DATA /* @min:%2edata */]) &&\r\n !isNullOrUndefined(telemetryItem[_DYN_DATA /* @min:%2edata */][STR_DURATION])) { // from custom properties\r\n duration = telemetryItem[_DYN_DATA /* @min:%2edata */][STR_DURATION];\r\n delete telemetryItem[_DYN_DATA /* @min:%2edata */][STR_DURATION];\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n // special case: pageview.id is grabbed from current operation id. Analytics plugin is decoupled from properties plugin, so this is done here instead. This can be made a default telemetry intializer instead if needed to be decoupled from channel\r\n var currentContextId;\r\n if (((telemetryItem.ext || {}).trace || {})[_DYN_TRACE_ID /* @min:%2etraceID */]) {\r\n currentContextId = telemetryItem.ext.trace[_DYN_TRACE_ID /* @min:%2etraceID */];\r\n }\r\n var id = bd.id || currentContextId;\r\n var name = bd[_DYN_NAME /* @min:%2ename */];\r\n var url = bd.uri;\r\n var properties = bd[strProperties] || {};\r\n var measurements = bd[_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n // refUri is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd.refUri)) {\r\n properties[\"refUri\"] = bd.refUri;\r\n }\r\n // pageType is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd.pageType)) {\r\n properties[\"pageType\"] = bd.pageType;\r\n }\r\n // isLoggedIn is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd.isLoggedIn)) {\r\n properties[\"isLoggedIn\"] = bd.isLoggedIn[_DYN_TO_STRING /* @min:%2etoString */]();\r\n }\r\n // pageTags is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd[strProperties])) {\r\n var pageTags = bd[strProperties];\r\n objForEachKey(pageTags, function (key, value) {\r\n properties[key] = value;\r\n });\r\n }\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], properties, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue);\r\n }\r\n var pageViewData = new PageView(logger, name, url, duration, properties, measurements, id);\r\n var data = new Data(PageView[_DYN_DATA_TYPE /* @min:%2edataType */], pageViewData);\r\n return _createEnvelope(logger, PageView[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function PageViewPerformanceEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var bd = telemetryItem[strBaseData];\r\n var name = bd[_DYN_NAME /* @min:%2ename */];\r\n var url = bd.uri || bd.url;\r\n var properties = bd[strProperties] || {};\r\n var measurements = bd[_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], properties, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue);\r\n }\r\n var baseData = new PageViewPerformance(logger, name, url, undefined, properties, measurements, bd);\r\n var data = new Data(PageViewPerformance[_DYN_DATA_TYPE /* @min:%2edataType */], baseData);\r\n return _createEnvelope(logger, PageViewPerformance[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function TraceEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var message = telemetryItem[strBaseData].message;\r\n var severityLevel = telemetryItem[strBaseData].severityLevel;\r\n var props = telemetryItem[strBaseData][strProperties] || {};\r\n var measurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], props, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(props, customUndefinedValue);\r\n }\r\n var baseData = new Trace(logger, message, severityLevel, props, measurements);\r\n var data = new Data(Trace[_DYN_DATA_TYPE /* @min:%2edataType */], baseData);\r\n return _createEnvelope(logger, Trace[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\n//# sourceMappingURL=EnvelopeCreator.js.map","import { __extends } from \"tslib\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlGetSessionStorage, utlRemoveSessionStorage, utlSetSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, arrForEach, arrIndexOf, dumpObj, getExceptionName, getJSON, isArray, isFunction, isNullOrUndefined, isString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_BUFFER_OVERRIDE, _DYN_CLEAR, _DYN_CLEAR_SENT, _DYN_CONCAT, _DYN_COUNT, _DYN_CREATE_NEW, _DYN_EMIT_LINE_DELIMITED_0, _DYN_ENQUEUE, _DYN_EVENTS_LIMIT_IN_MEM, _DYN_ITEM, _DYN_LENGTH, _DYN_MARK_AS_SENT, _DYN_PUSH, _DYN_STRINGIFY, _DYN__BUFFER__KEY, _DYN__GET, _DYN__MAX__BUFFER__SIZE, _DYN__SENT__BUFFER__KEY } from \"./__DynamicConstants\";\r\nvar BaseSendBuffer = /** @class */ (function () {\r\n function BaseSendBuffer(logger, config) {\r\n var _buffer = [];\r\n var _bufferFullMessageSent = false;\r\n var _maxRetryCnt = config.maxRetryCnt;\r\n this[_DYN__GET /* @min:%2e_get */] = function () {\r\n return _buffer;\r\n };\r\n this._set = function (buffer) {\r\n _buffer = buffer;\r\n return _buffer;\r\n };\r\n dynamicProto(BaseSendBuffer, this, function (_self) {\r\n _self[_DYN_ENQUEUE /* @min:%2eenqueue */] = function (payload) {\r\n if (_self[_DYN_COUNT /* @min:%2ecount */]() >= config[_DYN_EVENTS_LIMIT_IN_MEM /* @min:%2eeventsLimitInMem */]) {\r\n // sent internal log only once per page view\r\n if (!_bufferFullMessageSent) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 105 /* _eInternalMessageId.InMemoryStorageBufferFull */, \"Maximum in-memory buffer size reached: \" + _self[_DYN_COUNT /* @min:%2ecount */](), true);\r\n _bufferFullMessageSent = true;\r\n }\r\n return;\r\n }\r\n payload.cnt = payload.cnt || 0;\r\n // max retry is defined, and max retry is reached, do not add the payload to buffer\r\n if (!isNullOrUndefined(_maxRetryCnt)) {\r\n if (payload.cnt > _maxRetryCnt) {\r\n // TODO: add log here on dropping payloads\r\n return;\r\n }\r\n }\r\n _buffer[_DYN_PUSH /* @min:%2epush */](payload);\r\n return;\r\n };\r\n _self[_DYN_COUNT /* @min:%2ecount */] = function () {\r\n return _buffer[_DYN_LENGTH /* @min:%2elength */];\r\n };\r\n _self.size = function () {\r\n var size = _buffer[_DYN_LENGTH /* @min:%2elength */];\r\n for (var lp = 0; lp < _buffer[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n size += (_buffer[lp].item)[_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n if (!config[_DYN_EMIT_LINE_DELIMITED_0 /* @min:%2eemitLineDelimitedJson */]) {\r\n size += 2;\r\n }\r\n return size;\r\n };\r\n _self[_DYN_CLEAR /* @min:%2eclear */] = function () {\r\n _buffer = [];\r\n _bufferFullMessageSent = false;\r\n };\r\n _self.getItems = function () {\r\n return _buffer.slice(0);\r\n };\r\n _self.batchPayloads = function (payloads) {\r\n if (payloads && payloads[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var payloadStr_1 = [];\r\n arrForEach(payloads, function (payload) {\r\n payloadStr_1[_DYN_PUSH /* @min:%2epush */](payload[_DYN_ITEM /* @min:%2eitem */]);\r\n });\r\n var batch = config[_DYN_EMIT_LINE_DELIMITED_0 /* @min:%2eemitLineDelimitedJson */] ?\r\n payloadStr_1.join(\"\\n\") :\r\n \"[\" + payloadStr_1.join(\",\") + \"]\";\r\n return batch;\r\n }\r\n return null;\r\n };\r\n _self[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = function (newLogger, newConfig, canUseSessionStorage) {\r\n var items = _buffer.slice(0);\r\n newLogger = newLogger || logger;\r\n newConfig = newConfig || {};\r\n var newBuffer = !!canUseSessionStorage ? new SessionStorageSendBuffer(newLogger, newConfig) : new ArraySendBuffer(newLogger, newConfig);\r\n arrForEach(items, function (payload) {\r\n newBuffer[_DYN_ENQUEUE /* @min:%2eenqueue */](payload);\r\n });\r\n return newBuffer;\r\n };\r\n });\r\n }\r\n BaseSendBuffer.prototype.enqueue = function (payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n BaseSendBuffer.prototype.count = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return 0;\r\n };\r\n BaseSendBuffer.prototype.size = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return 0;\r\n };\r\n BaseSendBuffer.prototype.clear = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n BaseSendBuffer.prototype.getItems = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n BaseSendBuffer.prototype.batchPayloads = function (payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n BaseSendBuffer.prototype.createNew = function (newLogger, newConfig, canUseSessionStorage) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n return BaseSendBuffer;\r\n}());\r\n/*\r\n * An array based send buffer.\r\n */\r\nvar ArraySendBuffer = /** @class */ (function (_super) {\r\n __extends(ArraySendBuffer, _super);\r\n function ArraySendBuffer(logger, config) {\r\n var _this = _super.call(this, logger, config) || this;\r\n dynamicProto(ArraySendBuffer, _this, function (_self, _base) {\r\n _self[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */] = function (payload) {\r\n _base[_DYN_CLEAR /* @min:%2eclear */]();\r\n };\r\n _self[_DYN_CLEAR_SENT /* @min:%2eclearSent */] = function (payload) {\r\n // not supported\r\n };\r\n });\r\n return _this;\r\n }\r\n ArraySendBuffer.prototype.markAsSent = function (payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n ArraySendBuffer.prototype.clearSent = function (payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return ArraySendBuffer;\r\n}(BaseSendBuffer));\r\nexport { ArraySendBuffer };\r\nvar PREVIOUS_KEYS = [\"AI_buffer\", \"AI_sentBuffer\"];\r\n/*\r\n * Session storage buffer holds a copy of all unsent items in the browser session storage.\r\n */\r\nvar SessionStorageSendBuffer = /** @class */ (function (_super) {\r\n __extends(SessionStorageSendBuffer, _super);\r\n function SessionStorageSendBuffer(logger, config) {\r\n var _this = _super.call(this, logger, config) || this;\r\n var _bufferFullMessageSent = false;\r\n //Note: should not use config.namePrefix directly, because it will always refers to the latest namePrefix\r\n var _namePrefix = config === null || config === void 0 ? void 0 : config.namePrefix;\r\n // TODO: add remove buffer override as well\r\n var _b = config[_DYN_BUFFER_OVERRIDE /* @min:%2ebufferOverride */] || { getItem: utlGetSessionStorage, setItem: utlSetSessionStorage }, getItem = _b.getItem, setItem = _b.setItem;\r\n var _maxRetryCnt = config.maxRetryCnt;\r\n dynamicProto(SessionStorageSendBuffer, _this, function (_self, _base) {\r\n var bufferItems = _getBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */]);\r\n var itemsInSentBuffer = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]);\r\n var previousItems = _getPreviousEvents();\r\n var notDeliveredItems = itemsInSentBuffer[_DYN_CONCAT /* @min:%2econcat */](previousItems);\r\n var buffer = _self._set(bufferItems[_DYN_CONCAT /* @min:%2econcat */](notDeliveredItems));\r\n // If the buffer has too many items, drop items from the end.\r\n if (buffer[_DYN_LENGTH /* @min:%2elength */] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */]) {\r\n buffer[_DYN_LENGTH /* @min:%2elength */] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */];\r\n }\r\n _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], []);\r\n _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */], buffer);\r\n _self[_DYN_ENQUEUE /* @min:%2eenqueue */] = function (payload) {\r\n if (_self[_DYN_COUNT /* @min:%2ecount */]() >= SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */]) {\r\n // sent internal log only once per page view\r\n if (!_bufferFullMessageSent) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 67 /* _eInternalMessageId.SessionStorageBufferFull */, \"Maximum buffer size reached: \" + _self[_DYN_COUNT /* @min:%2ecount */](), true);\r\n _bufferFullMessageSent = true;\r\n }\r\n return;\r\n }\r\n payload.cnt = payload.cnt || 0;\r\n // max retry is defined, and max retry is reached, do not add the payload to buffer\r\n if (!isNullOrUndefined(_maxRetryCnt)) {\r\n if (payload.cnt > _maxRetryCnt) {\r\n // TODO: add log here on dropping payloads\r\n return;\r\n }\r\n }\r\n _base[_DYN_ENQUEUE /* @min:%2eenqueue */](payload);\r\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self[_DYN__GET /* @min:%2e_get */]());\r\n };\r\n _self[_DYN_CLEAR /* @min:%2eclear */] = function () {\r\n _base[_DYN_CLEAR /* @min:%2eclear */]();\r\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self[_DYN__GET /* @min:%2e_get */]());\r\n _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], []);\r\n _bufferFullMessageSent = false;\r\n };\r\n _self[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */] = function (payload) {\r\n _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */], _self._set(_removePayloadsFromBuffer(payload, _self[_DYN__GET /* @min:%2e_get */]())));\r\n var sentElements = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]);\r\n if (sentElements instanceof Array && payload instanceof Array) {\r\n sentElements = sentElements[_DYN_CONCAT /* @min:%2econcat */](payload);\r\n if (sentElements[_DYN_LENGTH /* @min:%2elength */] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */]) {\r\n // We send telemetry normally. If the SENT_BUFFER is too big we don't add new elements\r\n // until we receive a response from the backend and the buffer has free space again (see clearSent method)\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 67 /* _eInternalMessageId.SessionStorageBufferFull */, \"Sent buffer reached its maximum size: \" + sentElements[_DYN_LENGTH /* @min:%2elength */], true);\r\n sentElements[_DYN_LENGTH /* @min:%2elength */] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */];\r\n }\r\n _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], sentElements);\r\n }\r\n };\r\n _self[_DYN_CLEAR_SENT /* @min:%2eclearSent */] = function (payload) {\r\n var sentElements = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]);\r\n sentElements = _removePayloadsFromBuffer(payload, sentElements);\r\n _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], sentElements);\r\n };\r\n _self[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = function (newLogger, newConfig, canUseSessionStorage) {\r\n canUseSessionStorage = !!canUseSessionStorage;\r\n var unsentItems = _self[_DYN__GET /* @min:%2e_get */]().slice(0);\r\n var sentItems = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]).slice(0);\r\n newLogger = newLogger || logger;\r\n newConfig = newConfig || {};\r\n // to make sure that we do not send duplicated payloads when it is switched back to previous one\r\n _self[_DYN_CLEAR /* @min:%2eclear */]();\r\n var newBuffer = canUseSessionStorage ? new SessionStorageSendBuffer(newLogger, newConfig) : new ArraySendBuffer(newLogger, newConfig);\r\n arrForEach(unsentItems, function (payload) {\r\n newBuffer[_DYN_ENQUEUE /* @min:%2eenqueue */](payload);\r\n });\r\n if (canUseSessionStorage) {\r\n // arr buffer will clear all payloads if markAsSent() is called\r\n newBuffer[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */](sentItems);\r\n }\r\n return newBuffer;\r\n };\r\n function _removePayloadsFromBuffer(payloads, buffer) {\r\n var remaining = [];\r\n var payloadStr = [];\r\n arrForEach(payloads, function (payload) {\r\n payloadStr[_DYN_PUSH /* @min:%2epush */](payload[_DYN_ITEM /* @min:%2eitem */]);\r\n });\r\n arrForEach(buffer, function (value) {\r\n if (!isFunction(value) && arrIndexOf(payloadStr, value[_DYN_ITEM /* @min:%2eitem */]) === -1) {\r\n remaining[_DYN_PUSH /* @min:%2epush */](value);\r\n }\r\n });\r\n return remaining;\r\n }\r\n function _getBuffer(key) {\r\n var prefixedKey = key;\r\n prefixedKey = _namePrefix ? _namePrefix + \"_\" + prefixedKey : prefixedKey;\r\n return _getBufferBase(prefixedKey);\r\n }\r\n function _getBufferBase(key) {\r\n try {\r\n var bufferJson = getItem(logger, key);\r\n if (bufferJson) {\r\n var buffer_1 = getJSON().parse(bufferJson);\r\n if (isString(buffer_1)) {\r\n // When using some version prototype.js the stringify / parse cycle does not decode array's correctly\r\n buffer_1 = getJSON().parse(buffer_1);\r\n }\r\n if (buffer_1 && isArray(buffer_1)) {\r\n return buffer_1;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 42 /* _eInternalMessageId.FailedToRestoreStorageBuffer */, \" storage key: \" + key + \", \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n return [];\r\n }\r\n function _setBuffer(key, buffer) {\r\n var prefixedKey = key;\r\n try {\r\n prefixedKey = _namePrefix ? _namePrefix + \"_\" + prefixedKey : prefixedKey;\r\n var bufferJson = JSON[_DYN_STRINGIFY /* @min:%2estringify */](buffer);\r\n setItem(logger, prefixedKey, bufferJson);\r\n }\r\n catch (e) {\r\n // if there was an error, clear the buffer\r\n // telemetry is stored in the _buffer array so we won't loose any items\r\n setItem(logger, prefixedKey, JSON[_DYN_STRINGIFY /* @min:%2estringify */]([]));\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 41 /* _eInternalMessageId.FailedToSetStorageBuffer */, \" storage key: \" + prefixedKey + \", \" + getExceptionName(e) + \". Buffer cleared\", { exception: dumpObj(e) });\r\n }\r\n }\r\n // this removes buffer with prefix+key\r\n function _getPreviousEvents() {\r\n var items = [];\r\n try {\r\n arrForEach(PREVIOUS_KEYS, function (key) {\r\n var events = _getItemsFromPreviousKey(key);\r\n items = items[_DYN_CONCAT /* @min:%2econcat */](events);\r\n // to make sure that we also transfer items from old prefixed + key buffer\r\n if (_namePrefix) {\r\n var prefixedKey = _namePrefix + \"_\" + key;\r\n var prefixEvents = _getItemsFromPreviousKey(prefixedKey);\r\n items = items[_DYN_CONCAT /* @min:%2econcat */](prefixEvents);\r\n }\r\n });\r\n return items;\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 41 /* _eInternalMessageId.FailedToSetStorageBuffer */, \"Transfer events from previous buffers: \" + getExceptionName(e) + \". previous Buffer items can not be removed\", { exception: dumpObj(e) });\r\n }\r\n return [];\r\n }\r\n // transform string[] to IInternalStorageItem[]\r\n function _getItemsFromPreviousKey(key) {\r\n try {\r\n var items = _getBufferBase(key);\r\n var transFormedItems_1 = [];\r\n arrForEach(items, function (item) {\r\n var internalItem = {\r\n item: item,\r\n cnt: 0 // previous events will be default to 0 count\r\n };\r\n transFormedItems_1[_DYN_PUSH /* @min:%2epush */](internalItem);\r\n });\r\n // remove the session storage if we can add events back\r\n utlRemoveSessionStorage(logger, key);\r\n return transFormedItems_1;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return [];\r\n }\r\n });\r\n return _this;\r\n }\r\n SessionStorageSendBuffer.prototype.enqueue = function (payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n SessionStorageSendBuffer.prototype.clear = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n SessionStorageSendBuffer.prototype.markAsSent = function (payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n SessionStorageSendBuffer.prototype.clearSent = function (payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n SessionStorageSendBuffer.prototype.createNew = function (newLogger, newConfig, canUseSessionStorage) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n var _a;\r\n _a = SessionStorageSendBuffer;\r\n SessionStorageSendBuffer.VERSION = \"_1\";\r\n SessionStorageSendBuffer.BUFFER_KEY = \"AI_buffer\" + _a.VERSION;\r\n SessionStorageSendBuffer.SENT_BUFFER_KEY = \"AI_sentBuffer\" + _a.VERSION;\r\n // Maximum number of payloads stored in the buffer. If the buffer is full, new elements will be dropped.\r\n SessionStorageSendBuffer.MAX_BUFFER_SIZE = 2000;\r\n return SessionStorageSendBuffer;\r\n}(BaseSendBuffer));\r\nexport { SessionStorageSendBuffer };\r\n//# sourceMappingURL=SendBuffer.js.map","var _a, _b;\r\nimport { __assign, __extends } from \"tslib\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BreezeChannelIdentifier, DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH, Event, Exception, Metric, PageView, PageViewPerformance, ProcessLegacy, RemoteDependencyData, RequestHeaders, SampleRate, Trace, createOfflineListener, isInternalApplicationInsightsEndpoint, utlCanUseSessionStorage, utlSetStoragePrefix } from \"@microsoft/applicationinsights-common\";\r\nimport { ActiveStatus, BaseTelemetryPlugin, SenderPostManager, _throwInternal, _warnToConsole, arrForEach, cfgDfBoolean, cfgDfValidate, createProcessTelemetryContext, createUniqueNamespace, dateNow, dumpObj, formatErrorMessageXdr, formatErrorMessageXhr, getExceptionName, getIEVersion, isArray, isBeaconsSupported, isFetchSupported, isNullOrUndefined, mergeEvtNamespace, objExtend, onConfigChange, parseResponse, prependTransports, runTargetUnload } from \"@microsoft/applicationinsights-core-js\";\r\nimport { isNumber, isPromiseLike, isString, isTruthy, objDeepFreeze, objDefine, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { DependencyEnvelopeCreator, EventEnvelopeCreator, ExceptionEnvelopeCreator, MetricEnvelopeCreator, PageViewEnvelopeCreator, PageViewPerformanceEnvelopeCreator, TraceEnvelopeCreator } from \"./EnvelopeCreator\";\r\nimport { ArraySendBuffer, SessionStorageSendBuffer } from \"./SendBuffer\";\r\nimport { Serializer } from \"./Serializer\";\r\nimport { Sample } from \"./TelemetryProcessors/Sample\";\r\nimport { _DYN_ALWAYS_USE_XHR_OVERR4, _DYN_BASE_TYPE, _DYN_BUFFER_OVERRIDE, _DYN_CLEAR, _DYN_CLEAR_SENT, _DYN_CONVERT_UNDEFINED, _DYN_COUNT, _DYN_CREATE_NEW, _DYN_CUSTOM_HEADERS, _DYN_DATA, _DYN_DIAG_LOG, _DYN_DISABLE_SEND_BEACON_7, _DYN_DISABLE_XHR, _DYN_EMIT_LINE_DELIMITED_0, _DYN_ENABLE_SEND_PROMISE, _DYN_ENABLE_SESSION_STORA5, _DYN_ENDPOINT_URL, _DYN_ENQUEUE, _DYN_EVENTS_LIMIT_IN_MEM, _DYN_EVENTS_SEND_REQUEST, _DYN_GET_SENDER_INST, _DYN_INITIALIZE, _DYN_INSTRUMENTATION_KEY, _DYN_IS_BEACON_API_DISABL3, _DYN_ITEM, _DYN_ITEMS_ACCEPTED, _DYN_ITEMS_RECEIVED, _DYN_LENGTH, _DYN_MARK_AS_SENT, _DYN_MAX_BATCH_INTERVAL, _DYN_MAX_BATCH_SIZE_IN_BY1, _DYN_ONUNLOAD_DISABLE_BEA2, _DYN_ONUNLOAD_DISABLE_FET6, _DYN_ORI_PAYLOAD, _DYN_PUSH, _DYN_SAMPLE_RATE, _DYN_SERIALIZE, _DYN_TAGS, _DYN_TRIGGER_SEND, _DYN_UNLOAD_TRANSPORTS, _DYN__BUFFER, _DYN__ON_ERROR, _DYN__ON_PARTIAL_SUCCESS, _DYN__ON_SUCCESS, _DYN__SENDER } from \"./__DynamicConstants\";\r\nvar UNDEFINED_VALUE = undefined;\r\nvar EMPTY_STR = \"\";\r\nvar FetchSyncRequestSizeLimitBytes = 65000; // approx 64kb (the current Edge, Firefox and Chrome max limit)\r\nfunction _getResponseText(xhr) {\r\n try {\r\n return xhr.responseText;\r\n }\r\n catch (e) {\r\n // Best effort, as XHR may throw while XDR wont so just ignore\r\n }\r\n return null;\r\n}\r\nfunction isOverrideFn(httpXHROverride) {\r\n return httpXHROverride && httpXHROverride.sendPOST;\r\n}\r\nvar defaultAppInsightsChannelConfig = objDeepFreeze((_a = {\r\n // Use the default value (handles empty string in the configuration)\r\n endpointUrl: cfgDfValidate(isTruthy, DEFAULT_BREEZE_ENDPOINT + DEFAULT_BREEZE_PATH)\r\n },\r\n _a[_DYN_EMIT_LINE_DELIMITED_0 /* @min:emitLineDelimitedJson */] = cfgDfBoolean(),\r\n _a[_DYN_MAX_BATCH_INTERVAL /* @min:maxBatchInterval */] = 15000,\r\n _a[_DYN_MAX_BATCH_SIZE_IN_BY1 /* @min:maxBatchSizeInBytes */] = 102400,\r\n _a.disableTelemetry = cfgDfBoolean(),\r\n _a[_DYN_ENABLE_SESSION_STORA5 /* @min:enableSessionStorageBuffer */] = cfgDfBoolean(true),\r\n _a.isRetryDisabled = cfgDfBoolean(),\r\n _a[_DYN_IS_BEACON_API_DISABL3 /* @min:isBeaconApiDisabled */] = cfgDfBoolean(true),\r\n _a[_DYN_DISABLE_SEND_BEACON_7 /* @min:disableSendBeaconSplit */] = cfgDfBoolean(true),\r\n _a[_DYN_DISABLE_XHR /* @min:disableXhr */] = cfgDfBoolean(),\r\n _a[_DYN_ONUNLOAD_DISABLE_FET6 /* @min:onunloadDisableFetch */] = cfgDfBoolean(),\r\n _a[_DYN_ONUNLOAD_DISABLE_BEA2 /* @min:onunloadDisableBeacon */] = cfgDfBoolean(),\r\n _a[_DYN_INSTRUMENTATION_KEY /* @min:instrumentationKey */] = UNDEFINED_VALUE,\r\n _a.namePrefix = UNDEFINED_VALUE,\r\n _a.samplingPercentage = cfgDfValidate(_chkSampling, 100),\r\n _a[_DYN_CUSTOM_HEADERS /* @min:customHeaders */] = UNDEFINED_VALUE,\r\n _a[_DYN_CONVERT_UNDEFINED /* @min:convertUndefined */] = UNDEFINED_VALUE,\r\n _a[_DYN_EVENTS_LIMIT_IN_MEM /* @min:eventsLimitInMem */] = 10000,\r\n _a[_DYN_BUFFER_OVERRIDE /* @min:bufferOverride */] = false,\r\n _a.httpXHROverride = { isVal: isOverrideFn, v: UNDEFINED_VALUE },\r\n _a[_DYN_ALWAYS_USE_XHR_OVERR4 /* @min:alwaysUseXhrOverride */] = cfgDfBoolean(),\r\n _a.transports = UNDEFINED_VALUE,\r\n _a.retryCodes = UNDEFINED_VALUE,\r\n _a.maxRetryCnt = { isVal: isNumber, v: 10 },\r\n _a));\r\nfunction _chkSampling(value) {\r\n return !isNaN(value) && value > 0 && value <= 100;\r\n}\r\nvar EnvelopeTypeCreator = (_b = {},\r\n _b[Event.dataType] = EventEnvelopeCreator,\r\n _b[Trace.dataType] = TraceEnvelopeCreator,\r\n _b[PageView.dataType] = PageViewEnvelopeCreator,\r\n _b[PageViewPerformance.dataType] = PageViewPerformanceEnvelopeCreator,\r\n _b[Exception.dataType] = ExceptionEnvelopeCreator,\r\n _b[Metric.dataType] = MetricEnvelopeCreator,\r\n _b[RemoteDependencyData.dataType] = DependencyEnvelopeCreator,\r\n _b);\r\nvar Sender = /** @class */ (function (_super) {\r\n __extends(Sender, _super);\r\n function Sender() {\r\n var _this = _super.call(this) || this;\r\n _this.priority = 1001;\r\n _this.identifier = BreezeChannelIdentifier;\r\n // Don't set the defaults here, set them in the _initDefaults() as this is also called during unload\r\n var _consecutiveErrors; // How many times in a row a retryable error condition has occurred.\r\n var _retryAt; // The time to retry at in milliseconds from 1970/01/01 (this makes the timer calculation easy).\r\n var _lastSend; // The time of the last send operation.\r\n var _paused; // Flag indicating that the sending should be paused\r\n var _timeoutHandle; // Handle to the timer for delayed sending of batches of data.\r\n var _serializer;\r\n var _stamp_specific_redirects;\r\n var _headers;\r\n var _syncFetchPayload = 0; // Keep track of the outstanding sync fetch payload total (as sync fetch has limits)\r\n var _syncUnloadSender; // The identified sender to use for the synchronous unload stage\r\n var _offlineListener;\r\n var _evtNamespace;\r\n var _endpointUrl;\r\n var _orgEndpointUrl;\r\n var _maxBatchSizeInBytes;\r\n var _beaconSupported;\r\n var _beaconOnUnloadSupported;\r\n var _beaconNormalSupported;\r\n var _customHeaders;\r\n var _disableTelemetry;\r\n var _instrumentationKey;\r\n var _convertUndefined;\r\n var _isRetryDisabled;\r\n var _maxBatchInterval;\r\n var _sessionStorageUsed;\r\n var _bufferOverrideUsed;\r\n var _namePrefix;\r\n var _enableSendPromise;\r\n var _alwaysUseCustomSend;\r\n var _disableXhr;\r\n var _fetchKeepAlive;\r\n var _xhrSend;\r\n var _fallbackSend;\r\n var _disableBeaconSplit;\r\n var _sendPostMgr;\r\n var _retryCodes;\r\n dynamicProto(Sender, _this, function (_self, _base) {\r\n _initDefaults();\r\n _self.pause = function () {\r\n _clearScheduledTimer();\r\n _paused = true;\r\n };\r\n _self.resume = function () {\r\n if (_paused) {\r\n _paused = false;\r\n _retryAt = null;\r\n // flush if we have exceeded the max-size already\r\n _checkMaxSize();\r\n _setupTimer();\r\n }\r\n };\r\n _self.flush = function (isAsync, callBack, sendReason) {\r\n if (isAsync === void 0) { isAsync = true; }\r\n if (!_paused) {\r\n // Clear the normal schedule timer as we are going to try and flush ASAP\r\n _clearScheduledTimer();\r\n try {\r\n return _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](isAsync, null, sendReason || 1 /* SendRequestReason.ManualFlush */);\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 22 /* _eInternalMessageId.FlushFailed */, \"flush failed, telemetry will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n };\r\n _self.onunloadFlush = function () {\r\n if (!_paused) {\r\n if (_beaconSupported || _alwaysUseCustomSend) {\r\n try {\r\n return _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](true, _doUnloadSend, 2 /* SendRequestReason.Unload */);\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 20 /* _eInternalMessageId.FailedToSendQueuedTelemetry */, \"failed to flush with beacon sender on page unload, telemetry will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n else {\r\n _self.flush(false);\r\n }\r\n }\r\n };\r\n _self.addHeader = function (name, value) {\r\n _headers[name] = value;\r\n };\r\n _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, core, extensions, pluginChain) {\r\n if (_self.isInitialized()) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 28 /* _eInternalMessageId.SenderNotInitialized */, \"Sender is already initialized\");\r\n }\r\n _base[_DYN_INITIALIZE /* @min:%2einitialize */](config, core, extensions, pluginChain);\r\n var identifier = _self.identifier;\r\n _serializer = new Serializer(core.logger);\r\n _consecutiveErrors = 0;\r\n _retryAt = null;\r\n _lastSend = 0;\r\n _self[_DYN__SENDER /* @min:%2e_sender */] = null;\r\n _stamp_specific_redirects = 0;\r\n var diagLog = _self[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n _evtNamespace = mergeEvtNamespace(createUniqueNamespace(\"Sender\"), core.evtNamespace && core.evtNamespace());\r\n _offlineListener = createOfflineListener(_evtNamespace);\r\n // This function will be re-called whenever any referenced configuration is changed\r\n _self._addHook(onConfigChange(config, function (details) {\r\n var config = details.cfg;\r\n if (config.storagePrefix) {\r\n utlSetStoragePrefix(config.storagePrefix);\r\n }\r\n var ctx = createProcessTelemetryContext(null, config, core);\r\n // getExtCfg only finds undefined values from core\r\n var senderConfig = ctx.getExtCfg(identifier, defaultAppInsightsChannelConfig);\r\n var curExtUrl = senderConfig[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */];\r\n // if it is not inital change (_endpointUrl has value)\r\n // if current sender endpoint url is not changed directly\r\n // means ExtCfg is not changed directly\r\n // then we need to monitor endpoint url changes from core\r\n if (_endpointUrl && curExtUrl === _endpointUrl) {\r\n var coreUrl = config[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */];\r\n // if core endpoint url is changed\r\n if (coreUrl && coreUrl !== curExtUrl) {\r\n // and endpoint promise changes is handled by this as well\r\n senderConfig[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */] = coreUrl;\r\n }\r\n }\r\n if (isPromiseLike(senderConfig[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */])) {\r\n // if it is promise, means the endpoint url is from core.endpointurl\r\n senderConfig[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */] = config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n }\r\n objDefine(_self, \"_senderConfig\", {\r\n g: function () {\r\n return senderConfig;\r\n }\r\n });\r\n // Only update the endpoint if the original config !== the current config\r\n // This is so any redirect endpointUrl is not overwritten\r\n if (_orgEndpointUrl !== senderConfig[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */]) {\r\n if (_orgEndpointUrl) {\r\n // TODO: add doc to remind users to flush before changing endpoint, otherwise all unsent payload will be sent to new endpoint\r\n }\r\n _endpointUrl = _orgEndpointUrl = senderConfig[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */];\r\n }\r\n // or is not string\r\n if (core.activeStatus() === ActiveStatus.PENDING) {\r\n // waiting for core promises to be resolved\r\n // NOTE: if active status is set to pending, stop sending, clear timer here\r\n _self.pause();\r\n }\r\n else if (core.activeStatus() === ActiveStatus.ACTIVE) {\r\n // core status changed from pending to other status\r\n _self.resume();\r\n }\r\n if (_customHeaders && _customHeaders !== senderConfig[_DYN_CUSTOM_HEADERS /* @min:%2ecustomHeaders */]) {\r\n // Removing any previously defined custom headers as they have changed\r\n arrForEach(_customHeaders, function (customHeader) {\r\n delete _headers[customHeader.header];\r\n });\r\n }\r\n _maxBatchSizeInBytes = senderConfig[_DYN_MAX_BATCH_SIZE_IN_BY1 /* @min:%2emaxBatchSizeInBytes */];\r\n _beaconSupported = (senderConfig[_DYN_ONUNLOAD_DISABLE_BEA2 /* @min:%2eonunloadDisableBeacon */] === false || senderConfig[_DYN_IS_BEACON_API_DISABL3 /* @min:%2eisBeaconApiDisabled */] === false) && isBeaconsSupported();\r\n _beaconOnUnloadSupported = senderConfig[_DYN_ONUNLOAD_DISABLE_BEA2 /* @min:%2eonunloadDisableBeacon */] === false && isBeaconsSupported();\r\n _beaconNormalSupported = senderConfig[_DYN_IS_BEACON_API_DISABL3 /* @min:%2eisBeaconApiDisabled */] === false && isBeaconsSupported();\r\n _alwaysUseCustomSend = senderConfig[_DYN_ALWAYS_USE_XHR_OVERR4 /* @min:%2ealwaysUseXhrOverride */];\r\n _disableXhr = !!senderConfig[_DYN_DISABLE_XHR /* @min:%2edisableXhr */];\r\n _retryCodes = senderConfig.retryCodes;\r\n var bufferOverride = senderConfig[_DYN_BUFFER_OVERRIDE /* @min:%2ebufferOverride */];\r\n var canUseSessionStorage = !!senderConfig[_DYN_ENABLE_SESSION_STORA5 /* @min:%2eenableSessionStorageBuffer */] &&\r\n (!!bufferOverride || utlCanUseSessionStorage());\r\n var namePrefix = senderConfig.namePrefix;\r\n //Note: emitLineDelimitedJson and eventsLimitInMem is directly accessed via config in senderBuffer\r\n //Therefore, if canUseSessionStorage is not changed, we do not need to re initialize a new one\r\n var shouldUpdate = (canUseSessionStorage !== _sessionStorageUsed)\r\n || (canUseSessionStorage && (_namePrefix !== namePrefix)) // prefixName is only used in session storage\r\n || (canUseSessionStorage && (_bufferOverrideUsed !== bufferOverride));\r\n if (_self[_DYN__BUFFER /* @min:%2e_buffer */]) {\r\n // case1 (Pre and Now enableSessionStorageBuffer settings are same)\r\n // if namePrefix changes, transfer current buffer to new buffer\r\n // else no action needed\r\n //case2 (Pre and Now enableSessionStorageBuffer settings are changed)\r\n // transfer current buffer to new buffer\r\n if (shouldUpdate) {\r\n try {\r\n _self._buffer = _self._buffer[_DYN_CREATE_NEW /* @min:%2ecreateNew */](diagLog, senderConfig, canUseSessionStorage);\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 12 /* _eInternalMessageId.FailedAddingTelemetryToBuffer */, \"failed to transfer telemetry to different buffer storage, telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n _checkMaxSize();\r\n }\r\n else {\r\n _self[_DYN__BUFFER /* @min:%2e_buffer */] = canUseSessionStorage\r\n ? new SessionStorageSendBuffer(diagLog, senderConfig) : new ArraySendBuffer(diagLog, senderConfig);\r\n }\r\n _namePrefix = namePrefix;\r\n _sessionStorageUsed = canUseSessionStorage;\r\n _bufferOverrideUsed = bufferOverride;\r\n _fetchKeepAlive = !senderConfig[_DYN_ONUNLOAD_DISABLE_FET6 /* @min:%2eonunloadDisableFetch */] && isFetchSupported(true);\r\n _disableBeaconSplit = !!senderConfig[_DYN_DISABLE_SEND_BEACON_7 /* @min:%2edisableSendBeaconSplit */];\r\n _self._sample = new Sample(senderConfig.samplingPercentage, diagLog);\r\n _instrumentationKey = senderConfig[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n if (!isPromiseLike(_instrumentationKey) && !_validateInstrumentationKey(_instrumentationKey, config)) {\r\n _throwInternal(diagLog, 1 /* eLoggingSeverity.CRITICAL */, 100 /* _eInternalMessageId.InvalidInstrumentationKey */, \"Invalid Instrumentation key \" + _instrumentationKey);\r\n }\r\n _customHeaders = senderConfig[_DYN_CUSTOM_HEADERS /* @min:%2ecustomHeaders */];\r\n if (isString(_endpointUrl) && !isInternalApplicationInsightsEndpoint(_endpointUrl) && _customHeaders && _customHeaders[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(_customHeaders, function (customHeader) {\r\n _this.addHeader(customHeader.header, customHeader.value);\r\n });\r\n }\r\n else {\r\n _customHeaders = null;\r\n }\r\n _enableSendPromise = senderConfig[_DYN_ENABLE_SEND_PROMISE /* @min:%2eenableSendPromise */];\r\n var sendPostConfig = _getSendPostMgrConfig();\r\n // only init it once\r\n if (!_sendPostMgr) {\r\n _sendPostMgr = new SenderPostManager();\r\n _sendPostMgr[_DYN_INITIALIZE /* @min:%2einitialize */](sendPostConfig, diagLog);\r\n }\r\n else {\r\n _sendPostMgr.SetConfig(sendPostConfig);\r\n }\r\n var customInterface = senderConfig.httpXHROverride;\r\n var httpInterface = null;\r\n var syncInterface = null;\r\n // User requested transport(s) values > Beacon > Fetch > XHR\r\n // Beacon would be filtered out if user has set disableBeaconApi to true at _getSenderInterface\r\n var theTransports = prependTransports([3 /* TransportType.Beacon */, 1 /* TransportType.Xhr */, 2 /* TransportType.Fetch */], senderConfig.transports);\r\n httpInterface = _sendPostMgr && _sendPostMgr[_DYN_GET_SENDER_INST /* @min:%2egetSenderInst */](theTransports, false);\r\n var xhrInterface = _sendPostMgr && _sendPostMgr.getFallbackInst();\r\n _xhrSend = function (payload, isAsync) {\r\n return _doSend(xhrInterface, payload, isAsync);\r\n };\r\n _fallbackSend = function (payload, isAsync) {\r\n return _doSend(xhrInterface, payload, isAsync, false);\r\n };\r\n httpInterface = _alwaysUseCustomSend ? customInterface : (httpInterface || customInterface || xhrInterface);\r\n _self[_DYN__SENDER /* @min:%2e_sender */] = function (payload, isAsync) {\r\n return _doSend(httpInterface, payload, isAsync);\r\n };\r\n if (_fetchKeepAlive) {\r\n // Try and use the fetch with keepalive\r\n _syncUnloadSender = _fetchKeepAliveSender;\r\n }\r\n var syncTransports = prependTransports([3 /* TransportType.Beacon */, 1 /* TransportType.Xhr */], senderConfig[_DYN_UNLOAD_TRANSPORTS /* @min:%2eunloadTransports */]);\r\n if (!_fetchKeepAlive) {\r\n // remove fetch from theTransports\r\n syncTransports = syncTransports.filter(function (transport) { return transport !== 2 /* TransportType.Fetch */; });\r\n }\r\n syncInterface = _sendPostMgr && _sendPostMgr[_DYN_GET_SENDER_INST /* @min:%2egetSenderInst */](syncTransports, true);\r\n syncInterface = _alwaysUseCustomSend ? customInterface : (syncInterface || customInterface);\r\n if ((_alwaysUseCustomSend || senderConfig[_DYN_UNLOAD_TRANSPORTS /* @min:%2eunloadTransports */] || !_syncUnloadSender) && syncInterface) {\r\n _syncUnloadSender = function (payload, isAsync) {\r\n return _doSend(syncInterface, payload, isAsync);\r\n };\r\n }\r\n if (!_syncUnloadSender) {\r\n _syncUnloadSender = _xhrSend;\r\n }\r\n _disableTelemetry = senderConfig.disableTelemetry;\r\n _convertUndefined = senderConfig[_DYN_CONVERT_UNDEFINED /* @min:%2econvertUndefined */] || UNDEFINED_VALUE;\r\n _isRetryDisabled = senderConfig.isRetryDisabled;\r\n _maxBatchInterval = senderConfig[_DYN_MAX_BATCH_INTERVAL /* @min:%2emaxBatchInterval */];\r\n }));\r\n };\r\n _self.processTelemetry = function (telemetryItem, itemCtx) {\r\n var _a;\r\n itemCtx = _self._getTelCtx(itemCtx);\r\n var diagLogger = itemCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n try {\r\n var isValidate = _validate(telemetryItem, diagLogger);\r\n if (!isValidate) {\r\n return;\r\n }\r\n var aiEnvelope = _getEnvelope(telemetryItem, diagLogger);\r\n if (!aiEnvelope) {\r\n return;\r\n }\r\n // check if the incoming payload is too large, truncate if necessary\r\n var payload = _serializer[_DYN_SERIALIZE /* @min:%2eserialize */](aiEnvelope);\r\n // flush if we would exceed the max-size limit by adding this item\r\n var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n _checkMaxSize(payload);\r\n var payloadItem = (_a = {},\r\n _a[_DYN_ITEM /* @min:item */] = payload,\r\n _a.cnt = 0 // inital cnt will always be 0\r\n ,\r\n _a);\r\n // enqueue the payload\r\n buffer[_DYN_ENQUEUE /* @min:%2eenqueue */](payloadItem);\r\n // ensure an invocation timeout is set\r\n _setupTimer();\r\n }\r\n catch (e) {\r\n _throwInternal(diagLogger, 2 /* eLoggingSeverity.WARNING */, 12 /* _eInternalMessageId.FailedAddingTelemetryToBuffer */, \"Failed adding telemetry to the sender's buffer, some telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n // hand off the telemetry item to the next plugin\r\n _self.processNext(telemetryItem, itemCtx);\r\n };\r\n _self.isCompletelyIdle = function () {\r\n return !_paused && _syncFetchPayload === 0 && _self._buffer[_DYN_COUNT /* @min:%2ecount */]() === 0;\r\n };\r\n _self.getOfflineListener = function () {\r\n return _offlineListener;\r\n };\r\n /**\r\n * xhr state changes\r\n */\r\n _self._xhrReadyStateChange = function (xhr, payload, countOfItemsInPayload) {\r\n // since version 3.2.0, this function is no-op\r\n if (_isStringArr(payload)) {\r\n return;\r\n }\r\n return _xhrReadyStateChange(xhr, payload, countOfItemsInPayload);\r\n };\r\n /**\r\n * Immediately send buffered data\r\n * @param async - {boolean} - Indicates if the events should be sent asynchronously\r\n * @param forcedSender - {SenderFunction} - Indicates the forcedSender, undefined if not passed\r\n */\r\n _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */] = function (async, forcedSender, sendReason) {\r\n if (async === void 0) { async = true; }\r\n var result;\r\n if (!_paused) {\r\n try {\r\n var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n // Send data only if disableTelemetry is false\r\n if (!_disableTelemetry) {\r\n if (buffer[_DYN_COUNT /* @min:%2ecount */]() > 0) {\r\n var payload = buffer.getItems();\r\n _notifySendRequest(sendReason || 0 /* SendRequestReason.Undefined */, async);\r\n // invoke send\r\n if (forcedSender) {\r\n result = forcedSender.call(_self, payload, async);\r\n }\r\n else {\r\n result = _self[_DYN__SENDER /* @min:%2e_sender */](payload, async);\r\n }\r\n }\r\n // update lastSend time to enable throttling\r\n _lastSend = +new Date;\r\n }\r\n else {\r\n buffer[_DYN_CLEAR /* @min:%2eclear */]();\r\n }\r\n _clearScheduledTimer();\r\n }\r\n catch (e) {\r\n /* Ignore this error for IE under v10 */\r\n var ieVer = getIEVersion();\r\n if (!ieVer || ieVer > 9) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 40 /* _eInternalMessageId.TransmissionFailed */, \"Telemetry transmission failed, some telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n }\r\n return result;\r\n };\r\n _self.getOfflineSupport = function () {\r\n var _a;\r\n return _a = {\r\n getUrl: function () {\r\n return _endpointUrl;\r\n },\r\n createPayload: _createPayload\r\n },\r\n _a[_DYN_SERIALIZE /* @min:serialize */] = _serialize,\r\n _a.batch = _batch,\r\n _a.shouldProcess = function (evt) {\r\n return !!_validate(evt);\r\n },\r\n _a;\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState) {\r\n _self.onunloadFlush();\r\n runTargetUnload(_offlineListener, false);\r\n _initDefaults();\r\n };\r\n /**\r\n * error handler\r\n */\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */] = function (payload, message, event) {\r\n // since version 3.1.3, string[] is no-op\r\n if (_isStringArr(payload)) {\r\n return;\r\n }\r\n return _onError(payload, message, event);\r\n };\r\n /**\r\n * partial success handler\r\n */\r\n _self[_DYN__ON_PARTIAL_SUCCESS /* @min:%2e_onPartialSuccess */] = function (payload, results) {\r\n // since version 3.1.3, string[] is no-op\r\n if (_isStringArr(payload)) {\r\n return;\r\n }\r\n return _onPartialSuccess(payload, results);\r\n };\r\n /**\r\n * success handler\r\n */\r\n _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */] = function (payload, countOfItemsInPayload) {\r\n // since version 3.1.3, string[] is no-op\r\n if (_isStringArr(payload)) {\r\n return;\r\n }\r\n return _onSuccess(payload, countOfItemsInPayload);\r\n //_self._buffer && _self._buffer.clearSent(payload);\r\n };\r\n /**\r\n * xdr state changes\r\n */\r\n _self._xdrOnLoad = function (xdr, payload) {\r\n // since version 3.1.3, string[] is no-op\r\n if (_isStringArr(payload)) {\r\n return;\r\n }\r\n return _xdrOnLoad(xdr, payload);\r\n };\r\n function _xdrOnLoad(xdr, payload) {\r\n var responseText = _getResponseText(xdr);\r\n if (xdr && (responseText + \"\" === \"200\" || responseText === \"\")) {\r\n _consecutiveErrors = 0;\r\n _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */](payload, 0);\r\n }\r\n else {\r\n var results = parseResponse(responseText);\r\n if (results && results[_DYN_ITEMS_RECEIVED /* @min:%2eitemsReceived */] && results[_DYN_ITEMS_RECEIVED /* @min:%2eitemsReceived */] > results[_DYN_ITEMS_ACCEPTED /* @min:%2eitemsAccepted */]\r\n && !_isRetryDisabled) {\r\n _self[_DYN__ON_PARTIAL_SUCCESS /* @min:%2e_onPartialSuccess */](payload, results);\r\n }\r\n else {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, formatErrorMessageXdr(xdr));\r\n }\r\n }\r\n }\r\n function _getSendPostMgrConfig() {\r\n var _a;\r\n try {\r\n var onCompleteFuncs = {\r\n xdrOnComplete: function (xdr, oncomplete, payload) {\r\n var data = _getPayloadArr(payload);\r\n if (!data) {\r\n return;\r\n }\r\n return _xdrOnLoad(xdr, data);\r\n },\r\n fetchOnComplete: function (response, onComplete, resValue, payload) {\r\n var data = _getPayloadArr(payload);\r\n if (!data) {\r\n return;\r\n }\r\n return _checkResponsStatus(response.status, data, response.url, data[_DYN_LENGTH /* @min:%2elength */], response.statusText, resValue || \"\");\r\n },\r\n xhrOnComplete: function (request, oncomplete, payload) {\r\n var data = _getPayloadArr(payload);\r\n if (!data) {\r\n return;\r\n }\r\n return _xhrReadyStateChange(request, data, data[_DYN_LENGTH /* @min:%2elength */]);\r\n },\r\n beaconOnRetry: function (data, onComplete, canSend) {\r\n return _onBeaconRetry(data, onComplete, canSend);\r\n }\r\n };\r\n var config = (_a = {},\r\n _a[_DYN_ENABLE_SEND_PROMISE /* @min:enableSendPromise */] = _enableSendPromise,\r\n _a.isOneDs = false,\r\n _a.disableCredentials = false,\r\n _a[_DYN_DISABLE_XHR /* @min:disableXhr */] = _disableXhr,\r\n _a.disableBeacon = !_beaconNormalSupported,\r\n _a.disableBeaconSync = !_beaconOnUnloadSupported,\r\n _a.senderOnCompleteCallBack = onCompleteFuncs,\r\n _a);\r\n return config;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n }\r\n /**\r\n * xhr state changes\r\n */\r\n function _xhrReadyStateChange(xhr, payload, countOfItemsInPayload) {\r\n if (xhr.readyState === 4) {\r\n _checkResponsStatus(xhr.status, payload, xhr.responseURL, countOfItemsInPayload, formatErrorMessageXhr(xhr), _getResponseText(xhr) || xhr.response);\r\n }\r\n }\r\n /**\r\n * error handler\r\n */\r\n function _onError(payload, message, event) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 26 /* _eInternalMessageId.OnError */, \"Failed to send telemetry.\", { message: message });\r\n _self._buffer && _self._buffer[_DYN_CLEAR_SENT /* @min:%2eclearSent */](payload);\r\n }\r\n /**\r\n * partial success handler\r\n */\r\n function _onPartialSuccess(payload, results) {\r\n var failed = [];\r\n var retry = [];\r\n // Iterate through the reversed array of errors so that splicing doesn't have invalid indexes after the first item.\r\n var errors = results.errors.reverse();\r\n for (var _i = 0, errors_1 = errors; _i < errors_1.length; _i++) {\r\n var error = errors_1[_i];\r\n var extracted = payload.splice(error.index, 1)[0];\r\n if (_isRetriable(error.statusCode)) {\r\n retry[_DYN_PUSH /* @min:%2epush */](extracted);\r\n }\r\n else {\r\n // All other errors, including: 402 (Monthly quota exceeded) and 439 (Too many requests and refresh cache).\r\n failed[_DYN_PUSH /* @min:%2epush */](extracted);\r\n }\r\n }\r\n if (payload[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */](payload, results[_DYN_ITEMS_ACCEPTED /* @min:%2eitemsAccepted */]);\r\n }\r\n if (failed[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](failed, formatErrorMessageXhr(null, [\"partial success\", results[_DYN_ITEMS_ACCEPTED /* @min:%2eitemsAccepted */], \"of\", results.itemsReceived].join(\" \")));\r\n }\r\n if (retry[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _resendPayload(retry);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \"Partial success. \" +\r\n \"Delivered: \" + payload[_DYN_LENGTH /* @min:%2elength */] + \", Failed: \" + failed[_DYN_LENGTH /* @min:%2elength */] +\r\n \". Will retry to send \" + retry[_DYN_LENGTH /* @min:%2elength */] + \" our of \" + results[_DYN_ITEMS_RECEIVED /* @min:%2eitemsReceived */] + \" items\");\r\n }\r\n }\r\n /**\r\n * success handler\r\n */\r\n function _onSuccess(payload, countOfItemsInPayload) {\r\n _self._buffer && _self._buffer[_DYN_CLEAR_SENT /* @min:%2eclearSent */](payload);\r\n }\r\n function _getPayloadArr(payload) {\r\n try {\r\n if (payload) {\r\n var internalPayload = payload;\r\n var arr = internalPayload[_DYN_ORI_PAYLOAD /* @min:%2eoriPayload */];\r\n if (arr && arr[_DYN_LENGTH /* @min:%2elength */]) {\r\n return arr;\r\n }\r\n return null;\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n }\r\n function _validate(telemetryItem, diagLogger) {\r\n if (_disableTelemetry) {\r\n // Do not send/save data\r\n return false;\r\n }\r\n // validate input\r\n if (!telemetryItem) {\r\n diagLogger && _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 7 /* _eInternalMessageId.CannotSendEmptyTelemetry */, \"Cannot send empty telemetry\");\r\n return false;\r\n }\r\n // validate event\r\n if (telemetryItem.baseData && !telemetryItem[_DYN_BASE_TYPE /* @min:%2ebaseType */]) {\r\n diagLogger && _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 70 /* _eInternalMessageId.InvalidEvent */, \"Cannot send telemetry without baseData and baseType\");\r\n return false;\r\n }\r\n if (!telemetryItem[_DYN_BASE_TYPE /* @min:%2ebaseType */]) {\r\n // Default\r\n telemetryItem[_DYN_BASE_TYPE /* @min:%2ebaseType */] = \"EventData\";\r\n }\r\n // ensure a sender was constructed\r\n if (!_self[_DYN__SENDER /* @min:%2e_sender */]) {\r\n diagLogger && _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 28 /* _eInternalMessageId.SenderNotInitialized */, \"Sender was not initialized\");\r\n return false;\r\n }\r\n // check if this item should be sampled in, else add sampleRate tag\r\n if (!_isSampledIn(telemetryItem)) {\r\n // Item is sampled out, do not send it\r\n diagLogger && _throwInternal(diagLogger, 2 /* eLoggingSeverity.WARNING */, 33 /* _eInternalMessageId.TelemetrySampledAndNotSent */, \"Telemetry item was sampled out and not sent\", { SampleRate: _self._sample[_DYN_SAMPLE_RATE /* @min:%2esampleRate */] });\r\n return false;\r\n }\r\n else {\r\n telemetryItem[SampleRate] = _self._sample[_DYN_SAMPLE_RATE /* @min:%2esampleRate */];\r\n }\r\n return true;\r\n }\r\n function _getEnvelope(telemetryItem, diagLogger) {\r\n // construct an envelope that Application Insights endpoint can understand\r\n // if ikey of telemetry is provided and not empty, envelope will use this iKey instead of senderConfig iKey\r\n var defaultEnvelopeIkey = telemetryItem.iKey || _instrumentationKey;\r\n var aiEnvelope = Sender.constructEnvelope(telemetryItem, defaultEnvelopeIkey, diagLogger, _convertUndefined);\r\n if (!aiEnvelope) {\r\n _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 47 /* _eInternalMessageId.CreateEnvelopeError */, \"Unable to create an AppInsights envelope\");\r\n return;\r\n }\r\n var doNotSendItem = false;\r\n // this is for running in legacy mode, where customer may already have a custom initializer present\r\n if (telemetryItem[_DYN_TAGS /* @min:%2etags */] && telemetryItem[_DYN_TAGS /* @min:%2etags */][ProcessLegacy]) {\r\n arrForEach(telemetryItem[_DYN_TAGS /* @min:%2etags */][ProcessLegacy], function (callBack) {\r\n try {\r\n if (callBack && callBack(aiEnvelope) === false) {\r\n doNotSendItem = true;\r\n _warnToConsole(diagLogger, \"Telemetry processor check returns false\");\r\n }\r\n }\r\n catch (e) {\r\n // log error but dont stop executing rest of the telemetry initializers\r\n // doNotSendItem = true;\r\n _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, \"One of telemetry initializers failed, telemetry item will not be sent: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n }\r\n });\r\n delete telemetryItem[_DYN_TAGS /* @min:%2etags */][ProcessLegacy];\r\n }\r\n if (doNotSendItem) {\r\n return; // do not send, no need to execute next plugin\r\n }\r\n return aiEnvelope;\r\n }\r\n function _serialize(item) {\r\n var rlt = EMPTY_STR;\r\n var diagLogger = _self[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n try {\r\n var valid = _validate(item, diagLogger);\r\n var envelope = null;\r\n if (valid) {\r\n envelope = _getEnvelope(item, diagLogger);\r\n }\r\n if (envelope) {\r\n rlt = _serializer[_DYN_SERIALIZE /* @min:%2eserialize */](envelope);\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return rlt;\r\n }\r\n function _batch(arr) {\r\n var rlt = EMPTY_STR;\r\n if (arr && arr[_DYN_LENGTH /* @min:%2elength */]) {\r\n rlt = \"[\" + arr.join(\",\") + \"]\";\r\n }\r\n return rlt;\r\n }\r\n function _createPayload(data) {\r\n var _a;\r\n var headers = _getHeaders();\r\n return _a = {\r\n urlString: _endpointUrl\r\n },\r\n _a[_DYN_DATA /* @min:data */] = data,\r\n _a.headers = headers,\r\n _a;\r\n }\r\n function _isSampledIn(envelope) {\r\n return _self._sample.isSampledIn(envelope);\r\n }\r\n function _getOnComplete(payload, status, headers, response) {\r\n // ***********************************************************************************************\r\n //TODO: handle other status codes\r\n if (status === 200 && payload) {\r\n _self._onSuccess(payload, payload[_DYN_LENGTH /* @min:%2elength */]);\r\n }\r\n else {\r\n response && _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, response);\r\n }\r\n }\r\n function _doSend(sendInterface, payload, isAsync, markAsSent) {\r\n if (markAsSent === void 0) { markAsSent = true; }\r\n var onComplete = function (status, headers, response) {\r\n return _getOnComplete(payload, status, headers, response);\r\n };\r\n var payloadData = _getPayload(payload);\r\n var sendPostFunc = sendInterface && sendInterface.sendPOST;\r\n if (sendPostFunc && payloadData) {\r\n // ***********************************************************************************************\r\n // mark payload as sent at the beginning of calling each send function\r\n if (markAsSent) {\r\n _self._buffer[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */](payload);\r\n }\r\n return sendPostFunc(payloadData, onComplete, !isAsync);\r\n }\r\n return null;\r\n }\r\n function _getPayload(payload) {\r\n var _a;\r\n if (isArray(payload) && payload[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var batch = _self[_DYN__BUFFER /* @min:%2e_buffer */].batchPayloads(payload);\r\n var headers = _getHeaders();\r\n var payloadData = (_a = {},\r\n _a[_DYN_DATA /* @min:data */] = batch,\r\n _a.urlString = _endpointUrl,\r\n _a.headers = headers,\r\n _a.disableXhrSync = _disableXhr,\r\n _a.disableFetchKeepAlive = !_fetchKeepAlive,\r\n _a[_DYN_ORI_PAYLOAD /* @min:oriPayload */] = payload,\r\n _a);\r\n return payloadData;\r\n }\r\n return null;\r\n }\r\n function _getHeaders() {\r\n try {\r\n var headers = _headers || {};\r\n if (isInternalApplicationInsightsEndpoint(_endpointUrl)) {\r\n headers[RequestHeaders[6 /* eRequestHeaders.sdkContextHeader */]] = RequestHeaders[7 /* eRequestHeaders.sdkContextHeaderAppIdRequest */];\r\n }\r\n return headers;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n }\r\n function _checkMaxSize(incomingPayload) {\r\n var incomingSize = incomingPayload ? incomingPayload[_DYN_LENGTH /* @min:%2elength */] : 0;\r\n if ((_self[_DYN__BUFFER /* @min:%2e_buffer */].size() + incomingSize) > _maxBatchSizeInBytes) {\r\n if (!_offlineListener || _offlineListener.isOnline()) { // only trigger send when currently online\r\n _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](true, null, 10 /* SendRequestReason.MaxBatchSize */);\r\n }\r\n return true;\r\n }\r\n return false;\r\n }\r\n function _checkResponsStatus(status, payload, responseUrl, countOfItemsInPayload, errorMessage, res) {\r\n var response = null;\r\n if (!_self._appId) {\r\n response = parseResponse(res);\r\n if (response && response.appId) {\r\n _self._appId = response.appId;\r\n }\r\n }\r\n if ((status < 200 || status >= 300) && status !== 0) {\r\n // Update End Point url if permanent redirect or moved permanently\r\n // Updates the end point url before retry\r\n if (status === 301 || status === 307 || status === 308) {\r\n if (!_checkAndUpdateEndPointUrl(responseUrl)) {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, errorMessage);\r\n return;\r\n }\r\n }\r\n if (_offlineListener && !_offlineListener.isOnline()) { // offline\r\n // Note: Don't check for status == 0, since adblock gives this code\r\n if (!_isRetryDisabled) {\r\n var offlineBackOffMultiplier = 10; // arbritrary number\r\n _resendPayload(payload, offlineBackOffMultiplier);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". Offline - Response Code: \".concat(status, \". Offline status: \").concat(!_offlineListener.isOnline(), \". Will retry to send \").concat(payload.length, \" items.\"));\r\n }\r\n return;\r\n }\r\n if (!_isRetryDisabled && _isRetriable(status)) {\r\n _resendPayload(payload);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" +\r\n \"Response code \" + status + \". Will retry to send \" + payload[_DYN_LENGTH /* @min:%2elength */] + \" items.\");\r\n }\r\n else {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, errorMessage);\r\n }\r\n }\r\n else {\r\n // check if the xhr's responseURL or fetch's response.url is same as endpoint url\r\n // TODO after 10 redirects force send telemetry with 'redirect=false' as query parameter.\r\n _checkAndUpdateEndPointUrl(responseUrl);\r\n if (status === 206) {\r\n if (!response) {\r\n response = parseResponse(res);\r\n }\r\n if (response && !_isRetryDisabled) {\r\n _self[_DYN__ON_PARTIAL_SUCCESS /* @min:%2e_onPartialSuccess */](payload, response);\r\n }\r\n else {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, errorMessage);\r\n }\r\n }\r\n else {\r\n _consecutiveErrors = 0;\r\n _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */](payload, countOfItemsInPayload);\r\n }\r\n }\r\n }\r\n function _checkAndUpdateEndPointUrl(responseUrl) {\r\n // Maximum stamp specific redirects allowed(uncomment this when breeze is ready with not allowing redirects feature)\r\n if (_stamp_specific_redirects >= 10) {\r\n // _self._senderConfig.endpointUrl = () => Sender._getDefaultAppInsightsChannelConfig().endpointUrl()+\"/?redirect=false\";\r\n // _stamp_specific_redirects = 0;\r\n return false;\r\n }\r\n if (!isNullOrUndefined(responseUrl) && responseUrl !== \"\") {\r\n if (responseUrl !== _endpointUrl) {\r\n _endpointUrl = responseUrl;\r\n ++_stamp_specific_redirects;\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function _doUnloadSend(payload, isAsync) {\r\n if (_syncUnloadSender) {\r\n // We are unloading so always call the sender with sync set to false\r\n _syncUnloadSender(payload, false);\r\n }\r\n else {\r\n // Fallback to the previous beacon Sender (which causes a CORB warning on chrome now)\r\n var beaconInst = _sendPostMgr && _sendPostMgr[_DYN_GET_SENDER_INST /* @min:%2egetSenderInst */]([3 /* TransportType.Beacon */], true);\r\n return _doSend(beaconInst, payload, isAsync);\r\n }\r\n }\r\n function _onBeaconRetry(payload, onComplete, canSend) {\r\n var internalPayload = payload;\r\n var data = internalPayload && internalPayload[_DYN_ORI_PAYLOAD /* @min:%2eoriPayload */];\r\n if (!_disableBeaconSplit) {\r\n // Failed to send entire payload so try and split data and try to send as much events as possible\r\n var droppedPayload = [];\r\n for (var lp = 0; lp < data[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var thePayload = data[lp];\r\n var arr = [thePayload];\r\n var item = _getPayload(arr);\r\n if (!canSend(item, onComplete)) {\r\n // Can't send anymore, so split the batch and drop the rest\r\n droppedPayload[_DYN_PUSH /* @min:%2epush */](thePayload);\r\n }\r\n else {\r\n _self._onSuccess(arr, arr[_DYN_LENGTH /* @min:%2elength */]);\r\n }\r\n }\r\n if (droppedPayload[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _fallbackSend && _fallbackSend(droppedPayload, true);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + \"Failed to send telemetry with Beacon API, retried with normal sender.\");\r\n }\r\n }\r\n else {\r\n _fallbackSend && _fallbackSend(data, true);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + \"Failed to send telemetry with Beacon API, retried with normal sender.\");\r\n }\r\n }\r\n function _isStringArr(arr) {\r\n try {\r\n if (arr && arr[_DYN_LENGTH /* @min:%2elength */]) {\r\n return (isString(arr[0]));\r\n }\r\n }\r\n catch (e) {\r\n //TODO: log, sender use IInternalStorageItem instead of string since 3.1.3\r\n }\r\n return null;\r\n }\r\n function _fetchKeepAliveSender(payload, isAsync) {\r\n var transport = null;\r\n if (isArray(payload)) {\r\n var payloadSize = payload[_DYN_LENGTH /* @min:%2elength */];\r\n for (var lp = 0; lp < payload[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n payloadSize += payload[lp].item[_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n var syncFetchPayload = _sendPostMgr.getSyncFetchPayload();\r\n if ((syncFetchPayload + payloadSize) <= FetchSyncRequestSizeLimitBytes) {\r\n transport = 2 /* TransportType.Fetch */;\r\n }\r\n else if (isBeaconsSupported()) {\r\n // Fallback to beacon sender as we at least get told which events can't be scheduled\r\n transport = 3 /* TransportType.Beacon */;\r\n }\r\n else {\r\n // Payload is going to be too big so just try and send via XHR\r\n transport = 1 /* TransportType.Xhr */;\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + \"Failed to send telemetry with Beacon API, retried with xhrSender.\");\r\n }\r\n var inst = _sendPostMgr && _sendPostMgr[_DYN_GET_SENDER_INST /* @min:%2egetSenderInst */]([transport], true);\r\n return _doSend(inst, payload, isAsync);\r\n }\r\n return null;\r\n }\r\n /**\r\n * Resend payload. Adds payload back to the send buffer and setup a send timer (with exponential backoff).\r\n * @param payload\r\n */\r\n function _resendPayload(payload, linearFactor) {\r\n if (linearFactor === void 0) { linearFactor = 1; }\r\n if (!payload || payload[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n return;\r\n }\r\n var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n buffer[_DYN_CLEAR_SENT /* @min:%2eclearSent */](payload);\r\n _consecutiveErrors++;\r\n for (var _i = 0, payload_1 = payload; _i < payload_1.length; _i++) {\r\n var item = payload_1[_i];\r\n item.cnt = item.cnt || 0; // to make sure we have cnt for each payload\r\n item.cnt++; // when resend, increase cnt\r\n buffer[_DYN_ENQUEUE /* @min:%2eenqueue */](item);\r\n }\r\n // setup timer\r\n _setRetryTime(linearFactor);\r\n _setupTimer();\r\n }\r\n /**\r\n * Calculates the time to wait before retrying in case of an error based on\r\n * http://en.wikipedia.org/wiki/Exponential_backoff\r\n */\r\n function _setRetryTime(linearFactor) {\r\n var SlotDelayInSeconds = 10;\r\n var delayInSeconds;\r\n if (_consecutiveErrors <= 1) {\r\n delayInSeconds = SlotDelayInSeconds;\r\n }\r\n else {\r\n var backOffSlot = (Math.pow(2, _consecutiveErrors) - 1) / 2;\r\n // tslint:disable-next-line:insecure-random\r\n var backOffDelay = Math.floor(Math.random() * backOffSlot * SlotDelayInSeconds) + 1;\r\n backOffDelay = linearFactor * backOffDelay;\r\n delayInSeconds = Math.max(Math.min(backOffDelay, 3600), SlotDelayInSeconds);\r\n }\r\n // TODO: Log the backoff time like the C# version does.\r\n var retryAfterTimeSpan = dateNow() + (delayInSeconds * 1000);\r\n // TODO: Log the retry at time like the C# version does.\r\n _retryAt = retryAfterTimeSpan;\r\n }\r\n /**\r\n * Sets up the timer which triggers actually sending the data.\r\n */\r\n function _setupTimer() {\r\n if (!_timeoutHandle && !_paused) {\r\n var retryInterval = _retryAt ? Math.max(0, _retryAt - dateNow()) : 0;\r\n var timerValue = Math.max(_maxBatchInterval, retryInterval);\r\n _timeoutHandle = scheduleTimeout(function () {\r\n _timeoutHandle = null;\r\n _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](true, null, 1 /* SendRequestReason.NormalSchedule */);\r\n }, timerValue);\r\n }\r\n }\r\n function _clearScheduledTimer() {\r\n _timeoutHandle && _timeoutHandle.cancel();\r\n _timeoutHandle = null;\r\n _retryAt = null;\r\n }\r\n /**\r\n * Checks if the SDK should resend the payload after receiving this status code from the backend.\r\n * @param statusCode\r\n */\r\n function _isRetriable(statusCode) {\r\n // retryCodes = [] means should not retry\r\n if (!isNullOrUndefined(_retryCodes)) {\r\n return _retryCodes[_DYN_LENGTH /* @min:%2elength */] && _retryCodes.indexOf(statusCode) > -1;\r\n }\r\n return statusCode === 401 // Unauthorized\r\n // Removing as private links can return a 403 which causes excessive retries and session storage usage\r\n // || statusCode === 403 // Forbidden\r\n || statusCode === 408 // Timeout\r\n || statusCode === 429 // Too many requests.\r\n || statusCode === 500 // Internal server error.\r\n || statusCode === 502 // Bad Gateway.\r\n || statusCode === 503 // Service unavailable.\r\n || statusCode === 504; // Gateway timeout.\r\n }\r\n // Using function lookups for backward compatibility as the getNotifyMgr() did not exist until after v2.5.6\r\n function _getNotifyMgr() {\r\n var func = \"getNotifyMgr\";\r\n if (_self.core[func]) {\r\n return _self.core[func]();\r\n }\r\n // using _self.core['_notificationManager'] for backward compatibility\r\n return _self.core[\"_notificationManager\"];\r\n }\r\n function _notifySendRequest(sendRequest, isAsync) {\r\n var manager = _getNotifyMgr();\r\n if (manager && manager[_DYN_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */]) {\r\n try {\r\n manager[_DYN_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */](sendRequest, isAsync);\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 74 /* _eInternalMessageId.NotificationException */, \"send request notification failed: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n }\r\n /**\r\n * Validate UUID Format\r\n * Specs taken from https://tools.ietf.org/html/rfc4122 and breeze repo\r\n */\r\n function _validateInstrumentationKey(instrumentationKey, config) {\r\n var disableValidation = config.disableInstrumentationKeyValidation;\r\n var disableIKeyValidationFlag = isNullOrUndefined(disableValidation) ? false : disableValidation;\r\n if (disableIKeyValidationFlag) {\r\n return true;\r\n }\r\n var UUID_Regex = \"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$\";\r\n var regexp = new RegExp(UUID_Regex);\r\n return regexp.test(instrumentationKey);\r\n }\r\n function _initDefaults() {\r\n _self[_DYN__SENDER /* @min:%2e_sender */] = null;\r\n _self[_DYN__BUFFER /* @min:%2e_buffer */] = null;\r\n _self._appId = null;\r\n _self._sample = null;\r\n _headers = {};\r\n _offlineListener = null;\r\n _consecutiveErrors = 0;\r\n _retryAt = null;\r\n _lastSend = null;\r\n _paused = false;\r\n _timeoutHandle = null;\r\n _serializer = null;\r\n _stamp_specific_redirects = 0;\r\n _syncFetchPayload = 0;\r\n _syncUnloadSender = null;\r\n _evtNamespace = null;\r\n _endpointUrl = null;\r\n _orgEndpointUrl = null;\r\n _maxBatchSizeInBytes = 0;\r\n _beaconSupported = false;\r\n _customHeaders = null;\r\n _disableTelemetry = false;\r\n _instrumentationKey = null;\r\n _convertUndefined = UNDEFINED_VALUE;\r\n _isRetryDisabled = false;\r\n _sessionStorageUsed = null;\r\n _namePrefix = UNDEFINED_VALUE;\r\n _disableXhr = false;\r\n _fetchKeepAlive = false;\r\n _disableBeaconSplit = false;\r\n _xhrSend = null;\r\n _fallbackSend = null;\r\n _sendPostMgr = null;\r\n objDefine(_self, \"_senderConfig\", {\r\n g: function () {\r\n return objExtend({}, defaultAppInsightsChannelConfig);\r\n }\r\n });\r\n }\r\n });\r\n return _this;\r\n }\r\n Sender.constructEnvelope = function (orig, iKey, logger, convertUndefined) {\r\n var envelope;\r\n if (iKey !== orig.iKey && !isNullOrUndefined(iKey)) {\r\n envelope = __assign(__assign({}, orig), { iKey: iKey });\r\n }\r\n else {\r\n envelope = orig;\r\n }\r\n var creator = EnvelopeTypeCreator[envelope.baseType] || EventEnvelopeCreator;\r\n return creator(logger, envelope, convertUndefined);\r\n };\r\n /**\r\n * Pause the sending (transmission) of events, this will cause all events to be batched only until the maximum limits are\r\n * hit at which point new events are dropped. Will also cause events to NOT be sent during page unload, so if Session storage\r\n * is disabled events will be lost.\r\n * SessionStorage Limit is 2000 events, In-Memory (Array) Storage is 10,000 events (can be configured via the eventsLimitInMem).\r\n */\r\n Sender.prototype.pause = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Resume the sending (transmission) of events, this will restart the timer and any batched events will be sent using the normal\r\n * send interval.\r\n */\r\n Sender.prototype.resume = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Flush to send data immediately; channel should default to sending data asynchronously. If executing asynchronously (the default) and\r\n * you DO NOT pass a callback function then a [IPromise](https://nevware21.github.io/ts-async/typedoc/interfaces/IPromise.html)\r\n * will be returned which will resolve once the flush is complete. The actual implementation of the `IPromise`\r\n * will be a native Promise (if supported) or the default as supplied by [ts-async library](https://github.com/nevware21/ts-async)\r\n * @param async - send data asynchronously when true\r\n * @param callBack - if specified, notify caller when send is complete, the channel should return true to indicate to the caller that it will be called.\r\n * If the caller doesn't return true the caller should assume that it may never be called.\r\n * @param sendReason - specify the reason that you are calling \"flush\" defaults to ManualFlush (1) if not specified\r\n * @returns - If a callback is provided `true` to indicate that callback will be called after the flush is complete otherwise the caller\r\n * should assume that any provided callback will never be called, Nothing or if occurring asynchronously a\r\n * [IPromise](https://nevware21.github.io/ts-async/typedoc/interfaces/IPromise.html) which will be resolved once the unload is complete,\r\n * the [IPromise](https://nevware21.github.io/ts-async/typedoc/interfaces/IPromise.html) will only be returned when no callback is provided\r\n * and async is true.\r\n */\r\n Sender.prototype.flush = function (async, callBack) {\r\n if (async === void 0) { async = true; }\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Flush the batched events synchronously (if possible -- based on configuration).\r\n * Will not flush if the Send has been paused.\r\n */\r\n Sender.prototype.onunloadFlush = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n Sender.prototype.initialize = function (config, core, extensions, pluginChain) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n Sender.prototype.processTelemetry = function (telemetryItem, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * xhr state changes\r\n * @deprecated\r\n * since version 3.2.0, if the payload is string[], this function is no-op (string[] is only used for backwards Compatibility)\r\n */\r\n Sender.prototype._xhrReadyStateChange = function (xhr, payload, countOfItemsInPayload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n // TODO: no-op\r\n // add note to users, this will be removed\r\n };\r\n /**\r\n * Trigger the immediate send of buffered data; If executing asynchronously (the default) this may (not required) return\r\n * an [IPromise](https://nevware21.github.io/ts-async/typedoc/interfaces/IPromise.html) that will resolve once the\r\n * send is complete. The actual implementation of the `IPromise` will be a native Promise (if supported) or the default\r\n * as supplied by [ts-async library](https://github.com/nevware21/ts-async)\r\n * @param async - Indicates if the events should be sent asynchronously\r\n * @param forcedSender - {SenderFunction} - Indicates the forcedSender, undefined if not passed\r\n * @returns - Nothing or optionally, if occurring asynchronously a [IPromise](https://nevware21.github.io/ts-async/typedoc/interfaces/IPromise.html)\r\n * which will be resolved (or reject) once the send is complete, the [IPromise](https://nevware21.github.io/ts-async/typedoc/interfaces/IPromise.html)\r\n * should only be returned when async is true.\r\n */\r\n Sender.prototype.triggerSend = function (async, forcedSender, sendReason) {\r\n if (async === void 0) { async = true; }\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * error handler\r\n * @Internal\r\n * since version 3.2.0, if the payload is string[], this function is no-op (string[] is only used for backwards Compatibility)\r\n */\r\n Sender.prototype._onError = function (payload, message, event) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * partial success handler\r\n * @Internal\r\n * since version 3.2.0, if the payload is string[], this function is no-op (string[] is only used for backwards Compatibility)\r\n */\r\n Sender.prototype._onPartialSuccess = function (payload, results) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * success handler\r\n * @Internal\r\n * since version 3.2.0, if the payload is string[], this function is no-op (string[] is only used for backwards Compatibility)\r\n */\r\n Sender.prototype._onSuccess = function (payload, countOfItemsInPayload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * xdr state changes\r\n * @deprecated\r\n * since version 3.2.0, if the payload is string[], this function is no-op (string[] is only used for backwards Compatibility)\r\n */\r\n Sender.prototype._xdrOnLoad = function (xdr, payload) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Add header to request\r\n * @param name - Header name.\r\n * @param value - Header value.\r\n */\r\n Sender.prototype.addHeader = function (name, value) {\r\n // @DynamicProtoStub - DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Check if there are no active requests being sent.\r\n * @returns True if idle, false otherwise.\r\n */\r\n Sender.prototype.isCompletelyIdle = function () {\r\n // @DynamicProtoStub - DO NOT add any code as this will be removed during packaging\r\n return false;\r\n };\r\n /**\r\n * Get Offline Serializer support\r\n * @returns internal Offline Serializer object\r\n */\r\n Sender.prototype.getOfflineSupport = function () {\r\n // @DynamicProtoStub - DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Get Offline listener\r\n * @returns offlineListener\r\n * @since 3.3.4\r\n */\r\n Sender.prototype.getOfflineListener = function () {\r\n // @DynamicProtoStub - DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n return Sender;\r\n}(BaseTelemetryPlugin));\r\nexport { Sender };\r\n//# sourceMappingURL=Sender.js.map","import dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { _throwInternal, getJSON, isArray, isFunction, isObject, objForEachKey } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_LENGTH, _DYN_PUSH, _DYN_SERIALIZE, _DYN_STRINGIFY, _DYN_TO_STRING } from \"./__DynamicConstants\";\r\nvar Serializer = /** @class */ (function () {\r\n function Serializer(logger) {\r\n dynamicProto(Serializer, this, function (_self) {\r\n /**\r\n * Serializes the current object to a JSON string.\r\n */\r\n _self[_DYN_SERIALIZE /* @min:%2eserialize */] = function (input) {\r\n var output = _serializeObject(input, \"root\");\r\n try {\r\n return getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](output);\r\n }\r\n catch (e) {\r\n // if serialization fails return an empty string\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.CannotSerializeObject */, (e && isFunction(e[_DYN_TO_STRING /* @min:%2etoString */])) ? e[_DYN_TO_STRING /* @min:%2etoString */]() : \"Error serializing object\", null, true);\r\n }\r\n };\r\n function _serializeObject(source, name) {\r\n var circularReferenceCheck = \"__aiCircularRefCheck\";\r\n var output = {};\r\n if (!source) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.CannotSerializeObject */, \"cannot serialize object because it is null or undefined\", { name: name }, true);\r\n return output;\r\n }\r\n if (source[circularReferenceCheck]) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 50 /* _eInternalMessageId.CircularReferenceDetected */, \"Circular reference detected while serializing object\", { name: name }, true);\r\n return output;\r\n }\r\n if (!source.aiDataContract) {\r\n // special case for measurements/properties/tags\r\n if (name === \"measurements\") {\r\n output = _serializeStringMap(source, \"number\", name);\r\n }\r\n else if (name === \"properties\") {\r\n output = _serializeStringMap(source, \"string\", name);\r\n }\r\n else if (name === \"tags\") {\r\n output = _serializeStringMap(source, \"string\", name);\r\n }\r\n else if (isArray(source)) {\r\n output = _serializeArray(source, name);\r\n }\r\n else {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 49 /* _eInternalMessageId.CannotSerializeObjectNonSerializable */, \"Attempting to serialize an object which does not implement ISerializable\", { name: name }, true);\r\n try {\r\n // verify that the object can be stringified\r\n getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](source);\r\n output = source;\r\n }\r\n catch (e) {\r\n // if serialization fails return an empty string\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.CannotSerializeObject */, (e && isFunction(e[_DYN_TO_STRING /* @min:%2etoString */])) ? e[_DYN_TO_STRING /* @min:%2etoString */]() : \"Error serializing object\", null, true);\r\n }\r\n }\r\n return output;\r\n }\r\n source[circularReferenceCheck] = true;\r\n objForEachKey(source.aiDataContract, function (field, contract) {\r\n var isRequired = (isFunction(contract)) ? (contract() & 1 /* FieldType.Required */) : (contract & 1 /* FieldType.Required */);\r\n var isHidden = (isFunction(contract)) ? (contract() & 4 /* FieldType.Hidden */) : (contract & 4 /* FieldType.Hidden */);\r\n var isArray = contract & 2 /* FieldType.Array */;\r\n var isPresent = source[field] !== undefined;\r\n var isObj = isObject(source[field]) && source[field] !== null;\r\n if (isRequired && !isPresent && !isArray) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 24 /* _eInternalMessageId.MissingRequiredFieldSpecification */, \"Missing required field specification. The field is required but not present on source\", { field: field, name: name });\r\n // If not in debug mode, continue and hope the error is permissible\r\n }\r\n else if (!isHidden) { // Don't serialize hidden fields\r\n var value = void 0;\r\n if (isObj) {\r\n if (isArray) {\r\n // special case; recurse on each object in the source array\r\n value = _serializeArray(source[field], field);\r\n }\r\n else {\r\n // recurse on the source object in this field\r\n value = _serializeObject(source[field], field);\r\n }\r\n }\r\n else {\r\n // assign the source field to the output even if undefined or required\r\n value = source[field];\r\n }\r\n // only emit this field if the value is defined\r\n if (value !== undefined) {\r\n output[field] = value;\r\n }\r\n }\r\n });\r\n delete source[circularReferenceCheck];\r\n return output;\r\n }\r\n function _serializeArray(sources, name) {\r\n var output;\r\n if (!!sources) {\r\n if (!isArray(sources)) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 54 /* _eInternalMessageId.ItemNotInArray */, \"This field was specified as an array in the contract but the item is not an array.\\r\\n\", { name: name }, true);\r\n }\r\n else {\r\n output = [];\r\n for (var i = 0; i < sources[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n var source = sources[i];\r\n var item = _serializeObject(source, name + \"[\" + i + \"]\");\r\n output[_DYN_PUSH /* @min:%2epush */](item);\r\n }\r\n }\r\n }\r\n return output;\r\n }\r\n function _serializeStringMap(map, expectedType, name) {\r\n var output;\r\n if (map) {\r\n output = {};\r\n objForEachKey(map, function (field, value) {\r\n if (expectedType === \"string\") {\r\n if (value === undefined) {\r\n output[field] = \"undefined\";\r\n }\r\n else if (value === null) {\r\n output[field] = \"null\";\r\n }\r\n else if (!value[_DYN_TO_STRING /* @min:%2etoString */]) {\r\n output[field] = \"invalid field: toString() is not defined.\";\r\n }\r\n else {\r\n output[field] = value[_DYN_TO_STRING /* @min:%2etoString */]();\r\n }\r\n }\r\n else if (expectedType === \"number\") {\r\n if (value === undefined) {\r\n output[field] = \"undefined\";\r\n }\r\n else if (value === null) {\r\n output[field] = \"null\";\r\n }\r\n else {\r\n var num = parseFloat(value);\r\n output[field] = num;\r\n }\r\n }\r\n else {\r\n output[field] = \"invalid field: \" + name + \" is of unknown type.\";\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, output[field], null, true);\r\n }\r\n });\r\n }\r\n return output;\r\n }\r\n });\r\n }\r\n /**\r\n * Serializes the current object to a JSON string.\r\n */\r\n Serializer.prototype.serialize = function (input) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n return Serializer;\r\n}());\r\nexport { Serializer };\r\n//# sourceMappingURL=Serializer.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { _DYN_CONCAT, _DYN_LENGTH } from \"../../__DynamicConstants\";\r\n// (Magic number) DJB algorithm can't work on shorter strings (results in poor distribution\r\nvar MIN_INPUT_LENGTH = 8;\r\nvar HashCodeScoreGenerator = /** @class */ (function () {\r\n function HashCodeScoreGenerator() {\r\n }\r\n HashCodeScoreGenerator.prototype.getHashCodeScore = function (key) {\r\n var score = this.getHashCode(key) / HashCodeScoreGenerator.INT_MAX_VALUE;\r\n return score * 100;\r\n };\r\n HashCodeScoreGenerator.prototype.getHashCode = function (input) {\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n while (input[_DYN_LENGTH /* @min:%2elength */] < MIN_INPUT_LENGTH) {\r\n input = input[_DYN_CONCAT /* @min:%2econcat */](input);\r\n }\r\n // 5381 is a magic number: http://stackoverflow.com/questions/10696223/reason-for-5381-number-in-djb-hash-function\r\n var hash = 5381;\r\n for (var i = 0; i < input[_DYN_LENGTH /* @min:%2elength */]; ++i) {\r\n hash = ((hash << 5) + hash) + input.charCodeAt(i);\r\n // 'hash' is of number type which means 53 bit integer (http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types-number-type)\r\n // 'hash & hash' will keep it 32 bit integer - just to make it clearer what the result is.\r\n hash = hash & hash;\r\n }\r\n return Math.abs(hash);\r\n };\r\n // We're using 32 bit math, hence max value is (2^31 - 1)\r\n HashCodeScoreGenerator.INT_MAX_VALUE = 2147483647;\r\n return HashCodeScoreGenerator;\r\n}());\r\nexport { HashCodeScoreGenerator };\r\n//# sourceMappingURL=HashCodeScoreGenerator.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { ContextTagKeys } from \"@microsoft/applicationinsights-common\";\r\nimport { _DYN_GET_HASH_CODE_SCORE, _DYN_GET_SAMPLING_SCORE, _DYN_TAGS, _DYN_TRACE_ID } from \"../../__DynamicConstants\";\r\nimport { HashCodeScoreGenerator } from \"./HashCodeScoreGenerator\";\r\nvar SamplingScoreGenerator = /** @class */ (function () {\r\n function SamplingScoreGenerator() {\r\n var _self = this;\r\n var hashCodeGenerator = new HashCodeScoreGenerator();\r\n var keys = new ContextTagKeys();\r\n _self[_DYN_GET_SAMPLING_SCORE /* @min:%2egetSamplingScore */] = function (item) {\r\n var score = 0;\r\n if (item[_DYN_TAGS /* @min:%2etags */] && item[_DYN_TAGS /* @min:%2etags */][keys.userId]) { // search in tags first, then ext\r\n score = hashCodeGenerator.getHashCodeScore(item[_DYN_TAGS /* @min:%2etags */][keys.userId]);\r\n }\r\n else if (item.ext && item.ext.user && item.ext.user.id) {\r\n score = hashCodeGenerator[_DYN_GET_HASH_CODE_SCORE /* @min:%2egetHashCodeScore */](item.ext.user.id);\r\n }\r\n else if (item[_DYN_TAGS /* @min:%2etags */] && item[_DYN_TAGS /* @min:%2etags */][keys.operationId]) { // search in tags first, then ext\r\n score = hashCodeGenerator.getHashCodeScore(item[_DYN_TAGS /* @min:%2etags */][keys.operationId]);\r\n }\r\n else if (item.ext && item.ext.telemetryTrace && item.ext.telemetryTrace[_DYN_TRACE_ID /* @min:%2etraceID */]) {\r\n score = hashCodeGenerator.getHashCodeScore(item.ext.telemetryTrace[_DYN_TRACE_ID /* @min:%2etraceID */]);\r\n }\r\n else {\r\n // tslint:disable-next-line:insecure-random\r\n score = (Math.random() * 100);\r\n }\r\n return score;\r\n };\r\n }\r\n return SamplingScoreGenerator;\r\n}());\r\nexport { SamplingScoreGenerator };\r\n//# sourceMappingURL=SamplingScoreGenerator.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { Metric } from \"@microsoft/applicationinsights-common\";\r\nimport { safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_DATA_TYPE, _DYN_GET_SAMPLING_SCORE, _DYN_SAMPLE_RATE } from \"../__DynamicConstants\";\r\nimport { SamplingScoreGenerator } from \"./SamplingScoreGenerators/SamplingScoreGenerator\";\r\nvar Sample = /** @class */ (function () {\r\n function Sample(sampleRate, logger) {\r\n // We're using 32 bit math, hence max value is (2^31 - 1)\r\n this.INT_MAX_VALUE = 2147483647;\r\n var _logger = logger || safeGetLogger(null);\r\n if (sampleRate > 100 || sampleRate < 0) {\r\n _logger.throwInternal(2 /* eLoggingSeverity.WARNING */, 58 /* _eInternalMessageId.SampleRateOutOfRange */, \"Sampling rate is out of range (0..100). Sampling will be disabled, you may be sending too much data which may affect your AI service level.\", { samplingRate: sampleRate }, true);\r\n sampleRate = 100;\r\n }\r\n this[_DYN_SAMPLE_RATE /* @min:%2esampleRate */] = sampleRate;\r\n this.samplingScoreGenerator = new SamplingScoreGenerator();\r\n }\r\n /**\r\n * Determines if an envelope is sampled in (i.e. will be sent) or not (i.e. will be dropped).\r\n */\r\n Sample.prototype.isSampledIn = function (envelope) {\r\n var samplingPercentage = this[_DYN_SAMPLE_RATE /* @min:%2esampleRate */]; // 0 - 100\r\n var isSampledIn = false;\r\n if (samplingPercentage === null || samplingPercentage === undefined || samplingPercentage >= 100) {\r\n return true;\r\n }\r\n else if (envelope.baseType === Metric[_DYN_DATA_TYPE /* @min:%2edataType */]) {\r\n // exclude MetricData telemetry from sampling\r\n return true;\r\n }\r\n isSampledIn = this.samplingScoreGenerator[_DYN_GET_SAMPLING_SCORE /* @min:%2egetSamplingScore */](envelope) < samplingPercentage;\r\n return isSampledIn;\r\n };\r\n return Sample;\r\n}());\r\nexport { Sample };\r\n//# sourceMappingURL=Sample.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { arrReduce, objKeys, strEndsWith } from \"@microsoft/applicationinsights-core-js\";\r\nimport { DEFAULT_BREEZE_ENDPOINT } from \"./Constants\";\r\nimport { _DYN_INGESTIONENDPOINT, _DYN_LENGTH, _DYN_SPLIT, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\nvar _FIELDS_SEPARATOR = \";\";\r\nvar _FIELD_KEY_VALUE_SEPARATOR = \"=\";\r\nexport function parseConnectionString(connectionString) {\r\n if (!connectionString) {\r\n return {};\r\n }\r\n var kvPairs = connectionString[_DYN_SPLIT /* @min:%2esplit */](_FIELDS_SEPARATOR);\r\n var result = arrReduce(kvPairs, function (fields, kv) {\r\n var kvParts = kv[_DYN_SPLIT /* @min:%2esplit */](_FIELD_KEY_VALUE_SEPARATOR);\r\n if (kvParts[_DYN_LENGTH /* @min:%2elength */] === 2) { // only save fields with valid formats\r\n var key = kvParts[0][_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n var value = kvParts[1];\r\n fields[key] = value;\r\n }\r\n return fields;\r\n }, {});\r\n if (objKeys(result)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // this is a valid connection string, so parse the results\r\n if (result.endpointsuffix) {\r\n // apply the default endpoints\r\n var locationPrefix = result.location ? result.location + \".\" : \"\";\r\n result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] = result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] || (\"https://\" + locationPrefix + \"dc.\" + result.endpointsuffix);\r\n }\r\n // apply user override endpoint or the default endpoints\r\n result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] = result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] || DEFAULT_BREEZE_ENDPOINT;\r\n if (strEndsWith(result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */], \"/\")) {\r\n result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] = result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */].slice(0, -1);\r\n }\r\n }\r\n return result;\r\n}\r\nexport var ConnectionStringParser = {\r\n parse: parseConnectionString\r\n};\r\n//# sourceMappingURL=ConnectionStringParser.js.map","var _a, _b;\r\nimport { arrForEach, arrIndexOf, dumpObj, getDocument, getLazy, getNavigator, isArray, isFunction, isNullOrUndefined, isString, isTruthy, isUndefined, objForEachKey, strEndsWith, strIndexOf, strLeft, strSubstring, strTrim, utcNow } from \"@nevware21/ts-utils\";\r\nimport { cfgDfMerge } from \"../Config/ConfigDefaultHelpers\";\r\nimport { createDynamicConfig, onConfigChange } from \"../Config/DynamicConfig\";\r\nimport { _DYN_ENABLED, _DYN_LENGTH, _DYN_LOGGER, _DYN_PROTOCOL, _DYN_SET_DF, _DYN_SPLIT, _DYN_UNLOAD, _DYN_USER_AGENT } from \"../__DynamicConstants\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nimport { getLocation, isIE } from \"./EnvUtils\";\r\nimport { getExceptionName, isNotNullOrUndefined, setValue, strContains } from \"./HelperFuncs\";\r\nimport { STR_DOMAIN, STR_EMPTY, STR_PATH, UNDEFINED_VALUE } from \"./InternalConstants\";\r\nvar strToGMTString = \"toGMTString\";\r\nvar strToUTCString = \"toUTCString\";\r\nvar strCookie = \"cookie\";\r\nvar strExpires = \"expires\";\r\nvar strIsCookieUseDisabled = \"isCookieUseDisabled\";\r\nvar strDisableCookiesUsage = \"disableCookiesUsage\";\r\nvar strConfigCookieMgr = \"_ckMgr\";\r\nvar _supportsCookies = null;\r\nvar _allowUaSameSite = null;\r\nvar _parsedCookieValue = null;\r\nvar _doc;\r\nvar _cookieCache = {};\r\nvar _globalCookieConfig = {};\r\n// // `isCookieUseDisabled` is deprecated, so explicitly casting as a key of IConfiguration to avoid typing error\r\n// // when both isCookieUseDisabled and disableCookiesUsage are used disableCookiesUsage will take precedent, which is\r\n// // why its listed first\r\n/**\r\n * Set the supported dynamic config values as undefined (or an empty object) so that\r\n * any listeners will be informed of any changes.\r\n * Explicitly NOT including the deprecated `isCookieUseDisabled` as we don't want to support\r\n * the v1 deprecated field as dynamic for updates\r\n */\r\nvar rootDefaultConfig = (_a = {\r\n cookieCfg: cfgDfMerge((_b = {},\r\n _b[STR_DOMAIN] = { fb: \"cookieDomain\", dfVal: isNotNullOrUndefined },\r\n _b.path = { fb: \"cookiePath\", dfVal: isNotNullOrUndefined },\r\n _b.enabled = UNDEFINED_VALUE,\r\n _b.ignoreCookies = UNDEFINED_VALUE,\r\n _b.blockedCookies = UNDEFINED_VALUE,\r\n _b)),\r\n cookieDomain: UNDEFINED_VALUE,\r\n cookiePath: UNDEFINED_VALUE\r\n },\r\n _a[strDisableCookiesUsage] = UNDEFINED_VALUE,\r\n _a);\r\nfunction _getDoc() {\r\n !_doc && (_doc = getLazy(function () { return getDocument(); }));\r\n}\r\n/**\r\n * @ignore\r\n * DO NOT USE or export from the module, this is exposed as public to support backward compatibility of previous static utility methods only.\r\n * If you want to manager cookies either use the ICookieMgr available from the core instance via getCookieMgr() or create\r\n * your own instance of the CookieMgr and use that.\r\n * Using this directly for enabling / disabling cookie handling will not only affect your usage but EVERY user of cookies.\r\n * Example, if you are using a shared component that is also using Application Insights you will affect their cookie handling.\r\n * @param logger - The DiagnosticLogger to use for reporting errors.\r\n */\r\nfunction _gblCookieMgr(config, logger) {\r\n // Stash the global instance against the BaseCookieMgr class\r\n var inst = createCookieMgr[strConfigCookieMgr] || _globalCookieConfig[strConfigCookieMgr];\r\n if (!inst) {\r\n // Note: not using the getSetValue() helper as that would require always creating a temporary cookieMgr\r\n // that ultimately is never used\r\n inst = createCookieMgr[strConfigCookieMgr] = createCookieMgr(config, logger);\r\n _globalCookieConfig[strConfigCookieMgr] = inst;\r\n }\r\n return inst;\r\n}\r\nfunction _isMgrEnabled(cookieMgr) {\r\n if (cookieMgr) {\r\n return cookieMgr.isEnabled();\r\n }\r\n return true;\r\n}\r\nfunction _isIgnoredCookie(cookieMgrCfg, name) {\r\n if (name && cookieMgrCfg && isArray(cookieMgrCfg.ignoreCookies)) {\r\n return arrIndexOf(cookieMgrCfg.ignoreCookies, name) !== -1;\r\n }\r\n return false;\r\n}\r\nfunction _isBlockedCookie(cookieMgrCfg, name) {\r\n if (name && cookieMgrCfg && isArray(cookieMgrCfg.blockedCookies)) {\r\n if (arrIndexOf(cookieMgrCfg.blockedCookies, name) !== -1) {\r\n return true;\r\n }\r\n }\r\n return _isIgnoredCookie(cookieMgrCfg, name);\r\n}\r\nfunction _isCfgEnabled(rootConfig, cookieMgrConfig) {\r\n var isCfgEnabled = cookieMgrConfig[_DYN_ENABLED /* @min:%2eenabled */];\r\n if (isNullOrUndefined(isCfgEnabled)) {\r\n // Set the enabled from the provided setting or the legacy root values\r\n var cookieEnabled = void 0;\r\n // This field is deprecated and dynamic updates will not be fully supported\r\n if (!isUndefined(rootConfig[strIsCookieUseDisabled])) {\r\n cookieEnabled = !rootConfig[strIsCookieUseDisabled];\r\n }\r\n // If this value is defined it takes precedent over the above\r\n if (!isUndefined(rootConfig[strDisableCookiesUsage])) {\r\n cookieEnabled = !rootConfig[strDisableCookiesUsage];\r\n }\r\n // Not setting the cookieMgrConfig.enabled as that will update (set) the global dynamic config\r\n // So future \"updates\" then may not be as expected\r\n isCfgEnabled = cookieEnabled;\r\n }\r\n return isCfgEnabled;\r\n}\r\n/**\r\n * Helper to return the ICookieMgr from the core (if not null/undefined) or a default implementation\r\n * associated with the configuration or a legacy default.\r\n * @param core\r\n * @param config\r\n * @returns\r\n */\r\nexport function safeGetCookieMgr(core, config) {\r\n var cookieMgr;\r\n if (core) {\r\n // Always returns an instance\r\n cookieMgr = core.getCookieMgr();\r\n }\r\n else if (config) {\r\n var cookieCfg = config.cookieCfg;\r\n if (cookieCfg && cookieCfg[strConfigCookieMgr]) {\r\n cookieMgr = cookieCfg[strConfigCookieMgr];\r\n }\r\n else {\r\n cookieMgr = createCookieMgr(config);\r\n }\r\n }\r\n if (!cookieMgr) {\r\n // Get or initialize the default global (legacy) cookie manager if we couldn't find one\r\n cookieMgr = _gblCookieMgr(config, (core || {})[_DYN_LOGGER /* @min:%2elogger */]);\r\n }\r\n return cookieMgr;\r\n}\r\nexport function createCookieMgr(rootConfig, logger) {\r\n var _a;\r\n var cookieMgrConfig;\r\n var _path;\r\n var _domain;\r\n var unloadHandler;\r\n // Explicitly checking against false, so that setting to undefined will === true\r\n var _enabled;\r\n var _getCookieFn;\r\n var _setCookieFn;\r\n var _delCookieFn;\r\n // Make sure the root config is dynamic as it may be the global config\r\n rootConfig = createDynamicConfig(rootConfig || _globalCookieConfig, null, logger).cfg;\r\n // Will get recalled if the referenced configuration is changed\r\n unloadHandler = onConfigChange(rootConfig, function (details) {\r\n // Make sure the root config has all of the the defaults to the root config to ensure they are dynamic\r\n details[_DYN_SET_DF /* @min:%2esetDf */](details.cfg, rootDefaultConfig);\r\n // Create and apply the defaults to the cookieCfg element\r\n cookieMgrConfig = details.ref(details.cfg, \"cookieCfg\"); // details.setDf(details.cfg.cookieCfg, defaultConfig);\r\n _path = cookieMgrConfig[STR_PATH /* @min:%2epath */] || \"/\";\r\n _domain = cookieMgrConfig[STR_DOMAIN /* @min:%2edomain */];\r\n // Explicitly checking against false, so that setting to undefined will === true\r\n _enabled = _isCfgEnabled(rootConfig, cookieMgrConfig) !== false;\r\n _getCookieFn = cookieMgrConfig.getCookie || _getCookieValue;\r\n _setCookieFn = cookieMgrConfig.setCookie || _setCookieValue;\r\n _delCookieFn = cookieMgrConfig.delCookie || _setCookieValue;\r\n }, logger);\r\n var cookieMgr = (_a = {\r\n isEnabled: function () {\r\n var enabled = _isCfgEnabled(rootConfig, cookieMgrConfig) !== false && _enabled && areCookiesSupported(logger);\r\n // Using an indirect lookup for any global cookie manager to support tree shaking for SDK's\r\n // that don't use the \"applicationinsights-core\" version of the default cookie function\r\n var gblManager = _globalCookieConfig[strConfigCookieMgr];\r\n if (enabled && gblManager && cookieMgr !== gblManager) {\r\n // Make sure the GlobalCookie Manager instance (if not this instance) is also enabled.\r\n // As the global (deprecated) functions may have been called (for backward compatibility)\r\n enabled = _isMgrEnabled(gblManager);\r\n }\r\n return enabled;\r\n },\r\n setEnabled: function (value) {\r\n // Explicitly checking against false, so that setting to undefined will === true\r\n _enabled = value !== false;\r\n cookieMgrConfig[_DYN_ENABLED /* @min:%2eenabled */] = value;\r\n },\r\n set: function (name, value, maxAgeSec, domain, path) {\r\n var result = false;\r\n if (_isMgrEnabled(cookieMgr) && !_isBlockedCookie(cookieMgrConfig, name)) {\r\n var values = {};\r\n var theValue = strTrim(value || STR_EMPTY);\r\n var idx = strIndexOf(theValue, \";\");\r\n if (idx !== -1) {\r\n theValue = strTrim(strLeft(value, idx));\r\n values = _extractParts(strSubstring(value, idx + 1));\r\n }\r\n // Only update domain if not already present (isUndefined) and the value is truthy (not null, undefined or empty string)\r\n setValue(values, STR_DOMAIN, domain || _domain, isTruthy, isUndefined);\r\n if (!isNullOrUndefined(maxAgeSec)) {\r\n var _isIE = isIE();\r\n if (isUndefined(values[strExpires])) {\r\n var nowMs = utcNow();\r\n // Only add expires if not already present\r\n var expireMs = nowMs + (maxAgeSec * 1000);\r\n // Sanity check, if zero or -ve then ignore\r\n if (expireMs > 0) {\r\n var expiry = new Date();\r\n expiry.setTime(expireMs);\r\n setValue(values, strExpires, _formatDate(expiry, !_isIE ? strToUTCString : strToGMTString) || _formatDate(expiry, _isIE ? strToGMTString : strToUTCString) || STR_EMPTY, isTruthy);\r\n }\r\n }\r\n if (!_isIE) {\r\n // Only replace if not already present\r\n setValue(values, \"max-age\", STR_EMPTY + maxAgeSec, null, isUndefined);\r\n }\r\n }\r\n var location_1 = getLocation();\r\n if (location_1 && location_1[_DYN_PROTOCOL /* @min:%2eprotocol */] === \"https:\") {\r\n setValue(values, \"secure\", null, null, isUndefined);\r\n // Only set same site if not also secure\r\n if (_allowUaSameSite === null) {\r\n _allowUaSameSite = !uaDisallowsSameSiteNone((getNavigator() || {})[_DYN_USER_AGENT /* @min:%2euserAgent */]);\r\n }\r\n if (_allowUaSameSite) {\r\n setValue(values, \"SameSite\", \"None\", null, isUndefined);\r\n }\r\n }\r\n setValue(values, STR_PATH, path || _path, null, isUndefined);\r\n //let setCookieFn = cookieMgrConfig.setCookie || _setCookieValue;\r\n _setCookieFn(name, _formatCookieValue(theValue, values));\r\n result = true;\r\n }\r\n return result;\r\n },\r\n get: function (name) {\r\n var value = STR_EMPTY;\r\n if (_isMgrEnabled(cookieMgr) && !_isIgnoredCookie(cookieMgrConfig, name)) {\r\n value = _getCookieFn(name);\r\n }\r\n return value;\r\n },\r\n del: function (name, path) {\r\n var result = false;\r\n if (_isMgrEnabled(cookieMgr)) {\r\n // Only remove the cookie if the manager and cookie support has not been disabled\r\n result = cookieMgr.purge(name, path);\r\n }\r\n return result;\r\n },\r\n purge: function (name, path) {\r\n var _a;\r\n var result = false;\r\n if (areCookiesSupported(logger)) {\r\n // Setting the expiration date in the past immediately removes the cookie\r\n var values = (_a = {},\r\n _a[STR_PATH] = path ? path : \"/\",\r\n _a[strExpires] = \"Thu, 01 Jan 1970 00:00:01 GMT\",\r\n _a);\r\n if (!isIE()) {\r\n // Set max age to expire now\r\n values[\"max-age\"] = \"0\";\r\n }\r\n // let delCookie = cookieMgrConfig.delCookie || _setCookieValue;\r\n _delCookieFn(name, _formatCookieValue(STR_EMPTY, values));\r\n result = true;\r\n }\r\n return result;\r\n }\r\n },\r\n _a[_DYN_UNLOAD /* @min:unload */] = function (isAsync) {\r\n unloadHandler && unloadHandler.rm();\r\n unloadHandler = null;\r\n },\r\n _a);\r\n // Associated this cookie manager with the config\r\n cookieMgr[strConfigCookieMgr] = cookieMgr;\r\n return cookieMgr;\r\n}\r\n/*\r\n* Helper method to tell if document.cookie object is supported by the runtime\r\n*/\r\nexport function areCookiesSupported(logger) {\r\n if (_supportsCookies === null) {\r\n _supportsCookies = false;\r\n !_doc && _getDoc();\r\n try {\r\n var doc = _doc.v || {};\r\n _supportsCookies = doc[strCookie] !== undefined;\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 68 /* _eInternalMessageId.CannotAccessCookie */, \"Cannot access document.cookie - \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return _supportsCookies;\r\n}\r\nfunction _extractParts(theValue) {\r\n var values = {};\r\n if (theValue && theValue[_DYN_LENGTH /* @min:%2elength */]) {\r\n var parts = strTrim(theValue)[_DYN_SPLIT /* @min:%2esplit */](\";\");\r\n arrForEach(parts, function (thePart) {\r\n thePart = strTrim(thePart || STR_EMPTY);\r\n if (thePart) {\r\n var idx = strIndexOf(thePart, \"=\");\r\n if (idx === -1) {\r\n values[thePart] = null;\r\n }\r\n else {\r\n values[strTrim(strLeft(thePart, idx))] = strTrim(strSubstring(thePart, idx + 1));\r\n }\r\n }\r\n });\r\n }\r\n return values;\r\n}\r\nfunction _formatDate(theDate, func) {\r\n if (isFunction(theDate[func])) {\r\n return theDate[func]();\r\n }\r\n return null;\r\n}\r\nfunction _formatCookieValue(value, values) {\r\n var cookieValue = value || STR_EMPTY;\r\n objForEachKey(values, function (name, theValue) {\r\n cookieValue += \"; \" + name + (!isNullOrUndefined(theValue) ? \"=\" + theValue : STR_EMPTY);\r\n });\r\n return cookieValue;\r\n}\r\nfunction _getCookieValue(name) {\r\n var cookieValue = STR_EMPTY;\r\n !_doc && _getDoc();\r\n if (_doc.v) {\r\n var theCookie = _doc.v[strCookie] || STR_EMPTY;\r\n if (_parsedCookieValue !== theCookie) {\r\n _cookieCache = _extractParts(theCookie);\r\n _parsedCookieValue = theCookie;\r\n }\r\n cookieValue = strTrim(_cookieCache[name] || STR_EMPTY);\r\n }\r\n return cookieValue;\r\n}\r\nfunction _setCookieValue(name, cookieValue) {\r\n !_doc && _getDoc();\r\n if (_doc.v) {\r\n _doc.v[strCookie] = name + \"=\" + cookieValue;\r\n }\r\n}\r\nexport function uaDisallowsSameSiteNone(userAgent) {\r\n if (!isString(userAgent)) {\r\n return false;\r\n }\r\n // Cover all iOS based browsers here. This includes:\r\n // - Safari on iOS 12 for iPhone, iPod Touch, iPad\r\n // - WkWebview on iOS 12 for iPhone, iPod Touch, iPad\r\n // - Chrome on iOS 12 for iPhone, iPod Touch, iPad\r\n // All of which are broken by SameSite=None, because they use the iOS networking stack\r\n if (strContains(userAgent, \"CPU iPhone OS 12\") || strContains(userAgent, \"iPad; CPU OS 12\")) {\r\n return true;\r\n }\r\n // Cover Mac OS X based browsers that use the Mac OS networking stack. This includes:\r\n // - Safari on Mac OS X\r\n // This does not include:\r\n // - Internal browser on Mac OS X\r\n // - Chrome on Mac OS X\r\n // - Chromium on Mac OS X\r\n // Because they do not use the Mac OS networking stack.\r\n if (strContains(userAgent, \"Macintosh; Intel Mac OS X 10_14\") && strContains(userAgent, \"Version/\") && strContains(userAgent, \"Safari\")) {\r\n return true;\r\n }\r\n // Cover Mac OS X internal browsers that use the Mac OS networking stack. This includes:\r\n // - Internal browser on Mac OS X\r\n // This does not include:\r\n // - Safari on Mac OS X\r\n // - Chrome on Mac OS X\r\n // - Chromium on Mac OS X\r\n // Because they do not use the Mac OS networking stack.\r\n if (strContains(userAgent, \"Macintosh; Intel Mac OS X 10_14\") && strEndsWith(userAgent, \"AppleWebKit/605.1.15 (KHTML, like Gecko)\")) {\r\n return true;\r\n }\r\n // Cover Chrome 50-69, because some versions are broken by SameSite=None, and none in this range require it.\r\n // Note: this covers some pre-Chromium Edge versions, but pre-Chromim Edge does not require SameSite=None, so this is fine.\r\n // Note: this regex applies to Windows, Mac OS X, and Linux, deliberately.\r\n if (strContains(userAgent, \"Chrome/5\") || strContains(userAgent, \"Chrome/6\")) {\r\n return true;\r\n }\r\n // Unreal Engine runs Chromium 59, but does not advertise as Chrome until 4.23. Treat versions of Unreal\r\n // that don't specify their Chrome version as lacking support for SameSite=None.\r\n if (strContains(userAgent, \"UnrealEngine\") && !strContains(userAgent, \"Chrome\")) {\r\n return true;\r\n }\r\n // UCBrowser < 12.13.2 ignores Set-Cookie headers with SameSite=None\r\n // NB: this rule isn't complete - you need regex to make a complete rule.\r\n // See: https://www.chromium.org/updates/same-site/incompatible-clients\r\n if (strContains(userAgent, \"UCBrowser/12\") || strContains(userAgent, \"UCBrowser/11\")) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n//# sourceMappingURL=CookieMgr.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { createAllPromise, createPromise, doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { arrForEach, arrIndexOf, objDefine, safe, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { createDynamicConfig } from \"../Config/DynamicConfig\";\r\nimport { _DYN_ADD_NOTIFICATION_LIS1, _DYN_CANCEL, _DYN_DATA, _DYN_IS_ASYNC, _DYN_IS_CHILD_EVT, _DYN_LENGTH, _DYN_PUSH, _DYN_REMOVE_NOTIFICATION_0, _DYN_SPLICE, _DYN_UNLOAD, _DYN_WATCH } from \"../__DynamicConstants\";\r\nimport { STR_EVENTS_DISCARDED, STR_EVENTS_SEND_REQUEST, STR_EVENTS_SENT, STR_OFFLINE_DROP, STR_OFFLINE_SENT, STR_OFFLINE_STORE, STR_PERF_EVENT } from \"./InternalConstants\";\r\nvar defaultValues = {\r\n perfEvtsSendAll: false\r\n};\r\nfunction _runScheduledListeners(asyncNotifications) {\r\n asyncNotifications.h = null;\r\n var callbacks = asyncNotifications.cb;\r\n asyncNotifications.cb = [];\r\n arrForEach(callbacks, function (cb) {\r\n // Run the listener in a try-catch to ensure that a single listener failing doesn't prevent the others from running\r\n safe(cb.fn, [cb.arg]);\r\n });\r\n}\r\n// This function is used to combine the logic of running the listeners and handling the async notifications so that they don't\r\n// create multiple timers if there are multiple async listeners.\r\nfunction _runListeners(listeners, name, asyncNotifications, callback) {\r\n arrForEach(listeners, function (listener) {\r\n if (listener && listener[name]) {\r\n if (asyncNotifications) {\r\n // Schedule the callback to be called after the current call stack has cleared.\r\n asyncNotifications.cb[_DYN_PUSH /* @min:%2epush */]({\r\n fn: callback,\r\n arg: listener\r\n });\r\n asyncNotifications.h = asyncNotifications.h || scheduleTimeout(_runScheduledListeners, 0, asyncNotifications);\r\n }\r\n else {\r\n // Run the listener in a try-catch to ensure that a single listener failing doesn't prevent the others from running\r\n safe(callback, [listener]);\r\n }\r\n }\r\n });\r\n}\r\n/**\r\n * Class to manage sending notifications to all the listeners.\r\n */\r\nvar NotificationManager = /** @class */ (function () {\r\n function NotificationManager(config) {\r\n this.listeners = [];\r\n var perfEvtsSendAll;\r\n var unloadHandler;\r\n var _listeners = [];\r\n var _asyncNotifications = {\r\n h: null,\r\n cb: []\r\n };\r\n var cfgHandler = createDynamicConfig(config, defaultValues);\r\n unloadHandler = cfgHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n perfEvtsSendAll = !!details.cfg.perfEvtsSendAll;\r\n });\r\n dynamicProto(NotificationManager, this, function (_self) {\r\n objDefine(_self, \"listeners\", {\r\n g: function () { return _listeners; }\r\n });\r\n _self[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */] = function (listener) {\r\n _listeners[_DYN_PUSH /* @min:%2epush */](listener);\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param listener - AWTNotificationListener to remove.\r\n */\r\n _self[_DYN_REMOVE_NOTIFICATION_0 /* @min:%2eremoveNotificationListener */] = function (listener) {\r\n var index = arrIndexOf(_listeners, listener);\r\n while (index > -1) {\r\n _listeners[_DYN_SPLICE /* @min:%2esplice */](index, 1);\r\n index = arrIndexOf(_listeners, listener);\r\n }\r\n };\r\n /**\r\n * Notification for events sent.\r\n * @param events - The array of events that have been sent.\r\n */\r\n _self[STR_EVENTS_SENT /* @min:%2eeventsSent */] = function (events) {\r\n _runListeners(_listeners, STR_EVENTS_SENT, _asyncNotifications, function (listener) {\r\n listener[STR_EVENTS_SENT /* @min:%2eeventsSent */](events);\r\n });\r\n };\r\n /**\r\n * Notification for events being discarded.\r\n * @param events - The array of events that have been discarded by the SDK.\r\n * @param reason - The reason for which the SDK discarded the events. The EventsDiscardedReason\r\n * constant should be used to check the different values.\r\n */\r\n _self[STR_EVENTS_DISCARDED /* @min:%2eeventsDiscarded */] = function (events, reason) {\r\n _runListeners(_listeners, STR_EVENTS_DISCARDED, _asyncNotifications, function (listener) {\r\n listener[STR_EVENTS_DISCARDED /* @min:%2eeventsDiscarded */](events, reason);\r\n });\r\n };\r\n /**\r\n * [Optional] A function called when the events have been requested to be sent to the sever.\r\n * @param sendReason - The reason why the event batch is being sent.\r\n * @param isAsync - A flag which identifies whether the requests are being sent in an async or sync manner.\r\n */\r\n _self[STR_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */] = function (sendReason, isAsync) {\r\n _runListeners(_listeners, STR_EVENTS_SEND_REQUEST, isAsync ? _asyncNotifications : null, function (listener) {\r\n listener[STR_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */](sendReason, isAsync);\r\n });\r\n };\r\n _self[STR_PERF_EVENT /* @min:%2eperfEvent */] = function (perfEvent) {\r\n if (perfEvent) {\r\n // Send all events or only parent events\r\n if (perfEvtsSendAll || !perfEvent[_DYN_IS_CHILD_EVT /* @min:%2eisChildEvt */]()) {\r\n _runListeners(_listeners, STR_PERF_EVENT, null, function (listener) {\r\n if (perfEvent[_DYN_IS_ASYNC /* @min:%2eisAsync */]) {\r\n scheduleTimeout(function () { return listener[STR_PERF_EVENT /* @min:%2eperfEvent */](perfEvent); }, 0);\r\n }\r\n else {\r\n listener[STR_PERF_EVENT /* @min:%2eperfEvent */](perfEvent);\r\n }\r\n });\r\n }\r\n }\r\n };\r\n _self[STR_OFFLINE_STORE /* @min:%2eofflineEventsStored */] = function (events) {\r\n if (events && events[_DYN_LENGTH /* @min:%2elength */]) {\r\n _runListeners(_listeners, STR_OFFLINE_STORE, _asyncNotifications, function (listener) {\r\n listener[STR_OFFLINE_STORE /* @min:%2eofflineEventsStored */](events);\r\n });\r\n }\r\n };\r\n _self[STR_OFFLINE_SENT /* @min:%2eofflineBatchSent */] = function (batch) {\r\n if (batch && batch[_DYN_DATA /* @min:%2edata */]) {\r\n _runListeners(_listeners, STR_OFFLINE_SENT, _asyncNotifications, function (listener) {\r\n listener[STR_OFFLINE_SENT /* @min:%2eofflineBatchSent */](batch);\r\n });\r\n }\r\n };\r\n _self[STR_OFFLINE_DROP /* @min:%2eofflineBatchDrop */] = function (cnt, reason) {\r\n if (cnt > 0) {\r\n var rn_1 = reason || 0; // default is unknown\r\n _runListeners(_listeners, STR_OFFLINE_DROP, _asyncNotifications, function (listener) {\r\n listener[STR_OFFLINE_DROP /* @min:%2eofflineBatchDrop */](cnt, rn_1);\r\n });\r\n }\r\n };\r\n _self[_DYN_UNLOAD /* @min:%2eunload */] = function (isAsync) {\r\n var _finishUnload = function () {\r\n unloadHandler && unloadHandler.rm();\r\n unloadHandler = null;\r\n _listeners = [];\r\n // Clear any async listener\r\n _asyncNotifications.h && _asyncNotifications.h[_DYN_CANCEL /* @min:%2ecancel */]();\r\n _asyncNotifications.h = null;\r\n _asyncNotifications.cb = [];\r\n };\r\n var waiting;\r\n _runListeners(_listeners, \"unload\", null, function (listener) {\r\n var asyncUnload = listener[_DYN_UNLOAD /* @min:%2eunload */](isAsync);\r\n if (asyncUnload) {\r\n if (!waiting) {\r\n waiting = [];\r\n }\r\n waiting[_DYN_PUSH /* @min:%2epush */](asyncUnload);\r\n }\r\n });\r\n if (waiting) {\r\n return createPromise(function (resolve) {\r\n return doAwaitResponse(createAllPromise(waiting), function () {\r\n _finishUnload();\r\n resolve();\r\n });\r\n });\r\n }\r\n else {\r\n _finishUnload();\r\n }\r\n };\r\n });\r\n }\r\n /**\r\n * Adds a notification listener.\r\n * @param listener - The notification listener to be added.\r\n */\r\n NotificationManager.prototype.addNotificationListener = function (listener) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param listener - AWTNotificationListener to remove.\r\n */\r\n NotificationManager.prototype.removeNotificationListener = function (listener) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Notification for events sent.\r\n * @param events - The array of events that have been sent.\r\n */\r\n NotificationManager.prototype.eventsSent = function (events) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Notification for events being discarded.\r\n * @param events - The array of events that have been discarded by the SDK.\r\n * @param reason - The reason for which the SDK discarded the events. The EventsDiscardedReason\r\n * constant should be used to check the different values.\r\n */\r\n NotificationManager.prototype.eventsDiscarded = function (events, reason) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * [Optional] A function called when the events have been requested to be sent to the sever.\r\n * @param sendReason - The reason why the event batch is being sent.\r\n * @param isAsync - A flag which identifies whether the requests are being sent in an async or sync manner.\r\n */\r\n NotificationManager.prototype.eventsSendRequest = function (sendReason, isAsync) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * [Optional] This event is sent if you have enabled perf events, they are primarily used to track internal performance testing and debugging\r\n * the event can be displayed via the debug plugin extension.\r\n * @param perfEvent\r\n */\r\n NotificationManager.prototype.perfEvent = function (perfEvent) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Unload and remove any state that this INotificationManager may be holding, this is generally called when the\r\n * owning SDK is being unloaded.\r\n * @param isAsync - Can the unload be performed asynchronously (default)\r\n * @return If the unload occurs synchronously then nothing should be returned, if happening asynchronously then\r\n * the function should return an [IPromise](https://nevware21.github.io/ts-async/typedoc/interfaces/IPromise.html)\r\n * / Promise to allow any listeners to wait for the operation to complete.\r\n */\r\n NotificationManager.prototype.unload = function (isAsync) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * [Optional] A function called when the offline events have been stored to the persistent storage\r\n * @param events - events that are stored in the persistent storage\r\n */\r\n NotificationManager.prototype.offlineEventsStored = function (events) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * [Optional] A function called when the offline events have been sent from the persistent storage\r\n * @param batch - payload data that is sent from the persistent storage\r\n */\r\n NotificationManager.prototype.offlineBatchSent = function (batch) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * [Optional] A function called when the offline events have been dropped from the persistent storage\r\n * @param cnt - count of batches dropped\r\n * @param reason - the reason why the batches is dropped\r\n * @since v3.1.1\r\n */\r\n NotificationManager.prototype.offlineBatchDrop = function (cnt, reason) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return NotificationManager;\r\n}());\r\nexport { NotificationManager };\r\n//# sourceMappingURL=NotificationManager.js.map","// // Copyright (c) Microsoft Corporation. All rights reserved.\r\n// // Licensed under the MIT License.\r\nimport { __extends } from \"tslib\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { arrAppend, arrForEach, dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_APPLY, _DYN_DIAG_LOG, _DYN_LENGTH, _DYN_PROCESS_NEXT, _DYN_SPLICE, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { BaseTelemetryPlugin } from \"./BaseTelemetryPlugin\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nimport { getExceptionName } from \"./HelperFuncs\";\r\nimport { STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nfunction _addInitializer(_initializers, id, telemetryInitializer) {\r\n var theInitializer = {\r\n id: id,\r\n fn: telemetryInitializer\r\n };\r\n arrAppend(_initializers, theInitializer);\r\n var handler = {\r\n remove: function () {\r\n arrForEach(_initializers, function (initializer, idx) {\r\n if (initializer.id === theInitializer.id) {\r\n _initializers[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n return -1;\r\n }\r\n });\r\n }\r\n };\r\n return handler;\r\n}\r\nfunction _runInitializers(_initializers, item, logger) {\r\n var doNotSendItem = false;\r\n var telemetryInitializersCount = _initializers[_DYN_LENGTH /* @min:%2elength */];\r\n for (var i = 0; i < telemetryInitializersCount; ++i) {\r\n var telemetryInitializer = _initializers[i];\r\n if (telemetryInitializer) {\r\n try {\r\n if (telemetryInitializer.fn[_DYN_APPLY /* @min:%2eapply */](null, [item]) === false) {\r\n doNotSendItem = true;\r\n break;\r\n }\r\n }\r\n catch (e) {\r\n // log error but dont stop executing rest of the telemetry initializers\r\n // doNotSendItem = true;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, \"Telemetry initializer failed: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n }\r\n }\r\n }\r\n return !doNotSendItem;\r\n}\r\nvar TelemetryInitializerPlugin = /** @class */ (function (_super) {\r\n __extends(TelemetryInitializerPlugin, _super);\r\n function TelemetryInitializerPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = \"TelemetryInitializerPlugin\";\r\n _this.priority = 199;\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var _id;\r\n var _initializers;\r\n _initDefaults();\r\n dynamicProto(TelemetryInitializerPlugin, _this, function (_self, _base) {\r\n _self.addTelemetryInitializer = function (telemetryInitializer) {\r\n return _addInitializer(_initializers, _id++, telemetryInitializer);\r\n };\r\n _self[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */] = function (item, itemCtx) {\r\n if (_runInitializers(_initializers, item, itemCtx ? itemCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */]() : _self[_DYN_DIAG_LOG /* @min:%2ediagLog */]())) {\r\n _self[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](item, itemCtx);\r\n }\r\n };\r\n _self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */] = function () {\r\n _initDefaults();\r\n };\r\n });\r\n function _initDefaults() {\r\n _id = 0;\r\n _initializers = [];\r\n }\r\n return _this;\r\n }\r\n /**\r\n * Add a telemetry processor to decorate or drop telemetry events.\r\n * @param telemetryInitializer - The Telemetry Initializer function\r\n * @returns - A ITelemetryInitializerHandler to enable the initializer to be removed\r\n */\r\n TelemetryInitializerPlugin.prototype.addTelemetryInitializer = function (telemetryInitializer) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n TelemetryInitializerPlugin.prototype.processTelemetry = function (env, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return TelemetryInitializerPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport { TelemetryInitializerPlugin };\r\n//# sourceMappingURL=TelemetryInitializerPlugin.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\"use strict\";\r\nvar _a;\r\nimport { __spreadArray } from \"tslib\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { createPromise, createSyncAllSettledPromise, doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { arrAppend, arrForEach, arrIndexOf, createTimeout, deepExtend, hasDocument, isFunction, isNullOrUndefined, isPlainObject, isPromiseLike, objDeepFreeze, objDefine, objForEachKey, objFreeze, objHasOwn, scheduleTimeout, throwError } from \"@nevware21/ts-utils\";\r\nimport { createDynamicConfig, onConfigChange } from \"../Config/DynamicConfig\";\r\nimport { ActiveStatus } from \"../JavaScriptSDK.Enums/InitActiveStatusEnum\";\r\nimport { _DYN_ADD_NOTIFICATION_LIS1, _DYN_CANCEL, _DYN_CREATE_NEW, _DYN_ENABLED, _DYN_GET_NOTIFY_MGR, _DYN_GET_PLUGIN, _DYN_GET_PROCESS_TEL_CONT2, _DYN_IDENTIFIER, _DYN_INITIALIZE, _DYN_INSTRUMENTATION_KEY, _DYN_IS_ASYNC, _DYN_IS_INITIALIZED, _DYN_I_KEY, _DYN_LENGTH, _DYN_LOGGER, _DYN_LOGGING_LEVEL_CONSOL4, _DYN_MESSAGE, _DYN_MESSAGE_ID, _DYN_NAME, _DYN_NOTIFY, _DYN_ON_COMPLETE, _DYN_POLL_INTERNAL_LOGS, _DYN_PROCESS_NEXT, _DYN_PUSH, _DYN_REMOVE_NOTIFICATION_0, _DYN_SET_DF, _DYN_SPLICE, _DYN_STOP_POLLING_INTERNA3, _DYN_TEARDOWN, _DYN_TIME, _DYN_UNLOAD, _DYN_VALUE, _DYN_VERSION, _DYN_WATCH, _DYN__INACTIVE } from \"../__DynamicConstants\";\r\nimport { doUnloadAll, runTargetUnload } from \"./AsyncUtils\";\r\nimport { ChannelControllerPriority } from \"./Constants\";\r\nimport { createCookieMgr } from \"./CookieMgr\";\r\nimport { createUniqueNamespace } from \"./DataCacheHelper\";\r\nimport { getDebugListener } from \"./DbgExtensionUtils\";\r\nimport { DiagnosticLogger, _InternalLogMessage, _throwInternal, _warnToConsole } from \"./DiagnosticLogger\";\r\nimport { getSetValue, isNotNullOrUndefined, proxyFunctionAs, proxyFunctions, toISOString } from \"./HelperFuncs\";\r\nimport { STR_CHANNELS, STR_CORE, STR_CREATE_PERF_MGR, STR_DISABLED, STR_EMPTY, STR_EVENTS_DISCARDED, STR_EXTENSIONS, STR_EXTENSION_CONFIG, STR_GET_PERF_MGR, STR_PRIORITY, UNDEFINED_VALUE } from \"./InternalConstants\";\r\nimport { NotificationManager } from \"./NotificationManager\";\r\nimport { PerfManager, doPerf, getGblPerfMgr } from \"./PerfManager\";\r\nimport { createProcessTelemetryContext, createProcessTelemetryUnloadContext, createProcessTelemetryUpdateContext, createTelemetryProxyChain } from \"./ProcessTelemetryContext\";\r\nimport { _getPluginState, createDistributedTraceContext, initializePlugins, sortPlugins } from \"./TelemetryHelpers\";\r\nimport { TelemetryInitializerPlugin } from \"./TelemetryInitializerPlugin\";\r\nimport { createUnloadHandlerContainer } from \"./UnloadHandlerContainer\";\r\nimport { createUnloadHookContainer } from \"./UnloadHookContainer\";\r\nvar strValidationError = \"Plugins must provide initialize method\";\r\nvar strNotificationManager = \"_notificationManager\";\r\nvar strSdkUnloadingError = \"SDK is still unloading...\";\r\nvar strSdkNotInitialized = \"SDK is not initialized\";\r\nvar maxInitQueueSize = 100;\r\nvar maxInitTimeout = 50000;\r\n// const strPluginUnloadFailed = \"Failed to unload plugin\";\r\n/**\r\n * The default settings for the config.\r\n * WE MUST include all defaults here to ensure that the config is created with all of the properties\r\n * defined as dynamic.\r\n */\r\nvar defaultConfig = objDeepFreeze((_a = {\r\n cookieCfg: {}\r\n },\r\n _a[STR_EXTENSIONS] = { rdOnly: true, ref: true, v: [] },\r\n _a[STR_CHANNELS] = { rdOnly: true, ref: true, v: [] },\r\n _a[STR_EXTENSION_CONFIG] = { ref: true, v: {} },\r\n _a[STR_CREATE_PERF_MGR] = UNDEFINED_VALUE,\r\n _a.loggingLevelConsole = 0 /* eLoggingSeverity.DISABLED */,\r\n _a.diagnosticLogInterval = UNDEFINED_VALUE,\r\n _a));\r\n/**\r\n * Helper to create the default performance manager\r\n * @param core\r\n * @param notificationMgr\r\n */\r\nfunction _createPerfManager(core, notificationMgr) {\r\n return new PerfManager(notificationMgr);\r\n}\r\nfunction _validateExtensions(logger, channelPriority, allExtensions) {\r\n var _a;\r\n // Concat all available extensions\r\n var coreExtensions = [];\r\n var channels = [];\r\n // Check if any two extensions have the same priority, then warn to console\r\n // And extract the local extensions from the\r\n var extPriorities = {};\r\n // Extension validation\r\n arrForEach(allExtensions, function (ext) {\r\n // Check for ext.initialize\r\n if (isNullOrUndefined(ext) || isNullOrUndefined(ext[_DYN_INITIALIZE /* @min:%2einitialize */])) {\r\n throwError(strValidationError);\r\n }\r\n var extPriority = ext[STR_PRIORITY /* @min:%2epriority */];\r\n var identifier = ext[_DYN_IDENTIFIER /* @min:%2eidentifier */];\r\n if (ext && extPriority) {\r\n if (!isNullOrUndefined(extPriorities[extPriority])) {\r\n _warnToConsole(logger, \"Two extensions have same priority #\" + extPriority + \" - \" + extPriorities[extPriority] + \", \" + identifier);\r\n }\r\n else {\r\n // set a value\r\n extPriorities[extPriority] = identifier;\r\n }\r\n }\r\n // Split extensions to core and channels\r\n if (!extPriority || extPriority < channelPriority) {\r\n // Add to core extension that will be managed by AppInsightsCore\r\n coreExtensions[_DYN_PUSH /* @min:%2epush */](ext);\r\n }\r\n else {\r\n channels[_DYN_PUSH /* @min:%2epush */](ext);\r\n }\r\n });\r\n return _a = {},\r\n _a[STR_CORE /* @min:core */] = coreExtensions,\r\n _a[STR_CHANNELS /* @min:channels */] = channels,\r\n _a;\r\n}\r\nfunction _isPluginPresent(thePlugin, plugins) {\r\n var exists = false;\r\n arrForEach(plugins, function (plugin) {\r\n if (plugin === thePlugin) {\r\n exists = true;\r\n return -1;\r\n }\r\n });\r\n return exists;\r\n}\r\nfunction _deepMergeConfig(details, target, newValues, merge) {\r\n // Lets assign the new values to the existing config\r\n if (newValues) {\r\n objForEachKey(newValues, function (key, value) {\r\n if (merge) {\r\n if (isPlainObject(value) && isPlainObject(target[key])) {\r\n // The target is an object and it has a value\r\n _deepMergeConfig(details, target[key], value, merge);\r\n }\r\n }\r\n if (merge && isPlainObject(value) && isPlainObject(target[key])) {\r\n // The target is an object and it has a value\r\n _deepMergeConfig(details, target[key], value, merge);\r\n }\r\n else {\r\n // Just Assign (replace) and/or make the property dynamic\r\n details.set(target, key, value);\r\n }\r\n });\r\n }\r\n}\r\nfunction _findWatcher(listeners, newWatcher) {\r\n var theListener = null;\r\n var idx = -1;\r\n arrForEach(listeners, function (listener, lp) {\r\n if (listener.w === newWatcher) {\r\n theListener = listener;\r\n idx = lp;\r\n return -1;\r\n }\r\n });\r\n return { i: idx, l: theListener };\r\n}\r\nfunction _addDelayedCfgListener(listeners, newWatcher) {\r\n var theListener = _findWatcher(listeners, newWatcher).l;\r\n if (!theListener) {\r\n theListener = {\r\n w: newWatcher,\r\n rm: function () {\r\n var fnd = _findWatcher(listeners, newWatcher);\r\n if (fnd.i !== -1) {\r\n listeners[_DYN_SPLICE /* @min:%2esplice */](fnd.i, 1);\r\n }\r\n }\r\n };\r\n listeners[_DYN_PUSH /* @min:%2epush */](theListener);\r\n }\r\n return theListener;\r\n}\r\nfunction _registerDelayedCfgListener(config, listeners, logger) {\r\n arrForEach(listeners, function (listener) {\r\n var unloadHdl = onConfigChange(config, listener.w, logger);\r\n delete listener.w; // Clear the listener reference so it will get garbage collected.\r\n // replace the remove function\r\n listener.rm = function () {\r\n unloadHdl.rm();\r\n };\r\n });\r\n}\r\n// Moved this outside of the closure to reduce the retained memory footprint\r\nfunction _initDebugListener(configHandler, unloadContainer, notificationManager, debugListener) {\r\n // Will get recalled if any referenced config values are changed\r\n unloadContainer.add(configHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n var disableDbgExt = details.cfg.disableDbgExt;\r\n if (disableDbgExt === true && debugListener) {\r\n // Remove any previously loaded debug listener\r\n notificationManager[_DYN_REMOVE_NOTIFICATION_0 /* @min:%2eremoveNotificationListener */](debugListener);\r\n debugListener = null;\r\n }\r\n if (notificationManager && !debugListener && disableDbgExt !== true) {\r\n debugListener = getDebugListener(details.cfg);\r\n notificationManager[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */](debugListener);\r\n }\r\n }));\r\n return debugListener;\r\n}\r\n// Moved this outside of the closure to reduce the retained memory footprint\r\nfunction _createUnloadHook(unloadHook) {\r\n return objDefine({\r\n rm: function () {\r\n unloadHook.rm();\r\n }\r\n }, \"toJSON\", { v: function () { return \"aicore::onCfgChange<\" + JSON.stringify(unloadHook) + \">\"; } });\r\n}\r\n/**\r\n * @group Classes\r\n * @group Entrypoint\r\n */\r\nvar AppInsightsCore = /** @class */ (function () {\r\n function AppInsightsCore() {\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var _configHandler;\r\n var _isInitialized;\r\n var _logger;\r\n var _eventQueue;\r\n var _notificationManager;\r\n var _perfManager;\r\n var _cfgPerfManager;\r\n var _cookieManager;\r\n var _pluginChain;\r\n var _configExtensions;\r\n var _channelConfig;\r\n var _channels;\r\n var _isUnloading;\r\n var _telemetryInitializerPlugin;\r\n var _internalLogsEventName;\r\n var _evtNamespace;\r\n var _unloadHandlers;\r\n var _hookContainer;\r\n var _debugListener;\r\n var _traceCtx;\r\n var _instrumentationKey;\r\n var _cfgListeners;\r\n var _extensions;\r\n var _pluginVersionStringArr;\r\n var _pluginVersionString;\r\n var _activeStatus; // to indicate if ikey or endpoint url promised is resolved or not\r\n var _endpoint;\r\n var _initInMemoMaxSize; // max event count limit during wait for init promises to be resolved\r\n var _isStatusSet; // track if active status is set in case of init timeout and init promises setting the status twice\r\n var _initTimer;\r\n /**\r\n * Internal log poller\r\n */\r\n var _internalLogPoller;\r\n var _internalLogPollerListening;\r\n var _forceStopInternalLogPoller;\r\n dynamicProto(AppInsightsCore, this, function (_self) {\r\n // Set the default values (also called during teardown)\r\n _initDefaults();\r\n // Special internal method to allow the unit tests and DebugPlugin to hook embedded objects\r\n _self[\"_getDbgPlgTargets\"] = function () {\r\n return [_extensions, _eventQueue];\r\n };\r\n _self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = function () { return _isInitialized; };\r\n // since version 3.3.0\r\n _self.activeStatus = function () { return _activeStatus; };\r\n // since version 3.3.0\r\n // internal\r\n _self._setPendingStatus = function () {\r\n _activeStatus = 3 /* eActiveStatus.PENDING */;\r\n };\r\n // Creating the self.initialize = ()\r\n _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, extensions, logger, notificationManager) {\r\n if (_isUnloading) {\r\n throwError(strSdkUnloadingError);\r\n }\r\n // Make sure core is only initialized once\r\n if (_self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]()) {\r\n throwError(\"Core cannot be initialized more than once\");\r\n }\r\n _configHandler = createDynamicConfig(config, defaultConfig, logger || _self[_DYN_LOGGER /* @min:%2elogger */], false);\r\n // Re-assigning the local config property so we don't have any references to the passed value and it can be garbage collected\r\n config = _configHandler.cfg;\r\n // This will be \"re-run\" if the referenced config properties are changed\r\n _addUnloadHook(_configHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n var rootCfg = details.cfg;\r\n var isPending = _activeStatus === 3 /* eActiveStatus.PENDING */;\r\n if (isPending) {\r\n // means waiting for previous promises to be resolved, won't apply new changes\r\n return;\r\n }\r\n _initInMemoMaxSize = rootCfg.initInMemoMaxSize || maxInitQueueSize;\r\n // app Insights core only handle ikey and endpointurl, aisku will handle cs\r\n var ikey = rootCfg[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n var endpointUrl = rootCfg.endpointUrl; // do not need to validate endpoint url, if it is null, default one will be set by sender\r\n if (isNullOrUndefined(ikey)) {\r\n _instrumentationKey = null;\r\n // if new ikey is null, set status to be inactive, all new events will be saved in memory or dropped\r\n _activeStatus = ActiveStatus[_DYN__INACTIVE /* @min:%2eINACTIVE */];\r\n var msg = \"Please provide instrumentation key\";\r\n if (!_isInitialized) {\r\n // only throw error during initialization\r\n throwError(msg);\r\n }\r\n else {\r\n _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 100 /* _eInternalMessageId.InvalidInstrumentationKey */, msg);\r\n _releaseQueues();\r\n }\r\n return;\r\n }\r\n var promises = [];\r\n if (isPromiseLike(ikey)) {\r\n promises[_DYN_PUSH /* @min:%2epush */](ikey);\r\n _instrumentationKey = null; // reset current local ikey variable (otherwise it will always be the previous ikeys if timeout is called before promise cb)\r\n }\r\n else {\r\n // string\r\n _instrumentationKey = ikey;\r\n }\r\n if (isPromiseLike(endpointUrl)) {\r\n promises[_DYN_PUSH /* @min:%2epush */](endpointUrl);\r\n _endpoint = null; // reset current local endpoint variable (otherwise it will always be the previous urls if timeout is called before promise cb)\r\n }\r\n else {\r\n // string or null\r\n _endpoint = endpointUrl;\r\n }\r\n // at least have one promise\r\n if (promises[_DYN_LENGTH /* @min:%2elength */]) {\r\n // reset to false for new dynamic changes\r\n _isStatusSet = false;\r\n _activeStatus = 3 /* eActiveStatus.PENDING */;\r\n var initTimeout = isNotNullOrUndefined(rootCfg.initTimeOut) ? rootCfg.initTimeOut : maxInitTimeout; // rootCfg.initTimeOut could be 0\r\n var allPromises = createSyncAllSettledPromise(promises);\r\n _initTimer = scheduleTimeout(function () {\r\n // set _isStatusSet to true\r\n // set active status\r\n // release queues\r\n _initTimer = null;\r\n if (!_isStatusSet) {\r\n _setStatus();\r\n }\r\n }, initTimeout);\r\n doAwaitResponse(allPromises, function (response) {\r\n try {\r\n if (_isStatusSet) {\r\n // promises take too long to resolve, ignore them\r\n // active status should be set by timeout already\r\n return;\r\n }\r\n if (!response.rejected) {\r\n var values = response[_DYN_VALUE /* @min:%2evalue */];\r\n if (values && values[_DYN_LENGTH /* @min:%2elength */]) {\r\n // ikey\r\n var ikeyRes = values[0];\r\n _instrumentationKey = ikeyRes && ikeyRes[_DYN_VALUE /* @min:%2evalue */];\r\n // endpoint\r\n if (values[_DYN_LENGTH /* @min:%2elength */] > 1) {\r\n var endpointRes = values[1];\r\n _endpoint = endpointRes && endpointRes[_DYN_VALUE /* @min:%2evalue */];\r\n }\r\n }\r\n if (_instrumentationKey) {\r\n // if ikey is null, no need to trigger extra dynamic changes for extensions\r\n config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */] = _instrumentationKey; // set config.instrumentationKey for extensions to consume\r\n config.endpointUrl = _endpoint; // set config.endpointUrl for extensions to consume\r\n }\r\n }\r\n // set _isStatusSet to true\r\n // set active status\r\n // release queues\r\n _setStatus();\r\n }\r\n catch (e) {\r\n if (!_isStatusSet) {\r\n _setStatus();\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n // means no promises\r\n _setStatus();\r\n }\r\n //_instrumentationKey = details.cfg.instrumentationKey;\r\n // Mark the extensionConfig and all first level keys as referenced\r\n // This is so that calls to getExtCfg() will always return the same object\r\n // Even when a user may \"re-assign\" the plugin properties (or it's unloaded/reloaded)\r\n var extCfg = details.ref(details.cfg, STR_EXTENSION_CONFIG);\r\n objForEachKey(extCfg, function (key) {\r\n details.ref(extCfg, key);\r\n });\r\n }));\r\n _notificationManager = notificationManager;\r\n // Initialize the debug listener outside of the closure to reduce the retained memory footprint\r\n _debugListener = _initDebugListener(_configHandler, _hookContainer, _notificationManager && _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */](), _debugListener);\r\n _initPerfManager();\r\n _self[_DYN_LOGGER /* @min:%2elogger */] = logger;\r\n var cfgExtensions = config[STR_EXTENSIONS /* @min:%2eextensions */];\r\n // Extension validation\r\n _configExtensions = [];\r\n _configExtensions[_DYN_PUSH /* @min:%2epush */].apply(_configExtensions, __spreadArray(__spreadArray([], extensions, false), cfgExtensions, false));\r\n _channelConfig = config[STR_CHANNELS /* @min:%2echannels */];\r\n _initPluginChain(null);\r\n if (!_channels || _channels[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n throwError(\"No \" + STR_CHANNELS + \" available\");\r\n }\r\n if (_channelConfig && _channelConfig[_DYN_LENGTH /* @min:%2elength */] > 1) {\r\n var teeController = _self[_DYN_GET_PLUGIN /* @min:%2egetPlugin */](\"TeeChannelController\");\r\n if (!teeController || !teeController.plugin) {\r\n _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 28 /* _eInternalMessageId.SenderNotInitialized */, \"TeeChannel required\");\r\n }\r\n }\r\n _registerDelayedCfgListener(config, _cfgListeners, _logger);\r\n _cfgListeners = null;\r\n _isInitialized = true;\r\n if (_activeStatus === ActiveStatus.ACTIVE) {\r\n _releaseQueues();\r\n }\r\n };\r\n _self.getChannels = function () {\r\n var controls = [];\r\n if (_channels) {\r\n arrForEach(_channels, function (channel) {\r\n controls[_DYN_PUSH /* @min:%2epush */](channel);\r\n });\r\n }\r\n return objFreeze(controls);\r\n };\r\n _self.track = function (telemetryItem) {\r\n doPerf(_self[STR_GET_PERF_MGR /* @min:%2egetPerfMgr */](), function () { return \"AppInsightsCore:track\"; }, function () {\r\n if (telemetryItem === null) {\r\n _notifyInvalidEvent(telemetryItem);\r\n // throw error\r\n throwError(\"Invalid telemetry item\");\r\n }\r\n // do basic validation before sending it through the pipeline\r\n if (!telemetryItem[_DYN_NAME /* @min:%2ename */] && isNullOrUndefined(telemetryItem[_DYN_NAME /* @min:%2ename */])) {\r\n _notifyInvalidEvent(telemetryItem);\r\n throwError(\"telemetry name required\");\r\n }\r\n // setup default iKey if not passed in\r\n telemetryItem[_DYN_I_KEY /* @min:%2eiKey */] = telemetryItem[_DYN_I_KEY /* @min:%2eiKey */] || _instrumentationKey;\r\n // add default timestamp if not passed in\r\n telemetryItem[_DYN_TIME /* @min:%2etime */] = telemetryItem[_DYN_TIME /* @min:%2etime */] || toISOString(new Date());\r\n // Common Schema 4.0\r\n telemetryItem.ver = telemetryItem.ver || \"4.0\";\r\n if (!_isUnloading && _self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]() && _activeStatus === ActiveStatus.ACTIVE) {\r\n // Process the telemetry plugin chain\r\n _createTelCtx()[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](telemetryItem);\r\n }\r\n else if (_activeStatus !== ActiveStatus[_DYN__INACTIVE /* @min:%2eINACTIVE */]) {\r\n // Queue events until all extensions are initialized\r\n if (_eventQueue[_DYN_LENGTH /* @min:%2elength */] <= _initInMemoMaxSize) {\r\n // set limit, if full, stop adding new events\r\n _eventQueue[_DYN_PUSH /* @min:%2epush */](telemetryItem);\r\n }\r\n }\r\n }, function () { return ({ item: telemetryItem }); }, !(telemetryItem.sync));\r\n };\r\n _self[_DYN_GET_PROCESS_TEL_CONT2 /* @min:%2egetProcessTelContext */] = _createTelCtx;\r\n _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */] = function () {\r\n if (!_notificationManager) {\r\n _notificationManager = new NotificationManager(_configHandler.cfg);\r\n // For backward compatibility only\r\n _self[strNotificationManager] = _notificationManager;\r\n }\r\n return _notificationManager;\r\n };\r\n /**\r\n * Adds a notification listener. The SDK calls methods on the listener when an appropriate notification is raised.\r\n * The added plugins must raise notifications. If the plugins do not implement the notifications, then no methods will be\r\n * called.\r\n * @param listener - An INotificationListener object.\r\n */\r\n _self[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */] = function (listener) {\r\n _self.getNotifyMgr()[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */](listener);\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param listener - INotificationListener to remove.\r\n */\r\n _self[_DYN_REMOVE_NOTIFICATION_0 /* @min:%2eremoveNotificationListener */] = function (listener) {\r\n if (_notificationManager) {\r\n _notificationManager[_DYN_REMOVE_NOTIFICATION_0 /* @min:%2eremoveNotificationListener */](listener);\r\n }\r\n };\r\n _self.getCookieMgr = function () {\r\n if (!_cookieManager) {\r\n _cookieManager = createCookieMgr(_configHandler.cfg, _self[_DYN_LOGGER /* @min:%2elogger */]);\r\n }\r\n return _cookieManager;\r\n };\r\n _self.setCookieMgr = function (cookieMgr) {\r\n if (_cookieManager !== cookieMgr) {\r\n runTargetUnload(_cookieManager, false);\r\n _cookieManager = cookieMgr;\r\n }\r\n };\r\n _self[STR_GET_PERF_MGR /* @min:%2egetPerfMgr */] = function () {\r\n return _perfManager || _cfgPerfManager || getGblPerfMgr();\r\n };\r\n _self.setPerfMgr = function (perfMgr) {\r\n _perfManager = perfMgr;\r\n };\r\n _self.eventCnt = function () {\r\n return _eventQueue[_DYN_LENGTH /* @min:%2elength */];\r\n };\r\n _self.releaseQueue = function () {\r\n if (_isInitialized && _eventQueue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var eventQueue = _eventQueue;\r\n _eventQueue = [];\r\n if (_activeStatus === 2 /* eActiveStatus.ACTIVE */) {\r\n arrForEach(eventQueue, function (event) {\r\n event[_DYN_I_KEY /* @min:%2eiKey */] = event[_DYN_I_KEY /* @min:%2eiKey */] || _instrumentationKey;\r\n _createTelCtx()[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](event);\r\n });\r\n }\r\n else {\r\n // new one for msg ikey\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 20 /* _eInternalMessageId.FailedToSendQueuedTelemetry */, \"core init status is not active\");\r\n }\r\n }\r\n };\r\n _self[_DYN_POLL_INTERNAL_LOGS /* @min:%2epollInternalLogs */] = function (eventName) {\r\n _internalLogsEventName = eventName || null;\r\n _forceStopInternalLogPoller = false;\r\n _internalLogPoller && _internalLogPoller[_DYN_CANCEL /* @min:%2ecancel */]();\r\n return _startLogPoller(true);\r\n };\r\n function _setStatus() {\r\n _isStatusSet = true;\r\n if (isNullOrUndefined(_instrumentationKey)) {\r\n _activeStatus = ActiveStatus[_DYN__INACTIVE /* @min:%2eINACTIVE */];\r\n _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 112 /* _eInternalMessageId.InitPromiseException */, \"ikey can't be resolved from promises\");\r\n }\r\n else {\r\n _activeStatus = ActiveStatus.ACTIVE;\r\n }\r\n _releaseQueues();\r\n }\r\n function _releaseQueues() {\r\n if (_isInitialized) {\r\n _self.releaseQueue();\r\n _self[_DYN_POLL_INTERNAL_LOGS /* @min:%2epollInternalLogs */]();\r\n }\r\n }\r\n function _startLogPoller(alwaysStart) {\r\n if ((!_internalLogPoller || !_internalLogPoller[_DYN_ENABLED /* @min:%2eenabled */]) && !_forceStopInternalLogPoller) {\r\n var shouldStart = alwaysStart || (_logger && _logger.queue[_DYN_LENGTH /* @min:%2elength */] > 0);\r\n if (shouldStart) {\r\n if (!_internalLogPollerListening) {\r\n _internalLogPollerListening = true;\r\n // listen for any configuration changes so that changes to the\r\n // interval will cause the timer to be re-initialized\r\n _addUnloadHook(_configHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n var interval = details.cfg.diagnosticLogInterval;\r\n if (!interval || !(interval > 0)) {\r\n interval = 10000;\r\n }\r\n var isRunning = false;\r\n if (_internalLogPoller) {\r\n // It was already created so remember it's running and cancel\r\n isRunning = _internalLogPoller[_DYN_ENABLED /* @min:%2eenabled */];\r\n _internalLogPoller[_DYN_CANCEL /* @min:%2ecancel */]();\r\n }\r\n // Create / reconfigure\r\n _internalLogPoller = createTimeout(_flushInternalLogs, interval);\r\n _internalLogPoller.unref();\r\n // Restart if previously running\r\n _internalLogPoller[_DYN_ENABLED /* @min:%2eenabled */] = isRunning;\r\n }));\r\n }\r\n _internalLogPoller[_DYN_ENABLED /* @min:%2eenabled */] = true;\r\n }\r\n }\r\n return _internalLogPoller;\r\n }\r\n _self[_DYN_STOP_POLLING_INTERNA3 /* @min:%2estopPollingInternalLogs */] = function () {\r\n _forceStopInternalLogPoller = true;\r\n _internalLogPoller && _internalLogPoller[_DYN_CANCEL /* @min:%2ecancel */]();\r\n _flushInternalLogs();\r\n };\r\n // Add addTelemetryInitializer\r\n proxyFunctions(_self, function () { return _telemetryInitializerPlugin; }, [\"addTelemetryInitializer\"]);\r\n _self[_DYN_UNLOAD /* @min:%2eunload */] = function (isAsync, unloadComplete, cbTimeout) {\r\n var _a;\r\n if (isAsync === void 0) { isAsync = true; }\r\n if (!_isInitialized) {\r\n // The SDK is not initialized\r\n throwError(strSdkNotInitialized);\r\n }\r\n // Check if the SDK still unloading so throw\r\n if (_isUnloading) {\r\n // The SDK is already unloading\r\n throwError(strSdkUnloadingError);\r\n }\r\n var unloadState = (_a = {\r\n reason: 50 /* TelemetryUnloadReason.SdkUnload */\r\n },\r\n _a[_DYN_IS_ASYNC /* @min:isAsync */] = isAsync,\r\n _a.flushComplete = false,\r\n _a);\r\n var result;\r\n if (isAsync && !unloadComplete) {\r\n result = createPromise(function (resolve) {\r\n // Set the callback to the promise resolve callback\r\n unloadComplete = resolve;\r\n });\r\n }\r\n var processUnloadCtx = createProcessTelemetryUnloadContext(_getPluginChain(), _self);\r\n processUnloadCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](function () {\r\n _hookContainer.run(_self[_DYN_LOGGER /* @min:%2elogger */]);\r\n // Run any \"unload\" functions for the _cookieManager, _notificationManager and _logger\r\n doUnloadAll([_cookieManager, _notificationManager, _logger], isAsync, function () {\r\n _initDefaults();\r\n unloadComplete && unloadComplete(unloadState);\r\n });\r\n }, _self);\r\n function _doUnload(flushComplete) {\r\n unloadState.flushComplete = flushComplete;\r\n _isUnloading = true;\r\n // Run all of the unload handlers first (before unloading the plugins)\r\n _unloadHandlers.run(processUnloadCtx, unloadState);\r\n // Stop polling the internal logs\r\n _self[_DYN_STOP_POLLING_INTERNA3 /* @min:%2estopPollingInternalLogs */]();\r\n // Start unloading the components, from this point onwards the SDK should be considered to be in an unstable state\r\n processUnloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](unloadState);\r\n }\r\n _flushInternalLogs();\r\n if (!_flushChannels(isAsync, _doUnload, 6 /* SendRequestReason.SdkUnload */, cbTimeout)) {\r\n _doUnload(false);\r\n }\r\n return result;\r\n };\r\n _self[_DYN_GET_PLUGIN /* @min:%2egetPlugin */] = _getPlugin;\r\n _self.addPlugin = function (plugin, replaceExisting, isAsync, addCb) {\r\n if (!plugin) {\r\n addCb && addCb(false);\r\n _logOrThrowError(strValidationError);\r\n return;\r\n }\r\n var existingPlugin = _getPlugin(plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */]);\r\n if (existingPlugin && !replaceExisting) {\r\n addCb && addCb(false);\r\n _logOrThrowError(\"Plugin [\" + plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] + \"] is already loaded!\");\r\n return;\r\n }\r\n var updateState = {\r\n reason: 16 /* TelemetryUpdateReason.PluginAdded */\r\n };\r\n function _addPlugin(removed) {\r\n _configExtensions[_DYN_PUSH /* @min:%2epush */](plugin);\r\n updateState.added = [plugin];\r\n // Re-Initialize the plugin chain\r\n _initPluginChain(updateState);\r\n addCb && addCb(true);\r\n }\r\n if (existingPlugin) {\r\n var removedPlugins_1 = [existingPlugin.plugin];\r\n var unloadState = {\r\n reason: 2 /* TelemetryUnloadReason.PluginReplace */,\r\n isAsync: !!isAsync\r\n };\r\n _removePlugins(removedPlugins_1, unloadState, function (removed) {\r\n if (!removed) {\r\n // Previous plugin was successfully removed or was not installed\r\n addCb && addCb(false);\r\n }\r\n else {\r\n updateState.removed = removedPlugins_1;\r\n updateState.reason |= 32 /* TelemetryUpdateReason.PluginRemoved */;\r\n _addPlugin(true);\r\n }\r\n });\r\n }\r\n else {\r\n _addPlugin(false);\r\n }\r\n };\r\n _self.updateCfg = function (newConfig, mergeExisting) {\r\n if (mergeExisting === void 0) { mergeExisting = true; }\r\n var updateState;\r\n if (_self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]()) {\r\n updateState = {\r\n reason: 1 /* TelemetryUpdateReason.ConfigurationChanged */,\r\n cfg: _configHandler.cfg,\r\n oldCfg: deepExtend({}, _configHandler.cfg),\r\n newConfig: deepExtend({}, newConfig),\r\n merge: mergeExisting\r\n };\r\n newConfig = updateState.newConfig;\r\n var cfg = _configHandler.cfg;\r\n // replace the immutable (if initialized) values\r\n // We don't currently allow updating the extensions and channels via the update config\r\n // So overwriting any user provided values to reuse the existing values\r\n newConfig[STR_EXTENSIONS /* @min:%2eextensions */] = cfg[STR_EXTENSIONS /* @min:%2eextensions */];\r\n newConfig[STR_CHANNELS /* @min:%2echannels */] = cfg[STR_CHANNELS /* @min:%2echannels */];\r\n }\r\n // Explicitly blocking any previous config watchers so that they don't get called because\r\n // of this bulk update (Probably not necessary)\r\n _configHandler._block(function (details) {\r\n // Lets assign the new values to the existing config either overwriting or re-assigning\r\n var theConfig = details.cfg;\r\n _deepMergeConfig(details, theConfig, newConfig, mergeExisting);\r\n if (!mergeExisting) {\r\n // Remove (unassign) the values \"missing\" from the newConfig and also not in the default config\r\n objForEachKey(theConfig, function (key) {\r\n if (!objHasOwn(newConfig, key)) {\r\n // Set the value to undefined\r\n details.set(theConfig, key, UNDEFINED_VALUE);\r\n }\r\n });\r\n }\r\n // Apply defaults to the new config\r\n details[_DYN_SET_DF /* @min:%2esetDf */](theConfig, defaultConfig);\r\n }, true);\r\n // Now execute all of the listeners (synchronously) so they update their values immediately\r\n _configHandler[_DYN_NOTIFY /* @min:%2enotify */]();\r\n if (updateState) {\r\n _doUpdate(updateState);\r\n }\r\n };\r\n _self.evtNamespace = function () {\r\n return _evtNamespace;\r\n };\r\n _self.flush = _flushChannels;\r\n _self.getTraceCtx = function (createNew) {\r\n if (!_traceCtx) {\r\n _traceCtx = createDistributedTraceContext();\r\n }\r\n return _traceCtx;\r\n };\r\n _self.setTraceCtx = function (traceCtx) {\r\n _traceCtx = traceCtx || null;\r\n };\r\n _self.addUnloadHook = _addUnloadHook;\r\n // Create the addUnloadCb\r\n proxyFunctionAs(_self, \"addUnloadCb\", function () { return _unloadHandlers; }, \"add\");\r\n _self.onCfgChange = function (handler) {\r\n var unloadHook;\r\n if (!_isInitialized) {\r\n unloadHook = _addDelayedCfgListener(_cfgListeners, handler);\r\n }\r\n else {\r\n unloadHook = onConfigChange(_configHandler.cfg, handler, _self[_DYN_LOGGER /* @min:%2elogger */]);\r\n }\r\n return _createUnloadHook(unloadHook);\r\n };\r\n _self.getWParam = function () {\r\n return (hasDocument() || !!_configHandler.cfg.enableWParam) ? 0 : -1;\r\n };\r\n function _setPluginVersions() {\r\n var thePlugins = {};\r\n _pluginVersionStringArr = [];\r\n var _addPluginVersions = function (plugins) {\r\n if (plugins) {\r\n arrForEach(plugins, function (plugin) {\r\n if (plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] && plugin[_DYN_VERSION /* @min:%2eversion */] && !thePlugins[plugin.identifier]) {\r\n var ver = plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] + \"=\" + plugin[_DYN_VERSION /* @min:%2eversion */];\r\n _pluginVersionStringArr[_DYN_PUSH /* @min:%2epush */](ver);\r\n thePlugins[plugin.identifier] = plugin;\r\n }\r\n });\r\n }\r\n };\r\n _addPluginVersions(_channels);\r\n if (_channelConfig) {\r\n arrForEach(_channelConfig, function (channels) {\r\n _addPluginVersions(channels);\r\n });\r\n }\r\n _addPluginVersions(_configExtensions);\r\n }\r\n function _initDefaults() {\r\n _isInitialized = false;\r\n // Use a default logger so initialization errors are not dropped on the floor with full logging\r\n _configHandler = createDynamicConfig({}, defaultConfig, _self[_DYN_LOGGER /* @min:%2elogger */]);\r\n // Set the logging level to critical so that any critical initialization failures are displayed on the console\r\n _configHandler.cfg[_DYN_LOGGING_LEVEL_CONSOL4 /* @min:%2eloggingLevelConsole */] = 1 /* eLoggingSeverity.CRITICAL */;\r\n // Define _self.config\r\n objDefine(_self, \"config\", {\r\n g: function () { return _configHandler.cfg; },\r\n s: function (newValue) {\r\n _self.updateCfg(newValue, false);\r\n }\r\n });\r\n objDefine(_self, \"pluginVersionStringArr\", {\r\n g: function () {\r\n if (!_pluginVersionStringArr) {\r\n _setPluginVersions();\r\n }\r\n return _pluginVersionStringArr;\r\n }\r\n });\r\n objDefine(_self, \"pluginVersionString\", {\r\n g: function () {\r\n if (!_pluginVersionString) {\r\n if (!_pluginVersionStringArr) {\r\n _setPluginVersions();\r\n }\r\n _pluginVersionString = _pluginVersionStringArr.join(\";\");\r\n }\r\n return _pluginVersionString || STR_EMPTY;\r\n }\r\n });\r\n objDefine(_self, \"logger\", {\r\n g: function () {\r\n if (!_logger) {\r\n _logger = new DiagnosticLogger(_configHandler.cfg);\r\n _configHandler[_DYN_LOGGER /* @min:%2elogger */] = _logger;\r\n }\r\n return _logger;\r\n },\r\n s: function (newLogger) {\r\n _configHandler[_DYN_LOGGER /* @min:%2elogger */] = newLogger;\r\n if (_logger !== newLogger) {\r\n runTargetUnload(_logger, false);\r\n _logger = newLogger;\r\n }\r\n }\r\n });\r\n _self[_DYN_LOGGER /* @min:%2elogger */] = new DiagnosticLogger(_configHandler.cfg);\r\n _extensions = [];\r\n var cfgExtensions = _self.config[STR_EXTENSIONS /* @min:%2eextensions */] || [];\r\n cfgExtensions.splice(0, cfgExtensions[_DYN_LENGTH /* @min:%2elength */]);\r\n arrAppend(cfgExtensions, _extensions);\r\n _telemetryInitializerPlugin = new TelemetryInitializerPlugin();\r\n _eventQueue = [];\r\n runTargetUnload(_notificationManager, false);\r\n _notificationManager = null;\r\n _perfManager = null;\r\n _cfgPerfManager = null;\r\n runTargetUnload(_cookieManager, false);\r\n _cookieManager = null;\r\n _pluginChain = null;\r\n _configExtensions = [];\r\n _channelConfig = null;\r\n _channels = null;\r\n _isUnloading = false;\r\n _internalLogsEventName = null;\r\n _evtNamespace = createUniqueNamespace(\"AIBaseCore\", true);\r\n _unloadHandlers = createUnloadHandlerContainer();\r\n _traceCtx = null;\r\n _instrumentationKey = null;\r\n _hookContainer = createUnloadHookContainer();\r\n _cfgListeners = [];\r\n _pluginVersionString = null;\r\n _pluginVersionStringArr = null;\r\n _forceStopInternalLogPoller = false;\r\n _internalLogPoller = null;\r\n _internalLogPollerListening = false;\r\n _activeStatus = 0 /* eActiveStatus.NONE */; // default is None\r\n _endpoint = null;\r\n _initInMemoMaxSize = null;\r\n _isStatusSet = false;\r\n _initTimer = null;\r\n }\r\n function _createTelCtx() {\r\n var theCtx = createProcessTelemetryContext(_getPluginChain(), _configHandler.cfg, _self);\r\n theCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](_startLogPoller);\r\n return theCtx;\r\n }\r\n // Initialize or Re-initialize the plugins\r\n function _initPluginChain(updateState) {\r\n // Extension validation\r\n var theExtensions = _validateExtensions(_self[_DYN_LOGGER /* @min:%2elogger */], ChannelControllerPriority, _configExtensions);\r\n _pluginChain = null;\r\n _pluginVersionString = null;\r\n _pluginVersionStringArr = null;\r\n // Get the primary channel queue and include as part of the normal extensions\r\n _channels = (_channelConfig || [])[0] || [];\r\n // Add any channels provided in the extensions and sort them\r\n _channels = sortPlugins(arrAppend(_channels, theExtensions[STR_CHANNELS /* @min:%2echannels */]));\r\n // Create an array of all extensions, including the _channels\r\n var allExtensions = arrAppend(sortPlugins(theExtensions[STR_CORE /* @min:%2ecore */]), _channels);\r\n // Required to allow plugins to call core.getPlugin() during their own initialization\r\n _extensions = objFreeze(allExtensions);\r\n // This has a side effect of adding the extensions passed during initialization\r\n // into the config.extensions, so you can see all of the extensions loaded.\r\n // This will also get updated by the addPlugin() and remove plugin code.\r\n var cfgExtensions = _self.config[STR_EXTENSIONS /* @min:%2eextensions */] || [];\r\n cfgExtensions.splice(0, cfgExtensions[_DYN_LENGTH /* @min:%2elength */]);\r\n arrAppend(cfgExtensions, _extensions);\r\n var rootCtx = _createTelCtx();\r\n // Initializing the channels first\r\n if (_channels && _channels[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n initializePlugins(rootCtx[_DYN_CREATE_NEW /* @min:%2ecreateNew */](_channels), allExtensions);\r\n }\r\n // Now initialize the normal extensions (explicitly not including the _channels as this can cause duplicate initialization)\r\n initializePlugins(rootCtx, allExtensions);\r\n if (updateState) {\r\n _doUpdate(updateState);\r\n }\r\n }\r\n function _getPlugin(pluginIdentifier) {\r\n var theExt = null;\r\n var thePlugin = null;\r\n var channelHosts = [];\r\n arrForEach(_extensions, function (ext) {\r\n if (ext[_DYN_IDENTIFIER /* @min:%2eidentifier */] === pluginIdentifier && ext !== _telemetryInitializerPlugin) {\r\n thePlugin = ext;\r\n return -1;\r\n }\r\n if (ext.getChannel) {\r\n channelHosts[_DYN_PUSH /* @min:%2epush */](ext);\r\n }\r\n });\r\n if (!thePlugin && channelHosts[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(channelHosts, function (host) {\r\n thePlugin = host.getChannel(pluginIdentifier);\r\n if (!thePlugin) {\r\n return -1;\r\n }\r\n });\r\n }\r\n if (thePlugin) {\r\n theExt = {\r\n plugin: thePlugin,\r\n setEnabled: function (enabled) {\r\n _getPluginState(thePlugin)[STR_DISABLED] = !enabled;\r\n },\r\n isEnabled: function () {\r\n var pluginState = _getPluginState(thePlugin);\r\n return !pluginState[_DYN_TEARDOWN /* @min:%2eteardown */] && !pluginState[STR_DISABLED];\r\n },\r\n remove: function (isAsync, removeCb) {\r\n var _a;\r\n if (isAsync === void 0) { isAsync = true; }\r\n var pluginsToRemove = [thePlugin];\r\n var unloadState = (_a = {\r\n reason: 1 /* TelemetryUnloadReason.PluginUnload */\r\n },\r\n _a[_DYN_IS_ASYNC /* @min:isAsync */] = isAsync,\r\n _a);\r\n _removePlugins(pluginsToRemove, unloadState, function (removed) {\r\n if (removed) {\r\n // Re-Initialize the plugin chain\r\n _initPluginChain({\r\n reason: 32 /* TelemetryUpdateReason.PluginRemoved */,\r\n removed: pluginsToRemove\r\n });\r\n }\r\n removeCb && removeCb(removed);\r\n });\r\n }\r\n };\r\n }\r\n return theExt;\r\n }\r\n function _getPluginChain() {\r\n if (!_pluginChain) {\r\n // copy the collection of extensions\r\n var extensions = (_extensions || []).slice();\r\n // During add / remove this may get called again, so don't read if already present\r\n if (arrIndexOf(extensions, _telemetryInitializerPlugin) === -1) {\r\n extensions[_DYN_PUSH /* @min:%2epush */](_telemetryInitializerPlugin);\r\n }\r\n _pluginChain = createTelemetryProxyChain(sortPlugins(extensions), _configHandler.cfg, _self);\r\n }\r\n return _pluginChain;\r\n }\r\n function _removePlugins(thePlugins, unloadState, removeComplete) {\r\n if (thePlugins && thePlugins[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var unloadChain = createTelemetryProxyChain(thePlugins, _configHandler.cfg, _self);\r\n var unloadCtx = createProcessTelemetryUnloadContext(unloadChain, _self);\r\n unloadCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](function () {\r\n var removed = false;\r\n // Remove the listed config extensions\r\n var newConfigExtensions = [];\r\n arrForEach(_configExtensions, function (plugin, idx) {\r\n if (!_isPluginPresent(plugin, thePlugins)) {\r\n newConfigExtensions[_DYN_PUSH /* @min:%2epush */](plugin);\r\n }\r\n else {\r\n removed = true;\r\n }\r\n });\r\n _configExtensions = newConfigExtensions;\r\n _pluginVersionString = null;\r\n _pluginVersionStringArr = null;\r\n // Re-Create the channel config\r\n var newChannelConfig = [];\r\n if (_channelConfig) {\r\n arrForEach(_channelConfig, function (queue, idx) {\r\n var newQueue = [];\r\n arrForEach(queue, function (channel) {\r\n if (!_isPluginPresent(channel, thePlugins)) {\r\n newQueue[_DYN_PUSH /* @min:%2epush */](channel);\r\n }\r\n else {\r\n removed = true;\r\n }\r\n });\r\n newChannelConfig[_DYN_PUSH /* @min:%2epush */](newQueue);\r\n });\r\n _channelConfig = newChannelConfig;\r\n }\r\n removeComplete && removeComplete(removed);\r\n _startLogPoller();\r\n });\r\n unloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](unloadState);\r\n }\r\n else {\r\n removeComplete(false);\r\n }\r\n }\r\n function _flushInternalLogs() {\r\n if (_logger && _logger.queue) {\r\n var queue = _logger.queue.slice(0);\r\n _logger.queue[_DYN_LENGTH /* @min:%2elength */] = 0;\r\n arrForEach(queue, function (logMessage) {\r\n var _a;\r\n var item = (_a = {},\r\n _a[_DYN_NAME /* @min:name */] = _internalLogsEventName ? _internalLogsEventName : \"InternalMessageId: \" + logMessage[_DYN_MESSAGE_ID /* @min:%2emessageId */],\r\n _a[_DYN_I_KEY /* @min:iKey */] = _instrumentationKey,\r\n _a[_DYN_TIME /* @min:time */] = toISOString(new Date()),\r\n _a.baseType = _InternalLogMessage.dataType,\r\n _a.baseData = { message: logMessage[_DYN_MESSAGE /* @min:%2emessage */] },\r\n _a);\r\n _self.track(item);\r\n });\r\n }\r\n }\r\n function _flushChannels(isAsync, callBack, sendReason, cbTimeout) {\r\n // Setting waiting to one so that we don't call the callBack until we finish iterating\r\n var waiting = 1;\r\n var doneIterating = false;\r\n var cbTimer = null;\r\n cbTimeout = cbTimeout || 5000;\r\n function doCallback() {\r\n waiting--;\r\n if (doneIterating && waiting === 0) {\r\n cbTimer && cbTimer[_DYN_CANCEL /* @min:%2ecancel */]();\r\n cbTimer = null;\r\n callBack && callBack(doneIterating);\r\n callBack = null;\r\n }\r\n }\r\n if (_channels && _channels[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var flushCtx = _createTelCtx()[_DYN_CREATE_NEW /* @min:%2ecreateNew */](_channels);\r\n flushCtx.iterate(function (plugin) {\r\n if (plugin.flush) {\r\n waiting++;\r\n var handled_1 = false;\r\n // Not all channels will call this callback for every scenario\r\n if (!plugin.flush(isAsync, function () {\r\n handled_1 = true;\r\n doCallback();\r\n }, sendReason)) {\r\n if (!handled_1) {\r\n // If any channel doesn't return true and it didn't call the callback, then we should assume that the callback\r\n // will never be called, so use a timeout to allow the channel(s) some time to \"finish\" before triggering any\r\n // followup function (such as unloading)\r\n if (isAsync && cbTimer == null) {\r\n cbTimer = scheduleTimeout(function () {\r\n cbTimer = null;\r\n doCallback();\r\n }, cbTimeout);\r\n }\r\n else {\r\n doCallback();\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n doneIterating = true;\r\n doCallback();\r\n return true;\r\n }\r\n function _initPerfManager() {\r\n // Save the previous config based performance manager creator to avoid creating new perf manager instances if unchanged\r\n var prevCfgPerfMgr;\r\n // Will get recalled if any referenced config values are changed\r\n _addUnloadHook(_configHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n var enablePerfMgr = details.cfg.enablePerfMgr;\r\n if (enablePerfMgr) {\r\n var createPerfMgr = details.cfg[STR_CREATE_PERF_MGR /* @min:%2ecreatePerfMgr */];\r\n // for preCfgPerfMgr = createPerfMgr = null\r\n // initial createPerfMgr function should be _createPerfManager\r\n if ((prevCfgPerfMgr !== createPerfMgr) || !prevCfgPerfMgr) {\r\n if (!createPerfMgr) {\r\n createPerfMgr = _createPerfManager;\r\n }\r\n // Set the performance manager creation function if not defined\r\n getSetValue(details.cfg, STR_CREATE_PERF_MGR, createPerfMgr);\r\n prevCfgPerfMgr = createPerfMgr;\r\n // Remove any existing config based performance manager\r\n _cfgPerfManager = null;\r\n }\r\n // Only create the performance manager if it's not already created or manually set\r\n if (!_perfManager && !_cfgPerfManager && isFunction(createPerfMgr)) {\r\n // Create a new config based performance manager\r\n _cfgPerfManager = createPerfMgr(_self, _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */]());\r\n }\r\n }\r\n else {\r\n // Remove any existing config based performance manager\r\n _cfgPerfManager = null;\r\n // Clear the previous cached value so it can be GC'd\r\n prevCfgPerfMgr = null;\r\n }\r\n }));\r\n }\r\n function _doUpdate(updateState) {\r\n var updateCtx = createProcessTelemetryUpdateContext(_getPluginChain(), _self);\r\n updateCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](_startLogPoller);\r\n if (!_self._updateHook || _self._updateHook(updateCtx, updateState) !== true) {\r\n updateCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](updateState);\r\n }\r\n }\r\n function _logOrThrowError(message) {\r\n var logger = _self[_DYN_LOGGER /* @min:%2elogger */];\r\n if (logger) {\r\n // there should always be a logger\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, message);\r\n _startLogPoller();\r\n }\r\n else {\r\n throwError(message);\r\n }\r\n }\r\n function _notifyInvalidEvent(telemetryItem) {\r\n var manager = _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */]();\r\n if (manager) {\r\n manager[STR_EVENTS_DISCARDED /* @min:%2eeventsDiscarded */]([telemetryItem], 2 /* eEventsDiscardedReason.InvalidEvent */);\r\n }\r\n }\r\n function _addUnloadHook(hooks) {\r\n _hookContainer.add(hooks);\r\n }\r\n });\r\n }\r\n AppInsightsCore.prototype.initialize = function (config, extensions, logger, notificationManager) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AppInsightsCore.prototype.getChannels = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n AppInsightsCore.prototype.track = function (telemetryItem) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AppInsightsCore.prototype.getProcessTelContext = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n AppInsightsCore.prototype.getNotifyMgr = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Adds a notification listener. The SDK calls methods on the listener when an appropriate notification is raised.\r\n * The added plugins must raise notifications. If the plugins do not implement the notifications, then no methods will be\r\n * called.\r\n * @param listener - An INotificationListener object.\r\n */\r\n AppInsightsCore.prototype.addNotificationListener = function (listener) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param listener - INotificationListener to remove.\r\n */\r\n AppInsightsCore.prototype.removeNotificationListener = function (listener) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Get the current cookie manager for this instance\r\n */\r\n AppInsightsCore.prototype.getCookieMgr = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Set the current cookie manager for this instance\r\n * @param cookieMgr - The manager, if set to null/undefined will cause the default to be created\r\n */\r\n AppInsightsCore.prototype.setCookieMgr = function (cookieMgr) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AppInsightsCore.prototype.getPerfMgr = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n AppInsightsCore.prototype.setPerfMgr = function (perfMgr) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AppInsightsCore.prototype.eventCnt = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return 0;\r\n };\r\n /**\r\n * Enable the timer that checks the logger.queue for log messages to be flushed.\r\n * Note: Since 3.0.1 and 2.8.13 this is no longer an interval timer but is a normal\r\n * timer that is only started when this function is called and then subsequently\r\n * only _if_ there are any logger.queue messages to be sent.\r\n */\r\n AppInsightsCore.prototype.pollInternalLogs = function (eventName) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Stop the timer that log messages from logger.queue when available\r\n */\r\n AppInsightsCore.prototype.stopPollingInternalLogs = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Add a telemetry processor to decorate or drop telemetry events.\r\n * @param telemetryInitializer - The Telemetry Initializer function\r\n * @returns - A ITelemetryInitializerHandler to enable the initializer to be removed\r\n */\r\n AppInsightsCore.prototype.addTelemetryInitializer = function (telemetryInitializer) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Unload and Tear down the SDK and any initialized plugins, after calling this the SDK will be considered\r\n * to be un-initialized and non-operational, re-initializing the SDK should only be attempted if the previous\r\n * unload call return `true` stating that all plugins reported that they also unloaded, the recommended\r\n * approach is to create a new instance and initialize that instance.\r\n * This is due to possible unexpected side effects caused by plugins not supporting unload / teardown, unable\r\n * to successfully remove any global references or they may just be completing the unload process asynchronously.\r\n * If you pass isAsync as `true` (also the default) and DO NOT pass a callback function then an [IPromise](https://nevware21.github.io/ts-async/typedoc/interfaces/IPromise.html)\r\n * will be returned which will resolve once the unload is complete. The actual implementation of the `IPromise`\r\n * will be a native Promise (if supported) or the default as supplied by [ts-async library](https://github.com/nevware21/ts-async)\r\n * @param isAsync - Can the unload be performed asynchronously (default)\r\n * @param unloadComplete - An optional callback that will be called once the unload has completed\r\n * @param cbTimeout - An optional timeout to wait for any flush operations to complete before proceeding with the\r\n * unload. Defaults to 5 seconds.\r\n * @return Nothing or if occurring asynchronously a [IPromise](https://nevware21.github.io/ts-async/typedoc/interfaces/IPromise.html)\r\n * which will be resolved once the unload is complete, the [IPromise](https://nevware21.github.io/ts-async/typedoc/interfaces/IPromise.html)\r\n * will only be returned when no callback is provided and isAsync is true\r\n */\r\n AppInsightsCore.prototype.unload = function (isAsync, unloadComplete, cbTimeout) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AppInsightsCore.prototype.getPlugin = function (pluginIdentifier) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Add a new plugin to the installation\r\n * @param plugin - The new plugin to add\r\n * @param replaceExisting - should any existing plugin be replaced, default is false\r\n * @param doAsync - Should the add be performed asynchronously\r\n * @param addCb - [Optional] callback to call after the plugin has been added\r\n */\r\n AppInsightsCore.prototype.addPlugin = function (plugin, replaceExisting, doAsync, addCb) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Update the configuration used and broadcast the changes to all loaded plugins\r\n * @param newConfig - The new configuration is apply\r\n * @param mergeExisting - Should the new configuration merge with the existing or just replace it. Default is to true.\r\n */\r\n AppInsightsCore.prototype.updateCfg = function (newConfig, mergeExisting) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Returns the unique event namespace that should be used\r\n */\r\n AppInsightsCore.prototype.evtNamespace = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Add an unload handler that will be called when the SDK is being unloaded\r\n * @param handler - the handler\r\n */\r\n AppInsightsCore.prototype.addUnloadCb = function (handler) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Flush and send any batched / cached data immediately\r\n * @param async - send data asynchronously when true (defaults to true)\r\n * @param callBack - if specified, notify caller when send is complete, the channel should return true to indicate to the caller that it will be called.\r\n * If the caller doesn't return true the caller should assume that it may never be called.\r\n * @param sendReason - specify the reason that you are calling \"flush\" defaults to ManualFlush (1) if not specified\r\n * @returns - true if the callback will be return after the flush is complete otherwise the caller should assume that any provided callback will never be called\r\n */\r\n AppInsightsCore.prototype.flush = function (isAsync, callBack, sendReason) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Gets the current distributed trace context for this instance if available\r\n * @param createNew - Optional flag to create a new instance if one doesn't currently exist, defaults to true\r\n */\r\n AppInsightsCore.prototype.getTraceCtx = function (createNew) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Sets the current distributed trace context for this instance if available\r\n */\r\n AppInsightsCore.prototype.setTraceCtx = function (newTracectx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Add this hook so that it is automatically removed during unloading\r\n * @param hooks - The single hook or an array of IInstrumentHook objects\r\n */\r\n AppInsightsCore.prototype.addUnloadHook = function (hooks) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Watches and tracks changes for accesses to the current config, and if the accessed config changes the\r\n * handler will be recalled.\r\n * @param handler\r\n * @returns A watcher handler instance that can be used to remove itself when being unloaded\r\n */\r\n AppInsightsCore.prototype.onCfgChange = function (handler) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Watches and tracks status of initialization process\r\n * @returns ActiveStatus\r\n * @since 3.3.0\r\n * If returned status is active, it means initialization process is completed.\r\n * If returned status is pending, it means the initialization process is waiting for promieses to be resolved.\r\n * If returned status is inactive, it means ikey is invalid or can 't get ikey or enpoint url from promsises.\r\n */\r\n AppInsightsCore.prototype.activeStatus = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Set Active Status to pending, which will block the incoming changes until internal promises are resolved\r\n * @internal Internal use\r\n * @since 3.3.0\r\n */\r\n AppInsightsCore.prototype._setPendingStatus = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n AppInsightsCore.prototype.releaseQueue = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Hook for Core extensions to allow them to update their own configuration before updating all of the plugins.\r\n * @param updateCtx - The plugin update context\r\n * @param updateState - The Update State\r\n * @returns boolean - True means the extension class will call updateState otherwise the Core will\r\n */\r\n AppInsightsCore.prototype._updateHook = function (updateCtx, updateState) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return false;\r\n };\r\n return AppInsightsCore;\r\n}());\r\nexport { AppInsightsCore };\r\n//# sourceMappingURL=AppInsightsCore.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar _a;\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { Sender } from \"@microsoft/applicationinsights-channel-js\";\r\nimport { DEFAULT_BREEZE_PATH, parseConnectionString } from \"@microsoft/applicationinsights-common\";\r\nimport { AppInsightsCore, cfgDfValidate, createDynamicConfig, onConfigChange, proxyFunctions } from \"@microsoft/applicationinsights-core-js\";\r\nimport { createSyncPromise, doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { isNullOrUndefined, isPromiseLike, isString, objDefine, throwError } from \"@nevware21/ts-utils\";\r\nimport { _DYN_CONNECTION_STRING, _DYN_ENDPOINT_URL, _DYN_INGESTIONENDPOINT, _DYN_INSTRUMENTATIONKEY0, _DYN_INSTRUMENTATION_KEY, _DYN_USER_OVERRIDE_ENDPOI1 } from \"./__DynamicConstants\";\r\nvar UNDEFINED_VALUE = undefined;\r\nvar defaultConfigValues = (_a = {\r\n diagnosticLogInterval: cfgDfValidate(_chkDiagLevel, 10000)\r\n },\r\n _a[_DYN_CONNECTION_STRING /* @min:connectionString */] = UNDEFINED_VALUE,\r\n _a[_DYN_ENDPOINT_URL /* @min:endpointUrl */] = UNDEFINED_VALUE,\r\n _a[_DYN_INSTRUMENTATION_KEY /* @min:instrumentationKey */] = UNDEFINED_VALUE,\r\n _a.extensionConfig = {},\r\n _a);\r\nfunction _chkDiagLevel(value) {\r\n // Make sure we have a value > 0\r\n return value && value > 0;\r\n}\r\n/**\r\n * @export\r\n * @class ApplicationInsights\r\n */\r\nvar ApplicationInsights = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ApplicationInsights.\r\n * @param config\r\n * @memberof ApplicationInsights\r\n */\r\n function ApplicationInsights(config) {\r\n var core = new AppInsightsCore();\r\n var _config;\r\n // initialize the queue and config in case they are undefined\r\n if (isNullOrUndefined(config) ||\r\n (isNullOrUndefined(config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */]) && isNullOrUndefined(config[_DYN_CONNECTION_STRING /* @min:%2econnectionString */]))) {\r\n throwError(\"Invalid input configuration\");\r\n }\r\n dynamicProto(ApplicationInsights, this, function (_self) {\r\n // Define _self.config\r\n objDefine(_self, \"config\", {\r\n g: function () { return _config; }\r\n });\r\n _initialize();\r\n _self.initialize = _initialize;\r\n _self.track = _track;\r\n proxyFunctions(_self, core, [\r\n \"flush\",\r\n \"pollInternalLogs\",\r\n \"stopPollingInternalLogs\",\r\n \"unload\",\r\n \"getPlugin\",\r\n \"addPlugin\",\r\n \"evtNamespace\",\r\n \"addUnloadCb\",\r\n \"onCfgChange\",\r\n \"getTraceCtx\",\r\n \"updateCfg\",\r\n \"addTelemetryInitializer\"\r\n ]);\r\n function _initialize() {\r\n var cfgHandler = createDynamicConfig(config || {}, defaultConfigValues);\r\n _config = cfgHandler.cfg;\r\n core.addUnloadHook(onConfigChange(cfgHandler, function () {\r\n var configCs = _config[_DYN_CONNECTION_STRING /* @min:%2econnectionString */];\r\n if (isPromiseLike(configCs)) {\r\n var ikeyPromise = createSyncPromise(function (resolve, reject) {\r\n doAwaitResponse(configCs, function (res) {\r\n var curCs = res.value;\r\n var ikey = _config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n if (!res.rejected && curCs) {\r\n // replace cs with resolved values in case of circular promises\r\n _config[_DYN_CONNECTION_STRING /* @min:%2econnectionString */] = curCs;\r\n var resolvedCs = parseConnectionString(curCs);\r\n ikey = resolvedCs[_DYN_INSTRUMENTATIONKEY0 /* @min:%2einstrumentationkey */] || ikey;\r\n }\r\n resolve(ikey);\r\n });\r\n });\r\n var urlPromise = createSyncPromise(function (resolve, reject) {\r\n doAwaitResponse(configCs, function (res) {\r\n var curCs = res.value;\r\n var url = _config[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */];\r\n if (!res.rejected && curCs) {\r\n var resolvedCs = parseConnectionString(curCs);\r\n var ingest = resolvedCs[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */];\r\n url = ingest ? ingest + DEFAULT_BREEZE_PATH : url;\r\n }\r\n resolve(url);\r\n });\r\n });\r\n _config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */] = ikeyPromise;\r\n _config[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */] = _config[_DYN_USER_OVERRIDE_ENDPOI1 /* @min:%2euserOverrideEndpointUrl */] || urlPromise;\r\n }\r\n if (isString(configCs)) {\r\n var cs = parseConnectionString(configCs);\r\n var ingest = cs[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */];\r\n _config[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */] = _config[_DYN_USER_OVERRIDE_ENDPOI1 /* @min:%2euserOverrideEndpointUrl */] ? _config[_DYN_USER_OVERRIDE_ENDPOI1 /* @min:%2euserOverrideEndpointUrl */] : (ingest + DEFAULT_BREEZE_PATH); // only add /v2/track when from connectionstring\r\n _config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */] = cs[_DYN_INSTRUMENTATIONKEY0 /* @min:%2einstrumentationkey */] || _config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n }\r\n // userOverrideEndpointUrl have the highest priority\r\n _config[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */] = _config[_DYN_USER_OVERRIDE_ENDPOI1 /* @min:%2euserOverrideEndpointUrl */] ? _config[_DYN_USER_OVERRIDE_ENDPOI1 /* @min:%2euserOverrideEndpointUrl */] : _config[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */];\r\n }));\r\n // initialize core\r\n core.initialize(_config, [new Sender()]);\r\n }\r\n });\r\n function _track(item) {\r\n if (item) {\r\n // to pass sender.processTelemetry()\r\n item.baseData = item.baseData || {};\r\n item.baseType = item.baseType || \"EventData\";\r\n }\r\n core.track(item);\r\n }\r\n }\r\n /**\r\n * Initialize this instance of ApplicationInsights\r\n *\r\n * @memberof ApplicationInsights\r\n */\r\n ApplicationInsights.prototype.initialize = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Send a manually constructed custom event\r\n *\r\n * @param item\r\n * @memberof ApplicationInsights\r\n */\r\n ApplicationInsights.prototype.track = function (item) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Immediately send all batched telemetry\r\n * @param [async=true]\r\n * @memberof ApplicationInsights\r\n */\r\n ApplicationInsights.prototype.flush = function (async) {\r\n if (async === void 0) { async = true; }\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n ApplicationInsights.prototype.pollInternalLogs = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n ApplicationInsights.prototype.stopPollingInternalLogs = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Unload and Tear down the SDK and any initialized plugins, after calling this the SDK will be considered\r\n * to be un-initialized and non-operational, re-initializing the SDK should only be attempted if the previous\r\n * unload call return `true` stating that all plugins reported that they also unloaded, the recommended\r\n * approach is to create a new instance and initialize that instance.\r\n * This is due to possible unexpected side effects caused by plugins not supporting unload / teardown, unable\r\n * to successfully remove any global references or they may just be completing the unload process asynchronously.\r\n * @param isAsync - Can the unload be performed asynchronously (default)\r\n * @param unloadComplete - An optional callback that will be called once the unload has completed\r\n * @param cbTimeout - An optional timeout to wait for any flush operations to complete before proceeding with the\r\n * unload. Defaults to 5 seconds.\r\n * @return Nothing or if occurring asynchronously a [IPromise](https://nevware21.github.io/ts-async/typedoc/interfaces/IPromise.html)\r\n * which will be resolved once the unload is complete, the [IPromise](https://nevware21.github.io/ts-async/typedoc/interfaces/IPromise.html)\r\n * will only be returned when no callback is provided and isAsync is true\r\n */\r\n ApplicationInsights.prototype.unload = function (isAsync, unloadComplete, cbTimeout) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Find and return the (first) plugin with the specified identifier if present\r\n * @param pluginIdentifier\r\n */\r\n ApplicationInsights.prototype.getPlugin = function (pluginIdentifier) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Add a new plugin to the installation\r\n * @param plugin - The new plugin to add\r\n * @param replaceExisting - should any existing plugin be replaced\r\n * @param doAsync - Should the add be performed asynchronously\r\n */\r\n ApplicationInsights.prototype.addPlugin = function (plugin, replaceExisting, doAsync, addCb) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Returns the unique event namespace that should be used\r\n */\r\n ApplicationInsights.prototype.evtNamespace = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Add an unload handler that will be called when the SDK is being unloaded\r\n * @param handler - the handler\r\n */\r\n ApplicationInsights.prototype.addUnloadCb = function (handler) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Gets the current distributed trace context for this instance if available\r\n */\r\n ApplicationInsights.prototype.getTraceCtx = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n ApplicationInsights.prototype.addTelemetryInitializer = function (telemetryInitializer) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Update the configuration used and broadcast the changes to all loaded plugins\r\n * @param newConfig - The new configuration is apply\r\n * @param mergeExisting - Should the new configuration merge with the existing or just replace it. Default is to merge.\r\n */\r\n ApplicationInsights.prototype.updateCfg = function (newConfig, mergeExisting) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Watches and tracks changes for accesses to the current config, and if the accessed config changes the\r\n * handler will be recalled.\r\n * @param handler\r\n * @returns A watcher handler instance that can be used to remove itself when being unloaded\r\n */\r\n ApplicationInsights.prototype.onCfgChange = function (handler) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n return ApplicationInsights;\r\n}());\r\nexport { ApplicationInsights };\r\nexport { AppInsightsCore, arrForEach, isNullOrUndefined, throwError, proxyFunctions } from \"@microsoft/applicationinsights-core-js\";\r\nexport { SeverityLevel } from \"@microsoft/applicationinsights-common\";\r\nexport { Sender } from \"@microsoft/applicationinsights-channel-js\";\r\n//# sourceMappingURL=index.js.map","export var HAS_WINDOW_SUPPORT = typeof window !== 'undefined';\nexport var HAS_DOCUMENT_SUPPORT = typeof document !== 'undefined';\nexport var HAS_NAVIGATOR_SUPPORT = typeof navigator !== 'undefined';\nexport var HAS_PROMISE_SUPPORT = typeof Promise !== 'undefined';\n/* istanbul ignore next: JSDOM always returns false */\n\nexport var HAS_MUTATION_OBSERVER_SUPPORT = typeof MutationObserver !== 'undefined' || typeof WebKitMutationObserver !== 'undefined' || typeof MozMutationObserver !== 'undefined';\nexport var IS_BROWSER = HAS_WINDOW_SUPPORT && HAS_DOCUMENT_SUPPORT && HAS_NAVIGATOR_SUPPORT;\nexport var WINDOW = HAS_WINDOW_SUPPORT ? window : {};\nexport var DOCUMENT = HAS_DOCUMENT_SUPPORT ? document : {};\nexport var NAVIGATOR = HAS_NAVIGATOR_SUPPORT ? navigator : {};\nexport var USER_AGENT = (NAVIGATOR.userAgent || '').toLowerCase();\nexport var IS_JSDOM = USER_AGENT.indexOf('jsdom') > 0;\nexport var IS_IE = /msie|trident/.test(USER_AGENT); // Determine if the browser supports the option passive for events\n\nexport var HAS_PASSIVE_EVENT_SUPPORT = function () {\n var passiveEventSupported = false;\n\n if (IS_BROWSER) {\n try {\n var options = {\n // This function will be called when the browser\n // attempts to access the passive property\n get passive() {\n /* istanbul ignore next: will never be called in JSDOM */\n passiveEventSupported = true;\n }\n\n };\n WINDOW.addEventListener('test', options, options);\n WINDOW.removeEventListener('test', options, options);\n } catch (_unused) {\n /* istanbul ignore next: will never be called in JSDOM */\n passiveEventSupported = false;\n }\n }\n\n return passiveEventSupported;\n}();\nexport var HAS_TOUCH_SUPPORT = IS_BROWSER && ('ontouchstart' in DOCUMENT.documentElement || NAVIGATOR.maxTouchPoints > 0);\nexport var HAS_POINTER_EVENT_SUPPORT = IS_BROWSER && Boolean(WINDOW.PointerEvent || WINDOW.MSPointerEvent);\n/* istanbul ignore next: JSDOM only checks for 'IntersectionObserver' */\n\nexport var HAS_INTERACTION_OBSERVER_SUPPORT = IS_BROWSER && 'IntersectionObserver' in WINDOW && 'IntersectionObserverEntry' in WINDOW && // Edge 15 and UC Browser lack support for `isIntersecting`\n// but we an use `intersectionRatio > 0` instead\n// 'isIntersecting' in window.IntersectionObserverEntry.prototype &&\n'intersectionRatio' in WINDOW.IntersectionObserverEntry.prototype;","export var NAME = 'BvConfig';\nexport var PROP_NAME = '$bvConfig';\nexport var DEFAULT_BREAKPOINT = ['xs', 'sm', 'md', 'lg', 'xl'];","// --- General ---\nexport var RX_ARRAY_NOTATION = /\\[(\\d+)]/g;\nexport var RX_BV_PREFIX = /^(BV?)/;\nexport var RX_DIGITS = /^\\d+$/;\nexport var RX_EXTENSION = /^\\..+/;\nexport var RX_HASH = /^#/;\nexport var RX_HASH_ID = /^#[A-Za-z]+[\\w\\-:.]*$/;\nexport var RX_HTML_TAGS = /(<([^>]+)>)/gi;\nexport var RX_HYPHENATE = /\\B([A-Z])/g;\nexport var RX_LOWER_UPPER = /([a-z])([A-Z])/g;\nexport var RX_NUMBER = /^[0-9]*\\.?[0-9]+$/;\nexport var RX_PLUS = /\\+/g;\nexport var RX_REGEXP_REPLACE = /[-/\\\\^$*+?.()|[\\]{}]/g;\nexport var RX_SPACES = /[\\s\\uFEFF\\xA0]+/g;\nexport var RX_SPACE_SPLIT = /\\s+/;\nexport var RX_STAR = /\\/\\*$/;\nexport var RX_START_SPACE_WORD = /(\\s|^)(\\w)/g;\nexport var RX_TRIM_LEFT = /^\\s+/;\nexport var RX_TRIM_RIGHT = /\\s+$/;\nexport var RX_UNDERSCORE = /_/g;\nexport var RX_UN_KEBAB = /-(\\w)/g; // --- Date ---\n// Loose YYYY-MM-DD matching, ignores any appended time inforation\n// Matches '1999-12-20', '1999-1-1', '1999-01-20T22:51:49.118Z', '1999-01-02 13:00:00'\n\nexport var RX_DATE = /^\\d+-\\d\\d?-\\d\\d?(?:\\s|T|$)/; // Used to split off the date parts of the YYYY-MM-DD string\n\nexport var RX_DATE_SPLIT = /-|\\s|T/; // Time string RegEx (optional seconds)\n\nexport var RX_TIME = /^([0-1]?[0-9]|2[0-3]):[0-5]?[0-9](:[0-5]?[0-9])?$/; // --- URL ---\n// HREFs must end with a hash followed by at least one non-hash character\n\nexport var RX_HREF = /^.*(#[^#]+)$/;\nexport var RX_ENCODED_COMMA = /%2C/g;\nexport var RX_ENCODE_REVERSE = /[!'()*]/g;\nexport var RX_QUERY_START = /^(\\?|#|&)/; // --- Aspect ---\n\nexport var RX_ASPECT = /^\\d+(\\.\\d*)?[/:]\\d+(\\.\\d*)?$/;\nexport var RX_ASPECT_SEPARATOR = /[/:]/; // --- Grid ---\n\nexport var RX_COL_CLASS = /^col-/; // --- Icon ---\n\nexport var RX_ICON_PREFIX = /^BIcon/; // --- Locale ---\n\nexport var RX_STRIP_LOCALE_MODS = /-u-.+/;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } Object.defineProperty(subClass, \"prototype\", { value: Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }), writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { HAS_WINDOW_SUPPORT, WINDOW } from './env';\n/* istanbul ignore next */\n\nexport var Element = HAS_WINDOW_SUPPORT ? WINDOW.Element : /*#__PURE__*/function (_Object) {\n _inherits(Element, _Object);\n\n var _super = _createSuper(Element);\n\n function Element() {\n _classCallCheck(this, Element);\n\n return _super.apply(this, arguments);\n }\n\n return Element;\n}( /*#__PURE__*/_wrapNativeSuper(Object));\n/* istanbul ignore next */\n\nexport var HTMLElement = HAS_WINDOW_SUPPORT ? WINDOW.HTMLElement : /*#__PURE__*/function (_Element) {\n _inherits(HTMLElement, _Element);\n\n var _super2 = _createSuper(HTMLElement);\n\n function HTMLElement() {\n _classCallCheck(this, HTMLElement);\n\n return _super2.apply(this, arguments);\n }\n\n return HTMLElement;\n}(Element);\n/* istanbul ignore next */\n\nexport var SVGElement = HAS_WINDOW_SUPPORT ? WINDOW.SVGElement : /*#__PURE__*/function (_Element2) {\n _inherits(SVGElement, _Element2);\n\n var _super3 = _createSuper(SVGElement);\n\n function SVGElement() {\n _classCallCheck(this, SVGElement);\n\n return _super3.apply(this, arguments);\n }\n\n return SVGElement;\n}(Element);\n/* istanbul ignore next */\n\nexport var File = HAS_WINDOW_SUPPORT ? WINDOW.File : /*#__PURE__*/function (_Object2) {\n _inherits(File, _Object2);\n\n var _super4 = _createSuper(File);\n\n function File() {\n _classCallCheck(this, File);\n\n return _super4.apply(this, arguments);\n }\n\n return File;\n}( /*#__PURE__*/_wrapNativeSuper(Object));","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nimport { RX_NUMBER } from '../constants/regex';\nimport { File } from '../constants/safe-types'; // --- Convenience inspection utilities ---\n\nexport var toType = function toType(value) {\n return _typeof(value);\n};\nexport var toRawType = function toRawType(value) {\n return Object.prototype.toString.call(value).slice(8, -1);\n};\nexport var toRawTypeLC = function toRawTypeLC(value) {\n return toRawType(value).toLowerCase();\n};\nexport var isUndefined = function isUndefined(value) {\n return value === undefined;\n};\nexport var isNull = function isNull(value) {\n return value === null;\n};\nexport var isEmptyString = function isEmptyString(value) {\n return value === '';\n};\nexport var isUndefinedOrNull = function isUndefinedOrNull(value) {\n return isUndefined(value) || isNull(value);\n};\nexport var isUndefinedOrNullOrEmpty = function isUndefinedOrNullOrEmpty(value) {\n return isUndefinedOrNull(value) || isEmptyString(value);\n};\nexport var isFunction = function isFunction(value) {\n return toType(value) === 'function';\n};\nexport var isBoolean = function isBoolean(value) {\n return toType(value) === 'boolean';\n};\nexport var isString = function isString(value) {\n return toType(value) === 'string';\n};\nexport var isNumber = function isNumber(value) {\n return toType(value) === 'number';\n};\nexport var isNumeric = function isNumeric(value) {\n return RX_NUMBER.test(String(value));\n};\nexport var isPrimitive = function isPrimitive(value) {\n return isBoolean(value) || isString(value) || isNumber(value);\n};\nexport var isArray = function isArray(value) {\n return Array.isArray(value);\n}; // Quick object check\n// This is primarily used to tell Objects from primitive values\n// when we know the value is a JSON-compliant type\n// Note object could be a complex type like array, Date, etc.\n\nexport var isObject = function isObject(obj) {\n return obj !== null && _typeof(obj) === 'object';\n}; // Strict object type check\n// Only returns true for plain JavaScript objects\n\nexport var isPlainObject = function isPlainObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n};\nexport var isDate = function isDate(value) {\n return value instanceof Date;\n};\nexport var isEvent = function isEvent(value) {\n return value instanceof Event;\n};\nexport var isFile = function isFile(value) {\n return value instanceof File;\n};\nexport var isRegExp = function isRegExp(value) {\n return toRawType(value) === 'RegExp';\n};\nexport var isPromise = function isPromise(value) {\n return !isUndefinedOrNull(value) && isFunction(value.then) && isFunction(value.catch);\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { isObject } from './inspect'; // --- Static ---\n\nexport var assign = function assign() {\n return Object.assign.apply(Object, arguments);\n};\nexport var create = function create(proto, optionalProps) {\n return Object.create(proto, optionalProps);\n};\nexport var defineProperties = function defineProperties(obj, props) {\n return Object.defineProperties(obj, props);\n};\nexport var defineProperty = function defineProperty(obj, prop, descriptor) {\n return Object.defineProperty(obj, prop, descriptor);\n};\nexport var freeze = function freeze(obj) {\n return Object.freeze(obj);\n};\nexport var getOwnPropertyNames = function getOwnPropertyNames(obj) {\n return Object.getOwnPropertyNames(obj);\n};\nexport var getOwnPropertyDescriptor = function getOwnPropertyDescriptor(obj, prop) {\n return Object.getOwnPropertyDescriptor(obj, prop);\n};\nexport var getOwnPropertySymbols = function getOwnPropertySymbols(obj) {\n return Object.getOwnPropertySymbols(obj);\n};\nexport var getPrototypeOf = function getPrototypeOf(obj) {\n return Object.getPrototypeOf(obj);\n};\nexport var is = function is(value1, value2) {\n return Object.is(value1, value2);\n};\nexport var isFrozen = function isFrozen(obj) {\n return Object.isFrozen(obj);\n};\nexport var keys = function keys(obj) {\n return Object.keys(obj);\n}; // --- \"Instance\" ---\n\nexport var hasOwnProperty = function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n};\nexport var toString = function toString(obj) {\n return Object.prototype.toString.call(obj);\n}; // --- Utilities ---\n// Shallow copy an object\n\nexport var clone = function clone(obj) {\n return _objectSpread({}, obj);\n}; // Return a shallow copy of object with the specified properties only\n// See: https://gist.github.com/bisubus/2da8af7e801ffd813fab7ac221aa7afc\n\nexport var pick = function pick(obj, props) {\n return keys(obj).filter(function (key) {\n return props.indexOf(key) !== -1;\n }).reduce(function (result, key) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, key, obj[key]));\n }, {});\n}; // Return a shallow copy of object with the specified properties omitted\n// See: https://gist.github.com/bisubus/2da8af7e801ffd813fab7ac221aa7afc\n\nexport var omit = function omit(obj, props) {\n return keys(obj).filter(function (key) {\n return props.indexOf(key) === -1;\n }).reduce(function (result, key) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, key, obj[key]));\n }, {});\n}; // Merges two object deeply together\n// See: https://gist.github.com/Salakar/1d7137de9cb8b704e48a\n\nexport var mergeDeep = function mergeDeep(target, source) {\n if (isObject(target) && isObject(source)) {\n keys(source).forEach(function (key) {\n if (isObject(source[key])) {\n if (!target[key] || !isObject(target[key])) {\n target[key] = source[key];\n }\n\n mergeDeep(target[key], source[key]);\n } else {\n assign(target, _defineProperty({}, key, source[key]));\n }\n });\n }\n\n return target;\n}; // Returns a shallow copy of the object with keys in sorted order\n\nexport var sortKeys = function sortKeys(obj) {\n return keys(obj).sort().reduce(function (result, key) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, key, obj[key]));\n }, {});\n}; // Convenience method to create a read-only descriptor\n\nexport var readonlyDescriptor = function readonlyDescriptor() {\n return {\n enumerable: true,\n configurable: false,\n writable: false\n };\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { isArray, isPlainObject } from './inspect';\nimport { keys } from './object';\nexport var cloneDeep = function cloneDeep(obj) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : obj;\n\n if (isArray(obj)) {\n return obj.reduce(function (result, val) {\n return [].concat(_toConsumableArray(result), [cloneDeep(val, val)]);\n }, []);\n }\n\n if (isPlainObject(obj)) {\n return keys(obj).reduce(function (result, key) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, key, cloneDeep(obj[key], obj[key])));\n }, {});\n }\n\n return defaultValue;\n};","export var identity = function identity(x) {\n return x;\n};","import { RX_ARRAY_NOTATION } from '../constants/regex';\nimport { identity } from './identity';\nimport { isArray, isNull, isObject, isUndefinedOrNull } from './inspect';\n/**\n * Get property defined by dot/array notation in string, returns undefined if not found\n *\n * @link https://gist.github.com/jeneg/9767afdcca45601ea44930ea03e0febf#gistcomment-1935901\n *\n * @param {Object} obj\n * @param {string|Array} path\n * @return {*}\n */\n\nexport var getRaw = function getRaw(obj, path) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n // Handle array of path values\n path = isArray(path) ? path.join('.') : path; // If no path or no object passed\n\n if (!path || !isObject(obj)) {\n return defaultValue;\n } // Handle edge case where user has dot(s) in top-level item field key\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2762\n // Switched to `in` operator vs `hasOwnProperty` to handle obj.prototype getters\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/3463\n\n\n if (path in obj) {\n return obj[path];\n } // Handle string array notation (numeric indices only)\n\n\n path = String(path).replace(RX_ARRAY_NOTATION, '.$1');\n var steps = path.split('.').filter(identity); // Handle case where someone passes a string of only dots\n\n if (steps.length === 0) {\n return defaultValue;\n } // Traverse path in object to find result\n // Switched to `in` operator vs `hasOwnProperty` to handle obj.prototype getters\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/3463\n\n\n return steps.every(function (step) {\n return isObject(obj) && step in obj && !isUndefinedOrNull(obj = obj[step]);\n }) ? obj : isNull(obj) ? null : defaultValue;\n};\n/**\n * Get property defined by dot/array notation in string.\n *\n * @link https://gist.github.com/jeneg/9767afdcca45601ea44930ea03e0febf#gistcomment-1935901\n *\n * @param {Object} obj\n * @param {string|Array} path\n * @param {*} defaultValue (optional)\n * @return {*}\n */\n\nexport var get = function get(obj, path) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var value = getRaw(obj, path);\n return isUndefinedOrNull(value) ? defaultValue : value;\n};","/**\n * Utilities to get information about the current environment\n */\nexport var getEnv = function getEnv(key) {\n var fallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var env = typeof process !== 'undefined' && process ? process.env || {} : {};\n\n if (!key) {\n /* istanbul ignore next */\n return env;\n }\n\n return env[key] || fallback;\n};\nexport var getNoWarn = function getNoWarn() {\n return getEnv('BOOTSTRAP_VUE_NO_WARN') || getEnv('NODE_ENV') === 'production';\n};","import { IS_BROWSER, HAS_PROMISE_SUPPORT, HAS_MUTATION_OBSERVER_SUPPORT } from '../constants/env';\nimport { getNoWarn } from './env';\n/**\n * Log a warning message to the console with BootstrapVue formatting\n * @param {string} message\n */\n\nexport var warn = function warn(message)\n/* istanbul ignore next */\n{\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (!getNoWarn()) {\n console.warn(\"[BootstrapVue warn]: \".concat(source ? \"\".concat(source, \" - \") : '').concat(message));\n }\n};\n/**\n * Warn when no Promise support is given\n * @param {string} source\n * @returns {boolean} warned\n */\n\nexport var warnNotClient = function warnNotClient(source) {\n /* istanbul ignore else */\n if (IS_BROWSER) {\n return false;\n } else {\n warn(\"\".concat(source, \": Can not be called during SSR.\"));\n return true;\n }\n};\n/**\n * Warn when no Promise support is given\n * @param {string} source\n * @returns {boolean} warned\n */\n\nexport var warnNoPromiseSupport = function warnNoPromiseSupport(source) {\n /* istanbul ignore else */\n if (HAS_PROMISE_SUPPORT) {\n return false;\n } else {\n warn(\"\".concat(source, \": Requires Promise support.\"));\n return true;\n }\n};\n/**\n * Warn when no MutationObserver support is given\n * @param {string} source\n * @returns {boolean} warned\n */\n\nexport var warnNoMutationObserverSupport = function warnNoMutationObserverSupport(source) {\n /* istanbul ignore else */\n if (HAS_MUTATION_OBSERVER_SUPPORT) {\n return false;\n } else {\n warn(\"\".concat(source, \": Requires MutationObserver support.\"));\n return true;\n }\n};","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport { Vue as OurVue } from '../vue';\nimport { NAME, PROP_NAME } from '../constants/config';\nimport { cloneDeep } from './clone-deep';\nimport { getRaw } from './get';\nimport { isArray, isPlainObject, isString, isUndefined } from './inspect';\nimport { getOwnPropertyNames } from './object';\nimport { warn } from './warn'; // Config manager class\n\nvar BvConfig = /*#__PURE__*/function () {\n function BvConfig() {\n _classCallCheck(this, BvConfig);\n\n this.$_config = {};\n } // Method to merge in user config parameters\n\n\n _createClass(BvConfig, [{\n key: \"setConfig\",\n value: function setConfig() {\n var _this = this;\n\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n /* istanbul ignore next */\n if (!isPlainObject(config)) {\n return;\n }\n\n var configKeys = getOwnPropertyNames(config);\n configKeys.forEach(function (key) {\n /* istanbul ignore next */\n var subConfig = config[key];\n\n if (key === 'breakpoints') {\n /* istanbul ignore if */\n if (!isArray(subConfig) || subConfig.length < 2 || subConfig.some(function (b) {\n return !isString(b) || b.length === 0;\n })) {\n warn('\"breakpoints\" must be an array of at least 2 breakpoint names', NAME);\n } else {\n _this.$_config[key] = cloneDeep(subConfig);\n }\n } else if (isPlainObject(subConfig)) {\n // Component prop defaults\n _this.$_config[key] = getOwnPropertyNames(subConfig).reduce(function (config, prop) {\n if (!isUndefined(subConfig[prop])) {\n config[prop] = cloneDeep(subConfig[prop]);\n }\n\n return config;\n }, _this.$_config[key] || {});\n }\n });\n } // Clear the config\n\n }, {\n key: \"resetConfig\",\n value: function resetConfig() {\n this.$_config = {};\n } // Returns a deep copy of the user config\n\n }, {\n key: \"getConfig\",\n value: function getConfig() {\n return cloneDeep(this.$_config);\n } // Returns a deep copy of the config value\n\n }, {\n key: \"getConfigValue\",\n value: function getConfigValue(key) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n return cloneDeep(getRaw(this.$_config, key, defaultValue));\n }\n }]);\n\n return BvConfig;\n}(); // Method for applying a global config\n\n\nexport var setConfig = function setConfig() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var Vue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : OurVue;\n // Ensure we have a `$bvConfig` Object on the Vue prototype\n // We set on Vue and OurVue just in case consumer has not set an alias of `vue`\n Vue.prototype[PROP_NAME] = OurVue.prototype[PROP_NAME] = Vue.prototype[PROP_NAME] || OurVue.prototype[PROP_NAME] || new BvConfig(); // Apply the config values\n\n Vue.prototype[PROP_NAME].setConfig(config);\n}; // Method for resetting the user config\n// Exported for testing purposes only\n\nexport var resetConfig = function resetConfig() {\n if (OurVue.prototype[PROP_NAME] && OurVue.prototype[PROP_NAME].resetConfig) {\n OurVue.prototype[PROP_NAME].resetConfig();\n }\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue as OurVue } from '../vue';\nimport { HAS_WINDOW_SUPPORT, IS_JSDOM } from '../constants/env';\nimport { setConfig } from './config-set';\nimport { warn } from './warn';\n/**\n * Checks if there are multiple instances of Vue, and warns (once) about possible issues.\n * @param {object} Vue\n */\n\nexport var checkMultipleVue = function () {\n var checkMultipleVueWarned = false;\n var MULTIPLE_VUE_WARNING = ['Multiple instances of Vue detected!', 'You may need to set up an alias for Vue in your bundler config.', 'See: https://bootstrap-vue.org/docs#using-module-bundlers'].join('\\n');\n return function (Vue) {\n /* istanbul ignore next */\n if (!checkMultipleVueWarned && OurVue !== Vue && !IS_JSDOM) {\n warn(MULTIPLE_VUE_WARNING);\n }\n\n checkMultipleVueWarned = true;\n };\n}();\n/**\n * Plugin install factory function.\n * @param {object} { components, directives }\n * @returns {function} plugin install function\n */\n\nexport var installFactory = function installFactory() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n components = _ref.components,\n directives = _ref.directives,\n plugins = _ref.plugins;\n\n var install = function install(Vue) {\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (install.installed) {\n /* istanbul ignore next */\n return;\n }\n\n install.installed = true;\n checkMultipleVue(Vue);\n setConfig(config, Vue);\n registerComponents(Vue, components);\n registerDirectives(Vue, directives);\n registerPlugins(Vue, plugins);\n };\n\n install.installed = false;\n return install;\n};\n/**\n * Plugin install factory function (no plugin config option).\n * @param {object} { components, directives }\n * @returns {function} plugin install function\n */\n\nexport var installFactoryNoConfig = function installFactoryNoConfig() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n components = _ref2.components,\n directives = _ref2.directives,\n plugins = _ref2.plugins;\n\n var install = function install(Vue) {\n if (install.installed) {\n /* istanbul ignore next */\n return;\n }\n\n install.installed = true;\n checkMultipleVue(Vue);\n registerComponents(Vue, components);\n registerDirectives(Vue, directives);\n registerPlugins(Vue, plugins);\n };\n\n install.installed = false;\n return install;\n};\n/**\n * Plugin object factory function.\n * @param {object} { components, directives, plugins }\n * @returns {object} plugin install object\n */\n\nexport var pluginFactory = function pluginFactory() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var extend = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return _objectSpread(_objectSpread({}, extend), {}, {\n install: installFactory(options)\n });\n};\n/**\n * Plugin object factory function (no config option).\n * @param {object} { components, directives, plugins }\n * @returns {object} plugin install object\n */\n\nexport var pluginFactoryNoConfig = function pluginFactoryNoConfig() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var extend = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return _objectSpread(_objectSpread({}, extend), {}, {\n install: installFactoryNoConfig(options)\n });\n};\n/**\n * Load a group of plugins.\n * @param {object} Vue\n * @param {object} Plugin definitions\n */\n\nexport var registerPlugins = function registerPlugins(Vue) {\n var plugins = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n for (var plugin in plugins) {\n if (plugin && plugins[plugin]) {\n Vue.use(plugins[plugin]);\n }\n }\n};\n/**\n * Load a component.\n * @param {object} Vue\n * @param {string} Component name\n * @param {object} Component definition\n */\n\nexport var registerComponent = function registerComponent(Vue, name, def) {\n if (Vue && name && def) {\n Vue.component(name, def);\n }\n};\n/**\n * Load a group of components.\n * @param {object} Vue\n * @param {object} Object of component definitions\n */\n\nexport var registerComponents = function registerComponents(Vue) {\n var components = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n for (var component in components) {\n registerComponent(Vue, component, components[component]);\n }\n};\n/**\n * Load a directive.\n * @param {object} Vue\n * @param {string} Directive name\n * @param {object} Directive definition\n */\n\nexport var registerDirective = function registerDirective(Vue, name, def) {\n if (Vue && name && def) {\n // Ensure that any leading V is removed from the\n // name, as Vue adds it automatically\n Vue.directive(name.replace(/^VB/, 'B'), def);\n }\n};\n/**\n * Load a group of directives.\n * @param {object} Vue\n * @param {object} Object of directive definitions\n */\n\nexport var registerDirectives = function registerDirectives(Vue) {\n var directives = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n for (var directive in directives) {\n registerDirective(Vue, directive, directives[directive]);\n }\n};\n/**\n * Install plugin if window.Vue available\n * @param {object} Plugin definition\n */\n\nexport var vueUse = function vueUse(VuePlugin) {\n /* istanbul ignore next */\n if (HAS_WINDOW_SUPPORT && window.Vue) {\n window.Vue.use(VuePlugin);\n }\n /* istanbul ignore next */\n\n\n if (HAS_WINDOW_SUPPORT && VuePlugin.NAME) {\n window[VuePlugin.NAME] = VuePlugin;\n }\n};","// Component names\nexport var NAME_ALERT = 'BAlert';\nexport var NAME_ASPECT = 'BAspect';\nexport var NAME_AVATAR = 'BAvatar';\nexport var NAME_AVATAR_GROUP = 'BAvatarGroup';\nexport var NAME_BADGE = 'BBadge';\nexport var NAME_BREADCRUMB = 'BBreadcrumb';\nexport var NAME_BREADCRUMB_ITEM = 'BBreadcrumbItem';\nexport var NAME_BREADCRUMB_LINK = 'BBreadcrumbLink';\nexport var NAME_BUTTON = 'BButton';\nexport var NAME_BUTTON_CLOSE = 'BButtonClose';\nexport var NAME_BUTTON_GROUP = 'BButtonGroup';\nexport var NAME_BUTTON_TOOLBAR = 'BButtonToolbar';\nexport var NAME_CALENDAR = 'BCalendar';\nexport var NAME_CARD = 'BCard';\nexport var NAME_CARD_BODY = 'BCardBody';\nexport var NAME_CARD_FOOTER = 'BCardFooter';\nexport var NAME_CARD_GROUP = 'BCardGroup';\nexport var NAME_CARD_HEADER = 'BCardHeader';\nexport var NAME_CARD_IMG = 'BCardImg';\nexport var NAME_CARD_IMG_LAZY = 'BCardImgLazy';\nexport var NAME_CARD_SUB_TITLE = 'BCardSubTitle';\nexport var NAME_CARD_TEXT = 'BCardText';\nexport var NAME_CARD_TITLE = 'BCardTitle';\nexport var NAME_CAROUSEL = 'BCarousel';\nexport var NAME_CAROUSEL_SLIDE = 'BCarouselSlide';\nexport var NAME_COL = 'BCol';\nexport var NAME_COLLAPSE = 'BCollapse';\nexport var NAME_CONTAINER = 'BContainer';\nexport var NAME_DROPDOWN = 'BDropdown';\nexport var NAME_DROPDOWN_DIVIDER = 'BDropdownDivider';\nexport var NAME_DROPDOWN_FORM = 'BDropdownForm';\nexport var NAME_DROPDOWN_GROUP = 'BDropdownGroup';\nexport var NAME_DROPDOWN_HEADER = 'BDropdownHeader';\nexport var NAME_DROPDOWN_ITEM = 'BDropdownItem';\nexport var NAME_DROPDOWN_ITEM_BUTTON = 'BDropdownItemButton';\nexport var NAME_DROPDOWN_TEXT = 'BDropdownText';\nexport var NAME_EMBED = 'BEmbed';\nexport var NAME_FORM = 'BForm';\nexport var NAME_FORM_CHECKBOX = 'BFormCheckbox';\nexport var NAME_FORM_CHECKBOX_GROUP = 'BFormCheckboxGroup';\nexport var NAME_FORM_DATALIST = 'BFormDatalist';\nexport var NAME_FORM_DATEPICKER = 'BFormDatepicker';\nexport var NAME_FORM_FILE = 'BFormFile';\nexport var NAME_FORM_GROUP = 'BFormGroup';\nexport var NAME_FORM_INPUT = 'BFormInput';\nexport var NAME_FORM_INVALID_FEEDBACK = 'BFormInvalidFeedback';\nexport var NAME_FORM_RADIO = 'BFormRadio';\nexport var NAME_FORM_RADIO_GROUP = 'BFormRadioGroup';\nexport var NAME_FORM_RATING = 'BFormRating';\nexport var NAME_FORM_ROW = 'BFormRow';\nexport var NAME_FORM_SELECT = 'BFormSelect';\nexport var NAME_FORM_SELECT_OPTION = 'BFormSelectOption';\nexport var NAME_FORM_SELECT_OPTION_GROUP = 'BFormSelectOptionGroup';\nexport var NAME_FORM_SPINBUTTON = 'BFormSpinbutton';\nexport var NAME_FORM_TAG = 'BFormTag';\nexport var NAME_FORM_TAGS = 'BFormTags';\nexport var NAME_FORM_TEXT = 'BFormText';\nexport var NAME_FORM_TEXTAREA = 'BFormTextarea';\nexport var NAME_FORM_TIMEPICKER = 'BFormTimepicker';\nexport var NAME_FORM_VALID_FEEDBACK = 'BFormValidFeedback';\nexport var NAME_ICON = 'BIcon';\nexport var NAME_ICONSTACK = 'BIconstack';\nexport var NAME_ICON_BASE = 'BIconBase';\nexport var NAME_IMG = 'BImg';\nexport var NAME_IMG_LAZY = 'BImgLazy';\nexport var NAME_INPUT_GROUP = 'BInputGroup';\nexport var NAME_INPUT_GROUP_ADDON = 'BInputGroupAddon';\nexport var NAME_INPUT_GROUP_APPEND = 'BInputGroupAppend';\nexport var NAME_INPUT_GROUP_PREPEND = 'BInputGroupPrepend';\nexport var NAME_INPUT_GROUP_TEXT = 'BInputGroupText';\nexport var NAME_JUMBOTRON = 'BJumbotron';\nexport var NAME_LINK = 'BLink';\nexport var NAME_LIST_GROUP = 'BListGroup';\nexport var NAME_LIST_GROUP_ITEM = 'BListGroupItem';\nexport var NAME_MEDIA = 'BMedia';\nexport var NAME_MEDIA_ASIDE = 'BMediaAside';\nexport var NAME_MEDIA_BODY = 'BMediaBody';\nexport var NAME_MODAL = 'BModal';\nexport var NAME_MSG_BOX = 'BMsgBox';\nexport var NAME_NAV = 'BNav';\nexport var NAME_NAVBAR = 'BNavbar';\nexport var NAME_NAVBAR_BRAND = 'BNavbarBrand';\nexport var NAME_NAVBAR_NAV = 'BNavbarNav';\nexport var NAME_NAVBAR_TOGGLE = 'BNavbarToggle';\nexport var NAME_NAV_FORM = 'BNavForm';\nexport var NAME_NAV_ITEM = 'BNavItem';\nexport var NAME_NAV_ITEM_DROPDOWN = 'BNavItemDropdown';\nexport var NAME_NAV_TEXT = 'BNavText';\nexport var NAME_OVERLAY = 'BOverlay';\nexport var NAME_PAGINATION = 'BPagination';\nexport var NAME_PAGINATION_NAV = 'BPaginationNav';\nexport var NAME_POPOVER = 'BPopover';\nexport var NAME_PROGRESS = 'BProgress';\nexport var NAME_PROGRESS_BAR = 'BProgressBar';\nexport var NAME_ROW = 'BRow';\nexport var NAME_SIDEBAR = 'BSidebar';\nexport var NAME_SKELETON = 'BSkeleton';\nexport var NAME_SKELETON_ICON = 'BSkeletonIcon';\nexport var NAME_SKELETON_IMG = 'BSkeletonImg';\nexport var NAME_SKELETON_TABLE = 'BSkeletonTable';\nexport var NAME_SKELETON_WRAPPER = 'BSkeletonWrapper';\nexport var NAME_SPINNER = 'BSpinner';\nexport var NAME_TAB = 'BTab';\nexport var NAME_TABLE = 'BTable';\nexport var NAME_TABLE_CELL = 'BTableCell';\nexport var NAME_TABLE_LITE = 'BTableLite';\nexport var NAME_TABLE_SIMPLE = 'BTableSimple';\nexport var NAME_TABS = 'BTabs';\nexport var NAME_TBODY = 'BTbody';\nexport var NAME_TFOOT = 'BTfoot';\nexport var NAME_TH = 'BTh';\nexport var NAME_THEAD = 'BThead';\nexport var NAME_TIME = 'BTime';\nexport var NAME_TOAST = 'BToast';\nexport var NAME_TOASTER = 'BToaster';\nexport var NAME_TOOLTIP = 'BTooltip';\nexport var NAME_TR = 'BTr'; // Helper component names\n\nexport var NAME_COLLAPSE_HELPER = 'BVCollapse';\nexport var NAME_FORM_BUTTON_LABEL_CONTROL = 'BVFormBtnLabelControl';\nexport var NAME_FORM_RATING_STAR = 'BVFormRatingStar';\nexport var NAME_POPOVER_HELPER = 'BVPopover';\nexport var NAME_POPOVER_TEMPLATE = 'BVPopoverTemplate';\nexport var NAME_POPPER = 'BVPopper';\nexport var NAME_TAB_BUTTON_HELPER = 'BVTabButton';\nexport var NAME_TOAST_POP = 'BVToastPop';\nexport var NAME_TOOLTIP_HELPER = 'BVTooltip';\nexport var NAME_TOOLTIP_TEMPLATE = 'BVTooltipTemplate';\nexport var NAME_TRANSITION = 'BVTransition';\nexport var NAME_TRANSPORTER = 'BVTransporter';\nexport var NAME_TRANSPORTER_TARGET = 'BVTransporterTarget';","import { VNodeData } from \"vue\";\n\nconst pattern = {\n kebab: /-(\\w)/g,\n styleProp: /:(.*)/,\n\tstyleList: /;(?![^(]*\\))/g,\n} as const;\n\nfunction camelReplace(_substr: string, match: string) {\n return match ? match.toUpperCase() : \"\";\n}\n\nfunction camelCase(str: string) {\n return str.replace(pattern.kebab, camelReplace);\n}\n\nfunction parseStyle(style: string) {\n let styleMap: Record = {};\n\n for (let s of style.split(pattern.styleList)) {\n let [key, val] = s.split(pattern.styleProp);\n key = key.trim();\n if (!key) {\n continue;\n }\n // May be undefined if the `key: value` pair is incomplete.\n if (typeof val === \"string\") {\n val = val.trim();\n }\n styleMap[camelCase(key)] = val;\n }\n\n return styleMap;\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nfunction mergeData(...vNodeData: VNodeData[]): VNodeData;\nfunction mergeData(): VNodeData {\n let mergeTarget: VNodeData & Record = {};\n let i: number = arguments.length;\n let prop: string;\n let event: string;\n\n // Allow for variadic argument length.\n while (i--) {\n // Iterate through the data properties and execute merge strategies\n // Object.keys eliminates need for hasOwnProperty call\n for (prop of Object.keys(arguments[i])) {\n switch (prop) {\n // Array merge strategy (array concatenation)\n case \"class\":\n case \"style\":\n case \"directives\":\n if (!Array.isArray(mergeTarget[prop])) {\n mergeTarget[prop] = [];\n }\n\n if (prop === \"style\") {\n let style: any[];\n if (Array.isArray(arguments[i].style)) {\n style = arguments[i].style;\n } else {\n style = [arguments[i].style];\n }\n for (let j = 0; j < style.length; j++) {\n let s = style[j];\n if (typeof s === \"string\") {\n style[j] = parseStyle(s);\n }\n }\n arguments[i].style = style;\n }\n\n // Repackaging in an array allows Vue runtime\n // to merge class/style bindings regardless of type.\n mergeTarget[prop] = mergeTarget[prop].concat(arguments[i][prop]);\n break;\n // Space delimited string concatenation strategy\n case \"staticClass\":\n if (!arguments[i][prop]) {\n break;\n }\n if (mergeTarget[prop] === undefined) {\n mergeTarget[prop] = \"\";\n }\n if (mergeTarget[prop]) {\n // Not an empty string, so concatenate\n mergeTarget[prop] += \" \";\n }\n mergeTarget[prop] += arguments[i][prop].trim();\n break;\n // Object, the properties of which to merge via array merge strategy (array concatenation).\n // Callback merge strategy merges callbacks to the beginning of the array,\n // so that the last defined callback will be invoked first.\n // This is done since to mimic how Object.assign merging\n // uses the last given value to assign.\n case \"on\":\n case \"nativeOn\":\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {};\n }\n for (event of Object.keys(arguments[i][prop] || {})) {\n // Concat function to array of functions if callback present.\n if (mergeTarget[prop][event]) {\n // Insert current iteration data in beginning of merged array.\n mergeTarget[prop][event] = [].concat(\n mergeTarget[prop][event],\n arguments[i][prop][event]\n );\n } else {\n // Straight assign.\n mergeTarget[prop][event] = arguments[i][prop][event];\n }\n }\n break;\n // Object merge strategy\n case \"attrs\":\n case \"props\":\n case \"domProps\":\n case \"scopedSlots\":\n case \"staticStyle\":\n case \"hook\":\n case \"transition\":\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = {};\n }\n mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] };\n break;\n // Reassignment strategy (no merge)\n case \"slot\":\n case \"key\":\n case \"ref\":\n case \"tag\":\n case \"show\":\n case \"keepAlive\":\n default:\n if (!mergeTarget[prop]) {\n mergeTarget[prop] = arguments[i][prop];\n }\n }\n }\n }\n\n return mergeTarget;\n}\n\nexport { mergeData };\n","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nimport Vue from 'vue';\nimport { mergeData } from 'vue-functional-data-merge'; // --- Constants ---\n\nvar COMPONENT_UID_KEY = '_uid';\nvar isVue3 = Vue.version.startsWith('3');\nexport var REF_FOR_KEY = isVue3 ? 'ref_for' : 'refInFor';\nvar ALLOWED_FIELDS_IN_DATA = ['class', 'staticClass', 'style', 'attrs', 'props', 'domProps', 'on', 'nativeOn', 'directives', 'scopedSlots', 'slot', 'key', 'ref', 'refInFor'];\nvar extend = Vue.extend.bind(Vue);\n\nif (isVue3) {\n var originalExtend = Vue.extend;\n var KNOWN_COMPONENTS = ['router-link', 'transition', 'transition-group'];\n var originalVModelDynamicCreated = Vue.vModelDynamic.created;\n var originalVModelDynamicBeforeUpdate = Vue.vModelDynamic.beforeUpdate; // See https://github.com/vuejs/vue-next/pull/4121 for details\n\n Vue.vModelDynamic.created = function (el, binding, vnode) {\n originalVModelDynamicCreated.call(this, el, binding, vnode);\n\n if (!el._assign) {\n el._assign = function () {};\n }\n };\n\n Vue.vModelDynamic.beforeUpdate = function (el, binding, vnode) {\n originalVModelDynamicBeforeUpdate.call(this, el, binding, vnode);\n\n if (!el._assign) {\n el._assign = function () {};\n }\n };\n\n extend = function patchedBootstrapVueExtend(definition) {\n if (_typeof(definition) === 'object' && definition.render && !definition.__alreadyPatched) {\n var originalRender = definition.render;\n definition.__alreadyPatched = true;\n\n definition.render = function (h) {\n var patchedH = function patchedH(tag, dataObjOrChildren, rawSlots) {\n var slots = rawSlots === undefined ? [] : [Array.isArray(rawSlots) ? rawSlots.filter(Boolean) : rawSlots];\n var isTag = typeof tag === 'string' && !KNOWN_COMPONENTS.includes(tag);\n var isSecondArgumentDataObject = dataObjOrChildren && _typeof(dataObjOrChildren) === 'object' && !Array.isArray(dataObjOrChildren);\n\n if (!isSecondArgumentDataObject) {\n return h.apply(void 0, [tag, dataObjOrChildren].concat(slots));\n }\n\n var attrs = dataObjOrChildren.attrs,\n props = dataObjOrChildren.props,\n restData = _objectWithoutProperties(dataObjOrChildren, [\"attrs\", \"props\"]);\n\n var normalizedData = _objectSpread(_objectSpread({}, restData), {}, {\n attrs: attrs,\n props: isTag ? {} : props\n });\n\n if (tag === 'router-link' && !normalizedData.slots && !normalizedData.scopedSlots) {\n // terrible workaround to fix router-link rendering with compat vue-router\n normalizedData.scopedSlots = {\n $hasNormal: function $hasNormal() {}\n };\n }\n\n return h.apply(void 0, [tag, normalizedData].concat(slots));\n };\n\n if (definition.functional) {\n var _ctx$children, _ctx$children$default;\n\n var ctx = arguments[1];\n\n var patchedCtx = _objectSpread({}, ctx);\n\n patchedCtx.data = {\n attrs: _objectSpread({}, ctx.data.attrs || {}),\n props: _objectSpread({}, ctx.data.props || {})\n };\n Object.keys(ctx.data || {}).forEach(function (key) {\n if (ALLOWED_FIELDS_IN_DATA.includes(key)) {\n patchedCtx.data[key] = ctx.data[key];\n } else if (key in ctx.props) {\n patchedCtx.data.props[key] = ctx.data[key];\n } else if (!key.startsWith('on')) {\n patchedCtx.data.attrs[key] = ctx.data[key];\n }\n });\n var IGNORED_CHILDREN_KEYS = ['_ctx'];\n var children = ((_ctx$children = ctx.children) === null || _ctx$children === void 0 ? void 0 : (_ctx$children$default = _ctx$children.default) === null || _ctx$children$default === void 0 ? void 0 : _ctx$children$default.call(_ctx$children)) || ctx.children;\n\n if (children && Object.keys(patchedCtx.children).filter(function (k) {\n return !IGNORED_CHILDREN_KEYS.includes(k);\n }).length === 0) {\n delete patchedCtx.children;\n } else {\n patchedCtx.children = children;\n }\n\n patchedCtx.data.on = ctx.listeners;\n return originalRender.call(this, patchedH, patchedCtx);\n }\n\n return originalRender.call(this, patchedH);\n };\n }\n\n return originalExtend.call(this, definition);\n }.bind(Vue);\n}\n\nvar nextTick = Vue.nextTick;\nexport { COMPONENT_UID_KEY, Vue, mergeData, isVue3, nextTick, extend };","import { isVue3 } from '../vue';\nexport var EVENT_NAME_ACTIVATE_TAB = 'activate-tab';\nexport var EVENT_NAME_BLUR = 'blur';\nexport var EVENT_NAME_CANCEL = 'cancel';\nexport var EVENT_NAME_CHANGE = 'change';\nexport var EVENT_NAME_CHANGED = 'changed';\nexport var EVENT_NAME_CLICK = 'click';\nexport var EVENT_NAME_CLOSE = 'close';\nexport var EVENT_NAME_CONTEXT = 'context';\nexport var EVENT_NAME_CONTEXT_CHANGED = 'context-changed';\nexport var EVENT_NAME_DESTROYED = 'destroyed';\nexport var EVENT_NAME_DISABLE = 'disable';\nexport var EVENT_NAME_DISABLED = 'disabled';\nexport var EVENT_NAME_DISMISSED = 'dismissed';\nexport var EVENT_NAME_DISMISS_COUNT_DOWN = 'dismiss-count-down';\nexport var EVENT_NAME_ENABLE = 'enable';\nexport var EVENT_NAME_ENABLED = 'enabled';\nexport var EVENT_NAME_FILTERED = 'filtered';\nexport var EVENT_NAME_FIRST = 'first';\nexport var EVENT_NAME_FOCUS = 'focus';\nexport var EVENT_NAME_FOCUSIN = 'focusin';\nexport var EVENT_NAME_FOCUSOUT = 'focusout';\nexport var EVENT_NAME_HEAD_CLICKED = 'head-clicked';\nexport var EVENT_NAME_HIDDEN = 'hidden';\nexport var EVENT_NAME_HIDE = 'hide';\nexport var EVENT_NAME_IMG_ERROR = 'img-error';\nexport var EVENT_NAME_INPUT = 'input';\nexport var EVENT_NAME_LAST = 'last';\nexport var EVENT_NAME_MOUSEENTER = 'mouseenter';\nexport var EVENT_NAME_MOUSELEAVE = 'mouseleave';\nexport var EVENT_NAME_NEXT = 'next';\nexport var EVENT_NAME_OK = 'ok';\nexport var EVENT_NAME_OPEN = 'open';\nexport var EVENT_NAME_PAGE_CLICK = 'page-click';\nexport var EVENT_NAME_PAUSED = 'paused';\nexport var EVENT_NAME_PREV = 'prev';\nexport var EVENT_NAME_REFRESH = 'refresh';\nexport var EVENT_NAME_REFRESHED = 'refreshed';\nexport var EVENT_NAME_REMOVE = 'remove';\nexport var EVENT_NAME_ROW_CLICKED = 'row-clicked';\nexport var EVENT_NAME_ROW_CONTEXTMENU = 'row-contextmenu';\nexport var EVENT_NAME_ROW_DBLCLICKED = 'row-dblclicked';\nexport var EVENT_NAME_ROW_HOVERED = 'row-hovered';\nexport var EVENT_NAME_ROW_MIDDLE_CLICKED = 'row-middle-clicked';\nexport var EVENT_NAME_ROW_SELECTED = 'row-selected';\nexport var EVENT_NAME_ROW_UNHOVERED = 'row-unhovered';\nexport var EVENT_NAME_SELECTED = 'selected';\nexport var EVENT_NAME_SHOW = 'show';\nexport var EVENT_NAME_SHOWN = 'shown';\nexport var EVENT_NAME_SLIDING_END = 'sliding-end';\nexport var EVENT_NAME_SLIDING_START = 'sliding-start';\nexport var EVENT_NAME_SORT_CHANGED = 'sort-changed';\nexport var EVENT_NAME_TAG_STATE = 'tag-state';\nexport var EVENT_NAME_TOGGLE = 'toggle';\nexport var EVENT_NAME_UNPAUSED = 'unpaused';\nexport var EVENT_NAME_UPDATE = 'update';\nexport var HOOK_EVENT_NAME_BEFORE_DESTROY = isVue3 ? 'vnodeBeforeUnmount' : 'hook:beforeDestroy';\nexport var HOOK_EVENT_NAME_DESTROYED = isVue3 ? 'vNodeUnmounted' : 'hook:destroyed';\nexport var MODEL_EVENT_NAME_PREFIX = 'update:';\nexport var ROOT_EVENT_NAME_PREFIX = 'bv';\nexport var ROOT_EVENT_NAME_SEPARATOR = '::';\nexport var EVENT_OPTIONS_PASSIVE = {\n passive: true\n};\nexport var EVENT_OPTIONS_NO_CAPTURE = {\n passive: true,\n capture: false\n};","// General types\nexport var PROP_TYPE_ANY = undefined;\nexport var PROP_TYPE_ARRAY = Array;\nexport var PROP_TYPE_BOOLEAN = Boolean;\nexport var PROP_TYPE_DATE = Date;\nexport var PROP_TYPE_FUNCTION = Function;\nexport var PROP_TYPE_NUMBER = Number;\nexport var PROP_TYPE_OBJECT = Object;\nexport var PROP_TYPE_REG_EXP = RegExp;\nexport var PROP_TYPE_STRING = String; // Multiple types\n\nexport var PROP_TYPE_ARRAY_FUNCTION = [PROP_TYPE_ARRAY, PROP_TYPE_FUNCTION];\nexport var PROP_TYPE_ARRAY_OBJECT = [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT];\nexport var PROP_TYPE_ARRAY_OBJECT_STRING = [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING];\nexport var PROP_TYPE_ARRAY_STRING = [PROP_TYPE_ARRAY, PROP_TYPE_STRING];\nexport var PROP_TYPE_BOOLEAN_NUMBER = [PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER];\nexport var PROP_TYPE_BOOLEAN_NUMBER_STRING = [PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER, PROP_TYPE_STRING];\nexport var PROP_TYPE_BOOLEAN_STRING = [PROP_TYPE_BOOLEAN, PROP_TYPE_STRING];\nexport var PROP_TYPE_DATE_STRING = [PROP_TYPE_DATE, PROP_TYPE_STRING];\nexport var PROP_TYPE_FUNCTION_STRING = [PROP_TYPE_FUNCTION, PROP_TYPE_STRING];\nexport var PROP_TYPE_NUMBER_STRING = [PROP_TYPE_NUMBER, PROP_TYPE_STRING];\nexport var PROP_TYPE_NUMBER_OBJECT_STRING = [PROP_TYPE_NUMBER, PROP_TYPE_OBJECT, PROP_TYPE_STRING];\nexport var PROP_TYPE_OBJECT_FUNCTION = [PROP_TYPE_OBJECT, PROP_TYPE_FUNCTION];\nexport var PROP_TYPE_OBJECT_STRING = [PROP_TYPE_OBJECT, PROP_TYPE_STRING];","export var SLOT_NAME_ADD_BUTTON_TEXT = 'add-button-text';\nexport var SLOT_NAME_APPEND = 'append';\nexport var SLOT_NAME_ASIDE = 'aside';\nexport var SLOT_NAME_BADGE = 'badge';\nexport var SLOT_NAME_BOTTOM_ROW = 'bottom-row';\nexport var SLOT_NAME_BUTTON_CONTENT = 'button-content';\nexport var SLOT_NAME_CUSTOM_FOOT = 'custom-foot';\nexport var SLOT_NAME_DECREMENT = 'decrement';\nexport var SLOT_NAME_DEFAULT = 'default';\nexport var SLOT_NAME_DESCRIPTION = 'description';\nexport var SLOT_NAME_DISMISS = 'dismiss';\nexport var SLOT_NAME_DROP_PLACEHOLDER = 'drop-placeholder';\nexport var SLOT_NAME_ELLIPSIS_TEXT = 'ellipsis-text';\nexport var SLOT_NAME_EMPTY = 'empty';\nexport var SLOT_NAME_EMPTYFILTERED = 'emptyfiltered';\nexport var SLOT_NAME_FILE_NAME = 'file-name';\nexport var SLOT_NAME_FIRST = 'first';\nexport var SLOT_NAME_FIRST_TEXT = 'first-text';\nexport var SLOT_NAME_FOOTER = 'footer';\nexport var SLOT_NAME_HEADER = 'header';\nexport var SLOT_NAME_HEADER_CLOSE = 'header-close';\nexport var SLOT_NAME_ICON_CLEAR = 'icon-clear';\nexport var SLOT_NAME_ICON_EMPTY = 'icon-empty';\nexport var SLOT_NAME_ICON_FULL = 'icon-full';\nexport var SLOT_NAME_ICON_HALF = 'icon-half';\nexport var SLOT_NAME_IMG = 'img';\nexport var SLOT_NAME_INCREMENT = 'increment';\nexport var SLOT_NAME_INVALID_FEEDBACK = 'invalid-feedback';\nexport var SLOT_NAME_LABEL = 'label';\nexport var SLOT_NAME_LAST_TEXT = 'last-text';\nexport var SLOT_NAME_LEAD = 'lead';\nexport var SLOT_NAME_LOADING = 'loading';\nexport var SLOT_NAME_MODAL_BACKDROP = 'modal-backdrop';\nexport var SLOT_NAME_MODAL_CANCEL = 'modal-cancel';\nexport var SLOT_NAME_MODAL_FOOTER = 'modal-footer';\nexport var SLOT_NAME_MODAL_HEADER = 'modal-header';\nexport var SLOT_NAME_MODAL_HEADER_CLOSE = 'modal-header-close';\nexport var SLOT_NAME_MODAL_OK = 'modal-ok';\nexport var SLOT_NAME_MODAL_TITLE = 'modal-title';\nexport var SLOT_NAME_NAV_NEXT_DECADE = 'nav-next-decade';\nexport var SLOT_NAME_NAV_NEXT_MONTH = 'nav-next-month';\nexport var SLOT_NAME_NAV_NEXT_YEAR = 'nav-next-year';\nexport var SLOT_NAME_NAV_PEV_DECADE = 'nav-prev-decade';\nexport var SLOT_NAME_NAV_PEV_MONTH = 'nav-prev-month';\nexport var SLOT_NAME_NAV_PEV_YEAR = 'nav-prev-year';\nexport var SLOT_NAME_NAV_THIS_MONTH = 'nav-this-month';\nexport var SLOT_NAME_NEXT_TEXT = 'next-text';\nexport var SLOT_NAME_OVERLAY = 'overlay';\nexport var SLOT_NAME_PAGE = 'page';\nexport var SLOT_NAME_PLACEHOLDER = 'placeholder';\nexport var SLOT_NAME_PREPEND = 'prepend';\nexport var SLOT_NAME_PREV_TEXT = 'prev-text';\nexport var SLOT_NAME_ROW_DETAILS = 'row-details';\nexport var SLOT_NAME_TABLE_BUSY = 'table-busy';\nexport var SLOT_NAME_TABLE_CAPTION = 'table-caption';\nexport var SLOT_NAME_TABLE_COLGROUP = 'table-colgroup';\nexport var SLOT_NAME_TABS_END = 'tabs-end';\nexport var SLOT_NAME_TABS_START = 'tabs-start';\nexport var SLOT_NAME_TEXT = 'text';\nexport var SLOT_NAME_THEAD_TOP = 'thead-top';\nexport var SLOT_NAME_TITLE = 'title';\nexport var SLOT_NAME_TOAST_TITLE = 'toast-title';\nexport var SLOT_NAME_TOP_ROW = 'top-row';\nexport var SLOT_NAME_VALID_FEEDBACK = 'valid-feedback';","import { isFunction } from './inspect'; // --- Static ---\n\nexport var from = function from() {\n return Array.from.apply(Array, arguments);\n}; // --- Instance ---\n\nexport var arrayIncludes = function arrayIncludes(array, value) {\n return array.indexOf(value) !== -1;\n};\nexport var concat = function concat() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return Array.prototype.concat.apply([], args);\n}; // --- Utilities ---\n\nexport var createArray = function createArray(length, fillFn) {\n var mapFn = isFunction(fillFn) ? fillFn : function () {\n return fillFn;\n };\n return Array.apply(null, {\n length: length\n }).map(mapFn);\n};\nexport var flatten = function flatten(array) {\n return array.reduce(function (result, item) {\n return concat(result, item);\n }, []);\n};\nexport var flattenDeep = function flattenDeep(array) {\n return array.reduce(function (result, item) {\n return concat(result, Array.isArray(item) ? flattenDeep(item) : item);\n }, []);\n};","import { concat } from './array';\nimport { identity } from './identity';\nimport { isFunction } from './inspect'; // Note for functional components:\n// In functional components, `slots` is a function so it must be called\n// first before passing to the below methods. `scopedSlots` is always an\n// object and may be undefined (for Vue < 2.6.x)\n\n/**\n * Returns true if either scoped or unscoped named slot exists\n *\n * @param {String, Array} name or name[]\n * @param {Object} scopedSlots\n * @param {Object} slots\n * @returns {Array|undefined} VNodes\n */\n\nexport var hasNormalizedSlot = function hasNormalizedSlot(names) {\n var $scopedSlots = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var $slots = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n // Ensure names is an array\n names = concat(names).filter(identity); // Returns true if the either a $scopedSlot or $slot exists with the specified name\n\n return names.some(function (name) {\n return $scopedSlots[name] || $slots[name];\n });\n};\n/**\n * Returns VNodes for named slot either scoped or unscoped\n *\n * @param {String, Array} name or name[]\n * @param {String} scope\n * @param {Object} scopedSlots\n * @param {Object} slots\n * @returns {Array|undefined} VNodes\n */\n\nexport var normalizeSlot = function normalizeSlot(names) {\n var scope = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var $scopedSlots = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var $slots = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n // Ensure names is an array\n names = concat(names).filter(identity);\n var slot;\n\n for (var i = 0; i < names.length && !slot; i++) {\n var name = names[i];\n slot = $scopedSlots[name] || $slots[name];\n } // Note: in Vue 2.6.x, all named slots are also scoped slots\n\n\n return isFunction(slot) ? slot(scope) : slot;\n};","import { extend } from '../vue';\nimport { SLOT_NAME_DEFAULT } from '../constants/slots';\nimport { hasNormalizedSlot as _hasNormalizedSlot, normalizeSlot as _normalizeSlot } from '../utils/normalize-slot';\nimport { concat } from '../utils/array'; // @vue/component\n\nexport var normalizeSlotMixin = extend({\n methods: {\n // Returns `true` if the either a `$scopedSlot` or `$slot` exists with the specified name\n // `name` can be a string name or an array of names\n hasNormalizedSlot: function hasNormalizedSlot() {\n var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : SLOT_NAME_DEFAULT;\n var scopedSlots = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.$scopedSlots;\n var slots = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.$slots;\n return _hasNormalizedSlot(name, scopedSlots, slots);\n },\n // Returns an array of rendered VNodes if slot found, otherwise `undefined`\n // `name` can be a string name or an array of names\n normalizeSlot: function normalizeSlot() {\n var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : SLOT_NAME_DEFAULT;\n var scope = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var scopedSlots = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.$scopedSlots;\n var slots = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : this.$slots;\n\n var vNodes = _normalizeSlot(name, scope, scopedSlots, slots);\n\n return vNodes ? concat(vNodes) : vNodes;\n }\n }\n});","// Number utilities\n// Converts a value (string, number, etc.) to an integer number\n// Assumes radix base 10\nexport var toInteger = function toInteger(value) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : NaN;\n var integer = parseInt(value, 10);\n return isNaN(integer) ? defaultValue : integer;\n}; // Converts a value (string, number, etc.) to a number\n\nexport var toFloat = function toFloat(value) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : NaN;\n var float = parseFloat(value);\n return isNaN(float) ? defaultValue : float;\n}; // Converts a value (string, number, etc.) to a string\n// representation with `precision` digits after the decimal\n// Returns the string 'NaN' if the value cannot be converted\n\nexport var toFixed = function toFixed(val, precision) {\n return toFloat(val).toFixed(toInteger(precision, 0));\n};","// String utilities\nimport { RX_HYPHENATE, RX_LOWER_UPPER, RX_REGEXP_REPLACE, RX_START_SPACE_WORD, RX_TRIM_LEFT, RX_TRIM_RIGHT, RX_UNDERSCORE, RX_UN_KEBAB } from '../constants/regex';\nimport { isArray, isPlainObject, isString, isUndefinedOrNull } from './inspect'; // --- Utilities ---\n// Converts PascalCase or camelCase to kebab-case\n\nexport var kebabCase = function kebabCase(str) {\n return str.replace(RX_HYPHENATE, '-$1').toLowerCase();\n}; // Converts a kebab-case or camelCase string to PascalCase\n\nexport var pascalCase = function pascalCase(str) {\n str = kebabCase(str).replace(RX_UN_KEBAB, function (_, c) {\n return c ? c.toUpperCase() : '';\n });\n return str.charAt(0).toUpperCase() + str.slice(1);\n}; // Converts a string, including strings in camelCase or snake_case, into Start Case\n// It keeps original single quote and hyphen in the word\n// https://github.com/UrbanCompass/to-start-case\n\nexport var startCase = function startCase(str) {\n return str.replace(RX_UNDERSCORE, ' ').replace(RX_LOWER_UPPER, function (str, $1, $2) {\n return $1 + ' ' + $2;\n }).replace(RX_START_SPACE_WORD, function (str, $1, $2) {\n return $1 + $2.toUpperCase();\n });\n}; // Lowercases the first letter of a string and returns a new string\n\nexport var lowerFirst = function lowerFirst(str) {\n str = isString(str) ? str.trim() : String(str);\n return str.charAt(0).toLowerCase() + str.slice(1);\n}; // Uppercases the first letter of a string and returns a new string\n\nexport var upperFirst = function upperFirst(str) {\n str = isString(str) ? str.trim() : String(str);\n return str.charAt(0).toUpperCase() + str.slice(1);\n}; // Escape characters to be used in building a regular expression\n\nexport var escapeRegExp = function escapeRegExp(str) {\n return str.replace(RX_REGEXP_REPLACE, '\\\\$&');\n}; // Convert a value to a string that can be rendered\n// `undefined`/`null` will be converted to `''`\n// Plain objects and arrays will be JSON stringified\n\nexport var toString = function toString(val) {\n var spaces = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n return isUndefinedOrNull(val) ? '' : isArray(val) || isPlainObject(val) && val.toString === Object.prototype.toString ? JSON.stringify(val, null, spaces) : String(val);\n}; // Remove leading white space from a string\n\nexport var trimLeft = function trimLeft(str) {\n return toString(str).replace(RX_TRIM_LEFT, '');\n}; // Remove Trailing white space from a string\n\nexport var trimRight = function trimRight(str) {\n return toString(str).replace(RX_TRIM_RIGHT, '');\n}; // Remove leading and trailing white space from a string\n\nexport var trim = function trim(str) {\n return toString(str).trim();\n}; // Lower case a string\n\nexport var lowerCase = function lowerCase(str) {\n return toString(str).toLowerCase();\n}; // Upper case a string\n\nexport var upperCase = function upperCase(str) {\n return toString(str).toUpperCase();\n};","import { DOCUMENT, WINDOW } from '../constants/env';\nimport { Element } from '../constants/safe-types';\nimport { from as arrayFrom } from './array';\nimport { isFunction, isNull } from './inspect';\nimport { toFloat } from './number';\nimport { toString } from './string'; // --- Constants ---\n\nvar ELEMENT_PROTO = Element.prototype;\nvar TABABLE_SELECTOR = ['button', '[href]:not(.disabled)', 'input', 'select', 'textarea', '[tabindex]', '[contenteditable]'].map(function (s) {\n return \"\".concat(s, \":not(:disabled):not([disabled])\");\n}).join(', '); // --- Normalization utils ---\n// See: https://developer.mozilla.org/en-US/docs/Web/API/Element/matches#Polyfill\n\n/* istanbul ignore next */\n\nexport var matchesEl = ELEMENT_PROTO.matches || ELEMENT_PROTO.msMatchesSelector || ELEMENT_PROTO.webkitMatchesSelector; // See: https://developer.mozilla.org/en-US/docs/Web/API/Element/closest\n\n/* istanbul ignore next */\n\nexport var closestEl = ELEMENT_PROTO.closest || function (sel) {\n var el = this;\n\n do {\n // Use our \"patched\" matches function\n if (matches(el, sel)) {\n return el;\n }\n\n el = el.parentElement || el.parentNode;\n } while (!isNull(el) && el.nodeType === Node.ELEMENT_NODE);\n\n return null;\n}; // `requestAnimationFrame()` convenience method\n\n/* istanbul ignore next: JSDOM always returns the first option */\n\nexport var requestAF = (WINDOW.requestAnimationFrame || WINDOW.webkitRequestAnimationFrame || WINDOW.mozRequestAnimationFrame || WINDOW.msRequestAnimationFrame || WINDOW.oRequestAnimationFrame || // Fallback, but not a true polyfill\n// Only needed for Opera Mini\n\n/* istanbul ignore next */\nfunction (cb) {\n return setTimeout(cb, 16);\n}).bind(WINDOW);\nexport var MutationObs = WINDOW.MutationObserver || WINDOW.WebKitMutationObserver || WINDOW.MozMutationObserver || null; // --- Utils ---\n// Remove a node from DOM\n\nexport var removeNode = function removeNode(el) {\n return el && el.parentNode && el.parentNode.removeChild(el);\n}; // Determine if an element is an HTML element\n\nexport var isElement = function isElement(el) {\n return !!(el && el.nodeType === Node.ELEMENT_NODE);\n}; // Get the currently active HTML element\n\nexport var getActiveElement = function getActiveElement() {\n var excludes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var activeElement = DOCUMENT.activeElement;\n return activeElement && !excludes.some(function (el) {\n return el === activeElement;\n }) ? activeElement : null;\n}; // Returns `true` if a tag's name equals `name`\n\nexport var isTag = function isTag(tag, name) {\n return toString(tag).toLowerCase() === toString(name).toLowerCase();\n}; // Determine if an HTML element is the currently active element\n\nexport var isActiveElement = function isActiveElement(el) {\n return isElement(el) && el === getActiveElement();\n}; // Determine if an HTML element is visible - Faster than CSS check\n\nexport var isVisible = function isVisible(el) {\n if (!isElement(el) || !el.parentNode || !contains(DOCUMENT.body, el)) {\n // Note this can fail for shadow dom elements since they\n // are not a direct descendant of document.body\n return false;\n }\n\n if (getStyle(el, 'display') === 'none') {\n // We do this check to help with vue-test-utils when using v-show\n\n /* istanbul ignore next */\n return false;\n } // All browsers support getBoundingClientRect(), except JSDOM as it returns all 0's for values :(\n // So any tests that need isVisible will fail in JSDOM\n // Except when we override the getBCR prototype in some tests\n\n\n var bcr = getBCR(el);\n return !!(bcr && bcr.height > 0 && bcr.width > 0);\n}; // Determine if an element is disabled\n\nexport var isDisabled = function isDisabled(el) {\n return !isElement(el) || el.disabled || hasAttr(el, 'disabled') || hasClass(el, 'disabled');\n}; // Cause/wait-for an element to reflow its content (adjusting its height/width)\n\nexport var reflow = function reflow(el) {\n // Requesting an elements offsetHight will trigger a reflow of the element content\n\n /* istanbul ignore next: reflow doesn't happen in JSDOM */\n return isElement(el) && el.offsetHeight;\n}; // Select all elements matching selector. Returns `[]` if none found\n\nexport var selectAll = function selectAll(selector, root) {\n return arrayFrom((isElement(root) ? root : DOCUMENT).querySelectorAll(selector));\n}; // Select a single element, returns `null` if not found\n\nexport var select = function select(selector, root) {\n return (isElement(root) ? root : DOCUMENT).querySelector(selector) || null;\n}; // Determine if an element matches a selector\n\nexport var matches = function matches(el, selector) {\n return isElement(el) ? matchesEl.call(el, selector) : false;\n}; // Finds closest element matching selector. Returns `null` if not found\n\nexport var closest = function closest(selector, root) {\n var includeRoot = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (!isElement(root)) {\n return null;\n }\n\n var el = closestEl.call(root, selector); // Native closest behaviour when `includeRoot` is truthy,\n // else emulate jQuery closest and return `null` if match is\n // the passed in root element when `includeRoot` is falsey\n\n return includeRoot ? el : el === root ? null : el;\n}; // Returns true if the parent element contains the child element\n\nexport var contains = function contains(parent, child) {\n return parent && isFunction(parent.contains) ? parent.contains(child) : false;\n}; // Get an element given an ID\n\nexport var getById = function getById(id) {\n return DOCUMENT.getElementById(/^#/.test(id) ? id.slice(1) : id) || null;\n}; // Add a class to an element\n\nexport var addClass = function addClass(el, className) {\n // We are checking for `el.classList` existence here since IE 11\n // returns `undefined` for some elements (e.g. SVG elements)\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2713\n if (className && isElement(el) && el.classList) {\n el.classList.add(className);\n }\n}; // Remove a class from an element\n\nexport var removeClass = function removeClass(el, className) {\n // We are checking for `el.classList` existence here since IE 11\n // returns `undefined` for some elements (e.g. SVG elements)\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2713\n if (className && isElement(el) && el.classList) {\n el.classList.remove(className);\n }\n}; // Test if an element has a class\n\nexport var hasClass = function hasClass(el, className) {\n // We are checking for `el.classList` existence here since IE 11\n // returns `undefined` for some elements (e.g. SVG elements)\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2713\n if (className && isElement(el) && el.classList) {\n return el.classList.contains(className);\n }\n\n return false;\n}; // Set an attribute on an element\n\nexport var setAttr = function setAttr(el, attr, value) {\n if (attr && isElement(el)) {\n el.setAttribute(attr, value);\n }\n}; // Remove an attribute from an element\n\nexport var removeAttr = function removeAttr(el, attr) {\n if (attr && isElement(el)) {\n el.removeAttribute(attr);\n }\n}; // Get an attribute value from an element\n// Returns `null` if not found\n\nexport var getAttr = function getAttr(el, attr) {\n return attr && isElement(el) ? el.getAttribute(attr) : null;\n}; // Determine if an attribute exists on an element\n// Returns `true` or `false`, or `null` if element not found\n\nexport var hasAttr = function hasAttr(el, attr) {\n return attr && isElement(el) ? el.hasAttribute(attr) : null;\n}; // Set an style property on an element\n\nexport var setStyle = function setStyle(el, prop, value) {\n if (prop && isElement(el)) {\n el.style[prop] = value;\n }\n}; // Remove an style property from an element\n\nexport var removeStyle = function removeStyle(el, prop) {\n if (prop && isElement(el)) {\n el.style[prop] = '';\n }\n}; // Get an style property value from an element\n// Returns `null` if not found\n\nexport var getStyle = function getStyle(el, prop) {\n return prop && isElement(el) ? el.style[prop] || null : null;\n}; // Return the Bounding Client Rect of an element\n// Returns `null` if not an element\n\n/* istanbul ignore next: getBoundingClientRect() doesn't work in JSDOM */\n\nexport var getBCR = function getBCR(el) {\n return isElement(el) ? el.getBoundingClientRect() : null;\n}; // Get computed style object for an element\n\n/* istanbul ignore next: getComputedStyle() doesn't work in JSDOM */\n\nexport var getCS = function getCS(el) {\n var getComputedStyle = WINDOW.getComputedStyle;\n return getComputedStyle && isElement(el) ? getComputedStyle(el) : {};\n}; // Returns a `Selection` object representing the range of text selected\n// Returns `null` if no window support is given\n\n/* istanbul ignore next: getSelection() doesn't work in JSDOM */\n\nexport var getSel = function getSel() {\n var getSelection = WINDOW.getSelection;\n return getSelection ? WINDOW.getSelection() : null;\n}; // Return an element's offset with respect to document element\n// https://j11y.io/jquery/#v=git&fn=jQuery.fn.offset\n\nexport var offset = function offset(el)\n/* istanbul ignore next: getBoundingClientRect(), getClientRects() doesn't work in JSDOM */\n{\n var _offset = {\n top: 0,\n left: 0\n };\n\n if (!isElement(el) || el.getClientRects().length === 0) {\n return _offset;\n }\n\n var bcr = getBCR(el);\n\n if (bcr) {\n var win = el.ownerDocument.defaultView;\n _offset.top = bcr.top + win.pageYOffset;\n _offset.left = bcr.left + win.pageXOffset;\n }\n\n return _offset;\n}; // Return an element's offset with respect to to its offsetParent\n// https://j11y.io/jquery/#v=git&fn=jQuery.fn.position\n\nexport var position = function position(el)\n/* istanbul ignore next: getBoundingClientRect() doesn't work in JSDOM */\n{\n var _offset = {\n top: 0,\n left: 0\n };\n\n if (!isElement(el)) {\n return _offset;\n }\n\n var parentOffset = {\n top: 0,\n left: 0\n };\n var elStyles = getCS(el);\n\n if (elStyles.position === 'fixed') {\n _offset = getBCR(el) || _offset;\n } else {\n _offset = offset(el);\n var doc = el.ownerDocument;\n var offsetParent = el.offsetParent || doc.documentElement;\n\n while (offsetParent && (offsetParent === doc.body || offsetParent === doc.documentElement) && getCS(offsetParent).position === 'static') {\n offsetParent = offsetParent.parentNode;\n }\n\n if (offsetParent && offsetParent !== el && offsetParent.nodeType === Node.ELEMENT_NODE) {\n parentOffset = offset(offsetParent);\n var offsetParentStyles = getCS(offsetParent);\n parentOffset.top += toFloat(offsetParentStyles.borderTopWidth, 0);\n parentOffset.left += toFloat(offsetParentStyles.borderLeftWidth, 0);\n }\n }\n\n return {\n top: _offset.top - parentOffset.top - toFloat(elStyles.marginTop, 0),\n left: _offset.left - parentOffset.left - toFloat(elStyles.marginLeft, 0)\n };\n}; // Find all tabable elements in the given element\n// Assumes users have not used `tabindex` > `0` on elements\n\nexport var getTabables = function getTabables() {\n var rootEl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n return selectAll(TABABLE_SELECTOR, rootEl).filter(isVisible).filter(function (el) {\n return el.tabIndex > -1 && !el.disabled;\n });\n}; // Attempt to focus an element, and return `true` if successful\n\nexport var attemptFocus = function attemptFocus(el) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n try {\n el.focus(options);\n } catch (_unused) {}\n\n return isActiveElement(el);\n}; // Attempt to blur an element, and return `true` if successful\n\nexport var attemptBlur = function attemptBlur(el) {\n try {\n el.blur();\n } catch (_unused2) {}\n\n return !isActiveElement(el);\n};","import { create } from './object';\nexport var memoize = function memoize(fn) {\n var cache = create(null);\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var argsKey = JSON.stringify(args);\n return cache[argsKey] = cache[argsKey] || fn.apply(null, args);\n };\n};","import { Vue } from '../vue';\nimport { DEFAULT_BREAKPOINT, PROP_NAME } from '../constants/config';\nimport { cloneDeep } from './clone-deep';\nimport { memoize } from './memoize'; // --- Constants ---\n\nvar VueProto = Vue.prototype; // --- Getter methods ---\n// All methods return a deep clone (immutable) copy of the config value,\n// to prevent mutation of the user config object\n// Get the current config\n\nexport var getConfig = function getConfig() {\n var bvConfig = VueProto[PROP_NAME];\n return bvConfig ? bvConfig.getConfig() : {};\n}; // Method to grab a config value based on a dotted/array notation key\n\nexport var getConfigValue = function getConfigValue(key) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n var bvConfig = VueProto[PROP_NAME];\n return bvConfig ? bvConfig.getConfigValue(key, defaultValue) : cloneDeep(defaultValue);\n}; // Method to grab a config value for a particular component\n\nexport var getComponentConfig = function getComponentConfig(key) {\n var propKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n // Return the particular config value for key if specified,\n // otherwise we return the full config (or an empty object if not found)\n return propKey ? getConfigValue(\"\".concat(key, \".\").concat(propKey), defaultValue) : getConfigValue(key, {});\n}; // Get all breakpoint names\n\nexport var getBreakpoints = function getBreakpoints() {\n return getConfigValue('breakpoints', DEFAULT_BREAKPOINT);\n}; // Private method for caching breakpoint names\n\nvar _getBreakpointsCached = memoize(function () {\n return getBreakpoints();\n}); // Get all breakpoint names (cached)\n\n\nexport var getBreakpointsCached = function getBreakpointsCached() {\n return cloneDeep(_getBreakpointsCached());\n}; // Get breakpoints with the smallest breakpoint set as ''\n// Useful for components that create breakpoint specific props\n\nexport var getBreakpointsUp = function getBreakpointsUp() {\n var breakpoints = getBreakpoints();\n breakpoints[0] = '';\n return breakpoints;\n}; // Get breakpoints with the smallest breakpoint set as '' (cached)\n// Useful for components that create breakpoint specific props\n\nexport var getBreakpointsUpCached = memoize(function () {\n var breakpoints = getBreakpointsCached();\n breakpoints[0] = '';\n return breakpoints;\n}); // Get breakpoints with the largest breakpoint set as ''\n\nexport var getBreakpointsDown = function getBreakpointsDown() {\n var breakpoints = getBreakpoints();\n breakpoints[breakpoints.length - 1] = '';\n return breakpoints;\n}; // Get breakpoints with the largest breakpoint set as '' (cached)\n// Useful for components that create breakpoint specific props\n\n/* istanbul ignore next: we don't use this method anywhere, yet */\n\nexport var getBreakpointsDownCached = function getBreakpointsDownCached() {\n var breakpoints = getBreakpointsCached();\n breakpoints[breakpoints.length - 1] = '';\n return breakpoints;\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { PROP_TYPE_ANY } from '../constants/props';\nimport { cloneDeep } from './clone-deep';\nimport { getComponentConfig } from './config';\nimport { identity } from './identity';\nimport { isArray, isFunction, isObject, isUndefined } from './inspect';\nimport { clone, hasOwnProperty, keys } from './object';\nimport { lowerFirst, upperFirst } from './string'; // Prefix a property\n\nexport var prefixPropName = function prefixPropName(prefix, value) {\n return prefix + upperFirst(value);\n}; // Remove a prefix from a property\n\nexport var unprefixPropName = function unprefixPropName(prefix, value) {\n return lowerFirst(value.replace(prefix, ''));\n}; // Suffix can be a falsey value so nothing is appended to string\n// (helps when looping over props & some shouldn't change)\n// Use data last parameters to allow for currying\n\nexport var suffixPropName = function suffixPropName(suffix, value) {\n return value + (suffix ? upperFirst(suffix) : '');\n}; // Generates a prop object\n\nexport var makeProp = function makeProp() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : PROP_TYPE_ANY;\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n var requiredOrValidator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n var validator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : undefined;\n var required = requiredOrValidator === true;\n validator = required ? validator : requiredOrValidator;\n return _objectSpread(_objectSpread(_objectSpread({}, type ? {\n type: type\n } : {}), required ? {\n required: required\n } : isUndefined(value) ? {} : {\n default: isObject(value) ? function () {\n return value;\n } : value\n }), isUndefined(validator) ? {} : {\n validator: validator\n });\n}; // Copies props from one array/object to a new array/object\n// Prop values are also cloned as new references to prevent possible\n// mutation of original prop object values\n// Optionally accepts a function to transform the prop name\n\nexport var copyProps = function copyProps(props) {\n var transformFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : identity;\n\n if (isArray(props)) {\n return props.map(transformFn);\n }\n\n var copied = {};\n\n for (var prop in props) {\n /* istanbul ignore else */\n if (hasOwnProperty(props, prop)) {\n // If the prop value is an object, do a shallow clone\n // to prevent potential mutations to the original object\n copied[transformFn(prop)] = isObject(props[prop]) ? clone(props[prop]) : props[prop];\n }\n }\n\n return copied;\n}; // Given an array of properties or an object of property keys,\n// plucks all the values off the target object, returning a new object\n// that has props that reference the original prop values\n\nexport var pluckProps = function pluckProps(keysToPluck, objToPluck) {\n var transformFn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : identity;\n return (isArray(keysToPluck) ? keysToPluck.slice() : keys(keysToPluck)).reduce(function (memo, prop) {\n memo[transformFn(prop)] = objToPluck[prop];\n return memo;\n }, {});\n}; // Make a prop object configurable by global configuration\n// Replaces the current `default` key of each prop with a `getComponentConfig()`\n// call that falls back to the current default value of the prop\n\nexport var makePropConfigurable = function makePropConfigurable(prop, key, componentKey) {\n return _objectSpread(_objectSpread({}, cloneDeep(prop)), {}, {\n default: function bvConfigurablePropDefault() {\n var value = getComponentConfig(componentKey, key, prop.default);\n return isFunction(value) ? value() : value;\n }\n });\n}; // Make a props object configurable by global configuration\n// Replaces the current `default` key of each prop with a `getComponentConfig()`\n// call that falls back to the current default value of the prop\n\nexport var makePropsConfigurable = function makePropsConfigurable(props, componentKey) {\n return keys(props).reduce(function (result, key) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, key, makePropConfigurable(props[key], key, componentKey)));\n }, {});\n}; // Get function name we use in `makePropConfigurable()`\n// for the prop default value override to compare\n// against in `hasPropFunction()`\n\nvar configurablePropDefaultFnName = makePropConfigurable({}, '', '').default.name; // Detect wether the given value is currently a function\n// and isn't the props default function\n\nexport var hasPropFunction = function hasPropFunction(fn) {\n return isFunction(fn) && fn.name && fn.name !== configurablePropDefaultFnName;\n};","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend } from '../vue';\nimport { EVENT_NAME_INPUT } from '../constants/events';\nimport { PROP_TYPE_ANY } from '../constants/props';\nimport { makeProp } from './props';\nexport var makeModelMixin = function makeModelMixin(prop) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$type = _ref.type,\n type = _ref$type === void 0 ? PROP_TYPE_ANY : _ref$type,\n _ref$defaultValue = _ref.defaultValue,\n defaultValue = _ref$defaultValue === void 0 ? undefined : _ref$defaultValue,\n _ref$validator = _ref.validator,\n validator = _ref$validator === void 0 ? undefined : _ref$validator,\n _ref$event = _ref.event,\n event = _ref$event === void 0 ? EVENT_NAME_INPUT : _ref$event;\n\n var props = _defineProperty({}, prop, makeProp(type, defaultValue, validator)); // @vue/component\n\n\n var mixin = extend({\n model: {\n prop: prop,\n event: event\n },\n props: props\n });\n return {\n mixin: mixin,\n props: props,\n prop: prop,\n event: event\n };\n};","import { HAS_PASSIVE_EVENT_SUPPORT } from '../constants/env';\nimport { ROOT_EVENT_NAME_PREFIX, ROOT_EVENT_NAME_SEPARATOR } from '../constants/events';\nimport { RX_BV_PREFIX } from '../constants/regex';\nimport { isObject } from './inspect';\nimport { kebabCase } from './string'; // --- Utils ---\n// Normalize event options based on support of passive option\n// Exported only for testing purposes\n\nexport var parseEventOptions = function parseEventOptions(options) {\n /* istanbul ignore else: can't test in JSDOM, as it supports passive */\n if (HAS_PASSIVE_EVENT_SUPPORT) {\n return isObject(options) ? options : {\n capture: !!options || false\n };\n } else {\n // Need to translate to actual Boolean value\n return !!(isObject(options) ? options.capture : options);\n }\n}; // Attach an event listener to an element\n\nexport var eventOn = function eventOn(el, eventName, handler, options) {\n if (el && el.addEventListener) {\n el.addEventListener(eventName, handler, parseEventOptions(options));\n }\n}; // Remove an event listener from an element\n\nexport var eventOff = function eventOff(el, eventName, handler, options) {\n if (el && el.removeEventListener) {\n el.removeEventListener(eventName, handler, parseEventOptions(options));\n }\n}; // Utility method to add/remove a event listener based on first argument (boolean)\n// It passes all other arguments to the `eventOn()` or `eventOff` method\n\nexport var eventOnOff = function eventOnOff(on) {\n var method = on ? eventOn : eventOff;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n method.apply(void 0, args);\n}; // Utility method to prevent the default event handling and propagation\n\nexport var stopEvent = function stopEvent(event) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$preventDefault = _ref.preventDefault,\n preventDefault = _ref$preventDefault === void 0 ? true : _ref$preventDefault,\n _ref$propagation = _ref.propagation,\n propagation = _ref$propagation === void 0 ? true : _ref$propagation,\n _ref$immediatePropaga = _ref.immediatePropagation,\n immediatePropagation = _ref$immediatePropaga === void 0 ? false : _ref$immediatePropaga;\n\n if (preventDefault) {\n event.preventDefault();\n }\n\n if (propagation) {\n event.stopPropagation();\n }\n\n if (immediatePropagation) {\n event.stopImmediatePropagation();\n }\n}; // Helper method to convert a component/directive name to a base event name\n// `getBaseEventName('BNavigationItem')` => 'navigation-item'\n// `getBaseEventName('BVToggle')` => 'toggle'\n\nvar getBaseEventName = function getBaseEventName(value) {\n return kebabCase(value.replace(RX_BV_PREFIX, ''));\n}; // Get a root event name by component/directive and event name\n// `getBaseEventName('BModal', 'show')` => 'bv::modal::show'\n\n\nexport var getRootEventName = function getRootEventName(name, eventName) {\n return [ROOT_EVENT_NAME_PREFIX, getBaseEventName(name), eventName].join(ROOT_EVENT_NAME_SEPARATOR);\n}; // Get a root action event name by component/directive and action name\n// `getRootActionEventName('BModal', 'show')` => 'bv::show::modal'\n\nexport var getRootActionEventName = function getRootActionEventName(name, actionName) {\n return [ROOT_EVENT_NAME_PREFIX, actionName, getBaseEventName(name)].join(ROOT_EVENT_NAME_SEPARATOR);\n};","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend, mergeData } from '../../vue';\nimport { NAME_BUTTON_CLOSE } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { stopEvent } from '../../utils/events';\nimport { isEvent } from '../../utils/inspect';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n ariaLabel: makeProp(PROP_TYPE_STRING, 'Close'),\n content: makeProp(PROP_TYPE_STRING, '×'),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n textVariant: makeProp(PROP_TYPE_STRING)\n}, NAME_BUTTON_CLOSE); // --- Main component ---\n// @vue/component\n\nexport var BButtonClose = /*#__PURE__*/extend({\n name: NAME_BUTTON_CLOSE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n var $slots = slots();\n var $scopedSlots = scopedSlots || {};\n var componentData = {\n staticClass: 'close',\n class: _defineProperty({}, \"text-\".concat(props.textVariant), props.textVariant),\n attrs: {\n type: 'button',\n disabled: props.disabled,\n 'aria-label': props.ariaLabel ? String(props.ariaLabel) : null\n },\n on: {\n click: function click(event) {\n // Ensure click on button HTML content is also disabled\n\n /* istanbul ignore if: bug in JSDOM still emits click on inner element */\n if (props.disabled && isEvent(event)) {\n stopEvent(event);\n }\n }\n }\n }; // Careful not to override the default slot with innerHTML\n\n if (!hasNormalizedSlot(SLOT_NAME_DEFAULT, $scopedSlots, $slots)) {\n componentData.domProps = {\n innerHTML: props.content\n };\n }\n\n return h('button', mergeData(data, componentData), normalizeSlot(SLOT_NAME_DEFAULT, {}, $scopedSlots, $slots));\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// Generic Bootstrap v4 fade (no-fade) transition component\n//\n// Assumes that `show` class is not required when\n// the transition has finished the enter transition\n// (show and fade classes are only applied during transition)\nimport { extend, mergeData } from '../../vue';\nimport { NAME_TRANSITION } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props';\nimport { isPlainObject } from '../../utils/inspect';\nimport { makeProp } from '../../utils/props'; // --- Constants ---\n\nvar NO_FADE_PROPS = {\n name: '',\n enterClass: '',\n enterActiveClass: '',\n enterToClass: 'show',\n leaveClass: 'show',\n leaveActiveClass: '',\n leaveToClass: ''\n};\n\nvar FADE_PROPS = _objectSpread(_objectSpread({}, NO_FADE_PROPS), {}, {\n enterActiveClass: 'fade',\n leaveActiveClass: 'fade'\n}); // --- Props ---\n\n\nexport var props = {\n // Has no effect if `trans-props` provided\n appear: makeProp(PROP_TYPE_BOOLEAN, false),\n // Can be overridden by user supplied `trans-props`\n mode: makeProp(PROP_TYPE_STRING),\n // Only applicable to the built in transition\n // Has no effect if `trans-props` provided\n noFade: makeProp(PROP_TYPE_BOOLEAN, false),\n // For user supplied transitions (if needed)\n transProps: makeProp(PROP_TYPE_OBJECT)\n}; // --- Main component ---\n// @vue/component\n\nexport var BVTransition = /*#__PURE__*/extend({\n name: NAME_TRANSITION,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var children = _ref.children,\n data = _ref.data,\n props = _ref.props;\n var transProps = props.transProps;\n\n if (!isPlainObject(transProps)) {\n transProps = props.noFade ? NO_FADE_PROPS : FADE_PROPS;\n\n if (props.appear) {\n // Default the appear classes to equal the enter classes\n transProps = _objectSpread(_objectSpread({}, transProps), {}, {\n appear: true,\n appearClass: transProps.enterClass,\n appearActiveClass: transProps.enterActiveClass,\n appearToClass: transProps.enterToClass\n });\n }\n }\n\n transProps = _objectSpread(_objectSpread({\n mode: props.mode\n }, transProps), {}, {\n // We always need `css` true\n css: true\n });\n\n var dataCopy = _objectSpread({}, data);\n\n delete dataCopy.props;\n return h('transition', // Any transition event listeners will get merged here\n mergeData(dataCopy, {\n props: transProps\n }), children);\n }\n});","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { NAME_ALERT } from '../../constants/components';\nimport { EVENT_NAME_DISMISSED, EVENT_NAME_DISMISS_COUNT_DOWN } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DISMISS } from '../../constants/slots';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { requestAF } from '../../utils/dom';\nimport { isBoolean, isNumeric } from '../../utils/inspect';\nimport { makeModelMixin } from '../../utils/model';\nimport { toInteger } from '../../utils/number';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { COMPONENT_UID_KEY, extend } from '../../vue';\nimport { BButtonClose } from '../button/button-close';\nimport { BVTransition } from '../transition/bv-transition'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('show', {\n type: PROP_TYPE_BOOLEAN_NUMBER_STRING,\n defaultValue: false\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Helper methods ---\n// Convert `show` value to a number\n\n\nvar parseCountDown = function parseCountDown(show) {\n if (show === '' || isBoolean(show)) {\n return 0;\n }\n\n show = toInteger(show, 0);\n return show > 0 ? show : 0;\n}; // Convert `show` value to a boolean\n\n\nvar parseShow = function parseShow(show) {\n if (show === '' || show === true) {\n return true;\n }\n\n if (toInteger(show, 0) < 1) {\n // Boolean will always return false for the above comparison\n return false;\n }\n\n return !!show;\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, modelProps), {}, {\n dismissLabel: makeProp(PROP_TYPE_STRING, 'Close'),\n dismissible: makeProp(PROP_TYPE_BOOLEAN, false),\n fade: makeProp(PROP_TYPE_BOOLEAN, false),\n variant: makeProp(PROP_TYPE_STRING, 'info')\n})), NAME_ALERT); // --- Main component ---\n// @vue/component\n\nexport var BAlert = /*#__PURE__*/extend({\n name: NAME_ALERT,\n mixins: [modelMixin, normalizeSlotMixin],\n props: props,\n data: function data() {\n return {\n countDown: 0,\n // If initially shown, we need to set these for SSR\n localShow: parseShow(this[MODEL_PROP_NAME])\n };\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue) {\n this.countDown = parseCountDown(newValue);\n this.localShow = parseShow(newValue);\n }), _defineProperty(_watch, \"countDown\", function countDown(newValue) {\n var _this = this;\n\n this.clearCountDownInterval();\n var show = this[MODEL_PROP_NAME]; // Ignore if `show` transitions to a boolean value\n\n if (isNumeric(show)) {\n this.$emit(EVENT_NAME_DISMISS_COUNT_DOWN, newValue); // Update the v-model if needed\n\n if (show !== newValue) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n\n if (newValue > 0) {\n this.localShow = true;\n this.$_countDownTimeout = setTimeout(function () {\n _this.countDown--;\n }, 1000);\n } else {\n // Slightly delay the hide to allow any UI updates\n this.$nextTick(function () {\n requestAF(function () {\n _this.localShow = false;\n });\n });\n }\n }\n }), _defineProperty(_watch, \"localShow\", function localShow(newValue) {\n var show = this[MODEL_PROP_NAME]; // Only emit dismissed events for dismissible or auto-dismissing alerts\n\n if (!newValue && (this.dismissible || isNumeric(show))) {\n this.$emit(EVENT_NAME_DISMISSED);\n } // Only emit booleans if we weren't passed a number via v-model\n\n\n if (!isNumeric(show) && show !== newValue) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n }), _watch),\n created: function created() {\n // Create private non-reactive props\n this.$_filterTimer = null;\n var show = this[MODEL_PROP_NAME];\n this.countDown = parseCountDown(show);\n this.localShow = parseShow(show);\n },\n beforeDestroy: function beforeDestroy() {\n this.clearCountDownInterval();\n },\n methods: {\n dismiss: function dismiss() {\n this.clearCountDownInterval();\n this.countDown = 0;\n this.localShow = false;\n },\n clearCountDownInterval: function clearCountDownInterval() {\n clearTimeout(this.$_countDownTimeout);\n this.$_countDownTimeout = null;\n }\n },\n render: function render(h) {\n var $alert = h();\n\n if (this.localShow) {\n var dismissible = this.dismissible,\n variant = this.variant;\n var $dismissButton = h();\n\n if (dismissible) {\n // Add dismiss button\n $dismissButton = h(BButtonClose, {\n attrs: {\n 'aria-label': this.dismissLabel\n },\n on: {\n click: this.dismiss\n }\n }, [this.normalizeSlot(SLOT_NAME_DISMISS)]);\n }\n\n $alert = h('div', {\n staticClass: 'alert',\n class: _defineProperty({\n 'alert-dismissible': dismissible\n }, \"alert-\".concat(variant), variant),\n attrs: {\n role: 'alert',\n 'aria-live': 'polite',\n 'aria-atomic': true\n },\n key: this[COMPONENT_UID_KEY]\n }, [$dismissButton, this.normalizeSlot()]);\n }\n\n return h(BVTransition, {\n props: {\n noFade: !this.fade\n }\n }, [$alert]);\n }\n});","import { BAlert } from './alert';\nimport { pluginFactory } from '../../utils/plugins';\nvar AlertPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BAlert: BAlert\n }\n});\nexport { AlertPlugin, BAlert };","// Math utilty functions\nexport var mathMin = Math.min;\nexport var mathMax = Math.max;\nexport var mathAbs = Math.abs;\nexport var mathCeil = Math.ceil;\nexport var mathFloor = Math.floor;\nexport var mathPow = Math.pow;\nexport var mathRound = Math.round;","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport { extend } from '../../vue';\nimport { NAME_ASPECT } from '../../constants/components';\nimport { PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { RX_ASPECT, RX_ASPECT_SEPARATOR } from '../../constants/regex';\nimport { mathAbs } from '../../utils/math';\nimport { toFloat } from '../../utils/number';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Constants ---\n\nvar CLASS_NAME = 'b-aspect'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n // Accepts a number (i.e. `16 / 9`, `1`, `4 / 3`)\n // Or a string (i.e. '16/9', '16:9', '4:3' '1:1')\n aspect: makeProp(PROP_TYPE_NUMBER_STRING, '1:1'),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_ASPECT); // --- Main component ---\n// @vue/component\n\nexport var BAspect = /*#__PURE__*/extend({\n name: NAME_ASPECT,\n mixins: [normalizeSlotMixin],\n props: props,\n computed: {\n padding: function padding() {\n var aspect = this.aspect;\n var ratio = 1;\n\n if (RX_ASPECT.test(aspect)) {\n // Width and/or Height can be a decimal value below `1`, so\n // we only fallback to `1` if the value is `0` or `NaN`\n var _aspect$split$map = aspect.split(RX_ASPECT_SEPARATOR).map(function (v) {\n return toFloat(v) || 1;\n }),\n _aspect$split$map2 = _slicedToArray(_aspect$split$map, 2),\n width = _aspect$split$map2[0],\n height = _aspect$split$map2[1];\n\n ratio = width / height;\n } else {\n ratio = toFloat(aspect) || 1;\n }\n\n return \"\".concat(100 / mathAbs(ratio), \"%\");\n }\n },\n render: function render(h) {\n var $sizer = h('div', {\n staticClass: \"\".concat(CLASS_NAME, \"-sizer flex-grow-1\"),\n style: {\n paddingBottom: this.padding,\n height: 0\n }\n });\n var $content = h('div', {\n staticClass: \"\".concat(CLASS_NAME, \"-content flex-grow-1 w-100 mw-100\"),\n style: {\n marginLeft: '-100%'\n }\n }, this.normalizeSlot());\n return h(this.tag, {\n staticClass: \"\".concat(CLASS_NAME, \" d-flex\")\n }, [$sizer, $content]);\n }\n});","import { BAspect } from './aspect';\nimport { pluginFactory } from '../../utils/plugins';\nvar AspectPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BAspect: BAspect\n }\n});\nexport { AspectPlugin, BAspect };","import { isVue3 } from '../vue';\nexport function safeVueInstance(target) {\n if (!isVue3) {\n return target;\n }\n\n return new Proxy(target, {\n get: function get(target, prop) {\n return prop in target ? target[prop] : undefined;\n }\n });\n}","import { RX_ENCODED_COMMA, RX_ENCODE_REVERSE, RX_PLUS, RX_QUERY_START } from '../constants/regex';\nimport { isTag } from './dom';\nimport { isArray, isNull, isPlainObject, isString, isUndefined } from './inspect';\nimport { keys } from './object';\nimport { safeVueInstance } from './safe-vue-instance';\nimport { toString } from './string';\nvar ANCHOR_TAG = 'a'; // Method to replace reserved chars\n\nvar encodeReserveReplacer = function encodeReserveReplacer(c) {\n return '%' + c.charCodeAt(0).toString(16);\n}; // Fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\n\n\nvar encode = function encode(str) {\n return encodeURIComponent(toString(str)).replace(RX_ENCODE_REVERSE, encodeReserveReplacer).replace(RX_ENCODED_COMMA, ',');\n};\n\nvar decode = decodeURIComponent; // Stringifies an object of query parameters\n// See: https://github.com/vuejs/vue-router/blob/dev/src/util/query.js\n\nexport var stringifyQueryObj = function stringifyQueryObj(obj) {\n if (!isPlainObject(obj)) {\n return '';\n }\n\n var query = keys(obj).map(function (key) {\n var value = obj[key];\n\n if (isUndefined(value)) {\n return '';\n } else if (isNull(value)) {\n return encode(key);\n } else if (isArray(value)) {\n return value.reduce(function (results, value2) {\n if (isNull(value2)) {\n results.push(encode(key));\n } else if (!isUndefined(value2)) {\n // Faster than string interpolation\n results.push(encode(key) + '=' + encode(value2));\n }\n\n return results;\n }, []).join('&');\n } // Faster than string interpolation\n\n\n return encode(key) + '=' + encode(value);\n })\n /* must check for length, as we only want to filter empty strings, not things that look falsey! */\n .filter(function (x) {\n return x.length > 0;\n }).join('&');\n return query ? \"?\".concat(query) : '';\n};\nexport var parseQuery = function parseQuery(query) {\n var parsed = {};\n query = toString(query).trim().replace(RX_QUERY_START, '');\n\n if (!query) {\n return parsed;\n }\n\n query.split('&').forEach(function (param) {\n var parts = param.replace(RX_PLUS, ' ').split('=');\n var key = decode(parts.shift());\n var value = parts.length > 0 ? decode(parts.join('=')) : null;\n\n if (isUndefined(parsed[key])) {\n parsed[key] = value;\n } else if (isArray(parsed[key])) {\n parsed[key].push(value);\n } else {\n parsed[key] = [parsed[key], value];\n }\n });\n return parsed;\n};\nexport var isLink = function isLink(props) {\n return !!(props.href || props.to);\n};\nexport var isRouterLink = function isRouterLink(tag) {\n return !!(tag && !isTag(tag, 'a'));\n};\nexport var computeTag = function computeTag(_ref, thisOrParent) {\n var to = _ref.to,\n disabled = _ref.disabled,\n routerComponentName = _ref.routerComponentName;\n var hasRouter = !!safeVueInstance(thisOrParent).$router;\n var hasNuxt = !!safeVueInstance(thisOrParent).$nuxt;\n\n if (!hasRouter || hasRouter && (disabled || !to)) {\n return ANCHOR_TAG;\n } // TODO:\n // Check registered components for existence of user supplied router link component name\n // We would need to check PascalCase, kebab-case, and camelCase versions of name:\n // const name = routerComponentName\n // const names = [name, PascalCase(name), KebabCase(name), CamelCase(name)]\n // exists = names.some(name => !!thisOrParent.$options.components[name])\n // And may want to cache the result for performance or we just let the render fail\n // if the component is not registered\n\n\n return routerComponentName || (hasNuxt ? 'nuxt-link' : 'router-link');\n};\nexport var computeRel = function computeRel() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n target = _ref2.target,\n rel = _ref2.rel;\n\n return target === '_blank' && isNull(rel) ? 'noopener' : rel || null;\n};\nexport var computeHref = function computeHref() {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n href = _ref3.href,\n to = _ref3.to;\n\n var tag = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ANCHOR_TAG;\n var fallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '#';\n var toFallback = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '/';\n\n // Return `href` when explicitly provided\n if (href) {\n return href;\n } // We've checked for `$router` in `computeTag()`, so `isRouterLink()` indicates a live router\n // When deferring to Vue Router's ``, don't use the `href` attribute at all\n // We return `null`, and then remove `href` from the attributes passed to ``\n\n\n if (isRouterLink(tag)) {\n return null;\n } // Fallback to `to` prop (if `to` is a string)\n\n\n if (isString(to)) {\n return to || toFallback;\n } // Fallback to `to.path' + `to.query` + `to.hash` prop (if `to` is an object)\n\n\n if (isPlainObject(to) && (to.path || to.query || to.hash)) {\n var path = toString(to.path);\n var query = stringifyQueryObj(to.query);\n var hash = toString(to.hash);\n hash = !hash || hash.charAt(0) === '#' ? hash : \"#\".concat(hash);\n return \"\".concat(path).concat(query).concat(hash) || toFallback;\n } // If nothing is provided return the fallback\n\n\n return fallback;\n};","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend, mergeData } from '../../vue';\nimport { NAME_ICON_BASE } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { identity } from '../../utils/identity';\nimport { isUndefinedOrNull } from '../../utils/inspect';\nimport { mathMax } from '../../utils/math';\nimport { toFloat } from '../../utils/number';\nimport { makeProp } from '../../utils/props'; // --- Constants ---\n// Base attributes needed on all icons\n\nvar BASE_ATTRS = {\n viewBox: '0 0 16 16',\n width: '1em',\n height: '1em',\n focusable: 'false',\n role: 'img',\n 'aria-label': 'icon'\n}; // Attributes that are nulled out when stacked\n\nvar STACKED_ATTRS = {\n width: null,\n height: null,\n focusable: null,\n role: null,\n 'aria-label': null\n}; // --- Props ---\n\nexport var props = {\n animation: makeProp(PROP_TYPE_STRING),\n content: makeProp(PROP_TYPE_STRING),\n flipH: makeProp(PROP_TYPE_BOOLEAN, false),\n flipV: makeProp(PROP_TYPE_BOOLEAN, false),\n fontScale: makeProp(PROP_TYPE_NUMBER_STRING, 1),\n rotate: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n scale: makeProp(PROP_TYPE_NUMBER_STRING, 1),\n shiftH: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n shiftV: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n stacked: makeProp(PROP_TYPE_BOOLEAN, false),\n title: makeProp(PROP_TYPE_STRING),\n variant: makeProp(PROP_TYPE_STRING)\n}; // --- Main component ---\n// Shared private base component to reduce bundle/runtime size\n// @vue/component\n\nexport var BVIconBase = /*#__PURE__*/extend({\n name: NAME_ICON_BASE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var data = _ref.data,\n props = _ref.props,\n children = _ref.children;\n var animation = props.animation,\n content = props.content,\n flipH = props.flipH,\n flipV = props.flipV,\n stacked = props.stacked,\n title = props.title,\n variant = props.variant;\n var fontScale = mathMax(toFloat(props.fontScale, 1), 0) || 1;\n var scale = mathMax(toFloat(props.scale, 1), 0) || 1;\n var rotate = toFloat(props.rotate, 0);\n var shiftH = toFloat(props.shiftH, 0);\n var shiftV = toFloat(props.shiftV, 0); // Compute the transforms\n // Note that order is important as SVG transforms are applied in order from\n // left to right and we want flipping/scale to occur before rotation\n // Note shifting is applied separately\n // Assumes that the viewbox is `0 0 16 16` (`8 8` is the center)\n\n var hasScale = flipH || flipV || scale !== 1;\n var hasTransforms = hasScale || rotate;\n var hasShift = shiftH || shiftV;\n var hasContent = !isUndefinedOrNull(content);\n var transforms = [hasTransforms ? 'translate(8 8)' : null, hasScale ? \"scale(\".concat((flipH ? -1 : 1) * scale, \" \").concat((flipV ? -1 : 1) * scale, \")\") : null, rotate ? \"rotate(\".concat(rotate, \")\") : null, hasTransforms ? 'translate(-8 -8)' : null].filter(identity); // We wrap the content in a `` for handling the transforms (except shift)\n\n var $inner = h('g', {\n attrs: {\n transform: transforms.join(' ') || null\n },\n domProps: hasContent ? {\n innerHTML: content || ''\n } : {}\n }, children); // If needed, we wrap in an additional `` in order to handle the shifting\n\n if (hasShift) {\n $inner = h('g', {\n attrs: {\n transform: \"translate(\".concat(16 * shiftH / 16, \" \").concat(-16 * shiftV / 16, \")\")\n }\n }, [$inner]);\n } // Wrap in an additional `` for proper animation handling if stacked\n\n\n if (stacked) {\n $inner = h('g', [$inner]);\n }\n\n var $title = title ? h('title', title) : null;\n var $content = [$title, $inner].filter(identity);\n return h('svg', mergeData({\n staticClass: 'b-icon bi',\n class: (_class = {}, _defineProperty(_class, \"text-\".concat(variant), variant), _defineProperty(_class, \"b-icon-animation-\".concat(animation), animation), _class),\n attrs: BASE_ATTRS,\n style: stacked ? {} : {\n fontSize: fontScale === 1 ? null : \"\".concat(fontScale * 100, \"%\")\n }\n }, // Merge in user supplied data\n data, // If icon is stacked, null-out some attrs\n stacked ? {\n attrs: STACKED_ATTRS\n } : {}, // These cannot be overridden by users\n {\n attrs: {\n xmlns: stacked ? null : 'http://www.w3.org/2000/svg',\n fill: 'currentColor'\n }\n }), $content);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend, mergeData } from '../../vue';\nimport { omit } from '../../utils/object';\nimport { kebabCase, pascalCase, trim } from '../../utils/string';\nimport { BVIconBase, props as BVIconBaseProps } from './icon-base';\nvar iconProps = omit(BVIconBaseProps, ['content']);\n/**\n * Icon component generator function\n *\n * @param {string} icon name (minus the leading `BIcon`)\n * @param {string} raw `innerHTML` for SVG\n * @return {VueComponent}\n */\n\nexport var makeIcon = function makeIcon(name, content) {\n // For performance reason we pre-compute some values, so that\n // they are not computed on each render of the icon component\n var kebabName = kebabCase(name);\n var iconName = \"BIcon\".concat(pascalCase(name));\n var iconNameClass = \"bi-\".concat(kebabName);\n var iconTitle = kebabName.replace(/-/g, ' ');\n var svgContent = trim(content || '');\n return /*#__PURE__*/extend({\n name: iconName,\n functional: true,\n props: iconProps,\n render: function render(h, _ref) {\n var data = _ref.data,\n props = _ref.props;\n return h(BVIconBase, mergeData( // Defaults\n {\n props: {\n title: iconTitle\n },\n attrs: {\n 'aria-label': iconTitle\n }\n }, // User data\n data, // Required data\n {\n staticClass: iconNameClass,\n props: _objectSpread(_objectSpread({}, props), {}, {\n content: svgContent\n })\n }));\n }\n });\n};","// --- BEGIN AUTO-GENERATED FILE ---\n//\n// @IconsVersion: 1.5.0\n// @Generated: 2022-10-26T01:10:52.933Z\n//\n// This file is generated on each build. Do not edit this file!\n/*!\n * BootstrapVue Icons, generated from Bootstrap Icons 1.5.0\n *\n * @link https://icons.getbootstrap.com/\n * @license MIT\n * https://github.com/twbs/icons/blob/master/LICENSE.md\n */import{makeIcon}from'./helpers/make-icon';// --- BootstrapVue custom icons ---\nexport var BIconBlank=/*#__PURE__*/makeIcon('Blank','');// --- Bootstrap Icons ---\n// eslint-disable-next-line\nexport var BIconAlarm=/*#__PURE__*/makeIcon('Alarm','');// eslint-disable-next-line\nexport var BIconAlarmFill=/*#__PURE__*/makeIcon('AlarmFill','');// eslint-disable-next-line\nexport var BIconAlignBottom=/*#__PURE__*/makeIcon('AlignBottom','');// eslint-disable-next-line\nexport var BIconAlignCenter=/*#__PURE__*/makeIcon('AlignCenter','');// eslint-disable-next-line\nexport var BIconAlignEnd=/*#__PURE__*/makeIcon('AlignEnd','');// eslint-disable-next-line\nexport var BIconAlignMiddle=/*#__PURE__*/makeIcon('AlignMiddle','');// eslint-disable-next-line\nexport var BIconAlignStart=/*#__PURE__*/makeIcon('AlignStart','');// eslint-disable-next-line\nexport var BIconAlignTop=/*#__PURE__*/makeIcon('AlignTop','');// eslint-disable-next-line\nexport var BIconAlt=/*#__PURE__*/makeIcon('Alt','');// eslint-disable-next-line\nexport var BIconApp=/*#__PURE__*/makeIcon('App','');// eslint-disable-next-line\nexport var BIconAppIndicator=/*#__PURE__*/makeIcon('AppIndicator','');// eslint-disable-next-line\nexport var BIconArchive=/*#__PURE__*/makeIcon('Archive','');// eslint-disable-next-line\nexport var BIconArchiveFill=/*#__PURE__*/makeIcon('ArchiveFill','');// eslint-disable-next-line\nexport var BIconArrow90degDown=/*#__PURE__*/makeIcon('Arrow90degDown','');// eslint-disable-next-line\nexport var BIconArrow90degLeft=/*#__PURE__*/makeIcon('Arrow90degLeft','');// eslint-disable-next-line\nexport var BIconArrow90degRight=/*#__PURE__*/makeIcon('Arrow90degRight','');// eslint-disable-next-line\nexport var BIconArrow90degUp=/*#__PURE__*/makeIcon('Arrow90degUp','');// eslint-disable-next-line\nexport var BIconArrowBarDown=/*#__PURE__*/makeIcon('ArrowBarDown','');// eslint-disable-next-line\nexport var BIconArrowBarLeft=/*#__PURE__*/makeIcon('ArrowBarLeft','');// eslint-disable-next-line\nexport var BIconArrowBarRight=/*#__PURE__*/makeIcon('ArrowBarRight','');// eslint-disable-next-line\nexport var BIconArrowBarUp=/*#__PURE__*/makeIcon('ArrowBarUp','');// eslint-disable-next-line\nexport var BIconArrowClockwise=/*#__PURE__*/makeIcon('ArrowClockwise','');// eslint-disable-next-line\nexport var BIconArrowCounterclockwise=/*#__PURE__*/makeIcon('ArrowCounterclockwise','');// eslint-disable-next-line\nexport var BIconArrowDown=/*#__PURE__*/makeIcon('ArrowDown','');// eslint-disable-next-line\nexport var BIconArrowDownCircle=/*#__PURE__*/makeIcon('ArrowDownCircle','');// eslint-disable-next-line\nexport var BIconArrowDownCircleFill=/*#__PURE__*/makeIcon('ArrowDownCircleFill','');// eslint-disable-next-line\nexport var BIconArrowDownLeft=/*#__PURE__*/makeIcon('ArrowDownLeft','');// eslint-disable-next-line\nexport var BIconArrowDownLeftCircle=/*#__PURE__*/makeIcon('ArrowDownLeftCircle','');// eslint-disable-next-line\nexport var BIconArrowDownLeftCircleFill=/*#__PURE__*/makeIcon('ArrowDownLeftCircleFill','');// eslint-disable-next-line\nexport var BIconArrowDownLeftSquare=/*#__PURE__*/makeIcon('ArrowDownLeftSquare','');// eslint-disable-next-line\nexport var BIconArrowDownLeftSquareFill=/*#__PURE__*/makeIcon('ArrowDownLeftSquareFill','');// eslint-disable-next-line\nexport var BIconArrowDownRight=/*#__PURE__*/makeIcon('ArrowDownRight','');// eslint-disable-next-line\nexport var BIconArrowDownRightCircle=/*#__PURE__*/makeIcon('ArrowDownRightCircle','');// eslint-disable-next-line\nexport var BIconArrowDownRightCircleFill=/*#__PURE__*/makeIcon('ArrowDownRightCircleFill','');// eslint-disable-next-line\nexport var BIconArrowDownRightSquare=/*#__PURE__*/makeIcon('ArrowDownRightSquare','');// eslint-disable-next-line\nexport var BIconArrowDownRightSquareFill=/*#__PURE__*/makeIcon('ArrowDownRightSquareFill','');// eslint-disable-next-line\nexport var BIconArrowDownShort=/*#__PURE__*/makeIcon('ArrowDownShort','');// eslint-disable-next-line\nexport var BIconArrowDownSquare=/*#__PURE__*/makeIcon('ArrowDownSquare','');// eslint-disable-next-line\nexport var BIconArrowDownSquareFill=/*#__PURE__*/makeIcon('ArrowDownSquareFill','');// eslint-disable-next-line\nexport var BIconArrowDownUp=/*#__PURE__*/makeIcon('ArrowDownUp','');// eslint-disable-next-line\nexport var BIconArrowLeft=/*#__PURE__*/makeIcon('ArrowLeft','');// eslint-disable-next-line\nexport var BIconArrowLeftCircle=/*#__PURE__*/makeIcon('ArrowLeftCircle','');// eslint-disable-next-line\nexport var BIconArrowLeftCircleFill=/*#__PURE__*/makeIcon('ArrowLeftCircleFill','');// eslint-disable-next-line\nexport var BIconArrowLeftRight=/*#__PURE__*/makeIcon('ArrowLeftRight','');// eslint-disable-next-line\nexport var BIconArrowLeftShort=/*#__PURE__*/makeIcon('ArrowLeftShort','');// eslint-disable-next-line\nexport var BIconArrowLeftSquare=/*#__PURE__*/makeIcon('ArrowLeftSquare','');// eslint-disable-next-line\nexport var BIconArrowLeftSquareFill=/*#__PURE__*/makeIcon('ArrowLeftSquareFill','');// eslint-disable-next-line\nexport var BIconArrowRepeat=/*#__PURE__*/makeIcon('ArrowRepeat','');// eslint-disable-next-line\nexport var BIconArrowReturnLeft=/*#__PURE__*/makeIcon('ArrowReturnLeft','');// eslint-disable-next-line\nexport var BIconArrowReturnRight=/*#__PURE__*/makeIcon('ArrowReturnRight','');// eslint-disable-next-line\nexport var BIconArrowRight=/*#__PURE__*/makeIcon('ArrowRight','');// eslint-disable-next-line\nexport var BIconArrowRightCircle=/*#__PURE__*/makeIcon('ArrowRightCircle','');// eslint-disable-next-line\nexport var BIconArrowRightCircleFill=/*#__PURE__*/makeIcon('ArrowRightCircleFill','');// eslint-disable-next-line\nexport var BIconArrowRightShort=/*#__PURE__*/makeIcon('ArrowRightShort','');// eslint-disable-next-line\nexport var BIconArrowRightSquare=/*#__PURE__*/makeIcon('ArrowRightSquare','');// eslint-disable-next-line\nexport var BIconArrowRightSquareFill=/*#__PURE__*/makeIcon('ArrowRightSquareFill','');// eslint-disable-next-line\nexport var BIconArrowUp=/*#__PURE__*/makeIcon('ArrowUp','');// eslint-disable-next-line\nexport var BIconArrowUpCircle=/*#__PURE__*/makeIcon('ArrowUpCircle','');// eslint-disable-next-line\nexport var BIconArrowUpCircleFill=/*#__PURE__*/makeIcon('ArrowUpCircleFill','');// eslint-disable-next-line\nexport var BIconArrowUpLeft=/*#__PURE__*/makeIcon('ArrowUpLeft','');// eslint-disable-next-line\nexport var BIconArrowUpLeftCircle=/*#__PURE__*/makeIcon('ArrowUpLeftCircle','');// eslint-disable-next-line\nexport var BIconArrowUpLeftCircleFill=/*#__PURE__*/makeIcon('ArrowUpLeftCircleFill','');// eslint-disable-next-line\nexport var BIconArrowUpLeftSquare=/*#__PURE__*/makeIcon('ArrowUpLeftSquare','');// eslint-disable-next-line\nexport var BIconArrowUpLeftSquareFill=/*#__PURE__*/makeIcon('ArrowUpLeftSquareFill','');// eslint-disable-next-line\nexport var BIconArrowUpRight=/*#__PURE__*/makeIcon('ArrowUpRight','');// eslint-disable-next-line\nexport var BIconArrowUpRightCircle=/*#__PURE__*/makeIcon('ArrowUpRightCircle','');// eslint-disable-next-line\nexport var BIconArrowUpRightCircleFill=/*#__PURE__*/makeIcon('ArrowUpRightCircleFill','');// eslint-disable-next-line\nexport var BIconArrowUpRightSquare=/*#__PURE__*/makeIcon('ArrowUpRightSquare','');// eslint-disable-next-line\nexport var BIconArrowUpRightSquareFill=/*#__PURE__*/makeIcon('ArrowUpRightSquareFill','');// eslint-disable-next-line\nexport var BIconArrowUpShort=/*#__PURE__*/makeIcon('ArrowUpShort','');// eslint-disable-next-line\nexport var BIconArrowUpSquare=/*#__PURE__*/makeIcon('ArrowUpSquare','');// eslint-disable-next-line\nexport var BIconArrowUpSquareFill=/*#__PURE__*/makeIcon('ArrowUpSquareFill','');// eslint-disable-next-line\nexport var BIconArrowsAngleContract=/*#__PURE__*/makeIcon('ArrowsAngleContract','');// eslint-disable-next-line\nexport var BIconArrowsAngleExpand=/*#__PURE__*/makeIcon('ArrowsAngleExpand','');// eslint-disable-next-line\nexport var BIconArrowsCollapse=/*#__PURE__*/makeIcon('ArrowsCollapse','');// eslint-disable-next-line\nexport var BIconArrowsExpand=/*#__PURE__*/makeIcon('ArrowsExpand','');// eslint-disable-next-line\nexport var BIconArrowsFullscreen=/*#__PURE__*/makeIcon('ArrowsFullscreen','');// eslint-disable-next-line\nexport var BIconArrowsMove=/*#__PURE__*/makeIcon('ArrowsMove','');// eslint-disable-next-line\nexport var BIconAspectRatio=/*#__PURE__*/makeIcon('AspectRatio','');// eslint-disable-next-line\nexport var BIconAspectRatioFill=/*#__PURE__*/makeIcon('AspectRatioFill','');// eslint-disable-next-line\nexport var BIconAsterisk=/*#__PURE__*/makeIcon('Asterisk','');// eslint-disable-next-line\nexport var BIconAt=/*#__PURE__*/makeIcon('At','');// eslint-disable-next-line\nexport var BIconAward=/*#__PURE__*/makeIcon('Award','');// eslint-disable-next-line\nexport var BIconAwardFill=/*#__PURE__*/makeIcon('AwardFill','');// eslint-disable-next-line\nexport var BIconBack=/*#__PURE__*/makeIcon('Back','');// eslint-disable-next-line\nexport var BIconBackspace=/*#__PURE__*/makeIcon('Backspace','');// eslint-disable-next-line\nexport var BIconBackspaceFill=/*#__PURE__*/makeIcon('BackspaceFill','');// eslint-disable-next-line\nexport var BIconBackspaceReverse=/*#__PURE__*/makeIcon('BackspaceReverse','');// eslint-disable-next-line\nexport var BIconBackspaceReverseFill=/*#__PURE__*/makeIcon('BackspaceReverseFill','');// eslint-disable-next-line\nexport var BIconBadge3d=/*#__PURE__*/makeIcon('Badge3d','');// eslint-disable-next-line\nexport var BIconBadge3dFill=/*#__PURE__*/makeIcon('Badge3dFill','');// eslint-disable-next-line\nexport var BIconBadge4k=/*#__PURE__*/makeIcon('Badge4k','');// eslint-disable-next-line\nexport var BIconBadge4kFill=/*#__PURE__*/makeIcon('Badge4kFill','');// eslint-disable-next-line\nexport var BIconBadge8k=/*#__PURE__*/makeIcon('Badge8k','');// eslint-disable-next-line\nexport var BIconBadge8kFill=/*#__PURE__*/makeIcon('Badge8kFill','');// eslint-disable-next-line\nexport var BIconBadgeAd=/*#__PURE__*/makeIcon('BadgeAd','');// eslint-disable-next-line\nexport var BIconBadgeAdFill=/*#__PURE__*/makeIcon('BadgeAdFill','');// eslint-disable-next-line\nexport var BIconBadgeAr=/*#__PURE__*/makeIcon('BadgeAr','');// eslint-disable-next-line\nexport var BIconBadgeArFill=/*#__PURE__*/makeIcon('BadgeArFill','');// eslint-disable-next-line\nexport var BIconBadgeCc=/*#__PURE__*/makeIcon('BadgeCc','');// eslint-disable-next-line\nexport var BIconBadgeCcFill=/*#__PURE__*/makeIcon('BadgeCcFill','');// eslint-disable-next-line\nexport var BIconBadgeHd=/*#__PURE__*/makeIcon('BadgeHd','');// eslint-disable-next-line\nexport var BIconBadgeHdFill=/*#__PURE__*/makeIcon('BadgeHdFill','');// eslint-disable-next-line\nexport var BIconBadgeTm=/*#__PURE__*/makeIcon('BadgeTm','');// eslint-disable-next-line\nexport var BIconBadgeTmFill=/*#__PURE__*/makeIcon('BadgeTmFill','');// eslint-disable-next-line\nexport var BIconBadgeVo=/*#__PURE__*/makeIcon('BadgeVo','');// eslint-disable-next-line\nexport var BIconBadgeVoFill=/*#__PURE__*/makeIcon('BadgeVoFill','');// eslint-disable-next-line\nexport var BIconBadgeVr=/*#__PURE__*/makeIcon('BadgeVr','');// eslint-disable-next-line\nexport var BIconBadgeVrFill=/*#__PURE__*/makeIcon('BadgeVrFill','');// eslint-disable-next-line\nexport var BIconBadgeWc=/*#__PURE__*/makeIcon('BadgeWc','');// eslint-disable-next-line\nexport var BIconBadgeWcFill=/*#__PURE__*/makeIcon('BadgeWcFill','');// eslint-disable-next-line\nexport var BIconBag=/*#__PURE__*/makeIcon('Bag','');// eslint-disable-next-line\nexport var BIconBagCheck=/*#__PURE__*/makeIcon('BagCheck','');// eslint-disable-next-line\nexport var BIconBagCheckFill=/*#__PURE__*/makeIcon('BagCheckFill','');// eslint-disable-next-line\nexport var BIconBagDash=/*#__PURE__*/makeIcon('BagDash','');// eslint-disable-next-line\nexport var BIconBagDashFill=/*#__PURE__*/makeIcon('BagDashFill','');// eslint-disable-next-line\nexport var BIconBagFill=/*#__PURE__*/makeIcon('BagFill','');// eslint-disable-next-line\nexport var BIconBagPlus=/*#__PURE__*/makeIcon('BagPlus','');// eslint-disable-next-line\nexport var BIconBagPlusFill=/*#__PURE__*/makeIcon('BagPlusFill','');// eslint-disable-next-line\nexport var BIconBagX=/*#__PURE__*/makeIcon('BagX','');// eslint-disable-next-line\nexport var BIconBagXFill=/*#__PURE__*/makeIcon('BagXFill','');// eslint-disable-next-line\nexport var BIconBank=/*#__PURE__*/makeIcon('Bank','');// eslint-disable-next-line\nexport var BIconBank2=/*#__PURE__*/makeIcon('Bank2','');// eslint-disable-next-line\nexport var BIconBarChart=/*#__PURE__*/makeIcon('BarChart','');// eslint-disable-next-line\nexport var BIconBarChartFill=/*#__PURE__*/makeIcon('BarChartFill','');// eslint-disable-next-line\nexport var BIconBarChartLine=/*#__PURE__*/makeIcon('BarChartLine','');// eslint-disable-next-line\nexport var BIconBarChartLineFill=/*#__PURE__*/makeIcon('BarChartLineFill','');// eslint-disable-next-line\nexport var BIconBarChartSteps=/*#__PURE__*/makeIcon('BarChartSteps','');// eslint-disable-next-line\nexport var BIconBasket=/*#__PURE__*/makeIcon('Basket','');// eslint-disable-next-line\nexport var BIconBasket2=/*#__PURE__*/makeIcon('Basket2','');// eslint-disable-next-line\nexport var BIconBasket2Fill=/*#__PURE__*/makeIcon('Basket2Fill','');// eslint-disable-next-line\nexport var BIconBasket3=/*#__PURE__*/makeIcon('Basket3','');// eslint-disable-next-line\nexport var BIconBasket3Fill=/*#__PURE__*/makeIcon('Basket3Fill','');// eslint-disable-next-line\nexport var BIconBasketFill=/*#__PURE__*/makeIcon('BasketFill','');// eslint-disable-next-line\nexport var BIconBattery=/*#__PURE__*/makeIcon('Battery','');// eslint-disable-next-line\nexport var BIconBatteryCharging=/*#__PURE__*/makeIcon('BatteryCharging','');// eslint-disable-next-line\nexport var BIconBatteryFull=/*#__PURE__*/makeIcon('BatteryFull','');// eslint-disable-next-line\nexport var BIconBatteryHalf=/*#__PURE__*/makeIcon('BatteryHalf','');// eslint-disable-next-line\nexport var BIconBell=/*#__PURE__*/makeIcon('Bell','');// eslint-disable-next-line\nexport var BIconBellFill=/*#__PURE__*/makeIcon('BellFill','');// eslint-disable-next-line\nexport var BIconBellSlash=/*#__PURE__*/makeIcon('BellSlash','');// eslint-disable-next-line\nexport var BIconBellSlashFill=/*#__PURE__*/makeIcon('BellSlashFill','');// eslint-disable-next-line\nexport var BIconBezier=/*#__PURE__*/makeIcon('Bezier','');// eslint-disable-next-line\nexport var BIconBezier2=/*#__PURE__*/makeIcon('Bezier2','');// eslint-disable-next-line\nexport var BIconBicycle=/*#__PURE__*/makeIcon('Bicycle','');// eslint-disable-next-line\nexport var BIconBinoculars=/*#__PURE__*/makeIcon('Binoculars','');// eslint-disable-next-line\nexport var BIconBinocularsFill=/*#__PURE__*/makeIcon('BinocularsFill','');// eslint-disable-next-line\nexport var BIconBlockquoteLeft=/*#__PURE__*/makeIcon('BlockquoteLeft','');// eslint-disable-next-line\nexport var BIconBlockquoteRight=/*#__PURE__*/makeIcon('BlockquoteRight','');// eslint-disable-next-line\nexport var BIconBook=/*#__PURE__*/makeIcon('Book','');// eslint-disable-next-line\nexport var BIconBookFill=/*#__PURE__*/makeIcon('BookFill','');// eslint-disable-next-line\nexport var BIconBookHalf=/*#__PURE__*/makeIcon('BookHalf','');// eslint-disable-next-line\nexport var BIconBookmark=/*#__PURE__*/makeIcon('Bookmark','');// eslint-disable-next-line\nexport var BIconBookmarkCheck=/*#__PURE__*/makeIcon('BookmarkCheck','');// eslint-disable-next-line\nexport var BIconBookmarkCheckFill=/*#__PURE__*/makeIcon('BookmarkCheckFill','');// eslint-disable-next-line\nexport var BIconBookmarkDash=/*#__PURE__*/makeIcon('BookmarkDash','');// eslint-disable-next-line\nexport var BIconBookmarkDashFill=/*#__PURE__*/makeIcon('BookmarkDashFill','');// eslint-disable-next-line\nexport var BIconBookmarkFill=/*#__PURE__*/makeIcon('BookmarkFill','');// eslint-disable-next-line\nexport var BIconBookmarkHeart=/*#__PURE__*/makeIcon('BookmarkHeart','');// eslint-disable-next-line\nexport var BIconBookmarkHeartFill=/*#__PURE__*/makeIcon('BookmarkHeartFill','');// eslint-disable-next-line\nexport var BIconBookmarkPlus=/*#__PURE__*/makeIcon('BookmarkPlus','');// eslint-disable-next-line\nexport var BIconBookmarkPlusFill=/*#__PURE__*/makeIcon('BookmarkPlusFill','');// eslint-disable-next-line\nexport var BIconBookmarkStar=/*#__PURE__*/makeIcon('BookmarkStar','');// eslint-disable-next-line\nexport var BIconBookmarkStarFill=/*#__PURE__*/makeIcon('BookmarkStarFill','');// eslint-disable-next-line\nexport var BIconBookmarkX=/*#__PURE__*/makeIcon('BookmarkX','');// eslint-disable-next-line\nexport var BIconBookmarkXFill=/*#__PURE__*/makeIcon('BookmarkXFill','');// eslint-disable-next-line\nexport var BIconBookmarks=/*#__PURE__*/makeIcon('Bookmarks','');// eslint-disable-next-line\nexport var BIconBookmarksFill=/*#__PURE__*/makeIcon('BookmarksFill','');// eslint-disable-next-line\nexport var BIconBookshelf=/*#__PURE__*/makeIcon('Bookshelf','');// eslint-disable-next-line\nexport var BIconBootstrap=/*#__PURE__*/makeIcon('Bootstrap','');// eslint-disable-next-line\nexport var BIconBootstrapFill=/*#__PURE__*/makeIcon('BootstrapFill','');// eslint-disable-next-line\nexport var BIconBootstrapReboot=/*#__PURE__*/makeIcon('BootstrapReboot','');// eslint-disable-next-line\nexport var BIconBorder=/*#__PURE__*/makeIcon('Border','');// eslint-disable-next-line\nexport var BIconBorderAll=/*#__PURE__*/makeIcon('BorderAll','');// eslint-disable-next-line\nexport var BIconBorderBottom=/*#__PURE__*/makeIcon('BorderBottom','');// eslint-disable-next-line\nexport var BIconBorderCenter=/*#__PURE__*/makeIcon('BorderCenter','');// eslint-disable-next-line\nexport var BIconBorderInner=/*#__PURE__*/makeIcon('BorderInner','');// eslint-disable-next-line\nexport var BIconBorderLeft=/*#__PURE__*/makeIcon('BorderLeft','');// eslint-disable-next-line\nexport var BIconBorderMiddle=/*#__PURE__*/makeIcon('BorderMiddle','');// eslint-disable-next-line\nexport var BIconBorderOuter=/*#__PURE__*/makeIcon('BorderOuter','');// eslint-disable-next-line\nexport var BIconBorderRight=/*#__PURE__*/makeIcon('BorderRight','');// eslint-disable-next-line\nexport var BIconBorderStyle=/*#__PURE__*/makeIcon('BorderStyle','');// eslint-disable-next-line\nexport var BIconBorderTop=/*#__PURE__*/makeIcon('BorderTop','');// eslint-disable-next-line\nexport var BIconBorderWidth=/*#__PURE__*/makeIcon('BorderWidth','');// eslint-disable-next-line\nexport var BIconBoundingBox=/*#__PURE__*/makeIcon('BoundingBox','');// eslint-disable-next-line\nexport var BIconBoundingBoxCircles=/*#__PURE__*/makeIcon('BoundingBoxCircles','');// eslint-disable-next-line\nexport var BIconBox=/*#__PURE__*/makeIcon('Box','');// eslint-disable-next-line\nexport var BIconBoxArrowDown=/*#__PURE__*/makeIcon('BoxArrowDown','');// eslint-disable-next-line\nexport var BIconBoxArrowDownLeft=/*#__PURE__*/makeIcon('BoxArrowDownLeft','');// eslint-disable-next-line\nexport var BIconBoxArrowDownRight=/*#__PURE__*/makeIcon('BoxArrowDownRight','');// eslint-disable-next-line\nexport var BIconBoxArrowInDown=/*#__PURE__*/makeIcon('BoxArrowInDown','');// eslint-disable-next-line\nexport var BIconBoxArrowInDownLeft=/*#__PURE__*/makeIcon('BoxArrowInDownLeft','');// eslint-disable-next-line\nexport var BIconBoxArrowInDownRight=/*#__PURE__*/makeIcon('BoxArrowInDownRight','');// eslint-disable-next-line\nexport var BIconBoxArrowInLeft=/*#__PURE__*/makeIcon('BoxArrowInLeft','');// eslint-disable-next-line\nexport var BIconBoxArrowInRight=/*#__PURE__*/makeIcon('BoxArrowInRight','');// eslint-disable-next-line\nexport var BIconBoxArrowInUp=/*#__PURE__*/makeIcon('BoxArrowInUp','');// eslint-disable-next-line\nexport var BIconBoxArrowInUpLeft=/*#__PURE__*/makeIcon('BoxArrowInUpLeft','');// eslint-disable-next-line\nexport var BIconBoxArrowInUpRight=/*#__PURE__*/makeIcon('BoxArrowInUpRight','');// eslint-disable-next-line\nexport var BIconBoxArrowLeft=/*#__PURE__*/makeIcon('BoxArrowLeft','');// eslint-disable-next-line\nexport var BIconBoxArrowRight=/*#__PURE__*/makeIcon('BoxArrowRight','');// eslint-disable-next-line\nexport var BIconBoxArrowUp=/*#__PURE__*/makeIcon('BoxArrowUp','');// eslint-disable-next-line\nexport var BIconBoxArrowUpLeft=/*#__PURE__*/makeIcon('BoxArrowUpLeft','');// eslint-disable-next-line\nexport var BIconBoxArrowUpRight=/*#__PURE__*/makeIcon('BoxArrowUpRight','');// eslint-disable-next-line\nexport var BIconBoxSeam=/*#__PURE__*/makeIcon('BoxSeam','');// eslint-disable-next-line\nexport var BIconBraces=/*#__PURE__*/makeIcon('Braces','');// eslint-disable-next-line\nexport var BIconBricks=/*#__PURE__*/makeIcon('Bricks','');// eslint-disable-next-line\nexport var BIconBriefcase=/*#__PURE__*/makeIcon('Briefcase','');// eslint-disable-next-line\nexport var BIconBriefcaseFill=/*#__PURE__*/makeIcon('BriefcaseFill','');// eslint-disable-next-line\nexport var BIconBrightnessAltHigh=/*#__PURE__*/makeIcon('BrightnessAltHigh','');// eslint-disable-next-line\nexport var BIconBrightnessAltHighFill=/*#__PURE__*/makeIcon('BrightnessAltHighFill','');// eslint-disable-next-line\nexport var BIconBrightnessAltLow=/*#__PURE__*/makeIcon('BrightnessAltLow','');// eslint-disable-next-line\nexport var BIconBrightnessAltLowFill=/*#__PURE__*/makeIcon('BrightnessAltLowFill','');// eslint-disable-next-line\nexport var BIconBrightnessHigh=/*#__PURE__*/makeIcon('BrightnessHigh','');// eslint-disable-next-line\nexport var BIconBrightnessHighFill=/*#__PURE__*/makeIcon('BrightnessHighFill','');// eslint-disable-next-line\nexport var BIconBrightnessLow=/*#__PURE__*/makeIcon('BrightnessLow','');// eslint-disable-next-line\nexport var BIconBrightnessLowFill=/*#__PURE__*/makeIcon('BrightnessLowFill','');// eslint-disable-next-line\nexport var BIconBroadcast=/*#__PURE__*/makeIcon('Broadcast','');// eslint-disable-next-line\nexport var BIconBroadcastPin=/*#__PURE__*/makeIcon('BroadcastPin','');// eslint-disable-next-line\nexport var BIconBrush=/*#__PURE__*/makeIcon('Brush','');// eslint-disable-next-line\nexport var BIconBrushFill=/*#__PURE__*/makeIcon('BrushFill','');// eslint-disable-next-line\nexport var BIconBucket=/*#__PURE__*/makeIcon('Bucket','');// eslint-disable-next-line\nexport var BIconBucketFill=/*#__PURE__*/makeIcon('BucketFill','');// eslint-disable-next-line\nexport var BIconBug=/*#__PURE__*/makeIcon('Bug','');// eslint-disable-next-line\nexport var BIconBugFill=/*#__PURE__*/makeIcon('BugFill','');// eslint-disable-next-line\nexport var BIconBuilding=/*#__PURE__*/makeIcon('Building','');// eslint-disable-next-line\nexport var BIconBullseye=/*#__PURE__*/makeIcon('Bullseye','');// eslint-disable-next-line\nexport var BIconCalculator=/*#__PURE__*/makeIcon('Calculator','');// eslint-disable-next-line\nexport var BIconCalculatorFill=/*#__PURE__*/makeIcon('CalculatorFill','');// eslint-disable-next-line\nexport var BIconCalendar=/*#__PURE__*/makeIcon('Calendar','');// eslint-disable-next-line\nexport var BIconCalendar2=/*#__PURE__*/makeIcon('Calendar2','');// eslint-disable-next-line\nexport var BIconCalendar2Check=/*#__PURE__*/makeIcon('Calendar2Check','');// eslint-disable-next-line\nexport var BIconCalendar2CheckFill=/*#__PURE__*/makeIcon('Calendar2CheckFill','');// eslint-disable-next-line\nexport var BIconCalendar2Date=/*#__PURE__*/makeIcon('Calendar2Date','');// eslint-disable-next-line\nexport var BIconCalendar2DateFill=/*#__PURE__*/makeIcon('Calendar2DateFill','');// eslint-disable-next-line\nexport var BIconCalendar2Day=/*#__PURE__*/makeIcon('Calendar2Day','');// eslint-disable-next-line\nexport var BIconCalendar2DayFill=/*#__PURE__*/makeIcon('Calendar2DayFill','');// eslint-disable-next-line\nexport var BIconCalendar2Event=/*#__PURE__*/makeIcon('Calendar2Event','');// eslint-disable-next-line\nexport var BIconCalendar2EventFill=/*#__PURE__*/makeIcon('Calendar2EventFill','');// eslint-disable-next-line\nexport var BIconCalendar2Fill=/*#__PURE__*/makeIcon('Calendar2Fill','');// eslint-disable-next-line\nexport var BIconCalendar2Minus=/*#__PURE__*/makeIcon('Calendar2Minus','');// eslint-disable-next-line\nexport var BIconCalendar2MinusFill=/*#__PURE__*/makeIcon('Calendar2MinusFill','');// eslint-disable-next-line\nexport var BIconCalendar2Month=/*#__PURE__*/makeIcon('Calendar2Month','');// eslint-disable-next-line\nexport var BIconCalendar2MonthFill=/*#__PURE__*/makeIcon('Calendar2MonthFill','');// eslint-disable-next-line\nexport var BIconCalendar2Plus=/*#__PURE__*/makeIcon('Calendar2Plus','');// eslint-disable-next-line\nexport var BIconCalendar2PlusFill=/*#__PURE__*/makeIcon('Calendar2PlusFill','');// eslint-disable-next-line\nexport var BIconCalendar2Range=/*#__PURE__*/makeIcon('Calendar2Range','');// eslint-disable-next-line\nexport var BIconCalendar2RangeFill=/*#__PURE__*/makeIcon('Calendar2RangeFill','');// eslint-disable-next-line\nexport var BIconCalendar2Week=/*#__PURE__*/makeIcon('Calendar2Week','');// eslint-disable-next-line\nexport var BIconCalendar2WeekFill=/*#__PURE__*/makeIcon('Calendar2WeekFill','');// eslint-disable-next-line\nexport var BIconCalendar2X=/*#__PURE__*/makeIcon('Calendar2X','');// eslint-disable-next-line\nexport var BIconCalendar2XFill=/*#__PURE__*/makeIcon('Calendar2XFill','');// eslint-disable-next-line\nexport var BIconCalendar3=/*#__PURE__*/makeIcon('Calendar3','');// eslint-disable-next-line\nexport var BIconCalendar3Event=/*#__PURE__*/makeIcon('Calendar3Event','');// eslint-disable-next-line\nexport var BIconCalendar3EventFill=/*#__PURE__*/makeIcon('Calendar3EventFill','');// eslint-disable-next-line\nexport var BIconCalendar3Fill=/*#__PURE__*/makeIcon('Calendar3Fill','');// eslint-disable-next-line\nexport var BIconCalendar3Range=/*#__PURE__*/makeIcon('Calendar3Range','');// eslint-disable-next-line\nexport var BIconCalendar3RangeFill=/*#__PURE__*/makeIcon('Calendar3RangeFill','');// eslint-disable-next-line\nexport var BIconCalendar3Week=/*#__PURE__*/makeIcon('Calendar3Week','');// eslint-disable-next-line\nexport var BIconCalendar3WeekFill=/*#__PURE__*/makeIcon('Calendar3WeekFill','');// eslint-disable-next-line\nexport var BIconCalendar4=/*#__PURE__*/makeIcon('Calendar4','');// eslint-disable-next-line\nexport var BIconCalendar4Event=/*#__PURE__*/makeIcon('Calendar4Event','');// eslint-disable-next-line\nexport var BIconCalendar4Range=/*#__PURE__*/makeIcon('Calendar4Range','');// eslint-disable-next-line\nexport var BIconCalendar4Week=/*#__PURE__*/makeIcon('Calendar4Week','');// eslint-disable-next-line\nexport var BIconCalendarCheck=/*#__PURE__*/makeIcon('CalendarCheck','');// eslint-disable-next-line\nexport var BIconCalendarCheckFill=/*#__PURE__*/makeIcon('CalendarCheckFill','');// eslint-disable-next-line\nexport var BIconCalendarDate=/*#__PURE__*/makeIcon('CalendarDate','');// eslint-disable-next-line\nexport var BIconCalendarDateFill=/*#__PURE__*/makeIcon('CalendarDateFill','');// eslint-disable-next-line\nexport var BIconCalendarDay=/*#__PURE__*/makeIcon('CalendarDay','');// eslint-disable-next-line\nexport var BIconCalendarDayFill=/*#__PURE__*/makeIcon('CalendarDayFill','');// eslint-disable-next-line\nexport var BIconCalendarEvent=/*#__PURE__*/makeIcon('CalendarEvent','');// eslint-disable-next-line\nexport var BIconCalendarEventFill=/*#__PURE__*/makeIcon('CalendarEventFill','');// eslint-disable-next-line\nexport var BIconCalendarFill=/*#__PURE__*/makeIcon('CalendarFill','');// eslint-disable-next-line\nexport var BIconCalendarMinus=/*#__PURE__*/makeIcon('CalendarMinus','');// eslint-disable-next-line\nexport var BIconCalendarMinusFill=/*#__PURE__*/makeIcon('CalendarMinusFill','');// eslint-disable-next-line\nexport var BIconCalendarMonth=/*#__PURE__*/makeIcon('CalendarMonth','');// eslint-disable-next-line\nexport var BIconCalendarMonthFill=/*#__PURE__*/makeIcon('CalendarMonthFill','');// eslint-disable-next-line\nexport var BIconCalendarPlus=/*#__PURE__*/makeIcon('CalendarPlus','');// eslint-disable-next-line\nexport var BIconCalendarPlusFill=/*#__PURE__*/makeIcon('CalendarPlusFill','');// eslint-disable-next-line\nexport var BIconCalendarRange=/*#__PURE__*/makeIcon('CalendarRange','');// eslint-disable-next-line\nexport var BIconCalendarRangeFill=/*#__PURE__*/makeIcon('CalendarRangeFill','');// eslint-disable-next-line\nexport var BIconCalendarWeek=/*#__PURE__*/makeIcon('CalendarWeek','');// eslint-disable-next-line\nexport var BIconCalendarWeekFill=/*#__PURE__*/makeIcon('CalendarWeekFill','');// eslint-disable-next-line\nexport var BIconCalendarX=/*#__PURE__*/makeIcon('CalendarX','');// eslint-disable-next-line\nexport var BIconCalendarXFill=/*#__PURE__*/makeIcon('CalendarXFill','');// eslint-disable-next-line\nexport var BIconCamera=/*#__PURE__*/makeIcon('Camera','');// eslint-disable-next-line\nexport var BIconCamera2=/*#__PURE__*/makeIcon('Camera2','');// eslint-disable-next-line\nexport var BIconCameraFill=/*#__PURE__*/makeIcon('CameraFill','');// eslint-disable-next-line\nexport var BIconCameraReels=/*#__PURE__*/makeIcon('CameraReels','');// eslint-disable-next-line\nexport var BIconCameraReelsFill=/*#__PURE__*/makeIcon('CameraReelsFill','');// eslint-disable-next-line\nexport var BIconCameraVideo=/*#__PURE__*/makeIcon('CameraVideo','');// eslint-disable-next-line\nexport var BIconCameraVideoFill=/*#__PURE__*/makeIcon('CameraVideoFill','');// eslint-disable-next-line\nexport var BIconCameraVideoOff=/*#__PURE__*/makeIcon('CameraVideoOff','');// eslint-disable-next-line\nexport var BIconCameraVideoOffFill=/*#__PURE__*/makeIcon('CameraVideoOffFill','');// eslint-disable-next-line\nexport var BIconCapslock=/*#__PURE__*/makeIcon('Capslock','');// eslint-disable-next-line\nexport var BIconCapslockFill=/*#__PURE__*/makeIcon('CapslockFill','');// eslint-disable-next-line\nexport var BIconCardChecklist=/*#__PURE__*/makeIcon('CardChecklist','');// eslint-disable-next-line\nexport var BIconCardHeading=/*#__PURE__*/makeIcon('CardHeading','');// eslint-disable-next-line\nexport var BIconCardImage=/*#__PURE__*/makeIcon('CardImage','');// eslint-disable-next-line\nexport var BIconCardList=/*#__PURE__*/makeIcon('CardList','');// eslint-disable-next-line\nexport var BIconCardText=/*#__PURE__*/makeIcon('CardText','');// eslint-disable-next-line\nexport var BIconCaretDown=/*#__PURE__*/makeIcon('CaretDown','');// eslint-disable-next-line\nexport var BIconCaretDownFill=/*#__PURE__*/makeIcon('CaretDownFill','');// eslint-disable-next-line\nexport var BIconCaretDownSquare=/*#__PURE__*/makeIcon('CaretDownSquare','');// eslint-disable-next-line\nexport var BIconCaretDownSquareFill=/*#__PURE__*/makeIcon('CaretDownSquareFill','');// eslint-disable-next-line\nexport var BIconCaretLeft=/*#__PURE__*/makeIcon('CaretLeft','');// eslint-disable-next-line\nexport var BIconCaretLeftFill=/*#__PURE__*/makeIcon('CaretLeftFill','');// eslint-disable-next-line\nexport var BIconCaretLeftSquare=/*#__PURE__*/makeIcon('CaretLeftSquare','');// eslint-disable-next-line\nexport var BIconCaretLeftSquareFill=/*#__PURE__*/makeIcon('CaretLeftSquareFill','');// eslint-disable-next-line\nexport var BIconCaretRight=/*#__PURE__*/makeIcon('CaretRight','');// eslint-disable-next-line\nexport var BIconCaretRightFill=/*#__PURE__*/makeIcon('CaretRightFill','');// eslint-disable-next-line\nexport var BIconCaretRightSquare=/*#__PURE__*/makeIcon('CaretRightSquare','');// eslint-disable-next-line\nexport var BIconCaretRightSquareFill=/*#__PURE__*/makeIcon('CaretRightSquareFill','');// eslint-disable-next-line\nexport var BIconCaretUp=/*#__PURE__*/makeIcon('CaretUp','');// eslint-disable-next-line\nexport var BIconCaretUpFill=/*#__PURE__*/makeIcon('CaretUpFill','');// eslint-disable-next-line\nexport var BIconCaretUpSquare=/*#__PURE__*/makeIcon('CaretUpSquare','');// eslint-disable-next-line\nexport var BIconCaretUpSquareFill=/*#__PURE__*/makeIcon('CaretUpSquareFill','');// eslint-disable-next-line\nexport var BIconCart=/*#__PURE__*/makeIcon('Cart','');// eslint-disable-next-line\nexport var BIconCart2=/*#__PURE__*/makeIcon('Cart2','');// eslint-disable-next-line\nexport var BIconCart3=/*#__PURE__*/makeIcon('Cart3','');// eslint-disable-next-line\nexport var BIconCart4=/*#__PURE__*/makeIcon('Cart4','');// eslint-disable-next-line\nexport var BIconCartCheck=/*#__PURE__*/makeIcon('CartCheck','');// eslint-disable-next-line\nexport var BIconCartCheckFill=/*#__PURE__*/makeIcon('CartCheckFill','');// eslint-disable-next-line\nexport var BIconCartDash=/*#__PURE__*/makeIcon('CartDash','');// eslint-disable-next-line\nexport var BIconCartDashFill=/*#__PURE__*/makeIcon('CartDashFill','');// eslint-disable-next-line\nexport var BIconCartFill=/*#__PURE__*/makeIcon('CartFill','');// eslint-disable-next-line\nexport var BIconCartPlus=/*#__PURE__*/makeIcon('CartPlus','');// eslint-disable-next-line\nexport var BIconCartPlusFill=/*#__PURE__*/makeIcon('CartPlusFill','');// eslint-disable-next-line\nexport var BIconCartX=/*#__PURE__*/makeIcon('CartX','');// eslint-disable-next-line\nexport var BIconCartXFill=/*#__PURE__*/makeIcon('CartXFill','');// eslint-disable-next-line\nexport var BIconCash=/*#__PURE__*/makeIcon('Cash','');// eslint-disable-next-line\nexport var BIconCashCoin=/*#__PURE__*/makeIcon('CashCoin','');// eslint-disable-next-line\nexport var BIconCashStack=/*#__PURE__*/makeIcon('CashStack','');// eslint-disable-next-line\nexport var BIconCast=/*#__PURE__*/makeIcon('Cast','');// eslint-disable-next-line\nexport var BIconChat=/*#__PURE__*/makeIcon('Chat','');// eslint-disable-next-line\nexport var BIconChatDots=/*#__PURE__*/makeIcon('ChatDots','');// eslint-disable-next-line\nexport var BIconChatDotsFill=/*#__PURE__*/makeIcon('ChatDotsFill','');// eslint-disable-next-line\nexport var BIconChatFill=/*#__PURE__*/makeIcon('ChatFill','');// eslint-disable-next-line\nexport var BIconChatLeft=/*#__PURE__*/makeIcon('ChatLeft','');// eslint-disable-next-line\nexport var BIconChatLeftDots=/*#__PURE__*/makeIcon('ChatLeftDots','');// eslint-disable-next-line\nexport var BIconChatLeftDotsFill=/*#__PURE__*/makeIcon('ChatLeftDotsFill','');// eslint-disable-next-line\nexport var BIconChatLeftFill=/*#__PURE__*/makeIcon('ChatLeftFill','');// eslint-disable-next-line\nexport var BIconChatLeftQuote=/*#__PURE__*/makeIcon('ChatLeftQuote','');// eslint-disable-next-line\nexport var BIconChatLeftQuoteFill=/*#__PURE__*/makeIcon('ChatLeftQuoteFill','');// eslint-disable-next-line\nexport var BIconChatLeftText=/*#__PURE__*/makeIcon('ChatLeftText','');// eslint-disable-next-line\nexport var BIconChatLeftTextFill=/*#__PURE__*/makeIcon('ChatLeftTextFill','');// eslint-disable-next-line\nexport var BIconChatQuote=/*#__PURE__*/makeIcon('ChatQuote','');// eslint-disable-next-line\nexport var BIconChatQuoteFill=/*#__PURE__*/makeIcon('ChatQuoteFill','');// eslint-disable-next-line\nexport var BIconChatRight=/*#__PURE__*/makeIcon('ChatRight','');// eslint-disable-next-line\nexport var BIconChatRightDots=/*#__PURE__*/makeIcon('ChatRightDots','');// eslint-disable-next-line\nexport var BIconChatRightDotsFill=/*#__PURE__*/makeIcon('ChatRightDotsFill','');// eslint-disable-next-line\nexport var BIconChatRightFill=/*#__PURE__*/makeIcon('ChatRightFill','');// eslint-disable-next-line\nexport var BIconChatRightQuote=/*#__PURE__*/makeIcon('ChatRightQuote','');// eslint-disable-next-line\nexport var BIconChatRightQuoteFill=/*#__PURE__*/makeIcon('ChatRightQuoteFill','');// eslint-disable-next-line\nexport var BIconChatRightText=/*#__PURE__*/makeIcon('ChatRightText','');// eslint-disable-next-line\nexport var BIconChatRightTextFill=/*#__PURE__*/makeIcon('ChatRightTextFill','');// eslint-disable-next-line\nexport var BIconChatSquare=/*#__PURE__*/makeIcon('ChatSquare','');// eslint-disable-next-line\nexport var BIconChatSquareDots=/*#__PURE__*/makeIcon('ChatSquareDots','');// eslint-disable-next-line\nexport var BIconChatSquareDotsFill=/*#__PURE__*/makeIcon('ChatSquareDotsFill','');// eslint-disable-next-line\nexport var BIconChatSquareFill=/*#__PURE__*/makeIcon('ChatSquareFill','');// eslint-disable-next-line\nexport var BIconChatSquareQuote=/*#__PURE__*/makeIcon('ChatSquareQuote','');// eslint-disable-next-line\nexport var BIconChatSquareQuoteFill=/*#__PURE__*/makeIcon('ChatSquareQuoteFill','');// eslint-disable-next-line\nexport var BIconChatSquareText=/*#__PURE__*/makeIcon('ChatSquareText','');// eslint-disable-next-line\nexport var BIconChatSquareTextFill=/*#__PURE__*/makeIcon('ChatSquareTextFill','');// eslint-disable-next-line\nexport var BIconChatText=/*#__PURE__*/makeIcon('ChatText','');// eslint-disable-next-line\nexport var BIconChatTextFill=/*#__PURE__*/makeIcon('ChatTextFill','');// eslint-disable-next-line\nexport var BIconCheck=/*#__PURE__*/makeIcon('Check','');// eslint-disable-next-line\nexport var BIconCheck2=/*#__PURE__*/makeIcon('Check2','');// eslint-disable-next-line\nexport var BIconCheck2All=/*#__PURE__*/makeIcon('Check2All','');// eslint-disable-next-line\nexport var BIconCheck2Circle=/*#__PURE__*/makeIcon('Check2Circle','');// eslint-disable-next-line\nexport var BIconCheck2Square=/*#__PURE__*/makeIcon('Check2Square','');// eslint-disable-next-line\nexport var BIconCheckAll=/*#__PURE__*/makeIcon('CheckAll','');// eslint-disable-next-line\nexport var BIconCheckCircle=/*#__PURE__*/makeIcon('CheckCircle','');// eslint-disable-next-line\nexport var BIconCheckCircleFill=/*#__PURE__*/makeIcon('CheckCircleFill','');// eslint-disable-next-line\nexport var BIconCheckLg=/*#__PURE__*/makeIcon('CheckLg','');// eslint-disable-next-line\nexport var BIconCheckSquare=/*#__PURE__*/makeIcon('CheckSquare','');// eslint-disable-next-line\nexport var BIconCheckSquareFill=/*#__PURE__*/makeIcon('CheckSquareFill','');// eslint-disable-next-line\nexport var BIconChevronBarContract=/*#__PURE__*/makeIcon('ChevronBarContract','');// eslint-disable-next-line\nexport var BIconChevronBarDown=/*#__PURE__*/makeIcon('ChevronBarDown','');// eslint-disable-next-line\nexport var BIconChevronBarExpand=/*#__PURE__*/makeIcon('ChevronBarExpand','');// eslint-disable-next-line\nexport var BIconChevronBarLeft=/*#__PURE__*/makeIcon('ChevronBarLeft','');// eslint-disable-next-line\nexport var BIconChevronBarRight=/*#__PURE__*/makeIcon('ChevronBarRight','');// eslint-disable-next-line\nexport var BIconChevronBarUp=/*#__PURE__*/makeIcon('ChevronBarUp','');// eslint-disable-next-line\nexport var BIconChevronCompactDown=/*#__PURE__*/makeIcon('ChevronCompactDown','');// eslint-disable-next-line\nexport var BIconChevronCompactLeft=/*#__PURE__*/makeIcon('ChevronCompactLeft','');// eslint-disable-next-line\nexport var BIconChevronCompactRight=/*#__PURE__*/makeIcon('ChevronCompactRight','');// eslint-disable-next-line\nexport var BIconChevronCompactUp=/*#__PURE__*/makeIcon('ChevronCompactUp','');// eslint-disable-next-line\nexport var BIconChevronContract=/*#__PURE__*/makeIcon('ChevronContract','');// eslint-disable-next-line\nexport var BIconChevronDoubleDown=/*#__PURE__*/makeIcon('ChevronDoubleDown','');// eslint-disable-next-line\nexport var BIconChevronDoubleLeft=/*#__PURE__*/makeIcon('ChevronDoubleLeft','');// eslint-disable-next-line\nexport var BIconChevronDoubleRight=/*#__PURE__*/makeIcon('ChevronDoubleRight','');// eslint-disable-next-line\nexport var BIconChevronDoubleUp=/*#__PURE__*/makeIcon('ChevronDoubleUp','');// eslint-disable-next-line\nexport var BIconChevronDown=/*#__PURE__*/makeIcon('ChevronDown','');// eslint-disable-next-line\nexport var BIconChevronExpand=/*#__PURE__*/makeIcon('ChevronExpand','');// eslint-disable-next-line\nexport var BIconChevronLeft=/*#__PURE__*/makeIcon('ChevronLeft','');// eslint-disable-next-line\nexport var BIconChevronRight=/*#__PURE__*/makeIcon('ChevronRight','');// eslint-disable-next-line\nexport var BIconChevronUp=/*#__PURE__*/makeIcon('ChevronUp','');// eslint-disable-next-line\nexport var BIconCircle=/*#__PURE__*/makeIcon('Circle','');// eslint-disable-next-line\nexport var BIconCircleFill=/*#__PURE__*/makeIcon('CircleFill','');// eslint-disable-next-line\nexport var BIconCircleHalf=/*#__PURE__*/makeIcon('CircleHalf','');// eslint-disable-next-line\nexport var BIconCircleSquare=/*#__PURE__*/makeIcon('CircleSquare','');// eslint-disable-next-line\nexport var BIconClipboard=/*#__PURE__*/makeIcon('Clipboard','');// eslint-disable-next-line\nexport var BIconClipboardCheck=/*#__PURE__*/makeIcon('ClipboardCheck','');// eslint-disable-next-line\nexport var BIconClipboardData=/*#__PURE__*/makeIcon('ClipboardData','');// eslint-disable-next-line\nexport var BIconClipboardMinus=/*#__PURE__*/makeIcon('ClipboardMinus','');// eslint-disable-next-line\nexport var BIconClipboardPlus=/*#__PURE__*/makeIcon('ClipboardPlus','');// eslint-disable-next-line\nexport var BIconClipboardX=/*#__PURE__*/makeIcon('ClipboardX','');// eslint-disable-next-line\nexport var BIconClock=/*#__PURE__*/makeIcon('Clock','');// eslint-disable-next-line\nexport var BIconClockFill=/*#__PURE__*/makeIcon('ClockFill','');// eslint-disable-next-line\nexport var BIconClockHistory=/*#__PURE__*/makeIcon('ClockHistory','');// eslint-disable-next-line\nexport var BIconCloud=/*#__PURE__*/makeIcon('Cloud','');// eslint-disable-next-line\nexport var BIconCloudArrowDown=/*#__PURE__*/makeIcon('CloudArrowDown','');// eslint-disable-next-line\nexport var BIconCloudArrowDownFill=/*#__PURE__*/makeIcon('CloudArrowDownFill','');// eslint-disable-next-line\nexport var BIconCloudArrowUp=/*#__PURE__*/makeIcon('CloudArrowUp','');// eslint-disable-next-line\nexport var BIconCloudArrowUpFill=/*#__PURE__*/makeIcon('CloudArrowUpFill','');// eslint-disable-next-line\nexport var BIconCloudCheck=/*#__PURE__*/makeIcon('CloudCheck','');// eslint-disable-next-line\nexport var BIconCloudCheckFill=/*#__PURE__*/makeIcon('CloudCheckFill','');// eslint-disable-next-line\nexport var BIconCloudDownload=/*#__PURE__*/makeIcon('CloudDownload','');// eslint-disable-next-line\nexport var BIconCloudDownloadFill=/*#__PURE__*/makeIcon('CloudDownloadFill','');// eslint-disable-next-line\nexport var BIconCloudDrizzle=/*#__PURE__*/makeIcon('CloudDrizzle','');// eslint-disable-next-line\nexport var BIconCloudDrizzleFill=/*#__PURE__*/makeIcon('CloudDrizzleFill','');// eslint-disable-next-line\nexport var BIconCloudFill=/*#__PURE__*/makeIcon('CloudFill','');// eslint-disable-next-line\nexport var BIconCloudFog=/*#__PURE__*/makeIcon('CloudFog','');// eslint-disable-next-line\nexport var BIconCloudFog2=/*#__PURE__*/makeIcon('CloudFog2','');// eslint-disable-next-line\nexport var BIconCloudFog2Fill=/*#__PURE__*/makeIcon('CloudFog2Fill','');// eslint-disable-next-line\nexport var BIconCloudFogFill=/*#__PURE__*/makeIcon('CloudFogFill','');// eslint-disable-next-line\nexport var BIconCloudHail=/*#__PURE__*/makeIcon('CloudHail','');// eslint-disable-next-line\nexport var BIconCloudHailFill=/*#__PURE__*/makeIcon('CloudHailFill','');// eslint-disable-next-line\nexport var BIconCloudHaze=/*#__PURE__*/makeIcon('CloudHaze','');// eslint-disable-next-line\nexport var BIconCloudHaze1=/*#__PURE__*/makeIcon('CloudHaze1','');// eslint-disable-next-line\nexport var BIconCloudHaze2Fill=/*#__PURE__*/makeIcon('CloudHaze2Fill','');// eslint-disable-next-line\nexport var BIconCloudHazeFill=/*#__PURE__*/makeIcon('CloudHazeFill','');// eslint-disable-next-line\nexport var BIconCloudLightning=/*#__PURE__*/makeIcon('CloudLightning','');// eslint-disable-next-line\nexport var BIconCloudLightningFill=/*#__PURE__*/makeIcon('CloudLightningFill','');// eslint-disable-next-line\nexport var BIconCloudLightningRain=/*#__PURE__*/makeIcon('CloudLightningRain','');// eslint-disable-next-line\nexport var BIconCloudLightningRainFill=/*#__PURE__*/makeIcon('CloudLightningRainFill','');// eslint-disable-next-line\nexport var BIconCloudMinus=/*#__PURE__*/makeIcon('CloudMinus','');// eslint-disable-next-line\nexport var BIconCloudMinusFill=/*#__PURE__*/makeIcon('CloudMinusFill','');// eslint-disable-next-line\nexport var BIconCloudMoon=/*#__PURE__*/makeIcon('CloudMoon','');// eslint-disable-next-line\nexport var BIconCloudMoonFill=/*#__PURE__*/makeIcon('CloudMoonFill','');// eslint-disable-next-line\nexport var BIconCloudPlus=/*#__PURE__*/makeIcon('CloudPlus','');// eslint-disable-next-line\nexport var BIconCloudPlusFill=/*#__PURE__*/makeIcon('CloudPlusFill','');// eslint-disable-next-line\nexport var BIconCloudRain=/*#__PURE__*/makeIcon('CloudRain','');// eslint-disable-next-line\nexport var BIconCloudRainFill=/*#__PURE__*/makeIcon('CloudRainFill','');// eslint-disable-next-line\nexport var BIconCloudRainHeavy=/*#__PURE__*/makeIcon('CloudRainHeavy','');// eslint-disable-next-line\nexport var BIconCloudRainHeavyFill=/*#__PURE__*/makeIcon('CloudRainHeavyFill','');// eslint-disable-next-line\nexport var BIconCloudSlash=/*#__PURE__*/makeIcon('CloudSlash','');// eslint-disable-next-line\nexport var BIconCloudSlashFill=/*#__PURE__*/makeIcon('CloudSlashFill','');// eslint-disable-next-line\nexport var BIconCloudSleet=/*#__PURE__*/makeIcon('CloudSleet','');// eslint-disable-next-line\nexport var BIconCloudSleetFill=/*#__PURE__*/makeIcon('CloudSleetFill','');// eslint-disable-next-line\nexport var BIconCloudSnow=/*#__PURE__*/makeIcon('CloudSnow','');// eslint-disable-next-line\nexport var BIconCloudSnowFill=/*#__PURE__*/makeIcon('CloudSnowFill','');// eslint-disable-next-line\nexport var BIconCloudSun=/*#__PURE__*/makeIcon('CloudSun','');// eslint-disable-next-line\nexport var BIconCloudSunFill=/*#__PURE__*/makeIcon('CloudSunFill','');// eslint-disable-next-line\nexport var BIconCloudUpload=/*#__PURE__*/makeIcon('CloudUpload','');// eslint-disable-next-line\nexport var BIconCloudUploadFill=/*#__PURE__*/makeIcon('CloudUploadFill','');// eslint-disable-next-line\nexport var BIconClouds=/*#__PURE__*/makeIcon('Clouds','');// eslint-disable-next-line\nexport var BIconCloudsFill=/*#__PURE__*/makeIcon('CloudsFill','');// eslint-disable-next-line\nexport var BIconCloudy=/*#__PURE__*/makeIcon('Cloudy','');// eslint-disable-next-line\nexport var BIconCloudyFill=/*#__PURE__*/makeIcon('CloudyFill','');// eslint-disable-next-line\nexport var BIconCode=/*#__PURE__*/makeIcon('Code','');// eslint-disable-next-line\nexport var BIconCodeSlash=/*#__PURE__*/makeIcon('CodeSlash','');// eslint-disable-next-line\nexport var BIconCodeSquare=/*#__PURE__*/makeIcon('CodeSquare','');// eslint-disable-next-line\nexport var BIconCoin=/*#__PURE__*/makeIcon('Coin','');// eslint-disable-next-line\nexport var BIconCollection=/*#__PURE__*/makeIcon('Collection','');// eslint-disable-next-line\nexport var BIconCollectionFill=/*#__PURE__*/makeIcon('CollectionFill','');// eslint-disable-next-line\nexport var BIconCollectionPlay=/*#__PURE__*/makeIcon('CollectionPlay','');// eslint-disable-next-line\nexport var BIconCollectionPlayFill=/*#__PURE__*/makeIcon('CollectionPlayFill','');// eslint-disable-next-line\nexport var BIconColumns=/*#__PURE__*/makeIcon('Columns','');// eslint-disable-next-line\nexport var BIconColumnsGap=/*#__PURE__*/makeIcon('ColumnsGap','');// eslint-disable-next-line\nexport var BIconCommand=/*#__PURE__*/makeIcon('Command','');// eslint-disable-next-line\nexport var BIconCompass=/*#__PURE__*/makeIcon('Compass','');// eslint-disable-next-line\nexport var BIconCompassFill=/*#__PURE__*/makeIcon('CompassFill','');// eslint-disable-next-line\nexport var BIconCone=/*#__PURE__*/makeIcon('Cone','');// eslint-disable-next-line\nexport var BIconConeStriped=/*#__PURE__*/makeIcon('ConeStriped','');// eslint-disable-next-line\nexport var BIconController=/*#__PURE__*/makeIcon('Controller','');// eslint-disable-next-line\nexport var BIconCpu=/*#__PURE__*/makeIcon('Cpu','');// eslint-disable-next-line\nexport var BIconCpuFill=/*#__PURE__*/makeIcon('CpuFill','');// eslint-disable-next-line\nexport var BIconCreditCard=/*#__PURE__*/makeIcon('CreditCard','');// eslint-disable-next-line\nexport var BIconCreditCard2Back=/*#__PURE__*/makeIcon('CreditCard2Back','');// eslint-disable-next-line\nexport var BIconCreditCard2BackFill=/*#__PURE__*/makeIcon('CreditCard2BackFill','');// eslint-disable-next-line\nexport var BIconCreditCard2Front=/*#__PURE__*/makeIcon('CreditCard2Front','');// eslint-disable-next-line\nexport var BIconCreditCard2FrontFill=/*#__PURE__*/makeIcon('CreditCard2FrontFill','');// eslint-disable-next-line\nexport var BIconCreditCardFill=/*#__PURE__*/makeIcon('CreditCardFill','');// eslint-disable-next-line\nexport var BIconCrop=/*#__PURE__*/makeIcon('Crop','');// eslint-disable-next-line\nexport var BIconCup=/*#__PURE__*/makeIcon('Cup','');// eslint-disable-next-line\nexport var BIconCupFill=/*#__PURE__*/makeIcon('CupFill','');// eslint-disable-next-line\nexport var BIconCupStraw=/*#__PURE__*/makeIcon('CupStraw','');// eslint-disable-next-line\nexport var BIconCurrencyBitcoin=/*#__PURE__*/makeIcon('CurrencyBitcoin','');// eslint-disable-next-line\nexport var BIconCurrencyDollar=/*#__PURE__*/makeIcon('CurrencyDollar','');// eslint-disable-next-line\nexport var BIconCurrencyEuro=/*#__PURE__*/makeIcon('CurrencyEuro','');// eslint-disable-next-line\nexport var BIconCurrencyExchange=/*#__PURE__*/makeIcon('CurrencyExchange','');// eslint-disable-next-line\nexport var BIconCurrencyPound=/*#__PURE__*/makeIcon('CurrencyPound','');// eslint-disable-next-line\nexport var BIconCurrencyYen=/*#__PURE__*/makeIcon('CurrencyYen','');// eslint-disable-next-line\nexport var BIconCursor=/*#__PURE__*/makeIcon('Cursor','');// eslint-disable-next-line\nexport var BIconCursorFill=/*#__PURE__*/makeIcon('CursorFill','');// eslint-disable-next-line\nexport var BIconCursorText=/*#__PURE__*/makeIcon('CursorText','');// eslint-disable-next-line\nexport var BIconDash=/*#__PURE__*/makeIcon('Dash','');// eslint-disable-next-line\nexport var BIconDashCircle=/*#__PURE__*/makeIcon('DashCircle','');// eslint-disable-next-line\nexport var BIconDashCircleDotted=/*#__PURE__*/makeIcon('DashCircleDotted','');// eslint-disable-next-line\nexport var BIconDashCircleFill=/*#__PURE__*/makeIcon('DashCircleFill','');// eslint-disable-next-line\nexport var BIconDashLg=/*#__PURE__*/makeIcon('DashLg','');// eslint-disable-next-line\nexport var BIconDashSquare=/*#__PURE__*/makeIcon('DashSquare','');// eslint-disable-next-line\nexport var BIconDashSquareDotted=/*#__PURE__*/makeIcon('DashSquareDotted','');// eslint-disable-next-line\nexport var BIconDashSquareFill=/*#__PURE__*/makeIcon('DashSquareFill','');// eslint-disable-next-line\nexport var BIconDiagram2=/*#__PURE__*/makeIcon('Diagram2','');// eslint-disable-next-line\nexport var BIconDiagram2Fill=/*#__PURE__*/makeIcon('Diagram2Fill','');// eslint-disable-next-line\nexport var BIconDiagram3=/*#__PURE__*/makeIcon('Diagram3','');// eslint-disable-next-line\nexport var BIconDiagram3Fill=/*#__PURE__*/makeIcon('Diagram3Fill','');// eslint-disable-next-line\nexport var BIconDiamond=/*#__PURE__*/makeIcon('Diamond','');// eslint-disable-next-line\nexport var BIconDiamondFill=/*#__PURE__*/makeIcon('DiamondFill','');// eslint-disable-next-line\nexport var BIconDiamondHalf=/*#__PURE__*/makeIcon('DiamondHalf','');// eslint-disable-next-line\nexport var BIconDice1=/*#__PURE__*/makeIcon('Dice1','');// eslint-disable-next-line\nexport var BIconDice1Fill=/*#__PURE__*/makeIcon('Dice1Fill','');// eslint-disable-next-line\nexport var BIconDice2=/*#__PURE__*/makeIcon('Dice2','');// eslint-disable-next-line\nexport var BIconDice2Fill=/*#__PURE__*/makeIcon('Dice2Fill','');// eslint-disable-next-line\nexport var BIconDice3=/*#__PURE__*/makeIcon('Dice3','');// eslint-disable-next-line\nexport var BIconDice3Fill=/*#__PURE__*/makeIcon('Dice3Fill','');// eslint-disable-next-line\nexport var BIconDice4=/*#__PURE__*/makeIcon('Dice4','');// eslint-disable-next-line\nexport var BIconDice4Fill=/*#__PURE__*/makeIcon('Dice4Fill','');// eslint-disable-next-line\nexport var BIconDice5=/*#__PURE__*/makeIcon('Dice5','');// eslint-disable-next-line\nexport var BIconDice5Fill=/*#__PURE__*/makeIcon('Dice5Fill','');// eslint-disable-next-line\nexport var BIconDice6=/*#__PURE__*/makeIcon('Dice6','');// eslint-disable-next-line\nexport var BIconDice6Fill=/*#__PURE__*/makeIcon('Dice6Fill','');// eslint-disable-next-line\nexport var BIconDisc=/*#__PURE__*/makeIcon('Disc','');// eslint-disable-next-line\nexport var BIconDiscFill=/*#__PURE__*/makeIcon('DiscFill','');// eslint-disable-next-line\nexport var BIconDiscord=/*#__PURE__*/makeIcon('Discord','');// eslint-disable-next-line\nexport var BIconDisplay=/*#__PURE__*/makeIcon('Display','');// eslint-disable-next-line\nexport var BIconDisplayFill=/*#__PURE__*/makeIcon('DisplayFill','');// eslint-disable-next-line\nexport var BIconDistributeHorizontal=/*#__PURE__*/makeIcon('DistributeHorizontal','');// eslint-disable-next-line\nexport var BIconDistributeVertical=/*#__PURE__*/makeIcon('DistributeVertical','');// eslint-disable-next-line\nexport var BIconDoorClosed=/*#__PURE__*/makeIcon('DoorClosed','');// eslint-disable-next-line\nexport var BIconDoorClosedFill=/*#__PURE__*/makeIcon('DoorClosedFill','');// eslint-disable-next-line\nexport var BIconDoorOpen=/*#__PURE__*/makeIcon('DoorOpen','');// eslint-disable-next-line\nexport var BIconDoorOpenFill=/*#__PURE__*/makeIcon('DoorOpenFill','');// eslint-disable-next-line\nexport var BIconDot=/*#__PURE__*/makeIcon('Dot','');// eslint-disable-next-line\nexport var BIconDownload=/*#__PURE__*/makeIcon('Download','');// eslint-disable-next-line\nexport var BIconDroplet=/*#__PURE__*/makeIcon('Droplet','');// eslint-disable-next-line\nexport var BIconDropletFill=/*#__PURE__*/makeIcon('DropletFill','');// eslint-disable-next-line\nexport var BIconDropletHalf=/*#__PURE__*/makeIcon('DropletHalf','');// eslint-disable-next-line\nexport var BIconEarbuds=/*#__PURE__*/makeIcon('Earbuds','');// eslint-disable-next-line\nexport var BIconEasel=/*#__PURE__*/makeIcon('Easel','');// eslint-disable-next-line\nexport var BIconEaselFill=/*#__PURE__*/makeIcon('EaselFill','');// eslint-disable-next-line\nexport var BIconEgg=/*#__PURE__*/makeIcon('Egg','');// eslint-disable-next-line\nexport var BIconEggFill=/*#__PURE__*/makeIcon('EggFill','');// eslint-disable-next-line\nexport var BIconEggFried=/*#__PURE__*/makeIcon('EggFried','');// eslint-disable-next-line\nexport var BIconEject=/*#__PURE__*/makeIcon('Eject','');// eslint-disable-next-line\nexport var BIconEjectFill=/*#__PURE__*/makeIcon('EjectFill','');// eslint-disable-next-line\nexport var BIconEmojiAngry=/*#__PURE__*/makeIcon('EmojiAngry','');// eslint-disable-next-line\nexport var BIconEmojiAngryFill=/*#__PURE__*/makeIcon('EmojiAngryFill','');// eslint-disable-next-line\nexport var BIconEmojiDizzy=/*#__PURE__*/makeIcon('EmojiDizzy','');// eslint-disable-next-line\nexport var BIconEmojiDizzyFill=/*#__PURE__*/makeIcon('EmojiDizzyFill','');// eslint-disable-next-line\nexport var BIconEmojiExpressionless=/*#__PURE__*/makeIcon('EmojiExpressionless','');// eslint-disable-next-line\nexport var BIconEmojiExpressionlessFill=/*#__PURE__*/makeIcon('EmojiExpressionlessFill','');// eslint-disable-next-line\nexport var BIconEmojiFrown=/*#__PURE__*/makeIcon('EmojiFrown','');// eslint-disable-next-line\nexport var BIconEmojiFrownFill=/*#__PURE__*/makeIcon('EmojiFrownFill','');// eslint-disable-next-line\nexport var BIconEmojiHeartEyes=/*#__PURE__*/makeIcon('EmojiHeartEyes','');// eslint-disable-next-line\nexport var BIconEmojiHeartEyesFill=/*#__PURE__*/makeIcon('EmojiHeartEyesFill','');// eslint-disable-next-line\nexport var BIconEmojiLaughing=/*#__PURE__*/makeIcon('EmojiLaughing','');// eslint-disable-next-line\nexport var BIconEmojiLaughingFill=/*#__PURE__*/makeIcon('EmojiLaughingFill','');// eslint-disable-next-line\nexport var BIconEmojiNeutral=/*#__PURE__*/makeIcon('EmojiNeutral','');// eslint-disable-next-line\nexport var BIconEmojiNeutralFill=/*#__PURE__*/makeIcon('EmojiNeutralFill','');// eslint-disable-next-line\nexport var BIconEmojiSmile=/*#__PURE__*/makeIcon('EmojiSmile','');// eslint-disable-next-line\nexport var BIconEmojiSmileFill=/*#__PURE__*/makeIcon('EmojiSmileFill','');// eslint-disable-next-line\nexport var BIconEmojiSmileUpsideDown=/*#__PURE__*/makeIcon('EmojiSmileUpsideDown','');// eslint-disable-next-line\nexport var BIconEmojiSmileUpsideDownFill=/*#__PURE__*/makeIcon('EmojiSmileUpsideDownFill','');// eslint-disable-next-line\nexport var BIconEmojiSunglasses=/*#__PURE__*/makeIcon('EmojiSunglasses','');// eslint-disable-next-line\nexport var BIconEmojiSunglassesFill=/*#__PURE__*/makeIcon('EmojiSunglassesFill','');// eslint-disable-next-line\nexport var BIconEmojiWink=/*#__PURE__*/makeIcon('EmojiWink','');// eslint-disable-next-line\nexport var BIconEmojiWinkFill=/*#__PURE__*/makeIcon('EmojiWinkFill','');// eslint-disable-next-line\nexport var BIconEnvelope=/*#__PURE__*/makeIcon('Envelope','');// eslint-disable-next-line\nexport var BIconEnvelopeFill=/*#__PURE__*/makeIcon('EnvelopeFill','');// eslint-disable-next-line\nexport var BIconEnvelopeOpen=/*#__PURE__*/makeIcon('EnvelopeOpen','');// eslint-disable-next-line\nexport var BIconEnvelopeOpenFill=/*#__PURE__*/makeIcon('EnvelopeOpenFill','');// eslint-disable-next-line\nexport var BIconEraser=/*#__PURE__*/makeIcon('Eraser','');// eslint-disable-next-line\nexport var BIconEraserFill=/*#__PURE__*/makeIcon('EraserFill','');// eslint-disable-next-line\nexport var BIconExclamation=/*#__PURE__*/makeIcon('Exclamation','');// eslint-disable-next-line\nexport var BIconExclamationCircle=/*#__PURE__*/makeIcon('ExclamationCircle','');// eslint-disable-next-line\nexport var BIconExclamationCircleFill=/*#__PURE__*/makeIcon('ExclamationCircleFill','');// eslint-disable-next-line\nexport var BIconExclamationDiamond=/*#__PURE__*/makeIcon('ExclamationDiamond','');// eslint-disable-next-line\nexport var BIconExclamationDiamondFill=/*#__PURE__*/makeIcon('ExclamationDiamondFill','');// eslint-disable-next-line\nexport var BIconExclamationLg=/*#__PURE__*/makeIcon('ExclamationLg','');// eslint-disable-next-line\nexport var BIconExclamationOctagon=/*#__PURE__*/makeIcon('ExclamationOctagon','');// eslint-disable-next-line\nexport var BIconExclamationOctagonFill=/*#__PURE__*/makeIcon('ExclamationOctagonFill','');// eslint-disable-next-line\nexport var BIconExclamationSquare=/*#__PURE__*/makeIcon('ExclamationSquare','');// eslint-disable-next-line\nexport var BIconExclamationSquareFill=/*#__PURE__*/makeIcon('ExclamationSquareFill','');// eslint-disable-next-line\nexport var BIconExclamationTriangle=/*#__PURE__*/makeIcon('ExclamationTriangle','');// eslint-disable-next-line\nexport var BIconExclamationTriangleFill=/*#__PURE__*/makeIcon('ExclamationTriangleFill','');// eslint-disable-next-line\nexport var BIconExclude=/*#__PURE__*/makeIcon('Exclude','');// eslint-disable-next-line\nexport var BIconEye=/*#__PURE__*/makeIcon('Eye','');// eslint-disable-next-line\nexport var BIconEyeFill=/*#__PURE__*/makeIcon('EyeFill','');// eslint-disable-next-line\nexport var BIconEyeSlash=/*#__PURE__*/makeIcon('EyeSlash','');// eslint-disable-next-line\nexport var BIconEyeSlashFill=/*#__PURE__*/makeIcon('EyeSlashFill','');// eslint-disable-next-line\nexport var BIconEyedropper=/*#__PURE__*/makeIcon('Eyedropper','');// eslint-disable-next-line\nexport var BIconEyeglasses=/*#__PURE__*/makeIcon('Eyeglasses','');// eslint-disable-next-line\nexport var BIconFacebook=/*#__PURE__*/makeIcon('Facebook','');// eslint-disable-next-line\nexport var BIconFile=/*#__PURE__*/makeIcon('File','');// eslint-disable-next-line\nexport var BIconFileArrowDown=/*#__PURE__*/makeIcon('FileArrowDown','');// eslint-disable-next-line\nexport var BIconFileArrowDownFill=/*#__PURE__*/makeIcon('FileArrowDownFill','');// eslint-disable-next-line\nexport var BIconFileArrowUp=/*#__PURE__*/makeIcon('FileArrowUp','');// eslint-disable-next-line\nexport var BIconFileArrowUpFill=/*#__PURE__*/makeIcon('FileArrowUpFill','');// eslint-disable-next-line\nexport var BIconFileBarGraph=/*#__PURE__*/makeIcon('FileBarGraph','');// eslint-disable-next-line\nexport var BIconFileBarGraphFill=/*#__PURE__*/makeIcon('FileBarGraphFill','');// eslint-disable-next-line\nexport var BIconFileBinary=/*#__PURE__*/makeIcon('FileBinary','');// eslint-disable-next-line\nexport var BIconFileBinaryFill=/*#__PURE__*/makeIcon('FileBinaryFill','');// eslint-disable-next-line\nexport var BIconFileBreak=/*#__PURE__*/makeIcon('FileBreak','');// eslint-disable-next-line\nexport var BIconFileBreakFill=/*#__PURE__*/makeIcon('FileBreakFill','');// eslint-disable-next-line\nexport var BIconFileCheck=/*#__PURE__*/makeIcon('FileCheck','');// eslint-disable-next-line\nexport var BIconFileCheckFill=/*#__PURE__*/makeIcon('FileCheckFill','');// eslint-disable-next-line\nexport var BIconFileCode=/*#__PURE__*/makeIcon('FileCode','');// eslint-disable-next-line\nexport var BIconFileCodeFill=/*#__PURE__*/makeIcon('FileCodeFill','');// eslint-disable-next-line\nexport var BIconFileDiff=/*#__PURE__*/makeIcon('FileDiff','');// eslint-disable-next-line\nexport var BIconFileDiffFill=/*#__PURE__*/makeIcon('FileDiffFill','');// eslint-disable-next-line\nexport var BIconFileEarmark=/*#__PURE__*/makeIcon('FileEarmark','');// eslint-disable-next-line\nexport var BIconFileEarmarkArrowDown=/*#__PURE__*/makeIcon('FileEarmarkArrowDown','');// eslint-disable-next-line\nexport var BIconFileEarmarkArrowDownFill=/*#__PURE__*/makeIcon('FileEarmarkArrowDownFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkArrowUp=/*#__PURE__*/makeIcon('FileEarmarkArrowUp','');// eslint-disable-next-line\nexport var BIconFileEarmarkArrowUpFill=/*#__PURE__*/makeIcon('FileEarmarkArrowUpFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkBarGraph=/*#__PURE__*/makeIcon('FileEarmarkBarGraph','');// eslint-disable-next-line\nexport var BIconFileEarmarkBarGraphFill=/*#__PURE__*/makeIcon('FileEarmarkBarGraphFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkBinary=/*#__PURE__*/makeIcon('FileEarmarkBinary','');// eslint-disable-next-line\nexport var BIconFileEarmarkBinaryFill=/*#__PURE__*/makeIcon('FileEarmarkBinaryFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkBreak=/*#__PURE__*/makeIcon('FileEarmarkBreak','');// eslint-disable-next-line\nexport var BIconFileEarmarkBreakFill=/*#__PURE__*/makeIcon('FileEarmarkBreakFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkCheck=/*#__PURE__*/makeIcon('FileEarmarkCheck','');// eslint-disable-next-line\nexport var BIconFileEarmarkCheckFill=/*#__PURE__*/makeIcon('FileEarmarkCheckFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkCode=/*#__PURE__*/makeIcon('FileEarmarkCode','');// eslint-disable-next-line\nexport var BIconFileEarmarkCodeFill=/*#__PURE__*/makeIcon('FileEarmarkCodeFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkDiff=/*#__PURE__*/makeIcon('FileEarmarkDiff','');// eslint-disable-next-line\nexport var BIconFileEarmarkDiffFill=/*#__PURE__*/makeIcon('FileEarmarkDiffFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkEasel=/*#__PURE__*/makeIcon('FileEarmarkEasel','');// eslint-disable-next-line\nexport var BIconFileEarmarkEaselFill=/*#__PURE__*/makeIcon('FileEarmarkEaselFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkExcel=/*#__PURE__*/makeIcon('FileEarmarkExcel','');// eslint-disable-next-line\nexport var BIconFileEarmarkExcelFill=/*#__PURE__*/makeIcon('FileEarmarkExcelFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkFill=/*#__PURE__*/makeIcon('FileEarmarkFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkFont=/*#__PURE__*/makeIcon('FileEarmarkFont','');// eslint-disable-next-line\nexport var BIconFileEarmarkFontFill=/*#__PURE__*/makeIcon('FileEarmarkFontFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkImage=/*#__PURE__*/makeIcon('FileEarmarkImage','');// eslint-disable-next-line\nexport var BIconFileEarmarkImageFill=/*#__PURE__*/makeIcon('FileEarmarkImageFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkLock=/*#__PURE__*/makeIcon('FileEarmarkLock','');// eslint-disable-next-line\nexport var BIconFileEarmarkLock2=/*#__PURE__*/makeIcon('FileEarmarkLock2','');// eslint-disable-next-line\nexport var BIconFileEarmarkLock2Fill=/*#__PURE__*/makeIcon('FileEarmarkLock2Fill','');// eslint-disable-next-line\nexport var BIconFileEarmarkLockFill=/*#__PURE__*/makeIcon('FileEarmarkLockFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkMedical=/*#__PURE__*/makeIcon('FileEarmarkMedical','');// eslint-disable-next-line\nexport var BIconFileEarmarkMedicalFill=/*#__PURE__*/makeIcon('FileEarmarkMedicalFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkMinus=/*#__PURE__*/makeIcon('FileEarmarkMinus','');// eslint-disable-next-line\nexport var BIconFileEarmarkMinusFill=/*#__PURE__*/makeIcon('FileEarmarkMinusFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkMusic=/*#__PURE__*/makeIcon('FileEarmarkMusic','');// eslint-disable-next-line\nexport var BIconFileEarmarkMusicFill=/*#__PURE__*/makeIcon('FileEarmarkMusicFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkPdf=/*#__PURE__*/makeIcon('FileEarmarkPdf','');// eslint-disable-next-line\nexport var BIconFileEarmarkPdfFill=/*#__PURE__*/makeIcon('FileEarmarkPdfFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkPerson=/*#__PURE__*/makeIcon('FileEarmarkPerson','');// eslint-disable-next-line\nexport var BIconFileEarmarkPersonFill=/*#__PURE__*/makeIcon('FileEarmarkPersonFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkPlay=/*#__PURE__*/makeIcon('FileEarmarkPlay','');// eslint-disable-next-line\nexport var BIconFileEarmarkPlayFill=/*#__PURE__*/makeIcon('FileEarmarkPlayFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkPlus=/*#__PURE__*/makeIcon('FileEarmarkPlus','');// eslint-disable-next-line\nexport var BIconFileEarmarkPlusFill=/*#__PURE__*/makeIcon('FileEarmarkPlusFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkPost=/*#__PURE__*/makeIcon('FileEarmarkPost','');// eslint-disable-next-line\nexport var BIconFileEarmarkPostFill=/*#__PURE__*/makeIcon('FileEarmarkPostFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkPpt=/*#__PURE__*/makeIcon('FileEarmarkPpt','');// eslint-disable-next-line\nexport var BIconFileEarmarkPptFill=/*#__PURE__*/makeIcon('FileEarmarkPptFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkRichtext=/*#__PURE__*/makeIcon('FileEarmarkRichtext','');// eslint-disable-next-line\nexport var BIconFileEarmarkRichtextFill=/*#__PURE__*/makeIcon('FileEarmarkRichtextFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkRuled=/*#__PURE__*/makeIcon('FileEarmarkRuled','');// eslint-disable-next-line\nexport var BIconFileEarmarkRuledFill=/*#__PURE__*/makeIcon('FileEarmarkRuledFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkSlides=/*#__PURE__*/makeIcon('FileEarmarkSlides','');// eslint-disable-next-line\nexport var BIconFileEarmarkSlidesFill=/*#__PURE__*/makeIcon('FileEarmarkSlidesFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkSpreadsheet=/*#__PURE__*/makeIcon('FileEarmarkSpreadsheet','');// eslint-disable-next-line\nexport var BIconFileEarmarkSpreadsheetFill=/*#__PURE__*/makeIcon('FileEarmarkSpreadsheetFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkText=/*#__PURE__*/makeIcon('FileEarmarkText','');// eslint-disable-next-line\nexport var BIconFileEarmarkTextFill=/*#__PURE__*/makeIcon('FileEarmarkTextFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkWord=/*#__PURE__*/makeIcon('FileEarmarkWord','');// eslint-disable-next-line\nexport var BIconFileEarmarkWordFill=/*#__PURE__*/makeIcon('FileEarmarkWordFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkX=/*#__PURE__*/makeIcon('FileEarmarkX','');// eslint-disable-next-line\nexport var BIconFileEarmarkXFill=/*#__PURE__*/makeIcon('FileEarmarkXFill','');// eslint-disable-next-line\nexport var BIconFileEarmarkZip=/*#__PURE__*/makeIcon('FileEarmarkZip','');// eslint-disable-next-line\nexport var BIconFileEarmarkZipFill=/*#__PURE__*/makeIcon('FileEarmarkZipFill','');// eslint-disable-next-line\nexport var BIconFileEasel=/*#__PURE__*/makeIcon('FileEasel','');// eslint-disable-next-line\nexport var BIconFileEaselFill=/*#__PURE__*/makeIcon('FileEaselFill','');// eslint-disable-next-line\nexport var BIconFileExcel=/*#__PURE__*/makeIcon('FileExcel','');// eslint-disable-next-line\nexport var BIconFileExcelFill=/*#__PURE__*/makeIcon('FileExcelFill','');// eslint-disable-next-line\nexport var BIconFileFill=/*#__PURE__*/makeIcon('FileFill','');// eslint-disable-next-line\nexport var BIconFileFont=/*#__PURE__*/makeIcon('FileFont','');// eslint-disable-next-line\nexport var BIconFileFontFill=/*#__PURE__*/makeIcon('FileFontFill','');// eslint-disable-next-line\nexport var BIconFileImage=/*#__PURE__*/makeIcon('FileImage','');// eslint-disable-next-line\nexport var BIconFileImageFill=/*#__PURE__*/makeIcon('FileImageFill','');// eslint-disable-next-line\nexport var BIconFileLock=/*#__PURE__*/makeIcon('FileLock','');// eslint-disable-next-line\nexport var BIconFileLock2=/*#__PURE__*/makeIcon('FileLock2','');// eslint-disable-next-line\nexport var BIconFileLock2Fill=/*#__PURE__*/makeIcon('FileLock2Fill','');// eslint-disable-next-line\nexport var BIconFileLockFill=/*#__PURE__*/makeIcon('FileLockFill','');// eslint-disable-next-line\nexport var BIconFileMedical=/*#__PURE__*/makeIcon('FileMedical','');// eslint-disable-next-line\nexport var BIconFileMedicalFill=/*#__PURE__*/makeIcon('FileMedicalFill','');// eslint-disable-next-line\nexport var BIconFileMinus=/*#__PURE__*/makeIcon('FileMinus','');// eslint-disable-next-line\nexport var BIconFileMinusFill=/*#__PURE__*/makeIcon('FileMinusFill','');// eslint-disable-next-line\nexport var BIconFileMusic=/*#__PURE__*/makeIcon('FileMusic','');// eslint-disable-next-line\nexport var BIconFileMusicFill=/*#__PURE__*/makeIcon('FileMusicFill','');// eslint-disable-next-line\nexport var BIconFilePdf=/*#__PURE__*/makeIcon('FilePdf','');// eslint-disable-next-line\nexport var BIconFilePdfFill=/*#__PURE__*/makeIcon('FilePdfFill','');// eslint-disable-next-line\nexport var BIconFilePerson=/*#__PURE__*/makeIcon('FilePerson','');// eslint-disable-next-line\nexport var BIconFilePersonFill=/*#__PURE__*/makeIcon('FilePersonFill','');// eslint-disable-next-line\nexport var BIconFilePlay=/*#__PURE__*/makeIcon('FilePlay','');// eslint-disable-next-line\nexport var BIconFilePlayFill=/*#__PURE__*/makeIcon('FilePlayFill','');// eslint-disable-next-line\nexport var BIconFilePlus=/*#__PURE__*/makeIcon('FilePlus','');// eslint-disable-next-line\nexport var BIconFilePlusFill=/*#__PURE__*/makeIcon('FilePlusFill','');// eslint-disable-next-line\nexport var BIconFilePost=/*#__PURE__*/makeIcon('FilePost','');// eslint-disable-next-line\nexport var BIconFilePostFill=/*#__PURE__*/makeIcon('FilePostFill','');// eslint-disable-next-line\nexport var BIconFilePpt=/*#__PURE__*/makeIcon('FilePpt','');// eslint-disable-next-line\nexport var BIconFilePptFill=/*#__PURE__*/makeIcon('FilePptFill','');// eslint-disable-next-line\nexport var BIconFileRichtext=/*#__PURE__*/makeIcon('FileRichtext','');// eslint-disable-next-line\nexport var BIconFileRichtextFill=/*#__PURE__*/makeIcon('FileRichtextFill','');// eslint-disable-next-line\nexport var BIconFileRuled=/*#__PURE__*/makeIcon('FileRuled','');// eslint-disable-next-line\nexport var BIconFileRuledFill=/*#__PURE__*/makeIcon('FileRuledFill','');// eslint-disable-next-line\nexport var BIconFileSlides=/*#__PURE__*/makeIcon('FileSlides','');// eslint-disable-next-line\nexport var BIconFileSlidesFill=/*#__PURE__*/makeIcon('FileSlidesFill','');// eslint-disable-next-line\nexport var BIconFileSpreadsheet=/*#__PURE__*/makeIcon('FileSpreadsheet','');// eslint-disable-next-line\nexport var BIconFileSpreadsheetFill=/*#__PURE__*/makeIcon('FileSpreadsheetFill','');// eslint-disable-next-line\nexport var BIconFileText=/*#__PURE__*/makeIcon('FileText','');// eslint-disable-next-line\nexport var BIconFileTextFill=/*#__PURE__*/makeIcon('FileTextFill','');// eslint-disable-next-line\nexport var BIconFileWord=/*#__PURE__*/makeIcon('FileWord','');// eslint-disable-next-line\nexport var BIconFileWordFill=/*#__PURE__*/makeIcon('FileWordFill','');// eslint-disable-next-line\nexport var BIconFileX=/*#__PURE__*/makeIcon('FileX','');// eslint-disable-next-line\nexport var BIconFileXFill=/*#__PURE__*/makeIcon('FileXFill','');// eslint-disable-next-line\nexport var BIconFileZip=/*#__PURE__*/makeIcon('FileZip','');// eslint-disable-next-line\nexport var BIconFileZipFill=/*#__PURE__*/makeIcon('FileZipFill','');// eslint-disable-next-line\nexport var BIconFiles=/*#__PURE__*/makeIcon('Files','');// eslint-disable-next-line\nexport var BIconFilesAlt=/*#__PURE__*/makeIcon('FilesAlt','');// eslint-disable-next-line\nexport var BIconFilm=/*#__PURE__*/makeIcon('Film','');// eslint-disable-next-line\nexport var BIconFilter=/*#__PURE__*/makeIcon('Filter','');// eslint-disable-next-line\nexport var BIconFilterCircle=/*#__PURE__*/makeIcon('FilterCircle','');// eslint-disable-next-line\nexport var BIconFilterCircleFill=/*#__PURE__*/makeIcon('FilterCircleFill','');// eslint-disable-next-line\nexport var BIconFilterLeft=/*#__PURE__*/makeIcon('FilterLeft','');// eslint-disable-next-line\nexport var BIconFilterRight=/*#__PURE__*/makeIcon('FilterRight','');// eslint-disable-next-line\nexport var BIconFilterSquare=/*#__PURE__*/makeIcon('FilterSquare','');// eslint-disable-next-line\nexport var BIconFilterSquareFill=/*#__PURE__*/makeIcon('FilterSquareFill','');// eslint-disable-next-line\nexport var BIconFlag=/*#__PURE__*/makeIcon('Flag','');// eslint-disable-next-line\nexport var BIconFlagFill=/*#__PURE__*/makeIcon('FlagFill','');// eslint-disable-next-line\nexport var BIconFlower1=/*#__PURE__*/makeIcon('Flower1','');// eslint-disable-next-line\nexport var BIconFlower2=/*#__PURE__*/makeIcon('Flower2','');// eslint-disable-next-line\nexport var BIconFlower3=/*#__PURE__*/makeIcon('Flower3','');// eslint-disable-next-line\nexport var BIconFolder=/*#__PURE__*/makeIcon('Folder','');// eslint-disable-next-line\nexport var BIconFolder2=/*#__PURE__*/makeIcon('Folder2','');// eslint-disable-next-line\nexport var BIconFolder2Open=/*#__PURE__*/makeIcon('Folder2Open','');// eslint-disable-next-line\nexport var BIconFolderCheck=/*#__PURE__*/makeIcon('FolderCheck','');// eslint-disable-next-line\nexport var BIconFolderFill=/*#__PURE__*/makeIcon('FolderFill','');// eslint-disable-next-line\nexport var BIconFolderMinus=/*#__PURE__*/makeIcon('FolderMinus','');// eslint-disable-next-line\nexport var BIconFolderPlus=/*#__PURE__*/makeIcon('FolderPlus','');// eslint-disable-next-line\nexport var BIconFolderSymlink=/*#__PURE__*/makeIcon('FolderSymlink','');// eslint-disable-next-line\nexport var BIconFolderSymlinkFill=/*#__PURE__*/makeIcon('FolderSymlinkFill','');// eslint-disable-next-line\nexport var BIconFolderX=/*#__PURE__*/makeIcon('FolderX','');// eslint-disable-next-line\nexport var BIconFonts=/*#__PURE__*/makeIcon('Fonts','');// eslint-disable-next-line\nexport var BIconForward=/*#__PURE__*/makeIcon('Forward','');// eslint-disable-next-line\nexport var BIconForwardFill=/*#__PURE__*/makeIcon('ForwardFill','');// eslint-disable-next-line\nexport var BIconFront=/*#__PURE__*/makeIcon('Front','');// eslint-disable-next-line\nexport var BIconFullscreen=/*#__PURE__*/makeIcon('Fullscreen','');// eslint-disable-next-line\nexport var BIconFullscreenExit=/*#__PURE__*/makeIcon('FullscreenExit','');// eslint-disable-next-line\nexport var BIconFunnel=/*#__PURE__*/makeIcon('Funnel','');// eslint-disable-next-line\nexport var BIconFunnelFill=/*#__PURE__*/makeIcon('FunnelFill','');// eslint-disable-next-line\nexport var BIconGear=/*#__PURE__*/makeIcon('Gear','');// eslint-disable-next-line\nexport var BIconGearFill=/*#__PURE__*/makeIcon('GearFill','');// eslint-disable-next-line\nexport var BIconGearWide=/*#__PURE__*/makeIcon('GearWide','');// eslint-disable-next-line\nexport var BIconGearWideConnected=/*#__PURE__*/makeIcon('GearWideConnected','');// eslint-disable-next-line\nexport var BIconGem=/*#__PURE__*/makeIcon('Gem','');// eslint-disable-next-line\nexport var BIconGenderAmbiguous=/*#__PURE__*/makeIcon('GenderAmbiguous','');// eslint-disable-next-line\nexport var BIconGenderFemale=/*#__PURE__*/makeIcon('GenderFemale','');// eslint-disable-next-line\nexport var BIconGenderMale=/*#__PURE__*/makeIcon('GenderMale','');// eslint-disable-next-line\nexport var BIconGenderTrans=/*#__PURE__*/makeIcon('GenderTrans','');// eslint-disable-next-line\nexport var BIconGeo=/*#__PURE__*/makeIcon('Geo','');// eslint-disable-next-line\nexport var BIconGeoAlt=/*#__PURE__*/makeIcon('GeoAlt','');// eslint-disable-next-line\nexport var BIconGeoAltFill=/*#__PURE__*/makeIcon('GeoAltFill','');// eslint-disable-next-line\nexport var BIconGeoFill=/*#__PURE__*/makeIcon('GeoFill','');// eslint-disable-next-line\nexport var BIconGift=/*#__PURE__*/makeIcon('Gift','');// eslint-disable-next-line\nexport var BIconGiftFill=/*#__PURE__*/makeIcon('GiftFill','');// eslint-disable-next-line\nexport var BIconGithub=/*#__PURE__*/makeIcon('Github','');// eslint-disable-next-line\nexport var BIconGlobe=/*#__PURE__*/makeIcon('Globe','');// eslint-disable-next-line\nexport var BIconGlobe2=/*#__PURE__*/makeIcon('Globe2','');// eslint-disable-next-line\nexport var BIconGoogle=/*#__PURE__*/makeIcon('Google','');// eslint-disable-next-line\nexport var BIconGraphDown=/*#__PURE__*/makeIcon('GraphDown','');// eslint-disable-next-line\nexport var BIconGraphUp=/*#__PURE__*/makeIcon('GraphUp','');// eslint-disable-next-line\nexport var BIconGrid=/*#__PURE__*/makeIcon('Grid','');// eslint-disable-next-line\nexport var BIconGrid1x2=/*#__PURE__*/makeIcon('Grid1x2','');// eslint-disable-next-line\nexport var BIconGrid1x2Fill=/*#__PURE__*/makeIcon('Grid1x2Fill','');// eslint-disable-next-line\nexport var BIconGrid3x2=/*#__PURE__*/makeIcon('Grid3x2','');// eslint-disable-next-line\nexport var BIconGrid3x2Gap=/*#__PURE__*/makeIcon('Grid3x2Gap','');// eslint-disable-next-line\nexport var BIconGrid3x2GapFill=/*#__PURE__*/makeIcon('Grid3x2GapFill','');// eslint-disable-next-line\nexport var BIconGrid3x3=/*#__PURE__*/makeIcon('Grid3x3','');// eslint-disable-next-line\nexport var BIconGrid3x3Gap=/*#__PURE__*/makeIcon('Grid3x3Gap','');// eslint-disable-next-line\nexport var BIconGrid3x3GapFill=/*#__PURE__*/makeIcon('Grid3x3GapFill','');// eslint-disable-next-line\nexport var BIconGridFill=/*#__PURE__*/makeIcon('GridFill','');// eslint-disable-next-line\nexport var BIconGripHorizontal=/*#__PURE__*/makeIcon('GripHorizontal','');// eslint-disable-next-line\nexport var BIconGripVertical=/*#__PURE__*/makeIcon('GripVertical','');// eslint-disable-next-line\nexport var BIconHammer=/*#__PURE__*/makeIcon('Hammer','');// eslint-disable-next-line\nexport var BIconHandIndex=/*#__PURE__*/makeIcon('HandIndex','');// eslint-disable-next-line\nexport var BIconHandIndexFill=/*#__PURE__*/makeIcon('HandIndexFill','');// eslint-disable-next-line\nexport var BIconHandIndexThumb=/*#__PURE__*/makeIcon('HandIndexThumb','');// eslint-disable-next-line\nexport var BIconHandIndexThumbFill=/*#__PURE__*/makeIcon('HandIndexThumbFill','');// eslint-disable-next-line\nexport var BIconHandThumbsDown=/*#__PURE__*/makeIcon('HandThumbsDown','');// eslint-disable-next-line\nexport var BIconHandThumbsDownFill=/*#__PURE__*/makeIcon('HandThumbsDownFill','');// eslint-disable-next-line\nexport var BIconHandThumbsUp=/*#__PURE__*/makeIcon('HandThumbsUp','');// eslint-disable-next-line\nexport var BIconHandThumbsUpFill=/*#__PURE__*/makeIcon('HandThumbsUpFill','');// eslint-disable-next-line\nexport var BIconHandbag=/*#__PURE__*/makeIcon('Handbag','');// eslint-disable-next-line\nexport var BIconHandbagFill=/*#__PURE__*/makeIcon('HandbagFill','');// eslint-disable-next-line\nexport var BIconHash=/*#__PURE__*/makeIcon('Hash','');// eslint-disable-next-line\nexport var BIconHdd=/*#__PURE__*/makeIcon('Hdd','');// eslint-disable-next-line\nexport var BIconHddFill=/*#__PURE__*/makeIcon('HddFill','');// eslint-disable-next-line\nexport var BIconHddNetwork=/*#__PURE__*/makeIcon('HddNetwork','');// eslint-disable-next-line\nexport var BIconHddNetworkFill=/*#__PURE__*/makeIcon('HddNetworkFill','');// eslint-disable-next-line\nexport var BIconHddRack=/*#__PURE__*/makeIcon('HddRack','');// eslint-disable-next-line\nexport var BIconHddRackFill=/*#__PURE__*/makeIcon('HddRackFill','');// eslint-disable-next-line\nexport var BIconHddStack=/*#__PURE__*/makeIcon('HddStack','');// eslint-disable-next-line\nexport var BIconHddStackFill=/*#__PURE__*/makeIcon('HddStackFill','');// eslint-disable-next-line\nexport var BIconHeadphones=/*#__PURE__*/makeIcon('Headphones','');// eslint-disable-next-line\nexport var BIconHeadset=/*#__PURE__*/makeIcon('Headset','');// eslint-disable-next-line\nexport var BIconHeadsetVr=/*#__PURE__*/makeIcon('HeadsetVr','');// eslint-disable-next-line\nexport var BIconHeart=/*#__PURE__*/makeIcon('Heart','');// eslint-disable-next-line\nexport var BIconHeartFill=/*#__PURE__*/makeIcon('HeartFill','');// eslint-disable-next-line\nexport var BIconHeartHalf=/*#__PURE__*/makeIcon('HeartHalf','');// eslint-disable-next-line\nexport var BIconHeptagon=/*#__PURE__*/makeIcon('Heptagon','');// eslint-disable-next-line\nexport var BIconHeptagonFill=/*#__PURE__*/makeIcon('HeptagonFill','');// eslint-disable-next-line\nexport var BIconHeptagonHalf=/*#__PURE__*/makeIcon('HeptagonHalf','');// eslint-disable-next-line\nexport var BIconHexagon=/*#__PURE__*/makeIcon('Hexagon','');// eslint-disable-next-line\nexport var BIconHexagonFill=/*#__PURE__*/makeIcon('HexagonFill','');// eslint-disable-next-line\nexport var BIconHexagonHalf=/*#__PURE__*/makeIcon('HexagonHalf','');// eslint-disable-next-line\nexport var BIconHourglass=/*#__PURE__*/makeIcon('Hourglass','');// eslint-disable-next-line\nexport var BIconHourglassBottom=/*#__PURE__*/makeIcon('HourglassBottom','');// eslint-disable-next-line\nexport var BIconHourglassSplit=/*#__PURE__*/makeIcon('HourglassSplit','');// eslint-disable-next-line\nexport var BIconHourglassTop=/*#__PURE__*/makeIcon('HourglassTop','');// eslint-disable-next-line\nexport var BIconHouse=/*#__PURE__*/makeIcon('House','');// eslint-disable-next-line\nexport var BIconHouseDoor=/*#__PURE__*/makeIcon('HouseDoor','');// eslint-disable-next-line\nexport var BIconHouseDoorFill=/*#__PURE__*/makeIcon('HouseDoorFill','');// eslint-disable-next-line\nexport var BIconHouseFill=/*#__PURE__*/makeIcon('HouseFill','');// eslint-disable-next-line\nexport var BIconHr=/*#__PURE__*/makeIcon('Hr','');// eslint-disable-next-line\nexport var BIconHurricane=/*#__PURE__*/makeIcon('Hurricane','');// eslint-disable-next-line\nexport var BIconImage=/*#__PURE__*/makeIcon('Image','');// eslint-disable-next-line\nexport var BIconImageAlt=/*#__PURE__*/makeIcon('ImageAlt','');// eslint-disable-next-line\nexport var BIconImageFill=/*#__PURE__*/makeIcon('ImageFill','');// eslint-disable-next-line\nexport var BIconImages=/*#__PURE__*/makeIcon('Images','');// eslint-disable-next-line\nexport var BIconInbox=/*#__PURE__*/makeIcon('Inbox','');// eslint-disable-next-line\nexport var BIconInboxFill=/*#__PURE__*/makeIcon('InboxFill','');// eslint-disable-next-line\nexport var BIconInboxes=/*#__PURE__*/makeIcon('Inboxes','');// eslint-disable-next-line\nexport var BIconInboxesFill=/*#__PURE__*/makeIcon('InboxesFill','');// eslint-disable-next-line\nexport var BIconInfo=/*#__PURE__*/makeIcon('Info','');// eslint-disable-next-line\nexport var BIconInfoCircle=/*#__PURE__*/makeIcon('InfoCircle','');// eslint-disable-next-line\nexport var BIconInfoCircleFill=/*#__PURE__*/makeIcon('InfoCircleFill','');// eslint-disable-next-line\nexport var BIconInfoLg=/*#__PURE__*/makeIcon('InfoLg','');// eslint-disable-next-line\nexport var BIconInfoSquare=/*#__PURE__*/makeIcon('InfoSquare','');// eslint-disable-next-line\nexport var BIconInfoSquareFill=/*#__PURE__*/makeIcon('InfoSquareFill','');// eslint-disable-next-line\nexport var BIconInputCursor=/*#__PURE__*/makeIcon('InputCursor','');// eslint-disable-next-line\nexport var BIconInputCursorText=/*#__PURE__*/makeIcon('InputCursorText','');// eslint-disable-next-line\nexport var BIconInstagram=/*#__PURE__*/makeIcon('Instagram','');// eslint-disable-next-line\nexport var BIconIntersect=/*#__PURE__*/makeIcon('Intersect','');// eslint-disable-next-line\nexport var BIconJournal=/*#__PURE__*/makeIcon('Journal','');// eslint-disable-next-line\nexport var BIconJournalAlbum=/*#__PURE__*/makeIcon('JournalAlbum','');// eslint-disable-next-line\nexport var BIconJournalArrowDown=/*#__PURE__*/makeIcon('JournalArrowDown','');// eslint-disable-next-line\nexport var BIconJournalArrowUp=/*#__PURE__*/makeIcon('JournalArrowUp','');// eslint-disable-next-line\nexport var BIconJournalBookmark=/*#__PURE__*/makeIcon('JournalBookmark','');// eslint-disable-next-line\nexport var BIconJournalBookmarkFill=/*#__PURE__*/makeIcon('JournalBookmarkFill','');// eslint-disable-next-line\nexport var BIconJournalCheck=/*#__PURE__*/makeIcon('JournalCheck','');// eslint-disable-next-line\nexport var BIconJournalCode=/*#__PURE__*/makeIcon('JournalCode','');// eslint-disable-next-line\nexport var BIconJournalMedical=/*#__PURE__*/makeIcon('JournalMedical','');// eslint-disable-next-line\nexport var BIconJournalMinus=/*#__PURE__*/makeIcon('JournalMinus','');// eslint-disable-next-line\nexport var BIconJournalPlus=/*#__PURE__*/makeIcon('JournalPlus','');// eslint-disable-next-line\nexport var BIconJournalRichtext=/*#__PURE__*/makeIcon('JournalRichtext','');// eslint-disable-next-line\nexport var BIconJournalText=/*#__PURE__*/makeIcon('JournalText','');// eslint-disable-next-line\nexport var BIconJournalX=/*#__PURE__*/makeIcon('JournalX','');// eslint-disable-next-line\nexport var BIconJournals=/*#__PURE__*/makeIcon('Journals','');// eslint-disable-next-line\nexport var BIconJoystick=/*#__PURE__*/makeIcon('Joystick','');// eslint-disable-next-line\nexport var BIconJustify=/*#__PURE__*/makeIcon('Justify','');// eslint-disable-next-line\nexport var BIconJustifyLeft=/*#__PURE__*/makeIcon('JustifyLeft','');// eslint-disable-next-line\nexport var BIconJustifyRight=/*#__PURE__*/makeIcon('JustifyRight','');// eslint-disable-next-line\nexport var BIconKanban=/*#__PURE__*/makeIcon('Kanban','');// eslint-disable-next-line\nexport var BIconKanbanFill=/*#__PURE__*/makeIcon('KanbanFill','');// eslint-disable-next-line\nexport var BIconKey=/*#__PURE__*/makeIcon('Key','');// eslint-disable-next-line\nexport var BIconKeyFill=/*#__PURE__*/makeIcon('KeyFill','');// eslint-disable-next-line\nexport var BIconKeyboard=/*#__PURE__*/makeIcon('Keyboard','');// eslint-disable-next-line\nexport var BIconKeyboardFill=/*#__PURE__*/makeIcon('KeyboardFill','');// eslint-disable-next-line\nexport var BIconLadder=/*#__PURE__*/makeIcon('Ladder','');// eslint-disable-next-line\nexport var BIconLamp=/*#__PURE__*/makeIcon('Lamp','');// eslint-disable-next-line\nexport var BIconLampFill=/*#__PURE__*/makeIcon('LampFill','');// eslint-disable-next-line\nexport var BIconLaptop=/*#__PURE__*/makeIcon('Laptop','');// eslint-disable-next-line\nexport var BIconLaptopFill=/*#__PURE__*/makeIcon('LaptopFill','');// eslint-disable-next-line\nexport var BIconLayerBackward=/*#__PURE__*/makeIcon('LayerBackward','');// eslint-disable-next-line\nexport var BIconLayerForward=/*#__PURE__*/makeIcon('LayerForward','');// eslint-disable-next-line\nexport var BIconLayers=/*#__PURE__*/makeIcon('Layers','');// eslint-disable-next-line\nexport var BIconLayersFill=/*#__PURE__*/makeIcon('LayersFill','');// eslint-disable-next-line\nexport var BIconLayersHalf=/*#__PURE__*/makeIcon('LayersHalf','');// eslint-disable-next-line\nexport var BIconLayoutSidebar=/*#__PURE__*/makeIcon('LayoutSidebar','');// eslint-disable-next-line\nexport var BIconLayoutSidebarInset=/*#__PURE__*/makeIcon('LayoutSidebarInset','');// eslint-disable-next-line\nexport var BIconLayoutSidebarInsetReverse=/*#__PURE__*/makeIcon('LayoutSidebarInsetReverse','');// eslint-disable-next-line\nexport var BIconLayoutSidebarReverse=/*#__PURE__*/makeIcon('LayoutSidebarReverse','');// eslint-disable-next-line\nexport var BIconLayoutSplit=/*#__PURE__*/makeIcon('LayoutSplit','');// eslint-disable-next-line\nexport var BIconLayoutTextSidebar=/*#__PURE__*/makeIcon('LayoutTextSidebar','');// eslint-disable-next-line\nexport var BIconLayoutTextSidebarReverse=/*#__PURE__*/makeIcon('LayoutTextSidebarReverse','');// eslint-disable-next-line\nexport var BIconLayoutTextWindow=/*#__PURE__*/makeIcon('LayoutTextWindow','');// eslint-disable-next-line\nexport var BIconLayoutTextWindowReverse=/*#__PURE__*/makeIcon('LayoutTextWindowReverse','');// eslint-disable-next-line\nexport var BIconLayoutThreeColumns=/*#__PURE__*/makeIcon('LayoutThreeColumns','');// eslint-disable-next-line\nexport var BIconLayoutWtf=/*#__PURE__*/makeIcon('LayoutWtf','');// eslint-disable-next-line\nexport var BIconLifePreserver=/*#__PURE__*/makeIcon('LifePreserver','');// eslint-disable-next-line\nexport var BIconLightbulb=/*#__PURE__*/makeIcon('Lightbulb','');// eslint-disable-next-line\nexport var BIconLightbulbFill=/*#__PURE__*/makeIcon('LightbulbFill','');// eslint-disable-next-line\nexport var BIconLightbulbOff=/*#__PURE__*/makeIcon('LightbulbOff','');// eslint-disable-next-line\nexport var BIconLightbulbOffFill=/*#__PURE__*/makeIcon('LightbulbOffFill','');// eslint-disable-next-line\nexport var BIconLightning=/*#__PURE__*/makeIcon('Lightning','');// eslint-disable-next-line\nexport var BIconLightningCharge=/*#__PURE__*/makeIcon('LightningCharge','');// eslint-disable-next-line\nexport var BIconLightningChargeFill=/*#__PURE__*/makeIcon('LightningChargeFill','');// eslint-disable-next-line\nexport var BIconLightningFill=/*#__PURE__*/makeIcon('LightningFill','');// eslint-disable-next-line\nexport var BIconLink=/*#__PURE__*/makeIcon('Link','');// eslint-disable-next-line\nexport var BIconLink45deg=/*#__PURE__*/makeIcon('Link45deg','');// eslint-disable-next-line\nexport var BIconLinkedin=/*#__PURE__*/makeIcon('Linkedin','');// eslint-disable-next-line\nexport var BIconList=/*#__PURE__*/makeIcon('List','');// eslint-disable-next-line\nexport var BIconListCheck=/*#__PURE__*/makeIcon('ListCheck','');// eslint-disable-next-line\nexport var BIconListNested=/*#__PURE__*/makeIcon('ListNested','');// eslint-disable-next-line\nexport var BIconListOl=/*#__PURE__*/makeIcon('ListOl','');// eslint-disable-next-line\nexport var BIconListStars=/*#__PURE__*/makeIcon('ListStars','');// eslint-disable-next-line\nexport var BIconListTask=/*#__PURE__*/makeIcon('ListTask','');// eslint-disable-next-line\nexport var BIconListUl=/*#__PURE__*/makeIcon('ListUl','');// eslint-disable-next-line\nexport var BIconLock=/*#__PURE__*/makeIcon('Lock','');// eslint-disable-next-line\nexport var BIconLockFill=/*#__PURE__*/makeIcon('LockFill','');// eslint-disable-next-line\nexport var BIconMailbox=/*#__PURE__*/makeIcon('Mailbox','');// eslint-disable-next-line\nexport var BIconMailbox2=/*#__PURE__*/makeIcon('Mailbox2','');// eslint-disable-next-line\nexport var BIconMap=/*#__PURE__*/makeIcon('Map','');// eslint-disable-next-line\nexport var BIconMapFill=/*#__PURE__*/makeIcon('MapFill','');// eslint-disable-next-line\nexport var BIconMarkdown=/*#__PURE__*/makeIcon('Markdown','');// eslint-disable-next-line\nexport var BIconMarkdownFill=/*#__PURE__*/makeIcon('MarkdownFill','');// eslint-disable-next-line\nexport var BIconMask=/*#__PURE__*/makeIcon('Mask','');// eslint-disable-next-line\nexport var BIconMastodon=/*#__PURE__*/makeIcon('Mastodon','');// eslint-disable-next-line\nexport var BIconMegaphone=/*#__PURE__*/makeIcon('Megaphone','');// eslint-disable-next-line\nexport var BIconMegaphoneFill=/*#__PURE__*/makeIcon('MegaphoneFill','');// eslint-disable-next-line\nexport var BIconMenuApp=/*#__PURE__*/makeIcon('MenuApp','');// eslint-disable-next-line\nexport var BIconMenuAppFill=/*#__PURE__*/makeIcon('MenuAppFill','');// eslint-disable-next-line\nexport var BIconMenuButton=/*#__PURE__*/makeIcon('MenuButton','');// eslint-disable-next-line\nexport var BIconMenuButtonFill=/*#__PURE__*/makeIcon('MenuButtonFill','');// eslint-disable-next-line\nexport var BIconMenuButtonWide=/*#__PURE__*/makeIcon('MenuButtonWide','');// eslint-disable-next-line\nexport var BIconMenuButtonWideFill=/*#__PURE__*/makeIcon('MenuButtonWideFill','');// eslint-disable-next-line\nexport var BIconMenuDown=/*#__PURE__*/makeIcon('MenuDown','');// eslint-disable-next-line\nexport var BIconMenuUp=/*#__PURE__*/makeIcon('MenuUp','');// eslint-disable-next-line\nexport var BIconMessenger=/*#__PURE__*/makeIcon('Messenger','');// eslint-disable-next-line\nexport var BIconMic=/*#__PURE__*/makeIcon('Mic','');// eslint-disable-next-line\nexport var BIconMicFill=/*#__PURE__*/makeIcon('MicFill','');// eslint-disable-next-line\nexport var BIconMicMute=/*#__PURE__*/makeIcon('MicMute','');// eslint-disable-next-line\nexport var BIconMicMuteFill=/*#__PURE__*/makeIcon('MicMuteFill','');// eslint-disable-next-line\nexport var BIconMinecart=/*#__PURE__*/makeIcon('Minecart','');// eslint-disable-next-line\nexport var BIconMinecartLoaded=/*#__PURE__*/makeIcon('MinecartLoaded','');// eslint-disable-next-line\nexport var BIconMoisture=/*#__PURE__*/makeIcon('Moisture','');// eslint-disable-next-line\nexport var BIconMoon=/*#__PURE__*/makeIcon('Moon','');// eslint-disable-next-line\nexport var BIconMoonFill=/*#__PURE__*/makeIcon('MoonFill','');// eslint-disable-next-line\nexport var BIconMoonStars=/*#__PURE__*/makeIcon('MoonStars','');// eslint-disable-next-line\nexport var BIconMoonStarsFill=/*#__PURE__*/makeIcon('MoonStarsFill','');// eslint-disable-next-line\nexport var BIconMouse=/*#__PURE__*/makeIcon('Mouse','');// eslint-disable-next-line\nexport var BIconMouse2=/*#__PURE__*/makeIcon('Mouse2','');// eslint-disable-next-line\nexport var BIconMouse2Fill=/*#__PURE__*/makeIcon('Mouse2Fill','');// eslint-disable-next-line\nexport var BIconMouse3=/*#__PURE__*/makeIcon('Mouse3','');// eslint-disable-next-line\nexport var BIconMouse3Fill=/*#__PURE__*/makeIcon('Mouse3Fill','');// eslint-disable-next-line\nexport var BIconMouseFill=/*#__PURE__*/makeIcon('MouseFill','');// eslint-disable-next-line\nexport var BIconMusicNote=/*#__PURE__*/makeIcon('MusicNote','');// eslint-disable-next-line\nexport var BIconMusicNoteBeamed=/*#__PURE__*/makeIcon('MusicNoteBeamed','');// eslint-disable-next-line\nexport var BIconMusicNoteList=/*#__PURE__*/makeIcon('MusicNoteList','');// eslint-disable-next-line\nexport var BIconMusicPlayer=/*#__PURE__*/makeIcon('MusicPlayer','');// eslint-disable-next-line\nexport var BIconMusicPlayerFill=/*#__PURE__*/makeIcon('MusicPlayerFill','');// eslint-disable-next-line\nexport var BIconNewspaper=/*#__PURE__*/makeIcon('Newspaper','');// eslint-disable-next-line\nexport var BIconNodeMinus=/*#__PURE__*/makeIcon('NodeMinus','');// eslint-disable-next-line\nexport var BIconNodeMinusFill=/*#__PURE__*/makeIcon('NodeMinusFill','');// eslint-disable-next-line\nexport var BIconNodePlus=/*#__PURE__*/makeIcon('NodePlus','');// eslint-disable-next-line\nexport var BIconNodePlusFill=/*#__PURE__*/makeIcon('NodePlusFill','');// eslint-disable-next-line\nexport var BIconNut=/*#__PURE__*/makeIcon('Nut','');// eslint-disable-next-line\nexport var BIconNutFill=/*#__PURE__*/makeIcon('NutFill','');// eslint-disable-next-line\nexport var BIconOctagon=/*#__PURE__*/makeIcon('Octagon','');// eslint-disable-next-line\nexport var BIconOctagonFill=/*#__PURE__*/makeIcon('OctagonFill','');// eslint-disable-next-line\nexport var BIconOctagonHalf=/*#__PURE__*/makeIcon('OctagonHalf','');// eslint-disable-next-line\nexport var BIconOption=/*#__PURE__*/makeIcon('Option','');// eslint-disable-next-line\nexport var BIconOutlet=/*#__PURE__*/makeIcon('Outlet','');// eslint-disable-next-line\nexport var BIconPaintBucket=/*#__PURE__*/makeIcon('PaintBucket','');// eslint-disable-next-line\nexport var BIconPalette=/*#__PURE__*/makeIcon('Palette','');// eslint-disable-next-line\nexport var BIconPalette2=/*#__PURE__*/makeIcon('Palette2','');// eslint-disable-next-line\nexport var BIconPaletteFill=/*#__PURE__*/makeIcon('PaletteFill','');// eslint-disable-next-line\nexport var BIconPaperclip=/*#__PURE__*/makeIcon('Paperclip','');// eslint-disable-next-line\nexport var BIconParagraph=/*#__PURE__*/makeIcon('Paragraph','');// eslint-disable-next-line\nexport var BIconPatchCheck=/*#__PURE__*/makeIcon('PatchCheck','');// eslint-disable-next-line\nexport var BIconPatchCheckFill=/*#__PURE__*/makeIcon('PatchCheckFill','');// eslint-disable-next-line\nexport var BIconPatchExclamation=/*#__PURE__*/makeIcon('PatchExclamation','');// eslint-disable-next-line\nexport var BIconPatchExclamationFill=/*#__PURE__*/makeIcon('PatchExclamationFill','');// eslint-disable-next-line\nexport var BIconPatchMinus=/*#__PURE__*/makeIcon('PatchMinus','');// eslint-disable-next-line\nexport var BIconPatchMinusFill=/*#__PURE__*/makeIcon('PatchMinusFill','');// eslint-disable-next-line\nexport var BIconPatchPlus=/*#__PURE__*/makeIcon('PatchPlus','');// eslint-disable-next-line\nexport var BIconPatchPlusFill=/*#__PURE__*/makeIcon('PatchPlusFill','');// eslint-disable-next-line\nexport var BIconPatchQuestion=/*#__PURE__*/makeIcon('PatchQuestion','');// eslint-disable-next-line\nexport var BIconPatchQuestionFill=/*#__PURE__*/makeIcon('PatchQuestionFill','');// eslint-disable-next-line\nexport var BIconPause=/*#__PURE__*/makeIcon('Pause','');// eslint-disable-next-line\nexport var BIconPauseBtn=/*#__PURE__*/makeIcon('PauseBtn','');// eslint-disable-next-line\nexport var BIconPauseBtnFill=/*#__PURE__*/makeIcon('PauseBtnFill','');// eslint-disable-next-line\nexport var BIconPauseCircle=/*#__PURE__*/makeIcon('PauseCircle','');// eslint-disable-next-line\nexport var BIconPauseCircleFill=/*#__PURE__*/makeIcon('PauseCircleFill','');// eslint-disable-next-line\nexport var BIconPauseFill=/*#__PURE__*/makeIcon('PauseFill','');// eslint-disable-next-line\nexport var BIconPeace=/*#__PURE__*/makeIcon('Peace','');// eslint-disable-next-line\nexport var BIconPeaceFill=/*#__PURE__*/makeIcon('PeaceFill','');// eslint-disable-next-line\nexport var BIconPen=/*#__PURE__*/makeIcon('Pen','');// eslint-disable-next-line\nexport var BIconPenFill=/*#__PURE__*/makeIcon('PenFill','');// eslint-disable-next-line\nexport var BIconPencil=/*#__PURE__*/makeIcon('Pencil','');// eslint-disable-next-line\nexport var BIconPencilFill=/*#__PURE__*/makeIcon('PencilFill','');// eslint-disable-next-line\nexport var BIconPencilSquare=/*#__PURE__*/makeIcon('PencilSquare','');// eslint-disable-next-line\nexport var BIconPentagon=/*#__PURE__*/makeIcon('Pentagon','');// eslint-disable-next-line\nexport var BIconPentagonFill=/*#__PURE__*/makeIcon('PentagonFill','');// eslint-disable-next-line\nexport var BIconPentagonHalf=/*#__PURE__*/makeIcon('PentagonHalf','');// eslint-disable-next-line\nexport var BIconPeople=/*#__PURE__*/makeIcon('People','');// eslint-disable-next-line\nexport var BIconPeopleFill=/*#__PURE__*/makeIcon('PeopleFill','');// eslint-disable-next-line\nexport var BIconPercent=/*#__PURE__*/makeIcon('Percent','');// eslint-disable-next-line\nexport var BIconPerson=/*#__PURE__*/makeIcon('Person','');// eslint-disable-next-line\nexport var BIconPersonBadge=/*#__PURE__*/makeIcon('PersonBadge','');// eslint-disable-next-line\nexport var BIconPersonBadgeFill=/*#__PURE__*/makeIcon('PersonBadgeFill','');// eslint-disable-next-line\nexport var BIconPersonBoundingBox=/*#__PURE__*/makeIcon('PersonBoundingBox','');// eslint-disable-next-line\nexport var BIconPersonCheck=/*#__PURE__*/makeIcon('PersonCheck','');// eslint-disable-next-line\nexport var BIconPersonCheckFill=/*#__PURE__*/makeIcon('PersonCheckFill','');// eslint-disable-next-line\nexport var BIconPersonCircle=/*#__PURE__*/makeIcon('PersonCircle','');// eslint-disable-next-line\nexport var BIconPersonDash=/*#__PURE__*/makeIcon('PersonDash','');// eslint-disable-next-line\nexport var BIconPersonDashFill=/*#__PURE__*/makeIcon('PersonDashFill','');// eslint-disable-next-line\nexport var BIconPersonFill=/*#__PURE__*/makeIcon('PersonFill','');// eslint-disable-next-line\nexport var BIconPersonLinesFill=/*#__PURE__*/makeIcon('PersonLinesFill','');// eslint-disable-next-line\nexport var BIconPersonPlus=/*#__PURE__*/makeIcon('PersonPlus','');// eslint-disable-next-line\nexport var BIconPersonPlusFill=/*#__PURE__*/makeIcon('PersonPlusFill','');// eslint-disable-next-line\nexport var BIconPersonSquare=/*#__PURE__*/makeIcon('PersonSquare','');// eslint-disable-next-line\nexport var BIconPersonX=/*#__PURE__*/makeIcon('PersonX','');// eslint-disable-next-line\nexport var BIconPersonXFill=/*#__PURE__*/makeIcon('PersonXFill','');// eslint-disable-next-line\nexport var BIconPhone=/*#__PURE__*/makeIcon('Phone','');// eslint-disable-next-line\nexport var BIconPhoneFill=/*#__PURE__*/makeIcon('PhoneFill','');// eslint-disable-next-line\nexport var BIconPhoneLandscape=/*#__PURE__*/makeIcon('PhoneLandscape','');// eslint-disable-next-line\nexport var BIconPhoneLandscapeFill=/*#__PURE__*/makeIcon('PhoneLandscapeFill','');// eslint-disable-next-line\nexport var BIconPhoneVibrate=/*#__PURE__*/makeIcon('PhoneVibrate','');// eslint-disable-next-line\nexport var BIconPhoneVibrateFill=/*#__PURE__*/makeIcon('PhoneVibrateFill','');// eslint-disable-next-line\nexport var BIconPieChart=/*#__PURE__*/makeIcon('PieChart','');// eslint-disable-next-line\nexport var BIconPieChartFill=/*#__PURE__*/makeIcon('PieChartFill','');// eslint-disable-next-line\nexport var BIconPiggyBank=/*#__PURE__*/makeIcon('PiggyBank','');// eslint-disable-next-line\nexport var BIconPiggyBankFill=/*#__PURE__*/makeIcon('PiggyBankFill','');// eslint-disable-next-line\nexport var BIconPin=/*#__PURE__*/makeIcon('Pin','');// eslint-disable-next-line\nexport var BIconPinAngle=/*#__PURE__*/makeIcon('PinAngle','');// eslint-disable-next-line\nexport var BIconPinAngleFill=/*#__PURE__*/makeIcon('PinAngleFill','');// eslint-disable-next-line\nexport var BIconPinFill=/*#__PURE__*/makeIcon('PinFill','');// eslint-disable-next-line\nexport var BIconPinMap=/*#__PURE__*/makeIcon('PinMap','');// eslint-disable-next-line\nexport var BIconPinMapFill=/*#__PURE__*/makeIcon('PinMapFill','');// eslint-disable-next-line\nexport var BIconPip=/*#__PURE__*/makeIcon('Pip','');// eslint-disable-next-line\nexport var BIconPipFill=/*#__PURE__*/makeIcon('PipFill','');// eslint-disable-next-line\nexport var BIconPlay=/*#__PURE__*/makeIcon('Play','');// eslint-disable-next-line\nexport var BIconPlayBtn=/*#__PURE__*/makeIcon('PlayBtn','');// eslint-disable-next-line\nexport var BIconPlayBtnFill=/*#__PURE__*/makeIcon('PlayBtnFill','');// eslint-disable-next-line\nexport var BIconPlayCircle=/*#__PURE__*/makeIcon('PlayCircle','');// eslint-disable-next-line\nexport var BIconPlayCircleFill=/*#__PURE__*/makeIcon('PlayCircleFill','');// eslint-disable-next-line\nexport var BIconPlayFill=/*#__PURE__*/makeIcon('PlayFill','');// eslint-disable-next-line\nexport var BIconPlug=/*#__PURE__*/makeIcon('Plug','');// eslint-disable-next-line\nexport var BIconPlugFill=/*#__PURE__*/makeIcon('PlugFill','');// eslint-disable-next-line\nexport var BIconPlus=/*#__PURE__*/makeIcon('Plus','');// eslint-disable-next-line\nexport var BIconPlusCircle=/*#__PURE__*/makeIcon('PlusCircle','');// eslint-disable-next-line\nexport var BIconPlusCircleDotted=/*#__PURE__*/makeIcon('PlusCircleDotted','');// eslint-disable-next-line\nexport var BIconPlusCircleFill=/*#__PURE__*/makeIcon('PlusCircleFill','');// eslint-disable-next-line\nexport var BIconPlusLg=/*#__PURE__*/makeIcon('PlusLg','');// eslint-disable-next-line\nexport var BIconPlusSquare=/*#__PURE__*/makeIcon('PlusSquare','');// eslint-disable-next-line\nexport var BIconPlusSquareDotted=/*#__PURE__*/makeIcon('PlusSquareDotted','');// eslint-disable-next-line\nexport var BIconPlusSquareFill=/*#__PURE__*/makeIcon('PlusSquareFill','');// eslint-disable-next-line\nexport var BIconPower=/*#__PURE__*/makeIcon('Power','');// eslint-disable-next-line\nexport var BIconPrinter=/*#__PURE__*/makeIcon('Printer','');// eslint-disable-next-line\nexport var BIconPrinterFill=/*#__PURE__*/makeIcon('PrinterFill','');// eslint-disable-next-line\nexport var BIconPuzzle=/*#__PURE__*/makeIcon('Puzzle','');// eslint-disable-next-line\nexport var BIconPuzzleFill=/*#__PURE__*/makeIcon('PuzzleFill','');// eslint-disable-next-line\nexport var BIconQuestion=/*#__PURE__*/makeIcon('Question','');// eslint-disable-next-line\nexport var BIconQuestionCircle=/*#__PURE__*/makeIcon('QuestionCircle','');// eslint-disable-next-line\nexport var BIconQuestionCircleFill=/*#__PURE__*/makeIcon('QuestionCircleFill','');// eslint-disable-next-line\nexport var BIconQuestionDiamond=/*#__PURE__*/makeIcon('QuestionDiamond','');// eslint-disable-next-line\nexport var BIconQuestionDiamondFill=/*#__PURE__*/makeIcon('QuestionDiamondFill','');// eslint-disable-next-line\nexport var BIconQuestionLg=/*#__PURE__*/makeIcon('QuestionLg','');// eslint-disable-next-line\nexport var BIconQuestionOctagon=/*#__PURE__*/makeIcon('QuestionOctagon','');// eslint-disable-next-line\nexport var BIconQuestionOctagonFill=/*#__PURE__*/makeIcon('QuestionOctagonFill','');// eslint-disable-next-line\nexport var BIconQuestionSquare=/*#__PURE__*/makeIcon('QuestionSquare','');// eslint-disable-next-line\nexport var BIconQuestionSquareFill=/*#__PURE__*/makeIcon('QuestionSquareFill','');// eslint-disable-next-line\nexport var BIconRainbow=/*#__PURE__*/makeIcon('Rainbow','');// eslint-disable-next-line\nexport var BIconReceipt=/*#__PURE__*/makeIcon('Receipt','');// eslint-disable-next-line\nexport var BIconReceiptCutoff=/*#__PURE__*/makeIcon('ReceiptCutoff','');// eslint-disable-next-line\nexport var BIconReception0=/*#__PURE__*/makeIcon('Reception0','');// eslint-disable-next-line\nexport var BIconReception1=/*#__PURE__*/makeIcon('Reception1','');// eslint-disable-next-line\nexport var BIconReception2=/*#__PURE__*/makeIcon('Reception2','');// eslint-disable-next-line\nexport var BIconReception3=/*#__PURE__*/makeIcon('Reception3','');// eslint-disable-next-line\nexport var BIconReception4=/*#__PURE__*/makeIcon('Reception4','');// eslint-disable-next-line\nexport var BIconRecord=/*#__PURE__*/makeIcon('Record','');// eslint-disable-next-line\nexport var BIconRecord2=/*#__PURE__*/makeIcon('Record2','');// eslint-disable-next-line\nexport var BIconRecord2Fill=/*#__PURE__*/makeIcon('Record2Fill','');// eslint-disable-next-line\nexport var BIconRecordBtn=/*#__PURE__*/makeIcon('RecordBtn','');// eslint-disable-next-line\nexport var BIconRecordBtnFill=/*#__PURE__*/makeIcon('RecordBtnFill','');// eslint-disable-next-line\nexport var BIconRecordCircle=/*#__PURE__*/makeIcon('RecordCircle','');// eslint-disable-next-line\nexport var BIconRecordCircleFill=/*#__PURE__*/makeIcon('RecordCircleFill','');// eslint-disable-next-line\nexport var BIconRecordFill=/*#__PURE__*/makeIcon('RecordFill','');// eslint-disable-next-line\nexport var BIconRecycle=/*#__PURE__*/makeIcon('Recycle','');// eslint-disable-next-line\nexport var BIconReddit=/*#__PURE__*/makeIcon('Reddit','');// eslint-disable-next-line\nexport var BIconReply=/*#__PURE__*/makeIcon('Reply','');// eslint-disable-next-line\nexport var BIconReplyAll=/*#__PURE__*/makeIcon('ReplyAll','');// eslint-disable-next-line\nexport var BIconReplyAllFill=/*#__PURE__*/makeIcon('ReplyAllFill','');// eslint-disable-next-line\nexport var BIconReplyFill=/*#__PURE__*/makeIcon('ReplyFill','');// eslint-disable-next-line\nexport var BIconRss=/*#__PURE__*/makeIcon('Rss','');// eslint-disable-next-line\nexport var BIconRssFill=/*#__PURE__*/makeIcon('RssFill','');// eslint-disable-next-line\nexport var BIconRulers=/*#__PURE__*/makeIcon('Rulers','');// eslint-disable-next-line\nexport var BIconSafe=/*#__PURE__*/makeIcon('Safe','');// eslint-disable-next-line\nexport var BIconSafe2=/*#__PURE__*/makeIcon('Safe2','');// eslint-disable-next-line\nexport var BIconSafe2Fill=/*#__PURE__*/makeIcon('Safe2Fill','');// eslint-disable-next-line\nexport var BIconSafeFill=/*#__PURE__*/makeIcon('SafeFill','');// eslint-disable-next-line\nexport var BIconSave=/*#__PURE__*/makeIcon('Save','');// eslint-disable-next-line\nexport var BIconSave2=/*#__PURE__*/makeIcon('Save2','');// eslint-disable-next-line\nexport var BIconSave2Fill=/*#__PURE__*/makeIcon('Save2Fill','');// eslint-disable-next-line\nexport var BIconSaveFill=/*#__PURE__*/makeIcon('SaveFill','');// eslint-disable-next-line\nexport var BIconScissors=/*#__PURE__*/makeIcon('Scissors','');// eslint-disable-next-line\nexport var BIconScrewdriver=/*#__PURE__*/makeIcon('Screwdriver','');// eslint-disable-next-line\nexport var BIconSdCard=/*#__PURE__*/makeIcon('SdCard','');// eslint-disable-next-line\nexport var BIconSdCardFill=/*#__PURE__*/makeIcon('SdCardFill','');// eslint-disable-next-line\nexport var BIconSearch=/*#__PURE__*/makeIcon('Search','');// eslint-disable-next-line\nexport var BIconSegmentedNav=/*#__PURE__*/makeIcon('SegmentedNav','');// eslint-disable-next-line\nexport var BIconServer=/*#__PURE__*/makeIcon('Server','');// eslint-disable-next-line\nexport var BIconShare=/*#__PURE__*/makeIcon('Share','');// eslint-disable-next-line\nexport var BIconShareFill=/*#__PURE__*/makeIcon('ShareFill','');// eslint-disable-next-line\nexport var BIconShield=/*#__PURE__*/makeIcon('Shield','');// eslint-disable-next-line\nexport var BIconShieldCheck=/*#__PURE__*/makeIcon('ShieldCheck','');// eslint-disable-next-line\nexport var BIconShieldExclamation=/*#__PURE__*/makeIcon('ShieldExclamation','');// eslint-disable-next-line\nexport var BIconShieldFill=/*#__PURE__*/makeIcon('ShieldFill','');// eslint-disable-next-line\nexport var BIconShieldFillCheck=/*#__PURE__*/makeIcon('ShieldFillCheck','');// eslint-disable-next-line\nexport var BIconShieldFillExclamation=/*#__PURE__*/makeIcon('ShieldFillExclamation','');// eslint-disable-next-line\nexport var BIconShieldFillMinus=/*#__PURE__*/makeIcon('ShieldFillMinus','');// eslint-disable-next-line\nexport var BIconShieldFillPlus=/*#__PURE__*/makeIcon('ShieldFillPlus','');// eslint-disable-next-line\nexport var BIconShieldFillX=/*#__PURE__*/makeIcon('ShieldFillX','');// eslint-disable-next-line\nexport var BIconShieldLock=/*#__PURE__*/makeIcon('ShieldLock','');// eslint-disable-next-line\nexport var BIconShieldLockFill=/*#__PURE__*/makeIcon('ShieldLockFill','');// eslint-disable-next-line\nexport var BIconShieldMinus=/*#__PURE__*/makeIcon('ShieldMinus','');// eslint-disable-next-line\nexport var BIconShieldPlus=/*#__PURE__*/makeIcon('ShieldPlus','');// eslint-disable-next-line\nexport var BIconShieldShaded=/*#__PURE__*/makeIcon('ShieldShaded','');// eslint-disable-next-line\nexport var BIconShieldSlash=/*#__PURE__*/makeIcon('ShieldSlash','');// eslint-disable-next-line\nexport var BIconShieldSlashFill=/*#__PURE__*/makeIcon('ShieldSlashFill','');// eslint-disable-next-line\nexport var BIconShieldX=/*#__PURE__*/makeIcon('ShieldX','');// eslint-disable-next-line\nexport var BIconShift=/*#__PURE__*/makeIcon('Shift','');// eslint-disable-next-line\nexport var BIconShiftFill=/*#__PURE__*/makeIcon('ShiftFill','');// eslint-disable-next-line\nexport var BIconShop=/*#__PURE__*/makeIcon('Shop','');// eslint-disable-next-line\nexport var BIconShopWindow=/*#__PURE__*/makeIcon('ShopWindow','');// eslint-disable-next-line\nexport var BIconShuffle=/*#__PURE__*/makeIcon('Shuffle','');// eslint-disable-next-line\nexport var BIconSignpost=/*#__PURE__*/makeIcon('Signpost','');// eslint-disable-next-line\nexport var BIconSignpost2=/*#__PURE__*/makeIcon('Signpost2','');// eslint-disable-next-line\nexport var BIconSignpost2Fill=/*#__PURE__*/makeIcon('Signpost2Fill','');// eslint-disable-next-line\nexport var BIconSignpostFill=/*#__PURE__*/makeIcon('SignpostFill','');// eslint-disable-next-line\nexport var BIconSignpostSplit=/*#__PURE__*/makeIcon('SignpostSplit','');// eslint-disable-next-line\nexport var BIconSignpostSplitFill=/*#__PURE__*/makeIcon('SignpostSplitFill','');// eslint-disable-next-line\nexport var BIconSim=/*#__PURE__*/makeIcon('Sim','');// eslint-disable-next-line\nexport var BIconSimFill=/*#__PURE__*/makeIcon('SimFill','');// eslint-disable-next-line\nexport var BIconSkipBackward=/*#__PURE__*/makeIcon('SkipBackward','');// eslint-disable-next-line\nexport var BIconSkipBackwardBtn=/*#__PURE__*/makeIcon('SkipBackwardBtn','');// eslint-disable-next-line\nexport var BIconSkipBackwardBtnFill=/*#__PURE__*/makeIcon('SkipBackwardBtnFill','');// eslint-disable-next-line\nexport var BIconSkipBackwardCircle=/*#__PURE__*/makeIcon('SkipBackwardCircle','');// eslint-disable-next-line\nexport var BIconSkipBackwardCircleFill=/*#__PURE__*/makeIcon('SkipBackwardCircleFill','');// eslint-disable-next-line\nexport var BIconSkipBackwardFill=/*#__PURE__*/makeIcon('SkipBackwardFill','');// eslint-disable-next-line\nexport var BIconSkipEnd=/*#__PURE__*/makeIcon('SkipEnd','');// eslint-disable-next-line\nexport var BIconSkipEndBtn=/*#__PURE__*/makeIcon('SkipEndBtn','');// eslint-disable-next-line\nexport var BIconSkipEndBtnFill=/*#__PURE__*/makeIcon('SkipEndBtnFill','');// eslint-disable-next-line\nexport var BIconSkipEndCircle=/*#__PURE__*/makeIcon('SkipEndCircle','');// eslint-disable-next-line\nexport var BIconSkipEndCircleFill=/*#__PURE__*/makeIcon('SkipEndCircleFill','');// eslint-disable-next-line\nexport var BIconSkipEndFill=/*#__PURE__*/makeIcon('SkipEndFill','');// eslint-disable-next-line\nexport var BIconSkipForward=/*#__PURE__*/makeIcon('SkipForward','');// eslint-disable-next-line\nexport var BIconSkipForwardBtn=/*#__PURE__*/makeIcon('SkipForwardBtn','');// eslint-disable-next-line\nexport var BIconSkipForwardBtnFill=/*#__PURE__*/makeIcon('SkipForwardBtnFill','');// eslint-disable-next-line\nexport var BIconSkipForwardCircle=/*#__PURE__*/makeIcon('SkipForwardCircle','');// eslint-disable-next-line\nexport var BIconSkipForwardCircleFill=/*#__PURE__*/makeIcon('SkipForwardCircleFill','');// eslint-disable-next-line\nexport var BIconSkipForwardFill=/*#__PURE__*/makeIcon('SkipForwardFill','');// eslint-disable-next-line\nexport var BIconSkipStart=/*#__PURE__*/makeIcon('SkipStart','');// eslint-disable-next-line\nexport var BIconSkipStartBtn=/*#__PURE__*/makeIcon('SkipStartBtn','');// eslint-disable-next-line\nexport var BIconSkipStartBtnFill=/*#__PURE__*/makeIcon('SkipStartBtnFill','');// eslint-disable-next-line\nexport var BIconSkipStartCircle=/*#__PURE__*/makeIcon('SkipStartCircle','');// eslint-disable-next-line\nexport var BIconSkipStartCircleFill=/*#__PURE__*/makeIcon('SkipStartCircleFill','');// eslint-disable-next-line\nexport var BIconSkipStartFill=/*#__PURE__*/makeIcon('SkipStartFill','');// eslint-disable-next-line\nexport var BIconSkype=/*#__PURE__*/makeIcon('Skype','');// eslint-disable-next-line\nexport var BIconSlack=/*#__PURE__*/makeIcon('Slack','');// eslint-disable-next-line\nexport var BIconSlash=/*#__PURE__*/makeIcon('Slash','');// eslint-disable-next-line\nexport var BIconSlashCircle=/*#__PURE__*/makeIcon('SlashCircle','');// eslint-disable-next-line\nexport var BIconSlashCircleFill=/*#__PURE__*/makeIcon('SlashCircleFill','');// eslint-disable-next-line\nexport var BIconSlashLg=/*#__PURE__*/makeIcon('SlashLg','');// eslint-disable-next-line\nexport var BIconSlashSquare=/*#__PURE__*/makeIcon('SlashSquare','');// eslint-disable-next-line\nexport var BIconSlashSquareFill=/*#__PURE__*/makeIcon('SlashSquareFill','');// eslint-disable-next-line\nexport var BIconSliders=/*#__PURE__*/makeIcon('Sliders','');// eslint-disable-next-line\nexport var BIconSmartwatch=/*#__PURE__*/makeIcon('Smartwatch','');// eslint-disable-next-line\nexport var BIconSnow=/*#__PURE__*/makeIcon('Snow','');// eslint-disable-next-line\nexport var BIconSnow2=/*#__PURE__*/makeIcon('Snow2','');// eslint-disable-next-line\nexport var BIconSnow3=/*#__PURE__*/makeIcon('Snow3','');// eslint-disable-next-line\nexport var BIconSortAlphaDown=/*#__PURE__*/makeIcon('SortAlphaDown','');// eslint-disable-next-line\nexport var BIconSortAlphaDownAlt=/*#__PURE__*/makeIcon('SortAlphaDownAlt','');// eslint-disable-next-line\nexport var BIconSortAlphaUp=/*#__PURE__*/makeIcon('SortAlphaUp','');// eslint-disable-next-line\nexport var BIconSortAlphaUpAlt=/*#__PURE__*/makeIcon('SortAlphaUpAlt','');// eslint-disable-next-line\nexport var BIconSortDown=/*#__PURE__*/makeIcon('SortDown','');// eslint-disable-next-line\nexport var BIconSortDownAlt=/*#__PURE__*/makeIcon('SortDownAlt','');// eslint-disable-next-line\nexport var BIconSortNumericDown=/*#__PURE__*/makeIcon('SortNumericDown','');// eslint-disable-next-line\nexport var BIconSortNumericDownAlt=/*#__PURE__*/makeIcon('SortNumericDownAlt','');// eslint-disable-next-line\nexport var BIconSortNumericUp=/*#__PURE__*/makeIcon('SortNumericUp','');// eslint-disable-next-line\nexport var BIconSortNumericUpAlt=/*#__PURE__*/makeIcon('SortNumericUpAlt','');// eslint-disable-next-line\nexport var BIconSortUp=/*#__PURE__*/makeIcon('SortUp','');// eslint-disable-next-line\nexport var BIconSortUpAlt=/*#__PURE__*/makeIcon('SortUpAlt','');// eslint-disable-next-line\nexport var BIconSoundwave=/*#__PURE__*/makeIcon('Soundwave','');// eslint-disable-next-line\nexport var BIconSpeaker=/*#__PURE__*/makeIcon('Speaker','');// eslint-disable-next-line\nexport var BIconSpeakerFill=/*#__PURE__*/makeIcon('SpeakerFill','');// eslint-disable-next-line\nexport var BIconSpeedometer=/*#__PURE__*/makeIcon('Speedometer','');// eslint-disable-next-line\nexport var BIconSpeedometer2=/*#__PURE__*/makeIcon('Speedometer2','');// eslint-disable-next-line\nexport var BIconSpellcheck=/*#__PURE__*/makeIcon('Spellcheck','');// eslint-disable-next-line\nexport var BIconSquare=/*#__PURE__*/makeIcon('Square','');// eslint-disable-next-line\nexport var BIconSquareFill=/*#__PURE__*/makeIcon('SquareFill','');// eslint-disable-next-line\nexport var BIconSquareHalf=/*#__PURE__*/makeIcon('SquareHalf','');// eslint-disable-next-line\nexport var BIconStack=/*#__PURE__*/makeIcon('Stack','');// eslint-disable-next-line\nexport var BIconStar=/*#__PURE__*/makeIcon('Star','');// eslint-disable-next-line\nexport var BIconStarFill=/*#__PURE__*/makeIcon('StarFill','');// eslint-disable-next-line\nexport var BIconStarHalf=/*#__PURE__*/makeIcon('StarHalf','');// eslint-disable-next-line\nexport var BIconStars=/*#__PURE__*/makeIcon('Stars','');// eslint-disable-next-line\nexport var BIconStickies=/*#__PURE__*/makeIcon('Stickies','');// eslint-disable-next-line\nexport var BIconStickiesFill=/*#__PURE__*/makeIcon('StickiesFill','');// eslint-disable-next-line\nexport var BIconSticky=/*#__PURE__*/makeIcon('Sticky','');// eslint-disable-next-line\nexport var BIconStickyFill=/*#__PURE__*/makeIcon('StickyFill','');// eslint-disable-next-line\nexport var BIconStop=/*#__PURE__*/makeIcon('Stop','');// eslint-disable-next-line\nexport var BIconStopBtn=/*#__PURE__*/makeIcon('StopBtn','');// eslint-disable-next-line\nexport var BIconStopBtnFill=/*#__PURE__*/makeIcon('StopBtnFill','');// eslint-disable-next-line\nexport var BIconStopCircle=/*#__PURE__*/makeIcon('StopCircle','');// eslint-disable-next-line\nexport var BIconStopCircleFill=/*#__PURE__*/makeIcon('StopCircleFill','');// eslint-disable-next-line\nexport var BIconStopFill=/*#__PURE__*/makeIcon('StopFill','');// eslint-disable-next-line\nexport var BIconStoplights=/*#__PURE__*/makeIcon('Stoplights','');// eslint-disable-next-line\nexport var BIconStoplightsFill=/*#__PURE__*/makeIcon('StoplightsFill','');// eslint-disable-next-line\nexport var BIconStopwatch=/*#__PURE__*/makeIcon('Stopwatch','');// eslint-disable-next-line\nexport var BIconStopwatchFill=/*#__PURE__*/makeIcon('StopwatchFill','');// eslint-disable-next-line\nexport var BIconSubtract=/*#__PURE__*/makeIcon('Subtract','');// eslint-disable-next-line\nexport var BIconSuitClub=/*#__PURE__*/makeIcon('SuitClub','');// eslint-disable-next-line\nexport var BIconSuitClubFill=/*#__PURE__*/makeIcon('SuitClubFill','');// eslint-disable-next-line\nexport var BIconSuitDiamond=/*#__PURE__*/makeIcon('SuitDiamond','');// eslint-disable-next-line\nexport var BIconSuitDiamondFill=/*#__PURE__*/makeIcon('SuitDiamondFill','');// eslint-disable-next-line\nexport var BIconSuitHeart=/*#__PURE__*/makeIcon('SuitHeart','');// eslint-disable-next-line\nexport var BIconSuitHeartFill=/*#__PURE__*/makeIcon('SuitHeartFill','');// eslint-disable-next-line\nexport var BIconSuitSpade=/*#__PURE__*/makeIcon('SuitSpade','');// eslint-disable-next-line\nexport var BIconSuitSpadeFill=/*#__PURE__*/makeIcon('SuitSpadeFill','');// eslint-disable-next-line\nexport var BIconSun=/*#__PURE__*/makeIcon('Sun','');// eslint-disable-next-line\nexport var BIconSunFill=/*#__PURE__*/makeIcon('SunFill','');// eslint-disable-next-line\nexport var BIconSunglasses=/*#__PURE__*/makeIcon('Sunglasses','');// eslint-disable-next-line\nexport var BIconSunrise=/*#__PURE__*/makeIcon('Sunrise','');// eslint-disable-next-line\nexport var BIconSunriseFill=/*#__PURE__*/makeIcon('SunriseFill','');// eslint-disable-next-line\nexport var BIconSunset=/*#__PURE__*/makeIcon('Sunset','');// eslint-disable-next-line\nexport var BIconSunsetFill=/*#__PURE__*/makeIcon('SunsetFill','');// eslint-disable-next-line\nexport var BIconSymmetryHorizontal=/*#__PURE__*/makeIcon('SymmetryHorizontal','');// eslint-disable-next-line\nexport var BIconSymmetryVertical=/*#__PURE__*/makeIcon('SymmetryVertical','');// eslint-disable-next-line\nexport var BIconTable=/*#__PURE__*/makeIcon('Table','');// eslint-disable-next-line\nexport var BIconTablet=/*#__PURE__*/makeIcon('Tablet','');// eslint-disable-next-line\nexport var BIconTabletFill=/*#__PURE__*/makeIcon('TabletFill','');// eslint-disable-next-line\nexport var BIconTabletLandscape=/*#__PURE__*/makeIcon('TabletLandscape','');// eslint-disable-next-line\nexport var BIconTabletLandscapeFill=/*#__PURE__*/makeIcon('TabletLandscapeFill','');// eslint-disable-next-line\nexport var BIconTag=/*#__PURE__*/makeIcon('Tag','');// eslint-disable-next-line\nexport var BIconTagFill=/*#__PURE__*/makeIcon('TagFill','');// eslint-disable-next-line\nexport var BIconTags=/*#__PURE__*/makeIcon('Tags','');// eslint-disable-next-line\nexport var BIconTagsFill=/*#__PURE__*/makeIcon('TagsFill','');// eslint-disable-next-line\nexport var BIconTelegram=/*#__PURE__*/makeIcon('Telegram','');// eslint-disable-next-line\nexport var BIconTelephone=/*#__PURE__*/makeIcon('Telephone','');// eslint-disable-next-line\nexport var BIconTelephoneFill=/*#__PURE__*/makeIcon('TelephoneFill','');// eslint-disable-next-line\nexport var BIconTelephoneForward=/*#__PURE__*/makeIcon('TelephoneForward','');// eslint-disable-next-line\nexport var BIconTelephoneForwardFill=/*#__PURE__*/makeIcon('TelephoneForwardFill','');// eslint-disable-next-line\nexport var BIconTelephoneInbound=/*#__PURE__*/makeIcon('TelephoneInbound','');// eslint-disable-next-line\nexport var BIconTelephoneInboundFill=/*#__PURE__*/makeIcon('TelephoneInboundFill','');// eslint-disable-next-line\nexport var BIconTelephoneMinus=/*#__PURE__*/makeIcon('TelephoneMinus','');// eslint-disable-next-line\nexport var BIconTelephoneMinusFill=/*#__PURE__*/makeIcon('TelephoneMinusFill','');// eslint-disable-next-line\nexport var BIconTelephoneOutbound=/*#__PURE__*/makeIcon('TelephoneOutbound','');// eslint-disable-next-line\nexport var BIconTelephoneOutboundFill=/*#__PURE__*/makeIcon('TelephoneOutboundFill','');// eslint-disable-next-line\nexport var BIconTelephonePlus=/*#__PURE__*/makeIcon('TelephonePlus','');// eslint-disable-next-line\nexport var BIconTelephonePlusFill=/*#__PURE__*/makeIcon('TelephonePlusFill','');// eslint-disable-next-line\nexport var BIconTelephoneX=/*#__PURE__*/makeIcon('TelephoneX','');// eslint-disable-next-line\nexport var BIconTelephoneXFill=/*#__PURE__*/makeIcon('TelephoneXFill','');// eslint-disable-next-line\nexport var BIconTerminal=/*#__PURE__*/makeIcon('Terminal','');// eslint-disable-next-line\nexport var BIconTerminalFill=/*#__PURE__*/makeIcon('TerminalFill','');// eslint-disable-next-line\nexport var BIconTextCenter=/*#__PURE__*/makeIcon('TextCenter','');// eslint-disable-next-line\nexport var BIconTextIndentLeft=/*#__PURE__*/makeIcon('TextIndentLeft','');// eslint-disable-next-line\nexport var BIconTextIndentRight=/*#__PURE__*/makeIcon('TextIndentRight','');// eslint-disable-next-line\nexport var BIconTextLeft=/*#__PURE__*/makeIcon('TextLeft','');// eslint-disable-next-line\nexport var BIconTextParagraph=/*#__PURE__*/makeIcon('TextParagraph','');// eslint-disable-next-line\nexport var BIconTextRight=/*#__PURE__*/makeIcon('TextRight','');// eslint-disable-next-line\nexport var BIconTextarea=/*#__PURE__*/makeIcon('Textarea','');// eslint-disable-next-line\nexport var BIconTextareaResize=/*#__PURE__*/makeIcon('TextareaResize','');// eslint-disable-next-line\nexport var BIconTextareaT=/*#__PURE__*/makeIcon('TextareaT','');// eslint-disable-next-line\nexport var BIconThermometer=/*#__PURE__*/makeIcon('Thermometer','');// eslint-disable-next-line\nexport var BIconThermometerHalf=/*#__PURE__*/makeIcon('ThermometerHalf','');// eslint-disable-next-line\nexport var BIconThermometerHigh=/*#__PURE__*/makeIcon('ThermometerHigh','');// eslint-disable-next-line\nexport var BIconThermometerLow=/*#__PURE__*/makeIcon('ThermometerLow','');// eslint-disable-next-line\nexport var BIconThermometerSnow=/*#__PURE__*/makeIcon('ThermometerSnow','');// eslint-disable-next-line\nexport var BIconThermometerSun=/*#__PURE__*/makeIcon('ThermometerSun','');// eslint-disable-next-line\nexport var BIconThreeDots=/*#__PURE__*/makeIcon('ThreeDots','');// eslint-disable-next-line\nexport var BIconThreeDotsVertical=/*#__PURE__*/makeIcon('ThreeDotsVertical','');// eslint-disable-next-line\nexport var BIconToggle2Off=/*#__PURE__*/makeIcon('Toggle2Off','');// eslint-disable-next-line\nexport var BIconToggle2On=/*#__PURE__*/makeIcon('Toggle2On','');// eslint-disable-next-line\nexport var BIconToggleOff=/*#__PURE__*/makeIcon('ToggleOff','');// eslint-disable-next-line\nexport var BIconToggleOn=/*#__PURE__*/makeIcon('ToggleOn','');// eslint-disable-next-line\nexport var BIconToggles=/*#__PURE__*/makeIcon('Toggles','');// eslint-disable-next-line\nexport var BIconToggles2=/*#__PURE__*/makeIcon('Toggles2','');// eslint-disable-next-line\nexport var BIconTools=/*#__PURE__*/makeIcon('Tools','');// eslint-disable-next-line\nexport var BIconTornado=/*#__PURE__*/makeIcon('Tornado','');// eslint-disable-next-line\nexport var BIconTranslate=/*#__PURE__*/makeIcon('Translate','');// eslint-disable-next-line\nexport var BIconTrash=/*#__PURE__*/makeIcon('Trash','');// eslint-disable-next-line\nexport var BIconTrash2=/*#__PURE__*/makeIcon('Trash2','');// eslint-disable-next-line\nexport var BIconTrash2Fill=/*#__PURE__*/makeIcon('Trash2Fill','');// eslint-disable-next-line\nexport var BIconTrashFill=/*#__PURE__*/makeIcon('TrashFill','');// eslint-disable-next-line\nexport var BIconTree=/*#__PURE__*/makeIcon('Tree','');// eslint-disable-next-line\nexport var BIconTreeFill=/*#__PURE__*/makeIcon('TreeFill','');// eslint-disable-next-line\nexport var BIconTriangle=/*#__PURE__*/makeIcon('Triangle','');// eslint-disable-next-line\nexport var BIconTriangleFill=/*#__PURE__*/makeIcon('TriangleFill','');// eslint-disable-next-line\nexport var BIconTriangleHalf=/*#__PURE__*/makeIcon('TriangleHalf','');// eslint-disable-next-line\nexport var BIconTrophy=/*#__PURE__*/makeIcon('Trophy','');// eslint-disable-next-line\nexport var BIconTrophyFill=/*#__PURE__*/makeIcon('TrophyFill','');// eslint-disable-next-line\nexport var BIconTropicalStorm=/*#__PURE__*/makeIcon('TropicalStorm','');// eslint-disable-next-line\nexport var BIconTruck=/*#__PURE__*/makeIcon('Truck','');// eslint-disable-next-line\nexport var BIconTruckFlatbed=/*#__PURE__*/makeIcon('TruckFlatbed','');// eslint-disable-next-line\nexport var BIconTsunami=/*#__PURE__*/makeIcon('Tsunami','');// eslint-disable-next-line\nexport var BIconTv=/*#__PURE__*/makeIcon('Tv','');// eslint-disable-next-line\nexport var BIconTvFill=/*#__PURE__*/makeIcon('TvFill','');// eslint-disable-next-line\nexport var BIconTwitch=/*#__PURE__*/makeIcon('Twitch','');// eslint-disable-next-line\nexport var BIconTwitter=/*#__PURE__*/makeIcon('Twitter','');// eslint-disable-next-line\nexport var BIconType=/*#__PURE__*/makeIcon('Type','');// eslint-disable-next-line\nexport var BIconTypeBold=/*#__PURE__*/makeIcon('TypeBold','');// eslint-disable-next-line\nexport var BIconTypeH1=/*#__PURE__*/makeIcon('TypeH1','');// eslint-disable-next-line\nexport var BIconTypeH2=/*#__PURE__*/makeIcon('TypeH2','');// eslint-disable-next-line\nexport var BIconTypeH3=/*#__PURE__*/makeIcon('TypeH3','');// eslint-disable-next-line\nexport var BIconTypeItalic=/*#__PURE__*/makeIcon('TypeItalic','');// eslint-disable-next-line\nexport var BIconTypeStrikethrough=/*#__PURE__*/makeIcon('TypeStrikethrough','');// eslint-disable-next-line\nexport var BIconTypeUnderline=/*#__PURE__*/makeIcon('TypeUnderline','');// eslint-disable-next-line\nexport var BIconUiChecks=/*#__PURE__*/makeIcon('UiChecks','');// eslint-disable-next-line\nexport var BIconUiChecksGrid=/*#__PURE__*/makeIcon('UiChecksGrid','');// eslint-disable-next-line\nexport var BIconUiRadios=/*#__PURE__*/makeIcon('UiRadios','');// eslint-disable-next-line\nexport var BIconUiRadiosGrid=/*#__PURE__*/makeIcon('UiRadiosGrid','');// eslint-disable-next-line\nexport var BIconUmbrella=/*#__PURE__*/makeIcon('Umbrella','');// eslint-disable-next-line\nexport var BIconUmbrellaFill=/*#__PURE__*/makeIcon('UmbrellaFill','');// eslint-disable-next-line\nexport var BIconUnion=/*#__PURE__*/makeIcon('Union','');// eslint-disable-next-line\nexport var BIconUnlock=/*#__PURE__*/makeIcon('Unlock','');// eslint-disable-next-line\nexport var BIconUnlockFill=/*#__PURE__*/makeIcon('UnlockFill','');// eslint-disable-next-line\nexport var BIconUpc=/*#__PURE__*/makeIcon('Upc','');// eslint-disable-next-line\nexport var BIconUpcScan=/*#__PURE__*/makeIcon('UpcScan','');// eslint-disable-next-line\nexport var BIconUpload=/*#__PURE__*/makeIcon('Upload','');// eslint-disable-next-line\nexport var BIconVectorPen=/*#__PURE__*/makeIcon('VectorPen','');// eslint-disable-next-line\nexport var BIconViewList=/*#__PURE__*/makeIcon('ViewList','');// eslint-disable-next-line\nexport var BIconViewStacked=/*#__PURE__*/makeIcon('ViewStacked','');// eslint-disable-next-line\nexport var BIconVinyl=/*#__PURE__*/makeIcon('Vinyl','');// eslint-disable-next-line\nexport var BIconVinylFill=/*#__PURE__*/makeIcon('VinylFill','');// eslint-disable-next-line\nexport var BIconVoicemail=/*#__PURE__*/makeIcon('Voicemail','');// eslint-disable-next-line\nexport var BIconVolumeDown=/*#__PURE__*/makeIcon('VolumeDown','');// eslint-disable-next-line\nexport var BIconVolumeDownFill=/*#__PURE__*/makeIcon('VolumeDownFill','');// eslint-disable-next-line\nexport var BIconVolumeMute=/*#__PURE__*/makeIcon('VolumeMute','');// eslint-disable-next-line\nexport var BIconVolumeMuteFill=/*#__PURE__*/makeIcon('VolumeMuteFill','');// eslint-disable-next-line\nexport var BIconVolumeOff=/*#__PURE__*/makeIcon('VolumeOff','');// eslint-disable-next-line\nexport var BIconVolumeOffFill=/*#__PURE__*/makeIcon('VolumeOffFill','');// eslint-disable-next-line\nexport var BIconVolumeUp=/*#__PURE__*/makeIcon('VolumeUp','');// eslint-disable-next-line\nexport var BIconVolumeUpFill=/*#__PURE__*/makeIcon('VolumeUpFill','');// eslint-disable-next-line\nexport var BIconVr=/*#__PURE__*/makeIcon('Vr','');// eslint-disable-next-line\nexport var BIconWallet=/*#__PURE__*/makeIcon('Wallet','');// eslint-disable-next-line\nexport var BIconWallet2=/*#__PURE__*/makeIcon('Wallet2','');// eslint-disable-next-line\nexport var BIconWalletFill=/*#__PURE__*/makeIcon('WalletFill','');// eslint-disable-next-line\nexport var BIconWatch=/*#__PURE__*/makeIcon('Watch','');// eslint-disable-next-line\nexport var BIconWater=/*#__PURE__*/makeIcon('Water','');// eslint-disable-next-line\nexport var BIconWhatsapp=/*#__PURE__*/makeIcon('Whatsapp','');// eslint-disable-next-line\nexport var BIconWifi=/*#__PURE__*/makeIcon('Wifi','');// eslint-disable-next-line\nexport var BIconWifi1=/*#__PURE__*/makeIcon('Wifi1','');// eslint-disable-next-line\nexport var BIconWifi2=/*#__PURE__*/makeIcon('Wifi2','');// eslint-disable-next-line\nexport var BIconWifiOff=/*#__PURE__*/makeIcon('WifiOff','');// eslint-disable-next-line\nexport var BIconWind=/*#__PURE__*/makeIcon('Wind','');// eslint-disable-next-line\nexport var BIconWindow=/*#__PURE__*/makeIcon('Window','');// eslint-disable-next-line\nexport var BIconWindowDock=/*#__PURE__*/makeIcon('WindowDock','');// eslint-disable-next-line\nexport var BIconWindowSidebar=/*#__PURE__*/makeIcon('WindowSidebar','');// eslint-disable-next-line\nexport var BIconWrench=/*#__PURE__*/makeIcon('Wrench','');// eslint-disable-next-line\nexport var BIconX=/*#__PURE__*/makeIcon('X','');// eslint-disable-next-line\nexport var BIconXCircle=/*#__PURE__*/makeIcon('XCircle','');// eslint-disable-next-line\nexport var BIconXCircleFill=/*#__PURE__*/makeIcon('XCircleFill','');// eslint-disable-next-line\nexport var BIconXDiamond=/*#__PURE__*/makeIcon('XDiamond','');// eslint-disable-next-line\nexport var BIconXDiamondFill=/*#__PURE__*/makeIcon('XDiamondFill','');// eslint-disable-next-line\nexport var BIconXLg=/*#__PURE__*/makeIcon('XLg','');// eslint-disable-next-line\nexport var BIconXOctagon=/*#__PURE__*/makeIcon('XOctagon','');// eslint-disable-next-line\nexport var BIconXOctagonFill=/*#__PURE__*/makeIcon('XOctagonFill','');// eslint-disable-next-line\nexport var BIconXSquare=/*#__PURE__*/makeIcon('XSquare','');// eslint-disable-next-line\nexport var BIconXSquareFill=/*#__PURE__*/makeIcon('XSquareFill','');// eslint-disable-next-line\nexport var BIconYoutube=/*#__PURE__*/makeIcon('Youtube','');// eslint-disable-next-line\nexport var BIconZoomIn=/*#__PURE__*/makeIcon('ZoomIn','');// eslint-disable-next-line\nexport var BIconZoomOut=/*#__PURE__*/makeIcon('ZoomOut','');// --- END AUTO-GENERATED FILE ---","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, extend, mergeData } from '../vue';\nimport { NAME_ICON } from '../constants/components';\nimport { PROP_TYPE_STRING } from '../constants/props';\nimport { RX_ICON_PREFIX } from '../constants/regex';\nimport { omit, sortKeys } from '../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../utils/props';\nimport { pascalCase, trim } from '../utils/string';\nimport { BIconBlank } from './icons';\nimport { props as BVIconBaseProps } from './helpers/icon-base'; // --- Helper methods ---\n\nvar findIconComponent = function findIconComponent(ctx, iconName) {\n if (!ctx) {\n return Vue.component(iconName);\n }\n\n var components = (ctx.$options || {}).components;\n var iconComponent = components && components[iconName];\n return iconComponent || findIconComponent(ctx.$parent, iconName);\n}; // --- Props ---\n\n\nvar iconProps = omit(BVIconBaseProps, ['content']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, iconProps), {}, {\n icon: makeProp(PROP_TYPE_STRING)\n})), NAME_ICON); // --- Main component ---\n// Helper BIcon component\n// Requires the requested icon component to be installed\n// @vue/component\n\nexport var BIcon = /*#__PURE__*/extend({\n name: NAME_ICON,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var data = _ref.data,\n props = _ref.props,\n parent = _ref.parent;\n var icon = pascalCase(trim(props.icon || '')).replace(RX_ICON_PREFIX, ''); // If parent context exists, we check to see if the icon has been registered\n // either locally in the parent component, or globally at the `$root` level\n // If not registered, we render a blank icon\n\n return h(icon ? findIconComponent(parent, \"BIcon\".concat(icon)) || BIconBlank : BIconBlank, mergeData(data, {\n props: pluckProps(iconProps, props)\n }));\n }\n});","export var CODE_BACKSPACE = 8;\nexport var CODE_BREAK = 19;\nexport var CODE_DELETE = 46;\nexport var CODE_DOWN = 40;\nexport var CODE_END = 35;\nexport var CODE_ENTER = 13;\nexport var CODE_ESC = 27;\nexport var CODE_HOME = 36;\nexport var CODE_LEFT = 37;\nexport var CODE_PAGEDOWN = 34;\nexport var CODE_PAGEUP = 33;\nexport var CODE_RIGHT = 39;\nexport var CODE_SPACE = 32;\nexport var CODE_UP = 38;","import { hasOwnProperty, keys } from './object';\nimport { isArray, isDate, isObject } from './inspect'; // Assumes both a and b are arrays!\n// Handles when arrays are \"sparse\" (array.every(...) doesn't handle sparse)\n\nvar compareArrays = function compareArrays(a, b) {\n if (a.length !== b.length) {\n return false;\n }\n\n var equal = true;\n\n for (var i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n\n return equal;\n};\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n * Returns boolean true or false\n */\n\n\nexport var looseEqual = function looseEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n var aValidType = isDate(a);\n var bValidType = isDate(b);\n\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n\n aValidType = isArray(a);\n bValidType = isArray(b);\n\n if (aValidType || bValidType) {\n return aValidType && bValidType ? compareArrays(a, b) : false;\n }\n\n aValidType = isObject(a);\n bValidType = isObject(b);\n\n if (aValidType || bValidType) {\n /* istanbul ignore if: this if will probably never be called */\n if (!aValidType || !bValidType) {\n return false;\n }\n\n var aKeysCount = keys(a).length;\n var bKeysCount = keys(b).length;\n\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n\n for (var key in a) {\n var aHasKey = hasOwnProperty(a, key);\n var bHasKey = hasOwnProperty(b, key);\n\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n\n return String(a) === String(b);\n};","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend } from '../vue';\nimport { cloneDeep } from './clone-deep';\nimport { looseEqual } from './loose-equal';\nimport { hasOwnProperty, keys } from './object';\n\nvar isEmpty = function isEmpty(value) {\n return !value || keys(value).length === 0;\n};\n\nexport var makePropWatcher = function makePropWatcher(propName) {\n return {\n handler: function handler(newValue, oldValue) {\n if (looseEqual(newValue, oldValue)) {\n return;\n }\n\n if (isEmpty(newValue) || isEmpty(oldValue)) {\n this[propName] = cloneDeep(newValue);\n return;\n }\n\n for (var key in oldValue) {\n if (!hasOwnProperty(newValue, key)) {\n this.$delete(this.$data[propName], key);\n }\n }\n\n for (var _key in newValue) {\n this.$set(this.$data[propName], _key, newValue[_key]);\n }\n }\n };\n};\nexport var makePropCacheMixin = function makePropCacheMixin(propName, proxyPropName) {\n return extend({\n data: function data() {\n return _defineProperty({}, proxyPropName, cloneDeep(this[propName]));\n },\n watch: _defineProperty({}, propName, makePropWatcher(proxyPropName))\n });\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { makePropCacheMixin } from '../utils/cache';\nimport { extend, isVue3 } from '../vue';\nvar attrsMixinVue2 = makePropCacheMixin('$attrs', 'bvAttrs');\nvar attrsMixinVue3 = extend({\n computed: {\n bvAttrs: function bvAttrs() {\n var bvAttrs = _objectSpread({}, this.$attrs);\n\n Object.keys(bvAttrs).forEach(function (key) {\n if (bvAttrs[key] === undefined) {\n delete bvAttrs[key];\n }\n });\n return bvAttrs;\n }\n }\n});\nexport var attrsMixin = isVue3 ? attrsMixinVue3 : attrsMixinVue2;","export var getEventRoot = function getEventRoot(vm) {\n return vm.$root.$options.bvEventRoot || vm.$root;\n};","import { extend } from '../vue';\nimport { arrayIncludes } from '../utils/array';\nimport { keys } from '../utils/object';\nimport { getEventRoot } from '../utils/get-event-root'; // --- Constants ---\n\nvar PROP = '$_rootListeners'; // --- Mixin ---\n// @vue/component\n\nexport var listenOnRootMixin = extend({\n computed: {\n bvEventRoot: function bvEventRoot() {\n return getEventRoot(this);\n }\n },\n created: function created() {\n // Define non-reactive property\n // Object of arrays, keyed by event name,\n // where value is an array of callbacks\n this[PROP] = {};\n },\n beforeDestroy: function beforeDestroy() {\n var _this = this;\n\n // Unregister all registered listeners\n keys(this[PROP] || {}).forEach(function (event) {\n _this[PROP][event].forEach(function (callback) {\n _this.listenOffRoot(event, callback);\n });\n });\n this[PROP] = null;\n },\n methods: {\n registerRootListener: function registerRootListener(event, callback) {\n if (this[PROP]) {\n this[PROP][event] = this[PROP][event] || [];\n\n if (!arrayIncludes(this[PROP][event], callback)) {\n this[PROP][event].push(callback);\n }\n }\n },\n unregisterRootListener: function unregisterRootListener(event, callback) {\n if (this[PROP] && this[PROP][event]) {\n this[PROP][event] = this[PROP][event].filter(function (cb) {\n return cb !== callback;\n });\n }\n },\n\n /**\n * Safely register event listeners on the root Vue node\n * While Vue automatically removes listeners for individual components,\n * when a component registers a listener on `$root` and is destroyed,\n * this orphans a callback because the node is gone, but the `$root`\n * does not clear the callback\n *\n * When registering a `$root` listener, it also registers the listener\n * to be removed in the component's `beforeDestroy()` hook\n *\n * @param {string} event\n * @param {function} callback\n */\n listenOnRoot: function listenOnRoot(event, callback) {\n if (this.bvEventRoot) {\n this.bvEventRoot.$on(event, callback);\n this.registerRootListener(event, callback);\n }\n },\n\n /**\n * Safely register a `$once()` event listener on the root Vue node\n * While Vue automatically removes listeners for individual components,\n * when a component registers a listener on `$root` and is destroyed,\n * this orphans a callback because the node is gone, but the `$root`\n * does not clear the callback\n *\n * When registering a `$root` listener, it also registers the listener\n * to be removed in the component's `beforeDestroy()` hook\n *\n * @param {string} event\n * @param {function} callback\n */\n listenOnRootOnce: function listenOnRootOnce(event, callback) {\n var _this2 = this;\n\n if (this.bvEventRoot) {\n var _callback = function _callback() {\n _this2.unregisterRootListener(_callback); // eslint-disable-next-line node/no-callback-literal\n\n\n callback.apply(void 0, arguments);\n };\n\n this.bvEventRoot.$once(event, _callback);\n this.registerRootListener(event, _callback);\n }\n },\n\n /**\n * Safely unregister event listeners from the root Vue node\n *\n * @param {string} event\n * @param {function} callback\n */\n listenOffRoot: function listenOffRoot(event, callback) {\n this.unregisterRootListener(event, callback);\n\n if (this.bvEventRoot) {\n this.bvEventRoot.$off(event, callback);\n }\n },\n\n /**\n * Convenience method for calling `vm.$emit()` on `$root`\n *\n * @param {string} event\n * @param {*} args\n */\n emitOnRoot: function emitOnRoot(event) {\n if (this.bvEventRoot) {\n var _this$bvEventRoot;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n (_this$bvEventRoot = this.bvEventRoot).$emit.apply(_this$bvEventRoot, [event].concat(args));\n }\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { makePropCacheMixin } from '../utils/cache';\nimport { extend, isVue3 } from '../vue';\nvar listenersMixinVue2 = makePropCacheMixin('$listeners', 'bvListeners');\nvar listenersMixinVue3 = extend({\n data: function data() {\n return {\n bvListeners: {}\n };\n },\n created: function created() {\n this.bvListeners = _objectSpread({}, this.$listeners);\n },\n beforeUpdate: function beforeUpdate() {\n this.bvListeners = _objectSpread({}, this.$listeners);\n }\n});\nexport var listenersMixin = isVue3 ? listenersMixinVue3 : listenersMixinVue2;","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend } from '../../vue';\nimport { NAME_LINK } from '../../constants/components';\nimport { EVENT_NAME_CLICK } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { concat } from '../../utils/array';\nimport { attemptBlur, attemptFocus, isTag } from '../../utils/dom';\nimport { getRootEventName, stopEvent } from '../../utils/events';\nimport { isBoolean, isEvent, isFunction, isUndefined } from '../../utils/inspect';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { computeHref, computeRel, computeTag, isRouterLink as _isRouterLink } from '../../utils/router';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Constants ---\n\nvar ROOT_EVENT_NAME_CLICKED = getRootEventName(NAME_LINK, 'clicked'); // --- Props ---\n// `` specific props\n\nexport var routerLinkProps = {\n activeClass: makeProp(PROP_TYPE_STRING),\n append: makeProp(PROP_TYPE_BOOLEAN, false),\n event: makeProp(PROP_TYPE_ARRAY_STRING),\n exact: makeProp(PROP_TYPE_BOOLEAN, false),\n exactActiveClass: makeProp(PROP_TYPE_STRING),\n exactPath: makeProp(PROP_TYPE_BOOLEAN, false),\n exactPathActiveClass: makeProp(PROP_TYPE_STRING),\n replace: makeProp(PROP_TYPE_BOOLEAN, false),\n routerTag: makeProp(PROP_TYPE_STRING),\n to: makeProp(PROP_TYPE_OBJECT_STRING)\n}; // `` specific props\n\nexport var nuxtLinkProps = {\n noPrefetch: makeProp(PROP_TYPE_BOOLEAN, false),\n // Must be `null` to fall back to the value defined in the\n // `nuxt.config.js` configuration file for `router.prefetchLinks`\n // We convert `null` to `undefined`, so that Nuxt.js will use the\n // compiled default\n // Vue treats `undefined` as default of `false` for Boolean props,\n // so we must set it as `null` here to be a true tri-state prop\n prefetch: makeProp(PROP_TYPE_BOOLEAN, null)\n}; // All `` props\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, nuxtLinkProps), routerLinkProps), {}, {\n active: makeProp(PROP_TYPE_BOOLEAN, false),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n href: makeProp(PROP_TYPE_STRING),\n // Must be `null` if no value provided\n rel: makeProp(PROP_TYPE_STRING, null),\n // To support 3rd party router links based on `` (i.e. `g-link` for Gridsome)\n // Default is to auto choose between `` and ``\n // Gridsome doesn't provide a mechanism to auto detect and has caveats\n // such as not supporting FQDN URLs or hash only URLs\n routerComponentName: makeProp(PROP_TYPE_STRING),\n target: makeProp(PROP_TYPE_STRING, '_self')\n})), NAME_LINK); // --- Main component ---\n// @vue/component\n\nexport var BLink = /*#__PURE__*/extend({\n name: NAME_LINK,\n // Mixin order is important!\n mixins: [attrsMixin, listenersMixin, listenOnRootMixin, normalizeSlotMixin],\n inheritAttrs: false,\n props: props,\n computed: {\n computedTag: function computedTag() {\n // We don't pass `this` as the first arg as we need reactivity of the props\n var to = this.to,\n disabled = this.disabled,\n routerComponentName = this.routerComponentName;\n return computeTag({\n to: to,\n disabled: disabled,\n routerComponentName: routerComponentName\n }, this);\n },\n isRouterLink: function isRouterLink() {\n return _isRouterLink(this.computedTag);\n },\n computedRel: function computedRel() {\n // We don't pass `this` as the first arg as we need reactivity of the props\n var target = this.target,\n rel = this.rel;\n return computeRel({\n target: target,\n rel: rel\n });\n },\n computedHref: function computedHref() {\n // We don't pass `this` as the first arg as we need reactivity of the props\n var to = this.to,\n href = this.href;\n return computeHref({\n to: to,\n href: href\n }, this.computedTag);\n },\n computedProps: function computedProps() {\n var event = this.event,\n prefetch = this.prefetch,\n routerTag = this.routerTag;\n return this.isRouterLink ? _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, pluckProps(omit(_objectSpread(_objectSpread({}, routerLinkProps), this.computedTag === 'nuxt-link' ? nuxtLinkProps : {}), ['event', 'prefetch', 'routerTag']), this)), event ? {\n event: event\n } : {}), isBoolean(prefetch) ? {\n prefetch: prefetch\n } : {}), routerTag ? {\n tag: routerTag\n } : {}) : {};\n },\n computedAttrs: function computedAttrs() {\n var bvAttrs = this.bvAttrs,\n href = this.computedHref,\n rel = this.computedRel,\n disabled = this.disabled,\n target = this.target,\n routerTag = this.routerTag,\n isRouterLink = this.isRouterLink;\n return _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, bvAttrs), href ? {\n href: href\n } : {}), isRouterLink && routerTag && !isTag(routerTag, 'a') ? {} : {\n rel: rel,\n target: target\n }), {}, {\n tabindex: disabled ? '-1' : isUndefined(bvAttrs.tabindex) ? null : bvAttrs.tabindex,\n 'aria-disabled': disabled ? 'true' : null\n });\n },\n computedListeners: function computedListeners() {\n return _objectSpread(_objectSpread({}, this.bvListeners), {}, {\n // We want to overwrite any click handler since our callback\n // will invoke the user supplied handler(s) if `!this.disabled`\n click: this.onClick\n });\n }\n },\n methods: {\n onClick: function onClick(event) {\n var _arguments = arguments;\n var eventIsEvent = isEvent(event);\n var isRouterLink = this.isRouterLink;\n var suppliedHandler = this.bvListeners.click;\n\n if (eventIsEvent && this.disabled) {\n // Stop event from bubbling up\n // Kill the event loop attached to this specific `EventTarget`\n // Needed to prevent `vue-router` for doing its thing\n stopEvent(event, {\n immediatePropagation: true\n });\n } else {\n // Router links do not emit instance `click` events, so we\n // add in an `$emit('click', event)` on its Vue instance\n //\n // seems not to be required for Vue3 compat build\n\n /* istanbul ignore next: difficult to test, but we know it works */\n if (isRouterLink) {\n var _event$currentTarget$;\n\n (_event$currentTarget$ = event.currentTarget.__vue__) === null || _event$currentTarget$ === void 0 ? void 0 : _event$currentTarget$.$emit(EVENT_NAME_CLICK, event);\n } // Call the suppliedHandler(s), if any provided\n\n\n concat(suppliedHandler).filter(function (h) {\n return isFunction(h);\n }).forEach(function (handler) {\n handler.apply(void 0, _toConsumableArray(_arguments));\n }); // Emit the global `$root` click event\n\n this.emitOnRoot(ROOT_EVENT_NAME_CLICKED, event); // TODO: Remove deprecated 'clicked::link' event with next major release\n\n this.emitOnRoot('clicked::link', event);\n } // Stop scroll-to-top behavior or navigation on\n // regular links when href is just '#'\n\n\n if (eventIsEvent && !isRouterLink && this.computedHref === '#') {\n stopEvent(event, {\n propagation: false\n });\n }\n },\n focus: function focus() {\n attemptFocus(this.$el);\n },\n blur: function blur() {\n attemptBlur(this.$el);\n }\n },\n render: function render(h) {\n var active = this.active,\n disabled = this.disabled;\n return h(this.computedTag, _defineProperty({\n class: {\n active: active,\n disabled: disabled\n },\n attrs: this.computedAttrs,\n props: this.computedProps\n }, this.isRouterLink ? 'nativeOn' : 'on', this.computedListeners), this.normalizeSlot());\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend, mergeData } from '../../vue';\nimport { NAME_BUTTON } from '../../constants/components';\nimport { CODE_ENTER, CODE_SPACE } from '../../constants/key-codes';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { concat } from '../../utils/array';\nimport { addClass, isTag, removeClass } from '../../utils/dom';\nimport { stopEvent } from '../../utils/events';\nimport { isBoolean, isEvent, isFunction } from '../../utils/inspect';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { isLink as isLinkStrict } from '../../utils/router';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Props ---\n\nvar linkProps = omit(BLinkProps, ['event', 'routerTag']);\ndelete linkProps.href.default;\ndelete linkProps.to.default;\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, linkProps), {}, {\n block: makeProp(PROP_TYPE_BOOLEAN, false),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n pill: makeProp(PROP_TYPE_BOOLEAN, false),\n // Tri-state: `true`, `false` or `null`\n // => On, off, not a toggle\n pressed: makeProp(PROP_TYPE_BOOLEAN, null),\n size: makeProp(PROP_TYPE_STRING),\n squared: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'button'),\n type: makeProp(PROP_TYPE_STRING, 'button'),\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\n})), NAME_BUTTON); // --- Helper methods ---\n// Focus handler for toggle buttons\n// Needs class of 'focus' when focused\n\nvar handleFocus = function handleFocus(event) {\n if (event.type === 'focusin') {\n addClass(event.target, 'focus');\n } else if (event.type === 'focusout') {\n removeClass(event.target, 'focus');\n }\n}; // Is the requested button a link?\n// If tag prop is set to `a`, we use a to get proper disabled handling\n\n\nvar isLink = function isLink(props) {\n return isLinkStrict(props) || isTag(props.tag, 'a');\n}; // Is the button to be a toggle button?\n\n\nvar isToggle = function isToggle(props) {\n return isBoolean(props.pressed);\n}; // Is the button \"really\" a button?\n\n\nvar isButton = function isButton(props) {\n return !(isLink(props) || props.tag && !isTag(props.tag, 'button'));\n}; // Is the requested tag not a button or link?\n\n\nvar isNonStandardTag = function isNonStandardTag(props) {\n return !isLink(props) && !isButton(props);\n}; // Compute required classes (non static classes)\n\n\nvar computeClass = function computeClass(props) {\n var _ref;\n\n return [\"btn-\".concat(props.variant || 'secondary'), (_ref = {}, _defineProperty(_ref, \"btn-\".concat(props.size), props.size), _defineProperty(_ref, 'btn-block', props.block), _defineProperty(_ref, 'rounded-pill', props.pill), _defineProperty(_ref, 'rounded-0', props.squared && !props.pill), _defineProperty(_ref, \"disabled\", props.disabled), _defineProperty(_ref, \"active\", props.pressed), _ref)];\n}; // Compute the link props to pass to b-link (if required)\n\n\nvar computeLinkProps = function computeLinkProps(props) {\n return isLink(props) ? pluckProps(linkProps, props) : {};\n}; // Compute the attributes for a button\n\n\nvar computeAttrs = function computeAttrs(props, data) {\n var button = isButton(props);\n var link = isLink(props);\n var toggle = isToggle(props);\n var nonStandardTag = isNonStandardTag(props);\n var hashLink = link && props.href === '#';\n var role = data.attrs && data.attrs.role ? data.attrs.role : null;\n var tabindex = data.attrs ? data.attrs.tabindex : null;\n\n if (nonStandardTag || hashLink) {\n tabindex = '0';\n }\n\n return {\n // Type only used for \"real\" buttons\n type: button && !link ? props.type : null,\n // Disabled only set on \"real\" buttons\n disabled: button ? props.disabled : null,\n // We add a role of button when the tag is not a link or button for ARIA\n // Don't bork any role provided in `data.attrs` when `isLink` or `isButton`\n // Except when link has `href` of `#`\n role: nonStandardTag || hashLink ? 'button' : role,\n // We set the `aria-disabled` state for non-standard tags\n 'aria-disabled': nonStandardTag ? String(props.disabled) : null,\n // For toggles, we need to set the pressed state for ARIA\n 'aria-pressed': toggle ? String(props.pressed) : null,\n // `autocomplete=\"off\"` is needed in toggle mode to prevent some browsers\n // from remembering the previous setting when using the back button\n autocomplete: toggle ? 'off' : null,\n // `tabindex` is used when the component is not a button\n // Links are tabbable, but don't allow disabled, while non buttons or links\n // are not tabbable, so we mimic that functionality by disabling tabbing\n // when disabled, and adding a `tabindex=\"0\"` to non buttons or non links\n tabindex: props.disabled && !button ? '-1' : tabindex\n };\n}; // --- Main component ---\n// @vue/component\n\n\nexport var BButton = /*#__PURE__*/extend({\n name: NAME_BUTTON,\n functional: true,\n props: props,\n render: function render(h, _ref2) {\n var props = _ref2.props,\n data = _ref2.data,\n listeners = _ref2.listeners,\n children = _ref2.children;\n var toggle = isToggle(props);\n var link = isLink(props);\n var nonStandardTag = isNonStandardTag(props);\n var hashLink = link && props.href === '#';\n var on = {\n keydown: function keydown(event) {\n // When the link is a `href=\"#\"` or a non-standard tag (has `role=\"button\"`),\n // we add a keydown handlers for CODE_SPACE/CODE_ENTER\n\n /* istanbul ignore next */\n if (props.disabled || !(nonStandardTag || hashLink)) {\n return;\n }\n\n var keyCode = event.keyCode; // Add CODE_SPACE handler for `href=\"#\"` and CODE_ENTER handler for non-standard tags\n\n if (keyCode === CODE_SPACE || keyCode === CODE_ENTER && nonStandardTag) {\n var target = event.currentTarget || event.target;\n stopEvent(event, {\n propagation: false\n });\n target.click();\n }\n },\n click: function click(event) {\n /* istanbul ignore if: blink/button disabled should handle this */\n if (props.disabled && isEvent(event)) {\n stopEvent(event);\n } else if (toggle && listeners && listeners['update:pressed']) {\n // Send `.sync` updates to any \"pressed\" prop (if `.sync` listeners)\n // `concat()` will normalize the value to an array without\n // double wrapping an array value in an array\n concat(listeners['update:pressed']).forEach(function (fn) {\n if (isFunction(fn)) {\n fn(!props.pressed);\n }\n });\n }\n }\n };\n\n if (toggle) {\n on.focusin = handleFocus;\n on.focusout = handleFocus;\n }\n\n var componentData = {\n staticClass: 'btn',\n class: computeClass(props),\n props: computeLinkProps(props),\n attrs: computeAttrs(props, data),\n on: on\n };\n return h(link ? BLink : props.tag, mergeData(_objectSpread(_objectSpread({}, data), {}, {\n props: undefined\n }), componentData), children);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend } from '../../vue';\nimport { NAME_AVATAR } from '../../constants/components';\nimport { EVENT_NAME_CLICK, EVENT_NAME_IMG_ERROR } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_BADGE } from '../../constants/slots';\nimport { isNumber, isNumeric, isString } from '../../utils/inspect';\nimport { toFloat } from '../../utils/number';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { isLink } from '../../utils/router';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BIcon } from '../../icons/icon';\nimport { BIconPersonFill } from '../../icons/icons';\nimport { BButton } from '../button/button';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Constants ---\n\nvar CLASS_NAME = 'b-avatar';\nvar SIZES = ['sm', null, 'lg'];\nvar FONT_SIZE_SCALE = 0.4;\nvar BADGE_FONT_SIZE_SCALE = FONT_SIZE_SCALE * 0.7; // --- Helper methods ---\n\nexport var computeSize = function computeSize(value) {\n // Parse to number when value is a float-like string\n value = isString(value) && isNumeric(value) ? toFloat(value, 0) : value; // Convert all numbers to pixel values\n\n return isNumber(value) ? \"\".concat(value, \"px\") : value || null;\n}; // --- Props ---\n\nvar linkProps = omit(BLinkProps, ['active', 'event', 'routerTag']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, linkProps), {}, {\n alt: makeProp(PROP_TYPE_STRING, 'avatar'),\n ariaLabel: makeProp(PROP_TYPE_STRING),\n badge: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n badgeLeft: makeProp(PROP_TYPE_BOOLEAN, false),\n badgeOffset: makeProp(PROP_TYPE_STRING),\n badgeTop: makeProp(PROP_TYPE_BOOLEAN, false),\n badgeVariant: makeProp(PROP_TYPE_STRING, 'primary'),\n button: makeProp(PROP_TYPE_BOOLEAN, false),\n buttonType: makeProp(PROP_TYPE_STRING, 'button'),\n icon: makeProp(PROP_TYPE_STRING),\n rounded: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n size: makeProp(PROP_TYPE_NUMBER_STRING),\n square: makeProp(PROP_TYPE_BOOLEAN, false),\n src: makeProp(PROP_TYPE_STRING),\n text: makeProp(PROP_TYPE_STRING),\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\n})), NAME_AVATAR); // --- Main component ---\n// @vue/component\n\nexport var BAvatar = /*#__PURE__*/extend({\n name: NAME_AVATAR,\n mixins: [normalizeSlotMixin],\n inject: {\n getBvAvatarGroup: {\n default: function _default() {\n return function () {\n return null;\n };\n }\n }\n },\n props: props,\n data: function data() {\n return {\n localSrc: this.src || null\n };\n },\n computed: {\n bvAvatarGroup: function bvAvatarGroup() {\n return this.getBvAvatarGroup();\n },\n computedSize: function computedSize() {\n // Always use the avatar group size\n var bvAvatarGroup = this.bvAvatarGroup;\n return computeSize(bvAvatarGroup ? bvAvatarGroup.size : this.size);\n },\n computedVariant: function computedVariant() {\n var bvAvatarGroup = this.bvAvatarGroup;\n return bvAvatarGroup && bvAvatarGroup.variant ? bvAvatarGroup.variant : this.variant;\n },\n computedRounded: function computedRounded() {\n var bvAvatarGroup = this.bvAvatarGroup;\n var square = bvAvatarGroup && bvAvatarGroup.square ? true : this.square;\n var rounded = bvAvatarGroup && bvAvatarGroup.rounded ? bvAvatarGroup.rounded : this.rounded;\n return square ? '0' : rounded === '' ? true : rounded || 'circle';\n },\n fontStyle: function fontStyle() {\n var size = this.computedSize;\n var fontSize = SIZES.indexOf(size) === -1 ? \"calc(\".concat(size, \" * \").concat(FONT_SIZE_SCALE, \")\") : null;\n return fontSize ? {\n fontSize: fontSize\n } : {};\n },\n marginStyle: function marginStyle() {\n var size = this.computedSize,\n bvAvatarGroup = this.bvAvatarGroup;\n var overlapScale = bvAvatarGroup ? bvAvatarGroup.overlapScale : 0;\n var value = size && overlapScale ? \"calc(\".concat(size, \" * -\").concat(overlapScale, \")\") : null;\n return value ? {\n marginLeft: value,\n marginRight: value\n } : {};\n },\n badgeStyle: function badgeStyle() {\n var size = this.computedSize,\n badgeTop = this.badgeTop,\n badgeLeft = this.badgeLeft,\n badgeOffset = this.badgeOffset;\n var offset = badgeOffset || '0px';\n return {\n fontSize: SIZES.indexOf(size) === -1 ? \"calc(\".concat(size, \" * \").concat(BADGE_FONT_SIZE_SCALE, \" )\") : null,\n top: badgeTop ? offset : null,\n bottom: badgeTop ? null : offset,\n left: badgeLeft ? offset : null,\n right: badgeLeft ? null : offset\n };\n }\n },\n watch: {\n src: function src(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.localSrc = newValue || null;\n }\n }\n },\n methods: {\n onImgError: function onImgError(event) {\n this.localSrc = null;\n this.$emit(EVENT_NAME_IMG_ERROR, event);\n },\n onClick: function onClick(event) {\n this.$emit(EVENT_NAME_CLICK, event);\n }\n },\n render: function render(h) {\n var _class2;\n\n var variant = this.computedVariant,\n disabled = this.disabled,\n rounded = this.computedRounded,\n icon = this.icon,\n src = this.localSrc,\n text = this.text,\n fontStyle = this.fontStyle,\n marginStyle = this.marginStyle,\n size = this.computedSize,\n button = this.button,\n type = this.buttonType,\n badge = this.badge,\n badgeVariant = this.badgeVariant,\n badgeStyle = this.badgeStyle;\n var link = !button && isLink(this);\n var tag = button ? BButton : link ? BLink : 'span';\n var alt = this.alt;\n var ariaLabel = this.ariaLabel || null;\n var $content = null;\n\n if (this.hasNormalizedSlot()) {\n // Default slot overrides props\n $content = h('span', {\n staticClass: 'b-avatar-custom'\n }, [this.normalizeSlot()]);\n } else if (src) {\n $content = h('img', {\n style: variant ? {} : {\n width: '100%',\n height: '100%'\n },\n attrs: {\n src: src,\n alt: alt\n },\n on: {\n error: this.onImgError\n }\n });\n $content = h('span', {\n staticClass: 'b-avatar-img'\n }, [$content]);\n } else if (icon) {\n $content = h(BIcon, {\n props: {\n icon: icon\n },\n attrs: {\n 'aria-hidden': 'true',\n alt: alt\n }\n });\n } else if (text) {\n $content = h('span', {\n staticClass: 'b-avatar-text',\n style: fontStyle\n }, [h('span', text)]);\n } else {\n // Fallback default avatar content\n $content = h(BIconPersonFill, {\n attrs: {\n 'aria-hidden': 'true',\n alt: alt\n }\n });\n }\n\n var $badge = h();\n var hasBadgeSlot = this.hasNormalizedSlot(SLOT_NAME_BADGE);\n\n if (badge || badge === '' || hasBadgeSlot) {\n var badgeText = badge === true ? '' : badge;\n $badge = h('span', {\n staticClass: 'b-avatar-badge',\n class: _defineProperty({}, \"badge-\".concat(badgeVariant), badgeVariant),\n style: badgeStyle\n }, [hasBadgeSlot ? this.normalizeSlot(SLOT_NAME_BADGE) : badgeText]);\n }\n\n var componentData = {\n staticClass: CLASS_NAME,\n class: (_class2 = {}, _defineProperty(_class2, \"\".concat(CLASS_NAME, \"-\").concat(size), size && SIZES.indexOf(size) !== -1), _defineProperty(_class2, \"badge-\".concat(variant), !button && variant), _defineProperty(_class2, \"rounded\", rounded === true), _defineProperty(_class2, \"rounded-\".concat(rounded), rounded && rounded !== true), _defineProperty(_class2, \"disabled\", disabled), _class2),\n style: _objectSpread(_objectSpread({}, marginStyle), {}, {\n width: size,\n height: size\n }),\n attrs: {\n 'aria-label': ariaLabel || null\n },\n props: button ? {\n variant: variant,\n disabled: disabled,\n type: type\n } : link ? pluckProps(linkProps, this) : {},\n on: button || link ? {\n click: this.onClick\n } : {}\n };\n return h(tag, componentData, [$content, $badge]);\n }\n});","import { NAME_AVATAR_GROUP } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { mathMax, mathMin } from '../../utils/math';\nimport { toFloat } from '../../utils/number';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { extend } from '../../vue';\nimport { computeSize } from './avatar'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n overlap: makeProp(PROP_TYPE_NUMBER_STRING, 0.3),\n // Child avatars will prefer this prop (if set) over their own\n rounded: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n // Child avatars will always use this over their own size\n size: makeProp(PROP_TYPE_STRING),\n // Child avatars will prefer this prop (if set) over their own\n square: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n // Child avatars will prefer this variant over their own\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_AVATAR_GROUP); // --- Main component ---\n// @vue/component\n\nexport var BAvatarGroup = /*#__PURE__*/extend({\n name: NAME_AVATAR_GROUP,\n mixins: [normalizeSlotMixin],\n provide: function provide() {\n var _this = this;\n\n return {\n getBvAvatarGroup: function getBvAvatarGroup() {\n return _this;\n }\n };\n },\n props: props,\n computed: {\n computedSize: function computedSize() {\n return computeSize(this.size);\n },\n overlapScale: function overlapScale() {\n return mathMin(mathMax(toFloat(this.overlap, 0), 0), 1) / 2;\n },\n paddingStyle: function paddingStyle() {\n var value = this.computedSize;\n value = value ? \"calc(\".concat(value, \" * \").concat(this.overlapScale, \")\") : null;\n return value ? {\n paddingLeft: value,\n paddingRight: value\n } : {};\n }\n },\n render: function render(h) {\n var $inner = h('div', {\n staticClass: 'b-avatar-group-inner',\n style: this.paddingStyle\n }, this.normalizeSlot());\n return h(this.tag, {\n staticClass: 'b-avatar-group',\n attrs: {\n role: 'group'\n }\n }, [$inner]);\n }\n});","import { BAvatar } from './avatar';\nimport { BAvatarGroup } from './avatar-group';\nimport { pluginFactory } from '../../utils/plugins';\nvar AvatarPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BAvatar: BAvatar,\n BAvatarGroup: BAvatarGroup\n }\n});\nexport { AvatarPlugin, BAvatar, BAvatarGroup };","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend, mergeData } from '../../vue';\nimport { NAME_BADGE } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { isLink } from '../../utils/router';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Props ---\n\nvar linkProps = omit(BLinkProps, ['event', 'routerTag']);\ndelete linkProps.href.default;\ndelete linkProps.to.default;\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, linkProps), {}, {\n pill: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'span'),\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\n})), NAME_BADGE); // --- Main component ---\n// @vue/component\n\nexport var BBadge = /*#__PURE__*/extend({\n name: NAME_BADGE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var active = props.active,\n disabled = props.disabled;\n var link = isLink(props);\n var tag = link ? BLink : props.tag;\n var variant = props.variant || 'secondary';\n return h(tag, mergeData(data, {\n staticClass: 'badge',\n class: [\"badge-\".concat(variant), {\n 'badge-pill': props.pill,\n active: active,\n disabled: disabled\n }],\n props: link ? pluckProps(linkProps, props) : {}\n }), children);\n }\n});","import { BBadge } from './badge';\nimport { pluginFactory } from '../../utils/plugins';\nvar BadgePlugin = /*#__PURE__*/pluginFactory({\n components: {\n BBadge: BBadge\n }\n});\nexport { BadgePlugin, BBadge };","import { RX_HTML_TAGS } from '../constants/regex'; // Removes anything that looks like an HTML tag from the supplied string\n\nexport var stripTags = function stripTags() {\n var text = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return String(text).replace(RX_HTML_TAGS, '');\n}; // Generate a `domProps` object for either `innerHTML`, `textContent` or an empty object\n\nexport var htmlOrText = function htmlOrText(innerHTML, textContent) {\n return innerHTML ? {\n innerHTML: innerHTML\n } : textContent ? {\n textContent: textContent\n } : {};\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend, mergeData } from '../../vue';\nimport { NAME_BREADCRUMB_LINK } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { htmlOrText } from '../../utils/html';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, omit(BLinkProps, ['event', 'routerTag'])), {}, {\n ariaCurrent: makeProp(PROP_TYPE_STRING, 'location'),\n html: makeProp(PROP_TYPE_STRING),\n text: makeProp(PROP_TYPE_STRING)\n})), NAME_BREADCRUMB_LINK); // --- Main component ---\n// @vue/component\n\nexport var BBreadcrumbLink = /*#__PURE__*/extend({\n name: NAME_BREADCRUMB_LINK,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var suppliedProps = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var active = suppliedProps.active;\n var tag = active ? 'span' : BLink;\n var componentData = {\n attrs: {\n 'aria-current': active ? suppliedProps.ariaCurrent : null\n },\n props: pluckProps(props, suppliedProps)\n };\n\n if (!children) {\n componentData.domProps = htmlOrText(suppliedProps.html, suppliedProps.text);\n }\n\n return h(tag, mergeData(data, componentData), children);\n }\n});","import { extend, mergeData } from '../../vue';\nimport { NAME_BREADCRUMB_ITEM } from '../../constants/components';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { BBreadcrumbLink, props as BBreadcrumbLinkProps } from './breadcrumb-link'; // --- Props ---\n\nexport var props = makePropsConfigurable(BBreadcrumbLinkProps, NAME_BREADCRUMB_ITEM); // --- Main component ---\n// @vue/component\n\nexport var BBreadcrumbItem = /*#__PURE__*/extend({\n name: NAME_BREADCRUMB_ITEM,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h('li', mergeData(data, {\n staticClass: 'breadcrumb-item',\n class: {\n active: props.active\n }\n }), [h(BBreadcrumbLink, {\n props: props\n }, children)]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend, mergeData } from '../../vue';\nimport { NAME_BREADCRUMB } from '../../constants/components';\nimport { PROP_TYPE_ARRAY } from '../../constants/props';\nimport { isArray, isObject } from '../../utils/inspect';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { BBreadcrumbItem } from './breadcrumb-item'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n items: makeProp(PROP_TYPE_ARRAY)\n}, NAME_BREADCRUMB); // --- Main component ---\n// @vue/component\n\nexport var BBreadcrumb = /*#__PURE__*/extend({\n name: NAME_BREADCRUMB,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var items = props.items; // Build child nodes from items, if given\n\n var childNodes = children;\n\n if (isArray(items)) {\n var activeDefined = false;\n childNodes = items.map(function (item, idx) {\n if (!isObject(item)) {\n item = {\n text: toString(item)\n };\n } // Copy the value here so we can normalize it\n\n\n var _item = item,\n active = _item.active;\n\n if (active) {\n activeDefined = true;\n } // Auto-detect active by position in list\n\n\n if (!active && !activeDefined) {\n active = idx + 1 === items.length;\n }\n\n return h(BBreadcrumbItem, {\n props: _objectSpread(_objectSpread({}, item), {}, {\n active: active\n })\n });\n });\n }\n\n return h('ol', mergeData(data, {\n staticClass: 'breadcrumb'\n }), childNodes);\n }\n});","import { BBreadcrumb } from './breadcrumb';\nimport { BBreadcrumbItem } from './breadcrumb-item';\nimport { BBreadcrumbLink } from './breadcrumb-link';\nimport { pluginFactory } from '../../utils/plugins';\nvar BreadcrumbPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BBreadcrumb: BBreadcrumb,\n BBreadcrumbItem: BBreadcrumbItem,\n BBreadcrumbLink: BBreadcrumbLink\n }\n});\nexport { BreadcrumbPlugin, BBreadcrumb, BBreadcrumbItem, BBreadcrumbLink };","import { BButton } from './button';\nimport { BButtonClose } from './button-close';\nimport { pluginFactory } from '../../utils/plugins';\nvar ButtonPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BButton: BButton,\n BBtn: BButton,\n BButtonClose: BButtonClose,\n BBtnClose: BButtonClose\n }\n});\nexport { ButtonPlugin, BButton, BButtonClose };","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend, mergeData } from '../../vue';\nimport { NAME_BUTTON_GROUP } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { pick, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { props as buttonProps } from '../button/button'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, pick(buttonProps, ['size'])), {}, {\n ariaRole: makeProp(PROP_TYPE_STRING, 'group'),\n size: makeProp(PROP_TYPE_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n vertical: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_BUTTON_GROUP); // --- Main component ---\n// @vue/component\n\nexport var BButtonGroup = /*#__PURE__*/extend({\n name: NAME_BUTTON_GROUP,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.tag, mergeData(data, {\n class: _defineProperty({\n 'btn-group': !props.vertical,\n 'btn-group-vertical': props.vertical\n }, \"btn-group-\".concat(props.size), props.size),\n attrs: {\n role: props.ariaRole\n }\n }), children);\n }\n});","import { BButtonGroup } from './button-group';\nimport { pluginFactory } from '../../utils/plugins';\nvar ButtonGroupPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BButtonGroup: BButtonGroup,\n BBtnGroup: BButtonGroup\n }\n});\nexport { ButtonGroupPlugin, BButtonGroup };","import { extend } from '../../vue';\nimport { NAME_BUTTON_TOOLBAR } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { CODE_DOWN, CODE_LEFT, CODE_RIGHT, CODE_UP } from '../../constants/key-codes';\nimport { attemptFocus, contains, isVisible, selectAll } from '../../utils/dom';\nimport { stopEvent } from '../../utils/events';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Constants ---\n\nvar ITEM_SELECTOR = ['.btn:not(.disabled):not([disabled]):not(.dropdown-item)', '.form-control:not(.disabled):not([disabled])', 'select:not(.disabled):not([disabled])', 'input[type=\"checkbox\"]:not(.disabled)', 'input[type=\"radio\"]:not(.disabled)'].join(','); // --- Props ---\n\nexport var props = makePropsConfigurable({\n justify: makeProp(PROP_TYPE_BOOLEAN, false),\n keyNav: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_BUTTON_TOOLBAR); // --- Main component ---\n// @vue/component\n\nexport var BButtonToolbar = /*#__PURE__*/extend({\n name: NAME_BUTTON_TOOLBAR,\n mixins: [normalizeSlotMixin],\n props: props,\n mounted: function mounted() {\n // Pre-set the tabindexes if the markup does not include\n // `tabindex=\"-1\"` on the toolbar items\n if (this.keyNav) {\n this.getItems();\n }\n },\n methods: {\n getItems: function getItems() {\n var items = selectAll(ITEM_SELECTOR, this.$el); // Ensure `tabindex=\"-1\"` is set on every item\n\n items.forEach(function (item) {\n item.tabIndex = -1;\n });\n return items.filter(function (el) {\n return isVisible(el);\n });\n },\n focusFirst: function focusFirst() {\n var items = this.getItems();\n attemptFocus(items[0]);\n },\n focusPrev: function focusPrev(event) {\n var items = this.getItems();\n var index = items.indexOf(event.target);\n\n if (index > -1) {\n items = items.slice(0, index).reverse();\n attemptFocus(items[0]);\n }\n },\n focusNext: function focusNext(event) {\n var items = this.getItems();\n var index = items.indexOf(event.target);\n\n if (index > -1) {\n items = items.slice(index + 1);\n attemptFocus(items[0]);\n }\n },\n focusLast: function focusLast() {\n var items = this.getItems().reverse();\n attemptFocus(items[0]);\n },\n onFocusin: function onFocusin(event) {\n var $el = this.$el;\n\n if (event.target === $el && !contains($el, event.relatedTarget)) {\n stopEvent(event);\n this.focusFirst(event);\n }\n },\n onKeydown: function onKeydown(event) {\n var keyCode = event.keyCode,\n shiftKey = event.shiftKey;\n\n if (keyCode === CODE_UP || keyCode === CODE_LEFT) {\n stopEvent(event);\n shiftKey ? this.focusFirst(event) : this.focusPrev(event);\n } else if (keyCode === CODE_DOWN || keyCode === CODE_RIGHT) {\n stopEvent(event);\n shiftKey ? this.focusLast(event) : this.focusNext(event);\n }\n }\n },\n render: function render(h) {\n var keyNav = this.keyNav;\n return h('div', {\n staticClass: 'btn-toolbar',\n class: {\n 'justify-content-between': this.justify\n },\n attrs: {\n role: 'toolbar',\n tabindex: keyNav ? '0' : null\n },\n on: keyNav ? {\n focusin: this.onFocusin,\n keydown: this.onKeydown\n } : {}\n }, [this.normalizeSlot()]);\n }\n});","import { BButtonToolbar } from './button-toolbar';\nimport { pluginFactory } from '../../utils/plugins';\nvar ButtonToolbarPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BButtonToolbar: BButtonToolbar,\n BBtnToolbar: BButtonToolbar\n }\n});\nexport { ButtonToolbarPlugin, BButtonToolbar };","export var CALENDAR_GREGORY = 'gregory';\nexport var CALENDAR_LONG = 'long';\nexport var CALENDAR_NARROW = 'narrow';\nexport var CALENDAR_SHORT = 'short';\nexport var DATE_FORMAT_2_DIGIT = '2-digit';\nexport var DATE_FORMAT_NUMERIC = 'numeric';","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n// Date utility functions\nimport { CALENDAR_GREGORY } from '../constants/date';\nimport { RX_DATE, RX_DATE_SPLIT } from '../constants/regex';\nimport { concat } from './array';\nimport { identity } from './identity';\nimport { isDate, isString } from './inspect';\nimport { toInteger } from './number'; // --- Date utility methods ---\n// Create or clone a date (`new Date(...)` shortcut)\n\nexport var createDate = function createDate() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _construct(Date, args);\n}; // Parse a date sting, or Date object, into a Date object (with no time information)\n\nexport var parseYMD = function parseYMD(date) {\n if (isString(date) && RX_DATE.test(date.trim())) {\n var _date$split$map = date.split(RX_DATE_SPLIT).map(function (v) {\n return toInteger(v, 1);\n }),\n _date$split$map2 = _slicedToArray(_date$split$map, 3),\n year = _date$split$map2[0],\n month = _date$split$map2[1],\n day = _date$split$map2[2];\n\n return createDate(year, month - 1, day);\n } else if (isDate(date)) {\n return createDate(date.getFullYear(), date.getMonth(), date.getDate());\n }\n\n return null;\n}; // Format a date object as `YYYY-MM-DD` format\n\nexport var formatYMD = function formatYMD(date) {\n date = parseYMD(date);\n\n if (!date) {\n return null;\n }\n\n var year = date.getFullYear();\n var month = \"0\".concat(date.getMonth() + 1).slice(-2);\n var day = \"0\".concat(date.getDate()).slice(-2);\n return \"\".concat(year, \"-\").concat(month, \"-\").concat(day);\n}; // Given a locale (or locales), resolve the browser available locale\n\nexport var resolveLocale = function resolveLocale(locales)\n/* istanbul ignore next */\n{\n var calendar = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : CALENDAR_GREGORY;\n locales = concat(locales).filter(identity);\n var fmt = new Intl.DateTimeFormat(locales, {\n calendar: calendar\n });\n return fmt.resolvedOptions().locale;\n}; // Create a `Intl.DateTimeFormat` formatter function\n\nexport var createDateFormatter = function createDateFormatter(locale, options)\n/* istanbul ignore next */\n{\n var dtf = new Intl.DateTimeFormat(locale, options);\n return dtf.format;\n}; // Determine if two dates are the same date (ignoring time portion)\n\nexport var datesEqual = function datesEqual(date1, date2) {\n // Returns true of the date portion of two date objects are equal\n // We don't compare the time portion\n return formatYMD(date1) === formatYMD(date2);\n}; // --- Date \"math\" utility methods (for BCalendar component mainly) ---\n\nexport var firstDateOfMonth = function firstDateOfMonth(date) {\n date = createDate(date);\n date.setDate(1);\n return date;\n};\nexport var lastDateOfMonth = function lastDateOfMonth(date) {\n date = createDate(date);\n date.setMonth(date.getMonth() + 1);\n date.setDate(0);\n return date;\n};\nexport var addYears = function addYears(date, numberOfYears) {\n date = createDate(date);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear() + numberOfYears); // Handle Feb 29th for leap years\n\n if (date.getMonth() !== month) {\n date.setDate(0);\n }\n\n return date;\n};\nexport var oneMonthAgo = function oneMonthAgo(date) {\n date = createDate(date);\n var month = date.getMonth();\n date.setMonth(month - 1); // Handle when days in month are different\n\n if (date.getMonth() === month) {\n date.setDate(0);\n }\n\n return date;\n};\nexport var oneMonthAhead = function oneMonthAhead(date) {\n date = createDate(date);\n var month = date.getMonth();\n date.setMonth(month + 1); // Handle when days in month are different\n\n if (date.getMonth() === (month + 2) % 12) {\n date.setDate(0);\n }\n\n return date;\n};\nexport var oneYearAgo = function oneYearAgo(date) {\n return addYears(date, -1);\n};\nexport var oneYearAhead = function oneYearAhead(date) {\n return addYears(date, 1);\n};\nexport var oneDecadeAgo = function oneDecadeAgo(date) {\n return addYears(date, -10);\n};\nexport var oneDecadeAhead = function oneDecadeAhead(date) {\n return addYears(date, 10);\n}; // Helper function to constrain a date between two values\n// Always returns a `Date` object or `null` if no date passed\n\nexport var constrainDate = function constrainDate(date) {\n var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n // Ensure values are `Date` objects (or `null`)\n date = parseYMD(date);\n min = parseYMD(min) || date;\n max = parseYMD(max) || date; // Return a new `Date` object (or `null`)\n\n return date ? date < min ? min : date > max ? max : date : null;\n};","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend } from '../../vue';\nimport { NAME_CALENDAR } from '../../constants/components';\nimport { CALENDAR_GREGORY, CALENDAR_LONG, CALENDAR_NARROW, CALENDAR_SHORT, DATE_FORMAT_2_DIGIT, DATE_FORMAT_NUMERIC } from '../../constants/date';\nimport { EVENT_NAME_CONTEXT, EVENT_NAME_SELECTED } from '../../constants/events';\nimport { CODE_DOWN, CODE_END, CODE_ENTER, CODE_HOME, CODE_LEFT, CODE_PAGEDOWN, CODE_PAGEUP, CODE_RIGHT, CODE_SPACE, CODE_UP } from '../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_DATE_STRING, PROP_TYPE_FUNCTION, PROP_TYPE_NUMBER_STRING, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_NAV_NEXT_DECADE, SLOT_NAME_NAV_NEXT_MONTH, SLOT_NAME_NAV_NEXT_YEAR, SLOT_NAME_NAV_PEV_DECADE, SLOT_NAME_NAV_PEV_MONTH, SLOT_NAME_NAV_PEV_YEAR, SLOT_NAME_NAV_THIS_MONTH } from '../../constants/slots';\nimport { arrayIncludes, concat } from '../../utils/array';\nimport { createDate, createDateFormatter, constrainDate as _constrainDate, datesEqual, firstDateOfMonth, formatYMD, lastDateOfMonth, oneMonthAgo, oneMonthAhead, oneYearAgo, oneYearAhead, oneDecadeAgo, oneDecadeAhead, parseYMD, resolveLocale } from '../../utils/date';\nimport { attemptBlur, attemptFocus, requestAF } from '../../utils/dom';\nimport { stopEvent } from '../../utils/events';\nimport { identity } from '../../utils/identity';\nimport { isArray, isPlainObject, isString } from '../../utils/inspect';\nimport { isLocaleRTL } from '../../utils/locale';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { mathMax } from '../../utils/math';\nimport { makeModelMixin } from '../../utils/model';\nimport { toInteger } from '../../utils/number';\nimport { sortKeys } from '../../utils/object';\nimport { hasPropFunction, makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BIconChevronLeft, BIconChevronDoubleLeft, BIconChevronBarLeft, BIconCircleFill } from '../../icons/icons'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_DATE_STRING\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), {}, {\n ariaControls: makeProp(PROP_TYPE_STRING),\n // Makes calendar the full width of its parent container\n block: makeProp(PROP_TYPE_BOOLEAN, false),\n dateDisabledFn: makeProp(PROP_TYPE_FUNCTION),\n // `Intl.DateTimeFormat` object\n dateFormatOptions: makeProp(PROP_TYPE_OBJECT, {\n year: DATE_FORMAT_NUMERIC,\n month: CALENDAR_LONG,\n day: DATE_FORMAT_NUMERIC,\n weekday: CALENDAR_LONG\n }),\n // Function to set a class of (classes) on the date cell\n // if passed a string or an array\n // TODO:\n // If the function returns an object, look for class prop for classes,\n // and other props for handling events/details/descriptions\n dateInfoFn: makeProp(PROP_TYPE_FUNCTION),\n // 'ltr', 'rtl', or `null` (for auto detect)\n direction: makeProp(PROP_TYPE_STRING),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n headerTag: makeProp(PROP_TYPE_STRING, 'header'),\n // When `true`, renders a comment node, but keeps the component instance active\n // Mainly for , so that we can get the component's value and locale\n // But we might just use separate date formatters, using the resolved locale\n // (adjusted for the gregorian calendar)\n hidden: makeProp(PROP_TYPE_BOOLEAN, false),\n // When `true` makes the selected date header `sr-only`\n hideHeader: makeProp(PROP_TYPE_BOOLEAN, false),\n // This specifies the calendar year/month/day that will be shown when\n // first opening the datepicker if no v-model value is provided\n // Default is the current date (or `min`/`max`)\n initialDate: makeProp(PROP_TYPE_DATE_STRING),\n // Labels for buttons and keyboard shortcuts\n labelCalendar: makeProp(PROP_TYPE_STRING, 'Calendar'),\n labelCurrentMonth: makeProp(PROP_TYPE_STRING, 'Current month'),\n labelHelp: makeProp(PROP_TYPE_STRING, 'Use cursor keys to navigate calendar dates'),\n labelNav: makeProp(PROP_TYPE_STRING, 'Calendar navigation'),\n labelNextDecade: makeProp(PROP_TYPE_STRING, 'Next decade'),\n labelNextMonth: makeProp(PROP_TYPE_STRING, 'Next month'),\n labelNextYear: makeProp(PROP_TYPE_STRING, 'Next year'),\n labelNoDateSelected: makeProp(PROP_TYPE_STRING, 'No date selected'),\n labelPrevDecade: makeProp(PROP_TYPE_STRING, 'Previous decade'),\n labelPrevMonth: makeProp(PROP_TYPE_STRING, 'Previous month'),\n labelPrevYear: makeProp(PROP_TYPE_STRING, 'Previous year'),\n labelSelected: makeProp(PROP_TYPE_STRING, 'Selected date'),\n labelToday: makeProp(PROP_TYPE_STRING, 'Today'),\n // Locale(s) to use\n // Default is to use page/browser default setting\n locale: makeProp(PROP_TYPE_ARRAY_STRING),\n max: makeProp(PROP_TYPE_DATE_STRING),\n min: makeProp(PROP_TYPE_DATE_STRING),\n // Variant color to use for the navigation buttons\n navButtonVariant: makeProp(PROP_TYPE_STRING, 'secondary'),\n // Disable highlighting today's date\n noHighlightToday: makeProp(PROP_TYPE_BOOLEAN, false),\n noKeyNav: makeProp(PROP_TYPE_BOOLEAN, false),\n readonly: makeProp(PROP_TYPE_BOOLEAN, false),\n roleDescription: makeProp(PROP_TYPE_STRING),\n // Variant color to use for the selected date\n selectedVariant: makeProp(PROP_TYPE_STRING, 'primary'),\n // When `true` enables the decade navigation buttons\n showDecadeNav: makeProp(PROP_TYPE_BOOLEAN, false),\n // Day of week to start calendar on\n // `0` (Sunday), `1` (Monday), ... `6` (Saturday)\n startWeekday: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n // Variant color to use for today's date (defaults to `selectedVariant`)\n todayVariant: makeProp(PROP_TYPE_STRING),\n // Always return the `v-model` value as a date object\n valueAsDate: makeProp(PROP_TYPE_BOOLEAN, false),\n // Format of the weekday names at the top of the calendar\n // `short` is typically a 3 letter abbreviation,\n // `narrow` is typically a single letter\n // `long` is the full week day name\n // Although some locales may override this (i.e `ar`, etc.)\n weekdayHeaderFormat: makeProp(PROP_TYPE_STRING, CALENDAR_SHORT, function (value) {\n return arrayIncludes([CALENDAR_LONG, CALENDAR_SHORT, CALENDAR_NARROW], value);\n }),\n // Has no effect if prop `block` is set\n width: makeProp(PROP_TYPE_STRING, '270px')\n})), NAME_CALENDAR); // --- Main component ---\n// @vue/component\n\nexport var BCalendar = extend({\n name: NAME_CALENDAR,\n // Mixin order is important!\n mixins: [attrsMixin, idMixin, modelMixin, normalizeSlotMixin],\n props: props,\n data: function data() {\n var selected = formatYMD(this[MODEL_PROP_NAME]) || '';\n return {\n // Selected date\n selectedYMD: selected,\n // Date in calendar grid that has `tabindex` of `0`\n activeYMD: selected || formatYMD(_constrainDate(this.initialDate || this.getToday()), this.min, this.max),\n // Will be true if the calendar grid has/contains focus\n gridHasFocus: false,\n // Flag to enable the `aria-live` region(s) after mount\n // to prevent screen reader \"outbursts\" when mounting\n isLive: false\n };\n },\n computed: {\n valueId: function valueId() {\n return this.safeId();\n },\n widgetId: function widgetId() {\n return this.safeId('_calendar-wrapper_');\n },\n navId: function navId() {\n return this.safeId('_calendar-nav_');\n },\n gridId: function gridId() {\n return this.safeId('_calendar-grid_');\n },\n gridCaptionId: function gridCaptionId() {\n return this.safeId('_calendar-grid-caption_');\n },\n gridHelpId: function gridHelpId() {\n return this.safeId('_calendar-grid-help_');\n },\n activeId: function activeId() {\n return this.activeYMD ? this.safeId(\"_cell-\".concat(this.activeYMD, \"_\")) : null;\n },\n // TODO: Use computed props to convert `YYYY-MM-DD` to `Date` object\n selectedDate: function selectedDate() {\n // Selected as a `Date` object\n return parseYMD(this.selectedYMD);\n },\n activeDate: function activeDate() {\n // Active as a `Date` object\n return parseYMD(this.activeYMD);\n },\n computedMin: function computedMin() {\n return parseYMD(this.min);\n },\n computedMax: function computedMax() {\n return parseYMD(this.max);\n },\n computedWeekStarts: function computedWeekStarts() {\n // `startWeekday` is a prop (constrained to `0` through `6`)\n return mathMax(toInteger(this.startWeekday, 0), 0) % 7;\n },\n computedLocale: function computedLocale() {\n // Returns the resolved locale used by the calendar\n return resolveLocale(concat(this.locale).filter(identity), CALENDAR_GREGORY);\n },\n computedDateDisabledFn: function computedDateDisabledFn() {\n var dateDisabledFn = this.dateDisabledFn;\n return hasPropFunction(dateDisabledFn) ? dateDisabledFn : function () {\n return false;\n };\n },\n // TODO: Change `dateInfoFn` to handle events and notes as well as classes\n computedDateInfoFn: function computedDateInfoFn() {\n var dateInfoFn = this.dateInfoFn;\n return hasPropFunction(dateInfoFn) ? dateInfoFn : function () {\n return {};\n };\n },\n calendarLocale: function calendarLocale() {\n // This locale enforces the gregorian calendar (for use in formatter functions)\n // Needed because IE 11 resolves `ar-IR` as islamic-civil calendar\n // and IE 11 (and some other browsers) do not support the `calendar` option\n // And we currently only support the gregorian calendar\n var fmt = new Intl.DateTimeFormat(this.computedLocale, {\n calendar: CALENDAR_GREGORY\n });\n var calendar = fmt.resolvedOptions().calendar;\n var locale = fmt.resolvedOptions().locale;\n /* istanbul ignore if: mainly for IE 11 and a few other browsers, hard to test in JSDOM */\n\n if (calendar !== CALENDAR_GREGORY) {\n // Ensure the locale requests the gregorian calendar\n // Mainly for IE 11, and currently we can't handle non-gregorian calendars\n // TODO: Should we always return this value?\n locale = locale.replace(/-u-.+$/i, '').concat('-u-ca-gregory');\n }\n\n return locale;\n },\n calendarYear: function calendarYear() {\n return this.activeDate.getFullYear();\n },\n calendarMonth: function calendarMonth() {\n return this.activeDate.getMonth();\n },\n calendarFirstDay: function calendarFirstDay() {\n // We set the time for this date to 12pm to work around\n // date formatting issues in Firefox and Safari\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/5818\n return createDate(this.calendarYear, this.calendarMonth, 1, 12);\n },\n calendarDaysInMonth: function calendarDaysInMonth() {\n // We create a new date as to not mutate the original\n var date = createDate(this.calendarFirstDay);\n date.setMonth(date.getMonth() + 1, 0);\n return date.getDate();\n },\n computedVariant: function computedVariant() {\n return \"btn-\".concat(this.selectedVariant || 'primary');\n },\n computedTodayVariant: function computedTodayVariant() {\n return \"btn-outline-\".concat(this.todayVariant || this.selectedVariant || 'primary');\n },\n computedNavButtonVariant: function computedNavButtonVariant() {\n return \"btn-outline-\".concat(this.navButtonVariant || 'primary');\n },\n isRTL: function isRTL() {\n // `true` if the language requested is RTL\n var dir = toString(this.direction).toLowerCase();\n\n if (dir === 'rtl') {\n /* istanbul ignore next */\n return true;\n } else if (dir === 'ltr') {\n /* istanbul ignore next */\n return false;\n }\n\n return isLocaleRTL(this.computedLocale);\n },\n context: function context() {\n var selectedYMD = this.selectedYMD,\n activeYMD = this.activeYMD;\n var selectedDate = parseYMD(selectedYMD);\n var activeDate = parseYMD(activeYMD);\n return {\n // The current value of the `v-model`\n selectedYMD: selectedYMD,\n selectedDate: selectedDate,\n selectedFormatted: selectedDate ? this.formatDateString(selectedDate) : this.labelNoDateSelected,\n // Which date cell is considered active due to navigation\n activeYMD: activeYMD,\n activeDate: activeDate,\n activeFormatted: activeDate ? this.formatDateString(activeDate) : '',\n // `true` if the date is disabled (when using keyboard navigation)\n disabled: this.dateDisabled(activeDate),\n // Locales used in formatting dates\n locale: this.computedLocale,\n calendarLocale: this.calendarLocale,\n rtl: this.isRTL\n };\n },\n // Computed props that return a function reference\n dateOutOfRange: function dateOutOfRange() {\n // Check whether a date is within the min/max range\n // Returns a new function ref if the pops change\n // We do this as we need to trigger the calendar computed prop\n // to update when these props update\n var min = this.computedMin,\n max = this.computedMax;\n return function (date) {\n // Handle both `YYYY-MM-DD` and `Date` objects\n date = parseYMD(date);\n return min && date < min || max && date > max;\n };\n },\n dateDisabled: function dateDisabled() {\n var _this = this;\n\n // Returns a function for validating if a date is within range\n // We grab this variables first to ensure a new function ref\n // is generated when the props value changes\n // We do this as we need to trigger the calendar computed prop\n // to update when these props update\n var rangeFn = this.dateOutOfRange; // Return the function ref\n\n return function (date) {\n // Handle both `YYYY-MM-DD` and `Date` objects\n date = parseYMD(date);\n var ymd = formatYMD(date);\n return !!(rangeFn(date) || _this.computedDateDisabledFn(ymd, date));\n };\n },\n // Computed props that return date formatter functions\n formatDateString: function formatDateString() {\n // Returns a date formatter function\n return createDateFormatter(this.calendarLocale, _objectSpread(_objectSpread({\n // Ensure we have year, month, day shown for screen readers/ARIA\n // If users really want to leave one of these out, they can\n // pass `undefined` for the property value\n year: DATE_FORMAT_NUMERIC,\n month: DATE_FORMAT_2_DIGIT,\n day: DATE_FORMAT_2_DIGIT\n }, this.dateFormatOptions), {}, {\n // Ensure hours/minutes/seconds are not shown\n // As we do not support the time portion (yet)\n hour: undefined,\n minute: undefined,\n second: undefined,\n // Ensure calendar is gregorian\n calendar: CALENDAR_GREGORY\n }));\n },\n formatYearMonth: function formatYearMonth() {\n // Returns a date formatter function\n return createDateFormatter(this.calendarLocale, {\n year: DATE_FORMAT_NUMERIC,\n month: CALENDAR_LONG,\n calendar: CALENDAR_GREGORY\n });\n },\n formatWeekdayName: function formatWeekdayName() {\n // Long weekday name for weekday header aria-label\n return createDateFormatter(this.calendarLocale, {\n weekday: CALENDAR_LONG,\n calendar: CALENDAR_GREGORY\n });\n },\n formatWeekdayNameShort: function formatWeekdayNameShort() {\n // Weekday header cell format\n // defaults to 'short' 3 letter days, where possible\n return createDateFormatter(this.calendarLocale, {\n weekday: this.weekdayHeaderFormat || CALENDAR_SHORT,\n calendar: CALENDAR_GREGORY\n });\n },\n formatDay: function formatDay() {\n // Calendar grid day number formatter\n // We don't use DateTimeFormatter here as it can place extra\n // character(s) after the number (i.e the `zh` locale)\n var nf = new Intl.NumberFormat([this.computedLocale], {\n style: 'decimal',\n minimumIntegerDigits: 1,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n notation: 'standard'\n }); // Return a formatter function instance\n\n return function (date) {\n return nf.format(date.getDate());\n };\n },\n // Disabled states for the nav buttons\n prevDecadeDisabled: function prevDecadeDisabled() {\n var min = this.computedMin;\n return this.disabled || min && lastDateOfMonth(oneDecadeAgo(this.activeDate)) < min;\n },\n prevYearDisabled: function prevYearDisabled() {\n var min = this.computedMin;\n return this.disabled || min && lastDateOfMonth(oneYearAgo(this.activeDate)) < min;\n },\n prevMonthDisabled: function prevMonthDisabled() {\n var min = this.computedMin;\n return this.disabled || min && lastDateOfMonth(oneMonthAgo(this.activeDate)) < min;\n },\n thisMonthDisabled: function thisMonthDisabled() {\n // TODO: We could/should check if today is out of range\n return this.disabled;\n },\n nextMonthDisabled: function nextMonthDisabled() {\n var max = this.computedMax;\n return this.disabled || max && firstDateOfMonth(oneMonthAhead(this.activeDate)) > max;\n },\n nextYearDisabled: function nextYearDisabled() {\n var max = this.computedMax;\n return this.disabled || max && firstDateOfMonth(oneYearAhead(this.activeDate)) > max;\n },\n nextDecadeDisabled: function nextDecadeDisabled() {\n var max = this.computedMax;\n return this.disabled || max && firstDateOfMonth(oneDecadeAhead(this.activeDate)) > max;\n },\n // Calendar dates generation\n calendar: function calendar() {\n var matrix = [];\n var firstDay = this.calendarFirstDay;\n var calendarYear = firstDay.getFullYear();\n var calendarMonth = firstDay.getMonth();\n var daysInMonth = this.calendarDaysInMonth;\n var startIndex = firstDay.getDay(); // `0`..`6`\n\n var weekOffset = (this.computedWeekStarts > startIndex ? 7 : 0) - this.computedWeekStarts; // Build the calendar matrix\n\n var currentDay = 0 - weekOffset - startIndex;\n\n for (var week = 0; week < 6 && currentDay < daysInMonth; week++) {\n // For each week\n matrix[week] = []; // The following could be a map function\n\n for (var j = 0; j < 7; j++) {\n // For each day in week\n currentDay++;\n var date = createDate(calendarYear, calendarMonth, currentDay);\n var month = date.getMonth();\n var dayYMD = formatYMD(date);\n var dayDisabled = this.dateDisabled(date); // TODO: This could be a normalizer method\n\n var dateInfo = this.computedDateInfoFn(dayYMD, parseYMD(dayYMD));\n dateInfo = isString(dateInfo) || isArray(dateInfo) ?\n /* istanbul ignore next */\n {\n class: dateInfo\n } : isPlainObject(dateInfo) ? _objectSpread({\n class: ''\n }, dateInfo) :\n /* istanbul ignore next */\n {\n class: ''\n };\n matrix[week].push({\n ymd: dayYMD,\n // Cell content\n day: this.formatDay(date),\n label: this.formatDateString(date),\n // Flags for styling\n isThisMonth: month === calendarMonth,\n isDisabled: dayDisabled,\n // TODO: Handle other dateInfo properties such as notes/events\n info: dateInfo\n });\n }\n }\n\n return matrix;\n },\n calendarHeadings: function calendarHeadings() {\n var _this2 = this;\n\n return this.calendar[0].map(function (d) {\n return {\n text: _this2.formatWeekdayNameShort(parseYMD(d.ymd)),\n label: _this2.formatWeekdayName(parseYMD(d.ymd))\n };\n });\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue, oldValue) {\n var selected = formatYMD(newValue) || '';\n var old = formatYMD(oldValue) || '';\n\n if (!datesEqual(selected, old)) {\n this.activeYMD = selected || this.activeYMD;\n this.selectedYMD = selected;\n }\n }), _defineProperty(_watch, \"selectedYMD\", function selectedYMD(newYMD, oldYMD) {\n // TODO:\n // Should we compare to `formatYMD(this.value)` and emit\n // only if they are different?\n if (newYMD !== oldYMD) {\n this.$emit(MODEL_EVENT_NAME, this.valueAsDate ? parseYMD(newYMD) || null : newYMD || '');\n }\n }), _defineProperty(_watch, \"context\", function context(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(EVENT_NAME_CONTEXT, newValue);\n }\n }), _defineProperty(_watch, \"hidden\", function hidden(newValue) {\n // Reset the active focused day when hidden\n this.activeYMD = this.selectedYMD || formatYMD(this[MODEL_PROP_NAME] || this.constrainDate(this.initialDate || this.getToday())); // Enable/disable the live regions\n\n this.setLive(!newValue);\n }), _watch),\n created: function created() {\n var _this3 = this;\n\n this.$nextTick(function () {\n _this3.$emit(EVENT_NAME_CONTEXT, _this3.context);\n });\n },\n mounted: function mounted() {\n this.setLive(true);\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n this.setLive(true);\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n this.setLive(false);\n },\n beforeDestroy: function beforeDestroy() {\n this.setLive(false);\n },\n methods: {\n // Public method(s)\n focus: function focus() {\n if (!this.disabled) {\n attemptFocus(this.$refs.grid);\n }\n },\n blur: function blur() {\n if (!this.disabled) {\n attemptBlur(this.$refs.grid);\n }\n },\n // Private methods\n setLive: function setLive(on) {\n var _this4 = this;\n\n if (on) {\n this.$nextTick(function () {\n requestAF(function () {\n _this4.isLive = true;\n });\n });\n } else {\n this.isLive = false;\n }\n },\n getToday: function getToday() {\n return parseYMD(createDate());\n },\n constrainDate: function constrainDate(date) {\n // Constrains a date between min and max\n // returns a new `Date` object instance\n return _constrainDate(date, this.computedMin, this.computedMax);\n },\n emitSelected: function emitSelected(date) {\n var _this5 = this;\n\n // Performed in a `$nextTick()` to (probably) ensure\n // the input event has emitted first\n this.$nextTick(function () {\n _this5.$emit(EVENT_NAME_SELECTED, formatYMD(date) || '', parseYMD(date) || null);\n });\n },\n // Event handlers\n setGridFocusFlag: function setGridFocusFlag(event) {\n // Sets the gridHasFocus flag to make date \"button\" look focused\n this.gridHasFocus = !this.disabled && event.type === 'focus';\n },\n onKeydownWrapper: function onKeydownWrapper(event) {\n // Calendar keyboard navigation\n // Handles PAGEUP/PAGEDOWN/END/HOME/LEFT/UP/RIGHT/DOWN\n // Focuses grid after updating\n if (this.noKeyNav) {\n /* istanbul ignore next */\n return;\n }\n\n var altKey = event.altKey,\n ctrlKey = event.ctrlKey,\n keyCode = event.keyCode;\n\n if (!arrayIncludes([CODE_PAGEUP, CODE_PAGEDOWN, CODE_END, CODE_HOME, CODE_LEFT, CODE_UP, CODE_RIGHT, CODE_DOWN], keyCode)) {\n /* istanbul ignore next */\n return;\n }\n\n stopEvent(event);\n var activeDate = createDate(this.activeDate);\n var checkDate = createDate(this.activeDate);\n var day = activeDate.getDate();\n var constrainedToday = this.constrainDate(this.getToday());\n var isRTL = this.isRTL;\n\n if (keyCode === CODE_PAGEUP) {\n // PAGEUP - Previous month/year\n activeDate = (altKey ? ctrlKey ? oneDecadeAgo : oneYearAgo : oneMonthAgo)(activeDate); // We check the first day of month to be in rage\n\n checkDate = createDate(activeDate);\n checkDate.setDate(1);\n } else if (keyCode === CODE_PAGEDOWN) {\n // PAGEDOWN - Next month/year\n activeDate = (altKey ? ctrlKey ? oneDecadeAhead : oneYearAhead : oneMonthAhead)(activeDate); // We check the last day of month to be in rage\n\n checkDate = createDate(activeDate);\n checkDate.setMonth(checkDate.getMonth() + 1);\n checkDate.setDate(0);\n } else if (keyCode === CODE_LEFT) {\n // LEFT - Previous day (or next day for RTL)\n activeDate.setDate(day + (isRTL ? 1 : -1));\n activeDate = this.constrainDate(activeDate);\n checkDate = activeDate;\n } else if (keyCode === CODE_RIGHT) {\n // RIGHT - Next day (or previous day for RTL)\n activeDate.setDate(day + (isRTL ? -1 : 1));\n activeDate = this.constrainDate(activeDate);\n checkDate = activeDate;\n } else if (keyCode === CODE_UP) {\n // UP - Previous week\n activeDate.setDate(day - 7);\n activeDate = this.constrainDate(activeDate);\n checkDate = activeDate;\n } else if (keyCode === CODE_DOWN) {\n // DOWN - Next week\n activeDate.setDate(day + 7);\n activeDate = this.constrainDate(activeDate);\n checkDate = activeDate;\n } else if (keyCode === CODE_HOME) {\n // HOME - Today\n activeDate = constrainedToday;\n checkDate = activeDate;\n } else if (keyCode === CODE_END) {\n // END - Selected date, or today if no selected date\n activeDate = parseYMD(this.selectedDate) || constrainedToday;\n checkDate = activeDate;\n }\n\n if (!this.dateOutOfRange(checkDate) && !datesEqual(activeDate, this.activeDate)) {\n // We only jump to date if within min/max\n // We don't check for individual disabled dates though (via user function)\n this.activeYMD = formatYMD(activeDate);\n } // Ensure grid is focused\n\n\n this.focus();\n },\n onKeydownGrid: function onKeydownGrid(event) {\n // Pressing enter/space on grid to select active date\n var keyCode = event.keyCode;\n var activeDate = this.activeDate;\n\n if (keyCode === CODE_ENTER || keyCode === CODE_SPACE) {\n stopEvent(event);\n\n if (!this.disabled && !this.readonly && !this.dateDisabled(activeDate)) {\n this.selectedYMD = formatYMD(activeDate);\n this.emitSelected(activeDate);\n } // Ensure grid is focused\n\n\n this.focus();\n }\n },\n onClickDay: function onClickDay(day) {\n // Clicking on a date \"button\" to select it\n var selectedDate = this.selectedDate,\n activeDate = this.activeDate;\n var clickedDate = parseYMD(day.ymd);\n\n if (!this.disabled && !day.isDisabled && !this.dateDisabled(clickedDate)) {\n if (!this.readonly) {\n // If readonly mode, we don't set the selected date, just the active date\n // If the clicked date is equal to the already selected date, we don't update the model\n this.selectedYMD = formatYMD(datesEqual(clickedDate, selectedDate) ? selectedDate : clickedDate);\n this.emitSelected(clickedDate);\n }\n\n this.activeYMD = formatYMD(datesEqual(clickedDate, activeDate) ? activeDate : createDate(clickedDate)); // Ensure grid is focused\n\n this.focus();\n }\n },\n gotoPrevDecade: function gotoPrevDecade() {\n this.activeYMD = formatYMD(this.constrainDate(oneDecadeAgo(this.activeDate)));\n },\n gotoPrevYear: function gotoPrevYear() {\n this.activeYMD = formatYMD(this.constrainDate(oneYearAgo(this.activeDate)));\n },\n gotoPrevMonth: function gotoPrevMonth() {\n this.activeYMD = formatYMD(this.constrainDate(oneMonthAgo(this.activeDate)));\n },\n gotoCurrentMonth: function gotoCurrentMonth() {\n // TODO: Maybe this goto date should be configurable?\n this.activeYMD = formatYMD(this.constrainDate(this.getToday()));\n },\n gotoNextMonth: function gotoNextMonth() {\n this.activeYMD = formatYMD(this.constrainDate(oneMonthAhead(this.activeDate)));\n },\n gotoNextYear: function gotoNextYear() {\n this.activeYMD = formatYMD(this.constrainDate(oneYearAhead(this.activeDate)));\n },\n gotoNextDecade: function gotoNextDecade() {\n this.activeYMD = formatYMD(this.constrainDate(oneDecadeAhead(this.activeDate)));\n },\n onHeaderClick: function onHeaderClick() {\n if (!this.disabled) {\n this.activeYMD = this.selectedYMD || formatYMD(this.getToday());\n this.focus();\n }\n }\n },\n render: function render(h) {\n var _this6 = this;\n\n // If `hidden` prop is set, render just a placeholder node\n if (this.hidden) {\n return h();\n }\n\n var valueId = this.valueId,\n widgetId = this.widgetId,\n navId = this.navId,\n gridId = this.gridId,\n gridCaptionId = this.gridCaptionId,\n gridHelpId = this.gridHelpId,\n activeId = this.activeId,\n disabled = this.disabled,\n noKeyNav = this.noKeyNav,\n isLive = this.isLive,\n isRTL = this.isRTL,\n activeYMD = this.activeYMD,\n selectedYMD = this.selectedYMD,\n safeId = this.safeId;\n var hideDecadeNav = !this.showDecadeNav;\n var todayYMD = formatYMD(this.getToday());\n var highlightToday = !this.noHighlightToday; // Header showing current selected date\n\n var $header = h('output', {\n staticClass: 'form-control form-control-sm text-center',\n class: {\n 'text-muted': disabled,\n readonly: this.readonly || disabled\n },\n attrs: {\n id: valueId,\n for: gridId,\n role: 'status',\n tabindex: disabled ? null : '-1',\n // Mainly for testing purposes, as we do not know\n // the exact format `Intl` will format the date string\n 'data-selected': toString(selectedYMD),\n // We wait until after mount to enable `aria-live`\n // to prevent initial announcement on page render\n 'aria-live': isLive ? 'polite' : 'off',\n 'aria-atomic': isLive ? 'true' : null\n },\n on: {\n // Transfer focus/click to focus grid\n // and focus active date (or today if no selection)\n click: this.onHeaderClick,\n focus: this.onHeaderClick\n }\n }, this.selectedDate ? [// We use `bdi` elements here in case the label doesn't match the locale\n // Although IE 11 does not deal with at all (equivalent to a span)\n h('bdi', {\n staticClass: 'sr-only'\n }, \" (\".concat(toString(this.labelSelected), \") \")), h('bdi', this.formatDateString(this.selectedDate))] : this.labelNoDateSelected || \"\\xA0\" // ' '\n );\n $header = h(this.headerTag, {\n staticClass: 'b-calendar-header',\n class: {\n 'sr-only': this.hideHeader\n },\n attrs: {\n title: this.selectedDate ? this.labelSelected || null : null\n }\n }, [$header]); // Content for the date navigation buttons\n\n var navScope = {\n isRTL: isRTL\n };\n var navProps = {\n shiftV: 0.5\n };\n\n var navPrevProps = _objectSpread(_objectSpread({}, navProps), {}, {\n flipH: isRTL\n });\n\n var navNextProps = _objectSpread(_objectSpread({}, navProps), {}, {\n flipH: !isRTL\n });\n\n var $prevDecadeIcon = this.normalizeSlot(SLOT_NAME_NAV_PEV_DECADE, navScope) || h(BIconChevronBarLeft, {\n props: navPrevProps\n });\n var $prevYearIcon = this.normalizeSlot(SLOT_NAME_NAV_PEV_YEAR, navScope) || h(BIconChevronDoubleLeft, {\n props: navPrevProps\n });\n var $prevMonthIcon = this.normalizeSlot(SLOT_NAME_NAV_PEV_MONTH, navScope) || h(BIconChevronLeft, {\n props: navPrevProps\n });\n var $thisMonthIcon = this.normalizeSlot(SLOT_NAME_NAV_THIS_MONTH, navScope) || h(BIconCircleFill, {\n props: navProps\n });\n var $nextMonthIcon = this.normalizeSlot(SLOT_NAME_NAV_NEXT_MONTH, navScope) || h(BIconChevronLeft, {\n props: navNextProps\n });\n var $nextYearIcon = this.normalizeSlot(SLOT_NAME_NAV_NEXT_YEAR, navScope) || h(BIconChevronDoubleLeft, {\n props: navNextProps\n });\n var $nextDecadeIcon = this.normalizeSlot(SLOT_NAME_NAV_NEXT_DECADE, navScope) || h(BIconChevronBarLeft, {\n props: navNextProps\n }); // Utility to create the date navigation buttons\n\n var makeNavBtn = function makeNavBtn(content, label, handler, btnDisabled, shortcut) {\n return h('button', {\n staticClass: 'btn btn-sm border-0 flex-fill',\n class: [_this6.computedNavButtonVariant, {\n disabled: btnDisabled\n }],\n attrs: {\n title: label || null,\n type: 'button',\n tabindex: noKeyNav ? '-1' : null,\n 'aria-label': label || null,\n 'aria-disabled': btnDisabled ? 'true' : null,\n 'aria-keyshortcuts': shortcut || null\n },\n on: btnDisabled ? {} : {\n click: handler\n }\n }, [h('div', {\n attrs: {\n 'aria-hidden': 'true'\n }\n }, [content])]);\n }; // Generate the date navigation buttons\n\n\n var $nav = h('div', {\n staticClass: 'b-calendar-nav d-flex',\n attrs: {\n id: navId,\n role: 'group',\n tabindex: noKeyNav ? '-1' : null,\n 'aria-hidden': disabled ? 'true' : null,\n 'aria-label': this.labelNav || null,\n 'aria-controls': gridId\n }\n }, [hideDecadeNav ? h() : makeNavBtn($prevDecadeIcon, this.labelPrevDecade, this.gotoPrevDecade, this.prevDecadeDisabled, 'Ctrl+Alt+PageDown'), makeNavBtn($prevYearIcon, this.labelPrevYear, this.gotoPrevYear, this.prevYearDisabled, 'Alt+PageDown'), makeNavBtn($prevMonthIcon, this.labelPrevMonth, this.gotoPrevMonth, this.prevMonthDisabled, 'PageDown'), makeNavBtn($thisMonthIcon, this.labelCurrentMonth, this.gotoCurrentMonth, this.thisMonthDisabled, 'Home'), makeNavBtn($nextMonthIcon, this.labelNextMonth, this.gotoNextMonth, this.nextMonthDisabled, 'PageUp'), makeNavBtn($nextYearIcon, this.labelNextYear, this.gotoNextYear, this.nextYearDisabled, 'Alt+PageUp'), hideDecadeNav ? h() : makeNavBtn($nextDecadeIcon, this.labelNextDecade, this.gotoNextDecade, this.nextDecadeDisabled, 'Ctrl+Alt+PageUp')]); // Caption for calendar grid\n\n var $gridCaption = h('div', {\n staticClass: 'b-calendar-grid-caption text-center font-weight-bold',\n class: {\n 'text-muted': disabled\n },\n attrs: {\n id: gridCaptionId,\n 'aria-live': isLive ? 'polite' : null,\n 'aria-atomic': isLive ? 'true' : null\n },\n key: 'grid-caption'\n }, this.formatYearMonth(this.calendarFirstDay)); // Calendar weekday headings\n\n var $gridWeekDays = h('div', {\n staticClass: 'b-calendar-grid-weekdays row no-gutters border-bottom',\n attrs: {\n 'aria-hidden': 'true'\n }\n }, this.calendarHeadings.map(function (d, idx) {\n return h('small', {\n staticClass: 'col text-truncate',\n class: {\n 'text-muted': disabled\n },\n attrs: {\n title: d.label === d.text ? null : d.label,\n 'aria-label': d.label\n },\n key: idx\n }, d.text);\n })); // Calendar day grid\n\n var $gridBody = this.calendar.map(function (week) {\n var $cells = week.map(function (day, dIndex) {\n var _class;\n\n var isSelected = day.ymd === selectedYMD;\n var isActive = day.ymd === activeYMD;\n var isToday = day.ymd === todayYMD;\n var idCell = safeId(\"_cell-\".concat(day.ymd, \"_\")); // \"fake\" button\n\n var $btn = h('span', {\n staticClass: 'btn border-0 rounded-circle text-nowrap',\n // Should we add some classes to signify if today/selected/etc?\n class: (_class = {\n // Give the fake button a focus ring\n focus: isActive && _this6.gridHasFocus,\n // Styling\n disabled: day.isDisabled || disabled,\n active: isSelected\n }, _defineProperty(_class, _this6.computedVariant, isSelected), _defineProperty(_class, _this6.computedTodayVariant, isToday && highlightToday && !isSelected && day.isThisMonth), _defineProperty(_class, 'btn-outline-light', !(isToday && highlightToday) && !isSelected && !isActive), _defineProperty(_class, 'btn-light', !(isToday && highlightToday) && !isSelected && isActive), _defineProperty(_class, 'text-muted', !day.isThisMonth && !isSelected), _defineProperty(_class, 'text-dark', !(isToday && highlightToday) && !isSelected && !isActive && day.isThisMonth), _defineProperty(_class, 'font-weight-bold', (isSelected || day.isThisMonth) && !day.isDisabled), _class),\n on: {\n click: function click() {\n return _this6.onClickDay(day);\n }\n }\n }, day.day);\n return h('div', // Cell with button\n {\n staticClass: 'col p-0',\n class: day.isDisabled ? 'bg-light' : day.info.class || '',\n attrs: {\n id: idCell,\n role: 'button',\n 'data-date': day.ymd,\n // Primarily for testing purposes\n // Only days in the month are presented as buttons to screen readers\n 'aria-hidden': day.isThisMonth ? null : 'true',\n 'aria-disabled': day.isDisabled || disabled ? 'true' : null,\n 'aria-label': [day.label, isSelected ? \"(\".concat(_this6.labelSelected, \")\") : null, isToday ? \"(\".concat(_this6.labelToday, \")\") : null].filter(identity).join(' '),\n // NVDA doesn't convey `aria-selected`, but does `aria-current`,\n // ChromeVox doesn't convey `aria-current`, but does `aria-selected`,\n // so we set both attributes for robustness\n 'aria-selected': isSelected ? 'true' : null,\n 'aria-current': isSelected ? 'date' : null\n },\n key: dIndex\n }, [$btn]);\n }); // Return the week \"row\"\n // We use the first day of the weeks YMD value as a\n // key for efficient DOM patching / element re-use\n\n return h('div', {\n staticClass: 'row no-gutters',\n key: week[0].ymd\n }, $cells);\n });\n $gridBody = h('div', {\n // A key is only required on the body if we add in transition support\n staticClass: 'b-calendar-grid-body',\n style: disabled ? {\n pointerEvents: 'none'\n } : {} // key: this.activeYMD.slice(0, -3)\n\n }, $gridBody);\n var $gridHelp = h('div', {\n staticClass: 'b-calendar-grid-help border-top small text-muted text-center bg-light',\n attrs: {\n id: gridHelpId\n }\n }, [h('div', {\n staticClass: 'small'\n }, this.labelHelp)]);\n var $grid = h('div', {\n staticClass: 'b-calendar-grid form-control h-auto text-center',\n attrs: {\n id: gridId,\n role: 'application',\n tabindex: noKeyNav ? '-1' : disabled ? null : '0',\n 'data-month': activeYMD.slice(0, -3),\n // `YYYY-MM`, mainly for testing\n 'aria-roledescription': this.labelCalendar || null,\n 'aria-labelledby': gridCaptionId,\n 'aria-describedby': gridHelpId,\n // `aria-readonly` is not considered valid on `role=\"application\"`\n // https://www.w3.org/TR/wai-aria-1.1/#aria-readonly\n // 'aria-readonly': this.readonly && !disabled ? 'true' : null,\n 'aria-disabled': disabled ? 'true' : null,\n 'aria-activedescendant': activeId\n },\n on: {\n keydown: this.onKeydownGrid,\n focus: this.setGridFocusFlag,\n blur: this.setGridFocusFlag\n },\n ref: 'grid'\n }, [$gridCaption, $gridWeekDays, $gridBody, $gridHelp]); // Optional bottom slot\n\n var $slot = this.normalizeSlot();\n $slot = $slot ? h('footer', {\n staticClass: 'b-calendar-footer'\n }, $slot) : h();\n var $widget = h('div', {\n staticClass: 'b-calendar-inner',\n style: this.block ? {} : {\n width: this.width\n },\n attrs: {\n id: widgetId,\n dir: isRTL ? 'rtl' : 'ltr',\n lang: this.computedLocale || null,\n role: 'group',\n 'aria-disabled': disabled ? 'true' : null,\n // If datepicker controls an input, this will specify the ID of the input\n 'aria-controls': this.ariaControls || null,\n // This should be a prop (so it can be changed to Date picker, etc, localized\n 'aria-roledescription': this.roleDescription || null,\n 'aria-describedby': [// Should the attr (if present) go last?\n // Or should this attr be a prop?\n this.bvAttrs['aria-describedby'], valueId, gridHelpId].filter(identity).join(' ')\n },\n on: {\n keydown: this.onKeydownWrapper\n }\n }, [$header, $nav, $grid, $slot]); // Wrap in an outer div that can be styled\n\n return h('div', {\n staticClass: 'b-calendar',\n class: {\n 'd-block': this.block\n }\n }, [$widget]);\n }\n});","// Localization utilities\nimport { RX_STRIP_LOCALE_MODS } from '../constants/regex';\nimport { arrayIncludes } from './array';\nimport { toString } from './string'; // Languages that are RTL\n\nvar RTL_LANGS = ['ar', 'az', 'ckb', 'fa', 'he', 'ks', 'lrc', 'mzn', 'ps', 'sd', 'te', 'ug', 'ur', 'yi'].map(function (locale) {\n return locale.toLowerCase();\n}); // Returns true if the locale is RTL\n\nexport var isLocaleRTL = function isLocaleRTL(locale) {\n // Determines if the locale is RTL (only single locale supported)\n var parts = toString(locale).toLowerCase().replace(RX_STRIP_LOCALE_MODS, '').split('-');\n var locale1 = parts.slice(0, 2).join('-');\n var locale2 = parts[0];\n return arrayIncludes(RTL_LANGS, locale1) || arrayIncludes(RTL_LANGS, locale2);\n};","// SSR safe client-side ID attribute generation\n// ID's can only be generated client-side, after mount\n// `this._uid` is not synched between server and client\nimport { COMPONENT_UID_KEY, extend } from '../vue';\nimport { PROP_TYPE_STRING } from '../constants/props';\nimport { makeProp } from '../utils/props'; // --- Props ---\n\nexport var props = {\n id: makeProp(PROP_TYPE_STRING)\n}; // --- Mixin ---\n// @vue/component\n\nexport var idMixin = extend({\n props: props,\n data: function data() {\n return {\n localId_: null\n };\n },\n computed: {\n safeId: function safeId() {\n // Computed property that returns a dynamic function for creating the ID\n // Reacts to changes in both `.id` and `.localId_` and regenerates a new function\n var id = this.id || this.localId_; // We return a function that accepts an optional suffix string\n // So this computed prop looks and works like a method\n // but benefits from Vue's computed prop caching\n\n var fn = function fn(suffix) {\n if (!id) {\n return null;\n }\n\n suffix = String(suffix || '').replace(/\\s+/g, '_');\n return suffix ? id + '_' + suffix : id;\n };\n\n return fn;\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n // `mounted()` only occurs client-side\n this.$nextTick(function () {\n // Update DOM with auto-generated ID after mount\n // to prevent SSR hydration errors\n _this.localId_ = \"__BVID__\".concat(_this[COMPONENT_UID_KEY]);\n });\n }\n});","import { BCalendar } from './calendar';\nimport { pluginFactory } from '../../utils/plugins';\nvar CalendarPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BCalendar: BCalendar\n }\n});\nexport { CalendarPlugin, BCalendar };","import { extend } from '../vue';\nimport { NAME_CARD } from '../constants/components';\nimport { PROP_TYPE_STRING } from '../constants/props';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n bgVariant: makeProp(PROP_TYPE_STRING),\n borderVariant: makeProp(PROP_TYPE_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n textVariant: makeProp(PROP_TYPE_STRING)\n}, NAME_CARD); // --- Mixin ---\n// @vue/component\n\nexport var cardMixin = extend({\n props: props\n});","import { extend, mergeData } from '../../vue';\nimport { NAME_CARD_TITLE } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n title: makeProp(PROP_TYPE_STRING),\n titleTag: makeProp(PROP_TYPE_STRING, 'h4')\n}, NAME_CARD_TITLE); // --- Main component ---\n// @vue/component\n\nexport var BCardTitle = /*#__PURE__*/extend({\n name: NAME_CARD_TITLE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.titleTag, mergeData(data, {\n staticClass: 'card-title'\n }), children || toString(props.title));\n }\n});","import { extend, mergeData } from '../../vue';\nimport { NAME_CARD_SUB_TITLE } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n subTitle: makeProp(PROP_TYPE_STRING),\n subTitleTag: makeProp(PROP_TYPE_STRING, 'h6'),\n subTitleTextVariant: makeProp(PROP_TYPE_STRING, 'muted')\n}, NAME_CARD_SUB_TITLE); // --- Main component ---\n// @vue/component\n\nexport var BCardSubTitle = /*#__PURE__*/extend({\n name: NAME_CARD_SUB_TITLE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.subTitleTag, mergeData(data, {\n staticClass: 'card-subtitle',\n class: [props.subTitleTextVariant ? \"text-\".concat(props.subTitleTextVariant) : null]\n }), children || toString(props.subTitle));\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend, mergeData } from '../../vue';\nimport { NAME_CARD_BODY } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, pluckProps, prefixPropName } from '../../utils/props';\nimport { props as cardProps } from '../../mixins/card';\nimport { BCardTitle, props as titleProps } from './card-title';\nimport { BCardSubTitle, props as subTitleProps } from './card-sub-title'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, titleProps), subTitleProps), copyProps(cardProps, prefixPropName.bind(null, 'body'))), {}, {\n bodyClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n overlay: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_CARD_BODY); // --- Main component ---\n// @vue/component\n\nexport var BCardBody = /*#__PURE__*/extend({\n name: NAME_CARD_BODY,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var bodyBgVariant = props.bodyBgVariant,\n bodyBorderVariant = props.bodyBorderVariant,\n bodyTextVariant = props.bodyTextVariant;\n var $title = h();\n\n if (props.title) {\n $title = h(BCardTitle, {\n props: pluckProps(titleProps, props)\n });\n }\n\n var $subTitle = h();\n\n if (props.subTitle) {\n $subTitle = h(BCardSubTitle, {\n props: pluckProps(subTitleProps, props),\n class: ['mb-2']\n });\n }\n\n return h(props.bodyTag, mergeData(data, {\n staticClass: 'card-body',\n class: [(_ref2 = {\n 'card-img-overlay': props.overlay\n }, _defineProperty(_ref2, \"bg-\".concat(bodyBgVariant), bodyBgVariant), _defineProperty(_ref2, \"border-\".concat(bodyBorderVariant), bodyBorderVariant), _defineProperty(_ref2, \"text-\".concat(bodyTextVariant), bodyTextVariant), _ref2), props.bodyClass]\n }), [$title, $subTitle, children]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend, mergeData } from '../../vue';\nimport { NAME_CARD_HEADER } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { htmlOrText } from '../../utils/html';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, prefixPropName } from '../../utils/props';\nimport { props as BCardProps } from '../../mixins/card'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, copyProps(BCardProps, prefixPropName.bind(null, 'header'))), {}, {\n header: makeProp(PROP_TYPE_STRING),\n headerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n headerHtml: makeProp(PROP_TYPE_STRING)\n})), NAME_CARD_HEADER); // --- Main component ---\n// @vue/component\n\nexport var BCardHeader = /*#__PURE__*/extend({\n name: NAME_CARD_HEADER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var headerBgVariant = props.headerBgVariant,\n headerBorderVariant = props.headerBorderVariant,\n headerTextVariant = props.headerTextVariant;\n return h(props.headerTag, mergeData(data, {\n staticClass: 'card-header',\n class: [props.headerClass, (_ref2 = {}, _defineProperty(_ref2, \"bg-\".concat(headerBgVariant), headerBgVariant), _defineProperty(_ref2, \"border-\".concat(headerBorderVariant), headerBorderVariant), _defineProperty(_ref2, \"text-\".concat(headerTextVariant), headerTextVariant), _ref2)],\n domProps: children ? {} : htmlOrText(props.headerHtml, props.header)\n }), children);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend, mergeData } from '../../vue';\nimport { NAME_CARD_FOOTER } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { htmlOrText } from '../../utils/html';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, prefixPropName } from '../../utils/props';\nimport { props as BCardProps } from '../../mixins/card'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, copyProps(BCardProps, prefixPropName.bind(null, 'footer'))), {}, {\n footer: makeProp(PROP_TYPE_STRING),\n footerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n footerHtml: makeProp(PROP_TYPE_STRING)\n})), NAME_CARD_FOOTER); // --- Main component ---\n// @vue/component\n\nexport var BCardFooter = /*#__PURE__*/extend({\n name: NAME_CARD_FOOTER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var footerBgVariant = props.footerBgVariant,\n footerBorderVariant = props.footerBorderVariant,\n footerTextVariant = props.footerTextVariant;\n return h(props.footerTag, mergeData(data, {\n staticClass: 'card-footer',\n class: [props.footerClass, (_ref2 = {}, _defineProperty(_ref2, \"bg-\".concat(footerBgVariant), footerBgVariant), _defineProperty(_ref2, \"border-\".concat(footerBorderVariant), footerBorderVariant), _defineProperty(_ref2, \"text-\".concat(footerTextVariant), footerTextVariant), _ref2)],\n domProps: children ? {} : htmlOrText(props.footerHtml, props.footer)\n }), children);\n }\n});","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend, mergeData } from '../../vue';\nimport { NAME_IMG } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { concat } from '../../utils/array';\nimport { identity } from '../../utils/identity';\nimport { isString } from '../../utils/inspect';\nimport { toInteger } from '../../utils/number';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string'; // --- Constants --\n// Blank image with fill template\n\nvar BLANK_TEMPLATE = '' + '' + ''; // --- Helper methods ---\n\nvar makeBlankImgSrc = function makeBlankImgSrc(width, height, color) {\n var src = encodeURIComponent(BLANK_TEMPLATE.replace('%{w}', toString(width)).replace('%{h}', toString(height)).replace('%{f}', color));\n return \"data:image/svg+xml;charset=UTF-8,\".concat(src);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable({\n alt: makeProp(PROP_TYPE_STRING),\n blank: makeProp(PROP_TYPE_BOOLEAN, false),\n blankColor: makeProp(PROP_TYPE_STRING, 'transparent'),\n block: makeProp(PROP_TYPE_BOOLEAN, false),\n center: makeProp(PROP_TYPE_BOOLEAN, false),\n fluid: makeProp(PROP_TYPE_BOOLEAN, false),\n // Gives fluid images class `w-100` to make them grow to fit container\n fluidGrow: makeProp(PROP_TYPE_BOOLEAN, false),\n height: makeProp(PROP_TYPE_NUMBER_STRING),\n left: makeProp(PROP_TYPE_BOOLEAN, false),\n right: makeProp(PROP_TYPE_BOOLEAN, false),\n // Possible values:\n // `false`: no rounding of corners\n // `true`: slightly rounded corners\n // 'top': top corners rounded\n // 'right': right corners rounded\n // 'bottom': bottom corners rounded\n // 'left': left corners rounded\n // 'circle': circle/oval\n // '0': force rounding off\n rounded: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n sizes: makeProp(PROP_TYPE_ARRAY_STRING),\n src: makeProp(PROP_TYPE_STRING),\n srcset: makeProp(PROP_TYPE_ARRAY_STRING),\n thumbnail: makeProp(PROP_TYPE_BOOLEAN, false),\n width: makeProp(PROP_TYPE_NUMBER_STRING)\n}, NAME_IMG); // --- Main component ---\n// @vue/component\n\nexport var BImg = /*#__PURE__*/extend({\n name: NAME_IMG,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data;\n var alt = props.alt,\n src = props.src,\n block = props.block,\n fluidGrow = props.fluidGrow,\n rounded = props.rounded;\n var width = toInteger(props.width) || null;\n var height = toInteger(props.height) || null;\n var align = null;\n var srcset = concat(props.srcset).filter(identity).join(',');\n var sizes = concat(props.sizes).filter(identity).join(',');\n\n if (props.blank) {\n if (!height && width) {\n height = width;\n } else if (!width && height) {\n width = height;\n }\n\n if (!width && !height) {\n width = 1;\n height = 1;\n } // Make a blank SVG image\n\n\n src = makeBlankImgSrc(width, height, props.blankColor || 'transparent'); // Disable srcset and sizes\n\n srcset = null;\n sizes = null;\n }\n\n if (props.left) {\n align = 'float-left';\n } else if (props.right) {\n align = 'float-right';\n } else if (props.center) {\n align = 'mx-auto';\n block = true;\n }\n\n return h('img', mergeData(data, {\n attrs: {\n src: src,\n alt: alt,\n width: width ? toString(width) : null,\n height: height ? toString(height) : null,\n srcset: srcset || null,\n sizes: sizes || null\n },\n class: (_class = {\n 'img-thumbnail': props.thumbnail,\n 'img-fluid': props.fluid || fluidGrow,\n 'w-100': fluidGrow,\n rounded: rounded === '' || rounded === true\n }, _defineProperty(_class, \"rounded-\".concat(rounded), isString(rounded) && rounded !== ''), _defineProperty(_class, align, align), _defineProperty(_class, 'd-block', block), _class)\n }));\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend, mergeData } from '../../vue';\nimport { NAME_CARD_IMG } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { pick, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { props as BImgProps } from '../image/img'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, pick(BImgProps, ['src', 'alt', 'width', 'height', 'left', 'right'])), {}, {\n bottom: makeProp(PROP_TYPE_BOOLEAN, false),\n end: makeProp(PROP_TYPE_BOOLEAN, false),\n start: makeProp(PROP_TYPE_BOOLEAN, false),\n top: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_CARD_IMG); // --- Main component ---\n// @vue/component\n\nexport var BCardImg = /*#__PURE__*/extend({\n name: NAME_CARD_IMG,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data;\n var src = props.src,\n alt = props.alt,\n width = props.width,\n height = props.height;\n var baseClass = 'card-img';\n\n if (props.top) {\n baseClass += '-top';\n } else if (props.right || props.end) {\n baseClass += '-right';\n } else if (props.bottom) {\n baseClass += '-bottom';\n } else if (props.left || props.start) {\n baseClass += '-left';\n }\n\n return h('img', mergeData(data, {\n class: baseClass,\n attrs: {\n src: src,\n alt: alt,\n width: width,\n height: height\n }\n }));\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend, mergeData } from '../../vue';\nimport { NAME_CARD } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DEFAULT, SLOT_NAME_FOOTER, SLOT_NAME_HEADER } from '../../constants/slots';\nimport { htmlOrText } from '../../utils/html';\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot';\nimport { sortKeys } from '../../utils/object';\nimport { copyProps, makeProp, makePropsConfigurable, pluckProps, prefixPropName, unprefixPropName } from '../../utils/props';\nimport { props as cardProps } from '../../mixins/card';\nimport { BCardBody, props as BCardBodyProps } from './card-body';\nimport { BCardHeader, props as BCardHeaderProps } from './card-header';\nimport { BCardFooter, props as BCardFooterProps } from './card-footer';\nimport { BCardImg, props as BCardImgProps } from './card-img'; // --- Props ---\n\nvar cardImgProps = copyProps(BCardImgProps, prefixPropName.bind(null, 'img'));\ncardImgProps.imgSrc.required = false;\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, BCardBodyProps), BCardHeaderProps), BCardFooterProps), cardImgProps), cardProps), {}, {\n align: makeProp(PROP_TYPE_STRING),\n noBody: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_CARD); // --- Main component ---\n// @vue/component\n\nexport var BCard = /*#__PURE__*/extend({\n name: NAME_CARD,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n var imgSrc = props.imgSrc,\n imgLeft = props.imgLeft,\n imgRight = props.imgRight,\n imgStart = props.imgStart,\n imgEnd = props.imgEnd,\n imgBottom = props.imgBottom,\n header = props.header,\n headerHtml = props.headerHtml,\n footer = props.footer,\n footerHtml = props.footerHtml,\n align = props.align,\n textVariant = props.textVariant,\n bgVariant = props.bgVariant,\n borderVariant = props.borderVariant;\n var $scopedSlots = scopedSlots || {};\n var $slots = slots();\n var slotScope = {};\n var $imgFirst = h();\n var $imgLast = h();\n\n if (imgSrc) {\n var $img = h(BCardImg, {\n props: pluckProps(cardImgProps, props, unprefixPropName.bind(null, 'img'))\n });\n\n if (imgBottom) {\n $imgLast = $img;\n } else {\n $imgFirst = $img;\n }\n }\n\n var $header = h();\n var hasHeaderSlot = hasNormalizedSlot(SLOT_NAME_HEADER, $scopedSlots, $slots);\n\n if (hasHeaderSlot || header || headerHtml) {\n $header = h(BCardHeader, {\n props: pluckProps(BCardHeaderProps, props),\n domProps: hasHeaderSlot ? {} : htmlOrText(headerHtml, header)\n }, normalizeSlot(SLOT_NAME_HEADER, slotScope, $scopedSlots, $slots));\n }\n\n var $content = normalizeSlot(SLOT_NAME_DEFAULT, slotScope, $scopedSlots, $slots); // Wrap content in `` when `noBody` prop set\n\n if (!props.noBody) {\n $content = h(BCardBody, {\n props: pluckProps(BCardBodyProps, props)\n }, $content); // When the `overlap` prop is set we need to wrap the `` and ``\n // into a relative positioned wrapper to don't distract a potential header or footer\n\n if (props.overlay && imgSrc) {\n $content = h('div', {\n staticClass: 'position-relative'\n }, [$imgFirst, $content, $imgLast]); // Reset image variables since they are already in the wrapper\n\n $imgFirst = h();\n $imgLast = h();\n }\n }\n\n var $footer = h();\n var hasFooterSlot = hasNormalizedSlot(SLOT_NAME_FOOTER, $scopedSlots, $slots);\n\n if (hasFooterSlot || footer || footerHtml) {\n $footer = h(BCardFooter, {\n props: pluckProps(BCardFooterProps, props),\n domProps: hasHeaderSlot ? {} : htmlOrText(footerHtml, footer)\n }, normalizeSlot(SLOT_NAME_FOOTER, slotScope, $scopedSlots, $slots));\n }\n\n return h(props.tag, mergeData(data, {\n staticClass: 'card',\n class: (_class = {\n 'flex-row': imgLeft || imgStart,\n 'flex-row-reverse': (imgRight || imgEnd) && !(imgLeft || imgStart)\n }, _defineProperty(_class, \"text-\".concat(align), align), _defineProperty(_class, \"bg-\".concat(bgVariant), bgVariant), _defineProperty(_class, \"border-\".concat(borderVariant), borderVariant), _defineProperty(_class, \"text-\".concat(textVariant), textVariant), _class)\n }), [$imgFirst, $header, $content, $footer, $imgLast]);\n }\n});","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n// v-b-visible\n// Private visibility check directive\n// Based on IntersectionObserver\n//\n// Usage:\n// v-b-visibility..=\"\"\n//\n// Value:\n// : method to be called when visibility state changes, receives one arg:\n// true: element is visible\n// false: element is not visible\n// null: IntersectionObserver not supported\n//\n// Modifiers:\n// : a positive decimal value of pixels away from viewport edge\n// before being considered \"visible\". default is 0\n// : keyword 'once', meaning when the element becomes visible and\n// callback is called observation/notification will stop.\n//\n// When used in a render function:\n// export default {\n// directives: { 'b-visible': VBVisible },\n// render(h) {\n// h(\n// 'div',\n// {\n// directives: [\n// { name: 'b-visible', value=this.callback, modifiers: { '123':true, 'once':true } }\n// ]\n// }\n// )\n// }\nimport { RX_DIGITS } from '../../constants/regex';\nimport { requestAF } from '../../utils/dom';\nimport { isFunction } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { clone, keys } from '../../utils/object';\nimport { nextTick } from '../../vue';\nvar OBSERVER_PROP_NAME = '__bv__visibility_observer';\n\nvar VisibilityObserver = /*#__PURE__*/function () {\n function VisibilityObserver(el, options) {\n _classCallCheck(this, VisibilityObserver);\n\n this.el = el;\n this.callback = options.callback;\n this.margin = options.margin || 0;\n this.once = options.once || false;\n this.observer = null;\n this.visible = undefined;\n this.doneOnce = false; // Create the observer instance (if possible)\n\n this.createObserver();\n }\n\n _createClass(VisibilityObserver, [{\n key: \"createObserver\",\n value: function createObserver() {\n var _this = this;\n\n // Remove any previous observer\n if (this.observer) {\n /* istanbul ignore next */\n this.stop();\n } // Should only be called once and `callback` prop should be a function\n\n\n if (this.doneOnce || !isFunction(this.callback)) {\n /* istanbul ignore next */\n return;\n } // Create the observer instance\n\n\n try {\n // Future: Possibly add in other modifiers for left/right/top/bottom\n // offsets, root element reference, and thresholds\n this.observer = new IntersectionObserver(this.handler.bind(this), {\n // `null` = 'viewport'\n root: null,\n // Pixels away from view port to consider \"visible\"\n rootMargin: this.margin,\n // Intersection ratio of el and root (as a value from 0 to 1)\n threshold: 0\n });\n } catch (_unused) {\n // No IntersectionObserver support, so just stop trying to observe\n this.doneOnce = true;\n this.observer = undefined;\n this.callback(null);\n return;\n } // Start observing in a `$nextTick()` (to allow DOM to complete rendering)\n\n /* istanbul ignore next: IntersectionObserver not supported in JSDOM */\n\n\n nextTick(function () {\n requestAF(function () {\n // Placed in an `if` just in case we were destroyed before\n // this `requestAnimationFrame` runs\n if (_this.observer) {\n _this.observer.observe(_this.el);\n }\n });\n });\n }\n /* istanbul ignore next */\n\n }, {\n key: \"handler\",\n value: function handler(entries) {\n var entry = entries ? entries[0] : {};\n var isIntersecting = Boolean(entry.isIntersecting || entry.intersectionRatio > 0.0);\n\n if (isIntersecting !== this.visible) {\n this.visible = isIntersecting;\n this.callback(isIntersecting);\n\n if (this.once && this.visible) {\n this.doneOnce = true;\n this.stop();\n }\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n /* istanbul ignore next */\n this.observer && this.observer.disconnect();\n this.observer = null;\n }\n }]);\n\n return VisibilityObserver;\n}();\n\nvar destroy = function destroy(el) {\n var observer = el[OBSERVER_PROP_NAME];\n\n if (observer && observer.stop) {\n observer.stop();\n }\n\n delete el[OBSERVER_PROP_NAME];\n};\n\nvar bind = function bind(el, _ref) {\n var value = _ref.value,\n modifiers = _ref.modifiers;\n // `value` is the callback function\n var options = {\n margin: '0px',\n once: false,\n callback: value\n }; // Parse modifiers\n\n keys(modifiers).forEach(function (mod) {\n /* istanbul ignore else: Until is switched to use this directive */\n if (RX_DIGITS.test(mod)) {\n options.margin = \"\".concat(mod, \"px\");\n } else if (mod.toLowerCase() === 'once') {\n options.once = true;\n }\n }); // Destroy any previous observer\n\n destroy(el); // Create new observer\n\n el[OBSERVER_PROP_NAME] = new VisibilityObserver(el, options); // Store the current modifiers on the object (cloned)\n\n el[OBSERVER_PROP_NAME]._prevModifiers = clone(modifiers);\n}; // When the directive options may have been updated (or element)\n\n\nvar componentUpdated = function componentUpdated(el, _ref2, vnode) {\n var value = _ref2.value,\n oldValue = _ref2.oldValue,\n modifiers = _ref2.modifiers;\n // Compare value/oldValue and modifiers to see if anything has changed\n // and if so, destroy old observer and create new observer\n\n /* istanbul ignore next */\n modifiers = clone(modifiers);\n /* istanbul ignore next */\n\n if (el && (value !== oldValue || !el[OBSERVER_PROP_NAME] || !looseEqual(modifiers, el[OBSERVER_PROP_NAME]._prevModifiers))) {\n // Re-bind on element\n bind(el, {\n value: value,\n modifiers: modifiers\n }, vnode);\n }\n}; // When directive un-binds from element\n\n\nvar unbind = function unbind(el) {\n // Remove the observer\n destroy(el);\n}; // Export the directive\n\n\nexport var VBVisible = {\n bind: bind,\n componentUpdated: componentUpdated,\n unbind: unbind\n};","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend } from '../../vue';\nimport { NAME_IMG_LAZY } from '../../constants/components';\nimport { HAS_INTERACTION_OBSERVER_SUPPORT } from '../../constants/env';\nimport { MODEL_EVENT_NAME_PREFIX } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { concat } from '../../utils/array';\nimport { requestAF } from '../../utils/dom';\nimport { identity } from '../../utils/identity';\nimport { toInteger } from '../../utils/number';\nimport { omit } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { VBVisible } from '../../directives/visible/visible';\nimport { BImg, props as BImgProps } from './img'; // --- Constants ---\n\nvar MODEL_PROP_NAME_SHOW = 'show';\nvar MODEL_EVENT_NAME_SHOW = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_SHOW; // --- Props ---\n\nvar imgProps = omit(BImgProps, ['blank']);\nexport var props = makePropsConfigurable(_objectSpread(_objectSpread({}, imgProps), {}, _defineProperty({\n blankHeight: makeProp(PROP_TYPE_NUMBER_STRING),\n // If `null`, a blank image is generated\n blankSrc: makeProp(PROP_TYPE_STRING, null),\n blankWidth: makeProp(PROP_TYPE_NUMBER_STRING),\n // Distance away from viewport (in pixels)\n // before being considered \"visible\"\n offset: makeProp(PROP_TYPE_NUMBER_STRING, 360)\n}, MODEL_PROP_NAME_SHOW, makeProp(PROP_TYPE_BOOLEAN, false))), NAME_IMG_LAZY); // --- Main component ---\n// @vue/component\n\nexport var BImgLazy = /*#__PURE__*/extend({\n name: NAME_IMG_LAZY,\n directives: {\n 'b-visible': VBVisible\n },\n props: props,\n data: function data() {\n return {\n isShown: this[MODEL_PROP_NAME_SHOW]\n };\n },\n computed: {\n computedSrc: function computedSrc() {\n var blankSrc = this.blankSrc;\n return !blankSrc || this.isShown ? this.src : blankSrc;\n },\n computedBlank: function computedBlank() {\n return !(this.isShown || this.blankSrc);\n },\n computedWidth: function computedWidth() {\n var width = this.width;\n return this.isShown ? width : this.blankWidth || width;\n },\n computedHeight: function computedHeight() {\n var height = this.height;\n return this.isShown ? height : this.blankHeight || height;\n },\n computedSrcset: function computedSrcset() {\n var srcset = concat(this.srcset).filter(identity).join(',');\n return srcset && (!this.blankSrc || this.isShown) ? srcset : null;\n },\n computedSizes: function computedSizes() {\n var sizes = concat(this.sizes).filter(identity).join(',');\n return sizes && (!this.blankSrc || this.isShown) ? sizes : null;\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME_SHOW, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n // If `IntersectionObserver` support is not available, image is always shown\n var visible = HAS_INTERACTION_OBSERVER_SUPPORT ? newValue : true;\n this.isShown = visible; // Ensure the show prop is synced (when no `IntersectionObserver`)\n\n if (newValue !== visible) {\n this.$nextTick(this.updateShowProp);\n }\n }\n }), _defineProperty(_watch, \"isShown\", function isShown(newValue, oldValue) {\n // Update synched show prop\n if (newValue !== oldValue) {\n this.updateShowProp();\n }\n }), _watch),\n mounted: function mounted() {\n var _this = this;\n\n // If `IntersectionObserver` is not available, image is always shown\n this.$nextTick(function () {\n _this.isShown = HAS_INTERACTION_OBSERVER_SUPPORT ? _this[MODEL_PROP_NAME_SHOW] : true;\n });\n },\n methods: {\n updateShowProp: function updateShowProp() {\n this.$emit(MODEL_EVENT_NAME_SHOW, this.isShown);\n },\n doShow: function doShow(visible) {\n var _this2 = this;\n\n // If IntersectionObserver is not supported, the callback\n // will be called with `null` rather than `true` or `false`\n if ((visible || visible === null) && !this.isShown) {\n // In a `requestAF()` to render the `blank` placeholder properly\n // for fast loading images in some browsers (i.e. Firefox)\n requestAF(function () {\n _this2.isShown = true;\n });\n }\n }\n },\n render: function render(h) {\n var directives = [];\n\n if (!this.isShown) {\n var _modifiers;\n\n // We only add the visible directive if we are not shown\n directives.push({\n // Visible directive will silently do nothing if\n // `IntersectionObserver` is not supported\n name: 'b-visible',\n // Value expects a callback (passed one arg of `visible` = `true` or `false`)\n value: this.doShow,\n modifiers: (_modifiers = {}, _defineProperty(_modifiers, \"\".concat(toInteger(this.offset, 0)), true), _defineProperty(_modifiers, \"once\", true), _modifiers)\n });\n }\n\n return h(BImg, {\n directives: directives,\n props: _objectSpread(_objectSpread({}, pluckProps(imgProps, this.$props)), {}, {\n // Computed value props\n src: this.computedSrc,\n blank: this.computedBlank,\n width: this.computedWidth,\n height: this.computedHeight,\n srcset: this.computedSrcset,\n sizes: this.computedSizes\n })\n });\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend, mergeData } from '../../vue';\nimport { NAME_CARD_IMG_LAZY } from '../../constants/components';\nimport { keys, omit, sortKeys } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { props as BImgProps } from '../image/img';\nimport { BImgLazy, props as BImgLazyProps } from '../image/img-lazy';\nimport { props as BCardImgProps } from './card-img'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, omit(BImgLazyProps, keys(BImgProps))), omit(BCardImgProps, ['src', 'alt', 'width', 'height']))), NAME_CARD_IMG_LAZY); // --- Main component ---\n// @vue/component\n\nexport var BCardImgLazy = /*#__PURE__*/extend({\n name: NAME_CARD_IMG_LAZY,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data;\n var baseClass = 'card-img';\n\n if (props.top) {\n baseClass += '-top';\n } else if (props.right || props.end) {\n baseClass += '-right';\n } else if (props.bottom) {\n baseClass += '-bottom';\n } else if (props.left || props.start) {\n baseClass += '-left';\n }\n\n return h(BImgLazy, mergeData(data, {\n class: [baseClass],\n // Exclude `left` and `right` props before passing to ``\n props: omit(props, ['left', 'right'])\n }));\n }\n});","import { extend, mergeData } from '../../vue';\nimport { NAME_CARD_TEXT } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n textTag: makeProp(PROP_TYPE_STRING, 'p')\n}, NAME_CARD_TEXT); // --- Main component ---\n// @vue/component\n\nexport var BCardText = /*#__PURE__*/extend({\n name: NAME_CARD_TEXT,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.textTag, mergeData(data, {\n staticClass: 'card-text'\n }), children);\n }\n});","import { extend, mergeData } from '../../vue';\nimport { NAME_CARD_GROUP } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n columns: makeProp(PROP_TYPE_BOOLEAN, false),\n deck: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_CARD_GROUP); // --- Main component ---\n// @vue/component\n\nexport var BCardGroup = /*#__PURE__*/extend({\n name: NAME_CARD_GROUP,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.tag, mergeData(data, {\n class: props.deck ? 'card-deck' : props.columns ? 'card-columns' : 'card-group'\n }), children);\n }\n});","import { BCard } from './card';\nimport { BCardHeader } from './card-header';\nimport { BCardBody } from './card-body';\nimport { BCardTitle } from './card-title';\nimport { BCardSubTitle } from './card-sub-title';\nimport { BCardFooter } from './card-footer';\nimport { BCardImg } from './card-img';\nimport { BCardImgLazy } from './card-img-lazy';\nimport { BCardText } from './card-text';\nimport { BCardGroup } from './card-group';\nimport { pluginFactory } from '../../utils/plugins';\nvar CardPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BCard: BCard,\n BCardHeader: BCardHeader,\n BCardBody: BCardBody,\n BCardTitle: BCardTitle,\n BCardSubTitle: BCardSubTitle,\n BCardFooter: BCardFooter,\n BCardImg: BCardImg,\n BCardImgLazy: BCardImgLazy,\n BCardText: BCardText,\n BCardGroup: BCardGroup\n }\n});\nexport { CardPlugin, BCard, BCardHeader, BCardBody, BCardTitle, BCardSubTitle, BCardFooter, BCardImg, BCardImgLazy, BCardText, BCardGroup };","export var noop = function noop() {};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { MutationObs, isElement } from './dom';\nimport { warnNoMutationObserverSupport } from './warn';\n/**\n * Observe a DOM element changes, falls back to eventListener mode\n * @param {Element} el The DOM element to observe\n * @param {Function} callback callback to be called on change\n * @param {object} [options={childList: true, subtree: true}] observe options\n * @see https://stackoverflow.com/questions/3219758\n */\n\nexport var observeDom = function observeDom(el, callback, options)\n/* istanbul ignore next: difficult to test in JSDOM */\n{\n // Handle cases where we might be passed a Vue instance\n el = el ? el.$el || el : null; // Early exit when we have no element\n\n /* istanbul ignore next: difficult to test in JSDOM */\n\n if (!isElement(el)) {\n return null;\n } // Exit and throw a warning when `MutationObserver` isn't available\n\n\n if (warnNoMutationObserverSupport('observeDom')) {\n return null;\n } // Define a new observer\n\n\n var obs = new MutationObs(function (mutations) {\n var changed = false; // A mutation can contain several change records, so we loop\n // through them to see what has changed\n // We break out of the loop early if any \"significant\" change\n // has been detected\n\n for (var i = 0; i < mutations.length && !changed; i++) {\n // The mutation record\n var mutation = mutations[i]; // Mutation type\n\n var type = mutation.type; // DOM node (could be any DOM node type - HTMLElement, Text, comment, etc.)\n\n var target = mutation.target; // Detect whether a change happened based on type and target\n\n if (type === 'characterData' && target.nodeType === Node.TEXT_NODE) {\n // We ignore nodes that are not TEXT (i.e. comments, etc.)\n // as they don't change layout\n changed = true;\n } else if (type === 'attributes') {\n changed = true;\n } else if (type === 'childList' && (mutation.addedNodes.length > 0 || mutation.removedNodes.length > 0)) {\n // This includes HTMLElement and text nodes being\n // added/removed/re-arranged\n changed = true;\n }\n } // We only call the callback if a change that could affect\n // layout/size truly happened\n\n\n if (changed) {\n callback();\n }\n }); // Have the observer observe foo for changes in children, etc\n\n obs.observe(el, _objectSpread({\n childList: true,\n subtree: true\n }, options)); // We return a reference to the observer so that `obs.disconnect()`\n // can be called if necessary\n // To reduce overhead when the root element is hidden\n\n return obs;\n};","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend } from '../../vue';\nimport { NAME_CAROUSEL } from '../../constants/components';\nimport { IS_BROWSER, HAS_POINTER_EVENT_SUPPORT, HAS_TOUCH_SUPPORT } from '../../constants/env';\nimport { EVENT_NAME_PAUSED, EVENT_NAME_SLIDING_END, EVENT_NAME_SLIDING_START, EVENT_NAME_UNPAUSED, EVENT_OPTIONS_NO_CAPTURE } from '../../constants/events';\nimport { CODE_ENTER, CODE_LEFT, CODE_RIGHT, CODE_SPACE } from '../../constants/key-codes';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { addClass, getActiveElement, reflow, removeClass, requestAF, selectAll, setAttr } from '../../utils/dom';\nimport { eventOn, eventOff, stopEvent } from '../../utils/events';\nimport { isUndefined } from '../../utils/inspect';\nimport { mathAbs, mathFloor, mathMax, mathMin } from '../../utils/math';\nimport { makeModelMixin } from '../../utils/model';\nimport { toInteger } from '../../utils/number';\nimport { noop } from '../../utils/noop';\nimport { sortKeys } from '../../utils/object';\nimport { observeDom } from '../../utils/observe-dom';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_NUMBER,\n defaultValue: 0\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // Slide directional classes\n\n\nvar DIRECTION = {\n next: {\n dirClass: 'carousel-item-left',\n overlayClass: 'carousel-item-next'\n },\n prev: {\n dirClass: 'carousel-item-right',\n overlayClass: 'carousel-item-prev'\n }\n}; // Fallback Transition duration (with a little buffer) in ms\n\nvar TRANS_DURATION = 600 + 50; // Time for mouse compat events to fire after touch\n\nvar TOUCH_EVENT_COMPAT_WAIT = 500; // Number of pixels to consider touch move a swipe\n\nvar SWIPE_THRESHOLD = 40; // PointerEvent pointer types\n\nvar PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}; // Transition Event names\n\nvar TransitionEndEvents = {\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'transitionend',\n OTransition: 'otransitionend oTransitionEnd',\n transition: 'transitionend'\n}; // --- Helper methods ---\n// Return the browser specific transitionEnd event name\n\nvar getTransitionEndEvent = function getTransitionEndEvent(el) {\n for (var name in TransitionEndEvents) {\n if (!isUndefined(el.style[name])) {\n return TransitionEndEvents[name];\n }\n } // Fallback\n\n /* istanbul ignore next */\n\n\n return null;\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), {}, {\n background: makeProp(PROP_TYPE_STRING),\n controls: makeProp(PROP_TYPE_BOOLEAN, false),\n // Enable cross-fade animation instead of slide animation\n fade: makeProp(PROP_TYPE_BOOLEAN, false),\n // Sniffed by carousel-slide\n imgHeight: makeProp(PROP_TYPE_NUMBER_STRING),\n // Sniffed by carousel-slide\n imgWidth: makeProp(PROP_TYPE_NUMBER_STRING),\n indicators: makeProp(PROP_TYPE_BOOLEAN, false),\n interval: makeProp(PROP_TYPE_NUMBER, 5000),\n labelGotoSlide: makeProp(PROP_TYPE_STRING, 'Goto slide'),\n labelIndicators: makeProp(PROP_TYPE_STRING, 'Select a slide to display'),\n labelNext: makeProp(PROP_TYPE_STRING, 'Next slide'),\n labelPrev: makeProp(PROP_TYPE_STRING, 'Previous slide'),\n // Disable slide/fade animation\n noAnimation: makeProp(PROP_TYPE_BOOLEAN, false),\n // Disable pause on hover\n noHoverPause: makeProp(PROP_TYPE_BOOLEAN, false),\n // Sniffed by carousel-slide\n noTouch: makeProp(PROP_TYPE_BOOLEAN, false),\n // Disable wrapping/looping when start/end is reached\n noWrap: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_CAROUSEL); // --- Main component ---\n// @vue/component\n\nexport var BCarousel = /*#__PURE__*/extend({\n name: NAME_CAROUSEL,\n mixins: [idMixin, modelMixin, normalizeSlotMixin],\n provide: function provide() {\n var _this = this;\n\n return {\n getBvCarousel: function getBvCarousel() {\n return _this;\n }\n };\n },\n props: props,\n data: function data() {\n return {\n index: this[MODEL_PROP_NAME] || 0,\n isSliding: false,\n transitionEndEvent: null,\n slides: [],\n direction: null,\n isPaused: !(toInteger(this.interval, 0) > 0),\n // Touch event handling values\n touchStartX: 0,\n touchDeltaX: 0\n };\n },\n computed: {\n numSlides: function numSlides() {\n return this.slides.length;\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n this.setSlide(toInteger(newValue, 0));\n }\n }), _defineProperty(_watch, \"interval\", function interval(newValue, oldValue) {\n /* istanbul ignore next */\n if (newValue === oldValue) {\n return;\n }\n\n if (!newValue) {\n // Pausing slide show\n this.pause(false);\n } else {\n // Restarting or Changing interval\n this.pause(true);\n this.start(false);\n }\n }), _defineProperty(_watch, \"isPaused\", function isPaused(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.$emit(newValue ? EVENT_NAME_PAUSED : EVENT_NAME_UNPAUSED);\n }\n }), _defineProperty(_watch, \"index\", function index(to, from) {\n /* istanbul ignore next */\n if (to === from || this.isSliding) {\n return;\n }\n\n this.doSlide(to, from);\n }), _watch),\n created: function created() {\n // Create private non-reactive props\n this.$_interval = null;\n this.$_animationTimeout = null;\n this.$_touchTimeout = null;\n this.$_observer = null; // Set initial paused state\n\n this.isPaused = !(toInteger(this.interval, 0) > 0);\n },\n mounted: function mounted() {\n // Cache current browser transitionend event name\n this.transitionEndEvent = getTransitionEndEvent(this.$el) || null; // Get all slides\n\n this.updateSlides(); // Observe child changes so we can update slide list\n\n this.setObserver(true);\n },\n beforeDestroy: function beforeDestroy() {\n this.clearInterval();\n this.clearAnimationTimeout();\n this.clearTouchTimeout();\n this.setObserver(false);\n },\n methods: {\n clearInterval: function (_clearInterval) {\n function clearInterval() {\n return _clearInterval.apply(this, arguments);\n }\n\n clearInterval.toString = function () {\n return _clearInterval.toString();\n };\n\n return clearInterval;\n }(function () {\n clearInterval(this.$_interval);\n this.$_interval = null;\n }),\n clearAnimationTimeout: function clearAnimationTimeout() {\n clearTimeout(this.$_animationTimeout);\n this.$_animationTimeout = null;\n },\n clearTouchTimeout: function clearTouchTimeout() {\n clearTimeout(this.$_touchTimeout);\n this.$_touchTimeout = null;\n },\n setObserver: function setObserver() {\n var on = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n this.$_observer && this.$_observer.disconnect();\n this.$_observer = null;\n\n if (on) {\n this.$_observer = observeDom(this.$refs.inner, this.updateSlides.bind(this), {\n subtree: false,\n childList: true,\n attributes: true,\n attributeFilter: ['id']\n });\n }\n },\n // Set slide\n setSlide: function setSlide(slide) {\n var _this2 = this;\n\n var direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n // Don't animate when page is not visible\n\n /* istanbul ignore if: difficult to test */\n if (IS_BROWSER && document.visibilityState && document.hidden) {\n return;\n }\n\n var noWrap = this.noWrap;\n var numSlides = this.numSlides; // Make sure we have an integer (you never know!)\n\n slide = mathFloor(slide); // Don't do anything if nothing to slide to\n\n if (numSlides === 0) {\n return;\n } // Don't change slide while transitioning, wait until transition is done\n\n\n if (this.isSliding) {\n // Schedule slide after sliding complete\n this.$once(EVENT_NAME_SLIDING_END, function () {\n // Wrap in `requestAF()` to allow the slide to properly finish to avoid glitching\n requestAF(function () {\n return _this2.setSlide(slide, direction);\n });\n });\n return;\n }\n\n this.direction = direction; // Set new slide index\n // Wrap around if necessary (if no-wrap not enabled)\n\n this.index = slide >= numSlides ? noWrap ? numSlides - 1 : 0 : slide < 0 ? noWrap ? 0 : numSlides - 1 : slide; // Ensure the v-model is synched up if no-wrap is enabled\n // and user tried to slide pass either ends\n\n if (noWrap && this.index !== slide && this.index !== this[MODEL_PROP_NAME]) {\n this.$emit(MODEL_EVENT_NAME, this.index);\n }\n },\n // Previous slide\n prev: function prev() {\n this.setSlide(this.index - 1, 'prev');\n },\n // Next slide\n next: function next() {\n this.setSlide(this.index + 1, 'next');\n },\n // Pause auto rotation\n pause: function pause(event) {\n if (!event) {\n this.isPaused = true;\n }\n\n this.clearInterval();\n },\n // Start auto rotate slides\n start: function start(event) {\n if (!event) {\n this.isPaused = false;\n }\n /* istanbul ignore next: most likely will never happen, but just in case */\n\n\n this.clearInterval(); // Don't start if no interval, or less than 2 slides\n\n if (this.interval && this.numSlides > 1) {\n this.$_interval = setInterval(this.next, mathMax(1000, this.interval));\n }\n },\n // Restart auto rotate slides when focus/hover leaves the carousel\n\n /* istanbul ignore next */\n restart: function restart() {\n if (!this.$el.contains(getActiveElement())) {\n this.start();\n }\n },\n doSlide: function doSlide(to, from) {\n var _this3 = this;\n\n var isCycling = Boolean(this.interval); // Determine sliding direction\n\n var direction = this.calcDirection(this.direction, from, to);\n var overlayClass = direction.overlayClass;\n var dirClass = direction.dirClass; // Determine current and next slides\n\n var currentSlide = this.slides[from];\n var nextSlide = this.slides[to]; // Don't do anything if there aren't any slides to slide to\n\n if (!currentSlide || !nextSlide) {\n /* istanbul ignore next */\n return;\n } // Start animating\n\n\n this.isSliding = true;\n\n if (isCycling) {\n this.pause(false);\n }\n\n this.$emit(EVENT_NAME_SLIDING_START, to); // Update v-model\n\n this.$emit(MODEL_EVENT_NAME, this.index);\n\n if (this.noAnimation) {\n addClass(nextSlide, 'active');\n removeClass(currentSlide, 'active');\n this.isSliding = false; // Notify ourselves that we're done sliding (slid)\n\n this.$nextTick(function () {\n return _this3.$emit(EVENT_NAME_SLIDING_END, to);\n });\n } else {\n addClass(nextSlide, overlayClass); // Trigger a reflow of next slide\n\n reflow(nextSlide);\n addClass(currentSlide, dirClass);\n addClass(nextSlide, dirClass); // Transition End handler\n\n var called = false;\n /* istanbul ignore next: difficult to test */\n\n var onceTransEnd = function onceTransEnd() {\n if (called) {\n return;\n }\n\n called = true;\n /* istanbul ignore if: transition events cant be tested in JSDOM */\n\n if (_this3.transitionEndEvent) {\n var events = _this3.transitionEndEvent.split(/\\s+/);\n\n events.forEach(function (event) {\n return eventOff(nextSlide, event, onceTransEnd, EVENT_OPTIONS_NO_CAPTURE);\n });\n }\n\n _this3.clearAnimationTimeout();\n\n removeClass(nextSlide, dirClass);\n removeClass(nextSlide, overlayClass);\n addClass(nextSlide, 'active');\n removeClass(currentSlide, 'active');\n removeClass(currentSlide, dirClass);\n removeClass(currentSlide, overlayClass);\n setAttr(currentSlide, 'aria-current', 'false');\n setAttr(nextSlide, 'aria-current', 'true');\n setAttr(currentSlide, 'aria-hidden', 'true');\n setAttr(nextSlide, 'aria-hidden', 'false');\n _this3.isSliding = false;\n _this3.direction = null; // Notify ourselves that we're done sliding (slid)\n\n _this3.$nextTick(function () {\n return _this3.$emit(EVENT_NAME_SLIDING_END, to);\n });\n }; // Set up transitionend handler\n\n /* istanbul ignore if: transition events cant be tested in JSDOM */\n\n\n if (this.transitionEndEvent) {\n var events = this.transitionEndEvent.split(/\\s+/);\n events.forEach(function (event) {\n return eventOn(nextSlide, event, onceTransEnd, EVENT_OPTIONS_NO_CAPTURE);\n });\n } // Fallback to setTimeout()\n\n\n this.$_animationTimeout = setTimeout(onceTransEnd, TRANS_DURATION);\n }\n\n if (isCycling) {\n this.start(false);\n }\n },\n // Update slide list\n updateSlides: function updateSlides() {\n this.pause(true); // Get all slides as DOM elements\n\n this.slides = selectAll('.carousel-item', this.$refs.inner);\n var numSlides = this.slides.length; // Keep slide number in range\n\n var index = mathMax(0, mathMin(mathFloor(this.index), numSlides - 1));\n this.slides.forEach(function (slide, idx) {\n var n = idx + 1;\n\n if (idx === index) {\n addClass(slide, 'active');\n setAttr(slide, 'aria-current', 'true');\n } else {\n removeClass(slide, 'active');\n setAttr(slide, 'aria-current', 'false');\n }\n\n setAttr(slide, 'aria-posinset', String(n));\n setAttr(slide, 'aria-setsize', String(numSlides));\n }); // Set slide as active\n\n this.setSlide(index);\n this.start(this.isPaused);\n },\n calcDirection: function calcDirection() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var curIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var nextIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n if (!direction) {\n return nextIndex > curIndex ? DIRECTION.next : DIRECTION.prev;\n }\n\n return DIRECTION[direction];\n },\n handleClick: function handleClick(event, fn) {\n var keyCode = event.keyCode;\n\n if (event.type === 'click' || keyCode === CODE_SPACE || keyCode === CODE_ENTER) {\n stopEvent(event);\n fn();\n }\n },\n\n /* istanbul ignore next: JSDOM doesn't support touch events */\n handleSwipe: function handleSwipe() {\n var absDeltaX = mathAbs(this.touchDeltaX);\n\n if (absDeltaX <= SWIPE_THRESHOLD) {\n return;\n }\n\n var direction = absDeltaX / this.touchDeltaX; // Reset touch delta X\n // https://github.com/twbs/bootstrap/pull/28558\n\n this.touchDeltaX = 0;\n\n if (direction > 0) {\n // Swipe left\n this.prev();\n } else if (direction < 0) {\n // Swipe right\n this.next();\n }\n },\n\n /* istanbul ignore next: JSDOM doesn't support touch events */\n touchStart: function touchStart(event) {\n if (HAS_POINTER_EVENT_SUPPORT && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX;\n } else if (!HAS_POINTER_EVENT_SUPPORT) {\n this.touchStartX = event.touches[0].clientX;\n }\n },\n\n /* istanbul ignore next: JSDOM doesn't support touch events */\n touchMove: function touchMove(event) {\n // Ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0;\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX;\n }\n },\n\n /* istanbul ignore next: JSDOM doesn't support touch events */\n touchEnd: function touchEnd(event) {\n if (HAS_POINTER_EVENT_SUPPORT && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX;\n }\n\n this.handleSwipe(); // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause(false);\n this.clearTouchTimeout();\n this.$_touchTimeout = setTimeout(this.start, TOUCH_EVENT_COMPAT_WAIT + mathMax(1000, this.interval));\n }\n },\n render: function render(h) {\n var _this4 = this;\n\n var indicators = this.indicators,\n background = this.background,\n noAnimation = this.noAnimation,\n noHoverPause = this.noHoverPause,\n noTouch = this.noTouch,\n index = this.index,\n isSliding = this.isSliding,\n pause = this.pause,\n restart = this.restart,\n touchStart = this.touchStart,\n touchEnd = this.touchEnd;\n var idInner = this.safeId('__BV_inner_'); // Wrapper for slides\n\n var $inner = h('div', {\n staticClass: 'carousel-inner',\n attrs: {\n id: idInner,\n role: 'list'\n },\n ref: 'inner'\n }, [this.normalizeSlot()]); // Prev and next controls\n\n var $controls = h();\n\n if (this.controls) {\n var makeControl = function makeControl(direction, label, handler) {\n var handlerWrapper = function handlerWrapper(event) {\n /* istanbul ignore next */\n if (!isSliding) {\n _this4.handleClick(event, handler);\n } else {\n stopEvent(event, {\n propagation: false\n });\n }\n };\n\n return h('a', {\n staticClass: \"carousel-control-\".concat(direction),\n attrs: {\n href: '#',\n role: 'button',\n 'aria-controls': idInner,\n 'aria-disabled': isSliding ? 'true' : null\n },\n on: {\n click: handlerWrapper,\n keydown: handlerWrapper\n }\n }, [h('span', {\n staticClass: \"carousel-control-\".concat(direction, \"-icon\"),\n attrs: {\n 'aria-hidden': 'true'\n }\n }), h('span', {\n class: 'sr-only'\n }, [label])]);\n };\n\n $controls = [makeControl('prev', this.labelPrev, this.prev), makeControl('next', this.labelNext, this.next)];\n } // Indicators\n\n\n var $indicators = h('ol', {\n staticClass: 'carousel-indicators',\n directives: [{\n name: 'show',\n value: indicators\n }],\n attrs: {\n id: this.safeId('__BV_indicators_'),\n 'aria-hidden': indicators ? 'false' : 'true',\n 'aria-label': this.labelIndicators,\n 'aria-owns': idInner\n }\n }, this.slides.map(function (slide, i) {\n var handler = function handler(event) {\n _this4.handleClick(event, function () {\n _this4.setSlide(i);\n });\n };\n\n return h('li', {\n class: {\n active: i === index\n },\n attrs: {\n role: 'button',\n id: _this4.safeId(\"__BV_indicator_\".concat(i + 1, \"_\")),\n tabindex: indicators ? '0' : '-1',\n 'aria-current': i === index ? 'true' : 'false',\n 'aria-label': \"\".concat(_this4.labelGotoSlide, \" \").concat(i + 1),\n 'aria-describedby': slide.id || null,\n 'aria-controls': idInner\n },\n on: {\n click: handler,\n keydown: handler\n },\n key: \"slide_\".concat(i)\n });\n }));\n var on = {\n mouseenter: noHoverPause ? noop : pause,\n mouseleave: noHoverPause ? noop : restart,\n focusin: pause,\n focusout: restart,\n keydown: function keydown(event) {\n /* istanbul ignore next */\n if (/input|textarea/i.test(event.target.tagName)) {\n return;\n }\n\n var keyCode = event.keyCode;\n\n if (keyCode === CODE_LEFT || keyCode === CODE_RIGHT) {\n stopEvent(event);\n\n _this4[keyCode === CODE_LEFT ? 'prev' : 'next']();\n }\n }\n }; // Touch support event handlers for environment\n\n if (HAS_TOUCH_SUPPORT && !noTouch) {\n // Attach appropriate listeners (prepend event name with '&' for passive mode)\n\n /* istanbul ignore next: JSDOM doesn't support touch events */\n if (HAS_POINTER_EVENT_SUPPORT) {\n on['&pointerdown'] = touchStart;\n on['&pointerup'] = touchEnd;\n } else {\n on['&touchstart'] = touchStart;\n on['&touchmove'] = this.touchMove;\n on['&touchend'] = touchEnd;\n }\n } // Return the carousel\n\n\n return h('div', {\n staticClass: 'carousel',\n class: {\n slide: !noAnimation,\n 'carousel-fade': !noAnimation && this.fade,\n 'pointer-event': HAS_TOUCH_SUPPORT && HAS_POINTER_EVENT_SUPPORT && !noTouch\n },\n style: {\n background: background\n },\n attrs: {\n role: 'region',\n id: this.safeId(),\n 'aria-busy': isSliding ? 'true' : 'false'\n },\n on: on\n }, [$inner, $controls, $indicators]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend } from '../../vue';\nimport { NAME_CAROUSEL_SLIDE } from '../../constants/components';\nimport { HAS_TOUCH_SUPPORT } from '../../constants/env';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_IMG } from '../../constants/slots';\nimport { stopEvent } from '../../utils/events';\nimport { htmlOrText } from '../../utils/html';\nimport { identity } from '../../utils/identity';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps, unprefixPropName } from '../../utils/props';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BImg } from '../image/img'; // --- Props ---\n\nvar imgProps = {\n imgAlt: makeProp(PROP_TYPE_STRING),\n imgBlank: makeProp(PROP_TYPE_BOOLEAN, false),\n imgBlankColor: makeProp(PROP_TYPE_STRING, 'transparent'),\n imgHeight: makeProp(PROP_TYPE_NUMBER_STRING),\n imgSrc: makeProp(PROP_TYPE_STRING),\n imgWidth: makeProp(PROP_TYPE_NUMBER_STRING)\n};\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, idProps), imgProps), {}, {\n background: makeProp(PROP_TYPE_STRING),\n caption: makeProp(PROP_TYPE_STRING),\n captionHtml: makeProp(PROP_TYPE_STRING),\n captionTag: makeProp(PROP_TYPE_STRING, 'h3'),\n contentTag: makeProp(PROP_TYPE_STRING, 'div'),\n contentVisibleUp: makeProp(PROP_TYPE_STRING),\n text: makeProp(PROP_TYPE_STRING),\n textHtml: makeProp(PROP_TYPE_STRING),\n textTag: makeProp(PROP_TYPE_STRING, 'p')\n})), NAME_CAROUSEL_SLIDE); // --- Main component ---\n// @vue/component\n\nexport var BCarouselSlide = /*#__PURE__*/extend({\n name: NAME_CAROUSEL_SLIDE,\n mixins: [idMixin, normalizeSlotMixin],\n inject: {\n getBvCarousel: {\n // Explicitly disable touch if not a child of carousel\n default: function _default() {\n return function () {\n return {\n noTouch: true\n };\n };\n }\n }\n },\n props: props,\n computed: {\n bvCarousel: function bvCarousel() {\n return this.getBvCarousel();\n },\n contentClasses: function contentClasses() {\n return [this.contentVisibleUp ? 'd-none' : '', this.contentVisibleUp ? \"d-\".concat(this.contentVisibleUp, \"-block\") : ''];\n },\n computedWidth: function computedWidth() {\n // Use local width, or try parent width\n return this.imgWidth || this.bvCarousel.imgWidth || null;\n },\n computedHeight: function computedHeight() {\n // Use local height, or try parent height\n return this.imgHeight || this.bvCarousel.imgHeight || null;\n }\n },\n render: function render(h) {\n var $img = this.normalizeSlot(SLOT_NAME_IMG);\n\n if (!$img && (this.imgSrc || this.imgBlank)) {\n var on = {}; // Touch support event handler\n\n /* istanbul ignore if: difficult to test in JSDOM */\n\n if (!this.bvCarousel.noTouch && HAS_TOUCH_SUPPORT) {\n on.dragstart = function (event) {\n return stopEvent(event, {\n propagation: false\n });\n };\n }\n\n $img = h(BImg, {\n props: _objectSpread(_objectSpread({}, pluckProps(imgProps, this.$props, unprefixPropName.bind(null, 'img'))), {}, {\n width: this.computedWidth,\n height: this.computedHeight,\n fluidGrow: true,\n block: true\n }),\n on: on\n });\n }\n\n var $contentChildren = [// Caption\n this.caption || this.captionHtml ? h(this.captionTag, {\n domProps: htmlOrText(this.captionHtml, this.caption)\n }) : false, // Text\n this.text || this.textHtml ? h(this.textTag, {\n domProps: htmlOrText(this.textHtml, this.text)\n }) : false, // Children\n this.normalizeSlot() || false];\n var $content = h();\n\n if ($contentChildren.some(identity)) {\n $content = h(this.contentTag, {\n staticClass: 'carousel-caption',\n class: this.contentClasses\n }, $contentChildren.map(function ($child) {\n return $child || h();\n }));\n }\n\n return h('div', {\n staticClass: 'carousel-item',\n style: {\n background: this.background || this.bvCarousel.background || null\n },\n attrs: {\n id: this.safeId(),\n role: 'listitem'\n }\n }, [$img, $content]);\n }\n});","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend } from '../../vue';\nimport { NAME_COLLAPSE } from '../../constants/components';\nimport { CLASS_NAME_SHOW } from '../../constants/classes';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, EVENT_OPTIONS_NO_CAPTURE } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { addClass, hasClass, removeClass, closest, matches, getCS } from '../../utils/dom';\nimport { getRootActionEventName, getRootEventName, eventOnOff } from '../../utils/events';\nimport { makeModelMixin } from '../../utils/model';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BVCollapse } from './helpers/bv-collapse'; // --- Constants ---\n\nvar ROOT_ACTION_EVENT_NAME_TOGGLE = getRootActionEventName(NAME_COLLAPSE, 'toggle');\nvar ROOT_ACTION_EVENT_NAME_REQUEST_STATE = getRootActionEventName(NAME_COLLAPSE, 'request-state');\nvar ROOT_EVENT_NAME_ACCORDION = getRootEventName(NAME_COLLAPSE, 'accordion');\nvar ROOT_EVENT_NAME_STATE = getRootEventName(NAME_COLLAPSE, 'state');\nvar ROOT_EVENT_NAME_SYNC_STATE = getRootEventName(NAME_COLLAPSE, 'sync-state');\n\nvar _makeModelMixin = makeModelMixin('visible', {\n type: PROP_TYPE_BOOLEAN,\n defaultValue: false\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), {}, {\n // If `true` (and `visible` is `true` on mount), animate initially visible\n accordion: makeProp(PROP_TYPE_STRING),\n appear: makeProp(PROP_TYPE_BOOLEAN, false),\n isNav: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n})), NAME_COLLAPSE); // --- Main component ---\n// @vue/component\n\nexport var BCollapse = /*#__PURE__*/extend({\n name: NAME_COLLAPSE,\n mixins: [idMixin, modelMixin, normalizeSlotMixin, listenOnRootMixin],\n props: props,\n data: function data() {\n return {\n show: this[MODEL_PROP_NAME],\n transitioning: false\n };\n },\n computed: {\n classObject: function classObject() {\n var transitioning = this.transitioning;\n return {\n 'navbar-collapse': this.isNav,\n collapse: !transitioning,\n show: this.show && !transitioning\n };\n },\n slotScope: function slotScope() {\n var _this = this;\n\n return {\n visible: this.show,\n close: function close() {\n _this.show = false;\n }\n };\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue) {\n if (newValue !== this.show) {\n this.show = newValue;\n }\n }), _defineProperty(_watch, \"show\", function show(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.emitState();\n }\n }), _watch),\n created: function created() {\n this.show = this[MODEL_PROP_NAME];\n },\n mounted: function mounted() {\n var _this2 = this;\n\n this.show = this[MODEL_PROP_NAME]; // Listen for toggle events to open/close us\n\n this.listenOnRoot(ROOT_ACTION_EVENT_NAME_TOGGLE, this.handleToggleEvent); // Listen to other collapses for accordion events\n\n this.listenOnRoot(ROOT_EVENT_NAME_ACCORDION, this.handleAccordionEvent);\n\n if (this.isNav) {\n // Set up handlers\n this.setWindowEvents(true);\n this.handleResize();\n }\n\n this.$nextTick(function () {\n _this2.emitState();\n }); // Listen for \"Sync state\" requests from `v-b-toggle`\n\n this.listenOnRoot(ROOT_ACTION_EVENT_NAME_REQUEST_STATE, function (id) {\n if (id === _this2.safeId()) {\n _this2.$nextTick(_this2.emitSync);\n }\n });\n },\n updated: function updated() {\n // Emit a private event every time this component updates to ensure\n // the toggle button is in sync with the collapse's state\n // It is emitted regardless if the visible state changes\n this.emitSync();\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n if (this.isNav) {\n this.setWindowEvents(false);\n }\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n if (this.isNav) {\n this.setWindowEvents(true);\n }\n\n this.emitSync();\n },\n beforeDestroy: function beforeDestroy() {\n // Trigger state emit if needed\n this.show = false;\n\n if (this.isNav && IS_BROWSER) {\n this.setWindowEvents(false);\n }\n },\n methods: {\n setWindowEvents: function setWindowEvents(on) {\n eventOnOff(on, window, 'resize', this.handleResize, EVENT_OPTIONS_NO_CAPTURE);\n eventOnOff(on, window, 'orientationchange', this.handleResize, EVENT_OPTIONS_NO_CAPTURE);\n },\n toggle: function toggle() {\n this.show = !this.show;\n },\n onEnter: function onEnter() {\n this.transitioning = true; // This should be moved out so we can add cancellable events\n\n this.$emit(EVENT_NAME_SHOW);\n },\n onAfterEnter: function onAfterEnter() {\n this.transitioning = false;\n this.$emit(EVENT_NAME_SHOWN);\n },\n onLeave: function onLeave() {\n this.transitioning = true; // This should be moved out so we can add cancellable events\n\n this.$emit(EVENT_NAME_HIDE);\n },\n onAfterLeave: function onAfterLeave() {\n this.transitioning = false;\n this.$emit(EVENT_NAME_HIDDEN);\n },\n emitState: function emitState() {\n var show = this.show,\n accordion = this.accordion;\n var id = this.safeId();\n this.$emit(MODEL_EVENT_NAME, show); // Let `v-b-toggle` know the state of this collapse\n\n this.emitOnRoot(ROOT_EVENT_NAME_STATE, id, show);\n\n if (accordion && show) {\n // Tell the other collapses in this accordion to close\n this.emitOnRoot(ROOT_EVENT_NAME_ACCORDION, id, accordion);\n }\n },\n emitSync: function emitSync() {\n // Emit a private event every time this component updates to ensure\n // the toggle button is in sync with the collapse's state\n // It is emitted regardless if the visible state changes\n this.emitOnRoot(ROOT_EVENT_NAME_SYNC_STATE, this.safeId(), this.show);\n },\n checkDisplayBlock: function checkDisplayBlock() {\n // Check to see if the collapse has `display: block !important` set\n // We can't set `display: none` directly on `this.$el`, as it would\n // trigger a new transition to start (or cancel a current one)\n var $el = this.$el;\n var restore = hasClass($el, CLASS_NAME_SHOW);\n removeClass($el, CLASS_NAME_SHOW);\n var isBlock = getCS($el).display === 'block';\n\n if (restore) {\n addClass($el, CLASS_NAME_SHOW);\n }\n\n return isBlock;\n },\n clickHandler: function clickHandler(event) {\n var el = event.target; // If we are in a nav/navbar, close the collapse when non-disabled link clicked\n\n /* istanbul ignore next: can't test `getComputedStyle()` in JSDOM */\n\n if (!this.isNav || !el || getCS(this.$el).display !== 'block') {\n return;\n } // Only close the collapse if it is not forced to be `display: block !important`\n\n\n if ((matches(el, '.nav-link,.dropdown-item') || closest('.nav-link,.dropdown-item', el)) && !this.checkDisplayBlock()) {\n this.show = false;\n }\n },\n handleToggleEvent: function handleToggleEvent(id) {\n if (id === this.safeId()) {\n this.toggle();\n }\n },\n handleAccordionEvent: function handleAccordionEvent(openedId, openAccordion) {\n var accordion = this.accordion,\n show = this.show;\n\n if (!accordion || accordion !== openAccordion) {\n return;\n }\n\n var isThis = openedId === this.safeId(); // Open this collapse if not shown or\n // close this collapse if shown\n\n if (isThis && !show || !isThis && show) {\n this.toggle();\n }\n },\n handleResize: function handleResize() {\n // Handler for orientation/resize to set collapsed state in nav/navbar\n this.show = getCS(this.$el).display === 'block';\n }\n },\n render: function render(h) {\n var appear = this.appear;\n var $content = h(this.tag, {\n class: this.classObject,\n directives: [{\n name: 'show',\n value: this.show\n }],\n attrs: {\n id: this.safeId()\n },\n on: {\n click: this.clickHandler\n }\n }, this.normalizeSlot(SLOT_NAME_DEFAULT, this.slotScope));\n return h(BVCollapse, {\n props: {\n appear: appear\n },\n on: {\n enter: this.onEnter,\n afterEnter: this.onAfterEnter,\n leave: this.onLeave,\n afterLeave: this.onAfterLeave\n }\n }, [$content]);\n }\n});","import { BCarousel } from './carousel';\nimport { BCarouselSlide } from './carousel-slide';\nimport { pluginFactory } from '../../utils/plugins';\nvar CarouselPlugin =\n/*#__PURE*/\npluginFactory({\n components: {\n BCarousel: BCarousel,\n BCarouselSlide: BCarouselSlide\n }\n});\nexport { CarouselPlugin, BCarousel, BCarouselSlide };","export var CLASS_NAME_SHOW = 'show';\nexport var CLASS_NAME_FADE = 'fade';","// Generic collapse transion helper component\n//\n// Note:\n// Applies the classes `collapse`, `show` and `collapsing`\n// during the enter/leave transition phases only\n// Although it appears that Vue may be leaving the classes\n// in-place after the transition completes\nimport { extend, mergeData } from '../../../vue';\nimport { NAME_COLLAPSE_HELPER } from '../../../constants/components';\nimport { PROP_TYPE_BOOLEAN } from '../../../constants/props';\nimport { getBCR, reflow, removeStyle, requestAF, setStyle } from '../../../utils/dom';\nimport { makeProp } from '../../../utils/props'; // --- Helper methods ---\n// Transition event handler helpers\n\nvar onEnter = function onEnter(el) {\n setStyle(el, 'height', 0); // In a `requestAF()` for `appear` to work\n\n requestAF(function () {\n reflow(el);\n setStyle(el, 'height', \"\".concat(el.scrollHeight, \"px\"));\n });\n};\n\nvar onAfterEnter = function onAfterEnter(el) {\n removeStyle(el, 'height');\n};\n\nvar onLeave = function onLeave(el) {\n setStyle(el, 'height', 'auto');\n setStyle(el, 'display', 'block');\n setStyle(el, 'height', \"\".concat(getBCR(el).height, \"px\"));\n reflow(el);\n setStyle(el, 'height', 0);\n};\n\nvar onAfterLeave = function onAfterLeave(el) {\n removeStyle(el, 'height');\n}; // --- Constants ---\n// Default transition props\n// `appear` will use the enter classes\n\n\nvar TRANSITION_PROPS = {\n css: true,\n enterClass: '',\n enterActiveClass: 'collapsing',\n enterToClass: 'collapse show',\n leaveClass: 'collapse show',\n leaveActiveClass: 'collapsing',\n leaveToClass: 'collapse'\n}; // Default transition handlers\n// `appear` will use the enter handlers\n\nvar TRANSITION_HANDLERS = {\n enter: onEnter,\n afterEnter: onAfterEnter,\n leave: onLeave,\n afterLeave: onAfterLeave\n}; // --- Main component ---\n\nexport var props = {\n // // If `true` (and `visible` is `true` on mount), animate initially visible\n appear: makeProp(PROP_TYPE_BOOLEAN, false)\n}; // --- Main component ---\n// @vue/component\n\nexport var BVCollapse = /*#__PURE__*/extend({\n name: NAME_COLLAPSE_HELPER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h('transition', // We merge in the `appear` prop last\n mergeData(data, {\n props: TRANSITION_PROPS,\n on: TRANSITION_HANDLERS\n }, {\n props: props\n }), // Note: `` supports a single root element only\n children);\n }\n});","import { isVue3 } from '../vue';\nexport var getInstanceFromDirective = function getInstanceFromDirective(vnode, bindings) {\n return isVue3 ? bindings.instance : vnode.context;\n};","import { NAME_COLLAPSE } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_OPTIONS_PASSIVE } from '../../constants/events';\nimport { CODE_ENTER, CODE_SPACE } from '../../constants/key-codes';\nimport { RX_HASH, RX_HASH_ID, RX_SPACE_SPLIT } from '../../constants/regex';\nimport { arrayIncludes, concat } from '../../utils/array';\nimport { getInstanceFromDirective } from '../../utils/get-instance-from-directive';\nimport { addClass, getAttr, hasAttr, isDisabled, isTag, removeAttr, removeClass, removeStyle, requestAF, setAttr, setStyle } from '../../utils/dom';\nimport { getRootActionEventName, getRootEventName, eventOn, eventOff } from '../../utils/events';\nimport { isString } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { keys } from '../../utils/object';\nimport { getEventRoot } from '../../utils/get-event-root'; // --- Constants ---\n// Classes to apply to trigger element\n\nvar CLASS_BV_TOGGLE_COLLAPSED = 'collapsed';\nvar CLASS_BV_TOGGLE_NOT_COLLAPSED = 'not-collapsed'; // Property key for handler storage\n\nvar BV_BASE = '__BV_toggle'; // Root event listener property (Function)\n\nvar BV_TOGGLE_ROOT_HANDLER = \"\".concat(BV_BASE, \"_HANDLER__\"); // Trigger element click handler property (Function)\n\nvar BV_TOGGLE_CLICK_HANDLER = \"\".concat(BV_BASE, \"_CLICK__\"); // Target visibility state property (Boolean)\n\nvar BV_TOGGLE_STATE = \"\".concat(BV_BASE, \"_STATE__\"); // Target ID list property (Array)\n\nvar BV_TOGGLE_TARGETS = \"\".concat(BV_BASE, \"_TARGETS__\"); // Commonly used strings\n\nvar STRING_FALSE = 'false';\nvar STRING_TRUE = 'true'; // Commonly used attribute names\n\nvar ATTR_ARIA_CONTROLS = 'aria-controls';\nvar ATTR_ARIA_EXPANDED = 'aria-expanded';\nvar ATTR_ROLE = 'role';\nvar ATTR_TABINDEX = 'tabindex'; // Commonly used style properties\n\nvar STYLE_OVERFLOW_ANCHOR = 'overflow-anchor'; // Emitted control event for collapse (emitted to collapse)\n\nvar ROOT_ACTION_EVENT_NAME_TOGGLE = getRootActionEventName(NAME_COLLAPSE, 'toggle'); // Listen to event for toggle state update (emitted by collapse)\n\nvar ROOT_EVENT_NAME_STATE = getRootEventName(NAME_COLLAPSE, 'state'); // Private event emitted on `$root` to ensure the toggle state is always synced\n// Gets emitted even if the state of b-collapse has not changed\n// This event is NOT to be documented as people should not be using it\n\nvar ROOT_EVENT_NAME_SYNC_STATE = getRootEventName(NAME_COLLAPSE, 'sync-state'); // Private event we send to collapse to request state update sync event\n\nvar ROOT_ACTION_EVENT_NAME_REQUEST_STATE = getRootActionEventName(NAME_COLLAPSE, 'request-state');\nvar KEYDOWN_KEY_CODES = [CODE_ENTER, CODE_SPACE]; // --- Helper methods ---\n\nvar isNonStandardTag = function isNonStandardTag(el) {\n return !arrayIncludes(['button', 'a'], el.tagName.toLowerCase());\n};\n\nvar getTargets = function getTargets(_ref, el) {\n var modifiers = _ref.modifiers,\n arg = _ref.arg,\n value = _ref.value;\n // Any modifiers are considered target IDs\n var targets = keys(modifiers || {}); // If value is a string, split out individual targets (if space delimited)\n\n value = isString(value) ? value.split(RX_SPACE_SPLIT) : value; // Support target ID as link href (`href=\"#id\"`)\n\n if (isTag(el.tagName, 'a')) {\n var href = getAttr(el, 'href') || '';\n\n if (RX_HASH_ID.test(href)) {\n targets.push(href.replace(RX_HASH, ''));\n }\n } // Add ID from `arg` (if provided), and support value\n // as a single string ID or an array of string IDs\n // If `value` is not an array or string, then it gets filtered out\n\n\n concat(arg, value).forEach(function (t) {\n return isString(t) && targets.push(t);\n }); // Return only unique and truthy target IDs\n\n return targets.filter(function (t, index, arr) {\n return t && arr.indexOf(t) === index;\n });\n};\n\nvar removeClickListener = function removeClickListener(el) {\n var handler = el[BV_TOGGLE_CLICK_HANDLER];\n\n if (handler) {\n eventOff(el, 'click', handler, EVENT_OPTIONS_PASSIVE);\n eventOff(el, 'keydown', handler, EVENT_OPTIONS_PASSIVE);\n }\n\n el[BV_TOGGLE_CLICK_HANDLER] = null;\n};\n\nvar addClickListener = function addClickListener(el, instance) {\n removeClickListener(el);\n\n if (instance) {\n var handler = function handler(event) {\n if (!(event.type === 'keydown' && !arrayIncludes(KEYDOWN_KEY_CODES, event.keyCode)) && !isDisabled(el)) {\n var targets = el[BV_TOGGLE_TARGETS] || [];\n targets.forEach(function (target) {\n getEventRoot(instance).$emit(ROOT_ACTION_EVENT_NAME_TOGGLE, target);\n });\n }\n };\n\n el[BV_TOGGLE_CLICK_HANDLER] = handler;\n eventOn(el, 'click', handler, EVENT_OPTIONS_PASSIVE);\n\n if (isNonStandardTag(el)) {\n eventOn(el, 'keydown', handler, EVENT_OPTIONS_PASSIVE);\n }\n }\n};\n\nvar removeRootListeners = function removeRootListeners(el, instance) {\n if (el[BV_TOGGLE_ROOT_HANDLER] && instance) {\n getEventRoot(instance).$off([ROOT_EVENT_NAME_STATE, ROOT_EVENT_NAME_SYNC_STATE], el[BV_TOGGLE_ROOT_HANDLER]);\n }\n\n el[BV_TOGGLE_ROOT_HANDLER] = null;\n};\n\nvar addRootListeners = function addRootListeners(el, instance) {\n removeRootListeners(el, instance);\n\n if (instance) {\n var handler = function handler(id, state) {\n // `state` will be `true` if target is expanded\n if (arrayIncludes(el[BV_TOGGLE_TARGETS] || [], id)) {\n // Set/Clear 'collapsed' visibility class state\n el[BV_TOGGLE_STATE] = state; // Set `aria-expanded` and class state on trigger element\n\n setToggleState(el, state);\n }\n };\n\n el[BV_TOGGLE_ROOT_HANDLER] = handler; // Listen for toggle state changes (public) and sync (private)\n\n getEventRoot(instance).$on([ROOT_EVENT_NAME_STATE, ROOT_EVENT_NAME_SYNC_STATE], handler);\n }\n};\n\nvar setToggleState = function setToggleState(el, state) {\n // State refers to the visibility of the collapse/sidebar\n if (state) {\n removeClass(el, CLASS_BV_TOGGLE_COLLAPSED);\n addClass(el, CLASS_BV_TOGGLE_NOT_COLLAPSED);\n setAttr(el, ATTR_ARIA_EXPANDED, STRING_TRUE);\n } else {\n removeClass(el, CLASS_BV_TOGGLE_NOT_COLLAPSED);\n addClass(el, CLASS_BV_TOGGLE_COLLAPSED);\n setAttr(el, ATTR_ARIA_EXPANDED, STRING_FALSE);\n }\n}; // Reset and remove a property from the provided element\n\n\nvar resetProp = function resetProp(el, prop) {\n el[prop] = null;\n delete el[prop];\n}; // Handle directive updates\n\n\nvar handleUpdate = function handleUpdate(el, binding, vnode) {\n /* istanbul ignore next: should never happen */\n if (!IS_BROWSER || !getInstanceFromDirective(vnode, binding)) {\n return;\n } // If element is not a button or link, we add `role=\"button\"`\n // and `tabindex=\"0\"` for accessibility reasons\n\n\n if (isNonStandardTag(el)) {\n if (!hasAttr(el, ATTR_ROLE)) {\n setAttr(el, ATTR_ROLE, 'button');\n }\n\n if (!hasAttr(el, ATTR_TABINDEX)) {\n setAttr(el, ATTR_TABINDEX, '0');\n }\n } // Ensure the collapse class and `aria-*` attributes persist\n // after element is updated (either by parent re-rendering\n // or changes to this element or its contents)\n\n\n setToggleState(el, el[BV_TOGGLE_STATE]); // Parse list of target IDs\n\n var targets = getTargets(binding, el); // Ensure the `aria-controls` hasn't been overwritten\n // or removed when vnode updates\n // Also ensure to set `overflow-anchor` to `none` to prevent\n // the browser's scroll anchoring behavior\n\n /* istanbul ignore else */\n\n if (targets.length > 0) {\n setAttr(el, ATTR_ARIA_CONTROLS, targets.join(' '));\n setStyle(el, STYLE_OVERFLOW_ANCHOR, 'none');\n } else {\n removeAttr(el, ATTR_ARIA_CONTROLS);\n removeStyle(el, STYLE_OVERFLOW_ANCHOR);\n } // Add/Update our click listener(s)\n // Wrap in a `requestAF()` to allow any previous\n // click handling to occur first\n\n\n requestAF(function () {\n addClickListener(el, getInstanceFromDirective(vnode, binding));\n }); // If targets array has changed, update\n\n if (!looseEqual(targets, el[BV_TOGGLE_TARGETS])) {\n // Update targets array to element storage\n el[BV_TOGGLE_TARGETS] = targets; // Ensure `aria-controls` is up to date\n // Request a state update from targets so that we can\n // ensure expanded state is correct (in most cases)\n\n targets.forEach(function (target) {\n getEventRoot(getInstanceFromDirective(vnode, binding)).$emit(ROOT_ACTION_EVENT_NAME_REQUEST_STATE, target);\n });\n }\n};\n/*\n * Export our directive\n */\n\n\nexport var VBToggle = {\n bind: function bind(el, binding, vnode) {\n // State is initially collapsed until we receive a state event\n el[BV_TOGGLE_STATE] = false; // Assume no targets initially\n\n el[BV_TOGGLE_TARGETS] = []; // Add our root listeners\n\n addRootListeners(el, getInstanceFromDirective(vnode, binding)); // Initial update of trigger\n\n handleUpdate(el, binding, vnode);\n },\n componentUpdated: handleUpdate,\n updated: handleUpdate,\n unbind: function unbind(el, binding, vnode) {\n removeClickListener(el); // Remove our $root listener\n\n removeRootListeners(el, getInstanceFromDirective(vnode, binding)); // Reset custom props\n\n resetProp(el, BV_TOGGLE_ROOT_HANDLER);\n resetProp(el, BV_TOGGLE_CLICK_HANDLER);\n resetProp(el, BV_TOGGLE_STATE);\n resetProp(el, BV_TOGGLE_TARGETS); // Reset classes/attrs/styles\n\n removeClass(el, CLASS_BV_TOGGLE_COLLAPSED);\n removeClass(el, CLASS_BV_TOGGLE_NOT_COLLAPSED);\n removeAttr(el, ATTR_ARIA_EXPANDED);\n removeAttr(el, ATTR_ARIA_CONTROLS);\n removeAttr(el, ATTR_ROLE);\n removeStyle(el, STYLE_OVERFLOW_ANCHOR);\n }\n};","import { VBToggle } from './toggle';\nimport { pluginFactory } from '../../utils/plugins';\nvar VBTogglePlugin = /*#__PURE__*/pluginFactory({\n directives: {\n VBToggle: VBToggle\n }\n});\nexport { VBTogglePlugin, VBToggle };","import { BCollapse } from './collapse';\nimport { VBTogglePlugin } from '../../directives/toggle';\nimport { pluginFactory } from '../../utils/plugins';\nvar CollapsePlugin = /*#__PURE__*/pluginFactory({\n components: {\n BCollapse: BCollapse\n },\n plugins: {\n VBTogglePlugin: VBTogglePlugin\n }\n});\nexport { CollapsePlugin, BCollapse };","export default typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n","import isBrowser from './isBrowser';\n\nconst timeoutDuration = (function(){\n const longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (let i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}());\n\nexport function microtaskDebounce(fn) {\n let called = false\n return () => {\n if (called) {\n return\n }\n called = true\n window.Promise.resolve().then(() => {\n called = false\n fn()\n })\n }\n}\n\nexport function taskDebounce(fn) {\n let scheduled = false;\n return () => {\n if (!scheduled) {\n scheduled = true;\n setTimeout(() => {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nconst supportsMicroTasks = isBrowser && window.Promise\n\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nexport default (supportsMicroTasks\n ? microtaskDebounce\n : taskDebounce);\n","/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nexport default function isFunction(functionToCheck) {\n const getType = {};\n return (\n functionToCheck &&\n getType.toString.call(functionToCheck) === '[object Function]'\n );\n}\n","/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nexport default function getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n const window = element.ownerDocument.defaultView;\n const css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n","/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nexport default function getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nexport default function getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body\n case '#document':\n return element.body\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n","/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nexport default function getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n","import isBrowser from './isBrowser';\n\nconst isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nconst isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nexport default function isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nexport default function getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n const noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n let offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n const nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (\n ['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 &&\n getStyleComputedProperty(offsetParent, 'position') === 'static'\n ) {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n","import getOffsetParent from './getOffsetParent';\n\nexport default function isOffsetContainer(element) {\n const { nodeName } = element;\n if (nodeName === 'BODY') {\n return false;\n }\n return (\n nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element\n );\n}\n","/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nexport default function getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n","import isOffsetContainer from './isOffsetContainer';\nimport getRoot from './getRoot';\nimport getOffsetParent from './getOffsetParent';\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nexport default function findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n const order =\n element1.compareDocumentPosition(element2) &\n Node.DOCUMENT_POSITION_FOLLOWING;\n const start = order ? element1 : element2;\n const end = order ? element2 : element1;\n\n // Get common ancestor container\n const range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n const { commonAncestorContainer } = range;\n\n // Both nodes are inside #document\n if (\n (element1 !== commonAncestorContainer &&\n element2 !== commonAncestorContainer) ||\n start.contains(end)\n ) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n const element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n","/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nexport default function getScroll(element, side = 'top') {\n const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n const nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n const html = element.ownerDocument.documentElement;\n const scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n","import getScroll from './getScroll';\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nexport default function includeScroll(rect, element, subtract = false) {\n const scrollTop = getScroll(element, 'top');\n const scrollLeft = getScroll(element, 'left');\n const modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n","/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nexport default function getBordersSize(styles, axis) {\n const sideA = axis === 'x' ? 'Left' : 'Top';\n const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return (\n parseFloat(styles[`border${sideA}Width`]) +\n parseFloat(styles[`border${sideB}Width`])\n );\n}\n","import isIE from './isIE';\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(\n body[`offset${axis}`],\n body[`scroll${axis}`],\n html[`client${axis}`],\n html[`offset${axis}`],\n html[`scroll${axis}`],\n isIE(10)\n ? (parseInt(html[`offset${axis}`]) + \n parseInt(computedStyle[`margin${axis === 'Height' ? 'Top' : 'Left'}`]) + \n parseInt(computedStyle[`margin${axis === 'Height' ? 'Bottom' : 'Right'}`]))\n : 0 \n );\n}\n\nexport default function getWindowSizes(document) {\n const body = document.body;\n const html = document.documentElement;\n const computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle),\n };\n}\n","/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nexport default function getClientRect(offsets) {\n return {\n ...offsets,\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height,\n };\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getBordersSize from './getBordersSize';\nimport getWindowSizes from './getWindowSizes';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\nimport isIE from './isIE';\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nexport default function getBoundingClientRect(element) {\n let rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n const scrollTop = getScroll(element, 'top');\n const scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n }\n else {\n rect = element.getBoundingClientRect();\n }\n }\n catch(e){}\n\n const result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top,\n };\n\n // subtract scrollbar size from sizes\n const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n const width =\n sizes.width || element.clientWidth || result.width;\n const height =\n sizes.height || element.clientHeight || result.height;\n\n let horizScrollbar = element.offsetWidth - width;\n let vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n const styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport includeScroll from './includeScroll';\nimport getScrollParent from './getScrollParent';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport runIsIE from './isIE';\nimport getClientRect from './getClientRect';\n\nexport default function getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {\n const isIE10 = runIsIE(10);\n const isHTML = parent.nodeName === 'HTML';\n const childrenRect = getBoundingClientRect(children);\n const parentRect = getBoundingClientRect(parent);\n const scrollParent = getScrollParent(children);\n\n const styles = getStyleComputedProperty(parent);\n const borderTopWidth = parseFloat(styles.borderTopWidth);\n const borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if(fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n let offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height,\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n const marginTop = parseFloat(styles.marginTop);\n const marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (\n isIE10 && !fixedPosition\n ? parent.contains(scrollParent)\n : parent === scrollParent && scrollParent.nodeName !== 'BODY'\n ) {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n","import getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\n\nexport default function getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {\n const html = element.ownerDocument.documentElement;\n const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n const width = Math.max(html.clientWidth, window.innerWidth || 0);\n const height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n const scrollTop = !excludeScroll ? getScroll(html) : 0;\n const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n const offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width,\n height,\n };\n\n return getClientRect(offset);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nexport default function isFixed(element) {\n const nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n const parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nexport default function getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n let el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n\n}\n","import getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport getReferenceNode from './getReferenceNode';\nimport findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getViewportOffsetRectRelativeToArtbitraryNode from './getViewportOffsetRectRelativeToArtbitraryNode';\nimport getWindowSizes from './getWindowSizes';\nimport isFixed from './isFixed';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nexport default function getBoundaries(\n popper,\n reference,\n padding,\n boundariesElement,\n fixedPosition = false\n) {\n // NOTE: 1 DOM access here\n\n let boundaries = { top: 0, left: 0 };\n const offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport' ) {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n }\n\n else {\n // Handle other cases based on DOM element used as boundaries\n let boundariesNode;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n const offsets = getOffsetRectRelativeToArbitraryNode(\n boundariesNode,\n offsetParent,\n fixedPosition\n );\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n const { height, width } = getWindowSizes(popper.ownerDocument);\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n const isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0; \n boundaries.top += isPaddingNumber ? padding : padding.top || 0; \n boundaries.right -= isPaddingNumber ? padding : padding.right || 0; \n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0; \n\n return boundaries;\n}\n","import getBoundaries from '../utils/getBoundaries';\n\nfunction getArea({ width, height }) {\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function computeAutoPlacement(\n placement,\n refRect,\n popper,\n reference,\n boundariesElement,\n padding = 0\n) {\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n const boundaries = getBoundaries(\n popper,\n reference,\n padding,\n boundariesElement\n );\n\n const rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top,\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height,\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom,\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height,\n },\n };\n\n const sortedAreas = Object.keys(rects)\n .map(key => ({\n key,\n ...rects[key],\n area: getArea(rects[key]),\n }))\n .sort((a, b) => b.area - a.area);\n\n const filteredAreas = sortedAreas.filter(\n ({ width, height }) =>\n width >= popper.clientWidth && height >= popper.clientHeight\n );\n\n const computedPlacement = filteredAreas.length > 0\n ? filteredAreas[0].key\n : sortedAreas[0].key;\n\n const variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? `-${variation}` : '');\n}\n","import findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\nimport getReferenceNode from './getReferenceNode';\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nexport default function getReferenceOffsets(state, popper, reference, fixedPosition = null) {\n const commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n","/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nexport default function getOuterSizes(element) {\n const window = element.ownerDocument.defaultView;\n const styles = window.getComputedStyle(element);\n const x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n const y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n const result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x,\n };\n return result;\n}\n","/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nexport default function getOppositePlacement(placement) {\n const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);\n}\n","import getOuterSizes from './getOuterSizes';\nimport getOppositePlacement from './getOppositePlacement';\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nexport default function getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n const popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n const popperOffsets = {\n width: popperRect.width,\n height: popperRect.height,\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n const mainSide = isHoriz ? 'top' : 'left';\n const secondarySide = isHoriz ? 'left' : 'top';\n const measurement = isHoriz ? 'height' : 'width';\n const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] =\n referenceOffsets[mainSide] +\n referenceOffsets[measurement] / 2 -\n popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] =\n referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] =\n referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n","/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nexport default function find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n","import find from './find';\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nexport default function findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(cur => cur[prop] === value);\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n const match = find(arr, obj => obj[prop] === value);\n return arr.indexOf(match);\n}\n","import isFunction from './isFunction';\nimport findIndex from './findIndex';\nimport getClientRect from '../utils/getClientRect';\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nexport default function runModifiers(modifiers, data, ends) {\n const modifiersToRun = ends === undefined\n ? modifiers\n : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(modifier => {\n if (modifier['function']) { // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n const fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n","import computeAutoPlacement from '../utils/computeAutoPlacement';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nexport default function update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n let data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {},\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(\n this.state,\n this.popper,\n this.reference,\n this.options.positionFixed\n );\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(\n this.options.placement,\n data.offsets.reference,\n this.popper,\n this.reference,\n this.options.modifiers.flip.boundariesElement,\n this.options.modifiers.flip.padding\n );\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(\n this.popper,\n data.offsets.reference,\n data.placement\n );\n\n data.offsets.popper.position = this.options.positionFixed\n ? 'fixed'\n : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n","/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nexport default function isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(\n ({ name, enabled }) => enabled && name === modifierName\n );\n}\n","/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nexport default function getSupportedPropertyName(property) {\n const prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n const upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (let i = 0; i < prefixes.length; i++) {\n const prefix = prefixes[i];\n const toCheck = prefix ? `${prefix}${upperProp}` : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n","import isModifierEnabled from '../utils/isModifierEnabled';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nexport default function destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n","/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nexport default function getWindow(element) {\n const ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n","import getScrollParent from './getScrollParent';\nimport getWindow from './getWindow';\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n const isBody = scrollParent.nodeName === 'BODY';\n const target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(\n getScrollParent(target.parentNode),\n event,\n callback,\n scrollParents\n );\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function setupEventListeners(\n reference,\n options,\n state,\n updateBound\n) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n const scrollElement = getScrollParent(reference);\n attachToScrollParents(\n scrollElement,\n 'scroll',\n state.updateBound,\n state.scrollParents\n );\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n","import setupEventListeners from '../utils/setupEventListeners';\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nexport default function enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(\n this.reference,\n this.options,\n this.state,\n this.scheduleUpdate\n );\n }\n}\n","import getWindow from './getWindow';\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(target => {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n","import removeEventListeners from '../utils/removeEventListeners';\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nexport default function disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n","/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nexport default function isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n","import isNumeric from './isNumeric';\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nexport default function setStyles(element, styles) {\n Object.keys(styles).forEach(prop => {\n let unit = '';\n // add unit if the value is numeric and is one of the following\n if (\n ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !==\n -1 &&\n isNumeric(styles[prop])\n ) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n","/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nexport default function setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function(prop) {\n const value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n","import setStyles from '../utils/setStyles';\nimport setAttributes from '../utils/setAttributes';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport computeAutoPlacement from '../utils/computeAutoPlacement';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nexport default function applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nexport function applyStyleOnLoad(\n reference,\n popper,\n options,\n modifierOptions,\n state\n) {\n // compute reference element offsets\n const referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n const placement = computeAutoPlacement(\n options.placement,\n referenceOffsets,\n popper,\n reference,\n options.modifiers.flip.boundariesElement,\n options.modifiers.flip.padding\n );\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n","/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nexport default function getRoundedOffsets(data, shouldRound) {\n const { popper, reference } = data.offsets;\n const { round, floor } = Math;\n const noRound = v => v;\n \n const referenceWidth = round(reference.width);\n const popperWidth = round(popper.width);\n \n const isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n const isVariation = data.placement.indexOf('-') !== -1;\n const sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n const bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n const horizontalToInteger = !shouldRound\n ? noRound\n : isVertical || isVariation || sameWidthParity\n ? round\n : floor;\n const verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(\n bothOddWidth && !isVariation && shouldRound\n ? popper.left - 1\n : popper.left\n ),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right),\n };\n}\n","import getSupportedPropertyName from '../utils/getSupportedPropertyName';\nimport find from '../utils/find';\nimport getOffsetParent from '../utils/getOffsetParent';\nimport getBoundingClientRect from '../utils/getBoundingClientRect';\nimport getRoundedOffsets from '../utils/getRoundedOffsets';\nimport isBrowser from '../utils/isBrowser';\n\nconst isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function computeStyle(data, options) {\n const { x, y } = options;\n const { popper } = data.offsets;\n\n // Remove this legacy support in Popper.js v2\n const legacyGpuAccelerationOption = find(\n data.instance.modifiers,\n modifier => modifier.name === 'applyStyle'\n ).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn(\n 'WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'\n );\n }\n const gpuAcceleration =\n legacyGpuAccelerationOption !== undefined\n ? legacyGpuAccelerationOption\n : options.gpuAcceleration;\n\n const offsetParent = getOffsetParent(data.instance.popper);\n const offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n const styles = {\n position: popper.position,\n };\n\n const offsets = getRoundedOffsets(\n data,\n window.devicePixelRatio < 2 || !isFirefox\n );\n\n const sideA = x === 'bottom' ? 'top' : 'bottom';\n const sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n const prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n let left, top;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = `translate3d(${left}px, ${top}px, 0)`;\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n const invertTop = sideA === 'bottom' ? -1 : 1;\n const invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = `${sideA}, ${sideB}`;\n }\n\n // Attributes\n const attributes = {\n 'x-placement': data.placement,\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = { ...attributes, ...data.attributes };\n data.styles = { ...styles, ...data.styles };\n data.arrowStyles = { ...data.offsets.arrow, ...data.arrowStyles };\n\n return data;\n}\n","import find from './find';\n\n/**\n * Helper used to know if the given modifier depends from another one.
\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nexport default function isModifierRequired(\n modifiers,\n requestingName,\n requestedName\n) {\n const requesting = find(modifiers, ({ name }) => name === requestingName);\n\n const isRequired =\n !!requesting &&\n modifiers.some(modifier => {\n return (\n modifier.name === requestedName &&\n modifier.enabled &&\n modifier.order < requesting.order\n );\n });\n\n if (!isRequired) {\n const requesting = `\\`${requestingName}\\``;\n const requested = `\\`${requestedName}\\``;\n console.warn(\n `${requested} modifier is required by ${requesting} modifier in order to work, be sure to include it before ${requesting}!`\n );\n }\n return isRequired;\n}\n","import getClientRect from '../utils/getClientRect';\nimport getOuterSizes from '../utils/getOuterSizes';\nimport isModifierRequired from '../utils/isModifierRequired';\nimport getStyleComputedProperty from '../utils/getStyleComputedProperty';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function arrow(data, options) {\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n let arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn(\n 'WARNING: `arrow.element` must be child of its popper element!'\n );\n return data;\n }\n }\n\n const placement = data.placement.split('-')[0];\n const { popper, reference } = data.offsets;\n const isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n const len = isVertical ? 'height' : 'width';\n const sideCapitalized = isVertical ? 'Top' : 'Left';\n const side = sideCapitalized.toLowerCase();\n const altSide = isVertical ? 'left' : 'top';\n const opSide = isVertical ? 'bottom' : 'right';\n const arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -=\n popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] +=\n reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n const center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n const css = getStyleComputedProperty(data.instance.popper);\n const popperMarginSide = parseFloat(css[`margin${sideCapitalized}`]);\n const popperBorderSide = parseFloat(css[`border${sideCapitalized}Width`]);\n let sideValue =\n center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = {\n [side]: Math.round(sideValue),\n [altSide]: '', // make sure to unset any eventual altSide value from the DOM node\n };\n\n return data;\n}\n","/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nexport default function getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n","/**\n * List of accepted placements to use as values of the `placement` option.
\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nexport default [\n 'auto-start',\n 'auto',\n 'auto-end',\n 'top-start',\n 'top',\n 'top-end',\n 'right-start',\n 'right',\n 'right-end',\n 'bottom-end',\n 'bottom',\n 'bottom-start',\n 'left-end',\n 'left',\n 'left-start',\n];\n","import placements from '../methods/placements';\n\n// Get rid of `auto` `auto-start` and `auto-end`\nconst validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nexport default function clockwise(placement, counter = false) {\n const index = validPlacements.indexOf(placement);\n const arr = validPlacements\n .slice(index + 1)\n .concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n","import getOppositePlacement from '../utils/getOppositePlacement';\nimport getOppositeVariation from '../utils/getOppositeVariation';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\nimport getBoundaries from '../utils/getBoundaries';\nimport isModifierEnabled from '../utils/isModifierEnabled';\nimport clockwise from '../utils/clockwise';\n\nconst BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise',\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n const boundaries = getBoundaries(\n data.instance.popper,\n data.instance.reference,\n options.padding,\n options.boundariesElement,\n data.positionFixed\n );\n\n let placement = data.placement.split('-')[0];\n let placementOpposite = getOppositePlacement(placement);\n let variation = data.placement.split('-')[1] || '';\n\n let flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach((step, index) => {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n const popperOffsets = data.offsets.popper;\n const refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n const floor = Math.floor;\n const overlapsRef =\n (placement === 'left' &&\n floor(popperOffsets.right) > floor(refOffsets.left)) ||\n (placement === 'right' &&\n floor(popperOffsets.left) < floor(refOffsets.right)) ||\n (placement === 'top' &&\n floor(popperOffsets.bottom) > floor(refOffsets.top)) ||\n (placement === 'bottom' &&\n floor(popperOffsets.top) < floor(refOffsets.bottom));\n\n const overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n const overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n const overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n const overflowsBottom =\n floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n const overflowsBoundaries =\n (placement === 'left' && overflowsLeft) ||\n (placement === 'right' && overflowsRight) ||\n (placement === 'top' && overflowsTop) ||\n (placement === 'bottom' && overflowsBottom);\n\n // flip the variation if required\n const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n const flippedVariationByRef =\n !!options.flipVariations &&\n ((isVertical && variation === 'start' && overflowsLeft) ||\n (isVertical && variation === 'end' && overflowsRight) ||\n (!isVertical && variation === 'start' && overflowsTop) ||\n (!isVertical && variation === 'end' && overflowsBottom));\n\n // flips variation if popper content overflows boundaries\n const flippedVariationByContent =\n !!options.flipVariationsByContent &&\n ((isVertical && variation === 'start' && overflowsRight) ||\n (isVertical && variation === 'end' && overflowsLeft) ||\n (!isVertical && variation === 'start' && overflowsBottom) ||\n (!isVertical && variation === 'end' && overflowsTop));\n\n const flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = {\n ...data.offsets.popper,\n ...getPopperOffsets(\n data.instance.popper,\n data.offsets.reference,\n data.placement\n ),\n };\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n","/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function keepTogether(data) {\n const { popper, reference } = data.offsets;\n const placement = data.placement.split('-')[0];\n const floor = Math.floor;\n const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n const side = isVertical ? 'right' : 'bottom';\n const opSide = isVertical ? 'left' : 'top';\n const measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] =\n floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n","import isNumeric from '../utils/isNumeric';\nimport getClientRect from '../utils/getClientRect';\nimport find from '../utils/find';\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nexport function toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n const split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n const value = +split[1];\n const unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n let element;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n const rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n let size;\n if (unit === 'vh') {\n size = Math.max(\n document.documentElement.clientHeight,\n window.innerHeight || 0\n );\n } else {\n size = Math.max(\n document.documentElement.clientWidth,\n window.innerWidth || 0\n );\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nexport function parseOffset(\n offset,\n popperOffsets,\n referenceOffsets,\n basePlacement\n) {\n const offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n const useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n const fragments = offset.split(/(\\+|\\-)/).map(frag => frag.trim());\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n const divider = fragments.indexOf(\n find(fragments, frag => frag.search(/,|\\s/) !== -1)\n );\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn(\n 'Offsets separated by white space(s) are deprecated, use a comma (,) instead.'\n );\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n const splitRegex = /\\s*,\\s*|\\s+/;\n let ops = divider !== -1\n ? [\n fragments\n .slice(0, divider)\n .concat([fragments[divider].split(splitRegex)[0]]),\n [fragments[divider].split(splitRegex)[1]].concat(\n fragments.slice(divider + 1)\n ),\n ]\n : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map((op, index) => {\n // Most of the units rely on the orientation of the popper\n const measurement = (index === 1 ? !useHeight : useHeight)\n ? 'height'\n : 'width';\n let mergeWithPrevious = false;\n return (\n op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce((a, b) => {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(str => toValue(str, measurement, popperOffsets, referenceOffsets))\n );\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach((op, index) => {\n op.forEach((frag, index2) => {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nexport default function offset(data, { offset }) {\n const { placement, offsets: { popper, reference } } = data;\n const basePlacement = placement.split('-')[0];\n\n let offsets;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n","import getOffsetParent from '../utils/getOffsetParent';\nimport getBoundaries from '../utils/getBoundaries';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function preventOverflow(data, options) {\n let boundariesElement =\n options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n const transformProp = getSupportedPropertyName('transform');\n const popperStyles = data.instance.popper.style; // assignment to help minification\n const { top, left, [transformProp]: transform } = popperStyles;\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n const boundaries = getBoundaries(\n data.instance.popper,\n data.instance.reference,\n options.padding,\n boundariesElement,\n data.positionFixed\n );\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n const order = options.priority;\n let popper = data.offsets.popper;\n\n const check = {\n primary(placement) {\n let value = popper[placement];\n if (\n popper[placement] < boundaries[placement] &&\n !options.escapeWithReference\n ) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return { [placement]: value };\n },\n secondary(placement) {\n const mainSide = placement === 'right' ? 'left' : 'top';\n let value = popper[mainSide];\n if (\n popper[placement] > boundaries[placement] &&\n !options.escapeWithReference\n ) {\n value = Math.min(\n popper[mainSide],\n boundaries[placement] -\n (placement === 'right' ? popper.width : popper.height)\n );\n }\n return { [mainSide]: value };\n },\n };\n\n order.forEach(placement => {\n const side =\n ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = { ...popper, ...check[side](placement) };\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n","/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function shift(data) {\n const placement = data.placement;\n const basePlacement = placement.split('-')[0];\n const shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n const { reference, popper } = data.offsets;\n const isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n const side = isVertical ? 'left' : 'top';\n const measurement = isVertical ? 'width' : 'height';\n\n const shiftOffsets = {\n start: { [side]: reference[side] },\n end: {\n [side]: reference[side] + reference[measurement] - popper[measurement],\n },\n };\n\n data.offsets.popper = { ...popper, ...shiftOffsets[shiftvariation] };\n }\n\n return data;\n}\n","import isModifierRequired from '../utils/isModifierRequired';\nimport find from '../utils/find';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n const refRect = data.offsets.reference;\n const bound = find(\n data.instance.modifiers,\n modifier => modifier.name === 'preventOverflow'\n ).boundaries;\n\n if (\n refRect.bottom < bound.top ||\n refRect.left > bound.right ||\n refRect.top > bound.bottom ||\n refRect.right < bound.left\n ) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n","import getClientRect from '../utils/getClientRect';\nimport getOppositePlacement from '../utils/getOppositePlacement';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function inner(data) {\n const placement = data.placement;\n const basePlacement = placement.split('-')[0];\n const { popper, reference } = data.offsets;\n const isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n const subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] =\n reference[basePlacement] -\n (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n","import applyStyle, { applyStyleOnLoad } from './applyStyle';\nimport computeStyle from './computeStyle';\nimport arrow from './arrow';\nimport flip from './flip';\nimport keepTogether from './keepTogether';\nimport offset from './offset';\nimport preventOverflow from './preventOverflow';\nimport shift from './shift';\nimport hide from './hide';\nimport inner from './inner';\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nexport default {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift,\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0,\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent',\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether,\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]',\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false,\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner,\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide,\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right',\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined,\n },\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n","import modifiers from '../modifiers/index';\n\n/**\n * Default options provided to Popper.js constructor.
\n * These can be overridden using the `options` argument of Popper.js.
\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nexport default {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: () => {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: () => {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers,\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n","// Utils\nimport debounce from './utils/debounce';\nimport isFunction from './utils/isFunction';\n\n// Methods\nimport update from './methods/update';\nimport destroy from './methods/destroy';\nimport enableEventListeners from './methods/enableEventListeners';\nimport disableEventListeners from './methods/disableEventListeners';\nimport Defaults from './methods/defaults';\nimport placements from './methods/placements';\n\nexport default class Popper {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n constructor(reference, popper, options = {}) {\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = { ...Popper.Defaults, ...options };\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: [],\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys({\n ...Popper.Defaults.modifiers,\n ...options.modifiers,\n }).forEach(name => {\n this.options.modifiers[name] = {\n // If it's a built-in modifier, use it as base\n ...(Popper.Defaults.modifiers[name] || {}),\n // If there are custom options, override and merge with default ones\n ...(options.modifiers ? options.modifiers[name] : {}),\n };\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers)\n .map(name => ({\n name,\n ...this.options.modifiers[name],\n }))\n // sort the modifiers by order\n .sort((a, b) => a.order - b.order);\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(modifierOptions => {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(\n this.reference,\n this.popper,\n this.options,\n modifierOptions,\n this.state\n );\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n const eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n update() {\n return update.call(this);\n }\n destroy() {\n return destroy.call(this);\n }\n enableEventListeners() {\n return enableEventListeners.call(this);\n }\n disableEventListeners() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n scheduleUpdate = () => requestAnimationFrame(this.update);\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n static Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\n\n static placements = placements;\n\n static Defaults = Defaults;\n}\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n","export var PLACEMENT_TOP_START = 'top-start';\nexport var PLACEMENT_TOP_END = 'top-end';\nexport var PLACEMENT_BOTTOM_START = 'bottom-start';\nexport var PLACEMENT_BOTTOM_END = 'bottom-end';\nexport var PLACEMENT_RIGHT_START = 'right-start';\nexport var PLACEMENT_RIGHT_END = 'right-end';\nexport var PLACEMENT_LEFT_START = 'left-start';\nexport var PLACEMENT_LEFT_END = 'left-end';","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport { assign, defineProperty, defineProperties, readonlyDescriptor } from './object';\nexport var BvEvent = /*#__PURE__*/function () {\n function BvEvent(type) {\n var eventInit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, BvEvent);\n\n // Start by emulating native Event constructor\n if (!type) {\n /* istanbul ignore next */\n throw new TypeError(\"Failed to construct '\".concat(this.constructor.name, \"'. 1 argument required, \").concat(arguments.length, \" given.\"));\n } // Merge defaults first, the eventInit, and the type last\n // so it can't be overwritten\n\n\n assign(this, BvEvent.Defaults, this.constructor.Defaults, eventInit, {\n type: type\n }); // Freeze some props as readonly, but leave them enumerable\n\n defineProperties(this, {\n type: readonlyDescriptor(),\n cancelable: readonlyDescriptor(),\n nativeEvent: readonlyDescriptor(),\n target: readonlyDescriptor(),\n relatedTarget: readonlyDescriptor(),\n vueTarget: readonlyDescriptor(),\n componentId: readonlyDescriptor()\n }); // Create a private variable using closure scoping\n\n var defaultPrevented = false; // Recreate preventDefault method. One way setter\n\n this.preventDefault = function preventDefault() {\n if (this.cancelable) {\n defaultPrevented = true;\n }\n }; // Create `defaultPrevented` publicly accessible prop that\n // can only be altered by the preventDefault method\n\n\n defineProperty(this, 'defaultPrevented', {\n enumerable: true,\n get: function get() {\n return defaultPrevented;\n }\n });\n }\n\n _createClass(BvEvent, null, [{\n key: \"Defaults\",\n get: function get() {\n return {\n type: '',\n cancelable: true,\n nativeEvent: null,\n target: null,\n relatedTarget: null,\n vueTarget: null,\n componentId: null\n };\n }\n }]);\n\n return BvEvent;\n}();","import { extend } from '../vue';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../constants/events';\nimport { contains } from '../utils/dom';\nimport { eventOn, eventOff } from '../utils/events'; // @vue/component\n\nexport var clickOutMixin = extend({\n data: function data() {\n return {\n listenForClickOut: false\n };\n },\n watch: {\n listenForClickOut: function listenForClickOut(newValue, oldValue) {\n if (newValue !== oldValue) {\n eventOff(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n\n if (newValue) {\n eventOn(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n }\n }\n },\n beforeCreate: function beforeCreate() {\n // Declare non-reactive properties\n this.clickOutElement = null;\n this.clickOutEventName = null;\n },\n mounted: function mounted() {\n if (!this.clickOutElement) {\n this.clickOutElement = document;\n }\n\n if (!this.clickOutEventName) {\n this.clickOutEventName = 'click';\n }\n\n if (this.listenForClickOut) {\n eventOn(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n },\n beforeDestroy: function beforeDestroy() {\n eventOff(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n },\n methods: {\n isClickOut: function isClickOut(event) {\n return !contains(this.$el, event.target);\n },\n _clickOutHandler: function _clickOutHandler(event) {\n if (this.clickOutHandler && this.isClickOut(event)) {\n this.clickOutHandler(event);\n }\n }\n }\n});","import { extend } from '../vue';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../constants/events';\nimport { eventOn, eventOff } from '../utils/events'; // @vue/component\n\nexport var focusInMixin = extend({\n data: function data() {\n return {\n listenForFocusIn: false\n };\n },\n watch: {\n listenForFocusIn: function listenForFocusIn(newValue, oldValue) {\n if (newValue !== oldValue) {\n eventOff(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n\n if (newValue) {\n eventOn(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n }\n }\n },\n beforeCreate: function beforeCreate() {\n // Declare non-reactive properties\n this.focusInElement = null;\n },\n mounted: function mounted() {\n if (!this.focusInElement) {\n this.focusInElement = document;\n }\n\n if (this.listenForFocusIn) {\n eventOn(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n },\n beforeDestroy: function beforeDestroy() {\n eventOff(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n },\n methods: {\n _focusInHandler: function _focusInHandler(event) {\n if (this.focusInHandler) {\n this.focusInHandler(event);\n }\n }\n }\n});","import { isVue3 } from '../vue';\nvar registry = null;\n\nif (isVue3) {\n registry = new WeakMap();\n}\n\nexport var registerElementToInstance = function registerElementToInstance(element, instance) {\n if (!isVue3) {\n return;\n }\n\n registry.set(element, instance);\n};\nexport var removeElementToInstance = function removeElementToInstance(element) {\n if (!isVue3) {\n return;\n }\n\n registry.delete(element);\n};\nexport var getInstanceFromElement = function getInstanceFromElement(element) {\n if (!isVue3) {\n return element.__vue__;\n }\n\n var currentElement = element;\n\n while (currentElement) {\n if (registry.has(currentElement)) {\n /* istanbul ignore next */\n return registry.get(currentElement);\n }\n\n currentElement = currentElement.parentNode;\n }\n\n return null;\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Popper from 'popper.js';\nimport { extend } from '../vue';\nimport { NAME_DROPDOWN } from '../constants/components';\nimport { HAS_TOUCH_SUPPORT } from '../constants/env';\nimport { EVENT_NAME_CLICK, EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, EVENT_NAME_TOGGLE } from '../constants/events';\nimport { CODE_DOWN, CODE_ENTER, CODE_ESC, CODE_SPACE, CODE_UP } from '../constants/key-codes';\nimport { PLACEMENT_TOP_START, PLACEMENT_TOP_END, PLACEMENT_BOTTOM_START, PLACEMENT_BOTTOM_END, PLACEMENT_RIGHT_START, PLACEMENT_LEFT_START } from '../constants/popper';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../constants/props';\nimport { HTMLElement } from '../constants/safe-types';\nimport { BvEvent } from '../utils/bv-event.class';\nimport { attemptFocus, closest, contains, isVisible, requestAF, selectAll } from '../utils/dom';\nimport { getRootEventName, stopEvent } from '../utils/events';\nimport { isNull } from '../utils/inspect';\nimport { mergeDeep, sortKeys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { warn } from '../utils/warn';\nimport { clickOutMixin } from './click-out';\nimport { focusInMixin } from './focus-in';\nimport { idMixin, props as idProps } from './id';\nimport { listenOnRootMixin } from './listen-on-root';\nimport { registerElementToInstance, removeElementToInstance } from '../utils/element-to-vue-instance-registry'; // --- Constants ---\n\nvar ROOT_EVENT_NAME_SHOWN = getRootEventName(NAME_DROPDOWN, EVENT_NAME_SHOWN);\nvar ROOT_EVENT_NAME_HIDDEN = getRootEventName(NAME_DROPDOWN, EVENT_NAME_HIDDEN); // CSS selectors\n\nvar SELECTOR_FORM_CHILD = '.dropdown form';\nvar SELECTOR_ITEM = ['.dropdown-item', '.b-dropdown-form'].map(function (selector) {\n return \"\".concat(selector, \":not(.disabled):not([disabled])\");\n}).join(', '); // --- Helper methods ---\n// Return an array of visible items\n\nvar filterVisibles = function filterVisibles(els) {\n return (els || []).filter(isVisible);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, idProps), {}, {\n // String: `scrollParent`, `window` or `viewport`\n // HTMLElement: HTML Element reference\n boundary: makeProp([HTMLElement, PROP_TYPE_STRING], 'scrollParent'),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n // Place left if possible\n dropleft: makeProp(PROP_TYPE_BOOLEAN, false),\n // Place right if possible\n dropright: makeProp(PROP_TYPE_BOOLEAN, false),\n // Place on top if possible\n dropup: makeProp(PROP_TYPE_BOOLEAN, false),\n // Disable auto-flipping of menu from bottom <=> top\n noFlip: makeProp(PROP_TYPE_BOOLEAN, false),\n // Number of pixels or a CSS unit value to offset menu\n // (i.e. `1px`, `1rem`, etc.)\n offset: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n popperOpts: makeProp(PROP_TYPE_OBJECT, {}),\n // Right align menu (default is left align)\n right: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_DROPDOWN); // --- Mixin ---\n// @vue/component\n\nexport var dropdownMixin = extend({\n mixins: [idMixin, listenOnRootMixin, clickOutMixin, focusInMixin],\n provide: function provide() {\n var _this = this;\n\n return {\n getBvDropdown: function getBvDropdown() {\n return _this;\n }\n };\n },\n inject: {\n getBvNavbar: {\n default: function _default() {\n return function () {\n return null;\n };\n }\n }\n },\n props: props,\n data: function data() {\n return {\n visible: false,\n visibleChangePrevented: false\n };\n },\n computed: {\n bvNavbar: function bvNavbar() {\n return this.getBvNavbar();\n },\n inNavbar: function inNavbar() {\n return !isNull(this.bvNavbar);\n },\n toggler: function toggler() {\n var toggle = this.$refs.toggle;\n return toggle ? toggle.$el || toggle : null;\n },\n directionClass: function directionClass() {\n if (this.dropup) {\n return 'dropup';\n } else if (this.dropright) {\n return 'dropright';\n } else if (this.dropleft) {\n return 'dropleft';\n }\n\n return '';\n },\n boundaryClass: function boundaryClass() {\n // Position `static` is needed to allow menu to \"breakout\" of the `scrollParent`\n // boundaries when boundary is anything other than `scrollParent`\n // See: https://github.com/twbs/bootstrap/issues/24251#issuecomment-341413786\n return this.boundary !== 'scrollParent' && !this.inNavbar ? 'position-static' : '';\n },\n hideDelay: function hideDelay() {\n return this.inNavbar ? HAS_TOUCH_SUPPORT ? 300 : 50 : 0;\n }\n },\n watch: {\n visible: function visible(newValue, oldValue) {\n if (this.visibleChangePrevented) {\n this.visibleChangePrevented = false;\n return;\n }\n\n if (newValue !== oldValue) {\n var eventName = newValue ? EVENT_NAME_SHOW : EVENT_NAME_HIDE;\n var bvEvent = new BvEvent(eventName, {\n cancelable: true,\n vueTarget: this,\n target: this.$refs.menu,\n relatedTarget: null,\n componentId: this.safeId ? this.safeId() : this.id || null\n });\n this.emitEvent(bvEvent);\n\n if (bvEvent.defaultPrevented) {\n // Reset value and exit if canceled\n this.visibleChangePrevented = true;\n this.visible = oldValue; // Just in case a child element triggered `this.hide(true)`\n\n this.$off(EVENT_NAME_HIDDEN, this.focusToggler);\n return;\n }\n\n if (newValue) {\n this.showMenu();\n } else {\n this.hideMenu();\n }\n }\n },\n disabled: function disabled(newValue, oldValue) {\n if (newValue !== oldValue && newValue && this.visible) {\n // Hide dropdown if disabled changes to true\n this.visible = false;\n }\n }\n },\n created: function created() {\n // Create private non-reactive props\n this.$_popper = null;\n this.$_hideTimeout = null;\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n // In case we are inside a ``\n this.visible = false;\n this.whileOpenListen(false);\n this.destroyPopper();\n },\n mounted: function mounted() {\n registerElementToInstance(this.$el, this);\n },\n beforeDestroy: function beforeDestroy() {\n this.visible = false;\n this.whileOpenListen(false);\n this.destroyPopper();\n this.clearHideTimeout();\n removeElementToInstance(this.$el);\n },\n methods: {\n // Event emitter\n emitEvent: function emitEvent(bvEvent) {\n var type = bvEvent.type;\n this.emitOnRoot(getRootEventName(NAME_DROPDOWN, type), bvEvent);\n this.$emit(type, bvEvent);\n },\n showMenu: function showMenu() {\n var _this2 = this;\n\n if (this.disabled) {\n /* istanbul ignore next */\n return;\n } // Only instantiate Popper.js when dropdown is not in ``\n\n\n if (!this.inNavbar) {\n if (typeof Popper === 'undefined') {\n /* istanbul ignore next */\n warn('Popper.js not found. Falling back to CSS positioning', NAME_DROPDOWN);\n } else {\n // For dropup with alignment we use the parent element as popper container\n var el = this.dropup && this.right || this.split ? this.$el : this.$refs.toggle; // Make sure we have a reference to an element, not a component!\n\n el = el.$el || el; // Instantiate Popper.js\n\n this.createPopper(el);\n }\n } // Ensure other menus are closed\n\n\n this.emitOnRoot(ROOT_EVENT_NAME_SHOWN, this); // Enable listeners\n\n this.whileOpenListen(true); // Wrap in `$nextTick()` to ensure menu is fully rendered/shown\n\n this.$nextTick(function () {\n // Focus on the menu container on show\n _this2.focusMenu(); // Emit the shown event\n\n\n _this2.$emit(EVENT_NAME_SHOWN);\n });\n },\n hideMenu: function hideMenu() {\n this.whileOpenListen(false);\n this.emitOnRoot(ROOT_EVENT_NAME_HIDDEN, this);\n this.$emit(EVENT_NAME_HIDDEN);\n this.destroyPopper();\n },\n createPopper: function createPopper(element) {\n this.destroyPopper();\n this.$_popper = new Popper(element, this.$refs.menu, this.getPopperConfig());\n },\n // Ensure popper event listeners are removed cleanly\n destroyPopper: function destroyPopper() {\n this.$_popper && this.$_popper.destroy();\n this.$_popper = null;\n },\n // Instructs popper to re-computes the dropdown position\n // useful if the content changes size\n updatePopper: function updatePopper() {\n try {\n this.$_popper.scheduleUpdate();\n } catch (_unused) {}\n },\n clearHideTimeout: function clearHideTimeout() {\n clearTimeout(this.$_hideTimeout);\n this.$_hideTimeout = null;\n },\n getPopperConfig: function getPopperConfig() {\n var placement = PLACEMENT_BOTTOM_START;\n\n if (this.dropup) {\n placement = this.right ? PLACEMENT_TOP_END : PLACEMENT_TOP_START;\n } else if (this.dropright) {\n placement = PLACEMENT_RIGHT_START;\n } else if (this.dropleft) {\n placement = PLACEMENT_LEFT_START;\n } else if (this.right) {\n placement = PLACEMENT_BOTTOM_END;\n }\n\n var popperConfig = {\n placement: placement,\n modifiers: {\n offset: {\n offset: this.offset || 0\n },\n flip: {\n enabled: !this.noFlip\n }\n }\n };\n var boundariesElement = this.boundary;\n\n if (boundariesElement) {\n popperConfig.modifiers.preventOverflow = {\n boundariesElement: boundariesElement\n };\n }\n\n return mergeDeep(popperConfig, this.popperOpts || {});\n },\n // Turn listeners on/off while open\n whileOpenListen: function whileOpenListen(isOpen) {\n // Hide the dropdown when clicked outside\n this.listenForClickOut = isOpen; // Hide the dropdown when it loses focus\n\n this.listenForFocusIn = isOpen; // Hide the dropdown when another dropdown is opened\n\n var method = isOpen ? 'listenOnRoot' : 'listenOffRoot';\n this[method](ROOT_EVENT_NAME_SHOWN, this.rootCloseListener);\n },\n rootCloseListener: function rootCloseListener(vm) {\n if (vm !== this) {\n this.visible = false;\n }\n },\n // Public method to show dropdown\n show: function show() {\n var _this3 = this;\n\n if (this.disabled) {\n return;\n } // Wrap in a `requestAF()` to allow any previous\n // click handling to occur first\n\n\n requestAF(function () {\n _this3.visible = true;\n });\n },\n // Public method to hide dropdown\n hide: function hide() {\n var refocus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n /* istanbul ignore next */\n if (this.disabled) {\n return;\n }\n\n this.visible = false;\n\n if (refocus) {\n // Child element is closing the dropdown on click\n this.$once(EVENT_NAME_HIDDEN, this.focusToggler);\n }\n },\n // Called only by a button that toggles the menu\n toggle: function toggle(event) {\n event = event || {}; // Early exit when not a click event or ENTER, SPACE or DOWN were pressed\n\n var _event = event,\n type = _event.type,\n keyCode = _event.keyCode;\n\n if (type !== 'click' && !(type === 'keydown' && [CODE_ENTER, CODE_SPACE, CODE_DOWN].indexOf(keyCode) !== -1)) {\n /* istanbul ignore next */\n return;\n }\n /* istanbul ignore next */\n\n\n if (this.disabled) {\n this.visible = false;\n return;\n }\n\n this.$emit(EVENT_NAME_TOGGLE, event);\n stopEvent(event); // Toggle visibility\n\n if (this.visible) {\n this.hide(true);\n } else {\n this.show();\n }\n },\n // Mousedown handler for the toggle\n\n /* istanbul ignore next */\n onMousedown: function onMousedown(event) {\n // We prevent the 'mousedown' event for the toggle to stop the\n // 'focusin' event from being fired\n // The event would otherwise be picked up by the global 'focusin'\n // listener and there is no cross-browser solution to detect it\n // relates to the toggle click\n // The 'click' event will still be fired and we handle closing\n // other dropdowns there too\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/4328\n stopEvent(event, {\n propagation: false\n });\n },\n // Called from dropdown menu context\n onKeydown: function onKeydown(event) {\n var keyCode = event.keyCode;\n\n if (keyCode === CODE_ESC) {\n // Close on ESC\n this.onEsc(event);\n } else if (keyCode === CODE_DOWN) {\n // Down Arrow\n this.focusNext(event, false);\n } else if (keyCode === CODE_UP) {\n // Up Arrow\n this.focusNext(event, true);\n }\n },\n // If user presses ESC, close the menu\n onEsc: function onEsc(event) {\n if (this.visible) {\n this.visible = false;\n stopEvent(event); // Return focus to original trigger button\n\n this.$once(EVENT_NAME_HIDDEN, this.focusToggler);\n }\n },\n // Called only in split button mode, for the split button\n onSplitClick: function onSplitClick(event) {\n /* istanbul ignore next */\n if (this.disabled) {\n this.visible = false;\n return;\n }\n\n this.$emit(EVENT_NAME_CLICK, event);\n },\n // Shared hide handler between click-out and focus-in events\n hideHandler: function hideHandler(event) {\n var _this4 = this;\n\n var target = event.target;\n\n if (this.visible && !contains(this.$refs.menu, target) && !contains(this.toggler, target)) {\n this.clearHideTimeout();\n this.$_hideTimeout = setTimeout(function () {\n return _this4.hide();\n }, this.hideDelay);\n }\n },\n // Document click-out listener\n clickOutHandler: function clickOutHandler(event) {\n this.hideHandler(event);\n },\n // Document focus-in listener\n focusInHandler: function focusInHandler(event) {\n this.hideHandler(event);\n },\n // Keyboard nav\n focusNext: function focusNext(event, up) {\n var _this5 = this;\n\n // Ignore key up/down on form elements\n var target = event.target;\n\n if (!this.visible || event && closest(SELECTOR_FORM_CHILD, target)) {\n /* istanbul ignore next: should never happen */\n return;\n }\n\n stopEvent(event);\n this.$nextTick(function () {\n var items = _this5.getItems();\n\n if (items.length < 1) {\n /* istanbul ignore next: should never happen */\n return;\n }\n\n var index = items.indexOf(target);\n\n if (up && index > 0) {\n index--;\n } else if (!up && index < items.length - 1) {\n index++;\n }\n\n if (index < 0) {\n /* istanbul ignore next: should never happen */\n index = 0;\n }\n\n _this5.focusItem(index, items);\n });\n },\n focusItem: function focusItem(index, items) {\n var el = items.find(function (el, i) {\n return i === index;\n });\n attemptFocus(el);\n },\n getItems: function getItems() {\n // Get all items\n return filterVisibles(selectAll(SELECTOR_ITEM, this.$refs.menu));\n },\n focusMenu: function focusMenu() {\n attemptFocus(this.$refs.menu);\n },\n focusToggler: function focusToggler() {\n var _this6 = this;\n\n this.$nextTick(function () {\n attemptFocus(_this6.toggler);\n });\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend } from '../../vue';\nimport { NAME_DROPDOWN } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_OBJECT, PROP_TYPE_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_BUTTON_CONTENT, SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { arrayIncludes } from '../../utils/array';\nimport { htmlOrText } from '../../utils/html';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { dropdownMixin, props as dropdownProps } from '../../mixins/dropdown';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BButton } from '../button/button';\nimport { sortKeys } from '../../utils/object'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, idProps), dropdownProps), {}, {\n block: makeProp(PROP_TYPE_BOOLEAN, false),\n html: makeProp(PROP_TYPE_STRING),\n // If `true`, only render menu contents when open\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n menuClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n noCaret: makeProp(PROP_TYPE_BOOLEAN, false),\n role: makeProp(PROP_TYPE_STRING, 'menu'),\n size: makeProp(PROP_TYPE_STRING),\n split: makeProp(PROP_TYPE_BOOLEAN, false),\n splitButtonType: makeProp(PROP_TYPE_STRING, 'button', function (value) {\n return arrayIncludes(['button', 'submit', 'reset'], value);\n }),\n splitClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n splitHref: makeProp(PROP_TYPE_STRING),\n splitTo: makeProp(PROP_TYPE_OBJECT_STRING),\n splitVariant: makeProp(PROP_TYPE_STRING),\n text: makeProp(PROP_TYPE_STRING),\n toggleAttrs: makeProp(PROP_TYPE_OBJECT, {}),\n toggleClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n toggleTag: makeProp(PROP_TYPE_STRING, 'button'),\n // TODO: This really should be `toggleLabel`\n toggleText: makeProp(PROP_TYPE_STRING, 'Toggle dropdown'),\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\n})), NAME_DROPDOWN); // --- Main component ---\n// @vue/component\n\nexport var BDropdown = /*#__PURE__*/extend({\n name: NAME_DROPDOWN,\n mixins: [idMixin, dropdownMixin, normalizeSlotMixin],\n props: props,\n computed: {\n dropdownClasses: function dropdownClasses() {\n var block = this.block,\n split = this.split;\n return [this.directionClass, this.boundaryClass, {\n show: this.visible,\n // The 'btn-group' class is required in `split` mode for button alignment\n // It needs also to be applied when `block` is disabled to allow multiple\n // dropdowns to be aligned one line\n 'btn-group': split || !block,\n // When `block` is enabled and we are in `split` mode the 'd-flex' class\n // needs to be applied to allow the buttons to stretch to full width\n 'd-flex': block && split\n }];\n },\n menuClasses: function menuClasses() {\n return [this.menuClass, {\n 'dropdown-menu-right': this.right,\n show: this.visible\n }];\n },\n toggleClasses: function toggleClasses() {\n var split = this.split;\n return [this.toggleClass, {\n 'dropdown-toggle-split': split,\n 'dropdown-toggle-no-caret': this.noCaret && !split\n }];\n }\n },\n render: function render(h) {\n var visible = this.visible,\n variant = this.variant,\n size = this.size,\n block = this.block,\n disabled = this.disabled,\n split = this.split,\n role = this.role,\n hide = this.hide,\n toggle = this.toggle;\n var commonProps = {\n variant: variant,\n size: size,\n block: block,\n disabled: disabled\n };\n var $buttonChildren = this.normalizeSlot(SLOT_NAME_BUTTON_CONTENT);\n var buttonContentDomProps = this.hasNormalizedSlot(SLOT_NAME_BUTTON_CONTENT) ? {} : htmlOrText(this.html, this.text);\n var $split = h();\n\n if (split) {\n var splitTo = this.splitTo,\n splitHref = this.splitHref,\n splitButtonType = this.splitButtonType;\n\n var btnProps = _objectSpread(_objectSpread({}, commonProps), {}, {\n variant: this.splitVariant || variant\n }); // We add these as needed due to issues with\n // defined property with `undefined`/`null` values\n\n\n if (splitTo) {\n btnProps.to = splitTo;\n } else if (splitHref) {\n btnProps.href = splitHref;\n } else if (splitButtonType) {\n btnProps.type = splitButtonType;\n }\n\n $split = h(BButton, {\n class: this.splitClass,\n attrs: {\n id: this.safeId('_BV_button_')\n },\n props: btnProps,\n domProps: buttonContentDomProps,\n on: {\n click: this.onSplitClick\n },\n ref: 'button'\n }, $buttonChildren); // Overwrite button content for the toggle when in `split` mode\n\n $buttonChildren = [h('span', {\n class: ['sr-only']\n }, [this.toggleText])];\n buttonContentDomProps = {};\n }\n\n var ariaHasPopupRoles = ['menu', 'listbox', 'tree', 'grid', 'dialog'];\n var $toggle = h(BButton, {\n staticClass: 'dropdown-toggle',\n class: this.toggleClasses,\n attrs: _objectSpread(_objectSpread({}, this.toggleAttrs), {}, {\n // Must have attributes\n id: this.safeId('_BV_toggle_'),\n 'aria-haspopup': ariaHasPopupRoles.includes(role) ? role : 'false',\n 'aria-expanded': toString(visible)\n }),\n props: _objectSpread(_objectSpread({}, commonProps), {}, {\n tag: this.toggleTag,\n block: block && !split\n }),\n domProps: buttonContentDomProps,\n on: {\n mousedown: this.onMousedown,\n click: toggle,\n keydown: toggle // Handle ENTER, SPACE and DOWN\n\n },\n ref: 'toggle'\n }, $buttonChildren);\n var $menu = h('ul', {\n staticClass: 'dropdown-menu',\n class: this.menuClasses,\n attrs: {\n role: role,\n tabindex: '-1',\n 'aria-labelledby': this.safeId(split ? '_BV_button_' : '_BV_toggle_')\n },\n on: {\n keydown: this.onKeydown // Handle UP, DOWN and ESC\n\n },\n ref: 'menu'\n }, [!this.lazy || visible ? this.normalizeSlot(SLOT_NAME_DEFAULT, {\n hide: hide\n }) : h()]);\n return h('div', {\n staticClass: 'dropdown b-dropdown',\n class: this.dropdownClasses,\n attrs: {\n id: this.safeId()\n }\n }, [$split, $toggle, $menu]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend } from '../../vue';\nimport { NAME_DROPDOWN_ITEM } from '../../constants/components';\nimport { EVENT_NAME_CLICK } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { requestAF } from '../../utils/dom';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Props ---\n\nvar linkProps = omit(BLinkProps, ['event', 'routerTag']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, linkProps), {}, {\n linkClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n variant: makeProp(PROP_TYPE_STRING)\n})), NAME_DROPDOWN_ITEM); // --- Main component ---\n// @vue/component\n\nexport var BDropdownItem = /*#__PURE__*/extend({\n name: NAME_DROPDOWN_ITEM,\n mixins: [attrsMixin, normalizeSlotMixin],\n inject: {\n getBvDropdown: {\n default: function _default() {\n return function () {\n return null;\n };\n }\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n bvDropdown: function bvDropdown() {\n return this.getBvDropdown();\n },\n computedAttrs: function computedAttrs() {\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n role: 'menuitem'\n });\n }\n },\n methods: {\n closeDropdown: function closeDropdown() {\n var _this = this;\n\n // Close on next animation frame to allow time to process\n requestAF(function () {\n if (_this.bvDropdown) {\n _this.bvDropdown.hide(true);\n }\n });\n },\n onClick: function onClick(event) {\n this.$emit(EVENT_NAME_CLICK, event);\n this.closeDropdown();\n }\n },\n render: function render(h) {\n var linkClass = this.linkClass,\n variant = this.variant,\n active = this.active,\n disabled = this.disabled,\n onClick = this.onClick,\n bvAttrs = this.bvAttrs;\n return h('li', {\n class: bvAttrs.class,\n style: bvAttrs.style,\n attrs: {\n role: 'presentation'\n }\n }, [h(BLink, {\n staticClass: 'dropdown-item',\n class: [linkClass, _defineProperty({}, \"text-\".concat(variant), variant && !(active || disabled))],\n props: pluckProps(linkProps, this.$props),\n attrs: this.computedAttrs,\n on: {\n click: onClick\n },\n ref: 'item'\n }, this.normalizeSlot())]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend } from '../../vue';\nimport { NAME_DROPDOWN_ITEM_BUTTON } from '../../constants/components';\nimport { EVENT_NAME_CLICK } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n active: makeProp(PROP_TYPE_BOOLEAN, false),\n activeClass: makeProp(PROP_TYPE_STRING, 'active'),\n buttonClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_DROPDOWN_ITEM_BUTTON); // --- Main component ---\n// @vue/component\n\nexport var BDropdownItemButton = /*#__PURE__*/extend({\n name: NAME_DROPDOWN_ITEM_BUTTON,\n mixins: [attrsMixin, normalizeSlotMixin],\n inject: {\n getBvDropdown: {\n default: function _default() {\n return function () {\n return null;\n };\n }\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n bvDropdown: function bvDropdown() {\n return this.getBvDropdown();\n },\n computedAttrs: function computedAttrs() {\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n role: 'menuitem',\n type: 'button',\n disabled: this.disabled\n });\n }\n },\n methods: {\n closeDropdown: function closeDropdown() {\n if (this.bvDropdown) {\n this.bvDropdown.hide(true);\n }\n },\n onClick: function onClick(event) {\n this.$emit(EVENT_NAME_CLICK, event);\n this.closeDropdown();\n }\n },\n render: function render(h) {\n var _ref;\n\n var active = this.active,\n variant = this.variant,\n bvAttrs = this.bvAttrs;\n return h('li', {\n class: bvAttrs.class,\n style: bvAttrs.style,\n attrs: {\n role: 'presentation'\n }\n }, [h('button', {\n staticClass: 'dropdown-item',\n class: [this.buttonClass, (_ref = {}, _defineProperty(_ref, this.activeClass, active), _defineProperty(_ref, \"text-\".concat(variant), variant && !(active || this.disabled)), _ref)],\n attrs: this.computedAttrs,\n on: {\n click: this.onClick\n },\n ref: 'button'\n }, this.normalizeSlot())]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend, mergeData } from '../../vue';\nimport { NAME_DROPDOWN_HEADER } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { isTag } from '../../utils/dom';\nimport { omit } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n id: makeProp(PROP_TYPE_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'header'),\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_DROPDOWN_HEADER); // --- Main component ---\n// @vue/component\n\nexport var BDropdownHeader = /*#__PURE__*/extend({\n name: NAME_DROPDOWN_HEADER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var tag = props.tag,\n variant = props.variant;\n return h('li', mergeData(omit(data, ['attrs']), {\n attrs: {\n role: 'presentation'\n }\n }), [h(tag, {\n staticClass: 'dropdown-header',\n class: _defineProperty({}, \"text-\".concat(variant), variant),\n attrs: _objectSpread(_objectSpread({}, data.attrs || {}), {}, {\n id: props.id || null,\n role: isTag(tag, 'header') ? null : 'heading'\n }),\n ref: 'header'\n }, children)]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend, mergeData } from '../../vue';\nimport { NAME_DROPDOWN_DIVIDER } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { omit } from '../../utils/object'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n tag: makeProp(PROP_TYPE_STRING, 'hr')\n}, NAME_DROPDOWN_DIVIDER); // --- Main component ---\n// @vue/component\n\nexport var BDropdownDivider = /*#__PURE__*/extend({\n name: NAME_DROPDOWN_DIVIDER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data;\n return h('li', mergeData(omit(data, ['attrs']), {\n attrs: {\n role: 'presentation'\n }\n }), [h(props.tag, {\n staticClass: 'dropdown-divider',\n attrs: _objectSpread(_objectSpread({}, data.attrs || {}), {}, {\n role: 'separator',\n 'aria-orientation': 'horizontal'\n }),\n ref: 'divider'\n })]);\n }\n});","import { extend, mergeData } from '../../vue';\nimport { NAME_FORM } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n id: makeProp(PROP_TYPE_STRING),\n inline: makeProp(PROP_TYPE_BOOLEAN, false),\n novalidate: makeProp(PROP_TYPE_BOOLEAN, false),\n validated: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_FORM); // --- Main component ---\n// @vue/component\n\nexport var BForm = /*#__PURE__*/extend({\n name: NAME_FORM,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h('form', mergeData(data, {\n class: {\n 'form-inline': props.inline,\n 'was-validated': props.validated\n },\n attrs: {\n id: props.id,\n novalidate: props.novalidate\n }\n }), children);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend, mergeData } from '../../vue';\nimport { NAME_DROPDOWN_FORM } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BForm, props as formControlProps } from '../form/form'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, formControlProps), {}, {\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n formClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n})), NAME_DROPDOWN_FORM); // --- Main component ---\n// @vue/component\n\nexport var BDropdownForm = /*#__PURE__*/extend({\n name: NAME_DROPDOWN_FORM,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n listeners = _ref.listeners,\n children = _ref.children;\n return h('li', mergeData(omit(data, ['attrs', 'on']), {\n attrs: {\n role: 'presentation'\n }\n }), [h(BForm, {\n staticClass: 'b-dropdown-form',\n class: [props.formClass, {\n disabled: props.disabled\n }],\n props: props,\n attrs: _objectSpread(_objectSpread({}, data.attrs || {}), {}, {\n disabled: props.disabled,\n // Tab index of -1 for keyboard navigation\n tabindex: props.disabled ? null : '-1'\n }),\n on: listeners,\n ref: 'form'\n }, children)]);\n }\n});","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend, mergeData } from '../../vue';\nimport { NAME_DROPDOWN_TEXT } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { omit } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n tag: makeProp(PROP_TYPE_STRING, 'p'),\n textClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_DROPDOWN_TEXT); // --- Main component ---\n// @vue/component\n\nexport var BDropdownText = /*#__PURE__*/extend({\n name: NAME_DROPDOWN_TEXT,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var tag = props.tag,\n textClass = props.textClass,\n variant = props.variant;\n return h('li', mergeData(omit(data, ['attrs']), {\n attrs: {\n role: 'presentation'\n }\n }), [h(tag, {\n staticClass: 'b-dropdown-text',\n class: [textClass, _defineProperty({}, \"text-\".concat(variant), variant)],\n props: props,\n attrs: data.attrs || {},\n ref: 'text'\n }, children)]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend, mergeData } from '../../vue';\nimport { NAME_DROPDOWN_GROUP } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DEFAULT, SLOT_NAME_HEADER } from '../../constants/slots';\nimport { isTag } from '../../utils/dom';\nimport { identity } from '../../utils/identity';\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot';\nimport { omit } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n ariaDescribedby: makeProp(PROP_TYPE_STRING),\n header: makeProp(PROP_TYPE_STRING),\n headerClasses: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n headerTag: makeProp(PROP_TYPE_STRING, 'header'),\n headerVariant: makeProp(PROP_TYPE_STRING),\n id: makeProp(PROP_TYPE_STRING)\n}, NAME_DROPDOWN_GROUP); // --- Main component ---\n// @vue/component\n\nexport var BDropdownGroup = /*#__PURE__*/extend({\n name: NAME_DROPDOWN_GROUP,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n var id = props.id,\n variant = props.variant,\n header = props.header,\n headerTag = props.headerTag;\n var $slots = slots();\n var $scopedSlots = scopedSlots || {};\n var slotScope = {};\n var headerId = id ? \"_bv_\".concat(id, \"_group_dd_header\") : null;\n var $header = h();\n\n if (hasNormalizedSlot(SLOT_NAME_HEADER, $scopedSlots, $slots) || header) {\n $header = h(headerTag, {\n staticClass: 'dropdown-header',\n class: [props.headerClasses, _defineProperty({}, \"text-\".concat(variant), variant)],\n attrs: {\n id: headerId,\n role: isTag(headerTag, 'header') ? null : 'heading'\n }\n }, normalizeSlot(SLOT_NAME_HEADER, slotScope, $scopedSlots, $slots) || header);\n }\n\n return h('li', mergeData(omit(data, ['attrs']), {\n attrs: {\n role: 'presentation'\n }\n }), [$header, h('ul', {\n staticClass: 'list-unstyled',\n attrs: _objectSpread(_objectSpread({}, data.attrs || {}), {}, {\n id: id,\n role: 'group',\n 'aria-describedby': [headerId, props.ariaDescribedBy].filter(identity).join(' ').trim() || null\n })\n }, normalizeSlot(SLOT_NAME_DEFAULT, slotScope, $scopedSlots, $slots))]);\n }\n});","import { BDropdown } from './dropdown';\nimport { BDropdownItem } from './dropdown-item';\nimport { BDropdownItemButton } from './dropdown-item-button';\nimport { BDropdownHeader } from './dropdown-header';\nimport { BDropdownDivider } from './dropdown-divider';\nimport { BDropdownForm } from './dropdown-form';\nimport { BDropdownText } from './dropdown-text';\nimport { BDropdownGroup } from './dropdown-group';\nimport { pluginFactory } from '../../utils/plugins';\nvar DropdownPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BDropdown: BDropdown,\n BDd: BDropdown,\n BDropdownItem: BDropdownItem,\n BDdItem: BDropdownItem,\n BDropdownItemButton: BDropdownItemButton,\n BDropdownItemBtn: BDropdownItemButton,\n BDdItemButton: BDropdownItemButton,\n BDdItemBtn: BDropdownItemButton,\n BDropdownHeader: BDropdownHeader,\n BDdHeader: BDropdownHeader,\n BDropdownDivider: BDropdownDivider,\n BDdDivider: BDropdownDivider,\n BDropdownForm: BDropdownForm,\n BDdForm: BDropdownForm,\n BDropdownText: BDropdownText,\n BDdText: BDropdownText,\n BDropdownGroup: BDropdownGroup,\n BDdGroup: BDropdownGroup\n }\n});\nexport { DropdownPlugin, BDropdown, BDropdownItem, BDropdownItemButton, BDropdownHeader, BDropdownDivider, BDropdownForm, BDropdownText, BDropdownGroup };","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend, mergeData } from '../../vue';\nimport { NAME_EMBED } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { arrayIncludes } from '../../utils/array';\nimport { omit } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Constants ---\n\nvar TYPES = ['iframe', 'embed', 'video', 'object', 'img', 'b-img', 'b-img-lazy']; // --- Props ---\n\nexport var props = makePropsConfigurable({\n aspect: makeProp(PROP_TYPE_STRING, '16by9'),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n type: makeProp(PROP_TYPE_STRING, 'iframe', function (value) {\n return arrayIncludes(TYPES, value);\n })\n}, NAME_EMBED); // --- Main component ---\n// @vue/component\n\nexport var BEmbed = /*#__PURE__*/extend({\n name: NAME_EMBED,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var aspect = props.aspect;\n return h(props.tag, {\n staticClass: 'embed-responsive',\n class: _defineProperty({}, \"embed-responsive-\".concat(aspect), aspect),\n ref: data.ref\n }, [h(props.type, mergeData(omit(data, ['ref']), {\n staticClass: 'embed-responsive-item'\n }), children)]);\n }\n});","import { BEmbed } from './embed';\nimport { pluginFactory } from '../../utils/plugins';\nvar EmbedPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BEmbed: BEmbed\n }\n});\nexport { EmbedPlugin, BEmbed };","import { extend } from '../vue';\nimport { PROP_TYPE_ARRAY_OBJECT, PROP_TYPE_STRING } from '../constants/props';\nimport { get } from '../utils/get';\nimport { stripTags } from '../utils/html';\nimport { isArray, isPlainObject, isUndefined } from '../utils/inspect';\nimport { keys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { warn } from '../utils/warn'; // --- Constants ---\n\nvar OPTIONS_OBJECT_DEPRECATED_MSG = 'Setting prop \"options\" to an object is deprecated. Use the array format instead.'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n disabledField: makeProp(PROP_TYPE_STRING, 'disabled'),\n htmlField: makeProp(PROP_TYPE_STRING, 'html'),\n options: makeProp(PROP_TYPE_ARRAY_OBJECT, []),\n textField: makeProp(PROP_TYPE_STRING, 'text'),\n valueField: makeProp(PROP_TYPE_STRING, 'value')\n}, 'formOptionControls'); // --- Mixin ---\n// @vue/component\n\nexport var formOptionsMixin = extend({\n props: props,\n computed: {\n formOptions: function formOptions() {\n return this.normalizeOptions(this.options);\n }\n },\n methods: {\n normalizeOption: function normalizeOption(option) {\n var key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n // When the option is an object, normalize it\n if (isPlainObject(option)) {\n var value = get(option, this.valueField);\n var text = get(option, this.textField);\n return {\n value: isUndefined(value) ? key || text : value,\n text: stripTags(String(isUndefined(text) ? key : text)),\n html: get(option, this.htmlField),\n disabled: Boolean(get(option, this.disabledField))\n };\n } // Otherwise create an `