{"version":3,"file":"application.js","mappings":";qDAqBA,SAASA,IACPC,KAAKC,QAAUD,KAAKC,SAAW,CAAC,EAChCD,KAAKE,cAAgBF,KAAKE,oBAAiBC,CAC7C,CAuQA,SAASC,EAAWC,GAClB,MAAsB,mBAARA,CAChB,CAMA,SAASC,EAASD,GAChB,MAAsB,iBAARA,GAA4B,OAARA,CACpC,CAEA,SAASE,EAAYF,GACnB,YAAe,IAARA,CACT,CApRAG,EAAOC,QAAUV,EAKjBA,EAAaW,UAAUT,aAAUE,EACjCJ,EAAaW,UAAUR,mBAAgBC,EAIvCJ,EAAaY,oBAAsB,GAInCZ,EAAaW,UAAUE,gBAAkB,SAASC,GAChD,GA4PsB,iBA5PRA,GAAMA,EAAI,GAAKC,MAAMD,GACjC,MAAME,UAAU,+BAElB,OADAf,KAAKE,cAAgBW,EACdb,IACT,EAEAD,EAAaW,UAAUM,KAAO,SAASC,GACrC,IAAIC,EAAIC,EAASC,EAAKC,EAAMC,EAAGC,EAM/B,GAJKvB,KAAKC,UACRD,KAAKC,QAAU,CAAC,GAGL,UAATgB,KACGjB,KAAKC,QAAQuB,OACblB,EAASN,KAAKC,QAAQuB,SAAWxB,KAAKC,QAAQuB,MAAMC,QAAS,CAEhE,IADAP,EAAKQ,UAAU,cACGC,MAChB,MAAMT,EAGN,IAAIU,EAAM,IAAID,MAAM,yCAA2CT,EAAK,KAEpE,MADAU,EAAIC,QAAUX,EACRU,CAEV,CAKF,GAAIrB,EAFJY,EAAUnB,KAAKC,QAAQgB,IAGrB,OAAO,EAET,GAAIb,EAAWe,GACb,OAAQO,UAAUD,QAEhB,KAAK,EACHN,EAAQW,KAAK9B,MACb,MACF,KAAK,EACHmB,EAAQW,KAAK9B,KAAM0B,UAAU,IAC7B,MACF,KAAK,EACHP,EAAQW,KAAK9B,KAAM0B,UAAU,GAAIA,UAAU,IAC3C,MAEF,QACEL,EAAOU,MAAMrB,UAAUsB,MAAMF,KAAKJ,UAAW,GAC7CP,EAAQc,MAAMjC,KAAMqB,QAEnB,GAAIf,EAASa,GAIlB,IAHAE,EAAOU,MAAMrB,UAAUsB,MAAMF,KAAKJ,UAAW,GAE7CN,GADAG,EAAYJ,EAAQa,SACJP,OACXH,EAAI,EAAGA,EAAIF,EAAKE,IACnBC,EAAUD,GAAGW,MAAMjC,KAAMqB,GAG7B,OAAO,CACT,EAEAtB,EAAaW,UAAUwB,YAAc,SAASjB,EAAMkB,GAClD,IAAIC,EAEJ,IAAKhC,EAAW+B,GACd,MAAMpB,UAAU,+BA2ClB,OAzCKf,KAAKC,UACRD,KAAKC,QAAU,CAAC,GAIdD,KAAKC,QAAQoC,aACfrC,KAAKgB,KAAK,cAAeC,EACfb,EAAW+B,EAASA,UACpBA,EAASA,SAAWA,GAE3BnC,KAAKC,QAAQgB,GAGTX,EAASN,KAAKC,QAAQgB,IAE7BjB,KAAKC,QAAQgB,GAAMqB,KAAKH,GAGxBnC,KAAKC,QAAQgB,GAAQ,CAACjB,KAAKC,QAAQgB,GAAOkB,GAN1CnC,KAAKC,QAAQgB,GAAQkB,EASnB7B,EAASN,KAAKC,QAAQgB,MAAWjB,KAAKC,QAAQgB,GAAMsB,SAIpDH,EAHG7B,EAAYP,KAAKE,eAGhBH,EAAaY,oBAFbX,KAAKE,gBAKFkC,EAAI,GAAKpC,KAAKC,QAAQgB,GAAMQ,OAASW,IAC5CpC,KAAKC,QAAQgB,GAAMsB,QAAS,EAC5BC,QAAQhB,MAAM,mIAGAxB,KAAKC,QAAQgB,GAAMQ,QACJ,mBAAlBe,QAAQC,OAEjBD,QAAQC,SAKPzC,IACT,EAEAD,EAAaW,UAAUgC,GAAK3C,EAAaW,UAAUwB,YAEnDnC,EAAaW,UAAUiC,KAAO,SAAS1B,EAAMkB,GAC3C,IAAK/B,EAAW+B,GACd,MAAMpB,UAAU,+BAElB,IAAI6B,GAAQ,EAEZ,SAASC,IACP7C,KAAK8C,eAAe7B,EAAM4B,GAErBD,IACHA,GAAQ,EACRT,EAASF,MAAMjC,KAAM0B,WAEzB,CAKA,OAHAmB,EAAEV,SAAWA,EACbnC,KAAK0C,GAAGzB,EAAM4B,GAEP7C,IACT,EAGAD,EAAaW,UAAUoC,eAAiB,SAAS7B,EAAMkB,GACrD,IAAIY,EAAMC,EAAUvB,EAAQH,EAE5B,IAAKlB,EAAW+B,GACd,MAAMpB,UAAU,+BAElB,IAAKf,KAAKC,UAAYD,KAAKC,QAAQgB,GACjC,OAAOjB,KAMT,GAHAyB,GADAsB,EAAO/C,KAAKC,QAAQgB,IACNQ,OACduB,GAAY,EAERD,IAASZ,GACR/B,EAAW2C,EAAKZ,WAAaY,EAAKZ,WAAaA,SAC3CnC,KAAKC,QAAQgB,GAChBjB,KAAKC,QAAQ6C,gBACf9C,KAAKgB,KAAK,iBAAkBC,EAAMkB,QAE/B,GAAI7B,EAASyC,GAAO,CACzB,IAAKzB,EAAIG,EAAQH,KAAM,GACrB,GAAIyB,EAAKzB,KAAOa,GACXY,EAAKzB,GAAGa,UAAYY,EAAKzB,GAAGa,WAAaA,EAAW,CACvDa,EAAW1B,EACX,KACF,CAGF,GAAI0B,EAAW,EACb,OAAOhD,KAEW,IAAhB+C,EAAKtB,QACPsB,EAAKtB,OAAS,SACPzB,KAAKC,QAAQgB,IAEpB8B,EAAKE,OAAOD,EAAU,GAGpBhD,KAAKC,QAAQ6C,gBACf9C,KAAKgB,KAAK,iBAAkBC,EAAMkB,EACtC,CAEA,OAAOnC,IACT,EAEAD,EAAaW,UAAUwC,mBAAqB,SAASjC,GACnD,IAAIkC,EAAK5B,EAET,IAAKvB,KAAKC,QACR,OAAOD,KAGT,IAAKA,KAAKC,QAAQ6C,eAKhB,OAJyB,IAArBpB,UAAUD,OACZzB,KAAKC,QAAU,CAAC,EACTD,KAAKC,QAAQgB,WACbjB,KAAKC,QAAQgB,GACfjB,KAIT,GAAyB,IAArB0B,UAAUD,OAAc,CAC1B,IAAK0B,KAAOnD,KAAKC,QACH,mBAARkD,GACJnD,KAAKkD,mBAAmBC,GAI1B,OAFAnD,KAAKkD,mBAAmB,kBACxBlD,KAAKC,QAAU,CAAC,EACTD,IACT,CAIA,GAAII,EAFJmB,EAAYvB,KAAKC,QAAQgB,IAGvBjB,KAAK8C,eAAe7B,EAAMM,QACrB,GAAIA,EAET,KAAOA,EAAUE,QACfzB,KAAK8C,eAAe7B,EAAMM,EAAUA,EAAUE,OAAS,IAI3D,cAFOzB,KAAKC,QAAQgB,GAEbjB,IACT,EAEAD,EAAaW,UAAUa,UAAY,SAASN,GAQ1C,OANKjB,KAAKC,SAAYD,KAAKC,QAAQgB,GAE1Bb,EAAWJ,KAAKC,QAAQgB,IACzB,CAACjB,KAAKC,QAAQgB,IAEdjB,KAAKC,QAAQgB,GAAMe,QAJnB,EAMV,EAEAjC,EAAaW,UAAU0C,cAAgB,SAASnC,GAC9C,GAAIjB,KAAKC,QAAS,CAChB,IAAIoD,EAAarD,KAAKC,QAAQgB,GAE9B,GAAIb,EAAWiD,GACb,OAAO,EACJ,GAAIA,EACP,OAAOA,EAAW5B,MACtB,CACA,OAAO,CACT,EAEA1B,EAAaqD,cAAgB,SAASE,EAASrC,GAC7C,OAAOqC,EAAQF,cAAcnC,EAC/B,oCC3RA,IAAIsC,EAAsB,EAAQ,KAE9BC,EAAmB,EAAQ,KAC3BC,EAAgB,EAAQ,KAiC5B,SAASC,EAAoBC,EAAQC,EAAOC,GAC1C,OAAO,IAAIN,EAAoBI,EAAQC,EAAOC,EAChD,CAOAH,EAAoBI,QAAU,EAAQ,KAOtCJ,EAAoBH,oBAAsBA,EAO1CG,EAAoBF,iBAAmBA,EAOvCE,EAAoBD,cAAgBA,EAEpCjD,EAAOC,QAAUiD,oCCpEjB,IAAI3D,EAAe,EAAQ,KAe3B,SAASgE,EAAcC,EAAYC,GACjCjE,KAAKkE,KAAOF,EACZhE,KAAKiE,GAAKA,EACVjE,KAAKmE,YAAc,IACrB,CAlBe,EAAQ,GAoBvBC,CAASL,EAAehE,GAOxBgE,EAAcrD,UAAU2D,OAAS,WAC/BrE,KAAKkD,qBACLlD,KAAKkE,KAAKI,oBAAoBtE,KAChC,EAEA+D,EAAcrD,UAAU6D,iBAAmB,SAAUC,GACnD,OAAOxE,KAAKiE,GAAGO,EACjB,EAEAhE,EAAOC,QAAUsD,mCCzBjB,IAAIU,EAAe,EAAQ,KACvBC,EAAO,EAAQ,KACfC,EAAgB,EAAQ,KAExBC,EAAM,CAQRC,cAAe,SAAuBC,EAAgBC,EAAWC,GAC/D,GAAIJ,EAAIK,UAAUH,EAAgBC,EAAWC,GAC3C,OAAOF,EAGT,IAAII,EAAgB,GAAKF,EAErBG,EAAmBL,EAAeC,GAElCD,EAAeC,GAAWK,OAAOF,GADjC,CAACA,GAGDG,EAAM,CAAC,EAIX,OAFAA,EAAIN,GAAaI,EAEVV,EAAa,CAAC,EAAGY,EAAKP,EAC/B,EAUAQ,iBAAkB,SAChBR,EACAC,EACAC,GAEA,QAAc7E,IAAV6E,EAGF,OAAOJ,EAAIW,gBAAgBT,GAAgB,SAAUU,EAAGC,GACtD,OAAOV,IAAcU,CACvB,IAGF,IAAIP,EAAgB,GAAKF,EAEzB,OAAOJ,EAAIW,gBAAgBT,GAAgB,SAAUU,EAAGC,GACtD,OAAOV,IAAcU,GAAKP,IAAkBM,CAC9C,GACF,EAQAE,iBAAkB,SAChBZ,EACAC,EACAC,GAEA,QAAc7E,IAAV6E,EACF,MAAM,IAAIrD,MAAM,gDAElB,OAAIiD,EAAIK,UAAUH,EAAgBC,EAAWC,GACpCJ,EAAIU,iBAAiBR,EAAgBC,EAAWC,GAGlDJ,EAAIC,cAAcC,EAAgBC,EAAWC,EACtD,EAYAO,gBAAiB,SACfT,EACAC,EACAY,GAEA,QAAkBxF,IAAd4E,EAGF,OAAKJ,EAAcG,GAGZ,CAAC,EAFCA,EAGJ,GAAyB,iBAAdC,EAChB,OAAOL,EAAKI,EAAgB,CAACC,IACxB,GAAyB,mBAAdA,EAA0B,CAC1C,IAAIa,GAAa,EAEbC,EAAoBC,OAAOC,KAAKjB,GAAgBkB,QAAO,SACzDC,EACA9C,GAEA,IAAI+C,EAASpB,EAAe3B,IAAQ,GAChCgD,EAAYD,EAAOE,QAAO,SAAUpB,GACtC,OAAQD,EAAUC,EAAO7B,EAAKwC,EAChC,IAQA,OANIQ,EAAU1E,SAAWyE,EAAOzE,SAC9BmE,GAAa,GAGfK,EAAK9C,GAAOgD,EAELF,CACT,GACA,CAAC,GAED,OAAIL,EAAmBC,EAChBf,CACT,CAKF,EAUAG,UAAW,SAAmBH,EAAgBC,EAAWsB,GACvD,IAAIC,EACFC,QAAQzB,EAAeC,KACvBD,EAAeC,GAAWtD,OAAS,EAErC,QAAwBtB,IAApBkG,IAAkCC,EACpC,OAAOA,EAGT,IAAIE,EAA0B,GAAKH,EAEnC,OAAuE,IAAhEvB,EAAeC,GAAW0B,QAAQD,EAC3C,GAGFhG,EAAOC,QAAUmE,oCCzKjB,IAAI8B,EAAQ,EAAQ,KAChBjC,EAAe,EAAQ,KACvBkC,EAAe,EAAQ,KACvBC,EAAO,EAAQ,KACfC,EAAc,EAAQ,KACtBnC,EAAO,EAAQ,KACfC,EAAgB,EAAQ,KACxBmC,EAAmB,EAAQ,KAE3BC,EAAiB,EAAQ,IAY7B,SAASC,EAAyBC,EAAGC,GACnC,OAAInF,MAAMoF,QAAQF,IAAMlF,MAAMoF,QAAQD,GAElCD,EAAExF,SAAWyF,EAAEzF,QACfwF,EAAEG,OAAM,SAAUC,EAAI/F,GACpB,OAAO0F,EAAyBE,EAAE5F,GAAI+F,EACxC,IAGGJ,IAAMC,CACf,CA+DA,SAAS1D,EAAiB8D,GACxB,IAAIC,EAASD,EACT9D,EAAiBgE,cAAcF,GAC/B,CAAC,OAEoBnH,IAArBoH,EAAOE,WAA4BX,EAAiBS,EAAOE,YAE7DjF,QAAQkF,KACN,mIASJ1H,KAAK2H,OAASJ,EAAOI,QAAU,GAO/B3H,KAAK4H,kBAAoBL,EAAOK,mBAAqB,GASrD5H,KAAK6H,mBAAqBN,EAAOM,oBAAsB,GAevD7H,KAAK8H,kBAAoBP,EAAOO,mBAAqB,CAAC,EAatD9H,KAAK+H,eAAiBR,EAAOQ,gBAAkB,CAAC,EAahD/H,KAAKgI,6BAA+BT,EAAOS,8BAAgC,CAAC,EAY5EhI,KAAKiI,mBAAqBV,EAAOU,oBAAsB,CAAC,EAQxDjI,KAAKkI,eAAiBX,EAAOW,gBAAkB,GAe/ClI,KAAKmI,8BACHZ,EAAOY,+BAAiC,CAAC,EAG3C,IAAIC,EAAOpI,KACX8F,OAAOC,KAAKwB,GAAQc,SAAQ,SAAUC,GACpC,IAAIC,GAAiE,IAApD/E,EAAiBgF,WAAW/B,QAAQ6B,GACjDG,OAAuCtI,IAAtBoH,EAAOe,IAEvBC,GAAcE,IACjBL,EAAKE,GAAaf,EAAOe,GAE7B,GACF,CAOA9E,EAAiBgF,WAAa1C,OAAOC,KAAK,IAAIvC,GAO9CA,EAAiBgE,cAAgB,SAAUkB,GAEzC,GAAIA,aAAwBlF,EAAkB,OAAOkF,EAErD,IAAIC,EAAU,CAAC,EAwCf,GAtCiB,CACf,kBACA,eACA,iBACA,uBACA,sBACA,OACA,oBACA,WACA,sBACA,cACA,gBAGSN,SAAQ,SAAUO,GAC3B,IAAI5D,EAAQ0D,EAAaE,GACzB,GAAqB,iBAAV5D,EAAoB,CAC7B,IAAI6D,EAAcC,WAAW9D,GAE7B2D,EAAQC,GAAK9H,MAAM+H,GAAe7D,EAAQ6D,CAC5C,CACF,IAII9G,MAAMoF,QAAQuB,EAAaK,qBAC7BJ,EAAQI,kBAAoBL,EAAaK,kBAAkBC,KAAI,SAC7DC,GAEA,OAAIlH,MAAMoF,QAAQ8B,GACTA,EAAQD,KAAI,SAAUhE,GAC3B,OAAO8D,WAAW9D,EACpB,IAEKiE,CACT,KAGEP,EAAaT,mBAAoB,CACnC,IAAIA,EAAqB,CAAC,EAC1BnC,OAAOC,KAAK2C,EAAaT,oBAAoBI,SAAQ,SAAUtD,GAC7D,IAAImE,EAAYR,EAAaT,mBAAmBlD,IAAc,CAAC,EAC/DkD,EAAmBlD,GAAa,CAAC,EACjCe,OAAOC,KAAKmD,GAAWb,SAAQ,SAAUc,GACvC,IACIC,EADSF,EAAUC,GACGH,KAAI,SAAUxD,GACtC,OAAIzD,MAAMoF,QAAQ3B,GACTA,EAAEwD,KAAI,SAAUK,GACrB,MAAsB,iBAAXA,EACFP,WAAWO,GAEbA,CACT,IACsB,iBAAN7D,EACTsD,WAAWtD,GAEbA,CACT,IACAyC,EAAmBlD,GAAWoE,GAAYC,CAC5C,GACF,IACAT,EAAQV,mBAAqBA,CAC/B,CAEA,OAAOvB,EAAM,CAAC,EAAGgC,EAAcC,EACjC,EAQAnF,EAAiB8F,KAAO,SAA8BhC,GACpD,IAAIiC,EAAW,IAAI/F,EAAiB8D,GAyBpC,OAvByBA,EAAcO,oBAAsB,IAC1CQ,SAAQ,SAAUmB,GACnC,GAAIA,EAAMC,SAAU,CAClB,IAAIC,EAAoBH,EAASI,0BAA0BH,EAAMI,MAG/DF,EAAkBjI,OAAS,GACsB,IAAjDiI,EAAkB,GAAGjD,QAAQ+C,EAAMC,YAEnCF,EAAWA,EAASM,iBAAiBL,EAAMI,OAKZ,KADjCF,EAAoBH,EAASI,0BAA0BH,EAAMI,OACvCnI,SACpB8H,EAAWA,EAASO,kCAClBN,EAAMI,KACNJ,EAAMC,UAGZ,CACF,IAEOF,CACT,EAQA/F,EAAiBuG,SAAW,SAAUC,EAAcxF,GAClD,IAAI+C,EAAS/C,GAAc,CAAC,EAE5B,OACEwF,EAAaC,YACb1C,EAAOW,gBACPX,EAAOW,eAAezG,OAAS,EAExB,IAAIE,MACT,qLAKAqI,EAAa9B,eAAezG,OAAS,GAAK8F,EAAO0C,WAC5C,IAAItI,MACT,oKAMFqI,EAAaE,gBACb3C,EAAOU,oBACPtD,EAAc4C,EAAOU,oBAEd,IAAItG,MACT,+KAMAgD,EAAcqF,EAAa/B,qBAAuBV,EAAO2C,eACpD,IAAIvI,MACT,+KAMG,IACT,EAEA6B,EAAiB9C,UAAY,CAC3ByJ,YAAa3G,EAWbqG,iBAAkB,SAA0B9E,GAC1C,IAAIqF,EAAQ,CACVnC,mBAAoBjI,KAAKqK,yBAAyBtF,GAClD+C,kBAAmBf,EAAexB,gBAChCvF,KAAK8H,kBACL/C,EACA,oBAEFgD,eAAgBhB,EAAexB,gBAC7BvF,KAAK+H,eACLhD,EACA,WAEFiD,6BAA8BjB,EAAexB,gBAC3CvF,KAAKgI,6BACLjD,EACA,oBAEFoD,8BAA+BpB,EAAexB,gBAC5CvF,KAAKmI,8BACLpD,EACA,sBAGJ,OACEqF,EAAMnC,qBAAuBjI,KAAKiI,oBAClCmC,EAAMtC,oBAAsB9H,KAAK8H,mBACjCsC,EAAMrC,iBAAmB/H,KAAK+H,gBAC9BqC,EAAMpC,+BACJhI,KAAKgI,8BACPoC,EAAMjC,gCAAkCnI,KAAKmI,8BAEtCnI,KAEFA,KAAKsK,mBAAmBF,EACjC,EAMAG,UAAW,WACT,YAAwBpK,IAApBH,KAAKiK,YAA2D,IAA/BjK,KAAKkI,eAAezG,OAChDzB,KAEFA,KAAKsK,mBAAmB,CAC7BL,gBAAY9J,EACZ+H,eAAgB,IAEpB,EAOAsC,SAAU,SAAkB5G,GAC1B,OAAIA,IAAU5D,KAAK4D,MAAc5D,KAE1BA,KAAKsK,mBAAmB,CAC7B1G,MAAOA,GAEX,EAOA6G,SAAU,SAAkBC,GAC1B,OAAIA,IAAa1K,KAAK2K,MAAc3K,KAE7BA,KAAKsK,mBAAmB,CAC7BK,MAAOD,GAEX,EAOAE,QAAS,SAAiBC,GACxB,OAAIA,IAAY7K,KAAK8K,KAAa9K,KAE3BA,KAAKsK,mBAAmB,CAC7BQ,KAAMD,GAEV,EAQAE,UAAW,SAAmBpD,GAC5B,OAAO3H,KAAKsK,mBAAmB,CAC7B3C,OAAQA,GAEZ,EAQAqD,qBAAsB,SAA8BrD,GAClD,OAAO3H,KAAKsK,mBAAmB,CAC7B1C,kBAAmBD,GAEvB,EAQAsD,eAAgB,SAAwBpK,GACtC,OAAIb,KAAKkL,cAAgBrK,EAAUb,KAE5BA,KAAKsK,mBAAmB,CAC7BY,YAAarK,GAEjB,EAQAsK,iBAAkB,SAA0BC,GAC1C,OAAIpL,KAAKoL,gBAAkBA,EAAsBpL,KAE1CA,KAAKsK,mBAAmB,CAC7Bc,cAAeA,GAEnB,EAkBAC,qBAAsB,SAAUtG,EAAWoE,EAAUnE,GACnD,IAAIsG,EAAMzE,EAAY7B,GAEtB,GAAIhF,KAAKuL,iBAAiBxG,EAAWoE,EAAUmC,GAAM,OAAOtL,KAE5D,IAAIqF,EAAMqB,EAAM,CAAC,EAAG1G,KAAKiI,oBAazB,OAXA5C,EAAIN,GAAa2B,EAAM,CAAC,EAAGrB,EAAIN,IAE3BM,EAAIN,GAAWoE,IAEjB9D,EAAIN,GAAWoE,GAAY9D,EAAIN,GAAWoE,GAAUnH,QAEpDqD,EAAIN,GAAWoE,GAAU7G,KAAKgJ,IAE9BjG,EAAIN,GAAWoE,GAAY,CAACmC,GAGvBtL,KAAKsK,mBAAmB,CAC7BrC,mBAAoB5C,GAExB,EAMAmG,0BAA2B,SAAUC,GACnC,OAAKzL,KAAK0L,mBAAmBD,IAGtBzL,KAAK8H,kBAAkB2D,IAFrB,EAGX,EAMAE,0BAA2B,SAAUF,GACnC,OAAKzL,KAAK4L,mBAAmBH,IAGtBzL,KAAKgI,6BAA6ByD,IAFhC,EAGX,EAMA9B,0BAA2B,SAAU8B,GAGnC,OAAOzL,KAAKmI,8BAA8BsD,IAAc,EAC1D,EAMAI,sBAAuB,SAAUJ,GAC/B,OAAKzL,KAAK0L,mBAAmBD,IAGtBzL,KAAK+H,eAAe0D,IAFlB,EAGX,EAUAK,wBAAyB,SAAU/G,EAAWoE,EAAU4C,GACtD,IAAIC,EAAaD,EACjB,YAAmB5L,IAAf6L,EACGhM,KAAKuL,iBAAiBxG,EAAWoE,EAAU6C,GAGzChM,KAAKsK,mBAAmB,CAC7BrC,mBAAoBjI,KAAKqK,0BAAyB,SAChDrF,EACA7B,GAEA,OACEA,IAAQ4B,GACRC,EAAMiH,KAAO9C,GACbnC,EAAyBhC,EAAMsG,IAAKzE,EAAYmF,GAEpD,MAZOhM,UAcaG,IAAbgJ,EACJnJ,KAAKuL,iBAAiBxG,EAAWoE,GAC/BnJ,KAAKsK,mBAAmB,CAC7BrC,mBAAoBjI,KAAKqK,0BAAyB,SAChDrF,EACA7B,GAEA,OAAOA,IAAQ4B,GAAaC,EAAMiH,KAAO9C,CAC3C,MAPsDnJ,KAWrDA,KAAKuL,iBAAiBxG,GACpB/E,KAAKsK,mBAAmB,CAC7BrC,mBAAoBjI,KAAKqK,0BAAyB,SAAUrF,EAAO7B,GACjE,OAAOA,IAAQ4B,CACjB,MAJ4C/E,IAMhD,EAMAkM,sBAAuB,SAAUT,GAC/B,OAAOzL,KAAKiI,mBAAmBwD,IAAc,CAAC,CAChD,EAOAU,qBAAsB,SAAUpH,EAAWoE,GACzC,OACEnJ,KAAKiI,mBAAmBlD,IACxB/E,KAAKiI,mBAAmBlD,GAAWoE,EAEvC,EAWAkB,yBAA0B,SAAkCtF,GAC1D,QAAkB5E,IAAd4E,EACF,OAAKJ,EAAc3E,KAAKiI,oBAGjB,CAAC,EAFCjI,KAAKiI,mBAGT,GAAyB,iBAAdlD,EAChB,OAAOL,EAAK1E,KAAKiI,mBAAoB,CAAClD,IACjC,GAAyB,mBAAdA,EAA0B,CAC1C,IAAIa,GAAa,EACbqC,EAAqBjI,KAAKiI,mBAC1BmE,EAAwBtG,OAAOC,KAAKkC,GAAoBjC,QAC1D,SAAUC,EAAM9C,GACd,IAAI+F,EAAYjB,EAAmB9E,GAC/BkJ,EAAe,CAAC,EAuBpB,OArBAnD,EAAYA,GAAa,CAAC,EAC1BpD,OAAOC,KAAKmD,GAAWb,SAAQ,SAAUc,GACvC,IAAIjD,EAASgD,EAAUC,IAAa,GAChCmD,EAAY,GAChBpG,EAAOmC,SAAQ,SAAUrD,GACDD,EACpB,CAAEuG,IAAKtG,EAAOiH,GAAI9C,GAClBhG,EACA,YAEoBmJ,EAAUhK,KAAK0C,EACvC,IACIsH,EAAU7K,SAAWyE,EAAOzE,SAC9BmE,GAAa,GAEfyG,EAAalD,GAAYmD,CAC3B,IAGArG,EAAK9C,GAAOkJ,EAELpG,CACT,GACA,CAAC,GAGH,OAAIL,EAAmBwG,EAChBpM,KAAKiI,kBACd,CAKF,EAQAsE,SAAU,SAAkB/C,GAC1B,OAAIxJ,KAAK0L,mBAAmBlC,GACnBxJ,KAGFA,KAAKsK,mBAAmB,CAC7B3C,OAAQ3H,KAAK2H,OAAOvC,OAAO,CAACoE,KAEhC,EAQAgD,oBAAqB,SAA6BhD,GAChD,OAAIxJ,KAAK4L,mBAAmBpC,GACnBxJ,KAGFA,KAAKsK,mBAAmB,CAC7B1C,kBAAmB5H,KAAK4H,kBAAkBxC,OAAO,CAACoE,KAEtD,EASAiD,qBAAsB,SAA8BC,GAClD,GAAI1M,KAAK2M,oBAAoBD,EAAkB9C,MAC7C,MAAM,IAAIjI,MACR,+DACE+K,EAAkB9C,KAClB,KAIN,OAAO5J,KAAKsK,mBAAmB,CAC7BzC,mBAAoB7H,KAAK6H,mBAAmBzC,OAAO,CAACsH,KAExD,EAQAE,mBAAoB,SAA4BpD,EAAOxE,GACrD,IAAKhF,KAAK0L,mBAAmBlC,GAC3B,MAAM,IAAI7H,MACR6H,EACE,uEAGN,OAAIzC,EAAe9B,UAAUjF,KAAK8H,kBAAmB0B,EAAOxE,GACnDhF,KAEFA,KAAKsK,mBAAmB,CAC7BxC,kBAAmBf,EAAelC,cAChC7E,KAAK8H,kBACL0B,EACAxE,IAGN,EAQA6H,qBAAsB,SAA8BrD,EAAOxE,GACzD,IAAKhF,KAAK0L,mBAAmBlC,GAC3B,MAAM,IAAI7H,MACR6H,EACE,uEAGN,OAAIzC,EAAe9B,UAAUjF,KAAK+H,eAAgByB,EAAOxE,GAChDhF,KAEFA,KAAKsK,mBAAmB,CAC7BvC,eAAgBhB,EAAelC,cAC7B7E,KAAK+H,eACLyB,EACAxE,IAGN,EAQA8H,8BAA+B,SAC7BtD,EACAxE,GAEA,IAAKhF,KAAK4L,mBAAmBpC,GAC3B,MAAM,IAAI7H,MACR6H,EACE,kFAIN,OACEzC,EAAe9B,UAAUjF,KAAKgI,6BAA8BwB,EAAOxE,GAE5DhF,KAEFA,KAAKsK,mBAAmB,CAC7BtC,6BAA8BjB,EAAelC,cAC3C7E,KAAKgI,6BACLwB,EACAxE,IAGN,EAMA+H,iBAAkB,SAA0BC,GAC1C,GAAIhN,KAAKiN,aAAaD,GAAM,OAAOhN,KAEnC,IAAIkN,EAAe,CACjBhF,eAAgBlI,KAAKkI,eAAe9C,OAAO4H,IAG7C,OAAOhN,KAAKsK,mBAAmB4C,EACjC,EAQAC,YAAa,SAAqB3D,GAChC,OAAKxJ,KAAK0L,mBAAmBlC,GAItBxJ,KAAK6J,iBAAiBL,GAAOc,mBAAmB,CACrD3C,OAAQ3H,KAAK2H,OAAOvB,QAAO,SAAUX,GACnC,OAAOA,IAAM+D,CACf,MANOxJ,IAQX,EAQAoN,uBAAwB,SAAgC5D,GACtD,OAAKxJ,KAAK4L,mBAAmBpC,GAItBxJ,KAAK6J,iBAAiBL,GAAOc,mBAAmB,CACrD1C,kBAAmB5H,KAAK4H,kBAAkBxB,QAAO,SAAUX,GACzD,OAAOA,IAAM+D,CACf,MANOxJ,IAQX,EAQAqN,wBAAyB,SAAiC7D,GACxD,OAAKxJ,KAAK2M,oBAAoBnD,GAIvBxJ,KAAK6J,iBAAiBL,GAAOc,mBAAmB,CACrDzC,mBAAoB7H,KAAK6H,mBAAmBzB,QAAO,SAAUX,GAC3D,OAAOA,EAAEmE,OAASJ,CACpB,MANOxJ,IAQX,EAUAsN,sBAAuB,SAA+B9D,EAAOxE,GAC3D,IAAKhF,KAAK0L,mBAAmBlC,GAC3B,MAAM,IAAI7H,MACR6H,EACE,uEAGN,OAAKzC,EAAe9B,UAAUjF,KAAK8H,kBAAmB0B,EAAOxE,GAGtDhF,KAAKsK,mBAAmB,CAC7BxC,kBAAmBf,EAAezB,iBAChCtF,KAAK8H,kBACL0B,EACAxE,KANKhF,IASX,EAQAuN,wBAAyB,SAAiC/D,EAAOxE,GAC/D,IAAKhF,KAAK0L,mBAAmBlC,GAC3B,MAAM,IAAI7H,MACR6H,EACE,uEAGN,OAAKzC,EAAe9B,UAAUjF,KAAK+H,eAAgByB,EAAOxE,GAGnDhF,KAAKsK,mBAAmB,CAC7BvC,eAAgBhB,EAAezB,iBAC7BtF,KAAK+H,eACLyB,EACAxE,KANKhF,IASX,EAQAwN,iCAAkC,SAChChE,EACAxE,GAEA,IAAKhF,KAAK4L,mBAAmBpC,GAC3B,MAAM,IAAI7H,MACR6H,EACE,kFAGN,OACGzC,EAAe9B,UAAUjF,KAAKgI,6BAA8BwB,EAAOxE,GAI/DhF,KAAKsK,mBAAmB,CAC7BtC,6BAA8BjB,EAAezB,iBAC3CtF,KAAKgI,6BACLwB,EACAxE,KANKhF,IASX,EAOAyN,oBAAqB,SAA6BT,GAChD,IAAKhN,KAAKiN,aAAaD,GAAM,OAAOhN,KAEpC,IAAIkN,EAAe,CACjBhF,eAAgBlI,KAAKkI,eAAe9B,QAAO,SAAUsH,GACnD,OAAOA,IAAMV,CACf,KAGF,OAAOhN,KAAKsK,mBAAmB4C,EACjC,EAUAxH,iBAAkB,SAA0B8D,EAAOxE,GACjD,OAAOhF,KAAK2N,sBAAsBnE,EAAOxE,EAC3C,EASA2I,sBAAuB,SAA+BnE,EAAOxE,GAC3D,GAAIhF,KAAK2M,oBAAoBnD,GAC3B,OAAOxJ,KAAK8J,kCAAkCN,EAAOxE,GAChD,GAAIhF,KAAK0L,mBAAmBlC,GACjC,OAAOxJ,KAAK4N,iCAAiCpE,EAAOxE,GAC/C,GAAIhF,KAAK4L,mBAAmBpC,GACjC,OAAOxJ,KAAK6N,iCAAiCrE,EAAOxE,GAGtD,MAAM,IAAIrD,MACR,sCACE6H,EACA,6FAEN,EAQAoE,iCAAkC,SAChCpE,EACAxE,GAEA,IAAKhF,KAAK0L,mBAAmBlC,GAC3B,MAAM,IAAI7H,MACR6H,EACE,uEAIN,OAAOxJ,KAAKsK,mBAAmB,CAC7BxC,kBAAmBf,EAAerB,iBAChC1F,KAAK8H,kBACL0B,EACAxE,IAGN,EAQA8I,6BAA8B,SAC5BtE,EACAxE,GAEA,IAAKhF,KAAK0L,mBAAmBlC,GAC3B,MAAM,IAAI7H,MACR6H,EACE,uEAIN,OAAOxJ,KAAKsK,mBAAmB,CAC7BvC,eAAgBhB,EAAerB,iBAC7B1F,KAAK+H,eACLyB,EACAxE,IAGN,EAQA6I,iCAAkC,SAChCrE,EACAxE,GAEA,IAAKhF,KAAK4L,mBAAmBpC,GAC3B,MAAM,IAAI7H,MACR6H,EACE,kFAIN,OAAOxJ,KAAKsK,mBAAmB,CAC7BtC,6BAA8BjB,EAAerB,iBAC3C1F,KAAKgI,6BACLwB,EACAxE,IAGN,EAQA8E,kCAAmC,SACjCN,EACAxE,GAEA,IAAKhF,KAAK2M,oBAAoBnD,GAC5B,MAAM,IAAI7H,MACR6H,EACE,mFAIN,IAAIuE,EAAY/N,KAAKgO,+BACnBhO,KAAKiO,2BAA2BzE,IAG9BnE,EAAM,CAAC,EA2BX,YAxBgDlF,IAA9CH,KAAKmI,8BAA8BqB,IACnCxJ,KAAKmI,8BAA8BqB,GAAO/H,OAAS,IAGlDzB,KAAKmI,8BAA8BqB,GAAO,KAAOxE,GAO1C,IAFNhF,KAAKmI,8BAA8BqB,GAAO,GAAG/C,QAC3CzB,EAAQ+I,KAIsB,IAA9B/I,EAAMyB,QAAQsH,GAEhB1I,EAAImE,GAAS,GAEbnE,EAAImE,GAAS,CAACxE,EAAMhD,MAAM,EAAGgD,EAAMkJ,YAAYH,KAGjD1I,EAAImE,GAAS,CAACxE,GAGThF,KAAKsK,mBAAmB,CAC7BnC,8BAA+B1D,EAC7B,CAAC,EACDY,EACArF,KAAKmI,gCAGX,EASAgG,+BAAgC,SAAU3E,EAAO4E,GAC/C,GAAIpO,KAAKqO,2BAA2B7E,GAClC,MAAM,IAAI7H,MAAM6H,EAAQ,wBAE1B,IAAKxJ,KAAK2M,oBAAoBnD,GAC5B,MAAM,IAAI7H,MACR6H,EACE,oFAGN,IAAInE,EAAM,CAAC,EAEX,OADAA,EAAImE,GAAS,CAAC4E,GACPpO,KAAKsK,mBAAmB,CAC7BnC,8BAA+B1D,EAC7B,CAAC,EACDY,EACArF,KAAKmI,gCAGX,EAQAmG,kCAAmC,SAAU9E,GAC3C,IAAKxJ,KAAKqO,2BAA2B7E,GACnC,OAAOxJ,KAET,IAAIqF,EAAM,CAAC,EAEX,OADAA,EAAImE,GAAS,GACNxJ,KAAKsK,mBAAmB,CAC7BnC,8BAA+B1D,EAC7B,CAAC,EACDY,EACArF,KAAKmI,gCAGX,EAOAoG,oBAAqB,SAA6BvB,GAChD,OAAIhN,KAAKiN,aAAaD,GACbhN,KAAKyN,oBAAoBT,GAG3BhN,KAAK+M,iBAAiBC,EAC/B,EAOApB,mBAAoB,SAAUpC,GAC5B,OAAOxJ,KAAK4H,kBAAkBnB,QAAQ+C,IAAU,CAClD,EAOAmD,oBAAqB,SAAUlB,GAC7B,YAAsDtL,IAA/CH,KAAKiO,2BAA2BxC,EACzC,EAOAC,mBAAoB,SAAUlC,GAC5B,OAAOxJ,KAAK2H,OAAOlB,QAAQ+C,IAAU,CACvC,EAUAgF,eAAgB,SAAwBhF,EAAOxE,GAC7C,QAAKhF,KAAK0L,mBAAmBlC,IAGtBzC,EAAe9B,UAAUjF,KAAK8H,kBAAmB0B,EAAOxE,EACjE,EAWAyJ,iBAAkB,SAA0BjF,EAAOxE,GACjD,QAAKhF,KAAK0L,mBAAmBlC,IAGtBzC,EAAe9B,UAAUjF,KAAK+H,eAAgByB,EAAOxE,EAC9D,EAUA0J,0BAA2B,SAAmClF,EAAOxE,GACnE,QAAKhF,KAAK4L,mBAAmBpC,IAGtBzC,EAAe9B,UACpBjF,KAAKgI,6BACLwB,EACAxE,EAEJ,EAUAqJ,2BAA4B,SAC1B7E,EACAxE,GAEA,IAAKhF,KAAK2M,oBAAoBnD,GAC5B,OAAO,EAGT,IAAImF,EAAc3O,KAAK2J,0BAA0BH,GAEjD,OAAKxE,GAIkC,IAAhC2J,EAAYlI,QAAQzB,GAHlB2J,EAAYlN,OAAS,CAIhC,EAWA8J,iBAAkB,SAA0BxG,EAAWoE,EAAUnE,GAC/D,QAAc7E,IAAV6E,QAAoC7E,IAAbgJ,EACzB,OAAO5C,QAAQvG,KAAKiI,mBAAmBlD,IAGzC,IAAI6J,EACF5O,KAAKiI,mBAAmBlD,SACyB5E,IAAjDH,KAAKiI,mBAAmBlD,GAAWoE,GAErC,QAAchJ,IAAV6E,IAAwB4J,EAC1B,OAAOA,EAGT,IAt1CeC,EAAOC,EAs1ClBjG,EAAchC,EAAY7B,GAC1B+J,OAEF5O,KAz1Ca0O,EAw1CH7O,KAAKiI,mBAAmBlD,GAAWoE,GAx1CzB2F,EAw1CoCjG,EAv1CrDjC,EAAKiI,GAAO,SAAUG,GAC3B,OAAOhI,EAAyBgI,EAAcF,EAChD,KAw1CE,OAAOF,GAAqBG,CAC9B,EAOA9B,aAAc,SAAsBD,GAClC,OAA6C,IAAtChN,KAAKkI,eAAezB,QAAQuG,EACrC,EAQAiC,4BAA6B,WAE3B,IAAI7G,EAAOpI,KAGPkP,EAAkCvI,EACpCb,OAAOC,KAAK/F,KAAKiI,oBAAoB7B,QAAO,SAAUoD,GACpD,OAAO1D,OAAOC,KAAKqC,EAAKH,mBAAmBuB,IAAQ/H,OAAS,CAC9D,IACAzB,KAAK4H,mBAGP,OAAO9B,OAAOC,KAAK/F,KAAKgI,8BACrB5B,QAAO,SAAUoD,GAChB,OAAOpB,EAAKJ,6BAA6BwB,GAAO/H,OAAS,CAC3D,IACC2D,OAAO8J,GACP9J,OAAOpF,KAAKmP,+BACjB,EAQAA,6BAA8B,WAE5B,IAAI/G,EAAOpI,KACX,OAAO2G,EAGL3G,KAAK6H,mBAAmBmB,KAAI,SAAUQ,GACpC,OAAOA,EAAMI,IACf,IACA9D,OAAOC,KAAK/F,KAAKmI,+BAA+B/B,QAAO,SAAUoD,GAC/D,OAAOpB,EAAKD,8BAA8BqB,GAAO/H,OAAS,CAC5D,IAEJ,EAMA2N,8BAA+B,WAC7B,IAAIC,EAAgBrP,KAAKiP,8BAEzB,OAAOjP,KAAK4H,kBAAkBxB,QAAO,SAAUX,GAC7C,OAAqC,IAA9B4J,EAAc5I,QAAQhB,EAC/B,GACF,EAEA6J,kBAAmB,CACjB,QAEA,SACA,oBACA,oBACA,qBACA,iBAEA,+BACA,qBACA,iBACA,iCAGFC,eAAgB,WACd,IAAID,EAAoBtP,KAAKsP,kBAEzBE,EAAc,CAAC,EAGfpH,EAAOpI,KAWX,OAVA8F,OAAOC,KAAK/F,MAAMqI,SAAQ,SAAUC,GAClC,IAAI0D,EAAa5D,EAAKE,IAEsB,IAA1CgH,EAAkB7I,QAAQ6B,SACXnI,IAAf6L,IAEAwD,EAAYlH,GAAa0D,EAE7B,IAEOwD,CACT,EAWAC,kBAAmB,SAAsBC,EAAW1K,GAClD,GAAIhF,KAAK0P,KAAe1K,EAAO,OAAOhF,KAEtC,IAAIkN,EAAe,CAAC,EAIpB,OAFAA,EAAawC,GAAa1K,EAEnBhF,KAAKsK,mBAAmB4C,EACjC,EAOA5C,mBAAoB,SAA4B/C,GAC9C,IAAKA,EAAQ,OAAOvH,KAEpB,IAAIwB,EAAQgC,EAAiBuG,SAAS/J,KAAMuH,GAE5C,GAAI/F,EACF,MAAMA,EAIR,IAAI4G,EAAOpI,KACP2P,EAAkBnM,EAAiBgE,cAAcD,GACjDqI,EAAsB9J,OAAOC,KAAK/F,MAAMgG,QAAO,SAAU6J,EAAK1M,GAGhE,OADA0M,EAAI1M,GAAOiF,EAAKjF,GACT0M,CACT,GAAG,CAAC,GAEAC,EAAkBhK,OAAOC,KAAK4J,GAAiB3J,QAAO,SACxD+J,EACA5M,GAEA,IAAI6M,OAA2C7P,IAAlB4P,EAAS5M,GAClC8M,OAA8C9P,IAAzBwP,EAAgBxM,GAEzC,OAAI6M,IAA2BC,EACtBvL,EAAKqL,EAAU,CAAC5M,KAGrB8M,IAEFF,EAAS5M,GAAOwM,EAAgBxM,IAG3B4M,EACT,GACAH,GAEA,OAAO,IAAI5P,KAAKmK,YAAY2F,EAC9B,EAQAI,UAAW,WACT,YAAkB/P,IAAdH,KAAK8K,KACA9K,KAGFA,KAAK4K,QAAQ,EACtB,EAOAuF,4BAA6B,SAAUzD,GACrC,OAAOA,EAAkB0D,QAAU,CAAC,iBAAkB,WACxD,EAQApC,+BAAgC,SAAUtB,GACxC,OAAOA,EAAkBqB,WAAa,KACxC,EAQAsC,yBAA0B,SAAU3D,GAClC,OAAOA,EAAkBjD,UAAY,IACvC,EAQA6G,gCAAiC,SAAU5D,GACzC,MAAiD,kBAAtCA,EAAkB6D,iBACpB7D,EAAkB6D,eAG7B,EAOAtC,2BAA4B,SAAUuC,GACpC,OAAO5J,EAAK5G,KAAK6H,oBAAoB,SAAUpC,GAC7C,OAAOA,EAAEmE,OAAS4G,CACpB,GACF,EAOAC,+BAAgC,SAAUhF,GACxC,IAAKzL,KAAK2M,oBAAoBlB,GAC5B,MAAO,GAGT,IAAIiF,EAAa1Q,KAAK2J,0BAA0B8B,GAAW,GAC3D,IAAKiF,EAAY,MAAO,GAExB,IAAI3C,EAAY/N,KAAKgO,+BACnBhO,KAAKiO,2BAA2BxC,IAGlC,OADWiF,EAAWC,MAAM5C,GAChB/E,KAAI,SAAU4H,GACxB,OAAOA,EAAKC,MACd,GACF,EAEAC,SAAU,WACR,OAAOC,KAAKC,UAAUhR,KAAM,KAAM,EACpC,GAYFQ,EAAOC,QAAU+C,oCCtpDjBhD,EAAOC,QASP,SAAuBwQ,GACrB,OAAO,SAAkBC,EAAyBC,GAChD,IAAIzE,EAAoBuE,EAAMpJ,mBAAmBsJ,GAC7CC,EACDH,EAAM9I,8BAA8BuE,EAAkB9C,OACrDqH,EAAM9I,8BAA8BuE,EAAkB9C,MAAM,IAC9D,GACEyH,EACFJ,EAAMjD,+BAA+BtB,GACnC4E,EACFL,EAAMZ,yBAAyB3D,GAC7B6E,EACFN,EAAMX,gCAAgC5D,GACpC0D,EAASoB,EACXP,EAAMd,4BAA4BzD,IAGhC+E,EAAiBP,EAAwB9J,OAAM,SAAUsK,GAC3D,OAAOA,EAAYC,UACrB,IAEIC,EA4BR,SACExB,EACAiB,EACAC,EACAC,EACA7H,GAEA,OAAO,SACLmI,EACAX,EACAY,GAEA,IAAIC,EAASF,EAEb,GAAIC,EAA2B,EAAG,CAChC,IAAIE,EAAQ,EAIZ,IAFAD,EAASF,EAEFG,EAAQF,GAA0B,CAIvC,IAAIG,EAAOF,GAAUhQ,MAAMoF,QAAQ4K,EAAOE,MAAQF,EAAOE,KAAO,GAChEF,EAASnL,EAAKqL,GAAM,SAAUC,GAC5B,OAAOA,EAAQjN,SACjB,IACA+M,GACF,CACF,CAGA,GAAID,EAAQ,CAYV,IAAII,EAASrM,OAAOC,KAAKmL,EAAwBe,MAC9CjJ,KAAI,SAAUoJ,GACb,MAAO,CAACA,EAAYlB,EAAwBe,KAAKG,GACnD,IACChM,QAAO,SAAUiM,GAEhB,OAiCV,SACED,EACAE,EACA5I,EACA2H,EACAC,EACAC,GAGA,QACED,GAC8C,IAA7Cc,EAAW3L,QAAQ6K,IAClBA,IAAyBc,MAOzBd,IAC+C,IAA/Cc,EAAW3L,QAAQ4K,IAEpBC,GACCc,EAAWzB,MAAMU,GAAuB5P,OACtC6P,EAAqBX,MAAMU,GAAuB5P,QAClD,IAG4C,IAA/C2Q,EAAW3L,QAAQ4K,KACoC,IAAtD3H,EAAkBjD,QAAQ4K,IAEc,IAA1C3H,EAAkBjD,QAAQ2L,IAEkC,IAA3DA,EAAW3L,QAAQ6L,EAAajB,KAC9BE,GAC2C,IAA1Ca,EAAW3L,QAAQiD,IAE3B,CAtEiB6I,CADUF,EAAM,GAGrBN,EAAO3D,MAAQkD,EACf5H,EACA2H,EACAC,EACAC,EAEJ,IAEFQ,EAAOE,KAAOO,EACZL,EAAOnJ,KAAI,SAAUqJ,GACnB,IAAID,EAAaC,EAAM,GAGvB,OAyDV,SACEI,EACAL,EACAf,EACA3H,EACAiI,GAEA,IAAIe,EAAQN,EAAWzB,MAAMU,GAC7B,MAAO,CACLzH,KAAM8I,EAAMA,EAAMjR,OAAS,GAAGoP,OAC9BzC,KAAMgE,EACNO,aAAcC,EAAiBR,GAC/BS,MAAOJ,EACPxN,UACEyE,IAAsB0I,GAC4C,IAAlE1I,EAAkBjD,QAAQ2L,EAAaf,GACzCM,WAAYA,EACZM,KAAM,KAEV,CA5EiBa,CAFUT,EAAM,GAIrBD,EACAf,EACA0B,EAAmBrJ,GACnBwH,EAAwBS,WAE5B,IACAvB,EAAO,GACPA,EAAO,GAEX,CAEA,OAAOyB,CACT,CACF,CA5GyBmB,CACnB5C,EACAiB,EACAC,EACAC,EACAH,GAGE6B,EAAU/B,EAQd,OANII,IACF2B,EAAU/B,EAAwBlP,MAChCsP,EAAqBX,MAAMU,GAAuB5P,SAI/CwR,EAAQjN,OAAO4L,EAAgB,CACpChI,KAAMqH,EAAMpJ,mBAAmBsJ,GAAwBvH,KACvDiJ,MAAO,KACP5N,WAAW,EACXmJ,KAAM,KACNuE,aAAc,KACdhB,WAAYF,EACZQ,KAAM,MAEV,CACF,EAtDA,IAAIO,EAAU,EAAQ,KAClB5L,EAAO,EAAQ,KACf4K,EAAiC,EAAQ,KACzC0B,EAAK,EAAQ,KACbN,EAAmBM,EAAGN,iBACtBG,EAAqBG,EAAGH,qDCP5B,IAAIrM,EAAQ,EAAQ,KAChBjC,EAAe,EAAQ,KACvB+N,EAAU,EAAQ,KAClBW,EAAU,EAAQ,KAClBvM,EAAO,EAAQ,KACfwM,EAAY,EAAQ,KACpBC,EAAa,EAAQ,KACrBH,EAAK,EAAQ,KACbN,EAAmBM,EAAGN,iBACtBG,EAAqBG,EAAGH,mBAExBC,EAA2B,EAAQ,KAgDvC,SAASM,EAAWC,GAClB,IAAIC,EAAU,CAAC,EAMf,OAJAD,EAAWlL,SAAQ,SAAUiD,EAAKmI,GAChCD,EAAQlI,GAAOmI,CACjB,IAEOD,CACT,CAEA,SAASE,EAAiBC,EAAMC,EAAYzQ,GACtCyQ,GAAcA,EAAWzQ,KAE3BwQ,EAAKE,MAAQD,EAAWzQ,GAE5B,CA6JA,SAASM,EAAcwN,EAAOgC,EAASa,GACrC,IAAIC,EAAkBd,EAAQ,GAE9BjT,KAAKgU,YAAcf,EAGnB,IAAI7K,EAAOpI,KAGX8F,OAAOC,KAAKgO,GAAiB1L,SAAQ,SAAUlF,GAC7CiF,EAAKjF,GAAO4Q,EAAgB5Q,EAC9B,IAGA2C,OAAOC,KAAK+N,GAAW,CAAC,GAAGzL,SAAQ,SAAUlF,GAC3CiF,EAAKjF,GAAO2Q,EAAQ3Q,EACtB,IA8IAnD,KAAKiU,iBAAmBhB,EAAQjN,QAAO,SAAUkO,EAAKC,GACpD,YAAmChU,IAA5BgU,EAAOF,iBACVC,EACAA,EAAMC,EAAOF,gBACnB,GAAG,GAMHjU,KAAK4H,kBAAoB,GAKzB5H,KAAK6H,mBAAqBoJ,EAAMpJ,mBAAmBmB,KACjD,WACE,MAAO,EACT,IAMFhJ,KAAK2H,OAAS,GAEd,IAAIC,EAAoBqJ,EAAMhC,8BAE1BmF,EAAgBd,EAAWrC,EAAMtJ,QACjC0M,EAA2Bf,EAAWrC,EAAMrJ,mBAC5C0M,EAAwB,EAKxBC,EAAaR,EAAgBpM,QAAU,CAAC,EAE5C7B,OAAOC,KAAKwO,GAAYlM,SAAQ,SAAUmM,GACxC,IAnVF3M,EACA4M,EAkVMC,EAAmBH,EAAWC,GAE9B9H,GArVN7E,EAsVIoJ,EAAMpJ,mBArVV4M,EAsVID,EApVG5N,EACLiB,GACA,SAAkC6E,GAEhC,OADiBA,EAAkB6G,YAAc,IAC/B9M,QAAQgO,IAA8B,CAC1D,KAkVA,GAAI/H,EAAmB,CAGrB,IAAIiI,EAAajI,EAAkB6G,WAAW9M,QAAQ+N,GAClDI,EAAmBxB,EAAUnC,EAAMpJ,oBAAoB,SAAUpC,GACnE,OAAOA,EAAEmE,OAAS8C,EAAkB9C,IACtC,IACAxB,EAAKP,mBAAmB+M,GAAkBD,GAAc,CACtD5P,UAAWyP,EACXvC,KAAMyC,EACN/C,WAAYoC,EAAgBc,sBAEhC,KAAO,CACL,IAEI7R,EAFA8R,GAAoE,IAA/C7D,EAAMrJ,kBAAkBnB,QAAQ+N,GACrDO,GAAyD,IAApC9D,EAAMtJ,OAAOlB,QAAQ+N,GAG1CM,IACF9R,EAAWqR,EAAyBG,GACpCpM,EAAKR,kBAAkB5E,GAAY,CACjC4G,KAAM4K,EACNvC,KAAMyC,EACN/C,WAAYoC,EAAgBc,uBAE9BnB,EACEtL,EAAKR,kBAAkB5E,GACvB+Q,EAAgBiB,aAChBR,IAGAO,IACF/R,EAAWoR,EAAcI,GACzBpM,EAAKT,OAAO3E,GAAY,CACtB4G,KAAM4K,EACNvC,KAAMyC,EACN/C,WAAYoC,EAAgBc,uBAE9BnB,EACEtL,EAAKT,OAAO3E,GACZ+Q,EAAgBiB,aAChBR,GAGN,CACF,IAGAxU,KAAK6H,mBAAqBsL,EAAQnT,KAAK6H,oBAGvCD,EAAkBS,SAAQ,SAAU4M,GAClC,IAAId,EAASlB,EAAQqB,GACjB3M,EAASwM,GAAUA,EAAOxM,OAASwM,EAAOxM,OAAS,CAAC,EACpD+E,EAAoBuE,EAAMhD,2BAA2BgH,GAGzDnP,OAAOC,KAAK4B,GAAQU,SAAQ,SAAU6M,GACpC,IAEIlS,EAFAmS,EAAexN,EAAOuN,GAI1B,GAAIxI,EAAmB,CACrB1J,EAAWoQ,EAAUnC,EAAMpJ,oBAAoB,SAAUpC,GACvD,OAAOA,EAAEmE,OAAS8C,EAAkB9C,IACtC,IACA,IAAIwL,EAAiBhC,EACnBhL,EAAKP,mBAAmB7E,IACxB,SAAUyC,GACR,OAAOA,EAAEV,YAAcmQ,CACzB,IAIF,IAAwB,IAApBE,EACF,OAGFhN,EAAKP,mBAAmB7E,GAAUoS,GAAgBnD,KAAOvL,EACvD,CAAC,EACD0B,EAAKP,mBAAmB7E,GAAUoS,GAAgBnD,KAClDkD,EAEJ,KAAO,CACLnS,EAAWqR,EAAyBa,GAEpC,IAAIG,EACDtB,EAAgBpM,QAAUoM,EAAgBpM,OAAOuN,IAAY,CAAC,EAEjE9M,EAAKR,kBAAkB5E,GAAY,CACjC4G,KAAMsL,EACNjD,KAAMxN,EAAa,CAAC,EAAG0Q,EAAcE,GACrC1D,WAAYwC,EAAOU,uBAErBnB,EACEtL,EAAKR,kBAAkB5E,GACvBmR,EAAOa,aACPE,GAGEjE,EAAMjJ,6BAA6BkN,IACrCjE,EAAMjJ,6BAA6BkN,GAAQ7M,SAAQ,SACjDhC,IAIG+B,EAAKR,kBAAkB5E,GAAUiP,KAAK5L,IACvC4K,EAAMjJ,6BAA6BkN,GAAQzO,QACzCsM,EAAmB1M,KAChB,IAEL+B,EAAKR,kBAAkB5E,GAAUiP,KAAK5L,GAAmB,EAE7D,GAEJ,CACF,IACAiO,GACF,IAGArD,EAAM9B,+BAA+B9G,SAAQ,SAAUiN,GACrD,IAAI5I,EAAoBuE,EAAMhD,2BAA2BqH,GACrDvH,EAAYkD,EAAMjD,+BAA+BtB,GAEjDhD,EAAoBuH,EAAMtH,0BAA0B2L,GAIzB,IAA7B5L,EAAkBjI,QAClBiI,EAAkB,GAAGiH,MAAM5C,GAAWtM,OAAS,GAKjDwR,EAAQjR,MAAMsS,GAAuBjM,SAAQ,SAAU8L,GACrD,IAAIxM,EAASwM,GAAUA,EAAOxM,OAASwM,EAAOxM,OAAS,CAAC,EAExD7B,OAAOC,KAAK4B,GAAQU,SAAQ,SAAU6M,GACpC,IAAIC,EAAexN,EAAOuN,GACtBlS,EAAWoQ,EAAUnC,EAAMpJ,oBAAoB,SAAUpC,GAC3D,OAAOA,EAAEmE,OAAS8C,EAAkB9C,IACtC,IACIwL,EAAiBhC,EACnBhL,EAAKP,mBAAmB7E,IACxB,SAAUyC,GACR,OAAOA,EAAEV,YAAcmQ,CACzB,IAIF,IAAwB,IAApBE,EAAJ,CAYA,IAAIG,EAAc,CAAC,EAEnB,GAAI7L,EAAkBjI,OAAS,EAAG,CAChC,IAAI+T,EAAO9L,EAAkB,GAAGiH,MAAM5C,GAAW,GACjDwH,EAAYC,GACVpN,EAAKP,mBAAmB7E,GAAUoS,GAAgBnD,KAAKuD,EAC3D,CAEApN,EAAKP,mBAAmB7E,GAAUoS,GAAgBnD,KAAOxN,EACvD8Q,EACAJ,EACA/M,EAAKP,mBAAmB7E,GAAUoS,GAAgBnD,KArBpD,CAuBF,IAEAqC,GACF,GACF,IAGAxO,OAAOC,KAAKkL,EAAMlJ,gBAAgBM,SAAQ,SAAUoD,GAClD,IAAIgK,EAAWxE,EAAMlJ,eAAe0D,GAChCzI,EAAWoR,EAAc3I,GAE7BrD,EAAKT,OAAO3E,GAAY,CACtB4G,KAAM6B,EACNwG,KAAMsC,EAAW9I,GACjBkG,WAAYoC,EAAgBc,uBAE9BY,EAASpN,SAAQ,SAAU+J,GACzBhK,EAAKT,OAAO3E,GAAYoF,EAAKT,OAAO3E,IAAa,CAAE4G,KAAM6B,GACzDrD,EAAKT,OAAO3E,GAAUiP,KAAO7J,EAAKT,OAAO3E,GAAUiP,MAAQ,CAAC,EAC5D7J,EAAKT,OAAO3E,GAAUiP,KAAKG,GAAc,CAC3C,GACF,IAKApS,KAAK6H,mBAAqB7H,KAAK6H,mBAAmBmB,IAChDgK,EAAyB/B,IAM3BjR,KAAK2H,OAASwL,EAAQnT,KAAK2H,QAI3B3H,KAAK4H,kBAAoBuL,EAAQnT,KAAK4H,mBAEtC5H,KAAK0V,OAASzE,CAChB,CA2BA,SAAS0E,EAA6B1C,EAASlO,GAC7C,SAAS6Q,EAAUpM,GACjB,OAAOA,EAAMI,OAAS7E,CACxB,CAEA,GAAIkO,EAAQyC,OAAOhK,mBAAmB3G,GAAY,CAChD,IAAIyE,EAAQ5C,EAAKqM,EAAQtL,OAAQiO,GACjC,OAAKpM,EAEE1D,OAAOC,KAAKyD,EAAMyI,MAAMjJ,KAAI,SAAUY,GAC3C,IAAI5E,EAAQ4N,EAAiBhJ,GAC7B,MAAO,CACLA,KAAMA,EACN+I,aAAc3N,EACd6N,MAAOrJ,EAAMyI,KAAKrI,GAClB3E,UAAWgO,EAAQyC,OAAOlH,eAAezJ,EAAWC,GACpD6Q,WAAY5C,EAAQyC,OAAOjH,iBAAiB1J,EAAW6E,GAE3D,IAXmB,EAYrB,CAAO,GAAIqJ,EAAQyC,OAAO9J,mBAAmB7G,GAAY,CACvD,IAAIkQ,EAAmBrO,EAAKqM,EAAQrL,kBAAmBgO,GACvD,OAAKX,EAEEnP,OAAOC,KAAKkP,EAAiBhD,MAAMjJ,KAAI,SAAUY,GACtD,IAAI5E,EAAQ4N,EAAiBhJ,GAC7B,MAAO,CACLA,KAAMA,EACN+I,aAAc3N,EACd6N,MAAOoC,EAAiBhD,KAAKrI,GAC7B3E,UAAWgO,EAAQyC,OAAOhH,0BAA0B3J,EAAWC,GAEnE,IAV8B,EAWhC,CAAO,GAAIiO,EAAQyC,OAAO/I,oBAAoB5H,GAAY,CACxD,IAAI+Q,EAA0BlP,EAAKqM,EAAQpL,mBAAoB+N,GAC/D,IAAKE,EAAyB,OAAOA,EAErC,IAAIpJ,EACFuG,EAAQyC,OAAOzH,2BAA2BlJ,GACxCgJ,EACFkF,EAAQyC,OAAO1H,+BAA+BtB,GAC5ChD,EAAoBqJ,EACtBE,EAAQyC,OAAO/L,0BAA0B5E,GAAW,IAAM,IAGE,IAA1D2E,EAAkBjD,QAAQiG,EAAkBjD,YAC9CC,EAAoBA,EAAkBqM,QACpCrJ,EAAkBjD,SAAWsE,EAC7B,KAIJ,IAAIiI,EAAyBtM,EAAkBiH,MAAM5C,GAKrD,OAJAiI,EAAuBC,QAAQlR,GAE/BmR,EAAaJ,EAAyBE,EAAwB,GAEvDF,CACT,CAGF,CASA,SAASI,EAAaC,EAAMzM,EAAmB0M,GAE7CD,EAAKlR,UAAYkR,EAAKvM,OAASF,EAAkB0M,GAC7CD,EAAKlE,MACPkE,EAAKlE,KAAK5J,SAAQ,SAAUgO,GAC1BH,EAAaG,EAAO3M,EAAmB0M,EAAQ,EACjD,GAEJ,CAWA,SAASE,EAAQC,EAAQC,EAAMC,EAAOzE,GAIpC,GAFAA,EAAQA,GAAS,EAEbjQ,MAAMoF,QAAQqP,GAChB,OAAOD,EAAOC,EAAMC,EAAMzE,IAG5B,IAAKwE,EAAKvE,MAA6B,IAArBuE,EAAKvE,KAAKxQ,OAC1B,OAAO+U,EAGT,IAAIE,EAAWF,EAAKvE,KAAKjJ,KAAI,SAAU2N,GACrC,OAAOL,EAAQC,EAAQI,EAAWF,EAAOzE,EAAQ,EACnD,IACI4E,EAAiBL,EAAOG,EAAUD,EAAMzE,IAE5C,OADcvN,EAAa,CAAEwN,KAAM2E,GAAkBJ,EAEvD,CA4MA,SAASK,EAAyB1Q,EAAWsF,GAC3C,IAAIwG,EAAOrL,EAAKT,GAAW,SAAUqD,GACnC,OAAOA,EAAMI,OAAS6B,CACxB,IACA,OAAOwG,GAAQA,EAAK4B,KACtB,CAwGA,SAASiD,EAAc7F,EAAOhQ,EAAM8V,EAAenN,EAAMoN,GACvD,IAAIxN,EAAQ5C,EAAKoQ,GAAe,SAAUvR,GACxC,OAAOA,EAAEmE,OAASmN,CACpB,IACIlE,EAAQrJ,GAASA,EAAMyI,MAAQzI,EAAMyI,KAAKrI,GAAQJ,EAAMyI,KAAKrI,GAAQ,EACrE+H,EAAcnI,GAASA,EAAMmI,aAAe,EAEhD,MAAO,CACL1Q,KAAMA,EACN8V,cAAeA,EACfnN,KAAMA,EACNiJ,MAAOA,EACPlB,WAAYA,EAEhB,CApcAlO,EAAc/C,UAAUuW,eAAiB,SAAUrN,GACjD,SAASgM,EAAUpM,GACjB,OAAOA,EAAMI,OAASA,CACxB,CAEA,OACEhD,EAAK5G,KAAK2H,OAAQiO,IAClBhP,EAAK5G,KAAK4H,kBAAmBgO,IAC7BhP,EAAK5G,KAAK6H,mBAAoB+N,EAElC,EAqHAnS,EAAcyT,aAAe,CAAC,iBAAkB,aAAc,YAgI9DzT,EAAc/C,UAAUyW,eAAiB,SAAUpS,EAAWlB,GAC5D,IAAIuT,EAAczB,EAA6B3V,KAAM+E,GACrD,GAAKqS,EAAL,CAIA,IAAItD,EAAUrP,EAAa,CAAC,EAAGZ,EAAM,CACnCuM,OAAQ3M,EAAcyT,aAGtBG,gBAAiBxT,GAAQA,EAAKuM,UAI5B6C,EAAUjT,KASd,OAAOsW,GACL,SAAUrE,EAAMxG,GACd,GAAIqI,EAAQuD,cAAe,CACzB,IAAIA,EAnFZ,SAA0BpE,EAASlO,GACjC,OACEkO,EAAQqE,kBACRrE,EAAQqE,iBAAiBD,eACzBpE,EAAQqE,iBAAiBD,cAAcnR,QACvC+M,EAAQqE,iBAAiBD,cAAcnR,OAAOnB,EAElD,CA4E4BwS,CAAiBtE,EAASxH,GAC9C,GAAI4L,EACF,OAzIV,SAA8BD,EAAaC,GACzC,IAAIG,EAAgB,GAChBC,EAAkB,GAOlBC,GALQL,EAAcM,OAAS,IAKV3R,QAAO,SAAU6J,EAAKjG,EAAMtI,GAGnD,OADAuO,EAAIjG,GAAQtI,EACLuO,CACT,GAAG,CAAC,GAEJuH,EAAY/O,SAAQ,SAAU8N,GAE5B,IAAIvM,EAAOuM,EAAK/H,MAAQ+H,EAAKvM,UACFzJ,IAAvBuX,EAAa9N,GACf4N,EAAcE,EAAa9N,IAASuM,EAEpCsB,EAAgBnV,KAAK6T,EAEzB,IAEAqB,EAAgBA,EAAcpR,QAAO,SAAUoD,GAC7C,OAAOA,CACT,IAEA,IACIoO,EADAC,EAAkBR,EAAcQ,gBAEpC,MAAwB,WAApBA,EACKL,GAEPI,EAD6B,UAApBC,EACE,CACT,CAAC,OAAQ,QACT,CAAC,MAAO,QAGC,CAAC,CAAC,SAAU,CAAC,SAGnBL,EAAcpS,OACnBoN,EAAQiF,EAAiBG,EAAS,GAAIA,EAAS,KAEnD,CA4FiBE,CAAqB7F,EAAMoF,EAEtC,CAEA,GAAItV,MAAMoF,QAAQ2M,EAAQ1D,QAAS,CACjC,IAAIuH,EAAQtE,EAAWS,EAAQ1D,OAAQ3M,EAAcyT,cACrD,OAAO1E,EAAQP,EAAM0F,EAAM,GAAIA,EAAM,GACvC,CAAO,GAA8B,mBAAnB7D,EAAQ1D,OACxB,OAlKR,SAAuBuH,EAAO1F,GAC5B,OAAOA,EAAK8F,KAAKJ,EACnB,CAgKeK,CAAclE,EAAQ1D,OAAQ6B,GAEvC,MAAM,IAAItQ,MACR,oHAGJ,GACAyV,EA3BErV,MAAMoF,QAAQiQ,GACH,CAACrS,GAEDkO,EAAQyC,OAAOzH,2BAA2BmJ,EAAYxN,MAC/C2J,WAhBtB,CA0CF,EAQA9P,EAAc/C,UAAUuX,cAAgB,SAAUlT,GAChD,OAAI/E,KAAK0V,OAAOhK,mBAAmB3G,GAC1B8R,EAAyB7W,KAAK2H,OAAQ5C,GACpC/E,KAAK0V,OAAO9J,mBAAmB7G,GACjC8R,EAAyB7W,KAAK4H,kBAAmB7C,QADnD,CAKT,EA+BAtB,EAAc/C,UAAUwX,eAAiB,WACvC,IAAIjH,EAAQjR,KAAK0V,OAEbzC,EAAUjT,KACVmY,EAAM,GAoEV,OAlEArS,OAAOC,KAAKkL,EAAMnJ,mBAAmBO,SAAQ,SAAU0O,GACrD9F,EAAMnJ,kBAAkBiP,GAAe1O,SAAQ,SAAUuB,GACvDuO,EAAI7V,KACFwU,EAAc7F,EAAO,QAAS8F,EAAenN,EAAMqJ,EAAQtL,QAE/D,GACF,IAEA7B,OAAOC,KAAKkL,EAAMlJ,gBAAgBM,SAAQ,SAAU0O,GAClD9F,EAAMlJ,eAAegP,GAAe1O,SAAQ,SAAUuB,GACpDuO,EAAI7V,KACFwU,EAAc7F,EAAO,UAAW8F,EAAenN,EAAMqJ,EAAQtL,QAEjE,GACF,IAEA7B,OAAOC,KAAKkL,EAAMjJ,8BAA8BK,SAAQ,SACtD0O,GAEA9F,EAAMjJ,6BAA6B+O,GAAe1O,SAAQ,SAAUuB,GAClEuO,EAAI7V,KACFwU,EACE7F,EACA,cACA8F,EACAnN,EACAqJ,EAAQrL,mBAGd,GACF,IAEA9B,OAAOC,KAAKkL,EAAM9I,+BAA+BE,SAAQ,SACvD0O,GAEA9F,EAAM9I,8BAA8B4O,GAAe1O,SAAQ,SAAUuB,GACnEuO,EAAI7V,KAuEV,SAAmC2O,EAAO8F,EAAenN,EAAMoN,GAC7D,IAAIoB,EAAmBnH,EAAMhD,2BAA2B8I,GACpDhJ,EAAYkD,EAAMjD,+BAA+BoK,GACjDzH,EAAQ/G,EAAK+G,MAAM5C,GACnBsK,EAAYzR,EAAKoQ,GAAe,SAAUxN,GAC5C,OAAOA,EAAMI,OAASmN,CACxB,IAEIvN,EAAQmH,EAAM3K,QAAO,SAAUsS,EAAmB1H,GACpD,IAAI2H,EACFD,GACA1R,EAAK0R,EAAkBrG,MAAM,SAAUxM,GACrC,OAAOA,EAAEmE,OAASgH,CACpB,IACF,YAAoBzQ,IAAboY,EAAyBA,EAAWD,CAC7C,GAAGD,GAECxF,EAASrJ,GAASA,EAAMqJ,OAAU,EAClClB,EAAcnI,GAASA,EAAMmI,aAAe,EAC5CvD,EAAQ5E,GAASA,EAAM4E,MAAS,GAEpC,MAAO,CACLnN,KAAM,eACN8V,cAAeA,EACfnN,KAAMwE,EACNyE,MAAOA,EACPlB,WAAYA,EAEhB,CAlGQhI,CACEsH,EACA8F,EACAnN,EACAqJ,EAAQpL,oBAGd,GACF,IAEA/B,OAAOC,KAAKkL,EAAMhJ,oBAAoBI,SAAQ,SAAU0O,GACtD,IAAI7N,EAAY+H,EAAMhJ,mBAAmB8O,GACzCjR,OAAOC,KAAKmD,GAAWb,SAAQ,SAAUc,GACvCD,EAAUC,GAAUd,SAAQ,SAAUrD,GACpCmT,EAAI7V,KAAK,CACPrB,KAAM,UACN8V,cAAeA,EACfnN,KAAM5E,EACNwT,aAAcxT,EACdmE,SAAUA,GAEd,GACF,GACF,IAEA8H,EAAM/I,eAAeG,SAAQ,SAAUuB,GACrCuO,EAAI7V,KAAK,CAAErB,KAAM,MAAO8V,cAAe,QAASnN,KAAMA,GACxD,IAEOuO,CACT,EAsEA3X,EAAOC,QAAUgD,oCC5nCjB,IAAID,EAAmB,EAAQ,KAC3BC,EAAgB,EAAQ,KACxBM,EAAgB,EAAQ,KACxB0U,EAAiB,EAAQ,KAEzB1Y,EAAe,EAAQ,KACvBqE,EAAW,EAAQ,IACnBO,EAAgB,EAAQ,KACxBD,EAAO,EAAQ,KACfgC,EAAQ,EAAQ,KAEhB5C,EAAU,EAAQ,KAClB8O,EAAmB,wBAyGvB,SAASrP,EAAoBI,EAAQC,EAAOkQ,GACJ,mBAA3BnQ,EAAO+U,iBAChB/U,EAAO+U,gBAAgB,cAAgB5U,EAAU,KAGnD9D,KAAK2Y,UAAUhV,GACf,IAAIE,EAAOiQ,GAAW,CAAC,EACvBjQ,EAAKD,MAAQA,EACb5D,KAAKiR,MAAQzN,EAAiB8F,KAAKzF,GACnC7D,KAAKmE,YAAc,KACnBnE,KAAK4Y,SAAW,EAChB5Y,KAAK6Y,sBAAwB,EAC7B7Y,KAAK8Y,eAAiB,GACtB9Y,KAAK+Y,kBAAoB,CAC3B,CAyzBA,SAASC,EAAelO,GACtB,GAAIA,EAAO,EAAG,MAAM,IAAInJ,MAAM,2BAO9B,OALA3B,KAAKiZ,QAAQ,CACXhI,MAAOjR,KAAKiR,MAAMrG,QAAQE,GAC1BoO,aAAa,IAGRlZ,IACT,CA8MA,SAASmZ,IACP,OAAOnZ,KAAKiR,MAAMnG,IACpB,CAhhCA1G,EAASb,EAAqBxD,GAa9BwD,EAAoB7C,UAAU0Y,OAAS,WAErC,OADApZ,KAAKqZ,QAAQ,CAAEC,wBAAwB,IAChCtZ,IACT,EAEAuD,EAAoB7C,UAAU6Y,6BAA+B,WAE3D,OADAvZ,KAAKqZ,QAAQ,CAAEC,wBAAwB,IAChCtZ,IACT,EAOAuD,EAAoB7C,UAAU8Y,SAAW,WACvC,IAAIvI,EAAQjR,KAAKiR,MACjB,OAAOwH,EAAegB,qBAAqBxI,EAC7C,EAsCA1N,EAAoB7C,UAAUgZ,WAAa,SAAU5F,EAAS6F,GAC5D,IAAIC,EAAa9F,EAEb9T,KAAKiR,MAAM3G,mBAAmBwJ,GAD9B9T,KAAKiR,MAEL4I,EAAUpB,EAAeqB,YAAYF,EAAUhW,MAAOgW,GAEtDxR,EAAOpI,KAQX,GANAA,KAAK+Y,oBAEL/Y,KAAKgB,KAAK,aAAc,CACtBiQ,MAAO2I,KAGLD,EAuBJ,OAAO3Z,KAAK2D,OAAOyV,OAAOS,GAASE,MACjC,SAAUC,GAGR,OAFA5R,EAAK2Q,oBAC0B,IAA3B3Q,EAAK2Q,mBAAyB3Q,EAAKpH,KAAK,oBACrC,CACLgZ,QAAS,IAAIvW,EAAcmW,EAAWI,EAAQ/G,SAC9ChC,MAAO2I,EACPK,kBAAmBD,EAEvB,IACA,SAAUE,GAGR,MAFA9R,EAAK2Q,oBAC0B,IAA3B3Q,EAAK2Q,mBAAyB3Q,EAAKpH,KAAK,oBACtCkZ,CACR,IApCAla,KAAK2D,OACFyV,OAAOS,GACPE,MAAK,SAAUC,GACd5R,EAAK2Q,oBAC0B,IAA3B3Q,EAAK2Q,mBACP3Q,EAAKpH,KAAK,oBAGZ2Y,EAAG,KAAM,IAAIlW,EAAcmW,EAAWI,EAAQ/G,SAAU2G,EAC1D,IACCO,OAAM,SAAUvY,GACfwG,EAAK2Q,oBAC0B,IAA3B3Q,EAAK2Q,mBACP3Q,EAAKpH,KAAK,oBAGZ2Y,EAAG/X,EAAK,KAAMgY,EAChB,GAqBN,EAaArW,EAAoB7C,UAAU0Z,YAAc,SAAUtG,GAEpDtR,QAAQkF,KAAK,yDACb,IAAIuJ,EAAQjR,KAAKiR,MACboJ,EAAgBra,KAAK8Y,eAAe,GACxC,IAAKuB,EACH,OAAOC,QAAQC,QAAQ,IAEzB,IAAIC,EAAeH,EAAc9V,iBAAiB0M,GAC9CgB,EAAOvL,EACT,CACE+T,wBAAyB3G,EAAQ2G,wBACjCC,OAAQ5G,EAAQ4G,QAElB,CACEnT,OAAQ7C,EAAK+T,EAAegB,qBAAqBe,GAAe,CAC9D,sBACA,cACA,+BACA,0BAKFG,EACF,8GACF,GAAqC,mBAA1B3a,KAAK2D,OAAOiX,UACrB,MAAM,IAAIjZ,MAAMgZ,GAElB,IAAI/W,EAAQ5D,KAAK2D,OAAOiX,UAAUJ,EAAa5W,OAC/C,GAAiC,mBAAtBA,EAAMwW,YACf,MAAM,IAAIzY,MAAMgZ,GAElB,OAAO/W,EAAMwW,YAAYI,EAAa7P,MAAOmJ,EAAQ+G,eAAgB5I,EACvE,EAoCA1O,EAAoB7C,UAAUoa,qBAAuB,SACnDtR,EACAmB,EACAoQ,EACAC,GAEA,IAAIC,EAA4D,mBAArCjb,KAAK2D,OAAOmX,qBACnCI,EAAsD,mBAA1Blb,KAAK2D,OAAOiX,UAC5C,IACGK,IACAC,GAC6B,mBAAvBlb,KAAK2D,OAAOyV,OAEnB,MAAM,IAAIzX,MACR,yKAIJ,IAAIsP,EAAQjR,KAAKiR,MAAM3G,mBAAmB0Q,GAAa,CAAC,GACpDG,EAAgBlK,EAAMrF,mBAAmBpC,GACzC4R,EAAe3C,EAAe4C,uBAChC7R,EACAmB,EACAoQ,EACA9J,GAGFjR,KAAK+Y,oBAEL,IACIuC,EADAlT,EAAOpI,KAoCX,OAjCIib,EACFK,EAA8Btb,KAAK2D,OAAOmX,qBAAqB,CAC7D,CAAES,UAAWtK,EAAMrN,MAAO2D,OAAQ6T,KAG3BF,EACTI,EAA8Btb,KAAK2D,OAChCiX,UAAU3J,EAAMrN,OAChBkX,qBAAqBM,WAIjBA,EAAa3P,UACpB6P,EAA8Btb,KAAK2D,OAChCyV,OAAO,CACN,CACEnY,KAAM,QACNuI,MAAOA,EACP+R,UAAWtK,EAAMrN,MACjB2D,OAAQ6T,KAGXrB,MAAK,SAAyByB,GAC7B,OAAOA,EAASvI,QAAQ,EAC1B,KAGJjT,KAAKgB,KAAK,uBAAwB,CAChCiQ,MAAOA,EACPzH,MAAOA,EACPmB,MAAOA,IAGF2Q,EAA4BvB,MACjC,SAAsBC,GAgBpB,OAfA5R,EAAK2Q,oBAC0B,IAA3B3Q,EAAK2Q,mBAAyB3Q,EAAKpH,KAAK,qBAG5CgZ,EAAUjY,MAAMoF,QAAQ6S,GAAWA,EAAQ,GAAKA,GAExCyB,UAAUpT,SAAQ,SAAU5C,GAElCA,EAAEkN,aAAeC,EAAiBnN,EAAET,OAEpCS,EAAER,UAAYkW,EACVlK,EAAMvC,0BAA0BlF,EAAO/D,EAAEkN,cACzC1B,EAAMzC,eAAehF,EAAO/D,EAAEkN,aACpC,IAEOqH,CACT,IACA,SAAUE,GAGR,MAFA9R,EAAK2Q,oBAC0B,IAA3B3Q,EAAK2Q,mBAAyB3Q,EAAKpH,KAAK,oBACtCkZ,CACR,GAEJ,EAWA3W,EAAoB7C,UAAU+J,SAAW,SAAUiR,GAMjD,OALA1b,KAAKiZ,QAAQ,CACXhI,MAAOjR,KAAKiR,MAAMf,YAAYzF,SAASiR,GACvCxC,aAAa,IAGRlZ,IACT,EAyBAuD,EAAoB7C,UAAUmJ,iBAAmB,SAAUD,GAMzD,OALA5J,KAAKiZ,QAAQ,CACXhI,MAAOjR,KAAKiR,MAAMf,YAAYrG,iBAAiBD,GAC/CsP,aAAa,IAGRlZ,IACT,EAUAuD,EAAoB7C,UAAU6J,UAAY,WAMxC,OALAvK,KAAKiZ,QAAQ,CACXhI,MAAOjR,KAAKiR,MAAMf,YAAY3F,YAC9B2O,aAAa,IAGRlZ,IACT,EAaAuD,EAAoB7C,UAAUoM,8BAAgC,SAC5DtD,EACAxE,GAOA,OALAhF,KAAKiZ,QAAQ,CACXhI,MAAOjR,KAAKiR,MAAMf,YAAYpD,8BAA8BtD,EAAOxE,GACnEkU,aAAa,IAGRlZ,IACT,EAMAuD,EAAoB7C,UAAUib,qBAAuB,WACnD,OAAO3b,KAAK8M,8BAA8B7K,MAAMjC,KAAM0B,UACxD,EAeA6B,EAAoB7C,UAAUyN,+BAAiC,SAC7D3E,EACA4E,GAOA,OALApO,KAAKiZ,QAAQ,CACXhI,MAAOjR,KAAKiR,MAAMf,YAAY/B,+BAA+B3E,EAAO4E,GACpE8K,aAAa,IAGRlZ,IACT,EAcAuD,EAAoB7C,UAAU2K,qBAAuB,SACnDtG,EACAoE,EACAnE,GASA,OAPAhF,KAAKiZ,QAAQ,CACXhI,MAAOjR,KAAKiR,MACTf,YACA7E,qBAAqBtG,EAAWoE,EAAUnE,GAC7CkU,aAAa,IAGRlZ,IACT,EAaAuD,EAAoB7C,UAAUkM,mBAAqB,SAAUpD,EAAOxE,GAMlE,OALAhF,KAAKiZ,QAAQ,CACXhI,MAAOjR,KAAKiR,MAAMf,YAAYtD,mBAAmBpD,EAAOxE,GACxDkU,aAAa,IAGRlZ,IACT,EAMAuD,EAAoB7C,UAAUkb,UAAY,WACxC,OAAO5b,KAAK4M,mBAAmB3K,MAAMjC,KAAM0B,UAC7C,EAaA6B,EAAoB7C,UAAUmb,kBAAoB,SAAUrS,EAAOxE,GAMjE,OALAhF,KAAKiZ,QAAQ,CACXhI,MAAOjR,KAAKiR,MAAMf,YAAYrD,qBAAqBrD,EAAOxE,GAC1DkU,aAAa,IAGRlZ,IACT,EAMAuD,EAAoB7C,UAAUob,WAAa,WACzC,OAAO9b,KAAK6b,kBAAkB5Z,MAAMjC,KAAM0B,UAC5C,EAYA6B,EAAoB7C,UAAUqb,OAAS,SAAU/O,GAM/C,OALAhN,KAAKiZ,QAAQ,CACXhI,MAAOjR,KAAKiR,MAAMf,YAAYnD,iBAAiBC,GAC/CkM,aAAa,IAGRlZ,IACT,EAoBAuD,EAAoB7C,UAAUoL,wBAA0B,SACtD/G,EACAoE,EACAnE,GASA,OAPAhF,KAAKiZ,QAAQ,CACXhI,MAAOjR,KAAKiR,MACTf,YACApE,wBAAwB/G,EAAWoE,EAAUnE,GAChDkU,aAAa,IAGRlZ,IACT,EAgBAuD,EAAoB7C,UAAU8M,iCAAmC,SAC/DhE,EACAxE,GASA,OAPAhF,KAAKiZ,QAAQ,CACXhI,MAAOjR,KAAKiR,MACTf,YACA1C,iCAAiChE,EAAOxE,GAC3CkU,aAAa,IAGRlZ,IACT,EAMAuD,EAAoB7C,UAAUsb,wBAA0B,WACtD,OAAOhc,KAAKwN,iCAAiCvL,MAAMjC,KAAM0B,UAC3D,EAUA6B,EAAoB7C,UAAU4N,kCAAoC,SAChE9E,GAOA,OALAxJ,KAAKiZ,QAAQ,CACXhI,MAAOjR,KAAKiR,MAAMf,YAAY5B,kCAAkC9E,GAChE0P,aAAa,IAGRlZ,IACT,EAgBAuD,EAAoB7C,UAAU4M,sBAAwB,SAAU9D,EAAOxE,GAMrE,OALAhF,KAAKiZ,QAAQ,CACXhI,MAAOjR,KAAKiR,MAAMf,YAAY5C,sBAAsB9D,EAAOxE,GAC3DkU,aAAa,IAGRlZ,IACT,EAMAuD,EAAoB7C,UAAUub,aAAe,WAC3C,OAAOjc,KAAKsN,sBAAsBrL,MAAMjC,KAAM0B,UAChD,EAgBA6B,EAAoB7C,UAAUwb,qBAAuB,SAAU1S,EAAOxE,GAMpE,OALAhF,KAAKiZ,QAAQ,CACXhI,MAAOjR,KAAKiR,MAAMf,YAAY3C,wBAAwB/D,EAAOxE,GAC7DkU,aAAa,IAGRlZ,IACT,EAMAuD,EAAoB7C,UAAUyb,cAAgB,WAC5C,OAAOnc,KAAKkc,qBAAqBja,MAAMjC,KAAM0B,UAC/C,EAYA6B,EAAoB7C,UAAU0b,UAAY,SAAUpP,GAMlD,OALAhN,KAAKiZ,QAAQ,CACXhI,MAAOjR,KAAKiR,MAAMf,YAAYzC,oBAAoBT,GAClDkM,aAAa,IAGRlZ,IACT,EAaAuD,EAAoB7C,UAAU2b,qBAAuB,SAAU7S,EAAOxE,GAMpE,OALAhF,KAAKiZ,QAAQ,CACXhI,MAAOjR,KAAKiR,MAAMf,YAAYpC,6BAA6BtE,EAAOxE,GAClEkU,aAAa,IAGRlZ,IACT,EAMAuD,EAAoB7C,UAAU4b,cAAgB,WAC5C,OAAOtc,KAAKqc,qBAAqBpa,MAAMjC,KAAM0B,UAC/C,EAiBA6B,EAAoB7C,UAAUgF,iBAAmB,SAAU8D,EAAOxE,GAChE,OAAOhF,KAAK2N,sBAAsBnE,EAAOxE,EAC3C,EAgBAzB,EAAoB7C,UAAUiN,sBAAwB,SAAUnE,EAAOxE,GAMrE,OALAhF,KAAKiZ,QAAQ,CACXhI,MAAOjR,KAAKiR,MAAMf,YAAYvC,sBAAsBnE,EAAOxE,GAC3DkU,aAAa,IAGRlZ,IACT,EAMAuD,EAAoB7C,UAAU6b,aAAe,WAC3C,OAAOvc,KAAK2N,sBAAsB1L,MAAMjC,KAAM0B,UAChD,EAYA6B,EAAoB7C,UAAU8b,UAAY,SAAUxP,GAMlD,OALAhN,KAAKiZ,QAAQ,CACXhI,MAAOjR,KAAKiR,MAAMf,YAAY3B,oBAAoBvB,GAClDkM,aAAa,IAGRlZ,IACT,EAWAuD,EAAoB7C,UAAU+b,SAAW,WACvC,IAAI3R,EAAO9K,KAAKiR,MAAMnG,MAAQ,EAC9B,OAAO9K,KAAK4K,QAAQE,EAAO,EAC7B,EAWAvH,EAAoB7C,UAAUgc,aAAe,WAC3C,IAAI5R,EAAO9K,KAAKiR,MAAMnG,MAAQ,EAC9B,OAAO9K,KAAK4K,QAAQE,EAAO,EAC7B,EA4BAvH,EAAoB7C,UAAUsY,eAAiBA,EAU/CzV,EAAoB7C,UAAUkK,QAAUoO,EAWxCzV,EAAoB7C,UAAU8J,SAAW,SAAUZ,GAMjD,OALA5J,KAAKiZ,QAAQ,CACXhI,MAAOjR,KAAKiR,MAAMf,YAAY1F,SAASZ,GACvCsP,aAAa,IAGRlZ,IACT,EAmBAuD,EAAoB7C,UAAU+O,kBAAoB,SAAUC,EAAW1K,GAMrE,OALAhF,KAAKiZ,QAAQ,CACXhI,MAAOjR,KAAKiR,MAAMf,YAAYT,kBAAkBC,EAAW1K,GAC3DkU,aAAa,IAGRlZ,IACT,EASAuD,EAAoB7C,UAAUic,SAAW,SAAUC,GAMjD,OALA5c,KAAKiZ,QAAQ,CACXhI,MAAOzN,EAAiB8F,KAAKsT,GAC7B1D,aAAa,IAGRlZ,IACT,EAmBAuD,EAAoB7C,UAAUmc,0CAC5B,SAAUD,GAER,OADA5c,KAAKiR,MAAQ,IAAIzN,EAAiBoZ,GAC3B5c,IACT,EAyBFuD,EAAoB7C,UAAUoc,eAAiB,SAAU/X,GACvD,QAAIJ,EAAc3E,KAAKiR,MAAM/E,sBAAsBnH,MAExC/E,KAAKiR,MAAMvF,mBAAmB3G,GAChC/E,KAAKiR,MAAMzC,eAAezJ,GACxB/E,KAAKiR,MAAMrF,mBAAmB7G,GAChC/E,KAAKiR,MAAMvC,0BAA0B3J,KACnC/E,KAAKiR,MAAMtE,oBAAoB5H,IACjC/E,KAAKiR,MAAM5C,2BAA2BtJ,GASjD,EAqBAxB,EAAoB7C,UAAUmV,WAAa,SAAUrM,EAAOxE,GAC1D,OAAOhF,KAAKiR,MAAMxC,iBAAiBjF,EAAOxE,EAC5C,EAMAzB,EAAoB7C,UAAUqc,qBAAuB,SAAUvT,EAAOxE,GACpE,OAAOhF,KAAKiR,MAAMvC,0BAA0BlF,EAAOxE,EACrD,EAOAzB,EAAoB7C,UAAUsc,OAAS,SAAUhQ,GAC/C,OAAOhN,KAAKiR,MAAMhE,aAAaD,EACjC,EAMAzJ,EAAoB7C,UAAUuM,aAAe,WAC3C,OAAOjN,KAAKid,kBAAkBhb,MAAMjC,KAAM0B,UAC5C,EASA6B,EAAoB7C,UAAUwc,SAAW,WACvC,OAAOld,KAAKiR,MAAMrN,KACpB,EAWAL,EAAoB7C,UAAUyY,eAAiBA,EAM/C5V,EAAoB7C,UAAUyc,QAAUhE,EAOxC5V,EAAoB7C,UAAU0c,QAAU,WACtC,OAAOpd,KAAKiR,MAAM/I,cACpB,EA8CA3E,EAAoB7C,UAAUwX,eAAiB,SAAUzM,GACvD,IAAIkD,EAAc,GAEd3O,KAAKiR,MAAMvF,mBAAmBD,IACVzL,KAAKiR,MAAMzF,0BAA0BC,GAE3CpD,SAAQ,SAAUgV,GAChC1O,EAAYrM,KAAK,CACf0C,MAAOqY,EACPpc,KAAM,eAEV,IAEyBjB,KAAKiR,MAAMpF,sBAAsBJ,GAEvCpD,SAAQ,SAAUgV,GACnC1O,EAAYrM,KAAK,CACf0C,MAAOqY,EACPpc,KAAM,WAEV,KACSjB,KAAKiR,MAAMrF,mBAAmBH,IAErCzL,KAAKiR,MAAMtF,0BAA0BF,GAEhBpD,SAAQ,SAAUgV,GACvC1O,EAAYrM,KAAK,CACf0C,MAAOqY,EACPpc,KAAM,eAEV,IAGF,IAAIgH,EAAqBjI,KAAKiR,MAAM/E,sBAAsBT,GAY1D,OAVA3F,OAAOC,KAAKkC,GAAoBI,SAAQ,SAAUc,GAChD,IAAInE,EAAQiD,EAAmBkB,GAE/BwF,EAAYrM,KAAK,CACf0C,MAAOA,EACPmE,SAAUA,EACVlI,KAAM,WAEV,IAEO0N,CACT,EAQApL,EAAoB7C,UAAUyL,qBAAuB,SACnDpH,EACAoE,GAEA,OAAOnJ,KAAKiR,MAAM9E,qBAAqBpH,EAAWoE,EACpD,EAOA5F,EAAoB7C,UAAU+P,+BAAiC,SAC7DhF,GAEA,OAAOzL,KAAKiR,MAAMR,+BAA+BhF,EACnD,EAcAlI,EAAoB7C,UAAU2Y,QAAU,SAAUvF,GAChD,IAAI7C,EAAQjR,KAAKiR,MACbqM,EAAS,GACTC,EAAc,GAEbzJ,EAAQwF,yBACXiE,EAAc9E,EAAeqB,YAAY7I,EAAMrN,MAAOqN,GAEtDqM,EAAOhb,KAAK,CACV2O,MAAOA,EACPuM,aAAcD,EAAY9b,OAC1Bgc,OAAQzd,OAGVA,KAAKgB,KAAK,SAAU,CAClBiQ,MAAOA,EACPgC,QAASjT,KAAKmE,eAIlB,IAAIuZ,EAAiB1d,KAAK8Y,eAAe9P,KAAI,SAAUqR,GACrD,IAAIG,EAAeH,EAAc9V,iBAAiB0M,GAC9C0M,EAAsBnD,EAAa5W,MACnC6U,EAAeqB,YAAYU,EAAa5W,MAAO4W,GAC/C,GAaJ,OAXA8C,EAAOhb,KAAK,CACV2O,MAAOuJ,EACPgD,aAAcG,EAAoBlc,OAClCgc,OAAQpD,IAGVA,EAAcrZ,KAAK,SAAU,CAC3BiQ,MAAOuJ,EACPvH,QAASoH,EAAclW,cAGlBwZ,CACT,IAEI9D,EAAU9X,MAAMrB,UAAU0E,OAAOnD,MAAMsb,EAAaG,GAEpDE,EAAU5d,KAAK4Y,WAGnB,GAFA5Y,KAAK+Y,qBAEAc,EAAQpY,OACX,OAAO6Y,QAAQC,QAAQ,CAAEtH,QAAS,KAAM8G,KACtC/Z,KAAK6d,yBAAyBC,KAAK9d,KAAMsd,EAAQM,IAIrD,IACE5d,KAAK2D,OACFyV,OAAOS,GACPE,KAAK/Z,KAAK6d,yBAAyBC,KAAK9d,KAAMsd,EAAQM,IACtDzD,MAAMna,KAAK+d,sBAAsBD,KAAK9d,KAAM4d,GACjD,CAAE,MAAOpc,GAEPxB,KAAKgB,KAAK,QAAS,CACjBQ,MAAOA,GAEX,CAGF,EAYA+B,EAAoB7C,UAAUmd,yBAA2B,SACvDP,EACAM,EACA5D,GAIA,KAAI4D,EAAU5d,KAAK6Y,sBAAnB,CAKA7Y,KAAK+Y,mBAAqB6E,EAAU5d,KAAK6Y,qBACzC7Y,KAAK6Y,qBAAuB+E,EAEG,IAA3B5d,KAAK+Y,mBAAyB/Y,KAAKgB,KAAK,oBAE5C,IAAIiS,EAAU+G,EAAQ/G,QAAQjR,QAE9Bsb,EAAOjV,SAAQ,SAAU2V,GACvB,IAAI/M,EAAQ+M,EAAE/M,MACVuM,EAAeQ,EAAER,aACjBC,EAASO,EAAEP,OACXQ,EAAkBhL,EAAQhQ,OAAO,EAAGua,GAEnCvM,EAAMrN,OAQX6Z,EAAOtZ,YAAc,IAAIV,EAAcwN,EAAOgN,GAE9CR,EAAOzc,KAAK,SAAU,CACpBiS,QAASwK,EAAOtZ,YAChB8M,MAAOA,KAXPwM,EAAOzc,KAAK,SAAU,CACpBiS,QAAS,KACThC,MAAOA,GAWb,GA7BA,CA8BF,EAEA1N,EAAoB7C,UAAUqd,sBAAwB,SACpDH,EACApc,GAEIoc,EAAU5d,KAAK6Y,uBAKnB7Y,KAAK+Y,mBAAqB6E,EAAU5d,KAAK6Y,qBACzC7Y,KAAK6Y,qBAAuB+E,EAE5B5d,KAAKgB,KAAK,QAAS,CACjBQ,MAAOA,IAGsB,IAA3BxB,KAAK+Y,mBAAyB/Y,KAAKgB,KAAK,oBAC9C,EAEAuC,EAAoB7C,UAAUwd,mBAAqB,SACjDvT,EACAwT,EACAjU,EACAD,GAEA,OACEU,GACwB,IAAxBwT,EAAa1c,QACa,IAA1ByI,EAAezI,QACO,IAAtBwI,EAAWxI,MAEf,EAQA8B,EAAoB7C,UAAU0d,2BAA6B,SAAU5U,GACnE,OACExJ,KAAKiR,MAAMoN,uBAAuB7U,IAClCxJ,KAAKiR,MAAMoN,uBAAuB7U,GAAO/H,OAAS,CAEtD,EAEA8B,EAAoB7C,UAAUuY,QAAU,SAAUqF,GAChD,IAAIrN,EAAQqN,EAAMrN,MACdiI,EAAcoF,EAAMpF,YAEpBjI,IAAUjR,KAAKiR,QACjBjR,KAAKiR,MAAQA,EAEbjR,KAAKgB,KAAK,SAAU,CAClBiQ,MAAOjR,KAAKiR,MACZgC,QAASjT,KAAKmE,YACd+U,YAAaA,IAGnB,EAMA3V,EAAoB7C,UAAU6d,WAAa,WAEzC,OADIve,KAAK2D,OAAO4a,YAAYve,KAAK2D,OAAO4a,aACjCve,IACT,EAQAuD,EAAoB7C,UAAUiY,UAAY,SAAU6F,GAClD,OAAIxe,KAAK2D,SAAW6a,IAEqB,mBAA9BA,EAAU9F,iBACnB8F,EAAU9F,gBAAgB,cAAgB5U,EAAU,KAEtD9D,KAAK2D,OAAS6a,GALwBxe,IAQxC,EAMAuD,EAAoB7C,UAAU+d,UAAY,WACxC,OAAOze,KAAK2D,MACd,EAqBAJ,EAAoB7C,UAAUge,OAAS,SAAUza,GAC/C,IAAIoW,EAAgB,IAAItW,EAAc/D,KAAMiE,GAE5C,OADAjE,KAAK8Y,eAAexW,KAAK+X,GAClBA,CACT,EAUA9W,EAAoB7C,UAAU4D,oBAAsB,SAAU+V,GAC5D,IAAIsE,EAAM3e,KAAK8Y,eAAerS,QAAQ4T,GACtC,IAAa,IAATsE,EAAY,MAAM,IAAIhd,MAAM,mCAChC3B,KAAK8Y,eAAe7V,OAAO0b,EAAK,EAClC,EAMApb,EAAoB7C,UAAUke,mBAAqB,WACjD,OAAO5e,KAAK+Y,kBAAoB,CAClC,EAkBAvY,EAAOC,QAAU8C,gCCjkDjB/C,EAAOC,QAAU,SAAiBoO,GAChC,OAAK9M,MAAMoF,QAAQ0H,GAIZA,EAAMzI,OAAOG,SAHX,EAIX,gCCJA/F,EAAOC,QAAU,WAGf,OAFcsB,MAAMrB,UAAUsB,MAAMF,KAAKJ,WAE1Bmd,aAAY,SAAUhP,EAAKiP,GAaxC,OAZAhZ,OAAOC,KAAKD,OAAOgZ,IAASzW,SAAQ,SAAUlF,QACxBhD,IAAhB2e,EAAO3b,UAGMhD,IAAb0P,EAAI1M,WAGC0M,EAAI1M,GAGb0M,EAAI1M,GAAO2b,EAAO3b,GACpB,IACO0M,CACT,GAAG,CAAC,EACN,gCCIArP,EAAOC,QAAU,CACfmS,iBAnBF,SAA0B5N,GACxB,MAAqB,iBAAVA,EAA2BA,EAE/B+Z,OAAO/Z,GAAO+Q,QAAQ,KAAM,MACrC,EAgBEhD,mBARF,SAA4B/N,GAC1B,MAAqB,iBAAVA,EAA2BA,EAE/BA,EAAM+Q,QAAQ,OAAQ,IAC/B,iCCrBAvV,EAAOC,QAAU,SAAcoO,EAAOmQ,GACpC,GAAKjd,MAAMoF,QAAQ0H,GAInB,IAAK,IAAIvN,EAAI,EAAGA,EAAIuN,EAAMpN,OAAQH,IAChC,GAAI0d,EAAWnQ,EAAMvN,IACnB,OAAOuN,EAAMvN,EAKnB,gCCZAd,EAAOC,QAAU,SAAcoO,EAAOmQ,GACpC,IAAKjd,MAAMoF,QAAQ0H,GACjB,OAAQ,EAGV,IAAK,IAAIvN,EAAI,EAAGA,EAAIuN,EAAMpN,OAAQH,IAChC,GAAI0d,EAAWnQ,EAAMvN,IACnB,OAAOA,EAGX,OAAQ,CACV,oCCZA,IAAIsF,EAAO,EAAQ,KAQnBpG,EAAOC,QAAU,SAAoB2P,EAAQ6O,GAC3C,IAAIC,GAAuBD,GAAY,IAAIjW,KAAI,SAAU+O,GACvD,OAAOA,EAAKpH,MAAM,IACpB,IAEA,OAAOP,EAAOpK,QACZ,SAA0BmZ,EAAKpH,GAC7B,IAAIqH,EAAkBrH,EAAKpH,MAAM,KAE7B0O,EAAkBzY,EACpBsY,GACA,SAAUI,GACR,OAAOA,EAAmB,KAAOF,EAAgB,EACnD,IAGF,OAAIA,EAAgB3d,OAAS,IAAM4d,GACjCF,EAAI,GAAG7c,KAAK8c,EAAgB,IAC5BD,EAAI,GAAG7c,KAAK8c,EAAgB,IACrBD,IAGTA,EAAI,GAAG7c,KAAK+c,EAAgB,IAC5BF,EAAI,GAAG7c,KAAK+c,EAAgB,IACrBF,EACT,GACA,CAAC,GAAI,IAET,+BCxBA3e,EAAOC,QAZP,SAAkB8e,EAAMC,GAEtBD,EAAK7e,UAAYoF,OAAO2Z,OAAOD,EAAU9e,UAAW,CAClDyJ,YAAa,CACXnF,MAAOua,EACPG,YAAY,EACZC,UAAU,EACVC,cAAc,IAGpB,gCCDApf,EAAOC,QATP,SAAsBof,EAAMC,GAC1B,OAAOD,EAAKzZ,QAAO,SAAUpB,EAAOpB,GAClC,OACEkc,EAAKrZ,QAAQzB,IAAU,GACvB6a,EAAKpZ,QAAQzB,KAAWpB,CAE5B,GACF,gCCAA,SAASmc,EAA0B/a,GACjC,MACmB,mBAAVA,GACPjD,MAAMoF,QAAQnC,IAC4B,oBAA1Cc,OAAOpF,UAAUoQ,SAAShP,KAAKkD,EAEnC,CAEA,SAASgb,EAAOC,EAAQnB,GACtB,GAAImB,IAAWnB,EACb,OAAOmB,EAGT,IAAK,IAAI9c,KAAO2b,EACd,GACGhZ,OAAOpF,UAAUwf,eAAepe,KAAKgd,EAAQ3b,IACtC,cAARA,GACQ,gBAARA,EAHF,CASA,IAAIgd,EAAYrB,EAAO3b,GACnBid,EAAYH,EAAO9c,QAEE,IAAdid,QAAkD,IAAdD,IAM7CJ,EAA0BK,IAC1BL,EAA0BI,GAG1BF,EAAO9c,GAAO6c,EAAOI,EAAWD,GAGhCF,EAAO9c,GA7CU,iBADR6B,EA8CWmb,IA7CmB,OAAVnb,EACxBgb,EAAOje,MAAMoF,QAAQnC,GAAS,GAAK,CAAC,EAAGA,GAEzCA,EAwBL,CA5BJ,IAAeA,EAiDb,OAAOib,CACT,CAiCAzf,EAAOC,QAhBP,SAAewf,GACRF,EAA0BE,KAE7BA,EAAS,CAAC,GAGZ,IAAK,IAAI3e,EAAI,EAAG+e,EAAI3e,UAAUD,OAAQH,EAAI+e,EAAG/e,IAAK,CAChD,IAAIwd,EAASpd,UAAUJ,GAEnBye,EAA0BjB,IAC5BkB,EAAOC,EAAQnB,EAEnB,CACA,OAAOmB,CACT,gCC7EAzf,EAAOC,QAJP,SAAuB6f,GACrB,OAAOA,GAAOxa,OAAOC,KAAKua,GAAK7e,OAAS,CAC1C,gCCcAjB,EAAOC,QAfP,SAAuCqe,EAAQyB,GAC7C,GAAe,OAAXzB,EAAiB,MAAO,CAAC,EAC7B,IAEI3b,EACA7B,EAHA2e,EAAS,CAAC,EACVO,EAAa1a,OAAOC,KAAK+Y,GAG7B,IAAKxd,EAAI,EAAGA,EAAIkf,EAAW/e,OAAQH,IACjC6B,EAAMqd,EAAWlf,GAEbif,EAAS9Z,QAAQtD,IAAQ,IAC7B8c,EAAO9c,GAAO2b,EAAO3b,IAEvB,OAAO8c,CACT,gCCdA,SAASQ,EAAiBzb,EAAO0b,GAC/B,GAAI1b,IAAU0b,EAAO,CACnB,IAAIC,OAAyBxgB,IAAV6E,EACf4b,EAAsB,OAAV5b,EAEZ6b,OAAyB1gB,IAAVugB,EACfI,EAAsB,OAAVJ,EAEhB,IACII,GAAa9b,EAAQ0b,GACtBE,GAAaC,IACbF,EAED,OAAO,EAET,IACIC,GAAa5b,EAAQ0b,GACtBI,GAAaH,IACbE,EAED,OAAQ,CAEZ,CACA,OAAO,CACT,CAsDArgB,EAAOC,QA9CP,SAAiBsgB,EAAYC,EAAWC,GACtC,IAAKlf,MAAMoF,QAAQ4Z,GACjB,MAAO,GAGJhf,MAAMoF,QAAQ8Z,KAEjBA,EAAS,IAGX,IAAI9M,EAAS4M,EAAW/X,KAAI,SAAUhE,EAAOpB,GAC3C,MAAO,CACLsd,SAAUF,EAAUhY,KAAI,SAAUmY,GAChC,OAAOnc,EAAMmc,EACf,IACAvd,MAAOA,EACPoB,MAAOA,EAEX,IAuBA,OArBAmP,EAAO4D,MAAK,SAAkBqJ,EAAQV,GAGpC,IAFA,IAAI9c,GAAS,IAEJA,EAAQwd,EAAOF,SAASzf,QAAQ,CACvC,IAAI0W,EAAMsI,EAAiBW,EAAOF,SAAStd,GAAQ8c,EAAMQ,SAAStd,IAClE,GAAIuU,EACF,OAAIvU,GAASqd,EAAOxf,OACX0W,EAEa,SAAlB8I,EAAOrd,IACDuU,EAEHA,CAEX,CAIA,OAAOiJ,EAAOxd,MAAQ8c,EAAM9c,KAC9B,IAEOuQ,EAAOnL,KAAI,SAAUmP,GAC1B,OAAOA,EAAInT,KACb,GACF,gCC9DAxE,EAAOC,QAdP,SAASoG,EAAYrB,GACnB,GAAiB,iBAANA,EACT,OAAOA,EACF,GAAiB,iBAANA,EAChB,OAAOsD,WAAWtD,GACb,GAAIzD,MAAMoF,QAAQ3B,GACvB,OAAOA,EAAEwD,IAAInC,GAGf,MAAM,IAAIlF,MACR,wEAEJ,oCCZA,IAAI+E,EAAQ,EAAQ,KAEpB,SAAS2a,EAAWf,GAClB,OAAOxa,OAAOC,KAAKua,GAChBvI,MAAK,SAAU9Q,EAAGC,GACjB,OAAOD,EAAEqa,cAAcpa,EACzB,IACClB,QAAO,SAAU6J,EAAK0R,GAGrB,OADA1R,EAAI0R,GAAQjB,EAAIiB,GACT1R,CACT,GAAG,CAAC,EACR,CAEA,IAAI4I,EAAiB,CASnBqB,YAAa,SAAoBlW,EAAOqN,GACtC,IAAI4I,EAAU,GAoGd,OAjGAA,EAAQvX,KAAK,CACXiZ,UAAW3X,EACX2D,OAAQkR,EAAegB,qBAAqBxI,KAI9CA,EAAMhC,8BAA8B5G,SAAQ,SAAUiN,GACpDuE,EAAQvX,KAAK,CACXiZ,UAAW3X,EACX2D,OAAQkR,EAAe+I,iCACrBvQ,EACAqE,IAGN,IAGArE,EAAM9B,+BAA+B9G,SAAQ,SAAUiN,GACrD,IAAI5I,EAAoBuE,EAAMhD,2BAA2BqH,GACrD5L,EAAoBuH,EAAMtH,0BAA0B2L,GACpDvH,EAAYkD,EAAMjD,+BAA+BtB,GAIrD,GACEhD,EAAkBjI,OAAS,GAC3BiI,EAAkB,GAAGiH,MAAM5C,GAAWtM,OAAS,EAC/C,CAEA,IAAIggB,EAAa/X,EAAkB,GAChCiH,MAAM5C,GACN/L,MAAM,GAAI,GACVgE,QAAO,SAA0BgD,EAAK0Y,EAAS1P,GAC9C,OAAOhJ,EAAI5D,OAAO,CAChBL,UAAW2H,EAAkB6G,WAAWvB,GACxChN,MACY,IAAVgN,EACI0P,EACA,CAAC1Y,EAAIA,EAAIvH,OAAS,GAAGuD,MAAO0c,GAASC,KAAK5T,IAEpD,GAAG,IAEL0T,EAAWpZ,SAAQ,SAAUjC,EAAQ4L,GACnC,IAAIzK,EAASkR,EAAe+I,iCAC1BvQ,EACA7K,EAAOrB,UACG,IAAViN,GAIF,SAAS4P,EAA2B5c,GAClC,OAAO0H,EAAkB6G,WAAWsO,MAAK,SAAU9c,GACjD,OAAOA,IAAcC,EAAM2L,MAAM,KAAK,EACxC,GACF,CAEA,IAAImR,GAAwBva,EAAO4W,cAAgB,IAAInY,QACrD,SAAU6J,EAAKkS,GACb,GAAIhgB,MAAMoF,QAAQ4a,GAAc,CAC9B,IAAIC,EAAWD,EAAY3b,QAAO,SAAU6b,GAC1C,OAAQL,EAA2BK,EACrC,IAEID,EAASvgB,OAAS,GACpBoO,EAAIvN,KAAK0f,EAEb,CASA,MANyB,iBAAhBD,GACNH,EAA2BG,IAE5BlS,EAAIvN,KAAKyf,GAGJlS,CACT,GACA,IAGEkC,EAAS0P,EAAWzP,EAAQ,GAE9BzK,EAAO4W,aADLnM,EAAQ,EACY8P,EAAqB1c,OACzC2M,EAAOhN,UAAY,IAAMgN,EAAO/M,OAIhC8c,EAAqBrgB,OAAS,EAC1BqgB,OACA3hB,EAGR0Z,EAAQvX,KAAK,CAAEiZ,UAAW3X,EAAO2D,OAAQA,GAC3C,GACF,CACF,IAEOsS,CACT,EAQAJ,qBAAsB,SAAUxI,GAC9B,IAAItJ,EAASsJ,EAAMtJ,OAChBvC,OAAO6L,EAAMrJ,mBACbxC,OAAOqT,EAAeyJ,qCAAqCjR,IAE1DkN,EAAe1F,EAAe0J,iBAAiBlR,GAC/C/G,EAAiBuO,EAAe2J,mBAAmBnR,GACnDhH,EAAawO,EAAe4J,eAAepR,GAC3CqR,EAAmB,CACrB3a,OAAQA,EAAOlB,QAAQ,MAAQ,EAAI,CAAC,KAAOkB,EAC3CsC,WAAYA,GAWd,OARIkU,EAAa1c,OAAS,IACxB6gB,EAAiBnE,aAAeA,GAG9BjU,EAAezI,OAAS,IAC1B6gB,EAAiBpY,eAAiBA,GAG7BmX,EAAW3a,EAAM,CAAC,EAAGuK,EAAM1B,iBAAkB+S,GACtD,EAUAd,iCAAkC,SAChCvQ,EACAzH,EACA+Y,GAEA,IAAIpE,EAAe1F,EAAe0J,iBAChClR,EACAzH,EACA+Y,GAEErY,EAAiBuO,EAAe2J,mBAAmBnR,EAAOzH,GAC1DS,EAAawO,EAAe4J,eAAepR,GAC3CqR,EAAmB,CACrBpX,YAAa,EACbJ,KAAM,EACN0X,WAAW,EACXC,gBAAgB,GAGdxY,EAAWxI,OAAS,IACtB6gB,EAAiBrY,WAAaA,GAGhC,IAAIyC,EAAoBuE,EAAMhD,2BAA2BzE,GAqBzD,OAlBE8Y,EAAiB3a,OADf+E,EAEA+L,EAAeiK,0CACbzR,EACAvE,EACA6V,GAGsB/Y,EAGxBU,EAAezI,OAAS,IAC1B6gB,EAAiBpY,eAAiBA,GAGhCiU,EAAa1c,OAAS,IACxB6gB,EAAiBnE,aAAeA,GAG3BkD,EAAW3a,EAAM,CAAC,EAAGuK,EAAM1B,iBAAkB+S,GACtD,EASAF,mBAAoB,SAAUnR,EAAOxF,GACnC,GAAIwF,EAAM/G,eACR,OAAO+G,EAAM/G,eAGf,IAAIA,EAAiB,GAqBrB,OAnBApE,OAAOC,KAAKkL,EAAMhJ,oBAAoBI,SAAQ,SAAUtD,GACtD,IAAImE,EAAY+H,EAAMhJ,mBAAmBlD,IAAc,CAAC,EACxDe,OAAOC,KAAKmD,GAAWb,SAAQ,SAAUc,GACvC,IAAIjD,EAASgD,EAAUC,IAAa,GAChCsC,IAAc1G,GAChBmB,EAAOmC,SAAQ,SAAUrD,GACvB,GAAIjD,MAAMoF,QAAQnC,GAAQ,CACxB,IAAI2d,EAAK3d,EAAMgE,KAAI,SAAUxD,GAC3B,OAAOT,EAAYoE,EAAW3D,CAChC,IACA0E,EAAe5H,KAAKqgB,EACtB,MACEzY,EAAe5H,KAAKyC,EAAYoE,EAAWnE,EAE/C,GAEJ,GACF,IAEOkF,CACT,EAQAmY,eAAgB,SAAUpR,GACxB,OAAIA,EAAMhH,WACDgH,EAAMhH,WAGRgH,EAAM/I,eAAeyZ,KAAK,IACnC,EAWAQ,iBAAkB,SAAUlR,EAAOzH,EAAO+Y,GACxC,IAAIpE,EAAe,GAEfrW,EAAoBmJ,EAAMnJ,mBAAqB,CAAC,EACpDhC,OAAOC,KAAK+B,GAAmBO,SAAQ,SAAUoD,IAC7B3D,EAAkB2D,IAAc,IACtCpD,SAAQ,SAAU+J,GAC5B+L,EAAa7b,KAAKmJ,EAAY,IAAM2G,EACtC,GACF,IAEA,IAAIrK,EAAiBkJ,EAAMlJ,gBAAkB,CAAC,EAC9CjC,OAAOC,KAAKgC,GAAgBM,SAAQ,SAAUoD,IAC1B1D,EAAe0D,IAAc,IACnCpD,SAAQ,SAAU+J,GAC5B+L,EAAa7b,KAAKmJ,EAAY,KAAO2G,EACvC,GACF,IAEA,IAAIpK,EAA+BiJ,EAAMjJ,8BAAgC,CAAC,EAC1ElC,OAAOC,KAAKiC,GAA8BK,SAAQ,SAAUoD,GAC1D,IAAI2L,EAAcpP,EAA6ByD,IAAc,GAC7D,GAAIA,IAAcjC,GAAU4N,GAAsC,IAAvBA,EAAY3V,OAAvD,CAGA,IAAImhB,EAAY,GAEhBxL,EAAY/O,SAAQ,SAAU+J,GAC5BwQ,EAAUtgB,KAAKmJ,EAAY,IAAM2G,EACnC,IAEA+L,EAAa7b,KAAKsgB,EAPlB,CAQF,IAEA,IAAIza,EACF8I,EAAM9I,+BAAiC,CAAC,EAiD1C,OAhDArC,OAAOC,KAAKoC,GAA+BE,SAAQ,SAAUoD,GAC3D,IACI2G,GADcjK,EAA8BsD,IAAc,IACjC,GAE7B,QAAmBtL,IAAfiS,EAAJ,CAIA,IAGIyQ,EACAC,EAJApW,EAAoBuE,EAAMhD,2BAA2BxC,GACrDsC,EAAYkD,EAAMjD,+BAA+BtB,GACjDjD,EAAWwH,EAAMZ,yBAAyB3D,GAK9C,GAAIlD,IAAUiC,EAAW,CAGvB,IACqC,IAAnC2G,EAAW3L,QAAQsH,KACjBtE,IAAsC,IAA1B8Y,GACb9Y,GACCA,EAASkH,MAAM5C,GAAWtM,SACxB2Q,EAAWzB,MAAM5C,GAAWtM,OAEhC,OAGGgI,GAIHqZ,EAAkBrZ,EAASkH,MAAM5C,GAAWtM,OAAS,EACrD2Q,EAAa3I,IAJbqZ,EAAkB1Q,EAAWzB,MAAM5C,GAAWtM,OAAS,EACvD2Q,EAAaA,EAAWpQ,MAAM,EAAGoQ,EAAWlE,YAAYH,KAM1D8U,EAAoBnW,EAAkB6G,WAAWuP,EACnD,MACEA,EAAkB1Q,EAAWzB,MAAM5C,GAAWtM,OAAS,EAEvDohB,EAAoBnW,EAAkB6G,WAAWuP,GAG/CD,GACF1E,EAAa7b,KAAK,CAACugB,EAAoB,IAAMzQ,GAtC/C,CAwCF,IAEO+L,CACT,EAEA+D,qCAAsC,SAAUjR,GAG9C,OAAOA,EAAMpJ,mBAAmB7B,QAE9B,SACE+c,EACArW,GAEA,IAAIsW,EAAyB/R,EAAMtH,0BACjC+C,EAAkB9C,MAClB,GAGF,IAAKoZ,EAEH,OADAD,EAAczgB,KAAKoK,EAAkB6G,WAAW,IACzCwP,EAGT,IAAIhV,EAAYkD,EAAMjD,+BAA+BtB,GACjDsF,EAAQgR,EAAuBrS,MAAM5C,GAAWtM,OAChDwhB,EAAgBvW,EAAkB6G,WAAWvR,MAAM,EAAGgQ,EAAQ,GAElE,OAAO+Q,EAAc3d,OAAO6d,EAC9B,GAvBQ,GA0BZ,EAEAP,0CAA2C,SACzCzR,EACAvE,EACAwW,GAEA,IAAInV,EAAYkD,EAAMjD,+BAA+BtB,GACrD,IAAkB,IAAdwW,EAAoB,CACtB,IAAIzZ,EAAWwH,EAAMZ,yBAAyB3D,GAC1C0I,EAAiB,EAKrB,OAHI3L,IACF2L,EAAiB3L,EAASkH,MAAM5C,GAAWtM,QAEtC,CAACiL,EAAkB6G,WAAW6B,GACvC,CAEA,IAKI+N,GAJFlS,EAAMtH,0BAA0B+C,EAAkB9C,MAAM,IAAM,IAIvB+G,MAAM5C,GAAWtM,OAAS,EACnE,OAAOiL,EAAkB6G,WAAWvR,MAAM,EAAGmhB,EAAc,EAC7D,EAEA9H,uBAAwB,SAAU5P,EAAWd,EAAOoQ,EAAc9J,GAChE,IAAImS,EAA+BnS,EAAMrF,mBAAmBH,GACxDwF,EAAMpH,iBAAiB4B,GACvBwF,EACAoS,EAAiC,CACnCC,WAAY3Y,EACZc,UAAWA,GAKb,MAH4B,iBAAjBsP,IACTsI,EAA+BtI,aAAeA,GAEzCsG,EACL3a,EACE,CAAC,EACD+R,EAAegB,qBAAqB2J,GACpCC,GAGN,GAGF7iB,EAAOC,QAAUgY,gCCjbjBjY,EAAOC,QAAU,SAA0BgH,GACzC,OAAkB,OAAdA,GAGG,wBAAwB8b,KAAK9b,EACtC,gCCLAjH,EAAOC,QAAU,0BCDmDD,EAAOC,QAAgG,WAAY,aAAa,SAASyZ,EAAEA,EAAExM,EAAE2P,GAAG,OAAO3P,KAAKwM,EAAEpU,OAAO0d,eAAetJ,EAAExM,EAAE,CAAC1I,MAAMqY,EAAEqC,YAAW,EAAGE,cAAa,EAAGD,UAAS,IAAKzF,EAAExM,GAAG2P,EAAEnD,CAAC,CAAC,SAASxM,EAAEwM,EAAExM,GAAG,IAAI2P,EAAEvX,OAAOC,KAAKmU,GAAG,GAAGpU,OAAO2d,sBAAsB,CAAC,IAAI5iB,EAAEiF,OAAO2d,sBAAsBvJ,GAAGxM,IAAI7M,EAAEA,EAAEuF,QAAO,SAAUsH,GAAG,OAAO5H,OAAO4d,yBAAyBxJ,EAAExM,GAAGgS,UAAW,KAAIrC,EAAE/a,KAAKL,MAAMob,EAAExc,EAAE,CAAC,OAAOwc,CAAC,CAAC,SAASA,EAAEA,GAAG,IAAI,IAAIxc,EAAE,EAAEA,EAAEa,UAAUD,OAAOZ,IAAI,CAAC,IAAI8iB,EAAE,MAAMjiB,UAAUb,GAAGa,UAAUb,GAAG,CAAC,EAAEA,EAAE,EAAE6M,EAAE5H,OAAO6d,IAAG,GAAItb,SAAQ,SAAUqF,GAAGwM,EAAEmD,EAAE3P,EAAEiW,EAAEjW,GAAI,IAAG5H,OAAO8d,0BAA0B9d,OAAO+d,iBAAiBxG,EAAEvX,OAAO8d,0BAA0BD,IAAIjW,EAAE5H,OAAO6d,IAAItb,SAAQ,SAAU6R,GAAGpU,OAAO0d,eAAenG,EAAEnD,EAAEpU,OAAO4d,yBAAyBC,EAAEzJ,GAAI,GAAE,CAAC,OAAOmD,CAAC,CAAqX,SAASsG,EAAEzJ,EAAExM,GAAG,OAAO,SAASwM,GAAG,GAAGnY,MAAMoF,QAAQ+S,GAAG,OAAOA,CAAC,CAAxC,CAA0CA,IAAI,SAASA,EAAExM,GAAG,GAAKoW,OAAOC,YAAYje,OAAOoU,IAAI,uBAAuBpU,OAAOpF,UAAUoQ,SAAShP,KAAKoY,GAAzF,CAAoG,IAAImD,EAAE,GAAGxc,GAAE,EAAG8iB,GAAE,EAAG1c,OAAE,EAAO,IAAI,IAAI,IAAI+c,EAAE1iB,EAAE4Y,EAAE4J,OAAOC,cAAcljB,GAAGmjB,EAAE1iB,EAAE2iB,QAAQC,QAAQ7G,EAAE/a,KAAK0hB,EAAEhf,QAAQ0I,GAAG2P,EAAE5b,SAASiM,GAAG7M,GAAE,GAAI,CAAC,MAAMqZ,GAAGyJ,GAAE,EAAG1c,EAAEiT,CAAC,CAAC,QAAQ,IAAIrZ,GAAG,MAAMS,EAAE6iB,QAAQ7iB,EAAE6iB,QAAQ,CAAC,QAAQ,GAAGR,EAAE,MAAM1c,CAAC,CAAC,CAAC,OAAOoW,CAA7N,CAA8N,CAA/U,CAAiVnD,EAAExM,IAAI,WAAW,MAAM,IAAI3M,UAAU,uDAAuD,CAAtF,EAAyF,CAAC,SAASkG,EAAEiT,GAAG,OAAO,SAASA,GAAG,GAAGnY,MAAMoF,QAAQ+S,GAAG,CAAC,IAAI,IAAIxM,EAAE,EAAE2P,EAAE,IAAItb,MAAMmY,EAAEzY,QAAQiM,EAAEwM,EAAEzY,OAAOiM,IAAI2P,EAAE3P,GAAGwM,EAAExM,GAAG,OAAO2P,CAAC,CAAC,CAArG,CAAuGnD,IAAI,SAASA,GAAG,GAAG4J,OAAOC,YAAYje,OAAOoU,IAAI,uBAAuBpU,OAAOpF,UAAUoQ,SAAShP,KAAKoY,GAAG,OAAOnY,MAAMqiB,KAAKlK,EAAE,CAA1H,CAA4HA,IAAI,WAAW,MAAM,IAAInZ,UAAU,kDAAkD,CAAjF,EAAoF,CAAC,SAASijB,EAAE9J,GAAG,IAAIxM,EAAE2P,EAAE,2BAA2BjY,OAAO8U,EAAE/W,KAAKtC,EAAE,WAAW,YAAO,IAAS6M,IAAIA,EAAEwM,EAAEmK,cAAcC,OAAOD,cAAc3W,CAAC,EAAEzG,EAAE,WAAW,OAAO8J,KAAKwT,MAAM1jB,IAAI2jB,QAAQnH,IAAI,KAAK,EAAE2G,EAAE,SAAS9J,GAAGrZ,IAAI4jB,QAAQpH,EAAEtM,KAAKC,UAAUkJ,GAAG,EAAE5Y,EAAE,WAAW,IAAIoM,EAAEwM,EAAEwK,WAAW,IAAIxK,EAAEwK,WAAW,KAAKrH,EAAEpW,IAAIpG,EAAEiF,OAAO6e,YAAY7e,OAAO8e,QAAQvH,GAAGjX,QAAO,SAAU8T,GAAG,YAAO,IAASyJ,EAAEzJ,EAAE,GAAG,GAAG2K,SAAU,KAAI,GAAGb,EAAEnjB,GAAG6M,EAAE,CAAC,IAAIpM,EAAEwE,OAAO6e,YAAY7e,OAAO8e,QAAQ/jB,GAAGuF,QAAO,SAAU8T,GAAG,IAAImD,EAAEsG,EAAEzJ,EAAE,GAAG,GAAGrZ,GAAE,IAAKikB,MAAMC,UAAU,QAAQ1H,EAAEwH,UAAUnX,EAAE7M,EAAG,KAAImjB,EAAE1iB,EAAE,CAAC,EAAE,MAAM,CAAC0jB,IAAI,SAAS9K,EAAExM,GAAG,IAAI2P,EAAE3b,UAAUD,OAAO,QAAG,IAASC,UAAU,GAAGA,UAAU,GAAG,CAACujB,KAAK,WAAW,OAAO3K,QAAQC,SAAS,GAAG,OAAOD,QAAQC,UAAUR,MAAK,WAAYzY,IAAI,IAAIoM,EAAEqD,KAAKC,UAAUkJ,GAAG,OAAOjT,IAAIyG,EAAG,IAAGqM,MAAK,SAAUG,GAAG,OAAOI,QAAQ4K,IAAI,CAAChL,EAAEA,EAAElV,MAAM0I,SAAI,IAASwM,GAAI,IAAGH,MAAK,SAAUG,GAAG,IAAIxM,EAAEiW,EAAEzJ,EAAE,GAAGrZ,EAAE6M,EAAE,GAAGzG,EAAEyG,EAAE,GAAG,OAAO4M,QAAQ4K,IAAI,CAACrkB,EAAEoG,GAAGoW,EAAE4H,KAAKpkB,IAAK,IAAGkZ,MAAK,SAAUG,GAAG,OAAOyJ,EAAEzJ,EAAE,GAAG,EAAG,GAAE,EAAEiL,IAAI,SAASjL,EAAExM,GAAG,OAAO4M,QAAQC,UAAUR,MAAK,WAAY,IAAI4J,EAAE1c,IAAI,OAAO0c,EAAE5S,KAAKC,UAAUkJ,IAAI,CAAC2K,WAAU,IAAKC,MAAMC,UAAU/f,MAAM0I,GAAG7M,IAAI4jB,QAAQpH,EAAEtM,KAAKC,UAAU2S,IAAIjW,CAAE,GAAE,EAAE0X,OAAO,SAASlL,GAAG,OAAOI,QAAQC,UAAUR,MAAK,WAAY,IAAIrM,EAAEzG,WAAWyG,EAAEqD,KAAKC,UAAUkJ,IAAIrZ,IAAI4jB,QAAQpH,EAAEtM,KAAKC,UAAUtD,GAAI,GAAE,EAAE2X,MAAM,WAAW,OAAO/K,QAAQC,UAAUR,MAAK,WAAYlZ,IAAIykB,WAAWjI,EAAG,GAAE,EAAE,CAAC,SAAS/b,EAAE4Y,GAAG,IAAIxM,EAAEzG,EAAEiT,EAAEqL,QAAQlI,EAAE3P,EAAE8X,QAAQ,YAAO,IAASnI,EAAE,CAAC2H,IAAI,SAAS9K,EAAExM,GAAG,IAAI2P,EAAE3b,UAAUD,OAAO,QAAG,IAASC,UAAU,GAAGA,UAAU,GAAG,CAACujB,KAAK,WAAW,OAAO3K,QAAQC,SAAS,GAAS,OAAJ7M,IAAaqM,MAAK,SAAUG,GAAG,OAAOI,QAAQ4K,IAAI,CAAChL,EAAEmD,EAAE4H,KAAK/K,IAAK,IAAGH,MAAK,SAAUG,GAAG,OAAOyJ,EAAEzJ,EAAE,GAAG,EAAG,GAAE,EAAEiL,IAAI,SAASjL,EAAExM,GAAG,OAAO4M,QAAQC,QAAQ7M,EAAE,EAAE0X,OAAO,SAASlL,GAAG,OAAOI,QAAQC,SAAS,EAAE8K,MAAM,WAAW,OAAO/K,QAAQC,SAAS,GAAG,CAACyK,IAAI,SAAS9K,EAAErZ,GAAG,IAAI8iB,EAAEjiB,UAAUD,OAAO,QAAG,IAASC,UAAU,GAAGA,UAAU,GAAG,CAACujB,KAAK,WAAW,OAAO3K,QAAQC,SAAS,GAAG,OAAO8C,EAAE2H,IAAI9K,EAAErZ,EAAE8iB,GAAGxJ,OAAM,WAAY,OAAO7Y,EAAE,CAACikB,OAAO7X,IAAIsX,IAAI9K,EAAErZ,EAAE8iB,EAAG,GAAE,EAAEwB,IAAI,SAASjL,EAAErZ,GAAG,OAAOwc,EAAE8H,IAAIjL,EAAErZ,GAAGsZ,OAAM,WAAY,OAAO7Y,EAAE,CAACikB,OAAO7X,IAAIyX,IAAIjL,EAAErZ,EAAG,GAAE,EAAEukB,OAAO,SAASlL,GAAG,OAAOmD,EAAE+H,OAAOlL,GAAGC,OAAM,WAAY,OAAO7Y,EAAE,CAACikB,OAAO7X,IAAI0X,OAAOlL,EAAG,GAAE,EAAEmL,MAAM,WAAW,OAAOhI,EAAEgI,QAAQlL,OAAM,WAAY,OAAO7Y,EAAE,CAACikB,OAAO7X,IAAI2X,OAAQ,GAAE,EAAE,CAAC,SAASrH,IAAI,IAAI9D,EAAExY,UAAUD,OAAO,QAAG,IAASC,UAAU,GAAGA,UAAU,GAAG,CAAC+jB,cAAa,GAAI/X,EAAE,CAAC,EAAE,MAAM,CAACsX,IAAI,SAAS3H,EAAExc,GAAG,IAAI8iB,EAAEjiB,UAAUD,OAAO,QAAG,IAASC,UAAU,GAAGA,UAAU,GAAG,CAACujB,KAAK,WAAW,OAAO3K,QAAQC,SAAS,GAAGtT,EAAE8J,KAAKC,UAAUqM,GAAG,GAAGpW,KAAKyG,EAAE,OAAO4M,QAAQC,QAAQL,EAAEuL,aAAa1U,KAAKwT,MAAM7W,EAAEzG,IAAIyG,EAAEzG,IAAI,IAAI+c,EAAEnjB,IAAIS,EAAEqiB,GAAGA,EAAEsB,MAAM,WAAW,OAAO3K,QAAQC,SAAS,EAAE,OAAOyJ,EAAEjK,MAAK,SAAUG,GAAG,OAAO5Y,EAAE4Y,EAAG,IAAGH,MAAK,WAAY,OAAOiK,CAAE,GAAE,EAAEmB,IAAI,SAAS9H,EAAExc,GAAG,OAAO6M,EAAEqD,KAAKC,UAAUqM,IAAInD,EAAEuL,aAAa1U,KAAKC,UAAUnQ,GAAGA,EAAEyZ,QAAQC,QAAQ1Z,EAAE,EAAEukB,OAAO,SAASlL,GAAG,cAAcxM,EAAEqD,KAAKC,UAAUkJ,IAAII,QAAQC,SAAS,EAAE8K,MAAM,WAAW,OAAO3X,EAAE,CAAC,EAAE4M,QAAQC,SAAS,EAAE,CAAC,SAASmL,EAAExL,GAAG,IAAI,IAAIxM,EAAEwM,EAAEzY,OAAO,EAAEiM,EAAE,EAAEA,IAAI,CAAC,IAAI2P,EAAEsI,KAAKC,MAAMD,KAAKE,UAAUnY,EAAE,IAAI7M,EAAEqZ,EAAExM,GAAGwM,EAAExM,GAAGwM,EAAEmD,GAAGnD,EAAEmD,GAAGxc,CAAC,CAAC,OAAOqZ,CAAC,CAAC,SAASmG,EAAEnG,EAAExM,GAAG,OAAOA,GAAG5H,OAAOC,KAAK2H,GAAGrF,SAAQ,SAAUgV,GAAGnD,EAAEmD,GAAG3P,EAAE2P,GAAGnD,EAAG,IAAGA,GAAGA,CAAC,CAAC,SAASzU,EAAEyU,GAAG,IAAI,IAAIxM,EAAEhM,UAAUD,OAAO4b,EAAE,IAAItb,MAAM2L,EAAE,EAAEA,EAAE,EAAE,GAAG7M,EAAE,EAAEA,EAAE6M,EAAE7M,IAAIwc,EAAExc,EAAE,GAAGa,UAAUb,GAAG,IAAI8iB,EAAE,EAAE,OAAOzJ,EAAEnE,QAAQ,OAAM,WAAY,OAAO+P,mBAAmBzI,EAAEsG,KAAM,GAAE,CAAC,IAAIvhB,EAAyB,EAAzBA,EAAyC,EAAG,SAAS2jB,EAAE7L,EAAExM,GAAG,IAAI2P,EAAEnD,GAAG,CAAC,EAAErZ,EAAEwc,EAAEpL,MAAM,CAAC,EAAE,OAAOnM,OAAOC,KAAKsX,GAAGhV,SAAQ,SAAU6R,IAAI,IAAI,CAAC,UAAU,UAAU,kBAAkB,OAAO,aAAazT,QAAQyT,KAAKrZ,EAAEqZ,GAAGmD,EAAEnD,GAAI,IAAG,CAACjI,KAAKnM,OAAO8e,QAAQ/jB,GAAGY,OAAO,EAAEZ,OAAE,EAAOmlB,QAAQ3I,EAAE2I,SAAStY,EAAEuY,QAAQ5I,EAAE4I,SAAS,CAAC,EAAEC,gBAAgB7I,EAAE6I,iBAAiB,CAAC,EAAEC,UAAU9I,EAAE8I,UAAU,CAAC,IAAIC,EAAE,CAACC,KAAK,EAAEC,MAAM,EAAEC,IAAI,GAAe,SAASC,EAAEtM,GAAG,IAAIxM,EAAEhM,UAAUD,OAAO,QAAG,IAASC,UAAU,GAAGA,UAAU,GAAlF,EAAuF,OAAO2b,EAAEA,EAAE,CAAC,EAAEnD,GAAG,CAAC,EAAE,CAACuM,OAAO/Y,EAAEgZ,WAAW5B,KAAK6B,OAAO,CAAC,SAASzf,EAAEgT,GAAG,MAAM,iBAAiBA,EAAE,CAAC0M,SAAS,QAAQC,IAAI3M,EAAE4M,OAAOV,EAAEG,KAAK,CAACK,SAAS1M,EAAE0M,UAAU,QAAQC,IAAI3M,EAAE2M,IAAIC,OAAO5M,EAAE4M,QAAQV,EAAEG,IAAI,CAAC,IAAIQ,EAAE,MAAMC,EAAE,OAAkgB,SAASC,EAAE/M,EAAExM,EAAE7M,EAAE8iB,GAAG,IAAIK,EAAE,GAAG1iB,EAAE,SAAS4Y,EAAExM,GAAG,GAAGwM,EAAEgN,SAASH,SAAG,IAAS7M,EAAEjI,WAAM,IAASvE,EAAEuE,MAA7C,CAAyD,IAAIpR,EAAEkB,MAAMoF,QAAQ+S,EAAEjI,MAAMiI,EAAEjI,KAAKoL,EAAEA,EAAE,CAAC,EAAEnD,EAAEjI,MAAMvE,EAAEuE,MAAM,OAAOlB,KAAKC,UAAUnQ,EAAjF,CAAmF,CAAzJ,CAA2JA,EAAE8iB,GAAG3F,EAAE,SAAS9D,EAAExM,GAAG,IAAI7M,EAAEwc,EAAEA,EAAE,CAAC,EAAEnD,EAAE+L,SAASvY,EAAEuY,SAAStC,EAAE,CAAC,EAAE,OAAO7d,OAAOC,KAAKlF,GAAGwH,SAAQ,SAAU6R,GAAG,IAAIxM,EAAE7M,EAAEqZ,GAAGyJ,EAAEzJ,EAAEiN,eAAezZ,CAAE,IAAGiW,CAAC,CAArI,CAAuIzJ,EAAEyJ,GAAG+B,EAAE7kB,EAAEqmB,OAAO7G,EAAExf,EAAEqmB,SAASH,EAAE,CAAC,EAAE1J,EAAEA,EAAE,CAAC,EAAExc,EAAEoR,MAAM0R,EAAE1R,MAAMxM,EAAE4X,EAAEA,EAAEA,EAAE,CAAC,kBAAkBnD,EAAEkN,UAAUpiB,OAAOkV,EAAEgM,iBAAiB7F,GAAGsD,EAAEuC,iBAAiB9jB,EAAE,EAAE2jB,EAAE,SAASrY,EAAE2P,EAAEpW,GAAG,IAAIoZ,EAAEhD,EAAEgK,MAAM,QAAG,IAAShH,EAAE,KAAK,CAACzW,KAAK,aAAa0d,QAAQ,gHAAgHC,sBAAsBC,EAAExD,IAAI,IAAI+B,EAAE,CAAC9T,KAAK3Q,EAAE2kB,QAAQjI,EAAEkJ,OAAOxB,EAAEmB,IAAIY,EAAEpH,EAAExf,EAAEuN,KAAK3I,GAAGiiB,eAAezgB,EAAE7E,EAAE8X,EAAEyN,SAASC,SAASC,gBAAgB5gB,EAAE7E,EAAEuhB,EAAEqC,UAAUI,EAAE,SAASlM,GAAG,IAAIxM,EAAE,CAACoa,QAAQ/B,EAAEvK,SAAStB,EAAE6N,KAAK1H,EAAE2H,UAAU3K,EAAE5b,QAAQ,OAAOuiB,EAAE1hB,KAAKoL,GAAGA,CAAC,EAAEua,EAAE,CAACC,UAAU,SAAShO,GAAG,OAAO,SAASA,GAAG,IAAI,OAAOnJ,KAAKwT,MAAMrK,EAAEF,QAAQ,CAAC,MAAMtM,GAAG,MAAM,SAASwM,EAAExM,GAAG,MAAM,CAAC9D,KAAK,uBAAuB0d,QAAQpN,EAAEsB,SAAS9N,EAAE,CAAtE,CAAwEA,EAAE4Z,QAAQpN,EAAE,CAAC,CAAjJ,CAAmJA,EAAE,EAAEiO,QAAQ,SAAStnB,GAAG,IAAI8iB,EAAEyC,EAAEvlB,GAAG,OAAOA,EAAEunB,YAAYhmB,IAAIkY,QAAQ4K,IAAI,CAAChL,EAAEmO,OAAOC,KAAK,oBAAoBC,EAAE5E,IAAIzJ,EAAEsO,WAAWrD,IAAI9E,EAAEmG,EAAEnG,EAAExf,EAAEunB,WAAx+D,EAAJ,MAA+/DrO,MAAK,WAAY,OAAOrM,EAAE2P,EAAEpW,EAAG,GAAE,EAAEwhB,OAAO,SAASvO,GAAG,MAAMkM,EAAElM,GAAG,SAASA,EAAExM,GAAG,IAAI2P,EAAEnD,EAAEF,QAAQnZ,EAAEqZ,EAAEuM,OAAO9C,EAAEtG,EAAE,IAAIsG,EAAE5S,KAAKwT,MAAMlH,GAAGiK,OAAO,CAAC,MAAMpN,GAAG,CAAC,OAAO,SAASA,EAAExM,EAAE2P,GAAG,MAAM,CAACzT,KAAK,WAAW0d,QAAQpN,EAAEuM,OAAO/Y,EAAE6Z,sBAAsBlK,EAAE,CAAlF,CAAoFsG,EAAE9iB,EAAE6M,EAAE,CAApL,CAAsLwM,EAAEsN,EAAExD,GAAG,GAAG,OAAO9J,EAAEwO,UAAUC,KAAK5C,GAAGhM,MAAK,SAAUG,GAAG,OAAO,SAASA,EAAExM,GAAG,OAAO,SAASwM,GAAG,IAAIxM,EAAEwM,EAAEuM,OAAO,OAAOvM,EAAEkO,YAAY,SAASlO,GAAG,IAAIxM,EAAEwM,EAAEkO,WAAW/K,EAAEnD,EAAEuM,OAAO,OAAO/Y,MAAQ2P,CAAC,CAA1D,CAA4DnD,IAAI,MAAMxM,EAAE,MAAM,MAAMA,EAAE,IAAI,CAA1I,CAA4IwM,GAAGxM,EAAEya,QAAQjO,GAAG,MAAMA,EAAEuM,OAAO,KAAK/Y,EAAEwa,UAAUhO,GAAGxM,EAAE+a,OAAOvO,EAAE,CAA/N,CAAiOA,EAAE+N,EAAG,GAAE,EAAE,OAAnvE,SAAW/N,EAAExM,GAAG,OAAO4M,QAAQ4K,IAAIxX,EAAE1E,KAAI,SAAU0E,GAAG,OAAOwM,EAAE8K,IAAItX,GAAE,WAAY,OAAO4M,QAAQC,QAAQiM,EAAE9Y,GAAI,GAAG,KAAIqM,MAAK,SAAUG,GAAG,IAAImD,EAAEnD,EAAE9T,QAAO,SAAU8T,GAAG,OAAO,SAASA,GAAG,OAAre,IAA4eA,EAAEuM,QAAY3B,KAAK6B,MAAMzM,EAAEwM,WAAW,IAAI,CAA7D,CAA+DxM,EAAG,IAAGrZ,EAAEqZ,EAAE9T,QAAO,SAAU8T,GAAG,OAAO,SAASA,GAAG,OAAjkB,IAAwkBA,EAAEuM,QAAY3B,KAAK6B,MAAMzM,EAAEwM,YAAY,IAAI,CAA9D,CAAgExM,EAAG,IAAGyJ,EAAE,GAAGve,OAAO6B,EAAEoW,GAAGpW,EAAEpG,IAAI,MAAM,CAAC+nB,WAAW,SAAS1O,EAAExM,GAAG,OAAO,IAAI7M,EAAEY,QAAQ,IAAIyY,EAAE,EAAErZ,EAAEY,OAAO,EAAEyY,GAAGxM,CAAC,EAAEmb,eAAelF,EAAEliB,OAAO,EAAEkiB,EAAE3a,KAAI,SAAUkR,GAAG,OAAOhT,EAAEgT,EAAG,IAAGxM,EAAG,GAAE,CAAgwDgO,CAAExB,EAAEsO,WAAW9a,GAAGqM,MAAK,SAAUG,GAAG,OAAO6L,EAAE9e,EAAEiT,EAAE2O,gBAAgBC,UAAU5O,EAAE0O,WAAY,GAAE,CAAC,SAASG,EAAE7O,GAAG,IAAIxM,EAAE,CAAC1I,MAAM,2BAA2BI,OAAO8U,EAAE,KAAK8O,IAAI,SAAS9O,GAAG,IAAImD,EAAE,KAAKjY,OAAO8U,EAAEwH,SAAStc,YAAO,IAAS8U,EAAEpW,QAAQ,KAAKsB,OAAO8U,EAAEpW,QAAQ,KAAK,IAAI,OAAO,IAAI4J,EAAE1I,MAAMyB,QAAQ4W,KAAK3P,EAAE1I,MAAM,GAAGI,OAAOsI,EAAE1I,OAAOI,OAAOiY,IAAI3P,CAAC,GAAG,OAAOA,CAAC,CAAC,SAAS+Z,EAAEvN,EAAExM,EAAE2P,GAAG,IAAIxc,EAAEooB,EAAE5L,GAAGsG,EAAE,GAAGve,OAAO8U,EAAE0M,SAAS,OAAOxhB,OAAO8U,EAAE2M,IAAI,KAAKzhB,OAAO,MAAMsI,EAAEwb,OAAO,GAAGxb,EAAEyb,OAAO,GAAGzb,GAAG,OAAO7M,EAAEY,SAASkiB,GAAG,IAAIve,OAAOvE,IAAI8iB,CAAC,CAAC,SAASsF,EAAE/O,GAAG,OAAOpU,OAAOC,KAAKmU,GAAGlR,KAAI,SAAU0E,GAAG,OAAOjI,EAAE,QAAQiI,GAAG2P,EAAEnD,EAAExM,GAAG,oBAAoB5H,OAAOpF,UAAUoQ,SAAShP,KAAKub,IAAI,mBAAmBvX,OAAOpF,UAAUoQ,SAAShP,KAAKub,GAAGtM,KAAKC,UAAUkJ,EAAExM,IAAIwM,EAAExM,KAAK,IAAI2P,CAAE,IAAGsE,KAAK,IAAI,CAAC,SAAS6F,EAAEtN,GAAG,OAAOA,EAAElR,KAAI,SAAUkR,GAAG,OAAOqO,EAAErO,EAAG,GAAE,CAAC,SAASqO,EAAErO,GAAG,IAAIxM,EAAEwM,EAAE4N,QAAQ7B,QAAQ,qBAAqB,CAAC,oBAAoB,SAAS,CAAC,EAAE,OAAO5I,EAAEA,EAAE,CAAC,EAAEnD,GAAG,CAAC,EAAE,CAAC4N,QAAQzK,EAAEA,EAAE,CAAC,EAAEnD,EAAE4N,SAAS,CAAC,EAAE,CAAC7B,QAAQ5I,EAAEA,EAAE,CAAC,EAAEnD,EAAE4N,QAAQ7B,SAASvY,MAAM,CAAC,IAAI0b,EAAE,SAASlP,GAAG,IAAIxM,EAAEwM,EAAEmP,MAAMxoB,EAAE,SAASqZ,EAAExM,EAAE2P,GAAG,IAAIxc,EAAE,CAAC,oBAAoBwc,EAAE,2BAA2B3P,GAAG,MAAM,CAACuY,QAAQ,WAAW,OAAO/L,IAAI9X,EAAgBvB,EAAE,CAAC,CAAC,EAAEqlB,gBAAgB,WAAW,OAAOhM,IAAI9X,EAAwBvB,EAAE,CAAC,CAAC,EAAE,CAA1M,MAA4M,IAASqZ,EAAEoP,SAASpP,EAAEoP,SAASlnB,EAAgBsL,EAAEwM,EAAEqP,QAAQtiB,EAAE,SAASiT,GAAG,IAAIxM,EAAEwM,EAAEsO,WAAWnL,EAAEnD,EAAEmO,OAAOxnB,EAAEqZ,EAAEwO,UAAUzhB,EAAEiT,EAAEsP,cAAcxF,EAAE9J,EAAEuP,eAAenoB,EAAE4Y,EAAEyN,SAAS3J,EAAE9D,EAAEkN,UAAU1B,EAAExL,EAAEwP,MAAMrJ,EAAEnG,EAAEgM,gBAAgBzgB,EAAE,CAAC+iB,WAAW9a,EAAE2a,OAAOhL,EAAEqL,UAAU7nB,EAAE2oB,cAAcviB,EAAEwiB,eAAezF,EAAE2D,SAASrmB,EAAE8lB,UAAUpJ,EAAEiI,QAAQ/L,EAAE+L,QAAQC,gBAAgB7F,EAAEqJ,MAAMhE,EAAE1c,KAAI,SAAUkR,GAAG,OAAOhT,EAAEgT,EAAG,IAAGyP,KAAK,SAASzP,EAAExM,GAAG,IAAI2P,EAAE0I,EAAErY,EAAEjI,EAAEkiB,SAASgC,MAAM9oB,EAAE,WAAW,OAAOomB,EAAExhB,EAAEA,EAAEikB,MAAMtjB,QAAO,SAAU8T,GAAG,SAAWA,EAAE4M,OAAOV,EAAEC,KAAM,IAAGnM,EAAEmD,EAAE,EAAE,IAAG,UAAM,IAASA,EAAE8I,UAAU9I,EAAE8I,UAAUjM,EAAEiM,WAAW,OAAOtlB,IAAI,IAAIoG,EAAE,CAAC6gB,QAAQ5N,EAAE0P,qBAAqBvM,EAAEwM,YAAY,CAAC3D,gBAAgBzgB,EAAEygB,gBAAgBD,QAAQxgB,EAAEwgB,UAAU,OAAOxgB,EAAEgkB,eAAezE,IAAI/d,GAAE,WAAY,OAAOxB,EAAE+jB,cAAcxE,IAAI/d,GAAE,WAAY,OAAOxB,EAAE+jB,cAAcrE,IAAIle,EAAEpG,KAAKkZ,MAAK,SAAUG,GAAG,OAAOI,QAAQ4K,IAAI,CAACzf,EAAE+jB,cAAcpE,OAAOne,GAAGiT,GAAI,IAAE,SAAUA,GAAG,OAAOI,QAAQ4K,IAAI,CAACzf,EAAE+jB,cAAcpE,OAAOne,GAAGqT,QAAQwP,OAAO5P,IAAK,IAAGH,MAAK,SAAUG,GAAG,IAAIxM,EAAEiW,EAAEzJ,EAAE,GAAQ,OAALxM,EAAE,GAAUA,EAAE,EAAG,GAAG,GAAG,GAAE,CAACuX,KAAK,SAAS/K,GAAG,OAAOzU,EAAEgkB,eAAetE,IAAIle,EAAEiT,EAAE,GAAG,EAAE6P,MAAM,SAAS7P,EAAExM,GAAG,OAAOuZ,EAAExhB,EAAEA,EAAEikB,MAAMtjB,QAAO,SAAU8T,GAAG,SAAWA,EAAE4M,OAAOV,EAAEE,MAAO,IAAGpM,EAAE6L,EAAErY,EAAEjI,EAAEkiB,SAASoC,OAAO,GAAG,OAAOtkB,CAAC,CAA7mC,CAA+mC4X,EAAEA,EAAE,CAACqM,MAAM,CAAC,CAAC7C,IAAI,GAAGzhB,OAAOsI,EAAE,oBAAoBoZ,OAAOV,EAAEC,MAAM,CAACQ,IAAI,GAAGzhB,OAAOsI,EAAE,gBAAgBoZ,OAAOV,EAAEE,QAAQlhB,OAAOsgB,EAAE,CAAC,CAACmB,IAAI,GAAGzhB,OAAOsI,EAAE,sBAAsB,CAACmZ,IAAI,GAAGzhB,OAAOsI,EAAE,sBAAsB,CAACmZ,IAAI,GAAGzhB,OAAOsI,EAAE,0BAA0BwM,GAAG,CAAC,EAAE,CAAC+L,QAAQ5I,EAAEA,EAAEA,EAAE,CAAC,EAAExc,EAAEolB,WAAW,CAAC,eAAe,sCAAsC/L,EAAE+L,SAASC,gBAAgB7I,EAAEA,EAAE,CAAC,EAAExc,EAAEqlB,mBAAmBhM,EAAEgM,oBAAoB,OAAO7F,EAAE,CAACwJ,YAAY5iB,EAAEoiB,MAAM3b,EAAEgL,gBAAgB,SAASwB,EAAExM,GAAGzG,EAAEmgB,UAAU4B,IAAI,CAACtH,QAAQxH,EAAEpW,QAAQ4J,GAAG,EAAE6Q,WAAW,WAAW,OAAOjE,QAAQ4K,IAAI,CAACje,EAAEuiB,cAAcnE,QAAQpe,EAAEwiB,eAAepE,UAAUtL,MAAK,WAAa,GAAE,GAAGG,EAAE8P,QAAQ,EAAEC,EAAE,SAAS/P,GAAG,OAAO,SAASxM,EAAE2P,GAAG,OAAO3P,EAAEwZ,SAASH,EAAE7M,EAAE2P,YAAYF,KAAKjc,EAAE2P,GAAGnD,EAAE2P,YAAYE,MAAMrc,EAAE2P,EAAE,CAAC,EAAE6M,EAAE,SAAShQ,GAAG,OAAO,SAASxM,GAAG,IAAI2P,EAAE3b,UAAUD,OAAO,QAAG,IAASC,UAAU,GAAGA,UAAU,GAAG,CAAC,EAA0D,OAAO2e,EAA7D,CAACwJ,YAAY3P,EAAE2P,YAAYR,MAAMnP,EAAEmP,MAAM9N,UAAU7N,GAAc2P,EAAE2M,QAAQ,CAAC,EAAEG,EAAE,SAASjQ,GAAG,OAAO,SAASxM,EAAE7M,GAAG,IAAI8iB,EAAEjW,EAAE1E,KAAI,SAAUkR,GAAG,OAAOmD,EAAEA,EAAE,CAAC,EAAEnD,GAAG,CAAC,EAAE,CAAC3S,OAAO0hB,EAAE/O,EAAE3S,QAAQ,CAAC,IAAK,IAAG,OAAO2S,EAAE2P,YAAYF,KAAK,CAACzC,OAAOF,EAAE5Y,KAAK,sBAAsB6D,KAAK,CAACmY,SAASzG,GAAGwC,WAAU,GAAItlB,EAAE,CAAC,EAAE+H,EAAE,SAASsR,GAAG,OAAO,SAASxM,EAAEiW,GAAG,OAAOrJ,QAAQ4K,IAAIxX,EAAE1E,KAAI,SAAU0E,GAAG,IAAIzG,EAAEyG,EAAEnG,OAAOyc,EAAE/c,EAAEwE,UAAUnK,EAAE2F,EAAEqc,WAAWtF,EAAh6V,SAAW9D,EAAExM,GAAG,GAAG,MAAMwM,EAAE,MAAM,CAAC,EAAE,IAAImD,EAAExc,EAAE8iB,EAAE,SAASzJ,EAAExM,GAAG,GAAG,MAAMwM,EAAE,MAAM,CAAC,EAAE,IAAImD,EAAExc,EAAE8iB,EAAE,CAAC,EAAE1c,EAAEnB,OAAOC,KAAKmU,GAAG,IAAIrZ,EAAE,EAAEA,EAAEoG,EAAExF,OAAOZ,IAAIwc,EAAEpW,EAAEpG,GAAG6M,EAAEjH,QAAQ4W,IAAI,IAAIsG,EAAEtG,GAAGnD,EAAEmD,IAAI,OAAOsG,CAAC,CAAnI,CAAqIzJ,EAAExM,GAAG,GAAG5H,OAAO2d,sBAAsB,CAAC,IAAIxc,EAAEnB,OAAO2d,sBAAsBvJ,GAAG,IAAIrZ,EAAE,EAAEA,EAAEoG,EAAExF,OAAOZ,IAAIwc,EAAEpW,EAAEpG,GAAG6M,EAAEjH,QAAQ4W,IAAI,GAAGvX,OAAOpF,UAAU2pB,qBAAqBvoB,KAAKoY,EAAEmD,KAAKsG,EAAEtG,GAAGnD,EAAEmD,GAAG,CAAC,OAAOsG,CAAC,CAA+iV9iB,CAAEoG,EAAE,CAAC,YAAY,eAAe,OAAOijB,EAAEhQ,EAAFgQ,CAAKxc,EAAE6N,UAAU,CAACyO,QAAQ,CAAClP,qBAAqBwP,KAAKxP,qBAAqBkJ,EAAE1iB,EAAE+b,EAAEA,EAAE,CAAC,EAAEsG,GAAG3F,GAAI,IAAG,CAAC,EAAEuM,EAAE,SAASrQ,GAAG,OAAO,SAASxM,EAAE2P,EAAExc,GAAG,OAAOqZ,EAAE2P,YAAYF,KAAK,CAACzC,OAAOF,EAAE5Y,KAAK3I,EAAE,0BAA0ByU,EAAEqB,WAAWtJ,KAAK,CAACtH,MAAM+C,EAAEmN,eAAewC,GAAG8I,WAAU,GAAItlB,EAAE,CAAC,EAAE2pB,EAAE,SAAStQ,GAAG,OAAO,SAASxM,EAAE2P,GAAG,OAAOnD,EAAE2P,YAAYF,KAAK,CAACzC,OAAOF,EAAE5Y,KAAK3I,EAAE,qBAAqByU,EAAEqB,WAAWtJ,KAAK,CAACtH,MAAM+C,GAAGyY,WAAU,GAAI9I,EAAE,CAAC,EAAEiN,EAAE,SAASpQ,GAAG,OAAO,SAASxM,EAAE2P,EAAExc,GAAG,OAAOqZ,EAAE2P,YAAYF,KAAK,CAACzC,OAAOF,EAAE5Y,KAAK3I,EAAE,+BAA+ByU,EAAEqB,UAAU7N,GAAGuE,KAAK,CAACqR,WAAWjG,GAAG8I,WAAU,GAAItlB,EAAE,CAAC,EAAc,SAAS4pB,EAAEvQ,EAAExM,EAAE7M,GAAG,IAAMoG,EAAE,CAACoiB,MAAMnP,EAAEqP,OAAO7b,EAAEia,SAAS,CAACC,QAAQ,EAAE+B,KAAK,EAAEI,MAAM,IAAIrB,UAAU,CAACC,KAAK,SAASzO,GAAG,OAAO,IAAII,SAAQ,SAAU5M,GAAG,IAAI2P,EAAE,IAAIqN,eAAerN,EAAEsN,KAAKzQ,EAAEgN,OAAOhN,EAAE2M,KAAI,GAAI/gB,OAAOC,KAAKmU,EAAE+L,SAAS5d,SAAQ,SAAUqF,GAAG,OAAO2P,EAAEuN,iBAAiBld,EAAEwM,EAAE+L,QAAQvY,GAAI,IAAG,IAAI7M,EAAE8iB,EAAE,SAASzJ,EAAErZ,GAAG,OAAOgqB,YAAW,WAAYxN,EAAEyN,QAAQpd,EAAE,CAAC+Y,OAAO,EAAEzM,QAAQnZ,EAAEunB,YAAW,GAAK,GAAE,IAAIlO,EAAE,EAAEjT,EAAE0c,EAAEzJ,EAAEwN,eAAe,sBAAsBrK,EAAE0N,mBAAmB,WAAW1N,EAAE2N,WAAW3N,EAAE4N,aAAQ,IAASpqB,IAAIqqB,aAAajkB,GAAGpG,EAAE8iB,EAAEzJ,EAAE2N,gBAAgB,kBAAkB,EAAExK,EAAE8N,QAAQ,WAAW,IAAI9N,EAAEoJ,SAASyE,aAAajkB,GAAGikB,aAAarqB,GAAG6M,EAAE,CAACsM,QAAQqD,EAAE+N,cAAc,yBAAyB3E,OAAOpJ,EAAEoJ,OAAO2B,YAAW,IAAK,EAAE/K,EAAEgO,OAAO,WAAWH,aAAajkB,GAAGikB,aAAarqB,GAAG6M,EAAE,CAACsM,QAAQqD,EAAE+N,aAAa3E,OAAOpJ,EAAEoJ,OAAO2B,YAAW,GAAI,EAAE/K,EAAEsL,KAAKzO,EAAEjI,KAAM,GAAE,GAAGoW,OAAY,CAACiD,MAAM,SAASpR,EAAExM,GAAG,OAAgC4M,QAAQC,SAAS,EAAE+N,KAAK,SAASpO,EAAExM,GAAG,OAA+B4M,QAAQC,SAAS,EAAE/Y,MAAM,SAAS0Y,EAAExM,GAAG,OAAOlL,QAAQhB,MAAM0Y,EAAExM,GAAG4M,QAAQC,SAAS,GAAIkP,eAAezL,IAAIwL,cAAcxL,EAAE,CAACyH,cAAa,IAAK+C,WAAWlnB,EAAE,CAACikB,OAAO,CAACvB,EAAE,CAAC7gB,IAAI,GAAGiC,OAAO,SAAS,KAAKA,OAAO8U,KAAK8D,OAAOoJ,UAAU2B,EAAE,UAAUC,IAAI,CAACtH,QAAQ,UAAU5d,QAAQ,SAASwlB,SAASlnB,GAAyB,OAAOgnB,EAAE/L,EAAEA,EAAEA,EAAE,CAAC,EAAEpW,GAAGpG,GAAG,CAAC,EAAE,CAACmpB,QAAQ,CAAC5Q,OAAO+Q,EAAErP,qBAAqBlS,EAAE2iB,gBAAgBpB,EAAEqB,6BAA6B5iB,EAAE6iB,cAAcxB,EAAErP,UAAU,SAASV,GAAG,OAAO,SAASxM,GAAG,OAAOwc,EAAEhQ,EAAFgQ,CAAKxc,EAAE,CAACsc,QAAQ,CAAC5Q,OAAOoR,EAAE1P,qBAAqBwP,EAAElQ,YAAYmQ,IAAI,CAAC,KAAK,CAAC,OAAOE,EAAE3mB,QAAQ,SAAS2mB,CAAE,CAAj2b/c,uBCcnF,SAAWge,GAGT,IAAIC,EAAgB,KAChBC,EAAQ,MACRC,EAAY,MACZC,EAAM,MACNC,EAAS,MACTC,EAAW,SACXC,EAAgB,SA+IpB,SAASpb,EAAKmN,GACZ,OAAIA,EAAEnN,KACGmN,EAAEnN,OAGJmN,EAAEjI,QAAQ,aAAc,GACjC,CAEA,SAASmW,EAAUlf,EAAKmf,EAAMvoB,GAC5B,GAAIuoB,EAAKjD,OAAOtlB,IAAUoJ,EAAIkc,OAAO,GACnC,OAAO,EAGT,IAAK,IAAI5nB,EAAI,EAAG+e,EAAIrT,EAAIvL,OAAQH,EAAI+e,EAAG/e,IACrC,GAAI6qB,EAAKjD,OAAOtlB,EAAQtC,IAAM0L,EAAIkc,OAAO5nB,GACvC,OAAO,EAIX,OAAO,CACT,CAjKAoqB,EAAMU,KAAO,CACX,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,EAAK,EAC7B,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,GAAM,EACtC,IAAK,GAAI,IAAK,GAAI,GAAM,IAG1BV,EAAMW,KAAO,SAAcF,EAAMG,GAC/B,IAgIyBC,EAhIrBnrB,EAAM+qB,EAAK1qB,OAIXwP,EAHU,EAIVub,EAAU,KACVxf,EAAM,KACNyf,EAAM,GACNC,EAAS,GACTC,GAAU,EACVrrB,EAAI,EACJsrB,EAAY,EACZC,EAAO,KACPC,EAAO,KAEX,SAASC,IACHN,EAAIhrB,OAAS,IACfirB,EAAOpqB,KAAK,CAAC0K,IAAK,KAAMmf,KAAM,IAAIpN,OAAO0N,KACzCA,EAAM,GAEV,CAgBA,SAASO,EAAWC,EAAaC,GAG/B,GAFAH,IAEIE,GAjBN,WAEE,IADA,IAAIE,GAAkB,EACblG,EAAI2F,EAAW3F,EAAIyF,EAAOjrB,OAAQwlB,IAIzC,KAHAkG,EACGzB,EAAMU,KAAKM,EAAOzF,GAAGja,KAAO0e,EAAMU,KAAS,IAC1B,MAAjBM,EAAOzF,GAAGja,KAAuD,OAAxC0f,EAAOzF,GAAGkF,KAAKiB,MAAMzB,IAE/C,OAAO,EAIX,OAAOwB,CACT,CAKqBE,GACjB,IAAK,IAAmBpJ,EAAfgD,EAAI2F,EAAiB3F,EAAIyF,EAAOjrB,OAAQwlB,IAC3CyF,EAAOzF,GAAGkF,QACPlI,EAAOyI,EAAOzF,EAAE,KAAmB,KAAZhD,EAAKjX,MAE/BiX,EAAKqJ,OAASZ,EAAOzF,GAAGkF,KAAKrb,YAE/B4b,EAAOzpB,OAAOgkB,EAAG,SAGXiG,GACVR,EAAOpqB,KAAK,CAAC0K,IAAI,OAGnB2f,GAAU,EACVC,EAAYF,EAAOjrB,MACrB,CAEA,SAAS8rB,EAAiBpB,EAAMvoB,GAC9B,IAAI4pB,EAAQ,IAAMV,EACdW,EAAatB,EAAK1lB,QAAQ+mB,EAAO5pB,GACjC0oB,EAAazb,EACXsb,EAAKuB,UAAUvB,EAAK1lB,QAAQ,IAAK7C,GAAS,EAAG6pB,IAC7C9c,MAAM,KAKZ,OAHAkc,EAAOP,EAAW,GAClBQ,EAAOR,EAAWA,EAAW7qB,OAAS,GAE/BgsB,EAAaD,EAAM/rB,OAAS,CACrC,CAQA,IANI6qB,IACFA,EAAaA,EAAW3b,MAAM,KAC9Bkc,EAAOP,EAAW,GAClBQ,EAAOR,EAAW,IAGfhrB,EAAI,EAAGA,EAAIF,EAAKE,IA3EP,GA4ER2P,EACEib,EAAUW,EAAMV,EAAM7qB,MACtBA,EACFyrB,IACA9b,EA/EY,GAiFU,MAAlBkb,EAAKjD,OAAO5nB,GACd0rB,EAAWL,GAEXF,GAAON,EAAKjD,OAAO5nB,GApFT,GAuFL2P,GACT3P,GAAKurB,EAAKprB,OAAS,EAGJ,MADf+qB,GADAxf,EAAM0e,EAAMU,KAAKD,EAAKjD,OAAO5nB,EAAI,KACjB6qB,EAAKjD,OAAO5nB,EAAI,GAAK,OAEnCA,EAAIisB,EAAiBpB,EAAM7qB,GAC3B2P,EA9FQ,IAgGJjE,GACF1L,IAEF2P,EAjGO,GAmGT0b,EAAUrrB,GAEN4qB,EAAUY,EAAMX,EAAM7qB,IACxBorB,EAAOpqB,KAAK,CAAC0K,IAAKwf,EAAS3rB,EAAGgQ,EAAK4b,GAAMI,KAAMA,EAAMC,KAAMA,EAC9CxrB,EAAe,KAAXkrB,EAAkBG,EAAUE,EAAKprB,OAASH,EAAIwrB,EAAKrrB,SACpEgrB,EAAM,GACNnrB,GAAKwrB,EAAKrrB,OAAS,EACnBwP,EA5GQ,EA6GO,KAAXub,IACU,MAARM,EACFxrB,IAiBiC,OADlBirB,EAdGG,EAAOA,EAAOjrB,OAAS,IAezCZ,EAAEsoB,OAAOoD,EAAM1rB,EAAEY,OAAS,KAClC8qB,EAAM1rB,EAAI0rB,EAAM1rB,EAAE6sB,UAAU,EAAGnB,EAAM1rB,EAAEY,OAAS,MAZ5CgrB,GAAON,EAAKjD,OAAO5nB,GAOzB,OAFA0rB,EAAWL,GAAS,GAEbD,CACT,EA+BA,IAAIiB,EAAiB,CAAC,IAAM,EAAM,MAAM,EAAM,GAAK,EAAM,KAAK,GAE9D,SAASC,EAAUlB,EAAQmB,EAAMC,EAAOC,GACtC,IAEIC,EAFAC,EAAe,GACfC,EAAS,KAET3B,EAAQ,KAIZ,IAFAyB,EAAOF,EAAMA,EAAMrsB,OAAS,GAErBirB,EAAOjrB,OAAS,GAAG,CAGxB,GAFA8qB,EAAQG,EAAOlH,QAEXwI,GAAoB,KAAZA,EAAKhhB,OAAgBuf,EAAMvf,OAAO2gB,GAC5C,MAAM,IAAIhsB,MAAM,mCAGlB,GAAI+pB,EAAMU,KAAKG,EAAMvf,MAAQ0e,EAAMU,KAAQ,GAAK+B,EAAS5B,EAAOwB,GAC9DD,EAAMxrB,KAAKiqB,GACXA,EAAM6B,MAAQR,EAAUlB,EAAQH,EAAMvf,IAAK8gB,EAAOC,OAC7C,IAAiB,KAAbxB,EAAMvf,IAAY,CAC3B,GAAqB,IAAjB8gB,EAAMrsB,OACR,MAAM,IAAIE,MAAM,gCAAkC4qB,EAAM1rB,GAG1D,GADAqtB,EAASJ,EAAMzG,MACXkF,EAAM1rB,GAAKqtB,EAAOrtB,IAAMwtB,EAAS9B,EAAM1rB,EAAGqtB,EAAOrtB,EAAGktB,GACtD,MAAM,IAAIpsB,MAAM,kBAAoBusB,EAAOrtB,EAAI,QAAU0rB,EAAM1rB,GAGjE,OADAqtB,EAAOI,IAAM/B,EAAMjrB,EACZ2sB,CACT,CAAwB,MAAb1B,EAAMvf,MACfuf,EAAMgC,KAAyB,GAAjB7B,EAAOjrB,QAAkC,MAAjBirB,EAAO,GAAG1f,IAClD,CAEAihB,EAAa3rB,KAAKiqB,EACpB,CAEA,GAAIuB,EAAMrsB,OAAS,EACjB,MAAM,IAAIE,MAAM,wBAA0BmsB,EAAMzG,MAAMxmB,GAGxD,OAAOotB,CACT,CAEA,SAASE,EAAS5B,EAAOH,GACvB,IAAK,IAAI9qB,EAAI,EAAG+e,EAAI+L,EAAK3qB,OAAQH,EAAI+e,EAAG/e,IACtC,GAAI8qB,EAAK9qB,GAAGqiB,GAAK4I,EAAM1rB,EAErB,OADA0rB,EAAMvf,IAAM,KACL,CAGb,CAEA,SAASqhB,EAASb,EAAO7C,EAAMyB,GAC7B,IAAK,IAAI9qB,EAAI,EAAG+e,EAAI+L,EAAK3qB,OAAQH,EAAI+e,EAAG/e,IACtC,GAAI8qB,EAAK9qB,GAAGokB,GAAK8H,GAASpB,EAAK9qB,GAAGqiB,GAAKgH,EACrC,OAAO,CAGb,CAUA,SAAS6D,EAAkBC,GACzB,IAAIC,EAAW,GACf,IAAK,IAAIvrB,KAAOsrB,EAAQC,SACtBA,EAASpsB,KAAK,IAAMqsB,EAAIxrB,GAAO,YAAcwrB,EAAIF,EAAQC,SAASvrB,GAAKyG,MAAQ,MAAQ4kB,EAAkBC,EAAQC,SAASvrB,IAAQ,KAEpI,MAAO,cAAgBurB,EAAS/M,KAAK,KAAO,YAb9C,SAAgCrB,GAC9B,IAAIsO,EAAQ,GACZ,IAAK,IAAIzrB,KAAOmd,EACdsO,EAAMtsB,KAAK,IAAMqsB,EAAIxrB,GAAO,yBAA2Bmd,EAAInd,GAAO,KAEpE,MAAO,KAAOyrB,EAAMjN,KAAK,KAAO,IAClC,CAO4DkN,CAAuBJ,EAAQK,KAC3F,CAEApD,EAAM1a,UAAY,SAASyd,EAAStC,EAAMrY,GACxC,MAAO,6BAA+B4X,EAAMqD,SAASN,EAAQO,MAAQ,MAAQR,EAAkBC,GAAY,GAC7G,EAEA,IAAIQ,EAAW,EAoCf,SAASN,EAAI3Q,GACX,OAAOA,EAAEjI,QAAQgW,EAAQ,QAChBhW,QAAQ6V,EAAO,OACf7V,QAAQ8V,EAAU,OAClB9V,QAAQ+V,EAAK,OACb/V,QAAQiW,EAAU,WAClBjW,QAAQkW,EAAe,UAClC,CAEA,SAASiD,EAAalR,GACpB,OAASA,EAAEvX,QAAQ,KAAQ,IAAM,GACnC,CAEA,SAAS0oB,EAAc3Y,EAAM3U,GAC3B,IACIutB,EADS,KAAOvtB,EAAQwtB,QAAU,IACnB7Y,EAAK3V,EAAIouB,IAG5B,OAFAptB,EAAQ6sB,SAASU,GAAO,CAACxlB,KAAM4M,EAAK3V,EAAG6tB,SAAU,CAAC,GAClD7sB,EAAQmtB,MAAQ,aAAgBL,EAAIS,GAAO,WAAa5Y,EAAK8W,QAAU,IAAM,OACtE8B,CACT,CAoDA,SAASE,EAAa9Y,EAAM3U,GAC1BA,EAAQmtB,MAAQ,aAAeE,EAAa1Y,EAAK3V,GAAK,KAAO8tB,EAAInY,EAAK3V,GAAK,aAC7E,CAEA,SAASkpB,EAAM/L,GACb,MAAO,OAASA,EAAI,IACtB,CAhHA0N,EAAM6D,SAAW,SAASC,EAAMrD,EAAMrY,GACpCmb,EAAW,EACX,IAAIptB,EAAU,CAAEmtB,KAAM,GAAIF,KAAM,CAAC,EAAGJ,SAAU,CAAC,GAG/C,OAFAhD,EAAM+D,KAAKD,EAAM3tB,GAEbiS,EAAQ4b,SACH1vB,KAAKgR,UAAUnP,EAASsqB,EAAMrY,GAGhC9T,KAAK2vB,aAAa9tB,EAASsqB,EAAMrY,EAC1C,EAEA4X,EAAMqD,SAAW,SAASC,GACxB,MAAO,2BAA6BA,EAAO,gBAC7C,EAEAtD,EAAMkE,SAAWlE,EAAMmE,SAEvBnE,EAAMiE,aAAe,SAASlB,EAAStC,EAAMrY,GAC3C,IAAI8b,EAAW5vB,KAAK8vB,aAAarB,GAEjC,OADAmB,EAASZ,KAAO,IAAIe,SAAS,IAAK,IAAK,IAAK/vB,KAAK+uB,SAASN,EAAQO,OAC3D,IAAIhvB,KAAK4vB,SAASA,EAAUzD,EAAMnsB,KAAM8T,EACjD,EAEA4X,EAAMoE,aAAe,SAASrB,GAC5B,IAAItrB,EAAKysB,EAAW,CAACd,KAAM,CAAC,EAAGJ,SAAUD,EAAQC,SAAU9kB,KAAM6kB,EAAQ7kB,MACzE,IAAKzG,KAAOysB,EAASlB,SACnBkB,EAASlB,SAASvrB,GAAOnD,KAAK8vB,aAAaF,EAASlB,SAASvrB,IAE/D,IAAKA,KAAOsrB,EAAQK,KAClBc,EAASd,KAAK3rB,GAAO,IAAI4sB,SAAS,IAAK,IAAK,IAAK,IAAKtB,EAAQK,KAAK3rB,IAErE,OAAOysB,CACT,EAuBAlE,EAAMsE,QAAU,CACd,IAAK,SAASxZ,EAAM3U,GAClBA,EAAQmtB,MAAQ,YAAcE,EAAa1Y,EAAK3V,GAAK,KAAO8tB,EAAInY,EAAK3V,GAArD,kBACW2V,EAAKlV,EAAI,IAAMkV,EAAK8X,IAAM,KAAO9X,EAAKqW,KAAO,IAAMrW,EAAKsW,KADnE,gCAGhBpB,EAAM+D,KAAKjZ,EAAK4X,MAAOvsB,GACvBA,EAAQmtB,MAAQ,cAClB,EAEA,IAAK,SAASxY,EAAM3U,GAClBA,EAAQmtB,MAAQ,aAAeE,EAAa1Y,EAAK3V,GAAK,KAAO8tB,EAAInY,EAAK3V,GAAK,2BAC3E6qB,EAAM+D,KAAKjZ,EAAK4X,MAAOvsB,GACvBA,EAAQmtB,MAAQ,IAClB,EAEA,IAAKG,EACL,IAAK,SAAS3Y,EAAM3U,GAClB,IAAIouB,EAAM,CAACvB,SAAU,CAAC,EAAGM,KAAM,GAAIF,KAAM,CAAC,EAAGoB,WAAW,GACxDxE,EAAM+D,KAAKjZ,EAAK4X,MAAO6B,GACvB,IAAIL,EAAW/tB,EAAQ6sB,SAASS,EAAc3Y,EAAM3U,IACpD+tB,EAASd,KAAOmB,EAAInB,KACpBc,EAASlB,SAAWuB,EAAIvB,QAC1B,EAEA,EAAK,SAASlY,EAAM3U,GAClB,IAAIouB,EAAM,CAACnB,KAAM,CAAC,EAAGE,KAAM,GAAIN,SAAU7sB,EAAQ6sB,SAAUW,OAAQ7Y,EAAK3V,GACxE6qB,EAAM+D,KAAKjZ,EAAK4X,MAAO6B,GACvBpuB,EAAQitB,KAAKtY,EAAK3V,GAAKovB,EAAIjB,KACtBntB,EAAQquB,YACXruB,EAAQmtB,MAAQ,UAAYL,EAAInY,EAAK3V,GAAK,YAE9C,EAEA,KAAM,SAAS2V,EAAM3U,GACnBA,EAAQmtB,MAAQjF,EAAM,SAAWvT,EAAK+X,KAAO,GAAK,QACpD,EAEA,GAAM,SAAS/X,EAAM3U,GACnBA,EAAQmtB,MAAQ,aAAeE,EAAa1Y,EAAK3V,GAAK,KAAO8tB,EAAInY,EAAK3V,GAAK,aAC7E,EAEA,GAAM,SAAS2V,EAAM3U,GACnBA,EAAQmtB,MAAQjF,EAAM,IAAM4E,EAAInY,EAAK2V,MAAQ,IAC/C,EAEA,IAAKmD,EAEL,IAAKA,GAWP5D,EAAM+D,KAAO,SAASU,EAAUtuB,GAE9B,IADA,IAAIuuB,EACK9uB,EAAI,EAAG+e,EAAI8P,EAAS1uB,OAAQH,EAAI+e,EAAG/e,KAC1C8uB,EAAO1E,EAAMsE,QAAQG,EAAS7uB,GAAG0L,OACzBojB,EAAKD,EAAS7uB,GAAIO,GAE5B,OAAOA,CACT,EAEA6pB,EAAMnH,MAAQ,SAASmI,EAAQP,EAAMrY,GAEnC,OAAO8Z,EAAUlB,EAAQ,EAAI,IAD7B5Y,EAAUA,GAAW,CAAC,GACmBuc,aAAe,GAC1D,EAEA3E,EAAM4E,MAAQ,CAAC,EAEf5E,EAAM6E,SAAW,SAASpE,EAAMrY,GAC9B,MAAO,CAACqY,IAAQrY,EAAQ4b,WAAY5b,EAAQ0c,cAAe1c,EAAQwY,aAAcxY,EAAQ2c,UAAU9O,KAAK,KAC1G,EAEA+J,EAAMgF,QAAU,SAASvE,EAAMrY,GAC7BA,EAAUA,GAAW,CAAC,EACtB,IAAI3Q,EAAMuoB,EAAM6E,SAASpE,EAAMrY,GAC3B8b,EAAW5vB,KAAKswB,MAAMntB,GAE1B,GAAIysB,EAAU,CACZ,IAAIlB,EAAWkB,EAASlB,SACxB,IAAK,IAAI9kB,KAAQ8kB,SACRA,EAAS9kB,GAAML,SAExB,OAAOqmB,CACT,CAGA,OADAA,EAAW5vB,KAAKuvB,SAASvvB,KAAKukB,MAAMvkB,KAAKqsB,KAAKF,EAAMrY,EAAQwY,YAAaH,EAAMrY,GAAUqY,EAAMrY,GACxF9T,KAAKswB,MAAMntB,GAAOysB,CAC3B,CACD,CAvZD,CAuZoCnvB,wBCrZpC,IAAIirB,EAAQ,EAAQ,KACpBA,EAAMmE,SAAW,gBACjBnE,EAAMkE,SAAWlE,EAAMmE,SACvBrvB,EAAOC,QAAUirB,sBCHjB,SAAWA,GAsPT,SAASiF,EAAYxtB,EAAKytB,EAAOC,GAC/B,IAAIvlB,EAaJ,OAXIslB,GAAyB,iBAATA,SAECzwB,IAAfywB,EAAMztB,GACRmI,EAAMslB,EAAMztB,GAGH0tB,GAAcD,EAAM5L,KAA2B,mBAAb4L,EAAM5L,MACjD1Z,EAAMslB,EAAM5L,IAAI7hB,KAIbmI,CACT,CApQAogB,EAAMmE,SAAW,SAAUpB,EAAStC,EAAM2E,EAAUhd,GAClD2a,EAAUA,GAAW,CAAC,EACtBzuB,KAAKqd,EAAIoR,EAAQO,MAAQhvB,KAAKqd,EAC9Brd,KAAK0lB,EAAIoL,EACT9wB,KAAK8T,QAAUA,GAAW,CAAC,EAC3B9T,KAAKmsB,KAAOA,GAAQ,GACpBnsB,KAAK0uB,SAAWD,EAAQC,UAAY,CAAC,EACrC1uB,KAAK8uB,KAAOL,EAAQK,MAAQ,CAAC,EAC7B9uB,KAAKysB,IAAM,EACb,EAEAf,EAAMmE,SAASnvB,UAAY,CAEzB2c,EAAG,SAAUxb,EAAS6sB,EAAUpB,GAAU,MAAO,EAAI,EAGrD9nB,EAkSF,SAAqBurB,GAEnB,OADAA,EAAMC,EAAeD,GACdE,EAAO1N,KAAKwN,GACjBA,EACGhb,QAAQmb,EAAM,SACdnb,QAAQob,EAAK,QACbpb,QAAQqb,EAAK,QACbrb,QAAQsb,EAAO,SACftb,QAAQ6V,EAAO,UAClBmF,CACJ,EAzSErjB,EAAGsjB,EAEHM,OAAQ,SAAgBzvB,EAAS6sB,EAAUpB,GACzC,OAAOttB,KAAKuxB,GAAG,CAAC1vB,GAAU6sB,GAAY,CAAC,EAAGpB,EAC5C,EAGAiE,GAAI,SAAU1vB,EAAS6sB,EAAUpB,GAC/B,OAAOttB,KAAKqd,EAAExb,EAAS6sB,EAAUpB,EACnC,EAGAkE,GAAI,SAASC,EAAQ/C,GACnB,IAAIgD,EAAU1xB,KAAK0uB,SAAS+C,GAGxB7B,EAAWlB,EAASgD,EAAQ9nB,MAChC,GAAI8nB,EAAQnoB,UAAYmoB,EAAQC,MAAQ/B,EACtC,OAAO8B,EAAQnoB,SAGjB,GAAuB,iBAAZqmB,EAAsB,CAC/B,IAAK5vB,KAAK0lB,EACR,MAAM,IAAI/jB,MAAM,0BAElBiuB,EAAW5vB,KAAK0lB,EAAEgL,QAAQd,EAAU5vB,KAAK8T,QAC3C,CAEA,IAAK8b,EACH,OAAO,KAMT,GAFA5vB,KAAK0uB,SAAS+C,GAAQE,KAAO/B,EAEzB8B,EAAQ5C,KAAM,CAGhB,IAAK3rB,OADAurB,EAASkD,YAAWlD,EAASkD,UAAY,CAAC,GACnCF,EAAQ5C,KACbJ,EAASkD,UAAUzuB,OACtBurB,EAASkD,UAAUzuB,UAA2BhD,IAAnBH,KAAK6xB,WAA2BnD,EAASkD,UAAU5xB,KAAK6xB,WAAcnD,EAASkD,UAAU5xB,KAAK6xB,WAAa7xB,KAAKmsB,MAG/IyD,EAwMN,SAAkCrmB,EAAUulB,EAAMJ,EAAUoD,EAAWC,EAAeH,GACpF,SAASI,IAAmB,CAE5B,SAASC,IAAiB,CAE1B,IAAI9uB,EAHJ6uB,EAAgBtxB,UAAY6I,EAE5B0oB,EAAcvxB,UAAY6I,EAASulB,KAEnC,IAAI4C,EAAU,IAAIM,EAQlB,IAAK7uB,KAPLuuB,EAAQ5C,KAAO,IAAImD,EACnBP,EAAQQ,SAAW,CAAC,EACpBR,EAAQjF,IAAM,GAEdqF,EAAYA,GAAa,CAAC,EAC1BJ,EAAQI,UAAYA,EACpBJ,EAAQQ,SAAWN,EACP9C,EACLgD,EAAU3uB,KAAM2uB,EAAU3uB,GAAO2rB,EAAK3rB,IAE7C,IAAKA,KAAO2uB,EACVJ,EAAQ5C,KAAK3rB,GAAO2uB,EAAU3uB,GAKhC,IAAKA,KAFL4uB,EAAgBA,GAAiB,CAAC,EAClCL,EAAQK,cAAgBA,EACZrD,EACLqD,EAAc5uB,KAAM4uB,EAAc5uB,GAAOurB,EAASvrB,IAEzD,IAAKA,KAAO4uB,EACVL,EAAQhD,SAASvrB,GAAO4uB,EAAc5uB,GAGxC,OAAOuuB,CACT,CAvOiBS,CAAyBvC,EAAU8B,EAAQ5C,KAAM4C,EAAQhD,SAClE1uB,KAAK8xB,UAAW9xB,KAAK+xB,cAAerD,EAASkD,UACjD,CAGA,OAFA5xB,KAAK0uB,SAAS+C,GAAQloB,SAAWqmB,EAE1BA,CACT,EAGAwC,GAAI,SAASX,EAAQ5vB,EAAS6sB,EAAUpB,GACtC,IAAIoE,EAAU1xB,KAAKwxB,GAAGC,EAAQ/C,GAC9B,OAAKgD,EAIEA,EAAQH,GAAG1vB,EAAS6sB,EAAUpB,GAH5B,EAIX,EAGA+E,GAAI,SAASxwB,EAAS6sB,EAAU4D,GAC9B,IAAItE,EAAOnsB,EAAQA,EAAQJ,OAAS,GAEpC,GAAK0F,EAAQ6mB,GAKb,IAAK,IAAI1sB,EAAI,EAAGA,EAAI0sB,EAAKvsB,OAAQH,IAC/BO,EAAQS,KAAK0rB,EAAK1sB,IAClBgxB,EAAQzwB,EAAS6sB,EAAU1uB,MAC3B6B,EAAQwlB,WAPRiL,EAAQzwB,EAAS6sB,EAAU1uB,KAS/B,EAGAge,EAAG,SAAS1S,EAAK2kB,EAAKvB,EAAU6D,EAAUC,EAAOlE,EAAKlC,GACpD,IAAIqG,EAEJ,QAAItrB,EAAQmE,IAAuB,IAAfA,EAAI7J,UAIN,mBAAP6J,IACTA,EAAMtL,KAAK0yB,GAAGpnB,EAAK2kB,EAAKvB,EAAU6D,EAAUC,EAAOlE,EAAKlC,IAG1DqG,IAASnnB,GAEJinB,GAAYE,GAAQxC,GACvBA,EAAI3tB,KAAoB,iBAAPgJ,EAAmBA,EAAM2kB,EAAIA,EAAIxuB,OAAS,IAGtDgxB,EACT,EAGArM,EAAG,SAASjjB,EAAK8sB,EAAKvB,EAAUiE,GAC9B,IAAIC,EACAnc,EAAQtT,EAAIwN,MAAM,KAClBrF,EAAMtL,KAAKyF,EAAEgR,EAAM,GAAIwZ,EAAKvB,EAAUiE,GACtC9B,EAAa7wB,KAAK8T,QAAQ2c,SAC1BoC,EAAK,KAET,GAAY,MAAR1vB,GAAegE,EAAQ8oB,EAAIA,EAAIxuB,OAAS,IAC1C6J,EAAM2kB,EAAIA,EAAIxuB,OAAS,QAEvB,IAAK,IAAIH,EAAI,EAAGA,EAAImV,EAAMhV,OAAQH,SAElBnB,KADdyyB,EAAQjC,EAAYla,EAAMnV,GAAIgK,EAAKulB,KAEjCgC,EAAKvnB,EACLA,EAAMsnB,GAENtnB,EAAM,GAKZ,QAAIqnB,IAAgBrnB,KAIfqnB,GAA6B,mBAAPrnB,IACzB2kB,EAAI3tB,KAAKuwB,GACTvnB,EAAMtL,KAAK8yB,GAAGxnB,EAAK2kB,EAAKvB,GACxBuB,EAAI5I,OAGC/b,EACT,EAGA7F,EAAG,SAAStC,EAAK8sB,EAAKvB,EAAUiE,GAM9B,IALA,IAAIrnB,GAAM,EAENsnB,GAAQ,EACR/B,EAAa7wB,KAAK8T,QAAQ2c,SAErBnvB,EAAI2uB,EAAIxuB,OAAS,EAAGH,GAAK,EAAGA,IAGnC,QAAYnB,KADZmL,EAAMqlB,EAAYxtB,EADd8sB,EAAI3uB,GACkBuvB,IACH,CACrB+B,GAAQ,EACR,KACF,CAGF,OAAKA,GAIAD,GAA6B,mBAAPrnB,IACzBA,EAAMtL,KAAK8yB,GAAGxnB,EAAK2kB,EAAKvB,IAGnBpjB,IAPE,GAAwB,EAQnC,EAGAynB,GAAI,SAAS3C,EAAMyC,EAAInE,EAAUvC,EAAMC,GACrC,IAAI4G,EAAUhzB,KAAK8T,QAAQwY,WAM3B,OAJAtsB,KAAK8T,QAAQwY,WAAaF,EAC1BpsB,KAAKkH,EAAElH,KAAKizB,GAAGjC,EAAeZ,EAAKtuB,KAAK+wB,EAAI1G,IAAQ0G,EAAInE,IACxD1uB,KAAK8T,QAAQwY,WAAa0G,GAEnB,CACT,EAGAC,GAAI,SAAS9G,EAAM0G,EAAInE,GACrB,GAAI1uB,KAAK8T,QAAQ0c,cACf,MAAM,IAAI7uB,MAAM,6BAElB,OAAO3B,KAAK0lB,EAAEgL,QAAQvE,EAAMnsB,KAAK8T,SAASwd,OAAOuB,EAAInE,EACvD,EAGAxnB,EAAG,SAAS8W,GAAKhe,KAAKysB,KAAOzO,CAAG,EAEhCkV,GAAI,WAAa,IAAI7V,EAAIrd,KAAKysB,IAAoB,OAAfzsB,KAAKysB,IAAM,GAAWpP,CAAG,EAG5DqV,GAAI,SAAStC,EAAMH,EAAKvB,EAAU6D,EAAUC,EAAOlE,EAAKlC,GACtD,IAAI+G,EACAN,EAAK5C,EAAIA,EAAIxuB,OAAS,GACtB0S,EAASic,EAAKtuB,KAAK+wB,GAEvB,MAAqB,mBAAV1e,IACLoe,IAGFY,EAAcnzB,KAAK6xB,WAAa7xB,KAAKkyB,UAAYlyB,KAAKkyB,SAASlyB,KAAK6xB,WAAc7xB,KAAKkyB,SAASlyB,KAAK6xB,WAAa7xB,KAAKmsB,KAChHnsB,KAAK+yB,GAAG5e,EAAQ0e,EAAInE,EAAUyE,EAAWzF,UAAU8E,EAAOlE,GAAMlC,IAIpEjY,CACT,EAGA2e,GAAI,SAAS1C,EAAMH,EAAKvB,GACtB,IAAImE,EAAK5C,EAAIA,EAAIxuB,OAAS,GACtB0S,EAASic,EAAKtuB,KAAK+wB,GAEvB,MAAqB,mBAAV1e,EACFnU,KAAKizB,GAAGjC,EAAe7c,EAAOrS,KAAK+wB,IAAMA,EAAInE,GAG/Cva,CACT,EAEAif,IAAK,SAASxpB,EAAM/H,EAAS6sB,EAAUpB,GACrC,IAAI7nB,EAAIzF,KAAK8uB,KAAKllB,GACdnE,IACFzF,KAAK6xB,UAAYjoB,EACjBnE,EAAE5D,EAAS6sB,EAAU1uB,KAAMstB,GAC3BttB,KAAK6xB,WAAY,EAErB,GAuDF,IAAIX,EAAO,KACPC,EAAM,KACNC,EAAM,KACNC,EAAQ,MACRzF,EAAQ,MACRqF,EAAS,YAEb,SAASD,EAAe1lB,GACtB,OAAOyT,OAAO,MAACzT,EAAqC,GAAKA,EAC3D,CAcA,IAAInE,EAAUpF,MAAMoF,SAAW,SAASF,GACtC,MAA6C,mBAAtCnB,OAAOpF,UAAUoQ,SAAShP,KAAKmF,EACxC,CAED,CAnUD,CAmUoCxG,iCCpVpC,gGAAqL,oBAAP2H,MAAmBA,KAAjM,EAA2M,WAAW,OAAO,WAAW,aAAa,IAAIqiB,EAAE,CAAC4I,OAAO7I,EAAE8I,QAAQC,GAAG7wB,GAAG8wB,GAAGC,IAAIC,GAAGC,QAAQC,GAAGC,KAAKC,GAAGltB,KAAKqjB,EAAE8J,QAAQtuB,EAAEuuB,QAAQxuB,EAAEU,OAAO,SAASgU,EAAExM,GAAyB,OAAhBumB,GAAG/Z,EAAExM,GAAG,QAAiBxH,MAAM,EAAEguB,OAAOC,EAAEC,SAASC,EAAEC,YAAYzzB,EAAE0zB,YAAYC,EAAEC,UAAUC,EAAEC,gBAAgBC,GAAGC,gBAAgBC,GAAGC,OAAOC,EAAEC,QAAQhO,EAAEoB,OAAO,KAAK6M,OAAO,CAACC,gBAAe,EAAKC,iBAAiB,GAAGC,sBAAqB,EAAMC,iBAAiB,YAAYC,iBAAiB,EAAEC,mBAAmB,GAAGC,wBAAuB,EAAKC,eAAe,iBAAiBC,aAAa,eAAeC,WAAW,aAAaC,cAAc,gBAAgBC,cAAc,gBAAgBC,WAAU,EAAKC,iBAAgB,EAAKC,kBAAkB,GAAGC,mBAAmB,CAAC,QAAQ,QAAQ,QAAQ,UAAUC,iBAAgB,EAAMnQ,QAAQ,EAAEoQ,iBAAiB,cAAcC,aAAa,OAAOC,gBAAgB,kCAAkCC,sBAAqB,EAAMC,eAAe,SAASC,oBAAmB,EAAMC,qBAAoB,EAAMC,uBAAsB,EAAMC,wBAAwB,CAAC,OAAOC,kBAAiB,EAAMC,aAAY,EAAMC,uBAAsB,EAAKC,kBAAkB,MAAMC,cAAc7Q,EAAE+N,EAAEzmB,EAAEwpB,kBAAkB,SAAShd,GAAG,OAAO,IAAIid,YAAYjd,EAAE,CAACic,iBAAgB,GAAM,EAAEiB,gBAAgB,SAASld,GAAG,IAAIxM,EAAE,IAAI2pB,UAAUnd,EAAE,IAAuC,OAAnCxM,EAAE4pB,WAAW7M,EAAEyK,OAAOmB,aAAoB3oB,CAAC,EAAE5J,QAAQ,UAAcuZ,EAAE,CAACka,kBAAkBC,GAAGC,aAAaC,GAAGC,sBAAsBC,EAAEC,gBAAgBC,GAAGC,aAAaC,GAAGC,aAAatU,EAAEuU,kBAAkBC,GAAGC,yBAAyBC,GAAGC,gBAAgB5S,EAAE6S,kBAAkBC,GAAGC,WAAWC,GAAGC,eAAe1E,GAAG2E,gBAAgBC,GAAGC,qBAAqBC,GAAGC,gBAAgBC,GAAGC,UAAUC,GAAGC,aAAa/Y,EAAEgZ,aAAaC,GAAGC,eAAetQ,EAAEuQ,QAAQC,GAAGC,iBAAiBC,GAAGC,cAAcC,GAAGC,kBAAkBC,GAAGC,aAAaC,GAAGC,aAAatG,GAAGuG,kBAAkBC,GAAGC,eAAe/P,GAAOvB,EAAE,CAAC,MAAM,OAAO,MAAM,SAAS,SAAaznB,EAAEynB,EAAE/f,KAAI,SAASkR,GAAG,MAAM,OAAOA,EAAE,eAAeA,EAAE,GAAG,IAAGyH,KAAK,MAAU8F,EAAEvN,EAAE,QAAQwB,EAAExB,EAAE,SAASogB,EAAEpgB,EAAE,OAAM,GAAM,SAASA,EAAEA,EAAExM,GAAG,OAAO,IAAI6sB,OAAO,IAAIrgB,EAAE,gCAAgCA,EAAE,IAAMxM,EAAE,MAAM,KAAK,CAAC,SAAS0Y,EAAElM,GAAG,GAAM/Z,MAAH+Z,EAAc,OAAiB,IAAIxM,EAAE8sB,IAAkM,OAAxK9sB,EAAN,MAAbwM,EAAElY,OAAO,GAAY8G,WAAWoR,EAAElY,MAAM,GAAG,IAAyB,KAAbkY,EAAElY,OAAO,GAAqC,IAA1B8G,WAAWoR,EAAElY,MAAM,GAAG,IAA6B,KAAbkY,EAAElY,OAAO,GAAqC,IAA1B8G,WAAWoR,EAAElY,MAAM,GAAG,IAAQ,GAAU8G,WAAWoR,GAAUpZ,MAAM4M,QAAGvN,EAAUuN,CAAC,CAAC,SAAS+sB,GAAGvgB,EAAExM,GAAG,OAAOwM,EAAEwgB,cAAcxgB,EAAEwgB,aAAahtB,EAAE,CAAC,SAASiW,EAAEzJ,EAAExM,GAAG,OAAOwM,EAAE+d,eAAe/d,EAAE+d,aAAavqB,IAAIwM,EAAE+d,aAAa,QAAQvqB,GAAG,CAAC,SAASyqB,GAAGje,EAAExM,GAAG,OAAO+sB,GAAGvgB,EAAExM,IAAI+sB,GAAGvgB,EAAE,QAAQxM,EAAE,CAAC,SAASsW,EAAE9J,GAAG,OAAOA,EAAEygB,aAAa,CAAC,SAASC,KAAK,OAAOC,QAAQ,CAAC,SAASnV,EAAExL,EAAExM,GAAG,KAAMwM,IAAIxM,EAAEwM,IAAIA,EAAE8J,EAAE9J,GAAG,OAAOA,GAAI,IAAI,CAAC,SAAS4gB,EAAE5gB,EAAExM,EAAE2P,GAAG,IAAIxc,EAAEs3B,GAAGzqB,EAAE2P,GAAO/b,EAAE62B,GAAGzqB,EAAE,iBAAiB,OAAGwM,IAAIxM,GAAGpM,IAAQ,MAAJA,GAASA,EAAEqP,MAAM,KAAKlK,QAAQ4W,IAAI,GAAU,QAAoBxc,CAAE,CAAC,SAASw3B,GAAG3qB,EAAE2P,GAAG,IAAIxc,EAAE,KAAyC,GAApC6kB,EAAEhY,GAAE,SAASwM,GAAG,OAAOrZ,EAAEi6B,EAAEptB,EAAEwM,EAAEmD,EAAE,IAAU,UAAJxc,EAAa,OAAOA,CAAE,CAAC,SAASklB,EAAE7L,EAAExM,GAAG,IAAI2P,EAAEnD,EAAE6gB,SAAS7gB,EAAE8gB,iBAAiB9gB,EAAE+gB,mBAAmB/gB,EAAEghB,oBAAoBhhB,EAAEihB,uBAAuBjhB,EAAEkhB,iBAAiB,OAAO/d,GAAGA,EAAEvb,KAAKoY,EAAExM,EAAE,CAAC,SAAS8Z,EAAEtN,GAAG,IAA2CmD,EAArC,iCAAyCge,KAAKnhB,GAAG,OAAGmD,EAAUA,EAAE,GAAG8J,cAAyB,EAAG,CAAC,SAASnJ,EAAE9D,EAAExM,GAA2E,IAAxE,IAA+DpM,GAAzD,IAAIg6B,WAAkBC,gBAAgBrhB,EAAE,aAAqBshB,KAAW9tB,EAAE,GAAGA,IAAIpM,EAAEA,EAAEm6B,WAAuD,OAAtC,MAAHn6B,IAASA,EAAEs5B,KAAKc,0BAAgCp6B,CAAC,CAAC,SAASinB,EAAErO,GAAG,MAAM,QAAQqJ,KAAKrJ,EAAE,CAAC,SAASmG,EAAEnG,GAAG,IAAIxM,GAAG6a,EAAErO,GAAOmD,EAAEmK,EAAEtN,GAAOrZ,EAAEqZ,EAAmC,GAA1B,SAAJmD,IAAYxc,EAAEA,EAAEkV,QAAQ0R,EAAE,KAAOgD,EAAEyK,OAAOqB,sBAAsB7oB,EAAE,CAAC,IAAyDzG,EAAnD+W,EAAE,mBAAmBnd,EAAE,qBAAqB,GAAW86B,cAAc,YAAY3hB,QAAwQ,OAA7PyQ,EAAEyK,OAAOc,gBAAiB4F,GAAG30B,EAAE40B,iBAAiB,WAAU,SAAS3hB,GAAMuQ,EAAEyK,OAAOe,oBAAmB/b,EAAE4hB,MAAMrR,EAAEyK,OAAOe,mBAAkB/b,EAAE6hB,cAAuD,IAA1CC,UAAU5U,UAAU3gB,QAAQ,UAAe,IAAQm1B,GAAG30B,EAAE40B,iBAAiB,WAAU,SAAS3hB,GAAGia,EAAEja,EAAE,IAAUjT,CAAC,CAAC,OAAOoW,GAAG,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,WAAW,IAAI,UAAU,OAAOW,EAAE,UAAUnd,EAAE,WAAW,GAAG,IAAI,MAAM,OAAOmd,EAAE,oBAAoBnd,EAAE,sBAAsB,GAAG,IAAI,KAAK,OAAOmd,EAAE,iBAAiBnd,EAAE,mBAAmB,GAAG,IAAI,KAAK,IAAI,KAAK,OAAOmd,EAAE,qBAAqBnd,EAAE,wBAAwB,GAAG,IAAI,SAAS,IAAI,QAAQ,OAAOmd,EAAE,QAAQnd,EAAE,SAAS,GAAG,QAAQ,OAAOmd,EAAEnd,EAAE,GAAG,CAAC,SAASo7B,GAAG/hB,GAAMA,GAAGA,GAAI,CAAC,SAASqQ,EAAErQ,EAAExM,GAAG,OAAO5H,OAAOpF,UAAUoQ,SAAShP,KAAKoY,KAAK,WAAWxM,EAAE,GAAG,CAAC,SAAS9E,EAAEsR,GAAG,OAAOqQ,EAAErQ,EAAE,WAAW,CAAC,SAAS8M,EAAE9M,GAAG,OAAOqQ,EAAErQ,EAAE,SAAS,CAAC,SAAS2e,GAAG3e,GAAG,IAAIxM,EAAE,qBAAyB2P,EAAEnD,EAAExM,GAAoB,OAAb2P,IAAGA,EAAEnD,EAAExM,GAAG,CAAC,GAAS2P,CAAC,CAAC,SAAS6e,EAAEhiB,GAAG,IAAIxM,EAAE,GAAG,GAAGwM,EAAG,IAAI,IAAImD,EAAE,EAAEA,EAAEnD,EAAEzY,OAAO4b,IAAK3P,EAAEpL,KAAK4X,EAAEmD,IAAK,OAAO3P,CAAC,CAAC,SAASkuB,GAAG1hB,EAAExM,GAAG,GAAGwM,EAAG,IAAI,IAAImD,EAAE,EAAEA,EAAEnD,EAAEzY,OAAO4b,IAAK3P,EAAEwM,EAAEmD,GAAK,CAAC,SAAS8e,EAAEjiB,GAAG,IAAIxM,EAAEwM,EAAEkiB,wBAA4B/e,EAAE3P,EAAE2uB,IAAQx7B,EAAE6M,EAAE4uB,OAAO,OAAOjf,EAAEiH,OAAOiY,aAAa17B,GAAG,CAAC,CAAC,SAAS62B,GAAGxd,GAAG,OAAGA,EAAEsiB,aAAatiB,EAAEsiB,wBAAwBlY,OAAOmY,WAAmB7B,KAAKY,KAAKkB,SAASxiB,EAAEsiB,cAAczU,MAAkB6S,KAAKY,KAAKkB,SAASxiB,EAAG,CAAC,SAASyiB,EAAEziB,GAAG,OAAOA,EAAErJ,OAAOF,MAAM,MAAM,CAAC,SAAS2oB,GAAGpf,EAAExM,GAAG,IAAI,IAAI2P,KAAK3P,EAAMA,EAAEwS,eAAe7C,KAAInD,EAAEmD,GAAG3P,EAAE2P,IAAI,OAAOnD,CAAC,CAAC,SAASgQ,EAAEhQ,GAAG,IAAI,OAAOnJ,KAAKwT,MAAMrK,EAAE,CAAC,MAAMA,GAAQ,OAALhT,EAAEgT,GAAU,IAAI,CAAC,CAAC,SAAS0d,IAAI,IAAI1d,EAAE,wBAAwB,IAAyD,OAArDmK,aAAaI,QAAQvK,EAAEA,GAAGmK,aAAaiB,WAAWpL,IAAU,CAAI,CAAC,MAAMA,GAAG,OAAO,CAAK,CAAC,CAAC,SAAS0iB,EAAElvB,GAAG,IAAI,IAAIwM,EAAE,IAAI2iB,IAAInvB,GAA0E,OAApEwM,IAAGxM,EAAEwM,EAAE4iB,SAAS5iB,EAAEd,QAAW,OAAOmK,KAAK7V,KAAIA,EAAEA,EAAEqI,QAAQ,OAAO,KAAWrI,CAAC,CAAC,MAAMwM,GAAG,OAAOxM,CAAC,CAAC,CAAC,SAASA,EAAEwM,GAAG,OAAO6iB,GAAGnC,KAAKY,MAAK,WAAW,OAAOwB,KAAK9iB,EAAE,GAAE,CAAC,SAASsQ,EAAE9c,GAAwD,OAA/C+c,EAAE/nB,GAAG,aAAY,SAASwX,GAAGxM,EAAEwM,EAAE+iB,OAAOC,IAAI,GAAW,CAAC,SAASlI,IAAIvK,EAAEpC,OAAO,SAASnO,EAAExM,EAAE2P,GAAM7a,SAASA,QAAQ26B,IAAIzvB,EAAEwM,EAAEmD,EAAG,CAAC,CAAC,SAAS4J,IAAIwD,EAAEpC,OAAO,IAAI,CAAC,SAAS4B,EAAE/P,EAAExM,GAAG,OAAGA,EAAUwM,EAAEyhB,cAAcjuB,GAAeuc,EAAE2Q,KAAK1gB,EAAG,CAAC,SAASzU,EAAEyU,EAAExM,GAAG,OAAGA,EAAUwM,EAAE2hB,iBAAiBnuB,GAAejI,EAAEm1B,KAAK1gB,EAAG,CAAC,SAASia,EAAEja,EAAExM,GAAGwM,EAAE+N,EAAE/N,GAAMxM,EAAGmd,YAAW,WAAWsJ,EAAEja,GAAGA,EAAE,IAAI,GAAExM,GAAQwM,EAAEygB,cAAcyC,YAAYljB,EAAG,CAAC,SAASma,EAAEna,EAAExM,EAAE2P,GAAGnD,EAAE+N,EAAE/N,GAAMmD,EAAGwN,YAAW,WAAWwJ,EAAEna,EAAExM,GAAGwM,EAAE,IAAI,GAAEmD,GAAQnD,EAAEmjB,WAAWnjB,EAAEmjB,UAAUrU,IAAItb,EAAG,CAAC,SAAS7M,EAAEqZ,EAAExM,EAAE2P,GAAGnD,EAAE+N,EAAE/N,GAAMmD,EAAGwN,YAAW,WAAWhqB,EAAEqZ,EAAExM,GAAGwM,EAAE,IAAI,GAAEmD,GAAWnD,EAAEmjB,YAAWnjB,EAAEmjB,UAAUnJ,OAAOxmB,GAA2B,IAArBwM,EAAEmjB,UAAU57B,QAAYyY,EAAEojB,gBAAgB,SAAW,CAAC,SAAS9I,EAAEta,EAAExM,IAAGwM,EAAE+N,EAAE/N,IAAKmjB,UAAUE,OAAO7vB,EAAE,CAAC,SAASgnB,EAAExa,EAAExM,GAAUkuB,IAAP1hB,EAAE+N,EAAE/N,IAAQygB,cAAcjkB,UAAS,SAASwD,GAAGrZ,EAAEqZ,EAAExM,EAAE,IAAG2mB,EAAEna,EAAExM,EAAE,CAAC,SAASlI,EAAE0U,EAAExM,GAAU,IAAPwM,EAAE+N,EAAE/N,IAAQ8Z,QAAS,OAAO9Z,EAAE8Z,QAAQtmB,GAAQ,GAAG,GAAM,MAAHwM,GAAS6L,EAAE7L,EAAExM,GAAI,OAAOwM,QAASA,EAAEA,GAAG8J,EAAE9J,IAAI,OAAO,IAAK,CAAC,SAASrX,EAAEqX,EAAExM,GAAG,OAAOwM,EAAEwT,UAAU,EAAEhgB,EAAEjM,UAAUiM,CAAC,CAAC,SAAS8vB,EAAEtjB,EAAExM,GAAG,OAAOwM,EAAEwT,UAAUxT,EAAEzY,OAAOiM,EAAEjM,UAAUiM,CAAC,CAAC,SAASyc,EAAEjQ,GAAG,IAAIxM,EAAEwM,EAAErJ,OAAO,OAAGhO,EAAE6K,EAAE,MAAM8vB,EAAE9vB,EAAE,MAAcA,EAAEggB,UAAU,EAAEhgB,EAAEjM,OAAO,GAAeiM,CAAE,CAAC,SAAS+vB,EAAEvjB,EAAExM,GAAG,OAA2B,IAAxBA,EAAEjH,QAAQ,YAAuB,CAACjB,EAAE0U,EAAEiQ,EAAEzc,EAAEyb,OAAO,MAAmC,IAArBzb,EAAEjH,QAAQ,SAAoB,CAACwjB,EAAE/P,EAAEiQ,EAAEzc,EAAEyb,OAAO,MAAkB,SAAJzb,EAAkB,CAACwM,EAAEwjB,oBAAiD,IAArBhwB,EAAEjH,QAAQ,SAAoB,CAACk3B,EAAEzjB,EAAEiQ,EAAEzc,EAAEyb,OAAO,MAAkB,aAAJzb,EAAsB,CAACwM,EAAE0jB,wBAAyD,IAAzBlwB,EAAEjH,QAAQ,aAAwB,CAACo3B,EAAE3jB,EAAEiQ,EAAEzc,EAAEyb,OAAO,MAAkB,aAAJzb,EAAsB,CAACmtB,UAAsB,WAAJntB,EAAoB,CAAC4W,QAAoB,SAAJ5W,EAAkB,CAACmtB,SAASW,MAAkBZ,KAAKiB,iBAAiB1R,EAAEzc,GAAI,CAAC,IAAIiwB,EAAE,SAASzjB,EAAExM,GAAkC,IAA/B,IAAI2P,EAAEud,KAAKiB,iBAAiBnuB,GAAW7M,EAAE,EAAEA,EAAEwc,EAAE5b,OAAOZ,IAAI,CAAC,IAAIS,EAAE+b,EAAExc,GAAG,GAAGS,EAAEw8B,wBAAwB5jB,KAAK6jB,KAAKC,4BAA6B,OAAO18B,CAAE,CAAC,EAAMu8B,EAAE,SAAS3jB,EAAExM,GAAkC,IAA/B,IAAI2P,EAAEud,KAAKiB,iBAAiBnuB,GAAW7M,EAAEwc,EAAE5b,OAAO,EAAEZ,GAAG,EAAEA,IAAI,CAAC,IAAIS,EAAE+b,EAAExc,GAAG,GAAGS,EAAEw8B,wBAAwB5jB,KAAK6jB,KAAKE,4BAA6B,OAAO38B,CAAE,CAAC,EAAE,SAASq4B,GAAGzf,EAAExM,GAAG,OAAGA,EAAU+vB,EAAEvjB,EAAExM,GAAG,GAAe+vB,EAAE7C,KAAKY,KAAKthB,GAAG,EAAG,CAAC,SAAS+N,EAAE/N,GAAG,OAAGqQ,EAAErQ,EAAE,UAAkB+P,EAAE/P,GAAeA,CAAE,CAAC,SAASgkB,GAAGhkB,EAAExM,EAAE2P,GAAG,OAAGzU,EAAE8E,GAAU,CAACuS,OAAO2a,KAAKY,KAAKld,MAAMpE,EAAE/X,SAASuL,GAAc,CAACuS,OAAOgI,EAAE/N,GAAGoE,MAAM5Q,EAAEvL,SAASkb,EAAG,CAAC,SAASmW,GAAG9lB,EAAE2P,EAAExc,GAA4F,OAAzFs9B,IAAG,WAAW,IAAIjkB,EAAEgkB,GAAGxwB,EAAE2P,EAAExc,GAAGqZ,EAAE+F,OAAOme,iBAAiBlkB,EAAEoE,MAAMpE,EAAE/X,SAAS,IAASyG,EAAEyU,GAAYA,EAAExc,CAAC,CAAC,SAAS6yB,GAAGhmB,EAAE2P,EAAExc,GAAoF,OAAjFs9B,IAAG,WAAW,IAAIjkB,EAAEgkB,GAAGxwB,EAAE2P,EAAExc,GAAGqZ,EAAE+F,OAAOoe,oBAAoBnkB,EAAEoE,MAAMpE,EAAE/X,SAAS,IAAUyG,EAAEyU,GAAGA,EAAExc,CAAC,CAAC,IAAIy9B,GAAG1D,KAAK2D,cAAc,UAAU,SAASC,GAAGtkB,EAAExM,GAAG,IAAI2P,EAAEgb,GAAGne,EAAExM,GAAG,GAAG2P,EAAE,CAAC,GAAO,SAAJA,EAAY,MAAM,CAACya,GAAG5d,EAAExM,IAAS,IAAI7M,EAAE48B,EAAEvjB,EAAEmD,GAAG,OAAc,IAAXxc,EAAEY,QAAYyF,EAAE,iBAAiBmW,EAAE,QAAQ3P,EAAE,yBAA+B,CAAC4wB,KAAgBz9B,CAAG,CAAC,CAAC,SAASi3B,GAAG5d,EAAExM,GAAG,OAAOgY,EAAExL,GAAE,SAASA,GAAG,OAAgB,MAATie,GAAGje,EAAExM,EAAQ,GAAE,CAAC,SAASyrB,GAAGjf,GAAG,IAAIxM,EAAE2qB,GAAGne,EAAE,aAAa,OAAGxM,EAAU,SAAJA,EAAmBoqB,GAAG5d,EAAE,aAAyByf,GAAGzf,EAAExM,GAAemrB,GAAG3e,GAAQukB,QAAgB7D,KAAKY,KAAiBthB,CAAG,CAAC,SAASwkB,GAAGxkB,GAAqC,IAAlC,IAAIxM,EAAE+c,EAAEyK,OAAOgB,mBAA2B7Y,EAAE,EAAEA,EAAE3P,EAAEjM,OAAO4b,IAAK,GAAGnD,IAAIxM,EAAE2P,GAAI,OAAO,EAAM,OAAO,CAAK,CAAC,SAASshB,GAAGjxB,EAAE2P,GAAGue,GAAGluB,EAAE6F,YAAW,SAAS2G,IAAOmD,EAAE4a,aAAa/d,EAAEtQ,OAAO80B,GAAGxkB,EAAEtQ,OAAO8D,EAAE4vB,gBAAgBpjB,EAAEtQ,KAAM,IAAGgyB,GAAGve,EAAE9J,YAAW,SAAS2G,GAAMwkB,GAAGxkB,EAAEtQ,OAAO8D,EAAEkxB,aAAa1kB,EAAEtQ,KAAKsQ,EAAElV,MAAO,GAAE,CAAC,SAAS65B,GAAG3kB,EAAExM,GAAe,IAAZ,IAAI2P,EAAEyhB,GAAGpxB,GAAW7M,EAAE,EAAEA,EAAEwc,EAAE5b,OAAOZ,IAAI,CAAC,IAAIS,EAAE+b,EAAExc,GAAG,IAAI,GAAGS,EAAEy9B,aAAa7kB,GAAI,OAAO,CAAK,CAAC,MAAMA,GAAGhT,EAAEgT,EAAE,CAAC,CAAC,MAAW,cAAJA,CAAe,CAAC,SAASuf,GAAGvf,EAAE5Y,EAAE2F,GAAG,IAAIyG,EAAE,IAAI+sB,GAAGn5B,EAAE,MAAUqiB,EAAE,YAAmB,SAAJzJ,IAAqBA,EAAEzT,QAAQ,KAAK,GAAGkd,EAAEzJ,EAAEiP,OAAO,EAAEjP,EAAEzT,QAAQ,MAAMiH,EAAEwM,EAAEiP,OAAOjP,EAAEzT,QAAQ,KAAK,EAAEyT,EAAEzY,SAAakiB,EAAEzJ,GAAE,IAAImD,EAAEud,KAAKiB,iBAAiBnuB,GAAga,OAA1Z2P,GAAGue,GAAGve,GAAE,SAASnD,GAAG,IAAIxM,EAAM2P,EAAE/b,EAAE09B,WAAU,IAAMtxB,EAAEktB,KAAKc,0BAA2BuD,YAAY5hB,GAAOwhB,GAAGlb,EAAEzJ,KAAIxM,EAAE2P,GAAE,IAAIxc,EAAE,CAACq+B,YAAW,EAAKjf,OAAO/F,EAAEilB,SAASzxB,GAAOkmB,GAAG1Z,EAAE,qBAAqBrZ,KAAUqZ,EAAErZ,EAAEof,OAAUpf,EAAc,YAAGu+B,GAAGzb,EAAEzJ,EAAEA,EAAExM,EAAEzG,GAAG20B,GAAG30B,EAAEo4B,MAAK,SAASnlB,GAAG0Z,GAAG1Z,EAAE,oBAAoBrZ,EAAE,IAAE,IAAGS,EAAEg+B,WAAWlC,YAAY97B,KAAQA,EAAEg+B,WAAWlC,YAAY97B,GAAG84B,GAAGQ,KAAKY,KAAK,wBAAwB,CAACxhB,QAAQ1Y,KAAW4Y,CAAC,CAAC,SAASqlB,GAAGrlB,EAAExM,EAAE2P,GAAG,IAAIxc,EAAEw3B,GAAGne,EAAE,iBAAiB,GAAGrZ,EAAsB,IAAnB,IAAIS,EAAET,EAAE8P,MAAM,KAAa1J,EAAE,EAAEA,EAAE3F,EAAEG,OAAOwF,IAAI,CAAC,IAAI0c,EAAEriB,EAAE2F,GAAG0J,MAAM,IAAI,GAAOqN,EAAE2F,EAAE,GAAG9S,OAA2B,IAAjBmN,EAAEvX,QAAQ,OAAUuX,EAAEA,EAAE0P,UAAU,IAAG,IAAIrN,EAAEsD,EAAE,IAAI,OAAWK,EAAEtW,EAAEiuB,cAAc,IAAI3d,GAAMgG,GAAGyV,GAAGpZ,EAAE2D,EAAE3G,EAAG,CAAEue,GAAGn2B,EAAEiI,EAAE,sCAAqC,SAASwM,GAAG,IAAIxM,EAAEyqB,GAAGje,EAAE,eAAqB,MAAHxM,GAAS+rB,GAAG/rB,EAAEwM,EAAEmD,EAAG,GAAE,CAAC,SAASmiB,GAAGtlB,GAAG0hB,GAAGn2B,EAAEyU,EAAE,sCAAqC,SAASA,GAAG,IAAIxM,EAAEyqB,GAAGje,EAAE,MAAUmD,EAAEud,KAAK6E,eAAe/xB,GAAS,MAAH2P,GAASnD,EAAEolB,WAAWI,aAAariB,EAAEnD,EAAG,GAAE,CAAC,SAASylB,GAAGhc,EAAEzJ,EAAE8D,GAAG4d,GAAG1hB,EAAE2hB,iBAAiB,SAAQ,SAAS3hB,GAAG,IAAIxM,EAAE+sB,GAAGvgB,EAAE,MAAM,GAAGxM,GAAGA,EAAEjM,OAAO,EAAE,CAAC,IAAI4b,EAAE3P,EAAEqI,QAAQ,IAAI,OAAWlV,EAAEqZ,EAAE0lB,QAAQ7pB,QAAQ,IAAI,OAAWzU,EAAEqiB,EAAEgY,cAAc96B,EAAE,QAAQwc,EAAE,MAAM,GAAG/b,GAAGA,IAAIqiB,EAAE,CAAC,IAAI1c,EAAEiT,EAAE8kB,YAAYL,GAAGzkB,EAAE5Y,GAAG0c,EAAE6hB,MAAMv9B,MAAK,WAAWq8B,GAAGzkB,EAAEjT,EAAE,GAAE,CAAC,CAAC,GAAE,CAAC,SAAS64B,GAAG5lB,GAAG,OAAO,WAAWrZ,EAAEqZ,EAAEuQ,EAAEyK,OAAOU,YAAYrC,GAAGrZ,GAAG6lB,GAAG7lB,GAAG8lB,GAAG9lB,GAAG0Z,GAAG1Z,EAAE,YAAY,CAAC,CAAC,SAAS8lB,GAAG9lB,GAAG,IAAIxM,EAAE,cAAkB2P,EAAE0I,EAAE7L,EAAExM,GAAGwM,EAAEA,EAAEyhB,cAAcjuB,GAAS,MAAH2P,GAASA,EAAE4iB,OAAQ,CAAC,SAASh5B,EAAEiT,EAAExM,EAAE2P,EAAExc,GAAa,IAAV8+B,GAAGzlB,EAAEmD,EAAExc,GAASwc,EAAE6iB,WAAWz+B,OAAO,GAAE,CAAC,IAAIH,EAAE+b,EAAEoe,WAAWpH,EAAE/yB,EAAEmpB,EAAEyK,OAAOU,YAAY1b,EAAEimB,aAAa7+B,EAAEoM,GAAMpM,EAAE8+B,WAAWrC,KAAKsC,WAAW/+B,EAAE8+B,WAAWrC,KAAKuC,cAAcz/B,EAAEg/B,MAAMv9B,KAAKw9B,GAAGx+B,GAAI,CAAC,CAAC,SAASi/B,GAAGrmB,EAAExM,GAAW,IAAR,IAAI2P,EAAE,EAAQA,EAAEnD,EAAEzY,QAAQiM,GAAGA,GAAG,GAAGA,EAAEwM,EAAEsmB,WAAWnjB,KAAK,EAAE,OAAO3P,CAAC,CAAC,SAAS+yB,GAAGvmB,GAAG,IAAIxM,EAAE,EAAE,GAAGwM,EAAE3G,WAAY,IAAI,IAAI8J,EAAE,EAAEA,EAAEnD,EAAE3G,WAAW9R,OAAO4b,IAAI,CAAC,IAAIxc,EAAEqZ,EAAE3G,WAAW8J,GAAMxc,EAAEmE,QAAO0I,EAAE6yB,GAAG1/B,EAAE+I,KAAK8D,GAAGA,EAAE6yB,GAAG1/B,EAAEmE,MAAM0I,GAAG,CAAE,OAAOA,CAAC,CAAC,SAASgzB,GAAGxmB,GAAG,IAAIxM,EAAEmrB,GAAG3e,GAAG,GAAGxM,EAAEizB,WAAW,CAAC,IAAI,IAAItjB,EAAE,EAAEA,EAAE3P,EAAEizB,WAAWl/B,OAAO4b,IAAI,CAAC,MAAMxc,EAAE6M,EAAEizB,WAAWtjB,GAAGnD,EAAEmkB,oBAAoBx9B,EAAEyd,MAAMzd,EAAEsB,SAAS,QAAQuL,EAAEizB,UAAU,CAAC,CAAC,SAASC,GAAG1mB,GAAG,IAAIxM,EAAEmrB,GAAG3e,GAAMxM,EAAEsY,SAASkF,aAAaxd,EAAEsY,SAAYtY,EAAEmzB,WAAWnzB,EAAEmzB,UAAUrT,QAAW9f,EAAEozB,gBAAgBpzB,EAAEozB,eAAetT,QAAW9f,EAAEqzB,eAAenF,GAAGluB,EAAEqzB,eAAc,SAAS7mB,GAAMA,EAAExX,IAAIwX,EAAExX,GAAG27B,oBAAoBnkB,EAAEyZ,QAAQzZ,EAAE/X,SAAU,IAAGu+B,GAAGxmB,GAAG0hB,GAAG91B,OAAOC,KAAK2H,IAAG,SAASwM,UAAUxM,EAAEwM,EAAE,GAAE,CAAC,SAAS9X,EAAE8X,GAAG0Z,GAAG1Z,EAAE,6BAA6B0mB,GAAG1mB,GAAMA,EAAExD,UAAUklB,GAAG1hB,EAAExD,UAAS,SAASwD,GAAG9X,EAAE8X,EAAE,GAAG,CAAC,SAAS8mB,GAAGtzB,EAAEwM,EAAEmD,GAAG,GAAe,SAAZ3P,EAAEkyB,QAAkB,OAAOqB,GAAGvzB,EAAEwM,EAAEmD,GAAQ,IAAIxc,EAAMS,EAAEoM,EAAEwzB,gBAAgI,IAAhHj6B,EAAE+c,EAAEtW,GAAGA,EAAEwM,EAAEmD,GAAexc,EAAN,MAAHS,EAAW0iB,EAAEtW,GAAG+tB,WAAkBn6B,EAAE6/B,YAAY9jB,EAAEgiB,KAAKhiB,EAAEgiB,KAAKj5B,QAAO,SAAS8T,GAAG,OAAOA,GAAGxM,CAAC,IAAS7M,GAAGA,IAAI6M,GAAM7M,EAAEu/B,WAAWrC,KAAKqD,cAAc/jB,EAAEgiB,KAAK/8B,KAAKzB,GAAGA,EAAEA,EAAE68B,mBAAmBt7B,EAAEsL,GAAGsW,EAAEtW,GAAG0vB,YAAY1vB,EAAG,CAAC,SAAS2zB,GAAGnnB,EAAExM,EAAE2P,GAAG,OAAOpW,EAAEiT,EAAEA,EAAEuhB,WAAW/tB,EAAE2P,EAAE,CAAC,SAASikB,GAAGpnB,EAAExM,EAAE2P,GAAG,OAAOpW,EAAE+c,EAAE9J,GAAGA,EAAExM,EAAE2P,EAAE,CAAC,SAASkkB,GAAGrnB,EAAExM,EAAE2P,GAAG,OAAOpW,EAAEiT,EAAE,KAAKxM,EAAE2P,EAAE,CAAC,SAASmkB,GAAGtnB,EAAExM,EAAE2P,GAAG,OAAOpW,EAAE+c,EAAE9J,GAAGA,EAAEinB,YAAYzzB,EAAE2P,EAAE,CAAC,SAASokB,GAAGvnB,EAAExM,EAAE2P,GAAQ,OAALjb,EAAE8X,GAAU8J,EAAE9J,GAAGkjB,YAAYljB,EAAE,CAAC,SAAS+mB,GAAG/mB,EAAExM,EAAE2P,GAAG,IAAIxc,EAAEqZ,EAAEuhB,WAAsB,GAAXx0B,EAAEiT,EAAErZ,EAAE6M,EAAE2P,GAAMxc,EAAE,CAAC,KAAMA,EAAEsgC,aAAa/+B,EAAEvB,EAAEsgC,aAAajnB,EAAEkjB,YAAYv8B,EAAEsgC,aAAa/+B,EAAEvB,GAAGqZ,EAAEkjB,YAAYv8B,EAAE,CAAC,CAAC,SAAS6gC,GAAGxnB,EAAExM,EAAE2P,GAAG,IAAIxc,EAAEwc,GAAGgb,GAAGne,EAAE,aAAa,GAAGrZ,EAAE,CAAC,IAAIS,EAAEs5B,KAAKc,yBAAyBE,GAAGluB,EAAEmuB,iBAAiBh7B,IAAG,SAASqZ,GAAG5Y,EAAE29B,YAAY/kB,EAAE,IAAGxM,EAAEpM,CAAC,CAAC,OAAOoM,CAAC,CAAC,SAAS0xB,GAAGllB,EAAExM,EAAE2P,EAAExc,EAAES,GAAG,OAAO4Y,GAAG,IAAI,OAAO,OAAO,IAAI,YAAsB,YAAV8mB,GAAG3jB,EAAExc,EAAES,GAAU,IAAI,aAAuB,YAAV+/B,GAAGhkB,EAAExc,EAAES,GAAU,IAAI,cAAwB,YAAVggC,GAAGjkB,EAAExc,EAAES,GAAU,IAAI,YAAsB,YAAVigC,GAAGlkB,EAAExc,EAAES,GAAU,IAAI,WAAqB,YAAVkgC,GAAGnkB,EAAExc,EAAES,GAAU,IAAI,SAAmB,YAAVmgC,GAAGpkB,EAAExc,EAAES,GAAU,QAAoB,IAAZ,IAAI2F,EAAE63B,GAAGpxB,GAAWiW,EAAE,EAAEA,EAAE1c,EAAExF,OAAOkiB,IAAI,CAAC,IAAI3F,EAAE/W,EAAE0c,GAAG,IAAI,IAAItD,EAAErC,EAAE2jB,WAAWznB,EAAEmD,EAAExc,EAAES,GAAG,GAAG+e,EAAE,CAAC,QAAqB,IAAXA,EAAE5e,OAAsB,IAAI,IAAIuiB,EAAE,EAAEA,EAAE3D,EAAE5e,OAAOuiB,IAAI,CAAC,IAAIve,EAAE4a,EAAE2D,GAAMve,EAAE26B,WAAWrC,KAAKsC,WAAW56B,EAAE26B,WAAWrC,KAAKuC,cAAch/B,EAAEu+B,MAAMv9B,KAAKw9B,GAAGr6B,GAAI,CAAE,MAAM,CAAC,CAAC,MAAMyU,GAAGhT,EAAEgT,EAAE,CAAC,CAAQ,cAAJA,EAAiB+mB,GAAG5jB,EAAExc,EAAES,GAAQ89B,GAAG3U,EAAEyK,OAAOI,iBAAiB5nB,EAAE2P,EAAExc,EAAES,GAAI,CAAC,SAASsgC,GAAG1nB,GAAG,GAAGA,EAAEzT,QAAQ,WAAW,EAAE,CAAC,IAA0B4W,EAApBnD,EAAEnE,QAAQukB,EAAE,IAAYlN,MAAM1R,GAAG,GAAG2B,EAAG,OAAOA,EAAE,EAAG,CAAC,CAAC,SAASwc,GAAG3f,EAAExM,EAAE2P,EAAExc,EAAES,EAAE2F,GAAG3F,EAAEugC,MAAMD,GAAG/gC,GAAG,IAAI8iB,EAAEtD,EAAExf,GAAG,GAAG8iB,EAA+B,OAA5B4b,GAAGliB,EAAEsG,EAAEriB,GAAek+B,GAAZ7b,EAAE+d,GAAGrkB,EAAEsG,EAAE1c,IAAgBm4B,GAAGllB,EAAEmD,EAAE3P,EAAEiW,EAAEriB,EAAG,CAAC,SAASwgC,GAAG5nB,EAAExM,EAAE2P,GAAG,IAAIxc,EAAEqZ,EAAE6nB,kBAAkBr0B,GAAG,GAAoB,IAAjB7M,EAAE4F,QAAQ,KAAS,CAAC,IAAInF,EAAE4oB,EAAErpB,GAAG,IAAI,IAAIoG,KAAK3F,EAAG,GAAGA,EAAE4e,eAAejZ,GAAG,CAAC,IAAI0c,EAAEriB,EAAE2F,GAAO+f,EAAErD,KAAIA,EAAE,CAAC3e,MAAM2e,IAAGiQ,GAAGvW,EAAEpW,EAAE0c,EAAE,CAAE,MAAyB,IAAnB,IAAI3F,EAAEnd,EAAE8P,MAAM,KAAa0P,EAAE,EAAEA,EAAErC,EAAEvc,OAAO4e,IAAKuT,GAAGvW,EAAEW,EAAEqC,GAAGxP,OAAO,GAAK,CAAC,IAAImxB,GAAG,KAAS5Y,EAAE,QAAY6Y,GAAG,aAAiBC,GAAG,gBAAoBC,GAAG,CAAC,IAAI,IAAI,KAASC,GAAG,QAAYC,GAAG,OAAWC,GAAG,OAAO,SAASC,GAAGroB,GAAoB,IAAjB,IAAIxM,EAAE,GAAO2P,EAAE,EAAQA,EAAEnD,EAAEzY,QAAO,CAAC,GAAGwgC,GAAG5G,KAAKnhB,EAAEgP,OAAO7L,IAAI,CAAS,IAAR,IAAIxc,EAAEwc,EAAQ6kB,GAAG7G,KAAKnhB,EAAEgP,OAAO7L,EAAE,KAAKA,IAAI3P,EAAEpL,KAAK4X,EAAEiP,OAAOtoB,EAAEwc,EAAExc,EAAE,GAAG,MAAM,IAA8B,IAA3BshC,GAAG17B,QAAQyT,EAAEgP,OAAO7L,IAAS,CAAC,IAAI/b,EAAE4Y,EAAEgP,OAAO7L,GAAe,IAARxc,EAAEwc,EAAEA,IAAUA,EAAEnD,EAAEzY,QAAQyY,EAAEgP,OAAO7L,KAAK/b,GAAoB,OAAd4Y,EAAEgP,OAAO7L,IAAWA,IAAIA,IAAI3P,EAAEpL,KAAK4X,EAAEiP,OAAOtoB,EAAEwc,EAAExc,EAAE,GAAG,KAAK,CAAC,IAAIoG,EAAEiT,EAAEgP,OAAO7L,GAAG3P,EAAEpL,KAAK2E,EAAE,CAACoW,GAAG,CAAC,OAAO3P,CAAC,CAAC,SAAS80B,GAAGtoB,EAAExM,EAAE2P,GAAG,OAAO4kB,GAAG5G,KAAKnhB,EAAEgP,OAAO,KAAS,SAAJhP,GAAgB,UAAJA,GAAiB,SAAJA,GAAYA,IAAImD,GAAO,MAAJ3P,CAAO,CAAC,SAAS+0B,GAAGvoB,EAAExM,EAAE2P,GAAG,GAAU,MAAP3P,EAAE,GAAS,CAACA,EAAE8X,QAAsE,IAA9D,IAAI3kB,EAAE,EAAMS,EAAE,qBAAqB+b,EAAE,cAAkBpW,EAAE,KAAWyG,EAAEjM,OAAO,GAAE,CAAC,IAAIkiB,EAAEjW,EAAE,GAAG,GAAO,MAAJiW,GAAa,GAAO,KAAX9iB,EAAa,CAAQ,OAAJoG,IAAU3F,GAAI,QAAOoM,EAAE8X,QAAQlkB,GAAG,MAAM,IAAI,IAAI0c,EAAE+e,GAAG7iB,GAAE,WAAW,OAAO6V,SAASzuB,EAATyuB,EAAa,IAAE,WAAW,OAAO,CAAI,IAAc,OAAX/R,EAAEc,OAAOxd,EAAS0c,CAAC,CAAC,MAAM9D,GAAwD,OAArDkgB,GAAGQ,KAAKY,KAAK,oBAAoB,CAACh6B,MAAM0Y,EAAE4E,OAAOxd,IAAW,IAAI,CAAC,MAAc,MAAJqiB,GAAS9iB,IAAO2hC,GAAG7e,EAAE1c,EAAEoW,GAAI/b,GAAG,KAAK+b,EAAE,IAAIsG,EAAE,QAAQtG,EAAE,IAAIsG,EAAE,eAAeA,EAAE,KAAUriB,GAAIqiB,EAAE1c,EAAEyG,EAAE8X,OAAO,CAAC,CAAC,CAAC,SAASgB,EAAEtM,EAAExM,GAAY,IAAT,IAAI2P,EAAE,GAASnD,EAAEzY,OAAO,IAAIiM,EAAE6V,KAAKrJ,EAAE,KAAKmD,GAAGnD,EAAEsL,QAAQ,OAAOnI,CAAC,CAAC,SAASqlB,GAAGxoB,GAAG,IAAIxM,EAAmF,OAA9EwM,EAAEzY,OAAO,GAAG4gC,GAAG9e,KAAKrJ,EAAE,KAAKA,EAAEsL,QAAQ9X,EAAE8Y,EAAEtM,EAAEooB,IAAIzxB,OAAOqJ,EAAEsL,SAAa9X,EAAE8Y,EAAEtM,EAAEkP,GAAU1b,CAAC,CAAC,IAAIi1B,GAAG,0BAA0B,SAASC,GAAG1oB,EAAExM,EAAE2P,GAAG,IAAIxc,EAAE,GAAOS,EAAEihC,GAAG70B,GAAG,EAAE,CAAC8Y,EAAEllB,EAAE8gC,IAAI,IAAIn7B,EAAE3F,EAAEG,OAAWkiB,EAAE6C,EAAEllB,EAAE,WAAW,GAAO,KAAJqiB,EAAQ,GAAO,UAAJA,EAAY,CAAC,IAAI3F,EAAE,CAAC2V,QAAQ,SAASnN,EAAEllB,EAAE8gC,IAAIpkB,EAAE6kB,aAAazc,EAAEI,EAAEllB,EAAE,YAAYklB,EAAEllB,EAAE8gC,KAAQ/hB,EAAEoiB,GAAGvoB,EAAE5Y,EAAE,YAAe0c,EAAE8kB,YAAYziB,GAAExf,EAAEyB,KAAK0b,EAAE,MAAM,GAAuB,IAApB2F,EAAEld,QAAQ,QAAa5F,EAAEyB,KAAK,CAACqxB,QAAQ,MAAMoP,SAASpf,EAAEwF,OAAO,SAAS,CAAC,IAAsB9I,EAAlB2D,EAAE,CAAC2P,QAAQhQ,GAA+C,KAAxCtD,EAAEoiB,GAAGvoB,EAAE5Y,EAAE,YAAe0iB,EAAE8e,YAAYziB,GAAQ/e,EAAEG,OAAO,GAAU,MAAPH,EAAE,IAAS,CAACklB,EAAEllB,EAAE8gC,IAAI,IAAI38B,EAAEnE,EAAEkkB,QAAQ,GAAO,YAAJ/f,EAAeue,EAAEgf,SAAQ,OAAU,GAAO,SAAJv9B,EAAYue,EAAErhB,MAAK,OAAU,GAAO,YAAJ8C,EAAeue,EAAEif,SAAQ,OAAU,GAAO,UAAJx9B,GAAoB,MAAPnE,EAAE,GAAUA,EAAEkkB,QAAQxB,EAAEkf,MAAM9c,EAAEI,EAAEllB,EAAE8nB,SAAS,GAAO,SAAJ3jB,GAAmB,MAAPnE,EAAE,GAAS,CAAW,GAAVA,EAAEkkB,QAAW6c,GAAG9e,KAAKjiB,EAAE,IAAK,IAAIokB,EAAEgd,GAAGphC,QAAqB,GAAO,aAAhBokB,EAAEc,EAAEllB,EAAE8nB,KAAyB,SAAJ1D,GAAgB,SAAJA,GAAgB,aAAJA,EAAe,CAACpkB,EAAEkkB,QAAQ,IAAIO,EAAE2c,GAAGphC,GAAMykB,EAAEtkB,OAAO,IAAGikB,GAAG,IAAIK,EAAE,CAAE/B,EAAEI,KAAKsB,CAAC,KAAa,WAAJjgB,GAAqB,MAAPnE,EAAE,IAAUA,EAAEkkB,QAAQxB,EAAE/D,OAAOyiB,GAAGphC,IAAe,aAAJmE,GAAuB,MAAPnE,EAAE,IAAUA,EAAEkkB,QAAQxB,EAAEmf,SAAS/c,EAAEI,EAAEllB,EAAE8nB,KAAgB,UAAJ3jB,GAAoB,MAAPnE,EAAE,IAAUA,EAAEkkB,QAAQxB,EAAEof,MAAM5c,EAAEllB,EAAE8nB,IAAe,SAAJ3jB,GAAmB,MAAPnE,EAAE,IAAUA,EAAEkkB,QAAQxB,EAAEve,GAAGi9B,GAAGphC,IAAe,cAAJmE,GAAwB,MAAPnE,EAAE,IAAUA,EAAEkkB,QAAQxB,EAAEve,GAAG+gB,EAAEllB,EAAE8nB,IAAQgR,GAAGlgB,EAAE,oBAAoB,CAACqS,MAAMjrB,EAAEkkB,SAAU,CAAC3kB,EAAEyB,KAAK0hB,EAAE,CAAK1iB,EAAEG,SAASwF,GAAGmzB,GAAGlgB,EAAE,oBAAoB,CAACqS,MAAMjrB,EAAEkkB,UAAUgB,EAAEllB,EAAE8gC,GAAG,OAAc,MAAP9gC,EAAE,IAAUA,EAAEkkB,SAAsB,OAAVnI,IAAGA,EAAE3P,GAAG7M,GAASA,CAAC,CAAC,SAASo4B,GAAG/e,GAAG,IAAIxM,EAAEyqB,GAAGje,EAAE,cAAkBmD,EAAE,GAAG,GAAG3P,EAAE,CAAC,IAAI7M,EAAE4pB,EAAEyK,OAAO8B,kBAAkB3Z,EAAExc,GAAGA,EAAE6M,IAAIk1B,GAAG1oB,EAAExM,EAAE7M,EAAE,CAAC,OAAGwc,EAAE5b,OAAO,EAAU4b,EAAU0I,EAAE7L,EAAE,QAAe,CAAC,CAACyZ,QAAQ,WAAmB5N,EAAE7L,EAAE,8CAAqD,CAAC,CAACyZ,QAAQ,UAAkB5N,EAAE7L,EAAEyoB,IAAW,CAAC,CAAChP,QAAQ,WAAsB,CAAC,CAACA,QAAQ,SAAU,CAAC,SAAS0P,GAAGnpB,GAAG2e,GAAG3e,GAAGopB,WAAU,CAAI,CAAC,SAASC,GAAGrpB,EAAExM,EAAE2P,GAAG,IAAIxc,EAAEg4B,GAAG3e,GAAGrZ,EAAEmlB,QAAQ6E,YAAW,WAAc6M,GAAGxd,KAAkB,IAAdrZ,EAAEyiC,YAAsBrQ,GAAG5V,EAAEnD,EAAEspB,GAAG,kBAAkB,CAACC,YAAYpmB,EAAE4C,OAAO/F,MAAMxM,EAAEwM,GAAGqpB,GAAGrpB,EAAExM,EAAE2P,GAAG,GAAEA,EAAEwlB,aAAa,CAAC,SAASa,GAAGxpB,GAAG,OAAOypB,SAASC,WAAW1pB,EAAE0pB,UAAUnJ,GAAGvgB,EAAE,SAAqC,IAA5BugB,GAAGvgB,EAAE,QAAQzT,QAAQ,IAAQ,CAAC,SAASo9B,GAAGn2B,EAAE2P,EAAEnD,GAAG,GAAe,MAAZxM,EAAEkyB,SAAe8D,GAAGh2B,KAAgB,KAAXA,EAAEuS,QAAwB,UAAXvS,EAAEuS,SAA+B,SAAZvS,EAAEkyB,QAAiB,CAAgB,IAAI/+B,EAAES,EAAE,GAAvB+b,EAAEohB,SAAQ,EAA4B,MAAZ/wB,EAAEkyB,QAAe/+B,EAAE,MAAMS,EAAEm5B,GAAG/sB,EAAE,YAAY,CAAC,IAAIzG,EAAEwzB,GAAG/sB,EAAE,UAAU7M,EAAEoG,EAAEA,EAAEkgB,cAAc,MAAqB7lB,EAAEm5B,GAAG/sB,EAAE,SAAS,CAACwM,EAAE7R,SAAQ,SAAS6R,GAAG4pB,GAAGp2B,GAAE,SAASwM,EAAExM,GAAMlI,EAAE0U,EAAEuQ,EAAEyK,OAAOoB,iBAAkBl0B,EAAE8X,GAAU6pB,GAAGljC,EAAES,EAAE4Y,EAAExM,EAAE,GAAE2P,EAAEnD,GAAE,EAAK,GAAE,CAAC,CAAC,SAAS+f,GAAG/f,EAAExM,GAAG,GAAY,WAATwM,EAAEjZ,MAA0B,UAATiZ,EAAEjZ,KAAe,CAAC,GAAe,SAAZyM,EAAEkyB,QAAkB,OAAO,EAAK,GAAG7Z,EAAErY,EAAE,iCAA+C,OAAdlI,EAAEkI,EAAE,QAAgB,OAAO,EAAK,GAAe,MAAZA,EAAEkyB,SAAelyB,EAAEs2B,OAAgC,MAAzBt2B,EAAEgtB,aAAa,SAAqD,IAAtChtB,EAAEgtB,aAAa,QAAQj0B,QAAQ,MAAW,OAAO,CAAK,CAAC,OAAO,CAAK,CAAC,SAASw9B,GAAG/pB,EAAExM,GAAG,OAAOmrB,GAAG3e,GAAGukB,SAAqB,MAAZvkB,EAAE0lB,SAAwB,UAATlyB,EAAEzM,OAAiByM,EAAEw2B,SAASx2B,EAAEy2B,QAAQ,CAAC,SAASlR,GAAG/Y,EAAExM,EAAE2P,GAAG,IAAIxc,EAAEqZ,EAAE4oB,YAAY,GAAGjiC,EAAG,IAAI,OAAqB,IAAdA,EAAEiB,KAAK4L,EAAE2P,EAAS,CAAC,MAAMnD,GAAoE,OAAjEkgB,GAAGQ,KAAKY,KAAK,yBAAyB,CAACh6B,MAAM0Y,EAAE4E,OAAOje,EAAEie,UAAgB,CAAI,CAAE,OAAO,CAAK,CAAC,SAASglB,GAAG78B,EAAE0c,EAAEzJ,EAAE8D,EAAEqC,GAAG,IAAgB3S,EAAZsW,EAAE6U,GAAG5xB,GAAoByG,EAARsQ,EAAEoG,KAAQqZ,EAAEx2B,EAAE+W,EAAEoG,MAAa,CAACnd,GAAM+W,EAAEglB,SAASt1B,EAAErF,SAAQ,SAAS6R,GAAS2e,GAAG3e,GAAKkqB,UAAUlqB,EAAElV,KAAK,IAAG42B,GAAGluB,GAAE,SAAS7M,GAAG,IAAIS,EAAE,SAAS4Y,GAAG,GAAIwd,GAAGzwB,IAA8C,IAAGg9B,GAAGh9B,EAAEiT,MAAcmG,GAAG4Z,GAAG/f,EAAEjT,KAAIiT,EAAEmqB,kBAAoBpR,GAAGjV,EAAE/W,EAAEiT,IAAV,CAAqB,IAAIxM,EAAEmrB,GAAG3e,GAA0D,GAAvDxM,EAAE+1B,YAAYzlB,EAAmB,MAAdtQ,EAAE42B,aAAkB52B,EAAE42B,WAAW,IAAM52B,EAAE42B,WAAW79B,QAAQQ,GAAG,EAAE,CAAwD,GAAvDyG,EAAE42B,WAAWhiC,KAAK2E,GAAM+W,EAAEilB,SAAS/oB,EAAEqqB,kBAAqBvmB,EAAEiC,QAAQ/F,EAAE+F,SAAY8F,EAAE7L,EAAE+F,OAAOjC,EAAEiC,QAAS,OAAQ,GAAGjC,EAAErb,KAAK,CAAC,GAAGqhB,EAAEwgB,cAAe,OAAYxgB,EAAEwgB,eAAc,CAAK,CAAC,GAAGxmB,EAAEglB,QAAQ,CAAC,IAAI3lB,EAAEwb,GAAGh4B,GAAG,GAAGwc,EAAE+mB,YAAYvjC,EAAEmE,MAAO,OAAOqY,EAAE+mB,UAAUvjC,EAAEmE,KAAK,CAAuC,GAAnCgf,EAAEygB,SAASvZ,aAAalH,EAAEygB,SAAYzgB,EAAEmf,SAAU,OAAUnlB,EAAEmlB,SAAS,EAAOnf,EAAEmf,WAAUxf,EAAE1c,EAAEiT,GAAG8J,EAAEmf,SAAStY,YAAW,WAAW7G,EAAEmf,SAAS,IAAI,GAAEnlB,EAAEmlB,WAAmBnlB,EAAEklB,MAAM,EAAGlf,EAAEygB,QAAQ5Z,YAAW,WAAWlH,EAAE1c,EAAEiT,EAAE,GAAE8D,EAAEklB,QAAYtP,GAAG3sB,EAAE,gBAAgB0c,EAAE1c,EAAEiT,GAAG,CAA1mB,OAAnHrZ,EAAEw9B,oBAAoBrgB,EAAE2V,QAAQryB,EAA8rB,EAAsB,MAAjB4Y,EAAE6mB,gBAAqB7mB,EAAE6mB,cAAc,IAAG7mB,EAAE6mB,cAAcz+B,KAAK,CAACqxB,QAAQ3V,EAAE2V,QAAQxxB,SAASb,EAAEoB,GAAG7B,IAAIA,EAAEu9B,iBAAiBpgB,EAAE2V,QAAQryB,EAAE,GAAE,CAAC,IAAIojC,IAAG,EAAUC,GAAG,KAAK,SAASC,KAASD,KAAIA,GAAG,WAAWD,IAAG,CAAI,EAAEpgB,OAAO8Z,iBAAiB,SAASuG,IAAIE,aAAY,WAAcH,KAAIA,IAAG,EAAM9I,GAAGhB,KAAKiB,iBAAiB,yDAAwD,SAAS3hB,GAAG4qB,GAAG5qB,EAAE,IAAG,GAAE,KAAK,CAAC,SAAS4qB,GAAGp3B,IAAOiW,EAAEjW,EAAE,qBAAqByuB,EAAEzuB,KAAIA,EAAEkxB,aAAa,mBAAmB,QAAc/F,GAAGnrB,GAAQq3B,SAAUnR,GAAGlmB,EAAE,YAAiBA,EAAE0wB,iBAAiB,yBAAwB,SAASlkB,GAAG0Z,GAAGlmB,EAAE,WAAW,GAAE,CAAC/K,MAAK,IAAQ,CAAC,SAASqiC,GAAG9qB,EAAExM,EAAE2P,GAAc,IAAX,IAAIxc,EAAE87B,EAAEtf,GAAW/b,EAAE,EAAEA,EAAET,EAAEY,OAAOH,IAAI,CAAC,IAAI2F,EAAEpG,EAAES,GAAGqP,MAAM,SAAmB,YAAP1J,EAAE,IAAgBg+B,GAAG/qB,EAAEjT,EAAE,GAAG,GAAa,SAAPA,EAAE,IAAai+B,GAAGhrB,EAAG,CAAC,CAAC,SAAS+qB,GAAGjnB,EAAEX,EAAExc,GAAG,GAAI62B,GAAG1Z,GAAP,CAAkB,GAAmB,GAAhBX,EAAE5W,QAAQ,KAAQ,CAAC,IAAIyT,EAAEypB,SAASC,UAAUD,SAASwB,KAAK,IAAIxB,SAASwB,KAAK,IAA0B,UAAnBxB,SAAS/c,SAAoBvJ,EAAE,SAASnD,EAAEmD,EAA6B,SAAnBsmB,SAAS/c,WAAmBvJ,EAAE,QAAQnD,EAAEmD,EAAE,CAAC,IAAI3P,EAAE+c,EAAE2M,gBAAgB/Z,GAAG3P,EAAEyd,QAAQ,SAASjR,GAAGkgB,GAAGpc,EAAE,eAAe,CAACxc,MAAM0Y,EAAEkrB,OAAO13B,IAAI23B,GAAGrnB,EAAE,EAAEtQ,EAAE43B,QAAQ,SAASprB,GAAG,GAAG,CAAC,KAAK,KAAK,MAAMzT,QAAQyT,EAAE8U,OAAO,EAAE,CAAC,IAAIthB,EAAE63B,GAAG1kC,GAAGgqB,YAAW,WAAWoa,GAAGjnB,EAAEX,EAAExc,EAAE,EAAE,GAAE6M,EAAE,CAAC,EAAEA,EAAE83B,OAAO,SAAStrB,GAAGrZ,EAAE,CAAC,EAAEg4B,GAAG7a,GAAG6iB,UAAUnzB,EAAEA,EAAE0wB,iBAAiB,WAAU,SAASlkB,GAAG,IAAGmrB,GAAGrnB,GAAN,CAAiB,IAAItQ,EAAEwM,EAAEjI,KAAKqY,EAAEtM,GAAE,SAAS9D,GAAGxM,EAAEwM,EAAEurB,kBAAkB/3B,EAAE,KAAKsQ,EAAE,IAA6C,IAA1C,IAAIX,EAAE4L,EAAEjL,GAAkB1c,EAAE46B,EAAX7b,EAAE3S,GAAagJ,UAAkBzP,EAAE,EAAEA,EAAE3F,EAAEG,OAAOwF,IAAI,CAAC,IAAI0c,EAAEriB,EAAE2F,GAAGwyB,GAAGtB,GAAGxU,EAAE,gBAAgB,OAAOA,EAAEtG,EAAE,CAAC0c,GAAG1c,EAAEwiB,MAA1L,CAAgM,GAA7qB,CAA+qB,CAAC,SAASwF,GAAGnrB,GAAG,IAAIwd,GAAGxd,GAA4B,OAAxB2e,GAAG3e,GAAG2mB,UAAUrT,SAAe,CAAK,CAAC,SAAS0X,GAAGlhB,GAAG,IAAIve,EAAEigB,EAAE1B,GAAE,SAAS9J,GAAG,OAAwB,MAAjB2e,GAAG3e,GAAG2mB,SAAe,IAAMp7B,EAAGue,EAAEoa,iBAAiBnF,GAAGjV,GAAG,GAAG2P,SAAQ,SAASzZ,GAAG,IAAIxM,EAAEmrB,GAAGpzB,GAAGo7B,UAAcxjB,EAAEqb,GAAG1U,EAAEve,GAAO5E,EAAEozB,GAAGjQ,EAAE,QAAY1iB,EAAET,EAAE6kC,OAAoDrlB,EAAE2X,GAAdsB,GAA3Bz4B,EAAEqF,OAAasyB,GAAGxU,IAA4BA,GAAG3D,EAAW,QAAEhD,EAAK/b,GAAGA,EAAEG,OAAO,EAAGmyB,GAAG5P,EAAE,yBAAyB1iB,IAAUoM,EAAEib,KAAK5X,KAAKC,UAAUqP,IAAO4Z,GAAG/f,EAAE8J,IAAI9J,EAAEmqB,iBAAiB,IAAQjK,GAAGpW,EAAE,8BAA+B,CAAC,SAASuhB,GAAGrrB,GAAG,IAAIxM,EAAE+c,EAAEyK,OAAOkB,iBAAiB,GAAc,mBAAJ1oB,EAAgB,OAAOA,EAAEwM,GAAG,GAAO,gBAAJxM,EAAkB,CAAC,IAAI2P,EAAEsI,KAAKggB,IAAIzrB,EAAE,GAA2B,OAAlB,IAAIyL,KAAKigB,IAAI,EAAEvoB,GAAYsI,KAAKE,QAAQ,CAAC3e,EAAE,qFAAqF,CAAC,SAAS2+B,GAAG3rB,EAAExM,EAAE2P,GAAc,IAAX,IAAIxc,EAAE87B,EAAEtf,GAAW/b,EAAE,EAAEA,EAAET,EAAEY,OAAOH,IAAI,CAAC,IAAI2F,EAAEpG,EAAES,GAAGqP,MAAM,SAAmB,YAAP1J,EAAE,IAAgB6+B,GAAG5rB,EAAEjT,EAAE,IAAc,SAAPA,EAAE,IAAa8+B,GAAG7rB,EAAEjT,EAAE,GAAI,CAAC,CAAC,SAAS6+B,GAAGp4B,EAAEwM,GAAG,IAAImD,EAAEoN,EAAEyM,kBAAkBhd,GAAGmD,EAAE8N,QAAQ,SAASjR,GAAGkgB,GAAG1sB,EAAE,gBAAgB,CAAClM,MAAM0Y,EAAE4E,OAAOzB,IAAI2oB,GAAGt4B,EAAE,EAAEmrB,GAAGnrB,GAAGozB,eAAezjB,CAAC,CAAC,SAAS0oB,GAAG9+B,EAAE0c,GAAG,IAAI3F,EAAE0H,EAAEze,EAAEg/B,IAAI,GAAGjoB,EAAE,CAAC,IAAIqC,EAAEwY,GAAG7a,GAAG8iB,eAAmB9c,EAAE,SAAS9J,GAAG,IAAG8rB,GAAGhoB,GAAW,GAAI0Z,GAAGzwB,GAAP,CAA6C,IAAIyG,EAAEwM,EAAEjI,KAAKqY,EAAErjB,GAAE,SAASiT,GAAGxM,EAAEwM,EAAEurB,kBAAkB/3B,EAAE,KAAKzG,EAAE,IAAG,IAAIoW,EAAE0b,GAAG9xB,GAAOpG,EAAEs4B,GAAGlyB,GAAO3F,EAAE2nB,EAAEhiB,GAAG4yB,GAAGxc,EAAE6oB,UAAUrlC,EAAEoG,EAAEyG,EAAEpM,GAAGy4B,GAAGz4B,EAAEu+B,OAAOjM,GAAG3sB,EAAE,kBAAkBiT,EAA9J,MAAjCmG,EAAEge,oBAAoB1a,EAAEK,EAAyK,EAAE6U,GAAG5xB,GAAGk/B,YAAYniB,EAAE3D,EAAE+d,iBAAiBza,EAAEK,EAAE,MAAMoW,GAAGnzB,EAAE,wBAAyB,CAAC,SAASm/B,GAAGlsB,EAAExM,EAAE2P,GAAG,IAAIxc,EAAE6kB,EAAExL,EAAE+rB,IAAI,GAAGplC,EAAE,CAAC,IAAIS,EAAEu3B,GAAGh4B,GAAGigC,eAAmB75B,EAAE,WAAe++B,GAAGnlC,KAAO62B,GAAGxd,GAAIxM,EAAEwM,GAAQ5Y,EAAE+8B,oBAAoBhhB,EAAEpW,GAAI,EAAE4xB,GAAG3e,GAAGisB,YAAYl/B,EAAE3F,EAAE88B,iBAAiB/gB,EAAEpW,EAAE,MAAMmzB,GAAGlgB,EAAE,wBAAyB,CAAC,SAAS8rB,GAAG9rB,GAAG,IAAIwd,GAAGxd,GAAiC,OAA7B2e,GAAG3e,GAAG4mB,eAAetT,SAAe,CAAK,CAAC,SAASyY,GAAG/rB,GAAG,OAA6B,MAAtB2e,GAAG3e,GAAG4mB,cAAoB,CAAC,SAASuF,GAAGnsB,EAAExM,EAAE2P,EAAExc,GAAG,IAAIS,EAAE,WAAe+b,EAAEipB,SAAQjpB,EAAEipB,QAAO,EAAK54B,EAAEwM,GAAG,EAAKrZ,EAAE,EAAGgqB,WAAWvpB,EAAET,GAAQS,GAAI,CAAC,SAASilC,GAAG74B,EAAEpM,EAAE4Y,GAAG,IAAIjT,GAAE,EAAmM,OAA7L20B,GAAG7S,GAAE,SAAS1L,GAAG,GAAGsG,EAAEjW,EAAE,MAAM2P,GAAG,CAAC,IAAIxc,EAAEs3B,GAAGzqB,EAAE,MAAM2P,GAAGpW,GAAE,EAAK3F,EAAE8M,KAAKvN,EAAES,EAAEklC,KAAKnpB,EAAEnD,EAAE7R,SAAQ,SAAS6R,GAAGsd,GAAG9pB,EAAEwM,EAAE5Y,GAAE,SAAS4Y,EAAExM,GAAMlI,EAAE0U,EAAEuQ,EAAEyK,OAAOoB,iBAAkBl0B,EAAE8X,GAAU6pB,GAAG1mB,EAAExc,EAAEqZ,EAAExM,EAAE,GAAE,GAAE,CAAC,IAAUzG,CAAC,CAAC,SAASuwB,GAAG32B,EAAEqZ,EAAExM,EAAE2P,GAAG,GAAGnD,EAAE6oB,SAAUqD,GAAGvlC,EAAEwc,EAAEnD,EAAE6oB,eAAe,GAAe,aAAZ7oB,EAAEyZ,QAAsBiR,KAAKd,GAAGjjC,EAAEwc,EAAE3P,EAAEwM,GAAG4qB,GAAGjkC,QAAQ,GAAe,cAAZqZ,EAAEyZ,QAAsB,CAAC,IAAIryB,EAAE,CAAC,EAAK4Y,EAAE1E,OAAMlU,EAAEkU,KAAKmkB,GAAG94B,EAAEqZ,EAAE1E,OAAS0E,EAAEusB,YAAWnlC,EAAEmlC,UAAU39B,WAAWoR,EAAEusB,YAAW,IAAIx/B,EAAE,IAAIy/B,sBAAqB,SAASxsB,GAAG,IAAI,IAAIxM,EAAE,EAAEA,EAAEwM,EAAEzY,OAAOiM,IAAgB,GAALwM,EAAExM,GAAQi5B,eAAe,CAAC/S,GAAG/yB,EAAE,aAAa,KAAK,CAAE,GAAES,GAAG2F,EAAE2/B,QAAQ/lC,GAAGijC,GAAGjjC,EAAEwc,EAAE3P,EAAEwM,EAAE,KAAqB,SAAZA,EAAEyZ,QAAsBV,GAAG/Y,EAAErZ,EAAE2iC,GAAG,OAAO,CAACtG,IAAIr8B,MAAMwlC,GAAGxlC,EAAEwc,EAAE3P,EAAEwM,EAAEgpB,OAAgBhpB,EAAE2oB,aAAa,GAAGn1B,EAAEm5B,SAAQ,EAAKtD,GAAG1iC,EAAEwc,EAAEnD,IAAQ4pB,GAAGjjC,EAAEwc,EAAE3P,EAAEwM,EAAG,CAAC,SAAS4sB,GAAG5sB,GAAG,IAAIA,EAAE6hB,cAActR,EAAEyK,OAAOc,kBAA2B,oBAAT9b,EAAEjZ,MAAmC,WAATiZ,EAAEjZ,MAA0B,KAATiZ,EAAEjZ,MAAW,CAAC,IAAIyM,EAAEktB,KAAK2D,cAAc,UAAU3C,GAAG1hB,EAAE3G,YAAW,SAAS2G,GAAGxM,EAAEkxB,aAAa1kB,EAAEtQ,KAAKsQ,EAAElV,MAAM,IAAG0I,EAAEq5B,YAAY7sB,EAAE6sB,YAAYr5B,EAAEs5B,OAAM,EAASvc,EAAEyK,OAAOe,oBAAmBvoB,EAAEouB,MAAMrR,EAAEyK,OAAOe,mBAAkB,IAAI5Y,EAAEnD,EAAEygB,cAAc,IAAItd,EAAE8iB,aAAazyB,EAAEwM,EAAE,CAAC,MAAMA,GAAGhT,EAAEgT,EAAE,CAAC,QAAWA,EAAEygB,eAAezgB,EAAEygB,cAAcyC,YAAYljB,EAAG,CAAC,CAAC,CAAC,SAAS6lB,GAAG7lB,GAAM6L,EAAE7L,EAAE,WAAW4sB,GAAG5sB,GAAG0hB,GAAGn2B,EAAEyU,EAAE,WAAU,SAASA,GAAG4sB,GAAG5sB,EAAE,GAAE,CAAC,SAAS+sB,GAAG/sB,GAAG,IAAIxM,EAAEwM,EAAE3G,WAAW,IAAI7F,EAAG,OAAO,EAAM,IAAI,IAAI2P,EAAE,EAAEA,EAAE3P,EAAEjM,OAAO4b,IAAI,CAAC,IAAIxc,EAAE6M,EAAE2P,GAAGzT,KAAK,GAAG/G,EAAEhC,EAAE,WAAWgC,EAAEhC,EAAE,gBAAgBgC,EAAEhC,EAAE,WAAWgC,EAAEhC,EAAE,eAAgB,OAAO,CAAK,CAAC,OAAO,CAAK,CAAC,SAASqmC,GAAGhtB,GAAG,IAAIxM,EAAE,KAAS2P,EAAE,GAAuB,GAAjB4pB,GAAG/sB,IAAImD,EAAE/a,KAAK4X,GAAM2gB,SAASsM,SAAiM,IAAvL,IAAItmC,EAAEg6B,SAASsM,SAAS,yJAA4JjtB,GAASxM,EAAE7M,EAAEumC,eAAc/pB,EAAE/a,KAAKoL,QAAQ,GAAmC,mBAAzBwM,EAAEmtB,qBAAqE,IAAlC,IAAI/lC,EAAE4Y,EAAEmtB,qBAAqB,KAAapgC,EAAE,EAAEA,EAAE3F,EAAEG,OAAOwF,IAAQggC,GAAG3lC,EAAE2F,KAAKoW,EAAE/a,KAAKhB,EAAE2F,IAAM,OAAOoW,CAAC,CAAC,SAASiqB,GAAGptB,GAAG,OAAGA,EAAE2hB,iBAAiG3hB,EAAE2hB,iBAAiBv6B,8NAAuL,EAAG,CAAC,SAASimC,GAAGrtB,GAAG,IAAIxM,EAAElI,EAAE0U,EAAE+F,OAAO,gCAAoC5C,EAAEmqB,GAAGttB,GAAMmD,IAAGA,EAAEoqB,kBAAkB/5B,EAAE,CAAC,SAASg6B,GAAGxtB,GAAG,IAAIxM,EAAE85B,GAAGttB,GAAMxM,IAAGA,EAAE+5B,kBAAkB,KAAK,CAAC,SAASD,GAAGttB,GAAG,IAAIxM,EAAElI,EAAE0U,EAAE+F,OAAO,gCAAgC,GAAIvS,EAAJ,CAAc,IAAI2P,EAAE4K,EAAE,IAAIwS,GAAG/sB,EAAE,UAAUlI,EAAEkI,EAAE,QAAQ,GAAI2P,EAAU,OAAOwb,GAAGxb,EAAhE,CAAkE,CAAC,SAASsqB,GAAGztB,GAAGA,EAAEkkB,iBAAiB,QAAQmJ,IAAIrtB,EAAEkkB,iBAAiB,UAAUmJ,IAAIrtB,EAAEkkB,iBAAiB,WAAWsJ,GAAG,CAAC,SAASE,GAAG1tB,GAAuB,IAApB,IAAIxM,EAAE60B,GAAGroB,GAAOmD,EAAE,EAAUxc,EAAE,EAAEA,EAAE6M,EAAEjM,OAAOZ,IAAI,CAAC,MAAMS,EAAEoM,EAAE7M,GAAU,MAAJS,EAAS+b,IAAgB,MAAJ/b,GAAS+b,GAAI,CAAC,OAAOA,CAAC,CAAC,SAASwqB,GAAGn6B,EAAEwM,EAAEmD,GAAG,IAAiE/b,EAA7DT,EAAEg4B,GAAGnrB,GAAO3L,MAAMoF,QAAQtG,EAAE8/B,cAAa9/B,EAAE8/B,WAAW,IAAS,IAAI15B,EAAE,SAASiT,GAAG,OAAO6iB,GAAGrvB,GAAE,WAAepM,IAAGA,EAAE,IAAIyuB,SAAS,QAAQ1S,IAAG/b,EAAEQ,KAAK4L,EAAEwM,EAAE,GAAE,EAAExM,EAAE0wB,iBAAiBlkB,EAAEjT,GAAGpG,EAAE8/B,WAAWr+B,KAAK,CAACgc,MAAMpE,EAAE/X,SAAS8E,GAAG,CAAC,SAAS6gC,GAAG5tB,GAAG,IAAIxM,EAAEyqB,GAAGje,EAAE,SAAS,GAAGxM,EAAE,CAAiD,IAAhD,IAAI2P,EAAE,CAAC,EAAMxc,EAAE6M,EAAEiD,MAAM,MAAUrP,EAAE,KAAS2F,EAAE,EAAQpG,EAAEY,OAAO,GAAE,CAAC,IAAIkiB,EAAE9iB,EAAE2kB,QAAYxH,EAAE2F,EAAEyJ,MAAM,6BAAoC,IAAJnmB,GAAO+W,GAAG2F,EAAEhT,MAAM,KAAwB0M,EAAnB/b,EAAE0c,EAAE,GAAGhc,MAAM,GAAG,IAAQgc,EAAE,IAAQX,EAAE/b,IAAIqiB,EAAE1c,GAAG2gC,GAAGjkB,EAAE,CAAC,IAAI,IAAItD,KAAKhD,EAAGwqB,GAAG3tB,EAAEmG,EAAEhD,EAAEgD,GAAI,CAAC,CAAC,SAAS0nB,GAAG7tB,GAAGwmB,GAAGxmB,GAAG,IAAI,IAAIxM,EAAE,EAAEA,EAAEwM,EAAE3G,WAAW9R,OAAOiM,IAAI,CAAC,IAAI2P,EAAEnD,EAAE3G,WAAW7F,GAAG9D,KAAS/I,EAAEqZ,EAAE3G,WAAW7F,GAAG1I,MAAM,GAAGnC,EAAEwa,EAAE,UAAUxa,EAAEwa,EAAE,cAAc,CAAC,IAAI/b,EAAE+b,EAAE5W,QAAQ,OAAO,EAAMQ,EAAEoW,EAAErb,MAAMV,EAAEA,EAAE,GAAG,GAAO,MAAJ2F,GAAa,MAAJA,EAAQ,CAAC,IAAI0c,EAAEtG,EAAErb,MAAMV,EAAE,GAAMuB,EAAE8gB,EAAE,KAAMA,EAAE,OAAOA,EAAU9gB,EAAE8gB,EAAE,KAAMA,EAAE,QAAQA,EAAE3hB,MAAM,GAAWa,EAAE8gB,EAAE,WAAUA,EAAE,QAAQA,EAAE3hB,MAAM,IAAG6lC,GAAG3tB,EAAEyJ,EAAE9iB,EAAE,CAAC,CAAC,CAAC,CAAC,SAASmnC,GAAGt6B,GAAG,GAAGlI,EAAEkI,EAAE+c,EAAEyK,OAAOoB,iBAAkBl0B,EAAEsL,OAApC,CAA8C,IAAI2P,EAAEwb,GAAGnrB,GAAG,GAAG2P,EAAE0nB,WAAWtE,GAAG/yB,GAAG,CAACkzB,GAAGlzB,GAAG2P,EAAE0nB,SAAStE,GAAG/yB,GAAGo6B,GAAGp6B,GAAGkmB,GAAGlmB,EAAE,0BAA6BA,EAAE1I,QAAOqY,EAAE+mB,UAAU12B,EAAE1I,OAAM,IAAIkV,EAAE+e,GAAGvrB,GAAS64B,GAAG74B,EAAE2P,EAAEnD,KAAgC,SAAnBme,GAAG3qB,EAAE,YAAsBm2B,GAAGn2B,EAAE2P,EAAEnD,GAAWyJ,EAAEjW,EAAE,eAAewM,EAAE7R,SAAQ,SAAS6R,GAAGsd,GAAG9pB,EAAEwM,EAAEmD,GAAE,WAAW,GAAE,MAAmB,SAAZ3P,EAAEkyB,SAAiC,WAAfnF,GAAG/sB,EAAE,SAAoBiW,EAAEjW,EAAE,UAASi6B,GAAGj6B,GAAG,IAAIpM,EAAE62B,GAAGzqB,EAAE,UAAapM,GAAGukC,GAAGn4B,EAAE2P,EAAE/b,GAAG,IAAI2F,EAAEkxB,GAAGzqB,EAAE,SAAYzG,GAAG+9B,GAAGt3B,EAAE2P,EAAEpW,GAAG2sB,GAAGlmB,EAAE,wBAAwB,CAA/b,CAAgc,CAAC,SAAS6lB,GAAGrZ,GAAa1U,EAAV0U,EAAE+N,EAAE/N,GAAUuQ,EAAEyK,OAAOoB,iBAAkBl0B,EAAE8X,IAAU8tB,GAAG9tB,GAAG0hB,GAAG0L,GAAGptB,IAAG,SAASA,GAAG8tB,GAAG9tB,EAAE,IAAG0hB,GAAGsL,GAAGhtB,GAAG6tB,IAAG,CAAC,SAASE,GAAG/tB,GAAG,OAAOA,EAAEnE,QAAQ,qBAAqB,SAASoR,aAAa,CAAC,SAASqc,GAAGtpB,EAAExM,GAAG,IAAI2P,EAAsM,OAAjMiH,OAAO4jB,aAAyC,mBAArB5jB,OAAO4jB,YAA0B7qB,EAAE,IAAI6qB,YAAYhuB,EAAE,CAACiuB,SAAQ,EAAKC,YAAW,EAAKnL,OAAOvvB,KAAS2P,EAAEud,KAAKyN,YAAY,gBAAiBC,gBAAgBpuB,GAAE,GAAK,EAAKxM,GAAU2P,CAAC,CAAC,SAAS+c,GAAGlgB,EAAExM,EAAE2P,GAAGuW,GAAG1Z,EAAExM,EAAE4rB,GAAG,CAAC93B,MAAMkM,GAAG2P,GAAG,CAAC,SAASkrB,GAAGruB,GAAG,MAAW,0BAAJA,CAA2B,CAAC,SAASoQ,EAAEpQ,EAAExM,GAAGkuB,GAAGkD,GAAG5kB,IAAG,SAASA,GAAG,IAAIxM,EAAEwM,EAAE,CAAC,MAAMA,GAAGhT,EAAEgT,EAAE,CAAC,GAAE,CAAC,SAAShT,EAAEgT,GAAM1X,QAAQhB,MAAOgB,QAAQhB,MAAM0Y,GAAW1X,QAAQ26B,KAAK36B,QAAQ26B,IAAI,UAAUjjB,EAAG,CAAC,SAAS0Z,GAAG1Z,EAAExM,EAAE2P,GAAGnD,EAAE+N,EAAE/N,GAAS,MAAHmD,IAASA,EAAE,CAAC,GAAEA,EAAO,IAAEnD,EAAE,IAAIrZ,EAAE2iC,GAAG91B,EAAE2P,GAAMoN,EAAEpC,SAASkgB,GAAG76B,IAAI+c,EAAEpC,OAAOnO,EAAExM,EAAE2P,GAAMA,EAAE7b,QAAO0F,EAAEmW,EAAE7b,OAAOoyB,GAAG1Z,EAAE,aAAa,CAACsuB,UAAUnrB,KAAI,IAAI/b,EAAE4Y,EAAEuuB,cAAc5nC,GAAOoG,EAAEghC,GAAGv6B,GAAG,GAAGpM,GAAG2F,IAAIyG,EAAE,CAAC,IAAIiW,EAAE6f,GAAGv8B,EAAEpG,EAAEo8B,QAAQ37B,EAAEA,GAAG4Y,EAAEuuB,cAAc9kB,EAAE,CAAsE,OAArE2G,EAAEpQ,GAAE,SAASA,GAAG5Y,EAAEA,IAAqB,IAAjB4Y,EAAEwuB,QAAQh7B,EAAE7M,KAAaA,EAAE8nC,gBAAiB,IAAUrnC,CAAC,CAAC,IAAIsnC,GAAGjF,SAAS7G,SAAS6G,SAASvqB,OAAO,SAASyvB,KAAwE,OAA7DjO,KAAKe,cAAc,2CAAoDf,KAAKY,IAAI,CAAC,SAASsN,GAAG5uB,EAAExM,EAAE2P,EAAExc,GAAG,GAAI+2B,IAAY,GAAGnN,EAAEyK,OAAOE,kBAAkB,EAAG/Q,aAAaiB,WAAW,0BAAzD,CAAsFpL,EAAE0iB,EAAE1iB,GAA2D,IAAxD,IAAI5Y,EAAE4oB,EAAE7F,aAAaG,QAAQ,wBAAwB,GAAWvd,EAAE,EAAEA,EAAE3F,EAAEG,OAAOwF,IAAK,GAAG3F,EAAE2F,GAAG4f,MAAM3M,EAAE,CAAC5Y,EAAE2B,OAAOgE,EAAE,GAAG,KAAK,CAAE,IAAI0c,EAAE,CAACkD,IAAI3M,EAAEF,QAAQtM,EAAEm0B,MAAMxkB,EAAE0rB,OAAOloC,GAAsE,IAAnE+yB,GAAGgH,KAAKY,KAAK,0BAA0B,CAACrlB,KAAKwN,EAAE2M,MAAMhvB,IAAIA,EAAEgB,KAAKqhB,GAASriB,EAAEG,OAAOgpB,EAAEyK,OAAOE,kBAAkB9zB,EAAEkkB,QAAQ,KAAMlkB,EAAEG,OAAO,GAAG,IAAI4iB,aAAaI,QAAQ,qBAAqB1T,KAAKC,UAAU1P,IAAI,KAAK,CAAC,MAAM4Y,GAAGkgB,GAAGQ,KAAKY,KAAK,yBAAyB,CAACwN,MAAM9uB,EAAEoW,MAAMhvB,IAAIA,EAAEkkB,OAAO,CAAtc,CAAwc,CAAC,SAASyjB,GAAG/uB,GAAG,IAAI0d,IAAK,OAAO,KAAK1d,EAAE0iB,EAAE1iB,GAA2D,IAAxD,IAAIxM,EAAEwc,EAAE7F,aAAaG,QAAQ,wBAAwB,GAAWnH,EAAE,EAAEA,EAAE3P,EAAEjM,OAAO4b,IAAK,GAAG3P,EAAE2P,GAAGwJ,MAAM3M,EAAG,OAAOxM,EAAE2P,GAAI,OAAO,IAAI,CAAC,SAAS6rB,GAAGhvB,GAAG,IAAIxM,EAAE+c,EAAEyK,OAAOS,aAAiBtY,EAAEnD,EAAE8kB,WAAU,GAAyC,OAAnCpD,GAAGn2B,EAAE4X,EAAE,IAAI3P,IAAG,SAASwM,GAAGrZ,EAAEqZ,EAAExM,EAAE,IAAU2P,EAAE8rB,SAAS,CAAC,SAASjoC,KAAK,IAA2Dmc,EAAvDnD,EAAE2uB,KAASn7B,EAAEk7B,IAAIjF,SAAS7G,SAAS6G,SAASvqB,OAAa,IAAIiE,EAAEud,KAAKe,cAAc,qDAAqD,CAAC,MAAMzhB,GAAGmD,EAAEud,KAAKe,cAAc,iDAAiD,CAAKte,IAAGuW,GAAGgH,KAAKY,KAAK,yBAAyB,CAACptB,KAAKV,EAAE07B,WAAWlvB,IAAI4uB,GAAGp7B,EAAEw7B,GAAGhvB,GAAG0gB,KAAKiH,MAAMvd,OAAO+kB,UAAY5e,EAAEyK,OAAOC,gBAAemU,QAAQC,aAAa,CAACC,MAAK,GAAM5O,KAAKiH,MAAMvd,OAAOqf,SAASK,KAAK,CAAC,SAASyF,GAAGvvB,GAAMuQ,EAAEyK,OAAOwB,sBAA0E8G,EAArDtjB,EAAEA,EAAEnE,QAAQ,kCAAkC,IAAW,MAAMynB,EAAEtjB,EAAE,QAAMA,EAAEA,EAAElY,MAAM,GAAG,IAAOyoB,EAAEyK,OAAOC,gBAAgBmU,QAAQI,UAAU,CAACF,MAAK,GAAM,GAAGtvB,GAAG0uB,GAAG1uB,CAAC,CAAC,SAASyvB,GAAGzvB,GAAMuQ,EAAEyK,OAAOC,gBAAemU,QAAQC,aAAa,CAACC,MAAK,GAAM,GAAGtvB,GAAG0uB,GAAG1uB,CAAC,CAAC,SAAS6f,GAAG7f,GAAG0hB,GAAG1hB,GAAE,SAASA,GAAGA,EAAEpY,MAAM,GAAE,CAAC,SAAS8nC,GAAG3iC,GAAG,IAAIiT,EAAE,IAAIwQ,eAAmB/G,EAAE,CAACvV,KAAKnH,EAAE4iC,IAAI3vB,GAAG0Z,GAAGgH,KAAKY,KAAK,wBAAwB7X,GAAGzJ,EAAEyQ,KAAK,MAAM1jB,GAAE,GAAMiT,EAAE0Q,iBAAiB,aAAa,QAAQ1Q,EAAE0Q,iBAAiB,6BAA6B,QAAQ1Q,EAAE0Q,iBAAiB,iBAAiBgQ,KAAK+I,SAASK,MAAM9pB,EAAEmR,OAAO,WAAW,GAAGrrB,KAAKymB,QAAQ,KAAKzmB,KAAKymB,OAAO,IAAI,CAACmN,GAAGgH,KAAKY,KAAK,4BAA4B7X,GAAG,IAAIzJ,EAAEmG,EAAErgB,KAAKwb,UAAUtB,EAAEA,EAAEyhB,cAAc,2CAA2CzhB,EAAE,IAAIxM,EAAEm7B,KAASxrB,EAAE4L,EAAEvb,GAAO7M,EAAE+gC,GAAG5hC,KAAKwb,UAAU,GAAG3a,EAAE,CAAC,IAAIS,EAAE2oB,EAAE,SAAY3oB,EAAGA,EAAE6nC,UAAUtoC,EAAOyjB,OAAOuW,SAASgH,MAAMhhC,CAAE,CAACogC,GAAGvzB,EAAEwM,EAAEmD,GAAG0c,GAAG1c,EAAEwiB,OAAO+I,GAAG3hC,EAAE2sB,GAAGgH,KAAKY,KAAK,sBAAsB,CAACptB,KAAKnH,EAAE6iC,WAAU,EAAKC,eAAe/pC,KAAKwb,UAAU,MAAM4e,GAAGQ,KAAKY,KAAK,iCAAiC7X,EAAG,EAAEzJ,EAAEyO,MAAM,CAAC,SAASqhB,GAAG9vB,GAAGhZ,KAA4C,IAAIwM,EAAEu7B,GAA7C/uB,EAAEA,GAAGypB,SAAS7G,SAAS6G,SAASvqB,QAAmB,GAAG1L,EAAE,CAAC,IAAI2P,EAAEgD,EAAE3S,EAAEsM,SAAanZ,EAAEgoC,KAASvnC,EAAE2nB,EAAEpoB,GAAGogC,GAAGpgC,EAAEwc,EAAE/b,GAAGy4B,GAAGz4B,EAAEu+B,OAAOhF,SAASgH,MAAMn0B,EAAEm0B,MAAMhX,YAAW,WAAWvG,OAAO2lB,SAAS,EAAEv8B,EAAEq7B,OAAO,GAAE,GAAGH,GAAG1uB,EAAE0Z,GAAGgH,KAAKY,KAAK,sBAAsB,CAACptB,KAAK8L,EAAE/D,KAAKzI,GAAG,MAAS+c,EAAEyK,OAAOG,qBAAsB/Q,OAAOqf,SAASuG,QAAO,GAAWN,GAAG1vB,EAAI,CAAC,SAASiwB,GAAGjwB,GAAG,IAAIxM,EAAE8wB,GAAGtkB,EAAE,gBAAiK,OAA3I,MAAHxM,IAASA,EAAE,CAACwM,IAAG0hB,GAAGluB,GAAE,SAASwM,GAAG,IAAIxM,EAAEmrB,GAAG3e,GAAGxM,EAAE08B,cAAc18B,EAAE08B,cAAc,GAAG,EAAElwB,EAAEmjB,UAAe,IAAEv7B,KAAKoY,EAAEmjB,UAAU5S,EAAEyK,OAAOS,aAAa,IAAUjoB,CAAC,CAAC,SAAS28B,GAAGnwB,GAAG,IAAIxM,EAAE8wB,GAAGtkB,EAAE,mBAAsI,OAA7G,MAAHxM,IAASA,EAAE,IAAGkuB,GAAGluB,GAAE,SAASwM,GAAG,IAAIxM,EAAEmrB,GAAG3e,GAAGxM,EAAE08B,cAAc18B,EAAE08B,cAAc,GAAG,EAAElwB,EAAE0kB,aAAa,WAAW,GAAG,IAAUlxB,CAAC,CAAC,SAAS48B,GAAGpwB,EAAExM,GAAGkuB,GAAG1hB,GAAE,SAASA,GAAG,IAAIxM,EAAEmrB,GAAG3e,GAAGxM,EAAE08B,cAAc18B,EAAE08B,cAAc,GAAG,EAAsB,IAAjB18B,EAAE08B,cAAkBlwB,EAAEmjB,UAAkB,OAAEv7B,KAAKoY,EAAEmjB,UAAU5S,EAAEyK,OAAOS,aAAc,IAAGiG,GAAGluB,GAAE,SAASwM,GAAG,IAAIxM,EAAEmrB,GAAG3e,GAAGxM,EAAE08B,cAAc18B,EAAE08B,cAAc,GAAG,EAAsB,IAAjB18B,EAAE08B,cAAkBlwB,EAAEojB,gBAAgB,WAAY,GAAE,CAAC,SAASiN,GAAGrwB,EAAExM,GAAG,IAAI,IAAI2P,EAAE,EAAEA,EAAEnD,EAAEzY,OAAO4b,IAAgB,GAALnD,EAAEmD,GAAQmtB,WAAW98B,GAAI,OAAO,EAAM,OAAO,CAAK,CAAC,SAAS+8B,GAAGvwB,GAAG,MAAY,KAATA,EAAEtQ,MAAmB,MAARsQ,EAAEtQ,OAAYsQ,EAAEwwB,WAAUllC,EAAE0U,EAAE,uBAAgD,WAATA,EAAEjZ,MAA0B,WAATiZ,EAAEjZ,MAA6B,UAAZiZ,EAAE0lB,SAA+B,UAAZ1lB,EAAE0lB,SAA+B,SAAZ1lB,EAAE0lB,UAA2C,aAAT1lB,EAAEjZ,MAA4B,UAATiZ,EAAEjZ,MAAuBiZ,EAAEywB,QAAmB,CAAC,SAASC,GAAG1wB,EAAExM,EAAE2P,GAAG,GAAM,MAAHnD,GAAY,MAAHxM,EAAQ,CAAC,IAAI7M,EAAEwc,EAAEnD,QAAU/Z,IAAJU,EAAewc,EAAEnD,GAAGxM,EAAU3L,MAAMoF,QAAQtG,GAAOkB,MAAMoF,QAAQuG,GAAI2P,EAAEnD,GAAGrZ,EAAEuE,OAAOsI,GAAQ7M,EAAEyB,KAAKoL,GAAY3L,MAAMoF,QAAQuG,GAAI2P,EAAEnD,GAAG,CAACrZ,GAAGuE,OAAOsI,GAAQ2P,EAAEnD,GAAG,CAACrZ,EAAE6M,EAAI,CAAC,CAAC,SAASm9B,GAAGn9B,EAAE2P,EAAExc,EAAEqZ,EAAE5Y,GAAG,GAAM,MAAH4Y,IAASqwB,GAAG78B,EAAEwM,GAAjB,CAA2C,GAAVxM,EAAEpL,KAAK4X,GAAMuwB,GAAGvwB,GAAG,CAAC,IAAIjT,EAAEwzB,GAAGvgB,EAAE,QAAYyJ,EAAEzJ,EAAElV,MAASkV,EAAE4wB,UAAsB,WAAZ5wB,EAAE0lB,UAAoBjc,EAAEuY,EAAEhiB,EAAE2hB,iBAAiB,mBAAmB7yB,KAAI,SAASkR,GAAG,OAAOA,EAAElV,KAAK,KAAMkV,EAAE6wB,QAAOpnB,EAAEuY,EAAEhiB,EAAE6wB,QAAOH,GAAG3jC,EAAE0c,EAAEtG,GAAM/b,GAAG0pC,GAAG9wB,EAAErZ,EAAG,CAAIklB,EAAE7L,EAAE,SAA0B0hB,GAAX1hB,EAAE+wB,UAAc,SAAS/wB,GAAG2wB,GAAGn9B,EAAE2P,EAAExc,EAAEqZ,EAAE5Y,EAAE,GAA7Q,CAAgR,CAAC,SAAS0pC,GAAG9wB,EAAExM,GAAMwM,EAAEgxB,eAActX,GAAG1Z,EAAE,4BAAgCA,EAAEixB,kBAAiBz9B,EAAEpL,KAAK,CAAC46B,IAAIhjB,EAAEoN,QAAQpN,EAAEkxB,kBAAkBC,SAASnxB,EAAEmxB,WAAWzX,GAAG1Z,EAAE,yBAAyB,CAACoN,QAAQpN,EAAEkxB,kBAAkBC,SAASnxB,EAAEmxB,YAAY,CAAC,SAASpX,GAAG/Z,EAAExM,GAAG,IAAI2P,EAAE,GAAOxc,EAAE,CAAC,EAAMS,EAAE,CAAC,EAAM2F,EAAE,GAAO0c,EAAEkV,GAAG3e,GAAMyJ,EAAE8jB,oBAAoB/P,GAAG/T,EAAE8jB,qBAAoB9jB,EAAE8jB,kBAAkB,MAAK,IAAIzpB,EAAE+H,EAAE7L,EAAE,UAAwB,IAAfA,EAAEoxB,YAAyC,SAAtBnT,GAAGje,EAAE,eAAmJ,GAAxHyJ,EAAE8jB,oBAAmBzpB,EAAEA,IAAwC,IAArC2F,EAAE8jB,kBAAkB8D,gBAA6B,QAAJ79B,GAAWm9B,GAAGxtB,EAAE/b,EAAE2F,EAAEzB,EAAE0U,EAAE,QAAQ8D,GAAG6sB,GAAGxtB,EAAExc,EAAEoG,EAAEiT,EAAE8D,GAAM2F,EAAE8jB,mBAA+B,WAAZvtB,EAAE0lB,SAAgC,UAAZ1lB,EAAE0lB,SAAkC,WAAfnF,GAAGvgB,EAAE,QAAmB,CAAC,IAAImG,EAAEsD,EAAE8jB,mBAAmBvtB,EAAqB0wB,GAAbnQ,GAAGpa,EAAE,QAAaA,EAAErb,MAAM1D,EAAE,CAA6I,OAAnHs6B,GAAnB4C,GAAGtkB,EAAE,eAAmB,SAASA,GAAG2wB,GAAGxtB,EAAExc,EAAEoG,EAAEiT,EAAE8D,GAAO+H,EAAE7L,EAAE,SAAS0hB,GAAG1hB,EAAE2hB,iBAAiB8G,KAAI,SAASzoB,GAAG2wB,GAAGxtB,EAAExc,EAAEoG,EAAEiT,EAAE8D,EAAE,GAAG,IAAGnd,EAAEy4B,GAAGz4B,EAAES,GAAS,CAACokC,OAAOz+B,EAAEf,OAAOrF,EAAE,CAAC,SAAS2qC,GAAGtxB,EAAExM,EAAE2P,GAAU,KAAJnD,IAAQA,GAAG,KAAmB,oBAAZ6E,OAAO1B,KAAwBA,EAAEtM,KAAKC,UAAUqM,IAAG,IAAIxc,EAAEilB,mBAAmBzI,GAAkC,OAA/BnD,GAAG4L,mBAAmBpY,GAAG,KAAI7M,CAAU,CAAC,SAAS4qC,GAAGvxB,GAAG,IAAIxM,EAAE,GAAG,IAAI,IAAI2P,KAAKnD,EAAG,GAAGA,EAAEgG,eAAe7C,GAAG,CAAC,IAAIxc,EAAEqZ,EAAEmD,GAAMtb,MAAMoF,QAAQtG,GAAI+6B,GAAG/6B,GAAE,SAASqZ,GAAGxM,EAAE89B,GAAG99B,EAAE2P,EAAEnD,EAAE,IAAQxM,EAAE89B,GAAG99B,EAAE2P,EAAExc,EAAG,CAAE,OAAO6M,CAAC,CAAC,SAASg+B,GAAGxxB,GAAG,IAAIxM,EAAE,IAAIi+B,SAAS,IAAI,IAAItuB,KAAKnD,EAAG,GAAGA,EAAEgG,eAAe7C,GAAG,CAAC,IAAIxc,EAAEqZ,EAAEmD,GAAMtb,MAAMoF,QAAQtG,GAAI+6B,GAAG/6B,GAAE,SAASqZ,GAAGxM,EAAEk+B,OAAOvuB,EAAEnD,EAAE,IAAQxM,EAAEk+B,OAAOvuB,EAAExc,EAAG,CAAE,OAAO6M,CAAC,CAAC,SAASgrB,GAAGxe,EAAExM,EAAE2P,GAAG,IAAIxc,EAAE,CAAC,aAAa,OAAO,aAAa45B,GAAGvgB,EAAE,MAAM,kBAAkBugB,GAAGvgB,EAAE,QAAQ,YAAYie,GAAGzqB,EAAE,MAAM,iBAAiBktB,KAAK+I,SAASK,MAA6G,OAAvG6H,GAAG3xB,EAAE,cAAa,EAAMrZ,QAAUV,IAAJkd,IAAexc,EAAE,aAAawc,GAAKwb,GAAG3e,GAAGukB,UAAS59B,EAAE,cAAc,QAAcA,CAAC,CAAC,SAASm3B,GAAGtqB,EAAEwM,GAAG,IAAImD,EAAEgb,GAAGne,EAAE,aAAa,GAAGmD,EAAE,CAAC,GAAO,SAAJA,EAAY,MAAM,CAAC,EAAO,GAAO,MAAJA,EAAS,OAAO3P,EAAO,GAAuB,IAApB2P,EAAE5W,QAAQ,QAA4E,OAA/Dm1B,GAAGve,EAAE8L,OAAO,GAAGxY,MAAM,MAAK,SAASuJ,GAAGA,EAAEA,EAAErJ,cAAcnD,EAAEwM,EAAE,IAAUxM,EAAO,IAAI7M,EAAE,CAAC,EAAqD,OAAnD+6B,GAAGve,EAAE1M,MAAM,MAAK,SAASuJ,GAAGA,EAAEA,EAAErJ,OAAOhQ,EAAEqZ,GAAGxM,EAAEwM,EAAE,IAAUrZ,CAAE,CAAM,OAAO6M,CAAE,CAAC,SAASo+B,GAAG5xB,GAAG,OAAOugB,GAAGvgB,EAAE,SAASugB,GAAGvgB,EAAE,QAAQzT,QAAQ,MAAM,CAAC,CAAC,SAASsyB,GAAG7e,EAAExM,GAAG,IAAI2P,EAAE3P,GAAI2qB,GAAGne,EAAE,WAAerZ,EAAE,CAACqlC,UAAUrN,GAAG3e,GAAGukB,QAAQ,YAAYhU,EAAEyK,OAAOI,iBAAiByW,UAAUthB,EAAEyK,OAAOK,iBAAiByW,YAAYvhB,EAAEyK,OAAOM,oBAA8F,GAAvE/K,EAAEyK,OAAO6B,uBAAuB8B,GAAG3e,GAAGukB,UAAUqN,GAAG5xB,KAAIrZ,EAAQ,KAAE,OAASwc,EAAE,CAAC,IAAI/b,EAAEq7B,EAAEtf,GAAG,GAAG/b,EAAEG,OAAO,EAAG,IAAI,IAAIwF,EAAE,EAAEA,EAAE3F,EAAEG,OAAOwF,IAAI,CAAC,IAAI0c,EAAEriB,EAAE2F,GAAG,GAAwB,IAArB0c,EAAEld,QAAQ,SAAc5F,EAAa,UAAEulB,EAAEzC,EAAEwF,OAAO,SAAS,GAA0B,IAAvBxF,EAAEld,QAAQ,WAAgB5F,EAAe,YAAEulB,EAAEzC,EAAEwF,OAAO,SAAS,GAA8B,IAA3BxF,EAAEld,QAAQ,eAAoB5F,EAAc,WAAiB,SAAf8iB,EAAEwF,OAAO,SAAkB,GAA+B,IAA5BxF,EAAEld,QAAQ,gBAAqB5F,EAAe,YAAiB,SAAf8iB,EAAEwF,OAAO,SAAkB,GAA0B,IAAvBxF,EAAEld,QAAQ,WAAe,CAAC,IAAyCud,GAAnB3D,EAAhBsD,EAAEwF,OAAO,GAAWxY,MAAM,MAAa0W,MAAU5hB,EAAE4a,EAAE5e,OAAO,EAAE4e,EAAEsB,KAAK,KAAK,KAAK9gB,EAAU,OAAEmjB,EAAEnjB,EAAgB,aAAE4E,CAAC,MAAM,GAAwB,IAArBke,EAAEld,QAAQ,SAAa,CAAC,IAAsB4Z,EAAmB0F,GAAnB1F,EAAhBsD,EAAEwF,OAAO,GAAWxY,MAAM,MAAa0W,MAAU5hB,EAAE4a,EAAE5e,OAAO,EAAE4e,EAAEsB,KAAK,KAAK,KAAK9gB,EAAQ,KAAEklB,EAAEllB,EAAc,WAAE4E,CAAC,MAAM,GAAgC,IAA7Bke,EAAEld,QAAQ,iBAAqB,CAAC,IAAIjB,EAAEme,EAAEwF,OAAO,IAAwBtoB,EAAe,YAAK,QAAH2E,CAAS,MAAY,GAAHyB,EAAMpG,EAAa,UAAE8iB,EAAOzc,EAAE,gCAAgCyc,EAAG,CAAE,CAAC,OAAO9iB,CAAC,CAAC,SAASorC,GAAG/xB,GAAG,MAA6B,wBAAtBme,GAAGne,EAAE,gBAAwC6L,EAAE7L,EAAE,SAA2B,wBAAlBugB,GAAGvgB,EAAE,UAAkC,CAAC,SAASgyB,GAAGx+B,EAAE2P,EAAExc,GAAG,IAAIS,EAAE,KAAgE,OAA3DgpB,EAAEjN,GAAE,SAASnD,GAAS,MAAH5Y,IAASA,EAAE4Y,EAAEiyB,iBAAiBz+B,EAAE7M,EAAEwc,GAAG,IAAS,MAAH/b,EAAgBA,EAAU2qC,GAAG5uB,GAAWquB,GAAG7qC,GAAe4qC,GAAG5qC,EAAI,CAAC,SAASooB,EAAE/O,GAAG,MAAM,CAAC2lB,MAAM,GAAGR,KAAK,CAACnlB,GAAG,CAAC,SAASkyB,GAAGlyB,EAAExM,GAAG,IAAI2P,EAAEnD,EAAE,GAAOrZ,EAAEqZ,EAAEA,EAAEzY,OAAO,GAAG,GAAGiM,EAAEq7B,OAAO,CAAC,IAAIznC,EAAE,KAAQoM,EAAE2+B,eAAc/qC,EAAEq4B,GAAGtc,EAAE3P,EAAE2+B,eAA4B,QAAX3+B,EAAEq7B,SAAiB1rB,GAAG/b,MAAIA,EAAEA,GAAG+b,GAAIivB,UAAU,GAAgB,WAAX5+B,EAAEq7B,SAAoBloC,GAAGS,MAAIA,EAAEA,GAAGT,GAAIyrC,UAAUhrC,EAAEirC,aAAa,CAAC,GAAG7+B,EAAE8+B,KAAK,CAAY,GAAPlrC,EAAE,KAAQoM,EAAE++B,WAAW,CAAC,IAAIxlC,EAAEyG,EAAE++B,WAA6B,WAAf/+B,EAAE++B,aAAuBxlC,EAAE,QAAO3F,EAAEq4B,GAAGtc,EAAEpW,EAAE,CAAa,QAATyG,EAAE8+B,OAAenvB,GAAG/b,KAAIA,EAAEA,GAAG+b,GAAIqvB,eAAe,CAACC,MAAM,QAAQC,SAASniB,EAAEyK,OAAOsB,iBAA6B,WAAT9oB,EAAE8+B,OAAkB3rC,GAAGS,KAAIA,EAAEA,GAAGT,GAAI6rC,eAAe,CAACC,MAAM,MAAMC,SAASniB,EAAEyK,OAAOsB,gBAAiB,CAAC,CAAC,SAASqV,GAAG3xB,EAAExM,EAAE2P,EAAExc,GAAoB,GAAX,MAAHA,IAASA,EAAE,CAAC,GAAQ,MAAHqZ,EAAS,OAAOrZ,EAAE,IAAIS,EAAE62B,GAAGje,EAAExM,GAAG,GAAGpM,EAAE,CAAC,IAAoM0c,EAAhM/W,EAAE3F,EAAEuP,OAAW8S,EAAEtG,EAAE,GAAO,UAAJpW,EAAa,OAAO,KAAqO,IAAI,IAAIoZ,KAA1M,IAA3BpZ,EAAER,QAAQ,gBAAoBQ,EAAEA,EAAEkiB,OAAO,IAAIxF,GAAE,GAAgC,IAAnB1c,EAAER,QAAQ,SAAYQ,EAAEA,EAAEkiB,OAAO,GAAGxF,GAAE,GAAyB,IAAjB1c,EAAER,QAAQ,OAAUQ,EAAE,IAAIA,EAAE,KAAgB+W,EAAH2F,EAAKoZ,GAAG7iB,GAAE,WAAW,OAAO6V,SAAS,WAAW9oB,EAAE,IAAtB8oB,EAA4B,GAAE,CAAC,GAAU7F,EAAEjjB,GAAsB+W,EAAEkC,eAAeG,IAAa,MAANxf,EAAEwf,KAAUxf,EAAEwf,GAAGrC,EAAEqC,GAAK,CAAC,OAAOwrB,GAAG7nB,EAAE9J,GAAGxM,EAAE2P,EAAExc,EAAE,CAAC,SAASk8B,GAAG7iB,EAAExM,EAAE2P,GAAG,OAAGoN,EAAEyK,OAAOa,UAAkBroB,KAAS0sB,GAAGlgB,EAAE,4BAAmCmD,EAAE,CAAC,SAASwvB,GAAG3yB,EAAExM,GAAG,OAAOm+B,GAAG3xB,EAAE,WAAU,EAAKxM,EAAE,CAAC,SAASo/B,GAAG5yB,EAAExM,GAAG,OAAOm+B,GAAG3xB,EAAE,WAAU,EAAMxM,EAAE,CAAC,SAAS8qB,GAAGte,GAAG,OAAOof,GAAGuT,GAAG3yB,GAAG4yB,GAAG5yB,GAAG,CAAC,SAAS6yB,GAAGr/B,EAAE2P,EAAExc,GAAG,GAAO,OAAJA,EAAU,IAAI6M,EAAEkd,iBAAiBvN,EAAExc,EAAE,CAAC,MAAMqZ,GAAGxM,EAAEkd,iBAAiBvN,EAAEyI,mBAAmBjlB,IAAI6M,EAAEkd,iBAAiBvN,EAAE,mBAAmB,OAAO,CAAE,CAAC,SAAS2vB,GAAGt/B,GAAG,GAAGA,EAAEu/B,aAA0B,oBAANpQ,IAAmB,IAAI,IAAI3iB,EAAE,IAAI2iB,IAAInvB,EAAEu/B,aAAa,OAAO/yB,EAAE4iB,SAAS5iB,EAAEd,MAAM,CAAC,MAAMc,GAAGkgB,GAAGQ,KAAKY,KAAK,sBAAsB,CAAC3U,IAAInZ,EAAEu/B,aAAa,CAAE,CAAC,SAASlmB,EAAE7M,EAAExM,GAAG,OAAOA,EAAE6V,KAAKrJ,EAAEgzB,wBAAwB,CAAC,SAASpZ,GAAG5Z,EAAExM,EAAE2P,GAAqB,OAAlBnD,EAAEA,EAAEiN,cAAiB9J,EAAMA,aAAa8vB,SAAS5iB,EAAElN,EAAE,UAAkB0mB,GAAG7pB,EAAExM,EAAE,KAAK,KAAK,CAAC0/B,eAAenlB,EAAE5K,GAAGgwB,eAAc,IAAmBtJ,GAAG7pB,EAAExM,EAAEua,EAAE5K,EAAEyB,QAAQzB,EAAEiB,MAAM,CAACnd,QAAQkc,EAAElc,QAAQ8kB,QAAQ5I,EAAE4I,QAAQ/f,OAAOmX,EAAEnX,OAAOknC,eAAenlB,EAAE5K,EAAE4C,QAAQqtB,aAAajwB,EAAEkwB,KAAKC,OAAOnwB,EAAEmwB,OAAOH,eAAc,IAAoBtJ,GAAG7pB,EAAExM,EAAE,KAAK,KAAK,CAAC2/B,eAAc,GAAO,CAAC,SAASI,GAAGvzB,GAAY,IAAT,IAAIxM,EAAE,GAASwM,GAAGxM,EAAEpL,KAAK4X,GAAGA,EAAEA,EAAEygB,cAAc,OAAOjtB,CAAC,CAAC,SAASggC,GAAGxzB,EAAExM,EAAE2P,GAAG,IAAIxc,EAAMS,EAAyJ,MAAvI,mBAANu7B,KAAkBv7B,EAAE,IAAIu7B,IAAInvB,EAAEmtB,SAAS8I,SAASK,MAAqCnjC,EAAzBg6B,SAAS8I,SAASgK,SAAarsC,EAAEqsC,SAAYrsC,EAAEoM,EAAE7M,EAAEgC,EAAE6K,EAAEmtB,SAAS8I,SAASgK,WAAWljB,EAAEyK,OAAO2B,mBAAsBh2B,IAAwB+yB,GAAG1Z,EAAE,mBAAmBof,GAAG,CAACzS,IAAIvlB,EAAEssC,SAAS/sC,GAAGwc,GAAG,CAAC,SAAS0mB,GAAGr2B,EAAE2P,EAAExc,EAAES,EAAE2F,EAAEiT,GAAG,IAAIyJ,EAAE,KAAS3F,EAAE,KAAoB,IAAf/W,EAAK,MAAHA,EAAQA,EAAE,CAAC,GAAOomC,eAAgC,oBAAV/yB,QAAuB,IAAI+F,EAAE,IAAI/F,SAAQ,SAASJ,EAAExM,GAAGiW,EAAEzJ,EAAE8D,EAAEtQ,CAAC,IAAS,MAAH7M,IAASA,EAAE+5B,KAAKY,MAAK,IAAIU,EAAEj1B,EAAE9F,SAAS0sC,GAAO1R,EAAEl1B,EAAEumC,QAAQ,KAAK,IAAI9V,GAAG72B,GAAU,OAANo7B,GAAGtY,GAAUtD,EAAE,IAAI2D,EAAE/c,EAAEmmC,gBAAgBjU,GAAGt4B,GAAG,GAAM,MAAHmjB,GAASA,GAAGsa,GAA8D,OAA1DlE,GAAGv5B,EAAE,mBAAmB,CAACof,OAAOkY,GAAGt3B,EAAE,eAAeo7B,GAAGje,GAAUqC,EAAE,IAAI5a,EAAEozB,GAAGh4B,GAAO6kB,EAAEjgB,EAAEgiC,kBAAkB,GAAG/hB,EAAE,CAAC,IAAIK,EAAE0U,GAAG/U,EAAE,cAAoB,MAAHK,IAAS1I,EAAE0I,GAAE,IAAIvgB,EAAEi1B,GAAG/U,EAAE,cAAoB,MAAHlgB,GAA8B,WAAlBA,EAAE2hB,gBAA0BzZ,EAAElI,EAAG,CAAC,IAAI4gB,EAAEiS,GAAGx3B,EAAE,cAAc,QAAOV,IAAJ+Z,EAAc,CAAC,IAAgD0d,EAAE,CAAC3X,OAAO+D,EAAEkZ,IAAIr8B,EAAEuN,KAAKiP,EAAEmpB,KAAK94B,EAAEogC,gBAAgBxsC,EAAEysC,IAAI9mC,EAAE+mC,aAAlG,SAAS9zB,GAAG,OAAO6pB,GAAGr2B,EAAE2P,EAAExc,EAAES,EAAE2F,IAAIiT,EAAE,EAA6E+zB,SAAS7nB,GAAG,IAA4B,IAAzBwN,GAAG/yB,EAAE,eAAe+2B,GAAkB,OAANqE,GAAGtY,GAAUtD,CAAE,CAAC,IAAIxd,EAAEhC,EAAMonB,EAAEoQ,GAAGx3B,EAAE,WAAeuB,EAAE,KAASgnB,GAAE,EAAM,GAAGnB,EAAE,CAAC,IAAI2U,EAAE3U,EAAEtX,MAAM,KAAS6Z,EAAEoS,EAAE,GAAG/rB,OAAuF,GAAjEhO,EAAR,SAAJ2nB,EAAcsN,GAAGj3B,EAAE,WAAkB84B,GAAG94B,EAAE2pB,GAAGvC,GAAG2U,EAAE,IAAI,QAAQ/rB,OAAOpL,EAAEozB,GAAGh2B,GAAU,SAAJolB,GAAYxiB,EAAEokC,MAAmB,IAAdpkC,EAAEyoC,UAAwB,OAANjS,GAAGtY,GAAUtD,EAAO,GAAO,UAAJ4H,EAAY,CAAC,GAAGxiB,EAAEokC,IAAW,OAAN5N,GAAGtY,GAAUtD,EAAO+I,GAAE,CAAK,KAAa,YAAJnB,EAAe2L,GAAG/wB,EAAE,cAA2C,IAArBolB,EAAExhB,QAAQ,WAAiCrE,GAAb6lB,EAAEtX,MAAM,KAAU,IAAI,QAAQE,OAAO,CAAC,GAAGpL,EAAEokC,IAAI,CAAC,IAAGpkC,EAAEyoC,UAAkC,CAAC,GAAM,MAAH9rC,EAAQ,CAAC,GAAGd,EAAE,CAAC,IAAIklB,EAAEqS,GAAGv3B,GAAMklB,GAAGA,EAAEid,aAAajd,EAAEid,YAAYL,QAAOhhC,EAAEokB,EAAEid,YAAYL,MAAM,CAAO,MAAHhhC,IAASA,EAAE,OAAO,CAAiT,OAA3R,MAAlBqD,EAAE0oC,iBAAsB1oC,EAAE0oC,eAAe,IAAU,UAAJ/rC,GAAuC,IAA1BqD,EAAE0oC,eAAe1sC,QAAyE,QAAJW,EAAzDqD,EAAE0oC,eAAe7rC,MAAK,WAAWyhC,GAAGr2B,EAAE2P,EAAExc,EAAES,EAAE2F,EAAE,IAAmF,SAAJ7E,IAAYqD,EAAE0oC,eAAe,GAAG1oC,EAAE0oC,eAAe7rC,MAAK,WAAWyhC,GAAGr2B,EAAE2P,EAAExc,EAAES,EAAE2F,EAAE,KAAGg1B,GAAGtY,GAAUtD,CAAC,CAArcuT,GAAG/wB,EAAE,aAAic,CAAC,IAAIqE,EAAE,IAAIwjB,eAAejlB,EAAEokC,IAAI3iC,EAAEzB,EAAEyoC,UAAU9kB,EAAE,IAAIL,EAAE,WAAWtjB,EAAEokC,IAAI,KAAKpkC,EAAEyoC,WAAU,EAA2B,MAAlBzoC,EAAE0oC,gBAAsB1oC,EAAE0oC,eAAe1sC,OAAO,GAASgE,EAAE0oC,eAAe3oB,OAAQtL,EAAI,EAAM+M,EAAEoR,GAAGx3B,EAAE,aAAa,GAAGomB,EAAE,CAAC,IAAIQ,EAAE2mB,OAAOnnB,GAAG,GAAO,OAAJQ,IAAWmM,GAAG/yB,EAAE,cAAc,CAACutC,OAAO3mB,EAAExH,OAAO+D,IAAe,OAAViY,GAAGtY,GAAGoF,IAAW1I,CAAE,CAAC,GAAG+F,IAAIlM,IAAOm0B,QAAQjoB,GAAc,OAAV6V,GAAGtY,GAAGoF,IAAW1I,EAAG,IAAI6J,EAAEwO,GAAG73B,EAAEmjB,EAAEyD,GAAU,QAAJ/Z,GAAYu+B,GAAGprC,KAAIqpB,EAAE,gBAAgB,qCAAuCjjB,EAAEgf,UAASiE,EAAEoP,GAAGpP,EAAEjjB,EAAEgf,UAAS,IAAIkO,EAAEF,GAAGpzB,EAAE6M,GAAOuc,EAAEkK,EAAEuR,OAAWpb,EAAE6J,EAAEjuB,OAAUe,EAAEf,SAAQokB,EAAEgP,GAAGhP,EAAErjB,EAAEf,SAAQ,IAAgBsuB,EAAE8E,GAAGhP,EAAfkO,GAAG33B,IAAqBooB,EAAE+O,GAAGxD,EAAE3zB,GAAM4pB,EAAEyK,OAAOwB,qBAAyB,QAAJhpB,IAAWub,EAAE,yBAAyBwR,GAAGzW,EAAE,OAAO,QAAa,MAAH3G,GAAa,KAAJA,IAAQA,EAAEud,KAAK+I,SAASK,MAAK,IAAIjd,EAAE8kB,GAAGhrC,EAAE,cAAkB6zB,EAAEmE,GAAGh4B,GAAG49B,QAAY/iB,EAAE+O,EAAEyK,OAAO0B,wBAAwBnwB,QAAQiH,IAAI,EAAM4sB,EAAE,CAACmE,QAAQ/J,EAAE4Z,aAAa5yB,EAAElX,WAAWykB,EAAEslB,qBAAqB/Z,EAAEvO,QAAQiE,EAAEjK,OAAO+D,EAAEwiB,KAAK94B,EAAEg4B,OAAOzb,EAAEkM,gBAAgBlvB,EAAEunC,aAAaznB,EAAEynB,aAAa/jB,EAAEyK,OAAOiB,gBAAgBnQ,QAAQ/e,EAAE+e,SAASe,EAAEf,SAASyE,EAAEyK,OAAOlP,QAAQ5X,KAAKiP,EAAEywB,gBAAgBxsC,GAAG,IAAIsyB,GAAG/yB,EAAE,qBAAqBy5B,GAAc,OAAV2B,GAAGtY,GAAGoF,IAAW1I,EAA2E,GAAzEhD,EAAEid,EAAElsB,KAAKV,EAAE4sB,EAAEkM,KAAKtc,EAAEoQ,EAAErU,QAAQgD,EAAEqR,EAAE91B,WAAsBkX,EAAE4e,EAAEgU,cAAfrkB,EAAEqQ,EAAEoL,SAA8Bzb,EAAExoB,OAAO,EAA8C,OAA3CmyB,GAAG/yB,EAAE,yBAAyBy5B,GAAG2B,GAAGtY,GAAGoF,IAAW1I,EAAE,IAAImd,EAAEngB,EAAE1M,MAAM,KAASwZ,EAAEqT,EAAE,GAAO1C,EAAE0C,EAAE,GAAOhW,EAAEnK,EAAoH,GAA/G3B,IAAG8L,EAAE2C,EAAgC,IAAxBrkB,OAAOC,KAAKkjB,GAAGxnB,SAAoB+lB,EAAE/gB,QAAQ,KAAK,EAAG+gB,GAAG,IAASA,GAAG,IAAIA,GAAGikB,GAAGxiB,GAAM6R,IAAGtT,GAAG,IAAIsT,MAAQ4S,GAAG7sC,EAAE2mB,EAAE8S,GAAqC,OAAjCF,GAAGv5B,EAAE,mBAAmBy5B,GAAG2B,GAAGje,GAAUqC,EAAyH,GAAvHnZ,EAAEyjB,KAAKjd,EAAE+gC,cAAcjnB,GAAE,GAAMtgB,EAAEwnC,iBAAiB,aAAaxnC,EAAEivB,gBAAgBmE,EAAEnE,gBAAgBjvB,EAAE8e,QAAQsU,EAAEtU,QAAWe,EAAE4nB,gBAAiB,IAAI,IAAIpmB,KAAK2B,EAAG,GAAGA,EAAEhK,eAAeqI,GAAG,CAAC,IAAIoV,EAAEzT,EAAE3B,GAAGwkB,GAAG7lC,EAAEqhB,EAAEoV,EAAE,CAAG,IAAIpT,EAAE,CAACsf,IAAI3iC,EAAE+Y,OAAO+D,EAAE4qB,cAActU,EAAEyT,IAAI9mC,EAAEw3B,QAAQ/J,EAAE8Y,OAAOrR,EAAE0S,SAAS,CAACC,YAAYzxB,EAAE0xB,iBAAiBvnB,EAAEwnB,OAAOlU,IAAunB,GAAnnB5zB,EAAEmkB,OAAO,WAAW,IAAI,IAAInR,EAAEuzB,GAAG5sC,GAAuG,GAApG0pB,EAAEskB,SAASI,aAAajC,GAAG9lC,GAAGg1B,EAAEr7B,EAAE0pB,GAAG+f,GAAG1hC,EAAEoe,GAAG4M,GAAG/yB,EAAE,oBAAoB0pB,GAAGqJ,GAAG/yB,EAAE,mBAAmB0pB,IAAOmN,GAAG72B,GAAG,CAAY,IAAX,IAAI6M,EAAE,KAAWwM,EAAEzY,OAAO,GAAM,MAAHiM,GAAQ,CAAC,IAAI2P,EAAEnD,EAAEsL,QAAWkS,GAAGra,KAAI3P,EAAE2P,EAAE,CAAI3P,IAAGkmB,GAAGlmB,EAAE,oBAAoB6c,GAAGqJ,GAAGlmB,EAAE,mBAAmB6c,GAAG,CAAC0R,GAAGtY,GAAGoF,GAAG,CAAC,MAAM7O,GAA4C,MAAzCkgB,GAAGv5B,EAAE,mBAAmBy4B,GAAG,CAAC93B,MAAM0Y,GAAGqQ,IAAUrQ,CAAC,CAAC,EAAEhT,EAAEikB,QAAQ,WAAWmf,GAAG1hC,EAAEoe,GAAGoT,GAAGv5B,EAAE,oBAAoB0pB,GAAG6P,GAAGv5B,EAAE,iBAAiB0pB,GAAG0R,GAAGje,GAAG+K,GAAG,EAAE7hB,EAAEgoC,QAAQ,WAAW5E,GAAG1hC,EAAEoe,GAAGoT,GAAGv5B,EAAE,oBAAoB0pB,GAAG6P,GAAGv5B,EAAE,iBAAiB0pB,GAAG0R,GAAGje,GAAG+K,GAAG,EAAE7hB,EAAEioC,UAAU,WAAW7E,GAAG1hC,EAAEoe,GAAGoT,GAAGv5B,EAAE,oBAAoB0pB,GAAG6P,GAAGv5B,EAAE,eAAe0pB,GAAG0R,GAAGje,GAAG+K,GAAG,GAAM6K,GAAG/yB,EAAE,qBAAqB0pB,GAAc,OAAV0R,GAAGtY,GAAGoF,IAAW1I,EAAE,IAAIzX,EAAEuhC,GAAGtpC,GAAOmmB,EAAEqjB,GAAGxpC,GAAG+6B,GAAG,CAAC,YAAY,UAAU,WAAW,UAAS,SAASluB,GAAGkuB,GAAG,CAAC10B,EAAEA,EAAEkoC,SAAQ,SAASl1B,GAAGA,EAAEkkB,iBAAiB1wB,GAAE,SAASwM,GAAG0Z,GAAG/yB,EAAE,YAAY6M,EAAE,CAAC2hC,iBAAiBn1B,EAAEm1B,iBAAiB/I,OAAOpsB,EAAEosB,OAAOgJ,MAAMp1B,EAAEo1B,OAAO,GAAE,GAAE,IAAG1b,GAAG/yB,EAAE,kBAAkB0pB,GAAG,IAAIsT,EAAEniB,EAAE,KAAKwwB,GAAGhlC,EAAErG,EAAEooB,GAAa,OAAV/hB,EAAEyhB,KAAKkV,GAAUxd,CAAC,CAAC,SAASkvB,GAAGr1B,EAAExM,GAAG,IAAI2P,EAAE3P,EAAEm8B,IAAQhpC,EAAE,KAASS,EAAE,KAAqO,GAA7NylB,EAAE1J,EAAE,cAAcxc,EAAEwc,EAAE0kB,kBAAkB,WAAWzgC,EAAE,QAAeylB,EAAE1J,EAAE,kBAAkBxc,EAAEwc,EAAE0kB,kBAAkB,eAAezgC,EAAE,QAAeylB,EAAE1J,EAAE,sBAAqBxc,EAAEwc,EAAE0kB,kBAAkB,kBAAkBzgC,EAAE,WAAaT,EAAG,MAAO,UAAJA,EAAmB,CAAC,EAAa,CAACI,KAAKK,EAAE8M,KAAKvN,GAAI,IAAIoG,EAAEyG,EAAEmhC,SAASE,iBAAqBprB,EAAEjW,EAAEmhC,SAASI,aAAiBjxB,EAAEqa,GAAGne,EAAE,eAAmBmG,EAAEgY,GAAGne,EAAE,kBAAsB8J,EAAE6U,GAAG3e,GAAGukB,QAAYh5B,EAAE,KAASigB,EAAE,KAA8E,OAAtE1H,GAAGvY,EAAE,OAAOigB,EAAE1H,GAAUqC,GAAG5a,EAAE,UAAUigB,EAAErF,GAAU2D,IAAGve,EAAE,OAAOigB,EAAE/B,GAAG1c,GAAKye,EAAU,UAAJA,EAAmB,CAAC,GAAS,SAAJA,IAAYA,EAAE/B,GAAG1c,GAAKyG,EAAEmhC,SAASG,SAA0B,IAAlBtpB,EAAEjf,QAAQ,OAAWif,EAAEA,EAAE,IAAIhY,EAAEmhC,SAASG,QAAa,CAAC/tC,KAAKwE,EAAE2I,KAAKsX,IAAc,CAAC,CAAE,CAAC,SAASmoB,GAAGxtB,EAAE2D,GAAG,IAAIve,EAAEue,EAAE6lB,IAAQnkB,EAAE1B,EAAE/D,OAAW/F,EAAE8J,EAAE+pB,IAA8BhoB,GAApB/B,EAAE4qB,cAAoB5qB,EAAEwpB,QAAO,GAAI5Z,GAAGvT,EAAE,oBAAoB2D,GAA7B,CAAoF,GAA1C+C,EAAEthB,EAAE,iBAAiBq8B,GAAGr8B,EAAE,aAAa4a,GAAM0G,EAAEthB,EAAE,iBAAiB,CAACvE,KAAK,IAAImc,EAAE5X,EAAEs8B,kBAAkB,eAAsH,OAA7E,IAAjB1kB,EAAE5W,QAAQ,OAAUjB,EAAE0kB,EAAE7M,GAAGA,EAAE7X,EAAQ,YAASA,EAAQ,WAAEsuB,GAAG,MAAMzW,EAAE7X,GAAGuU,MAAK,WAAW0vB,GAAGpsB,EAAE,GAAS,CAAC,IAAIxc,EAAEkmB,EAAEthB,EAAE,iBAAiB,SAASA,EAAEs8B,kBAAkB,cAAc,GAAGhb,EAAEthB,EAAE,iBAAwF,OAAtEk+B,SAASK,KAAKv+B,EAAEs8B,kBAAkB,oBAAelhC,GAAG8iC,SAASuG,UAAgB,GAAGrpC,EAAG8iC,SAASuG,aAAf,CAAkCnjB,EAAEthB,EAAE,mBAA0D,SAArCA,EAAEs8B,kBAAkB,eAAyB/d,EAAE/D,OAAOI,EAAO2D,EAAE/D,OAAO0Z,GAAGtZ,EAAE5a,EAAEs8B,kBAAkB,iBAAiB,IAAI3b,EAAEmpB,GAAGlvB,EAAE2D,GAAO1iB,EAAEmE,EAAEghB,QAAQ,KAAKhhB,EAAEghB,OAAO,KAAgB,MAAXhhB,EAAEghB,OAAiB5jB,EAAE4C,EAAE+V,SAAavU,EAAExB,EAAEghB,QAAQ,IAAQwB,EAAEwC,EAAEyK,OAAO4B,YAAgBnT,EAAE2V,GAAG,CAAC4F,WAAW59B,EAAEyoC,eAAelnC,EAAE2sC,QAAQvoC,EAAE6vB,YAAY7O,GAAGjE,GAAG,GAAI4P,GAAGlO,EAAE,kBAAkB/B,GAA3B,CAAqI,GAAhG+B,EAAE/B,EAAE1D,OAAOpd,EAAE8gB,EAAEomB,eAAe9iC,EAAE0c,EAAE6rB,QAAQvnB,EAAEtE,EAAEmT,YAAY9S,EAAE/D,OAAOyF,EAAE1B,EAAEyrB,OAAOxoC,EAAE+c,EAAE0rB,YAAYzoC,EAAK0c,EAAEub,WAAW,CAAe,MAAXz5B,EAAEghB,QAAc4c,GAAGhjB,GAAGiK,EAAEjK,GAAE,SAASnG,GAAGrX,EAAEqX,EAAEurB,kBAAkB5iC,EAAE4C,EAAE4a,EAAE,IAAM+F,EAAEnlB,MAAMC,KAAK,IAAmFsE,EAA/EwY,EAAE9D,EAAEozB,aAAgBvmB,EAAEthB,EAAE,iBAAgBuY,EAAEvY,EAAEs8B,kBAAkB,eAAiBv8B,EAAEuzB,GAAG1Y,EAAErC,IAAQkC,eAAe,iBAAgB+H,EAAEziB,EAAEsxB,aAAYpR,EAAE2X,UAAUrU,IAAIyB,EAAEyK,OAAOY,eAAe,IAAI1zB,EAAE,KAASgnB,EAAE,KAAS5C,EAAE,WAAW,IAAI,IAA0HnJ,EAAtHnD,EAAE2gB,SAAS8U,cAAkBjiC,EAAE,CAAC,EAAE,IAAIA,EAAE,CAACwvB,IAAIhjB,EAAEsY,MAAMtY,EAAEA,EAAE01B,eAAe,KAAKthB,IAAIpU,EAAEA,EAAE21B,aAAa,KAAK,CAAC,MAAM31B,GAAG,CAAU6L,IAAG1I,EAAE0I,GAAKgB,EAAEthB,EAAE,mBAAkB4X,EAAE5X,EAAEs8B,kBAAkB,gBAAkB3b,EAAEnlB,OAAM2yB,GAAGgH,KAAKY,KAAK,2BAA2BlC,GAAG,CAACgQ,QAAQljB,GAAGpC,IAAgB,SAAToC,EAAEnlB,MAAewoC,GAAGrjB,EAAEhY,MAAMwlB,GAAGgH,KAAKY,KAAK,yBAAyB,CAACptB,KAAKgY,EAAEhY,SAAYu7B,GAAGvjB,EAAEhY,MAAMwlB,GAAGgH,KAAKY,KAAK,yBAAyB,CAACptB,KAAKgY,EAAEhY,SAAQ,IAAIvN,EAAEooB,EAAEvD,GAA6B,GAA1BmU,GAAGr0B,EAAE0gC,UAAUxgB,EAAErF,EAAExd,EAAEhC,EAAEwc,GAAM3P,EAAEwvB,MAAMxF,GAAGhqB,EAAEwvB,MAAMzC,GAAG/sB,EAAEwvB,IAAI,MAAM,CAAC,IAAI57B,EAAEu5B,SAAS4E,eAAehF,GAAG/sB,EAAEwvB,IAAI,OAAWj2B,EAAE,CAAC6oC,mBAA8B3vC,IAAhBqF,EAAEuqC,aAAyBvqC,EAAEuqC,aAAatlB,EAAEyK,OAAOuB,oBAAoB,GAAGn1B,EAAE,CAAC,GAAGoM,EAAE8kB,OAAOlxB,EAAE0uC,kBAAmB,IAAI1uC,EAAE0uC,kBAAkBtiC,EAAE8kB,MAAM9kB,EAAE4gB,IAAI,CAAC,MAAMpU,GAAG,CAAE5Y,EAAE2+B,MAAMh5B,EAAE,CAAC,CAAqJ,GAApJye,EAAE2X,UAAUnJ,OAAOzJ,EAAEyK,OAAOY,eAAe8F,GAAG/6B,EAAEw+B,MAAK,SAASnlB,GAAMA,EAAEmjB,WAAWnjB,EAAEmjB,UAAUrU,IAAIyB,EAAEyK,OAAOW,eAAejC,GAAG1Z,EAAE,iBAAiB8J,EAAE,IAAM+C,EAAEthB,EAAE,2BAA2B,CAAC,IAAIke,EAAEtD,EAAMqX,GAAGrX,KAAIsD,EAAEiX,KAAKY,MAAKsG,GAAGr8B,EAAE,wBAAwBke,EAAE,CAAC,IAAI3F,EAAE,WAA2J,GAAhJ4d,GAAG/6B,EAAEg/B,OAAM,SAAS3lB,GAAGA,EAAEpY,MAAM,IAAG85B,GAAG/6B,EAAEw+B,MAAK,SAASnlB,GAAMA,EAAEmjB,WAAWnjB,EAAEmjB,UAAUnJ,OAAOzJ,EAAEyK,OAAOW,eAAejC,GAAG1Z,EAAE,mBAAmB8J,EAAE,IAAMA,EAAE6qB,SAASG,OAAO,CAAC,IAAI90B,EAAE0gB,KAAK6E,eAAezb,EAAE6qB,SAASG,QAAW90B,GAAGA,EAAEwyB,eAAe,CAACC,MAAM,QAAQC,SAAS,QAAS,CAAC,GAAG/rC,EAAEghC,QAAQ5Z,EAAE,CAAC,IAAIva,EAAEuc,EAAE,SAAYvc,EAAGA,EAAEy7B,UAAUtoC,EAAEghC,MAAWvd,OAAOuW,SAASgH,MAAMhhC,EAAEghC,KAAM,CAAc,GAAbuK,GAAGvrC,EAAEw+B,KAAK75B,GAAMuhB,EAAEthB,EAAE,6BAA6B,CAAC,IAAI4X,EAAEgD,EAAMqX,GAAGrX,KAAIhD,EAAEud,KAAKY,MAAKsG,GAAGr8B,EAAE,0BAA0B4X,EAAE,CAAC4e,GAAG75B,EAAE,EAAKoD,EAAEwmC,YAAY,EAAGnhB,WAAW7M,EAAExY,EAAEwmC,aAAkBhuB,GAAI,CAAC,MAAM9D,GAAkC,MAA/BkgB,GAAG/Z,EAAE,iBAAiB2D,GAAGiY,GAAG7S,GAASlP,CAAC,CAAC,EAAMhT,EAAEujB,EAAEyK,OAAOyB,sBAAwE,GAA/CnxB,EAAE0a,eAAe,gBAAehZ,EAAE1B,EAAEyqC,YAAc/oC,GAAG0sB,GAAGvT,EAAE,wBAAwB2D,IAAqB,oBAAV1J,SAAuBugB,SAASqV,oBAAoB,CAAC,IAAInnB,EAAE,IAAIzO,SAAQ,SAASJ,EAAExM,GAAGtL,EAAE8X,EAAEkP,EAAE1b,CAAC,IAAO+Z,EAAEjB,EAAEA,EAAE,WAAWqU,SAASqV,qBAAoB,WAAe,OAAJzoB,IAAWsB,CAAC,GAAE,CAAC,CAAIvjB,EAAEumC,UAAU,EAAGlhB,WAAWrE,EAAEhhB,EAAEumC,WAAgBvlB,GAAI,CAAIvf,GAAGmzB,GAAG/Z,EAAE,qBAAqBiZ,GAAG,CAAC93B,MAAM,8BAA8BiE,EAAEghB,OAAO,SAASzC,EAAE6qB,SAASC,aAAa9qB,GAA77E,CAArX,CAA7a,CAAmuG,CAAC,IAAImsB,GAAG,CAAC,EAAE,SAASC,KAAK,MAAM,CAACC,KAAK,SAASn2B,GAAG,OAAO,IAAI,EAAEwuB,QAAQ,SAASxuB,EAAExM,GAAG,OAAO,CAAI,EAAE+3B,kBAAkB,SAASvrB,EAAExM,EAAE2P,GAAG,OAAOnD,CAAC,EAAE6kB,aAAa,SAAS7kB,GAAG,OAAO,CAAK,EAAEynB,WAAW,SAASznB,EAAExM,EAAE2P,EAAExc,GAAG,OAAO,CAAK,EAAEsrC,iBAAiB,SAASjyB,EAAExM,EAAE2P,GAAG,OAAO,IAAI,EAAE,CAAC,SAASuX,GAAG1a,EAAExM,GAAMA,EAAE2iC,MAAM3iC,EAAE2iC,KAAKhzB,GAAG8yB,GAAGj2B,GAAGof,GAAG8W,KAAK1iC,EAAE,CAAC,SAASonB,GAAG5a,UAAUi2B,GAAGj2B,EAAE,CAAC,SAAS4kB,GAAG5kB,EAAEmD,EAAExc,GAAG,GAAMV,MAAH+Z,EAAc,OAAOmD,EAAQld,MAAHkd,IAAcA,EAAE,IAASld,MAAHU,IAAcA,EAAE,IAAG,IAAI6M,EAAEyqB,GAAGje,EAAE,UAA0L,OAA7KxM,GAAGkuB,GAAGluB,EAAEiD,MAAM,MAAK,SAASuJ,GAAwB,GAAiB,YAAtCA,EAAEA,EAAEnE,QAAQ,KAAK,KAAS/T,MAAM,EAAE,IAAyC,GAAGnB,EAAE4F,QAAQyT,GAAG,EAAE,CAAC,IAAIxM,EAAEyiC,GAAGj2B,GAAMxM,GAAG2P,EAAE5W,QAAQiH,GAAG,GAAG2P,EAAE/a,KAAKoL,EAAG,OAAzF7M,EAAEyB,KAAK4X,EAAElY,MAAM,GAA2E,IAAU88B,GAAG9a,EAAE9J,GAAGmD,EAAExc,EAAE,CAAC,IAAIyvC,IAAG,EAAoE,SAASnS,GAAGjkB,GAAMo2B,IAAsB,aAAlB1V,KAAK5P,WAAyB9Q,IAAS0gB,KAAKwD,iBAAiB,mBAAmBlkB,EAAG,CAAC,SAASq2B,MAA0C,IAAlC9lB,EAAEyK,OAAOO,wBAAgCmF,KAAK4V,KAAKC,mBAAmB,YAAY,iCAAiChmB,EAAEyK,OAAOQ,eAAe,qCAAqCjL,EAAEyK,OAAOS,aAAa,KAAKlL,EAAEyK,OAAOQ,eAAe,yEAAyEjL,EAAEyK,OAAOS,aAAa,IAAIlL,EAAEyK,OAAOQ,eAAe,8EAA+E,CAAC,SAASgb,KAAK,IAAIx2B,EAAE0gB,KAAKe,cAAc,4BAA4B,OAAGzhB,EAAUgQ,EAAEhQ,EAAEF,SAAqB,IAAK,CAAC,SAAS22B,KAAK,IAAIz2B,EAAEw2B,KAAQx2B,IAAGuQ,EAAEyK,OAAOoE,GAAG7O,EAAEyK,OAAOhb,GAAG,CAAuf,OAApwC0gB,KAAKwD,iBAAiB,oBAAmB,WAAWkS,IAAG,CAAI,IAAmtBnS,IAAG,WAAWwS,KAAKJ,KAAK,IAAIr2B,EAAE0gB,KAAKY,KAAKjI,GAAGrZ,GAAG,IAAIxM,EAAEktB,KAAKiB,iBAAiB,wDAAwD3hB,EAAEkkB,iBAAiB,cAAa,SAASlkB,GAAG,IAAmBmD,EAAEwb,GAAf3e,EAAE+F,QAAsB5C,GAAGA,EAAEwsB,KAAKxsB,EAAEwsB,IAAI/e,OAAQ,IAAG,MAAMzN,EAAEiH,OAAOssB,WAAWtsB,OAAOssB,WAAW9yB,KAAKwG,QAAQ,KAAKA,OAAOssB,WAAW,SAAS12B,GAAMA,EAAEjJ,OAAOiJ,EAAEjJ,MAAMu4B,MAAMQ,KAAKpO,GAAGluB,GAAE,SAASwM,GAAG0Z,GAAG1Z,EAAE,gBAAgB,CAAC2gB,SAASD,KAAKV,aAAatG,IAAI,KAAWvW,GAAGA,EAAEnD,EAAI,EAAE2Q,YAAW,WAAW+I,GAAG1Z,EAAE,YAAY,CAAC,GAAGA,EAAE,IAAI,GAAE,EAAE,IAAUuQ,CAAC,CAAlw9C,EAAqw9C,EAAx69C,6BAAO,QAAI,sDAAF,kCAAE,yLCErE,IAAI1U,EAAUgJ,OAAOre,UAAUqV,QAC3B86B,EAAkB,OAElBC,EAES,UAGbtwC,EAAOC,QAAU,CACb,QAAWqwC,EACXC,WAAY,CACRC,QAAS,SAAUhsC,GACf,OAAO+Q,EAAQjU,KAAKkD,EAAO6rC,EAAiB,IAChD,EACAI,QAAS,SAAUjsC,GACf,OAAO+Z,OAAO/Z,EAClB,GAEJgsC,QAdS,UAeTC,QAASH,qCCnBb,IAAI9/B,EAAY,EAAQ,KACpBuT,EAAQ,EAAQ,KAChB2sB,EAAU,EAAQ,KAEtB1wC,EAAOC,QAAU,CACbywC,QAASA,EACT3sB,MAAOA,EACPvT,UAAWA,qCCPf,IAAImgC,EAAQ,EAAQ,KAEhBC,EAAMtrC,OAAOpF,UAAUwf,eACvB/Y,EAAUpF,MAAMoF,QAEhB8X,EAAW,CACXoyB,WAAW,EACXC,iBAAiB,EACjBC,WAAY,GACZC,QAAS,QACTC,iBAAiB,EACjBC,OAAO,EACPC,QAASR,EAAMS,OACfC,UAAW,IACXz7B,MAAO,EACP07B,mBAAmB,EACnBC,0BAA0B,EAC1BC,eAAgB,IAChBC,aAAa,EACbC,cAAc,EACdC,oBAAoB,GAGpBJ,EAA2B,SAAUhhB,GACrC,OAAOA,EAAIhb,QAAQ,aAAa,SAAUq8B,EAAIC,GAC1C,OAAOtzB,OAAOuzB,aAAaC,SAASF,EAAW,IACnD,GACJ,EAEIG,EAAkB,SAAUlnC,EAAKwI,GACjC,OAAIxI,GAAsB,iBAARA,GAAoBwI,EAAQ49B,OAASpmC,EAAI7E,QAAQ,MAAQ,EAChE6E,EAAIqF,MAAM,KAGdrF,CACX,EA+GImnC,EAAY,SAA8BC,EAAUpnC,EAAKwI,EAAS6+B,GAClE,GAAKD,EAAL,CAKA,IAAIvvC,EAAM2Q,EAAQu9B,UAAYqB,EAAS38B,QAAQ,cAAe,QAAU28B,EAKpEr8B,EAAQ,gBAIRqL,EAAU5N,EAAQsC,MAAQ,GALf,eAK6BilB,KAAKl4B,GAC7C4O,EAAS2P,EAAUve,EAAInB,MAAM,EAAG0f,EAAQ9d,OAAST,EAIjD4C,EAAO,GACX,GAAIgM,EAAQ,CAER,IAAK+B,EAAQo+B,cAAgBd,EAAItvC,KAAKgE,OAAOpF,UAAWqR,KAC/C+B,EAAQw9B,gBACT,OAIRvrC,EAAKzD,KAAKyP,EACd,CAKA,IADA,IAAIzQ,EAAI,EACDwS,EAAQsC,MAAQ,GAAqC,QAA/BsL,EAAUrL,EAAMglB,KAAKl4B,KAAkB7B,EAAIwS,EAAQsC,OAAO,CAEnF,GADA9U,GAAK,GACAwS,EAAQo+B,cAAgBd,EAAItvC,KAAKgE,OAAOpF,UAAWghB,EAAQ,GAAG1f,MAAM,GAAI,MACpE8R,EAAQw9B,gBACT,OAGRvrC,EAAKzD,KAAKof,EAAQ,GACtB,CAQA,OAJIA,GACA3b,EAAKzD,KAAK,IAAMa,EAAInB,MAAM0f,EAAQ9d,OAAS,KAnFjC,SAAUgvC,EAAOtnC,EAAKwI,EAAS6+B,GAG7C,IAFA,IAAIE,EAAOF,EAAernC,EAAMknC,EAAgBlnC,EAAKwI,GAE5CxS,EAAIsxC,EAAMnxC,OAAS,EAAGH,GAAK,IAAKA,EAAG,CACxC,IAAIgf,EACA9K,EAAOo9B,EAAMtxC,GAEjB,GAAa,OAATkU,GAAiB1B,EAAQm+B,YACzB3xB,EAAM,GAAGlb,OAAOytC,OACb,CACHvyB,EAAMxM,EAAQo+B,aAAepsC,OAAO2Z,OAAO,MAAQ,CAAC,EACpD,IAAIqzB,EAA+B,MAAnBt9B,EAAK0T,OAAO,IAA+C,MAAjC1T,EAAK0T,OAAO1T,EAAK/T,OAAS,GAAa+T,EAAKxT,MAAM,GAAI,GAAKwT,EACjG5R,EAAQ2uC,SAASO,EAAW,IAC3Bh/B,EAAQm+B,aAA6B,KAAda,GAGvBhyC,MAAM8C,IACJ4R,IAASs9B,GACT/zB,OAAOnb,KAAWkvC,GAClBlvC,GAAS,GACRkQ,EAAQm+B,aAAeruC,GAASkQ,EAAQy9B,YAE5CjxB,EAAM,IACF1c,GAASivC,EACQ,cAAdC,IACPxyB,EAAIwyB,GAAaD,GAXjBvyB,EAAM,CAAE,EAAGuyB,EAanB,CAEAA,EAAOvyB,CACX,CAEA,OAAOuyB,CACX,CAqDWE,CAAYhtC,EAAMuF,EAAKwI,EAAS6+B,EAhDvC,CAiDJ,EAoCAnyC,EAAOC,QAAU,SAAUswB,EAAKltB,GAC5B,IAAIiQ,EAnCoB,SAA+BjQ,GACvD,IAAKA,EACD,OAAOob,EAGX,GAAqB,OAAjBpb,EAAK8tC,cAAqCxxC,IAAjB0D,EAAK8tC,SAAiD,mBAAjB9tC,EAAK8tC,QACnE,MAAM,IAAI5wC,UAAU,iCAGxB,QAA4B,IAAjB8C,EAAK2tC,SAA4C,UAAjB3tC,EAAK2tC,SAAwC,eAAjB3tC,EAAK2tC,QACxE,MAAM,IAAIzwC,UAAU,qEAExB,IAAIywC,OAAkC,IAAjB3tC,EAAK2tC,QAA0BvyB,EAASuyB,QAAU3tC,EAAK2tC,QAE5E,MAAO,CACHH,eAAqC,IAAnBxtC,EAAKwtC,UAA4BpyB,EAASoyB,YAAcxtC,EAAKwtC,UAC/EC,gBAAiD,kBAAzBztC,EAAKytC,gBAAgCztC,EAAKytC,gBAAkBryB,EAASqyB,gBAC7FC,WAAuC,iBAApB1tC,EAAK0tC,WAA0B1tC,EAAK0tC,WAAatyB,EAASsyB,WAC7EC,QAASA,EACTC,gBAAiD,kBAAzB5tC,EAAK4tC,gBAAgC5tC,EAAK4tC,gBAAkBxyB,EAASwyB,gBAC7FC,MAA6B,kBAAf7tC,EAAK6tC,MAAsB7tC,EAAK6tC,MAAQzyB,EAASyyB,MAC/DC,QAAiC,mBAAjB9tC,EAAK8tC,QAAyB9tC,EAAK8tC,QAAU1yB,EAAS0yB,QACtEE,UAAqC,iBAAnBhuC,EAAKguC,WAA0BV,EAAM6B,SAASnvC,EAAKguC,WAAahuC,EAAKguC,UAAY5yB,EAAS4yB,UAE5Gz7B,MAA8B,iBAAfvS,EAAKuS,QAAqC,IAAfvS,EAAKuS,OAAoBvS,EAAKuS,MAAQ6I,EAAS7I,MACzF07B,mBAA8C,IAA3BjuC,EAAKiuC,kBACxBC,yBAAmE,kBAAlCluC,EAAKkuC,yBAAyCluC,EAAKkuC,yBAA2B9yB,EAAS8yB,yBACxHC,eAA+C,iBAAxBnuC,EAAKmuC,eAA8BnuC,EAAKmuC,eAAiB/yB,EAAS+yB,eACzFC,aAAkC,IAArBpuC,EAAKouC,YAClBC,aAA2C,kBAAtBruC,EAAKquC,aAA6BruC,EAAKquC,aAAejzB,EAASizB,aACpFC,mBAAuD,kBAA5BtuC,EAAKsuC,mBAAmCtuC,EAAKsuC,mBAAqBlzB,EAASkzB,mBAE9G,CAGkBc,CAAsBpvC,GAEpC,GAAY,KAARktB,SAAcA,EACd,OAAOjd,EAAQo+B,aAAepsC,OAAO2Z,OAAO,MAAQ,CAAC,EASzD,IANA,IAAIyzB,EAAyB,iBAARniB,EAlMP,SAAgCA,EAAKjd,GACnD,IAKIxS,EALAgf,EAAM,CAAC,EACP6yB,EAAWr/B,EAAQg+B,kBAAoB/gB,EAAIhb,QAAQ,MAAO,IAAMgb,EAChEqiB,EAAQt/B,EAAQk+B,iBAAmBqB,SAAWlzC,EAAY2T,EAAQk+B,eAClEt/B,EAAQygC,EAASxiC,MAAMmD,EAAQ+9B,UAAWuB,GAC1CE,GAAa,EAGb9B,EAAU19B,EAAQ09B,QACtB,GAAI19B,EAAQ29B,gBACR,IAAKnwC,EAAI,EAAGA,EAAIoR,EAAMjR,SAAUH,EACM,IAA9BoR,EAAMpR,GAAGmF,QAAQ,WAbX,mBAcFiM,EAAMpR,GACNkwC,EAAU,QAlBZ,wBAmBS9+B,EAAMpR,KACbkwC,EAAU,cAEd8B,EAAYhyC,EACZA,EAAIoR,EAAMjR,QAKtB,IAAKH,EAAI,EAAGA,EAAIoR,EAAMjR,SAAUH,EAC5B,GAAIA,IAAMgyC,EAAV,CAGA,IAKInwC,EAAKmI,EALLsF,EAAO8B,EAAMpR,GAEbiyC,EAAmB3iC,EAAKnK,QAAQ,MAChCkY,GAA4B,IAAtB40B,EAA0B3iC,EAAKnK,QAAQ,KAAO8sC,EAAmB,GAG9D,IAAT50B,GACAxb,EAAM2Q,EAAQ69B,QAAQ/gC,EAAMqO,EAAS0yB,QAASH,EAAS,OACvDlmC,EAAMwI,EAAQq+B,mBAAqB,KAAO,KAE1ChvC,EAAM2Q,EAAQ69B,QAAQ/gC,EAAK5O,MAAM,EAAG2c,GAAMM,EAAS0yB,QAASH,EAAS,OACrElmC,EAAM6lC,EAAMqC,SACRhB,EAAgB5hC,EAAK5O,MAAM2c,EAAM,GAAI7K,IACrC,SAAU2/B,GACN,OAAO3/B,EAAQ69B,QAAQ8B,EAAYx0B,EAAS0yB,QAASH,EAAS,QAClE,KAIJlmC,GAAOwI,EAAQi+B,0BAAwC,eAAZP,IAC3ClmC,EAAMymC,EAAyBzmC,IAG/BsF,EAAKnK,QAAQ,QAAU,IACvB6E,EAAMnE,EAAQmE,GAAO,CAACA,GAAOA,GAG7B8lC,EAAItvC,KAAKwe,EAAKnd,GACdmd,EAAInd,GAAOguC,EAAMuC,QAAQpzB,EAAInd,GAAMmI,GAEnCgV,EAAInd,GAAOmI,CA/Bf,CAmCJ,OAAOgV,CACX,CAoI4CqzB,CAAY5iB,EAAKjd,GAAWid,EAChEzQ,EAAMxM,EAAQo+B,aAAepsC,OAAO2Z,OAAO,MAAQ,CAAC,EAIpD1Z,EAAOD,OAAOC,KAAKmtC,GACd5xC,EAAI,EAAGA,EAAIyE,EAAKtE,SAAUH,EAAG,CAClC,IAAI6B,EAAM4C,EAAKzE,GACXsyC,EAASnB,EAAUtvC,EAAK+vC,EAAQ/vC,GAAM2Q,EAAwB,iBAARid,GAC1DzQ,EAAM6wB,EAAMzqC,MAAM4Z,EAAKszB,EAAQ9/B,EACnC,CAEA,OAAOq9B,EAAMh+B,QAAQmN,EACzB,oCC9PA,IAAI6wB,EAAQ,EAAQ,KAChBD,EAAU,EAAQ,KAClBE,EAAMtrC,OAAOpF,UAAUwf,eAEvB2zB,EAAwB,CACxBC,SAAU,SAAkBzkB,GACxB,OAAOA,EAAS,IACpB,EACAqiB,MAAO,QACPl+B,QAAS,SAAiB6b,EAAQlsB,GAC9B,OAAOksB,EAAS,IAAMlsB,EAAM,GAChC,EACA4wC,OAAQ,SAAgB1kB,GACpB,OAAOA,CACX,GAGAloB,EAAUpF,MAAMoF,QAChBwJ,EAAQoO,OAAOre,UAAUiQ,MACzBrO,EAAOP,MAAMrB,UAAU4B,KACvB0xC,EAAc,SAAUC,EAAKC,GAC7B5xC,EAAKL,MAAMgyC,EAAK9sC,EAAQ+sC,GAAgBA,EAAe,CAACA,GAC5D,EAEIC,EAAQrvB,KAAKpkB,UAAU0zC,YAEvBC,EAAgBnD,EAAiB,QACjCjyB,EAAW,CACXq1B,gBAAgB,EAChBjD,WAAW,EACXG,QAAS,QACTC,iBAAiB,EACjBI,UAAW,IACX0C,QAAQ,EACRC,QAASrD,EAAMoD,OACfE,kBAAkB,EAClB3hC,OAAQuhC,EACRK,UAAWxD,EAAQH,WAAWsD,GAE9B7gC,SAAS,EACTmhC,cAAe,SAAuBC,GAClC,OAAOT,EAAMryC,KAAK8yC,EACtB,EACAC,WAAW,EACX1C,oBAAoB,GAWpBnhC,EAAY,SAASA,EACrBoQ,EACAiO,EACAylB,EACA3C,EACA0C,EACAL,EACApuC,EACA2R,EACAs5B,EACAsD,EACA7hC,EACA4hC,EACAD,EACAjD,GAEA,IAxBuDhsC,EAwBnD8a,EAAMc,EAcV,GAbsB,mBAAXhb,EACPka,EAAMla,EAAOipB,EAAQ/O,GACdA,aAAewE,KACtBxE,EAAMq0B,EAAcr0B,GACW,UAAxBw0B,GAAmC3tC,EAAQmZ,KAClDA,EAAM6wB,EAAMqC,SAASlzB,GAAK,SAAUtb,GAChC,OAAIA,aAAiB8f,KACV6vB,EAAc3vC,GAElBA,CACX,KAGQ,OAARsb,EAAc,CACd,GAAI6xB,EACA,OAAOqC,IAAYC,EAAmBD,EAAQnlB,EAAQpQ,EAASu1B,QAAShD,EAAS,MAAO1+B,GAAUuc,EAGtG/O,EAAM,EACV,CAEA,GA7CoB,iBADmC9a,EA8C7B8a,IA5CN,iBAAN9a,GACM,kBAANA,GACM,iBAANA,GACM,iBAANA,GAyCoB2rC,EAAM4D,SAASz0B,GAAM,CACnD,GAAIk0B,EAAS,CACT,IAAIQ,EAAWP,EAAmBplB,EAASmlB,EAAQnlB,EAAQpQ,EAASu1B,QAAShD,EAAS,MAAO1+B,GAC7F,GAA4B,UAAxBgiC,GAAmCL,EAAkB,CAGrD,IAFA,IAAIQ,EAActkC,EAAM7O,KAAKid,OAAOuB,GAAM,KACtC40B,EAAe,GACV5zC,EAAI,EAAGA,EAAI2zC,EAAYxzC,SAAUH,EACtC4zC,IAAuB,IAAN5zC,EAAU,GAAK,KAAOozC,EAAUF,EAAQS,EAAY3zC,GAAI2d,EAASu1B,QAAShD,EAAS,QAAS1+B,IAEjH,MAAO,CAAC4hC,EAAUM,GAAY,IAAME,EACxC,CACA,MAAO,CAACR,EAAUM,GAAY,IAAMN,EAAUF,EAAQl0B,EAAKrB,EAASu1B,QAAShD,EAAS,QAAS1+B,IACnG,CACA,MAAO,CAAC4hC,EAAUrlB,GAAU,IAAMqlB,EAAU31B,OAAOuB,IACvD,CAEA,IAMI60B,EANAjvC,EAAS,GAEb,QAAmB,IAARoa,EACP,OAAOpa,EAIX,GAA4B,UAAxB4uC,GAAmC3tC,EAAQmZ,GAE3C60B,EAAU,CAAC,CAAEnwC,MAAOsb,EAAI7e,OAAS,EAAI6e,EAAIqB,KAAK,MAAQ,UAAO,SAC1D,GAAIxa,EAAQf,GACf+uC,EAAU/uC,MACP,CACH,IAAIL,EAAOD,OAAOC,KAAKua,GACvB60B,EAAUp9B,EAAOhS,EAAKgS,KAAKA,GAAQhS,CACvC,CAEA,IAAK,IAAIkhB,EAAI,EAAGA,EAAIkuB,EAAQ1zC,SAAUwlB,EAAG,CACrC,IAAI9jB,EAAMgyC,EAAQluB,GACdjiB,EAAuB,iBAAR7B,QAAyC,IAAdA,EAAI6B,MAAwB7B,EAAI6B,MAAQsb,EAAInd,GAE1F,IAAI0xC,GAAuB,OAAV7vC,EAAjB,CAIA,IAAIowC,EAAYjuC,EAAQmZ,GACa,mBAAxBw0B,EAAqCA,EAAoBzlB,EAAQlsB,GAAOksB,EAC/EA,GAAUgiB,EAAY,IAAMluC,EAAM,IAAMA,EAAM,KAEpD6wC,EAAY9tC,EAAQ8K,EAChBhM,EACAowC,EACAN,EACA3C,EACA0C,EACAL,EACApuC,EACA2R,EACAs5B,EACAsD,EACA7hC,EACA4hC,EACAD,EACAjD,GApBJ,CAsBJ,CAEA,OAAOtrC,CACX,EAiDA1F,EAAOC,QAAU,SAAU2gB,EAAQvd,GAC/B,IAGIsxC,EAHA70B,EAAMc,EACNtN,EAjDwB,SAAmCjQ,GAC/D,IAAKA,EACD,OAAOob,EAGX,GAAqB,OAAjBpb,EAAK2wC,cAA4C,IAAjB3wC,EAAK2wC,SAAmD,mBAAjB3wC,EAAK2wC,QAC5E,MAAM,IAAIzzC,UAAU,iCAGxB,IAAIywC,EAAU3tC,EAAK2tC,SAAWvyB,EAASuyB,QACvC,QAA4B,IAAjB3tC,EAAK2tC,SAA4C,UAAjB3tC,EAAK2tC,SAAwC,eAAjB3tC,EAAK2tC,QACxE,MAAM,IAAIzwC,UAAU,qEAGxB,IAAI+R,EAASo+B,EAAiB,QAC9B,QAA2B,IAAhBrtC,EAAKiP,OAAwB,CACpC,IAAKs+B,EAAItvC,KAAKovC,EAAQH,WAAYltC,EAAKiP,QACnC,MAAM,IAAI/R,UAAU,mCAExB+R,EAASjP,EAAKiP,MAClB,CACA,IAAI4hC,EAAYxD,EAAQH,WAAWj+B,GAE/B1M,EAAS6Y,EAAS7Y,OAKtB,OAJ2B,mBAAhBvC,EAAKuC,QAAyBe,EAAQtD,EAAKuC,WAClDA,EAASvC,EAAKuC,QAGX,CACHkuC,eAA+C,kBAAxBzwC,EAAKywC,eAA+BzwC,EAAKywC,eAAiBr1B,EAASq1B,eAC1FjD,eAAqC,IAAnBxtC,EAAKwtC,UAA4BpyB,EAASoyB,YAAcxtC,EAAKwtC,UAC/EG,QAASA,EACTC,gBAAiD,kBAAzB5tC,EAAK4tC,gBAAgC5tC,EAAK4tC,gBAAkBxyB,EAASwyB,gBAC7FI,eAAqC,IAAnBhuC,EAAKguC,UAA4B5yB,EAAS4yB,UAAYhuC,EAAKguC,UAC7E0C,OAA+B,kBAAhB1wC,EAAK0wC,OAAuB1wC,EAAK0wC,OAASt1B,EAASs1B,OAClEC,QAAiC,mBAAjB3wC,EAAK2wC,QAAyB3wC,EAAK2wC,QAAUv1B,EAASu1B,QACtEC,iBAAmD,kBAA1B5wC,EAAK4wC,iBAAiC5wC,EAAK4wC,iBAAmBx1B,EAASw1B,iBAChGruC,OAAQA,EACR0M,OAAQA,EACR4hC,UAAWA,EACXC,cAA6C,mBAAvB9wC,EAAK8wC,cAA+B9wC,EAAK8wC,cAAgB11B,EAAS01B,cACxFE,UAAqC,kBAAnBhxC,EAAKgxC,UAA0BhxC,EAAKgxC,UAAY51B,EAAS41B,UAC3E98B,KAA2B,mBAAdlU,EAAKkU,KAAsBlU,EAAKkU,KAAO,KACpDo6B,mBAAuD,kBAA5BtuC,EAAKsuC,mBAAmCtuC,EAAKsuC,mBAAqBlzB,EAASkzB,mBAE9G,CAIkBkD,CAA0BxxC,GAKV,mBAAnBiQ,EAAQ1N,OAEfka,GADAla,EAAS0N,EAAQ1N,QACJ,GAAIka,GACVnZ,EAAQ2M,EAAQ1N,UAEvB+uC,EADSrhC,EAAQ1N,QAIrB,IAMIkvC,EANAvvC,EAAO,GAEX,GAAmB,iBAARua,GAA4B,OAARA,EAC3B,MAAO,GAKPg1B,EADAzxC,GAAQA,EAAKyxC,eAAezB,EACdhwC,EAAKyxC,YACZzxC,GAAQ,YAAaA,EACdA,EAAK2P,QAAU,UAAY,SAE3B,UAGlB,IAAIshC,EAAsBjB,EAAsByB,GAE3CH,IACDA,EAAUrvC,OAAOC,KAAKua,IAGtBxM,EAAQiE,MACRo9B,EAAQp9B,KAAKjE,EAAQiE,MAGzB,IAAK,IAAIzW,EAAI,EAAGA,EAAI6zC,EAAQ1zC,SAAUH,EAAG,CACrC,IAAI6B,EAAMgyC,EAAQ7zC,GAEdwS,EAAQ+gC,WAA0B,OAAbv0B,EAAInd,IAG7B6wC,EAAYjuC,EAAMiL,EACdsP,EAAInd,GACJA,EACA2xC,EACAhhC,EAAQq+B,mBACRr+B,EAAQ+gC,UACR/gC,EAAQygC,OAASzgC,EAAQ0gC,QAAU,KACnC1gC,EAAQ1N,OACR0N,EAAQiE,KACRjE,EAAQu9B,UACRv9B,EAAQ6gC,cACR7gC,EAAQhB,OACRgB,EAAQ4gC,UACR5gC,EAAQ2gC,iBACR3gC,EAAQ09B,SAEhB,CAEA,IAAI+D,EAASxvC,EAAK4b,KAAK7N,EAAQ+9B,WAC3BxiB,GAAoC,IAA3Bvb,EAAQwgC,eAA0B,IAAM,GAYrD,OAVIxgC,EAAQ29B,kBACgB,eAApB39B,EAAQ09B,QAERniB,GAAU,uBAGVA,GAAU,mBAIXkmB,EAAO9zC,OAAS,EAAI4tB,EAASkmB,EAAS,EACjD,oCC5RA,IAAIrE,EAAU,EAAQ,KAElBE,EAAMtrC,OAAOpF,UAAUwf,eACvB/Y,EAAUpF,MAAMoF,QAEhBquC,EAAY,WAEZ,IADA,IAAI3mC,EAAQ,GACHvN,EAAI,EAAGA,EAAI,MAAOA,EACvBuN,EAAMvM,KAAK,MAAQhB,EAAI,GAAK,IAAM,IAAMA,EAAEwP,SAAS,KAAK29B,eAG5D,OAAO5/B,CACX,CAPe,GA4BX4mC,EAAgB,SAAuB32B,EAAQhL,GAE/C,IADA,IAAIwM,EAAMxM,GAAWA,EAAQo+B,aAAepsC,OAAO2Z,OAAO,MAAQ,CAAC,EAC1Dne,EAAI,EAAGA,EAAIwd,EAAOrd,SAAUH,OACR,IAAdwd,EAAOxd,KACdgf,EAAIhf,GAAKwd,EAAOxd,IAIxB,OAAOgf,CACX,EAoMA9f,EAAOC,QAAU,CACbg1C,cAAeA,EACfC,OA3IS,SAA4Bz1B,EAAQnB,GAC7C,OAAOhZ,OAAOC,KAAK+Y,GAAQ9Y,QAAO,SAAU6J,EAAK1M,GAE7C,OADA0M,EAAI1M,GAAO2b,EAAO3b,GACX0M,CACX,GAAGoQ,EACP,EAuIIyzB,QAlBU,SAAiBzsC,EAAGC,GAC9B,MAAO,GAAG9B,OAAO6B,EAAGC,EACxB,EAiBIiM,QAvDU,SAAiBnO,GAI3B,IAHA,IAAIo+B,EAAQ,CAAC,CAAE9iB,IAAK,CAAEqD,EAAG3e,GAAS2wC,KAAM,MACpCC,EAAO,GAEFt0C,EAAI,EAAGA,EAAI8hC,EAAM3hC,SAAUH,EAKhC,IAJA,IAAI6U,EAAOitB,EAAM9hC,GACbgf,EAAMnK,EAAKmK,IAAInK,EAAKw/B,MAEpB5vC,EAAOD,OAAOC,KAAKua,GACd2G,EAAI,EAAGA,EAAIlhB,EAAKtE,SAAUwlB,EAAG,CAClC,IAAI9jB,EAAM4C,EAAKkhB,GACX3b,EAAMgV,EAAInd,GACK,iBAARmI,GAA4B,OAARA,IAAuC,IAAvBsqC,EAAKnvC,QAAQ6E,KACxD83B,EAAM9gC,KAAK,CAAEge,IAAKA,EAAKq1B,KAAMxyC,IAC7ByyC,EAAKtzC,KAAKgJ,GAElB,CAKJ,OAlMe,SAAsB83B,GACrC,KAAOA,EAAM3hC,OAAS,GAAG,CACrB,IAAI0U,EAAOitB,EAAM/b,MACb/G,EAAMnK,EAAKmK,IAAInK,EAAKw/B,MAExB,GAAIxuC,EAAQmZ,GAAM,CAGd,IAFA,IAAIu1B,EAAY,GAEP5uB,EAAI,EAAGA,EAAI3G,EAAI7e,SAAUwlB,OACR,IAAX3G,EAAI2G,IACX4uB,EAAUvzC,KAAKge,EAAI2G,IAI3B9Q,EAAKmK,IAAInK,EAAKw/B,MAAQE,CAC1B,CACJ,CACJ,CA+KIC,CAAa1S,GAENp+B,CACX,EAkCI4sC,OAvIS,SAAU7gB,EAAK4gB,EAASH,GACjC,IAAIuE,EAAiBhlB,EAAIhb,QAAQ,MAAO,KACxC,GAAgB,eAAZy7B,EAEA,OAAOuE,EAAehgC,QAAQ,iBAAkBigC,UAGpD,IACI,OAAOC,mBAAmBF,EAC9B,CAAE,MAAO77B,GACL,OAAO67B,CACX,CACJ,EA4HIxB,OA1HS,SAAgBxjB,EAAKmlB,EAAgB1E,EAAS3jB,EAAM/a,GAG7D,GAAmB,IAAfie,EAAItvB,OACJ,OAAOsvB,EAGX,IAAIolB,EAASplB,EAOb,GANmB,iBAARA,EACPolB,EAASryB,OAAOpjB,UAAUoQ,SAAShP,KAAKivB,GAClB,iBAARA,IACdolB,EAASp3B,OAAOgS,IAGJ,eAAZygB,EACA,OAAO4E,OAAOD,GAAQpgC,QAAQ,mBAAmB,SAAUq8B,GACvD,MAAO,SAAWG,SAASH,EAAGpwC,MAAM,GAAI,IAAM,KAClD,IAIJ,IADA,IAAImd,EAAM,GACD7d,EAAI,EAAGA,EAAI60C,EAAO10C,SAAUH,EAAG,CACpC,IAAIokB,EAAIywB,EAAO3V,WAAWl/B,GAGhB,KAANokB,GACS,KAANA,GACM,KAANA,GACM,MAANA,GACCA,GAAK,IAAQA,GAAK,IAClBA,GAAK,IAAQA,GAAK,IAClBA,GAAK,IAAQA,GAAK,KAClB5S,IAAWo+B,EAAQF,UAAkB,KAANtrB,GAAoB,KAANA,GAEjDvG,GAAOg3B,EAAOjtB,OAAO5nB,GAIrBokB,EAAI,IACJvG,GAAYq2B,EAAS9vB,GAIrBA,EAAI,KACJvG,GAAaq2B,EAAS,IAAQ9vB,GAAK,GAAM8vB,EAAS,IAAY,GAAJ9vB,GAI1DA,EAAI,OAAUA,GAAK,MACnBvG,GAAaq2B,EAAS,IAAQ9vB,GAAK,IAAO8vB,EAAS,IAAS9vB,GAAK,EAAK,IAAS8vB,EAAS,IAAY,GAAJ9vB,IAIpGpkB,GAAK,EACLokB,EAAI,QAAiB,KAAJA,IAAc,GAA8B,KAAvBywB,EAAO3V,WAAWl/B,IAExD6d,GAAOq2B,EAAS,IAAQ9vB,GAAK,IACvB8vB,EAAS,IAAS9vB,GAAK,GAAM,IAC7B8vB,EAAS,IAAS9vB,GAAK,EAAK,IAC5B8vB,EAAS,IAAY,GAAJ9vB,GAC3B,CAEA,OAAOvG,CACX,EA4DI41B,SA9BW,SAAkBz0B,GAC7B,SAAKA,GAAsB,iBAARA,KAITA,EAAInW,aAAemW,EAAInW,YAAY4qC,UAAYz0B,EAAInW,YAAY4qC,SAASz0B,IACtF,EAyBI0yB,SAnCW,SAAkB1yB,GAC7B,MAA+C,oBAAxCxa,OAAOpF,UAAUoQ,SAAShP,KAAKwe,EAC1C,EAkCIkzB,SApBW,SAAkBloC,EAAKrH,GAClC,GAAIkD,EAAQmE,GAAM,CAEd,IADA,IAAI+qC,EAAS,GACJ/0C,EAAI,EAAGA,EAAIgK,EAAI7J,OAAQH,GAAK,EACjC+0C,EAAO/zC,KAAK2B,EAAGqH,EAAIhK,KAEvB,OAAO+0C,CACX,CACA,OAAOpyC,EAAGqH,EACd,EAYI5E,MA5MQ,SAASA,EAAMuZ,EAAQnB,EAAQhL,GAEvC,IAAKgL,EACD,OAAOmB,EAGX,GAAsB,iBAAXnB,EAAqB,CAC5B,GAAI3X,EAAQ8Y,GACRA,EAAO3d,KAAKwc,OACT,KAAImB,GAA4B,iBAAXA,EAKxB,MAAO,CAACA,EAAQnB,IAJXhL,IAAYA,EAAQo+B,cAAgBp+B,EAAQw9B,mBAAsBF,EAAItvC,KAAKgE,OAAOpF,UAAWoe,MAC9FmB,EAAOnB,IAAU,EAIzB,CAEA,OAAOmB,CACX,CAEA,IAAKA,GAA4B,iBAAXA,EAClB,MAAO,CAACA,GAAQ7a,OAAO0Z,GAG3B,IAAIw3B,EAAcr2B,EAKlB,OAJI9Y,EAAQ8Y,KAAY9Y,EAAQ2X,KAC5Bw3B,EAAcb,EAAcx1B,EAAQnM,IAGpC3M,EAAQ8Y,IAAW9Y,EAAQ2X,IAC3BA,EAAOzW,SAAQ,SAAU8N,EAAM7U,GAC3B,GAAI8vC,EAAItvC,KAAKme,EAAQ3e,GAAI,CACrB,IAAIi1C,EAAat2B,EAAO3e,GACpBi1C,GAAoC,iBAAfA,GAA2BpgC,GAAwB,iBAATA,EAC/D8J,EAAO3e,GAAKoF,EAAM6vC,EAAYpgC,EAAMrC,GAEpCmM,EAAO3d,KAAK6T,EAEpB,MACI8J,EAAO3e,GAAK6U,CAEpB,IACO8J,GAGJna,OAAOC,KAAK+Y,GAAQ9Y,QAAO,SAAU6J,EAAK1M,GAC7C,IAAI6B,EAAQ8Z,EAAO3b,GAOnB,OALIiuC,EAAItvC,KAAK+N,EAAK1M,GACd0M,EAAI1M,GAAOuD,EAAMmJ,EAAI1M,GAAM6B,EAAO8O,GAElCjE,EAAI1M,GAAO6B,EAER6K,CACX,GAAGymC,EACP,KCpGIE,yBAA2B,CAAC,EAGhC,SAASC,oBAAoBC,GAE5B,IAAIC,EAAeH,yBAAyBE,GAC5C,QAAqBv2C,IAAjBw2C,EACH,OAAOA,EAAal2C,QAGrB,IAAID,EAASg2C,yBAAyBE,GAAY,CAGjDj2C,QAAS,CAAC,GAOX,OAHAm2C,oBAAoBF,GAAU50C,KAAKtB,EAAOC,QAASD,EAAQA,EAAOC,QAASg2C,qBAGpEj2C,EAAOC,OACf,CCrBAg2C,oBAAoB51C,EAAI,SAASL,GAChC,IAAIq2C,EAASr2C,GAAUA,EAAOs2C,WAC7B,WAAa,OAAOt2C,EAAgB,OAAG,EACvC,WAAa,OAAOA,CAAQ,EAE7B,OADAi2C,oBAAoBrwB,EAAEywB,EAAQ,CAAE5vC,EAAG4vC,IAC5BA,CACR,ECNAJ,oBAAoBrwB,EAAI,SAAS3lB,EAASs2C,GACzC,IAAI,IAAI5zC,KAAO4zC,EACXN,oBAAoB9yB,EAAEozB,EAAY5zC,KAASszC,oBAAoB9yB,EAAEljB,EAAS0C,IAC5E2C,OAAO0d,eAAe/iB,EAAS0C,EAAK,CAAEuc,YAAY,EAAMsF,IAAK+xB,EAAW5zC,IAG3E,ECPAszC,oBAAoB9yB,EAAI,SAASrD,EAAKq1B,GAAQ,OAAO7vC,OAAOpF,UAAUwf,eAAepe,KAAKwe,EAAKq1B,EAAO,mFCqClGqB,EACAC,EACAC,EACAC,EAvCAC,GAAe,EACfC,GAAW,EACXjU,EAAQ,GACRkU,GAAoB,EASxB,SAASC,EAAWC,GAClB,IAAI5zC,EAAQw/B,EAAM38B,QAAQ+wC,IACX,IAAX5zC,GAAgBA,EAAQ0zC,GAC1BlU,EAAMngC,OAAOW,EAAO,EACxB,CAOA,SAAS6zC,IACPL,GAAe,EACfC,GAAW,EACX,IAAK,IAAI/1C,EAAI,EAAGA,EAAI8hC,EAAM3hC,OAAQH,IAChC8hC,EAAM9hC,KACNg2C,EAAmBh2C,EAErB8hC,EAAM3hC,OAAS,EACf61C,GAAoB,EACpBD,GAAW,CACb,CAOA,IAAIK,GAAiB,EAkBrB,SAASC,EAAeC,GACtBX,EAASW,CACX,CA2BA,SAASC,EAASxwC,EAAIuC,EAAMqzB,EAAS,CAAC,GACpC51B,EAAGohC,cACD,IAAIP,YAAYt+B,EAAM,CACpBqzB,SACAkL,SAAS,EAET2P,UAAU,EACV1P,YAAY,IAGlB,CAGA,SAAS3Y,EAAKpoB,EAAI0wC,GAChB,GAA0B,mBAAftb,YAA6Bp1B,aAAco1B,WAEpD,YADA16B,MAAMqiB,KAAK/c,EAAGqP,UAAUrO,SAAS2vC,GAAQvoB,EAAKuoB,EAAKD,KAGrD,IAAIE,GAAO,EAEX,GADAF,EAAS1wC,GAAI,IAAM4wC,GAAO,IACtBA,EACF,OACF,IAAIzhC,EAAOnP,EAAG6wC,kBACd,KAAO1hC,GACLiZ,EAAKjZ,EAAMuhC,GACXvhC,EAAOA,EAAKknB,kBAEhB,CAGA,SAASh2B,EAAK4f,KAAYjmB,GACxBmB,QAAQkF,KAAK,mBAAmB4f,OAAcjmB,EAChD,CAGA,IAAI82C,GAAU,EAqBVC,EAAwB,GACxBC,EAAwB,GAC5B,SAASC,IACP,OAAOF,EAAsBpvC,KAAK/E,GAAOA,KAC3C,CACA,SAASs0C,IACP,OAAOH,EAAsBhzC,OAAOizC,GAAuBrvC,KAAK/E,GAAOA,KACzE,CACA,SAASu0C,EAAgBC,GACvBL,EAAsB91C,KAAKm2C,EAC7B,CACA,SAASC,EAAgBD,GACvBJ,EAAsB/1C,KAAKm2C,EAC7B,CACA,SAASE,EAAYtxC,EAAIuxC,GAAuB,GAC9C,OAAOC,EAAYxxC,GAAKyxC,IAEtB,IADkBF,EAAuBL,IAAiBD,KAC5Cz2B,MAAMk3B,GAAaD,EAAQ/d,QAAQge,KAC/C,OAAO,CAAI,GAEjB,CACA,SAASF,EAAYxxC,EAAI0wC,GACvB,GAAK1wC,EAAL,CAEA,GAAI0wC,EAAS1wC,GACX,OAAOA,EAGT,GAFIA,EAAG2xC,kBACL3xC,EAAKA,EAAG2xC,iBACL3xC,EAAGszB,cAER,OAAOke,EAAYxxC,EAAGszB,cAAeod,EAP7B,CAQV,CAIA,IAAIkB,EAAmB,GAIvB,SAASC,EAAS7xC,EAAI8xC,EAAS1pB,EAAM2pB,EAAY,SA2fjD,WACEC,IAAsB,EACtB,IAAIl2C,EAAM2gB,SACVw1B,GAAyBn2C,EACzBo2C,GAAuBp0B,IAAIhiB,EAAK,IAChC,IAAIq2C,EAAgB,KAClB,KAAOD,GAAuBv0B,IAAI7hB,GAAK1B,QACrC83C,GAAuBv0B,IAAI7hB,GAAKqiB,OAAhC+zB,GACFA,GAAuBn0B,OAAOjiB,EAAI,EAhgBlCg2C,EAAO9xC,GAAI,CAAC2wC,EAAKC,KACfmB,EAAUpB,EAAKC,GACfgB,EAAiB5wC,SAAS/G,GAAMA,EAAE02C,EAAKC,KACvCwB,GAAWzB,EAAKA,EAAIzkC,YAAYlL,SAASqxC,GAAWA,MACpD1B,EAAI2B,WAAa1B,GAAM,IA+fzBoB,IAAsB,EACtBG,GAIJ,CAzgBEI,EAQF,CACA,SAASC,EAAYrkC,GACnBia,EAAKja,GAAOnO,IACVyyC,EAAkBzyC,GA0CtB,SAAwBA,GACtB,GAAIA,EAAG0yC,YACL,KAAO1yC,EAAG0yC,YAAYt4C,QACpB4F,EAAG0yC,YAAY1yB,KAAfhgB,EAEN,CA9CI2yC,CAAe3yC,EAAG,GAEtB,CAGA,IAAI4yC,EAAoB,GACpBC,EAAe,GACfC,EAAa,GAIjB,SAASC,EAAY/yC,EAAI0wC,GACC,mBAAbA,GACJ1wC,EAAG0yC,cACN1yC,EAAG0yC,YAAc,IACnB1yC,EAAG0yC,YAAYz3C,KAAKy1C,KAEpBA,EAAW1wC,EACX6yC,EAAa53C,KAAKy1C,GAEtB,CACA,SAASsC,EAAkBtC,GACzBkC,EAAkB33C,KAAKy1C,EACzB,CACA,SAASuC,EAAmBjzC,EAAIuC,EAAMmuC,GAC/B1wC,EAAGkzC,uBACNlzC,EAAGkzC,qBAAuB,CAAC,GACxBlzC,EAAGkzC,qBAAqB3wC,KAC3BvC,EAAGkzC,qBAAqB3wC,GAAQ,IAClCvC,EAAGkzC,qBAAqB3wC,GAAMtH,KAAKy1C,EACrC,CACA,SAAS+B,EAAkBzyC,EAAIoP,GACxBpP,EAAGkzC,sBAERz0C,OAAO8e,QAAQvd,EAAGkzC,sBAAsBlyC,SAAQ,EAAEuB,EAAM5E,YACxC,IAAVyR,GAAoBA,EAAM+jC,SAAS5wC,MACrC5E,EAAMqD,SAAS/G,GAAMA,aACd+F,EAAGkzC,qBAAqB3wC,GACjC,GAEJ,CAOA,IAAI6wC,EAAW,IAAIC,iBAAiBC,GAChCC,GAAqB,EACzB,SAASC,IACPJ,EAAS7T,QAAQ/L,SAAU,CAAE3oB,SAAS,EAAM4oC,WAAW,EAAMvnC,YAAY,EAAMwnC,mBAAmB,IAClGH,GAAqB,CACvB,CACA,SAASI,KAQPC,EAAcA,EAAY71C,OAAOq1C,EAASS,gBAC1Bz5C,SAAW05C,IACzBA,GAAyB,EACzBC,gBAAe,KAOjBT,EAASM,GACTA,EAAYx5C,OAAS,EANjB05C,GAAyB,CAAK,KAXlCV,EAASY,aACTT,GAAqB,CACvB,CACA,IAAIK,EAAc,GACdE,GAAyB,EAe7B,SAASG,EAAUvD,GACjB,IAAK6C,EACH,OAAO7C,IACTiD,IACA,IAAI7mC,EAAS4jC,IAEb,OADA8C,IACO1mC,CACT,CACA,IAAIonC,GAAe,EACfC,EAAoB,GASxB,SAASb,EAASc,GAChB,GAAIF,EAEF,YADAC,EAAoBA,EAAkBp2C,OAAOq2C,IAG/C,IAAIC,EAAa,GACbC,EAAe,GACfC,EAAkC,IAAIC,IACtCC,EAAoC,IAAID,IAC5C,IAAK,IAAIv6C,EAAI,EAAGA,EAAIm6C,EAAUh6C,OAAQH,IACpC,IAAIm6C,EAAUn6C,GAAG2e,OAAO87B,4BAEE,cAAtBN,EAAUn6C,GAAGL,OACfw6C,EAAUn6C,GAAGo6C,WAAWrzC,SAASmO,GAA2B,IAAlBA,EAAK4pB,UAAkBsb,EAAWp5C,KAAKkU,KACjFilC,EAAUn6C,GAAGq6C,aAAatzC,SAASmO,GAA2B,IAAlBA,EAAK4pB,UAAkBub,EAAar5C,KAAKkU,MAE7D,eAAtBilC,EAAUn6C,GAAGL,MAAuB,CACtC,IAAIoG,EAAKo0C,EAAUn6C,GAAG2e,OAClBrW,EAAO6xC,EAAUn6C,GAAGyV,cACpBilC,EAAWP,EAAUn6C,GAAG06C,SACxBC,EAAO,KACJL,EAAgBxK,IAAI/pC,IACvBu0C,EAAgBz2B,IAAI9d,EAAI,IAC1Bu0C,EAAgB52B,IAAI3d,GAAI/E,KAAK,CAAEsH,OAAM5E,MAAOqC,EAAGqzB,aAAa9wB,IAAQ,EAElEsqB,EAAS,KACN4nB,EAAkB1K,IAAI/pC,IACzBy0C,EAAkB32B,IAAI9d,EAAI,IAC5By0C,EAAkB92B,IAAI3d,GAAI/E,KAAKsH,EAAK,EAElCvC,EAAG4wB,aAAaruB,IAAsB,OAAboyC,EAC3BC,IACS50C,EAAG4wB,aAAaruB,IACzBsqB,IACA+nB,KAEA/nB,GAEJ,CAEF4nB,EAAkBzzC,SAAQ,CAAC6zC,EAAO70C,KAChCyyC,EAAkBzyC,EAAI60C,EAAM,IAE9BN,EAAgBvzC,SAAQ,CAAC6zC,EAAO70C,KAC9B4yC,EAAkB5xC,SAAS/G,GAAMA,EAAE+F,EAAI60C,IAAO,IAEhD,IAAK,IAAI1lC,KAAQmlC,EACXD,EAAWlB,SAAShkC,KAExB0jC,EAAa7xC,SAAS/G,GAAMA,EAAEkV,KAC9BqjC,EAAYrjC,IAEdklC,EAAWrzC,SAASmO,IAClBA,EAAK2lC,eAAgB,EACrB3lC,EAAKmjC,WAAY,CAAI,IAEvB,IAAK,IAAInjC,KAAQklC,EACXC,EAAanB,SAAShkC,IAErBA,EAAK4lC,qBAEH5lC,EAAK2lC,qBACL3lC,EAAKmjC,UACZQ,EAAW9xC,SAAS/G,GAAMA,EAAEkV,KAC5BA,EAAKmjC,WAAY,EACjBnjC,EAAK2lC,eAAgB,GAEvBT,EAAWrzC,SAASmO,WACXA,EAAK2lC,qBACL3lC,EAAKmjC,SAAS,IAEvB+B,EAAa,KACbC,EAAe,KACfC,EAAkB,KAClBE,EAAoB,IACtB,CAGA,SAASlrB,EAAMpa,GACb,OAAO6lC,EAAaC,EAAiB9lC,GACvC,CACA,SAAS+lC,EAAe/lC,EAAMgmC,EAAOC,GAEnC,OADAjmC,EAAKkmC,aAAe,CAACF,KAAUF,EAAiBG,GAAiBjmC,IAC1D,KACLA,EAAKkmC,aAAelmC,EAAKkmC,aAAat2C,QAAQ9E,GAAMA,IAAMk7C,GAAM,CAEpE,CACA,SAASF,EAAiB9lC,GACxB,OAAIA,EAAKkmC,aACAlmC,EAAKkmC,aACY,mBAAfjgB,YAA6BjmB,aAAgBimB,WAC/C6f,EAAiB9lC,EAAKuR,MAE1BvR,EAAK8oB,WAGHgd,EAAiB9lC,EAAK8oB,YAFpB,EAGX,CACA,SAAS+c,EAAaM,GACpB,OAAO,IAAIC,MAAM,CAAED,WAAWE,EAChC,CACA,IAAIA,EAAiB,CACnB,OAAAC,EAAQ,QAAEH,IACR,OAAO56C,MAAMqiB,KACX,IAAI24B,IAAIJ,EAAQK,SAAS17C,GAAMwE,OAAOC,KAAKzE,MAE/C,EACA,GAAA8vC,EAAI,QAAEuL,GAAW/yC,GACf,OAAIA,GAAQka,OAAOm5B,aAEZN,EAAQ96B,MACZvB,GAAQxa,OAAOpF,UAAUwf,eAAepe,KAAKwe,EAAK1W,IAEvD,EACA,GAAAob,EAAI,QAAE23B,GAAW/yC,EAAMszC,GACrB,MAAY,UAARtzC,EACKuzC,EACFC,QAAQp4B,IACb23B,EAAQ/1C,MACL0Z,GAAQxa,OAAOpF,UAAUwf,eAAepe,KAAKwe,EAAK1W,MAChD,CAAC,EACNA,EACAszC,EAEJ,EACA,GAAA/3B,EAAI,QAAEw3B,GAAW/yC,EAAM5E,EAAOk4C,GAC5B,MAAMj9B,EAAS08B,EAAQ/1C,MACpB0Z,GAAQxa,OAAOpF,UAAUwf,eAAepe,KAAKwe,EAAK1W,MAChD+yC,EAAQA,EAAQl7C,OAAS,GACxB47C,EAAav3C,OAAO4d,yBAAyBzD,EAAQrW,GAC3D,OAAIyzC,GAAYl4B,KAAOk4B,GAAYr4B,IAC1Bo4B,QAAQj4B,IAAIlF,EAAQrW,EAAM5E,EAAOk4C,GACnCE,QAAQj4B,IAAIlF,EAAQrW,EAAM5E,EACnC,GAEF,SAASm4C,IAEP,OADWC,QAAQN,QAAQ98C,MACfgG,QAAO,CAAC6J,EAAK1M,KACvB0M,EAAI1M,GAAOi6C,QAAQp4B,IAAIhlB,KAAMmD,GACtB0M,IACN,CAAC,EACN,CAGA,SAASytC,EAAkBd,GACzB,IACIe,EAAU,CAACj9B,EAAKk9B,EAAW,MAC7B13C,OAAO8e,QAAQ9e,OAAO8d,0BAA0BtD,IAAMjY,SAAQ,EAAElF,GAAO6B,QAAO0a,kBAC5E,IAAmB,IAAfA,QAAkC,IAAV1a,EAC1B,OACF,IAAIoJ,EAAoB,KAAbovC,EAAkBr6C,EAAM,GAAGq6C,KAAYr6C,IALtC,IAACmI,EAMQ,iBAAVtG,GAAgC,OAAVA,GAAkBA,EAAMy4C,eACvDn9B,EAAInd,GAAO6B,EAAM04C,WAAWlB,EAAOpuC,EAAMjL,GAPP,iBAAvBmI,EASGtG,IATiCjD,MAAMoF,QAAQmE,IAAgB,OAARA,GAS7CtG,IAAUsb,GAAStb,aAAiBmoC,SAC1DoQ,EAAQv4C,EAAOoJ,EAEnB,GACA,EAEJ,OAAOmvC,EAAQf,EACjB,CACA,SAASmB,EAAY5F,EAAU6F,EAAY,QAEzC,IAAIt9B,EAAM,CACRu9B,kBAAc,EACdJ,gBAAgB,EAChB,UAAAC,CAAWlB,EAAOpuC,EAAMjL,GACtB,OAAO40C,EAAS/3C,KAAK69C,cAAc,IAkBzC,SAAav9B,EAAKlS,GAChB,OAAOA,EAAKuC,MAAM,KAAK3K,QAAO,CAAC83C,EAAOp8B,IAAYo8B,EAAMp8B,IAAUpB,EACpE,CApB+C0E,CAAIw3B,EAAOpuC,KAAQpJ,GAAUmgB,EAAIq3B,EAAOpuC,EAAMpJ,IAAQoJ,EAAMjL,EACvG,GAGF,OADAy6C,EAAUt9B,GACFu9B,IACN,GAA4B,iBAAjBA,GAA8C,OAAjBA,GAAyBA,EAAaJ,eAAgB,CAC5F,IAAIC,EAAap9B,EAAIo9B,WAAW5/B,KAAKwC,GACrCA,EAAIo9B,WAAa,CAAClB,EAAOpuC,EAAMjL,KAC7B,IAAI46C,EAAaF,EAAaH,WAAWlB,EAAOpuC,EAAMjL,GAEtD,OADAmd,EAAIu9B,aAAeE,EACZL,EAAWlB,EAAOpuC,EAAMjL,EAAI,CAEvC,MACEmd,EAAIu9B,aAAeA,EAErB,OAAOv9B,CAAG,CAEd,CAIA,SAAS6E,EAAI7E,EAAKlS,EAAMpJ,GAGtB,GAFoB,iBAAToJ,IACTA,EAAOA,EAAKuC,MAAM,MACA,IAAhBvC,EAAK3M,OAEJ,IAAoB,IAAhB2M,EAAK3M,OACZ,MAAMD,MAEN,OAAI8e,EAAIlS,EAAK,MAGXkS,EAAIlS,EAAK,IAAM,CAAC,GAFT+W,EAAI7E,EAAIlS,EAAK,IAAKA,EAAKpM,MAAM,GAAIgD,EAK5C,CAVEsb,EAAIlS,EAAK,IAAMpJ,CAWnB,CAGA,IAAIg5C,EAAS,CAAC,EACd,SAASC,GAAMr0C,EAAMmuC,GACnBiG,EAAOp0C,GAAQmuC,CACjB,CACA,SAASmG,GAAa59B,EAAKjZ,GAoBzB,OAnBAvB,OAAO8e,QAAQo5B,GAAQ31C,SAAQ,EAAEuB,EAAMmuC,MACrC,IAAIoG,EAAoB,KAWxBr4C,OAAO0d,eAAelD,EAAK,IAAI1W,IAAQ,CACrC,GAAAob,GACE,OAAO+yB,EAAS1wC,EAZpB,WACE,GAAI82C,EACF,OAAOA,EACF,CACL,IAAKC,EAAWC,GAAYC,GAAyBj3C,GAGrD,OAFA82C,EAAoB,CAAER,iBAAgBS,GACtChE,EAAY/yC,EAAIg3C,GACTF,CACT,CACF,CAGwBI,GACtB,EACA7+B,YAAY,GACZ,IAEGY,CACT,CAGA,SAASk+B,GAASn3C,EAAIo3C,EAAY1G,KAAa12C,GAC7C,IACE,OAAO02C,KAAY12C,EACrB,CAAE,MAAO6Y,GACPwkC,GAAYxkC,EAAG7S,EAAIo3C,EACrB,CACF,CACA,SAASC,GAAYC,EAAQt3C,EAAIo3C,OAAa,GAC5C34C,OAAO4vC,OAAOiJ,EAAQ,CAAEt3C,KAAIo3C,eAC5Bj8C,QAAQkF,KAAK,4BAA4Bi3C,EAAOr3B,cAEhDm3B,EAAa,gBAAkBA,EAAa,QAAU,KAAMp3C,GAC5DwjB,YAAW,KACT,MAAM8zB,CAAM,GACX,EACL,CAGA,IAAIC,IAA8B,EAClC,SAASC,GAA0B9G,GACjC,IAAIznB,EAAQsuB,GACZA,IAA8B,EAC9B,IAAIzqC,EAAS4jC,IAEb,OADA6G,GAA8BtuB,EACvBnc,CACT,CACA,SAASgzB,GAAS9/B,EAAIo3C,EAAYK,EAAS,CAAC,GAC1C,IAAI3qC,EAEJ,OADA4qC,GAAc13C,EAAIo3C,EAAlBM,EAA+B/5C,GAAUmP,EAASnP,GAAO85C,GAClD3qC,CACT,CACA,SAAS4qC,MAAiB19C,GACxB,OAAO29C,MAAwB39C,EACjC,CACA,IAAI29C,GAAuBC,GAI3B,SAASA,GAAgB53C,EAAIo3C,GAC3B,IAAIS,EAAmB,CAAC,EACxBhB,GAAagB,EAAkB73C,GAC/B,IAAI83C,EAAY,CAACD,KAAqB5C,EAAiBj1C,IACnD+3C,EAAkC,mBAAfX,EAGzB,SAAuCU,EAAW/uB,GAChD,MAAO,CAACivB,EAAW,QACdzuB,MAAO0uB,EAAS,CAAC,EAAG/3C,SAAS,IAAO,CAAC,KAExCg4C,GAAoBF,EADPjvB,EAAKnuB,MAAMo6C,EAAa,CAACiD,KAAWH,IAAa53C,GACzB,CAEzC,CATqDi4C,CAA8BL,EAAWV,GAqC9F,SAAqCU,EAAWV,EAAYp3C,GAC1D,IAAI+oB,EA3BN,SAAoCquB,EAAYp3C,GAC9C,GAAIo4C,GAAchB,GAChB,OAAOgB,GAAchB,GAEvB,IAAIiB,EAAgB55C,OAAO65C,gBAAe3Y,iBAC1C,IAAG78B,YACCy1C,EAA0B,qBAAqBr8B,KAAKk7B,EAAW5tC,SAAW,iBAAiB0S,KAAKk7B,EAAW5tC,QAAU,eAAe4tC,SAAoBA,EAgB5J,IAAIruB,EAfsB,MACxB,IACE,IAAIyvB,EAAQ,IAAIH,EACd,CAAC,SAAU,SACX,kCAAkCE,sDAKpC,OAHA95C,OAAO0d,eAAeq8B,EAAO,OAAQ,CACnC76C,MAAO,YAAYy5C,MAEdoB,CACT,CAAE,MAAOlB,GAEP,OADAD,GAAYC,EAAQt3C,EAAIo3C,GACjBnkC,QAAQC,SACjB,GAESulC,GAEX,OADAL,GAAchB,GAAcruB,EACrBA,CACT,CAEa2vB,CAA2BtB,EAAYp3C,GAClD,MAAO,CAACg4C,EAAW,QACdzuB,MAAO0uB,EAAS,CAAC,EAAG/3C,SAAS,IAAO,CAAC,KACxC6oB,EAAKjc,YAAS,EACdic,EAAK4vB,UAAW,EAChB,IAAIC,EAAgB5D,EAAa,CAACiD,KAAWH,IAC7C,GAAoB,mBAAT/uB,EAAqB,CAC9B,IAAI8vB,EAAU9vB,EAAKA,EAAM6vB,GAAe9lC,OAAOwkC,GAAWD,GAAYC,EAAQt3C,EAAIo3C,KAC9EruB,EAAK4vB,UACPT,GAAoBF,EAAUjvB,EAAKjc,OAAQ8rC,EAAe14C,EAAQF,GAClE+oB,EAAKjc,YAAS,GAEd+rC,EAAQnmC,MAAM5F,IACZorC,GAAoBF,EAAUlrC,EAAQ8rC,EAAe14C,EAAQF,EAAG,IAC/D8S,OAAOwkC,GAAWD,GAAYC,EAAQt3C,EAAIo3C,KAAa0B,SAAQ,IAAM/vB,EAAKjc,YAAS,GAE1F,EAEJ,CAxD4GisC,CAA4BjB,EAAWV,EAAYp3C,GAC7J,OAAOm3C,GAAS1gC,KAAK,KAAMzW,EAAIo3C,EAAYW,EAC7C,CAQA,IAAIK,GAAgB,CAAC,EA+CrB,SAASF,GAAoBF,EAAUr6C,EAAOs6C,EAAQ/3C,EAAQF,GAC5D,GAAIu3C,IAAgD,mBAAV55C,EAAsB,CAC9D,IAAImP,EAASnP,EAAM/C,MAAMq9C,EAAQ/3C,GAC7B4M,aAAkBmG,QACpBnG,EAAO4F,MAAMzY,GAAMi+C,GAAoBF,EAAU/9C,EAAGg+C,EAAQ/3C,KAAS4S,OAAOwkC,GAAWD,GAAYC,EAAQt3C,EAAIrC,KAE/Gq6C,EAASlrC,EAEb,KAA4B,iBAAVnP,GAAsBA,aAAiBsV,QACvDtV,EAAM+U,MAAMzY,GAAM+9C,EAAS/9C,KAE3B+9C,EAASr6C,EAEb,CAGA,IAAIq7C,GAAiB,KACrB,SAAShxB,GAAOixB,EAAU,IACxB,OAAOD,GAAiBC,CAC1B,CAIA,IAAIC,GAAoB,CAAC,EACzB,SAASC,GAAU52C,EAAMmuC,GAEvB,OADAwI,GAAkB32C,GAAQmuC,EACnB,CACL,MAAA0I,CAAOC,GACL,IAAKH,GAAkBG,GAIrB,YAHAl+C,QAAQkF,KACN,2FAIJ,MAAMiX,EAAMgiC,GAAel6C,QAAQi6C,GACnCC,GAAe19C,OAAO0b,GAAO,EAAIA,EAAMgiC,GAAel6C,QAAQ,WAAY,EAAGmD,EAC/E,EAEJ,CACA,SAAS6vC,GAAWpyC,EAAIkM,EAAYqtC,GAElC,GADArtC,EAAaxR,MAAMqiB,KAAK7Q,GACpBlM,EAAGw5C,qBAAsB,CAC3B,IAAIC,EAAch7C,OAAO8e,QAAQvd,EAAGw5C,sBAAsB73C,KAAI,EAAEY,EAAM5E,MAAW,CAAG4E,OAAM5E,YACtF+7C,EAAmBC,GAAeF,GACtCA,EAAcA,EAAY93C,KAAKjE,GACzBg8C,EAAiBn6C,MAAMq6C,GAASA,EAAKr3C,OAAS7E,EAAU6E,OACnD,CACLA,KAAM,UAAU7E,EAAU6E,OAC1B5E,MAAO,IAAID,EAAUC,UAGlBD,IAETwO,EAAaA,EAAWnO,OAAO07C,EACjC,CACA,IAAII,EAA0B,CAAC,EAC3BC,EAAc5tC,EAAWvK,IAAIo4C,IAAwB,CAACC,EAASC,IAAYJ,EAAwBG,GAAWC,KAAUl7C,OAAOm7C,IAAwBv4C,IAoF7J,SAA4Bk4C,EAAyBN,GACnD,MAAO,EAAGh3C,OAAM5E,YACd,IAAIw8C,EAAY53C,EAAKwjB,MAAMq0B,MACvBC,EAAa93C,EAAKwjB,MAAM,uBACxBu0B,EAAY/3C,EAAKwjB,MAAM,0BAA4B,GACnDw0B,EAAWhB,GAA6BM,EAAwBt3C,IAASA,EAC7E,MAAO,CACL3I,KAAMugD,EAAYA,EAAU,GAAK,KACjCx8C,MAAO08C,EAAaA,EAAW,GAAK,KACpCC,UAAWA,EAAU34C,KAAK1H,GAAMA,EAAEyU,QAAQ,IAAK,MAC/C0oC,WAAYz5C,EACZ48C,WACD,CAEL,CAlGiKC,CAAmBX,EAAyBN,IAA4B7oC,KAAK+pC,IAC5O,OAAOX,EAAYn4C,KAAK03C,GA0C1B,SAA6Br5C,EAAIq5C,GAC/B,IAEIqB,EAAWxB,GAAkBG,EAAWz/C,OAFjC,UAGNm9C,EAAWC,GAAYC,GAAyBj3C,GACrDizC,EAAmBjzC,EAAIq5C,EAAWkB,SAAUvD,GAC5C,IAAI2D,EAAc,KACZ36C,EAAGsyC,WAAatyC,EAAG80C,gBAEvB4F,EAASE,QAAUF,EAASE,OAAO56C,EAAIq5C,EAAYtC,GACnD2D,EAAWA,EAASjkC,KAAKikC,EAAU16C,EAAIq5C,EAAYtC,GACnD/E,GAAsBE,GAAuBv0B,IAAIs0B,IAAwBh3C,KAAKy/C,GAAYA,IAAU,EAGtG,OADAC,EAAYE,YAAc7D,EACnB2D,CACT,CAxDWG,CAAoB96C,EAAIq5C,IAEnC,CACA,SAASM,GAAeztC,GACtB,OAAOxR,MAAMqiB,KAAK7Q,GAAYvK,IAAIo4C,MAA2Bh7C,QAAQ66C,IAAUM,GAAuBN,IACxG,CACA,IAAI5H,IAAsB,EACtBE,GAAyC,IAAIsC,IAC7CvC,GAAyBx1B,SAkB7B,SAASw6B,GAAyBj3C,GAChC,IAAI+6C,EAAW,IAEVC,EAASC,GAxoBhB,SAA4Bj7C,GAC1B,IAAIg3C,EAAW,OAmBf,MAAO,CAjBctG,IACnB,IAAIwK,EAAkBtL,EAAOc,GAc7B,OAbK1wC,EAAGm7C,aACNn7C,EAAGm7C,WAA6B,IAAIzF,IACpC11C,EAAGo7C,cAAgB,KACjBp7C,EAAGm7C,WAAWn6C,SAAS/G,GAAMA,KAAI,GAGrC+F,EAAGm7C,WAAWx5B,IAAIu5B,GAClBlE,EAAW,UACe,IAApBkE,IAEJl7C,EAAGm7C,WAAWp9B,OAAOm9B,GACrBrL,EAAQqL,GAAgB,EAEnBA,CAAe,EAED,KACrBlE,GAAU,EAEd,CAinBiCqE,CAAmBr7C,GAUlD,OATA+6C,EAAS9/C,KAAKggD,GASP,CARS,CACdK,OAAQC,GACR3L,OAAQoL,EACRQ,QANc9K,GAAaqK,EAAS9/C,KAAKy1C,GAOzCgH,cAAeA,GAAcjhC,KAAKihC,GAAe13C,GACjD8/B,SAAUA,GAASrpB,KAAKqpB,GAAU9/B,IAEpB,IAAM+6C,EAAS/5C,SAAS/G,GAAMA,MAEhD,CAiBA,IAAIwhD,GAAe,CAACxC,EAASyC,IAAgB,EAAGn5C,OAAM5E,YAChD4E,EAAKo5C,WAAW1C,KAClB12C,EAAOA,EAAKmM,QAAQuqC,EAASyC,IACxB,CAAEn5C,OAAM5E,UAGjB,SAASo8C,GAAwBrJ,EAAW,QAE1C,MAAO,EAAGnuC,OAAM5E,YACd,IAAM4E,KAAMy3C,EAASr8C,MAAOi+C,GAAaC,GAAsBl9C,QAAO,CAAC83C,EAAOqF,IACrEA,EAAUrF,IAChB,CAAEl0C,OAAM5E,UAGX,OAFIq8C,IAAYz3C,GACdmuC,EAASsJ,EAASz3C,GACb,CAAEA,KAAMy3C,EAASr8C,MAAOi+C,EAAU,CAE7C,CACA,IAAIC,GAAwB,GAC5B,SAASE,GAAcrL,GACrBmL,GAAsB5gD,KAAKy1C,EAC7B,CACA,SAASwJ,IAAuB,KAAE33C,IAChC,OAAO63C,KAAuBl+B,KAAK3Z,EACrC,CACA,IAAI63C,GAAuB,IAAM,IAAIlnB,OAAO,IAAI8lB,kBAgB5CgD,GAAU,UACV1C,GAAiB,CACnB,SACA,MACA,OACA,KACA,SACA,OACA,OACA,MACA,QACA,YACA,aACA,OACA,KACA0C,GACA,YAEF,SAASvB,GAAW76C,EAAGC,GACrB,IAAIo8C,GAA4C,IAApC3C,GAAel6C,QAAQQ,EAAEhG,MAAeoiD,GAAUp8C,EAAEhG,KAC5DsiD,GAA4C,IAApC5C,GAAel6C,QAAQS,EAAEjG,MAAeoiD,GAAUn8C,EAAEjG,KAChE,OAAO0/C,GAAel6C,QAAQ68C,GAAS3C,GAAel6C,QAAQ88C,EAChE,CAGA,IAAIC,GAAY,GACZC,IAAY,EAChB,SAASC,GAAS3L,EAAW,QAO3B,OALAqD,gBAAe,KACbqI,IAAa54B,YAAW,KACtB84B,IAAkB,GAClB,IAEG,IAAIrpC,SAASnC,IAClBqrC,GAAUlhD,MAAK,KACby1C,IACA5/B,GAAK,GACL,GAEN,CACA,SAASwrC,KAEP,IADAF,IAAY,EACLD,GAAU/hD,QACf+hD,GAAUh+B,OAAVg+B,EACJ,CAMA,SAASI,GAAWv8C,EAAIrC,GACtB,OAAIjD,MAAMoF,QAAQnC,GACT6+C,GAAqBx8C,EAAIrC,EAAM2c,KAAK,MACjB,iBAAV3c,GAAgC,OAAVA,EAmB1C,SAA8BqC,EAAIy8C,GAChC,IAAInzC,EAASozC,GAAgBA,EAAYpzC,MAAM,KAAKvK,OAAOG,SACvDy9C,EAASl+C,OAAO8e,QAAQk/B,GAAa9G,SAAQ,EAAE+G,EAAaE,OAAUA,GAAOtzC,EAAMozC,KAAsB39C,OAAOG,SAChH29C,EAAYp+C,OAAO8e,QAAQk/B,GAAa9G,SAAQ,EAAE+G,EAAaE,MAAWA,GAAOtzC,EAAMozC,KAAsB39C,OAAOG,SACpH49C,EAAQ,GACRC,EAAU,GAad,OAZAF,EAAU77C,SAAS/G,IACb+F,EAAGg2B,UAAUX,SAASp7B,KACxB+F,EAAGg2B,UAAUnJ,OAAO5yB,GACpB8iD,EAAQ9hD,KAAKhB,GACf,IAEF0iD,EAAO37C,SAAS/G,IACT+F,EAAGg2B,UAAUX,SAASp7B,KACzB+F,EAAGg2B,UAAUrU,IAAI1nB,GACjB6iD,EAAM7hD,KAAKhB,GACb,IAEK,KACL8iD,EAAQ/7C,SAAS/G,GAAM+F,EAAGg2B,UAAUrU,IAAI1nB,KACxC6iD,EAAM97C,SAAS/G,GAAM+F,EAAGg2B,UAAUnJ,OAAO5yB,IAAG,CAEhD,CAxCW+iD,CAAqBh9C,EAAIrC,GACN,mBAAVA,EACT4+C,GAAWv8C,EAAIrC,KAEjB6+C,GAAqBx8C,EAAIrC,EAClC,CACA,SAAS6+C,GAAqBx8C,EAAI08C,GAUhC,OADAA,GAA8B,IAAhBA,EAAuBA,EAAc,GAAKA,GAAe,GANxCO,EAOeP,EARMpzC,MAAM,KAAKvK,QAAQ9E,IAAO+F,EAAGg2B,UAAUX,SAASp7B,KAAI8E,OAAOG,SAE7Gc,EAAGg2B,UAAUrU,OAAOs7B,GACb,KACLj9C,EAAGg2B,UAAUnJ,UAAUowB,EAAQ,EAHL,IAACA,CAQjC,CA0BA,SAASC,GAAUl9C,EAAIrC,GACrB,MAAqB,iBAAVA,GAAgC,OAAVA,EAKnC,SAA6BqC,EAAIrC,GAC/B,IAAIw/C,EAAiB,CAAC,EAatB,OAZA1+C,OAAO8e,QAAQ5f,GAAOqD,SAAQ,EAAElF,EAAKshD,MACnCD,EAAerhD,GAAOkE,EAAGq9C,MAAMvhD,GAC1BA,EAAI6/C,WAAW,QAClB7/C,EAAgBA,EAqBL4S,QAAQ,kBAAmB,SAASoR,eAnBjD9f,EAAGq9C,MAAMC,YAAYxhD,EAAKshD,EAAO,IAEnC55B,YAAW,KACe,IAApBxjB,EAAGq9C,MAAMjjD,QACX4F,EAAGi2B,gBAAgB,QACrB,IAEK,KACLinB,GAAUl9C,EAAIm9C,EAAe,CAEjC,CArBWI,CAAoBv9C,EAAIrC,GAsBnC,SAA6BqC,EAAIrC,GAC/B,IAAIsrB,EAAQjpB,EAAGqzB,aAAa,QAAS11B,GAErC,OADAqC,EAAGu3B,aAAa,QAAS55B,GAClB,KACLqC,EAAGu3B,aAAa,QAAStO,GAAS,GAAG,CAEzC,CA1BSu0B,CAAoBx9C,EAAIrC,EACjC,CA+BA,SAASrC,GAAKo1C,EAAU+M,EAAW,QAEjC,IAAIC,GAAS,EACb,OAAO,WACAA,EAIHD,EAAS7iD,MAAMjC,KAAM0B,YAHrBqjD,GAAS,EACThN,EAAS91C,MAAMjC,KAAM0B,WAIzB,CACF,CA+FA,SAASsjD,GAAyB39C,EAAI49C,EAAaC,EAAe,CAAC,GAC5D79C,EAAG89C,gBACN99C,EAAG89C,cAAgB,CACjBC,MAAO,CAAEC,OAAQH,EAAc1yB,MAAO0yB,EAAc52B,IAAK42B,GACzDI,MAAO,CAAED,OAAQH,EAAc1yB,MAAO0yB,EAAc52B,IAAK42B,GACzD,GAAGzE,EAAS,OACT8E,EAAQ,QAETtV,GAAW5oC,EAAI49C,EAAa,CAC1BI,OAAQrlD,KAAKolD,MAAMC,OACnB7yB,MAAOxyB,KAAKolD,MAAM5yB,MAClBlE,IAAKtuB,KAAKolD,MAAM92B,KACfmyB,EAAQ8E,EACb,EACA,GAAApmC,CAAIshC,EAAS,OACV8E,EAAQ,QAETtV,GAAW5oC,EAAI49C,EAAa,CAC1BI,OAAQrlD,KAAKslD,MAAMD,OACnB7yB,MAAOxyB,KAAKslD,MAAM9yB,MAClBlE,IAAKtuB,KAAKslD,MAAMh3B,KACfmyB,EAAQ8E,EACb,GAEN,CA0CA,SAASC,GAAYn+C,GACnB,IAAI0K,EAAS1K,EAAGi4B,WAChB,GAAKvtB,EAEL,OAAOA,EAAO0zC,eAAiB1zC,EAASyzC,GAAYzzC,EACtD,CACA,SAASk+B,GAAW5oC,EAAI49C,GAAa,OAAEI,EAAQ7yB,MAAOkzB,EAAM,IAAEp3B,GAAQ,CAAC,EAAGmyB,EAAS,OAChF8E,EAAQ,QAIT,GAFIl+C,EAAGs+C,kBACLt+C,EAAGs+C,iBAAiBC,SACa,IAA/B9/C,OAAOC,KAAKs/C,GAAQ5jD,QAA+C,IAA/BqE,OAAOC,KAAK2/C,GAAQjkD,QAA4C,IAA5BqE,OAAOC,KAAKuoB,GAAK7sB,OAG3F,OAFAg/C,SACA8E,IAGF,IAAIM,EAAWC,EAAYC,GAoB7B,SAA2B1+C,EAAI2+C,GAC7B,IAAIC,EAAaC,EAAeC,EAC5BC,EAASzjD,IAAK,KAChB24C,GAAU,KACR2K,GAAc,EACTC,GACHF,EAAOvF,SACJ0F,IACHH,EAAO13B,MACPq1B,MAEFqC,EAAOT,QACHl+C,EAAG+0C,aACL4J,EAAOnD,iBACFx7C,EAAGs+C,gBAAgB,GAC1B,IAEJt+C,EAAGs+C,iBAAmB,CACpBU,cAAe,GACf,YAAAC,CAAavO,GACX/3C,KAAKqmD,cAAc/jD,KAAKy1C,EAC1B,EACA6N,OAAQjjD,IAAK,WACX,KAAO3C,KAAKqmD,cAAc5kD,QACxBzB,KAAKqmD,cAAc7gC,OAAnBxlB,GAGFomD,GACF,IACAA,UAEF9K,GAAU,KACR0K,EAAOxzB,QACPwzB,EAAOX,QAAQ,IAxUjB5B,IAAY,EA2UZ8C,uBAAsB,KACpB,GAAIN,EACF,OACF,IAAIO,EAAiG,IAAtFC,OAAOC,iBAAiBr/C,GAAIs/C,mBAAmB5wC,QAAQ,MAAO,IAAIA,QAAQ,IAAK,KAC1FmtB,EAA2F,IAAnFujB,OAAOC,iBAAiBr/C,GAAIu/C,gBAAgB7wC,QAAQ,MAAO,IAAIA,QAAQ,IAAK,KACvE,IAAbywC,IACFA,EAA6E,IAAlEC,OAAOC,iBAAiBr/C,GAAIw/C,kBAAkB9wC,QAAQ,IAAK,MACxEulC,GAAU,KACR0K,EAAOvF,QAAQ,IAEjByF,GAAgB,EAChBK,uBAAsB,KAChBN,IAEJ3K,GAAU,KACR0K,EAAO13B,KAAK,IAEdq1B,KACA94B,WAAWxjB,EAAGs+C,iBAAiBS,OAAQI,EAAWtjB,GAClDijB,GAAa,EAAI,GACjB,GAEN,CA7EEW,CAAkBz/C,EAAI,CACpB,KAAAmrB,GACEqzB,EAAYZ,EAAY59C,EAAIq+C,EAC9B,EACA,MAAAL,GACES,EAAab,EAAY59C,EAAIg+C,EAC/B,EACA5E,SACA,GAAAnyB,GACEu3B,IACAE,EAAUd,EAAY59C,EAAIinB,EAC5B,EACAi3B,QACA,OAAA1C,GACEiD,IACAC,GACF,GAEJ,CA4DA,SAASgB,GAAcpF,EAAWx+C,EAAK2hD,GACrC,IAAgC,IAA5BnD,EAAUl7C,QAAQtD,GACpB,OAAO2hD,EACT,MAAMkC,EAAWrF,EAAUA,EAAUl7C,QAAQtD,GAAO,GACpD,IAAK6jD,EACH,OAAOlC,EACT,GAAY,UAAR3hD,GACErC,MAAMkmD,GACR,OAAOlC,EAEX,GAAY,aAAR3hD,GAA8B,UAARA,EAAiB,CACzC,IAAIiqB,EAAQ45B,EAAS55B,MAAM,cAC3B,GAAIA,EACF,OAAOA,EAAM,EACjB,CACA,MAAY,WAARjqB,GACE,CAAC,MAAO,QAAS,OAAQ,SAAU,UAAUq3C,SAASmH,EAAUA,EAAUl7C,QAAQtD,GAAO,IACpF,CAAC6jD,EAAUrF,EAAUA,EAAUl7C,QAAQtD,GAAO,IAAIwe,KAAK,KAG3DqlC,CACT,CAlRAxG,GAAU,cAAc,CAACn5C,GAAMrC,QAAO28C,YAAWlD,eAAgBtX,SAAU8f,MAC/C,mBAAfxI,IACTA,EAAawI,EAAUxI,KACN,IAAfA,IAECA,GAAoC,kBAAfA,EAM5B,SAA4Cp3C,EAAI08C,EAAamD,GAC3DlC,GAAyB39C,EAAIu8C,GAAY,IACf,CACxB,MAAUU,IACRj9C,EAAG89C,cAAcC,MAAMC,OAASf,CAAO,EAEzC,cAAgBA,IACdj9C,EAAG89C,cAAcC,MAAM5yB,MAAQ8xB,CAAO,EAExC,YAAcA,IACZj9C,EAAG89C,cAAcC,MAAM92B,IAAMg2B,CAAO,EAEtC,MAAUA,IACRj9C,EAAG89C,cAAcG,MAAMD,OAASf,CAAO,EAEzC,cAAgBA,IACdj9C,EAAG89C,cAAcG,MAAM9yB,MAAQ8xB,CAAO,EAExC,YAAcA,IACZj9C,EAAG89C,cAAcG,MAAMh3B,IAAMg2B,CAAO,GAGpB4C,GAAOnD,EAC7B,CA1BIoD,CAAmC9/C,EAAIo3C,EAAYz5C,GA2BvD,SAAuCqC,EAAIs6C,EAAWuF,GACpDlC,GAAyB39C,EAAIk9C,IAC7B,IAAI6C,GAAiBzF,EAAUnH,SAAS,QAAUmH,EAAUnH,SAAS,SAAW0M,EAC5EG,EAAkBD,GAAiBzF,EAAUnH,SAAS,OAAS,CAAC,SAASA,SAAS0M,GAClFI,EAAmBF,GAAiBzF,EAAUnH,SAAS,QAAU,CAAC,SAASA,SAAS0M,GACpFvF,EAAUnH,SAAS,QAAU4M,IAC/BzF,EAAYA,EAAUv7C,QAAO,CAAC9E,EAAGsC,IAAUA,EAAQ+9C,EAAUl7C,QAAQ,UAEnEk7C,EAAUnH,SAAS,SAAW4M,IAChCzF,EAAYA,EAAUv7C,QAAO,CAAC9E,EAAGsC,IAAUA,EAAQ+9C,EAAUl7C,QAAQ,UAEvE,IAAI8gD,GAAY5F,EAAUnH,SAAS,aAAemH,EAAUnH,SAAS,SAGjEgN,EAFeD,GAAY5F,EAAUnH,SAAS,WAEhB,EAAI,EAClCiN,EAFaF,GAAY5F,EAAUnH,SAAS,SAElBuM,GAAcpF,EAAW,QAAS,IAAM,IAAM,EACxEze,EAAQ6jB,GAAcpF,EAAW,QAAS,GAAK,IAC/ChU,EAASoZ,GAAcpF,EAAW,SAAU,UAC5C+F,EAAW,qBACXC,EAAaZ,GAAcpF,EAAW,WAAY,KAAO,IACzDiG,EAAcb,GAAcpF,EAAW,WAAY,IAAM,IACzDkG,EAAS,iCACTR,IACFhgD,EAAG89C,cAAcC,MAAMC,OAAS,CAC9ByC,gBAAiBna,EACjBiZ,gBAAiB,GAAG1jB,KACpB6kB,mBAAoBL,EACpBf,mBAAoB,GAAGgB,KACvBK,yBAA0BH,GAE5BxgD,EAAG89C,cAAcC,MAAM5yB,MAAQ,CAC7By1B,QAAST,EACTrE,UAAW,SAASsE,MAEtBpgD,EAAG89C,cAAcC,MAAM92B,IAAM,CAC3B25B,QAAS,EACT9E,UAAW,aAGXmE,IACFjgD,EAAG89C,cAAcG,MAAMD,OAAS,CAC9ByC,gBAAiBna,EACjBiZ,gBAAiB,GAAG1jB,KACpB6kB,mBAAoBL,EACpBf,mBAAoB,GAAGiB,KACvBI,yBAA0BH,GAE5BxgD,EAAG89C,cAAcG,MAAM9yB,MAAQ,CAC7By1B,QAAS,EACT9E,UAAW,YAEb97C,EAAG89C,cAAcG,MAAMh3B,IAAM,CAC3B25B,QAAST,EACTrE,UAAW,SAASsE,MAG1B,CArFIS,CAA8B7gD,EAAIs6C,EAAW38C,GAG/C,IA4GFsf,OAAO6oB,QAAQzsC,UAAUynD,mCAAqC,SAAS9gD,EAAIrC,EAAOwnC,EAAM4b,GACtF,MAAMC,EAAyC,YAA7BxtB,SAASytB,gBAAgC/B,sBAAwB17B,WACnF,IAAI09B,EAA0B,IAAMF,EAAU7b,GAC1CxnC,EACEqC,EAAG89C,gBAAkB99C,EAAG89C,cAAcC,OAAS/9C,EAAG89C,cAAcG,OAClEj+C,EAAG89C,cAAcC,QAAUt/C,OAAO8e,QAAQvd,EAAG89C,cAAcC,MAAMC,QAAQ5jD,QAAUqE,OAAO8e,QAAQvd,EAAG89C,cAAcC,MAAM5yB,OAAO/wB,QAAUqE,OAAO8e,QAAQvd,EAAG89C,cAAcC,MAAM92B,KAAK7sB,QAAU4F,EAAG89C,cAAcqD,GAAGhc,GAAQ+b,IAE3NlhD,EAAG89C,cAAgB99C,EAAG89C,cAAcqD,GAAGhc,GAAQ+b,KAInDlhD,EAAGo+C,eAAiBp+C,EAAG89C,cAAgB,IAAI7qC,SAAQ,CAACC,EAASuP,KAC3DziB,EAAG89C,cAAchmC,KAAI,SAClB,IAAM5E,EAAQ6tC,KACjB/gD,EAAGs+C,kBAAoBt+C,EAAGs+C,iBAAiBW,cAAa,IAAMx8B,EAAO,CAAE2+B,2BAA2B,KAAQ,IACvGnuC,QAAQC,QAAQ6tC,GACrBhN,gBAAe,KACb,IAAIpnB,EAAUwxB,GAAYn+C,GACtB2sB,GACGA,EAAQ00B,kBACX10B,EAAQ00B,gBAAkB,IAC5B10B,EAAQ00B,gBAAgBpmD,KAAK+E,IAE7BghD,GAAU,KACR,IAAIM,EAAqB3Q,IACvB,IAAI8F,EAAQxjC,QAAQ4K,IAAI,CACtB8yB,EAAIyN,mBACAzN,EAAI0Q,iBAAmB,IAAI1/C,IAAI2/C,KAClC5uC,MAAK,EAAEzY,KAAOA,MAGjB,cAFO02C,EAAIyN,sBACJzN,EAAI0Q,gBACJ5K,CAAK,EAEd6K,EAAkBthD,GAAI8S,OAAOD,IAC3B,IAAKA,EAAEuuC,0BACL,MAAMvuC,CAAC,GACT,GAEN,IAEJ,EAwHA,IAAI0uC,IAAY,EAChB,SAASC,GAAgB9Q,EAAU+M,EAAW,QAE5C,MAAO,IAAIzjD,IAASunD,GAAY9D,KAAYzjD,GAAQ02C,KAAY12C,EAClE,CAIA,IAAIynD,GAAe,GACnB,SAASC,GAAehR,GACtB+Q,GAAaxmD,KAAKy1C,EACpB,CAYA,IAAIiR,IAAkB,EAwBtB,SAASC,GAAgClR,GACvC,IAAIznB,EAAQ2mB,EACZU,GAAe,CAACuR,EAAW7hD,KACzB,IAAI8hD,EAAe74B,EAAM44B,GAEzB,OADAhS,EAAQiS,GACD,MACN,IAEHpR,IACAJ,EAAernB,EACjB,CAGA,SAASxS,GAAKzW,EAAIuC,EAAM5E,EAAO28C,EAAY,IAKzC,OAJKt6C,EAAG+hD,cACN/hD,EAAG+hD,YAAcpS,EAAS,CAAC,IAC7B3vC,EAAG+hD,YAAYx/C,GAAQ5E,EACvB4E,EAAO+3C,EAAUnH,SAAS,SAAqB5wC,EA8FhCud,cAAcpR,QAAQ,UAAU,CAACqX,EAAOi8B,IAASA,EAAK5a,gBA9Fd7kC,GAErD,IAAK,SAkBT,SAAwBvC,EAAIrC,GAC1B,GAAgB,UAAZqC,EAAGpG,UACuB,IAAxBoG,EAAGkM,WAAWvO,QAChBqC,EAAGrC,MAAQA,GAETsf,OAAOglC,YAEPjiD,EAAGsjC,QADgB,kBAAV3lC,EACIukD,GAAiBliD,EAAGrC,SAAWA,EAE/BwkD,GAAwBniD,EAAGrC,MAAOA,SAG9C,GAAgB,aAAZqC,EAAGpG,KACRwlD,OAAOgD,UAAUzkD,GACnBqC,EAAGrC,MAAQA,EACDjD,MAAMoF,QAAQnC,IAA2B,kBAAVA,GAAwB,CAAC,UAAM,GAAQw1C,SAASx1C,GAGrFjD,MAAMoF,QAAQnC,GAChBqC,EAAGsjC,QAAU3lC,EAAM6c,MAAMvW,GAAQk+C,GAAwBl+C,EAAKjE,EAAGrC,SAEjEqC,EAAGsjC,UAAY3lC,EALjBqC,EAAGrC,MAAQ+Z,OAAO/Z,QAQf,GAAmB,WAAfqC,EAAGu4B,SAyChB,SAAsBv4B,EAAIrC,GACxB,MAAM0kD,EAAoB,GAAGtkD,OAAOJ,GAAOgE,KAAKy7C,GACvCA,EAAS,KAElB1iD,MAAMqiB,KAAK/c,EAAGyM,SAASzL,SAASshD,IAC9BA,EAAOC,SAAWF,EAAkBlP,SAASmP,EAAO3kD,MAAM,GAE9D,CA/CI6kD,CAAaxiD,EAAIrC,OACZ,CACL,GAAIqC,EAAGrC,QAAUA,EACf,OACFqC,EAAGrC,WAAkB,IAAVA,EAAmB,GAAKA,CACrC,CACF,CAhDM8kD,CAAeziD,EAAIrC,GACnB,MACF,IAAK,SAoDT,SAAoBqC,EAAIrC,GAClBqC,EAAG0iD,oBACL1iD,EAAG0iD,qBACL1iD,EAAG0iD,mBAAqBxF,GAAUl9C,EAAIrC,EACxC,CAvDMglD,CAAW3iD,EAAIrC,GACf,MACF,IAAK,SA4CT,SAAqBqC,EAAIrC,GACnBqC,EAAG4iD,qBACL5iD,EAAG4iD,sBACL5iD,EAAG4iD,oBAAsBrG,GAAWv8C,EAAIrC,EAC1C,CA/CMklD,CAAY7iD,EAAIrC,GAChB,MACF,IAAK,WACL,IAAK,WAkDT,SAAkCqC,EAAIuC,EAAM5E,GAC1CmlD,GAAc9iD,EAAIuC,EAAM5E,GAiB1B,SAA8BqC,EAAI+iD,EAAUplD,GACtCqC,EAAG+iD,KAAcplD,IACnBqC,EAAG+iD,GAAYplD,EAEnB,CApBEqlD,CAAqBhjD,EAAIuC,EAAM5E,EACjC,CApDMslD,CAAyBjjD,EAAIuC,EAAM5E,GACnC,MACF,QACEmlD,GAAc9iD,EAAIuC,EAAM5E,GAG9B,CA+CA,SAASmlD,GAAc9iD,EAAIuC,EAAM5E,GAC3B,CAAC,UAAM,GAAQ,GAAOw1C,SAASx1C,IAuErC,SAA6C4E,GAC3C,OAAQ,CAAC,eAAgB,eAAgB,gBAAiB,iBAAiB4wC,SAAS5wC,EACtF,CAzE+C2gD,CAAoC3gD,GAC/EvC,EAAGi2B,gBAAgB1zB,IAEf4gD,GAAc5gD,KAChB5E,EAAQ4E,GAId,SAAsBvC,EAAIojD,EAAUzlD,GAC9BqC,EAAGqzB,aAAa+vB,IAAazlD,GAC/BqC,EAAGu3B,aAAa6rB,EAAUzlD,EAE9B,CAPI0lD,CAAarjD,EAAIuC,EAAM5E,GAE3B,CAsBA,SAASwkD,GAAwBmB,EAAQC,GACvC,OAAOD,GAAUC,CACnB,CACA,SAASrB,GAAiBvC,GACxB,QAAI,CAAC,EAAG,IAAK,OAAQ,KAAM,OAAO,GAAMxM,SAASwM,KAG7C,CAAC,EAAG,IAAK,QAAS,MAAO,MAAM,GAAOxM,SAASwM,KAG5CA,EAAWzgD,QAAQygD,GAAY,KACxC,CACA,SAASwD,GAAcC,GA4BrB,MA3B0B,CACxB,WACA,UACA,WACA,WACA,SACA,OACA,WACA,YACA,YACA,WACA,aACA,kBACA,sBACA,iBACA,WACA,WACA,OACA,QACA,cACA,UACA,QACA,WACA,QACA,QACA,YAEuBjQ,SAASiQ,EACpC,CAqBA,SAASI,GAAoBxjD,EAAIuC,EAAMk7C,GACrC,IAAI7D,EAAO55C,EAAGqzB,aAAa9wB,GAC3B,OAAa,OAATq3C,EACyB,mBAAb6D,EAA0BA,IAAaA,EAC1C,KAAT7D,IAEAuJ,GAAc5gD,KACP,CAACA,EAAM,QAAQ4wC,SAASyG,GAE5BA,EACT,CAGA,SAAS6J,GAAS16B,EAAM26B,GACtB,IAAI/kC,EACJ,OAAO,WACL,IAAInkB,EAAU7B,KAAMqB,EAAOK,UAK3BwpB,aAAalF,GACbA,EAAU6E,YALE,WACV7E,EAAU,KACVoK,EAAKnuB,MAAMJ,EAASR,EACtB,GAE4B0pD,EAC9B,CACF,CAGA,SAAS5nB,GAAS/S,EAAMgjB,GACtB,IAAI4X,EACJ,OAAO,WACL,IAAoB3pD,EAAOK,UACtBspD,IACH56B,EAAKnuB,MAFOjC,KAEQqB,GACpB2pD,GAAa,EACbngC,YAAW,IAAMmgC,GAAa,GAAO5X,GAEzC,CACF,CAGA,SAAS6X,IAAWjmC,IAAKkmC,EAAU/lC,IAAKgmC,IAAcnmC,IAAKomC,EAAUjmC,IAAKkmC,IACxE,IACIC,EADAC,GAAW,EAEXC,EAAYvU,GAAO,KACrB,MAAMwU,EAAQP,IACRQ,EAAQN,IACd,GAAIG,EACFF,EAASM,GAAcF,IACvBF,GAAW,EACXD,EAAYv6C,KAAKC,UAAUy6C,OACtB,CACL,MAAMG,EAAkB76C,KAAKC,UAAUy6C,GACnCG,IAAoBN,GACtBD,EAASM,GAAcF,IACvBH,EAAYM,IAEZT,EAASQ,GAAcD,IACvBJ,EAAYv6C,KAAKC,UAAU06C,GAE/B,CACA36C,KAAKC,UAAUo6C,KACfr6C,KAAKC,UAAUk6C,IAAW,IAE5B,MAAO,KACLhU,EAAQsU,EAAU,CAEtB,CACA,SAASG,GAAc3mD,GACrB,MAAwB,iBAAVA,EAAqB+L,KAAKwT,MAAMxT,KAAKC,UAAUhM,IAAUA,CACzE,CASA,IAAI6mD,GAAS,CAAC,EACVC,IAAa,EAoBbC,GAAQ,CAAC,EAuBb,SAASC,GAAoB3kD,EAAIiZ,EAAKshC,GACpC,IAAIqK,EAAiB,GACrB,KAAOA,EAAexqD,QACpBwqD,EAAe5kC,KAAf4kC,GACF,IAAI14C,EAAazN,OAAO8e,QAAQtE,GAAKtX,KAAI,EAAEY,EAAM5E,MAAW,CAAG4E,OAAM5E,YACjE+7C,EAAmBC,GAAeztC,GActC,OAbAA,EAAaA,EAAWvK,KAAKjE,GACvBg8C,EAAiBn6C,MAAMq6C,GAASA,EAAKr3C,OAAS7E,EAAU6E,OACnD,CACLA,KAAM,UAAU7E,EAAU6E,OAC1B5E,MAAO,IAAID,EAAUC,UAGlBD,IAET00C,GAAWpyC,EAAIkM,EAAYquC,GAAU54C,KAAK0wC,IACxCuS,EAAe3pD,KAAKo3C,EAAOwI,aAC3BxI,GAAQ,IAEH,KACL,KAAOuS,EAAexqD,QACpBwqD,EAAe5kC,KAAf4kC,EAAsB,CAE5B,CAGA,IAAIC,GAAQ,CAAC,EAyFTtJ,GAtES,CACX,YAAI5L,GACF,OAAOA,CACT,EACA,WAAIE,GACF,OAAOA,CACT,EACA,UAAID,GACF,OAAOA,CACT,EACA,OAAIE,GACF,OAAOA,CACT,EACArzC,QAAS,SACTqoD,+BA1yCF,WACE5Q,GAAe,EACfZ,EAASa,GACTA,EAAoB,EACtB,EAuyCEqD,6BACAuN,wBA9hDF,SAAiCrU,GAC/BL,GAAiB,EACjBK,IACAL,GAAiB,CACnB,EA2hDEmD,0BACAG,yBACAqR,oBA5hDF,SAA6BC,GAC3BtV,EAAWsV,EAAOtV,SAClBE,EAAUoV,EAAOpV,QACjBD,EAAUc,GAAauU,EAAOrV,OAAOc,EAAU,CAAEwU,UAAYC,IACvD9U,EA9CR,SAAmBK,GAGnB,IAAkBP,IAFPO,EAGJ3U,EAAMoX,SAAShD,IAClBpU,EAAM9gC,KAAKk1C,GASRH,GAAaD,IAChBA,GAAe,EACfgE,eAAe3D,GAdnB,CA6CM8U,CAAUC,GAEVA,GACF,IAEFrV,EAAMmV,EAAOnV,GACf,EAkhDEmD,qBACAD,oBACAiC,mBACAuM,mBACA4D,gBAxZF,SAAyB1U,GACvB,MAAO,IAAI12C,IAASunD,IAAa7Q,KAAY12C,EAC/C,EAuZEm3C,kBACAE,kBACAqQ,kBACAxM,iBACAmQ,eA5zCF,WACEnR,GAAe,CACjB,EA2zCE6H,iBACArE,iBACA4N,cAp6CF,SAAuB5U,GACrBkB,EAAiB32C,KAAKy1C,EACxB,EAm6CE6U,aA1iCF,SAAsBC,GACpB7N,GAAuB6N,CACzB,EAyiCExQ,eACAyQ,YAtNF,SAAqBzlD,EAAIuC,EAAMk7C,EAAUiI,GAAU,GACjD,GAAI1lD,EAAG+hD,kBAAwC,IAAzB/hD,EAAG+hD,YAAYx/C,GACnC,OAAOvC,EAAG+hD,YAAYx/C,GACxB,GAAIvC,EAAG2lD,wBAAoD,IAA/B3lD,EAAG2lD,kBAAkBpjD,GAAkB,CACjE,IAAIqjD,EAAU5lD,EAAG2lD,kBAAkBpjD,GAEnC,OADAqjD,EAAQF,QAAUA,EACXlO,IAA0B,IACxB1X,GAAS9/B,EAAI4lD,EAAQxO,aAEhC,CACA,OAAOoM,GAAoBxjD,EAAIuC,EAAMk7C,EACvC,EA4MEjM,cACAuB,cACAzB,cACAkB,cACA8D,cAEA1N,cAEAsU,aAEAjJ,YACAkF,aACAyK,YACA9nB,YACA2nB,YACA3jB,YACA+R,WACAwK,YACAwJ,SAAU79B,GACVA,OA5+BF,SAAmB89B,GACjB9M,GAAiB8M,CACnB,EA2+BEC,OAvJF,SAAgBrV,IACEh2C,MAAMoF,QAAQ4wC,GAAYA,EAAW,CAACA,IAC5C1vC,SAAS/G,GAAMA,EAAEshD,KAC7B,EAqJE3E,SACAoP,MAjJF,SAAezjD,EAAM5E,GAKnB,GAJK8mD,KACHD,GAAS7U,EAAS6U,IAClBC,IAAa,QAED,IAAV9mD,EACF,OAAO6mD,GAAOjiD,GAEhBiiD,GAAOjiD,GAAQ5E,EACM,iBAAVA,GAAgC,OAAVA,GAAkBA,EAAMkb,eAAe,SAAiC,mBAAflb,EAAMqrC,MAC9Fwb,GAAOjiD,GAAMymC,OAEfiN,EAAkBuO,GAAOjiD,GAC3B,EAqIE4oB,MAv/CF,WAiFA,IAAmBulB,EAhFbI,GACFzwC,EAAK,+GACPywC,GAAU,EACLtd,SAASW,MACZ9zB,EAAK,uIACPmwC,EAAShd,SAAU,eACnBgd,EAAShd,SAAU,uBACnBggB,IAyEiB9C,EAxEN1wC,GAAO6xC,EAAS7xC,EAAIooB,GAyE/B0qB,EAAW73C,KAAKy1C,GAxEhBqC,GAAa/yC,GAAOwyC,EAAYxyC,KAChCgzC,GAAkB,CAAChzC,EAAI60C,KACrBzC,GAAWpyC,EAAI60C,GAAO7zC,SAASqxC,GAAWA,KAAS,IAGrD33C,MAAMqiB,KAAKyW,SAASgB,iBAAiB0c,IAAe52B,KAAK,OAAOvb,QADrCiB,IAAQsxC,EAAYtxC,EAAGszB,eAAe,KAC2BtyB,SAAShB,IACnG6xC,EAAS7xC,EAAG,IAEdwwC,EAAShd,SAAU,qBACrB,EAq+CEyyB,MAzaF,SAAeC,EAAOC,GACfA,EAAM9Q,eACT8Q,EAAM9Q,aAAe6Q,EAAM7Q,cAC7BkM,IAAY,EACZI,IAAkB,EAClBC,IAAgC,MAMlC,SAAmB5hD,GACjB,IAAIomD,GAAuB,EAS3BvU,EAAS7xC,GARW,CAAC2wC,EAAKD,KACxBtoB,EAAKuoB,GAAK,CAAC0V,EAAKzV,KACd,GAAIwV,GA1iCV,SAAgBpmD,GACd,OAAOixC,IAAgBz2B,MAAMk3B,GAAa1xC,EAAG0zB,QAAQge,IACvD,CAwiCkC4U,CAAOD,GACjC,OAAOzV,IACTwV,GAAuB,EACvB1V,EAAS2V,EAAKzV,EAAK,GACnB,GAGN,CAhBI2V,CAAUJ,EAAM,IAElB5E,IAAY,EACZI,IAAkB,CACpB,EAiaEhqB,UAvbF,SAAmB5a,EAAMypC,GACvB/E,GAAazgD,SAAS/G,GAAMA,EAAE8iB,EAAMypC,KACpCjF,IAAY,EACZK,IAAgC,KAC9B/P,EAAS2U,GAAI,CAACxmD,EAAI0wC,KAChBA,EAAS1wC,GAAI,QACX,GACF,IAEJuhD,IAAY,CACd,EA+aEkF,MAxPF,SAAoBzmD,EAAIuC,EAAMk7C,GAC5B,OAAIz9C,EAAG+hD,kBAAwC,IAAzB/hD,EAAG+hD,YAAYx/C,GAC5BvC,EAAG+hD,YAAYx/C,GACjBihD,GAAoBxjD,EAAIuC,EAAMk7C,EACvC,EAqPEiJ,MAAOn9B,EACPnB,OACAxd,KArFF,SAAcrI,EAAMmuC,GAClBmU,GAAMtiD,GAAQmuC,CAChB,EAoFEj6B,KAvIF,SAAelU,EAAMokD,GACnB,IAAIC,EAAkC,mBAAbD,EAA0B,IAAMA,EAAWA,EACpE,OAAIpkD,aAAgBujC,QACX6e,GAAoBpiD,EAAMqkD,MAEjClC,GAAMniD,GAAQqkD,EAET,OAET,GAmIA,SAASC,GAAQn9B,EAAKo9B,GACpB,MAAMnlD,EAAsBlD,OAAO2Z,OAAO,MACpC1c,EAAOguB,EAAIpgB,MAAM,KACvB,IAAK,IAAIrP,EAAI,EAAGA,EAAIyB,EAAKtB,OAAQH,IAC/B0H,EAAIjG,EAAKzB,KAAM,EAEjB,OAAO6sD,EAAoB7iD,KAAUtC,EAAIsC,EAAI6b,eAAkB7b,KAAUtC,EAAIsC,EAC/E,CACA,IAqCI8iD,GAnCAC,GAAmBvoD,OAAOwoD,OAAO,CAAC,GAElC,IADmBxoD,OAAOwoD,OAAO,IAChBxoD,OAAOpF,UAAUwf,gBAClCquC,GAAS,CAACjjD,EAAKnI,IAAQ,GAAerB,KAAKwJ,EAAKnI,GAChDgE,GAAUpF,MAAMoF,QAChBqnD,GAASljD,GAA8B,iBAAtBmjD,GAAanjD,GAE9BojD,GAAYpjD,GAAuB,iBAARA,EAC3BhL,GAAYgL,GAAgB,OAARA,GAA+B,iBAARA,EAC3CqjD,GAAiB7oD,OAAOpF,UAAUoQ,SAClC29C,GAAgBzpD,GAAU2pD,GAAe7sD,KAAKkD,GAC9C4pD,GAAa5pD,GACRypD,GAAazpD,GAAOhD,MAAM,GAAI,GAEnC6sD,GAAgB1rD,GARmB,iBAQFA,GAAgB,QAARA,GAA4B,MAAXA,EAAI,IAAc,GAAKovC,SAASpvC,EAAK,MAAQA,EACvG2rD,GAAuB7qD,IACzB,MAAMqsB,EAAwBxqB,OAAO2Z,OAAO,MAC5C,OAAQsR,GACMT,EAAMS,KACHT,EAAMS,GAAO9sB,EAAG8sB,GAChC,EAECg+B,GAAa,SAIbC,IAHWF,IAAqB/9B,GAC3BA,EAAIhb,QAAQg5C,IAAY,CAAC56B,EAAGzO,IAAMA,EAAIA,EAAE+oB,cAAgB,OAE/C,cAEdwgB,IADYH,IAAqB/9B,GAAQA,EAAIhb,QAAQi5C,GAAa,OAAO7nC,gBAC5D2nC,IAAqB/9B,GAAQA,EAAI7H,OAAO,GAAGulB,cAAgB1d,EAAI/uB,MAAM,MAElF4D,IADekpD,IAAqB/9B,GAAQA,EAAM,KAAKk+B,GAAWl+B,KAAS,KAC9D,CAAC/rB,EAAOg3C,IAAah3C,IAAUg3C,IAAah3C,GAAUA,GAASg3C,GAAaA,IAGzFkT,GAA4B,IAAIC,QAChCC,GAAc,GAEdC,GAAcvrC,OAAc,WAC5BwrC,GAAsBxrC,OAAc,mBAuBpCyrC,GAAM,EA6BV,SAAS1M,GAAQR,GACf,MAAM,KAAEmN,GAASnN,EACjB,GAAImN,EAAK/tD,OAAQ,CACf,IAAK,IAAIH,EAAI,EAAGA,EAAIkuD,EAAK/tD,OAAQH,IAC/BkuD,EAAKluD,GAAG8jB,OAAOi9B,GAEjBmN,EAAK/tD,OAAS,CAChB,CACF,CACA,IAAIguD,IAAc,EACdC,GAAa,GASjB,SAASC,KACP,MAAMphC,EAAOmhC,GAAWroC,MACxBooC,QAAuB,IAATlhC,GAAyBA,CACzC,CACA,SAASqhC,GAAM3vC,EAAQhf,EAAMkC,GAC3B,IAAKssD,SAAgC,IAAjBrB,GAClB,OAEF,IAAIyB,EAAUX,GAAUlqC,IAAI/E,GACvB4vC,GACHX,GAAU/pC,IAAIlF,EAAQ4vC,EAA0B,IAAIhU,KAEtD,IAAIiU,EAAMD,EAAQ7qC,IAAI7hB,GACjB2sD,GACHD,EAAQ1qC,IAAIhiB,EAAK2sD,EAAsB,IAAI/S,KAExC+S,EAAI1e,IAAIgd,MACX0B,EAAI9mC,IAAIolC,IACRA,GAAaoB,KAAKltD,KAAKwtD,GACnB1B,GAAat6C,QAAQi8C,SACvB3B,GAAat6C,QAAQi8C,QAAQ,CAC3B9Y,OAAQmX,GACRnuC,SACAhf,OACAkC,QAIR,CACA,SAASwwB,GAAQ1T,EAAQhf,EAAMkC,EAAK8/C,EAAUjH,EAAUgU,GACtD,MAAMH,EAAUX,GAAUlqC,IAAI/E,GAC9B,IAAK4vC,EACH,OAEF,MAAMI,EAA0B,IAAIlT,IAC9Bd,EAAQiU,IACRA,GACFA,EAAa7nD,SAASg6C,KAChBA,IAAY+L,IAAgB/L,EAAQ8N,eACtCF,EAAQjnC,IAAIq5B,EACd,GAEJ,EAEF,GAAa,UAATphD,EACF4uD,EAAQxnD,QAAQ4zC,QACX,GAAY,WAAR94C,GAAoBgE,GAAQ8Y,GACrC4vC,EAAQxnD,SAAQ,CAACynD,EAAKM,MACP,WAATA,GAAqBA,GAAQnN,IAC/BhH,EAAK6T,EACP,SAMF,YAHY,IAAR3sD,GACF84C,EAAK4T,EAAQ7qC,IAAI7hB,IAEXlC,GACN,IAAK,MACEkG,GAAQ8Y,GAKF4uC,GAAa1rD,IACtB84C,EAAK4T,EAAQ7qC,IAAI,YALjBi3B,EAAK4T,EAAQ7qC,IAAIqqC,KACbb,GAAMvuC,IACRg8B,EAAK4T,EAAQ7qC,IAAIsqC,MAKrB,MACF,IAAK,SACEnoD,GAAQ8Y,KACXg8B,EAAK4T,EAAQ7qC,IAAIqqC,KACbb,GAAMvuC,IACRg8B,EAAK4T,EAAQ7qC,IAAIsqC,MAGrB,MACF,IAAK,MACCd,GAAMvuC,IACRg8B,EAAK4T,EAAQ7qC,IAAIqqC,KAuBzBY,EAAQ5nD,SAlBKg6C,IACPA,EAAQvuC,QAAQu8C,WAClBhO,EAAQvuC,QAAQu8C,UAAU,CACxBpZ,OAAQoL,EACRpiC,SACA9c,MACAlC,OACAgiD,WACAjH,WACAgU,cAGA3N,EAAQvuC,QAAQy4C,UAClBlK,EAAQvuC,QAAQy4C,UAAUlK,GAE1BA,GACF,GAGJ,CACA,IAAIiO,GAAqCpC,GAAQ,+BAC7CqC,GAAiB,IAAIxT,IAAIj3C,OAAO0qD,oBAAoB1sC,QAAQ9a,KAAK7F,GAAQ2gB,OAAO3gB,KAAMiD,OAAOsoD,KAC7F+B,GAAuBC,KACvBC,GAA8BD,IAAa,GAC3CE,GAAwCC,KAC5C,SAASA,KACP,MAAMC,EAAmB,CAAC,EAuB1B,MAtBA,CAAC,WAAY,UAAW,eAAezoD,SAASlF,IAC9C2tD,EAAiB3tD,GAAO,YAAY9B,GAClC,MAAM4yC,EAAM8c,GAAM/wD,MAClB,IAAK,IAAIsB,EAAI,EAAG+e,EAAIrgB,KAAKyB,OAAQH,EAAI+e,EAAG/e,IACtCsuD,GAAM3b,EAAK,MAAO3yC,EAAI,IAExB,MAAM6W,EAAM87B,EAAI9wC,MAAQ9B,GACxB,OAAa,IAAT8W,IAAsB,IAARA,EACT87B,EAAI9wC,MAAQ9B,EAAK2H,IAAI+nD,KAErB54C,CAEX,CAAC,IAEH,CAAC,OAAQ,MAAO,QAAS,UAAW,UAAU9P,SAASlF,IACrD2tD,EAAiB3tD,GAAO,YAAY9B,GAnItCquD,GAAWptD,KAAKmtD,IAChBA,IAAc,EAoIV,MAAMt3C,EAAM44C,GAAM/wD,MAAMmD,GAAKlB,MAAMjC,KAAMqB,GAEzC,OADAsuD,KACOx3C,CACT,CAAC,IAEI24C,CACT,CACA,SAASJ,GAAaM,GAAa,EAAOC,GAAU,GAClD,OAAO,SAAchxC,EAAQ9c,EAAKk8C,GAChC,GAAY,mBAARl8C,EACF,OAAQ6tD,EACH,GAAY,mBAAR7tD,EACT,OAAO6tD,EACF,GAAY,YAAR7tD,GAAqBk8C,KAAc2R,EAAaC,EAAUC,GAAqBC,GAAcF,EAAUG,GAAqBC,IAAarsC,IAAI/E,GACtJ,OAAOA,EAET,MAAMqxC,EAAgBnqD,GAAQ8Y,GAC9B,IAAK+wC,GAAcM,GAAiB/C,GAAOqC,GAAuBztD,GAChE,OAAOi6C,QAAQp4B,IAAI4rC,GAAuBztD,EAAKk8C,GAEjD,MAAMlnC,EAAMilC,QAAQp4B,IAAI/E,EAAQ9c,EAAKk8C,GACrC,OAAIqP,GAASvrD,GAAOotD,GAAenf,IAAIjuC,GAAOmtD,GAAmBntD,IACxDgV,GAEJ64C,GACHpB,GAAM3vC,EAAQ,MAAO9c,GAEnB8tD,EACK94C,EAELo5C,GAAMp5C,GACcm5C,GAAkBzC,GAAa1rD,GACnBgV,EAAZA,EAAInT,MAExB1E,GAAS6X,GACJ64C,EAAaQ,GAASr5C,GAAOs5C,GAAUt5C,GAEzCA,EACT,CACF,CAEA,SAASu5C,GAAaT,GAAU,GAC9B,OAAO,SAAchxC,EAAQ9c,EAAK6B,EAAOq6C,GACvC,IAAIrD,EAAW/7B,EAAO9c,GACtB,IAAK8tD,IACHjsD,EAAQ+rD,GAAM/rD,GACdg3C,EAAW+U,GAAM/U,IACZ70C,GAAQ8Y,IAAWsxC,GAAMvV,KAAcuV,GAAMvsD,IAEhD,OADAg3C,EAASh3C,MAAQA,GACV,EAGX,MAAM2sD,EAASxqD,GAAQ8Y,IAAW4uC,GAAa1rD,GAAOsjD,OAAOtjD,GAAO8c,EAAOxe,OAAS8sD,GAAOtuC,EAAQ9c,GAC7FgR,EAASipC,QAAQj4B,IAAIlF,EAAQ9c,EAAK6B,EAAOq6C,GAQ/C,OAPIp/B,IAAW8wC,GAAM1R,KACdsS,EAEM/rD,GAAWZ,EAAOg3C,IAC3BroB,GAAQ1T,EAAQ,MAAO9c,EAAK6B,EAAOg3C,GAFnCroB,GAAQ1T,EAAQ,MAAO9c,EAAK6B,IAKzBmP,CACT,CACF,CAqBA,IAAIy9C,GAAkB,CACpB5sC,IAAKyrC,GACLtrC,IA9CyBusC,KA+CzBG,eAvBF,SAAwB5xC,EAAQ9c,GAC9B,MAAMwuD,EAASpD,GAAOtuC,EAAQ9c,GACxB64C,EAAW/7B,EAAO9c,GAClBgR,EAASipC,QAAQyU,eAAe5xC,EAAQ9c,GAI9C,OAHIgR,GAAUw9C,GACZh+B,GAAQ1T,EAAQ,SAAU9c,OAAK,EAAQ64C,GAElC7nC,CACT,EAgBEi9B,IAfF,SAAanxB,EAAQ9c,GACnB,MAAMgR,EAASipC,QAAQhM,IAAInxB,EAAQ9c,GAInC,OAHKurD,GAASvrD,IAASotD,GAAenf,IAAIjuC,IACxCysD,GAAM3vC,EAAQ,MAAO9c,GAEhBgR,CACT,EAUE2oC,QATF,SAAiB78B,GAEf,OADA2vC,GAAM3vC,EAAQ,UAAW9Y,GAAQ8Y,GAAU,SAAWovC,IAC/CjS,QAAQN,QAAQ78B,EACzB,GAQI6xC,GAAmB,CACrB9sC,IAAK2rC,GACL,GAAAxrC,CAAIlF,EAAQ9c,GAIV,OAFEX,QAAQkF,KAAK,yBAAyBqX,OAAO5b,kCAAqC8c,IAE7E,CACT,EACA,cAAA4xC,CAAe5xC,EAAQ9c,GAIrB,OAFEX,QAAQkF,KAAK,4BAA4BqX,OAAO5b,kCAAqC8c,IAEhF,CACT,GAEE8xC,GAAc/sD,GAAU1E,GAAS0E,GAASysD,GAAUzsD,GAASA,EAC7DgtD,GAAchtD,GAAU1E,GAAS0E,GAASwsD,GAASxsD,GAASA,EAC5DitD,GAAajtD,GAAUA,EACvBktD,GAAY1sD,GAAM43C,QAAQuC,eAAen6C,GAC7C,SAAS2sD,GAAMlyC,EAAQ9c,EAAK6tD,GAAa,EAAOoB,GAAY,GAK1D,MAAMC,EAAYtB,GAJlB9wC,EAASA,EAGT,SAEMqyC,EAASvB,GAAM5tD,GACjBA,IAAQmvD,IACTtB,GAAcpB,GAAMyC,EAAW,MAAOlvD,IAExC6tD,GAAcpB,GAAMyC,EAAW,MAAOC,GACvC,MAAQlhB,IAAKmhB,GAASL,GAASG,GACzBG,EAAOJ,EAAYH,GAAYjB,EAAagB,GAAaD,GAC/D,OAAIQ,EAAKzwD,KAAKuwD,EAAWlvD,GAChBqvD,EAAKvyC,EAAO+E,IAAI7hB,IACdovD,EAAKzwD,KAAKuwD,EAAWC,GACvBE,EAAKvyC,EAAO+E,IAAIstC,SACdryC,IAAWoyC,GACpBpyC,EAAO+E,IAAI7hB,GAEf,CACA,SAASsvD,GAAMtvD,EAAK6tD,GAAa,GAC/B,MAAM/wC,EAASjgB,KAGf,QACMqyD,EAAYtB,GAAM9wC,GAClBqyC,EAASvB,GAAM5tD,GAKrB,OAJIA,IAAQmvD,IACTtB,GAAcpB,GAAMyC,EAAW,MAAOlvD,IAExC6tD,GAAcpB,GAAMyC,EAAW,MAAOC,GAChCnvD,IAAQmvD,EAASryC,EAAOmxB,IAAIjuC,GAAO8c,EAAOmxB,IAAIjuC,IAAQ8c,EAAOmxB,IAAIkhB,EAC1E,CACA,SAASI,GAAKzyC,EAAQ+wC,GAAa,GAMjC,OALA/wC,EAASA,EAGT,SACC+wC,GAAcpB,GAAMmB,GAAM9wC,GAAS,UAAWovC,IACxCjS,QAAQp4B,IAAI/E,EAAQ,OAAQA,EACrC,CACA,SAAS+I,GAAIhkB,GACXA,EAAQ+rD,GAAM/rD,GACd,MAAMib,EAAS8wC,GAAM/wD,MAOrB,OANckyD,GAASjyC,GACFmxB,IAAItvC,KAAKme,EAAQjb,KAEpCib,EAAO+I,IAAIhkB,GACX2uB,GAAQ1T,EAAQ,MAAOjb,EAAOA,IAEzBhF,IACT,CACA,SAAS2yD,GAAMxvD,EAAK6B,GAClBA,EAAQ+rD,GAAM/rD,GACd,MAAMib,EAAS8wC,GAAM/wD,OACboxC,IAAKmhB,EAAMvtC,IAAK4tC,GAASV,GAASjyC,GAC1C,IAAI0xC,EAASY,EAAKzwD,KAAKme,EAAQ9c,GAC1BwuD,EAIHkB,GAAkB5yC,EAAQsyC,EAAMpvD,IAHhCA,EAAM4tD,GAAM5tD,GACZwuD,EAASY,EAAKzwD,KAAKme,EAAQ9c,IAI7B,MAAM64C,EAAW4W,EAAK9wD,KAAKme,EAAQ9c,GAOnC,OANA8c,EAAOkF,IAAIhiB,EAAK6B,GACX2sD,EAEM/rD,GAAWZ,EAAOg3C,IAC3BroB,GAAQ1T,EAAQ,MAAO9c,EAAK6B,EAAOg3C,GAFnCroB,GAAQ1T,EAAQ,MAAO9c,EAAK6B,GAIvBhF,IACT,CACA,SAAS8yD,GAAY3vD,GACnB,MAAM8c,EAAS8wC,GAAM/wD,OACboxC,IAAKmhB,EAAMvtC,IAAK4tC,GAASV,GAASjyC,GAC1C,IAAI0xC,EAASY,EAAKzwD,KAAKme,EAAQ9c,GAC1BwuD,EAIHkB,GAAkB5yC,EAAQsyC,EAAMpvD,IAHhCA,EAAM4tD,GAAM5tD,GACZwuD,EAASY,EAAKzwD,KAAKme,EAAQ9c,IAI7B,MAAM64C,EAAW4W,EAAOA,EAAK9wD,KAAKme,EAAQ9c,QAAO,EAC3CgR,EAAS8L,EAAOmF,OAAOjiB,GAI7B,OAHIwuD,GACFh+B,GAAQ1T,EAAQ,SAAU9c,OAAK,EAAQ64C,GAElC7nC,CACT,CACA,SAASkR,KACP,MAAMpF,EAAS8wC,GAAM/wD,MACf+yD,EAA2B,IAAhB9yC,EAAOyyC,KAClB1C,EAAmBxB,GAAMvuC,GAAU,IAAI47B,IAAI57B,GAAU,IAAI88B,IAAI98B,GAC7D9L,EAAS8L,EAAOoF,QAItB,OAHI0tC,GACFp/B,GAAQ1T,EAAQ,aAAS,OAAQ,EAAQ+vC,GAEpC77C,CACT,CACA,SAAS6+C,GAAchC,EAAYoB,GACjC,OAAO,SAAiBra,EAAUkb,GAChC,MAAMC,EAAWlzD,KACXigB,EAASizC,EAGf,QACMb,EAAYtB,GAAM9wC,GAClBuyC,EAAOJ,EAAYH,GAAYjB,EAAagB,GAAaD,GAE/D,OADCf,GAAcpB,GAAMyC,EAAW,UAAWhD,IACpCpvC,EAAO5X,SAAQ,CAACrD,EAAO7B,IACrB40C,EAASj2C,KAAKmxD,EAAST,EAAKxtD,GAAQwtD,EAAKrvD,GAAM+vD,IAE1D,CACF,CACA,SAASC,GAAqBjsC,EAAQ8pC,EAAYoB,GAChD,OAAO,YAAY/wD,GACjB,MAAM4e,EAASjgB,KAGf,QACMqyD,EAAYtB,GAAM9wC,GAClBmzC,EAAc5E,GAAM6D,GACpBgB,EAAoB,YAAXnsC,GAAwBA,IAAWpD,OAAOC,UAAYqvC,EAC/DE,EAAuB,SAAXpsC,GAAqBksC,EACjCG,EAAgBtzC,EAAOiH,MAAW7lB,GAClCmxD,EAAOJ,EAAYH,GAAYjB,EAAagB,GAAaD,GAE/D,OADCf,GAAcpB,GAAMyC,EAAW,UAAWiB,EAAYhE,GAAsBD,IACtE,CAEL,IAAAprC,GACE,MAAM,MAAEjf,EAAK,KAAEkf,GAASqvC,EAActvC,OACtC,OAAOC,EAAO,CAAElf,QAAOkf,QAAS,CAC9Blf,MAAOquD,EAAS,CAACb,EAAKxtD,EAAM,IAAKwtD,EAAKxtD,EAAM,KAAOwtD,EAAKxtD,GACxDkf,OAEJ,EAEA,CAACJ,OAAOC,YACN,OAAO/jB,IACT,EAEJ,CACF,CACA,SAASwzD,GAAqBvyD,GAC5B,OAAO,YAAYI,GACP,CACR,MAAM8B,EAAM9B,EAAK,GAAK,WAAWA,EAAK,OAAS,GAC/CmB,QAAQkF,KAAK,GAAGunD,GAAWhuD,gBAAmBkC,+BAAkC4tD,GAAM/wD,MACxF,CACA,MAAgB,WAATiB,GAA4BjB,IACrC,CACF,CACA,SAASyzD,KACP,MAAMC,EAA2B,CAC/B,GAAA1uC,CAAI7hB,GACF,OAAOgvD,GAAMnyD,KAAMmD,EACrB,EACA,QAAIuvD,GACF,OAAOA,GAAK1yD,KACd,EACAoxC,IAAKqhB,GACLzpC,OACA7D,IAAKwtC,GACLvtC,OAAQ0tC,GACRztC,SACAhd,QAAS2qD,IAAc,GAAO,IAE1BW,EAA2B,CAC/B,GAAA3uC,CAAI7hB,GACF,OAAOgvD,GAAMnyD,KAAMmD,GAAK,GAAO,EACjC,EACA,QAAIuvD,GACF,OAAOA,GAAK1yD,KACd,EACAoxC,IAAKqhB,GACLzpC,OACA7D,IAAKwtC,GACLvtC,OAAQ0tC,GACRztC,SACAhd,QAAS2qD,IAAc,GAAO,IAE1BY,EAA4B,CAChC,GAAA5uC,CAAI7hB,GACF,OAAOgvD,GAAMnyD,KAAMmD,GAAK,EAC1B,EACA,QAAIuvD,GACF,OAAOA,GAAK1yD,MAAM,EACpB,EACA,GAAAoxC,CAAIjuC,GACF,OAAOsvD,GAAM3wD,KAAK9B,KAAMmD,GAAK,EAC/B,EACA6lB,IAAKwqC,GACH,OAGFruC,IAAKquC,GACH,OAGFpuC,OAAQouC,GACN,UAGFnuC,MAAOmuC,GACL,SAGFnrD,QAAS2qD,IAAc,GAAM,IAEzBa,EAAmC,CACvC,GAAA7uC,CAAI7hB,GACF,OAAOgvD,GAAMnyD,KAAMmD,GAAK,GAAM,EAChC,EACA,QAAIuvD,GACF,OAAOA,GAAK1yD,MAAM,EACpB,EACA,GAAAoxC,CAAIjuC,GACF,OAAOsvD,GAAM3wD,KAAK9B,KAAMmD,GAAK,EAC/B,EACA6lB,IAAKwqC,GACH,OAGFruC,IAAKquC,GACH,OAGFpuC,OAAQouC,GACN,UAGFnuC,MAAOmuC,GACL,SAGFnrD,QAAS2qD,IAAc,GAAM,IAS/B,MAPwB,CAAC,OAAQ,SAAU,UAAWlvC,OAAOC,UAC7C1b,SAAS6e,IACvBwsC,EAAyBxsC,GAAUisC,GAAqBjsC,GAAQ,GAAO,GACvE0sC,EAA0B1sC,GAAUisC,GAAqBjsC,GAAQ,GAAM,GACvEysC,EAAyBzsC,GAAUisC,GAAqBjsC,GAAQ,GAAO,GACvE2sC,EAAiC3sC,GAAUisC,GAAqBjsC,GAAQ,GAAM,EAAK,IAE9E,CACLwsC,EACAE,EACAD,EACAE,EAEJ,CACA,IAAKC,GAAyBC,GAA0BC,GAAyBC,IAAmDR,KACpI,SAASS,GAA4BlD,EAAYC,GAC/C,MAAMH,EAAmBG,EAAUD,EAAaiD,GAAkCD,GAA0BhD,EAAa+C,GAA2BD,GACpJ,MAAO,CAAC7zC,EAAQ9c,EAAKk8C,IACP,mBAARl8C,GACM6tD,EACS,mBAAR7tD,EACF6tD,EACU,YAAR7tD,EACF8c,EAEFm9B,QAAQp4B,IAAIupC,GAAOuC,EAAkB3tD,IAAQA,KAAO8c,EAAS6wC,EAAmB7wC,EAAQ9c,EAAKk8C,EAExG,CACA,IAAI8U,GAA4B,CAC9BnvC,IAAqBkvC,IAA4B,GAAO,IAEtDE,GAA6B,CAC/BpvC,IAAqBkvC,IAA4B,GAAM,IAEzD,SAASrB,GAAkB5yC,EAAQsyC,EAAMpvD,GACvC,MAAMmvD,EAASvB,GAAM5tD,GACrB,GAAImvD,IAAWnvD,GAAOovD,EAAKzwD,KAAKme,EAAQqyC,GAAS,CAC/C,MAAMrxD,EAAO2tD,GAAU3uC,GACvBzd,QAAQkF,KAAK,YAAYzG,mEAA+E,QAATA,EAAiB,WAAa,iKAC/H,CACF,CACA,IAAIowD,GAA8B,IAAIlC,QAClCiC,GAAqC,IAAIjC,QACzCgC,GAA8B,IAAIhC,QAClC+B,GAAqC,IAAI/B,QAqB7C,SAASsC,GAAUxxC,GACjB,OAAIA,GAAUA,EAGd,eACSA,EAEFo0C,GAAqBp0C,GAAQ,EAAO2xC,GAAiBuC,GAA2B9C,GACzF,CACA,SAASG,GAASvxC,GAChB,OAAOo0C,GAAqBp0C,GAAQ,EAAM6xC,GAAkBsC,GAA4BjD,GAC1F,CACA,SAASkD,GAAqBp0C,EAAQ+wC,EAAYsD,EAAcC,EAAoBC,GAClF,IAAKl0D,GAAS2f,GAIZ,OAFEzd,QAAQkF,KAAK,kCAAkCqX,OAAOkB,MAEjDA,EAET,GAAIA,EAGJ,WAAO+wC,IAAc/wC,EAGrB,gBACE,OAAOA,EAET,MAAMw0C,EAAgBD,EAASxvC,IAAI/E,GACnC,GAAIw0C,EACF,OAAOA,EAET,MAAMC,GAtCe1vD,EAsCYib,GAlCjC,WAAMna,OAAO6uD,aAAa3vD,GAAS,EAlBrC,SAAuB4vD,GACrB,OAAQA,GACN,IAAK,SACL,IAAK,QACH,OAAO,EACT,IAAK,MACL,IAAK,MACL,IAAK,UACL,IAAK,UACH,OAAO,EACT,QACE,OAAO,EAEb,CAKyCC,CAAcjG,GAAU5pD,IAJjE,IAAuBA,EAuCrB,GAAmB,IAAf0vD,EACF,OAAOz0C,EAET,MAAM60C,EAAQ,IAAIlY,MAAM38B,EAAuB,IAAfy0C,EAAmBH,EAAqBD,GAExE,OADAE,EAASrvC,IAAIlF,EAAQ60C,GACdA,CACT,CACA,SAAS/D,GAAMmC,GACb,OAAOA,GAAYnC,GAAMmC,EAGzB,UAAMA,CACR,CACA,SAAS3B,GAAMl0C,GACb,OAAO9W,QAAQ8W,IAAqB,IAAhBA,EAAE03C,UACxB,CAGA9W,GAAM,YAAY,IAAMyF,KAGxBzF,GAAM,YAAa52C,GAAOwwC,EAAS/5B,KAAK+5B,EAAUxwC,KAGlD42C,GAAM,SAAS,CAAC52C,GAAM03C,cAAeiW,EAAgB/d,OAAQoL,KAAc,CAACl/C,EAAK40C,KAC/E,IAEIiE,EAFAiL,EAAY+N,EAAe7xD,GAC3B8xD,GAAY,EAEZ1S,EAAkBF,GAAQ,IAAM4E,GAAWjiD,IAC7C+L,KAAKC,UAAUhM,GACViwD,EAMHjZ,EAAWh3C,EALXo2C,gBAAe,KACbrD,EAAS/yC,EAAOg3C,GAChBA,EAAWh3C,CAAK,IAKpBiwD,GAAY,CAAK,MAEnB5tD,EAAGm7C,WAAWp9B,OAAOm9B,EAAgB,IAIvCtE,GAAM,SAh3BN,WACE,OAAO4N,EACT,IAi3BA5N,GAAM,QAAS52C,GAAOupB,EAAMvpB,KAG5B42C,GAAM,QAAS52C,GAAOsxC,EAAYtxC,KAGlC42C,GAAM,QAAS52C,IACTA,EAAG6tD,gBAEP7tD,EAAG6tD,cAAgB7Y,EAGrB,SAA6Bh1C,GAC3B,IAAI8tD,EAAa,GACbC,EAAY/tD,EAChB,KAAO+tD,GACDA,EAAUC,SACZF,EAAW7yD,KAAK8yD,EAAUC,SAC5BD,EAAYA,EAAU91B,WAExB,OAAO61B,CACT,CAZkCG,CAAoBjuD,KAD3CA,EAAG6tD,iBAgBd,IAAIK,GAAe,CAAC,EACpB,SAASC,GAAmB5rD,GAG1B,OAFK2rD,GAAa3rD,KAChB2rD,GAAa3rD,GAAQ,KACd2rD,GAAa3rD,EACxB,CA2BA,SAAS6rD,GAAuB7rD,EAAM8rD,EAAWC,GAC/C1X,GAAMyX,GAAYruD,GAAOK,EAAK,mBAAmBguD,oCAA4C9rD,gDAAmD+rD,IAAQtuD,IAC1J,CAdA42C,GAAM,MAAO52C,GAAO,CAACuC,EAAMzG,EAAM,QAC/B,IAAIqS,EAfN,SAAuBnO,EAAIuC,GACzB,OAAOivC,EAAYxxC,GAAKyxC,IACtB,GAAIA,EAAQ8c,QAAU9c,EAAQ8c,OAAOhsD,GACnC,OAAO,CAAI,GAEjB,CAUaisD,CAAcxuD,EAAIuC,GACzBksD,EAAKtgD,EAAOA,EAAKogD,OAAOhsD,GAAQ4rD,GAAmB5rD,GACvD,OAAOzG,EAAM,GAAGyG,KAAQksD,KAAM3yD,IAAQ,GAAGyG,KAAQksD,GAAI,IAIvD7X,GAAM,MAAO52C,GAAOA,IAGpBouD,GAAuB,QAAS,QAAS,SACzCA,GAAuB,UAAW,UAAW,WAM7CjV,GAAU,aAAa,CAACn5C,GAAMo3C,eAAgBxH,OAAQoL,EAAStD,cAAeiW,EAAgBnS,QAASxE,MACrG,IAAIjuB,EAAO4kC,EAAevW,GACtB2M,EAAW,KACb,IAAIj3C,EAEJ,OADAic,GAAM9uB,GAAM6S,EAAS7S,IACd6S,CAAM,EAEX4hD,EAAmBf,EAAe,GAAGvW,qBACrC4M,EAAY//C,GAAQyqD,GAAiB,QACtC,CAAEnlC,MAAO,CAAE,cAAiBtlB,KAC3BuyC,EAAeuN,IACnBC,EAASxN,GACTzC,gBAAe,KACb,IAAK/zC,EAAG2uD,SACN,OACF3uD,EAAG4uD,wBAAiC,UACpC,IAAI/K,EAAW7jD,EAAG2uD,SAAShxC,IACvBmmC,EAAW9jD,EAAG2uD,SAAS7wC,IACvB+wC,EAAsBjL,GACxB,CACE,GAAAjmC,GACE,OAAOkmC,GACT,EACA,GAAA/lC,CAAIngB,GACFmmD,EAASnmD,EACX,GAEF,CACE,GAAAggB,GACE,OAAOomC,GACT,EACA,GAAAjmC,CAAIngB,GACFqmD,EAASrmD,EACX,IAGJq5C,EAAS6X,EAAoB,GAC7B,IAIJ1V,GAAU,YAAY,CAACn5C,GAAMs6C,YAAWlD,eAAgBoE,QAASxE,MAC9B,aAA7Bh3C,EAAGu4B,QAAQzY,eACbzf,EAAK,kDAAmDL,GAC1D,IAAI4Y,EAASiZ,GAAUulB,GACnB0X,EAAS9uD,EAAG2S,QAAQglB,WAAU,GAAMkZ,kBACxC7wC,EAAG+uD,YAAcD,EACjBA,EAAOnd,gBAAkB3xC,EACzBA,EAAGu3B,aAAa,0BAA0B,GAC1Cu3B,EAAOv3B,aAAa,wBAAwB,GACxCv3B,EAAGgvD,kBACLhvD,EAAGgvD,iBAAiBhuD,SAASiuD,IAC3BH,EAAO/3B,iBAAiBk4B,GAAYp8C,IAClCA,EAAEqqB,kBACFl9B,EAAGohC,cAAc,IAAIvuB,EAAE/P,YAAY+P,EAAEjZ,KAAMiZ,GAAG,GAC9C,IAGNqiC,EAAe4Z,EAAQ,CAAC,EAAG9uD,GAC3B,IAAIkvD,EAAa,CAACC,EAAQC,EAASC,KAC7BA,EAAWlc,SAAS,WACtBic,EAAQn3B,WAAWa,aAAaq2B,EAAQC,GAC/BC,EAAWlc,SAAS,UAC7Bic,EAAQn3B,WAAWa,aAAaq2B,EAAQC,EAAQt1B,aAEhDs1B,EAAQx3B,YAAYu3B,EACtB,EAEFlb,GAAU,KACRib,EAAWJ,EAAQl2C,EAAQ0hC,GAC3BzI,EAASid,GACTA,EAAOxc,WAAY,CAAI,IAEzBtyC,EAAGsvD,mBAAqB,KACtB,IAAIF,EAAUv9B,GAAUulB,GACxBnD,GAAU,KACRib,EAAWlvD,EAAG+uD,YAAaK,EAAS9U,EAAU,GAC9C,EAEJtD,GAAS,IAAM8X,EAAOjiC,UAAS,IAEjC,IAAI0iC,GAA+B/7B,SAAS0D,cAAc,OAC1D,SAASrF,GAAUulB,GACjB,IAAIx+B,EAAS4oC,IAAgB,IACpBhuB,SAASc,cAAc8iB,KAC7B,IACMmY,IAHI/N,GAOb,OAFK5oC,GACHvY,EAAK,iDAAiD+2C,MACjDx+B,CACT,CAGA,IAAI9e,GAAU,OAgBd,SAASuB,GAAG2E,EAAIiX,EAAOqjC,EAAW5J,GAChC,IAAI8e,EAAiBxvD,EACjB06C,EAAY7nC,GAAM69B,EAAS79B,GAC3BpG,EAAU,CAAC,EACXgjD,EAAc,CAAC5N,EAAW6N,IAAa78C,GAAM68C,EAAQ7N,EAAWhvC,GAapE,GAZIynC,EAAUnH,SAAS,SACrBl8B,EAAkBA,EAqELvI,QAAQ,KAAM,MApEzB4rC,EAAUnH,SAAS,WACrBl8B,EAAmBA,EAsEN6I,cAAcpR,QAAQ,UAAU,CAACqX,EAAOi8B,IAASA,EAAK5a,iBArEjEkT,EAAUnH,SAAS,aACrB1mC,EAAQkjD,SAAU,GAChBrV,EAAUnH,SAAS,aACrB1mC,EAAQmjD,SAAU,GAChBtV,EAAUnH,SAAS,YACrBqc,EAAiBvyC,QACfq9B,EAAUnH,SAAS,cACrBqc,EAAiBh8B,UACf8mB,EAAUnH,SAAS,YAAa,CAClC,IAAI0c,EAAevV,EAAUA,EAAUl7C,QAAQ,YAAc,IAAM,eAC/DskD,EAAOoM,GAAUD,EAAavmD,MAAM,MAAM,IAAM81C,OAAOyQ,EAAavmD,MAAM,MAAM,IAAM,IAC1FoxC,EAAW+I,GAAS/I,EAAUgJ,EAChC,CACA,GAAIpJ,EAAUnH,SAAS,YAAa,CAClC,IAAI0c,EAAevV,EAAUA,EAAUl7C,QAAQ,YAAc,IAAM,eAC/DskD,EAAOoM,GAAUD,EAAavmD,MAAM,MAAM,IAAM81C,OAAOyQ,EAAavmD,MAAM,MAAM,IAAM,IAC1FoxC,EAAW5e,GAAS4e,EAAUgJ,EAChC,CA4CA,OA3CIpJ,EAAUnH,SAAS,aACrBuH,EAAW+U,EAAY/U,GAAU,CAAC99B,EAAM/J,KACtCA,EAAEmqB,iBACFpgB,EAAK/J,EAAE,KAEPynC,EAAUnH,SAAS,UACrBuH,EAAW+U,EAAY/U,GAAU,CAAC99B,EAAM/J,KACtCA,EAAEqqB,kBACFtgB,EAAK/J,EAAE,KAEPynC,EAAUnH,SAAS,UACrBuH,EAAW+U,EAAY/U,GAAU,CAAC99B,EAAM/J,KACtCA,EAAE+F,SAAW5Y,GAAM4c,EAAK/J,EAAE,MAE1BynC,EAAUnH,SAAS,SAAWmH,EAAUnH,SAAS,cACnDqc,EAAiBh8B,SACjBknB,EAAW+U,EAAY/U,GAAU,CAAC99B,EAAM/J,KAClC7S,EAAGq1B,SAASxiB,EAAE+F,UAEW,IAAzB/F,EAAE+F,OAAOm8B,cAET/0C,EAAG+vD,YAAc,GAAK/vD,EAAGgwD,aAAe,IAEtB,IAAlBhwD,EAAGiwD,YAEPrzC,EAAK/J,GAAE,KAGPynC,EAAUnH,SAAS,UACrBuH,EAAW+U,EAAY/U,GAAU,CAAC99B,EAAM/J,KACtC+J,EAAK/J,GACL28C,EAAex4B,oBAAoB/f,EAAOyjC,EAAUjuC,EAAQ,KAGhEiuC,EAAW+U,EAAY/U,GAAU,CAAC99B,EAAM/J,MA6B1C,SAAoBoE,GAClB,MAAO,CAAC,UAAW,SAASk8B,SAASl8B,EACvC,EA9BQi5C,CAAWj5C,IA+BnB,SAAwDpE,EAAGynC,GACzD,IAAI6V,EAAe7V,EAAUv7C,QAAQ9E,IAC3B,CAAC,SAAU,WAAY,UAAW,OAAQ,OAAQ,WAAWk5C,SAASl5C,KAEhF,GAAIk2D,EAAahd,SAAS,YAAa,CACrC,IAAIid,EAAgBD,EAAa/wD,QAAQ,YACzC+wD,EAAav0D,OAAOw0D,EAAeN,IAAWK,EAAaC,EAAgB,IAAM,gBAAgB9mD,MAAM,MAAM,IAAM,EAAI,EACzH,CACA,GAAI6mD,EAAahd,SAAS,YAAa,CACrC,IAAIid,EAAgBD,EAAa/wD,QAAQ,YACzC+wD,EAAav0D,OAAOw0D,EAAeN,IAAWK,EAAaC,EAAgB,IAAM,gBAAgB9mD,MAAM,MAAM,IAAM,EAAI,EACzH,CACA,GAA4B,IAAxB6mD,EAAa/1D,OACf,OAAO,EACT,GAA4B,IAAxB+1D,EAAa/1D,QAAgBi2D,GAAex9C,EAAE/W,KAAKq3C,SAASgd,EAAa,IAC3E,OAAO,EACT,MACMG,EADqB,CAAC,OAAQ,QAAS,MAAO,OAAQ,MAAO,SACbvxD,QAAQwxD,GAAaJ,EAAahd,SAASod,KAEjG,OADAJ,EAAeA,EAAapxD,QAAQ9E,IAAOq2D,EAA2Bnd,SAASl5C,OAC3Eq2D,EAA2Bl2D,OAAS,GACFk2D,EAA2BvxD,QAAQwxD,IACpD,QAAbA,GAAmC,UAAbA,IACxBA,EAAW,QACN19C,EAAE,GAAG09C,WAEkBn2D,SAAWk2D,EAA2Bl2D,QAChEi2D,GAAex9C,EAAE/W,KAAKq3C,SAASgd,EAAa,IAKtD,CA7DUK,CAA+C39C,EAAGynC,IAIxD19B,EAAK/J,EAAE,IAET28C,EAAez4B,iBAAiB9f,EAAOyjC,EAAUjuC,GAC1C,KACL+iD,EAAex4B,oBAAoB/f,EAAOyjC,EAAUjuC,EAAQ,CAEhE,CAOA,SAASqjD,GAAU7W,GACjB,OAAQv+C,MAAMoF,QAAQm5C,KAAax/C,MAAMw/C,EAC3C,CA2CA,SAASoX,GAAev0D,GACtB,IAAKA,EACH,MAAO,GA5CX,IAAoBm9C,EA6ClBn9C,EA5CI,CAAC,IAAK,KAAKq3C,SADG8F,EA6CDn9C,GAzCRm9C,EACFA,EAAQvqC,QAAQ,kBAAmB,SAASA,QAAQ,QAAS,KAAKoR,cAyCzE,IAAI2wC,EAAmB,CACrB,KAAQ,UACR,MAAS,IACT,MAAS,IACT,SAAY,IACZ,IAAO,OACP,IAAO,SACP,GAAM,WACN,KAAQ,aACR,KAAQ,aACR,MAAS,cACT,OAAU,IACV,MAAS,IACT,MAAS,IACT,WAAc,KAGhB,OADAA,EAAiB30D,GAAOA,EACjB2C,OAAOC,KAAK+xD,GAAkB9uD,KAAK4uD,IACxC,GAAIE,EAAiBF,KAAcz0D,EACjC,OAAOy0D,CAAQ,IAChBxxD,QAAQwxD,GAAaA,GAC1B,CA8HA,SAASG,GAAgB/Q,GACvB,IAAIj7C,EAASi7C,EAAWl+C,WAAWk+C,GAAY,KAC/C,OAKkB1G,EALAv0C,EAMVhK,MAAMoF,QAAQm5C,IAAax/C,MAAMw/C,GANJ0G,EAATj7C,EAK9B,IAAoBu0C,CAJpB,CAOA,SAAS0X,GAAehzD,GACtB,OAAiB,OAAVA,GAAmC,iBAAVA,GAA2C,mBAAdA,EAAMggB,KAA2C,mBAAdhgB,EAAMmgB,GACxG,CA9SAhkB,GAAQ8gD,OAAS,CAAC56C,GAAMs6C,cAAekB,QAASxE,MAC9CsD,EAAUnH,SAAS,QAAUnzC,EAAG80C,eAAgB,EAAO90C,EAAGsyC,WAAY,EACtE0E,GAAS,KACPsD,EAAUnH,SAAS,eAAiBnzC,EAAG80C,qBAAuB90C,EAAGsyC,SAAS,GAC1E,EAEJ6G,GAAU,SAAUr/C,IAGpBq/C,GAAU,SAAUqI,IAAgB,CAACxhD,GAAMo3C,eAAgBxH,OAAQoL,MACjEA,EAAQtD,GAAc13C,EAAIo3C,GAAY,KA6JxC+B,GAAU,SAAS,CAACn5C,GAAMs6C,YAAWlD,eAAgBxH,OAAQoL,EAASQ,QAASxE,MAC7E,IAAI4Z,EAAc5wD,EACds6C,EAAUnH,SAAS,YACrByd,EAAc5wD,EAAGi4B,YAEnB,IACI44B,EADAC,EAAcpZ,GAAckZ,EAAaxZ,GAG3CyZ,EADwB,iBAAfzZ,EACKM,GAAckZ,EAAa,GAAGxZ,qBACb,mBAAfA,GAAqD,iBAAjBA,IACtCM,GAAckZ,EAAa,GAAGxZ,uBAE9B,OAGhB,IAAI2Z,EAAW,KACb,IAAIjkD,EAEJ,OADAgkD,GAAanzD,GAAUmP,EAASnP,IACzBgzD,GAAe7jD,GAAUA,EAAO6Q,MAAQ7Q,CAAM,EAEnDkkD,EAAYrzD,IACd,IAAImP,EACJgkD,GAAa1T,GAAWtwC,EAASswC,IAC7BuT,GAAe7jD,GACjBA,EAAOgR,IAAIngB,GAEXkzD,GAAY,QACT,CACDtnC,MAAO,CAAE,cAAiB5rB,IAE9B,EAEwB,iBAAfy5C,GAAuC,UAAZp3C,EAAGpG,MACvCq6C,GAAU,KACHj0C,EAAG4wB,aAAa,SACnB5wB,EAAGu3B,aAAa,OAAQ6f,EAAW,IAGzC,IAAIngC,EAAqC,WAA7BjX,EAAGu4B,QAAQzY,eAA8B,CAAC,WAAY,SAASqzB,SAASnzC,EAAGpG,OAAS0gD,EAAUnH,SAAS,QAAU,SAAW,QACxI,IAAI13C,EAAiB8lD,GAAY,OAC7BlmD,GAAG2E,EAAIiX,EAAOqjC,GAAYznC,IAC5Bm+C,EAuCJ,SAAuBhxD,EAAIs6C,EAAWrjC,EAAOtP,GAC3C,OAAOssC,GAAU,KACf,GAAIh9B,aAAiB4pB,kBAAgC,IAAjB5pB,EAAM2e,OACxC,OAAwB,OAAjB3e,EAAM2e,aAAoC,IAAjB3e,EAAM2e,OAAoB3e,EAAM2e,OAAS3e,EAAM2B,OAAOjb,MACnF,GAAgB,aAAZqC,EAAGpG,KAAqB,CAC/B,GAAIc,MAAMoF,QAAQ6H,GAAe,CAC/B,IAAIi0C,EAAW,KAQf,OANEA,EADEtB,EAAUnH,SAAS,UACVud,GAAgBz5C,EAAM2B,OAAOjb,OAC/B28C,EAAUnH,SAAS,WACjB+O,GAAiBjrC,EAAM2B,OAAOjb,OAE9BsZ,EAAM2B,OAAOjb,MAEnBsZ,EAAM2B,OAAO0qB,QAAU37B,EAAa5J,OAAO,CAAC69C,IAAaj0C,EAAa5I,QAAQ4xC,KAAkCA,GAAKiL,IAC9H,CACE,OAAO3kC,EAAM2B,OAAO0qB,OAExB,CAAO,MAAiC,WAA7BtjC,EAAGu4B,QAAQzY,eAA8B9f,EAAGyjC,SACjD6W,EAAUnH,SAAS,UACdz4C,MAAMqiB,KAAK9F,EAAM2B,OAAOq4C,iBAAiBtvD,KAAK2gD,GAE5CoO,GADQpO,EAAO3kD,OAAS2kD,EAAOx9B,QAG/Bw1B,EAAUnH,SAAS,WACrBz4C,MAAMqiB,KAAK9F,EAAM2B,OAAOq4C,iBAAiBtvD,KAAK2gD,GAE5CJ,GADQI,EAAO3kD,OAAS2kD,EAAOx9B,QAInCpqB,MAAMqiB,KAAK9F,EAAM2B,OAAOq4C,iBAAiBtvD,KAAK2gD,GAC5CA,EAAO3kD,OAAS2kD,EAAOx9B,OAG5Bw1B,EAAUnH,SAAS,UACdud,GAAgBz5C,EAAM2B,OAAOjb,OAC3B28C,EAAUnH,SAAS,WACrB+O,GAAiBjrC,EAAM2B,OAAOjb,OAEhC28C,EAAUnH,SAAS,QAAUl8B,EAAM2B,OAAOjb,MAAM6L,OAASyN,EAAM2B,OAAOjb,KAC/E,GAEJ,CAjFauzD,CAAclxD,EAAIs6C,EAAWznC,EAAGk+C,KAAY,IAWvD,GATIzW,EAAUnH,SAAS,UACjB,CAAC,KAAM,IAAIA,SAAS4d,MAA2B,aAAZ/wD,EAAGpG,MAAuBc,MAAMoF,QAAQixD,OAC7E/wD,EAAGohC,cAAc,IAAI+vB,MAAMl6C,EAAO,CAAC,IAGlCjX,EAAG4uD,0BACN5uD,EAAG4uD,wBAA0B,CAAC,GAChC5uD,EAAG4uD,wBAAiC,QAAInzD,EACxCu7C,GAAS,IAAMh3C,EAAG4uD,wBAAiC,YAC/C5uD,EAAGoxD,KAAM,CACX,IAAIC,EAAsBh2D,GAAG2E,EAAGoxD,KAAM,QAAS,IAAKv+C,IAClDwpC,IAAS,IAAMr8C,EAAG2uD,UAAY3uD,EAAG2uD,SAAS7wC,IAAI9d,EAAGrC,QAAO,IAE1Dq5C,GAAS,IAAMqa,KACjB,CACArxD,EAAG2uD,SAAW,CACZ,GAAAhxC,GACE,OAAOozC,GACT,EACA,GAAAjzC,CAAIngB,GACFqzD,EAASrzD,EACX,GAEFqC,EAAGsxD,oBAAuB3zD,SACV,IAAVA,GAA0C,iBAAfy5C,GAA2BA,EAAWrxB,MAAM,QACzEpoB,EAAQ,IACVsf,OAAOglC,WAAY,EACnBhO,GAAU,IAAMx9B,GAAKzW,EAAI,QAASrC,YAC3Bsf,OAAOglC,SAAS,EAEzBjH,GAAQ,KACN,IAAIr9C,EAAQozD,IACRzW,EAAUnH,SAAS,gBAAkB3f,SAAS8U,cAAcnF,WAAWnjC,IAE3EA,EAAGsxD,oBAAoB3zD,EAAM,GAC7B,IA4DJw7C,GAAU,SAAUn5C,GAAO+zC,gBAAe,IAAME,GAAU,IAAMj0C,EAAGi2B,gBAAgBjO,GAAO,gBAG1FqpB,GAAgB,IAAM,IAAIrpB,GAAO,aACjCmxB,GAAU,OAAQqI,IAAgB,CAACxhD,GAAMo3C,eAAgBtX,SAAU8f,KACvC,iBAAfxI,IACAA,EAAW5tC,QAAUo2C,EAAUxI,EAAY,CAAC,GAAG,GAEnDwI,EAAUxI,EAAY,CAAC,GAAG,MAInC+B,GAAU,QAAQ,CAACn5C,GAAMo3C,eAAgBxH,OAAQoL,EAAStD,cAAeiW,MACvE,IAAI/N,EAAY+N,EAAevW,GAC/B4D,GAAQ,KACN4E,GAAWjiD,IACTs2C,GAAU,KACRj0C,EAAG0/B,YAAc/hC,CAAK,GACtB,GACF,GACF,IAIJw7C,GAAU,QAAQ,CAACn5C,GAAMo3C,eAAgBxH,OAAQoL,EAAStD,cAAeiW,MACvE,IAAI/N,EAAY+N,EAAevW,GAC/B4D,GAAQ,KACN4E,GAAWjiD,IACTs2C,GAAU,KACRj0C,EAAG8hC,UAAYnkC,EACfqC,EAAG80C,eAAgB,EACnBjD,EAAS7xC,UACFA,EAAG80C,aAAa,GACvB,GACF,GACF,IAIJiH,GAAcN,GAAa,IAAUzzB,GAAO,WAC5C,IAAIupC,GAAW,CAACvxD,GAAMrC,QAAO28C,YAAWlD,aAAYmD,aAAc3K,OAAQoL,MACxE,IAAKr9C,EAAO,CACV,IAAI6zD,EAAmB,CAAC,EAMxB,OAj2C4Bv4C,EA41CLu4C,EA31CzB/yD,OAAO8e,QAAQmnC,IAAO1jD,SAAQ,EAAEuB,EAAMmuC,MACpCjyC,OAAO0d,eAAelD,EAAK1W,EAAM,CAC/B,GAAAob,GACE,MAAO,IAAI3jB,IACF02C,KAAY12C,EAEvB,GACA,SAq1CgB09C,GAAc13C,EAAIo3C,EACpCwP,EAAaD,IACXhC,GAAoB3kD,EAAI2mD,EAAUpM,EAAS,GAC1C,CAAEhxB,MAAOioC,GAEd,CAl2CF,IAAgCv4C,EAm2C9B,GAAc,QAAVtb,EACF,OAoBJ,SAAyBqC,EAAIo3C,GAC3Bp3C,EAAGyxD,iBAAmBra,CACxB,CAtBWsa,CAAgB1xD,EAAIo3C,GAC7B,GAAIp3C,EAAG2lD,mBAAqB3lD,EAAG2lD,kBAAkBhoD,IAAUqC,EAAG2lD,kBAAkBhoD,GAAO+nD,QACrF,OAEF,IAAI9F,EAAYlI,GAAc13C,EAAIo3C,GAClC4D,GAAQ,IAAM4E,GAAW9yC,SACR,IAAXA,GAA2C,iBAAfsqC,GAA2BA,EAAWrxB,MAAM,QAC1EjZ,EAAS,IAEXmnC,GAAU,IAAMx9B,GAAKzW,EAAIrC,EAAOmP,EAAQwtC,IAAW,KAClD,EA4PL,SAASqX,GAA2BC,EAAe9iD,EAAMvS,EAAOgrB,GAC9D,IAAIsqC,EAAiB,CAAC,EACtB,GAAI,WAAW31C,KAAK01C,EAAc9iD,OAASpU,MAAMoF,QAAQgP,GAAO,CAClD8iD,EAAc9iD,KAAKJ,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAAIpF,MAAM,KAAK3H,KAAK1H,GAAMA,EAAEuP,SACnFxI,SAAQ,CAACuB,EAAMtI,KACnB43D,EAAetvD,GAAQuM,EAAK7U,EAAE,GAElC,MAAO,GAAI,WAAWiiB,KAAK01C,EAAc9iD,QAAUpU,MAAMoF,QAAQgP,IAAyB,iBAATA,EAAmB,CACtF8iD,EAAc9iD,KAAKJ,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAAIpF,MAAM,KAAK3H,KAAK1H,GAAMA,EAAEuP,SACnFxI,SAASuB,IACbsvD,EAAetvD,GAAQuM,EAAKvM,EAAK,GAErC,MACEsvD,EAAeD,EAAc9iD,MAAQA,EAMvC,OAJI8iD,EAAcr1D,QAChBs1D,EAAeD,EAAcr1D,OAASA,GACpCq1D,EAAcl4C,aAChBm4C,EAAeD,EAAcl4C,YAAc6N,GACtCsqC,CACT,CAMA,SAASC,KACT,CA6EA,SAASC,GAA2BxvD,EAAMyvD,EAAe1D,GACvDnV,GAAU6Y,GAAgBhyD,GAAOK,EAAK,oBAAoB2xD,oCAAgDzvD,gDAAmD+rD,IAAQtuD,IACvK,CApWAuxD,GAAS3W,OAAS,CAAC56C,GAAMrC,QAAO28C,YAAWlD,iBACpCz5C,IAEAqC,EAAG2lD,oBACN3lD,EAAG2lD,kBAAoB,CAAC,GAC1B3lD,EAAG2lD,kBAAkBhoD,GAAS,CAAEy5C,aAAYsO,SAAS,GAAO,EAE9DvM,GAAU,OAAQoY,IAMlBpgB,GAAgB,IAAM,IAAInpB,GAAO,aACjCmxB,GAAU,QAAQ,CAACn5C,GAAMo3C,eAAgBoE,QAASxE,MAChD,GA0BF,SAA8Ch3C,GAC5C,QAAKuhD,OAEDI,IAEG3hD,EAAG4wB,aAAa,yBACzB,CAhCMqhC,CAAqCjyD,GACvC,OACFo3C,EAA4B,KAAfA,EAAoB,KAAOA,EACxC,IAAI8a,EAAe,CAAC,EACpBrb,GAAaqb,EAAclyD,GAC3B,IAAImyD,EAAsB,CAAC,EA11C7B,IAA6Bl5C,EAAKze,EAALye,EA21CPk5C,EA31CY33D,EA21CS03D,EA11CzCzzD,OAAO8e,QAAQsnC,IAAO7jD,SAAQ,EAAEuB,EAAMmuC,MACpCjyC,OAAO0d,eAAelD,EAAK1W,EAAM,CAC/B,GAAAob,GACE,MAAO,IAAI3jB,IACF02C,EAASj6B,KAAKjc,EAAdk2C,IAA0B12C,EAErC,EACAqe,YAAY,GACZ,IAm1CJ,IAAI88B,EAAQrV,GAAS9/B,EAAIo3C,EAAY,CAAE7tB,MAAO4oC,SAChC,IAAVhd,IAA8B,IAAVA,IACtBA,EAAQ,CAAC,GACX0B,GAAa1B,EAAOn1C,GACpB,IAAIoyD,EAAeziB,EAASwF,GAC5Bc,EAAkBmc,GAClB,IAAIC,EAAOnd,EAAel1C,EAAIoyD,GAC9BA,EAAmB,MAAKtyB,GAAS9/B,EAAIoyD,EAAmB,MACxDpb,GAAS,KACPob,EAAsB,SAAKtyB,GAAS9/B,EAAIoyD,EAAsB,SAC9DC,GAAM,GACN,IAEJ3Q,IAAe,CAAC3kC,EAAMypC,KAChBzpC,EAAKs4B,eACPmR,EAAGnR,aAAet4B,EAAKs4B,aACvBmR,EAAGjvB,aAAa,yBAAyB,GAC3C,IAWF4hB,GAAU,QAAQ,CAACn5C,GAAMs6C,YAAWlD,eAAgBxH,OAAQoL,MAC1D,IAAI4E,EAAYlI,GAAc13C,EAAIo3C,GAC7Bp3C,EAAGsyD,YACNtyD,EAAGsyD,UAAY,KACbre,GAAU,KACRj0C,EAAGq9C,MAAMC,YAAY,UAAW,OAAQhD,EAAUnH,SAAS,aAAe,iBAAc,EAAO,GAC/F,GAEDnzC,EAAGuyD,YACNvyD,EAAGuyD,UAAY,KACbte,GAAU,KACgB,IAApBj0C,EAAGq9C,MAAMjjD,QAAqC,SAArB4F,EAAGq9C,MAAMmV,QACpCxyD,EAAGi2B,gBAAgB,SAEnBj2B,EAAGq9C,MAAMoV,eAAe,UAC1B,GACA,GAEN,IAmBI9d,EAnBAoM,EAAO,KACT/gD,EAAGsyD,YACHtyD,EAAGiwD,YAAa,CAAK,EAEnB9qB,EAAO,KACTnlC,EAAGuyD,YACHvyD,EAAGiwD,YAAa,CAAI,EAElB/O,EAA0B,IAAM19B,WAAW2hB,GAC3CjP,EAAS56B,IACVqC,GAAUA,EAAQwnC,IAAS4b,MAC3BpjD,IACsD,mBAA1CqC,EAAG8gD,mCACZ9gD,EAAG8gD,mCAAmC9gD,EAAIrC,EAAOwnC,EAAM4b,GAEvDpjD,EAAQujD,IAA4BH,GACtC,IAIA6M,GAAY,EAChB5S,GAAQ,IAAM4E,GAAWjiD,KAClBiwD,GAAajwD,IAAUg3C,KAExB2F,EAAUnH,SAAS,eACrBx1C,EAAQujD,IAA4BH,KACtC7qB,EAAOv4B,GACPg3C,EAAWh3C,EACXiwD,GAAY,EAAK,KAChB,IAILzU,GAAU,OAAO,CAACn5C,GAAMo3C,eAAgBxH,OAAQoL,EAASQ,QAASxE,MAChE,IAAI4a,EA8HN,SAA4Bxa,GAC1B,IAAIsb,EAAgB,iCAGhBC,EAAUvb,EAAWrxB,MADR,sCAEjB,IAAK4sC,EACH,OACF,IAAI7hD,EAAM,CAAC,EACXA,EAAIyW,MAAQorC,EAAQ,GAAGnpD,OACvB,IAAIsF,EAAO6jD,EAAQ,GAAGjkD,QAPF,iBAOyB,IAAIlF,OAC7CopD,EAAgB9jD,EAAKiX,MAAM2sC,GAU/B,OATIE,GACF9hD,EAAIhC,KAAOA,EAAKJ,QAAQgkD,EAAe,IAAIlpD,OAC3CsH,EAAIvU,MAAQq2D,EAAc,GAAGppD,OACzBopD,EAAc,KAChB9hD,EAAI4I,WAAak5C,EAAc,GAAGppD,SAGpCsH,EAAIhC,KAAOA,EAENgC,CACT,CAnJsB+hD,CAAmBzb,GACnC0b,EAAgBpb,GAAc13C,EAAI4xD,EAAcrqC,OAChDwrC,EAAcrb,GAChB13C,EAEAA,EAAGyxD,kBAAoB,SAEzBzxD,EAAGgzD,YAAc,GACjBhzD,EAAGizD,UAAY,CAAC,EAChBjY,GAAQ,IAOV,SAAch7C,EAAI4xD,EAAekB,EAAeC,GAC9C,IACIG,EAAalzD,EACjB8yD,GAAevrC,IAsJjB,IAAoB0xB,IArJD1xB,GAsJT7sB,MAAMoF,QAAQm5C,KAAax/C,MAAMw/C,IAtJd1xB,GAAS,IAChCA,EAAQ7sB,MAAMqiB,KAAKriB,MAAM6sB,GAAO7oB,QAASzE,GAAMA,EAAI,UAEvC,IAAVstB,IACFA,EAAQ,IACV,IAAI4rC,EAASnzD,EAAGizD,UACZG,EAAWpzD,EAAGgzD,YACdK,EAAS,GACT30D,EAAO,GACX,GAZkC,iBAAnBzE,EAYDstB,IAZiC7sB,MAAMoF,QAAQ7F,GAmB3D,IAAK,IAAIA,EAAI,EAAGA,EAAIstB,EAAMntB,OAAQH,IAAK,CACrC,IAAIg+C,EAAS0Z,GAA2BC,EAAerqC,EAAMttB,GAAIA,EAAGstB,GACpEwrC,GAAap1D,GAAUe,EAAKzD,KAAK0C,IAAQ,CAAE4rB,MAAO,CAAEhtB,MAAOtC,KAAMg+C,KACjEob,EAAOp4D,KAAKg9C,EACd,MAVA1wB,EAAQ9oB,OAAO8e,QAAQgK,GAAO5lB,KAAI,EAAE7F,EAAK6B,MACvC,IAAIs6C,EAAS0Z,GAA2BC,EAAej0D,EAAO7B,EAAKyrB,GACnEwrC,GAAa3V,GAAW1+C,EAAKzD,KAAKmiD,IAAS,CAAE7zB,MAAO,CAAEhtB,MAAOT,KAAQm8C,KACrEob,EAAOp4D,KAAKg9C,EAAO,IAhBT,IAACh+C,EAyBf,IAAIq5D,EAAO,GACPC,EAAQ,GACRC,EAAU,GACVC,EAAQ,GACZ,IAAK,IAAIx5D,EAAI,EAAGA,EAAIm5D,EAASh5D,OAAQH,IAAK,CACxC,IAAI6B,EAAMs3D,EAASn5D,IACQ,IAAvByE,EAAKU,QAAQtD,IACf03D,EAAQv4D,KAAKa,EACjB,CACAs3D,EAAWA,EAASr0D,QAAQjD,IAAS03D,EAAQrgB,SAASr3C,KACtD,IAAI43D,EAAU,WACd,IAAK,IAAIz5D,EAAI,EAAGA,EAAIyE,EAAKtE,OAAQH,IAAK,CACpC,IAAI6B,EAAM4C,EAAKzE,GACX05D,EAAYP,EAASh0D,QAAQtD,GACjC,IAAmB,IAAf63D,EACFP,EAASx3D,OAAO3B,EAAG,EAAG6B,GACtBw3D,EAAKr4D,KAAK,CAACy4D,EAASz5D,SACf,GAAI05D,IAAc15D,EAAG,CAC1B,IAAI25D,EAAYR,EAASx3D,OAAO3B,EAAG,GAAG,GAClC45D,EAAaT,EAASx3D,OAAO+3D,EAAY,EAAG,GAAG,GACnDP,EAASx3D,OAAO3B,EAAG,EAAG45D,GACtBT,EAASx3D,OAAO+3D,EAAW,EAAGC,GAC9BL,EAAMt4D,KAAK,CAAC24D,EAAWC,GACzB,MACEJ,EAAMx4D,KAAKa,GAEb43D,EAAU53D,CACZ,CACA,IAAK,IAAI7B,EAAI,EAAGA,EAAIu5D,EAAQp5D,OAAQH,IAAK,CACvC,IAAI6B,EAAM03D,EAAQv5D,GACZk5D,EAAOr3D,GAAKq/C,YAChBgY,EAAOr3D,GAAKq/C,WAAWn6C,QAAQkvC,GAEjCijB,EAAOr3D,GAAK+wB,SACZsmC,EAAOr3D,GAAO,YACPq3D,EAAOr3D,EAChB,CACA,IAAK,IAAI7B,EAAI,EAAGA,EAAIs5D,EAAMn5D,OAAQH,IAAK,CACrC,IAAK25D,EAAWC,GAAcN,EAAMt5D,GAChC65D,EAAWX,EAAOS,GAClBG,EAAYZ,EAAOU,GACnBG,EAASxgC,SAAS0D,cAAc,OACpC+c,GAAU,KACH8f,GACH1zD,EAAK,uCAAwC6yD,GAC/Ca,EAAU7V,MAAM8V,GAChBF,EAAS5V,MAAM6V,GACfA,EAAUE,gBAAkBF,EAAU7V,MAAM6V,EAAUE,gBACtDD,EAAO5a,OAAO0a,GACdA,EAASG,gBAAkBH,EAAS5V,MAAM4V,EAASG,gBACnDD,EAAOnnC,QAAQ,IAEjBknC,EAAUG,oBAAoBb,EAAO30D,EAAKU,QAAQy0D,IACpD,CACA,IAAK,IAAI55D,EAAI,EAAGA,EAAIq5D,EAAKl5D,OAAQH,IAAK,CACpC,IAAKk6D,EAAU53D,GAAS+2D,EAAKr5D,GACzBm6D,EAAsB,aAAbD,EAA0BjB,EAAaC,EAAOgB,GACvDC,EAAOH,iBACTG,EAASA,EAAOH,gBAClB,IAAIhc,EAASob,EAAO92D,GAChBT,EAAM4C,EAAKnC,GACXuyD,EAASt7B,SAAS6gC,WAAWnB,EAAWvgD,SAAS,GAAMk+B,kBACvDyjB,EAAgB3kB,EAASsI,GAC7B/C,EAAe4Z,EAAQwF,EAAepB,GACtCpE,EAAOoF,oBAAuBK,IAC5B91D,OAAO8e,QAAQg3C,GAAUvzD,SAAQ,EAAE+nD,EAAMprD,MACvC22D,EAAcvL,GAAQprD,CAAK,GAC3B,EAEJs2C,GAAU,KACRmgB,EAAOlW,MAAM4Q,GACbjd,EAASid,EAAO,IAEC,iBAARhzD,GACTuE,EAAK,mEAAoE6yD,GAE3EC,EAAOr3D,GAAOgzD,CAChB,CACA,IAAK,IAAI70D,EAAI,EAAGA,EAAIw5D,EAAMr5D,OAAQH,IAChCk5D,EAAOM,EAAMx5D,IAAIi6D,oBAAoBb,EAAO30D,EAAKU,QAAQq0D,EAAMx5D,MAEjEi5D,EAAWF,YAAct0D,CAAI,GAEjC,CApHgB81D,CAAKx0D,EAAI4xD,EAAekB,EAAeC,KACrD/b,GAAS,KACPv4C,OAAOI,OAAOmB,EAAGizD,WAAWjyD,SAAS2vC,GAAQA,EAAI9jB,kBAC1C7sB,EAAGgzD,mBACHhzD,EAAGizD,SAAS,GACnB,IAkKJnB,GAASlX,OAAS,CAAC56C,GAAMo3C,eAAgBoE,QAASxE,MAChD,IAAI7oC,EAAOmjC,EAAYtxC,GAClBmO,EAAK6/C,UACR7/C,EAAK6/C,QAAU,CAAC,GAClB7/C,EAAK6/C,QAAQ5W,GAAcp3C,EAC3Bg3C,GAAS,WAAa7oC,EAAK6/C,QAAQ5W,IAAY,EAEjD+B,GAAU,MAAO2Y,IAGjB3Y,GAAU,MAAM,CAACn5C,GAAMo3C,eAAgBxH,OAAQoL,EAASQ,QAASxE,MAC9B,aAA7Bh3C,EAAGu4B,QAAQzY,eACbzf,EAAK,4CAA6CL,GACpD,IAAI4/C,EAAYlI,GAAc13C,EAAIo3C,GA4BlC4D,GAAQ,IAAM4E,GAAWjiD,IACvBA,EA5BS,MACT,GAAIqC,EAAGi0D,eACL,OAAOj0D,EAAGi0D,eACZ,IAAInF,EAAS9uD,EAAG2S,QAAQglB,WAAU,GAAMkZ,kBACxCqE,EAAe4Z,EAAQ,CAAC,EAAG9uD,GAC3Bi0C,GAAU,KACRj0C,EAAGk+C,MAAM4Q,GACTjd,EAASid,EAAO,IAElB9uD,EAAGi0D,eAAiBnF,EACpB9uD,EAAGy0D,UAAY,KACbrsC,EAAK0mC,GAAS3/C,IACNA,EAAKgsC,YACThsC,EAAKgsC,WAAWn6C,QAAQkvC,EAC1B,IAEF4e,EAAOjiC,gBACA7sB,EAAGi0D,cAAc,CAEb,EASL9uB,GANHnlC,EAAGy0D,YAERz0D,EAAGy0D,mBACIz0D,EAAGy0D,UAGa,MAEzBzd,GAAS,IAAMh3C,EAAGy0D,WAAaz0D,EAAGy0D,aAAY,IAIhDtb,GAAU,MAAM,CAACn5C,GAAMo3C,eAAgBtX,SAAU8f,MACnCA,EAAUxI,GAChBp2C,SAASuB,GAjzBjB,SAAmBvC,EAAIuC,GAChBvC,EAAGuuD,SACNvuD,EAAGuuD,OAAS,CAAC,GACVvuD,EAAGuuD,OAAOhsD,KACbvC,EAAGuuD,OAAOhsD,GAAQ4rD,GAAmB5rD,GACzC,CA4yB0BmyD,CAAU10D,EAAIuC,IAAM,IAI9Cw5C,GAAcN,GAAa,IAAUzzB,GAAO,SAC5CmxB,GAAU,KAAMqI,IAAgB,CAACxhD,GAAMrC,QAAO28C,YAAWlD,eAAgBoE,QAASxE,MAChF,IAAI4I,EAAYxI,EAAaM,GAAc13C,EAAIo3C,GAAc,OAE5B,aAA7Bp3C,EAAGu4B,QAAQzY,gBACR9f,EAAGgvD,mBACNhvD,EAAGgvD,iBAAmB,IACnBhvD,EAAGgvD,iBAAiB7b,SAASx1C,IAChCqC,EAAGgvD,iBAAiB/zD,KAAK0C,IAE7B,IAAIlC,EAAiBJ,GAAG2E,EAAIrC,EAAO28C,GAAYznC,IAC7C+sC,GAAU,QACP,CAAEr2B,MAAO,CAAE,OAAU1W,GAAK3S,OAAQ,CAAC2S,IAAK,IAE7CmkC,GAAS,IAAMv7C,KAAiB,KAIlCs2D,GAA2B,WAAY,WAAY,YACnDA,GAA2B,YAAa,YAAa,aACrDA,GAA2B,QAAS,OAAQ,SAC5CA,GAA2B,OAAQ,OAAQ,QAM3CxW,GAAegK,aAAa3N,IAC5B2D,GAAeyJ,oBAAoB,CAAErV,SAAUya,GAAWxa,OAniD1D,SAAiBhzC,EAAI6P,EAAUu6C,KAH/B,SAAkBpqD,GAChB,OAAOA,IAAuB,IAAjBA,EAAG+3D,SAClB,EAEMC,CAASh4D,KACXA,EAAKA,EAAGkzC,KAEV,MAAMkL,EAgBR,SAA8Bp+C,EAAI6P,GAChC,MAAMuuC,EAAU,WACd,IAAKA,EAAQ6Z,OACX,OAAOj4D,IAET,IAAKmrD,GAAY5U,SAAS6H,GAAU,CAClCQ,GAAQR,GACR,IAIE,OAiCNqN,GAAWptD,KAAKmtD,IAChBA,IAAc,EApCRL,GAAY9sD,KAAK+/C,GACjB+L,GAAe/L,EACRp+C,GACT,CAAE,QACAmrD,GAAY/nC,MACZsoC,KACAvB,GAAegB,GAAYA,GAAY3tD,OAAS,EAClD,CACF,CACF,EAQA,OAPA4gD,EAAQyT,GAAKvG,KACblN,EAAQ8N,eAAiBr8C,EAAQq8C,aACjC9N,EAAQ2Z,WAAY,EACpB3Z,EAAQ6Z,QAAS,EACjB7Z,EAAQlL,IAAMlzC,EACdo+C,EAAQmN,KAAO,GACfnN,EAAQvuC,QAAUA,EACXuuC,CACT,CA3CkB8Z,CAAqBl4D,EAAI6P,GAIzC,OAHKA,EAAQsoD,MACX/Z,IAEKA,CACT,EA0hD2EnL,QAzhD3E,SAAcmL,GACRA,EAAQ6Z,SACVrZ,GAAQR,GACJA,EAAQvuC,QAAQuoD,QAClBha,EAAQvuC,QAAQuoD,SAElBha,EAAQ6Z,QAAS,EAErB,EAihD0F/kB,IAAK4Z,KAC/F,IAGIuL,GAHc1Z,GClsGlB,SAAS2Z,GAAa5a,GACpB,GAAIA,EAAUnH,SAAS,QACrB,MAAO,IACT,GAAImH,EAAUnH,SAAS,QACrB,MAAO,GACT,IAAKmH,EAAUnH,SAAS,aACtB,OAAO,EACT,IAAI/T,EAAYkb,EAAUA,EAAUl7C,QAAQ,aAAe,GAC3D,MAAkB,QAAdggC,EACK,EACS,MAAdA,EACK,EACFggB,OAAO,IAAIhgB,IACpB,CACA,SAAS+1B,GAAexV,GACtB,IAAI55B,EAAQ45B,EAAS55B,MAAM,uBAC3B,OAAOA,EAAQA,EAAM,IAAMA,EAAM,IAAM,WAAQ,CACjD,CACA,SAASqvC,GAAc9a,GACrB,MACMmD,EAAW,kBACXlhD,EAAQ+9C,EAAUl7C,QAFZ,UAGZ,IAAe,IAAX7C,EACF,OAAOkhD,EACT,IAAI5+C,EAAS,GACb,IAAK,IAAI5E,EAAI,EAAGA,EAAI,EAAGA,IACrB4E,EAAO5D,KAAKk6D,GAAe7a,EAAU/9C,EAAQtC,IAAM,KAGrD,OADA4E,EAASA,EAAOE,QAAQZ,QAAY,IAANA,IACvBU,EAAOzE,OAASyE,EAAOyb,KAAK,KAAK9Q,OAASi0C,CACnD,CAGA,6DCtDW4X,GAAY,SAAmBC,GACxC,OAAO,WACL,IAAIC,EAAOl7D,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9Em7D,EAAiBD,EAAKC,eACtBC,EAAeF,EAAKE,aAClBC,EAAaF,EAAiB,IAAIz3D,OAAOy3D,GAAkB,GAC3DjF,EAAWkF,EAAe,KAAK13D,OAAO03D,GAAgB,GAC1D,MAAO,GAAG13D,OARE,MAQgB,KAAKA,OAAOu3D,GAAev3D,OAAO23D,GAAY33D,OAAOwyD,EACnF,CACF,ECVO,SAASoF,GAAkB57C,EAAQhT,GAExC,OADYrM,MAAMoF,QAAQiH,GAAQA,EAAOA,EAAKuC,MAAM,MACvC3K,QAAO,SAAUi3D,EAAS95D,GACrC,OAAO85D,GAAWA,EAAQ95D,EAC5B,GAAGie,EACL,CCCA,IAAI87C,GAAe,CACjB,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,SAIHC,GAAqB,WACrBC,GAAwB7iC,OAAO4iC,GAAmBr+C,QAkBlDu+C,GAAiB,CACnB,QAAS,IACT,OAAQ,IACR,OAAQ,IACR,SAAU,IACV,QAAS,KAIPC,GAAmB,0BACnBC,GAAsBhjC,OAAO+iC,GAAiBx+C,QAM3C,SAAS,GAAS9Z,GACvB,OAAOA,GAASu4D,GAAoBh6C,KAAKve,GAASA,EAAM+Q,QAAQunD,IAAkB,SAAUE,GAC1F,OAAOH,GAAeG,EACxB,IAAKx4D,CACP,CCtDA,SAASy4D,GAAQn9C,GAAkC,OAAOm9C,GAAU,mBAAqB35C,QAAU,iBAAmBA,OAAOC,SAAW,SAAUzD,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqBwD,QAAUxD,EAAInW,cAAgB2Z,QAAUxD,IAAQwD,OAAOpjB,UAAY,gBAAkB4f,CAAK,EAAGm9C,GAAQn9C,EAAM,CAsBxU,SAASo9C,GAAc14D,GAC5B,IAXF,SAAsBA,GACpB,MAA0B,WAAnBy4D,GAAQz4D,IAAiC,OAAVA,CACxC,CASO24D,CAAa34D,IAA4B,oBAjBhD,SAAgBA,GACd,OAAc,OAAVA,OACe7E,IAAV6E,EAAsB,qBAAuB,gBAE/Cc,OAAOpF,UAAUoQ,SAAShP,KAAKkD,EACxC,CAY8B44D,CAAO54D,GACjC,OAAO,EAET,GAAqC,OAAjCc,OAAO65C,eAAe36C,GACxB,OAAO,EAGT,IADA,IAAI64D,EAAQ74D,EAC4B,OAAjCc,OAAO65C,eAAeke,IAC3BA,EAAQ/3D,OAAO65C,eAAeke,GAEhC,OAAO/3D,OAAO65C,eAAe36C,KAAW64D,CAC1C,CClCA,SAAS,GAAQv9C,GAAkC,OAAO,GAAU,mBAAqBwD,QAAU,iBAAmBA,OAAOC,SAAW,SAAUzD,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqBwD,QAAUxD,EAAInW,cAAgB2Z,QAAUxD,IAAQwD,OAAOpjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAE/U,SAASw9C,KAAiS,OAApRA,GAAWh4D,OAAO4vC,OAAS5vC,OAAO4vC,OAAO53B,OAAS,SAAUmC,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIwd,EAASpd,UAAUJ,GAAI,IAAK,IAAI6B,KAAO2b,EAAchZ,OAAOpF,UAAUwf,eAAepe,KAAKgd,EAAQ3b,KAAQ8c,EAAO9c,GAAO2b,EAAO3b,GAAU,CAAE,OAAO8c,CAAQ,EAAU69C,GAAS77D,MAAMjC,KAAM0B,UAAY,CAClV,SAAS,GAAQ0f,EAAQ28C,GAAkB,IAAIh4D,EAAOD,OAAOC,KAAKqb,GAAS,GAAItb,OAAO2d,sBAAuB,CAAE,IAAIu6C,EAAUl4D,OAAO2d,sBAAsBrC,GAAS28C,IAAmBC,EAAUA,EAAQ53D,QAAO,SAAUgpB,GAAO,OAAOtpB,OAAO4d,yBAAyBtC,EAAQgO,GAAK1P,UAAY,KAAK3Z,EAAKzD,KAAKL,MAAM8D,EAAMi4D,EAAU,CAAE,OAAOj4D,CAAM,CACpV,SAASk4D,GAAch+C,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIwd,EAAS,MAAQpd,UAAUJ,GAAKI,UAAUJ,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQwE,OAAOgZ,IAAS,GAAIzW,SAAQ,SAAUlF,GAAO+6D,GAAgBj+C,EAAQ9c,EAAK2b,EAAO3b,GAAO,IAAK2C,OAAO8d,0BAA4B9d,OAAO+d,iBAAiB5D,EAAQna,OAAO8d,0BAA0B9E,IAAW,GAAQhZ,OAAOgZ,IAASzW,SAAQ,SAAUlF,GAAO2C,OAAO0d,eAAevD,EAAQ9c,EAAK2C,OAAO4d,yBAAyB5E,EAAQ3b,GAAO,GAAI,CAAE,OAAO8c,CAAQ,CACzf,SAASi+C,GAAgB59C,EAAKnd,EAAK6B,GAA4L,OAAnL7B,EAC5C,SAAwB9C,GAAO,IAAI8C,EACnC,SAAsBg7D,GAAe,GAAuB,WAAnB,GAAQA,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIC,EAAOD,EAAMr6C,OAAOu6C,aAAc,QAAal+D,IAATi+D,EAAoB,CAAE,IAAIjmD,EAAMimD,EAAKt8D,KAAKq8D,EAAOG,UAAoB,GAAqB,WAAjB,GAAQnmD,GAAmB,OAAOA,EAAK,MAAM,IAAIpX,UAAU,+CAAiD,CAAE,OAA4Bge,OAAiBo/C,EAAQ,CADnVI,CAAal+D,GAAgB,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM4b,OAAO5b,EAAM,CAD1Eq7D,CAAer7D,MAAiBmd,EAAOxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAAE6B,MAAOA,EAAO0a,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBW,EAAInd,GAAO6B,EAAgBsb,CAAK,CAKpO,IAAIm+C,GAAkB,CAC3BC,gBAAiB,oBACjBC,iBAAkB,sBAETC,GACQ,SADRA,GAES,UAOpB,SAASC,GAAgBV,GACvB,OAAIT,GAAcS,IAAiC,iBAAhBA,EAAMn5D,MAChCc,OAAOC,KAAKo4D,GAAOn4D,QAAO,SAAU6J,EAAK1M,GAC9C,OAAO86D,GAAcA,GAAc,CAAC,EAAGpuD,GAAM,CAAC,EAAGquD,GAAgB,CAAC,EAAG/6D,EAAK07D,GAAgBV,EAAMh7D,KAClG,GAAG,CAAC,GAEFpB,MAAMoF,QAAQg3D,GACTA,EAAMn1D,IAAI61D,IAEZZ,GAAcA,GAAc,CAAC,EAAGE,GAAQ,CAAC,EAAG,CACjDn5D,OAb0BA,EAaEm5D,EAAMn5D,MFX/B,SAAgBA,GACrB,OAAOA,GAASo4D,GAAsB75C,KAAKve,GAASA,EAAM+Q,QAAQonD,IAAoB,SAAUK,GAC9F,OAAON,GAAaM,EACtB,IAAKx4D,CACP,CELS,CAAOA,GAAO+Q,QAAQ,IAAIwkB,OAAOkkC,GAAgBC,gBAAiB,KAAME,IAAiC7oD,QAAQ,IAAIwkB,OAAOkkC,GAAgBE,iBAAkB,KAAMC,OAD7K,IAA8B55D,CAe9B,CCjCA,IAAI85D,GAAOpC,GAAU,aAKN,SAAS,GAAUE,GAChC,IAAI73D,EAAY63D,EAAK73D,UACnBg6D,EAAwBnC,EAAKoC,mBAC7BA,OAA+C,IAA1BD,EAAmC,OAASA,EACjEE,EAAMrC,EAAKqC,IACXC,EAAkBtC,EAAKuC,WACvBA,OAAiC,IAApBD,EAA6B,CAAC,EAAIA,EAO/CE,GAL6BpC,GAAkBiC,EAAII,iBAAkBt6D,IAI/B,CAAC,GACnBC,MACpBs6D,OAAiC,IAAhBF,EAAyB,GAAKA,EAG7CG,EAAYT,GAAK,CACnBjC,eAAgB,iBACZsC,EAAWK,YAAc,IAAIp6D,OAAO+5D,EAAWK,aAAe,IACpE,OAAOF,EAAevpD,QAAQ,IAAIwkB,OAAOqkC,GAAiC,KAAM,IAAIx5D,OAAO45D,EAAoB,YAAa55D,OAAOm6D,EAAW,OAAQxpD,QAAQ,IAAIwkB,OAAOqkC,GAAkC,KAAM,KAAKx5D,OAAO45D,EAAoB,KACnP,CC3BO,SAASS,GAAuB/sD,GACrC,IAAIgsD,EAAkBE,GACpBD,EAAmBC,GACrB,OAAOlsD,EAAM1J,KAAI,SAAU4H,GACzB,OAAOA,EAAK8uD,cAAgBhB,EAAkB9tD,EAAK5L,MAAQ25D,EAAmB/tD,EAAK5L,KACrF,IAAG2c,KAAK,GACV,CCNA,IAAIg+C,GAAkB,IAAIplC,OAAO,OAC1B,SAASqlC,GAAyBltD,EAAOpR,GAC9C,IAAIu+D,EAAQC,EACR7C,EAAUvqD,EAAMpR,GAChBy+D,GAAiD,QAA3BF,EAASntD,EAAMpR,EAAI,UAA2B,IAAXu+D,OAAoB,EAASA,EAAOH,iBAAkB,EAC/GM,GAAsD,QAA5BF,EAAUptD,EAAMpR,EAAI,UAA4B,IAAZw+D,OAAqB,EAASA,EAAQJ,iBAAkB,EAC1H,OAAKC,GAAgBp8C,KAAK,GAAS05C,EAAQj4D,SAAWg7D,IAA0BD,EAGzE9C,EAAQyC,cAFNM,CAGX,CCXA,SAAS,GAAQ1/C,GAAkC,OAAO,GAAU,mBAAqBwD,QAAU,iBAAmBA,OAAOC,SAAW,SAAUzD,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqBwD,QAAUxD,EAAInW,cAAgB2Z,QAAUxD,IAAQwD,OAAOpjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAC/U,SAAS,GAAQc,EAAQ28C,GAAkB,IAAIh4D,EAAOD,OAAOC,KAAKqb,GAAS,GAAItb,OAAO2d,sBAAuB,CAAE,IAAIu6C,EAAUl4D,OAAO2d,sBAAsBrC,GAAS28C,IAAmBC,EAAUA,EAAQ53D,QAAO,SAAUgpB,GAAO,OAAOtpB,OAAO4d,yBAAyBtC,EAAQgO,GAAK1P,UAAY,KAAK3Z,EAAKzD,KAAKL,MAAM8D,EAAMi4D,EAAU,CAAE,OAAOj4D,CAAM,CACpV,SAAS,GAAcka,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIwd,EAAS,MAAQpd,UAAUJ,GAAKI,UAAUJ,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQwE,OAAOgZ,IAAS,GAAIzW,SAAQ,SAAUlF,GAAO,GAAgB8c,EAAQ9c,EAAK2b,EAAO3b,GAAO,IAAK2C,OAAO8d,0BAA4B9d,OAAO+d,iBAAiB5D,EAAQna,OAAO8d,0BAA0B9E,IAAW,GAAQhZ,OAAOgZ,IAASzW,SAAQ,SAAUlF,GAAO2C,OAAO0d,eAAevD,EAAQ9c,EAAK2C,OAAO4d,yBAAyB5E,EAAQ3b,GAAO,GAAI,CAAE,OAAO8c,CAAQ,CACzf,SAAS,GAAgBK,EAAKnd,EAAK6B,GAA4L,OAAnL7B,EAC5C,SAAwB9C,GAAO,IAAI8C,EACnC,SAAsBg7D,GAAe,GAAuB,WAAnB,GAAQA,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIC,EAAOD,EAAMr6C,OAAOu6C,aAAc,QAAal+D,IAATi+D,EAAoB,CAAE,IAAIjmD,EAAMimD,EAAKt8D,KAAKq8D,EAAOG,UAAoB,GAAqB,WAAjB,GAAQnmD,GAAmB,OAAOA,EAAK,MAAM,IAAIpX,UAAU,+CAAiD,CAAE,OAA4Bge,OAAiBo/C,EAAQ,CADnV,CAAa99D,GAAgB,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM4b,OAAO5b,EAAM,CAD1E,CAAeA,MAAiBmd,EAAOxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAAE6B,MAAOA,EAAO0a,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBW,EAAInd,GAAO6B,EAAgBsb,CAAK,CAIpO,SAAS2/C,GAAwBvtD,GACtC,OAAKA,EAAMmP,MAAK,SAAUjR,GACxB,OAAOA,EAAK8uD,aACd,IAOOhtD,EAAM1J,KAAI,SAAU4H,EAAMtP,GAC/B,OAAO,GAAc,GAAc,CAAC,EAAGsP,GAAO,CAAC,EAAG,CAChD8uD,eAAgBE,GAAyBltD,EAAOpR,IAEpD,IAVSoR,EAAM1J,KAAI,SAAU4H,GACzB,OAAO,GAAc,GAAc,CAAC,EAAGA,GAAO,CAAC,EAAG,CAChD8uD,eAAe,GAEnB,GAOJ,CCrBO,SAASQ,GAAoBC,GAElC,IAAIxB,EAAmBC,GACrBF,EAAkBE,GAChBwB,EAAgBD,EAAiBxvD,MAAM+tD,GACvC2B,EAAaD,EAAc56C,QAC3BylB,EAAYo1B,EAAkB,CAAC,CACjCr7D,MAAOq7D,EACPX,eAAe,IAFY,GAiB7B,OAbAU,EAAc/3D,SAAQ,SAAUsI,GAC9B,IAAI2vD,EAAiB3vD,EAAMA,MAAMguD,GACjC1zB,EAAS3oC,KAAK,CACZ0C,MAAOs7D,EAAe,GACtBZ,eAAe,IAES,KAAtBY,EAAe,IACjBr1B,EAAS3oC,KAAK,CACZ0C,MAAOs7D,EAAe,GACtBZ,eAAe,GAGrB,IACOz0B,CACT,CCvBA,IAAI,GAAOyxB,GAAU,oBAKN,SAAS,GAAiBE,GACvC,IAAI73D,EAAY63D,EAAK73D,UACnBg6D,EAAwBnC,EAAKoC,mBAC7BA,OAA+C,IAA1BD,EAAmC,OAASA,EACjEE,EAAMrC,EAAKqC,IACXC,EAAkBtC,EAAKuC,WACvBA,OAAiC,IAApBD,EAA6B,CAAC,EAAIA,EAO/CE,GAL6BpC,GAAkBiC,EAAII,iBAAkBt6D,IAI/B,CAAC,GACnBC,MACpBs6D,OAAiC,IAAhBF,EAAyB,GAAKA,EAG7CG,EAAY,GAAK,CACnB1C,eAAgB,iBACZsC,EAAWK,YAAc,IAAIp6D,OAAO+5D,EAAWK,aAAe,IAEpE,OAD8BC,GAAuBQ,GAAwBC,GAAoBZ,KAClEvpD,QAAQ,IAAIwkB,OAAOqkC,GAAiC,KAAM,IAAIx5D,OAAO45D,EAAoB,YAAa55D,OAAOm6D,EAAW,OAAQxpD,QAAQ,IAAIwkB,OAAOqkC,GAAkC,KAAM,KAAKx5D,OAAO45D,EAAoB,KAC5P,CC3BA,IAAI,GAAOtC,GAAU,WAKN,SAAS,GAAQE,GAC9B,IAAI73D,EAAY63D,EAAK73D,UACnBg6D,EAAwBnC,EAAKoC,mBAC7BA,OAA+C,IAA1BD,EAAmC,OAASA,EACjEE,EAAMrC,EAAKqC,IACXC,EAAkBtC,EAAKuC,WACvBA,OAAiC,IAApBD,EAA6B,CAAC,EAAIA,EAO/CE,GAL2BpC,GAAkBiC,EAAIsB,eAAgBx7D,IAI7B,CAAC,GACjBC,MACpBs6D,OAAiC,IAAhBF,EAAyB,GAAKA,EAG7CG,EAAY,GAAK,CACnB1C,eAAgB,iBACZsC,EAAWK,YAAc,IAAIp6D,OAAO+5D,EAAWK,aAAe,IACpE,OAAOF,EAAevpD,QAAQ,IAAIwkB,OAAOqkC,GAAiC,KAAM,IAAIx5D,OAAO45D,EAAoB,YAAa55D,OAAOm6D,EAAW,OAAQxpD,QAAQ,IAAIwkB,OAAOqkC,GAAkC,KAAM,KAAKx5D,OAAO45D,EAAoB,KACnP,CC1BA,IAAI,GAAOtC,GAAU,kBAKN,SAAS,GAAeE,GACrC,IAAI73D,EAAY63D,EAAK73D,UACnBg6D,EAAwBnC,EAAKoC,mBAC7BA,OAA+C,IAA1BD,EAAmC,OAASA,EACjEE,EAAMrC,EAAKqC,IACXC,EAAkBtC,EAAKuC,WACvBA,OAAiC,IAApBD,EAA6B,CAAC,EAAIA,EAO/CE,GAL2BpC,GAAkBiC,EAAIsB,eAAgBx7D,IAI7B,CAAC,GACjBC,MACpBs6D,OAAiC,IAAhBF,EAAyB,GAAKA,EAG7CG,EAAY,GAAK,CACnB1C,eAAgB,iBACZsC,EAAWK,YAAc,IAAIp6D,OAAO+5D,EAAWK,aAAe,IAEpE,OAD8BC,GAAuBQ,GAAwBC,GAAoBZ,KAClEvpD,QAAQ,IAAIwkB,OAAOqkC,GAAiC,KAAM,IAAIx5D,OAAO45D,EAAoB,YAAa55D,OAAOm6D,EAAW,OAAQxpD,QAAQ,IAAIwkB,OAAOqkC,GAAkC,KAAM,KAAKx5D,OAAO45D,EAAoB,KAC5P,CC7BO,SAASwB,GAAiBC,GAC/B,OAAOC,KAAK56C,mBAAmB/U,KAAKC,UAAUyvD,IAChD,CACO,SAASE,GAAmBC,GACjC,OAAO7vD,KAAKwT,MAAM0xB,mBAAmB4qB,KAAKD,IAC5C,CCLA,SAAS,GAAQtgD,GAAkC,OAAO,GAAU,mBAAqBwD,QAAU,iBAAmBA,OAAOC,SAAW,SAAUzD,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqBwD,QAAUxD,EAAInW,cAAgB2Z,QAAUxD,IAAQwD,OAAOpjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAuChU,SAAS,GAAS4G,EAAQu5C,GAEvC,OApBK,SAA6B7D,GAClC,IAKIkE,EALA55C,EAAS01C,EAAK11C,OAChBu5C,EAAU7D,EAAK6D,QACjB,GAAyB,WAArB,GAAQA,GACV,MAAM,IAAI9+D,MAAM,4DAGlB,IACEm/D,EAAoBN,GAAiBC,EACvC,CAAE,MAAOj/D,GACP,MAAM,IAAIG,MAAM,+CAClB,CACA,MAAO,yBAA0ByD,OAAO8hB,EAAQ,6BAA+B9hB,OAAO07D,EAAmB,IAC3G,CAOSC,CAAoB,CACzB75C,OAAQA,EACRu5C,QAASA,GAEb,CC7CA,SAAS,GAAQngD,GAAkC,OAAO,GAAU,mBAAqBwD,QAAU,iBAAmBA,OAAOC,SAAW,SAAUzD,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqBwD,QAAUxD,EAAInW,cAAgB2Z,QAAUxD,IAAQwD,OAAOpjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAoBxU,SAAS0gD,KACd,OAlBF,WACE,GAA4E,YAAnD,oBAAbnmC,SAA2B,YAAc,GAAQA,YAAsD,iBAApBA,SAASomC,OAKxG,IAFA,IAAI5xC,EAAS,GAAGjqB,OALsB,WAKT,KACzB87D,EAAUrmC,SAASomC,OAAOtwD,MAAM,KAC3BrP,EAAI,EAAGA,EAAI4/D,EAAQz/D,OAAQH,IAAK,CAEvC,IADA,IAAI2/D,EAASC,EAAQ5/D,GACO,MAArB2/D,EAAO/3C,OAAO,IACnB+3C,EAASA,EAAOvzC,UAAU,GAE5B,GAA+B,IAA3BuzC,EAAOx6D,QAAQ4oB,GACjB,OAAO4xC,EAAOvzC,UAAU2B,EAAO5tB,OAAQw/D,EAAOx/D,OAElD,CAEF,CAES0/D,EACT,CCjBO,SAASC,GAAmBrpB,GACjC,IAKE+M,GALSpjD,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,GAAmBA,UAAU,GAAK,CAC3EojD,SAAU,WAEV,IAEcA,SAElB,MAAsB,oBAAXxgC,OACFwgC,IAIF/M,EAAS,CACdzzB,OAAQA,QAEZ,CCrBA,SAAS+8C,GAAY/gD,GACnB,OAAOA,IAAQxa,OAAOwa,EACxB,CACO,SAASghD,GAAQC,EAAOC,GAC7B,GAAID,IAAUC,EACZ,OAAO,EAET,GAAIH,GAAYE,IAAUF,GAAYG,IAA4B,mBAAVD,GAA0C,mBAAXC,EACrF,OAAOD,IAAUC,EAEnB,GAAI17D,OAAOC,KAAKw7D,GAAO9/D,SAAWqE,OAAOC,KAAKy7D,GAAQ//D,OACpD,OAAO,EAKT,IAAK,IAAIggE,EAAK,EAAGC,EAAe57D,OAAOC,KAAKw7D,GAAQE,EAAKC,EAAajgE,OAAQggE,IAAM,CAClF,IAAIt+D,EAAMu+D,EAAaD,GACvB,KAAMt+D,KAAOq+D,GACX,OAAO,EAET,IAAKF,GAAQC,EAAMp+D,GAAMq+D,EAAOr+D,IAC9B,OAAO,CAEX,CACA,OAAO,CACT,CC1BA,IAAIw+D,GAAY,CAAC,QAIjB,SAASC,GAAoB3wD,GAC3B,IAAI2rD,EAAO3rD,GAAS,CAAC,EAGrB,OAFS2rD,EAAK9xD,KALhB,SAAkCgU,EAAQyB,GAAY,GAAc,MAAVzB,EAAgB,MAAO,CAAC,EAAG,IAAkE3b,EAAK7B,EAAnE2e,EACzF,SAAuCnB,EAAQyB,GAAY,GAAc,MAAVzB,EAAgB,MAAO,CAAC,EAAG,IAA2D3b,EAAK7B,EAA5D2e,EAAS,CAAC,EAAOO,EAAa1a,OAAOC,KAAK+Y,GAAqB,IAAKxd,EAAI,EAAGA,EAAIkf,EAAW/e,OAAQH,IAAO6B,EAAMqd,EAAWlf,GAAQif,EAAS9Z,QAAQtD,IAAQ,IAAa8c,EAAO9c,GAAO2b,EAAO3b,IAAQ,OAAO8c,CAAQ,CADhN4hD,CAA8B/iD,EAAQyB,GAAuB,GAAIza,OAAO2d,sBAAuB,CAAE,IAAIq+C,EAAmBh8D,OAAO2d,sBAAsB3E,GAAS,IAAKxd,EAAI,EAAGA,EAAIwgE,EAAiBrgE,OAAQH,IAAO6B,EAAM2+D,EAAiBxgE,GAAQif,EAAS9Z,QAAQtD,IAAQ,GAAkB2C,OAAOpF,UAAU2pB,qBAAqBvoB,KAAKgd,EAAQ3b,KAAgB8c,EAAO9c,GAAO2b,EAAO3b,GAAQ,CAAE,OAAO8c,CAAQ,CAMhe8hD,CAAyBnF,EAAM+E,GAE1C,CACA,IAAIK,GAAM,2ECVH,SAAS,KAAQ,CCMjB,SAASp7D,GAAKgoB,EAAOhZ,GAE1B,IADA,IAAI5Q,EACK1D,EAAI,EAAGA,EAAIstB,EAAMntB,OAAQH,IAGhC,GAAIsU,EAFJ5Q,EAAQ4pB,EAAMttB,GAEOA,EAAGstB,GACtB,OAAO5pB,CAIb,CChBA,SAAS,GAAQsb,GAAkC,OAAO,GAAU,mBAAqBwD,QAAU,iBAAmBA,OAAOC,SAAW,SAAUzD,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqBwD,QAAUxD,EAAInW,cAAgB2Z,QAAUxD,IAAQwD,OAAOpjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAC/U,SAAS,GAAQc,EAAQ28C,GAAkB,IAAIh4D,EAAOD,OAAOC,KAAKqb,GAAS,GAAItb,OAAO2d,sBAAuB,CAAE,IAAIu6C,EAAUl4D,OAAO2d,sBAAsBrC,GAAS28C,IAAmBC,EAAUA,EAAQ53D,QAAO,SAAUgpB,GAAO,OAAOtpB,OAAO4d,yBAAyBtC,EAAQgO,GAAK1P,UAAY,KAAK3Z,EAAKzD,KAAKL,MAAM8D,EAAMi4D,EAAU,CAAE,OAAOj4D,CAAM,CACpV,SAAS,GAAcka,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIwd,EAAS,MAAQpd,UAAUJ,GAAKI,UAAUJ,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQwE,OAAOgZ,IAAS,GAAIzW,SAAQ,SAAUlF,GAAO,GAAgB8c,EAAQ9c,EAAK2b,EAAO3b,GAAO,IAAK2C,OAAO8d,0BAA4B9d,OAAO+d,iBAAiB5D,EAAQna,OAAO8d,0BAA0B9E,IAAW,GAAQhZ,OAAOgZ,IAASzW,SAAQ,SAAUlF,GAAO2C,OAAO0d,eAAevD,EAAQ9c,EAAK2C,OAAO4d,yBAAyB5E,EAAQ3b,GAAO,GAAI,CAAE,OAAO8c,CAAQ,CACzf,SAAS,GAAgBK,EAAKnd,EAAK6B,GAA4L,OAAnL7B,EAC5C,SAAwB9C,GAAO,IAAI8C,EACnC,SAAsBg7D,GAAe,GAAuB,WAAnB,GAAQA,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIC,EAAOD,EAAMr6C,OAAOu6C,aAAc,QAAal+D,IAATi+D,EAAoB,CAAE,IAAIjmD,EAAMimD,EAAKt8D,KAAKq8D,EAAOG,UAAoB,GAAqB,WAAjB,GAAQnmD,GAAmB,OAAOA,EAAK,MAAM,IAAIpX,UAAU,+CAAiD,CAAE,OAA4Bge,OAAiBo/C,EAAQ,CADnV,CAAa99D,GAAgB,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM4b,OAAO5b,EAAM,CAD1E,CAAeA,MAAiBmd,EAAOxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAAE6B,MAAOA,EAAO0a,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBW,EAAInd,GAAO6B,EAAgBsb,CAAK,CAG3O,SAAS2hD,GAAehuB,EAAK3yC,GAAK,OAGlC,SAAyB2yC,GAAO,GAAIlyC,MAAMoF,QAAQ8sC,GAAM,OAAOA,CAAK,CAH3BiuB,CAAgBjuB,IAEzD,SAA+BA,EAAK3yC,GAAK,IAAImgE,EAAK,MAAQxtB,EAAM,KAAO,oBAAsBnwB,QAAUmwB,EAAInwB,OAAOC,WAAakwB,EAAI,cAAe,GAAI,MAAQwtB,EAAI,CAAE,IAAIU,EAAIrgC,EAAIsgC,EAAI7xB,EAAI8xB,EAAO,GAAIC,GAAK,EAAIC,GAAK,EAAI,IAAM,GAAIH,GAAMX,EAAKA,EAAG3/D,KAAKmyC,IAAMhwB,KAAM,IAAM3iB,EAAG,CAAE,GAAIwE,OAAO27D,KAAQA,EAAI,OAAQa,GAAK,CAAI,MAAO,OAASA,GAAMH,EAAKC,EAAGtgE,KAAK2/D,IAAKv9C,QAAUm+C,EAAK//D,KAAK6/D,EAAGn9D,OAAQq9D,EAAK5gE,SAAWH,GAAIghE,GAAK,GAAK,CAAE,MAAO1gE,GAAO2gE,GAAK,EAAIzgC,EAAKlgC,CAAK,CAAE,QAAU,IAAM,IAAK0gE,GAAM,MAAQb,EAAGt9C,SAAWosB,EAAKkxB,EAAGt9C,SAAUre,OAAOyqC,KAAQA,GAAK,MAAQ,CAAE,QAAU,GAAIgyB,EAAI,MAAMzgC,CAAI,CAAE,CAAE,OAAOugC,CAAM,CAAE,CAF1gBG,CAAsBvuB,EAAK3yC,IAAMmhE,GAA4BxuB,EAAK3yC,IACnI,WAA8B,MAAM,IAAIP,UAAU,4IAA8I,CADvD2hE,EAAoB,CAM7J,SAASD,GAA4B9+C,EAAGg/C,GAAU,GAAKh/C,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAOi/C,GAAkBj/C,EAAGg/C,GAAS,IAAI9hE,EAAIiF,OAAOpF,UAAUoQ,SAAShP,KAAK6hB,GAAG3hB,MAAM,GAAI,GAAiE,MAAnD,WAANnB,GAAkB8iB,EAAExZ,cAAatJ,EAAI8iB,EAAExZ,YAAYP,MAAgB,QAAN/I,GAAqB,QAANA,EAAoBkB,MAAMqiB,KAAKT,GAAc,cAAN9iB,GAAqB,2CAA2C0iB,KAAK1iB,GAAW+hE,GAAkBj/C,EAAGg/C,QAAzG,CAA7O,CAA+V,CAG/Z,SAASC,GAAkB3uB,EAAK7yC,IAAkB,MAAPA,GAAeA,EAAM6yC,EAAIxyC,UAAQL,EAAM6yC,EAAIxyC,QAAQ,IAAK,IAAIH,EAAI,EAAGwe,EAAO,IAAI/d,MAAMX,GAAME,EAAIF,EAAKE,IAAKwe,EAAKxe,GAAK2yC,EAAI3yC,GAAI,OAAOwe,CAAM,CAGlL,IAAI+iD,GAA2B,QAC3BC,GAAuB,gDAAgD19D,OAAOy9D,GAA0B,gCA0N5G,SAASE,GAAuBp/D,GAC9B,IACEq/D,EAAcf,IADEt+D,EAAOG,SAAW,IAAI6M,MAAM,KAAK3H,IAAIy9C,QACZ,GACzCwc,EAAQD,EAAY,GACpBE,EAAQF,EAAY,GAQtB,OALSC,GAAS,GACG,IAAVA,GAAeC,GAAS,GACb,IAAVD,GAAeC,GAAS,EAItC,CC1PO,SAASC,GAAeC,EAAuBrxD,EAAQsxD,GAC5D,IAAI5lD,EAAS1L,EAAOuxD,YACpB,MAAO,CACLD,QAASA,EACT5lD,OAAQA,EACR1L,OAAQA,EACRqxD,sBAAuBA,EACvBnyD,MAAOwM,EAAOxM,MACdsyD,YAAaH,EAAsBG,YACnCC,gBAAiBJ,EAAsBI,gBACvCC,UAAW1xD,EAAO0xD,UAClBC,cAAe,GACfC,eAAgB,CACdC,gBAAkD,YAAjCR,EAAsB38C,QAEzCA,OAAQ28C,EAAsB38C,OAC9BjlB,MAAO4hE,EAAsB5hE,MAEjC,CACO,SAASqiE,GAAiBT,EAAuBrxD,GACtD,IAAIkB,EAAUlB,EAAO+xD,aACjBrmD,EAAS1L,EAAOuxD,YACpB,MAAO,CACL7lD,OAAQA,EACR1L,OAAQA,EACRqxD,sBAAuBA,EACvBnwD,QAASA,EACTywD,cAAe3xD,EAAOgyD,mBACtB9yD,MAAOgC,EAAUA,EAAQyC,OAAS+H,EAAOxM,MACzCsyD,YAAaH,EAAsBG,YACnCC,gBAAiBJ,EAAsBI,gBACvCC,UAAW1xD,EAAO0xD,UAClBE,eAAgB,CACdC,gBAAkD,YAAjCR,EAAsB38C,QAEzCA,OAAQ28C,EAAsB38C,OAC9BjlB,MAAO4hE,EAAsB5hE,MAEjC,CCrCA,SAASwiE,GAAqBC,EAASb,EAAuB3C,GAC5D,IAAIyD,EAAcf,GAAeC,EAAuBA,EAAsBe,UAAWf,EAAsBgB,iBAC/GH,EAAQ57D,SAAQ,SAAUg8D,GACxB,IAAIC,EAAe,CAAC,EACpB,GAAID,EAAOE,qBAAsB,CAC/B,IAAIhB,EAAcc,EAAOE,qBAAqBL,GAC1CX,GAAeA,EAAYe,eAE7BA,EAAef,EAAYe,aAE/B,CAGA,IAAI/8D,EAASzB,OAAOC,KAAKu+D,GAAcl+D,QAAO,SAAUjD,GACtD,YAA6BhD,IAAtBmkE,EAAanhE,EACtB,IACAs9D,EAAQwD,QAAQ3hE,KAAK,CACnBrB,KAAMojE,EAAOG,OACbC,WAAYJ,EAAOK,aACnBn9D,OAAQA,IAEY,cAAlB88D,EAAOG,QACTR,GAAqBK,EAAOM,aAAcvB,EAAuB3C,EAErE,GACF,CAoBO,SAASmE,KACd,IACEC,GADUnjE,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,GAAmBA,UAAU,GAAK,CAAC,GACtDojE,WACzBA,OAAkC,IAArBD,GAAsCA,EACrD,OAAO,SAAUE,GACf,IAAI3B,EAAwB2B,EAAM3B,sBAC9B3C,EAAU,CACZwD,QAAS,IAEPe,EAAmBnqC,SAAS0D,cAAc,QAC1C0mC,EAAUpqC,SAASc,cAAc,QAErC,OADAqpC,EAAiBp7D,KAAO,wBACjB,CACL46D,OAAQ,eACRM,WAAYA,EACZI,cAAe,WAA0B,EACzCC,UAAW,WAETt6C,YAAW,WACT,IAAIlnB,EAASy/D,EAAsBz/D,OACnC88D,EAAQ2E,GAAKzhE,EAAOkmB,aAAelmB,EAAOkmB,YAAYzC,UAAYzjB,EAAOkmB,YAAYzC,UAAUpiB,MAAQrB,EAAO0hE,IAC9GrB,GAAqBZ,EAAsBe,UAAUQ,aAAcvB,EAAuB3C,GAC1F2C,EAAsBkC,WAAWj9D,SAAQ,SAAUi9D,GACjD,OAAO7E,EAAQwD,QAAQ3hE,KAAK,CAC1BgjE,YAAY,EACZrkE,KAAMqkE,EAAW/7D,SAASi7D,OAC1Be,SAAUD,EAAW/7D,SAASu7D,YAElC,IACAE,EAAiBhrD,QAAUjJ,KAAKC,UAAUyvD,GAC1CwE,EAAQhmC,YAAY+lC,EACtB,GAAG,EACL,EACA7sB,QAAS,WAAoB,EAC7BqtB,YAAa,WACXR,EAAiB9wC,QACnB,EAEJ,CACF,iCCrFA,SAAS,GAAQ5T,GAAkC,OAAO,GAAU,mBAAqBwD,QAAU,iBAAmBA,OAAOC,SAAW,SAAUzD,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqBwD,QAAUxD,EAAInW,cAAgB2Z,QAAUxD,IAAQwD,OAAOpjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAE/U,SAASmlD,GAAkBxlD,EAAQylD,GAAS,IAAK,IAAIpkE,EAAI,EAAGA,EAAIokE,EAAMjkE,OAAQH,IAAK,CAAE,IAAI+7C,EAAaqoB,EAAMpkE,GAAI+7C,EAAW39B,WAAa29B,EAAW39B,aAAc,EAAO29B,EAAWz9B,cAAe,EAAU,UAAWy9B,IAAYA,EAAW19B,UAAW,GAAM7Z,OAAO0d,eAAevD,EAAQ,GAAeo9B,EAAWl6C,KAAMk6C,EAAa,CAAE,CAE5U,SAAS,GAAgB/8B,EAAKnd,EAAK6B,GAA4L,OAAnL7B,EAAM,GAAeA,MAAiBmd,EAAOxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAAE6B,MAAOA,EAAO0a,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBW,EAAInd,GAAO6B,EAAgBsb,CAAK,CAC3O,SAAS,GAAejgB,GAAO,IAAI8C,EACnC,SAAsBg7D,GAAe,GAAuB,WAAnB,GAAQA,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIC,EAAOD,EAAMr6C,OAAOu6C,aAAc,QAAal+D,IAATi+D,EAAoB,CAAE,IAAIjmD,EAAMimD,EAAKt8D,KAAKq8D,EAAOG,UAAoB,GAAqB,WAAjB,GAAQnmD,GAAmB,OAAOA,EAAK,MAAM,IAAIpX,UAAU,+CAAiD,CAAE,OAA4Bge,OAAiBo/C,EAAQ,CADnV,CAAa99D,GAAgB,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM4b,OAAO5b,EAAM,CAI5H,IAAIwiE,GAAiB,SAAwB9jC,GACvCA,IAGFvd,OAAOuW,SAASgH,MAAQA,EAE5B,EACI+jC,GAA8B,WA+ChC,SAASA,EAAehJ,GACtB,IAAIiJ,EAAQ7lE,KACR8lE,EAAclJ,EAAKkJ,YACrBC,EAAkBnJ,EAAKoJ,WACvBA,OAAiC,IAApBD,EAA6B,IAAMA,EAChDtC,EAAY7G,EAAK6G,UACjBwC,EAAWrJ,EAAKqJ,SAChBC,EAActJ,EAAKsJ,YACnB1zC,EAAQoqC,EAAKpqC,MACb2zC,EAAUvJ,EAAKuJ,QACf7jE,EAAOs6D,EAAKt6D,MAxElB,SAAyBiH,EAAU68D,GAAe,KAAM78D,aAAoB68D,GAAgB,MAAM,IAAIrlE,UAAU,oCAAwC,CAyEpJslE,CAAgBrmE,KAAM4lE,GACtB,GAAgB5lE,KAAM,SAAU,eAChC,GAAgBA,KAAM,mBAAe,GACrC,GAAgBA,KAAM,kBAAc,GACpC,GAAgBA,KAAM,kBAAc,GACpC,GAAgBA,KAAM,gBAAY,GAClC,GAAgBA,KAAM,mBAAe,GACrC,GAAgBA,KAAM,kBAAc,GACpC,GAAgBA,KAAM,mBAAe,GACrC,GAAgBA,KAAM,cAAc,GACpC,GAAgBA,KAAM,cAAc,GACpC,GAAgBA,KAAM,4BAA6B,GACnD,GAAgBA,KAAM,cAAU,GAChC,GAAgBA,KAAM,gBAAY,GAClC,GAAgBA,KAAM,aAAS,GAC/BA,KAAK8lE,YAAcA,EACnB9lE,KAAKsmE,gBAAanmE,EAClBH,KAAKgmE,WAAaA,EAClBhmE,KAAKumE,WAAa9C,EAClBzjE,KAAKimE,SAAWA,EAChBjmE,KAAKkmE,YAAcA,EACnBlmE,KAAKwmE,OAASh0C,EACdxyB,KAAKymE,SAAWN,EAChBnmE,KAAK0mE,MAAQpkE,EACb8+D,IAAmB,SAAUuF,GAC3B,IAAIriD,EAASqiD,EAAMriD,OACfud,EAAQgkC,EAAMC,aAAeD,EAAMC,YAAYD,EAAMl8C,QACzDg8C,GAAe9jC,GACfgkC,EAAMe,0BAA4BtiD,EAAOglB,QAAQ7nC,MACnD,GACF,CArGF,IAAsB2kE,EAAaS,EA6PjC,OA7PoBT,EA0GPR,GA1GoBiB,EA0GJ,CAAC,CAC5B1jE,IAAK,OACL6B,MAAO,WACL,OAAOhF,KAAKimE,SAAS,CACnBa,SAAU,GACVnjC,SAAU3jC,KAAKkmE,eAEnB,GAKC,CACD/iE,IAAK,QACL6B,MAAO,SAAe+hE,GACpB,IAAIC,EAAShnE,KACbohE,IAAmB,SAAU2D,GAC3B,IAAIzgD,EAASygD,EAAMzgD,OACfuC,EAAMmgD,EAAOvD,UAAUsD,GACvBllC,EAAQmlC,EAAOlB,aAAekB,EAAOlB,YAAYiB,GACjDC,EAAOV,YACTp7C,aAAa87C,EAAOV,YAEtBU,EAAOV,WAAaz7C,YAAW,WAC7B86C,GAAe9jC,GACXmlC,EAAOC,YAAYpgD,KACjBmgD,EAAON,MACTM,EAAON,MAAM7/C,GAEbvC,EAAOglB,QAAQI,UAAUq9B,EAAYllC,GAAS,GAAIhb,GAEpDmgD,EAAOJ,0BAA4BtiD,EAAOglB,QAAQ7nC,QAEpDulE,EAAOE,YAAa,EACpBF,EAAOV,gBAAanmE,CACtB,GAAG6mE,EAAOhB,WACZ,GACF,GAMC,CACD7iE,IAAK,WACL6B,MAAO,SAAkB+yC,GACvB,IAAIovB,EAASnnE,KACTA,KAAKwmE,QACPxmE,KAAKwmE,QAAO,WACVzuB,EAASovB,EAAOx9C,OAClB,IAEF3pB,KAAKonE,YAAc,WACbD,EAAOb,aACTp7C,aAAai8C,EAAOb,YACpBa,EAAOb,gBAAanmE,GAEtBgnE,EAAOD,YAAa,EAIpBnvB,EAASovB,EAAOx9C,OAClB,EACAy3C,IAAmB,SAAUiG,GACdA,EAAM/iD,OACZ8Z,iBAAiB,WAAY+oC,EAAOC,YAC7C,GACF,GASC,CACDjkE,IAAK,YACL6B,MAAO,SAAmB+hE,GAexB,OAdU/mE,KAAKumE,WAAW,CACxBO,SAAU,GACVC,WAAYA,EACZpjC,SAAU3jC,KAAKkmE,eAYnB,GAKC,CACD/iE,IAAK,UACL6B,MAAO,WACL,IAAIsiE,EAAStnE,KACTA,KAAKymE,UACPzmE,KAAKymE,WAEPzmE,KAAKunE,YAAa,EAClBnG,IAAmB,SAAUoG,GAC3B,IAAIljD,EAASkjD,EAAMljD,OACfgjD,EAAOF,aACT9iD,EAAO+Z,oBAAoB,WAAYipC,EAAOF,YAElD,IACIpnE,KAAKsmE,YACPp7C,aAAalrB,KAAKsmE,YAEpBtmE,KAAK+pB,MAAM,CAAC,EACd,GACC,CACD5mB,IAAK,QACL6B,MAAO,WACLhF,KAAKunE,YAAa,CACpB,GACC,CACDpkE,IAAK,cACL6B,MAAO,SAAqB6hB,GAC1B,IAAI4gD,EAASznE,KACb,OAAOohE,IAAmB,SAAUsG,GAClC,IAAIpjD,EAASojD,EAAMpjD,OAMfqjD,IAAgCF,EAAOF,YAAcE,EAAOb,4BAA8BtiD,EAAOglB,QAAQ7nC,QAC7G,OAGGgmE,EAAOP,YAERS,GAEA9gD,IAAQvC,EAAOqf,SAASK,IAE5B,GACF,MA3P0EyhC,GAAkBW,EAAY1lE,UAAWmmE,GAA2E/gE,OAAO0d,eAAe4iD,EAAa,YAAa,CAAEzmD,UAAU,IA6PrPimD,CACT,CAjPkC,GChBlC,SAAS,GAAQtlD,GAAkC,OAAO,GAAU,mBAAqBwD,QAAU,iBAAmBA,OAAOC,SAAW,SAAUzD,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqBwD,QAAUxD,EAAInW,cAAgB2Z,QAAUxD,IAAQwD,OAAOpjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAC/U,IAAI,GAAY,CAAC,aACjB,SAAS,GAAQc,EAAQ28C,GAAkB,IAAIh4D,EAAOD,OAAOC,KAAKqb,GAAS,GAAItb,OAAO2d,sBAAuB,CAAE,IAAIu6C,EAAUl4D,OAAO2d,sBAAsBrC,GAAS28C,IAAmBC,EAAUA,EAAQ53D,QAAO,SAAUgpB,GAAO,OAAOtpB,OAAO4d,yBAAyBtC,EAAQgO,GAAK1P,UAAY,KAAK3Z,EAAKzD,KAAKL,MAAM8D,EAAMi4D,EAAU,CAAE,OAAOj4D,CAAM,CACpV,SAAS,GAAcka,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIwd,EAAS,MAAQpd,UAAUJ,GAAKI,UAAUJ,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQwE,OAAOgZ,IAAS,GAAIzW,SAAQ,SAAUlF,GAAO,GAAgB8c,EAAQ9c,EAAK2b,EAAO3b,GAAO,IAAK2C,OAAO8d,0BAA4B9d,OAAO+d,iBAAiB5D,EAAQna,OAAO8d,0BAA0B9E,IAAW,GAAQhZ,OAAOgZ,IAASzW,SAAQ,SAAUlF,GAAO2C,OAAO0d,eAAevD,EAAQ9c,EAAK2C,OAAO4d,yBAAyB5E,EAAQ3b,GAAO,GAAI,CAAE,OAAO8c,CAAQ,CACzf,SAAS,GAAgBK,EAAKnd,EAAK6B,GAA4L,OAAnL7B,EAC5C,SAAwB9C,GAAO,IAAI8C,EACnC,SAAsBg7D,GAAe,GAAuB,WAAnB,GAAQA,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIC,EAAOD,EAAMr6C,OAAOu6C,aAAc,QAAal+D,IAATi+D,EAAoB,CAAE,IAAIjmD,EAAMimD,EAAKt8D,KAAKq8D,EAAOG,UAAoB,GAAqB,WAAjB,GAAQnmD,GAAmB,OAAOA,EAAK,MAAM,IAAIpX,UAAU,+CAAiD,CAAE,OAA4Bge,OAAiBo/C,EAAQ,CADnV,CAAa99D,GAAgB,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM4b,OAAO5b,EAAM,CAD1E,CAAeA,MAAiBmd,EAAOxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAAE6B,MAAOA,EAAO0a,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBW,EAAInd,GAAO6B,EAAgBsb,CAAK,CAK3O,SAASsnD,GAA8BvE,GAGrC,OAFgBA,EAAQwE,UAH1B,SAAkC/oD,EAAQyB,GAAY,GAAc,MAAVzB,EAAgB,MAAO,CAAC,EAAG,IAAkE3b,EAAK7B,EAAnE2e,EACzF,SAAuCnB,EAAQyB,GAAY,GAAc,MAAVzB,EAAgB,MAAO,CAAC,EAAG,IAA2D3b,EAAK7B,EAA5D2e,EAAS,CAAC,EAAOO,EAAa1a,OAAOC,KAAK+Y,GAAqB,IAAKxd,EAAI,EAAGA,EAAIkf,EAAW/e,OAAQH,IAAO6B,EAAMqd,EAAWlf,GAAQif,EAAS9Z,QAAQtD,IAAQ,IAAa8c,EAAO9c,GAAO2b,EAAO3b,IAAQ,OAAO8c,CAAQ,CADhN,CAA8BnB,EAAQyB,GAAuB,GAAIza,OAAO2d,sBAAuB,CAAE,IAAIq+C,EAAmBh8D,OAAO2d,sBAAsB3E,GAAS,IAAKxd,EAAI,EAAGA,EAAIwgE,EAAiBrgE,OAAQH,IAAO6B,EAAM2+D,EAAiBxgE,GAAQif,EAAS9Z,QAAQtD,IAAQ,GAAkB2C,OAAOpF,UAAU2pB,qBAAqBvoB,KAAKgd,EAAQ3b,KAAgB8c,EAAO9c,GAAO2b,EAAO3b,GAAQ,CAAE,OAAO8c,CAAQ,CAItd,CAAyBojD,EAAS,GAEvD,CCbA,SAAS,GAAQ/iD,GAAkC,OAAO,GAAU,mBAAqBwD,QAAU,iBAAmBA,OAAOC,SAAW,SAAUzD,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqBwD,QAAUxD,EAAInW,cAAgB2Z,QAAUxD,IAAQwD,OAAOpjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAC/U,SAAS,GAAQc,EAAQ28C,GAAkB,IAAIh4D,EAAOD,OAAOC,KAAKqb,GAAS,GAAItb,OAAO2d,sBAAuB,CAAE,IAAIu6C,EAAUl4D,OAAO2d,sBAAsBrC,GAAS28C,IAAmBC,EAAUA,EAAQ53D,QAAO,SAAUgpB,GAAO,OAAOtpB,OAAO4d,yBAAyBtC,EAAQgO,GAAK1P,UAAY,KAAK3Z,EAAKzD,KAAKL,MAAM8D,EAAMi4D,EAAU,CAAE,OAAOj4D,CAAM,CACpV,SAAS,GAAcka,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIwd,EAAS,MAAQpd,UAAUJ,GAAKI,UAAUJ,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQwE,OAAOgZ,IAAS,GAAIzW,SAAQ,SAAUlF,GAAO,GAAgB8c,EAAQ9c,EAAK2b,EAAO3b,GAAO,IAAK2C,OAAO8d,0BAA4B9d,OAAO+d,iBAAiB5D,EAAQna,OAAO8d,0BAA0B9E,IAAW,GAAQhZ,OAAOgZ,IAASzW,SAAQ,SAAUlF,GAAO2C,OAAO0d,eAAevD,EAAQ9c,EAAK2C,OAAO4d,yBAAyB5E,EAAQ3b,GAAO,GAAI,CAAE,OAAO8c,CAAQ,CACzf,SAAS,GAAgBK,EAAKnd,EAAK6B,GAA4L,OAAnL7B,EAC5C,SAAwB9C,GAAO,IAAI8C,EACnC,SAAsBg7D,GAAe,GAAuB,WAAnB,GAAQA,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIC,EAAOD,EAAMr6C,OAAOu6C,aAAc,QAAal+D,IAATi+D,EAAoB,CAAE,IAAIjmD,EAAMimD,EAAKt8D,KAAKq8D,EAAOG,UAAoB,GAAqB,WAAjB,GAAQnmD,GAAmB,OAAOA,EAAK,MAAM,IAAIpX,UAAU,+CAAiD,CAAE,OAA4Bge,OAAiBo/C,EAAQ,CADnV,CAAa99D,GAAgB,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM4b,OAAO5b,EAAM,CAD1E,CAAeA,MAAiBmd,EAAOxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAAE6B,MAAOA,EAAO0a,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBW,EAAInd,GAAO6B,EAAgBsb,CAAK,CCGpO,SAASwnD,KACd,IAAK,IAAIC,EAAOrmE,UAAUD,OAAQwiE,EAAU,IAAIliE,MAAMgmE,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAClF/D,EAAQ+D,GAAQtmE,UAAUsmE,GAE5B,IAAIC,EAAQhE,EAAQj7D,KAAI,SAAUq7D,GAChC,MAPK,CAAC,sDAJ8BzH,EAWLyH,GAVjBz6D,KAGoD,YADnC,KAD/Bs+D,EAAiBtL,EAAKuL,YAC0BD,EACsC,aAAe,IAAIvmD,KAAK,IAJ3G,IAAiCi7C,EAEpCsL,CAUF,IAAGvmD,KAAK,MACR,OAAO,SAAU2F,GACf,MAAO,CAACA,EAAS,sBAAsBliB,OAAO6iE,IAAQ7hE,OAAOG,SAASob,KAAK,OAC7E,CACF,CChBO,SAASymD,GAAc/D,GAC5B,MAAyB,cAAlBA,EAAOG,MAChB,CCFO,SAAS6D,GAAKx5D,GACnB,OAAOA,EAAMzI,QAAO,SAAUpB,EAAOpB,EAAOwE,GAC1C,OAAOA,EAAK3B,QAAQzB,KAAWpB,CACjC,GACF,CCJA,SAAS,GAAQ0c,GAAkC,OAAO,GAAU,mBAAqBwD,QAAU,iBAAmBA,OAAOC,SAAW,SAAUzD,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqBwD,QAAUxD,EAAInW,cAAgB2Z,QAAUxD,IAAQwD,OAAOpjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAC/U,IAAI,GAAY,CAAC,SAAU,oBAAqB,oBAAqB,iBAAkB,+BAAgC,qBAAsB,iBAAkB,qBAAsB,gCAAiC,gBACtN,SAAS,GAAQc,EAAQ28C,GAAkB,IAAIh4D,EAAOD,OAAOC,KAAKqb,GAAS,GAAItb,OAAO2d,sBAAuB,CAAE,IAAIu6C,EAAUl4D,OAAO2d,sBAAsBrC,GAAS28C,IAAmBC,EAAUA,EAAQ53D,QAAO,SAAUgpB,GAAO,OAAOtpB,OAAO4d,yBAAyBtC,EAAQgO,GAAK1P,UAAY,KAAK3Z,EAAKzD,KAAKL,MAAM8D,EAAMi4D,EAAU,CAAE,OAAOj4D,CAAM,CACpV,SAAS,GAAcka,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIwd,EAAS,MAAQpd,UAAUJ,GAAKI,UAAUJ,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQwE,OAAOgZ,IAAS,GAAIzW,SAAQ,SAAUlF,GAAO,GAAgB8c,EAAQ9c,EAAK2b,EAAO3b,GAAO,IAAK2C,OAAO8d,0BAA4B9d,OAAO+d,iBAAiB5D,EAAQna,OAAO8d,0BAA0B9E,IAAW,GAAQhZ,OAAOgZ,IAASzW,SAAQ,SAAUlF,GAAO2C,OAAO0d,eAAevD,EAAQ9c,EAAK2C,OAAO4d,yBAAyB5E,EAAQ3b,GAAO,GAAI,CAAE,OAAO8c,CAAQ,CACzf,SAAS,GAAgBK,EAAKnd,EAAK6B,GAA4L,OAAnL7B,EAC5C,SAAwB9C,GAAO,IAAI8C,EACnC,SAAsBg7D,GAAe,GAAuB,WAAnB,GAAQA,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIC,EAAOD,EAAMr6C,OAAOu6C,aAAc,QAAal+D,IAATi+D,EAAoB,CAAE,IAAIjmD,EAAMimD,EAAKt8D,KAAKq8D,EAAOG,UAAoB,GAAqB,WAAjB,GAAQnmD,GAAmB,OAAOA,EAAK,MAAM,IAAIpX,UAAU,+CAAiD,CAAE,OAA4Bge,OAAiBo/C,EAAQ,CADnV,CAAa99D,GAAgB,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM4b,OAAO5b,EAAM,CAD1E,CAAeA,MAAiBmd,EAAOxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAAE6B,MAAOA,EAAO0a,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBW,EAAInd,GAAO6B,EAAgBsb,CAAK,CAO3O,IAkFWgoD,GAAwB,WACjC,IAAK,IAAIP,EAAOrmE,UAAUD,OAAQ+C,EAAa,IAAIzC,MAAMgmE,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IACrFxjE,EAAWwjE,GAAQtmE,UAAUsmE,GAE/B,OAAOxjE,EAAWwB,QAAO,SAAUuiE,EAAMC,GACvC,IAAIC,EAnBiC,SAA4CF,EAAMC,GACzF,OAAOD,EAAKj+D,mBAAmB,CAC7BnC,8BAA+B,GAAc,GAAc,CAAC,EAAGogE,EAAKpgE,+BAAgCqgE,EAAMrgE,gCAE9G,CAe8CugE,CAAmCH,EAAMC,GAE/EG,EA9CkB,SAA6BJ,EAAMC,GAC3D,OAAOA,EAAMtgE,eAAelC,QAAO,SAAUmuB,EAAGnvB,GAC9C,OAAOmvB,EAAEpnB,iBAAiB/H,EAC5B,GAAGujE,EACL,CA0C+BK,CA/DD,SAAiCL,EAAMC,GACnE,OAAOD,EAAKj+D,mBAAmB,CAC7BzC,mBAAoB2gE,EAAM3gE,mBAAmB7B,QAAO,SAAU2B,EAAQ6B,GACpE,IAAI5F,EClCH,SAAmBiL,GACxB,IAAK9M,MAAMoF,QAAQ0H,GACjB,OAAQ,EAEV,IAAK,IAAIvN,EAAI,EAAGA,EAAIuN,EAAMpN,OAAQH,IAChC,GAAeuN,EAAMvN,GD8BRsI,OAASJ,EAAMI,KC7B1B,OAAOtI,EAGX,OAAQ,CACV,CDwBkB8R,CAAUzL,GAGtB,IAAe,IAAX/D,EACF,OAAO+D,EAAOvC,OAAOoE,GAEvB,IAAIq/D,EAAalhE,EAAO3F,QAExB,OADA6mE,EAAW5lE,OAAOW,EAAO,EAAG4F,GACrBq/D,CACT,GAAGN,EAAK1gE,qBAEZ,CAgDmCihE,CAAwBL,EAAqCD,GACnBA,GACrEO,EA3BsB,SAAiCR,EAAMC,GACnE,OAAOD,EAAKj+D,mBAAmB,CAC7BrC,mBAAoB,GAAc,GAAc,CAAC,EAAGsgE,EAAKtgE,oBAAqBugE,EAAMvgE,qBAExF,CAuBmC+gE,CAAwBL,EAAsBH,GACzES,EAjCgC,SAA2CV,EAAMC,GACvF,OAAOD,EAAKj+D,mBAAmB,CAC7BtC,6BAA8B,GAAc,GAAc,CAAC,EAAGugE,EAAKvgE,8BAA+BwgE,EAAMxgE,+BAE5G,CA6B6CkhE,CAAkCH,EAA0BP,GACjGW,EAvCkB,SAA6BZ,EAAMC,GAC3D,OAAOD,EAAKj+D,mBAAmB,CAC7BvC,eAAgB,GAAc,GAAc,CAAC,EAAGwgE,EAAKxgE,gBAAiBygE,EAAMzgE,iBAEhF,CAmC+BqhE,CAAoBH,EAAoCT,GAC/Ea,EA7CoB,SAA+Bd,EAAMC,GAC/D,OAAOD,EAAKj+D,mBAAmB,CAC7BxC,kBAAmB,GAAc,GAAc,CAAC,EAAGygE,EAAKzgE,mBAAoB0gE,EAAM1gE,oBAEtF,CAyCiCwhE,CAAsBH,EAAsBX,GACrEe,EAzEqB,SAAgChB,EAAMC,GACjE,OAAOA,EAAM5gE,kBAAkB5B,QAAO,SAAUmuB,EAAGvqB,GACjD,OAAOuqB,EAAE3nB,oBAAoB5C,EAC/B,GAAG2+D,EACL,CAqEkCiB,CAAuBH,EAAwBb,GACzEiB,EAtBgB,SAA2BlB,EAAMC,GACvD,IAAIkB,EAAerB,GAAK,GAAGjjE,OAAOmjE,EAAKmB,cAActkE,OAAOojE,EAAMkB,cAActjE,OAAOG,UACvF,OAAImjE,EAAajoE,OAAS,EACjB8mE,EAAKj+D,mBAAmB,CAC7Bo/D,aAAcA,IAGXnB,CACT,CAc6BoB,CAAkBJ,EAAyBf,GAChEoB,EAhFU,SAAqBrB,EAAMC,GAC3C,OAAOA,EAAM7gE,OAAO3B,QAAO,SAAUmuB,EAAGvqB,GACtC,OAAOuqB,EAAE5nB,SAAS3C,EACpB,GAAG2+D,EACL,CA4EuBsB,CAAYJ,EAAoBjB,GACnD,OAjGgB,SAAuBD,EAAMC,GAClCA,EAAM7gE,OACG6gE,EAAM5gE,kBACN4gE,EAAM1gE,kBACT0gE,EAAMzgE,eACQygE,EAAMxgE,6BAChBwgE,EAAMvgE,mBACVugE,EAAMtgE,eACFsgE,EAAM3gE,mBACK2gE,EAAMrgE,8BACvBqgE,EAAMkB,aATvB,IAUEI,EAfJ,SAAkChrD,EAAQyB,GAAY,GAAc,MAAVzB,EAAgB,MAAO,CAAC,EAAG,IAAkE3b,EAAK7B,EAAnE2e,EACzF,SAAuCnB,EAAQyB,GAAY,GAAc,MAAVzB,EAAgB,MAAO,CAAC,EAAG,IAA2D3b,EAAK7B,EAA5D2e,EAAS,CAAC,EAAOO,EAAa1a,OAAOC,KAAK+Y,GAAqB,IAAKxd,EAAI,EAAGA,EAAIkf,EAAW/e,OAAQH,IAAO6B,EAAMqd,EAAWlf,GAAQif,EAAS9Z,QAAQtD,IAAQ,IAAa8c,EAAO9c,GAAO2b,EAAO3b,IAAQ,OAAO8c,CAAQ,CADhN,CAA8BnB,EAAQyB,GAAuB,GAAIza,OAAO2d,sBAAuB,CAAE,IAAIq+C,EAAmBh8D,OAAO2d,sBAAsB3E,GAAS,IAAKxd,EAAI,EAAGA,EAAIwgE,EAAiBrgE,OAAQH,IAAO6B,EAAM2+D,EAAiBxgE,GAAQif,EAAS9Z,QAAQtD,IAAQ,GAAkB2C,OAAOpF,UAAU2pB,qBAAqBvoB,KAAKgd,EAAQ3b,KAAgB8c,EAAO9c,GAAO2b,EAAO3b,GAAQ,CAAE,OAAO8c,CAAQ,CAehe,CAAyBuoD,EAAO,IACzC,OAAOD,EAAKj+D,mBAAmBw/D,EACjC,CAoFWC,CAAcH,EAAcpB,EACrC,GACF,EE9GA,SAAS,GAAQloD,GAAkC,OAAO,GAAU,mBAAqBwD,QAAU,iBAAmBA,OAAOC,SAAW,SAAUzD,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqBwD,QAAUxD,EAAInW,cAAgB2Z,QAAUxD,IAAQwD,OAAOpjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAC/U,IAAI,GAAY,CAAC,2BACjB,SAAS,GAAQc,EAAQ28C,GAAkB,IAAIh4D,EAAOD,OAAOC,KAAKqb,GAAS,GAAItb,OAAO2d,sBAAuB,CAAE,IAAIu6C,EAAUl4D,OAAO2d,sBAAsBrC,GAAS28C,IAAmBC,EAAUA,EAAQ53D,QAAO,SAAUgpB,GAAO,OAAOtpB,OAAO4d,yBAAyBtC,EAAQgO,GAAK1P,UAAY,KAAK3Z,EAAKzD,KAAKL,MAAM8D,EAAMi4D,EAAU,CAAE,OAAOj4D,CAAM,CACpV,SAAS,GAAcka,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIwd,EAAS,MAAQpd,UAAUJ,GAAKI,UAAUJ,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQwE,OAAOgZ,IAAS,GAAIzW,SAAQ,SAAUlF,GAAO,GAAgB8c,EAAQ9c,EAAK2b,EAAO3b,GAAO,IAAK2C,OAAO8d,0BAA4B9d,OAAO+d,iBAAiB5D,EAAQna,OAAO8d,0BAA0B9E,IAAW,GAAQhZ,OAAOgZ,IAASzW,SAAQ,SAAUlF,GAAO2C,OAAO0d,eAAevD,EAAQ9c,EAAK2C,OAAO4d,yBAAyB5E,EAAQ3b,GAAO,GAAI,CAAE,OAAO8c,CAAQ,CACzf,SAAS,GAAgBK,EAAKnd,EAAK6B,GAA4L,OAAnL7B,EAC5C,SAAwB9C,GAAO,IAAI8C,EACnC,SAAsBg7D,GAAe,GAAuB,WAAnB,GAAQA,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIC,EAAOD,EAAMr6C,OAAOu6C,aAAc,QAAal+D,IAATi+D,EAAoB,CAAE,IAAIjmD,EAAMimD,EAAKt8D,KAAKq8D,EAAOG,UAAoB,GAAqB,WAAjB,GAAQnmD,GAAmB,OAAOA,EAAK,MAAM,IAAIpX,UAAU,+CAAiD,CAAE,OAA4Bge,OAAiBo/C,EAAQ,CADnV,CAAa99D,GAAgB,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM4b,OAAO5b,EAAM,CAD1E,CAAeA,MAAiBmd,EAAOxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAAE6B,MAAOA,EAAO0a,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBW,EAAInd,GAAO6B,EAAgBsb,CAAK,CAG3O,SAAS,GAAmB2zB,GAAO,OAInC,SAA4BA,GAAO,GAAIlyC,MAAMoF,QAAQ8sC,GAAM,OAAO,GAAkBA,EAAM,CAJhD,CAAmBA,IAG7D,SAA0B+1B,GAAQ,GAAsB,oBAAXlmD,QAAmD,MAAzBkmD,EAAKlmD,OAAOC,WAA2C,MAAtBimD,EAAK,cAAuB,OAAOjoE,MAAMqiB,KAAK4lD,EAAO,CAHxF,CAAiB/1B,IAEtF,SAAqCtwB,EAAGg/C,GAAU,GAAKh/C,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGg/C,GAAS,IAAI9hE,EAAIiF,OAAOpF,UAAUoQ,SAAShP,KAAK6hB,GAAG3hB,MAAM,GAAI,GAAiE,MAAnD,WAANnB,GAAkB8iB,EAAExZ,cAAatJ,EAAI8iB,EAAExZ,YAAYP,MAAgB,QAAN/I,GAAqB,QAANA,EAAoBkB,MAAMqiB,KAAKT,GAAc,cAAN9iB,GAAqB,2CAA2C0iB,KAAK1iB,GAAW,GAAkB8iB,EAAGg/C,QAAzG,CAA7O,CAA+V,CAFjU,CAA4B1uB,IAC1H,WAAgC,MAAM,IAAIlzC,UAAU,uIAAyI,CAD3D,EAAsB,CAKxJ,SAAS,GAAkBkzC,EAAK7yC,IAAkB,MAAPA,GAAeA,EAAM6yC,EAAIxyC,UAAQL,EAAM6yC,EAAIxyC,QAAQ,IAAK,IAAIH,EAAI,EAAGwe,EAAO,IAAI/d,MAAMX,GAAME,EAAIF,EAAKE,IAAKwe,EAAKxe,GAAK2yC,EAAI3yC,GAAI,OAAOwe,CAAM,CAKlL,IAAImqD,GAAYnC,GAAoC,CAClDl+D,KAAM,iBAOR,SAASsgE,GAAsBzsD,EAAQm/C,GACrC,IAAI3rD,EAAQ2rD,EAAK3rD,MACfiI,EAAc0jD,EAAK1jD,YACnBixD,EAAWvN,EAAKuN,SACdl5D,IAAUwM,EAAOxM,QACnBwM,EAAOxM,MAAQA,EACfwM,EAAOzc,KAAK,SAAU,CACpBiQ,MAAOwM,EAAOxM,MACdgC,QAASwK,EAAOtZ,YAChB+U,YAAaA,EACbixD,SAAUA,IAGhB,CACA,SAASC,GAAuBnG,EAASoG,GACvC,IAAIC,EAAiB5oE,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC1F,OAAOuiE,EAAQj+D,QAAO,SAAUq9D,EAASgB,GACvC,OAAI+D,GAAc/D,GACThB,EAEJgB,EAAOkG,kBAAqBlG,EAAOmG,eAGpCnG,EAAOkG,iBACFlG,EAAOkG,iBAAiBlH,EAASgH,GAEnChG,EAAOmG,eAAenH,EAASgH,GAL7BhH,CAMX,GAAGiH,EACL,CACA,SAASG,GAAgCxG,EAASyG,GAChD,IAAIC,EAA0BD,EAA8BC,wBAC1Db,EA3CJ,SAAkChrD,EAAQyB,GAAY,GAAc,MAAVzB,EAAgB,MAAO,CAAC,EAAG,IAAkE3b,EAAK7B,EAAnE2e,EACzF,SAAuCnB,EAAQyB,GAAY,GAAc,MAAVzB,EAAgB,MAAO,CAAC,EAAG,IAA2D3b,EAAK7B,EAA5D2e,EAAS,CAAC,EAAOO,EAAa1a,OAAOC,KAAK+Y,GAAqB,IAAKxd,EAAI,EAAGA,EAAIkf,EAAW/e,OAAQH,IAAO6B,EAAMqd,EAAWlf,GAAQif,EAAS9Z,QAAQtD,IAAQ,IAAa8c,EAAO9c,GAAO2b,EAAO3b,IAAQ,OAAO8c,CAAQ,CADhN,CAA8BnB,EAAQyB,GAAuB,GAAIza,OAAO2d,sBAAuB,CAAE,IAAIq+C,EAAmBh8D,OAAO2d,sBAAsB3E,GAAS,IAAKxd,EAAI,EAAGA,EAAIwgE,EAAiBrgE,OAAQH,IAAO6B,EAAM2+D,EAAiBxgE,GAAQif,EAAS9Z,QAAQtD,IAAQ,GAAkB2C,OAAOpF,UAAU2pB,qBAAqBvoB,KAAKgd,EAAQ3b,KAAgB8c,EAAO9c,GAAO2b,EAAO3b,GAAQ,CAAE,OAAO8c,CAAQ,CA2Che,CAAyByqD,EAA+B,IACjE,OAAOzG,EAAQ79D,QAAO,SAAUi+D,GAC9B,OAAQ+D,GAAc/D,EACxB,IAAGr+D,QAAO,SAAUiL,EAAOozD,GACzB,OAAKA,EAAOuG,0BAGLvG,EAAOuG,0BAA0B35D,EAAO64D,GAFtC74D,CAGX,GAAG05D,EACL,CACA,SAASE,GAAqB5G,GAC5B,IAAI6G,EAAe7G,EAAQ79D,OAAOgiE,IACN,IAAxB0C,EAAarpE,QAGjBqpE,EAAaziE,SAAQ,SAAUg8D,GAC7B,IAAI0G,EAAe1G,EAAOf,YAC1B4G,GAAsBa,EAAc,CAClC95D,MAAO85D,EAAa95D,MAAMf,YAC1BgJ,aAAa,IAEf2xD,GAAqBxG,EAAOM,aAC9B,GACF,CACA,SAASqG,GAAgC/G,GAEvC,OADmBA,EAAQ79D,OAAOgiE,IACdpiE,QAAO,SAAU09D,EAAezG,GAClD,OAAOyG,EAAct+D,OAAOnD,MAAMyhE,EAAe,CAAC,CAChDuH,QAAShO,EAAQiO,aACjBj4D,QAASgqD,EAAQ6G,aACjBrmD,OAAQw/C,EAAQqG,cACfl+D,OAAO,GAAmB4lE,GAAgC/N,EAAQ0H,gBACvE,GAAG,GACL,CACA,IAoYA,GApYY,SAAeL,GACzB,QAAqBnkE,IAAjBmkE,QAAyDnkE,IAA3BmkE,EAAa/oD,UAC7C,MAAM,IAAI5Z,MAAMsoE,GAAU,wCAE5B,IAAI1uD,EAAY+oD,EAAa/oD,UAC3B4vD,EAAwB7G,EAAa2G,QACrCA,OAAoC,IAA1BE,EAAmC5vD,EAAY4vD,EACvDC,EAAe,GACfC,EAAe,CAAC,EAChBC,EAA6B,KAC7BC,EAAc,KACd9tD,EAAS,KACTpD,EAAgB,KAChBmxD,EAA4B,KAChC,MAAO,CACLhH,OAAQ,YACRE,aAAc,YACd+G,aAAc,WACZ,OAAOlwD,CACT,EACA2vD,WAAY,WACV,OAAOD,CACT,EACA3H,UAAW,WACT,OAAO7lD,CACT,EACAqmD,WAAY,WACV,IAAI4H,EACJ,OAA2C,QAApCA,EAAiBrxD,SAA8C,IAAnBqxD,GAA6BA,EAAevnE,aAO/FkW,EAAclW,YAAYuR,OAAS+H,EAAOxM,MACnCoJ,EAAclW,aAR+F,IAStH,EACAwnE,iBAAkB,WAChB,OAAOH,CACT,EACAzH,iBAAkB,WAChB,IAAI6H,EAAe5rE,KAAK6rE,YAIxB,OAAOb,GADcY,EAAeA,EAAajH,aAAe,CAAC3kE,MAEnE,EACA6rE,UAAW,WACT,OAAON,CACT,EACA9H,UAAW,SAAmBqI,GAC5B,OAAOR,EAA2B/E,WAAW,GAAgB,CAAC,EAAG0E,EAASb,GAAuBgB,EAAc,CAC7GW,iBAAkBD,EAClBruD,OAAQA,KAEZ,EACAknD,WAAY,WACV,OAAOyG,CACT,EACAY,WAAY,SAAoB/H,GAC9B,IAAI4B,EAAQ7lE,KACZ,IAAK+B,MAAMoF,QAAQ88D,GACjB,MAAM,IAAItiE,MAAMsoE,GAAU,yDAE5B,GAAIhG,EAAQpiD,MAAK,SAAUwiD,GACzB,MAA8B,mBAAhBA,EAAOh0B,MAAgD,mBAAlBg0B,EAAO/yC,MAC5D,IACE,MAAM,IAAI3vB,MAAMsoE,GAAU,sEAgC5B,OA9BAmB,EAAeA,EAAahmE,OAAO6+D,GAC/BqH,GAA8B/kE,QAAQ09D,EAAQxiE,UAChDyoE,GAAsBzsD,EAAQ,CAC5BxM,MAAOw5D,GAAgCW,EAAc,CACnD/H,QAASgI,EACTV,wBAAyBltD,EAAOxM,QAElCk5D,SAAUkB,IAMZpH,EAAQ57D,SAAQ,SAAUg8D,GACpBA,EAAO4H,gBAETC,GAAiB,CACf3I,YAFgBc,EAAO4H,eAAeX,EAA2B/H,YAAYsC,EAAMqF,eAAiB,CAAC,EAAG/H,GAAemI,EAA4BzF,EAAOyF,EAA2BlH,kBAGrLhB,sBAAuBkI,EACvBv5D,OAAQ8zD,GAGd,IACA5B,EAAQ57D,SAAQ,SAAUg8D,GACpBA,EAAOh0B,MACTg0B,EAAOh0B,KAAK8yB,GAAemI,EAA4BzF,EAAOyF,EAA2BlH,iBAE7F,IACAkH,EAA2Ba,kBAEtBnsE,IACT,EACAosE,cAAe,SAAuBnI,GACpC,IAAI+C,EAAShnE,KACb,IAAK+B,MAAMoF,QAAQ88D,GACjB,MAAM,IAAItiE,MAAMsoE,GAAU,4DAE5B,GAAIhG,EAAQpiD,MAAK,SAAUwiD,GACzB,MAAiC,mBAAnBA,EAAO8B,OACvB,IACE,MAAM,IAAIxkE,MAAMsoE,GAAU,sDAK5B,GAHAmB,EAAeA,EAAahlE,QAAO,SAAUi+D,GAC3C,OAAoC,IAA7BJ,EAAQx9D,QAAQ49D,EACzB,IACIiH,GAA8B/kE,QAAQ09D,EAAQxiE,QAAS,CACzD,IAAIqqE,EAAY7H,EAAQj+D,QAAO,SAAUiL,EAAOozD,GAO9C,OALWA,EAAO8B,QAAQ,CACxB1oD,OAAQA,EACRxM,MAAOA,EACPc,OAAQi1D,KAEK/1D,CACjB,GAAGwM,EAAOxM,OACVo6D,EAAejB,GAAuBgB,EAAc,CAClDW,iBAAkBD,EAClBruD,OAAQA,IAEVA,EAAOd,SAAS8tD,GAAgCW,EAAc,CAC5D/H,QAASgI,EACTV,wBAAyBmB,KAEvBV,EAAa3pE,QACf6pE,EAA2Ba,gBAE/B,CACA,OAAOnsE,IACT,EACAqwC,KAAM,SAAcs2B,GAClB,IACE0F,EADElF,EAASnnE,KAETojE,EAAwBuD,EAAMvD,sBAChCrxD,EAAS40D,EAAM50D,OACfsxD,EAAUsD,EAAMtD,QAClB,GAAe,OAAX5lD,EAAJ,CAKA6tD,EAA6BlI,EAC7BmI,EAAcx5D,EACds5D,EAAehI,EAAQ4H,IAAY,CAAC,EAKpC,IAAIjnE,EAAao/D,EAAsBp/D,WACnCQ,EAAaimE,GAAgCW,EAAc,CAC7D/H,QAASgI,EACTV,wBAAyB,IAAI,oBAAqC,CAChE/mE,MAAO2X,OAOXkC,EAAS,GAAoB,CAAC,EAAGjZ,EAAWZ,MAAOY,IAK5C4U,OAAS,WACd,OAAIgqD,EAAsB8B,eACxB9B,EAAsB8B,cAAc,CAClC7B,QAASD,EAAsBe,UAAUoG,iBAAiB,CAAC,GAC3D+B,WAAY,SAAoBR,GAC9B,OAAO1I,EAAsBkJ,WAAWR,GAAW,EACrD,IAKK9nE,GAEFA,EAAWoV,QACpB,EACAqE,EAAO8uD,qCAAuC,WAC5C,OAAOvoE,EAAWoV,QACpB,EAGAqE,EAAO3C,qBAAuB,SAAUrP,EAAW2G,EAAY2I,EAAcC,GAC3E,IAAI/J,EAAQwM,EAAOxM,MAAM3G,mBAAmB0Q,GAC5C,OAAOhX,EAAW8W,qBAAqBrP,EAAW2G,EAAY2I,EAAc9J,EAC9E,EACAoJ,EAAgBrW,EAAW0a,QAAO,WAChC,OAAO4pD,GAAsBrmE,WAAM,EAAQ,GChS5C,SAAiCg7D,GAGtC,IAFA,IAAIlrD,EAASkrD,EAAQ4O,YACjBvuD,EAAS,CAAC2/C,EAAQqG,YAAYryD,OAChB,OAAXc,GACLuL,EAAS,CAACvL,EAAOuxD,YAAYryD,OAAO7L,OAAOkY,GAC3CvL,EAASA,EAAO85D,YAElB,OAAOvuD,CACT,CDwRsEkvD,CAAwBrF,IACxF,IACA,IAAIsF,EAA0F,QAAnEJ,EAAwBjJ,EAAsBsJ,uBAAuD,IAA1BL,OAAmC,EAASA,EAAsBrsE,KAAKkrE,cAC7K,GAAIuB,EAAqB,CAGvB,IAAIx5D,EAAU,IAAI,iBAAkC,IAAI,oBAAqCw5D,EAAoBx7D,OAAQw7D,EAAoBx5D,SAC7IoH,EAAclW,YAAc8O,EAC5BwK,EAAOtZ,YAAc8O,CACvB,CAMAwK,EAAO/a,GAAG,UAAU,SAAUqiE,GACVA,EAAM7rD,aAEtB2xD,GAAqBO,EAEzB,IACA/wD,EAAc3X,GAAG,UAAU,WAKzB0gE,EAAsBuJ,uBAOxB,IACAtyD,EAAc3X,GAAG,UAAU,SAAU2kE,GACnC,IAAIp0D,EAAUo0D,EAAMp0D,QAIpBmwD,EAAsBwJ,iBAMtBnvD,EAAOtZ,YAAc8O,EACrBu4D,EAA4Bv4D,aAAyC,EAASA,EAAQyC,MACxF,IAKA01D,EAAa/iE,SAAQ,SAAUg8D,GACzBA,EAAO4H,gBAETC,GAAiB,CACf3I,YAFgBc,EAAO4H,eAAe7I,EAAsBG,YAAY4D,EAAO+D,eAAiB,CAAC,EAAG/H,GAAeC,EAAuB+D,EAAQ9D,IAGlJD,sBAAuBA,EACvBrxD,OAAQo1D,GAGd,IACAiE,EAAa/iE,SAAQ,SAAUg8D,GAKzBA,EAAOh0B,MACTg0B,EAAOh0B,KAAK8yB,GAAeC,EAAuB+D,EAAQ9D,GAE9D,IAQA5lD,EAAO/a,GAAG,UAAU,SAAU4b,GAC5B,IAAIrN,EAAQqN,EAAMrN,MACdk5D,EAAW7rD,EAAM6rD,SACrBkB,EAAejB,GAAuBgB,EAAc,CAClDW,iBAAkB96D,EAClBwM,OAAQA,GACP0sD,GAAY,CAAC,GAIX/G,EAAsB8B,eACzB9B,EAAsByJ,uBAE1B,IACIJ,GAIFrJ,EAAsBwJ,gBAjJxB,CAmJF,EACAt7C,OAAQ,SAAgBk2C,GACtB,IAAIF,EAAStnE,KACTojE,EAAwBoE,EAAMpE,sBAGG,UAAjCA,EAAsB38C,SAAuB28C,EAAsBp/D,WAAW4a,sBAAwB4sD,GACxG/tD,EAAOd,SAAS6uD,GAKlB,IAAIsB,EAAkB9sE,KAAK8jE,aAAesH,EAAeA,EAAahlE,OAAOgiE,IAC7E0E,EAAgBzkE,SAAQ,SAAUg8D,GAC5BA,EAAO4H,gBAETC,GAAiB,CACf3I,YAFgBc,EAAO4H,eAAe7I,EAAsBG,YAAY+D,EAAO4D,eAAiB,CAAC,EAAGrH,GAAiBT,EAAuBkE,IAG5IlE,sBAAuBA,EACvBrxD,OAAQu1D,GAGd,IACAwF,EAAgBzkE,SAAQ,SAAUg8D,GAQ5BA,EAAO/yC,QACT+yC,EAAO/yC,OAAOuyC,GAAiBT,EAAuBkE,GAE1D,GACF,EACAnB,QAAS,WACP,IACE4G,EACAC,EAFEvF,EAASznE,KAGborE,EAAa/iE,SAAQ,SAAUg8D,GACzBA,EAAO8B,SAOT9B,EAAO8B,QAAQ,CACb1oD,OAAQA,EACRxM,MAAOwM,EAAOxM,MACdc,OAAQ01D,GAGd,IACA6D,EAA6B,KAC7BC,EAAc,KACS,QAAtBwB,EAAUtvD,SAAgC,IAAZsvD,GAA8BA,EAAQ7pE,qBACrEua,EAAS,KAC6B,QAArCuvD,EAAkB3yD,SAA+C,IAApB2yD,GAAsCA,EAAgB3oE,SACpGgW,EAAgB,IAClB,EACAkwD,iBAAkB,SAA0BlH,GAC1C,OAAO+H,EAAahlE,OAAOgiE,IAAepiE,QAAO,SAAUinE,EAAiBC,GAC1E,OAAOA,EAAW3C,iBAAiB0C,EACrC,GAAG,GAAc,GAAc,CAAC,EAAG5J,GAAU,CAAC,EAAG,GAAgB,CAAC,EAAG4H,EAAS,GAAc,GAAc,CAAC,EAAG5H,EAAQ4H,IAAWI,KACnI,EACAb,eAAgB,SAAwBnH,GAEtC,OAAOrjE,KAAKuqE,iBAAiBlH,EAC/B,EACAuH,0BAA2B,SAAmCmB,EAAkBrE,GAC9E,IAAIrE,EAAUqE,EAAMrE,QACpB,OAAOoH,GAAgCW,EAAc,CACnD/H,QAASA,EACTsH,wBAAyBoB,GAE7B,EACAoB,eAAgB,WACd9B,EAAejB,GAAuBgB,EAAc,CAClDW,iBAAkB/rE,KAAKsjE,YAAYryD,MACnCwM,OAAQzd,KAAKsjE,aACZ+H,EACL,EACA+B,gBAAiB,SAAyBC,GACxC,IAAIC,EAA2C,mBAAjBD,EAA8BA,EAAahC,GAAgBgC,EACzF/B,EAA2BgB,YAAW,SAAUr7D,GAC9C,OAAO,GAAc,GAAc,CAAC,EAAGA,GAAQ,CAAC,EAAG,GAAgB,CAAC,EAAGg6D,EAASqC,GAClF,GACF,EAEJ,EAEA,SAASpB,GAAiBqB,GACxB,IAAIhK,EAAcgK,EAAMhK,YACtBH,EAAwBmK,EAAMnK,sBAC9BrxD,EAASw7D,EAAMx7D,OACby7D,EAAkBz7D,EAASA,EAAOm5D,aAAe9H,EAAsBe,UAAU+G,aACrF9H,EAAsBG,YAAc,GAAc,GAAc,CAAC,EAAGH,EAAsBG,aAAc,CAAC,EAAG,GAAgB,CAAC,EAAGiK,EAAiB,GAAc,GAAc,CAAC,EAAGpK,EAAsBG,YAAYiK,IAAmBjK,IACxO,CEreA,SAAS,GAAQjjD,GAAkC,OAAO,GAAU,mBAAqBwD,QAAU,iBAAmBA,OAAOC,SAAW,SAAUzD,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqBwD,QAAUxD,EAAInW,cAAgB2Z,QAAUxD,IAAQwD,OAAOpjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAC/U,SAAS,GAAQc,EAAQ28C,GAAkB,IAAIh4D,EAAOD,OAAOC,KAAKqb,GAAS,GAAItb,OAAO2d,sBAAuB,CAAE,IAAIu6C,EAAUl4D,OAAO2d,sBAAsBrC,GAAS28C,IAAmBC,EAAUA,EAAQ53D,QAAO,SAAUgpB,GAAO,OAAOtpB,OAAO4d,yBAAyBtC,EAAQgO,GAAK1P,UAAY,KAAK3Z,EAAKzD,KAAKL,MAAM8D,EAAMi4D,EAAU,CAAE,OAAOj4D,CAAM,CACpV,SAAS,GAAcka,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIwd,EAAS,MAAQpd,UAAUJ,GAAKI,UAAUJ,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQwE,OAAOgZ,IAAS,GAAIzW,SAAQ,SAAUlF,GAAO,GAAgB8c,EAAQ9c,EAAK2b,EAAO3b,GAAO,IAAK2C,OAAO8d,0BAA4B9d,OAAO+d,iBAAiB5D,EAAQna,OAAO8d,0BAA0B9E,IAAW,GAAQhZ,OAAOgZ,IAASzW,SAAQ,SAAUlF,GAAO2C,OAAO0d,eAAevD,EAAQ9c,EAAK2C,OAAO4d,yBAAyB5E,EAAQ3b,GAAO,GAAI,CAAE,OAAO8c,CAAQ,CACzf,SAAS,GAAgBK,EAAKnd,EAAK6B,GAA4L,OAAnL7B,EAC5C,SAAwB9C,GAAO,IAAI8C,EACnC,SAAsBg7D,GAAe,GAAuB,WAAnB,GAAQA,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIC,EAAOD,EAAMr6C,OAAOu6C,aAAc,QAAal+D,IAATi+D,EAAoB,CAAE,IAAIjmD,EAAMimD,EAAKt8D,KAAKq8D,EAAOG,UAAoB,GAAqB,WAAjB,GAAQnmD,GAAmB,OAAOA,EAAK,MAAM,IAAIpX,UAAU,+CAAiD,CAAE,OAA4Bge,OAAiBo/C,EAAQ,CADnV,CAAa99D,GAAgB,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM4b,OAAO5b,EAAM,CAD1E,CAAeA,MAAiBmd,EAAOxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAAE6B,MAAOA,EAAO0a,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBW,EAAInd,GAAO6B,EAAgBsb,CAAK,CAK5N,SAASmtD,GAAa7Q,GACnC,IAAI8Q,EAAe9Q,EAAK8Q,aACxB,MAAO,CACLC,aAAc,SAAsB3oE,EAAOssB,GACzC,OCZC,SAAsBtsB,EAAO0oE,GAClC,OAAO1oE,EAAM4oE,eAAeF,EAC9B,CDUa,CAAcjnB,OAAOn1B,EAAOtsB,IAAS0oE,EAC9C,EACAG,UAAW,SAAmB/5D,EAASwd,GACrC,IAEE,OAAOA,EAAO,GAAW,GAAc,GAAc,CAAC,EAD/BvgB,KAAKwT,MAAMzQ,IAC0C,CAAC,EAAG,CAC9EmrD,IAAKj/D,QAET,CAAE,MAAOwB,GACP,MAAM,IAAIG,MAAM,qHAClB,CACF,EACAmsE,iBAAkB,SAA0Bh6D,EAASwd,GACnD,IAEE,OAAOA,EAAO,GAAkB,GAAc,GAAc,CAAC,EAD/BvgB,KAAKwT,MAAMzQ,IACiD,CAAC,EAAG,CAC5FmrD,IAAKj/D,QAET,CAAE,MAAOwB,GACP,MAAM,IAAIG,MAAM,gIAClB,CACF,EACAosE,QAAS,SAAiBj6D,EAASwd,GACjC,IAEE,OAAOA,EAAO,GAAS,GAAc,GAAc,CAAC,EAD/BvgB,KAAKwT,MAAMzQ,IACwC,CAAC,EAAG,CAC1EmrD,IAAKj/D,QAET,CAAE,MAAOwB,GACP,MAAM,IAAIG,MAAM,mHAClB,CACF,EACAqsE,eAAgB,SAAwBl6D,EAASwd,GAC/C,IAEE,OAAOA,EAAO,GAAgB,GAAc,GAAc,CAAC,EAD/BvgB,KAAKwT,MAAMzQ,IAC+C,CAAC,EAAG,CACxFmrD,IAAKj/D,QAET,CAAE,MAAOwB,GACP,MAAM,IAAIG,MAAM,8HAClB,CACF,EACAssE,SAAU,SAAkBn6D,EAASwd,GACnC,IACE,IAAI48C,EAAcn9D,KAAKwT,MAAMzQ,GAC3BoT,EAASgnD,EAAYhnD,OACrBu5C,EAAUyN,EAAYzN,QACxB,OAAOnvC,EAAO,GAAUpK,EAAQ,GAAc,CAC5CinD,UAAW,CAACnuE,KAAKouE,WAChB3N,IACL,CAAE,MAAOj/D,GACP,MAAM,IAAIG,MAAM,2IAClB,CACF,EAEJ,CEnEA,IAAI0sE,GAAgB/zD,QAAQC,UACrB,SAAS+zD,GAAMv2B,GACpB,IAAIw2B,EAAW,KACXjrC,GAAY,EACZr/B,EAAK,WACP,IAAK,IAAI8jE,EAAOrmE,UAAUD,OAAQJ,EAAO,IAAIU,MAAMgmE,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E3mE,EAAK2mE,GAAQtmE,UAAUsmE,GAER,OAAbuG,IAGJA,EAAWF,GAAct0D,MAAK,WAC5Bw0D,EAAW,KACPjrC,EACFA,GAAY,EAGdyU,EAAS91C,WAAM,EAAQZ,EACzB,IACF,EAaA,OAZA4C,EAAG8mD,KAAO,WACR,GAAiB,OAAbwjB,EACF,MAAM,IAAI5sE,MAAM,kEAElB,OAAO4sE,CACT,EACAtqE,EAAG2hD,OAAS,WACO,OAAb2oB,IAGJjrC,GAAY,EACd,EACOr/B,CACT,CC/BO,SAASuqE,GAAoBC,EAAcC,GAChD,IAAIpB,EAAmBmB,EAAaC,EAAYxD,eAAiB,CAAC,EAOlEwD,EAAYpL,YAAY3mD,SAAS+xD,EAAY9D,0BAA0B8D,EAAYpL,YAAYryD,MAAO,CACpGoyD,QAASiK,KAEXoB,EAAY/J,aAAav+D,OAAOgiE,IAAe//D,SAAQ,SAAUg8D,GAC/D,OAAOmK,GAAoBC,EAAcpK,EAC3C,GACF,CChBA,gBCAA,SAAS,GAAQ/jD,GAAkC,OAAO,GAAU,mBAAqBwD,QAAU,iBAAmBA,OAAOC,SAAW,SAAUzD,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqBwD,QAAUxD,EAAInW,cAAgB2Z,QAAUxD,IAAQwD,OAAOpjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAC/U,SAAS,GAAQc,EAAQ28C,GAAkB,IAAIh4D,EAAOD,OAAOC,KAAKqb,GAAS,GAAItb,OAAO2d,sBAAuB,CAAE,IAAIu6C,EAAUl4D,OAAO2d,sBAAsBrC,GAAS28C,IAAmBC,EAAUA,EAAQ53D,QAAO,SAAUgpB,GAAO,OAAOtpB,OAAO4d,yBAAyBtC,EAAQgO,GAAK1P,UAAY,KAAK3Z,EAAKzD,KAAKL,MAAM8D,EAAMi4D,EAAU,CAAE,OAAOj4D,CAAM,CAGpV,SAAS,GAAkBka,EAAQylD,GAAS,IAAK,IAAIpkE,EAAI,EAAGA,EAAIokE,EAAMjkE,OAAQH,IAAK,CAAE,IAAI+7C,EAAaqoB,EAAMpkE,GAAI+7C,EAAW39B,WAAa29B,EAAW39B,aAAc,EAAO29B,EAAWz9B,cAAe,EAAU,UAAWy9B,IAAYA,EAAW19B,UAAW,GAAM7Z,OAAO0d,eAAevD,EAAQ,GAAeo9B,EAAWl6C,KAAMk6C,EAAa,CAAE,CAG5U,SAASsxB,GAAgBhrD,EAAGsE,GAA6I,OAAxI0mD,GAAkB7oE,OAAO8oE,eAAiB9oE,OAAO8oE,eAAe9wD,OAAS,SAAyB6F,EAAGsE,GAAsB,OAAjBtE,EAAEkrD,UAAY5mD,EAAUtE,CAAG,EAAUgrD,GAAgBhrD,EAAGsE,EAAI,CAGvM,SAAS6mD,GAAuB1mE,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAI2mE,eAAe,6DAAgE,OAAO3mE,CAAM,CAErK,SAAS4mE,GAAgBrrD,GAA+J,OAA1JqrD,GAAkBlpE,OAAO8oE,eAAiB9oE,OAAO65C,eAAe7hC,OAAS,SAAyB6F,GAAK,OAAOA,EAAEkrD,WAAa/oE,OAAO65C,eAAeh8B,EAAI,EAAUqrD,GAAgBrrD,EAAI,CACnN,SAAS,GAAgBrD,EAAKnd,EAAK6B,GAA4L,OAAnL7B,EAAM,GAAeA,MAAiBmd,EAAOxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAAE6B,MAAOA,EAAO0a,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBW,EAAInd,GAAO6B,EAAgBsb,CAAK,CAC3O,SAAS,GAAejgB,GAAO,IAAI8C,EACnC,SAAsBg7D,GAAe,GAAuB,WAAnB,GAAQA,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIC,EAAOD,EAAMr6C,OAAOu6C,aAAc,QAAal+D,IAATi+D,EAAoB,CAAE,IAAIjmD,EAAMimD,EAAKt8D,KAAKq8D,EAAOG,UAAoB,GAAqB,WAAjB,GAAQnmD,GAAmB,OAAOA,EAAK,MAAM,IAAIpX,UAAU,+CAAiD,CAAE,OAA4Bge,OAAiBo/C,EAAQ,CADnV,CAAa99D,GAAgB,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM4b,OAAO5b,EAAM,CAW5H,IAAI,GAAY2kE,GAAoC,CAClDl+D,KAAM,kBAER,SAASqlE,KACP,MAAO,GACT,CAUA,IAAIC,GAA6B,SAAUC,IAlC3C,SAAmBC,EAAUC,GAAc,GAA0B,mBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAItuE,UAAU,sDAAyDquE,EAAS1uE,UAAYoF,OAAO2Z,OAAO4vD,GAAcA,EAAW3uE,UAAW,CAAEyJ,YAAa,CAAEnF,MAAOoqE,EAAUzvD,UAAU,EAAMC,cAAc,KAAW9Z,OAAO0d,eAAe4rD,EAAU,YAAa,CAAEzvD,UAAU,IAAc0vD,GAAYV,GAAgBS,EAAUC,EAAa,CAmCjcC,CAAUJ,EAAeC,GACzB,IArCoB/I,EAAaS,EAGb0I,EAAeC,EAkC/BC,GAlCgBF,EAkCML,EAlCSM,EAGrC,WAAuC,GAAuB,oBAAZpyB,UAA4BA,QAAQsyB,UAAW,OAAO,EAAO,GAAItyB,QAAQsyB,UAAUC,KAAM,OAAO,EAAO,GAAqB,mBAAV/yB,MAAsB,OAAO,EAAM,IAAsF,OAAhFr2C,QAAQ7F,UAAUkvE,QAAQ9tE,KAAKs7C,QAAQsyB,UAAUnpE,QAAS,IAAI,WAAa,MAAY,CAAM,CAAE,MAAO2T,GAAK,OAAO,CAAO,CAAE,CAHvQ21D,GAAoC,WAAkC,IAAsC17D,EAAlC27D,EAAQd,GAAgBO,GAAkB,GAAIC,EAA2B,CAAE,IAAIO,EAAYf,GAAgBhvE,MAAMmK,YAAagK,EAASipC,QAAQsyB,UAAUI,EAAOpuE,UAAWquE,EAAY,MAAS57D,EAAS27D,EAAM7tE,MAAMjC,KAAM0B,WAAc,OACpX,SAAoC0G,EAAMtG,GAAQ,GAAIA,IAA2B,WAAlB,GAAQA,IAAsC,mBAATA,GAAwB,OAAOA,EAAa,QAAa,IAATA,EAAmB,MAAM,IAAIf,UAAU,4DAA+D,OAAO+tE,GAAuB1mE,EAAO,CAD4F4nE,CAA2BhwE,KAAMmU,EAAS,GAmCna,SAAS+6D,EAAcp7D,GACrB,IAAI+xD,GAzCR,SAAyBt8D,EAAU68D,GAAe,KAAM78D,aAAoB68D,GAAgB,MAAM,IAAIrlE,UAAU,oCAAwC,CA0CpJ,CAAgBf,KAAMkvE,GAItB,GAAgBJ,GAHhBjJ,EAAQ4J,EAAO3tE,KAAK9B,OAG2B,cAAU,GACzD,GAAgB8uE,GAAuBjJ,GAAQ,iBAAa,GAC5D,GAAgBiJ,GAAuBjJ,GAAQ,sBAAkB,GACjE,GAAgBiJ,GAAuBjJ,GAAQ,gBAAiB,MAChE,GAAgBiJ,GAAuBjJ,GAAQ,cAAU,GACzD,GAAgBiJ,GAAuBjJ,GAAQ,kBAAc,GAC7D,GAAgBiJ,GAAuBjJ,GAAQ,iBAAa,GAC5D,GAAgBiJ,GAAuBjJ,GAAQ,eAAW,GAC1D,GAAgBiJ,GAAuBjJ,GAAQ,uBAAmB,GAClE,GAAgBiJ,GAAuBjJ,GAAQ,cAAe,CAAC,GAC/D,GAAgBiJ,GAAuBjJ,GAAQ,2BAAuB,GACtE,GAAgBiJ,GAAuBjJ,GAAQ,2BAAuB,GACtE,GAAgBiJ,GAAuBjJ,GAAQ,uBAAmB,GAClE,GAAgBiJ,GAAuBjJ,GAAQ,uBAAmB,GAClE,GAAgBiJ,GAAuBjJ,GAAQ,kBAAc,GAC7D,GAAgBiJ,GAAuBjJ,GAAQ,uBAAmB,GAClE,GAAgBiJ,GAAuBjJ,GAAQ,yBAAqB,GACpE,GAAgBiJ,GAAuBjJ,GAAQ,aAAc,IAC7D,GAAgBiJ,GAAuBjJ,GAAQ,2BAAuB,GACtE,GAAgBiJ,GAAuBjJ,GAAQ,SAAU,QACzD,GAAgBiJ,GAAuBjJ,GAAQ,aAAS1lE,GACxD,GAAgB2uE,GAAuBjJ,GAAQ,iBAAkByI,IAAM,WACjEzI,EAAM1tB,SACR0tB,EAAM7hE,WAAWoV,QAErB,KACA,GAAgB01D,GAAuBjJ,GAAQ,iBAAkByI,IAAM,WACrE,IAAI2B,EACAC,IAAoBxuE,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,KAAmBA,UAAU,GACvC,QAAzCuuE,EAAmBpK,EAAM7hE,kBAA6C,IAArBisE,GAA+BA,EAAiBrxD,uBACtGsM,aAAa26C,EAAMsK,qBACnBtK,EAAMsK,oBAAsB,KACxBD,IACFrK,EAAMp/C,OAAS,OACfo/C,EAAMrkE,WAAQrB,IAGlB0lE,EAAM1B,UAAU7yC,OAAO,CACrB8xC,sBAAuB0L,GAAuBjJ,KAEhDA,EAAM7kE,KAAK,SACb,KACA,GAAgB8tE,GAAuBjJ,GAAQ,wBAAyByI,IAAM,WAC5E,IAAI8B,EAAcvK,EAAM1B,UAAUoG,iBAAiB,CAAC,GACpD1E,EAAMP,WAAWj9D,SAAQ,SAAUu0D,GAClBA,EAAKrzD,SACX27D,cAAc,CACrB7B,QAAS+M,GAEb,GACF,KACAvK,EAAMjlE,gBAAgB,KACtB,IAAIyvE,EAAqBv8D,EAAQyH,UAC/BA,OAAmC,IAAvB80D,EAAgC,GAAKA,EACjD3C,EAAe55D,EAAQ45D,aACvB4C,EAAwBx8D,EAAQw2D,eAChCA,OAA2C,IAA1BgG,EAAmC,CAAC,EAAIA,EACzDC,EAAmBz8D,EAAQ08D,QAC3BA,OAA+B,IAArBD,EAA8B,KAAOA,EAC/CE,EAAoB38D,EAAQm6D,SAC5BA,OAAiC,IAAtBwC,GAAuCA,EAClDC,EAAiB58D,EAAQ48D,eACzBC,EAAwB78D,EAAQ88D,mBAChCA,OAA+C,IAA1BD,EAAmC,IAAMA,EAC9DE,EAAwB/8D,EAAQg9D,aAChCA,OAAyC,IAA1BD,EAAmC,KAAOA,EACzDE,EAAwBj9D,EAAQk9D,eAChCA,OAA2C,IAA1BD,EAAmC,KAAOA,EAC3DE,EAAwBn9D,EAAQoxD,cAChCA,OAA0C,IAA1B+L,EAAmC,KAAOA,EAC5D,GAAqB,OAAjBH,EACF,MAAM,IAAInvE,MAAM,GAAU,2CAE5B,GAAmC,mBAAxBmvE,EAAa13D,OACtB,MAAM,IAAIzX,MAAM,sLAMlB,GAJ4C,mBAAjCmvE,EAAap4D,iBACtBo4D,EAAap4D,gBAAgB,qBAAqBtT,OAAOtB,GAAS,MAGhEktE,GAA4C,mBAAnBA,EAC3B,MAAM,IAAIrvE,MAAM,GAAU,sDA+B5B,GA1BAkkE,EAAMliE,OAASmtE,EACfjL,EAAMmL,eAAiBA,EACvBnL,EAAMtqD,UAAYA,EAClBsqD,EAAMpoD,OAAS,KACfooD,EAAM7hE,WAAa,KACnB6hE,EAAM1B,UAAY,GAAM,CACtB5oD,UAAWA,IAEbsqD,EAAMX,cAAgBA,EACtBW,EAAM1tB,SAAU,EAChB0tB,EAAMrC,gBAAkB,CACtB0N,QAAS,GAAc,CACrBxD,aAAcA,IAEhByD,eAAgB,CAAC,GAEnBtL,EAAMuL,oBAAsBR,EAC5B/K,EAAMsK,oBAAsB,KAC5BtK,EAAMU,WAAa0I,GACnBpJ,EAAMzB,gBAAkBkG,EACxBzE,EAAM6G,gBAAkB,KACpBgE,IAEF7K,EAAMwL,gBAAkBX,GAE1B7K,EAAMyL,oBAAsB,GACxBd,EAAS,CACX,IAAIe,EAAmC,kBAAZf,EAAwB,CAAC,EAAIA,EACxDe,EAAczM,YAAa,EAC3Be,EAAM2L,Ib3JwB,WAClC,IAAI9L,EAAQhkE,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC7E+vE,EAAgB/L,EAAMgM,OACxBA,OAA2B,IAAlBD,EFsPE,WACb,IAAIlE,EAAQ7rE,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/EiwE,EAAkBpE,EAAM9J,UACxBA,OAAgC,IAApBkO,EAA6B,SAAUC,GACjD,IAAI9K,EAAW8K,EAAM9K,SACnBC,EAAa6K,EAAM7K,WACnBpjC,EAAWiuC,EAAMjuC,SACf/c,EAAW+c,EAAS/c,SACtBgd,EAAWD,EAASC,SACpBiuC,EAAiBluC,EAASwB,KAC1BA,OAA0B,IAAnB0sC,EAA4B,GAAKA,EACxC/0C,EAAW6G,EAAS7G,SACpBg1C,EAAOnuC,EAASmuC,KACdC,EAAcjL,EAAS91D,UAAU+1D,GACjCiL,EAA0B,KAAT7sC,EAAc,GAAK,IAAI//B,OAAO+/B,GAGnD,OAAK4sC,EAGE,GAAG3sE,OAAOwhB,EAAU,MAAMxhB,OAAOw+B,GAAUx+B,OAAO4sE,GAAgB5sE,OAAO03B,EAAU,KAAK13B,OAAO2sE,GAAa3sE,OAAO0sE,GAFjH,GAAG1sE,OAAOwhB,EAAU,MAAMxhB,OAAOw+B,GAAUx+B,OAAO4sE,GAAgB5sE,OAAO03B,GAAU13B,OAAO0sE,EAGrG,EAAIH,EACJM,EAAiB1E,EAAMtH,SACvBA,OAA8B,IAAnBgM,EAA4B,SAAUC,GAC/C,IAAIpL,EAAWoL,EAAMpL,SACnBnjC,EAAWuuC,EAAMvuC,SAWnB,OAAOmjC,EAASviD,MAAMof,EAASvqB,OAAOpX,MAAM,GAAI,CAC9CuvC,WAAY,IAEhB,EAAI0gC,EACJE,EAAmB5E,EAAMvH,WACzBA,OAAkC,IAArBmM,EAA8B,IAAMA,EACjDrM,EAAcyH,EAAMzH,YACpBsM,EAAoB7E,EAAMrH,YAC1BA,OAAoC,IAAtBkM,EAA+B,WAC3C,OAAOhR,IAAmB,SAAUiR,GAElC,OADaA,EAAO/tD,OACNqf,QAChB,GAAG,CACDmhB,SAAU,WACR,MAAM,IAAInjD,MAAM,2GAClB,GAEJ,EAAIywE,EACJ5/C,EAAQ+6C,EAAM/6C,MACd2zC,EAAUoH,EAAMpH,QAChB7jE,EAAOirE,EAAMjrE,KACf,OAAO,IAAIsjE,GAAe,CACxBnC,UAAWA,EACXwC,SAAUA,EACVD,WAAYA,EACZF,YAAaA,EACbI,YAAaA,EACb1zC,MAAOA,EACP2zC,QAASA,EACT7jE,KAAMA,GAEV,CEzTwCgwE,GAAkBb,EACtDc,EAAsB7M,EAAM8M,aAC5BA,OAAuC,IAAxBD,EDKV,CACL/N,OAAQ,aACRiO,aAAc,SAAsBpP,GAClC,OAAOv9D,OAAOC,KAAKs9D,GAASr9D,QAAO,SAAUiL,EAAOg6D,GAClD,OAAO,GAAc,GAAc,CAAC,EAAGh6D,GAAQ,CAAC,EAAG,GAAgB,CAAC,EAAGg6D,EAASrD,GAA8BvE,EAAQ4H,KACxH,GAAG,CAAC,EACN,EACAyH,aAAc,WACZ,IAAI3L,EAAarlE,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACtF,OAAOoE,OAAOC,KAAKghE,GAAY/gE,QAAO,SAAUiL,EAAOg6D,GACrD,OAAO,GAAc,GAAc,CAAC,EAAGh6D,GAAQ,CAAC,EAAG,GAAgB,CAAC,EAAGg6D,EAASrD,GAA8Bb,EAAWkE,KAC3H,GAAG,CAAC,EACN,GCjBuEsH,EACvEI,EAAoBjN,EAAMZ,WAC1BA,OAAmC,IAAtB6N,GAAuCA,EACtD,OAAO,SAAU/V,GACf,IAAIwG,EAAwBxG,EAAKwG,sBAWjCA,EAAsBmD,WAVtB,SAA2BuF,GACzB,IAAIzI,EAAUv9D,OAAOC,KAAK+lE,GAAW9lE,QAAO,SAAU6J,EAAKo7D,GACzD,OAAO,GAAc,GAAc,CAAC,EAAGp7D,GAAM,CAAC,EAAG,GAAgB,CAAC,EAAGo7D,EAASa,EAAUb,IAC1F,GAAG7H,EAAsBe,UAAUoG,iBAAiB,CAAC,IACjDqI,EAAQJ,EAAaC,aAAapP,GACtC,OAAOqO,EAAOjO,UAAUmP,EAC1B,EAKA,IAAIC,OAAiB1yE,EACjBmqE,EAAiBlH,EAAsBgB,gBAC3C,MAAO,CACLI,OAAQ,sBAAsBp/D,OAAOssE,EAAOlN,QAAU,cAAe,mBAAmBp/D,OAAOotE,EAAahO,QAAU,cAAe,MACrIM,WAAYA,EACZI,cAAe,SAAuByB,GACpC,IAAItD,EAAUsD,EAAMtD,QAChB0D,EAAayL,EAAaC,aAAapP,QACpBljE,IAAnB0yE,GAAiCvR,GAAQuR,EAAgB9L,KAC3D2K,EAAO3nD,MAAMg9C,GACb8L,EAAiB9L,EAErB,EACA5B,UAAW,WACT/B,EAAsBgB,gBAAkB,GAAc,GAAc,CAAC,EAAGkG,GAAiBkI,EAAaE,aAAahB,EAAO/nD,SAC1H+nD,EAAOoB,UAAS,SAAUF,GACpBxP,EAAsBe,UAAUQ,aAAaljE,OAAS,GACxD2hE,EAAsBkJ,WAAWkG,EAAaE,aAAaE,GAE/D,GACF,EACAz6B,QAAS,WACP,IAAI46B,EAC+B,QAAlCA,EAAgBrB,EAAOl/C,aAAqC,IAAlBugD,GAAoCA,EAAcjxE,KAAK4vE,EACpG,EACAlM,YAAa,WACXkM,EAAOvL,SACT,EAEJ,CACF,CawGgB6M,CAAuBzB,GACnC,CAIA,GAAItD,EAAU,CACZ,IAAIgF,EAAsC,kBAAbhF,EAAyB,CAAC,EAAIA,EAC3DgF,EAAgBnO,YAAa,EAC7Be,EAAM2L,IlBxJL,WACL,IAAI9L,EAAQhkE,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC7EwxE,EAAkBxN,EAAMsL,eAC1BmC,EAAqBzN,EAAMyN,mBAC3BzqC,EAAUg9B,EAAMh9B,QAChBiqC,EAAoBjN,EAAMZ,WAC1BA,OAAmC,IAAtB6N,GAAuCA,EAClDS,EAA0BF,EACzBA,GAAuC,OAApBA,GACtB9R,IAAmB,SAAUxE,GAC3B,IAAIt4C,EAASs4C,EAAKt4C,OACd+uD,EAAU/uD,EAAOgvD,wBAA0B,KACxB,iBAAZD,IACTD,EAA0B9uD,EAAO+uD,IAE9BD,IACH9uD,EAAOgvD,uBAAyBD,EAC3B/uD,EAAO+uD,KACV/uD,EAAO+uD,GAAW,WACX/uD,EAAO+uD,GAASjwC,QACnB9e,EAAO+uD,GAASjwC,MAAQ,IAE1B,IAAK,IAAI2kC,EAAOrmE,UAAUD,OAAQJ,EAAO,IAAIU,MAAMgmE,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E3mE,EAAK2mE,GAAQtmE,UAAUsmE,GAEzB1jD,EAAO+uD,GAASjwC,MAAM9gC,KAAKjB,EAC7B,EACAijB,EAAO+uD,GAASvvE,QAAU++D,GAC1Bv+C,EAAO+uD,GAASE,iBAAkB,GAEpCH,EAA0B9uD,EAAO+uD,GAErC,IAGF,IAAIrC,EAAiBoC,GAA2B,GAChD,OAAO,SAAUzM,GACf,IA/CwB1yB,EA+CpBmvB,EAAwBuD,EAAMvD,sBAG9BoQ,EAA8BpQ,EAAsBkC,WAAWl/D,QAAO,SAAUhE,GAClF,MAA6B,iBAAtBA,EAAEmH,SAASi7D,QAA6BpiE,EAAEmH,SAASu7D,UAC5D,IAAG97D,KAAI,SAAU5G,GACf,OAAOA,EAAEqxE,OACX,IACArQ,EAAsBsQ,MAAMzxE,MAAMmhE,EAnDtC,SAA4BnvB,GAAO,GAAIlyC,MAAMoF,QAAQ8sC,GAAM,OAAO2uB,GAAkB3uB,EAAM,CAJhD0/B,CAAd1/B,EAuDoDu/B,IApDhF,SAA0BxJ,GAAQ,GAAsB,oBAAXlmD,QAAmD,MAAzBkmD,EAAKlmD,OAAOC,WAA2C,MAAtBimD,EAAK,cAAuB,OAAOjoE,MAAMqiB,KAAK4lD,EAAO,CAHxF4J,CAAiB3/B,IAAQwuB,GAA4BxuB,IAC1H,WAAgC,MAAM,IAAIlzC,UAAU,uIAAyI,CAD3D8yE,IAwD9H,IA8CIC,EACAr2D,EA9CFs2D,EAAsB9R,GmBlErB,SAA2B6O,GAChC,GAAIA,EAAajnD,YAAa,CAE5B,IAAImqD,EAAwBlD,EAAajnD,YACvC5D,EAAU+tD,EAAsB/tD,QAChCC,EAAkB8tD,EAAsB9tD,gBACtC+tD,EAAS,2BACTC,EAAU,oBAGd,MAAO,CAFKjuD,EAAQguD,IAAW/tD,EAAgB+tD,GAClChuD,EAAQiuD,IAAYhuD,EAAgBguD,GAEnD,CAEE,MAAO,CAACpD,EAAaqD,cAAerD,EAAavnD,OAErD,CnBkD6B6qD,CAAkBhR,EAAsBz/D,QACN,GACzD0lB,EAAQ0qD,EAAoB,GAC5BxqD,EAASwqD,EAAoB,GAI3BM,OAAkBl0E,EAClBm0E,OAAsBn0E,EAC1B,GAAI4B,MAAMoF,QAAQ6pE,EAAe5tC,OAAQ,CAWvC,IAAI2hC,EAAQn+D,GAAKoqE,EAAe5tC,MAAMphC,QAAQ8mB,WAAW,SAAU0+C,GAGjE,MAAkB,iBAFNvF,GAAeuF,EAAO,GACjB,EAEnB,KAAM,GACFH,EAAQpF,GAAe8C,EAAO,GAClCsP,EAAkBhN,EAAM,EAC1B,CAqBA,OApBA2J,EAAe,eAAgB,MAAM,SAAUuD,EAAQ9sE,GAMrD6sE,EAAsB7sE,CACxB,KAII0rE,GAAuBpQ,GAAuBiO,IAChDA,EAAe,OAAQ,GAAc,CACnC3nD,MAAOA,EACPE,OAAQA,EACRmI,SAAS,GACRyhD,IAIE,CACL3O,OAAQ,eACRM,WAAYA,EACZI,cAAe,WAA0B,EACzCC,UAAW,WACT,GAAK6L,EAAeuC,gBAApB,CACA,IAAI54D,EAAe,2HACnB,IACE,IAAI65D,EAAS35C,SAAS0D,cAAc,UACpCi2C,EAAOxtC,OAAQ,EACfwtC,EAAOC,IAAM3R,GACb0R,EAAOrpD,QAAU,WACfi4C,EAAsBpiE,KAAK,QAAS,IAAIW,MAAMgZ,GAChD,EACAkgB,SAASW,KAAKyD,YAAYu1C,GAC1BxD,EAAeuC,iBAAkB,CACnC,CAAE,MAAOvqC,GACPgoC,EAAeuC,iBAAkB,EACjCnQ,EAAsBpiE,KAAK,QAAS,IAAIW,MAAMgZ,GAChD,CAd2C,CAe7C,EACAw9B,QAAS,WACP64B,EAAe,kBAAmB,uBAClCvzD,EAAS2lD,EAAsB3lD,OAC/Bq2D,EAAoB,CAClBrsE,UAAWgW,EAAOxM,MAAMxJ,UACxBgb,eAAgBhF,EAAOxM,MAAMwR,gBAE/BhF,EAAOZ,0CAA0C,GAAc,GAAc,CAAC,EAAGY,EAAOxM,OAAQ,CAAC,EAAG,CAClGwR,gBAAgB,KAEbqiD,GACH1B,EAAsB+I,iBAExB,IAAIuI,EAAuB,SAA8BjtE,GACvD,IAAIktE,EAAYjzE,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,IAAmBA,UAAU,GAC/E,GAAK+F,EAAL,CAGA,IAAImtE,EAAgBn3D,EAAOxM,MAAMxJ,UAW5BktE,EAGHE,IAFAhqD,WAAWgqD,EAAY,EAbzB,CAEA,SAASA,IACPp3D,EAAOZ,0CAA0C,GAAc,GAAc,CAAC,EAAGY,EAAOxM,OAAQ,CAAC,EAAG,CAClGxJ,UAAWA,KAETmtE,GAAiBA,IAAkBntE,GACrC27D,EAAsB+I,gBAE1B,CAQF,EACI2I,EAAqB9T,KACrB8T,GAGFJ,EAAqBI,GAAoB,GAKvCR,GACFI,EAAqBJ,GAAqB,GAC1CtD,EAAe,eAAgBsD,IACtBD,IACTK,EAAqBL,GAAiB,GACtCrD,EAAe,eAAgBqD,IAIjCrD,EAAe,oBAAqB0D,EAAsB,CACxDC,WAAW,IAEb,IAAII,EAAqC/D,EACrCjO,GAAuBiO,KACzB+D,EAAqC,SAA4C7tD,EAAQu5C,GASvF,OAAOuQ,EAAe9pD,EAAQu5C,EARZ,CAChBx6C,QAAS,CACP,2BAA4BoD,EAC5B,oBAAqBE,IAM3B,GAEF65C,EAAsBkO,oBAAsB,SAAUhzD,GAChDoqB,EACFA,EAAQpqB,EAAOy2D,GACNz2D,EAAM02D,iBAEf12D,EAAMmiD,QAAQwU,cAAgB,CAAC,iBACH,aAAxB32D,EAAM42D,eACR52D,EAAMmiD,QAAQwU,cAAc3yE,KAAK,0BAEnCyyE,EAAmCz2D,EAAM02D,eAAgB12D,EAAMmiD,SAKnE,CACF,EACA+E,YAAa,WACXwL,EAAe,yBAAqB7wE,GACpCijE,EAAsBkO,oBAAsB,GACxC7zD,GAAUq2D,IACZr2D,EAAOZ,0CAA0C,GAAc,GAAc,CAAC,EAAGY,EAAOxM,OAAQ6iE,IAChG1Q,EAAsB+I,iBAE1B,EAEJ,CACF,CkB3DgBgJ,CAAyBlC,GACrC,CAMA,OhBvJK7R,IAAmB,SAAUxE,GAClC,IAAIwY,EAAmBC,EAEvB,OAAmD,QAA1CD,EADIxY,EAAKt4C,OACkB0X,iBAA6C,IAAtBo5C,GAAkG,QAAzDC,EAAwBD,EAAkBhuD,iBAAiD,IAA1BiuD,OAA3E,EAAuHA,EAAsB5uE,QAAQ,qBAAuB,CACxQ,GAAG,CACDq+C,SAAU,WACR,OAAO,CACT,KgB4IE+gB,EAAM2L,IAAI5M,GAAyB,CACjCE,YAAY,KAGTe,CACT,CA2YA,OA1jBoBO,EAoLP8I,EApLoBrI,EAoLL,CAAC,CAC3B1jE,IAAK,mBACL6hB,IAaA,WAEE,MAAuB,YAAhBhlB,KAAKymB,MACd,GACC,CACDtjB,IAAK,MACL6B,MAAO,WAEL,IADA,IAAIgiE,EAAShnE,KACJ+nE,EAAOrmE,UAAUD,OAAQ6jE,EAAa,IAAIvjE,MAAMgmE,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IACrF1C,EAAW0C,GAAQtmE,UAAUsmE,GAE/B,IAAIsN,EAAoBhQ,EAAWt8D,KAAI,SAAU/E,GAC/C,IAAIsxE,EAlNZ,SAAuBt1D,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIwd,EAAS,MAAQpd,UAAUJ,GAAKI,UAAUJ,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQwE,OAAOgZ,IAAS,GAAIzW,SAAQ,SAAUlF,GAAO,GAAgB8c,EAAQ9c,EAAK2b,EAAO3b,GAAO,IAAK2C,OAAO8d,0BAA4B9d,OAAO+d,iBAAiB5D,EAAQna,OAAO8d,0BAA0B9E,IAAW,GAAQhZ,OAAOgZ,IAASzW,SAAQ,SAAUlF,GAAO2C,OAAO0d,eAAevD,EAAQ9c,EAAK2C,OAAO4d,yBAAyB5E,EAAQ3b,GAAO,GAAI,CAAE,OAAO8c,CAAQ,CAkN7d,CAAc,CAChCukD,OAAQ,cACRM,YAAY,EACZK,UAAW,GACXhtB,QAAS,GACTqtB,YAAa,GACbN,cAAe,IACdjhE,EAAG,CACJm/D,sBAAuB4D,KAMzB,OAJAA,EAAO1B,WAAWhjE,KAAK,CACrBmxE,QAASxvE,EACTsF,SAAUgsE,IAELA,CACT,IAUA,OANIv1E,KAAKm4C,SACPm9B,EAAkBjtE,SAAQ,SAAUjG,GAClCA,EAAE+iE,YACF/iE,EAAE+1C,SACJ,IAEKn4C,IACT,GAKC,CACDmD,IAAK,QACL6B,MAAO,WACL,IAAK,IAAIwwE,EAAQ9zE,UAAUD,OAAQg0E,EAAoB,IAAI1zE,MAAMyzE,GAAQE,EAAQ,EAAGA,EAAQF,EAAOE,IACjGD,EAAkBC,GAASh0E,UAAUg0E,GAUvC,OARA11E,KAAKslE,WAAWl/D,QAAO,SAAUhE,GAC/B,OAAOqzE,EAAkBj7B,SAASp4C,EAAEqxE,QACtC,IAAGprE,SAAQ,SAAUjG,GACnB,OAAOA,EAAEmH,SAASi8D,aACpB,IACAxlE,KAAKslE,WAAatlE,KAAKslE,WAAWl/D,QAAO,SAAUhE,GACjD,OAAQqzE,EAAkBj7B,SAASp4C,EAAEqxE,QACvC,IACOzzE,IACT,GAGC,CACDmD,IAAK,mBACL6B,MAAO,WAEL,OAAOhF,KAAKwxE,IAAIvvE,MAAMjC,KAAM0B,UAC9B,GASC,CACDyB,IAAK,YACL6B,MAAO,SAAmBq/D,GAExB,OAAOrkE,KAAKgsE,WAAW,CAAC3H,GAC1B,GAOC,CACDlhE,IAAK,aACL6B,MAAO,SAAoBi/D,GACzB,IAAKliE,MAAMoF,QAAQ88D,GACjB,MAAM,IAAItiE,MAAM,GAAU,iFAE5B,GAAIsiE,EAAQpiD,MAAK,SAAUwiD,GACzB,MAA8B,mBAAhBA,EAAOh0B,MAAgD,mBAAlBg0B,EAAO/yC,MAC5D,IACE,MAAM,IAAI3vB,MAAM,GAAU,sEAG5B,OADA3B,KAAKmkE,UAAU6H,WAAW/H,GACnBjkE,IACT,GASC,CACDmD,IAAK,eACL6B,MAAO,SAAsBq/D,GAE3B,OAAOrkE,KAAKosE,cAAc,CAAC/H,GAC7B,GAQC,CACDlhE,IAAK,gBACL6B,MAAO,SAAuBi/D,GAC5B,IAAKliE,MAAMoF,QAAQ88D,GACjB,MAAM,IAAItiE,MAAM,GAAU,uFAE5B,GAAIsiE,EAAQpiD,MAAK,SAAUwiD,GACzB,MAAiC,mBAAnBA,EAAO8B,OACvB,IACE,MAAM,IAAIxkE,MAAM,GAAU,sDAG5B,OADA3B,KAAKmkE,UAAUiI,cAAcnI,GACtBjkE,IACT,GAQC,CACDmD,IAAK,QACL6B,MAAO,WACL,IAAImiE,EAASnnE,KACb,GAAIA,KAAKm4C,QACP,MAAM,IAAIx2C,MAAM,GAAU,qDAQ5B,IAAIqC,EAAahE,KAAKgE,YAAc,GAAoBhE,KAAK2D,OAAQ3D,KAAKub,WAY1E,GAXAvX,EAAWoV,OAAS,WASlB,OARA+tD,EAAO1gD,OAAS,UAChB0gD,EAAOyF,gBAAe,GAOf5oE,EAAWuV,8BACpB,EACIvZ,KAAKqxE,gBAAiB,CAGxB,IAAIsE,EAAa,CACfv8D,OAAQ,WACN,OAAO,IAAIkB,QAAQ,GACrB,GAEFta,KAAK41E,kBAAoB5xE,EAAWoV,OAAO0E,KAAK9Z,GAChDA,EAAWoV,OAAS,WAClB,IAAIy8D,EAAkB1O,EAAOhD,UAAUb,YACnCwS,EAAuB,GAAoBH,EAAYE,EAAgB5kE,MAAMrN,MAAOiyE,EAAgB5kE,OAYxG,OAXA6kE,EAAqBnzE,KAAK,UAAU,SAAUgkE,GAC5C,IAAI11D,EAAQ01D,EAAM11D,MAClB4kE,EAAgBh5D,0CAA0C5L,GAC1Dk2D,EAAOyO,mBACT,IAEAE,EAAqBpzE,GAAG,UAAU,SAAUqiE,GAC1C,IAAI9zD,EAAQ8zD,EAAM9zD,MAClB4kE,EAAgBl5D,SAAS1L,EAC3B,IACAk2D,EAAOkK,gBAAgByE,GAChB9xE,CACT,CACF,CAsCA,GAlCAA,EAAWtB,GAAG,SAAS,SAAU2kE,GAC/B,IAAI7lE,EAAQ6lE,EAAM7lE,MAClB,KAAMA,aAAiBG,OAAQ,CAE7B,IAAIC,EAAMJ,EACVA,EAAQsE,OAAOC,KAAKnE,GAAKoE,QAAO,SAAU6J,EAAK1M,GAE7C,OADA0M,EAAI1M,GAAOvB,EAAIuB,GACR0M,CACT,GAAG,IAAIlO,MAAMC,EAAI0lB,SACnB,CAOA9lB,EAAMA,MAAQA,EACd2lE,EAAO3lE,MAAQA,EACf2lE,EAAO1gD,OAAS,QAChB0gD,EAAOyF,gBAAe,GAGtBzF,EAAOnmE,KAAK,QAASQ,EACvB,IACAxB,KAAKgE,WAAaA,EAClBhE,KAAKslE,WAAWj9D,SAAQ,SAAUm/D,GACjBA,EAAMj+D,SACZ47D,WACX,IACAnlE,KAAKmkE,UAAU9zB,KAAK,CAClB+yB,sBAAuBpjE,KACvB+R,OAAQ,KACRsxD,QAASrjE,KAAKokE,kBAEZpkE,KAAK0sE,gBAAiB,CACxB,IAAIqJ,EAAyB/1E,KAAKmsE,eAIlCnsE,KAAKmsE,eAAiBmC,GAAM,IAM5BA,IAAM,WACJnH,EAAOgF,eAAiB4J,CAC1B,GAFAzH,EAGF,MASStuE,KAAKmkE,UAAUQ,aAAaljE,OAAS,GAC5CzB,KAAKmsE,iBAKPnsE,KAAKyd,OAASzd,KAAKmkE,UAAUb,YAI7BtjE,KAAKm4C,SAAU,EACfn4C,KAAKslE,WAAWj9D,SAAQ,SAAUq/D,GACjBA,EAAMn+D,SACZ4uC,SACX,GACF,GAQC,CACDh1C,IAAK,UACL6B,MAAO,WACL,IAAIgxE,EACJh2E,KAAKmsE,eAAevmB,SACpB5lD,KAAK4sE,eAAehnB,SACpB16B,aAAalrB,KAAKmwE,qBAClBnwE,KAAKosE,cAAcpsE,KAAKmkE,UAAUQ,cAClC3kE,KAAKmkE,UAAUgC,UAKfnmE,KAAKm4C,SAAU,EAIfn4C,KAAKkD,qBACqC,QAAzC8yE,EAAoBh2E,KAAKgE,kBAA8C,IAAtBgyE,GAAwCA,EAAkB9yE,qBAC5GlD,KAAKgE,WAAa,KAClBhE,KAAKyd,OAAS,KACdzd,KAAKslE,WAAWj9D,SAAQ,SAAUklE,GACjBA,EAAMhkE,SACZi8D,aACX,GACF,GACC,CACDriE,IAAK,wBACL6B,MAAO,WACL,IAAIsiE,EAAStnE,KACRA,KAAKmwE,sBACRnwE,KAAKmwE,oBAAsBtlD,YAAW,WACpCy8C,EAAO7gD,OAAS,UAChB6gD,EAAOsF,gBACT,GAAG5sE,KAAKoxE,qBAEZ,GAOC,CACDjuE,IAAK,aACL6B,MAAO,SAAoBq+D,GACzB,IAAIoE,EAASznE,KACTi2E,IAAoBv0E,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,KAAmBA,UAAU,GACvF,IAAK1B,KAAKgE,WACR,MAAM,IAAIrC,MAAM,GAAU,+DAK5B3B,KAAKmkE,UAAUgJ,iBACf,IAAIiD,EAAiC,mBAAZ/M,EAAyBA,EAAQrjE,KAAKmkE,UAAUoG,iBAAiB,CAAC,IAAMlH,EAC7FrjE,KAAKklE,eAAiB+Q,EACxBj2E,KAAKklE,cAAc,CACjB7B,QAAS+M,EACT9D,WAAY,SAAoBmC,GAC9BD,GAA4C,mBAAjBC,EAA8BA,EAAa2B,GAAe3B,EAAchH,EAAOtD,WAC1GsD,EAAO0E,iBACP1E,EAAOoF,uBACT,KAGF2B,GAAoB4B,EAAapwE,KAAKmkE,WACtCnkE,KAAKmsE,iBACLnsE,KAAK6sE,wBAET,GACC,CACD1pE,IAAK,aACL6B,MAAO,WAKL,OAJIhF,KAAKm4C,SAEPn4C,KAAKmkE,UAAUgJ,iBAEVntE,KAAKmkE,UAAUoG,iBAAiB,CAAC,EAC1C,GACC,CACDpnE,IAAK,YACL6B,MAAO,WACL,IAAI8mE,EAAYpqE,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACrF,IAAK1B,KAAKm4C,QACR,MAAM,IAAIx2C,MAAM,GAAU,8DAE5B,OAAO3B,KAAKumE,WAAWuF,EACzB,GACC,CACD3oE,IAAK,UACL6B,MAAO,WACL,IAAKhF,KAAKgE,WACR,MAAM,IAAIrC,MAAM,GAAU,4DAE5B3B,KAAKgE,WAAWua,aAAanF,QAC/B,IAxjB8DytD,GAAY,GAAkBT,EAAY1lE,UAAWmmE,GAA2E/gE,OAAO0d,eAAe4iD,EAAa,YAAa,CAAEzmD,UAAU,IA0jBrPuvD,CACT,CAxhBiC,CAwhB/B,IACF,ME7jBIgH,GAAY,SAAmBjyE,EAAIqjB,GACrC,OAAOrjB,CACT,ECcIkyE,GAAgB,SAAuBriE,GACzC,OAAO,IAAI,GAAcA,EAC3B,EACAqiE,GAAcryE,QAAUA,GACxBqyE,GAAcC,sCAAwCF,IxBbvC,WACb,MAAO,CACLvsD,KAAM,SAAcg9C,GAClB,IAAI11D,EAAQ01D,EAAM11D,MACdolE,EAAiBjV,IAAmB,SAAU2D,GAEhD,OADaA,EAAMzgD,OACL+xD,cAChB,IACA,IAAKA,EACH,OAAO,KAET,IACE,IAAI/lD,EAAQvf,KAAKwT,MAEjB8xD,EAAe7xD,QAAQw9C,KACvB,OAAO1xC,GAASgxC,GAAQhxC,EAAMrf,MAAO2wD,GAAoB3wD,IAAUqf,EAAMgmD,KAAO,IAClF,CAAE,MAAO90E,GACP,GAAIA,aAAiB+0E,YACnB,IACEF,EAAe/wD,WAAW08C,GAC5B,CAAE,MAAOpgE,GAET,CAEF,OAAO,IACT,CACF,EACAmoB,MAAO,SAAes9C,GACpB,IAAIp2D,EAAQo2D,EAAMp2D,MAChBqlE,EAAOjP,EAAMiP,KACXD,EAAiBjV,IAAmB,SAAUoG,GAEhD,OADaA,EAAMljD,OACL+xD,cAChB,IACA,GAAKA,EAGL,IACEA,EAAe5xD,QAAQu9C,GAAKjxD,KAAKC,UAAU,CACzCC,MAAO2wD,GAAoB3wD,GAC3BqlE,KAAMA,IAEV,CAAE,MAAO90E,GAET,CACF,EAEJ,IwBjCA20E,GAActI,UAAYqI,GAAU,IACpCC,GAAcrI,iBAAmBoI,GAAU,IAC3CC,GAAcpI,QAAUmI,GAAU,IAClCC,GAAcnI,eAAiBkI,GAAU,IACzCC,GAAclI,SAAW,GACzBkI,GAAcK,8B3BHC,WAEb,OAAOxV,IACT,E2BCAl7D,OAAO0d,eAAe2yD,GAAe,UAAW,CAC9CnxD,IAAK,WACH,MAAM,IAAI+pD,eAAe,sJAC3B,IAEFjpE,OAAO0d,eAAe2yD,GAAe,aAAc,CACjDnxD,IAAK,WACH,MAAM,IAAI+pD,eAAe,sKAC3B,IAEF,UCzCA,SAAS,GAAQzuD,GAAkC,OAAO,GAAU,mBAAqBwD,QAAU,iBAAmBA,OAAOC,SAAW,SAAUzD,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqBwD,QAAUxD,EAAInW,cAAgB2Z,QAAUxD,IAAQwD,OAAOpjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAC/U,SAAS,GAAQc,EAAQ28C,GAAkB,IAAIh4D,EAAOD,OAAOC,KAAKqb,GAAS,GAAItb,OAAO2d,sBAAuB,CAAE,IAAIu6C,EAAUl4D,OAAO2d,sBAAsBrC,GAAS28C,IAAmBC,EAAUA,EAAQ53D,QAAO,SAAUgpB,GAAO,OAAOtpB,OAAO4d,yBAAyBtC,EAAQgO,GAAK1P,UAAY,KAAK3Z,EAAKzD,KAAKL,MAAM8D,EAAMi4D,EAAU,CAAE,OAAOj4D,CAAM,CACpV,SAAS,GAAcka,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIwd,EAAS,MAAQpd,UAAUJ,GAAKI,UAAUJ,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQwE,OAAOgZ,IAAS,GAAIzW,SAAQ,SAAUlF,GAAO,GAAgB8c,EAAQ9c,EAAK2b,EAAO3b,GAAO,IAAK2C,OAAO8d,0BAA4B9d,OAAO+d,iBAAiB5D,EAAQna,OAAO8d,0BAA0B9E,IAAW,GAAQhZ,OAAOgZ,IAASzW,SAAQ,SAAUlF,GAAO2C,OAAO0d,eAAevD,EAAQ9c,EAAK2C,OAAO4d,yBAAyB5E,EAAQ3b,GAAO,GAAI,CAAE,OAAO8c,CAAQ,CACzf,SAAS,GAAgBK,EAAKnd,EAAK6B,GAA4L,OAAnL7B,EAC5C,SAAwB9C,GAAO,IAAI8C,EACnC,SAAsBg7D,GAAe,GAAuB,WAAnB,GAAQA,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIC,EAAOD,EAAMr6C,OAAOu6C,aAAc,QAAal+D,IAATi+D,EAAoB,CAAE,IAAIjmD,EAAMimD,EAAKt8D,KAAKq8D,EAAOG,UAAoB,GAAqB,WAAjB,GAAQnmD,GAAmB,OAAOA,EAAK,MAAM,IAAIpX,UAAU,+CAAiD,CAAE,OAA4Bge,OAAiBo/C,EAAQ,CADnV,CAAa99D,GAAgB,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM4b,OAAO5b,EAAM,CAD1E,CAAeA,MAAiBmd,EAAOxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAAE6B,MAAOA,EAAO0a,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBW,EAAInd,GAAO6B,EAAgBsb,CAAK,CAK3O,IAAI,GAAYwnD,GAAoC,CAClDl+D,KAAM,YACNu+D,WAAW,IAEb,SAASsO,GAA2BxlE,EAAOqzD,GAIzC,OAAOrzD,EAAM3G,mBAAmBxE,OAAOC,KAAKu+D,EAAayH,kBAAkB/lE,QAAO,SAAU6J,EAAK1M,GAC/F,OAAO,GAAc,GAAc,CAAC,EAAG0M,GAAM,CAAC,EAAG,GAAgB,CAAC,EAAG1M,OAAKhD,GAC5E,GAAG,CAAC,GACN,CCnBA,SAAS,GAAQmgB,GAAkC,OAAO,GAAU,mBAAqBwD,QAAU,iBAAmBA,OAAOC,SAAW,SAAUzD,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqBwD,QAAUxD,EAAInW,cAAgB2Z,QAAUxD,IAAQwD,OAAOpjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAC/U,SAAS,GAAQc,EAAQ28C,GAAkB,IAAIh4D,EAAOD,OAAOC,KAAKqb,GAAS,GAAItb,OAAO2d,sBAAuB,CAAE,IAAIu6C,EAAUl4D,OAAO2d,sBAAsBrC,GAAS28C,IAAmBC,EAAUA,EAAQ53D,QAAO,SAAUgpB,GAAO,OAAOtpB,OAAO4d,yBAAyBtC,EAAQgO,GAAK1P,UAAY,KAAK3Z,EAAKzD,KAAKL,MAAM8D,EAAMi4D,EAAU,CAAE,OAAOj4D,CAAM,CACpV,SAAS,GAAcka,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIwd,EAAS,MAAQpd,UAAUJ,GAAKI,UAAUJ,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQwE,OAAOgZ,IAAS,GAAIzW,SAAQ,SAAUlF,GAAO,GAAgB8c,EAAQ9c,EAAK2b,EAAO3b,GAAO,IAAK2C,OAAO8d,0BAA4B9d,OAAO+d,iBAAiB5D,EAAQna,OAAO8d,0BAA0B9E,IAAW,GAAQhZ,OAAOgZ,IAASzW,SAAQ,SAAUlF,GAAO2C,OAAO0d,eAAevD,EAAQ9c,EAAK2C,OAAO4d,yBAAyB5E,EAAQ3b,GAAO,GAAI,CAAE,OAAO8c,CAAQ,CACzf,SAAS,GAAgBK,EAAKnd,EAAK6B,GAA4L,OAAnL7B,EAC5C,SAAwB9C,GAAO,IAAI8C,EACnC,SAAsBg7D,GAAe,GAAuB,WAAnB,GAAQA,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIC,EAAOD,EAAMr6C,OAAOu6C,aAAc,QAAal+D,IAATi+D,EAAoB,CAAE,IAAIjmD,EAAMimD,EAAKt8D,KAAKq8D,EAAOG,UAAoB,GAAqB,WAAjB,GAAQnmD,GAAmB,OAAOA,EAAK,MAAM,IAAIpX,UAAU,+CAAiD,CAAE,OAA4Bge,OAAiBo/C,EAAQ,CADnV,CAAa99D,GAAgB,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM4b,OAAO5b,EAAM,CAD1E,CAAeA,MAAiBmd,EAAOxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAAE6B,MAAOA,EAAO0a,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBW,EAAInd,GAAO6B,EAAgBsb,CAAK,CAK3O,IAUA,GAVgB,SAAmBgkD,GAIjC,OAAO,GAAc,GAAc,CAAC,EDQf,WACrB,IAAIoS,EAAWh1E,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,GAAmBA,UAAU,GAAK,GAC/Ei1E,EAAYj1E,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,GAAmBA,UAAU,GAAK,GACpF,OAAO,SAAU4iE,GACf,IAAKA,IAAiB5G,GAAc4G,EAAayH,kBAC/C,MAAM,IAAIpqE,MAAM,GAAU,qDAE5B,IAAIi1E,EAAiB,CAAC,EActB,MAAO,CACLpS,OAAQ,gBACRn0B,KAAM,SAAc6zB,GAClB,IAAId,EAAwBc,EAAYd,sBACxCsT,EAAS,GAAc,GAAc,CAAC,EAAG12E,KAAKukE,qBAAqBL,IAAe,CAAC,EAAG,CACpFd,sBAAuBA,KACrB,EACN,EACA9xC,OAAQ,SAAgBulD,GACtB,IAAIzT,EAAwByT,EAAczT,sBAC1CsT,EAAS,GAAc,GAAc,CAAC,EAAG12E,KAAKukE,qBAAqBsS,IAAiB,CAAC,EAAG,CACtFzT,sBAAuBA,KACrB,EACN,EACA+C,QAAS,SAAiBvJ,GACxB,IAAI3rD,EAAQ2rD,EAAK3rD,MAEjB,OADA0lE,IACOF,GAA2BxlE,EAAOqzD,EAC3C,EACA2H,eAAgB,SAAwB1I,EAAasT,GACnD,IAAIC,EACAC,EAAoB/2E,KAAKukE,qBAAqBsS,GAClD,OAAO,GAAc,GAAc,CAAC,EAAGtT,GAAc,CAAC,EAAG,CACvDsE,UAAW,GAAc,GAAc,CAAC,EAAGkP,GAAoB,CAAC,EAAG,CACjEzS,aAAc,GAAc,GAAc,CAAC,EAAGyS,EAAkBzS,cAAe,CAAC,EAAG,CACjFyH,iBAAkBzD,GAAsB,IAAI,oBAAyF,QAAnDwO,EAAwBvT,EAAYsE,iBAAiD,IAA1BiP,OAAmC,EAASA,EAAsBxS,aAAayH,kBAAmB,IAAI,oBAAqCgL,EAAkBzS,aAAayH,mBAAmBx8D,sBAIlV,EACAg1D,qBAAsB,SAA8BoC,GAClD,IAAIlpD,EAASkpD,EAAMlpD,OAInB,OAHKm5D,EAAeI,SAClBJ,EAAeI,OA9CrB,SAAgBv5D,GACd,OAAO,SAAUsuD,GAEf,IAAIkL,EAAcR,GAA2Bh5D,EAAOxM,MAAOqzD,GACvD4S,EAAuB5O,GAAsB2O,EAAa,IAAI,oBAAqClL,IAGvGzH,EAAayH,iBAAmBA,EAGhCtuD,EAAOd,SAASu6D,GAAsB99D,QACxC,CACF,CAkC8B49D,CAAOv5D,IAE1B,CACLu5D,OAAQJ,EAAeI,OACvB1S,aAAcA,EAElB,EACAsG,0BAA2B,SAAmC35D,EAAO8zD,GACnE,IAAI1B,EAAU0B,EAAM1B,QACpB,OAAOiF,GAAsBr3D,EAAO,IAAI,oBAAqC,GAAc,GAAc,CAAC,EAAGoyD,EAAQwE,WAAYvD,EAAayH,mBAChJ,EACAxB,iBAAkB,SAA0BlH,GAC1C,OAAO,GAAc,GAAc,CAAC,EAAGA,GAAU,CAAC,EAAG,CACnDwE,UAAW,GAAc,GAAc,CAAC,EAAGxE,EAAQwE,WAAYvD,EAAayH,mBAEhF,EAEJ,CACF,CCjFmB,CAAiB,GACKoL,CAAW,CAChDpL,iBAAkBzH,KACf,CAAC,EAAG,CACPI,aAAc,iBAElB,ECjBO,SAAS7xC,KACd,IAAK,IAAIk1C,EAAOrmE,UAAUD,OAAQ09D,EAAa,IAAIp9D,MAAMgmE,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IACrF7I,EAAW6I,GAAQtmE,UAAUsmE,GAG/B,OAAO7I,EAAWn5D,QAAO,SAAU6J,EAAK0vD,GACtC,OAAIx9D,MAAMoF,QAAQo4D,GACT1vD,EAAIzK,OAAOm6D,GAGb1vD,EAAIzK,OAAO,CAACm6D,GACrB,GAAG,IAAIn5D,OAAOG,SAASob,KAAK,IAC9B,CCZA,IAAI9gB,GAAEwf,GAAE2D,GAAItW,GAAEiW,GAAEtG,GAAE5X,GAAIigB,GAAE,CAAC,EAAE1H,GAAE,GAAG/W,GAAE,oEAAoEzB,GAAEzD,MAAMoF,QAAQ,SAAS,GAAEtG,EAAEwf,GAAG,IAAI,IAAI2D,KAAK3D,EAAExf,EAAEmjB,GAAG3D,EAAE2D,GAAG,OAAOnjB,CAAC,CAAC,SAASonB,GAAEpnB,GAAG,IAAIwf,EAAExf,EAAEy+B,WAAWjf,GAAGA,EAAE+c,YAAYv8B,EAAE,CAAC,SAAS2lB,GAAEnG,EAAE2D,EAAE1iB,GAAG,IAAIoM,EAAEiW,EAAEtG,EAAE5X,EAAE,CAAC,EAAE,IAAI4X,KAAK2G,EAAE,OAAO3G,EAAE3P,EAAEsW,EAAE3G,GAAG,OAAOA,EAAEsG,EAAEK,EAAE3G,GAAG5X,EAAE4X,GAAG2G,EAAE3G,GAAG,GAAG3b,UAAUD,OAAO,IAAIgE,EAAEiR,SAAShV,UAAUD,OAAO,EAAEZ,GAAEiB,KAAKJ,UAAU,GAAGJ,GAAG,mBAAmB+e,GAAG,MAAMA,EAAE+2D,aAAa,IAAI/5D,KAAKgD,EAAE+2D,kBAAa,IAAS3xE,EAAE4X,KAAK5X,EAAE4X,GAAGgD,EAAE+2D,aAAa/5D,IAAI,OAAO+I,GAAE/F,EAAE5a,EAAEiI,EAAEiW,EAAE,KAAK,CAAC,SAASyC,GAAEvlB,EAAES,EAAEoM,EAAEiW,EAAEtG,GAAG,IAAI5X,EAAE,CAACxE,KAAKJ,EAAE6kE,MAAMpkE,EAAE6B,IAAIuK,EAAE2pE,IAAI1zD,EAAE2zD,IAAI,KAAKC,GAAG,KAAKC,IAAI,EAAEC,IAAI,KAAKC,SAAI,EAAOC,IAAI,KAAKC,IAAI,KAAKztE,iBAAY,EAAO0tE,IAAI,MAAMx6D,IAAI2G,GAAE3G,GAAG,OAAO,MAAMA,GAAG,MAAMgD,GAAEy3D,OAAOz3D,GAAEy3D,MAAMryE,GAAGA,CAAC,CAAmC,SAASmD,GAAE/H,GAAG,OAAOA,EAAE6V,QAAQ,CAAC,SAASxP,GAAErG,EAAEwf,GAAGrgB,KAAK0lE,MAAM7kE,EAAEb,KAAK6B,QAAQwe,CAAC,CAAC,SAASxd,GAAEhC,EAAEwf,GAAG,GAAG,MAAMA,EAAE,OAAOxf,EAAE02E,GAAG10E,GAAEhC,EAAE02E,GAAG12E,EAAE02E,GAAGD,IAAI7wE,QAAQ5F,GAAG,GAAG,KAAK,IAAI,IAAImjB,EAAE3D,EAAExf,EAAEy2E,IAAI71E,OAAO4e,IAAI,GAAG,OAAO2D,EAAEnjB,EAAEy2E,IAAIj3D,KAAK,MAAM2D,EAAEyzD,IAAI,OAAOzzD,EAAEyzD,IAAI,MAAM,mBAAmB52E,EAAEI,KAAK4B,GAAEhC,GAAG,IAAI,CAAC,SAASuB,GAAEvB,GAAG,IAAIwf,EAAE2D,EAAE,GAAG,OAAOnjB,EAAEA,EAAE02E,KAAK,MAAM12E,EAAE82E,IAAI,CAAC,IAAI92E,EAAE42E,IAAI52E,EAAE82E,IAAIhmD,KAAK,KAAKtR,EAAE,EAAEA,EAAExf,EAAEy2E,IAAI71E,OAAO4e,IAAI,GAAG,OAAO2D,EAAEnjB,EAAEy2E,IAAIj3D,KAAK,MAAM2D,EAAEyzD,IAAI,CAAC52E,EAAE42E,IAAI52E,EAAE82E,IAAIhmD,KAAK3N,EAAEyzD,IAAI,KAAK,CAAC,OAAOr1E,GAAEvB,EAAE,CAAC,CAAC,SAASkoB,GAAEloB,KAAKA,EAAE62E,MAAM72E,EAAE62E,KAAI,IAAKhqE,GAAEpL,KAAKzB,KAAKuoB,GAAE2uD,OAAOp0D,KAAItD,GAAE23D,sBAAsBr0D,GAAEtD,GAAE23D,oBAAoB36D,IAAG+L,GAAE,CAAC,SAASA,KAAI,IAAIvoB,EAAEwf,EAAE2D,EAAE1iB,EAAEqiB,EAAEtG,EAAEnD,EAAEwL,EAAE,IAAIhY,GAAEqK,KAAKtS,IAAG5E,EAAE6M,GAAE8X,SAAS3kB,EAAE62E,MAAMr3D,EAAE3S,GAAEjM,OAAOH,OAAE,EAAOqiB,OAAE,EAAOzJ,GAAGmD,GAAG2G,EAAEnjB,GAAGg3E,KAAKJ,KAAK/xD,EAAE1B,EAAEi0D,OAAO32E,EAAE,IAAIqiB,EAAE,GAAE,CAAC,EAAEtG,IAAIw6D,IAAIx6D,EAAEw6D,IAAI,EAAE/8C,GAAEpV,EAAErI,EAAEsG,EAAEK,EAAEk0D,SAAI,IAASxyD,EAAEyyD,gBAAgB,MAAM96D,EAAEu6D,IAAI,CAAC19D,GAAG,KAAK5Y,EAAE,MAAM4Y,EAAErX,GAAEwa,GAAGnD,EAAEmD,EAAEu6D,KAAK17C,GAAE56B,EAAE+b,GAAGA,EAAEo6D,KAAKv9D,GAAG9X,GAAEib,IAAI3P,GAAEjM,OAAO4e,GAAG3S,GAAEqK,KAAKtS,KAAI2jB,GAAE2uD,IAAI,CAAC,CAAC,SAAS/wD,GAAEnmB,EAAEwf,EAAE2D,EAAE1iB,EAAEoM,EAAEiW,EAAEtG,EAAE5X,EAAEyU,EAAEjT,GAAG,IAAI8e,EAAEkC,EAAEzB,EAAE2N,EAAEjtB,EAAE9E,EAAE2mB,EAAEK,EAAE9nB,GAAGA,EAAEg2E,KAAKt5D,GAAEgJ,EAAEoC,EAAE3nB,OAAO,IAAIuiB,EAAEszD,IAAI,GAAGvxD,EAAE,EAAEA,EAAE1F,EAAE5e,OAAOskB,IAAI,GAAG,OAAOoO,EAAEnQ,EAAEszD,IAAIvxD,GAAG,OAAOoO,EAAE9T,EAAE0F,KAAK,kBAAkBoO,GAAG,mBAAmBA,EAAE,KAAK,iBAAiBA,GAAG,iBAAiBA,GAAG,iBAAiBA,EAAE/N,GAAE,KAAK+N,EAAE,KAAK,KAAKA,GAAG3uB,GAAE2uB,GAAG/N,GAAExd,GAAE,CAAC8N,SAASyd,GAAG,KAAK,KAAK,MAAMA,EAAEqjD,IAAI,EAAEpxD,GAAE+N,EAAElzB,KAAKkzB,EAAEuxC,MAAMvxC,EAAEhxB,IAAIgxB,EAAEkjD,IAAIljD,EAAEkjD,IAAI,KAAKljD,EAAE0jD,KAAK1jD,GAAG,CAAC,GAAGA,EAAEojD,GAAGvzD,EAAEmQ,EAAEqjD,IAAIxzD,EAAEwzD,IAAI,EAAE,QAAQhxD,EAAE4C,EAAErD,KAAKS,GAAG2N,EAAEhxB,KAAKqjB,EAAErjB,KAAKgxB,EAAElzB,OAAOulB,EAAEvlB,KAAKmoB,EAAErD,QAAG,OAAY,IAAIkC,EAAE,EAAEA,EAAEjB,EAAEiB,IAAI,CAAC,IAAIzB,EAAE4C,EAAEnB,KAAKkM,EAAEhxB,KAAKqjB,EAAErjB,KAAKgxB,EAAElzB,OAAOulB,EAAEvlB,KAAK,CAACmoB,EAAEnB,QAAG,EAAO,KAAK,CAACzB,EAAE,IAAI,CAACsU,GAAEj6B,EAAEszB,EAAE3N,EAAEA,GAAGd,GAAEhY,EAAEiW,EAAEtG,EAAE5X,EAAEyU,EAAEjT,GAAGC,EAAEitB,EAAEsjD,KAAKxvD,EAAEkM,EAAEkjD,MAAM7wD,EAAE6wD,KAAKpvD,IAAIc,IAAIA,EAAE,IAAIvC,EAAE6wD,KAAKtuD,EAAEzmB,KAAKkkB,EAAE6wD,IAAI,KAAKljD,GAAGpL,EAAEzmB,KAAK2lB,EAAEkM,EAAEwjD,KAAKzwE,EAAEitB,IAAI,MAAMjtB,GAAG,MAAM9E,IAAIA,EAAE8E,GAAG,mBAAmBitB,EAAElzB,MAAMkzB,EAAEmjD,MAAM9wD,EAAE8wD,IAAInjD,EAAEujD,IAAIx9D,EAAE+P,GAAEkK,EAAEja,EAAErZ,GAAGqZ,EAAEsa,GAAE3zB,EAAEszB,EAAE3N,EAAE4C,EAAEliB,EAAEgT,GAAG,mBAAmB8J,EAAE/iB,OAAO+iB,EAAE0zD,IAAIx9D,IAAIA,GAAGsM,EAAEixD,KAAKv9D,GAAGA,EAAEolB,YAAYz+B,IAAIqZ,EAAErX,GAAE2jB,GAAG,CAAC,IAAIxC,EAAEyzD,IAAIr1E,EAAE2jB,EAAEiB,EAAEjB,KAAK,MAAMqD,EAAErD,KAAK,mBAAmB/B,EAAE/iB,MAAM,MAAMmoB,EAAErD,GAAG0xD,KAAKruD,EAAErD,GAAG0xD,KAAKzzD,EAAE0zD,MAAM1zD,EAAE0zD,IAAIlwD,GAAElmB,GAAG6/B,aAAazlB,GAAE0N,EAAErD,GAAGqD,EAAErD,KAAK,GAAGgD,EAAE,IAAIhD,EAAE,EAAEA,EAAEgD,EAAEtnB,OAAOskB,IAAIgB,GAAEgC,EAAEhD,GAAGgD,IAAIhD,GAAGgD,IAAIhD,GAAG,CAAC,SAASkE,GAAEppB,EAAEwf,EAAE2D,GAAG,IAAI,IAAI1iB,EAAEoM,EAAE7M,EAAEy2E,IAAI3zD,EAAE,EAAEjW,GAAGiW,EAAEjW,EAAEjM,OAAOkiB,KAAKriB,EAAEoM,EAAEiW,MAAMriB,EAAEi2E,GAAG12E,EAAEwf,EAAE,mBAAmB/e,EAAEL,KAAKgpB,GAAE3oB,EAAE+e,EAAE2D,GAAGwQ,GAAExQ,EAAE1iB,EAAEA,EAAEoM,EAAEpM,EAAEm2E,IAAIp3D,IAAI,OAAOA,CAAC,CAA6G,SAASmU,GAAE3zB,EAAEwf,EAAE2D,EAAE1iB,EAAEoM,EAAEiW,GAAG,IAAItG,EAAE5X,EAAEyU,EAAE,QAAG,IAASmG,EAAEq3D,IAAIr6D,EAAEgD,EAAEq3D,IAAIr3D,EAAEq3D,SAAI,OAAY,GAAG,MAAM1zD,GAAGtW,GAAGiW,GAAG,MAAMjW,EAAE4xB,WAAWz+B,EAAE,GAAG,MAAM8iB,GAAGA,EAAE2b,aAAaz+B,EAAEA,EAAEo+B,YAAYvxB,GAAG2P,EAAE,SAAS,CAAC,IAAI5X,EAAEke,EAAEzJ,EAAE,GAAGzU,EAAEA,EAAE07B,cAAcjnB,EAAE5Y,EAAEG,OAAOyY,GAAG,EAAE,GAAGzU,GAAGiI,EAAE,MAAM7M,EAAEA,EAAEs/B,aAAazyB,EAAEiW,GAAGtG,EAAEsG,CAAC,CAAC,YAAO,IAAStG,EAAEA,EAAE3P,EAAEyzB,WAAW,CAAC,SAAS3Z,GAAE3mB,GAAG,IAAIwf,EAAE2D,EAAE1iB,EAAE,GAAG,MAAMT,EAAEI,MAAM,iBAAiBJ,EAAEI,KAAK,OAAOJ,EAAE42E,IAAI,GAAG52E,EAAEy2E,IAAI,IAAIj3D,EAAExf,EAAEy2E,IAAI71E,OAAO,EAAE4e,GAAG,EAAEA,IAAI,IAAI2D,EAAEnjB,EAAEy2E,IAAIj3D,MAAM/e,EAAEkmB,GAAExD,IAAI,OAAO1iB,EAAE,OAAO,IAAI,CAA4N,SAASipB,GAAE1pB,EAAEwf,EAAE2D,GAAG,MAAM3D,EAAE,GAAGxf,EAAE8jD,YAAYtkC,EAAE,MAAM2D,EAAE,GAAGA,GAAGnjB,EAAEwf,GAAG,MAAM2D,EAAE,GAAG,iBAAiBA,GAAG/c,GAAEsc,KAAKlD,GAAG2D,EAAEA,EAAE,IAAI,CAAC,SAASiF,GAAEpoB,EAAEwf,EAAE2D,EAAE1iB,EAAEoM,GAAG,IAAIiW,EAAE9iB,EAAE,GAAG,UAAUwf,EAAE,GAAG,iBAAiB2D,EAAEnjB,EAAE6jD,MAAM0zB,QAAQp0D,MAAM,CAAC,GAAG,iBAAiB1iB,IAAIT,EAAE6jD,MAAM0zB,QAAQ92E,EAAE,IAAIA,EAAE,IAAI+e,KAAK/e,EAAE0iB,GAAG3D,KAAK2D,GAAGuG,GAAE1pB,EAAE6jD,MAAMrkC,EAAE,IAAI,GAAG2D,EAAE,IAAI3D,KAAK2D,EAAE1iB,GAAG0iB,EAAE3D,KAAK/e,EAAE+e,IAAIkK,GAAE1pB,EAAE6jD,MAAMrkC,EAAE2D,EAAE3D,GAAG,MAAM,GAAG,MAAMA,EAAE,IAAI,MAAMA,EAAE,GAAGsD,EAAEtD,KAAKA,EAAEA,EAAEtK,QAAQ,WAAW,KAAKsK,EAAEA,EAAE8G,gBAAgBtmB,EAAEwf,EAAE8G,cAAcnlB,MAAM,GAAGqe,EAAEre,MAAM,GAAGnB,EAAEwf,IAAIxf,EAAEwf,EAAE,CAAC,GAAGxf,EAAEwf,EAAEA,EAAEsD,GAAGK,EAAEA,EAAE1iB,GAAGT,EAAEu9B,iBAAiB/d,EAAEsD,EAAE0Q,GAAEpN,GAAEtD,GAAG9iB,EAAEw9B,oBAAoBhe,EAAEsD,EAAE0Q,GAAEpN,GAAEtD,QAAQ,GAAG,4BAA4BtD,EAAE,CAAC,GAAG3S,EAAE2S,EAAEA,EAAEtK,QAAQ,cAAc,KAAKA,QAAQ,SAAS,UAAU,GAAG,UAAUsK,GAAG,WAAWA,GAAG,SAASA,GAAG,SAASA,GAAG,SAASA,GAAG,aAAaA,GAAG,aAAaA,GAAG,YAAYA,GAAG,YAAYA,GAAGA,KAAKxf,EAAE,IAAIA,EAAEwf,GAAG,MAAM2D,EAAE,GAAGA,EAAE,MAAMnjB,CAAC,CAAC,MAAMA,GAAG,CAAC,mBAAmBmjB,IAAI,MAAMA,IAAG,IAAKA,GAAG,MAAM3D,EAAE,GAAGxf,EAAEy8B,gBAAgBjd,GAAGxf,EAAE+9B,aAAave,EAAE2D,GAAG,CAAC,CAAC,SAASiD,GAAEpmB,GAAG,OAAOb,KAAKqgB,EAAExf,EAAEI,MAAK,GAAIof,GAAE/B,MAAM+B,GAAE/B,MAAMzd,GAAGA,EAAE,CAAC,SAASwzB,GAAExzB,GAAG,OAAOb,KAAKqgB,EAAExf,EAAEI,MAAK,GAAIof,GAAE/B,MAAM+B,GAAE/B,MAAMzd,GAAGA,EAAE,CAAC,SAASi6B,GAAEj6B,EAAEmjB,EAAE1iB,EAAEoM,EAAEiW,EAAEtG,EAAE5X,EAAEyU,EAAEwL,GAAG,IAAI1H,EAAE/W,EAAEghB,EAAEzB,EAAEJ,EAAE+N,EAAEtxB,EAAET,EAAE2mB,EAAEK,EAAEa,EAAExC,EAAE+M,EAAEhN,EAAE8S,EAAE/P,EAAEvG,EAAE/iB,KAAK,QAAG,IAAS+iB,EAAE7Z,YAAY,OAAO,KAAK,MAAM7I,EAAEs2E,MAAMlyD,EAAEpkB,EAAEs2E,IAAI19D,EAAE8J,EAAEyzD,IAAIn2E,EAAEm2E,IAAIzzD,EAAE4zD,IAAI,KAAKv6D,EAAE,CAACnD,KAAK8D,EAAEqC,GAAEm3D,MAAMx5D,EAAEgG,GAAG,IAAInjB,EAAE,GAAG,mBAAmB0pB,EAAE,CAAC,GAAGnoB,EAAE4hB,EAAE0hD,MAAM38C,GAAG/K,EAAEuM,EAAE8tD,cAAc3qE,EAAEsQ,EAAE25D,KAAKvuD,EAAEpL,EAAE+K,EAAEA,EAAE28C,MAAM1gE,MAAMgZ,EAAEu5D,GAAG7pE,EAAEpM,EAAEq2E,IAAI90E,GAAGoE,EAAE+c,EAAE2zD,IAAIr2E,EAAEq2E,KAAKJ,GAAGtwE,EAAEqxE,KAAK,cAAc/tD,GAAGA,EAAE7pB,UAAU4wB,OAAOtN,EAAE2zD,IAAI1wE,EAAE,IAAIsjB,EAAEnoB,EAAEgnB,IAAIpF,EAAE2zD,IAAI1wE,EAAE,IAAIC,GAAE9E,EAAEgnB,GAAGniB,EAAEkD,YAAYogB,EAAEtjB,EAAEqqB,OAAOsL,IAAG7T,GAAGA,EAAEqK,IAAInsB,GAAGA,EAAEy+D,MAAMtjE,EAAE6E,EAAEgK,QAAQhK,EAAEgK,MAAM,CAAC,GAAGhK,EAAEpF,QAAQunB,EAAEniB,EAAEixE,IAAIxqE,EAAEua,EAAEhhB,EAAEywE,KAAI,EAAGzwE,EAAE2wE,IAAI,GAAG3wE,EAAEsxE,IAAI,IAAI,MAAMtxE,EAAEuxE,MAAMvxE,EAAEuxE,IAAIvxE,EAAEgK,OAAO,MAAMsZ,EAAEkuD,2BAA2BxxE,EAAEuxE,KAAKvxE,EAAEgK,QAAQhK,EAAEuxE,IAAI,GAAE,CAAC,EAAEvxE,EAAEuxE,MAAM,GAAEvxE,EAAEuxE,IAAIjuD,EAAEkuD,yBAAyBr2E,EAAE6E,EAAEuxE,OAAOhyD,EAAEvf,EAAEy+D,MAAMt/C,EAAEnf,EAAEgK,MAAMhK,EAAE4wE,IAAI7zD,EAAEiE,EAAE,MAAMsC,EAAEkuD,0BAA0B,MAAMxxE,EAAEyxE,oBAAoBzxE,EAAEyxE,qBAAqB,MAAMzxE,EAAE0xE,mBAAmB1xE,EAAE2wE,IAAIt1E,KAAK2E,EAAE0xE,uBAAuB,CAAC,GAAG,MAAMpuD,EAAEkuD,0BAA0Br2E,IAAIokB,GAAG,MAAMvf,EAAE2xE,2BAA2B3xE,EAAE2xE,0BAA0Bx2E,EAAEgnB,IAAIniB,EAAEwwE,KAAK,MAAMxwE,EAAE4xE,wBAAuB,IAAK5xE,EAAE4xE,sBAAsBz2E,EAAE6E,EAAEuxE,IAAIpvD,IAAIpF,EAAE6zD,MAAMv2E,EAAEu2E,IAAI,CAAC,IAAI7zD,EAAE6zD,MAAMv2E,EAAEu2E,MAAM5wE,EAAEy+D,MAAMtjE,EAAE6E,EAAEgK,MAAMhK,EAAEuxE,IAAIvxE,EAAEywE,KAAI,GAAIzwE,EAAEwwE,KAAI,EAAGzzD,EAAEyzD,IAAIn2E,EAAEm2E,IAAIzzD,EAAEszD,IAAIh2E,EAAEg2E,IAAItzD,EAAEszD,IAAIjvE,SAAQ,SAASxH,GAAGA,IAAIA,EAAE02E,GAAGvzD,EAAE,IAAGiG,EAAE,EAAEA,EAAEhjB,EAAEsxE,IAAI92E,OAAOwoB,IAAIhjB,EAAE2wE,IAAIt1E,KAAK2E,EAAEsxE,IAAItuD,IAAIhjB,EAAEsxE,IAAI,GAAGtxE,EAAE2wE,IAAIn2E,QAAQgE,EAAEnD,KAAK2E,GAAG,MAAMpG,CAAC,CAAC,MAAMoG,EAAE6xE,qBAAqB7xE,EAAE6xE,oBAAoB12E,EAAE6E,EAAEuxE,IAAIpvD,GAAG,MAAMniB,EAAE8xE,oBAAoB9xE,EAAE2wE,IAAIt1E,MAAK,WAAW2E,EAAE8xE,mBAAmBvyD,EAAEJ,EAAE+N,EAAE,GAAE,CAAC,GAAGltB,EAAEpF,QAAQunB,EAAEniB,EAAEy+D,MAAMtjE,EAAE6E,EAAEgxE,IAAIp3E,EAAE4mB,EAAEpH,GAAE03D,IAAIvjD,EAAE,EAAE,cAAcjK,GAAGA,EAAE7pB,UAAU4wB,OAAO,CAAC,IAAIrqB,EAAEgK,MAAMhK,EAAEuxE,IAAIvxE,EAAEywE,KAAI,EAAGjwD,GAAGA,EAAEzD,GAAGhG,EAAE/W,EAAEqqB,OAAOrqB,EAAEy+D,MAAMz+D,EAAEgK,MAAMhK,EAAEpF,SAAS2lB,EAAE,EAAEA,EAAEvgB,EAAEsxE,IAAI92E,OAAO+lB,IAAIvgB,EAAE2wE,IAAIt1E,KAAK2E,EAAEsxE,IAAI/wD,IAAIvgB,EAAEsxE,IAAI,EAAE,MAAM,GAAGtxE,EAAEywE,KAAI,EAAGjwD,GAAGA,EAAEzD,GAAGhG,EAAE/W,EAAEqqB,OAAOrqB,EAAEy+D,MAAMz+D,EAAEgK,MAAMhK,EAAEpF,SAASoF,EAAEgK,MAAMhK,EAAEuxE,UAAUvxE,EAAEywE,OAAOljD,EAAE,IAAIvtB,EAAEgK,MAAMhK,EAAEuxE,IAAI,MAAMvxE,EAAE+xE,kBAAkBtrE,EAAE,GAAE,GAAE,CAAC,EAAEA,GAAGzG,EAAE+xE,oBAAoB/wD,GAAG,MAAMhhB,EAAEgyE,0BAA0B9kD,EAAEltB,EAAEgyE,wBAAwBzyD,EAAEJ,IAAIY,GAAEnmB,EAAE2E,GAAE80B,EAAE,MAAMtc,GAAGA,EAAE/c,OAAO2H,IAAG,MAAMoV,EAAE7a,IAAI6a,EAAE0nD,MAAMhvD,SAASsH,GAAGsc,EAAE,CAACA,GAAGtW,EAAE1iB,EAAEoM,EAAEiW,EAAEtG,EAAE5X,EAAEyU,EAAEwL,GAAGze,EAAE0qB,KAAK3N,EAAEyzD,IAAIzzD,EAAE4zD,IAAI,KAAK3wE,EAAE2wE,IAAIn2E,QAAQgE,EAAEnD,KAAK2E,GAAGpE,IAAIoE,EAAEqxE,IAAIrxE,EAAEswE,GAAG,MAAMtwE,EAAEwwE,KAAI,CAAE,MAAM,MAAMp6D,GAAG2G,EAAE6zD,MAAMv2E,EAAEu2E,KAAK7zD,EAAEszD,IAAIh2E,EAAEg2E,IAAItzD,EAAEyzD,IAAIn2E,EAAEm2E,KAAKzzD,EAAEyzD,IAAIlvD,GAAEjnB,EAAEm2E,IAAIzzD,EAAE1iB,EAAEoM,EAAEiW,EAAEtG,EAAE5X,EAAEigB,IAAI1H,EAAEqC,GAAE64D,SAASl7D,EAAEgG,EAAE,CAAC,MAAMnjB,GAAGmjB,EAAE6zD,IAAI,MAAMnyD,GAAG,MAAMrI,KAAK2G,EAAEyzD,IAAIv9D,EAAE8J,EAAE4zD,MAAMlyD,EAAErI,EAAEA,EAAE5W,QAAQyT,IAAI,MAAMmG,GAAEo3D,IAAI52E,EAAEmjB,EAAE1iB,EAAE,CAAC,CAAC,SAAS46B,GAAEr7B,EAAEmjB,GAAG3D,GAAEs3D,KAAKt3D,GAAEs3D,IAAI3zD,EAAEnjB,GAAGA,EAAEghB,MAAK,SAASmC,GAAG,IAAInjB,EAAEmjB,EAAE4zD,IAAI5zD,EAAE4zD,IAAI,GAAG/2E,EAAEghB,MAAK,SAAShhB,GAAGA,EAAEiB,KAAKkiB,EAAE,GAAE,CAAC,MAAMnjB,GAAGwf,GAAEo3D,IAAI52E,EAAEmjB,EAAE6zD,IAAI,CAAC,GAAE,CAAC,SAAStvD,GAAElI,EAAE2D,EAAE1iB,EAAEoM,EAAEiW,EAAEtG,EAAE5X,EAAEyU,GAAG,IAAI8D,EAAE/W,EAAE8e,EAAES,EAAEllB,EAAEokE,MAAMt/C,EAAEpC,EAAE0hD,MAAMvxC,EAAEnQ,EAAE/iB,KAAK2H,EAAE,EAAE,GAAG,QAAQurB,IAAIxQ,GAAE,GAAI,MAAMtG,EAAE,KAAKzU,EAAEyU,EAAE5b,OAAOmH,IAAI,IAAIoV,EAAEX,EAAEzU,KAAK,iBAAiBoV,KAAKmW,IAAIA,EAAEnW,EAAEm7D,YAAYhlD,EAAE,IAAInW,EAAEoiB,UAAU,CAAC/f,EAAErC,EAAEX,EAAEzU,GAAG,KAAK,KAAK,CAAC,GAAG,MAAMyX,EAAE,CAAC,GAAG,OAAO8T,EAAE,OAAO0G,SAASu+C,eAAehzD,GAAG/F,EAAEsD,EAAEkX,SAASw+C,gBAAgB,6BAA6BllD,GAAG0G,SAAS0D,cAAcpK,EAAE/N,EAAEkzD,IAAIlzD,GAAG/I,EAAE,KAAKnD,GAAE,CAAE,CAAC,GAAG,OAAOia,EAAE3N,IAAIJ,GAAGlM,GAAGmG,EAAEpO,OAAOmU,IAAI/F,EAAEpO,KAAKmU,OAAO,CAAC,GAAG/I,EAAEA,GAAGxc,GAAEiB,KAAKue,EAAE6f,YAAYj5B,GAAGuf,EAAEllB,EAAEokE,OAAOhgD,IAAG6zD,wBAAwBxzD,EAAEK,EAAEmzD,yBAAyBr/D,EAAE,CAAC,GAAG,MAAMmD,EAAE,IAAImJ,EAAE,CAAC,EAAE5d,EAAE,EAAEA,EAAEyX,EAAE9M,WAAW9R,OAAOmH,IAAI4d,EAAEnG,EAAE9M,WAAW3K,GAAGgB,MAAMyW,EAAE9M,WAAW3K,GAAG5D,OAAO+gB,GAAG9e,KAAK8e,IAAI9e,GAAG8e,EAAEyzD,QAAQvyE,EAAEuyE,QAAQzzD,EAAEyzD,SAASn5D,EAAE8oB,aAAa9oB,EAAE8oB,UAAUpjB,GAAGA,EAAEyzD,QAAQ,IAAI,CAAC,GAAnuI,SAAW34E,EAAEwf,EAAE2D,EAAE1iB,EAAEoM,GAAG,IAAIiW,EAAE,IAAIA,KAAKK,EAAE,aAAaL,GAAG,QAAQA,GAAGA,KAAKtD,GAAG4I,GAAEpoB,EAAE8iB,EAAE,KAAKK,EAAEL,GAAGriB,GAAG,IAAIqiB,KAAKtD,EAAE3S,GAAG,mBAAmB2S,EAAEsD,IAAI,aAAaA,GAAG,QAAQA,GAAG,UAAUA,GAAG,YAAYA,GAAGK,EAAEL,KAAKtD,EAAEsD,IAAIsF,GAAEpoB,EAAE8iB,EAAEtD,EAAEsD,GAAGK,EAAEL,GAAGriB,EAAE,CAA4gIg5B,CAAEja,EAAE+F,EAAEI,EAAE7C,EAAEzJ,GAAG6L,EAAE/B,EAAEszD,IAAI,QAAQ,GAAGtwD,GAAE3G,EAAE7a,GAAEoD,EAAEob,EAAE0hD,MAAMhvD,UAAU9N,EAAE,CAACA,GAAGob,EAAE1iB,EAAEoM,EAAEiW,GAAG,kBAAkBwQ,EAAE9W,EAAE5X,EAAE4X,EAAEA,EAAE,GAAG/b,EAAEg2E,KAAKz0E,GAAEvB,EAAE,GAAG4Y,GAAG,MAAMmD,EAAE,IAAIzU,EAAEyU,EAAE5b,OAAOmH,KAAK,MAAMyU,EAAEzU,IAAIqf,GAAE5K,EAAEzU,IAAIsR,IAAI,UAAUkM,QAAG,KAAUxd,EAAEwd,EAAEphB,SAAS4D,IAAIyX,EAAErb,OAAO,aAAamvB,IAAIvrB,GAAG,WAAWurB,GAAGvrB,IAAI4d,EAAExhB,QAAQikB,GAAE5I,EAAE,QAAQzX,EAAE4d,EAAExhB,OAAM,GAAI,YAAYohB,QAAG,KAAUxd,EAAEwd,EAAEukB,UAAU/hC,IAAIyX,EAAEsqB,SAAS1hB,GAAE5I,EAAE,UAAUzX,EAAE4d,EAAEmkB,SAAQ,GAAI,CAAC,OAAOtqB,CAAC,CAAC,SAAS0G,GAAElmB,EAAEmjB,EAAE1iB,GAAG,IAAI,mBAAmBT,EAAEA,EAAEmjB,GAAGnjB,EAAEo8D,QAAQj5C,CAAC,CAAC,MAAMnjB,GAAGwf,GAAEo3D,IAAI52E,EAAES,EAAE,CAAC,CAAC,SAASoa,GAAE7a,EAAEmjB,EAAE1iB,GAAG,IAAIoM,EAAEiW,EAAE,GAAGtD,GAAEo5D,SAASp5D,GAAEo5D,QAAQ54E,IAAI6M,EAAE7M,EAAEw2E,OAAO3pE,EAAEuvD,SAASvvD,EAAEuvD,UAAUp8D,EAAE42E,KAAK1wD,GAAErZ,EAAE,KAAKsW,IAAI,OAAOtW,EAAE7M,EAAE82E,KAAK,CAAC,GAAGjqE,EAAEgsE,qBAAqB,IAAIhsE,EAAEgsE,sBAAsB,CAAC,MAAM74E,GAAGwf,GAAEo3D,IAAI52E,EAAEmjB,EAAE,CAACtW,EAAEikB,KAAKjkB,EAAEuqE,IAAI,KAAKp3E,EAAE82E,SAAI,CAAM,CAAC,GAAGjqE,EAAE7M,EAAEy2E,IAAI,IAAI3zD,EAAE,EAAEA,EAAEjW,EAAEjM,OAAOkiB,IAAIjW,EAAEiW,IAAIjI,GAAEhO,EAAEiW,GAAGK,EAAE1iB,GAAG,mBAAmBT,EAAEI,MAAMK,GAAG,MAAMT,EAAE42E,KAAKxvD,GAAEpnB,EAAE42E,KAAK52E,EAAE02E,GAAG12E,EAAE42E,IAAI52E,EAAE62E,SAAI,CAAM,CAAC,SAAS96C,GAAE/7B,EAAEwf,EAAE2D,GAAG,OAAOhkB,KAAKmK,YAAYtJ,EAAEmjB,EAAE,CAAC,SAAS2Y,GAAE3Y,EAAE1iB,EAAEoM,GAAG,IAAIiW,EAAEtG,EAAE5X,EAAE4a,GAAEk3D,IAAIl3D,GAAEk3D,GAAGvzD,EAAE1iB,GAAG+b,GAAGsG,EAAE,mBAAmBjW,GAAG,KAAKA,GAAGA,EAAE4pE,KAAKh2E,EAAEg2E,IAAI7xE,EAAE,GAAGq1B,GAAEx5B,EAAE0iB,IAAIL,GAAGjW,GAAGpM,GAAGg2E,IAAI9wD,GAAE5d,GAAE,KAAK,CAACob,IAAI3G,GAAGqI,GAAEA,QAAE,IAASpkB,EAAE62E,iBAAiBx0D,GAAGjW,EAAE,CAACA,GAAG2P,EAAE,KAAK/b,EAAEm6B,WAAW56B,GAAEiB,KAAKR,EAAE4+B,YAAY,KAAKz6B,GAAGke,GAAGjW,EAAEA,EAAE2P,EAAEA,EAAEo6D,IAAIn2E,EAAEm6B,WAAW9X,GAAGuY,GAAEz2B,EAAEue,EAAE,CAAi0BnjB,GAAEmd,GAAEhc,MAAMqe,GAAE,CAACo3D,IAAI,SAAS52E,EAAEwf,EAAE2D,EAAE1iB,GAAG,IAAI,IAAIoM,EAAEiW,EAAEtG,EAAEgD,EAAEA,EAAEk3D,IAAI,IAAI7pE,EAAE2S,EAAEs3D,OAAOjqE,EAAE6pE,GAAG,IAAI,IAAI5zD,EAAEjW,EAAEvD,cAAc,MAAMwZ,EAAEg2D,2BAA2BjsE,EAAEiP,SAASgH,EAAEg2D,yBAAyB94E,IAAIwc,EAAE3P,EAAEgqE,KAAK,MAAMhqE,EAAEksE,oBAAoBlsE,EAAEksE,kBAAkB/4E,EAAES,GAAG,CAAC,GAAG+b,EAAE3P,EAAEgqE,KAAKr6D,EAAE,OAAO3P,EAAE4qE,IAAI5qE,CAAC,CAAC,MAAM2S,GAAGxf,EAAEwf,CAAC,CAAC,MAAMxf,CAAC,GAAGmjB,GAAE,EAAwD9c,GAAExG,UAAUic,SAAS,SAAS9b,EAAEwf,GAAG,IAAI2D,EAAEA,EAAE,MAAMhkB,KAAKw4E,KAAKx4E,KAAKw4E,MAAMx4E,KAAKiR,MAAMjR,KAAKw4E,IAAIx4E,KAAKw4E,IAAI,GAAE,CAAC,EAAEx4E,KAAKiR,OAAO,mBAAmBpQ,IAAIA,EAAEA,EAAE,GAAE,CAAC,EAAEmjB,GAAGhkB,KAAK0lE,QAAQ7kE,GAAG,GAAEmjB,EAAEnjB,GAAG,MAAMA,GAAGb,KAAK63E,MAAMx3D,GAAGrgB,KAAKu4E,IAAIj2E,KAAK+d,GAAG0I,GAAE/oB,MAAM,EAAEkH,GAAExG,UAAUm5E,YAAY,SAASh5E,GAAGb,KAAK63E,MAAM73E,KAAKy3E,KAAI,EAAG52E,GAAGb,KAAK43E,IAAIt1E,KAAKzB,GAAGkoB,GAAE/oB,MAAM,EAAEkH,GAAExG,UAAU4wB,OAAO1oB,GAAE8E,GAAE,GAAG2P,GAAE,mBAAmB/C,QAAQA,QAAQ5Z,UAAUqZ,KAAK+D,KAAKxD,QAAQC,WAAWsQ,WAAWplB,GAAE,SAAS5E,EAAEwf,GAAG,OAAOxf,EAAEg3E,IAAIL,IAAIn3D,EAAEw3D,IAAIL,GAAG,EAAEpuD,GAAE2uD,IAAI,EC8BnuU,SAAS+B,GAAmBC,EAAcC,EAAYC,GAEpD,IADA,IAAInhC,EAAUihC,EACPjhC,IAAYmhC,EAAUnhC,IAAU,CACrC,GAAIA,IAAYkhC,EACd,OAAO,KAETlhC,EAAUA,EAAQne,aACpB,CACA,OAAOme,CACT,iCCvCI,GAAE,SAASprC,EAAEsQ,EAAEX,EAAEnD,GAAG,IAAI8J,EAAEhG,EAAE,GAAG,EAAE,IAAI,IAAI+H,EAAE,EAAEA,EAAE/H,EAAEvc,OAAOskB,IAAI,CAAC,IAAIkC,EAAEjK,EAAE+H,KAAK9e,EAAE+W,EAAE+H,IAAI/H,EAAE,IAAIiK,EAAE,EAAE,EAAE5K,EAAEW,EAAE+H,OAAO/H,IAAI+H,GAAG,IAAIkC,EAAE/N,EAAE,GAAGjT,EAAE,IAAIghB,EAAE/N,EAAE,GAAGpU,OAAO4vC,OAAOx7B,EAAE,IAAI,CAAC,EAAEjT,GAAG,IAAIghB,GAAG/N,EAAE,GAAGA,EAAE,IAAI,CAAC,GAAG8D,IAAI+H,IAAI9e,EAAE,IAAIghB,EAAE/N,EAAE,GAAG8D,IAAI+H,KAAK9e,EAAE,GAAGghB,GAAGjE,EAAEtW,EAAEzL,MAAMgF,EAAE,GAAEyG,EAAEzG,EAAEoW,EAAE,CAAC,GAAG,QAAQnD,EAAE5X,KAAK0hB,GAAG/c,EAAE,GAAG+W,EAAE,IAAI,GAAGA,EAAE+H,EAAE,GAAG,EAAE/H,EAAE+H,GAAG/B,IAAI9J,EAAE5X,KAAK2E,EAAE,CAAC,OAAOiT,CAAC,EAAE,GAAE,IAAI2hC,ICAlN,GDAqO,SAAS79B,GAAG,IAAIX,EAAE,GAAE2H,IAAIhlB,MAAM,OAAOqd,IAAIA,EAAE,IAAIw+B,IAAI,GAAE12B,IAAInlB,KAAKqd,KAAKA,EAAE,GAAErd,KAAKqd,EAAE2H,IAAIhH,KAAKX,EAAE8H,IAAInH,EAAEX,EAAE,SAASxc,GAAG,IAAI,IAAI6M,EAAEsQ,EAAEX,EAAE,EAAEnD,EAAE,GAAG8J,EAAE,GAAG+B,EAAE,CAAC,GAAGkC,EAAE,SAASpnB,GAAG,IAAIwc,IAAIxc,IAAIqZ,EAAEA,EAAEnE,QAAQ,uBAAuB,MAAMgQ,EAAEzjB,KAAK,EAAEzB,EAAEqZ,GAAG,IAAImD,IAAIxc,GAAGqZ,IAAI6L,EAAEzjB,KAAK,EAAEzB,EAAEqZ,GAAGmD,EAAE,GAAG,IAAIA,GAAG,QAAQnD,GAAGrZ,EAAEklB,EAAEzjB,KAAK,EAAEzB,EAAE,GAAG,IAAIwc,GAAGnD,IAAIrZ,EAAEklB,EAAEzjB,KAAK,EAAE,GAAE,EAAG4X,GAAGmD,GAAG,KAAKnD,IAAIrZ,GAAG,IAAIwc,KAAK0I,EAAEzjB,KAAK+a,EAAE,EAAEnD,EAAE8D,GAAGX,EAAE,GAAGxc,IAAIklB,EAAEzjB,KAAK+a,EAAExc,EAAE,EAAEmd,GAAGX,EAAE,IAAInD,EAAE,EAAE,EAAEjT,EAAE,EAAEA,EAAEpG,EAAEY,OAAOwF,IAAI,CAACA,IAAI,IAAIoW,GAAG4K,IAAIA,EAAEhhB,IAAI,IAAI,IAAIoZ,EAAE,EAAEA,EAAExf,EAAEoG,GAAGxF,OAAO4e,IAAI3S,EAAE7M,EAAEoG,GAAGoZ,GAAG,IAAIhD,EAAE,MAAM3P,GAAGua,IAAIlC,EAAE,CAACA,GAAG1I,EAAE,GAAGnD,GAAGxM,EAAE,IAAI2P,EAAE,OAAOnD,GAAG,MAAMxM,GAAG2P,EAAE,EAAEnD,EAAE,IAAIA,EAAExM,EAAEwM,EAAE,GAAG8J,EAAEtW,IAAIsW,EAAEA,EAAE,GAAG9J,GAAGxM,EAAE,MAAMA,GAAG,MAAMA,EAAEsW,EAAEtW,EAAE,MAAMA,GAAGua,IAAI5K,EAAE,GAAGA,IAAI,MAAM3P,GAAG2P,EAAE,EAAEW,EAAE9D,EAAEA,EAAE,IAAI,MAAMxM,IAAI2P,EAAE,GAAG,MAAMxc,EAAEoG,GAAGoZ,EAAE,KAAK4H,IAAI,IAAI5K,IAAI0I,EAAEA,EAAE,IAAI1I,EAAE0I,GAAGA,EAAEA,EAAE,IAAIzjB,KAAK,EAAE,EAAE+a,GAAGA,EAAE,GAAG,MAAM3P,GAAG,OAAOA,GAAG,OAAOA,GAAG,OAAOA,GAAGua,IAAI5K,EAAE,GAAGnD,GAAGxM,GAAG,IAAI2P,GAAG,QAAQnD,IAAImD,EAAE,EAAE0I,EAAEA,EAAE,GAAG,CAAC,OAAOkC,IAAIlC,CAAC,CAAptB,CAAstB/H,IAAIX,GAAG3b,UAAU,KAAKD,OAAO,EAAE4b,EAAEA,EAAE,EAAE,ECA7jCS,KAAK,ICA9G,SAAS,KAYtB,OAXA,GAAWhY,OAAO4vC,OAAS5vC,OAAO4vC,OAAO53B,OAAS,SAAUmC,GAC1D,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CACzC,IAAIwd,EAASpd,UAAUJ,GACvB,IAAK,IAAI6B,KAAO2b,EACVhZ,OAAOpF,UAAUwf,eAAepe,KAAKgd,EAAQ3b,KAC/C8c,EAAO9c,GAAO2b,EAAO3b,GAG3B,CACA,OAAO8c,CACT,EACO,GAAShe,MAAMjC,KAAM0B,UAC9B,CCXA,IAmByCqjE,GACnCxmC,GACA27C,GACAC,GAtBF,GAAY,CAAC,QAAS,qBAAsB,wBAAyB,YAAa,YAAa,cCAxFC,IDoBL77C,IADmCwmC,GCnBe,CACtDxmC,cAAe,GACf27C,SAAU,KDkBgB37C,cAEtB47C,GAlBN,SAAsCvd,GACpC,IAAIr+B,EAAgBq+B,EAAKr+B,cACzB,OAAO,SAAuBooC,GAC5B,IAAI0T,EAAa1T,EAAM0T,WACnB3jE,EAAWiwD,EAAMjwD,SACjBsoD,EAAqB2H,EAAM3H,mBAC3BU,EAAgBiH,EAAMjH,cACtB4a,EAAwB3T,EAAM2T,sBAElC,OAAO/7C,EADOmhC,EAAgBV,EAAqBsb,EACrB,CAC5B/a,UAAWG,EAAgB2a,EAAW7a,YAAc6a,EAAWE,gBAC9D7jE,EACL,CACF,CAKsB8jE,CAA6B,CAC/Cj8C,cAAeA,GACf27C,SAHEA,GAAWnV,GAAMmV,WAKd,SAAmB7S,GACxB,IAAI30D,EAAQ20D,EAAM30D,MACd+nE,EAAwBpT,EAAMrI,mBAC9BA,OAA+C,IAA1Byb,EAAmC,OAASA,EACjEC,EAAwBrT,EAAMiT,sBAC9BA,OAAkD,IAA1BI,EAAmC,OAASA,EACpEC,EAAkBtT,EAAMt5D,UACxBA,OAAgC,IAApB4sE,EAA6B,KAAOA,EAChDpb,EAAY8H,EAAM9H,UAClBqb,EAAmBvT,EAAMgT,WACzBA,OAAkC,IAArBO,EAA8B,CAAC,EAAIA,EAChDlV,EEtCO,SAAkC5mD,EAAQyB,GACvD,GAAc,MAAVzB,EAAgB,MAAO,CAAC,EAC5B,IACI3b,EAAK7B,EADL2e,ECHS,SAAuCnB,EAAQyB,GAC5D,GAAc,MAAVzB,EAAgB,MAAO,CAAC,EAC5B,IAEI3b,EAAK7B,EAFL2e,EAAS,CAAC,EACVO,EAAa1a,OAAOC,KAAK+Y,GAE7B,IAAKxd,EAAI,EAAGA,EAAIkf,EAAW/e,OAAQH,IACjC6B,EAAMqd,EAAWlf,GACbif,EAAS9Z,QAAQtD,IAAQ,IAC7B8c,EAAO9c,GAAO2b,EAAO3b,IAEvB,OAAO8c,CACT,CDRe,CAA6BnB,EAAQyB,GAElD,GAAIza,OAAO2d,sBAAuB,CAChC,IAAIq+C,EAAmBh8D,OAAO2d,sBAAsB3E,GACpD,IAAKxd,EAAI,EAAGA,EAAIwgE,EAAiBrgE,OAAQH,IACvC6B,EAAM2+D,EAAiBxgE,GACnBif,EAAS9Z,QAAQtD,IAAQ,GACxB2C,OAAOpF,UAAU2pB,qBAAqBvoB,KAAKgd,EAAQ3b,KACxD8c,EAAO9c,GAAO2b,EAAO3b,GAEzB,CACA,OAAO8c,CACT,CFwBgB,CAAyBonD,EAAO,IAE5C,OAAO9oC,GAAc,OAAQ,GAAS,CAAC,EAAGmnC,EAAO,CAC/CnG,UAAW1sC,GAAGwnD,EAAW7kE,KAAM+pD,KAC7B7sD,EAAM1J,KAAI,SAAU4H,EAAMiqE,GAC5B,IAAIC,EAAaD,IAAcnoE,EAAMjR,OAAS,EAC9C,OAAO88B,GAAc27C,GAAU,CAC7B/2E,IAAK03E,GACJjqE,EAAK5H,KAAI,SAAU+xE,EAASC,GAC7B,OAAOz8C,GAAc47C,GAAe,CAClCh3E,IAAK63E,EACLX,WAAYA,EACZrb,mBAAoBA,EACpBsb,sBAAuBA,EACvB5a,cAAeqb,EAAQrb,eACtBqb,EAAQ/1E,MACb,KAAK81E,GAAcv8C,GAAc,OAAQ,CACvCghC,UAAW8a,EAAWtsE,WACrBA,GACL,IACF,GI3DE,GAAY,CAAC,cACjB,SAAS,KAAiS,OAApR,GAAWjI,OAAO4vC,OAAS5vC,OAAO4vC,OAAO53B,OAAS,SAAUmC,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIwd,EAASpd,UAAUJ,GAAI,IAAK,IAAI6B,KAAO2b,EAAchZ,OAAOpF,UAAUwf,eAAepe,KAAKgd,EAAQ3b,KAAQ8c,EAAO9c,GAAO2b,EAAO3b,GAAU,CAAE,OAAO8c,CAAQ,EAAU,GAAShe,MAAMjC,KAAM0B,UAAY,CAM3U,SAASu5E,GAAUre,GACxB,IAAIse,EAAkBte,EAAKyd,WACzBA,OAAiC,IAApBa,EAA6B,CAAC,EAAIA,EAC/CxV,EARJ,SAAkC5mD,EAAQyB,GAAY,GAAc,MAAVzB,EAAgB,MAAO,CAAC,EAAG,IAAkE3b,EAAK7B,EAAnE2e,EACzF,SAAuCnB,EAAQyB,GAAY,GAAc,MAAVzB,EAAgB,MAAO,CAAC,EAAG,IAA2D3b,EAAK7B,EAA5D2e,EAAS,CAAC,EAAOO,EAAa1a,OAAOC,KAAK+Y,GAAqB,IAAKxd,EAAI,EAAGA,EAAIkf,EAAW/e,OAAQH,IAAO6B,EAAMqd,EAAWlf,GAAQif,EAAS9Z,QAAQtD,IAAQ,IAAa8c,EAAO9c,GAAO2b,EAAO3b,IAAQ,OAAO8c,CAAQ,CADhN,CAA8BnB,EAAQyB,GAAuB,GAAIza,OAAO2d,sBAAuB,CAAE,IAAIq+C,EAAmBh8D,OAAO2d,sBAAsB3E,GAAS,IAAKxd,EAAI,EAAGA,EAAIwgE,EAAiBrgE,OAAQH,IAAO6B,EAAM2+D,EAAiBxgE,GAAQif,EAAS9Z,QAAQtD,IAAQ,GAAkB2C,OAAOpF,UAAU2pB,qBAAqBvoB,KAAKgd,EAAQ3b,KAAgB8c,EAAO9c,GAAO2b,EAAO3b,GAAQ,CAAE,OAAO8c,CAAQ,CAQ/d,CAAyB28C,EAAM,IACzC,OAAO,GAAEwd,GAAmB,GAAS,CACnCC,WAAY,CACV7kE,KAAMqd,GAAG,gBAAiBwnD,EAAW7kE,MACrCgqD,YAAa3sC,GAAG,4BAA6BwnD,EAAW7a,aACxD+a,eAAgB1nD,GAAG,+BAAgCwnD,EAAWE,gBAC9DxsE,UAAW8kB,GAAG,0BAA2BwnD,EAAWtsE,aAErD23D,GACL,CCnBO,SAASyV,GAAQn2E,GACtB,OAAOjD,MAAMoF,QAAQnC,GAASA,EAAQ,CAACA,EACzC,CCFA,IAAI,GAAY,CAAC,MAAO,YAAa,cACrC,SAAS,KAAiS,OAApR,GAAWc,OAAO4vC,OAAS5vC,OAAO4vC,OAAO53B,OAAS,SAAUmC,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIwd,EAASpd,UAAUJ,GAAI,IAAK,IAAI6B,KAAO2b,EAAchZ,OAAOpF,UAAUwf,eAAepe,KAAKgd,EAAQ3b,KAAQ8c,EAAO9c,GAAO2b,EAAO3b,GAAU,CAAE,OAAO8c,CAAQ,EAAU,GAAShe,MAAMjC,KAAM0B,UAAY,CAM3U,SAAS,GAAUk7D,GACxB,IAAIqC,EAAMrC,EAAKqC,IACbl6D,EAAY63D,EAAK73D,UACjBo6D,EAAavC,EAAKuC,WASpB,OAAO,GAAE8b,GAAsB,GAAS,CAAC,EAjB3C,SAAkCn8D,EAAQyB,GAAY,GAAc,MAAVzB,EAAgB,MAAO,CAAC,EAAG,IAAkE3b,EAAK7B,EAAnE2e,EACzF,SAAuCnB,EAAQyB,GAAY,GAAc,MAAVzB,EAAgB,MAAO,CAAC,EAAG,IAA2D3b,EAAK7B,EAA5D2e,EAAS,CAAC,EAAOO,EAAa1a,OAAOC,KAAK+Y,GAAqB,IAAKxd,EAAI,EAAGA,EAAIkf,EAAW/e,OAAQH,IAAO6B,EAAMqd,EAAWlf,GAAQif,EAAS9Z,QAAQtD,IAAQ,IAAa8c,EAAO9c,GAAO2b,EAAO3b,IAAQ,OAAO8c,CAAQ,CADhN,CAA8BnB,EAAQyB,GAAuB,GAAIza,OAAO2d,sBAAuB,CAAE,IAAIq+C,EAAmBh8D,OAAO2d,sBAAsB3E,GAAS,IAAKxd,EAAI,EAAGA,EAAIwgE,EAAiBrgE,OAAQH,IAAO6B,EAAM2+D,EAAiBxgE,GAAQif,EAAS9Z,QAAQtD,IAAQ,GAAkB2C,OAAOpF,UAAU2pB,qBAAqBvoB,KAAKgd,EAAQ3b,KAAgB8c,EAAO9c,GAAO2b,EAAO3b,GAAQ,CAAE,OAAO8c,CAAQ,CAS/d,CAAyB28C,EAAM,IAQU,CACjDlqD,MAPeyoE,GADFne,GAAkBiC,EAAII,iBAAkBt6D,IAAc,IAG9CiE,KAAI,SAAU29D,GAEnC,OAAOzG,GAAoB,GADfyG,EAAM3hE,OAC2B,IAC/C,IAGEq1E,WAAYlb,IAEhB,CCvBA,IAAI,GAAY,CAAC,cACjB,SAAS,KAAiS,OAApR,GAAWr5D,OAAO4vC,OAAS5vC,OAAO4vC,OAAO53B,OAAS,SAAUmC,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIwd,EAASpd,UAAUJ,GAAI,IAAK,IAAI6B,KAAO2b,EAAchZ,OAAOpF,UAAUwf,eAAepe,KAAKgd,EAAQ3b,KAAQ8c,EAAO9c,GAAO2b,EAAO3b,GAAU,CAAE,OAAO8c,CAAQ,EAAU,GAAShe,MAAMjC,KAAM0B,UAAY,CAM3U,SAAS05E,GAAiBxe,GAC/B,IAAIse,EAAkBte,EAAKyd,WACzBA,OAAiC,IAApBa,EAA6B,CAAC,EAAIA,EAC/CxV,EARJ,SAAkC5mD,EAAQyB,GAAY,GAAc,MAAVzB,EAAgB,MAAO,CAAC,EAAG,IAAkE3b,EAAK7B,EAAnE2e,EACzF,SAAuCnB,EAAQyB,GAAY,GAAc,MAAVzB,EAAgB,MAAO,CAAC,EAAG,IAA2D3b,EAAK7B,EAA5D2e,EAAS,CAAC,EAAOO,EAAa1a,OAAOC,KAAK+Y,GAAqB,IAAKxd,EAAI,EAAGA,EAAIkf,EAAW/e,OAAQH,IAAO6B,EAAMqd,EAAWlf,GAAQif,EAAS9Z,QAAQtD,IAAQ,IAAa8c,EAAO9c,GAAO2b,EAAO3b,IAAQ,OAAO8c,CAAQ,CADhN,CAA8BnB,EAAQyB,GAAuB,GAAIza,OAAO2d,sBAAuB,CAAE,IAAIq+C,EAAmBh8D,OAAO2d,sBAAsB3E,GAAS,IAAKxd,EAAI,EAAGA,EAAIwgE,EAAiBrgE,OAAQH,IAAO6B,EAAM2+D,EAAiBxgE,GAAQif,EAAS9Z,QAAQtD,IAAQ,GAAkB2C,OAAOpF,UAAU2pB,qBAAqBvoB,KAAKgd,EAAQ3b,KAAgB8c,EAAO9c,GAAO2b,EAAO3b,GAAQ,CAAE,OAAO8c,CAAQ,CAQ/d,CAAyB28C,EAAM,IACzC,OAAO,GAAEwd,GAAmB,GAAS,CACnCC,WAAY,CACV7kE,KAAMqd,GAAG,uBAAwBwnD,EAAW7kE,MAC5CgqD,YAAa3sC,GAAG,mCAAoCwnD,EAAW7a,aAC/D+a,eAAgB1nD,GAAG,sCAAuCwnD,EAAWE,gBACrExsE,UAAW8kB,GAAG,iCAAkCwnD,EAAWtsE,aAE5D23D,GACL,CCnBA,SAAS,GAAQplD,GAAkC,OAAO,GAAU,mBAAqBwD,QAAU,iBAAmBA,OAAOC,SAAW,SAAUzD,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqBwD,QAAUxD,EAAInW,cAAgB2Z,QAAUxD,IAAQwD,OAAOpjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAC/U,IAAI,GAAY,CAAC,MAAO,YAAa,cACnC+6D,GAAa,CAAC,iBAChB,SAAS,KAAiS,OAApR,GAAWv1E,OAAO4vC,OAAS5vC,OAAO4vC,OAAO53B,OAAS,SAAUmC,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIwd,EAASpd,UAAUJ,GAAI,IAAK,IAAI6B,KAAO2b,EAAchZ,OAAOpF,UAAUwf,eAAepe,KAAKgd,EAAQ3b,KAAQ8c,EAAO9c,GAAO2b,EAAO3b,GAAU,CAAE,OAAO8c,CAAQ,EAAU,GAAShe,MAAMjC,KAAM0B,UAAY,CAClV,SAAS,GAAQ0f,EAAQ28C,GAAkB,IAAIh4D,EAAOD,OAAOC,KAAKqb,GAAS,GAAItb,OAAO2d,sBAAuB,CAAE,IAAIu6C,EAAUl4D,OAAO2d,sBAAsBrC,GAAS28C,IAAmBC,EAAUA,EAAQ53D,QAAO,SAAUgpB,GAAO,OAAOtpB,OAAO4d,yBAAyBtC,EAAQgO,GAAK1P,UAAY,KAAK3Z,EAAKzD,KAAKL,MAAM8D,EAAMi4D,EAAU,CAAE,OAAOj4D,CAAM,CACpV,SAAS,GAAcka,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIwd,EAAS,MAAQpd,UAAUJ,GAAKI,UAAUJ,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQwE,OAAOgZ,IAAS,GAAIzW,SAAQ,SAAUlF,GAAO,GAAgB8c,EAAQ9c,EAAK2b,EAAO3b,GAAO,IAAK2C,OAAO8d,0BAA4B9d,OAAO+d,iBAAiB5D,EAAQna,OAAO8d,0BAA0B9E,IAAW,GAAQhZ,OAAOgZ,IAASzW,SAAQ,SAAUlF,GAAO2C,OAAO0d,eAAevD,EAAQ9c,EAAK2C,OAAO4d,yBAAyB5E,EAAQ3b,GAAO,GAAI,CAAE,OAAO8c,CAAQ,CACzf,SAAS,GAAgBK,EAAKnd,EAAK6B,GAA4L,OAAnL7B,EAC5C,SAAwB9C,GAAO,IAAI8C,EACnC,SAAsBg7D,GAAe,GAAuB,WAAnB,GAAQA,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIC,EAAOD,EAAMr6C,OAAOu6C,aAAc,QAAal+D,IAATi+D,EAAoB,CAAE,IAAIjmD,EAAMimD,EAAKt8D,KAAKq8D,EAAOG,UAAoB,GAAqB,WAAjB,GAAQnmD,GAAmB,OAAOA,EAAK,MAAM,IAAIpX,UAAU,+CAAiD,CAAE,OAA4Bge,OAAiBo/C,EAAQ,CADnV,CAAa99D,GAAgB,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM4b,OAAO5b,EAAM,CAD1E,CAAeA,MAAiBmd,EAAOxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAAE6B,MAAOA,EAAO0a,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBW,EAAInd,GAAO6B,EAAgBsb,CAAK,CAG3O,SAAS,GAAyBxB,EAAQyB,GAAY,GAAc,MAAVzB,EAAgB,MAAO,CAAC,EAAG,IAAkE3b,EAAK7B,EAAnE2e,EACzF,SAAuCnB,EAAQyB,GAAY,GAAc,MAAVzB,EAAgB,MAAO,CAAC,EAAG,IAA2D3b,EAAK7B,EAA5D2e,EAAS,CAAC,EAAOO,EAAa1a,OAAOC,KAAK+Y,GAAqB,IAAKxd,EAAI,EAAGA,EAAIkf,EAAW/e,OAAQH,IAAO6B,EAAMqd,EAAWlf,GAAQif,EAAS9Z,QAAQtD,IAAQ,IAAa8c,EAAO9c,GAAO2b,EAAO3b,IAAQ,OAAO8c,CAAQ,CADhN,CAA8BnB,EAAQyB,GAAuB,GAAIza,OAAO2d,sBAAuB,CAAE,IAAIq+C,EAAmBh8D,OAAO2d,sBAAsB3E,GAAS,IAAKxd,EAAI,EAAGA,EAAIwgE,EAAiBrgE,OAAQH,IAAO6B,EAAM2+D,EAAiBxgE,GAAQif,EAAS9Z,QAAQtD,IAAQ,GAAkB2C,OAAOpF,UAAU2pB,qBAAqBvoB,KAAKgd,EAAQ3b,KAAgB8c,EAAO9c,GAAO2b,EAAO3b,GAAQ,CAAE,OAAO8c,CAAQ,CAKpe,SAAS,GAAiB28C,GAC/B,IAAIqC,EAAMrC,EAAKqC,IACbl6D,EAAY63D,EAAK73D,UACjBo6D,EAAavC,EAAKuC,WAClBuG,EAAQ,GAAyB9I,EAAM,IAIrClqD,EAFayoE,GADFne,GAAkBiC,EAAII,iBAAkBt6D,IAAc,IAG9CiE,KAAI,SAAU29D,GAEnC,OAAOzG,GAAoB,GADfyG,EAAM3hE,OAC2B,KAAKgE,KAAI,SAAU+7D,GAC9D,IAAIrF,EAAgBqF,EAAMrF,cAE1B,OAAO,GAAc,GAAc,CAAC,EAD3B,GAAyBqF,EAAOsW,KACK,CAAC,EAAG,CAChD3b,eAAgBA,GAEpB,GACF,IACA,OAAO,GAAE0b,GAA6B,GAAS,CAAC,EAAG1V,EAAO,CACxDhzD,MAAOA,EACP2nE,WAAYlb,IAEhB,CCpCA,IAAI,GAAY,CAAC,cACjB,SAAS,KAAiS,OAApR,GAAWr5D,OAAO4vC,OAAS5vC,OAAO4vC,OAAO53B,OAAS,SAAUmC,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIwd,EAASpd,UAAUJ,GAAI,IAAK,IAAI6B,KAAO2b,EAAchZ,OAAOpF,UAAUwf,eAAepe,KAAKgd,EAAQ3b,KAAQ8c,EAAO9c,GAAO2b,EAAO3b,GAAU,CAAE,OAAO8c,CAAQ,EAAU,GAAShe,MAAMjC,KAAM0B,UAAY,CAM3U,SAAS45E,GAAQ1e,GACtB,IAAIse,EAAkBte,EAAKyd,WACzBA,OAAiC,IAApBa,EAA6B,CAAC,EAAIA,EAC/CxV,EARJ,SAAkC5mD,EAAQyB,GAAY,GAAc,MAAVzB,EAAgB,MAAO,CAAC,EAAG,IAAkE3b,EAAK7B,EAAnE2e,EACzF,SAAuCnB,EAAQyB,GAAY,GAAc,MAAVzB,EAAgB,MAAO,CAAC,EAAG,IAA2D3b,EAAK7B,EAA5D2e,EAAS,CAAC,EAAOO,EAAa1a,OAAOC,KAAK+Y,GAAqB,IAAKxd,EAAI,EAAGA,EAAIkf,EAAW/e,OAAQH,IAAO6B,EAAMqd,EAAWlf,GAAQif,EAAS9Z,QAAQtD,IAAQ,IAAa8c,EAAO9c,GAAO2b,EAAO3b,IAAQ,OAAO8c,CAAQ,CADhN,CAA8BnB,EAAQyB,GAAuB,GAAIza,OAAO2d,sBAAuB,CAAE,IAAIq+C,EAAmBh8D,OAAO2d,sBAAsB3E,GAAS,IAAKxd,EAAI,EAAGA,EAAIwgE,EAAiBrgE,OAAQH,IAAO6B,EAAM2+D,EAAiBxgE,GAAQif,EAAS9Z,QAAQtD,IAAQ,GAAkB2C,OAAOpF,UAAU2pB,qBAAqBvoB,KAAKgd,EAAQ3b,KAAgB8c,EAAO9c,GAAO2b,EAAO3b,GAAQ,CAAE,OAAO8c,CAAQ,CAQ/d,CAAyB28C,EAAM,IACzC,OAAO,GAAEwd,GAAmB,GAAS,CACnCC,WAAY,CACV7kE,KAAMqd,GAAG,cAAewnD,EAAW7kE,MACnCgqD,YAAa3sC,GAAG,0BAA2BwnD,EAAW7a,aACtD+a,eAAgB1nD,GAAG,6BAA8BwnD,EAAWE,gBAC5DxsE,UAAW8kB,GAAG,wBAAyBwnD,EAAWtsE,aAEnD23D,GACL,CCnBA,IAAI,GAAY,CAAC,MAAO,YAAa,cACrC,SAAS,KAAiS,OAApR,GAAW5/D,OAAO4vC,OAAS5vC,OAAO4vC,OAAO53B,OAAS,SAAUmC,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIwd,EAASpd,UAAUJ,GAAI,IAAK,IAAI6B,KAAO2b,EAAchZ,OAAOpF,UAAUwf,eAAepe,KAAKgd,EAAQ3b,KAAQ8c,EAAO9c,GAAO2b,EAAO3b,GAAU,CAAE,OAAO8c,CAAQ,EAAU,GAAShe,MAAMjC,KAAM0B,UAAY,CAM3U,SAAS,GAAQk7D,GACtB,IAAIqC,EAAMrC,EAAKqC,IACbl6D,EAAY63D,EAAK73D,UACjBo6D,EAAavC,EAAKuC,WASpB,OAAO,GAAEmc,GAAoB,GAAS,CAAC,EAjBzC,SAAkCx8D,EAAQyB,GAAY,GAAc,MAAVzB,EAAgB,MAAO,CAAC,EAAG,IAAkE3b,EAAK7B,EAAnE2e,EACzF,SAAuCnB,EAAQyB,GAAY,GAAc,MAAVzB,EAAgB,MAAO,CAAC,EAAG,IAA2D3b,EAAK7B,EAA5D2e,EAAS,CAAC,EAAOO,EAAa1a,OAAOC,KAAK+Y,GAAqB,IAAKxd,EAAI,EAAGA,EAAIkf,EAAW/e,OAAQH,IAAO6B,EAAMqd,EAAWlf,GAAQif,EAAS9Z,QAAQtD,IAAQ,IAAa8c,EAAO9c,GAAO2b,EAAO3b,IAAQ,OAAO8c,CAAQ,CADhN,CAA8BnB,EAAQyB,GAAuB,GAAIza,OAAO2d,sBAAuB,CAAE,IAAIq+C,EAAmBh8D,OAAO2d,sBAAsB3E,GAAS,IAAKxd,EAAI,EAAGA,EAAIwgE,EAAiBrgE,OAAQH,IAAO6B,EAAM2+D,EAAiBxgE,GAAQif,EAAS9Z,QAAQtD,IAAQ,GAAkB2C,OAAOpF,UAAU2pB,qBAAqBvoB,KAAKgd,EAAQ3b,KAAgB8c,EAAO9c,GAAO2b,EAAO3b,GAAQ,CAAE,OAAO8c,CAAQ,CAS/d,CAAyB28C,EAAM,IAQQ,CAC/ClqD,MAPeyoE,GADFne,GAAkBiC,EAAIsB,eAAgBx7D,IAAc,IAG5CiE,KAAI,SAAU29D,GAEnC,OAAOzG,GAAoB,GADfyG,EAAM3hE,OAC2B,IAC/C,IAGEq1E,WAAYlb,IAEhB,CCvBA,IAAI,GAAY,CAAC,cACjB,SAAS,KAAiS,OAApR,GAAWr5D,OAAO4vC,OAAS5vC,OAAO4vC,OAAO53B,OAAS,SAAUmC,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIwd,EAASpd,UAAUJ,GAAI,IAAK,IAAI6B,KAAO2b,EAAchZ,OAAOpF,UAAUwf,eAAepe,KAAKgd,EAAQ3b,KAAQ8c,EAAO9c,GAAO2b,EAAO3b,GAAU,CAAE,OAAO8c,CAAQ,EAAU,GAAShe,MAAMjC,KAAM0B,UAAY,CAM3U,SAAS65E,GAAe3e,GAC7B,IAAIse,EAAkBte,EAAKyd,WACzBA,OAAiC,IAApBa,EAA6B,CAAC,EAAIA,EAC/CxV,EARJ,SAAkC5mD,EAAQyB,GAAY,GAAc,MAAVzB,EAAgB,MAAO,CAAC,EAAG,IAAkE3b,EAAK7B,EAAnE2e,EACzF,SAAuCnB,EAAQyB,GAAY,GAAc,MAAVzB,EAAgB,MAAO,CAAC,EAAG,IAA2D3b,EAAK7B,EAA5D2e,EAAS,CAAC,EAAOO,EAAa1a,OAAOC,KAAK+Y,GAAqB,IAAKxd,EAAI,EAAGA,EAAIkf,EAAW/e,OAAQH,IAAO6B,EAAMqd,EAAWlf,GAAQif,EAAS9Z,QAAQtD,IAAQ,IAAa8c,EAAO9c,GAAO2b,EAAO3b,IAAQ,OAAO8c,CAAQ,CADhN,CAA8BnB,EAAQyB,GAAuB,GAAIza,OAAO2d,sBAAuB,CAAE,IAAIq+C,EAAmBh8D,OAAO2d,sBAAsB3E,GAAS,IAAKxd,EAAI,EAAGA,EAAIwgE,EAAiBrgE,OAAQH,IAAO6B,EAAM2+D,EAAiBxgE,GAAQif,EAAS9Z,QAAQtD,IAAQ,GAAkB2C,OAAOpF,UAAU2pB,qBAAqBvoB,KAAKgd,EAAQ3b,KAAgB8c,EAAO9c,GAAO2b,EAAO3b,GAAQ,CAAE,OAAO8c,CAAQ,CAQ/d,CAAyB28C,EAAM,IACzC,OAAO,GAAEwd,GAAmB,GAAS,CACnCC,WAAY,CACV7kE,KAAMqd,GAAG,qBAAsBwnD,EAAW7kE,MAC1CgqD,YAAa3sC,GAAG,iCAAkCwnD,EAAW7a,aAC7D+a,eAAgB1nD,GAAG,oCAAqCwnD,EAAWE,gBACnExsE,UAAW8kB,GAAG,+BAAgCwnD,EAAWtsE,aAE1D23D,GACL,CCnBA,SAAS,GAAQplD,GAAkC,OAAO,GAAU,mBAAqBwD,QAAU,iBAAmBA,OAAOC,SAAW,SAAUzD,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqBwD,QAAUxD,EAAInW,cAAgB2Z,QAAUxD,IAAQwD,OAAOpjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAC/U,IAAI,GAAY,CAAC,MAAO,YAAa,cACnC,GAAa,CAAC,iBAChB,SAAS,KAAiS,OAApR,GAAWxa,OAAO4vC,OAAS5vC,OAAO4vC,OAAO53B,OAAS,SAAUmC,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIwd,EAASpd,UAAUJ,GAAI,IAAK,IAAI6B,KAAO2b,EAAchZ,OAAOpF,UAAUwf,eAAepe,KAAKgd,EAAQ3b,KAAQ8c,EAAO9c,GAAO2b,EAAO3b,GAAU,CAAE,OAAO8c,CAAQ,EAAU,GAAShe,MAAMjC,KAAM0B,UAAY,CAClV,SAAS,GAAQ0f,EAAQ28C,GAAkB,IAAIh4D,EAAOD,OAAOC,KAAKqb,GAAS,GAAItb,OAAO2d,sBAAuB,CAAE,IAAIu6C,EAAUl4D,OAAO2d,sBAAsBrC,GAAS28C,IAAmBC,EAAUA,EAAQ53D,QAAO,SAAUgpB,GAAO,OAAOtpB,OAAO4d,yBAAyBtC,EAAQgO,GAAK1P,UAAY,KAAK3Z,EAAKzD,KAAKL,MAAM8D,EAAMi4D,EAAU,CAAE,OAAOj4D,CAAM,CACpV,SAAS,GAAcka,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIwd,EAAS,MAAQpd,UAAUJ,GAAKI,UAAUJ,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQwE,OAAOgZ,IAAS,GAAIzW,SAAQ,SAAUlF,GAAO,GAAgB8c,EAAQ9c,EAAK2b,EAAO3b,GAAO,IAAK2C,OAAO8d,0BAA4B9d,OAAO+d,iBAAiB5D,EAAQna,OAAO8d,0BAA0B9E,IAAW,GAAQhZ,OAAOgZ,IAASzW,SAAQ,SAAUlF,GAAO2C,OAAO0d,eAAevD,EAAQ9c,EAAK2C,OAAO4d,yBAAyB5E,EAAQ3b,GAAO,GAAI,CAAE,OAAO8c,CAAQ,CACzf,SAAS,GAAgBK,EAAKnd,EAAK6B,GAA4L,OAAnL7B,EAC5C,SAAwB9C,GAAO,IAAI8C,EACnC,SAAsBg7D,GAAe,GAAuB,WAAnB,GAAQA,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIC,EAAOD,EAAMr6C,OAAOu6C,aAAc,QAAal+D,IAATi+D,EAAoB,CAAE,IAAIjmD,EAAMimD,EAAKt8D,KAAKq8D,EAAOG,UAAoB,GAAqB,WAAjB,GAAQnmD,GAAmB,OAAOA,EAAK,MAAM,IAAIpX,UAAU,+CAAiD,CAAE,OAA4Bge,OAAiBo/C,EAAQ,CADnV,CAAa99D,GAAgB,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM4b,OAAO5b,EAAM,CAD1E,CAAeA,MAAiBmd,EAAOxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAAE6B,MAAOA,EAAO0a,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBW,EAAInd,GAAO6B,EAAgBsb,CAAK,CAG3O,SAAS,GAAyBxB,EAAQyB,GAAY,GAAc,MAAVzB,EAAgB,MAAO,CAAC,EAAG,IAAkE3b,EAAK7B,EAAnE2e,EACzF,SAAuCnB,EAAQyB,GAAY,GAAc,MAAVzB,EAAgB,MAAO,CAAC,EAAG,IAA2D3b,EAAK7B,EAA5D2e,EAAS,CAAC,EAAOO,EAAa1a,OAAOC,KAAK+Y,GAAqB,IAAKxd,EAAI,EAAGA,EAAIkf,EAAW/e,OAAQH,IAAO6B,EAAMqd,EAAWlf,GAAQif,EAAS9Z,QAAQtD,IAAQ,IAAa8c,EAAO9c,GAAO2b,EAAO3b,IAAQ,OAAO8c,CAAQ,CADhN,CAA8BnB,EAAQyB,GAAuB,GAAIza,OAAO2d,sBAAuB,CAAE,IAAIq+C,EAAmBh8D,OAAO2d,sBAAsB3E,GAAS,IAAKxd,EAAI,EAAGA,EAAIwgE,EAAiBrgE,OAAQH,IAAO6B,EAAM2+D,EAAiBxgE,GAAQif,EAAS9Z,QAAQtD,IAAQ,GAAkB2C,OAAOpF,UAAU2pB,qBAAqBvoB,KAAKgd,EAAQ3b,KAAgB8c,EAAO9c,GAAO2b,EAAO3b,GAAQ,CAAE,OAAO8c,CAAQ,CAKpe,SAAS,GAAe28C,GAC7B,IAAIqC,EAAMrC,EAAKqC,IACbl6D,EAAY63D,EAAK73D,UACjBo6D,EAAavC,EAAKuC,WAClBuG,EAAQ,GAAyB9I,EAAM,IAIrClqD,EAFayoE,GADFne,GAAkBiC,EAAIsB,eAAgBx7D,IAAc,IAG5CiE,KAAI,SAAU29D,GAEnC,OAAOzG,GAAoB,GADfyG,EAAM3hE,OAC2B,KAAKgE,KAAI,SAAU+7D,GAC9D,IAAIrF,EAAgBqF,EAAMrF,cAE1B,OAAO,GAAc,GAAc,CAAC,EAD3B,GAAyBqF,EAAO,KACK,CAAC,EAAG,CAChDrF,eAAgBA,GAEpB,GACF,IACA,OAAO,GAAE6b,GAA2B,GAAS,CAAC,EAAG7V,EAAO,CACtDhzD,MAAOA,EACP2nE,WAAYlb,IAEhB,CCpCA,SAAS,GAAQ7+C,GAAkC,OAAO,GAAU,mBAAqBwD,QAAU,iBAAmBA,OAAOC,SAAW,SAAUzD,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqBwD,QAAUxD,EAAInW,cAAgB2Z,QAAUxD,IAAQwD,OAAOpjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAC/U,SAAS,GAAQc,EAAQ28C,GAAkB,IAAIh4D,EAAOD,OAAOC,KAAKqb,GAAS,GAAItb,OAAO2d,sBAAuB,CAAE,IAAIu6C,EAAUl4D,OAAO2d,sBAAsBrC,GAAS28C,IAAmBC,EAAUA,EAAQ53D,QAAO,SAAUgpB,GAAO,OAAOtpB,OAAO4d,yBAAyBtC,EAAQgO,GAAK1P,UAAY,KAAK3Z,EAAKzD,KAAKL,MAAM8D,EAAMi4D,EAAU,CAAE,OAAOj4D,CAAM,CACpV,SAAS,GAAcka,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIwd,EAAS,MAAQpd,UAAUJ,GAAKI,UAAUJ,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQwE,OAAOgZ,IAAS,GAAIzW,SAAQ,SAAUlF,GAAO,GAAgB8c,EAAQ9c,EAAK2b,EAAO3b,GAAO,IAAK2C,OAAO8d,0BAA4B9d,OAAO+d,iBAAiB5D,EAAQna,OAAO8d,0BAA0B9E,IAAW,GAAQhZ,OAAOgZ,IAASzW,SAAQ,SAAUlF,GAAO2C,OAAO0d,eAAevD,EAAQ9c,EAAK2C,OAAO4d,yBAAyB5E,EAAQ3b,GAAO,GAAI,CAAE,OAAO8c,CAAQ,CACzf,SAAS,GAAgBK,EAAKnd,EAAK6B,GAA4L,OAAnL7B,EAC5C,SAAwB9C,GAAO,IAAI8C,EACnC,SAAsBg7D,GAAe,GAAuB,WAAnB,GAAQA,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIC,EAAOD,EAAMr6C,OAAOu6C,aAAc,QAAal+D,IAATi+D,EAAoB,CAAE,IAAIjmD,EAAMimD,EAAKt8D,KAAKq8D,EAAOG,UAAoB,GAAqB,WAAjB,GAAQnmD,GAAmB,OAAOA,EAAK,MAAM,IAAIpX,UAAU,+CAAiD,CAAE,OAA4Bge,OAAiBo/C,EAAQ,CADnV,CAAa99D,GAAgB,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM4b,OAAO5b,EAAM,CAD1E,CAAeA,MAAiBmd,EAAOxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAAE6B,MAAOA,EAAO0a,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBW,EAAInd,GAAO6B,EAAgBsb,CAAK,CCH3O,SAAS,KAAiS,OAApR,GAAWxa,OAAO4vC,OAAS5vC,OAAO4vC,OAAO53B,OAAS,SAAUmC,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIwd,EAASpd,UAAUJ,GAAI,IAAK,IAAI6B,KAAO2b,EAAchZ,OAAOpF,UAAUwf,eAAepe,KAAKgd,EAAQ3b,KAAQ8c,EAAO9c,GAAO2b,EAAO3b,GAAU,CAAE,OAAO8c,CAAQ,EAAU,GAAShe,MAAMjC,KAAM0B,UAAY,CAClV,SAAS,GAAQ4e,GAAkC,OAAO,GAAU,mBAAqBwD,QAAU,iBAAmBA,OAAOC,SAAW,SAAUzD,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqBwD,QAAUxD,EAAInW,cAAgB2Z,QAAUxD,IAAQwD,OAAOpjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAE/U,SAAS,GAAkBL,EAAQylD,GAAS,IAAK,IAAIpkE,EAAI,EAAGA,EAAIokE,EAAMjkE,OAAQH,IAAK,CAAE,IAAI+7C,EAAaqoB,EAAMpkE,GAAI+7C,EAAW39B,WAAa29B,EAAW39B,aAAc,EAAO29B,EAAWz9B,cAAe,EAAU,UAAWy9B,IAAYA,EAAW19B,UAAW,GAAM7Z,OAAO0d,eAAevD,EAAQ,GAAeo9B,EAAWl6C,KAAMk6C,EAAa,CAAE,CAG5U,SAAS,GAAgB15B,EAAGsE,GAA6I,OAAxI,GAAkBniB,OAAO8oE,eAAiB9oE,OAAO8oE,eAAe9wD,OAAS,SAAyB6F,EAAGsE,GAAsB,OAAjBtE,EAAEkrD,UAAY5mD,EAAUtE,CAAG,EAAU,GAAgBA,EAAGsE,EAAI,CAKvM,SAAS,GAAgBtE,GAA+J,OAA1J,GAAkB7d,OAAO8oE,eAAiB9oE,OAAO65C,eAAe7hC,OAAS,SAAyB6F,GAAK,OAAOA,EAAEkrD,WAAa/oE,OAAO65C,eAAeh8B,EAAI,EAAU,GAAgBA,EAAI,CAEnN,SAAS,GAAetjB,GAAO,IAAI8C,EACnC,SAAsBg7D,GAAe,GAAuB,WAAnB,GAAQA,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIC,EAAOD,EAAMr6C,OAAOu6C,aAAc,QAAal+D,IAATi+D,EAAoB,CAAE,IAAIjmD,EAAMimD,EAAKt8D,KAAKq8D,EAAOG,UAAoB,GAAqB,WAAjB,GAAQnmD,GAAmB,OAAOA,EAAK,MAAM,IAAIpX,UAAU,+CAAiD,CAAE,OAA4Bge,OAAiBo/C,EAAQ,CADnV,CAAa99D,GAAgB,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM4b,OAAO5b,EAAM,CAK5H,IAQI0sB,GAAwB,SAAU2rD,IArBtC,SAAmBpM,EAAUC,GAAc,GAA0B,mBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAItuE,UAAU,sDAAyDquE,EAAS1uE,UAAYoF,OAAO2Z,OAAO4vD,GAAcA,EAAW3uE,UAAW,CAAEyJ,YAAa,CAAEnF,MAAOoqE,EAAUzvD,UAAU,EAAMC,cAAc,KAAW9Z,OAAO0d,eAAe4rD,EAAU,YAAa,CAAEzvD,UAAU,IAAc0vD,GAAY,GAAgBD,EAAUC,EAAa,CAsBjc,CAAUx/C,EAAU2rD,GACpB,IAxBoBpV,EAAaS,EAGb0I,EAAeC,EAqB/BC,GArBgBF,EAqBM1/C,EArBS2/C,EAGrC,WAAuC,GAAuB,oBAAZpyB,UAA4BA,QAAQsyB,UAAW,OAAO,EAAO,GAAItyB,QAAQsyB,UAAUC,KAAM,OAAO,EAAO,GAAqB,mBAAV/yB,MAAsB,OAAO,EAAM,IAAsF,OAAhFr2C,QAAQ7F,UAAUkvE,QAAQ9tE,KAAKs7C,QAAQsyB,UAAUnpE,QAAS,IAAI,WAAa,MAAY,CAAM,CAAE,MAAO2T,GAAK,OAAO,CAAO,CAAE,CAHvQ,GAAoC,WAAkC,IAAsC/F,EAAlC27D,EAAQ,GAAgBP,GAAkB,GAAIC,EAA2B,CAAE,IAAIO,EAAY,GAAgB/vE,MAAMmK,YAAagK,EAASipC,QAAQsyB,UAAUI,EAAOpuE,UAAWquE,EAAY,MAAS57D,EAAS27D,EAAM7tE,MAAMjC,KAAM0B,WAAc,OACpX,SAAoC0G,EAAMtG,GAAQ,GAAIA,IAA2B,WAAlB,GAAQA,IAAsC,mBAATA,GAAwB,OAAOA,EAAa,QAAa,IAATA,EAAmB,MAAM,IAAIf,UAAU,4DAA+D,OAC1P,SAAgCqH,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAI2mE,eAAe,6DAAgE,OAAO3mE,CAAM,CAD4F,CAAuBA,EAAO,CAD4F,CAA2BpI,KAAMmU,EAAS,GAsBna,SAAS0b,IAEP,OA7BJ,SAAyBtmB,EAAU68D,GAAe,KAAM78D,aAAoB68D,GAAgB,MAAM,IAAIrlE,UAAU,oCAAwC,CA4BpJ,CAAgBf,KAAM6vB,GACf4/C,EAAOxtE,MAAMjC,KAAM0B,UAC5B,CA2CA,OAvEoB0kE,EA6BPv2C,GA7BoBg3C,EA6BV,CAAC,CACtB1jE,IAAK,wBACL6B,MAAO,SAA+By2E,GACpC,OAAQna,GAAQthE,KAAK0lE,MAAMzzD,KAAMwpE,EAAUxpE,OAASjS,KAAK0lE,MAAMgW,cAAgBD,EAAUC,cAAgBpa,GAAQthE,KAAK0lE,MAAMiW,UAAWF,EAAUE,UACnJ,GACC,CACDx4E,IAAK,SACL6B,MAAO,WACL,IAOI42E,EAAc57E,KAAK0lE,MAAMmW,YAEzB1K,EAD0BnxE,KAAK0lE,MAAMoW,wBAAwB97E,KAAK0lE,MAAMgW,aAC7B17E,KAAK0lE,MAAMlC,gBAAgB2N,eAAiB,CAAC,EACxFn3D,EDtBH,SAAwB4iD,GAC7B,IAAImf,EAAYnf,EAAKmf,UACnBL,EAAc9e,EAAK8e,YACnBvK,EAAiBvU,EAAKuU,eACtBD,EAAUtU,EAAKsU,QACfj/D,EAAO2qD,EAAK3qD,KACZ+pE,EAAYpf,EAAKof,UACjBC,EAAYrf,EAAKqf,UACfrsD,EAAWmsD,EAAUL,GACzB,GAAwB,iBAAb9rD,GAA6C,mBAAbA,EACzC,MAAM,IAAIjuB,MAAM,iDAAiDyD,OAAO,GAAQwqB,GAAW,YAAYxqB,OAAOs2E,EAAa,MAE7H,GAAwB,mBAAb9rD,EAAyB,CAElC,IAAIroB,EAASy0E,GAAa,CAAC,EAY3B,OAXAz0E,EAAO20E,KAAO,GACd30E,EAAO00E,UAAYA,EACnB10E,EAAO40E,WAAa,CAClBlB,UAAW,GACXG,iBAAkB,GAClBE,QAAS,GACTC,eAAgB,IAKX3rD,EAAS3d,EAAM1K,EACxB,CACA,IAAI60E,EA5CN,WACE,IAAIlL,EAAUxvE,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/EyvE,EAAiBzvE,UAAUD,OAAS,EAAIC,UAAU,QAAKvB,EACvD8R,EAAOvQ,UAAUD,OAAS,EAAIC,UAAU,QAAKvB,EACjD,OAAO2F,OAAOC,KAAKmrE,GAASlrE,QAAO,SAAU6J,EAAKwsE,GAChD,OAAO,GAAc,GAAc,CAAC,EAAGxsE,GAAM,CAAC,EAAG,GAAgB,CAAC,EAAGwsE,GAAW,WAC9E,IAAIxW,EAAQ7lE,KACZ,OAAO,SAAUmsB,GAIf,OAAO+kD,EAAQmL,GAAWv6E,KAAKmQ,EAAMka,GAHxB,SAAgBnnB,GAC3B,OAAOs3E,GAAM5rD,QAAQ1rB,EAAOmsE,GAAgB7/C,OAAOu0C,EACrD,GAEF,CACF,IACF,GAAG,CAAC,EACN,CA6B2B0W,CAAwBrL,EAASC,EAAgBl/D,GAC1E,OAAOqqE,GAAM5rD,QAAQd,EAAUuhD,GAAgB7/C,OAAO,GAAc,GAAc,CAAC,EAAGrf,GAAO,CAAC,EAAG,CAC/Fi/D,QAASkL,KACPrmE,QAAQ,qBAAqB,SAAUymE,GACzC,OAAOA,EAAOzmE,QAAQ,qBAAsB,MAC9C,IAAGlF,MACL,CCZoB4rE,CAAe,CAC3BV,UAAW/7E,KAAK0lE,MAAMqW,UACtBL,YAAa17E,KAAK0lE,MAAMgW,YACxBvK,eAAgBA,EAChBD,QAASlxE,KAAK0lE,MAAMlC,gBAAgB0N,QACpCj/D,KAAMjS,KAAK0lE,MAAMzzD,KACjB+pE,UAAWh8E,KAAK0lE,MAAMsW,UACtBC,UAAWj8E,KAAK0lE,MAAMuW,YAExB,OAAgB,OAAZjiE,EAGK,KAEgB,WAArB,GAAQA,GACH,GAAE4hE,EAAa57E,KAAK0lE,MAAMiW,UAAW3hE,GAEvC,GAAE4hE,EAAa,GAAS,CAAC,EAAG57E,KAAK0lE,MAAMiW,UAAW,CACvDpC,wBAAyB,CACvBC,OAAQx/D,KAGd,MArE0E,GAAkBosD,EAAY1lE,UAAWmmE,GAA2E/gE,OAAO0d,eAAe4iD,EAAa,YAAa,CAAEzmD,UAAU,IAuErPkQ,CACT,CAlD4B,CAkD1B,KAhEF,SAAyBvP,EAAKnd,EAAK6B,IAAS7B,EAAM,GAAeA,MAAiBmd,EAAOxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAAE6B,MAAOA,EAAO0a,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBW,EAAInd,GAAO6B,CAAqB,CAiE3O,CAAgB6qB,GAAU,eA3DP,CACjB5d,KAAM,CAAC,EACP4pE,YAAa,MACbC,wBAAyB,CAAC,EAC1BC,UAAW,CAAC,EACZvY,gBAAiB,CAAC,IAuDpB,UC9EA,SAAS,GAAQljD,GAAkC,OAAO,GAAU,mBAAqBwD,QAAU,iBAAmBA,OAAOC,SAAW,SAAUzD,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqBwD,QAAUxD,EAAInW,cAAgB2Z,QAAUxD,IAAQwD,OAAOpjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAC/U,SAAS,GAAQc,EAAQ28C,GAAkB,IAAIh4D,EAAOD,OAAOC,KAAKqb,GAAS,GAAItb,OAAO2d,sBAAuB,CAAE,IAAIu6C,EAAUl4D,OAAO2d,sBAAsBrC,GAAS28C,IAAmBC,EAAUA,EAAQ53D,QAAO,SAAUgpB,GAAO,OAAOtpB,OAAO4d,yBAAyBtC,EAAQgO,GAAK1P,UAAY,KAAK3Z,EAAKzD,KAAKL,MAAM8D,EAAMi4D,EAAU,CAAE,OAAOj4D,CAAM,CACpV,SAAS,GAAcka,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIwd,EAAS,MAAQpd,UAAUJ,GAAKI,UAAUJ,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQwE,OAAOgZ,IAAS,GAAIzW,SAAQ,SAAUlF,GAAO,GAAgB8c,EAAQ9c,EAAK2b,EAAO3b,GAAO,IAAK2C,OAAO8d,0BAA4B9d,OAAO+d,iBAAiB5D,EAAQna,OAAO8d,0BAA0B9E,IAAW,GAAQhZ,OAAOgZ,IAASzW,SAAQ,SAAUlF,GAAO2C,OAAO0d,eAAevD,EAAQ9c,EAAK2C,OAAO4d,yBAAyB5E,EAAQ3b,GAAO,GAAI,CAAE,OAAO8c,CAAQ,CACzf,SAAS,GAAgBK,EAAKnd,EAAK6B,GAA4L,OAAnL7B,EAC5C,SAAwB9C,GAAO,IAAI8C,EACnC,SAAsBg7D,GAAe,GAAuB,WAAnB,GAAQA,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIC,EAAOD,EAAMr6C,OAAOu6C,aAAc,QAAal+D,IAATi+D,EAAoB,CAAE,IAAIjmD,EAAMimD,EAAKt8D,KAAKq8D,EAAOG,UAAoB,GAAqB,WAAjB,GAAQnmD,GAAmB,OAAOA,EAAK,MAAM,IAAIpX,UAAU,+CAAiD,CAAE,OAA4Bge,OAAiBo/C,EAAQ,CADnV,CAAa99D,GAAgB,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM4b,OAAO5b,EAAM,CAD1E,CAAeA,MAAiBmd,EAAOxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAAE6B,MAAOA,EAAO0a,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBW,EAAInd,GAAO6B,EAAgBsb,CAAK,CAG3O,SAAS,KAAiS,OAApR,GAAWxa,OAAO4vC,OAAS5vC,OAAO4vC,OAAO53B,OAAS,SAAUmC,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIwd,EAASpd,UAAUJ,GAAI,IAAK,IAAI6B,KAAO2b,EAAchZ,OAAOpF,UAAUwf,eAAepe,KAAKgd,EAAQ3b,KAAQ8c,EAAO9c,GAAO2b,EAAO3b,GAAU,CAAE,OAAO8c,CAAQ,EAAU,GAAShe,MAAMjC,KAAM0B,UAAY,CAMnU,SAASg7E,GAAK9f,GAC3B,IAAI3pD,EAAU2pD,EAAK3pD,QACjBqjE,EAAO1Z,EAAK0Z,KACZrI,EAAWrR,EAAKqR,SAChB+N,EAAYpf,EAAKof,UACjBC,EAAYrf,EAAKqf,UACjB9c,EAAavC,EAAKuC,WAClBwd,EAAgB/f,EAAK+f,cACnBC,EnBjBkC,SAAoChgB,GAC1E,IAAIqR,EAAWrR,EAAKqR,SAClBgO,EAAYrf,EAAKqf,UACnB,OAAO,SAAU39D,GAEf,IAAIu+D,EAA2B/C,GAAmBx7D,EAAM2B,OAAQ3B,EAAMw+D,eAAe,SAAUhkC,GAC7F,OAAOA,EAAQ7gB,aAAa,sBAC9B,IACI4kD,GA6BR,SAA4B/jC,GAC1B,IAAIgoB,EAAoBhoB,EAAQpe,aAAa,uBAC7C,GAAiC,iBAAtBomC,EACT,MAAM,IAAIn/D,MAAM,6FAElB,IACE,OAAOg/D,GAAmBG,EAC5B,CAAE,MAAOt/D,GACP,MAAM,IAAIG,MAAM,qEAClB,CACF,CAtCoBo7E,CAAmBF,GACzBx0E,SAAQ,SAAU20E,GACxB,OAAOf,EAAUe,EACnB,IAIF,IAAIC,EAA0BnD,GAAmBx7D,EAAM2B,OAAQ3B,EAAMw+D,eAAe,SAAUhkC,GAC5F,OAAOA,EAAQ7gB,aAAa,yBAA2B6gB,EAAQ7gB,aAAa,wBAC9E,IACA,GAAIglD,EAAyB,CAC3B,IAAIC,EjCpBH,SAA4BC,GACjC,IAAIj2D,EAASi2D,EAAWziD,aAAa,wBACjComC,EAAoBqc,EAAWziD,aAAa,yBAChD,GAAiC,iBAAtBomC,EACT,MAAM,IAAIn/D,MAAM,2FAElB,IAEE,MAAO,CACLulB,OAAQA,EACRu5C,QAHYE,GAAmBG,GAKnC,CAAE,MAAOt/D,GACP,MAAM,IAAIG,MAAM,mEAClB,CACF,CiCKgCy7E,CAAmBH,GAC3C/1D,EAASg2D,EAAoBh2D,OAC7Bm2D,EAAWH,EAAoBzc,QACjCwN,EAAS/mD,EAAQm2D,EACnB,CACF,CACF,CmBT4BC,CAA2B,CACnDrP,SAAUA,EACVgO,UAAWA,IAEb,OAA4B,IAAxBhpE,EAAQqjE,KAAK70E,OACR,GAAE,GAAU,GAAS,CAAC,EAAGk7E,EAAe,CAC7CjB,YAAa,QACbC,UAAW,CACTpc,UAAW1sC,GAAGssC,EAAW3pD,KAAM2pD,EAAWoe,WAC1CC,QAASZ,GAEX3qE,KAAMgB,KAGH,GAAE,MAAO,CACdssD,UAAWJ,EAAW3pD,MACrB,GAAE,KAAM,CACT+pD,UAAWJ,EAAWp8D,MACrBuzE,EAAKttE,KAAI,SAAUi2D,EAAKr7D,GACzB,OAAO,GAAE,GAAU,GAAS,CAAC,EAAG+4E,EAAe,CAC7CjB,YAAa,OACbG,YAAa,KACbF,UAAW,CACTpc,UAAWJ,EAAWhpD,KACtBqnE,QAAS,SAAiBl/D,GACxBs+D,EAAoBt+D,GACpB29D,EAAU,iBAAkBhd,EAAK,cACnC,EACAwe,WAAY,SAAoBn/D,GAC9Bs+D,EAAoBt+D,GACpB29D,EAAU,iBAAkBhd,EAAK,cACnC,GAEF97D,IAAK87D,EAAImP,SACTn8D,KAAM,GAAc,GAAc,CAAC,EAAGgtD,GAAM,CAAC,EAAG,CAC9C,cAAIye,GAEF,OAAO95E,CACT,IAEFo4E,UAAWA,EACXC,UAAWA,IAEf,KACF,CC/DO,SAAS0B,GAAeC,EAAWC,GACxC,QAAkB19E,IAAdy9E,GAAgD,mBAAdA,EACpC,MAAM,IAAIj8E,MAAM,mDAAmDyD,QCHzCgc,EDG8Dw8D,ECFnF93E,OAAOpF,UAAUoQ,SAAShP,KAAKsf,GAAQpf,MAAM,GAAI,IDE8C,UAAUoD,OAAOy4E,ICHlH,IAAuBz8D,CDK9B,CEFA,SAAS,GAAkB6yB,EAAK7yC,IAAkB,MAAPA,GAAeA,EAAM6yC,EAAIxyC,UAAQL,EAAM6yC,EAAIxyC,QAAQ,IAAK,IAAIH,EAAI,EAAGwe,EAAO,IAAI/d,MAAMX,GAAME,EAAIF,EAAKE,IAAKwe,EAAKxe,GAAK2yC,EAAI3yC,GAAI,OAAOwe,CAAM,CAGlL,SAAS,GAAQQ,GAAkC,OAAO,GAAU,mBAAqBwD,QAAU,iBAAmBA,OAAOC,SAAW,SAAUzD,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqBwD,QAAUxD,EAAInW,cAAgB2Z,QAAUxD,IAAQwD,OAAOpjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAUxU,SAASw9D,GAA2BlhB,GACzC,IAAIh5D,EAAQg5D,EAAKh5D,MACf6gE,EAAa7H,EAAK6H,WAElBpjE,GADau7D,EAAKmhB,WACXnhB,EAAKv7D,MACZ+hE,EAAwBxG,EAAKwG,sBAE/B,GAAoB,IAAhB/hE,EAAKI,QAAqC,WAArB,GAAQJ,EAAK,IACpC,MAAO,CAACA,EAAK,IAEf,IA1BsB4yC,EAAK3yC,EA2BzB08E,GA3BoB/pC,EA0BF5yC,EAAK,GAAGsP,MAAM,KA1BPrP,EA2BsB,EAtBnD,SAAyB2yC,GAAO,GAAIlyC,MAAMoF,QAAQ8sC,GAAM,OAAOA,CAAK,CAL3B,CAAgBA,IAIzD,SAA+BA,EAAK3yC,GAAK,IAAImgE,EAAK,MAAQxtB,EAAM,KAAO,oBAAsBnwB,QAAUmwB,EAAInwB,OAAOC,WAAakwB,EAAI,cAAe,GAAI,MAAQwtB,EAAI,CAAE,IAAIU,EAAIrgC,EAAIsgC,EAAI7xB,EAAI8xB,EAAO,GAAIC,GAAK,EAAIC,GAAK,EAAI,IAAM,GAAIH,GAAMX,EAAKA,EAAG3/D,KAAKmyC,IAAMhwB,KAAM,IAAM3iB,EAAG,CAAE,GAAIwE,OAAO27D,KAAQA,EAAI,OAAQa,GAAK,CAAI,MAAO,OAASA,GAAMH,EAAKC,EAAGtgE,KAAK2/D,IAAKv9C,QAAUm+C,EAAK//D,KAAK6/D,EAAGn9D,OAAQq9D,EAAK5gE,SAAWH,GAAIghE,GAAK,GAAK,CAAE,MAAO1gE,GAAO2gE,GAAK,EAAIzgC,EAAKlgC,CAAK,CAAE,QAAU,IAAM,IAAK0gE,GAAM,MAAQb,EAAGt9C,SAAWosB,EAAKkxB,EAAGt9C,SAAUre,OAAOyqC,KAAQA,GAAK,MAAQ,CAAE,QAAU,GAAIgyB,EAAI,MAAMzgC,CAAI,CAAE,CAAE,OAAOugC,CAAM,CAAE,CAJ1gB,CAAsBpuB,EAAK3yC,IAE5F,SAAqCqiB,EAAGg/C,GAAU,GAAKh/C,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGg/C,GAAS,IAAI9hE,EAAIiF,OAAOpF,UAAUoQ,SAAShP,KAAK6hB,GAAG3hB,MAAM,GAAI,GAAiE,MAAnD,WAANnB,GAAkB8iB,EAAExZ,cAAatJ,EAAI8iB,EAAExZ,YAAYP,MAAgB,QAAN/I,GAAqB,QAANA,EAAoBkB,MAAMqiB,KAAKT,GAAc,cAAN9iB,GAAqB,2CAA2C0iB,KAAK1iB,GAAW,GAAkB8iB,EAAGg/C,QAAzG,CAA7O,CAA+V,CAF7T,CAA4B1uB,EAAK3yC,IACnI,WAA8B,MAAM,IAAIP,UAAU,4IAA8I,CADvD,IA4BrIk9E,EAAYD,EAAe,GAC3B9I,EAAgB8I,EAAe,GAC7B1H,EAAOj1E,EAAK,GACZi1D,EAAYj1D,EAAK,GACrB,IAAKi1E,EAID,MAAO,GAGX,IAAmB,UAAd2H,GAAuC,eAAdA,KAAgC3nB,EAI1D,MAAO,GAGX,IAAI4nB,EAAYn8E,MAAMoF,QAAQmvE,GAAQA,EAAO,CAACA,GAC9C,GAAyB,IAArB4H,EAAUz8E,OACZ,MAAO,GAET,IAAI08E,EAAUD,EAAU,GAAGE,UACvBC,EA3CN,SAAepqC,GAGb,IAFA,IAAIqqC,EAAY58E,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,GAAmBA,UAAU,GAAK,GAChF68E,EAAS,GACJj9E,EAAI,EAAGA,EAAIqkB,KAAK64D,KAAKvqC,EAAIxyC,OAAS68E,GAAYh9E,IACrDi9E,EAAOj8E,KAAK2xC,EAAIjyC,MAAMV,EAAIg9E,GAAYh9E,EAAI,GAAKg9E,IAEjD,OAAOC,CACT,CAoCmBE,CAAMP,GACnBQ,EAAmBL,EAAWr1E,KAAI,SAAU21E,GAC9C,OAAOA,EAAM31E,KAAI,SAAUi2D,GACzB,OAAOA,EAAImP,QACb,GACF,IACIwQ,EAAmBP,EAAWr1E,KAAI,SAAU21E,GAC9C,OAAOA,EAAM31E,KAAI,SAAUi2D,GACzB,OAAOA,EAAI4f,UACb,GACF,IACA,MAAkB,SAAdZ,EACmC,SAAjC7a,EAAsB38C,OACjB,GAEF43D,EAAWr1E,KAAI,SAAU21E,EAAOr9E,GACrC,MAAO,CACL0zE,eAAgB,kBAChBvQ,WAAYA,EACZwZ,UAAWA,EACXxd,QAAS,CACPnK,UAAWA,GAAa,cACxB1yD,MAAOA,EACPuqE,UAAWuQ,EAAiBp9E,IAE9Bg1E,KAAMqI,EACNzJ,cAAeA,EAEnB,IACuB,UAAd+I,EACFI,EAAWr1E,KAAI,SAAU21E,EAAOr9E,GACrC,MAAO,CACL0zE,eAAgB,8BAChBvQ,WAAYA,EACZwZ,UAAWA,EACXxd,QAAS,CACPnK,UAAWA,GAAa,cACxB1yD,MAAOA,EACPu6E,QAASA,EACThQ,UAAWuQ,EAAiBp9E,GAC5Bw9E,UAAWF,EAAiBt9E,IAE9Bg1E,KAAMqI,EACNzJ,cAAeA,EAEnB,IACuB,eAAd+I,EACFI,EAAWr1E,KAAI,SAAU21E,EAAOr9E,GACrC,MAAO,CACL0zE,eAAgB,gCAChBvQ,WAAYA,EACZwZ,UAAWA,EACXxd,QAAS,CACPnK,UAAWA,GAAa,gBACxB1yD,MAAOA,EACPu6E,QAASA,EACThQ,UAAWuQ,EAAiBp9E,IAE9Bg1E,KAAMqI,EACNzJ,cAAeA,EAEnB,IAIO,EAEX,CCtHA,SAAS,GAAQ50D,GAAkC,OAAO,GAAU,mBAAqBwD,QAAU,iBAAmBA,OAAOC,SAAW,SAAUzD,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqBwD,QAAUxD,EAAInW,cAAgB2Z,QAAUxD,IAAQwD,OAAOpjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAC/U,SAAS,GAAQc,EAAQ28C,GAAkB,IAAIh4D,EAAOD,OAAOC,KAAKqb,GAAS,GAAItb,OAAO2d,sBAAuB,CAAE,IAAIu6C,EAAUl4D,OAAO2d,sBAAsBrC,GAAS28C,IAAmBC,EAAUA,EAAQ53D,QAAO,SAAUgpB,GAAO,OAAOtpB,OAAO4d,yBAAyBtC,EAAQgO,GAAK1P,UAAY,KAAK3Z,EAAKzD,KAAKL,MAAM8D,EAAMi4D,EAAU,CAAE,OAAOj4D,CAAM,CACpV,SAAS,GAAcka,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIwd,EAAS,MAAQpd,UAAUJ,GAAKI,UAAUJ,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQwE,OAAOgZ,IAAS,GAAIzW,SAAQ,SAAUlF,GAAO,GAAgB8c,EAAQ9c,EAAK2b,EAAO3b,GAAO,IAAK2C,OAAO8d,0BAA4B9d,OAAO+d,iBAAiB5D,EAAQna,OAAO8d,0BAA0B9E,IAAW,GAAQhZ,OAAOgZ,IAASzW,SAAQ,SAAUlF,GAAO2C,OAAO0d,eAAevD,EAAQ9c,EAAK2C,OAAO4d,yBAAyB5E,EAAQ3b,GAAO,GAAI,CAAE,OAAO8c,CAAQ,CACzf,SAAS,GAAgBK,EAAKnd,EAAK6B,GAA4L,OAAnL7B,EAC5C,SAAwB9C,GAAO,IAAI8C,EACnC,SAAsBg7D,GAAe,GAAuB,WAAnB,GAAQA,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIC,EAAOD,EAAMr6C,OAAOu6C,aAAc,QAAal+D,IAATi+D,EAAoB,CAAE,IAAIjmD,EAAMimD,EAAKt8D,KAAKq8D,EAAOG,UAAoB,GAAqB,WAAjB,GAAQnmD,GAAmB,OAAOA,EAAK,MAAM,IAAIpX,UAAU,+CAAiD,CAAE,OAA4Bge,OAAiBo/C,EAAQ,CADnV,CAAa99D,GAAgB,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM4b,OAAO5b,EAAM,CAD1E,CAAeA,MAAiBmd,EAAOxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAAE6B,MAAOA,EAAO0a,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBW,EAAInd,GAAO6B,EAAgBsb,CAAK,CCH3O,SAAS,GAAQA,GAAkC,OAAO,GAAU,mBAAqBwD,QAAU,iBAAmBA,OAAOC,SAAW,SAAUzD,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqBwD,QAAUxD,EAAInW,cAAgB2Z,QAAUxD,IAAQwD,OAAOpjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAC/U,SAAS,GAAQc,EAAQ28C,GAAkB,IAAIh4D,EAAOD,OAAOC,KAAKqb,GAAS,GAAItb,OAAO2d,sBAAuB,CAAE,IAAIu6C,EAAUl4D,OAAO2d,sBAAsBrC,GAAS28C,IAAmBC,EAAUA,EAAQ53D,QAAO,SAAUgpB,GAAO,OAAOtpB,OAAO4d,yBAAyBtC,EAAQgO,GAAK1P,UAAY,KAAK3Z,EAAKzD,KAAKL,MAAM8D,EAAMi4D,EAAU,CAAE,OAAOj4D,CAAM,CACpV,SAAS,GAAcka,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIwd,EAAS,MAAQpd,UAAUJ,GAAKI,UAAUJ,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQwE,OAAOgZ,IAAS,GAAIzW,SAAQ,SAAUlF,GAAO,GAAgB8c,EAAQ9c,EAAK2b,EAAO3b,GAAO,IAAK2C,OAAO8d,0BAA4B9d,OAAO+d,iBAAiB5D,EAAQna,OAAO8d,0BAA0B9E,IAAW,GAAQhZ,OAAOgZ,IAASzW,SAAQ,SAAUlF,GAAO2C,OAAO0d,eAAevD,EAAQ9c,EAAK2C,OAAO4d,yBAAyB5E,EAAQ3b,GAAO,GAAI,CAAE,OAAO8c,CAAQ,CACzf,SAAS,GAAgBK,EAAKnd,EAAK6B,GAA4L,OAAnL7B,EAC5C,SAAwB9C,GAAO,IAAI8C,EACnC,SAAsBg7D,GAAe,GAAuB,WAAnB,GAAQA,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIC,EAAOD,EAAMr6C,OAAOu6C,aAAc,QAAal+D,IAATi+D,EAAoB,CAAE,IAAIjmD,EAAMimD,EAAKt8D,KAAKq8D,EAAOG,UAAoB,GAAqB,WAAjB,GAAQnmD,GAAmB,OAAOA,EAAK,MAAM,IAAIpX,UAAU,+CAAiD,CAAE,OAA4Bge,OAAiBo/C,EAAQ,CADnV,CAAa99D,GAAgB,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM4b,OAAO5b,EAAM,CAD1E,CAAeA,MAAiBmd,EAAOxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAAE6B,MAAOA,EAAO0a,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBW,EAAInd,GAAO6B,EAAgBsb,CAAK,CCH3O,SAAS,GAAQA,GAAkC,OAAO,GAAU,mBAAqBwD,QAAU,iBAAmBA,OAAOC,SAAW,SAAUzD,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqBwD,QAAUxD,EAAInW,cAAgB2Z,QAAUxD,IAAQwD,OAAOpjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAC/U,SAAS,GAAQc,EAAQ28C,GAAkB,IAAIh4D,EAAOD,OAAOC,KAAKqb,GAAS,GAAItb,OAAO2d,sBAAuB,CAAE,IAAIu6C,EAAUl4D,OAAO2d,sBAAsBrC,GAAS28C,IAAmBC,EAAUA,EAAQ53D,QAAO,SAAUgpB,GAAO,OAAOtpB,OAAO4d,yBAAyBtC,EAAQgO,GAAK1P,UAAY,KAAK3Z,EAAKzD,KAAKL,MAAM8D,EAAMi4D,EAAU,CAAE,OAAOj4D,CAAM,CACpV,SAAS,GAAcka,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIwd,EAAS,MAAQpd,UAAUJ,GAAKI,UAAUJ,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQwE,OAAOgZ,IAAS,GAAIzW,SAAQ,SAAUlF,GAAO,GAAgB8c,EAAQ9c,EAAK2b,EAAO3b,GAAO,IAAK2C,OAAO8d,0BAA4B9d,OAAO+d,iBAAiB5D,EAAQna,OAAO8d,0BAA0B9E,IAAW,GAAQhZ,OAAOgZ,IAASzW,SAAQ,SAAUlF,GAAO2C,OAAO0d,eAAevD,EAAQ9c,EAAK2C,OAAO4d,yBAAyB5E,EAAQ3b,GAAO,GAAI,CAAE,OAAO8c,CAAQ,CACzf,SAAS,GAAgBK,EAAKnd,EAAK6B,GAA4L,OAAnL7B,EAC5C,SAAwB9C,GAAO,IAAI8C,EACnC,SAAsBg7D,GAAe,GAAuB,WAAnB,GAAQA,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIC,EAAOD,EAAMr6C,OAAOu6C,aAAc,QAAal+D,IAATi+D,EAAoB,CAAE,IAAIjmD,EAAMimD,EAAKt8D,KAAKq8D,EAAOG,UAAoB,GAAqB,WAAjB,GAAQnmD,GAAmB,OAAOA,EAAK,MAAM,IAAIpX,UAAU,+CAAiD,CAAE,OAA4Bge,OAAiBo/C,EAAQ,CADnV,CAAa99D,GAAgB,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM4b,OAAO5b,EAAM,CAD1E,CAAeA,MAAiBmd,EAAOxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAAE6B,MAAOA,EAAO0a,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBW,EAAInd,GAAO6B,EAAgBsb,CAAK,CAI3O,IAAI,GAAYwnD,GAAoC,CAClDl+D,KAAM,OACNu+D,WAAW,IAgGb,GA9FkB,SAAqBuO,GACrC,IAAIC,EAAYj1E,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,GAAmBA,UAAU,GAAK,GAEpF,OADAi8E,GAAejH,EAAU,MAClB,SAAUpS,GACf,IAOI2X,EACAD,EARApf,EAAO0H,GAAgB,CAAC,EAC1Bya,EAAkBniB,EAAKoiB,WACvBA,OAAiC,IAApBD,GAAoCA,EACjDE,EAAsBriB,EAAKsiB,eAC3BA,OAAyC,IAAxBD,EAAiC,SAAUrwD,GAC1D,OAAOA,CACT,EAAIqwD,EAGN,MAAO,CACLza,OAAQ,WACRn0B,KAAM,SAAc6zB,GAClBwS,EAAS,GAAc,GAAc,CAAC,EAAG12E,KAAKukE,qBAAqBL,IAAe,CAAC,EAAG,CACpFd,sBAAuBc,EAAYd,yBACjC,EACN,EACA9xC,OAAQ,SAAgBulD,GACtB,IAAItT,EAAcvjE,KAAKukE,qBAAqBsS,GAC5CH,EAAS,GAAc,GAAc,CAAC,EAAGnT,GAAc,CAAC,EAAG,CACzDH,sBAAuByT,EAAczT,yBACnC,GACJG,EAAY0Y,UAAU,gBAAiB1Y,EAAY+S,KACrD,EACArK,eAAgB,SAAwB1I,EAAasT,GACnD,OAAO,GAAc,GAAc,CAAC,EAAGtT,GAAc,CAAC,EAAG,CACvD+S,KAAMt2E,KAAKukE,qBAAqBsS,IAEpC,EACAtS,qBAAsB,SAA8BoC,GAClD,IpERmB2P,EoEQfrjE,EAAU0zD,EAAM1zD,QAClBwK,EAASkpD,EAAMlpD,OACf2lD,EAAwBuD,EAAMvD,sBAehC,GAdK6Y,IACHA,EHuEH,SAAgCtV,GACrC,IAAIvD,EAAwBuD,EAAMvD,sBAChCx/D,EAAQ+iE,EAAM/iE,MACd6gE,EAAakC,EAAMlC,WACjB0a,EAAa,CAAC,EACdC,OAAQj/E,EAwBZ,OAvBuB,WACrB,IAAK,IAAI4nE,EAAOrmE,UAAUD,OAAQJ,EAAO,IAAIU,MAAMgmE,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E3mE,EAAK2mE,GAAQtmE,UAAUsmE,GAEV8V,GAA2B,CACxCrZ,WAAYA,EACZ7gE,MAAOA,EACPm6E,WAAY,YACZ18E,KAAMA,EACN+hE,sBAAuBA,IAEhB/6D,SAAQ,SAAUo4D,GACC,UAAtBA,EAAQwd,WAAmD,aAA1Bxd,EAAQyU,eAAgCiK,EAAW1e,EAAQwd,aAGhGkB,EAAW1e,EAAQwd,YAAa,EAChC7a,EAAsBkO,oBAAoB7Q,GAC5C,IACAv1C,aAAak0D,GACbA,EAAQv0D,YAAW,WACjBs0D,EAAa,CAAC,CAChB,GAAG,EACL,CAEF,CGrGsBE,CAAuB,CACjCjc,sBAAuBA,EACvBx/D,MAAO6Z,EAAOP,WACdunD,WAAYzkE,KAAKwkE,UAGhBwX,IACHA,EH+FH,SAAgCjX,GACrC,IAAInhE,EAAQmhE,EAAMnhE,MAChB6gE,EAAaM,EAAMN,WACnBrB,EAAwB2B,EAAM3B,sBAchC,OAbuB,WACrB,IAAK,IAAIoS,EAAQ9zE,UAAUD,OAAQJ,EAAO,IAAIU,MAAMyzE,GAAQE,EAAQ,EAAGA,EAAQF,EAAOE,IACpFr0E,EAAKq0E,GAASh0E,UAAUg0E,GAE1B,IAAI4J,EAAWxB,GAA2B,CACxCrZ,WAAYA,EACZ7gE,MAAOA,EACPm6E,WAAY,YACZ18E,KAAMA,EACN+hE,sBAAuBA,IAEzB,OAAOkc,EAAS79E,OAAS,uBAAuB2D,OAAOo7D,GAAiB8e,IAAa,EACvF,CAEF,CGjHsBC,CAAuB,CACjC37E,MAAO6Z,EAAOP,WACdunD,WAAYzkE,KAAKwkE,OACjBpB,sBAAuBA,MAGtBnwD,EACH,MAAO,CACLqjE,KAAM,GACNrjE,aAAS9S,EACT87E,UAAWA,EACXD,UAAWA,EACX1X,aAAcA,GAGd0a,GAAc/rE,EAAQqjE,KAAK70E,OAAS,IACtCwR,EAAQqjE,WpElCOn2E,KADEm2E,EoEmCSrjE,EAAQqjE,MpElCjCkJ,aAGPlJ,EAAOA,EAAKttE,KAAI,SAAU4zD,GACxB,IAAIqC,EAAMnB,GAAS,CAAC,GAxC1B,SAAmCx9C,GAAO,GAAW,MAAPA,EAAa,MAAM,IAAIvf,UAAU,sBAAwBuf,EAAM,CAwC/Em/D,CAA0B7iB,GAAOA,IAOzD,OANIqC,EAAII,mBACNJ,EAAII,iBAAmBR,GAAgBI,EAAII,mBAEzCJ,EAAIsB,iBACNtB,EAAIsB,eAAiB1B,GAAgBI,EAAIsB,iBAEpCtB,CACT,KACKugB,WAAY,GAEZlJ,IoEqBD,IAAIoJ,EFnEL,SAA6BpJ,EAAMxrE,EAAMI,GAC9C,OAAOorE,EAAKttE,KAAI,SAAUi2D,EAAKxrD,GAC7B,OAAO,GAAc,GAAc,CAAC,EAAGwrD,GAAM,CAAC,EAAG,CAC/C4f,WAAY3zE,EAAcJ,EAAO2I,EAAM,GAE3C,GACF,CE6DuCksE,CAAoB1sE,EAAQqjE,KAAMrjE,EAAQnI,KAAMmI,EAAQ/H,aACnF00E,EDpEL,SAAoBtJ,EAAM6H,GAC/B,OAAKA,EAGE7H,EAAKttE,KAAI,SAAUi2D,GACxB,OAAO,GAAc,GAAc,CAAC,EAAGA,GAAM,CAAC,EAAG,CAC/Cmf,UAAWD,GAEf,IANS7H,CAOX,CC2DiDuJ,CAAWH,EAA0BzsE,EAAQkrE,SAItF,MAAO,CACL7H,KAJoB4I,EAAeU,EAAoC,CACvE3sE,QAASA,IAITA,QAASA,EACTgpE,UAAWA,EACXD,UAAWA,EACX1X,aAAcA,EAElB,EACA6B,QAAS,SAAiBpB,GACxB,IAAI9zD,EAAQ8zD,EAAM9zD,MAElB,OADA0lE,IACKqI,EAGE/tE,EAAM3G,mBAAmBxE,OAAOC,KAAK04D,IAAiBz4D,QAAO,SAAU6J,EAAK1M,GACjF,OAAO,GAAc,GAAc,CAAC,EAAG0M,GAAM,CAAC,EAAG,GAAgB,CAAC,EAAG1M,OAAKhD,GAC5E,GAAG,CAAC,IAJK8Q,CAKX,EACA25D,0BAA2B,SAAmC35D,GAC5D,OAAK+tE,EAGE/tE,EAAM3G,mBAAmBm0D,IAFvBxtD,CAGX,EAEJ,CACF,ECxGA,SAAS,GAAQqP,GAAkC,OAAO,GAAU,mBAAqBwD,QAAU,iBAAmBA,OAAOC,SAAW,SAAUzD,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqBwD,QAAUxD,EAAInW,cAAgB2Z,QAAUxD,IAAQwD,OAAOpjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAC/U,SAAS,GAAQc,EAAQ28C,GAAkB,IAAIh4D,EAAOD,OAAOC,KAAKqb,GAAS,GAAItb,OAAO2d,sBAAuB,CAAE,IAAIu6C,EAAUl4D,OAAO2d,sBAAsBrC,GAAS28C,IAAmBC,EAAUA,EAAQ53D,QAAO,SAAUgpB,GAAO,OAAOtpB,OAAO4d,yBAAyBtC,EAAQgO,GAAK1P,UAAY,KAAK3Z,EAAKzD,KAAKL,MAAM8D,EAAMi4D,EAAU,CAAE,OAAOj4D,CAAM,CACpV,SAAS,GAAcka,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIwd,EAAS,MAAQpd,UAAUJ,GAAKI,UAAUJ,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQwE,OAAOgZ,IAAS,GAAIzW,SAAQ,SAAUlF,GAAO,GAAgB8c,EAAQ9c,EAAK2b,EAAO3b,GAAO,IAAK2C,OAAO8d,0BAA4B9d,OAAO+d,iBAAiB5D,EAAQna,OAAO8d,0BAA0B9E,IAAW,GAAQhZ,OAAOgZ,IAASzW,SAAQ,SAAUlF,GAAO2C,OAAO0d,eAAevD,EAAQ9c,EAAK2C,OAAO4d,yBAAyB5E,EAAQ3b,GAAO,GAAI,CAAE,OAAO8c,CAAQ,CACzf,SAAS,GAAgBK,EAAKnd,EAAK6B,GAA4L,OAAnL7B,EAC5C,SAAwB9C,GAAO,IAAI8C,EACnC,SAAsBg7D,GAAe,GAAuB,WAAnB,GAAQA,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIC,EAAOD,EAAMr6C,OAAOu6C,aAAc,QAAal+D,IAATi+D,EAAoB,CAAE,IAAIjmD,EAAMimD,EAAKt8D,KAAKq8D,EAAOG,UAAoB,GAAqB,WAAjB,GAAQnmD,GAAmB,OAAOA,EAAK,MAAM,IAAIpX,UAAU,+CAAiD,CAAE,OAA4Bge,OAAiBo/C,EAAQ,CADnV,CAAa99D,GAAgB,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM4b,OAAO5b,EAAM,CAD1E,CAAeA,MAAiBmd,EAAOxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAAE6B,MAAOA,EAAO0a,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBW,EAAInd,GAAO6B,EAAgBsb,CAAK,CA4F5N,SAASw/D,GAAa3X,GACnC,OAAO,SAAUuO,EAAUC,GACzB,OAAOxO,GAAU,SAAU0O,EAAekJ,GACxC,IAAI9sE,EAAU4jE,EAAc5jE,QAC1BqjE,EAAOO,EAAcP,KACrBlT,EAAwByT,EAAczT,sBACxC,GAAInwD,GAAWqjE,GAAQlT,EAAuB,CAC5C,IAAI6K,EArCa,SAA4B+R,EAAI/sE,EAASqjE,GAChE,OAAO,SAAUpvD,GACf,IAAK,IAAI6gD,EAAOrmE,UAAUD,OAAQ69E,EAAW,IAAIv9E,MAAMgmE,EAAO,EAAIA,EAAO,EAAI,GAAIC,EAAO,EAAGA,EAAOD,EAAMC,IACtGsX,EAAStX,EAAO,GAAKtmE,UAAUsmE,GAEjC,IAAIvH,EAAU6e,EAAS,GAEvB,IAAKU,EAAI,CACP,IAAIC,EAAyBnY,GAAoC,CAC/Dl+D,KAAM,kBAER,MAAM,IAAIjI,MAAMs+E,EAAuB,yEACzC,CACA,IAAKl+E,MAAMoF,QAAQs5D,EAAQ0N,WACzB,MAAM,IAAIptE,UAAU,wCAEtB,IAAIm/E,EA7CkB,SAAsBtjB,GAC9C,IAAI11C,EAAS01C,EAAK11C,OAChBjU,EAAU2pD,EAAK3pD,QACfqjE,EAAO1Z,EAAK0Z,KACZnI,EAAYvR,EAAKuR,UACfvqE,EAAQqP,EAAQrP,MAChBu8E,EAnCgB,SAAyB7J,EAAM8J,GACnD,OAAOA,EAAkBp3E,KAAI,SAAUolE,GACrC,IAAInP,EAAMr4D,GAAK0vE,GAAM,SAAUvwD,GAC7B,OAAOA,EAAEqoD,WAAaA,CACxB,IACA,QAAmB,IAARnP,EACT,MAAM,IAAIt9D,MAAM,4BAA6ByD,OAAOgpE,EAAU,uIAEhE,OAAOnP,CACT,GACF,CAyBqBohB,CAAgB/J,EAAMnI,GACrCgQ,EAzBW,SAAoBgC,GACnC,IAAIG,EAAWjY,GAAK8X,EAAan3E,KAAI,SAAUi2D,GAC7C,OAAOA,EAAImf,SACb,KACA,GAAIkC,EAAS7+E,OAAS,EACpB,MAAM,IAAIE,MAAM,sGAElB,IAAIw8E,EAAUmC,EAAS,GACvB,GAAuB,iBAAZnC,EACT,MAAM,IAAIx8E,MAAM,6IAElB,OAAOw8E,CACT,CAagBoC,CAAWJ,GACzB,OAAQj5D,GACN,IAAK,8BAED,IAAI43D,EAhBO,SAAsBqB,GACvC,OAAOA,EAAan3E,KAAI,SAAUi2D,GAChC,OAAOA,EAAI4f,UACb,GACF,CAYwB2B,CAAaL,GAC7B,MAAO,CACLv8E,MAAOA,EACPu6E,QAASA,EACThQ,UAAWA,EACX2Q,UAAWA,GAGjB,IAAK,gCACH,MAAO,CACLl7E,MAAOA,EACPu6E,QAASA,EACThQ,UAAWA,GAEf,QACE,MAAM,IAAIxsE,MAAM,2CAA4CyD,OAAO8hB,EAAQ,OAEjF,CAiB0Bu5D,CAAa,CACjCv5D,OAAQA,EACRjU,QAASA,EACTqjE,KAAMA,EACNnI,UAAW1N,EAAQ0N,YAErB6R,EAAG94D,EAAQ,GAAc,GAAc,CAAC,EAAGg5D,GAAkBzf,GAC/D,CACF,CAauBigB,CAAmBtd,EAAsB4N,eAAgB/9D,EAASqjE,GACjF,OAAOI,EAAS,GAAc,GAAc,CAAC,EAAGG,GAAgB,CAAC,EAAG,CAClE5I,SAAUA,IACR8R,EACN,CACA,OAAOrJ,EAASG,EAAekJ,EACjC,GAAGpJ,EACL,CACF,CC9GA,SAAS,GAAQr2D,GAAkC,OAAO,GAAU,mBAAqBwD,QAAU,iBAAmBA,OAAOC,SAAW,SAAUzD,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqBwD,QAAUxD,EAAInW,cAAgB2Z,QAAUxD,IAAQwD,OAAOpjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAC/U,SAAS,GAAQc,EAAQ28C,GAAkB,IAAIh4D,EAAOD,OAAOC,KAAKqb,GAAS,GAAItb,OAAO2d,sBAAuB,CAAE,IAAIu6C,EAAUl4D,OAAO2d,sBAAsBrC,GAAS28C,IAAmBC,EAAUA,EAAQ53D,QAAO,SAAUgpB,GAAO,OAAOtpB,OAAO4d,yBAAyBtC,EAAQgO,GAAK1P,UAAY,KAAK3Z,EAAKzD,KAAKL,MAAM8D,EAAMi4D,EAAU,CAAE,OAAOj4D,CAAM,CAEpV,SAAS,GAAgBua,EAAKnd,EAAK6B,GAA4L,OAAnL7B,EAC5C,SAAwB9C,GAAO,IAAI8C,EACnC,SAAsBg7D,GAAe,GAAuB,WAAnB,GAAQA,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIC,EAAOD,EAAMr6C,OAAOu6C,aAAc,QAAal+D,IAATi+D,EAAoB,CAAE,IAAIjmD,EAAMimD,EAAKt8D,KAAKq8D,EAAOG,UAAoB,GAAqB,WAAjB,GAAQnmD,GAAmB,OAAOA,EAAK,MAAM,IAAIpX,UAAU,+CAAiD,CAAE,OAA4Bge,OAAiBo/C,EAAQ,CADnV,CAAa99D,GAAgB,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM4b,OAAO5b,EAAM,CAD1E,CAAeA,MAAiBmd,EAAOxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAAE6B,MAAOA,EAAO0a,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBW,EAAInd,GAAO6B,EAAgBsb,CAAK,CAG3O,SAAS,GAAmB2zB,GAAO,OAInC,SAA4BA,GAAO,GAAIlyC,MAAMoF,QAAQ8sC,GAAM,OAAO,GAAkBA,EAAM,CAJhD,CAAmBA,IAG7D,SAA0B+1B,GAAQ,GAAsB,oBAAXlmD,QAAmD,MAAzBkmD,EAAKlmD,OAAOC,WAA2C,MAAtBimD,EAAK,cAAuB,OAAOjoE,MAAMqiB,KAAK4lD,EAAO,CAHxF,CAAiB/1B,IAEtF,SAAqCtwB,EAAGg/C,GAAU,GAAKh/C,EAAL,CAAgB,GAAiB,iBAANA,EAAgB,OAAO,GAAkBA,EAAGg/C,GAAS,IAAI9hE,EAAIiF,OAAOpF,UAAUoQ,SAAShP,KAAK6hB,GAAG3hB,MAAM,GAAI,GAAiE,MAAnD,WAANnB,GAAkB8iB,EAAExZ,cAAatJ,EAAI8iB,EAAExZ,YAAYP,MAAgB,QAAN/I,GAAqB,QAANA,EAAoBkB,MAAMqiB,KAAKT,GAAc,cAAN9iB,GAAqB,2CAA2C0iB,KAAK1iB,GAAW,GAAkB8iB,EAAGg/C,QAAzG,CAA7O,CAA+V,CAFjU,CAA4B1uB,IAC1H,WAAgC,MAAM,IAAIlzC,UAAU,uIAAyI,CAD3D,EAAsB,CAKxJ,SAAS,GAAkBkzC,EAAK7yC,IAAkB,MAAPA,GAAeA,EAAM6yC,EAAIxyC,UAAQL,EAAM6yC,EAAIxyC,QAAQ,IAAK,IAAIH,EAAI,EAAGwe,EAAO,IAAI/d,MAAMX,GAAME,EAAIF,EAAKE,IAAKwe,EAAKxe,GAAK2yC,EAAI3yC,GAAI,OAAOwe,CAAM,CCVlL,IAQA,GARuB,CACrB6gE,MAAO,WACL,MAAO,YACT,EACAxqE,KAAM,SAAclE,GAClB,OAAOlB,KAAKC,WCAauP,EDAQ,CAAC,cCChCzB,OADeA,EDAU7M,GCEpB6M,EAEFhZ,OAAOC,KAAK+Y,GAAQ9Y,QAAO,SAAUia,EAAQ9c,GAClD,GAAIod,EAAS9Z,QAAQtD,IAAQ,EAC3B,OAAO8c,EAET,IAAI2gE,EAAWz9E,EAEf,OADA8c,EAAO2gE,GAAY9hE,EAAO8hE,GACnB3gE,CACT,GAAG,CAAC,IDXgD,KAAM,GCArD,IAAcnB,EAAQyB,CDC3B,GEPF,SAAS,GAAQD,GAAkC,OAAO,GAAU,mBAAqBwD,QAAU,iBAAmBA,OAAOC,SAAW,SAAUzD,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqBwD,QAAUxD,EAAInW,cAAgB2Z,QAAUxD,IAAQwD,OAAOpjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAC/U,SAAS,GAAQc,EAAQ28C,GAAkB,IAAIh4D,EAAOD,OAAOC,KAAKqb,GAAS,GAAItb,OAAO2d,sBAAuB,CAAE,IAAIu6C,EAAUl4D,OAAO2d,sBAAsBrC,GAAS28C,IAAmBC,EAAUA,EAAQ53D,QAAO,SAAUgpB,GAAO,OAAOtpB,OAAO4d,yBAAyBtC,EAAQgO,GAAK1P,UAAY,KAAK3Z,EAAKzD,KAAKL,MAAM8D,EAAMi4D,EAAU,CAAE,OAAOj4D,CAAM,CACpV,SAAS,GAAcka,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIwd,EAAS,MAAQpd,UAAUJ,GAAKI,UAAUJ,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQwE,OAAOgZ,IAAS,GAAIzW,SAAQ,SAAUlF,GAAO,GAAgB8c,EAAQ9c,EAAK2b,EAAO3b,GAAO,IAAK2C,OAAO8d,0BAA4B9d,OAAO+d,iBAAiB5D,EAAQna,OAAO8d,0BAA0B9E,IAAW,GAAQhZ,OAAOgZ,IAASzW,SAAQ,SAAUlF,GAAO2C,OAAO0d,eAAevD,EAAQ9c,EAAK2C,OAAO4d,yBAAyB5E,EAAQ3b,GAAO,GAAI,CAAE,OAAO8c,CAAQ,CACzf,SAAS,GAAgBK,EAAKnd,EAAK6B,GAA4L,OAAnL7B,EAC5C,SAAwB9C,GAAO,IAAI8C,EACnC,SAAsBg7D,GAAe,GAAuB,WAAnB,GAAQA,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIC,EAAOD,EAAMr6C,OAAOu6C,aAAc,QAAal+D,IAATi+D,EAAoB,CAAE,IAAIjmD,EAAMimD,EAAKt8D,KAAKq8D,EAAOG,UAAoB,GAAqB,WAAjB,GAAQnmD,GAAmB,OAAOA,EAAK,MAAM,IAAIpX,UAAU,+CAAiD,CAAE,OAA4Bge,OAAiBo/C,EAAQ,CADnV,CAAa99D,GAAgB,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM4b,OAAO5b,EAAM,CAD1E,CAAeA,MAAiBmd,EAAOxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAAE6B,MAAOA,EAAO0a,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBW,EAAInd,GAAO6B,EAAgBsb,CAAK,CAY3O,IAAI,GAAYwnD,GAAoC,CAClDl+D,KAAM,SAEJ,GAAO8yD,GAAU,QAyErB,GAzCW,SAAc4H,GACvB,IAAIS,EAAQT,GAAgB,CAAC,EAC3Buc,EAAY9b,EAAM8b,UAClB7B,EAAaja,EAAMia,WACnBE,EAAiBna,EAAMma,eACvB4B,EAAkB/b,EAAMgX,UACxBA,OAAgC,IAApB+E,EAA6B,CAAC,EAAIA,EAC9CC,EAAmBhc,EAAM5F,WACzB6hB,OAAsC,IAArBD,EAA8B,CAAC,EAAIA,EACtD,IAAKF,EACH,MAAM,IAAIl/E,MAAM,GAAU,wCAE5B,IAAIs/E,ECnDC,SAA0BC,GAC/B,ICZ2B9/D,EDYvB+/D,EAAoD,iBAA1BD,EAC1B/D,EAAagE,EAAmBtmD,SAASc,cAAculD,GAAyBA,EACpF,MCd2B9/D,EDcT+7D,aCbOiE,aAAe76E,QAAQ6a,IAAWA,EAAOgf,SAAW,GDa9C,CAC7B,IAAIzlB,EAAe,+CAInB,MAHIwmE,IACFxmE,GAAgB,mBAAmBvV,OAAO87E,IAEtC,IAAIv/E,MAAMgZ,EAClB,CACA,OAAOwiE,CACT,CDwCsBkE,CAAiBR,GACjC1hB,EAAa,CACf3pD,KAAMqd,GAAG,KAAQmuD,EAAexrE,MAChC+nE,UAAW1qD,GAAG,GAAK,CACjBiqC,aAAc,UACZkkB,EAAezD,WACnBx6E,KAAM8vB,GAAG,GAAK,CACZgqC,eAAgB,SACdmkB,EAAej+E,MACnBoT,KAAM0c,GAAG,GAAK,CACZgqC,eAAgB,SACdmkB,EAAe7qE,OAEjBmrE,EAxDS,SAAkB1kB,GAC/B,IAAI2G,EAAc3G,EAAK2G,YACrBpE,EAAavC,EAAKuC,WAClB8hB,EAAgBrkB,EAAKqkB,cACrBlF,EAAYnf,EAAKmf,UACnB,OAAO,SAAUpV,EAAO4a,GACtB,IAAIC,EAAe7a,EAAM2P,KACvBrjE,EAAU0zD,EAAM1zD,QAChBmwD,EAAwBuD,EAAMvD,sBAC9B6K,EAAWtH,EAAMsH,SACjB+N,EAAYrV,EAAMqV,UAClBC,EAAYtV,EAAMsV,UAChBsF,EACFhe,EAAYoZ,cHIX,SAA8B/f,GACnC,IAAI6kB,EAAmB7kB,EAAK6kB,iBAC1B1F,EAAYnf,EAAKmf,UACjBvY,EAAkB5G,EAAK4G,gBACrBke,EA3BN,SAEAD,GACE,IAAI1F,EAAYr6E,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAErF,OADc2mE,GAAK,GAAGjjE,OAAO,GAAmBU,OAAOC,KAAK07E,GAAoB,CAAC,IAAK,GAAmB37E,OAAOC,KAAKg2E,MACtG/1E,QAAO,SAAUkvB,EAAQ/xB,GACtC,IAAIw+E,EAAkBF,EAAmBA,EAAiBt+E,QAAOhD,EAC7DyhF,EAAiB7F,EAAU54E,GAC3B0+E,OAAsC1hF,IAAnByhF,GAAgCA,IAAmBD,EAG1E,OAFAzsD,EAAO6mD,UAAU54E,GAAO0+E,EAAmBD,EAAiBD,EAC5DzsD,EAAO4mD,wBAAwB34E,GAAO0+E,EAC/B3sD,CACT,GAAG,CAED6mD,UAAW,CAAC,EAEZD,wBAAyB,CAAC,GAE9B,CAS0BgG,CAAiBL,EAAkB1F,GAC3D,OAvCF,SAAuB97D,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIwd,EAAS,MAAQpd,UAAUJ,GAAKI,UAAUJ,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQwE,OAAOgZ,IAAS,GAAIzW,SAAQ,SAAUlF,GAAO,GAAgB8c,EAAQ9c,EAAK2b,EAAO3b,GAAO,IAAK2C,OAAO8d,0BAA4B9d,OAAO+d,iBAAiB5D,EAAQna,OAAO8d,0BAA0B9E,IAAW,GAAQhZ,OAAOgZ,IAASzW,SAAQ,SAAUlF,GAAO2C,OAAO0d,eAAevD,EAAQ9c,EAAK2C,OAAO4d,yBAAyB5E,EAAQ3b,GAAO,GAAI,CAAE,OAAO8c,CAAQ,CAuChf,CAAc,CACnBujD,gBAAiBA,GAChBke,EACL,CGZkCK,CAAqB,CAC/CN,iBAAkB,GAClBje,gBAAiBJ,EAAsBI,gBACvCuY,UAAWA,IAIf,GAAO,GAAEW,GAAM,CACbvd,WAAYA,EACZmX,KAAMkL,EACNvuE,QAASA,EACT0pE,cAAepZ,EAAYoZ,cAC3B1O,SAAUA,EACVgO,UAAWA,EACXD,UAAWA,IACTiF,EACN,CACF,CA0B4Be,CAAS,CACjCf,cAAeA,EACf9hB,WAAYA,EACZoE,YAAa,CAAC,EACdwY,UAAWA,IAKb,OAAO,GAAc,GAAc,CAAC,EAHnB+D,GAAa,GAAbA,CAA0BwB,GAAqB,WAC9D,OAAO,GAAO,KAAML,EACtB,GACuC9J,CAAW,CAChD6H,WAAYA,EACZE,eAAgBA,KACb,CAAC,EAAG,CACPxa,aAAc,YAElB,EG1FA,SAAS,GAAQpkD,GAAkC,OAAO,GAAU,mBAAqBwD,QAAU,iBAAmBA,OAAOC,SAAW,SAAUzD,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAO,mBAAqBwD,QAAUxD,EAAInW,cAAgB2Z,QAAUxD,IAAQwD,OAAOpjB,UAAY,gBAAkB4f,CAAK,EAAG,GAAQA,EAAM,CAC/U,SAAS,GAAQc,EAAQ28C,GAAkB,IAAIh4D,EAAOD,OAAOC,KAAKqb,GAAS,GAAItb,OAAO2d,sBAAuB,CAAE,IAAIu6C,EAAUl4D,OAAO2d,sBAAsBrC,GAAS28C,IAAmBC,EAAUA,EAAQ53D,QAAO,SAAUgpB,GAAO,OAAOtpB,OAAO4d,yBAAyBtC,EAAQgO,GAAK1P,UAAY,KAAK3Z,EAAKzD,KAAKL,MAAM8D,EAAMi4D,EAAU,CAAE,OAAOj4D,CAAM,CACpV,SAAS,GAAcka,GAAU,IAAK,IAAI3e,EAAI,EAAGA,EAAII,UAAUD,OAAQH,IAAK,CAAE,IAAIwd,EAAS,MAAQpd,UAAUJ,GAAKI,UAAUJ,GAAK,CAAC,EAAGA,EAAI,EAAI,GAAQwE,OAAOgZ,IAAS,GAAIzW,SAAQ,SAAUlF,GAAO,GAAgB8c,EAAQ9c,EAAK2b,EAAO3b,GAAO,IAAK2C,OAAO8d,0BAA4B9d,OAAO+d,iBAAiB5D,EAAQna,OAAO8d,0BAA0B9E,IAAW,GAAQhZ,OAAOgZ,IAASzW,SAAQ,SAAUlF,GAAO2C,OAAO0d,eAAevD,EAAQ9c,EAAK2C,OAAO4d,yBAAyB5E,EAAQ3b,GAAO,GAAI,CAAE,OAAO8c,CAAQ,CACzf,SAAS,GAAgBK,EAAKnd,EAAK6B,GAA4L,OAAnL7B,EAC5C,SAAwB9C,GAAO,IAAI8C,EACnC,SAAsBg7D,GAAe,GAAuB,WAAnB,GAAQA,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIC,EAAOD,EAAMr6C,OAAOu6C,aAAc,QAAal+D,IAATi+D,EAAoB,CAAE,IAAIjmD,EAAMimD,EAAKt8D,KAAKq8D,EAAOG,UAAoB,GAAqB,WAAjB,GAAQnmD,GAAmB,OAAOA,EAAK,MAAM,IAAIpX,UAAU,+CAAiD,CAAE,OAA4Bge,OAAiBo/C,EAAQ,CADnV,CAAa99D,GAAgB,MAAwB,WAAjB,GAAQ8C,GAAoBA,EAAM4b,OAAO5b,EAAM,CAD1E,CAAeA,MAAiBmd,EAAOxa,OAAO0d,eAAelD,EAAKnd,EAAK,CAAE6B,MAAOA,EAAO0a,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBW,EAAInd,GAAO6B,EAAgBsb,CAAK,CAI3O,IAAI,GAAYwnD,GAAoC,CAClDl+D,KAAM,aACNu+D,WAAW,IAET8Z,GAAmB,SAA0Bt3E,EAAOu3E,GACtD,OAAOA,EAAKv3E,EACd,EAgFA,GAxEuB,SAA0B+rE,GAC/C,IAAIC,EAAYj1E,UAAUD,OAAS,QAAsBtB,IAAjBuB,UAAU,GAAmBA,UAAU,GAAK,GAEpF,OADAi8E,GAAejH,EAAU,MAClB,SAAUpS,GACf,IAGI6d,EACAC,EAHFC,GADS/d,GAAgB,CAAC,GACJge,UACtBA,OAA+B,IAAnBD,EAA4BJ,GAAmBI,EAG7D,MAAO,CACL7d,OAAQ,gBACRn0B,KAAM,SAAc6zB,GAClB,IAAId,EAAwBc,EAAYd,sBACxCsT,EAAS,GAAc,GAAc,CAAC,EAAG12E,KAAKukE,qBAAqBL,IAAe,CAAC,EAAG,CACpFd,sBAAuBA,KACrB,EACN,EACA9xC,OAAQ,SAAgBulD,GACtB,IAAIzT,EAAwByT,EAAczT,sBAC1CsT,EAAS,GAAc,GAAc,CAAC,EAAG12E,KAAKukE,qBAAqBsS,IAAiB,CAAC,EAAG,CACtFzT,sBAAuBA,KACrB,EACN,EACA+C,QAAS,SAAiBQ,GACxB,IAAI11D,EAAQ01D,EAAM11D,MAElB,OADA0lE,IACO1lE,EAAMxB,kBAAkB,aAAStP,EAC1C,EACA8rE,eAAgB,SAAwB1I,EAAasT,GACnD,OAAO,GAAc,GAAc,CAAC,EAAGtT,GAAc,CAAC,EAAG,CACvDgf,UAAWviF,KAAKukE,qBAAqBsS,IAEzC,EACAtS,qBAAsB,SAA8BQ,GAClD,IAAItnD,EAASsnD,EAAMtnD,OACjBkmD,EAAiBoB,EAAMpB,eACvB1yD,EAAQ8zD,EAAM9zD,MAWhB,OAVKkxE,IACHA,EAAU,SAAiBx3E,GACzB23E,EAAU33E,GAAO,SAAU+Q,GACzB,OAAO+B,EAAOhT,SAASiR,GAAGtC,QAC5B,GACF,EACAgpE,EAAS,WACP3kE,EAAOhT,SAAS,IAAI2O,QACtB,GAEK,CACLzO,MAAOsG,EAAMtG,OAAS,GACtBqsE,OAAQmL,EACR98D,MAAO+8D,EACP9d,aAAcA,EACdV,gBAAiBD,EAAeC,gBAEpC,EACA2G,iBAAkB,SAA0BlH,EAASgE,GACnD,IACI18D,EADmB08D,EAAM0E,iBACAphE,OAAS,GACtC,MAAc,KAAVA,GAAgB04D,GAAWA,EAAQ14D,QAAUA,EACxC04D,EAEF,GAAc,GAAc,CAAC,EAAGA,GAAU,CAAC,EAAG,CACnD14D,MAAOA,GAEX,EACAigE,0BAA2B,SAAmCmB,EAAkBvE,GAC9E,IAAInE,EAAUmE,EAAMnE,QACpB,OAAO0I,EAAiBt8D,kBAAkB,QAAS4zD,EAAQ14D,OAAS,GACtE,EAEJ,CACF,EClFAg4C,GAAOyK,QlFTP,SAAqBzK,GACnBA,EAAOnC,UAAU,aAAa,CAACn5C,GAAMrC,QAAOy5C,aAAYkD,cAAe5C,gBAAe8D,cACpF,IAAI1b,EAAW4X,EAAcN,GACzB3qC,EAAU,CACZ0uE,WAAY/lB,GAAc9a,GAC1Blb,UAAW81B,GAAa5a,IAEtBlH,EAAW,IAAI/T,sBAAsB9hB,IACvCA,EAAQvc,SAASo6E,IACXA,EAAM97C,kBAA8B,UAAV3hC,KAE9BmiC,IACAwa,EAAUnH,SAAS,SAAWC,EAASY,aAAY,GACnD,GACDvnC,GACH2mC,EAAS7T,QAAQv/B,GACjBw7C,GAAQ,KACNpI,EAASY,YAAY,GACrB,GAEN,IkFRA/2B,OAAOklB,KAAOk5C,oBAAQ,KAGtBp+D,OAAOq+B,OAASA,GAEhBA,GAAOnwB,QAMPqI,SAASuD,iBAAiB,oBAAoB,WAE1C,GAAe,MADDvD,SAASc,cAAc,2BAEjC,OAEJ,MAAMm1C,EAAe6R,KAAcC,eAAgBC,oBAE7CzpE,EAAS+8D,GAAc,CACzB56D,UAAWunE,mBACXhS,iBAGJ,IAkBIiS,EAAkBC,IAlBA,SAASnM,EAAekJ,GAG9BlJ,EAAclsE,MAA1B,IACIqsE,EAASH,EAAcG,OAKvB7Y,GAJQ0Y,EAAcxxD,MACJwxD,EAAcjT,gBACjBiT,EAAcvS,aAErBzpC,SAASc,cAAc,0BAE/BokD,GACA5hB,EAAM//B,iBAAiB,SAAS9f,IAC5B04D,EAAO14D,EAAM2B,OAAOjb,MAAM,GAGtC,IAIAoU,EAAO4yD,WAAW,CACd+W,EAAgB,CAAC,GACjBlb,GAAU,CAAC38D,YAAa,KACxBorE,GAAK,CACDuK,UAAW,0BACX9E,UAAW,CACP5lE,IAAAA,CAAK8oD,EAAGrC,GAAwB,IAApBsf,EAAItf,EAAJsf,KAAMC,EAAUvf,EAAVuf,WACd,IAAI73B,EAAU,iEAId,OAHK2a,EAAI/C,SACL5X,EAAU,wEAEP43B,CAAI;uCACQjd,EAAItJ;qCACNrR;;;8BAGP63B,EAAWlB,UAAU,CAAEhc,MAAKl6D,UAAW;+BAErD,EACA47E,MAAO,sIAKnBvnE,EAAOoZ,OACX,IAEA,IAAIywD,GAAqB,KAIzBpoD,SAASuD,iBAAiB,oBAAoB,WAC1C,GAA4D,MAAxDvD,SAASc,cAAc,8BAEvB,OAEJ,MAAMm1C,EAAe6R,KAAcC,eAAgBC,oBAE7CzpE,EAAS+8D,GAAc,CACzB56D,UAAWunE,mBACXhS,eACAJ,cAAAA,CAAejzD,GACX,IAAIojE,EAAYhmD,SAASc,cAAc,8BACb,IAAtBle,EAAOxM,MAAMtG,OACa,MAAtBs4E,KACAA,GAAqB,GACD,CAChB,CAACr5E,KAAM,cAAe+rD,KAAM,UAC5B,CAAC/rD,KAAM,eAAgB+rD,KAAM,WAC7B,CAAC/rD,KAAM,iBAAkB+rD,KAAM,aAC/B,CAAC/rD,KAAM,cAAe+rD,KAAM,UAElBttD,SAAQ,SAAS66E,GAC3B,IAAIvtB,EAAOutB,EAAY,KACnBt5E,EAAOs5E,EAAY,KACvBD,IAAsB,uRAKOttB,EALP,6DAMwCA,EAAO,YACjE/rD,EAAO,WACf,KAEJi3E,EAAU13C,UAAY85C,GACtBz5C,KAAKlW,QAAQutD,KAEbA,EAAU95C,YAAc,GACxBtpB,EAAOrE,SAEf,IAGJ,IAkBI2pE,EAAkBC,IAlBA,SAAUnM,EAAekJ,GAG/BlJ,EAAclsE,MAA1B,IACIqsE,EAASH,EAAcG,OAKvB7Y,GAJQ0Y,EAAcxxD,MACJwxD,EAAcjT,gBACjBiT,EAAcvS,aAErBzpC,SAASc,cAAc,uBAE/BokD,GACA5hB,EAAM//B,iBAAiB,SAAS9f,IAC5B04D,EAAO14D,EAAM2B,OAAOjb,MAAM,GAGtC,IAIAoU,EAAO4yD,WAAW,CACd+W,EAAgB,CAAC,GACjBlb,GAAU,CAAC38D,YAAa,IACxBorE,GAAK,CACDuK,UAAW,6BACX9E,UAAW,CACP5lE,KAAM,msBAUNwqE,MAAO,sJAEXxhB,WAAY,CACRhpD,KAAM,CAAC,qBAKnBiD,EAAOoZ,OACX,IAKAqI,SAASuD,iBAAiB,oBAAoB,WACkB,MAAxDvD,SAASc,cAAc,+BAIV,IAAI+e,kBAAiB,WAClClR,KAAKlW,QAAQuH,SAASc,cAAc,8BACxC,IAESiL,QAAQ/L,SAASc,cAAc,8BAA+B,CAAEpoB,YAAY,EAAOunC,WAAW,EAAMqoC,eAAe,EAAOjxE,SAAS,GAChJ","sources":["webpack://app/./node_modules/@algolia/events/events.js","webpack://app/./node_modules/algoliasearch-helper/index.js","webpack://app/./node_modules/algoliasearch-helper/src/DerivedHelper/index.js","webpack://app/./node_modules/algoliasearch-helper/src/SearchParameters/RefinementList.js","webpack://app/./node_modules/algoliasearch-helper/src/SearchParameters/index.js","webpack://app/./node_modules/algoliasearch-helper/src/SearchResults/generate-hierarchical-tree.js","webpack://app/./node_modules/algoliasearch-helper/src/SearchResults/index.js","webpack://app/./node_modules/algoliasearch-helper/src/algoliasearch.helper.js","webpack://app/./node_modules/algoliasearch-helper/src/functions/compact.js","webpack://app/./node_modules/algoliasearch-helper/src/functions/defaultsPure.js","webpack://app/./node_modules/algoliasearch-helper/src/functions/escapeFacetValue.js","webpack://app/./node_modules/algoliasearch-helper/src/functions/find.js","webpack://app/./node_modules/algoliasearch-helper/src/functions/findIndex.js","webpack://app/./node_modules/algoliasearch-helper/src/functions/formatSort.js","webpack://app/./node_modules/algoliasearch-helper/src/functions/inherits.js","webpack://app/./node_modules/algoliasearch-helper/src/functions/intersection.js","webpack://app/./node_modules/algoliasearch-helper/src/functions/merge.js","webpack://app/./node_modules/algoliasearch-helper/src/functions/objectHasKeys.js","webpack://app/./node_modules/algoliasearch-helper/src/functions/omit.js","webpack://app/./node_modules/algoliasearch-helper/src/functions/orderBy.js","webpack://app/./node_modules/algoliasearch-helper/src/functions/valToNumber.js","webpack://app/./node_modules/algoliasearch-helper/src/requestBuilder.js","webpack://app/./node_modules/algoliasearch-helper/src/utils/isValidUserToken.js","webpack://app/./node_modules/algoliasearch-helper/src/version.js","webpack://app/./node_modules/algoliasearch/dist/algoliasearch-lite.umd.js","webpack://app/./node_modules/hogan.js/lib/compiler.js","webpack://app/./node_modules/hogan.js/lib/hogan.js","webpack://app/./node_modules/hogan.js/lib/template.js","webpack://app/./node_modules/htmx.org/dist/htmx.min.js","webpack://app/./node_modules/qs/lib/formats.js","webpack://app/./node_modules/qs/lib/index.js","webpack://app/./node_modules/qs/lib/parse.js","webpack://app/./node_modules/qs/lib/stringify.js","webpack://app/./node_modules/qs/lib/utils.js","webpack://app/webpack/bootstrap","webpack://app/webpack/runtime/compat get default export","webpack://app/webpack/runtime/define property getters","webpack://app/webpack/runtime/hasOwnProperty shorthand","webpack://app/./node_modules/alpinejs/dist/module.esm.js","webpack://app/./node_modules/@alpinejs/intersect/dist/module.esm.js","webpack://app/./node_modules/instantsearch.js/es/lib/suit.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/getPropertyByPath.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/escape-html.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/isPlainObject.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/escape-highlight.js","webpack://app/./node_modules/instantsearch.js/es/helpers/highlight.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/concatHighlightedParts.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/getHighlightFromSiblings.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/reverseHighlightedParts.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/getHighlightedParts.js","webpack://app/./node_modules/instantsearch.js/es/helpers/reverseHighlight.js","webpack://app/./node_modules/instantsearch.js/es/helpers/snippet.js","webpack://app/./node_modules/instantsearch.js/es/helpers/reverseSnippet.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/serializer.js","webpack://app/./node_modules/instantsearch.js/es/helpers/insights.js","webpack://app/./node_modules/instantsearch.js/es/helpers/get-insights-anonymous-user-token.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/safelyRunOnBrowser.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/isEqual.js","webpack://app/./node_modules/instantsearch.js/es/lib/infiniteHitsCache/sessionStorage.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/noop.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/find.js","webpack://app/./node_modules/instantsearch.js/es/middlewares/createInsightsMiddleware.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/render-args.js","webpack://app/./node_modules/instantsearch.js/es/middlewares/createMetadataMiddleware.js","webpack://app/./node_modules/instantsearch.js/es/lib/routers/history.js","webpack://app/./node_modules/instantsearch.js/es/lib/stateMappings/simple.js","webpack://app/./node_modules/instantsearch.js/es/middlewares/createRouterMiddleware.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/documentation.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/isIndexWidget.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/uniq.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/mergeSearchParameters.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/findIndex.js","webpack://app/./node_modules/instantsearch.js/es/widgets/index/index.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/resolveSearchParameters.js","webpack://app/./node_modules/instantsearch.js/es/lib/createHelpers.js","webpack://app/./node_modules/instantsearch.js/es/lib/formatNumber.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/defer.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/setIndexHelperState.js","webpack://app/./node_modules/instantsearch.js/es/lib/version.js","webpack://app/./node_modules/instantsearch.js/es/lib/InstantSearch.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/getAppIdAndApiKey.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/logger.js","webpack://app/./node_modules/instantsearch.js/es/index.js","webpack://app/./node_modules/instantsearch.js/es/connectors/configure/connectConfigure.js","webpack://app/./node_modules/instantsearch.js/es/widgets/configure/configure.js","webpack://app/./node_modules/@algolia/ui-components-shared/dist/esm/cx.js","webpack://app/./node_modules/preact/dist/preact.module.js","webpack://app/./node_modules/instantsearch.js/es/lib/insights/listener.js","webpack://app/./node_modules/htm/dist/htm.module.js","webpack://app/./node_modules/htm/preact/index.module.js","webpack://app/./node_modules/@algolia/ui-components-highlight-vdom/node_modules/@babel/runtime/helpers/esm/extends.js","webpack://app/./node_modules/@algolia/ui-components-highlight-vdom/dist/esm/Highlight.js","webpack://app/./node_modules/instantsearch.js/es/components/InternalHighlight/InternalHighlight.js","webpack://app/./node_modules/@algolia/ui-components-highlight-vdom/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://app/./node_modules/@algolia/ui-components-highlight-vdom/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://app/./node_modules/instantsearch.js/es/components/Highlight/Highlight.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/toArray.js","webpack://app/./node_modules/instantsearch.js/es/helpers/components/Highlight.js","webpack://app/./node_modules/instantsearch.js/es/components/ReverseHighlight/ReverseHighlight.js","webpack://app/./node_modules/instantsearch.js/es/helpers/components/ReverseHighlight.js","webpack://app/./node_modules/instantsearch.js/es/components/Snippet/Snippet.js","webpack://app/./node_modules/instantsearch.js/es/helpers/components/Snippet.js","webpack://app/./node_modules/instantsearch.js/es/components/ReverseSnippet/ReverseSnippet.js","webpack://app/./node_modules/instantsearch.js/es/helpers/components/ReverseSnippet.js","webpack://app/./node_modules/instantsearch.js/es/lib/templating/renderTemplate.js","webpack://app/./node_modules/instantsearch.js/es/components/Template/Template.js","webpack://app/./node_modules/instantsearch.js/es/components/Hits/Hits.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/checkRendering.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/getObjectType.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/createSendEventForHits.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/hits-absolute-position.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/hits-query-id.js","webpack://app/./node_modules/instantsearch.js/es/connectors/hits/connectHits.js","webpack://app/./node_modules/instantsearch.js/es/lib/insights/client.js","webpack://app/./node_modules/instantsearch.js/es/lib/templating/prepareTemplateProps.js","webpack://app/./node_modules/instantsearch.js/es/widgets/hits/defaultTemplates.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/omit.js","webpack://app/./node_modules/instantsearch.js/es/widgets/hits/hits.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/getContainerNode.js","webpack://app/./node_modules/instantsearch.js/es/lib/utils/isDomElement.js","webpack://app/./node_modules/instantsearch.js/es/connectors/search-box/connectSearchBox.js","webpack://app/./app/javascript/application.js"],"sourcesContent":["// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nfunction EventEmitter() {\n this._events = this._events || {};\n this._maxListeners = this._maxListeners || undefined;\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\n// EventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nEventEmitter.defaultMaxListeners = 10;\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function(n) {\n if (!isNumber(n) || n < 0 || isNaN(n))\n throw TypeError('n must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nEventEmitter.prototype.emit = function(type) {\n var er, handler, len, args, i, listeners;\n\n if (!this._events)\n this._events = {};\n\n // If there is no 'error' event listener then throw.\n if (type === 'error') {\n if (!this._events.error ||\n (isObject(this._events.error) && !this._events.error.length)) {\n er = arguments[1];\n if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n }\n }\n\n handler = this._events[type];\n\n if (isUndefined(handler))\n return false;\n\n if (isFunction(handler)) {\n switch (arguments.length) {\n // fast cases\n case 1:\n handler.call(this);\n break;\n case 2:\n handler.call(this, arguments[1]);\n break;\n case 3:\n handler.call(this, arguments[1], arguments[2]);\n break;\n // slower\n default:\n args = Array.prototype.slice.call(arguments, 1);\n handler.apply(this, args);\n }\n } else if (isObject(handler)) {\n args = Array.prototype.slice.call(arguments, 1);\n listeners = handler.slice();\n len = listeners.length;\n for (i = 0; i < len; i++)\n listeners[i].apply(this, args);\n }\n\n return true;\n};\n\nEventEmitter.prototype.addListener = function(type, listener) {\n var m;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events)\n this._events = {};\n\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (this._events.newListener)\n this.emit('newListener', type,\n isFunction(listener.listener) ?\n listener.listener : listener);\n\n if (!this._events[type])\n // Optimize the case of one listener. Don't need the extra array object.\n this._events[type] = listener;\n else if (isObject(this._events[type]))\n // If we've already got an array, just append.\n this._events[type].push(listener);\n else\n // Adding the second element, need to change to array.\n this._events[type] = [this._events[type], listener];\n\n // Check for listener leak\n if (isObject(this._events[type]) && !this._events[type].warned) {\n if (!isUndefined(this._maxListeners)) {\n m = this._maxListeners;\n } else {\n m = EventEmitter.defaultMaxListeners;\n }\n\n if (m && m > 0 && this._events[type].length > m) {\n this._events[type].warned = true;\n console.error('(node) warning: possible EventEmitter memory ' +\n 'leak detected. %d listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit.',\n this._events[type].length);\n if (typeof console.trace === 'function') {\n // not supported in IE 10\n console.trace();\n }\n }\n }\n\n return this;\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.once = function(type, listener) {\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n var fired = false;\n\n function g() {\n this.removeListener(type, g);\n\n if (!fired) {\n fired = true;\n listener.apply(this, arguments);\n }\n }\n\n g.listener = listener;\n this.on(type, g);\n\n return this;\n};\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener = function(type, listener) {\n var list, position, length, i;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events || !this._events[type])\n return this;\n\n list = this._events[type];\n length = list.length;\n position = -1;\n\n if (list === listener ||\n (isFunction(list.listener) && list.listener === listener)) {\n delete this._events[type];\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n\n } else if (isObject(list)) {\n for (i = length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list.length = 0;\n delete this._events[type];\n } else {\n list.splice(position, 1);\n }\n\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.removeAllListeners = function(type) {\n var key, listeners;\n\n if (!this._events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!this._events.removeListener) {\n if (arguments.length === 0)\n this._events = {};\n else if (this._events[type])\n delete this._events[type];\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n for (key in this._events) {\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = {};\n return this;\n }\n\n listeners = this._events[type];\n\n if (isFunction(listeners)) {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n while (listeners.length)\n this.removeListener(type, listeners[listeners.length - 1]);\n }\n delete this._events[type];\n\n return this;\n};\n\nEventEmitter.prototype.listeners = function(type) {\n var ret;\n if (!this._events || !this._events[type])\n ret = [];\n else if (isFunction(this._events[type]))\n ret = [this._events[type]];\n else\n ret = this._events[type].slice();\n return ret;\n};\n\nEventEmitter.prototype.listenerCount = function(type) {\n if (this._events) {\n var evlistener = this._events[type];\n\n if (isFunction(evlistener))\n return 1;\n else if (evlistener)\n return evlistener.length;\n }\n return 0;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n return emitter.listenerCount(type);\n};\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\n","'use strict';\n\nvar AlgoliaSearchHelper = require('./src/algoliasearch.helper');\n\nvar SearchParameters = require('./src/SearchParameters');\nvar SearchResults = require('./src/SearchResults');\n\n/**\n * The algoliasearchHelper module is the function that will let its\n * contains everything needed to use the Algoliasearch\n * Helper. It is a also a function that instanciate the helper.\n * To use the helper, you also need the Algolia JS client v3.\n * @example\n * //using the UMD build\n * var client = algoliasearch('latency', '6be0576ff61c053d5f9a3225e2a90f76');\n * var helper = algoliasearchHelper(client, 'bestbuy', {\n * facets: ['shipping'],\n * disjunctiveFacets: ['category']\n * });\n * helper.on('result', function(event) {\n * console.log(event.results);\n * });\n * helper\n * .toggleFacetRefinement('category', 'Movies & TV Shows')\n * .toggleFacetRefinement('shipping', 'Free shipping')\n * .search();\n * @example\n * // The helper is an event emitter using the node API\n * helper.on('result', updateTheResults);\n * helper.once('result', updateTheResults);\n * helper.removeListener('result', updateTheResults);\n * helper.removeAllListeners('result');\n * @module algoliasearchHelper\n * @param {AlgoliaSearch} client an AlgoliaSearch client\n * @param {string} index the name of the index to query\n * @param {SearchParameters|object} opts an object defining the initial config of the search. It doesn't have to be a {SearchParameters}, just an object containing the properties you need from it.\n * @return {AlgoliaSearchHelper} The helper instance\n */\nfunction algoliasearchHelper(client, index, opts) {\n return new AlgoliaSearchHelper(client, index, opts);\n}\n\n/**\n * The version currently used\n * @member module:algoliasearchHelper.version\n * @type {number}\n */\nalgoliasearchHelper.version = require('./src/version');\n\n/**\n * Constructor for the Helper.\n * @member module:algoliasearchHelper.AlgoliaSearchHelper\n * @type {AlgoliaSearchHelper}\n */\nalgoliasearchHelper.AlgoliaSearchHelper = AlgoliaSearchHelper;\n\n/**\n * Constructor for the object containing all the parameters of the search.\n * @member module:algoliasearchHelper.SearchParameters\n * @type {SearchParameters}\n */\nalgoliasearchHelper.SearchParameters = SearchParameters;\n\n/**\n * Constructor for the object containing the results of the search.\n * @member module:algoliasearchHelper.SearchResults\n * @type {SearchResults}\n */\nalgoliasearchHelper.SearchResults = SearchResults;\n\nmodule.exports = algoliasearchHelper;\n","'use strict';\n\nvar EventEmitter = require('@algolia/events');\nvar inherits = require('../functions/inherits');\n\n/**\n * A DerivedHelper is a way to create sub requests to\n * Algolia from a main helper.\n * @class\n * @classdesc The DerivedHelper provides an event based interface for search callbacks:\n * - search: when a search is triggered using the `search()` method.\n * - result: when the response is retrieved from Algolia and is processed.\n * This event contains a {@link SearchResults} object and the\n * {@link SearchParameters} corresponding to this answer.\n * @param {AlgoliaSearchHelper} mainHelper the main helper\n * @param {function} fn the function to create the derived state\n */\nfunction DerivedHelper(mainHelper, fn) {\n this.main = mainHelper;\n this.fn = fn;\n this.lastResults = null;\n}\n\ninherits(DerivedHelper, EventEmitter);\n\n/**\n * Detach this helper from the main helper\n * @return {undefined}\n * @throws Error if the derived helper is already detached\n */\nDerivedHelper.prototype.detach = function () {\n this.removeAllListeners();\n this.main.detachDerivedHelper(this);\n};\n\nDerivedHelper.prototype.getModifiedState = function (parameters) {\n return this.fn(parameters);\n};\n\nmodule.exports = DerivedHelper;\n","'use strict';\n\n/**\n * Functions to manipulate refinement lists\n *\n * The RefinementList is not formally defined through a prototype but is based\n * on a specific structure.\n *\n * @module SearchParameters.refinementList\n *\n * @typedef {string[]} SearchParameters.refinementList.Refinements\n * @typedef {Object.} SearchParameters.refinementList.RefinementList\n */\n\nvar defaultsPure = require('../functions/defaultsPure');\nvar omit = require('../functions/omit');\nvar objectHasKeys = require('../functions/objectHasKeys');\n\nvar lib = {\n /**\n * Adds a refinement to a RefinementList\n * @param {RefinementList} refinementList the initial list\n * @param {string} attribute the attribute to refine\n * @param {string} value the value of the refinement, if the value is not a string it will be converted\n * @return {RefinementList} a new and updated refinement list\n */\n addRefinement: function addRefinement(refinementList, attribute, value) {\n if (lib.isRefined(refinementList, attribute, value)) {\n return refinementList;\n }\n\n var valueAsString = '' + value;\n\n var facetRefinement = !refinementList[attribute]\n ? [valueAsString]\n : refinementList[attribute].concat(valueAsString);\n\n var mod = {};\n\n mod[attribute] = facetRefinement;\n\n return defaultsPure({}, mod, refinementList);\n },\n /**\n * Removes refinement(s) for an attribute:\n * - if the value is specified removes the refinement for the value on the attribute\n * - if no value is specified removes all the refinements for this attribute\n * @param {RefinementList} refinementList the initial list\n * @param {string} attribute the attribute to refine\n * @param {string} [value] the value of the refinement\n * @return {RefinementList} a new and updated refinement lst\n */\n removeRefinement: function removeRefinement(\n refinementList,\n attribute,\n value\n ) {\n if (value === undefined) {\n // we use the \"filter\" form of clearRefinement, since it leaves empty values as-is\n // the form with a string will remove the attribute completely\n return lib.clearRefinement(refinementList, function (v, f) {\n return attribute === f;\n });\n }\n\n var valueAsString = '' + value;\n\n return lib.clearRefinement(refinementList, function (v, f) {\n return attribute === f && valueAsString === v;\n });\n },\n /**\n * Toggles the refinement value for an attribute.\n * @param {RefinementList} refinementList the initial list\n * @param {string} attribute the attribute to refine\n * @param {string} value the value of the refinement\n * @return {RefinementList} a new and updated list\n */\n toggleRefinement: function toggleRefinement(\n refinementList,\n attribute,\n value\n ) {\n if (value === undefined)\n throw new Error('toggleRefinement should be used with a value');\n\n if (lib.isRefined(refinementList, attribute, value)) {\n return lib.removeRefinement(refinementList, attribute, value);\n }\n\n return lib.addRefinement(refinementList, attribute, value);\n },\n /**\n * Clear all or parts of a RefinementList. Depending on the arguments, three\n * kinds of behavior can happen:\n * - if no attribute is provided: clears the whole list\n * - if an attribute is provided as a string: clears the list for the specific attribute\n * - if an attribute is provided as a function: discards the elements for which the function returns true\n * @param {RefinementList} refinementList the initial list\n * @param {string} [attribute] the attribute or function to discard\n * @param {string} [refinementType] optional parameter to give more context to the attribute function\n * @return {RefinementList} a new and updated refinement list\n */\n clearRefinement: function clearRefinement(\n refinementList,\n attribute,\n refinementType\n ) {\n if (attribute === undefined) {\n // return the same object if the list is already empty\n // this is mainly for tests, as it doesn't have much impact on performance\n if (!objectHasKeys(refinementList)) {\n return refinementList;\n }\n return {};\n } else if (typeof attribute === 'string') {\n return omit(refinementList, [attribute]);\n } else if (typeof attribute === 'function') {\n var hasChanged = false;\n\n var newRefinementList = Object.keys(refinementList).reduce(function (\n memo,\n key\n ) {\n var values = refinementList[key] || [];\n var facetList = values.filter(function (value) {\n return !attribute(value, key, refinementType);\n });\n\n if (facetList.length !== values.length) {\n hasChanged = true;\n }\n // eslint-disable-next-line no-param-reassign\n memo[key] = facetList;\n\n return memo;\n },\n {});\n\n if (hasChanged) return newRefinementList;\n return refinementList;\n }\n\n // We return nothing if the attribute is not undefined, a string or a function,\n // as it is not a valid value for a refinement\n return undefined;\n },\n /**\n * Test if the refinement value is used for the attribute. If no refinement value\n * is provided, test if the refinementList contains any refinement for the\n * given attribute.\n * @param {RefinementList} refinementList the list of refinement\n * @param {string} attribute name of the attribute\n * @param {string} [refinementValue] value of the filter/refinement\n * @return {boolean} true if the attribute is refined, false otherwise\n */\n isRefined: function isRefined(refinementList, attribute, refinementValue) {\n var containsRefinements =\n Boolean(refinementList[attribute]) &&\n refinementList[attribute].length > 0;\n\n if (refinementValue === undefined || !containsRefinements) {\n return containsRefinements;\n }\n\n var refinementValueAsString = '' + refinementValue;\n\n return refinementList[attribute].indexOf(refinementValueAsString) !== -1;\n },\n};\n\nmodule.exports = lib;\n","'use strict';\n\nvar merge = require('../functions/merge');\nvar defaultsPure = require('../functions/defaultsPure');\nvar intersection = require('../functions/intersection');\nvar find = require('../functions/find');\nvar valToNumber = require('../functions/valToNumber');\nvar omit = require('../functions/omit');\nvar objectHasKeys = require('../functions/objectHasKeys');\nvar isValidUserToken = require('../utils/isValidUserToken');\n\nvar RefinementList = require('./RefinementList');\n\n/**\n * isEqual, but only for numeric refinement values, possible values:\n * - 5\n * - [5]\n * - [[5]]\n * - [[5,5],[4]]\n * @param {any} a numeric refinement value\n * @param {any} b numeric refinement value\n * @return {boolean} true if the values are equal\n */\nfunction isEqualNumericRefinement(a, b) {\n if (Array.isArray(a) && Array.isArray(b)) {\n return (\n a.length === b.length &&\n a.every(function (el, i) {\n return isEqualNumericRefinement(b[i], el);\n })\n );\n }\n return a === b;\n}\n\n/**\n * like _.find but using deep equality to be able to use it\n * to find arrays.\n * @private\n * @param {any[]} array array to search into (elements are base or array of base)\n * @param {any} searchedValue the value we're looking for (base or array of base)\n * @return {any} the searched value or undefined\n */\nfunction findArray(array, searchedValue) {\n return find(array, function (currentValue) {\n return isEqualNumericRefinement(currentValue, searchedValue);\n });\n}\n\n/**\n * The facet list is the structure used to store the list of values used to\n * filter a single attribute.\n * @typedef {string[]} SearchParameters.FacetList\n */\n\n/**\n * Structure to store numeric filters with the operator as the key. The supported operators\n * are `=`, `>`, `<`, `>=`, `<=` and `!=`.\n * @typedef {Object.>} SearchParameters.OperatorList\n */\n\n/**\n * SearchParameters is the data structure that contains all the information\n * usable for making a search to Algolia API. It doesn't do the search itself,\n * nor does it contains logic about the parameters.\n * It is an immutable object, therefore it has been created in a way that each\n * changes does not change the object itself but returns a copy with the\n * modification.\n * This object should probably not be instantiated outside of the helper. It will\n * be provided when needed. This object is documented for reference as you'll\n * get it from events generated by the {@link AlgoliaSearchHelper}.\n * If need be, instantiate the Helper from the factory function {@link SearchParameters.make}\n * @constructor\n * @classdesc contains all the parameters of a search\n * @param {object|SearchParameters} newParameters existing parameters or partial object\n * for the properties of a new SearchParameters\n * @see SearchParameters.make\n * @example SearchParameters of the first query in\n * the instant search demo\n{\n \"query\": \"\",\n \"disjunctiveFacets\": [\n \"customerReviewCount\",\n \"category\",\n \"salePrice_range\",\n \"manufacturer\"\n ],\n \"maxValuesPerFacet\": 30,\n \"page\": 0,\n \"hitsPerPage\": 10,\n \"facets\": [\n \"type\",\n \"shipping\"\n ]\n}\n */\nfunction SearchParameters(newParameters) {\n var params = newParameters\n ? SearchParameters._parseNumbers(newParameters)\n : {};\n\n if (params.userToken !== undefined && !isValidUserToken(params.userToken)) {\n // eslint-disable-next-line no-console\n console.warn(\n '[algoliasearch-helper] The `userToken` parameter is invalid. This can lead to wrong analytics.\\n - Format: [a-zA-Z0-9_-]{1,64}'\n );\n }\n /**\n * This attribute contains the list of all the conjunctive facets\n * used. This list will be added to requested facets in the\n * [facets attribute](https://www.algolia.com/doc/rest-api/search#param-facets) sent to algolia.\n * @member {string[]}\n */\n this.facets = params.facets || [];\n /**\n * This attribute contains the list of all the disjunctive facets\n * used. This list will be added to requested facets in the\n * [facets attribute](https://www.algolia.com/doc/rest-api/search#param-facets) sent to algolia.\n * @member {string[]}\n */\n this.disjunctiveFacets = params.disjunctiveFacets || [];\n /**\n * This attribute contains the list of all the hierarchical facets\n * used. This list will be added to requested facets in the\n * [facets attribute](https://www.algolia.com/doc/rest-api/search#param-facets) sent to algolia.\n * Hierarchical facets are a sub type of disjunctive facets that\n * let you filter faceted attributes hierarchically.\n * @member {string[]|object[]}\n */\n this.hierarchicalFacets = params.hierarchicalFacets || [];\n\n // Refinements\n /**\n * This attribute contains all the filters that need to be\n * applied on the conjunctive facets. Each facet must be properly\n * defined in the `facets` attribute.\n *\n * The key is the name of the facet, and the `FacetList` contains all\n * filters selected for the associated facet name.\n *\n * When querying algolia, the values stored in this attribute will\n * be translated into the `facetFilters` attribute.\n * @member {Object.}\n */\n this.facetsRefinements = params.facetsRefinements || {};\n /**\n * This attribute contains all the filters that need to be\n * excluded from the conjunctive facets. Each facet must be properly\n * defined in the `facets` attribute.\n *\n * The key is the name of the facet, and the `FacetList` contains all\n * filters excluded for the associated facet name.\n *\n * When querying algolia, the values stored in this attribute will\n * be translated into the `facetFilters` attribute.\n * @member {Object.}\n */\n this.facetsExcludes = params.facetsExcludes || {};\n /**\n * This attribute contains all the filters that need to be\n * applied on the disjunctive facets. Each facet must be properly\n * defined in the `disjunctiveFacets` attribute.\n *\n * The key is the name of the facet, and the `FacetList` contains all\n * filters selected for the associated facet name.\n *\n * When querying algolia, the values stored in this attribute will\n * be translated into the `facetFilters` attribute.\n * @member {Object.}\n */\n this.disjunctiveFacetsRefinements = params.disjunctiveFacetsRefinements || {};\n /**\n * This attribute contains all the filters that need to be\n * applied on the numeric attributes.\n *\n * The key is the name of the attribute, and the value is the\n * filters to apply to this attribute.\n *\n * When querying algolia, the values stored in this attribute will\n * be translated into the `numericFilters` attribute.\n * @member {Object.}\n */\n this.numericRefinements = params.numericRefinements || {};\n /**\n * This attribute contains all the tags used to refine the query.\n *\n * When querying algolia, the values stored in this attribute will\n * be translated into the `tagFilters` attribute.\n * @member {string[]}\n */\n this.tagRefinements = params.tagRefinements || [];\n /**\n * This attribute contains all the filters that need to be\n * applied on the hierarchical facets. Each facet must be properly\n * defined in the `hierarchicalFacets` attribute.\n *\n * The key is the name of the facet, and the `FacetList` contains all\n * filters selected for the associated facet name. The FacetList values\n * are structured as a string that contain the values for each level\n * separated by the configured separator.\n *\n * When querying algolia, the values stored in this attribute will\n * be translated into the `facetFilters` attribute.\n * @member {Object.}\n */\n this.hierarchicalFacetsRefinements =\n params.hierarchicalFacetsRefinements || {};\n\n // eslint-disable-next-line consistent-this\n var self = this;\n Object.keys(params).forEach(function (paramName) {\n var isKeyKnown = SearchParameters.PARAMETERS.indexOf(paramName) !== -1;\n var isValueDefined = params[paramName] !== undefined;\n\n if (!isKeyKnown && isValueDefined) {\n self[paramName] = params[paramName];\n }\n });\n}\n\n/**\n * List all the properties in SearchParameters and therefore all the known Algolia properties\n * This doesn't contain any beta/hidden features.\n * @private\n */\nSearchParameters.PARAMETERS = Object.keys(new SearchParameters());\n\n/**\n * @private\n * @param {object} partialState full or part of a state\n * @return {object} a new object with the number keys as number\n */\nSearchParameters._parseNumbers = function (partialState) {\n // Do not parse numbers again in SearchParameters, they ought to be parsed already\n if (partialState instanceof SearchParameters) return partialState;\n\n var numbers = {};\n\n var numberKeys = [\n 'aroundPrecision',\n 'aroundRadius',\n 'getRankingInfo',\n 'minWordSizefor2Typos',\n 'minWordSizefor1Typo',\n 'page',\n 'maxValuesPerFacet',\n 'distinct',\n 'minimumAroundRadius',\n 'hitsPerPage',\n 'minProximity',\n ];\n\n numberKeys.forEach(function (k) {\n var value = partialState[k];\n if (typeof value === 'string') {\n var parsedValue = parseFloat(value);\n // global isNaN is ok to use here, value is only number or NaN\n numbers[k] = isNaN(parsedValue) ? value : parsedValue;\n }\n });\n\n // there's two formats of insideBoundingBox, we need to parse\n // the one which is an array of float geo rectangles\n if (Array.isArray(partialState.insideBoundingBox)) {\n numbers.insideBoundingBox = partialState.insideBoundingBox.map(function (\n geoRect\n ) {\n if (Array.isArray(geoRect)) {\n return geoRect.map(function (value) {\n return parseFloat(value);\n });\n }\n return geoRect;\n });\n }\n\n if (partialState.numericRefinements) {\n var numericRefinements = {};\n Object.keys(partialState.numericRefinements).forEach(function (attribute) {\n var operators = partialState.numericRefinements[attribute] || {};\n numericRefinements[attribute] = {};\n Object.keys(operators).forEach(function (operator) {\n var values = operators[operator];\n var parsedValues = values.map(function (v) {\n if (Array.isArray(v)) {\n return v.map(function (vPrime) {\n if (typeof vPrime === 'string') {\n return parseFloat(vPrime);\n }\n return vPrime;\n });\n } else if (typeof v === 'string') {\n return parseFloat(v);\n }\n return v;\n });\n numericRefinements[attribute][operator] = parsedValues;\n });\n });\n numbers.numericRefinements = numericRefinements;\n }\n\n return merge({}, partialState, numbers);\n};\n\n/**\n * Factory for SearchParameters\n * @param {object|SearchParameters} newParameters existing parameters or partial\n * object for the properties of a new SearchParameters\n * @return {SearchParameters} frozen instance of SearchParameters\n */\nSearchParameters.make = function makeSearchParameters(newParameters) {\n var instance = new SearchParameters(newParameters);\n\n var hierarchicalFacets = newParameters.hierarchicalFacets || [];\n hierarchicalFacets.forEach(function (facet) {\n if (facet.rootPath) {\n var currentRefinement = instance.getHierarchicalRefinement(facet.name);\n\n if (\n currentRefinement.length > 0 &&\n currentRefinement[0].indexOf(facet.rootPath) !== 0\n ) {\n instance = instance.clearRefinements(facet.name);\n }\n\n // get it again in case it has been cleared\n currentRefinement = instance.getHierarchicalRefinement(facet.name);\n if (currentRefinement.length === 0) {\n instance = instance.toggleHierarchicalFacetRefinement(\n facet.name,\n facet.rootPath\n );\n }\n }\n });\n\n return instance;\n};\n\n/**\n * Validates the new parameters based on the previous state\n * @param {SearchParameters} currentState the current state\n * @param {object|SearchParameters} parameters the new parameters to set\n * @return {Error|null} Error if the modification is invalid, null otherwise\n */\nSearchParameters.validate = function (currentState, parameters) {\n var params = parameters || {};\n\n if (\n currentState.tagFilters &&\n params.tagRefinements &&\n params.tagRefinements.length > 0\n ) {\n return new Error(\n '[Tags] Cannot switch from the managed tag API to the advanced API. It is probably ' +\n 'an error, if it is really what you want, you should first clear the tags with clearTags method.'\n );\n }\n\n if (currentState.tagRefinements.length > 0 && params.tagFilters) {\n return new Error(\n '[Tags] Cannot switch from the advanced tag API to the managed API. It is probably ' +\n 'an error, if it is not, you should first clear the tags with clearTags method.'\n );\n }\n\n if (\n currentState.numericFilters &&\n params.numericRefinements &&\n objectHasKeys(params.numericRefinements)\n ) {\n return new Error(\n \"[Numeric filters] Can't switch from the advanced to the managed API. It\" +\n ' is probably an error, if this is really what you want, you have to first' +\n ' clear the numeric filters.'\n );\n }\n\n if (objectHasKeys(currentState.numericRefinements) && params.numericFilters) {\n return new Error(\n \"[Numeric filters] Can't switch from the managed API to the advanced. It\" +\n ' is probably an error, if this is really what you want, you have to first' +\n ' clear the numeric filters.'\n );\n }\n\n return null;\n};\n\nSearchParameters.prototype = {\n constructor: SearchParameters,\n\n /**\n * Remove all refinements (disjunctive + conjunctive + excludes + numeric filters)\n * @method\n * @param {undefined|string|SearchParameters.clearCallback} [attribute] optional string or function\n * - If not given, means to clear all the filters.\n * - If `string`, means to clear all refinements for the `attribute` named filter.\n * - If `function`, means to clear all the refinements that return truthy values.\n * @return {SearchParameters} new instance with filters cleared\n */\n clearRefinements: function clearRefinements(attribute) {\n var patch = {\n numericRefinements: this._clearNumericRefinements(attribute),\n facetsRefinements: RefinementList.clearRefinement(\n this.facetsRefinements,\n attribute,\n 'conjunctiveFacet'\n ),\n facetsExcludes: RefinementList.clearRefinement(\n this.facetsExcludes,\n attribute,\n 'exclude'\n ),\n disjunctiveFacetsRefinements: RefinementList.clearRefinement(\n this.disjunctiveFacetsRefinements,\n attribute,\n 'disjunctiveFacet'\n ),\n hierarchicalFacetsRefinements: RefinementList.clearRefinement(\n this.hierarchicalFacetsRefinements,\n attribute,\n 'hierarchicalFacet'\n ),\n };\n if (\n patch.numericRefinements === this.numericRefinements &&\n patch.facetsRefinements === this.facetsRefinements &&\n patch.facetsExcludes === this.facetsExcludes &&\n patch.disjunctiveFacetsRefinements ===\n this.disjunctiveFacetsRefinements &&\n patch.hierarchicalFacetsRefinements === this.hierarchicalFacetsRefinements\n ) {\n return this;\n }\n return this.setQueryParameters(patch);\n },\n /**\n * Remove all the refined tags from the SearchParameters\n * @method\n * @return {SearchParameters} new instance with tags cleared\n */\n clearTags: function clearTags() {\n if (this.tagFilters === undefined && this.tagRefinements.length === 0)\n return this;\n\n return this.setQueryParameters({\n tagFilters: undefined,\n tagRefinements: [],\n });\n },\n /**\n * Set the index.\n * @method\n * @param {string} index the index name\n * @return {SearchParameters} new instance\n */\n setIndex: function setIndex(index) {\n if (index === this.index) return this;\n\n return this.setQueryParameters({\n index: index,\n });\n },\n /**\n * Query setter\n * @method\n * @param {string} newQuery value for the new query\n * @return {SearchParameters} new instance\n */\n setQuery: function setQuery(newQuery) {\n if (newQuery === this.query) return this;\n\n return this.setQueryParameters({\n query: newQuery,\n });\n },\n /**\n * Page setter\n * @method\n * @param {number} newPage new page number\n * @return {SearchParameters} new instance\n */\n setPage: function setPage(newPage) {\n if (newPage === this.page) return this;\n\n return this.setQueryParameters({\n page: newPage,\n });\n },\n /**\n * Facets setter\n * The facets are the simple facets, used for conjunctive (and) faceting.\n * @method\n * @param {string[]} facets all the attributes of the algolia records used for conjunctive faceting\n * @return {SearchParameters} new instance\n */\n setFacets: function setFacets(facets) {\n return this.setQueryParameters({\n facets: facets,\n });\n },\n /**\n * Disjunctive facets setter\n * Change the list of disjunctive (or) facets the helper chan handle.\n * @method\n * @param {string[]} facets all the attributes of the algolia records used for disjunctive faceting\n * @return {SearchParameters} new instance\n */\n setDisjunctiveFacets: function setDisjunctiveFacets(facets) {\n return this.setQueryParameters({\n disjunctiveFacets: facets,\n });\n },\n /**\n * HitsPerPage setter\n * Hits per page represents the number of hits retrieved for this query\n * @method\n * @param {number} n number of hits retrieved per page of results\n * @return {SearchParameters} new instance\n */\n setHitsPerPage: function setHitsPerPage(n) {\n if (this.hitsPerPage === n) return this;\n\n return this.setQueryParameters({\n hitsPerPage: n,\n });\n },\n /**\n * typoTolerance setter\n * Set the value of typoTolerance\n * @method\n * @param {string} typoTolerance new value of typoTolerance (\"true\", \"false\", \"min\" or \"strict\")\n * @return {SearchParameters} new instance\n */\n setTypoTolerance: function setTypoTolerance(typoTolerance) {\n if (this.typoTolerance === typoTolerance) return this;\n\n return this.setQueryParameters({\n typoTolerance: typoTolerance,\n });\n },\n /**\n * Add a numeric filter for a given attribute\n * When value is an array, they are combined with OR\n * When value is a single value, it will combined with AND\n * @method\n * @param {string} attribute attribute to set the filter on\n * @param {string} operator operator of the filter (possible values: =, >, >=, <, <=, !=)\n * @param {number | number[]} value value of the filter\n * @return {SearchParameters} new instance\n * @example\n * // for price = 50 or 40\n * state.addNumericRefinement('price', '=', [50, 40]);\n * @example\n * // for size = 38 and 40\n * state.addNumericRefinement('size', '=', 38);\n * state.addNumericRefinement('size', '=', 40);\n */\n addNumericRefinement: function (attribute, operator, value) {\n var val = valToNumber(value);\n\n if (this.isNumericRefined(attribute, operator, val)) return this;\n\n var mod = merge({}, this.numericRefinements);\n\n mod[attribute] = merge({}, mod[attribute]);\n\n if (mod[attribute][operator]) {\n // Array copy\n mod[attribute][operator] = mod[attribute][operator].slice();\n // Add the element. Concat can't be used here because value can be an array.\n mod[attribute][operator].push(val);\n } else {\n mod[attribute][operator] = [val];\n }\n\n return this.setQueryParameters({\n numericRefinements: mod,\n });\n },\n /**\n * Get the list of conjunctive refinements for a single facet\n * @param {string} facetName name of the attribute used for faceting\n * @return {string[]} list of refinements\n */\n getConjunctiveRefinements: function (facetName) {\n if (!this.isConjunctiveFacet(facetName)) {\n return [];\n }\n return this.facetsRefinements[facetName] || [];\n },\n /**\n * Get the list of disjunctive refinements for a single facet\n * @param {string} facetName name of the attribute used for faceting\n * @return {string[]} list of refinements\n */\n getDisjunctiveRefinements: function (facetName) {\n if (!this.isDisjunctiveFacet(facetName)) {\n return [];\n }\n return this.disjunctiveFacetsRefinements[facetName] || [];\n },\n /**\n * Get the list of hierarchical refinements for a single facet\n * @param {string} facetName name of the attribute used for faceting\n * @return {string[]} list of refinements\n */\n getHierarchicalRefinement: function (facetName) {\n // we send an array but we currently do not support multiple\n // hierarchicalRefinements for a hierarchicalFacet\n return this.hierarchicalFacetsRefinements[facetName] || [];\n },\n /**\n * Get the list of exclude refinements for a single facet\n * @param {string} facetName name of the attribute used for faceting\n * @return {string[]} list of refinements\n */\n getExcludeRefinements: function (facetName) {\n if (!this.isConjunctiveFacet(facetName)) {\n return [];\n }\n return this.facetsExcludes[facetName] || [];\n },\n\n /**\n * Remove all the numeric filter for a given (attribute, operator)\n * @method\n * @param {string} attribute attribute to set the filter on\n * @param {string} [operator] operator of the filter (possible values: =, >, >=, <, <=, !=)\n * @param {number} [number] the value to be removed\n * @return {SearchParameters} new instance\n */\n removeNumericRefinement: function (attribute, operator, number) {\n var paramValue = number;\n if (paramValue !== undefined) {\n if (!this.isNumericRefined(attribute, operator, paramValue)) {\n return this;\n }\n return this.setQueryParameters({\n numericRefinements: this._clearNumericRefinements(function (\n value,\n key\n ) {\n return (\n key === attribute &&\n value.op === operator &&\n isEqualNumericRefinement(value.val, valToNumber(paramValue))\n );\n }),\n });\n } else if (operator !== undefined) {\n if (!this.isNumericRefined(attribute, operator)) return this;\n return this.setQueryParameters({\n numericRefinements: this._clearNumericRefinements(function (\n value,\n key\n ) {\n return key === attribute && value.op === operator;\n }),\n });\n }\n\n if (!this.isNumericRefined(attribute)) return this;\n return this.setQueryParameters({\n numericRefinements: this._clearNumericRefinements(function (value, key) {\n return key === attribute;\n }),\n });\n },\n /**\n * Get the list of numeric refinements for a single facet\n * @param {string} facetName name of the attribute used for faceting\n * @return {SearchParameters.OperatorList} list of refinements\n */\n getNumericRefinements: function (facetName) {\n return this.numericRefinements[facetName] || {};\n },\n /**\n * Return the current refinement for the (attribute, operator)\n * @param {string} attribute attribute in the record\n * @param {string} operator operator applied on the refined values\n * @return {Array.} refined values\n */\n getNumericRefinement: function (attribute, operator) {\n return (\n this.numericRefinements[attribute] &&\n this.numericRefinements[attribute][operator]\n );\n },\n /**\n * Clear numeric filters.\n * @method\n * @private\n * @param {string|SearchParameters.clearCallback} [attribute] optional string or function\n * - If not given, means to clear all the filters.\n * - If `string`, means to clear all refinements for the `attribute` named filter.\n * - If `function`, means to clear all the refinements that return truthy values.\n * @return {Object.} new numeric refinements\n */\n _clearNumericRefinements: function _clearNumericRefinements(attribute) {\n if (attribute === undefined) {\n if (!objectHasKeys(this.numericRefinements)) {\n return this.numericRefinements;\n }\n return {};\n } else if (typeof attribute === 'string') {\n return omit(this.numericRefinements, [attribute]);\n } else if (typeof attribute === 'function') {\n var hasChanged = false;\n var numericRefinements = this.numericRefinements;\n var newNumericRefinements = Object.keys(numericRefinements).reduce(\n function (memo, key) {\n var operators = numericRefinements[key];\n var operatorList = {};\n\n operators = operators || {};\n Object.keys(operators).forEach(function (operator) {\n var values = operators[operator] || [];\n var outValues = [];\n values.forEach(function (value) {\n var predicateResult = attribute(\n { val: value, op: operator },\n key,\n 'numeric'\n );\n if (!predicateResult) outValues.push(value);\n });\n if (outValues.length !== values.length) {\n hasChanged = true;\n }\n operatorList[operator] = outValues;\n });\n\n // eslint-disable-next-line no-param-reassign\n memo[key] = operatorList;\n\n return memo;\n },\n {}\n );\n\n if (hasChanged) return newNumericRefinements;\n return this.numericRefinements;\n }\n\n // We return nothing if the attribute is not undefined, a string or a function,\n // as it is not a valid value for a refinement\n return undefined;\n },\n /**\n * Add a facet to the facets attribute of the helper configuration, if it\n * isn't already present.\n * @method\n * @param {string} facet facet name to add\n * @return {SearchParameters} new instance\n */\n addFacet: function addFacet(facet) {\n if (this.isConjunctiveFacet(facet)) {\n return this;\n }\n\n return this.setQueryParameters({\n facets: this.facets.concat([facet]),\n });\n },\n /**\n * Add a disjunctive facet to the disjunctiveFacets attribute of the helper\n * configuration, if it isn't already present.\n * @method\n * @param {string} facet disjunctive facet name to add\n * @return {SearchParameters} new instance\n */\n addDisjunctiveFacet: function addDisjunctiveFacet(facet) {\n if (this.isDisjunctiveFacet(facet)) {\n return this;\n }\n\n return this.setQueryParameters({\n disjunctiveFacets: this.disjunctiveFacets.concat([facet]),\n });\n },\n /**\n * Add a hierarchical facet to the hierarchicalFacets attribute of the helper\n * configuration.\n * @method\n * @param {object} hierarchicalFacet hierarchical facet to add\n * @return {SearchParameters} new instance\n * @throws will throw an error if a hierarchical facet with the same name was already declared\n */\n addHierarchicalFacet: function addHierarchicalFacet(hierarchicalFacet) {\n if (this.isHierarchicalFacet(hierarchicalFacet.name)) {\n throw new Error(\n 'Cannot declare two hierarchical facets with the same name: `' +\n hierarchicalFacet.name +\n '`'\n );\n }\n\n return this.setQueryParameters({\n hierarchicalFacets: this.hierarchicalFacets.concat([hierarchicalFacet]),\n });\n },\n /**\n * Add a refinement on a \"normal\" facet\n * @method\n * @param {string} facet attribute to apply the faceting on\n * @param {string} value value of the attribute (will be converted to string)\n * @return {SearchParameters} new instance\n */\n addFacetRefinement: function addFacetRefinement(facet, value) {\n if (!this.isConjunctiveFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the facets attribute of the helper configuration'\n );\n }\n if (RefinementList.isRefined(this.facetsRefinements, facet, value))\n return this;\n\n return this.setQueryParameters({\n facetsRefinements: RefinementList.addRefinement(\n this.facetsRefinements,\n facet,\n value\n ),\n });\n },\n /**\n * Exclude a value from a \"normal\" facet\n * @method\n * @param {string} facet attribute to apply the exclusion on\n * @param {string} value value of the attribute (will be converted to string)\n * @return {SearchParameters} new instance\n */\n addExcludeRefinement: function addExcludeRefinement(facet, value) {\n if (!this.isConjunctiveFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the facets attribute of the helper configuration'\n );\n }\n if (RefinementList.isRefined(this.facetsExcludes, facet, value))\n return this;\n\n return this.setQueryParameters({\n facetsExcludes: RefinementList.addRefinement(\n this.facetsExcludes,\n facet,\n value\n ),\n });\n },\n /**\n * Adds a refinement on a disjunctive facet.\n * @method\n * @param {string} facet attribute to apply the faceting on\n * @param {string} value value of the attribute (will be converted to string)\n * @return {SearchParameters} new instance\n */\n addDisjunctiveFacetRefinement: function addDisjunctiveFacetRefinement(\n facet,\n value\n ) {\n if (!this.isDisjunctiveFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the disjunctiveFacets attribute of the helper configuration'\n );\n }\n\n if (\n RefinementList.isRefined(this.disjunctiveFacetsRefinements, facet, value)\n )\n return this;\n\n return this.setQueryParameters({\n disjunctiveFacetsRefinements: RefinementList.addRefinement(\n this.disjunctiveFacetsRefinements,\n facet,\n value\n ),\n });\n },\n /**\n * addTagRefinement adds a tag to the list used to filter the results\n * @param {string} tag tag to be added\n * @return {SearchParameters} new instance\n */\n addTagRefinement: function addTagRefinement(tag) {\n if (this.isTagRefined(tag)) return this;\n\n var modification = {\n tagRefinements: this.tagRefinements.concat(tag),\n };\n\n return this.setQueryParameters(modification);\n },\n /**\n * Remove a facet from the facets attribute of the helper configuration, if it\n * is present.\n * @method\n * @param {string} facet facet name to remove\n * @return {SearchParameters} new instance\n */\n removeFacet: function removeFacet(facet) {\n if (!this.isConjunctiveFacet(facet)) {\n return this;\n }\n\n return this.clearRefinements(facet).setQueryParameters({\n facets: this.facets.filter(function (f) {\n return f !== facet;\n }),\n });\n },\n /**\n * Remove a disjunctive facet from the disjunctiveFacets attribute of the\n * helper configuration, if it is present.\n * @method\n * @param {string} facet disjunctive facet name to remove\n * @return {SearchParameters} new instance\n */\n removeDisjunctiveFacet: function removeDisjunctiveFacet(facet) {\n if (!this.isDisjunctiveFacet(facet)) {\n return this;\n }\n\n return this.clearRefinements(facet).setQueryParameters({\n disjunctiveFacets: this.disjunctiveFacets.filter(function (f) {\n return f !== facet;\n }),\n });\n },\n /**\n * Remove a hierarchical facet from the hierarchicalFacets attribute of the\n * helper configuration, if it is present.\n * @method\n * @param {string} facet hierarchical facet name to remove\n * @return {SearchParameters} new instance\n */\n removeHierarchicalFacet: function removeHierarchicalFacet(facet) {\n if (!this.isHierarchicalFacet(facet)) {\n return this;\n }\n\n return this.clearRefinements(facet).setQueryParameters({\n hierarchicalFacets: this.hierarchicalFacets.filter(function (f) {\n return f.name !== facet;\n }),\n });\n },\n /**\n * Remove a refinement set on facet. If a value is provided, it will clear the\n * refinement for the given value, otherwise it will clear all the refinement\n * values for the faceted attribute.\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {string} [value] value used to filter\n * @return {SearchParameters} new instance\n */\n removeFacetRefinement: function removeFacetRefinement(facet, value) {\n if (!this.isConjunctiveFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the facets attribute of the helper configuration'\n );\n }\n if (!RefinementList.isRefined(this.facetsRefinements, facet, value))\n return this;\n\n return this.setQueryParameters({\n facetsRefinements: RefinementList.removeRefinement(\n this.facetsRefinements,\n facet,\n value\n ),\n });\n },\n /**\n * Remove a negative refinement on a facet\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {string} value value used to filter\n * @return {SearchParameters} new instance\n */\n removeExcludeRefinement: function removeExcludeRefinement(facet, value) {\n if (!this.isConjunctiveFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the facets attribute of the helper configuration'\n );\n }\n if (!RefinementList.isRefined(this.facetsExcludes, facet, value))\n return this;\n\n return this.setQueryParameters({\n facetsExcludes: RefinementList.removeRefinement(\n this.facetsExcludes,\n facet,\n value\n ),\n });\n },\n /**\n * Remove a refinement on a disjunctive facet\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {string} value value used to filter\n * @return {SearchParameters} new instance\n */\n removeDisjunctiveFacetRefinement: function removeDisjunctiveFacetRefinement(\n facet,\n value\n ) {\n if (!this.isDisjunctiveFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the disjunctiveFacets attribute of the helper configuration'\n );\n }\n if (\n !RefinementList.isRefined(this.disjunctiveFacetsRefinements, facet, value)\n )\n return this;\n\n return this.setQueryParameters({\n disjunctiveFacetsRefinements: RefinementList.removeRefinement(\n this.disjunctiveFacetsRefinements,\n facet,\n value\n ),\n });\n },\n /**\n * Remove a tag from the list of tag refinements\n * @method\n * @param {string} tag the tag to remove\n * @return {SearchParameters} new instance\n */\n removeTagRefinement: function removeTagRefinement(tag) {\n if (!this.isTagRefined(tag)) return this;\n\n var modification = {\n tagRefinements: this.tagRefinements.filter(function (t) {\n return t !== tag;\n }),\n };\n\n return this.setQueryParameters(modification);\n },\n /**\n * Generic toggle refinement method to use with facet, disjunctive facets\n * and hierarchical facets\n * @param {string} facet the facet to refine\n * @param {string} value the associated value\n * @return {SearchParameters} new instance\n * @throws will throw an error if the facet is not declared in the settings of the helper\n * @deprecated since version 2.19.0, see {@link SearchParameters#toggleFacetRefinement}\n */\n toggleRefinement: function toggleRefinement(facet, value) {\n return this.toggleFacetRefinement(facet, value);\n },\n /**\n * Generic toggle refinement method to use with facet, disjunctive facets\n * and hierarchical facets\n * @param {string} facet the facet to refine\n * @param {string} value the associated value\n * @return {SearchParameters} new instance\n * @throws will throw an error if the facet is not declared in the settings of the helper\n */\n toggleFacetRefinement: function toggleFacetRefinement(facet, value) {\n if (this.isHierarchicalFacet(facet)) {\n return this.toggleHierarchicalFacetRefinement(facet, value);\n } else if (this.isConjunctiveFacet(facet)) {\n return this.toggleConjunctiveFacetRefinement(facet, value);\n } else if (this.isDisjunctiveFacet(facet)) {\n return this.toggleDisjunctiveFacetRefinement(facet, value);\n }\n\n throw new Error(\n 'Cannot refine the undeclared facet ' +\n facet +\n '; it should be added to the helper options facets, disjunctiveFacets or hierarchicalFacets'\n );\n },\n /**\n * Switch the refinement applied over a facet/value\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {value} value value used for filtering\n * @return {SearchParameters} new instance\n */\n toggleConjunctiveFacetRefinement: function toggleConjunctiveFacetRefinement(\n facet,\n value\n ) {\n if (!this.isConjunctiveFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the facets attribute of the helper configuration'\n );\n }\n\n return this.setQueryParameters({\n facetsRefinements: RefinementList.toggleRefinement(\n this.facetsRefinements,\n facet,\n value\n ),\n });\n },\n /**\n * Switch the refinement applied over a facet/value\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {value} value value used for filtering\n * @return {SearchParameters} new instance\n */\n toggleExcludeFacetRefinement: function toggleExcludeFacetRefinement(\n facet,\n value\n ) {\n if (!this.isConjunctiveFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the facets attribute of the helper configuration'\n );\n }\n\n return this.setQueryParameters({\n facetsExcludes: RefinementList.toggleRefinement(\n this.facetsExcludes,\n facet,\n value\n ),\n });\n },\n /**\n * Switch the refinement applied over a facet/value\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {value} value value used for filtering\n * @return {SearchParameters} new instance\n */\n toggleDisjunctiveFacetRefinement: function toggleDisjunctiveFacetRefinement(\n facet,\n value\n ) {\n if (!this.isDisjunctiveFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the disjunctiveFacets attribute of the helper configuration'\n );\n }\n\n return this.setQueryParameters({\n disjunctiveFacetsRefinements: RefinementList.toggleRefinement(\n this.disjunctiveFacetsRefinements,\n facet,\n value\n ),\n });\n },\n /**\n * Switch the refinement applied over a facet/value\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {value} value value used for filtering\n * @return {SearchParameters} new instance\n */\n toggleHierarchicalFacetRefinement: function toggleHierarchicalFacetRefinement(\n facet,\n value\n ) {\n if (!this.isHierarchicalFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the hierarchicalFacets attribute of the helper configuration'\n );\n }\n\n var separator = this._getHierarchicalFacetSeparator(\n this.getHierarchicalFacetByName(facet)\n );\n\n var mod = {};\n\n var upOneOrMultipleLevel =\n this.hierarchicalFacetsRefinements[facet] !== undefined &&\n this.hierarchicalFacetsRefinements[facet].length > 0 &&\n // remove current refinement:\n // refinement was 'beer > IPA', call is toggleRefine('beer > IPA'), refinement should be `beer`\n (this.hierarchicalFacetsRefinements[facet][0] === value ||\n // remove a parent refinement of the current refinement:\n // - refinement was 'beer > IPA > Flying dog'\n // - call is toggleRefine('beer > IPA')\n // - refinement should be `beer`\n this.hierarchicalFacetsRefinements[facet][0].indexOf(\n value + separator\n ) === 0);\n\n if (upOneOrMultipleLevel) {\n if (value.indexOf(separator) === -1) {\n // go back to root level\n mod[facet] = [];\n } else {\n mod[facet] = [value.slice(0, value.lastIndexOf(separator))];\n }\n } else {\n mod[facet] = [value];\n }\n\n return this.setQueryParameters({\n hierarchicalFacetsRefinements: defaultsPure(\n {},\n mod,\n this.hierarchicalFacetsRefinements\n ),\n });\n },\n\n /**\n * Adds a refinement on a hierarchical facet.\n * @param {string} facet the facet name\n * @param {string} path the hierarchical facet path\n * @return {SearchParameter} the new state\n * @throws Error if the facet is not defined or if the facet is refined\n */\n addHierarchicalFacetRefinement: function (facet, path) {\n if (this.isHierarchicalFacetRefined(facet)) {\n throw new Error(facet + ' is already refined.');\n }\n if (!this.isHierarchicalFacet(facet)) {\n throw new Error(\n facet +\n ' is not defined in the hierarchicalFacets attribute of the helper configuration.'\n );\n }\n var mod = {};\n mod[facet] = [path];\n return this.setQueryParameters({\n hierarchicalFacetsRefinements: defaultsPure(\n {},\n mod,\n this.hierarchicalFacetsRefinements\n ),\n });\n },\n\n /**\n * Removes the refinement set on a hierarchical facet.\n * @param {string} facet the facet name\n * @return {SearchParameter} the new state\n * @throws Error if the facet is not defined or if the facet is not refined\n */\n removeHierarchicalFacetRefinement: function (facet) {\n if (!this.isHierarchicalFacetRefined(facet)) {\n return this;\n }\n var mod = {};\n mod[facet] = [];\n return this.setQueryParameters({\n hierarchicalFacetsRefinements: defaultsPure(\n {},\n mod,\n this.hierarchicalFacetsRefinements\n ),\n });\n },\n /**\n * Switch the tag refinement\n * @method\n * @param {string} tag the tag to remove or add\n * @return {SearchParameters} new instance\n */\n toggleTagRefinement: function toggleTagRefinement(tag) {\n if (this.isTagRefined(tag)) {\n return this.removeTagRefinement(tag);\n }\n\n return this.addTagRefinement(tag);\n },\n /**\n * Test if the facet name is from one of the disjunctive facets\n * @method\n * @param {string} facet facet name to test\n * @return {boolean} true if facet is a disjunctive facet\n */\n isDisjunctiveFacet: function (facet) {\n return this.disjunctiveFacets.indexOf(facet) > -1;\n },\n /**\n * Test if the facet name is from one of the hierarchical facets\n * @method\n * @param {string} facetName facet name to test\n * @return {boolean} true if facetName is a hierarchical facet\n */\n isHierarchicalFacet: function (facetName) {\n return this.getHierarchicalFacetByName(facetName) !== undefined;\n },\n /**\n * Test if the facet name is from one of the conjunctive/normal facets\n * @method\n * @param {string} facet facet name to test\n * @return {boolean} true if facet is a conjunctive facet\n */\n isConjunctiveFacet: function (facet) {\n return this.facets.indexOf(facet) > -1;\n },\n /**\n * Returns true if the facet is refined, either for a specific value or in\n * general.\n * @method\n * @param {string} facet name of the attribute for used for faceting\n * @param {string} value, optional value. If passed will test that this value\n * is filtering the given facet.\n * @return {boolean} returns true if refined\n */\n isFacetRefined: function isFacetRefined(facet, value) {\n if (!this.isConjunctiveFacet(facet)) {\n return false;\n }\n return RefinementList.isRefined(this.facetsRefinements, facet, value);\n },\n /**\n * Returns true if the facet contains exclusions or if a specific value is\n * excluded.\n *\n * @method\n * @param {string} facet name of the attribute for used for faceting\n * @param {string} [value] optional value. If passed will test that this value\n * is filtering the given facet.\n * @return {boolean} returns true if refined\n */\n isExcludeRefined: function isExcludeRefined(facet, value) {\n if (!this.isConjunctiveFacet(facet)) {\n return false;\n }\n return RefinementList.isRefined(this.facetsExcludes, facet, value);\n },\n /**\n * Returns true if the facet contains a refinement, or if a value passed is a\n * refinement for the facet.\n * @method\n * @param {string} facet name of the attribute for used for faceting\n * @param {string} value optional, will test if the value is used for refinement\n * if there is one, otherwise will test if the facet contains any refinement\n * @return {boolean} true if the facet is refined\n */\n isDisjunctiveFacetRefined: function isDisjunctiveFacetRefined(facet, value) {\n if (!this.isDisjunctiveFacet(facet)) {\n return false;\n }\n return RefinementList.isRefined(\n this.disjunctiveFacetsRefinements,\n facet,\n value\n );\n },\n /**\n * Returns true if the facet contains a refinement, or if a value passed is a\n * refinement for the facet.\n * @method\n * @param {string} facet name of the attribute for used for faceting\n * @param {string} value optional, will test if the value is used for refinement\n * if there is one, otherwise will test if the facet contains any refinement\n * @return {boolean} true if the facet is refined\n */\n isHierarchicalFacetRefined: function isHierarchicalFacetRefined(\n facet,\n value\n ) {\n if (!this.isHierarchicalFacet(facet)) {\n return false;\n }\n\n var refinements = this.getHierarchicalRefinement(facet);\n\n if (!value) {\n return refinements.length > 0;\n }\n\n return refinements.indexOf(value) !== -1;\n },\n /**\n * Test if the triple (attribute, operator, value) is already refined.\n * If only the attribute and the operator are provided, it tests if the\n * contains any refinement value.\n * @method\n * @param {string} attribute attribute for which the refinement is applied\n * @param {string} [operator] operator of the refinement\n * @param {string} [value] value of the refinement\n * @return {boolean} true if it is refined\n */\n isNumericRefined: function isNumericRefined(attribute, operator, value) {\n if (value === undefined && operator === undefined) {\n return Boolean(this.numericRefinements[attribute]);\n }\n\n var isOperatorDefined =\n this.numericRefinements[attribute] &&\n this.numericRefinements[attribute][operator] !== undefined;\n\n if (value === undefined || !isOperatorDefined) {\n return isOperatorDefined;\n }\n\n var parsedValue = valToNumber(value);\n var isAttributeValueDefined =\n findArray(this.numericRefinements[attribute][operator], parsedValue) !==\n undefined;\n\n return isOperatorDefined && isAttributeValueDefined;\n },\n /**\n * Returns true if the tag refined, false otherwise\n * @method\n * @param {string} tag the tag to check\n * @return {boolean} true if tag is refined\n */\n isTagRefined: function isTagRefined(tag) {\n return this.tagRefinements.indexOf(tag) !== -1;\n },\n /**\n * Returns the list of all disjunctive facets refined\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {value} value value used for filtering\n * @return {string[]} returns the list of refinements\n */\n getRefinedDisjunctiveFacets: function getRefinedDisjunctiveFacets() {\n // eslint-disable-next-line consistent-this\n var self = this;\n\n // attributes used for numeric filter can also be disjunctive\n var disjunctiveNumericRefinedFacets = intersection(\n Object.keys(this.numericRefinements).filter(function (facet) {\n return Object.keys(self.numericRefinements[facet]).length > 0;\n }),\n this.disjunctiveFacets\n );\n\n return Object.keys(this.disjunctiveFacetsRefinements)\n .filter(function (facet) {\n return self.disjunctiveFacetsRefinements[facet].length > 0;\n })\n .concat(disjunctiveNumericRefinedFacets)\n .concat(this.getRefinedHierarchicalFacets());\n },\n /**\n * Returns the list of all disjunctive facets refined\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {value} value value used for filtering\n * @return {string[]} returns the list of refinements\n */\n getRefinedHierarchicalFacets: function getRefinedHierarchicalFacets() {\n // eslint-disable-next-line consistent-this\n var self = this;\n return intersection(\n // enforce the order between the two arrays,\n // so that refinement name index === hierarchical facet index\n this.hierarchicalFacets.map(function (facet) {\n return facet.name;\n }),\n Object.keys(this.hierarchicalFacetsRefinements).filter(function (facet) {\n return self.hierarchicalFacetsRefinements[facet].length > 0;\n })\n );\n },\n /**\n * Returned the list of all disjunctive facets not refined\n * @method\n * @return {string[]} returns the list of facets that are not refined\n */\n getUnrefinedDisjunctiveFacets: function () {\n var refinedFacets = this.getRefinedDisjunctiveFacets();\n\n return this.disjunctiveFacets.filter(function (f) {\n return refinedFacets.indexOf(f) === -1;\n });\n },\n\n managedParameters: [\n 'index',\n\n 'facets',\n 'disjunctiveFacets',\n 'facetsRefinements',\n 'hierarchicalFacets',\n 'facetsExcludes',\n\n 'disjunctiveFacetsRefinements',\n 'numericRefinements',\n 'tagRefinements',\n 'hierarchicalFacetsRefinements',\n ],\n\n getQueryParams: function getQueryParams() {\n var managedParameters = this.managedParameters;\n\n var queryParams = {};\n\n // eslint-disable-next-line consistent-this\n var self = this;\n Object.keys(this).forEach(function (paramName) {\n var paramValue = self[paramName];\n if (\n managedParameters.indexOf(paramName) === -1 &&\n paramValue !== undefined\n ) {\n queryParams[paramName] = paramValue;\n }\n });\n\n return queryParams;\n },\n /**\n * Let the user set a specific value for a given parameter. Will return the\n * same instance if the parameter is invalid or if the value is the same as the\n * previous one.\n * @method\n * @param {string} parameter the parameter name\n * @param {any} value the value to be set, must be compliant with the definition\n * of the attribute on the object\n * @return {SearchParameters} the updated state\n */\n setQueryParameter: function setParameter(parameter, value) {\n if (this[parameter] === value) return this;\n\n var modification = {};\n\n modification[parameter] = value;\n\n return this.setQueryParameters(modification);\n },\n /**\n * Let the user set any of the parameters with a plain object.\n * @method\n * @param {object} params all the keys and the values to be updated\n * @return {SearchParameters} a new updated instance\n */\n setQueryParameters: function setQueryParameters(params) {\n if (!params) return this;\n\n var error = SearchParameters.validate(this, params);\n\n if (error) {\n throw error;\n }\n\n // eslint-disable-next-line consistent-this\n var self = this;\n var nextWithNumbers = SearchParameters._parseNumbers(params);\n var previousPlainObject = Object.keys(this).reduce(function (acc, key) {\n // eslint-disable-next-line no-param-reassign\n acc[key] = self[key];\n return acc;\n }, {});\n\n var nextPlainObject = Object.keys(nextWithNumbers).reduce(function (\n previous,\n key\n ) {\n var isPreviousValueDefined = previous[key] !== undefined;\n var isNextValueDefined = nextWithNumbers[key] !== undefined;\n\n if (isPreviousValueDefined && !isNextValueDefined) {\n return omit(previous, [key]);\n }\n\n if (isNextValueDefined) {\n // eslint-disable-next-line no-param-reassign\n previous[key] = nextWithNumbers[key];\n }\n\n return previous;\n },\n previousPlainObject);\n\n return new this.constructor(nextPlainObject);\n },\n\n /**\n * Returns a new instance with the page reset. Two scenarios possible:\n * the page is omitted -> return the given instance\n * the page is set -> return a new instance with a page of 0\n * @return {SearchParameters} a new updated instance\n */\n resetPage: function () {\n if (this.page === undefined) {\n return this;\n }\n\n return this.setPage(0);\n },\n\n /**\n * Helper function to get the hierarchicalFacet separator or the default one (`>`)\n * @param {object} hierarchicalFacet the hierarchicalFacet object\n * @return {string} returns the hierarchicalFacet.separator or `>` as default\n */\n _getHierarchicalFacetSortBy: function (hierarchicalFacet) {\n return hierarchicalFacet.sortBy || ['isRefined:desc', 'name:asc'];\n },\n\n /**\n * Helper function to get the hierarchicalFacet separator or the default one (`>`)\n * @private\n * @param {object} hierarchicalFacet the hierarchicalFacet object\n * @return {string} returns the hierarchicalFacet.separator or `>` as default\n */\n _getHierarchicalFacetSeparator: function (hierarchicalFacet) {\n return hierarchicalFacet.separator || ' > ';\n },\n\n /**\n * Helper function to get the hierarchicalFacet prefix path or null\n * @private\n * @param {object} hierarchicalFacet the hierarchicalFacet object\n * @return {string} returns the hierarchicalFacet.rootPath or null as default\n */\n _getHierarchicalRootPath: function (hierarchicalFacet) {\n return hierarchicalFacet.rootPath || null;\n },\n\n /**\n * Helper function to check if we show the parent level of the hierarchicalFacet\n * @private\n * @param {object} hierarchicalFacet the hierarchicalFacet object\n * @return {string} returns the hierarchicalFacet.showParentLevel or true as default\n */\n _getHierarchicalShowParentLevel: function (hierarchicalFacet) {\n if (typeof hierarchicalFacet.showParentLevel === 'boolean') {\n return hierarchicalFacet.showParentLevel;\n }\n return true;\n },\n\n /**\n * Helper function to get the hierarchicalFacet by it's name\n * @param {string} hierarchicalFacetName the hierarchicalFacet name\n * @return {object} a hierarchicalFacet\n */\n getHierarchicalFacetByName: function (hierarchicalFacetName) {\n return find(this.hierarchicalFacets, function (f) {\n return f.name === hierarchicalFacetName;\n });\n },\n\n /**\n * Get the current breadcrumb for a hierarchical facet, as an array\n * @param {string} facetName Hierarchical facet name\n * @return {array.} the path as an array of string\n */\n getHierarchicalFacetBreadcrumb: function (facetName) {\n if (!this.isHierarchicalFacet(facetName)) {\n return [];\n }\n\n var refinement = this.getHierarchicalRefinement(facetName)[0];\n if (!refinement) return [];\n\n var separator = this._getHierarchicalFacetSeparator(\n this.getHierarchicalFacetByName(facetName)\n );\n var path = refinement.split(separator);\n return path.map(function (part) {\n return part.trim();\n });\n },\n\n toString: function () {\n return JSON.stringify(this, null, 2);\n },\n};\n\n/**\n * Callback used for clearRefinement method\n * @callback SearchParameters.clearCallback\n * @param {OperatorList|FacetList} value the value of the filter\n * @param {string} key the current attribute name\n * @param {string} type `numeric`, `disjunctiveFacet`, `conjunctiveFacet`, `hierarchicalFacet` or `exclude`\n * depending on the type of facet\n * @return {boolean} `true` if the element should be removed. `false` otherwise.\n */\nmodule.exports = SearchParameters;\n","'use strict';\n\nmodule.exports = generateTrees;\n\nvar orderBy = require('../functions/orderBy');\nvar find = require('../functions/find');\nvar prepareHierarchicalFacetSortBy = require('../functions/formatSort');\nvar fv = require('../functions/escapeFacetValue');\nvar escapeFacetValue = fv.escapeFacetValue;\nvar unescapeFacetValue = fv.unescapeFacetValue;\n\nfunction generateTrees(state) {\n return function generate(hierarchicalFacetResult, hierarchicalFacetIndex) {\n var hierarchicalFacet = state.hierarchicalFacets[hierarchicalFacetIndex];\n var hierarchicalFacetRefinement =\n (state.hierarchicalFacetsRefinements[hierarchicalFacet.name] &&\n state.hierarchicalFacetsRefinements[hierarchicalFacet.name][0]) ||\n '';\n var hierarchicalSeparator =\n state._getHierarchicalFacetSeparator(hierarchicalFacet);\n var hierarchicalRootPath =\n state._getHierarchicalRootPath(hierarchicalFacet);\n var hierarchicalShowParentLevel =\n state._getHierarchicalShowParentLevel(hierarchicalFacet);\n var sortBy = prepareHierarchicalFacetSortBy(\n state._getHierarchicalFacetSortBy(hierarchicalFacet)\n );\n\n var rootExhaustive = hierarchicalFacetResult.every(function (facetResult) {\n return facetResult.exhaustive;\n });\n\n var generateTreeFn = generateHierarchicalTree(\n sortBy,\n hierarchicalSeparator,\n hierarchicalRootPath,\n hierarchicalShowParentLevel,\n hierarchicalFacetRefinement\n );\n\n var results = hierarchicalFacetResult;\n\n if (hierarchicalRootPath) {\n results = hierarchicalFacetResult.slice(\n hierarchicalRootPath.split(hierarchicalSeparator).length\n );\n }\n\n return results.reduce(generateTreeFn, {\n name: state.hierarchicalFacets[hierarchicalFacetIndex].name,\n count: null, // root level, no count\n isRefined: true, // root level, always refined\n path: null, // root level, no path\n escapedValue: null,\n exhaustive: rootExhaustive,\n data: null,\n });\n };\n}\n\nfunction generateHierarchicalTree(\n sortBy,\n hierarchicalSeparator,\n hierarchicalRootPath,\n hierarchicalShowParentLevel,\n currentRefinement\n) {\n return function generateTree(\n hierarchicalTree,\n hierarchicalFacetResult,\n currentHierarchicalLevel\n ) {\n var parent = hierarchicalTree;\n\n if (currentHierarchicalLevel > 0) {\n var level = 0;\n\n parent = hierarchicalTree;\n\n while (level < currentHierarchicalLevel) {\n /**\n * @type {object[]]} hierarchical data\n */\n var data = parent && Array.isArray(parent.data) ? parent.data : [];\n parent = find(data, function (subtree) {\n return subtree.isRefined;\n });\n level++;\n }\n }\n\n // we found a refined parent, let's add current level data under it\n if (parent) {\n // filter values in case an object has multiple categories:\n // {\n // categories: {\n // level0: ['beers', 'bières'],\n // level1: ['beers > IPA', 'bières > Belges']\n // }\n // }\n //\n // If parent refinement is `beers`, then we do not want to have `bières > Belges`\n // showing up\n\n var picked = Object.keys(hierarchicalFacetResult.data)\n .map(function (facetValue) {\n return [facetValue, hierarchicalFacetResult.data[facetValue]];\n })\n .filter(function (tuple) {\n var facetValue = tuple[0];\n return onlyMatchingTree(\n facetValue,\n parent.path || hierarchicalRootPath,\n currentRefinement,\n hierarchicalSeparator,\n hierarchicalRootPath,\n hierarchicalShowParentLevel\n );\n });\n\n parent.data = orderBy(\n picked.map(function (tuple) {\n var facetValue = tuple[0];\n var facetCount = tuple[1];\n\n return format(\n facetCount,\n facetValue,\n hierarchicalSeparator,\n unescapeFacetValue(currentRefinement),\n hierarchicalFacetResult.exhaustive\n );\n }),\n sortBy[0],\n sortBy[1]\n );\n }\n\n return hierarchicalTree;\n };\n}\n\n// eslint-disable-next-line max-params\nfunction onlyMatchingTree(\n facetValue,\n parentPath,\n currentRefinement,\n hierarchicalSeparator,\n hierarchicalRootPath,\n hierarchicalShowParentLevel\n) {\n // we want the facetValue is a child of hierarchicalRootPath\n if (\n hierarchicalRootPath &&\n (facetValue.indexOf(hierarchicalRootPath) !== 0 ||\n hierarchicalRootPath === facetValue)\n ) {\n return false;\n }\n\n // we always want root levels (only when there is no prefix path)\n return (\n (!hierarchicalRootPath &&\n facetValue.indexOf(hierarchicalSeparator) === -1) ||\n // if there is a rootPath, being root level mean 1 level under rootPath\n (hierarchicalRootPath &&\n facetValue.split(hierarchicalSeparator).length -\n hierarchicalRootPath.split(hierarchicalSeparator).length ===\n 1) ||\n // if current refinement is a root level and current facetValue is a root level,\n // keep the facetValue\n (facetValue.indexOf(hierarchicalSeparator) === -1 &&\n currentRefinement.indexOf(hierarchicalSeparator) === -1) ||\n // currentRefinement is a child of the facet value\n currentRefinement.indexOf(facetValue) === 0 ||\n // facetValue is a child of the current parent, add it\n (facetValue.indexOf(parentPath + hierarchicalSeparator) === 0 &&\n (hierarchicalShowParentLevel ||\n facetValue.indexOf(currentRefinement) === 0))\n );\n}\n\nfunction format(\n facetCount,\n facetValue,\n hierarchicalSeparator,\n currentRefinement,\n exhaustive\n) {\n var parts = facetValue.split(hierarchicalSeparator);\n return {\n name: parts[parts.length - 1].trim(),\n path: facetValue,\n escapedValue: escapeFacetValue(facetValue),\n count: facetCount,\n isRefined:\n currentRefinement === facetValue ||\n currentRefinement.indexOf(facetValue + hierarchicalSeparator) === 0,\n exhaustive: exhaustive,\n data: null,\n };\n}\n","'use strict';\n\nvar merge = require('../functions/merge');\nvar defaultsPure = require('../functions/defaultsPure');\nvar orderBy = require('../functions/orderBy');\nvar compact = require('../functions/compact');\nvar find = require('../functions/find');\nvar findIndex = require('../functions/findIndex');\nvar formatSort = require('../functions/formatSort');\nvar fv = require('../functions/escapeFacetValue');\nvar escapeFacetValue = fv.escapeFacetValue;\nvar unescapeFacetValue = fv.unescapeFacetValue;\n\nvar generateHierarchicalTree = require('./generate-hierarchical-tree');\n\n/**\n * @typedef SearchResults.Facet\n * @type {object}\n * @property {string} name name of the attribute in the record\n * @property {object} data the faceting data: value, number of entries\n * @property {object} stats undefined unless facet_stats is retrieved from algolia\n */\n\n/**\n * @typedef SearchResults.HierarchicalFacet\n * @type {object}\n * @property {string} name name of the current value given the hierarchical level, trimmed.\n * If root node, you get the facet name\n * @property {number} count number of objects matching this hierarchical value\n * @property {string} path the current hierarchical value full path\n * @property {boolean} isRefined `true` if the current value was refined, `false` otherwise\n * @property {HierarchicalFacet[]} data sub values for the current level\n */\n\n/**\n * @typedef SearchResults.FacetValue\n * @type {object}\n * @property {string} name the facet value itself\n * @property {number} count times this facet appears in the results\n * @property {boolean} isRefined is the facet currently selected\n * @property {boolean} isExcluded is the facet currently excluded (only for conjunctive facets)\n */\n\n/**\n * @typedef Refinement\n * @type {object}\n * @property {string} type the type of filter used:\n * `numeric`, `facet`, `exclude`, `disjunctive`, `hierarchical`\n * @property {string} attributeName name of the attribute used for filtering\n * @property {string} name the value of the filter\n * @property {number} numericValue the value as a number. Only for numeric filters.\n * @property {string} operator the operator used. Only for numeric filters.\n * @property {number} count the number of computed hits for this filter. Only on facets.\n * @property {boolean} exhaustive if the count is exhaustive\n */\n\n/**\n * Turn an array of attributes in an object of attributes with their position in the array as value\n * @param {string[]} attributes the list of attributes in the record\n * @return {object} the list of attributes indexed by attribute name\n */\nfunction getIndices(attributes) {\n var indices = {};\n\n attributes.forEach(function (val, idx) {\n indices[val] = idx;\n });\n\n return indices;\n}\n\nfunction assignFacetStats(dest, facetStats, key) {\n if (facetStats && facetStats[key]) {\n // eslint-disable-next-line no-param-reassign\n dest.stats = facetStats[key];\n }\n}\n\n/**\n * @typedef {Object} HierarchicalFacet\n * @property {string} name\n * @property {string[]} attributes\n */\n\n/**\n * @param {HierarchicalFacet[]} hierarchicalFacets All hierarchical facets\n * @param {string} hierarchicalAttributeName The name of the hierarchical attribute\n * @return {HierarchicalFacet} The hierarchical facet matching the attribute name\n */\nfunction findMatchingHierarchicalFacetFromAttributeName(\n hierarchicalFacets,\n hierarchicalAttributeName\n) {\n return find(\n hierarchicalFacets,\n function facetKeyMatchesAttribute(hierarchicalFacet) {\n var facetNames = hierarchicalFacet.attributes || [];\n return facetNames.indexOf(hierarchicalAttributeName) > -1;\n }\n );\n}\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * Constructor for SearchResults\n * @class\n * @classdesc SearchResults contains the results of a query to Algolia using the\n * {@link AlgoliaSearchHelper}.\n * @param {SearchParameters} state state that led to the response\n * @param {array.} results the results from algolia client\n * @example SearchResults of the first query in\n * the instant search demo\n{\n \"hitsPerPage\": 10,\n \"processingTimeMS\": 2,\n \"facets\": [\n {\n \"name\": \"type\",\n \"data\": {\n \"HardGood\": 6627,\n \"BlackTie\": 550,\n \"Music\": 665,\n \"Software\": 131,\n \"Game\": 456,\n \"Movie\": 1571\n },\n \"exhaustive\": false\n },\n {\n \"exhaustive\": false,\n \"data\": {\n \"Free shipping\": 5507\n },\n \"name\": \"shipping\"\n }\n ],\n \"hits\": [\n {\n \"thumbnailImage\": \"http://img.bbystatic.com/BestBuy_US/images/products/1688/1688832_54x108_s.gif\",\n \"_highlightResult\": {\n \"shortDescription\": {\n \"matchLevel\": \"none\",\n \"value\": \"Safeguard your PC, Mac, Android and iOS devices with comprehensive Internet protection\",\n \"matchedWords\": []\n },\n \"category\": {\n \"matchLevel\": \"none\",\n \"value\": \"Computer Security Software\",\n \"matchedWords\": []\n },\n \"manufacturer\": {\n \"matchedWords\": [],\n \"value\": \"Webroot\",\n \"matchLevel\": \"none\"\n },\n \"name\": {\n \"value\": \"Webroot SecureAnywhere Internet Security (3-Device) (1-Year Subscription) - Mac/Windows\",\n \"matchedWords\": [],\n \"matchLevel\": \"none\"\n }\n },\n \"image\": \"http://img.bbystatic.com/BestBuy_US/images/products/1688/1688832_105x210_sc.jpg\",\n \"shipping\": \"Free shipping\",\n \"bestSellingRank\": 4,\n \"shortDescription\": \"Safeguard your PC, Mac, Android and iOS devices with comprehensive Internet protection\",\n \"url\": \"http://www.bestbuy.com/site/webroot-secureanywhere-internet-security-3-devi…d=1219060687969&skuId=1688832&cmp=RMX&ky=2d3GfEmNIzjA0vkzveHdZEBgpPCyMnLTJ\",\n \"name\": \"Webroot SecureAnywhere Internet Security (3-Device) (1-Year Subscription) - Mac/Windows\",\n \"category\": \"Computer Security Software\",\n \"salePrice_range\": \"1 - 50\",\n \"objectID\": \"1688832\",\n \"type\": \"Software\",\n \"customerReviewCount\": 5980,\n \"salePrice\": 49.99,\n \"manufacturer\": \"Webroot\"\n },\n ....\n ],\n \"nbHits\": 10000,\n \"disjunctiveFacets\": [\n {\n \"exhaustive\": false,\n \"data\": {\n \"5\": 183,\n \"12\": 112,\n \"7\": 149,\n ...\n },\n \"name\": \"customerReviewCount\",\n \"stats\": {\n \"max\": 7461,\n \"avg\": 157.939,\n \"min\": 1\n }\n },\n {\n \"data\": {\n \"Printer Ink\": 142,\n \"Wireless Speakers\": 60,\n \"Point & Shoot Cameras\": 48,\n ...\n },\n \"name\": \"category\",\n \"exhaustive\": false\n },\n {\n \"exhaustive\": false,\n \"data\": {\n \"> 5000\": 2,\n \"1 - 50\": 6524,\n \"501 - 2000\": 566,\n \"201 - 500\": 1501,\n \"101 - 200\": 1360,\n \"2001 - 5000\": 47\n },\n \"name\": \"salePrice_range\"\n },\n {\n \"data\": {\n \"Dynex™\": 202,\n \"Insignia™\": 230,\n \"PNY\": 72,\n ...\n },\n \"name\": \"manufacturer\",\n \"exhaustive\": false\n }\n ],\n \"query\": \"\",\n \"nbPages\": 100,\n \"page\": 0,\n \"index\": \"bestbuy\"\n}\n **/\nfunction SearchResults(state, results, options) {\n var mainSubResponse = results[0];\n\n this._rawResults = results;\n\n // eslint-disable-next-line consistent-this\n var self = this;\n\n // https://www.algolia.com/doc/api-reference/api-methods/search/#response\n Object.keys(mainSubResponse).forEach(function (key) {\n self[key] = mainSubResponse[key];\n });\n\n // Make every key of the result options reachable from the instance\n Object.keys(options || {}).forEach(function (key) {\n self[key] = options[key];\n });\n\n /**\n * query used to generate the results\n * @name query\n * @member {string}\n * @memberof SearchResults\n * @instance\n */\n /**\n * The query as parsed by the engine given all the rules.\n * @name parsedQuery\n * @member {string}\n * @memberof SearchResults\n * @instance\n */\n /**\n * all the records that match the search parameters. Each record is\n * augmented with a new attribute `_highlightResult`\n * which is an object keyed by attribute and with the following properties:\n * - `value` : the value of the facet highlighted (html)\n * - `matchLevel`: `full`, `partial` or `none`, depending on how the query terms match\n * @name hits\n * @member {object[]}\n * @memberof SearchResults\n * @instance\n */\n /**\n * index where the results come from\n * @name index\n * @member {string}\n * @memberof SearchResults\n * @instance\n */\n /**\n * number of hits per page requested\n * @name hitsPerPage\n * @member {number}\n * @memberof SearchResults\n * @instance\n */\n /**\n * total number of hits of this query on the index\n * @name nbHits\n * @member {number}\n * @memberof SearchResults\n * @instance\n */\n /**\n * total number of pages with respect to the number of hits per page and the total number of hits\n * @name nbPages\n * @member {number}\n * @memberof SearchResults\n * @instance\n */\n /**\n * current page\n * @name page\n * @member {number}\n * @memberof SearchResults\n * @instance\n */\n /**\n * The position if the position was guessed by IP.\n * @name aroundLatLng\n * @member {string}\n * @memberof SearchResults\n * @instance\n * @example \"48.8637,2.3615\",\n */\n /**\n * The radius computed by Algolia.\n * @name automaticRadius\n * @member {string}\n * @memberof SearchResults\n * @instance\n * @example \"126792922\",\n */\n /**\n * String identifying the server used to serve this request.\n *\n * getRankingInfo needs to be set to `true` for this to be returned\n *\n * @name serverUsed\n * @member {string}\n * @memberof SearchResults\n * @instance\n * @example \"c7-use-2.algolia.net\",\n */\n /**\n * Boolean that indicates if the computation of the counts did time out.\n * @deprecated\n * @name timeoutCounts\n * @member {boolean}\n * @memberof SearchResults\n * @instance\n */\n /**\n * Boolean that indicates if the computation of the hits did time out.\n * @deprecated\n * @name timeoutHits\n * @member {boolean}\n * @memberof SearchResults\n * @instance\n */\n /**\n * True if the counts of the facets is exhaustive\n * @name exhaustiveFacetsCount\n * @member {boolean}\n * @memberof SearchResults\n * @instance\n */\n /**\n * True if the number of hits is exhaustive\n * @name exhaustiveNbHits\n * @member {boolean}\n * @memberof SearchResults\n * @instance\n */\n /**\n * Contains the userData if they are set by a [query rule](https://www.algolia.com/doc/guides/query-rules/query-rules-overview/).\n * @name userData\n * @member {object[]}\n * @memberof SearchResults\n * @instance\n */\n /**\n * queryID is the unique identifier of the query used to generate the current search results.\n * This value is only available if the `clickAnalytics` search parameter is set to `true`.\n * @name queryID\n * @member {string}\n * @memberof SearchResults\n * @instance\n */\n\n /**\n * sum of the processing time of all the queries\n * @name processingTimeMS\n * @member {number}\n * @memberof SearchResults\n * @instance\n */\n this.processingTimeMS = results.reduce(function (sum, result) {\n return result.processingTimeMS === undefined\n ? sum\n : sum + result.processingTimeMS;\n }, 0);\n\n /**\n * disjunctive facets results\n * @member {SearchResults.Facet[]}\n */\n this.disjunctiveFacets = [];\n /**\n * disjunctive facets results\n * @member {SearchResults.HierarchicalFacet[]}\n */\n this.hierarchicalFacets = state.hierarchicalFacets.map(\n function initFutureTree() {\n return [];\n }\n );\n /**\n * other facets results\n * @member {SearchResults.Facet[]}\n */\n this.facets = [];\n\n var disjunctiveFacets = state.getRefinedDisjunctiveFacets();\n\n var facetsIndices = getIndices(state.facets);\n var disjunctiveFacetsIndices = getIndices(state.disjunctiveFacets);\n var nextDisjunctiveResult = 1;\n\n // Since we send request only for disjunctive facets that have been refined,\n // we get the facets information from the first, general, response.\n\n var mainFacets = mainSubResponse.facets || {};\n\n Object.keys(mainFacets).forEach(function (facetKey) {\n var facetValueObject = mainFacets[facetKey];\n\n var hierarchicalFacet = findMatchingHierarchicalFacetFromAttributeName(\n state.hierarchicalFacets,\n facetKey\n );\n\n if (hierarchicalFacet) {\n // Place the hierarchicalFacet data at the correct index depending on\n // the attributes order that was defined at the helper initialization\n var facetIndex = hierarchicalFacet.attributes.indexOf(facetKey);\n var idxAttributeName = findIndex(state.hierarchicalFacets, function (f) {\n return f.name === hierarchicalFacet.name;\n });\n self.hierarchicalFacets[idxAttributeName][facetIndex] = {\n attribute: facetKey,\n data: facetValueObject,\n exhaustive: mainSubResponse.exhaustiveFacetsCount,\n };\n } else {\n var isFacetDisjunctive = state.disjunctiveFacets.indexOf(facetKey) !== -1;\n var isFacetConjunctive = state.facets.indexOf(facetKey) !== -1;\n var position;\n\n if (isFacetDisjunctive) {\n position = disjunctiveFacetsIndices[facetKey];\n self.disjunctiveFacets[position] = {\n name: facetKey,\n data: facetValueObject,\n exhaustive: mainSubResponse.exhaustiveFacetsCount,\n };\n assignFacetStats(\n self.disjunctiveFacets[position],\n mainSubResponse.facets_stats,\n facetKey\n );\n }\n if (isFacetConjunctive) {\n position = facetsIndices[facetKey];\n self.facets[position] = {\n name: facetKey,\n data: facetValueObject,\n exhaustive: mainSubResponse.exhaustiveFacetsCount,\n };\n assignFacetStats(\n self.facets[position],\n mainSubResponse.facets_stats,\n facetKey\n );\n }\n }\n });\n\n // Make sure we do not keep holes within the hierarchical facets\n this.hierarchicalFacets = compact(this.hierarchicalFacets);\n\n // aggregate the refined disjunctive facets\n disjunctiveFacets.forEach(function (disjunctiveFacet) {\n var result = results[nextDisjunctiveResult];\n var facets = result && result.facets ? result.facets : {};\n var hierarchicalFacet = state.getHierarchicalFacetByName(disjunctiveFacet);\n\n // There should be only item in facets.\n Object.keys(facets).forEach(function (dfacet) {\n var facetResults = facets[dfacet];\n\n var position;\n\n if (hierarchicalFacet) {\n position = findIndex(state.hierarchicalFacets, function (f) {\n return f.name === hierarchicalFacet.name;\n });\n var attributeIndex = findIndex(\n self.hierarchicalFacets[position],\n function (f) {\n return f.attribute === dfacet;\n }\n );\n\n // previous refinements and no results so not able to find it\n if (attributeIndex === -1) {\n return;\n }\n\n self.hierarchicalFacets[position][attributeIndex].data = merge(\n {},\n self.hierarchicalFacets[position][attributeIndex].data,\n facetResults\n );\n } else {\n position = disjunctiveFacetsIndices[dfacet];\n\n var dataFromMainRequest =\n (mainSubResponse.facets && mainSubResponse.facets[dfacet]) || {};\n\n self.disjunctiveFacets[position] = {\n name: dfacet,\n data: defaultsPure({}, facetResults, dataFromMainRequest),\n exhaustive: result.exhaustiveFacetsCount,\n };\n assignFacetStats(\n self.disjunctiveFacets[position],\n result.facets_stats,\n dfacet\n );\n\n if (state.disjunctiveFacetsRefinements[dfacet]) {\n state.disjunctiveFacetsRefinements[dfacet].forEach(function (\n refinementValue\n ) {\n // add the disjunctive refinements if it is no more retrieved\n if (\n !self.disjunctiveFacets[position].data[refinementValue] &&\n state.disjunctiveFacetsRefinements[dfacet].indexOf(\n unescapeFacetValue(refinementValue)\n ) > -1\n ) {\n self.disjunctiveFacets[position].data[refinementValue] = 0;\n }\n });\n }\n }\n });\n nextDisjunctiveResult++;\n });\n\n // if we have some parent level values for hierarchical facets, merge them\n state.getRefinedHierarchicalFacets().forEach(function (refinedFacet) {\n var hierarchicalFacet = state.getHierarchicalFacetByName(refinedFacet);\n var separator = state._getHierarchicalFacetSeparator(hierarchicalFacet);\n\n var currentRefinement = state.getHierarchicalRefinement(refinedFacet);\n // if we are already at a root refinement (or no refinement at all), there is no\n // root level values request\n if (\n currentRefinement.length === 0 ||\n currentRefinement[0].split(separator).length < 2\n ) {\n return;\n }\n\n results.slice(nextDisjunctiveResult).forEach(function (result) {\n var facets = result && result.facets ? result.facets : {};\n\n Object.keys(facets).forEach(function (dfacet) {\n var facetResults = facets[dfacet];\n var position = findIndex(state.hierarchicalFacets, function (f) {\n return f.name === hierarchicalFacet.name;\n });\n var attributeIndex = findIndex(\n self.hierarchicalFacets[position],\n function (f) {\n return f.attribute === dfacet;\n }\n );\n\n // previous refinements and no results so not able to find it\n if (attributeIndex === -1) {\n return;\n }\n\n // when we always get root levels, if the hits refinement is `beers > IPA` (count: 5),\n // then the disjunctive values will be `beers` (count: 100),\n // but we do not want to display\n // | beers (100)\n // > IPA (5)\n // We want\n // | beers (5)\n // > IPA (5)\n var defaultData = {};\n\n if (currentRefinement.length > 0) {\n var root = currentRefinement[0].split(separator)[0];\n defaultData[root] =\n self.hierarchicalFacets[position][attributeIndex].data[root];\n }\n\n self.hierarchicalFacets[position][attributeIndex].data = defaultsPure(\n defaultData,\n facetResults,\n self.hierarchicalFacets[position][attributeIndex].data\n );\n });\n\n nextDisjunctiveResult++;\n });\n });\n\n // add the excludes\n Object.keys(state.facetsExcludes).forEach(function (facetName) {\n var excludes = state.facetsExcludes[facetName];\n var position = facetsIndices[facetName];\n\n self.facets[position] = {\n name: facetName,\n data: mainFacets[facetName],\n exhaustive: mainSubResponse.exhaustiveFacetsCount,\n };\n excludes.forEach(function (facetValue) {\n self.facets[position] = self.facets[position] || { name: facetName };\n self.facets[position].data = self.facets[position].data || {};\n self.facets[position].data[facetValue] = 0;\n });\n });\n\n /**\n * @type {Array}\n */\n this.hierarchicalFacets = this.hierarchicalFacets.map(\n generateHierarchicalTree(state)\n );\n\n /**\n * @type {Array}\n */\n this.facets = compact(this.facets);\n /**\n * @type {Array}\n */\n this.disjunctiveFacets = compact(this.disjunctiveFacets);\n\n this._state = state;\n}\n\n/**\n * Get a facet object with its name\n * @deprecated\n * @param {string} name name of the faceted attribute\n * @return {SearchResults.Facet} the facet object\n */\nSearchResults.prototype.getFacetByName = function (name) {\n function predicate(facet) {\n return facet.name === name;\n }\n\n return (\n find(this.facets, predicate) ||\n find(this.disjunctiveFacets, predicate) ||\n find(this.hierarchicalFacets, predicate)\n );\n};\n\n/**\n * Get the facet values of a specified attribute from a SearchResults object.\n * @private\n * @param {SearchResults} results the search results to search in\n * @param {string} attribute name of the faceted attribute to search for\n * @return {array|object} facet values. For the hierarchical facets it is an object.\n */\nfunction extractNormalizedFacetValues(results, attribute) {\n function predicate(facet) {\n return facet.name === attribute;\n }\n\n if (results._state.isConjunctiveFacet(attribute)) {\n var facet = find(results.facets, predicate);\n if (!facet) return [];\n\n return Object.keys(facet.data).map(function (name) {\n var value = escapeFacetValue(name);\n return {\n name: name,\n escapedValue: value,\n count: facet.data[name],\n isRefined: results._state.isFacetRefined(attribute, value),\n isExcluded: results._state.isExcludeRefined(attribute, name),\n };\n });\n } else if (results._state.isDisjunctiveFacet(attribute)) {\n var disjunctiveFacet = find(results.disjunctiveFacets, predicate);\n if (!disjunctiveFacet) return [];\n\n return Object.keys(disjunctiveFacet.data).map(function (name) {\n var value = escapeFacetValue(name);\n return {\n name: name,\n escapedValue: value,\n count: disjunctiveFacet.data[name],\n isRefined: results._state.isDisjunctiveFacetRefined(attribute, value),\n };\n });\n } else if (results._state.isHierarchicalFacet(attribute)) {\n var hierarchicalFacetValues = find(results.hierarchicalFacets, predicate);\n if (!hierarchicalFacetValues) return hierarchicalFacetValues;\n\n var hierarchicalFacet =\n results._state.getHierarchicalFacetByName(attribute);\n var separator =\n results._state._getHierarchicalFacetSeparator(hierarchicalFacet);\n var currentRefinement = unescapeFacetValue(\n results._state.getHierarchicalRefinement(attribute)[0] || ''\n );\n\n if (currentRefinement.indexOf(hierarchicalFacet.rootPath) === 0) {\n currentRefinement = currentRefinement.replace(\n hierarchicalFacet.rootPath + separator,\n ''\n );\n }\n\n var currentRefinementSplit = currentRefinement.split(separator);\n currentRefinementSplit.unshift(attribute);\n\n setIsRefined(hierarchicalFacetValues, currentRefinementSplit, 0);\n\n return hierarchicalFacetValues;\n }\n\n return undefined;\n}\n\n/**\n * Set the isRefined of a hierarchical facet result based on the current state.\n * @param {SearchResults.HierarchicalFacet} item Hierarchical facet to fix\n * @param {string[]} currentRefinement array of parts of the current hierarchical refinement\n * @param {number} depth recursion depth in the currentRefinement\n * @return {undefined} function mutates the item\n */\nfunction setIsRefined(item, currentRefinement, depth) {\n // eslint-disable-next-line no-param-reassign\n item.isRefined = item.name === currentRefinement[depth];\n if (item.data) {\n item.data.forEach(function (child) {\n setIsRefined(child, currentRefinement, depth + 1);\n });\n }\n}\n\n/**\n * Sort nodes of a hierarchical or disjunctive facet results\n * @private\n * @param {function} sortFn sort function to apply\n * @param {HierarchicalFacet|Array} node node upon which we want to apply the sort\n * @param {string[]} names attribute names\n * @param {number} [level=0] current index in the names array\n * @return {HierarchicalFacet|Array} sorted node\n */\nfunction recSort(sortFn, node, names, level) {\n // eslint-disable-next-line no-param-reassign\n level = level || 0;\n\n if (Array.isArray(node)) {\n return sortFn(node, names[level]);\n }\n\n if (!node.data || node.data.length === 0) {\n return node;\n }\n\n var children = node.data.map(function (childNode) {\n return recSort(sortFn, childNode, names, level + 1);\n });\n var sortedChildren = sortFn(children, names[level]);\n var newNode = defaultsPure({ data: sortedChildren }, node);\n return newNode;\n}\n\nSearchResults.DEFAULT_SORT = ['isRefined:desc', 'count:desc', 'name:asc'];\n\nfunction vanillaSortFn(order, data) {\n return data.sort(order);\n}\n\n/**\n * @typedef FacetOrdering\n * @type {Object}\n * @property {string[]} [order]\n * @property {'count' | 'alpha' | 'hidden'} [sortRemainingBy]\n */\n\n/**\n * Sorts facet arrays via their facet ordering\n * @param {Array} facetValues the values\n * @param {FacetOrdering} facetOrdering the ordering\n * @returns {Array} the sorted facet values\n */\nfunction sortViaFacetOrdering(facetValues, facetOrdering) {\n var orderedFacets = [];\n var remainingFacets = [];\n\n var order = facetOrdering.order || [];\n /**\n * an object with the keys being the values in order, the values their index:\n * ['one', 'two'] -> { one: 0, two: 1 }\n */\n var reverseOrder = order.reduce(function (acc, name, i) {\n // eslint-disable-next-line no-param-reassign\n acc[name] = i;\n return acc;\n }, {});\n\n facetValues.forEach(function (item) {\n // hierarchical facets get sorted using their raw name\n var name = item.path || item.name;\n if (reverseOrder[name] !== undefined) {\n orderedFacets[reverseOrder[name]] = item;\n } else {\n remainingFacets.push(item);\n }\n });\n\n orderedFacets = orderedFacets.filter(function (facet) {\n return facet;\n });\n\n var sortRemainingBy = facetOrdering.sortRemainingBy;\n var ordering;\n if (sortRemainingBy === 'hidden') {\n return orderedFacets;\n } else if (sortRemainingBy === 'alpha') {\n ordering = [\n ['path', 'name'],\n ['asc', 'asc'],\n ];\n } else {\n ordering = [['count'], ['desc']];\n }\n\n return orderedFacets.concat(\n orderBy(remainingFacets, ordering[0], ordering[1])\n );\n}\n\n/**\n * @param {SearchResults} results the search results class\n * @param {string} attribute the attribute to retrieve ordering of\n * @returns {FacetOrdering | undefined} the facet ordering\n */\nfunction getFacetOrdering(results, attribute) {\n return (\n results.renderingContent &&\n results.renderingContent.facetOrdering &&\n results.renderingContent.facetOrdering.values &&\n results.renderingContent.facetOrdering.values[attribute]\n );\n}\n\n/**\n * Get a the list of values for a given facet attribute. Those values are sorted\n * refinement first, descending count (bigger value on top), and name ascending\n * (alphabetical order). The sort formula can overridden using either string based\n * predicates or a function.\n *\n * This method will return all the values returned by the Algolia engine plus all\n * the values already refined. This means that it can happen that the\n * `maxValuesPerFacet` [configuration](https://www.algolia.com/doc/rest-api/search#param-maxValuesPerFacet)\n * might not be respected if you have facet values that are already refined.\n * @param {string} attribute attribute name\n * @param {object} opts configuration options.\n * @param {boolean} [opts.facetOrdering]\n * Force the use of facetOrdering from the result if a sortBy is present. If\n * sortBy isn't present, facetOrdering will be used automatically.\n * @param {Array. | function} opts.sortBy\n * When using strings, it consists of\n * the name of the [FacetValue](#SearchResults.FacetValue) or the\n * [HierarchicalFacet](#SearchResults.HierarchicalFacet) attributes with the\n * order (`asc` or `desc`). For example to order the value by count, the\n * argument would be `['count:asc']`.\n *\n * If only the attribute name is specified, the ordering defaults to the one\n * specified in the default value for this attribute.\n *\n * When not specified, the order is\n * ascending. This parameter can also be a function which takes two facet\n * values and should return a number, 0 if equal, 1 if the first argument is\n * bigger or -1 otherwise.\n *\n * The default value for this attribute `['isRefined:desc', 'count:desc', 'name:asc']`\n * @return {FacetValue[]|HierarchicalFacet|undefined} depending on the type of facet of\n * the attribute requested (hierarchical, disjunctive or conjunctive)\n * @example\n * helper.on('result', function(event){\n * //get values ordered only by name ascending using the string predicate\n * event.results.getFacetValues('city', {sortBy: ['name:asc']});\n * //get values ordered only by count ascending using a function\n * event.results.getFacetValues('city', {\n * // this is equivalent to ['count:asc']\n * sortBy: function(a, b) {\n * if (a.count === b.count) return 0;\n * if (a.count > b.count) return 1;\n * if (b.count > a.count) return -1;\n * }\n * });\n * });\n */\nSearchResults.prototype.getFacetValues = function (attribute, opts) {\n var facetValues = extractNormalizedFacetValues(this, attribute);\n if (!facetValues) {\n return undefined;\n }\n\n var options = defaultsPure({}, opts, {\n sortBy: SearchResults.DEFAULT_SORT,\n // if no sortBy is given, attempt to sort based on facetOrdering\n // if it is given, we still allow to sort via facet ordering first\n facetOrdering: !(opts && opts.sortBy),\n });\n\n // eslint-disable-next-line consistent-this\n var results = this;\n var attributes;\n if (Array.isArray(facetValues)) {\n attributes = [attribute];\n } else {\n var config = results._state.getHierarchicalFacetByName(facetValues.name);\n attributes = config.attributes;\n }\n\n return recSort(\n function (data, facetName) {\n if (options.facetOrdering) {\n var facetOrdering = getFacetOrdering(results, facetName);\n if (facetOrdering) {\n return sortViaFacetOrdering(data, facetOrdering);\n }\n }\n\n if (Array.isArray(options.sortBy)) {\n var order = formatSort(options.sortBy, SearchResults.DEFAULT_SORT);\n return orderBy(data, order[0], order[1]);\n } else if (typeof options.sortBy === 'function') {\n return vanillaSortFn(options.sortBy, data);\n }\n throw new Error(\n 'options.sortBy is optional but if defined it must be ' +\n 'either an array of string (predicates) or a sorting function'\n );\n },\n facetValues,\n attributes\n );\n};\n\n/**\n * Returns the facet stats if attribute is defined and the facet contains some.\n * Otherwise returns undefined.\n * @param {string} attribute name of the faceted attribute\n * @return {object} The stats of the facet\n */\nSearchResults.prototype.getFacetStats = function (attribute) {\n if (this._state.isConjunctiveFacet(attribute)) {\n return getFacetStatsIfAvailable(this.facets, attribute);\n } else if (this._state.isDisjunctiveFacet(attribute)) {\n return getFacetStatsIfAvailable(this.disjunctiveFacets, attribute);\n }\n\n return undefined;\n};\n\n/**\n * @typedef {Object} FacetListItem\n * @property {string} name\n */\n\n/**\n * @param {FacetListItem[]} facetList (has more items, but enough for here)\n * @param {string} facetName The attribute to look for\n * @return {object|undefined} The stats of the facet\n */\nfunction getFacetStatsIfAvailable(facetList, facetName) {\n var data = find(facetList, function (facet) {\n return facet.name === facetName;\n });\n return data && data.stats;\n}\n\n/**\n * Returns all refinements for all filters + tags. It also provides\n * additional information: count and exhaustiveness for each filter.\n *\n * See the [refinement type](#Refinement) for an exhaustive view of the available\n * data.\n *\n * Note that for a numeric refinement, results are grouped per operator, this\n * means that it will return responses for operators which are empty.\n *\n * @return {Array.} all the refinements\n */\nSearchResults.prototype.getRefinements = function () {\n var state = this._state;\n // eslint-disable-next-line consistent-this\n var results = this;\n var res = [];\n\n Object.keys(state.facetsRefinements).forEach(function (attributeName) {\n state.facetsRefinements[attributeName].forEach(function (name) {\n res.push(\n getRefinement(state, 'facet', attributeName, name, results.facets)\n );\n });\n });\n\n Object.keys(state.facetsExcludes).forEach(function (attributeName) {\n state.facetsExcludes[attributeName].forEach(function (name) {\n res.push(\n getRefinement(state, 'exclude', attributeName, name, results.facets)\n );\n });\n });\n\n Object.keys(state.disjunctiveFacetsRefinements).forEach(function (\n attributeName\n ) {\n state.disjunctiveFacetsRefinements[attributeName].forEach(function (name) {\n res.push(\n getRefinement(\n state,\n 'disjunctive',\n attributeName,\n name,\n results.disjunctiveFacets\n )\n );\n });\n });\n\n Object.keys(state.hierarchicalFacetsRefinements).forEach(function (\n attributeName\n ) {\n state.hierarchicalFacetsRefinements[attributeName].forEach(function (name) {\n res.push(\n getHierarchicalRefinement(\n state,\n attributeName,\n name,\n results.hierarchicalFacets\n )\n );\n });\n });\n\n Object.keys(state.numericRefinements).forEach(function (attributeName) {\n var operators = state.numericRefinements[attributeName];\n Object.keys(operators).forEach(function (operator) {\n operators[operator].forEach(function (value) {\n res.push({\n type: 'numeric',\n attributeName: attributeName,\n name: value,\n numericValue: value,\n operator: operator,\n });\n });\n });\n });\n\n state.tagRefinements.forEach(function (name) {\n res.push({ type: 'tag', attributeName: '_tags', name: name });\n });\n\n return res;\n};\n\n/**\n * @typedef {Object} Facet\n * @property {string} name\n * @property {Object} data\n * @property {boolean} exhaustive\n */\n\n/**\n * @param {SearchParameters} state the current state\n * @param {string} type the type of the refinement\n * @param {string} attributeName The attribute of the facet\n * @param {*} name The name of the facet\n * @param {Facet[]} resultsFacets facets from the results\n * @return {Refinement} the refinement\n */\nfunction getRefinement(state, type, attributeName, name, resultsFacets) {\n var facet = find(resultsFacets, function (f) {\n return f.name === attributeName;\n });\n var count = facet && facet.data && facet.data[name] ? facet.data[name] : 0;\n var exhaustive = (facet && facet.exhaustive) || false;\n\n return {\n type: type,\n attributeName: attributeName,\n name: name,\n count: count,\n exhaustive: exhaustive,\n };\n}\n\n/**\n * @param {SearchParameters} state the current state\n * @param {string} attributeName the attribute of the hierarchical facet\n * @param {string} name the name of the facet\n * @param {Facet[]} resultsFacets facets from the results\n * @return {HierarchicalFacet} the hierarchical facet\n */\nfunction getHierarchicalRefinement(state, attributeName, name, resultsFacets) {\n var facetDeclaration = state.getHierarchicalFacetByName(attributeName);\n var separator = state._getHierarchicalFacetSeparator(facetDeclaration);\n var split = name.split(separator);\n var rootFacet = find(resultsFacets, function (facet) {\n return facet.name === attributeName;\n });\n\n var facet = split.reduce(function (intermediateFacet, part) {\n var newFacet =\n intermediateFacet &&\n find(intermediateFacet.data, function (f) {\n return f.name === part;\n });\n return newFacet !== undefined ? newFacet : intermediateFacet;\n }, rootFacet);\n\n var count = (facet && facet.count) || 0;\n var exhaustive = (facet && facet.exhaustive) || false;\n var path = (facet && facet.path) || '';\n\n return {\n type: 'hierarchical',\n attributeName: attributeName,\n name: path,\n count: count,\n exhaustive: exhaustive,\n };\n}\n\nmodule.exports = SearchResults;\n","'use strict';\n\nvar SearchParameters = require('./SearchParameters');\nvar SearchResults = require('./SearchResults');\nvar DerivedHelper = require('./DerivedHelper');\nvar requestBuilder = require('./requestBuilder');\n\nvar EventEmitter = require('@algolia/events');\nvar inherits = require('./functions/inherits');\nvar objectHasKeys = require('./functions/objectHasKeys');\nvar omit = require('./functions/omit');\nvar merge = require('./functions/merge');\n\nvar version = require('./version');\nvar escapeFacetValue = require('./functions/escapeFacetValue').escapeFacetValue;\n\n/**\n * Event triggered when a parameter is set or updated\n * @event AlgoliaSearchHelper#event:change\n * @property {object} event\n * @property {SearchParameters} event.state the current parameters with the latest changes applied\n * @property {SearchResults} event.results the previous results received from Algolia. `null` before the first request\n * @example\n * helper.on('change', function(event) {\n * console.log('The parameters have changed');\n * });\n */\n\n/**\n * Event triggered when a main search is sent to Algolia\n * @event AlgoliaSearchHelper#event:search\n * @property {object} event\n * @property {SearchParameters} event.state the parameters used for this search\n * @property {SearchResults} event.results the results from the previous search. `null` if it is the first search.\n * @example\n * helper.on('search', function(event) {\n * console.log('Search sent');\n * });\n */\n\n/**\n * Event triggered when a search using `searchForFacetValues` is sent to Algolia\n * @event AlgoliaSearchHelper#event:searchForFacetValues\n * @property {object} event\n * @property {SearchParameters} event.state the parameters used for this search it is the first search.\n * @property {string} event.facet the facet searched into\n * @property {string} event.query the query used to search in the facets\n * @example\n * helper.on('searchForFacetValues', function(event) {\n * console.log('searchForFacetValues sent');\n * });\n */\n\n/**\n * Event triggered when a search using `searchOnce` is sent to Algolia\n * @event AlgoliaSearchHelper#event:searchOnce\n * @property {object} event\n * @property {SearchParameters} event.state the parameters used for this search it is the first search.\n * @example\n * helper.on('searchOnce', function(event) {\n * console.log('searchOnce sent');\n * });\n */\n\n/**\n * Event triggered when the results are retrieved from Algolia\n * @event AlgoliaSearchHelper#event:result\n * @property {object} event\n * @property {SearchResults} event.results the results received from Algolia\n * @property {SearchParameters} event.state the parameters used to query Algolia. Those might be different from the one in the helper instance (for example if the network is unreliable).\n * @example\n * helper.on('result', function(event) {\n * console.log('Search results received');\n * });\n */\n\n/**\n * Event triggered when Algolia sends back an error. For example, if an unknown parameter is\n * used, the error can be caught using this event.\n * @event AlgoliaSearchHelper#event:error\n * @property {object} event\n * @property {Error} event.error the error returned by the Algolia.\n * @example\n * helper.on('error', function(event) {\n * console.log('Houston we got a problem.');\n * });\n */\n\n/**\n * Event triggered when the queue of queries have been depleted (with any result or outdated queries)\n * @event AlgoliaSearchHelper#event:searchQueueEmpty\n * @example\n * helper.on('searchQueueEmpty', function() {\n * console.log('No more search pending');\n * // This is received before the result event if we're not expecting new results\n * });\n *\n * helper.search();\n */\n\n/**\n * Initialize a new AlgoliaSearchHelper\n * @class\n * @classdesc The AlgoliaSearchHelper is a class that ease the management of the\n * search. It provides an event based interface for search callbacks:\n * - change: when the internal search state is changed.\n * This event contains a {@link SearchParameters} object and the\n * {@link SearchResults} of the last result if any.\n * - search: when a search is triggered using the `search()` method.\n * - result: when the response is retrieved from Algolia and is processed.\n * This event contains a {@link SearchResults} object and the\n * {@link SearchParameters} corresponding to this answer.\n * - error: when the response is an error. This event contains the error returned by the server.\n * @param {AlgoliaSearch} client an AlgoliaSearch client\n * @param {string} index the index name to query\n * @param {SearchParameters | object} options an object defining the initial\n * config of the search. It doesn't have to be a {SearchParameters},\n * just an object containing the properties you need from it.\n */\nfunction AlgoliaSearchHelper(client, index, options) {\n if (typeof client.addAlgoliaAgent === 'function') {\n client.addAlgoliaAgent('JS Helper (' + version + ')');\n }\n\n this.setClient(client);\n var opts = options || {};\n opts.index = index;\n this.state = SearchParameters.make(opts);\n this.lastResults = null;\n this._queryId = 0;\n this._lastQueryIdReceived = -1;\n this.derivedHelpers = [];\n this._currentNbQueries = 0;\n}\n\ninherits(AlgoliaSearchHelper, EventEmitter);\n\n/**\n * Start the search with the parameters set in the state. When the\n * method is called, it triggers a `search` event. The results will\n * be available through the `result` event. If an error occurs, an\n * `error` will be fired instead.\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires search\n * @fires result\n * @fires error\n * @chainable\n */\nAlgoliaSearchHelper.prototype.search = function () {\n this._search({ onlyWithDerivedHelpers: false });\n return this;\n};\n\nAlgoliaSearchHelper.prototype.searchOnlyWithDerivedHelpers = function () {\n this._search({ onlyWithDerivedHelpers: true });\n return this;\n};\n\n/**\n * Gets the search query parameters that would be sent to the Algolia Client\n * for the hits\n * @return {object} Query Parameters\n */\nAlgoliaSearchHelper.prototype.getQuery = function () {\n var state = this.state;\n return requestBuilder._getHitsSearchParams(state);\n};\n\n/**\n * Start a search using a modified version of the current state. This method does\n * not trigger the helper lifecycle and does not modify the state kept internally\n * by the helper. This second aspect means that the next search call will be the\n * same as a search call before calling searchOnce.\n * @param {object} options can contain all the parameters that can be set to SearchParameters\n * plus the index\n * @param {function} [cb] optional callback executed when the response from the\n * server is back.\n * @return {promise|undefined} if a callback is passed the method returns undefined\n * otherwise it returns a promise containing an object with two keys :\n * - content with a SearchResults\n * - state with the state used for the query as a SearchParameters\n * @example\n * // Changing the number of records returned per page to 1\n * // This example uses the callback API\n * var state = helper.searchOnce({hitsPerPage: 1},\n * function(error, content, state) {\n * // if an error occurred it will be passed in error, otherwise its value is null\n * // content contains the results formatted as a SearchResults\n * // state is the instance of SearchParameters used for this search\n * });\n * @example\n * // Changing the number of records returned per page to 1\n * // This example uses the promise API\n * var state1 = helper.searchOnce({hitsPerPage: 1})\n * .then(promiseHandler);\n *\n * function promiseHandler(res) {\n * // res contains\n * // {\n * // content : SearchResults\n * // state : SearchParameters (the one used for this specific search)\n * // }\n * }\n */\nAlgoliaSearchHelper.prototype.searchOnce = function (options, cb) {\n var tempState = !options\n ? this.state\n : this.state.setQueryParameters(options);\n var queries = requestBuilder._getQueries(tempState.index, tempState);\n // eslint-disable-next-line consistent-this\n var self = this;\n\n this._currentNbQueries++;\n\n this.emit('searchOnce', {\n state: tempState,\n });\n\n if (cb) {\n this.client\n .search(queries)\n .then(function (content) {\n self._currentNbQueries--;\n if (self._currentNbQueries === 0) {\n self.emit('searchQueueEmpty');\n }\n\n cb(null, new SearchResults(tempState, content.results), tempState);\n })\n .catch(function (err) {\n self._currentNbQueries--;\n if (self._currentNbQueries === 0) {\n self.emit('searchQueueEmpty');\n }\n\n cb(err, null, tempState);\n });\n\n return undefined;\n }\n\n return this.client.search(queries).then(\n function (content) {\n self._currentNbQueries--;\n if (self._currentNbQueries === 0) self.emit('searchQueueEmpty');\n return {\n content: new SearchResults(tempState, content.results),\n state: tempState,\n _originalResponse: content,\n };\n },\n function (e) {\n self._currentNbQueries--;\n if (self._currentNbQueries === 0) self.emit('searchQueueEmpty');\n throw e;\n }\n );\n};\n\n/**\n * Start the search for answers with the parameters set in the state.\n * This method returns a promise.\n * @param {Object} options - the options for answers API call\n * @param {string[]} options.attributesForPrediction - Attributes to use for predictions. If empty, `searchableAttributes` is used instead.\n * @param {string[]} options.queryLanguages - The languages in the query. Currently only supports ['en'].\n * @param {number} options.nbHits - Maximum number of answers to retrieve from the Answers Engine. Cannot be greater than 1000.\n *\n * @return {promise} the answer results\n * @deprecated answers is deprecated and will be replaced with new initiatives\n */\nAlgoliaSearchHelper.prototype.findAnswers = function (options) {\n // eslint-disable-next-line no-console\n console.warn('[algoliasearch-helper] answers is no longer supported');\n var state = this.state;\n var derivedHelper = this.derivedHelpers[0];\n if (!derivedHelper) {\n return Promise.resolve([]);\n }\n var derivedState = derivedHelper.getModifiedState(state);\n var data = merge(\n {\n attributesForPrediction: options.attributesForPrediction,\n nbHits: options.nbHits,\n },\n {\n params: omit(requestBuilder._getHitsSearchParams(derivedState), [\n 'attributesToSnippet',\n 'hitsPerPage',\n 'restrictSearchableAttributes',\n 'snippetEllipsisText',\n ]),\n }\n );\n\n var errorMessage =\n 'search for answers was called, but this client does not have a function client.initIndex(index).findAnswers';\n if (typeof this.client.initIndex !== 'function') {\n throw new Error(errorMessage);\n }\n var index = this.client.initIndex(derivedState.index);\n if (typeof index.findAnswers !== 'function') {\n throw new Error(errorMessage);\n }\n return index.findAnswers(derivedState.query, options.queryLanguages, data);\n};\n\n/**\n * Structure of each result when using\n * [`searchForFacetValues()`](reference.html#AlgoliaSearchHelper#searchForFacetValues)\n * @typedef FacetSearchHit\n * @type {object}\n * @property {string} value the facet value\n * @property {string} highlighted the facet value highlighted with the query string\n * @property {number} count number of occurrence of this facet value\n * @property {boolean} isRefined true if the value is already refined\n */\n\n/**\n * Structure of the data resolved by the\n * [`searchForFacetValues()`](reference.html#AlgoliaSearchHelper#searchForFacetValues)\n * promise.\n * @typedef FacetSearchResult\n * @type {object}\n * @property {FacetSearchHit} facetHits the results for this search for facet values\n * @property {number} processingTimeMS time taken by the query inside the engine\n */\n\n/**\n * Search for facet values based on an query and the name of a faceted attribute. This\n * triggers a search and will return a promise. On top of using the query, it also sends\n * the parameters from the state so that the search is narrowed down to only the possible values.\n *\n * See the description of [FacetSearchResult](reference.html#FacetSearchResult)\n * @param {string} facet the name of the faceted attribute\n * @param {string} query the string query for the search\n * @param {number} [maxFacetHits] the maximum number values returned. Should be > 0 and <= 100\n * @param {object} [userState] the set of custom parameters to use on top of the current state. Setting a property to `undefined` removes\n * it in the generated query.\n * @return {promise.} the results of the search\n */\nAlgoliaSearchHelper.prototype.searchForFacetValues = function (\n facet,\n query,\n maxFacetHits,\n userState\n) {\n var clientHasSFFV = typeof this.client.searchForFacetValues === 'function';\n var clientHasInitIndex = typeof this.client.initIndex === 'function';\n if (\n !clientHasSFFV &&\n !clientHasInitIndex &&\n typeof this.client.search !== 'function'\n ) {\n throw new Error(\n 'search for facet values (searchable) was called, but this client does not have a function client.searchForFacetValues or client.initIndex(index).searchForFacetValues'\n );\n }\n\n var state = this.state.setQueryParameters(userState || {});\n var isDisjunctive = state.isDisjunctiveFacet(facet);\n var algoliaQuery = requestBuilder.getSearchForFacetQuery(\n facet,\n query,\n maxFacetHits,\n state\n );\n\n this._currentNbQueries++;\n // eslint-disable-next-line consistent-this\n var self = this;\n var searchForFacetValuesPromise;\n // newer algoliasearch ^3.27.1 - ~4.0.0\n if (clientHasSFFV) {\n searchForFacetValuesPromise = this.client.searchForFacetValues([\n { indexName: state.index, params: algoliaQuery },\n ]);\n // algoliasearch < 3.27.1\n } else if (clientHasInitIndex) {\n searchForFacetValuesPromise = this.client\n .initIndex(state.index)\n .searchForFacetValues(algoliaQuery);\n // algoliasearch ~5.0.0\n } else {\n // @MAJOR only use client.search\n delete algoliaQuery.facetName;\n searchForFacetValuesPromise = this.client\n .search([\n {\n type: 'facet',\n facet: facet,\n indexName: state.index,\n params: algoliaQuery,\n },\n ])\n .then(function processResponse(response) {\n return response.results[0];\n });\n }\n\n this.emit('searchForFacetValues', {\n state: state,\n facet: facet,\n query: query,\n });\n\n return searchForFacetValuesPromise.then(\n function addIsRefined(content) {\n self._currentNbQueries--;\n if (self._currentNbQueries === 0) self.emit('searchQueueEmpty');\n\n // eslint-disable-next-line no-param-reassign\n content = Array.isArray(content) ? content[0] : content;\n\n content.facetHits.forEach(function (f) {\n // eslint-disable-next-line no-param-reassign\n f.escapedValue = escapeFacetValue(f.value);\n // eslint-disable-next-line no-param-reassign\n f.isRefined = isDisjunctive\n ? state.isDisjunctiveFacetRefined(facet, f.escapedValue)\n : state.isFacetRefined(facet, f.escapedValue);\n });\n\n return content;\n },\n function (e) {\n self._currentNbQueries--;\n if (self._currentNbQueries === 0) self.emit('searchQueueEmpty');\n throw e;\n }\n );\n};\n\n/**\n * Sets the text query used for the search.\n *\n * This method resets the current page to 0.\n * @param {string} q the user query\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.setQuery = function (q) {\n this._change({\n state: this.state.resetPage().setQuery(q),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Remove all the types of refinements except tags. A string can be provided to remove\n * only the refinements of a specific attribute. For more advanced use case, you can\n * provide a function instead. This function should follow the\n * [clearCallback definition](#SearchParameters.clearCallback).\n *\n * This method resets the current page to 0.\n * @param {string} [name] optional name of the facet / attribute on which we want to remove all refinements\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n * @example\n * // Removing all the refinements\n * helper.clearRefinements().search();\n * @example\n * // Removing all the filters on a the category attribute.\n * helper.clearRefinements('category').search();\n * @example\n * // Removing only the exclude filters on the category facet.\n * helper.clearRefinements(function(value, attribute, type) {\n * return type === 'exclude' && attribute === 'category';\n * }).search();\n */\nAlgoliaSearchHelper.prototype.clearRefinements = function (name) {\n this._change({\n state: this.state.resetPage().clearRefinements(name),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Remove all the tag filters.\n *\n * This method resets the current page to 0.\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.clearTags = function () {\n this._change({\n state: this.state.resetPage().clearTags(),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Adds a disjunctive filter to a faceted attribute with the `value` provided. If the\n * filter is already set, it doesn't change the filters.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} value the associated value (will be converted to string)\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.addDisjunctiveFacetRefinement = function (\n facet,\n value\n) {\n this._change({\n state: this.state.resetPage().addDisjunctiveFacetRefinement(facet, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#addDisjunctiveFacetRefinement}\n */\nAlgoliaSearchHelper.prototype.addDisjunctiveRefine = function () {\n return this.addDisjunctiveFacetRefinement.apply(this, arguments);\n};\n\n/**\n * Adds a refinement on a hierarchical facet. It will throw\n * an exception if the facet is not defined or if the facet\n * is already refined.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet name\n * @param {string} path the hierarchical facet path\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @throws Error if the facet is not defined or if the facet is refined\n * @chainable\n * @fires change\n */\nAlgoliaSearchHelper.prototype.addHierarchicalFacetRefinement = function (\n facet,\n path\n) {\n this._change({\n state: this.state.resetPage().addHierarchicalFacetRefinement(facet, path),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Adds a an numeric filter to an attribute with the `operator` and `value` provided. If the\n * filter is already set, it doesn't change the filters.\n *\n * This method resets the current page to 0.\n * @param {string} attribute the attribute on which the numeric filter applies\n * @param {string} operator the operator of the filter\n * @param {number} value the value of the filter\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.addNumericRefinement = function (\n attribute,\n operator,\n value\n) {\n this._change({\n state: this.state\n .resetPage()\n .addNumericRefinement(attribute, operator, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Adds a filter to a faceted attribute with the `value` provided. If the\n * filter is already set, it doesn't change the filters.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} value the associated value (will be converted to string)\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.addFacetRefinement = function (facet, value) {\n this._change({\n state: this.state.resetPage().addFacetRefinement(facet, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#addFacetRefinement}\n */\nAlgoliaSearchHelper.prototype.addRefine = function () {\n return this.addFacetRefinement.apply(this, arguments);\n};\n\n/**\n * Adds a an exclusion filter to a faceted attribute with the `value` provided. If the\n * filter is already set, it doesn't change the filters.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} value the associated value (will be converted to string)\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.addFacetExclusion = function (facet, value) {\n this._change({\n state: this.state.resetPage().addExcludeRefinement(facet, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#addFacetExclusion}\n */\nAlgoliaSearchHelper.prototype.addExclude = function () {\n return this.addFacetExclusion.apply(this, arguments);\n};\n\n/**\n * Adds a tag filter with the `tag` provided. If the\n * filter is already set, it doesn't change the filters.\n *\n * This method resets the current page to 0.\n * @param {string} tag the tag to add to the filter\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.addTag = function (tag) {\n this._change({\n state: this.state.resetPage().addTagRefinement(tag),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Removes an numeric filter to an attribute with the `operator` and `value` provided. If the\n * filter is not set, it doesn't change the filters.\n *\n * Some parameters are optional, triggering different behavior:\n * - if the value is not provided, then all the numeric value will be removed for the\n * specified attribute/operator couple.\n * - if the operator is not provided either, then all the numeric filter on this attribute\n * will be removed.\n *\n * This method resets the current page to 0.\n * @param {string} attribute the attribute on which the numeric filter applies\n * @param {string} [operator] the operator of the filter\n * @param {number} [value] the value of the filter\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.removeNumericRefinement = function (\n attribute,\n operator,\n value\n) {\n this._change({\n state: this.state\n .resetPage()\n .removeNumericRefinement(attribute, operator, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Removes a disjunctive filter to a faceted attribute with the `value` provided. If the\n * filter is not set, it doesn't change the filters.\n *\n * If the value is omitted, then this method will remove all the filters for the\n * attribute.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} [value] the associated value\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.removeDisjunctiveFacetRefinement = function (\n facet,\n value\n) {\n this._change({\n state: this.state\n .resetPage()\n .removeDisjunctiveFacetRefinement(facet, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#removeDisjunctiveFacetRefinement}\n */\nAlgoliaSearchHelper.prototype.removeDisjunctiveRefine = function () {\n return this.removeDisjunctiveFacetRefinement.apply(this, arguments);\n};\n\n/**\n * Removes the refinement set on a hierarchical facet.\n * @param {string} facet the facet name\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @throws Error if the facet is not defined or if the facet is not refined\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.removeHierarchicalFacetRefinement = function (\n facet\n) {\n this._change({\n state: this.state.resetPage().removeHierarchicalFacetRefinement(facet),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Removes a filter to a faceted attribute with the `value` provided. If the\n * filter is not set, it doesn't change the filters.\n *\n * If the value is omitted, then this method will remove all the filters for the\n * attribute.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} [value] the associated value\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.removeFacetRefinement = function (facet, value) {\n this._change({\n state: this.state.resetPage().removeFacetRefinement(facet, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#removeFacetRefinement}\n */\nAlgoliaSearchHelper.prototype.removeRefine = function () {\n return this.removeFacetRefinement.apply(this, arguments);\n};\n\n/**\n * Removes an exclusion filter to a faceted attribute with the `value` provided. If the\n * filter is not set, it doesn't change the filters.\n *\n * If the value is omitted, then this method will remove all the filters for the\n * attribute.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} [value] the associated value\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.removeFacetExclusion = function (facet, value) {\n this._change({\n state: this.state.resetPage().removeExcludeRefinement(facet, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#removeFacetExclusion}\n */\nAlgoliaSearchHelper.prototype.removeExclude = function () {\n return this.removeFacetExclusion.apply(this, arguments);\n};\n\n/**\n * Removes a tag filter with the `tag` provided. If the\n * filter is not set, it doesn't change the filters.\n *\n * This method resets the current page to 0.\n * @param {string} tag tag to remove from the filter\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.removeTag = function (tag) {\n this._change({\n state: this.state.resetPage().removeTagRefinement(tag),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Adds or removes an exclusion filter to a faceted attribute with the `value` provided. If\n * the value is set then it removes it, otherwise it adds the filter.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} value the associated value\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.toggleFacetExclusion = function (facet, value) {\n this._change({\n state: this.state.resetPage().toggleExcludeFacetRefinement(facet, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#toggleFacetExclusion}\n */\nAlgoliaSearchHelper.prototype.toggleExclude = function () {\n return this.toggleFacetExclusion.apply(this, arguments);\n};\n\n/**\n * Adds or removes a filter to a faceted attribute with the `value` provided. If\n * the value is set then it removes it, otherwise it adds the filter.\n *\n * This method can be used for conjunctive, disjunctive and hierarchical filters.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} value the associated value\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @throws Error will throw an error if the facet is not declared in the settings of the helper\n * @fires change\n * @chainable\n * @deprecated since version 2.19.0, see {@link AlgoliaSearchHelper#toggleFacetRefinement}\n */\nAlgoliaSearchHelper.prototype.toggleRefinement = function (facet, value) {\n return this.toggleFacetRefinement(facet, value);\n};\n\n/**\n * Adds or removes a filter to a faceted attribute with the `value` provided. If\n * the value is set then it removes it, otherwise it adds the filter.\n *\n * This method can be used for conjunctive, disjunctive and hierarchical filters.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} value the associated value\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @throws Error will throw an error if the facet is not declared in the settings of the helper\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.toggleFacetRefinement = function (facet, value) {\n this._change({\n state: this.state.resetPage().toggleFacetRefinement(facet, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#toggleFacetRefinement}\n */\nAlgoliaSearchHelper.prototype.toggleRefine = function () {\n return this.toggleFacetRefinement.apply(this, arguments);\n};\n\n/**\n * Adds or removes a tag filter with the `value` provided. If\n * the value is set then it removes it, otherwise it adds the filter.\n *\n * This method resets the current page to 0.\n * @param {string} tag tag to remove or add\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.toggleTag = function (tag) {\n this._change({\n state: this.state.resetPage().toggleTagRefinement(tag),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Increments the page number by one.\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n * @example\n * helper.setPage(0).nextPage().getPage();\n * // returns 1\n */\nAlgoliaSearchHelper.prototype.nextPage = function () {\n var page = this.state.page || 0;\n return this.setPage(page + 1);\n};\n\n/**\n * Decrements the page number by one.\n * @fires change\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @chainable\n * @example\n * helper.setPage(1).previousPage().getPage();\n * // returns 0\n */\nAlgoliaSearchHelper.prototype.previousPage = function () {\n var page = this.state.page || 0;\n return this.setPage(page - 1);\n};\n\n/**\n * @private\n * @param {number} page The page number\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @chainable\n * @fires change\n */\nfunction setCurrentPage(page) {\n if (page < 0) throw new Error('Page requested below 0.');\n\n this._change({\n state: this.state.setPage(page),\n isPageReset: false,\n });\n\n return this;\n}\n\n/**\n * Change the current page\n * @deprecated\n * @param {number} page The page number\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.setCurrentPage = setCurrentPage;\n\n/**\n * Updates the current page.\n * @function\n * @param {number} page The page number\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.setPage = setCurrentPage;\n\n/**\n * Updates the name of the index that will be targeted by the query.\n *\n * This method resets the current page to 0.\n * @param {string} name the index name\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.setIndex = function (name) {\n this._change({\n state: this.state.resetPage().setIndex(name),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Update a parameter of the search. This method reset the page\n *\n * The complete list of parameters is available on the\n * [Algolia website](https://www.algolia.com/doc/rest#query-an-index).\n * The most commonly used parameters have their own [shortcuts](#query-parameters-shortcuts)\n * or benefit from higher-level APIs (all the kind of filters and facets have their own API)\n *\n * This method resets the current page to 0.\n * @param {string} parameter name of the parameter to update\n * @param {any} value new value of the parameter\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n * @example\n * helper.setQueryParameter('hitsPerPage', 20).search();\n */\nAlgoliaSearchHelper.prototype.setQueryParameter = function (parameter, value) {\n this._change({\n state: this.state.resetPage().setQueryParameter(parameter, value),\n isPageReset: true,\n });\n\n return this;\n};\n\n/**\n * Set the whole state (warning: will erase previous state)\n * @param {SearchParameters} newState the whole new state\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.setState = function (newState) {\n this._change({\n state: SearchParameters.make(newState),\n isPageReset: false,\n });\n\n return this;\n};\n\n/**\n * Override the current state without triggering a change event.\n * Do not use this method unless you know what you are doing. (see the example\n * for a legit use case)\n * @param {SearchParameters} newState the whole new state\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n * @example\n * helper.on('change', function(state){\n * // In this function you might want to find a way to store the state in the url/history\n * updateYourURL(state)\n * })\n * window.onpopstate = function(event){\n * // This is naive though as you should check if the state is really defined etc.\n * helper.overrideStateWithoutTriggeringChangeEvent(event.state).search()\n * }\n * @chainable\n */\nAlgoliaSearchHelper.prototype.overrideStateWithoutTriggeringChangeEvent =\n function (newState) {\n this.state = new SearchParameters(newState);\n return this;\n };\n\n/**\n * Check if an attribute has any numeric, conjunctive, disjunctive or hierarchical filters.\n * @param {string} attribute the name of the attribute\n * @return {boolean} true if the attribute is filtered by at least one value\n * @example\n * // hasRefinements works with numeric, conjunctive, disjunctive and hierarchical filters\n * helper.hasRefinements('price'); // false\n * helper.addNumericRefinement('price', '>', 100);\n * helper.hasRefinements('price'); // true\n *\n * helper.hasRefinements('color'); // false\n * helper.addFacetRefinement('color', 'blue');\n * helper.hasRefinements('color'); // true\n *\n * helper.hasRefinements('material'); // false\n * helper.addDisjunctiveFacetRefinement('material', 'plastic');\n * helper.hasRefinements('material'); // true\n *\n * helper.hasRefinements('categories'); // false\n * helper.toggleFacetRefinement('categories', 'kitchen > knife');\n * helper.hasRefinements('categories'); // true\n *\n */\nAlgoliaSearchHelper.prototype.hasRefinements = function (attribute) {\n if (objectHasKeys(this.state.getNumericRefinements(attribute))) {\n return true;\n } else if (this.state.isConjunctiveFacet(attribute)) {\n return this.state.isFacetRefined(attribute);\n } else if (this.state.isDisjunctiveFacet(attribute)) {\n return this.state.isDisjunctiveFacetRefined(attribute);\n } else if (this.state.isHierarchicalFacet(attribute)) {\n return this.state.isHierarchicalFacetRefined(attribute);\n }\n\n // there's currently no way to know that the user did call `addNumericRefinement` at some point\n // thus we cannot distinguish if there once was a numeric refinement that was cleared\n // so we will return false in every other situations to be consistent\n // while what we should do here is throw because we did not find the attribute in any type\n // of refinement\n return false;\n};\n\n/**\n * Check if a value is excluded for a specific faceted attribute. If the value\n * is omitted then the function checks if there is any excluding refinements.\n *\n * @param {string} facet name of the attribute for used for faceting\n * @param {string} [value] optional value. If passed will test that this value\n * is filtering the given facet.\n * @return {boolean} true if refined\n * @example\n * helper.isExcludeRefined('color'); // false\n * helper.isExcludeRefined('color', 'blue') // false\n * helper.isExcludeRefined('color', 'red') // false\n *\n * helper.addFacetExclusion('color', 'red');\n *\n * helper.isExcludeRefined('color'); // true\n * helper.isExcludeRefined('color', 'blue') // false\n * helper.isExcludeRefined('color', 'red') // true\n */\nAlgoliaSearchHelper.prototype.isExcluded = function (facet, value) {\n return this.state.isExcludeRefined(facet, value);\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since 2.4.0, see {@link AlgoliaSearchHelper#hasRefinements}\n */\nAlgoliaSearchHelper.prototype.isDisjunctiveRefined = function (facet, value) {\n return this.state.isDisjunctiveFacetRefined(facet, value);\n};\n\n/**\n * Check if the string is a currently filtering tag.\n * @param {string} tag tag to check\n * @return {boolean} true if the tag is currently refined\n */\nAlgoliaSearchHelper.prototype.hasTag = function (tag) {\n return this.state.isTagRefined(tag);\n};\n\n// eslint-disable-next-line valid-jsdoc\n/**\n * @deprecated since 2.4.0, see {@link AlgoliaSearchHelper#hasTag}\n */\nAlgoliaSearchHelper.prototype.isTagRefined = function () {\n return this.hasTagRefinements.apply(this, arguments);\n};\n\n/**\n * Get the name of the currently used index.\n * @return {string} name of the index\n * @example\n * helper.setIndex('highestPrice_products').getIndex();\n * // returns 'highestPrice_products'\n */\nAlgoliaSearchHelper.prototype.getIndex = function () {\n return this.state.index;\n};\n\nfunction getCurrentPage() {\n return this.state.page;\n}\n\n/**\n * Get the currently selected page\n * @deprecated\n * @return {number} the current page\n */\nAlgoliaSearchHelper.prototype.getCurrentPage = getCurrentPage;\n/**\n * Get the currently selected page\n * @function\n * @return {number} the current page\n */\nAlgoliaSearchHelper.prototype.getPage = getCurrentPage;\n\n/**\n * Get all the tags currently set to filters the results.\n *\n * @return {string[]} The list of tags currently set.\n */\nAlgoliaSearchHelper.prototype.getTags = function () {\n return this.state.tagRefinements;\n};\n\n/**\n * Get the list of refinements for a given attribute. This method works with\n * conjunctive, disjunctive, excluding and numerical filters.\n *\n * See also SearchResults#getRefinements\n *\n * @param {string} facetName attribute name used for faceting\n * @return {Array.} All Refinement are objects that contain a value, and\n * a type. Numeric also contains an operator.\n * @example\n * helper.addNumericRefinement('price', '>', 100);\n * helper.getRefinements('price');\n * // [\n * // {\n * // \"value\": [\n * // 100\n * // ],\n * // \"operator\": \">\",\n * // \"type\": \"numeric\"\n * // }\n * // ]\n * @example\n * helper.addFacetRefinement('color', 'blue');\n * helper.addFacetExclusion('color', 'red');\n * helper.getRefinements('color');\n * // [\n * // {\n * // \"value\": \"blue\",\n * // \"type\": \"conjunctive\"\n * // },\n * // {\n * // \"value\": \"red\",\n * // \"type\": \"exclude\"\n * // }\n * // ]\n * @example\n * helper.addDisjunctiveFacetRefinement('material', 'plastic');\n * // [\n * // {\n * // \"value\": \"plastic\",\n * // \"type\": \"disjunctive\"\n * // }\n * // ]\n */\nAlgoliaSearchHelper.prototype.getRefinements = function (facetName) {\n var refinements = [];\n\n if (this.state.isConjunctiveFacet(facetName)) {\n var conjRefinements = this.state.getConjunctiveRefinements(facetName);\n\n conjRefinements.forEach(function (r) {\n refinements.push({\n value: r,\n type: 'conjunctive',\n });\n });\n\n var excludeRefinements = this.state.getExcludeRefinements(facetName);\n\n excludeRefinements.forEach(function (r) {\n refinements.push({\n value: r,\n type: 'exclude',\n });\n });\n } else if (this.state.isDisjunctiveFacet(facetName)) {\n var disjunctiveRefinements =\n this.state.getDisjunctiveRefinements(facetName);\n\n disjunctiveRefinements.forEach(function (r) {\n refinements.push({\n value: r,\n type: 'disjunctive',\n });\n });\n }\n\n var numericRefinements = this.state.getNumericRefinements(facetName);\n\n Object.keys(numericRefinements).forEach(function (operator) {\n var value = numericRefinements[operator];\n\n refinements.push({\n value: value,\n operator: operator,\n type: 'numeric',\n });\n });\n\n return refinements;\n};\n\n/**\n * Return the current refinement for the (attribute, operator)\n * @param {string} attribute attribute in the record\n * @param {string} operator operator applied on the refined values\n * @return {Array.} refined values\n */\nAlgoliaSearchHelper.prototype.getNumericRefinement = function (\n attribute,\n operator\n) {\n return this.state.getNumericRefinement(attribute, operator);\n};\n\n/**\n * Get the current breadcrumb for a hierarchical facet, as an array\n * @param {string} facetName Hierarchical facet name\n * @return {array.} the path as an array of string\n */\nAlgoliaSearchHelper.prototype.getHierarchicalFacetBreadcrumb = function (\n facetName\n) {\n return this.state.getHierarchicalFacetBreadcrumb(facetName);\n};\n\n// /////////// PRIVATE\n\n/**\n * Perform the underlying queries\n * @private\n * @param {object} options options for the query\n * @param {boolean} [options.onlyWithDerivedHelpers=false] if true, only the derived helpers will be queried\n * @return {undefined} does not return anything\n * @fires search\n * @fires result\n * @fires error\n */\nAlgoliaSearchHelper.prototype._search = function (options) {\n var state = this.state;\n var states = [];\n var mainQueries = [];\n\n if (!options.onlyWithDerivedHelpers) {\n mainQueries = requestBuilder._getQueries(state.index, state);\n\n states.push({\n state: state,\n queriesCount: mainQueries.length,\n helper: this,\n });\n\n this.emit('search', {\n state: state,\n results: this.lastResults,\n });\n }\n\n var derivedQueries = this.derivedHelpers.map(function (derivedHelper) {\n var derivedState = derivedHelper.getModifiedState(state);\n var derivedStateQueries = derivedState.index\n ? requestBuilder._getQueries(derivedState.index, derivedState)\n : [];\n\n states.push({\n state: derivedState,\n queriesCount: derivedStateQueries.length,\n helper: derivedHelper,\n });\n\n derivedHelper.emit('search', {\n state: derivedState,\n results: derivedHelper.lastResults,\n });\n\n return derivedStateQueries;\n });\n\n var queries = Array.prototype.concat.apply(mainQueries, derivedQueries);\n\n var queryId = this._queryId++;\n this._currentNbQueries++;\n\n if (!queries.length) {\n return Promise.resolve({ results: [] }).then(\n this._dispatchAlgoliaResponse.bind(this, states, queryId)\n );\n }\n\n try {\n this.client\n .search(queries)\n .then(this._dispatchAlgoliaResponse.bind(this, states, queryId))\n .catch(this._dispatchAlgoliaError.bind(this, queryId));\n } catch (error) {\n // If we reach this part, we're in an internal error state\n this.emit('error', {\n error: error,\n });\n }\n\n return undefined;\n};\n\n/**\n * Transform the responses as sent by the server and transform them into a user\n * usable object that merge the results of all the batch requests. It will dispatch\n * over the different helper + derived helpers (when there are some).\n * @private\n * @param {array.<{SearchParameters, AlgoliaQueries, AlgoliaSearchHelper}>} states state used to generate the request\n * @param {number} queryId id of the current request\n * @param {object} content content of the response\n * @return {undefined}\n */\nAlgoliaSearchHelper.prototype._dispatchAlgoliaResponse = function (\n states,\n queryId,\n content\n) {\n // @TODO remove the number of outdated queries discarded instead of just one\n\n if (queryId < this._lastQueryIdReceived) {\n // Outdated answer\n return;\n }\n\n this._currentNbQueries -= queryId - this._lastQueryIdReceived;\n this._lastQueryIdReceived = queryId;\n\n if (this._currentNbQueries === 0) this.emit('searchQueueEmpty');\n\n var results = content.results.slice();\n\n states.forEach(function (s) {\n var state = s.state;\n var queriesCount = s.queriesCount;\n var helper = s.helper;\n var specificResults = results.splice(0, queriesCount);\n\n if (!state.index) {\n helper.emit('result', {\n results: null,\n state: state,\n });\n return;\n }\n\n helper.lastResults = new SearchResults(state, specificResults);\n\n helper.emit('result', {\n results: helper.lastResults,\n state: state,\n });\n });\n};\n\nAlgoliaSearchHelper.prototype._dispatchAlgoliaError = function (\n queryId,\n error\n) {\n if (queryId < this._lastQueryIdReceived) {\n // Outdated answer\n return;\n }\n\n this._currentNbQueries -= queryId - this._lastQueryIdReceived;\n this._lastQueryIdReceived = queryId;\n\n this.emit('error', {\n error: error,\n });\n\n if (this._currentNbQueries === 0) this.emit('searchQueueEmpty');\n};\n\nAlgoliaSearchHelper.prototype.containsRefinement = function (\n query,\n facetFilters,\n numericFilters,\n tagFilters\n) {\n return (\n query ||\n facetFilters.length !== 0 ||\n numericFilters.length !== 0 ||\n tagFilters.length !== 0\n );\n};\n\n/**\n * Test if there are some disjunctive refinements on the facet\n * @private\n * @param {string} facet the attribute to test\n * @return {boolean} true if there are refinements on this attribute\n */\nAlgoliaSearchHelper.prototype._hasDisjunctiveRefinements = function (facet) {\n return (\n this.state.disjunctiveRefinements[facet] &&\n this.state.disjunctiveRefinements[facet].length > 0\n );\n};\n\nAlgoliaSearchHelper.prototype._change = function (event) {\n var state = event.state;\n var isPageReset = event.isPageReset;\n\n if (state !== this.state) {\n this.state = state;\n\n this.emit('change', {\n state: this.state,\n results: this.lastResults,\n isPageReset: isPageReset,\n });\n }\n};\n\n/**\n * Clears the cache of the underlying Algolia client.\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n */\nAlgoliaSearchHelper.prototype.clearCache = function () {\n if (this.client.clearCache) this.client.clearCache();\n return this;\n};\n\n/**\n * Updates the internal client instance. If the reference of the clients\n * are equal then no update is actually done.\n * @param {AlgoliaSearch} newClient an AlgoliaSearch client\n * @return {AlgoliaSearchHelper} Method is chainable, it returns itself\n */\nAlgoliaSearchHelper.prototype.setClient = function (newClient) {\n if (this.client === newClient) return this;\n\n if (typeof newClient.addAlgoliaAgent === 'function') {\n newClient.addAlgoliaAgent('JS Helper (' + version + ')');\n }\n this.client = newClient;\n\n return this;\n};\n\n/**\n * Gets the instance of the currently used client.\n * @return {AlgoliaSearch} the currently used client\n */\nAlgoliaSearchHelper.prototype.getClient = function () {\n return this.client;\n};\n\n/**\n * Creates an derived instance of the Helper. A derived helper\n * is a way to request other indices synchronised with the lifecycle\n * of the main Helper. This mechanism uses the multiqueries feature\n * of Algolia to aggregate all the requests in a single network call.\n *\n * This method takes a function that is used to create a new SearchParameter\n * that will be used to create requests to Algolia. Those new requests\n * are created just before the `search` event. The signature of the function\n * is `SearchParameters -> SearchParameters`.\n *\n * This method returns a new DerivedHelper which is an EventEmitter\n * that fires the same `search`, `result` and `error` events. Those\n * events, however, will receive data specific to this DerivedHelper\n * and the SearchParameters that is returned by the call of the\n * parameter function.\n * @param {function} fn SearchParameters -> SearchParameters\n * @return {DerivedHelper} a new DerivedHelper\n */\nAlgoliaSearchHelper.prototype.derive = function (fn) {\n var derivedHelper = new DerivedHelper(this, fn);\n this.derivedHelpers.push(derivedHelper);\n return derivedHelper;\n};\n\n/**\n * This method detaches a derived Helper from the main one. Prefer using the one from the\n * derived helper itself, to remove the event listeners too.\n * @private\n * @param {DerivedHelper} derivedHelper the derived helper to detach\n * @return {undefined} nothing is returned\n * @throws Error\n */\nAlgoliaSearchHelper.prototype.detachDerivedHelper = function (derivedHelper) {\n var pos = this.derivedHelpers.indexOf(derivedHelper);\n if (pos === -1) throw new Error('Derived helper already detached');\n this.derivedHelpers.splice(pos, 1);\n};\n\n/**\n * This method returns true if there is currently at least one on-going search.\n * @return {boolean} true if there is a search pending\n */\nAlgoliaSearchHelper.prototype.hasPendingRequests = function () {\n return this._currentNbQueries > 0;\n};\n\n/**\n * @typedef AlgoliaSearchHelper.NumericRefinement\n * @type {object}\n * @property {number[]} value the numbers that are used for filtering this attribute with\n * the operator specified.\n * @property {string} operator the faceting data: value, number of entries\n * @property {string} type will be 'numeric'\n */\n\n/**\n * @typedef AlgoliaSearchHelper.FacetRefinement\n * @type {object}\n * @property {string} value the string use to filter the attribute\n * @property {string} type the type of filter: 'conjunctive', 'disjunctive', 'exclude'\n */\n\nmodule.exports = AlgoliaSearchHelper;\n","'use strict';\n\nmodule.exports = function compact(array) {\n if (!Array.isArray(array)) {\n return [];\n }\n\n return array.filter(Boolean);\n};\n","'use strict';\n\n// NOTE: this behaves like lodash/defaults, but doesn't mutate the target\n// it also preserve keys order\nmodule.exports = function defaultsPure() {\n var sources = Array.prototype.slice.call(arguments);\n\n return sources.reduceRight(function (acc, source) {\n Object.keys(Object(source)).forEach(function (key) {\n if (source[key] === undefined) {\n return;\n }\n if (acc[key] !== undefined) {\n // remove if already added, so that we can add it in correct order\n // eslint-disable-next-line no-param-reassign\n delete acc[key];\n }\n // eslint-disable-next-line no-param-reassign\n acc[key] = source[key];\n });\n return acc;\n }, {});\n};\n","'use strict';\n\n/**\n * Replaces a leading - with \\-\n * @private\n * @param {any} value the facet value to replace\n * @returns {any} the escaped facet value or the value if it was not a string\n */\nfunction escapeFacetValue(value) {\n if (typeof value !== 'string') return value;\n\n return String(value).replace(/^-/, '\\\\-');\n}\n\n/**\n * Replaces a leading \\- with -\n * @private\n * @param {any} value the escaped facet value\n * @returns {any} the unescaped facet value or the value if it was not a string\n */\nfunction unescapeFacetValue(value) {\n if (typeof value !== 'string') return value;\n\n return value.replace(/^\\\\-/, '-');\n}\n\nmodule.exports = {\n escapeFacetValue: escapeFacetValue,\n unescapeFacetValue: unescapeFacetValue,\n};\n","'use strict';\n\n// @MAJOR can be replaced by native Array#find when we change support\nmodule.exports = function find(array, comparator) {\n if (!Array.isArray(array)) {\n return undefined;\n }\n\n for (var i = 0; i < array.length; i++) {\n if (comparator(array[i])) {\n return array[i];\n }\n }\n\n return undefined;\n};\n","'use strict';\n\n// @MAJOR can be replaced by native Array#findIndex when we change support\nmodule.exports = function find(array, comparator) {\n if (!Array.isArray(array)) {\n return -1;\n }\n\n for (var i = 0; i < array.length; i++) {\n if (comparator(array[i])) {\n return i;\n }\n }\n return -1;\n};\n","'use strict';\n\nvar find = require('./find');\n\n/**\n * Transform sort format from user friendly notation to lodash format\n * @param {string[]} sortBy array of predicate of the form \"attribute:order\"\n * @param {string[]} [defaults] array of predicate of the form \"attribute:order\"\n * @return {array.} array containing 2 elements : attributes, orders\n */\nmodule.exports = function formatSort(sortBy, defaults) {\n var defaultInstructions = (defaults || []).map(function (sort) {\n return sort.split(':');\n });\n\n return sortBy.reduce(\n function preparePredicate(out, sort) {\n var sortInstruction = sort.split(':');\n\n var matchingDefault = find(\n defaultInstructions,\n function (defaultInstruction) {\n return defaultInstruction[0] === sortInstruction[0];\n }\n );\n\n if (sortInstruction.length > 1 || !matchingDefault) {\n out[0].push(sortInstruction[0]);\n out[1].push(sortInstruction[1]);\n return out;\n }\n\n out[0].push(matchingDefault[0]);\n out[1].push(matchingDefault[1]);\n return out;\n },\n [[], []]\n );\n};\n","'use strict';\n\nfunction inherits(ctor, superCtor) {\n // eslint-disable-next-line no-param-reassign\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true,\n },\n });\n}\n\nmodule.exports = inherits;\n","'use strict';\n\nfunction intersection(arr1, arr2) {\n return arr1.filter(function (value, index) {\n return (\n arr2.indexOf(value) > -1 &&\n arr1.indexOf(value) === index /* skips duplicates */\n );\n });\n}\n\nmodule.exports = intersection;\n","'use strict';\n\nfunction clone(value) {\n if (typeof value === 'object' && value !== null) {\n return _merge(Array.isArray(value) ? [] : {}, value);\n }\n return value;\n}\n\nfunction isObjectOrArrayOrFunction(value) {\n return (\n typeof value === 'function' ||\n Array.isArray(value) ||\n Object.prototype.toString.call(value) === '[object Object]'\n );\n}\n\nfunction _merge(target, source) {\n if (target === source) {\n return target;\n }\n\n for (var key in source) {\n if (\n !Object.prototype.hasOwnProperty.call(source, key) ||\n key === '__proto__' ||\n key === 'constructor'\n ) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n var sourceVal = source[key];\n var targetVal = target[key];\n\n if (typeof targetVal !== 'undefined' && typeof sourceVal === 'undefined') {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (\n isObjectOrArrayOrFunction(targetVal) &&\n isObjectOrArrayOrFunction(sourceVal)\n ) {\n // eslint-disable-next-line no-param-reassign\n target[key] = _merge(targetVal, sourceVal);\n } else {\n // eslint-disable-next-line no-param-reassign\n target[key] = clone(sourceVal);\n }\n }\n return target;\n}\n\n/**\n * This method is like Object.assign, but recursively merges own and inherited\n * enumerable keyed properties of source objects into the destination object.\n *\n * NOTE: this behaves like lodash/merge, but:\n * - does mutate functions if they are a source\n * - treats non-plain objects as plain\n * - does not work for circular objects\n * - treats sparse arrays as sparse\n * - does not convert Array-like objects (Arguments, NodeLists, etc.) to arrays\n *\n * @param {Object} target The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n */\nfunction merge(target) {\n if (!isObjectOrArrayOrFunction(target)) {\n // eslint-disable-next-line no-param-reassign\n target = {};\n }\n\n for (var i = 1, l = arguments.length; i < l; i++) {\n var source = arguments[i];\n\n if (isObjectOrArrayOrFunction(source)) {\n _merge(target, source);\n }\n }\n return target;\n}\n\nmodule.exports = merge;\n","'use strict';\n\nfunction objectHasKeys(obj) {\n return obj && Object.keys(obj).length > 0;\n}\n\nmodule.exports = objectHasKeys;\n","'use strict';\n\n// https://github.com/babel/babel/blob/3aaafae053fa75febb3aa45d45b6f00646e30ba4/packages/babel-helpers/src/helpers.js#L604-L620\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source === null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key;\n var i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n // eslint-disable-next-line no-continue\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;\n","'use strict';\n\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined;\n var valIsNull = value === null;\n\n var othIsDefined = other !== undefined;\n var othIsNull = other === null;\n\n if (\n (!othIsNull && value > other) ||\n (valIsNull && othIsDefined) ||\n !valIsDefined\n ) {\n return 1;\n }\n if (\n (!valIsNull && value < other) ||\n (othIsNull && valIsDefined) ||\n !othIsDefined\n ) {\n return -1;\n }\n }\n return 0;\n}\n\n/**\n * @param {Array} collection object with keys in attributes\n * @param {Array} iteratees attributes\n * @param {Array} orders asc | desc\n * @return {Array} sorted collection\n */\nfunction orderBy(collection, iteratees, orders) {\n if (!Array.isArray(collection)) {\n return [];\n }\n\n if (!Array.isArray(orders)) {\n // eslint-disable-next-line no-param-reassign\n orders = [];\n }\n\n var result = collection.map(function (value, index) {\n return {\n criteria: iteratees.map(function (iteratee) {\n return value[iteratee];\n }),\n index: index,\n value: value,\n };\n });\n\n result.sort(function comparer(object, other) {\n var index = -1;\n\n while (++index < object.criteria.length) {\n var res = compareAscending(object.criteria[index], other.criteria[index]);\n if (res) {\n if (index >= orders.length) {\n return res;\n }\n if (orders[index] === 'desc') {\n return -res;\n }\n return res;\n }\n }\n\n // This ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n });\n\n return result.map(function (res) {\n return res.value;\n });\n}\n\nmodule.exports = orderBy;\n","'use strict';\n\nfunction valToNumber(v) {\n if (typeof v === 'number') {\n return v;\n } else if (typeof v === 'string') {\n return parseFloat(v);\n } else if (Array.isArray(v)) {\n return v.map(valToNumber);\n }\n\n throw new Error(\n 'The value should be a number, a parsable string or an array of those.'\n );\n}\n\nmodule.exports = valToNumber;\n","'use strict';\n\nvar merge = require('./functions/merge');\n\nfunction sortObject(obj) {\n return Object.keys(obj)\n .sort(function (a, b) {\n return a.localeCompare(b);\n })\n .reduce(function (acc, curr) {\n // eslint-disable-next-line no-param-reassign\n acc[curr] = obj[curr];\n return acc;\n }, {});\n}\n\nvar requestBuilder = {\n /**\n * Get all the queries to send to the client, those queries can used directly\n * with the Algolia client.\n * @private\n * @param {string} index The name of the index\n * @param {SearchParameters} state The state from which to get the queries\n * @return {object[]} The queries\n */\n _getQueries: function getQueries(index, state) {\n var queries = [];\n\n // One query for the hits\n queries.push({\n indexName: index,\n params: requestBuilder._getHitsSearchParams(state),\n });\n\n // One for each disjunctive facets\n state.getRefinedDisjunctiveFacets().forEach(function (refinedFacet) {\n queries.push({\n indexName: index,\n params: requestBuilder._getDisjunctiveFacetSearchParams(\n state,\n refinedFacet\n ),\n });\n });\n\n // More to get the parent levels of the hierarchical facets when refined\n state.getRefinedHierarchicalFacets().forEach(function (refinedFacet) {\n var hierarchicalFacet = state.getHierarchicalFacetByName(refinedFacet);\n var currentRefinement = state.getHierarchicalRefinement(refinedFacet);\n var separator = state._getHierarchicalFacetSeparator(hierarchicalFacet);\n\n // If we are deeper than level 0 (starting from `beer > IPA`)\n // we want to get all parent values\n if (\n currentRefinement.length > 0 &&\n currentRefinement[0].split(separator).length > 1\n ) {\n // We generate a map of the filters we will use for our facet values queries\n var filtersMap = currentRefinement[0]\n .split(separator)\n .slice(0, -1)\n .reduce(function createFiltersMap(map, segment, level) {\n return map.concat({\n attribute: hierarchicalFacet.attributes[level],\n value:\n level === 0\n ? segment\n : [map[map.length - 1].value, segment].join(separator),\n });\n }, []);\n\n filtersMap.forEach(function (filter, level) {\n var params = requestBuilder._getDisjunctiveFacetSearchParams(\n state,\n filter.attribute,\n level === 0\n );\n\n // Keep facet filters unrelated to current hierarchical attributes\n function hasHierarchicalFacetFilter(value) {\n return hierarchicalFacet.attributes.some(function (attribute) {\n return attribute === value.split(':')[0];\n });\n }\n\n var filteredFacetFilters = (params.facetFilters || []).reduce(\n function (acc, facetFilter) {\n if (Array.isArray(facetFilter)) {\n var filtered = facetFilter.filter(function (filterValue) {\n return !hasHierarchicalFacetFilter(filterValue);\n });\n\n if (filtered.length > 0) {\n acc.push(filtered);\n }\n }\n\n if (\n typeof facetFilter === 'string' &&\n !hasHierarchicalFacetFilter(facetFilter)\n ) {\n acc.push(facetFilter);\n }\n\n return acc;\n },\n []\n );\n\n var parent = filtersMap[level - 1];\n if (level > 0) {\n params.facetFilters = filteredFacetFilters.concat(\n parent.attribute + ':' + parent.value\n );\n } else {\n params.facetFilters =\n filteredFacetFilters.length > 0\n ? filteredFacetFilters\n : undefined;\n }\n\n queries.push({ indexName: index, params: params });\n });\n }\n });\n\n return queries;\n },\n\n /**\n * Build search parameters used to fetch hits\n * @private\n * @param {SearchParameters} state The state from which to get the queries\n * @return {object.} The search parameters for hits\n */\n _getHitsSearchParams: function (state) {\n var facets = state.facets\n .concat(state.disjunctiveFacets)\n .concat(requestBuilder._getHitsHierarchicalFacetsAttributes(state));\n\n var facetFilters = requestBuilder._getFacetFilters(state);\n var numericFilters = requestBuilder._getNumericFilters(state);\n var tagFilters = requestBuilder._getTagFilters(state);\n var additionalParams = {\n facets: facets.indexOf('*') > -1 ? ['*'] : facets,\n tagFilters: tagFilters,\n };\n\n if (facetFilters.length > 0) {\n additionalParams.facetFilters = facetFilters;\n }\n\n if (numericFilters.length > 0) {\n additionalParams.numericFilters = numericFilters;\n }\n\n return sortObject(merge({}, state.getQueryParams(), additionalParams));\n },\n\n /**\n * Build search parameters used to fetch a disjunctive facet\n * @private\n * @param {SearchParameters} state The state from which to get the queries\n * @param {string} facet the associated facet name\n * @param {boolean} hierarchicalRootLevel ?? FIXME\n * @return {object} The search parameters for a disjunctive facet\n */\n _getDisjunctiveFacetSearchParams: function (\n state,\n facet,\n hierarchicalRootLevel\n ) {\n var facetFilters = requestBuilder._getFacetFilters(\n state,\n facet,\n hierarchicalRootLevel\n );\n var numericFilters = requestBuilder._getNumericFilters(state, facet);\n var tagFilters = requestBuilder._getTagFilters(state);\n var additionalParams = {\n hitsPerPage: 0,\n page: 0,\n analytics: false,\n clickAnalytics: false,\n };\n\n if (tagFilters.length > 0) {\n additionalParams.tagFilters = tagFilters;\n }\n\n var hierarchicalFacet = state.getHierarchicalFacetByName(facet);\n\n if (hierarchicalFacet) {\n additionalParams.facets =\n requestBuilder._getDisjunctiveHierarchicalFacetAttribute(\n state,\n hierarchicalFacet,\n hierarchicalRootLevel\n );\n } else {\n additionalParams.facets = facet;\n }\n\n if (numericFilters.length > 0) {\n additionalParams.numericFilters = numericFilters;\n }\n\n if (facetFilters.length > 0) {\n additionalParams.facetFilters = facetFilters;\n }\n\n return sortObject(merge({}, state.getQueryParams(), additionalParams));\n },\n\n /**\n * Return the numeric filters in an algolia request fashion\n * @private\n * @param {SearchParameters} state the state from which to get the filters\n * @param {string} [facetName] the name of the attribute for which the filters should be excluded\n * @return {string[]} the numeric filters in the algolia format\n */\n _getNumericFilters: function (state, facetName) {\n if (state.numericFilters) {\n return state.numericFilters;\n }\n\n var numericFilters = [];\n\n Object.keys(state.numericRefinements).forEach(function (attribute) {\n var operators = state.numericRefinements[attribute] || {};\n Object.keys(operators).forEach(function (operator) {\n var values = operators[operator] || [];\n if (facetName !== attribute) {\n values.forEach(function (value) {\n if (Array.isArray(value)) {\n var vs = value.map(function (v) {\n return attribute + operator + v;\n });\n numericFilters.push(vs);\n } else {\n numericFilters.push(attribute + operator + value);\n }\n });\n }\n });\n });\n\n return numericFilters;\n },\n\n /**\n * Return the tags filters depending on which format is used, either tagFilters or tagRefinements\n * @private\n * @param {SearchParameters} state the state from which to get the filters\n * @return {string} Tag filters in a single string\n */\n _getTagFilters: function (state) {\n if (state.tagFilters) {\n return state.tagFilters;\n }\n\n return state.tagRefinements.join(',');\n },\n\n /**\n * Build facetFilters parameter based on current refinements. The array returned\n * contains strings representing the facet filters in the algolia format.\n * @private\n * @param {SearchParameters} state The state from which to get the queries\n * @param {string} [facet] if set, the current disjunctive facet\n * @param {boolean} [hierarchicalRootLevel] ?? FIXME\n * @return {array.} The facet filters in the algolia format\n */\n _getFacetFilters: function (state, facet, hierarchicalRootLevel) {\n var facetFilters = [];\n\n var facetsRefinements = state.facetsRefinements || {};\n Object.keys(facetsRefinements).forEach(function (facetName) {\n var facetValues = facetsRefinements[facetName] || [];\n facetValues.forEach(function (facetValue) {\n facetFilters.push(facetName + ':' + facetValue);\n });\n });\n\n var facetsExcludes = state.facetsExcludes || {};\n Object.keys(facetsExcludes).forEach(function (facetName) {\n var facetValues = facetsExcludes[facetName] || [];\n facetValues.forEach(function (facetValue) {\n facetFilters.push(facetName + ':-' + facetValue);\n });\n });\n\n var disjunctiveFacetsRefinements = state.disjunctiveFacetsRefinements || {};\n Object.keys(disjunctiveFacetsRefinements).forEach(function (facetName) {\n var facetValues = disjunctiveFacetsRefinements[facetName] || [];\n if (facetName === facet || !facetValues || facetValues.length === 0) {\n return;\n }\n var orFilters = [];\n\n facetValues.forEach(function (facetValue) {\n orFilters.push(facetName + ':' + facetValue);\n });\n\n facetFilters.push(orFilters);\n });\n\n var hierarchicalFacetsRefinements =\n state.hierarchicalFacetsRefinements || {};\n Object.keys(hierarchicalFacetsRefinements).forEach(function (facetName) {\n var facetValues = hierarchicalFacetsRefinements[facetName] || [];\n var facetValue = facetValues[0];\n\n if (facetValue === undefined) {\n return;\n }\n\n var hierarchicalFacet = state.getHierarchicalFacetByName(facetName);\n var separator = state._getHierarchicalFacetSeparator(hierarchicalFacet);\n var rootPath = state._getHierarchicalRootPath(hierarchicalFacet);\n var attributeToRefine;\n var attributesIndex;\n\n // we ask for parent facet values only when the `facet` is the current hierarchical facet\n if (facet === facetName) {\n // if we are at the root level already, no need to ask for facet values, we get them from\n // the hits query\n if (\n facetValue.indexOf(separator) === -1 ||\n (!rootPath && hierarchicalRootLevel === true) ||\n (rootPath &&\n rootPath.split(separator).length ===\n facetValue.split(separator).length)\n ) {\n return;\n }\n\n if (!rootPath) {\n attributesIndex = facetValue.split(separator).length - 2;\n facetValue = facetValue.slice(0, facetValue.lastIndexOf(separator));\n } else {\n attributesIndex = rootPath.split(separator).length - 1;\n facetValue = rootPath;\n }\n\n attributeToRefine = hierarchicalFacet.attributes[attributesIndex];\n } else {\n attributesIndex = facetValue.split(separator).length - 1;\n\n attributeToRefine = hierarchicalFacet.attributes[attributesIndex];\n }\n\n if (attributeToRefine) {\n facetFilters.push([attributeToRefine + ':' + facetValue]);\n }\n });\n\n return facetFilters;\n },\n\n _getHitsHierarchicalFacetsAttributes: function (state) {\n var out = [];\n\n return state.hierarchicalFacets.reduce(\n // ask for as much levels as there's hierarchical refinements\n function getHitsAttributesForHierarchicalFacet(\n allAttributes,\n hierarchicalFacet\n ) {\n var hierarchicalRefinement = state.getHierarchicalRefinement(\n hierarchicalFacet.name\n )[0];\n\n // if no refinement, ask for root level\n if (!hierarchicalRefinement) {\n allAttributes.push(hierarchicalFacet.attributes[0]);\n return allAttributes;\n }\n\n var separator = state._getHierarchicalFacetSeparator(hierarchicalFacet);\n var level = hierarchicalRefinement.split(separator).length;\n var newAttributes = hierarchicalFacet.attributes.slice(0, level + 1);\n\n return allAttributes.concat(newAttributes);\n },\n out\n );\n },\n\n _getDisjunctiveHierarchicalFacetAttribute: function (\n state,\n hierarchicalFacet,\n rootLevel\n ) {\n var separator = state._getHierarchicalFacetSeparator(hierarchicalFacet);\n if (rootLevel === true) {\n var rootPath = state._getHierarchicalRootPath(hierarchicalFacet);\n var attributeIndex = 0;\n\n if (rootPath) {\n attributeIndex = rootPath.split(separator).length;\n }\n return [hierarchicalFacet.attributes[attributeIndex]];\n }\n\n var hierarchicalRefinement =\n state.getHierarchicalRefinement(hierarchicalFacet.name)[0] || '';\n // if refinement is 'beers > IPA > Flying dog',\n // then we want `facets: ['beers > IPA']` as disjunctive facet (parent level values)\n\n var parentLevel = hierarchicalRefinement.split(separator).length - 1;\n return hierarchicalFacet.attributes.slice(0, parentLevel + 1);\n },\n\n getSearchForFacetQuery: function (facetName, query, maxFacetHits, state) {\n var stateForSearchForFacetValues = state.isDisjunctiveFacet(facetName)\n ? state.clearRefinements(facetName)\n : state;\n var searchForFacetSearchParameters = {\n facetQuery: query,\n facetName: facetName,\n };\n if (typeof maxFacetHits === 'number') {\n searchForFacetSearchParameters.maxFacetHits = maxFacetHits;\n }\n return sortObject(\n merge(\n {},\n requestBuilder._getHitsSearchParams(stateForSearchForFacetValues),\n searchForFacetSearchParameters\n )\n );\n },\n};\n\nmodule.exports = requestBuilder;\n","'use strict';\n\nmodule.exports = function isValidUserToken(userToken) {\n if (userToken === null) {\n return false;\n }\n return /^[a-zA-Z0-9_-]{1,64}$/.test(userToken);\n};\n","'use strict';\n\nmodule.exports = '3.13.3';\n","/*! algoliasearch-lite.umd.js | 4.18.0 | © Algolia, inc. | https://github.com/algolia/algoliasearch-client-javascript */\n!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=e||self).algoliasearch=t()}(this,(function(){\"use strict\";function e(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function t(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function r(r){for(var n=1;n=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(!(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e)))return;var r=[],n=!0,o=!1,a=void 0;try{for(var u,i=e[Symbol.iterator]();!(n=(u=i.next()).done)&&(r.push(u.value),!t||r.length!==t);n=!0);}catch(e){o=!0,a=e}finally{try{n||null==i.return||i.return()}finally{if(o)throw a}}return r}(e,t)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}()}function a(e){return function(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return Promise.resolve().then((function(){i();var t=JSON.stringify(e);return a()[t]})).then((function(e){return Promise.all([e?e.value:t(),void 0!==e])})).then((function(e){var t=o(e,2),n=t[0],a=t[1];return Promise.all([n,a||r.miss(n)])})).then((function(e){return o(e,1)[0]}))},set:function(e,t){return Promise.resolve().then((function(){var o=a();return o[JSON.stringify(e)]={timestamp:(new Date).getTime(),value:t},n().setItem(r,JSON.stringify(o)),t}))},delete:function(e){return Promise.resolve().then((function(){var t=a();delete t[JSON.stringify(e)],n().setItem(r,JSON.stringify(t))}))},clear:function(){return Promise.resolve().then((function(){n().removeItem(r)}))}}}function i(e){var t=a(e.caches),r=t.shift();return void 0===r?{get:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},n=t();return n.then((function(e){return Promise.all([e,r.miss(e)])})).then((function(e){return o(e,1)[0]}))},set:function(e,t){return Promise.resolve(t)},delete:function(e){return Promise.resolve()},clear:function(){return Promise.resolve()}}:{get:function(e,n){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return r.get(e,n,o).catch((function(){return i({caches:t}).get(e,n,o)}))},set:function(e,n){return r.set(e,n).catch((function(){return i({caches:t}).set(e,n)}))},delete:function(e){return r.delete(e).catch((function(){return i({caches:t}).delete(e)}))},clear:function(){return r.clear().catch((function(){return i({caches:t}).clear()}))}}}function s(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{serializable:!0},t={};return{get:function(r,n){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},a=JSON.stringify(r);if(a in t)return Promise.resolve(e.serializable?JSON.parse(t[a]):t[a]);var u=n(),i=o&&o.miss||function(){return Promise.resolve()};return u.then((function(e){return i(e)})).then((function(){return u}))},set:function(r,n){return t[JSON.stringify(r)]=e.serializable?JSON.stringify(n):n,Promise.resolve(n)},delete:function(e){return delete t[JSON.stringify(e)],Promise.resolve()},clear:function(){return t={},Promise.resolve()}}}function c(e){for(var t=e.length-1;t>0;t--){var r=Math.floor(Math.random()*(t+1)),n=e[t];e[t]=e[r],e[r]=n}return e}function l(e,t){return t?(Object.keys(t).forEach((function(r){e[r]=t[r](e)})),e):e}function f(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n0?n:void 0,timeout:r.timeout||t,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}var d={Read:1,Write:2,Any:3},p=1,v=2,g=3;function y(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:p;return r(r({},e),{},{status:t,lastUpdate:Date.now()})}function b(e){return\"string\"==typeof e?{protocol:\"https\",url:e,accept:d.Any}:{protocol:e.protocol||\"https\",url:e.url,accept:e.accept||d.Any}}var O=\"GET\",P=\"POST\";function q(e,t){return Promise.all(t.map((function(t){return e.get(t,(function(){return Promise.resolve(y(t))}))}))).then((function(e){var r=e.filter((function(e){return function(e){return e.status===p||Date.now()-e.lastUpdate>12e4}(e)})),n=e.filter((function(e){return function(e){return e.status===g&&Date.now()-e.lastUpdate<=12e4}(e)})),o=[].concat(a(r),a(n));return{getTimeout:function(e,t){return(0===n.length&&0===e?1:n.length+3+e)*t},statelessHosts:o.length>0?o.map((function(e){return b(e)})):t}}))}function j(e,t,n,o){var u=[],i=function(e,t){if(e.method===O||void 0===e.data&&void 0===t.data)return;var n=Array.isArray(e.data)?e.data:r(r({},e.data),t.data);return JSON.stringify(n)}(n,o),s=function(e,t){var n=r(r({},e.headers),t.headers),o={};return Object.keys(n).forEach((function(e){var t=n[e];o[e.toLowerCase()]=t})),o}(e,o),c=n.method,l=n.method!==O?{}:r(r({},n.data),o.data),f=r(r(r({\"x-algolia-agent\":e.userAgent.value},e.queryParameters),l),o.queryParameters),m=0,h=function t(r,a){var l=r.pop();if(void 0===l)throw{name:\"RetryError\",message:\"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.\",transporterStackTrace:A(u)};var h={data:i,headers:s,method:c,url:S(l,n.path,f),connectTimeout:a(m,e.timeouts.connect),responseTimeout:a(m,o.timeout)},d=function(e){var t={request:h,response:e,host:l,triesLeft:r.length};return u.push(t),t},p={onSuccess:function(e){return function(e){try{return JSON.parse(e.content)}catch(t){throw function(e,t){return{name:\"DeserializationError\",message:e,response:t}}(t.message,e)}}(e)},onRetry:function(n){var o=d(n);return n.isTimedOut&&m++,Promise.all([e.logger.info(\"Retryable failure\",N(o)),e.hostsCache.set(l,y(l,n.isTimedOut?g:v))]).then((function(){return t(r,a)}))},onFail:function(e){throw d(e),function(e,t){var r=e.content,n=e.status,o=r;try{o=JSON.parse(r).message}catch(e){}return function(e,t,r){return{name:\"ApiError\",message:e,status:t,transporterStackTrace:r}}(o,n,t)}(e,A(u))}};return e.requester.send(h).then((function(e){return function(e,t){return function(e){var t=e.status;return e.isTimedOut||function(e){var t=e.isTimedOut,r=e.status;return!t&&0==~~r}(e)||2!=~~(t/100)&&4!=~~(t/100)}(e)?t.onRetry(e):2==~~(e.status/100)?t.onSuccess(e):t.onFail(e)}(e,p)}))};return q(e.hostsCache,t).then((function(e){return h(a(e.statelessHosts).reverse(),e.getTimeout)}))}function w(e){var t={value:\"Algolia for JavaScript (\".concat(e,\")\"),add:function(e){var r=\"; \".concat(e.segment).concat(void 0!==e.version?\" (\".concat(e.version,\")\"):\"\");return-1===t.value.indexOf(r)&&(t.value=\"\".concat(t.value).concat(r)),t}};return t}function S(e,t,r){var n=T(r),o=\"\".concat(e.protocol,\"://\").concat(e.url,\"/\").concat(\"/\"===t.charAt(0)?t.substr(1):t);return n.length&&(o+=\"?\".concat(n)),o}function T(e){return Object.keys(e).map((function(t){return f(\"%s=%s\",t,(r=e[t],\"[object Object]\"===Object.prototype.toString.call(r)||\"[object Array]\"===Object.prototype.toString.call(r)?JSON.stringify(e[t]):e[t]));var r})).join(\"&\")}function A(e){return e.map((function(e){return N(e)}))}function N(e){var t=e.request.headers[\"x-algolia-api-key\"]?{\"x-algolia-api-key\":\"*****\"}:{};return r(r({},e),{},{request:r(r({},e.request),{},{headers:r(r({},e.request.headers),t)})})}var x=function(e){var t=e.appId,n=function(e,t,r){var n={\"x-algolia-api-key\":r,\"x-algolia-application-id\":t};return{headers:function(){return e===m.WithinHeaders?n:{}},queryParameters:function(){return e===m.WithinQueryParameters?n:{}}}}(void 0!==e.authMode?e.authMode:m.WithinHeaders,t,e.apiKey),a=function(e){var t=e.hostsCache,r=e.logger,n=e.requester,a=e.requestsCache,u=e.responsesCache,i=e.timeouts,s=e.userAgent,c=e.hosts,l=e.queryParameters,f={hostsCache:t,logger:r,requester:n,requestsCache:a,responsesCache:u,timeouts:i,userAgent:s,headers:e.headers,queryParameters:l,hosts:c.map((function(e){return b(e)})),read:function(e,t){var r=h(t,f.timeouts.read),n=function(){return j(f,f.hosts.filter((function(e){return 0!=(e.accept&d.Read)})),e,r)};if(!0!==(void 0!==r.cacheable?r.cacheable:e.cacheable))return n();var a={request:e,mappedRequestOptions:r,transporter:{queryParameters:f.queryParameters,headers:f.headers}};return f.responsesCache.get(a,(function(){return f.requestsCache.get(a,(function(){return f.requestsCache.set(a,n()).then((function(e){return Promise.all([f.requestsCache.delete(a),e])}),(function(e){return Promise.all([f.requestsCache.delete(a),Promise.reject(e)])})).then((function(e){var t=o(e,2);t[0];return t[1]}))}))}),{miss:function(e){return f.responsesCache.set(a,e)}})},write:function(e,t){return j(f,f.hosts.filter((function(e){return 0!=(e.accept&d.Write)})),e,h(t,f.timeouts.write))}};return f}(r(r({hosts:[{url:\"\".concat(t,\"-dsn.algolia.net\"),accept:d.Read},{url:\"\".concat(t,\".algolia.net\"),accept:d.Write}].concat(c([{url:\"\".concat(t,\"-1.algolianet.com\")},{url:\"\".concat(t,\"-2.algolianet.com\")},{url:\"\".concat(t,\"-3.algolianet.com\")}]))},e),{},{headers:r(r(r({},n.headers()),{\"content-type\":\"application/x-www-form-urlencoded\"}),e.headers),queryParameters:r(r({},n.queryParameters()),e.queryParameters)}));return l({transporter:a,appId:t,addAlgoliaAgent:function(e,t){a.userAgent.add({segment:e,version:t})},clearCache:function(){return Promise.all([a.requestsCache.clear(),a.responsesCache.clear()]).then((function(){}))}},e.methods)},C=function(e){return function(t,r){return t.method===O?e.transporter.read(t,r):e.transporter.write(t,r)}},E=function(e){return function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={transporter:e.transporter,appId:e.appId,indexName:t};return l(n,r.methods)}},J=function(e){return function(t,n){var o=t.map((function(e){return r(r({},e),{},{params:T(e.params||{})})}));return e.transporter.read({method:P,path:\"1/indexes/*/queries\",data:{requests:o},cacheable:!0},n)}},k=function(e){return function(t,o){return Promise.all(t.map((function(t){var a=t.params,u=a.facetName,i=a.facetQuery,s=n(a,[\"facetName\",\"facetQuery\"]);return E(e)(t.indexName,{methods:{searchForFacetValues:R}}).searchForFacetValues(u,i,r(r({},o),s))})))}},I=function(e){return function(t,r,n){return e.transporter.read({method:P,path:f(\"1/answers/%s/prediction\",e.indexName),data:{query:t,queryLanguages:r},cacheable:!0},n)}},F=function(e){return function(t,r){return e.transporter.read({method:P,path:f(\"1/indexes/%s/query\",e.indexName),data:{query:t},cacheable:!0},r)}},R=function(e){return function(t,r,n){return e.transporter.read({method:P,path:f(\"1/indexes/%s/facets/%s/query\",e.indexName,t),data:{facetQuery:r},cacheable:!0},n)}},D=1,W=2,H=3;function Q(e,t,n){var o,a={appId:e,apiKey:t,timeouts:{connect:1,read:2,write:30},requester:{send:function(e){return new Promise((function(t){var r=new XMLHttpRequest;r.open(e.method,e.url,!0),Object.keys(e.headers).forEach((function(t){return r.setRequestHeader(t,e.headers[t])}));var n,o=function(e,n){return setTimeout((function(){r.abort(),t({status:0,content:n,isTimedOut:!0})}),1e3*e)},a=o(e.connectTimeout,\"Connection timeout\");r.onreadystatechange=function(){r.readyState>r.OPENED&&void 0===n&&(clearTimeout(a),n=o(e.responseTimeout,\"Socket timeout\"))},r.onerror=function(){0===r.status&&(clearTimeout(a),clearTimeout(n),t({content:r.responseText||\"Network request failed\",status:r.status,isTimedOut:!1}))},r.onload=function(){clearTimeout(a),clearTimeout(n),t({content:r.responseText,status:r.status,isTimedOut:!1})},r.send(e.data)}))}},logger:(o=H,{debug:function(e,t){return D>=o&&console.debug(e,t),Promise.resolve()},info:function(e,t){return W>=o&&console.info(e,t),Promise.resolve()},error:function(e,t){return console.error(e,t),Promise.resolve()}}),responsesCache:s(),requestsCache:s({serializable:!1}),hostsCache:i({caches:[u({key:\"\".concat(\"4.18.0\",\"-\").concat(e)}),s()]}),userAgent:w(\"4.18.0\").add({segment:\"Browser\",version:\"lite\"}),authMode:m.WithinQueryParameters};return x(r(r(r({},a),n),{},{methods:{search:J,searchForFacetValues:k,multipleQueries:J,multipleSearchForFacetValues:k,customRequest:C,initIndex:function(e){return function(t){return E(e)(t,{methods:{search:F,searchForFacetValues:R,findAnswers:I}})}}}}))}return Q.version=\"4.18.0\",Q}));\n","/*\n * Copyright 2011 Twitter, Inc.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function (Hogan) {\n // Setup regex assignments\n // remove whitespace according to Mustache spec\n var rIsWhitespace = /\\S/,\n rQuot = /\\\"/g,\n rNewline = /\\n/g,\n rCr = /\\r/g,\n rSlash = /\\\\/g,\n rLineSep = /\\u2028/,\n rParagraphSep = /\\u2029/;\n\n Hogan.tags = {\n '#': 1, '^': 2, '<': 3, '$': 4,\n '/': 5, '!': 6, '>': 7, '=': 8, '_v': 9,\n '{': 10, '&': 11, '_t': 12\n };\n\n Hogan.scan = function scan(text, delimiters) {\n var len = text.length,\n IN_TEXT = 0,\n IN_TAG_TYPE = 1,\n IN_TAG = 2,\n state = IN_TEXT,\n tagType = null,\n tag = null,\n buf = '',\n tokens = [],\n seenTag = false,\n i = 0,\n lineStart = 0,\n otag = '{{',\n ctag = '}}';\n\n function addBuf() {\n if (buf.length > 0) {\n tokens.push({tag: '_t', text: new String(buf)});\n buf = '';\n }\n }\n\n function lineIsWhitespace() {\n var isAllWhitespace = true;\n for (var j = lineStart; j < tokens.length; j++) {\n isAllWhitespace =\n (Hogan.tags[tokens[j].tag] < Hogan.tags['_v']) ||\n (tokens[j].tag == '_t' && tokens[j].text.match(rIsWhitespace) === null);\n if (!isAllWhitespace) {\n return false;\n }\n }\n\n return isAllWhitespace;\n }\n\n function filterLine(haveSeenTag, noNewLine) {\n addBuf();\n\n if (haveSeenTag && lineIsWhitespace()) {\n for (var j = lineStart, next; j < tokens.length; j++) {\n if (tokens[j].text) {\n if ((next = tokens[j+1]) && next.tag == '>') {\n // set indent to token value\n next.indent = tokens[j].text.toString()\n }\n tokens.splice(j, 1);\n }\n }\n } else if (!noNewLine) {\n tokens.push({tag:'\\n'});\n }\n\n seenTag = false;\n lineStart = tokens.length;\n }\n\n function changeDelimiters(text, index) {\n var close = '=' + ctag,\n closeIndex = text.indexOf(close, index),\n delimiters = trim(\n text.substring(text.indexOf('=', index) + 1, closeIndex)\n ).split(' ');\n\n otag = delimiters[0];\n ctag = delimiters[delimiters.length - 1];\n\n return closeIndex + close.length - 1;\n }\n\n if (delimiters) {\n delimiters = delimiters.split(' ');\n otag = delimiters[0];\n ctag = delimiters[1];\n }\n\n for (i = 0; i < len; i++) {\n if (state == IN_TEXT) {\n if (tagChange(otag, text, i)) {\n --i;\n addBuf();\n state = IN_TAG_TYPE;\n } else {\n if (text.charAt(i) == '\\n') {\n filterLine(seenTag);\n } else {\n buf += text.charAt(i);\n }\n }\n } else if (state == IN_TAG_TYPE) {\n i += otag.length - 1;\n tag = Hogan.tags[text.charAt(i + 1)];\n tagType = tag ? text.charAt(i + 1) : '_v';\n if (tagType == '=') {\n i = changeDelimiters(text, i);\n state = IN_TEXT;\n } else {\n if (tag) {\n i++;\n }\n state = IN_TAG;\n }\n seenTag = i;\n } else {\n if (tagChange(ctag, text, i)) {\n tokens.push({tag: tagType, n: trim(buf), otag: otag, ctag: ctag,\n i: (tagType == '/') ? seenTag - otag.length : i + ctag.length});\n buf = '';\n i += ctag.length - 1;\n state = IN_TEXT;\n if (tagType == '{') {\n if (ctag == '}}') {\n i++;\n } else {\n cleanTripleStache(tokens[tokens.length - 1]);\n }\n }\n } else {\n buf += text.charAt(i);\n }\n }\n }\n\n filterLine(seenTag, true);\n\n return tokens;\n }\n\n function cleanTripleStache(token) {\n if (token.n.substr(token.n.length - 1) === '}') {\n token.n = token.n.substring(0, token.n.length - 1);\n }\n }\n\n function trim(s) {\n if (s.trim) {\n return s.trim();\n }\n\n return s.replace(/^\\s*|\\s*$/g, '');\n }\n\n function tagChange(tag, text, index) {\n if (text.charAt(index) != tag.charAt(0)) {\n return false;\n }\n\n for (var i = 1, l = tag.length; i < l; i++) {\n if (text.charAt(index + i) != tag.charAt(i)) {\n return false;\n }\n }\n\n return true;\n }\n\n // the tags allowed inside super templates\n var allowedInSuper = {'_t': true, '\\n': true, '$': true, '/': true};\n\n function buildTree(tokens, kind, stack, customTags) {\n var instructions = [],\n opener = null,\n tail = null,\n token = null;\n\n tail = stack[stack.length - 1];\n\n while (tokens.length > 0) {\n token = tokens.shift();\n\n if (tail && tail.tag == '<' && !(token.tag in allowedInSuper)) {\n throw new Error('Illegal content in < super tag.');\n }\n\n if (Hogan.tags[token.tag] <= Hogan.tags['$'] || isOpener(token, customTags)) {\n stack.push(token);\n token.nodes = buildTree(tokens, token.tag, stack, customTags);\n } else if (token.tag == '/') {\n if (stack.length === 0) {\n throw new Error('Closing tag without opener: /' + token.n);\n }\n opener = stack.pop();\n if (token.n != opener.n && !isCloser(token.n, opener.n, customTags)) {\n throw new Error('Nesting error: ' + opener.n + ' vs. ' + token.n);\n }\n opener.end = token.i;\n return instructions;\n } else if (token.tag == '\\n') {\n token.last = (tokens.length == 0) || (tokens[0].tag == '\\n');\n }\n\n instructions.push(token);\n }\n\n if (stack.length > 0) {\n throw new Error('missing closing tag: ' + stack.pop().n);\n }\n\n return instructions;\n }\n\n function isOpener(token, tags) {\n for (var i = 0, l = tags.length; i < l; i++) {\n if (tags[i].o == token.n) {\n token.tag = '#';\n return true;\n }\n }\n }\n\n function isCloser(close, open, tags) {\n for (var i = 0, l = tags.length; i < l; i++) {\n if (tags[i].c == close && tags[i].o == open) {\n return true;\n }\n }\n }\n\n function stringifySubstitutions(obj) {\n var items = [];\n for (var key in obj) {\n items.push('\"' + esc(key) + '\": function(c,p,t,i) {' + obj[key] + '}');\n }\n return \"{ \" + items.join(\",\") + \" }\";\n }\n\n function stringifyPartials(codeObj) {\n var partials = [];\n for (var key in codeObj.partials) {\n partials.push('\"' + esc(key) + '\":{name:\"' + esc(codeObj.partials[key].name) + '\", ' + stringifyPartials(codeObj.partials[key]) + \"}\");\n }\n return \"partials: {\" + partials.join(\",\") + \"}, subs: \" + stringifySubstitutions(codeObj.subs);\n }\n\n Hogan.stringify = function(codeObj, text, options) {\n return \"{code: function (c,p,i) { \" + Hogan.wrapMain(codeObj.code) + \" },\" + stringifyPartials(codeObj) + \"}\";\n }\n\n var serialNo = 0;\n Hogan.generate = function(tree, text, options) {\n serialNo = 0;\n var context = { code: '', subs: {}, partials: {} };\n Hogan.walk(tree, context);\n\n if (options.asString) {\n return this.stringify(context, text, options);\n }\n\n return this.makeTemplate(context, text, options);\n }\n\n Hogan.wrapMain = function(code) {\n return 'var t=this;t.b(i=i||\"\");' + code + 'return t.fl();';\n }\n\n Hogan.template = Hogan.Template;\n\n Hogan.makeTemplate = function(codeObj, text, options) {\n var template = this.makePartials(codeObj);\n template.code = new Function('c', 'p', 'i', this.wrapMain(codeObj.code));\n return new this.template(template, text, this, options);\n }\n\n Hogan.makePartials = function(codeObj) {\n var key, template = {subs: {}, partials: codeObj.partials, name: codeObj.name};\n for (key in template.partials) {\n template.partials[key] = this.makePartials(template.partials[key]);\n }\n for (key in codeObj.subs) {\n template.subs[key] = new Function('c', 'p', 't', 'i', codeObj.subs[key]);\n }\n return template;\n }\n\n function esc(s) {\n return s.replace(rSlash, '\\\\\\\\')\n .replace(rQuot, '\\\\\\\"')\n .replace(rNewline, '\\\\n')\n .replace(rCr, '\\\\r')\n .replace(rLineSep, '\\\\u2028')\n .replace(rParagraphSep, '\\\\u2029');\n }\n\n function chooseMethod(s) {\n return (~s.indexOf('.')) ? 'd' : 'f';\n }\n\n function createPartial(node, context) {\n var prefix = \"<\" + (context.prefix || \"\");\n var sym = prefix + node.n + serialNo++;\n context.partials[sym] = {name: node.n, partials: {}};\n context.code += 't.b(t.rp(\"' + esc(sym) + '\",c,p,\"' + (node.indent || '') + '\"));';\n return sym;\n }\n\n Hogan.codegen = {\n '#': function(node, context) {\n context.code += 'if(t.s(t.' + chooseMethod(node.n) + '(\"' + esc(node.n) + '\",c,p,1),' +\n 'c,p,0,' + node.i + ',' + node.end + ',\"' + node.otag + \" \" + node.ctag + '\")){' +\n 't.rs(c,p,' + 'function(c,p,t){';\n Hogan.walk(node.nodes, context);\n context.code += '});c.pop();}';\n },\n\n '^': function(node, context) {\n context.code += 'if(!t.s(t.' + chooseMethod(node.n) + '(\"' + esc(node.n) + '\",c,p,1),c,p,1,0,0,\"\")){';\n Hogan.walk(node.nodes, context);\n context.code += '};';\n },\n\n '>': createPartial,\n '<': function(node, context) {\n var ctx = {partials: {}, code: '', subs: {}, inPartial: true};\n Hogan.walk(node.nodes, ctx);\n var template = context.partials[createPartial(node, context)];\n template.subs = ctx.subs;\n template.partials = ctx.partials;\n },\n\n '$': function(node, context) {\n var ctx = {subs: {}, code: '', partials: context.partials, prefix: node.n};\n Hogan.walk(node.nodes, ctx);\n context.subs[node.n] = ctx.code;\n if (!context.inPartial) {\n context.code += 't.sub(\"' + esc(node.n) + '\",c,p,i);';\n }\n },\n\n '\\n': function(node, context) {\n context.code += write('\"\\\\n\"' + (node.last ? '' : ' + i'));\n },\n\n '_v': function(node, context) {\n context.code += 't.b(t.v(t.' + chooseMethod(node.n) + '(\"' + esc(node.n) + '\",c,p,0)));';\n },\n\n '_t': function(node, context) {\n context.code += write('\"' + esc(node.text) + '\"');\n },\n\n '{': tripleStache,\n\n '&': tripleStache\n }\n\n function tripleStache(node, context) {\n context.code += 't.b(t.t(t.' + chooseMethod(node.n) + '(\"' + esc(node.n) + '\",c,p,0)));';\n }\n\n function write(s) {\n return 't.b(' + s + ');';\n }\n\n Hogan.walk = function(nodelist, context) {\n var func;\n for (var i = 0, l = nodelist.length; i < l; i++) {\n func = Hogan.codegen[nodelist[i].tag];\n func && func(nodelist[i], context);\n }\n return context;\n }\n\n Hogan.parse = function(tokens, text, options) {\n options = options || {};\n return buildTree(tokens, '', [], options.sectionTags || []);\n }\n\n Hogan.cache = {};\n\n Hogan.cacheKey = function(text, options) {\n return [text, !!options.asString, !!options.disableLambda, options.delimiters, !!options.modelGet].join('||');\n }\n\n Hogan.compile = function(text, options) {\n options = options || {};\n var key = Hogan.cacheKey(text, options);\n var template = this.cache[key];\n\n if (template) {\n var partials = template.partials;\n for (var name in partials) {\n delete partials[name].instance;\n }\n return template;\n }\n\n template = this.generate(this.parse(this.scan(text, options.delimiters), text, options), text, options);\n return this.cache[key] = template;\n }\n})(typeof exports !== 'undefined' ? exports : Hogan);\n","/*\n * Copyright 2011 Twitter, Inc.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// This file is for use with Node.js. See dist/ for browser files.\n\nvar Hogan = require('./compiler');\nHogan.Template = require('./template').Template;\nHogan.template = Hogan.Template;\nmodule.exports = Hogan;\n","/*\n * Copyright 2011 Twitter, Inc.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar Hogan = {};\n\n(function (Hogan) {\n Hogan.Template = function (codeObj, text, compiler, options) {\n codeObj = codeObj || {};\n this.r = codeObj.code || this.r;\n this.c = compiler;\n this.options = options || {};\n this.text = text || '';\n this.partials = codeObj.partials || {};\n this.subs = codeObj.subs || {};\n this.buf = '';\n }\n\n Hogan.Template.prototype = {\n // render: replaced by generated code.\n r: function (context, partials, indent) { return ''; },\n\n // variable escaping\n v: hoganEscape,\n\n // triple stache\n t: coerceToString,\n\n render: function render(context, partials, indent) {\n return this.ri([context], partials || {}, indent);\n },\n\n // render internal -- a hook for overrides that catches partials too\n ri: function (context, partials, indent) {\n return this.r(context, partials, indent);\n },\n\n // ensurePartial\n ep: function(symbol, partials) {\n var partial = this.partials[symbol];\n\n // check to see that if we've instantiated this partial before\n var template = partials[partial.name];\n if (partial.instance && partial.base == template) {\n return partial.instance;\n }\n\n if (typeof template == 'string') {\n if (!this.c) {\n throw new Error(\"No compiler available.\");\n }\n template = this.c.compile(template, this.options);\n }\n\n if (!template) {\n return null;\n }\n\n // We use this to check whether the partials dictionary has changed\n this.partials[symbol].base = template;\n\n if (partial.subs) {\n // Make sure we consider parent template now\n if (!partials.stackText) partials.stackText = {};\n for (key in partial.subs) {\n if (!partials.stackText[key]) {\n partials.stackText[key] = (this.activeSub !== undefined && partials.stackText[this.activeSub]) ? partials.stackText[this.activeSub] : this.text;\n }\n }\n template = createSpecializedPartial(template, partial.subs, partial.partials,\n this.stackSubs, this.stackPartials, partials.stackText);\n }\n this.partials[symbol].instance = template;\n\n return template;\n },\n\n // tries to find a partial in the current scope and render it\n rp: function(symbol, context, partials, indent) {\n var partial = this.ep(symbol, partials);\n if (!partial) {\n return '';\n }\n\n return partial.ri(context, partials, indent);\n },\n\n // render a section\n rs: function(context, partials, section) {\n var tail = context[context.length - 1];\n\n if (!isArray(tail)) {\n section(context, partials, this);\n return;\n }\n\n for (var i = 0; i < tail.length; i++) {\n context.push(tail[i]);\n section(context, partials, this);\n context.pop();\n }\n },\n\n // maybe start a section\n s: function(val, ctx, partials, inverted, start, end, tags) {\n var pass;\n\n if (isArray(val) && val.length === 0) {\n return false;\n }\n\n if (typeof val == 'function') {\n val = this.ms(val, ctx, partials, inverted, start, end, tags);\n }\n\n pass = !!val;\n\n if (!inverted && pass && ctx) {\n ctx.push((typeof val == 'object') ? val : ctx[ctx.length - 1]);\n }\n\n return pass;\n },\n\n // find values with dotted names\n d: function(key, ctx, partials, returnFound) {\n var found,\n names = key.split('.'),\n val = this.f(names[0], ctx, partials, returnFound),\n doModelGet = this.options.modelGet,\n cx = null;\n\n if (key === '.' && isArray(ctx[ctx.length - 2])) {\n val = ctx[ctx.length - 1];\n } else {\n for (var i = 1; i < names.length; i++) {\n found = findInScope(names[i], val, doModelGet);\n if (found !== undefined) {\n cx = val;\n val = found;\n } else {\n val = '';\n }\n }\n }\n\n if (returnFound && !val) {\n return false;\n }\n\n if (!returnFound && typeof val == 'function') {\n ctx.push(cx);\n val = this.mv(val, ctx, partials);\n ctx.pop();\n }\n\n return val;\n },\n\n // find values with normal names\n f: function(key, ctx, partials, returnFound) {\n var val = false,\n v = null,\n found = false,\n doModelGet = this.options.modelGet;\n\n for (var i = ctx.length - 1; i >= 0; i--) {\n v = ctx[i];\n val = findInScope(key, v, doModelGet);\n if (val !== undefined) {\n found = true;\n break;\n }\n }\n\n if (!found) {\n return (returnFound) ? false : \"\";\n }\n\n if (!returnFound && typeof val == 'function') {\n val = this.mv(val, ctx, partials);\n }\n\n return val;\n },\n\n // higher order templates\n ls: function(func, cx, partials, text, tags) {\n var oldTags = this.options.delimiters;\n\n this.options.delimiters = tags;\n this.b(this.ct(coerceToString(func.call(cx, text)), cx, partials));\n this.options.delimiters = oldTags;\n\n return false;\n },\n\n // compile text\n ct: function(text, cx, partials) {\n if (this.options.disableLambda) {\n throw new Error('Lambda features disabled.');\n }\n return this.c.compile(text, this.options).render(cx, partials);\n },\n\n // template result buffering\n b: function(s) { this.buf += s; },\n\n fl: function() { var r = this.buf; this.buf = ''; return r; },\n\n // method replace section\n ms: function(func, ctx, partials, inverted, start, end, tags) {\n var textSource,\n cx = ctx[ctx.length - 1],\n result = func.call(cx);\n\n if (typeof result == 'function') {\n if (inverted) {\n return true;\n } else {\n textSource = (this.activeSub && this.subsText && this.subsText[this.activeSub]) ? this.subsText[this.activeSub] : this.text;\n return this.ls(result, cx, partials, textSource.substring(start, end), tags);\n }\n }\n\n return result;\n },\n\n // method replace variable\n mv: function(func, ctx, partials) {\n var cx = ctx[ctx.length - 1];\n var result = func.call(cx);\n\n if (typeof result == 'function') {\n return this.ct(coerceToString(result.call(cx)), cx, partials);\n }\n\n return result;\n },\n\n sub: function(name, context, partials, indent) {\n var f = this.subs[name];\n if (f) {\n this.activeSub = name;\n f(context, partials, this, indent);\n this.activeSub = false;\n }\n }\n\n };\n\n //Find a key in an object\n function findInScope(key, scope, doModelGet) {\n var val;\n\n if (scope && typeof scope == 'object') {\n\n if (scope[key] !== undefined) {\n val = scope[key];\n\n // try lookup with get for backbone or similar model data\n } else if (doModelGet && scope.get && typeof scope.get == 'function') {\n val = scope.get(key);\n }\n }\n\n return val;\n }\n\n function createSpecializedPartial(instance, subs, partials, stackSubs, stackPartials, stackText) {\n function PartialTemplate() {};\n PartialTemplate.prototype = instance;\n function Substitutions() {};\n Substitutions.prototype = instance.subs;\n var key;\n var partial = new PartialTemplate();\n partial.subs = new Substitutions();\n partial.subsText = {}; //hehe. substext.\n partial.buf = '';\n\n stackSubs = stackSubs || {};\n partial.stackSubs = stackSubs;\n partial.subsText = stackText;\n for (key in subs) {\n if (!stackSubs[key]) stackSubs[key] = subs[key];\n }\n for (key in stackSubs) {\n partial.subs[key] = stackSubs[key];\n }\n\n stackPartials = stackPartials || {};\n partial.stackPartials = stackPartials;\n for (key in partials) {\n if (!stackPartials[key]) stackPartials[key] = partials[key];\n }\n for (key in stackPartials) {\n partial.partials[key] = stackPartials[key];\n }\n\n return partial;\n }\n\n var rAmp = /&/g,\n rLt = //g,\n rApos = /\\'/g,\n rQuot = /\\\"/g,\n hChars = /[&<>\\\"\\']/;\n\n function coerceToString(val) {\n return String((val === null || val === undefined) ? '' : val);\n }\n\n function hoganEscape(str) {\n str = coerceToString(str);\n return hChars.test(str) ?\n str\n .replace(rAmp, '&')\n .replace(rLt, '<')\n .replace(rGt, '>')\n .replace(rApos, ''')\n .replace(rQuot, '"') :\n str;\n }\n\n var isArray = Array.isArray || function(a) {\n return Object.prototype.toString.call(a) === '[object Array]';\n };\n\n})(typeof exports !== 'undefined' ? exports : Hogan);\n","(function(e,t){if(typeof define===\"function\"&&define.amd){define([],t)}else if(typeof module===\"object\"&&module.exports){module.exports=t()}else{e.htmx=e.htmx||t()}})(typeof self!==\"undefined\"?self:this,function(){return function(){\"use strict\";var Q={onLoad:F,process:zt,on:de,off:ge,trigger:ce,ajax:Nr,find:C,findAll:f,closest:v,values:function(e,t){var r=dr(e,t||\"post\");return r.values},remove:_,addClass:z,removeClass:n,toggleClass:$,takeClass:W,defineExtension:Ur,removeExtension:Br,logAll:V,logNone:j,logger:null,config:{historyEnabled:true,historyCacheSize:10,refreshOnHistoryMiss:false,defaultSwapStyle:\"innerHTML\",defaultSwapDelay:0,defaultSettleDelay:20,includeIndicatorStyles:true,indicatorClass:\"htmx-indicator\",requestClass:\"htmx-request\",addedClass:\"htmx-added\",settlingClass:\"htmx-settling\",swappingClass:\"htmx-swapping\",allowEval:true,allowScriptTags:true,inlineScriptNonce:\"\",attributesToSettle:[\"class\",\"style\",\"width\",\"height\"],withCredentials:false,timeout:0,wsReconnectDelay:\"full-jitter\",wsBinaryType:\"blob\",disableSelector:\"[hx-disable], [data-hx-disable]\",useTemplateFragments:false,scrollBehavior:\"smooth\",defaultFocusScroll:false,getCacheBusterParam:false,globalViewTransitions:false,methodsThatUseUrlParams:[\"get\"],selfRequestsOnly:false,ignoreTitle:false,scrollIntoViewOnBoost:true,triggerSpecsCache:null},parseInterval:d,_:t,createEventSource:function(e){return new EventSource(e,{withCredentials:true})},createWebSocket:function(e){var t=new WebSocket(e,[]);t.binaryType=Q.config.wsBinaryType;return t},version:\"1.9.12\"};var r={addTriggerHandler:Lt,bodyContains:se,canAccessLocalStorage:U,findThisElement:xe,filterValues:yr,hasAttribute:o,getAttributeValue:te,getClosestAttributeValue:ne,getClosestMatch:c,getExpressionVars:Hr,getHeaders:xr,getInputValues:dr,getInternalData:ae,getSwapSpecification:wr,getTriggerSpecs:it,getTarget:ye,makeFragment:l,mergeObjects:le,makeSettleInfo:T,oobSwap:Ee,querySelectorExt:ue,selectAndSwap:je,settleImmediately:nr,shouldCancel:ut,triggerEvent:ce,triggerErrorEvent:fe,withExtensions:R};var w=[\"get\",\"post\",\"put\",\"delete\",\"patch\"];var i=w.map(function(e){return\"[hx-\"+e+\"], [data-hx-\"+e+\"]\"}).join(\", \");var S=e(\"head\"),q=e(\"title\"),H=e(\"svg\",true);function e(e,t){return new RegExp(\"<\"+e+\"(\\\\s[^>]*>|>)([\\\\s\\\\S]*?)<\\\\/\"+e+\">\",!!t?\"gim\":\"im\")}function d(e){if(e==undefined){return undefined}let t=NaN;if(e.slice(-2)==\"ms\"){t=parseFloat(e.slice(0,-2))}else if(e.slice(-1)==\"s\"){t=parseFloat(e.slice(0,-1))*1e3}else if(e.slice(-1)==\"m\"){t=parseFloat(e.slice(0,-1))*1e3*60}else{t=parseFloat(e)}return isNaN(t)?undefined:t}function ee(e,t){return e.getAttribute&&e.getAttribute(t)}function o(e,t){return e.hasAttribute&&(e.hasAttribute(t)||e.hasAttribute(\"data-\"+t))}function te(e,t){return ee(e,t)||ee(e,\"data-\"+t)}function u(e){return e.parentElement}function re(){return document}function c(e,t){while(e&&!t(e)){e=u(e)}return e?e:null}function L(e,t,r){var n=te(t,r);var i=te(t,\"hx-disinherit\");if(e!==t&&i&&(i===\"*\"||i.split(\" \").indexOf(r)>=0)){return\"unset\"}else{return n}}function ne(t,r){var n=null;c(t,function(e){return n=L(t,e,r)});if(n!==\"unset\"){return n}}function h(e,t){var r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.oMatchesSelector;return r&&r.call(e,t)}function A(e){var t=/<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i;var r=t.exec(e);if(r){return r[1].toLowerCase()}else{return\"\"}}function s(e,t){var r=new DOMParser;var n=r.parseFromString(e,\"text/html\");var i=n.body;while(t>0){t--;i=i.firstChild}if(i==null){i=re().createDocumentFragment()}return i}function N(e){return/\",0);var a=i.querySelector(\"template\").content;if(Q.config.allowScriptTags){oe(a.querySelectorAll(\"script\"),function(e){if(Q.config.inlineScriptNonce){e.nonce=Q.config.inlineScriptNonce}e.htmxExecuted=navigator.userAgent.indexOf(\"Firefox\")===-1})}else{oe(a.querySelectorAll(\"script\"),function(e){_(e)})}return a}switch(r){case\"thead\":case\"tbody\":case\"tfoot\":case\"colgroup\":case\"caption\":return s(\"\"+n+\"
\",1);case\"col\":return s(\"\"+n+\"
\",2);case\"tr\":return s(\"\"+n+\"
\",2);case\"td\":case\"th\":return s(\"\"+n+\"
\",3);case\"script\":case\"style\":return s(\"
\"+n+\"
\",1);default:return s(n,0)}}function ie(e){if(e){e()}}function I(e,t){return Object.prototype.toString.call(e)===\"[object \"+t+\"]\"}function k(e){return I(e,\"Function\")}function P(e){return I(e,\"Object\")}function ae(e){var t=\"htmx-internal-data\";var r=e[t];if(!r){r=e[t]={}}return r}function M(e){var t=[];if(e){for(var r=0;r=0}function se(e){if(e.getRootNode&&e.getRootNode()instanceof window.ShadowRoot){return re().body.contains(e.getRootNode().host)}else{return re().body.contains(e)}}function D(e){return e.trim().split(/\\s+/)}function le(e,t){for(var r in t){if(t.hasOwnProperty(r)){e[r]=t[r]}}return e}function E(e){try{return JSON.parse(e)}catch(e){b(e);return null}}function U(){var e=\"htmx:localStorageTest\";try{localStorage.setItem(e,e);localStorage.removeItem(e);return true}catch(e){return false}}function B(t){try{var e=new URL(t);if(e){t=e.pathname+e.search}if(!/^\\/$/.test(t)){t=t.replace(/\\/+$/,\"\")}return t}catch(e){return t}}function t(e){return Tr(re().body,function(){return eval(e)})}function F(t){var e=Q.on(\"htmx:load\",function(e){t(e.detail.elt)});return e}function V(){Q.logger=function(e,t,r){if(console){console.log(t,e,r)}}}function j(){Q.logger=null}function C(e,t){if(t){return e.querySelector(t)}else{return C(re(),e)}}function f(e,t){if(t){return e.querySelectorAll(t)}else{return f(re(),e)}}function _(e,t){e=p(e);if(t){setTimeout(function(){_(e);e=null},t)}else{e.parentElement.removeChild(e)}}function z(e,t,r){e=p(e);if(r){setTimeout(function(){z(e,t);e=null},r)}else{e.classList&&e.classList.add(t)}}function n(e,t,r){e=p(e);if(r){setTimeout(function(){n(e,t);e=null},r)}else{if(e.classList){e.classList.remove(t);if(e.classList.length===0){e.removeAttribute(\"class\")}}}}function $(e,t){e=p(e);e.classList.toggle(t)}function W(e,t){e=p(e);oe(e.parentElement.children,function(e){n(e,t)});z(e,t)}function v(e,t){e=p(e);if(e.closest){return e.closest(t)}else{do{if(e==null||h(e,t)){return e}}while(e=e&&u(e));return null}}function g(e,t){return e.substring(0,t.length)===t}function G(e,t){return e.substring(e.length-t.length)===t}function J(e){var t=e.trim();if(g(t,\"<\")&&G(t,\"/>\")){return t.substring(1,t.length-2)}else{return t}}function Z(e,t){if(t.indexOf(\"closest \")===0){return[v(e,J(t.substr(8)))]}else if(t.indexOf(\"find \")===0){return[C(e,J(t.substr(5)))]}else if(t===\"next\"){return[e.nextElementSibling]}else if(t.indexOf(\"next \")===0){return[K(e,J(t.substr(5)))]}else if(t===\"previous\"){return[e.previousElementSibling]}else if(t.indexOf(\"previous \")===0){return[Y(e,J(t.substr(9)))]}else if(t===\"document\"){return[document]}else if(t===\"window\"){return[window]}else if(t===\"body\"){return[document.body]}else{return re().querySelectorAll(J(t))}}var K=function(e,t){var r=re().querySelectorAll(t);for(var n=0;n=0;n--){var i=r[n];if(i.compareDocumentPosition(e)===Node.DOCUMENT_POSITION_FOLLOWING){return i}}};function ue(e,t){if(t){return Z(e,t)[0]}else{return Z(re().body,e)[0]}}function p(e){if(I(e,\"String\")){return C(e)}else{return e}}function ve(e,t,r){if(k(t)){return{target:re().body,event:e,listener:t}}else{return{target:p(e),event:t,listener:r}}}function de(t,r,n){jr(function(){var e=ve(t,r,n);e.target.addEventListener(e.event,e.listener)});var e=k(r);return e?r:n}function ge(t,r,n){jr(function(){var e=ve(t,r,n);e.target.removeEventListener(e.event,e.listener)});return k(r)?r:n}var pe=re().createElement(\"output\");function me(e,t){var r=ne(e,t);if(r){if(r===\"this\"){return[xe(e,t)]}else{var n=Z(e,r);if(n.length===0){b('The selector \"'+r+'\" on '+t+\" returned no matches!\");return[pe]}else{return n}}}}function xe(e,t){return c(e,function(e){return te(e,t)!=null})}function ye(e){var t=ne(e,\"hx-target\");if(t){if(t===\"this\"){return xe(e,\"hx-target\")}else{return ue(e,t)}}else{var r=ae(e);if(r.boosted){return re().body}else{return e}}}function be(e){var t=Q.config.attributesToSettle;for(var r=0;r0){o=e.substr(0,e.indexOf(\":\"));t=e.substr(e.indexOf(\":\")+1,e.length)}else{o=e}var r=re().querySelectorAll(t);if(r){oe(r,function(e){var t;var r=i.cloneNode(true);t=re().createDocumentFragment();t.appendChild(r);if(!Se(o,e)){t=r}var n={shouldSwap:true,target:e,fragment:t};if(!ce(e,\"htmx:oobBeforeSwap\",n))return;e=n.target;if(n[\"shouldSwap\"]){Fe(o,e,e,t,a)}oe(a.elts,function(e){ce(e,\"htmx:oobAfterSwap\",n)})});i.parentNode.removeChild(i)}else{i.parentNode.removeChild(i);fe(re().body,\"htmx:oobErrorNoTarget\",{content:i})}return e}function Ce(e,t,r){var n=ne(e,\"hx-select-oob\");if(n){var i=n.split(\",\");for(var a=0;a0){var r=t.replace(\"'\",\"\\\\'\");var n=e.tagName.replace(\":\",\"\\\\:\");var i=o.querySelector(n+\"[id='\"+r+\"']\");if(i&&i!==o){var a=e.cloneNode();we(e,i);s.tasks.push(function(){we(e,a)})}}})}function Oe(e){return function(){n(e,Q.config.addedClass);zt(e);Nt(e);qe(e);ce(e,\"htmx:load\")}}function qe(e){var t=\"[autofocus]\";var r=h(e,t)?e:e.querySelector(t);if(r!=null){r.focus()}}function a(e,t,r,n){Te(e,r,n);while(r.childNodes.length>0){var i=r.firstChild;z(i,Q.config.addedClass);e.insertBefore(i,t);if(i.nodeType!==Node.TEXT_NODE&&i.nodeType!==Node.COMMENT_NODE){n.tasks.push(Oe(i))}}}function He(e,t){var r=0;while(r-1){var t=e.replace(H,\"\");var r=t.match(q);if(r){return r[2]}}}function je(e,t,r,n,i,a){i.title=Ve(n);var o=l(n);if(o){Ce(r,o,i);o=Be(r,o,a);Re(o);return Fe(e,r,t,o,i)}}function _e(e,t,r){var n=e.getResponseHeader(t);if(n.indexOf(\"{\")===0){var i=E(n);for(var a in i){if(i.hasOwnProperty(a)){var o=i[a];if(!P(o)){o={value:o}}ce(r,a,o)}}}else{var s=n.split(\",\");for(var l=0;l0){var o=t[0];if(o===\"]\"){n--;if(n===0){if(a===null){i=i+\"true\"}t.shift();i+=\")})\";try{var s=Tr(e,function(){return Function(i)()},function(){return true});s.source=i;return s}catch(e){fe(re().body,\"htmx:syntax:error\",{error:e,source:i});return null}}}else if(o===\"[\"){n++}if(Qe(o,a,r)){i+=\"((\"+r+\".\"+o+\") ? (\"+r+\".\"+o+\") : (window.\"+o+\"))\"}else{i=i+o}a=t.shift()}}}function y(e,t){var r=\"\";while(e.length>0&&!t.test(e[0])){r+=e.shift()}return r}function tt(e){var t;if(e.length>0&&Ze.test(e[0])){e.shift();t=y(e,Ke).trim();e.shift()}else{t=y(e,x)}return t}var rt=\"input, textarea, select\";function nt(e,t,r){var n=[];var i=Ye(t);do{y(i,Je);var a=i.length;var o=y(i,/[,\\[\\s]/);if(o!==\"\"){if(o===\"every\"){var s={trigger:\"every\"};y(i,Je);s.pollInterval=d(y(i,/[,\\[\\s]/));y(i,Je);var l=et(e,i,\"event\");if(l){s.eventFilter=l}n.push(s)}else if(o.indexOf(\"sse:\")===0){n.push({trigger:\"sse\",sseEvent:o.substr(4)})}else{var u={trigger:o};var l=et(e,i,\"event\");if(l){u.eventFilter=l}while(i.length>0&&i[0]!==\",\"){y(i,Je);var f=i.shift();if(f===\"changed\"){u.changed=true}else if(f===\"once\"){u.once=true}else if(f===\"consume\"){u.consume=true}else if(f===\"delay\"&&i[0]===\":\"){i.shift();u.delay=d(y(i,x))}else if(f===\"from\"&&i[0]===\":\"){i.shift();if(Ze.test(i[0])){var c=tt(i)}else{var c=y(i,x);if(c===\"closest\"||c===\"find\"||c===\"next\"||c===\"previous\"){i.shift();var h=tt(i);if(h.length>0){c+=\" \"+h}}}u.from=c}else if(f===\"target\"&&i[0]===\":\"){i.shift();u.target=tt(i)}else if(f===\"throttle\"&&i[0]===\":\"){i.shift();u.throttle=d(y(i,x))}else if(f===\"queue\"&&i[0]===\":\"){i.shift();u.queue=y(i,x)}else if(f===\"root\"&&i[0]===\":\"){i.shift();u[f]=tt(i)}else if(f===\"threshold\"&&i[0]===\":\"){i.shift();u[f]=y(i,x)}else{fe(e,\"htmx:syntax:error\",{token:i.shift()})}}n.push(u)}}if(i.length===a){fe(e,\"htmx:syntax:error\",{token:i.shift()})}y(i,Je)}while(i[0]===\",\"&&i.shift());if(r){r[t]=n}return n}function it(e){var t=te(e,\"hx-trigger\");var r=[];if(t){var n=Q.config.triggerSpecsCache;r=n&&n[t]||nt(e,t,n)}if(r.length>0){return r}else if(h(e,\"form\")){return[{trigger:\"submit\"}]}else if(h(e,'input[type=\"button\"], input[type=\"submit\"]')){return[{trigger:\"click\"}]}else if(h(e,rt)){return[{trigger:\"change\"}]}else{return[{trigger:\"click\"}]}}function at(e){ae(e).cancelled=true}function ot(e,t,r){var n=ae(e);n.timeout=setTimeout(function(){if(se(e)&&n.cancelled!==true){if(!ct(r,e,Wt(\"hx:poll:trigger\",{triggerSpec:r,target:e}))){t(e)}ot(e,t,r)}},r.pollInterval)}function st(e){return location.hostname===e.hostname&&ee(e,\"href\")&&ee(e,\"href\").indexOf(\"#\")!==0}function lt(t,r,e){if(t.tagName===\"A\"&&st(t)&&(t.target===\"\"||t.target===\"_self\")||t.tagName===\"FORM\"){r.boosted=true;var n,i;if(t.tagName===\"A\"){n=\"get\";i=ee(t,\"href\")}else{var a=ee(t,\"method\");n=a?a.toLowerCase():\"get\";if(n===\"get\"){}i=ee(t,\"action\")}e.forEach(function(e){ht(t,function(e,t){if(v(e,Q.config.disableSelector)){m(e);return}he(n,i,e,t)},r,e,true)})}}function ut(e,t){if(e.type===\"submit\"||e.type===\"click\"){if(t.tagName===\"FORM\"){return true}if(h(t,'input[type=\"submit\"], button')&&v(t,\"form\")!==null){return true}if(t.tagName===\"A\"&&t.href&&(t.getAttribute(\"href\")===\"#\"||t.getAttribute(\"href\").indexOf(\"#\")!==0)){return true}}return false}function ft(e,t){return ae(e).boosted&&e.tagName===\"A\"&&t.type===\"click\"&&(t.ctrlKey||t.metaKey)}function ct(e,t,r){var n=e.eventFilter;if(n){try{return n.call(t,r)!==true}catch(e){fe(re().body,\"htmx:eventFilter:error\",{error:e,source:n.source});return true}}return false}function ht(a,o,e,s,l){var u=ae(a);var t;if(s.from){t=Z(a,s.from)}else{t=[a]}if(s.changed){t.forEach(function(e){var t=ae(e);t.lastValue=e.value})}oe(t,function(n){var i=function(e){if(!se(a)){n.removeEventListener(s.trigger,i);return}if(ft(a,e)){return}if(l||ut(e,a)){e.preventDefault()}if(ct(s,a,e)){return}var t=ae(e);t.triggerSpec=s;if(t.handledFor==null){t.handledFor=[]}if(t.handledFor.indexOf(a)<0){t.handledFor.push(a);if(s.consume){e.stopPropagation()}if(s.target&&e.target){if(!h(e.target,s.target)){return}}if(s.once){if(u.triggeredOnce){return}else{u.triggeredOnce=true}}if(s.changed){var r=ae(n);if(r.lastValue===n.value){return}r.lastValue=n.value}if(u.delayed){clearTimeout(u.delayed)}if(u.throttle){return}if(s.throttle>0){if(!u.throttle){o(a,e);u.throttle=setTimeout(function(){u.throttle=null},s.throttle)}}else if(s.delay>0){u.delayed=setTimeout(function(){o(a,e)},s.delay)}else{ce(a,\"htmx:trigger\");o(a,e)}}};if(e.listenerInfos==null){e.listenerInfos=[]}e.listenerInfos.push({trigger:s.trigger,listener:i,on:n});n.addEventListener(s.trigger,i)})}var vt=false;var dt=null;function gt(){if(!dt){dt=function(){vt=true};window.addEventListener(\"scroll\",dt);setInterval(function(){if(vt){vt=false;oe(re().querySelectorAll(\"[hx-trigger='revealed'],[data-hx-trigger='revealed']\"),function(e){pt(e)})}},200)}}function pt(t){if(!o(t,\"data-hx-revealed\")&&X(t)){t.setAttribute(\"data-hx-revealed\",\"true\");var e=ae(t);if(e.initHash){ce(t,\"revealed\")}else{t.addEventListener(\"htmx:afterProcessNode\",function(e){ce(t,\"revealed\")},{once:true})}}}function mt(e,t,r){var n=D(r);for(var i=0;i=0){var t=wt(n);setTimeout(function(){xt(s,r,n+1)},t)}};t.onopen=function(e){n=0};ae(s).webSocket=t;t.addEventListener(\"message\",function(e){if(yt(s)){return}var t=e.data;R(s,function(e){t=e.transformResponse(t,null,s)});var r=T(s);var n=l(t);var i=M(n.children);for(var a=0;a0){ce(u,\"htmx:validation:halted\",i);return}t.send(JSON.stringify(l));if(ut(e,u)){e.preventDefault()}})}else{fe(u,\"htmx:noWebSocketSourceError\")}}function wt(e){var t=Q.config.wsReconnectDelay;if(typeof t===\"function\"){return t(e)}if(t===\"full-jitter\"){var r=Math.min(e,6);var n=1e3*Math.pow(2,r);return n*Math.random()}b('htmx.config.wsReconnectDelay must either be a function or the string \"full-jitter\"')}function St(e,t,r){var n=D(r);for(var i=0;i0){setTimeout(i,n)}else{i()}}function Ht(t,i,e){var a=false;oe(w,function(r){if(o(t,\"hx-\"+r)){var n=te(t,\"hx-\"+r);a=true;i.path=n;i.verb=r;e.forEach(function(e){Lt(t,e,i,function(e,t){if(v(e,Q.config.disableSelector)){m(e);return}he(r,n,e,t)})})}});return a}function Lt(n,e,t,r){if(e.sseEvent){Rt(n,r,e.sseEvent)}else if(e.trigger===\"revealed\"){gt();ht(n,r,t,e);pt(n)}else if(e.trigger===\"intersect\"){var i={};if(e.root){i.root=ue(n,e.root)}if(e.threshold){i.threshold=parseFloat(e.threshold)}var a=new IntersectionObserver(function(e){for(var t=0;t0){t.polling=true;ot(n,r,e)}else{ht(n,r,t,e)}}function At(e){if(!e.htmxExecuted&&Q.config.allowScriptTags&&(e.type===\"text/javascript\"||e.type===\"module\"||e.type===\"\")){var t=re().createElement(\"script\");oe(e.attributes,function(e){t.setAttribute(e.name,e.value)});t.textContent=e.textContent;t.async=false;if(Q.config.inlineScriptNonce){t.nonce=Q.config.inlineScriptNonce}var r=e.parentElement;try{r.insertBefore(t,e)}catch(e){b(e)}finally{if(e.parentElement){e.parentElement.removeChild(e)}}}}function Nt(e){if(h(e,\"script\")){At(e)}oe(f(e,\"script\"),function(e){At(e)})}function It(e){var t=e.attributes;if(!t){return false}for(var r=0;r0){var o=n.shift();var s=o.match(/^\\s*([a-zA-Z:\\-\\.]+:)(.*)/);if(a===0&&s){o.split(\":\");i=s[1].slice(0,-1);r[i]=s[2]}else{r[i]+=o}a+=Bt(o)}for(var l in r){Ft(e,l,r[l])}}}function jt(e){Ae(e);for(var t=0;tQ.config.historyCacheSize){i.shift()}while(i.length>0){try{localStorage.setItem(\"htmx-history-cache\",JSON.stringify(i));break}catch(e){fe(re().body,\"htmx:historyCacheError\",{cause:e,cache:i});i.shift()}}}function Yt(e){if(!U()){return null}e=B(e);var t=E(localStorage.getItem(\"htmx-history-cache\"))||[];for(var r=0;r=200&&this.status<400){ce(re().body,\"htmx:historyCacheMissLoad\",o);var e=l(this.response);e=e.querySelector(\"[hx-history-elt],[data-hx-history-elt]\")||e;var t=Zt();var r=T(t);var n=Ve(this.response);if(n){var i=C(\"title\");if(i){i.innerHTML=n}else{window.document.title=n}}Ue(t,e,r);nr(r.tasks);Jt=a;ce(re().body,\"htmx:historyRestore\",{path:a,cacheMiss:true,serverResponse:this.response})}else{fe(re().body,\"htmx:historyCacheMissLoadError\",o)}};e.send()}function ar(e){er();e=e||location.pathname+location.search;var t=Yt(e);if(t){var r=l(t.content);var n=Zt();var i=T(n);Ue(n,r,i);nr(i.tasks);document.title=t.title;setTimeout(function(){window.scrollTo(0,t.scroll)},0);Jt=e;ce(re().body,\"htmx:historyRestore\",{path:e,item:t})}else{if(Q.config.refreshOnHistoryMiss){window.location.reload(true)}else{ir(e)}}}function or(e){var t=me(e,\"hx-indicator\");if(t==null){t=[e]}oe(t,function(e){var t=ae(e);t.requestCount=(t.requestCount||0)+1;e.classList[\"add\"].call(e.classList,Q.config.requestClass)});return t}function sr(e){var t=me(e,\"hx-disabled-elt\");if(t==null){t=[]}oe(t,function(e){var t=ae(e);t.requestCount=(t.requestCount||0)+1;e.setAttribute(\"disabled\",\"\")});return t}function lr(e,t){oe(e,function(e){var t=ae(e);t.requestCount=(t.requestCount||0)-1;if(t.requestCount===0){e.classList[\"remove\"].call(e.classList,Q.config.requestClass)}});oe(t,function(e){var t=ae(e);t.requestCount=(t.requestCount||0)-1;if(t.requestCount===0){e.removeAttribute(\"disabled\")}})}function ur(e,t){for(var r=0;r=0}function wr(e,t){var r=t?t:ne(e,\"hx-swap\");var n={swapStyle:ae(e).boosted?\"innerHTML\":Q.config.defaultSwapStyle,swapDelay:Q.config.defaultSwapDelay,settleDelay:Q.config.defaultSettleDelay};if(Q.config.scrollIntoViewOnBoost&&ae(e).boosted&&!br(e)){n[\"show\"]=\"top\"}if(r){var i=D(r);if(i.length>0){for(var a=0;a0?l.join(\":\"):null;n[\"scroll\"]=u;n[\"scrollTarget\"]=f}else if(o.indexOf(\"show:\")===0){var c=o.substr(5);var l=c.split(\":\");var h=l.pop();var f=l.length>0?l.join(\":\"):null;n[\"show\"]=h;n[\"showTarget\"]=f}else if(o.indexOf(\"focus-scroll:\")===0){var v=o.substr(\"focus-scroll:\".length);n[\"focusScroll\"]=v==\"true\"}else if(a==0){n[\"swapStyle\"]=o}else{b(\"Unknown modifier in hx-swap: \"+o)}}}}return n}function Sr(e){return ne(e,\"hx-encoding\")===\"multipart/form-data\"||h(e,\"form\")&&ee(e,\"enctype\")===\"multipart/form-data\"}function Er(t,r,n){var i=null;R(r,function(e){if(i==null){i=e.encodeParameters(t,n,r)}});if(i!=null){return i}else{if(Sr(r)){return mr(n)}else{return pr(n)}}}function T(e){return{tasks:[],elts:[e]}}function Cr(e,t){var r=e[0];var n=e[e.length-1];if(t.scroll){var i=null;if(t.scrollTarget){i=ue(r,t.scrollTarget)}if(t.scroll===\"top\"&&(r||i)){i=i||r;i.scrollTop=0}if(t.scroll===\"bottom\"&&(n||i)){i=i||n;i.scrollTop=i.scrollHeight}}if(t.show){var i=null;if(t.showTarget){var a=t.showTarget;if(t.showTarget===\"window\"){a=\"body\"}i=ue(r,a)}if(t.show===\"top\"&&(r||i)){i=i||r;i.scrollIntoView({block:\"start\",behavior:Q.config.scrollBehavior})}if(t.show===\"bottom\"&&(n||i)){i=i||n;i.scrollIntoView({block:\"end\",behavior:Q.config.scrollBehavior})}}}function Rr(e,t,r,n){if(n==null){n={}}if(e==null){return n}var i=te(e,t);if(i){var a=i.trim();var o=r;if(a===\"unset\"){return null}if(a.indexOf(\"javascript:\")===0){a=a.substr(11);o=true}else if(a.indexOf(\"js:\")===0){a=a.substr(3);o=true}if(a.indexOf(\"{\")!==0){a=\"{\"+a+\"}\"}var s;if(o){s=Tr(e,function(){return Function(\"return (\"+a+\")\")()},{})}else{s=E(a)}for(var l in s){if(s.hasOwnProperty(l)){if(n[l]==null){n[l]=s[l]}}}}return Rr(u(e),t,r,n)}function Tr(e,t,r){if(Q.config.allowEval){return t()}else{fe(e,\"htmx:evalDisallowedError\");return r}}function Or(e,t){return Rr(e,\"hx-vars\",true,t)}function qr(e,t){return Rr(e,\"hx-vals\",false,t)}function Hr(e){return le(Or(e),qr(e))}function Lr(t,r,n){if(n!==null){try{t.setRequestHeader(r,n)}catch(e){t.setRequestHeader(r,encodeURIComponent(n));t.setRequestHeader(r+\"-URI-AutoEncoded\",\"true\")}}}function Ar(t){if(t.responseURL&&typeof URL!==\"undefined\"){try{var e=new URL(t.responseURL);return e.pathname+e.search}catch(e){fe(re().body,\"htmx:badResponseUrl\",{url:t.responseURL})}}}function O(e,t){return t.test(e.getAllResponseHeaders())}function Nr(e,t,r){e=e.toLowerCase();if(r){if(r instanceof Element||I(r,\"String\")){return he(e,t,null,null,{targetOverride:p(r),returnPromise:true})}else{return he(e,t,p(r.source),r.event,{handler:r.handler,headers:r.headers,values:r.values,targetOverride:p(r.target),swapOverride:r.swap,select:r.select,returnPromise:true})}}else{return he(e,t,null,null,{returnPromise:true})}}function Ir(e){var t=[];while(e){t.push(e);e=e.parentElement}return t}function kr(e,t,r){var n;var i;if(typeof URL===\"function\"){i=new URL(t,document.location.href);var a=document.location.origin;n=a===i.origin}else{i=t;n=g(t,document.location.origin)}if(Q.config.selfRequestsOnly){if(!n){return false}}return ce(e,\"htmx:validateUrl\",le({url:i,sameHost:n},r))}function he(t,r,n,i,a,e){var o=null;var s=null;a=a!=null?a:{};if(a.returnPromise&&typeof Promise!==\"undefined\"){var l=new Promise(function(e,t){o=e;s=t})}if(n==null){n=re().body}var M=a.handler||Mr;var X=a.select||null;if(!se(n)){ie(o);return l}var u=a.targetOverride||ye(n);if(u==null||u==pe){fe(n,\"htmx:targetError\",{target:te(n,\"hx-target\")});ie(s);return l}var f=ae(n);var c=f.lastButtonClicked;if(c){var h=ee(c,\"formaction\");if(h!=null){r=h}var v=ee(c,\"formmethod\");if(v!=null){if(v.toLowerCase()!==\"dialog\"){t=v}}}var d=ne(n,\"hx-confirm\");if(e===undefined){var D=function(e){return he(t,r,n,i,a,!!e)};var U={target:u,elt:n,path:r,verb:t,triggeringEvent:i,etc:a,issueRequest:D,question:d};if(ce(n,\"htmx:confirm\",U)===false){ie(o);return l}}var g=n;var p=ne(n,\"hx-sync\");var m=null;var x=false;if(p){var B=p.split(\":\");var F=B[0].trim();if(F===\"this\"){g=xe(n,\"hx-sync\")}else{g=ue(n,F)}p=(B[1]||\"drop\").trim();f=ae(g);if(p===\"drop\"&&f.xhr&&f.abortable!==true){ie(o);return l}else if(p===\"abort\"){if(f.xhr){ie(o);return l}else{x=true}}else if(p===\"replace\"){ce(g,\"htmx:abort\")}else if(p.indexOf(\"queue\")===0){var V=p.split(\" \");m=(V[1]||\"last\").trim()}}if(f.xhr){if(f.abortable){ce(g,\"htmx:abort\")}else{if(m==null){if(i){var y=ae(i);if(y&&y.triggerSpec&&y.triggerSpec.queue){m=y.triggerSpec.queue}}if(m==null){m=\"last\"}}if(f.queuedRequests==null){f.queuedRequests=[]}if(m===\"first\"&&f.queuedRequests.length===0){f.queuedRequests.push(function(){he(t,r,n,i,a)})}else if(m===\"all\"){f.queuedRequests.push(function(){he(t,r,n,i,a)})}else if(m===\"last\"){f.queuedRequests=[];f.queuedRequests.push(function(){he(t,r,n,i,a)})}ie(o);return l}}var b=new XMLHttpRequest;f.xhr=b;f.abortable=x;var w=function(){f.xhr=null;f.abortable=false;if(f.queuedRequests!=null&&f.queuedRequests.length>0){var e=f.queuedRequests.shift();e()}};var j=ne(n,\"hx-prompt\");if(j){var S=prompt(j);if(S===null||!ce(n,\"htmx:prompt\",{prompt:S,target:u})){ie(o);w();return l}}if(d&&!e){if(!confirm(d)){ie(o);w();return l}}var E=xr(n,u,S);if(t!==\"get\"&&!Sr(n)){E[\"Content-Type\"]=\"application/x-www-form-urlencoded\"}if(a.headers){E=le(E,a.headers)}var _=dr(n,t);var C=_.errors;var R=_.values;if(a.values){R=le(R,a.values)}var z=Hr(n);var $=le(R,z);var T=yr($,n);if(Q.config.getCacheBusterParam&&t===\"get\"){T[\"org.htmx.cache-buster\"]=ee(u,\"id\")||\"true\"}if(r==null||r===\"\"){r=re().location.href}var O=Rr(n,\"hx-request\");var W=ae(n).boosted;var q=Q.config.methodsThatUseUrlParams.indexOf(t)>=0;var H={boosted:W,useUrlParams:q,parameters:T,unfilteredParameters:$,headers:E,target:u,verb:t,errors:C,withCredentials:a.credentials||O.credentials||Q.config.withCredentials,timeout:a.timeout||O.timeout||Q.config.timeout,path:r,triggeringEvent:i};if(!ce(n,\"htmx:configRequest\",H)){ie(o);w();return l}r=H.path;t=H.verb;E=H.headers;T=H.parameters;C=H.errors;q=H.useUrlParams;if(C&&C.length>0){ce(n,\"htmx:validation:halted\",H);ie(o);w();return l}var G=r.split(\"#\");var J=G[0];var L=G[1];var A=r;if(q){A=J;var Z=Object.keys(T).length!==0;if(Z){if(A.indexOf(\"?\")<0){A+=\"?\"}else{A+=\"&\"}A+=pr(T);if(L){A+=\"#\"+L}}}if(!kr(n,A,H)){fe(n,\"htmx:invalidPath\",H);ie(s);return l}b.open(t.toUpperCase(),A,true);b.overrideMimeType(\"text/html\");b.withCredentials=H.withCredentials;b.timeout=H.timeout;if(O.noHeaders){}else{for(var N in E){if(E.hasOwnProperty(N)){var K=E[N];Lr(b,N,K)}}}var I={xhr:b,target:u,requestConfig:H,etc:a,boosted:W,select:X,pathInfo:{requestPath:r,finalRequestPath:A,anchor:L}};b.onload=function(){try{var e=Ir(n);I.pathInfo.responsePath=Ar(b);M(n,I);lr(k,P);ce(n,\"htmx:afterRequest\",I);ce(n,\"htmx:afterOnLoad\",I);if(!se(n)){var t=null;while(e.length>0&&t==null){var r=e.shift();if(se(r)){t=r}}if(t){ce(t,\"htmx:afterRequest\",I);ce(t,\"htmx:afterOnLoad\",I)}}ie(o);w()}catch(e){fe(n,\"htmx:onLoadError\",le({error:e},I));throw e}};b.onerror=function(){lr(k,P);fe(n,\"htmx:afterRequest\",I);fe(n,\"htmx:sendError\",I);ie(s);w()};b.onabort=function(){lr(k,P);fe(n,\"htmx:afterRequest\",I);fe(n,\"htmx:sendAbort\",I);ie(s);w()};b.ontimeout=function(){lr(k,P);fe(n,\"htmx:afterRequest\",I);fe(n,\"htmx:timeout\",I);ie(s);w()};if(!ce(n,\"htmx:beforeRequest\",I)){ie(o);w();return l}var k=or(n);var P=sr(n);oe([\"loadstart\",\"loadend\",\"progress\",\"abort\"],function(t){oe([b,b.upload],function(e){e.addEventListener(t,function(e){ce(n,\"htmx:xhr:\"+t,{lengthComputable:e.lengthComputable,loaded:e.loaded,total:e.total})})})});ce(n,\"htmx:beforeSend\",I);var Y=q?null:Er(b,n,T);b.send(Y);return l}function Pr(e,t){var r=t.xhr;var n=null;var i=null;if(O(r,/HX-Push:/i)){n=r.getResponseHeader(\"HX-Push\");i=\"push\"}else if(O(r,/HX-Push-Url:/i)){n=r.getResponseHeader(\"HX-Push-Url\");i=\"push\"}else if(O(r,/HX-Replace-Url:/i)){n=r.getResponseHeader(\"HX-Replace-Url\");i=\"replace\"}if(n){if(n===\"false\"){return{}}else{return{type:i,path:n}}}var a=t.pathInfo.finalRequestPath;var o=t.pathInfo.responsePath;var s=ne(e,\"hx-push-url\");var l=ne(e,\"hx-replace-url\");var u=ae(e).boosted;var f=null;var c=null;if(s){f=\"push\";c=s}else if(l){f=\"replace\";c=l}else if(u){f=\"push\";c=o||a}if(c){if(c===\"false\"){return{}}if(c===\"true\"){c=o||a}if(t.pathInfo.anchor&&c.indexOf(\"#\")===-1){c=c+\"#\"+t.pathInfo.anchor}return{type:f,path:c}}else{return{}}}function Mr(l,u){var f=u.xhr;var c=u.target;var e=u.etc;var t=u.requestConfig;var h=u.select;if(!ce(l,\"htmx:beforeOnLoad\",u))return;if(O(f,/HX-Trigger:/i)){_e(f,\"HX-Trigger\",l)}if(O(f,/HX-Location:/i)){er();var r=f.getResponseHeader(\"HX-Location\");var v;if(r.indexOf(\"{\")===0){v=E(r);r=v[\"path\"];delete v[\"path\"]}Nr(\"GET\",r,v).then(function(){tr(r)});return}var n=O(f,/HX-Refresh:/i)&&\"true\"===f.getResponseHeader(\"HX-Refresh\");if(O(f,/HX-Redirect:/i)){location.href=f.getResponseHeader(\"HX-Redirect\");n&&location.reload();return}if(n){location.reload();return}if(O(f,/HX-Retarget:/i)){if(f.getResponseHeader(\"HX-Retarget\")===\"this\"){u.target=l}else{u.target=ue(l,f.getResponseHeader(\"HX-Retarget\"))}}var d=Pr(l,u);var i=f.status>=200&&f.status<400&&f.status!==204;var g=f.response;var a=f.status>=400;var p=Q.config.ignoreTitle;var o=le({shouldSwap:i,serverResponse:g,isError:a,ignoreTitle:p},u);if(!ce(c,\"htmx:beforeSwap\",o))return;c=o.target;g=o.serverResponse;a=o.isError;p=o.ignoreTitle;u.target=c;u.failed=a;u.successful=!a;if(o.shouldSwap){if(f.status===286){at(l)}R(l,function(e){g=e.transformResponse(g,f,l)});if(d.type){er()}var s=e.swapOverride;if(O(f,/HX-Reswap:/i)){s=f.getResponseHeader(\"HX-Reswap\")}var v=wr(l,s);if(v.hasOwnProperty(\"ignoreTitle\")){p=v.ignoreTitle}c.classList.add(Q.config.swappingClass);var m=null;var x=null;var y=function(){try{var e=document.activeElement;var t={};try{t={elt:e,start:e?e.selectionStart:null,end:e?e.selectionEnd:null}}catch(e){}var r;if(h){r=h}if(O(f,/HX-Reselect:/i)){r=f.getResponseHeader(\"HX-Reselect\")}if(d.type){ce(re().body,\"htmx:beforeHistoryUpdate\",le({history:d},u));if(d.type===\"push\"){tr(d.path);ce(re().body,\"htmx:pushedIntoHistory\",{path:d.path})}else{rr(d.path);ce(re().body,\"htmx:replacedInHistory\",{path:d.path})}}var n=T(c);je(v.swapStyle,c,l,g,n,r);if(t.elt&&!se(t.elt)&&ee(t.elt,\"id\")){var i=document.getElementById(ee(t.elt,\"id\"));var a={preventScroll:v.focusScroll!==undefined?!v.focusScroll:!Q.config.defaultFocusScroll};if(i){if(t.start&&i.setSelectionRange){try{i.setSelectionRange(t.start,t.end)}catch(e){}}i.focus(a)}}c.classList.remove(Q.config.swappingClass);oe(n.elts,function(e){if(e.classList){e.classList.add(Q.config.settlingClass)}ce(e,\"htmx:afterSwap\",u)});if(O(f,/HX-Trigger-After-Swap:/i)){var o=l;if(!se(l)){o=re().body}_e(f,\"HX-Trigger-After-Swap\",o)}var s=function(){oe(n.tasks,function(e){e.call()});oe(n.elts,function(e){if(e.classList){e.classList.remove(Q.config.settlingClass)}ce(e,\"htmx:afterSettle\",u)});if(u.pathInfo.anchor){var e=re().getElementById(u.pathInfo.anchor);if(e){e.scrollIntoView({block:\"start\",behavior:\"auto\"})}}if(n.title&&!p){var t=C(\"title\");if(t){t.innerHTML=n.title}else{window.document.title=n.title}}Cr(n.elts,v);if(O(f,/HX-Trigger-After-Settle:/i)){var r=l;if(!se(l)){r=re().body}_e(f,\"HX-Trigger-After-Settle\",r)}ie(m)};if(v.settleDelay>0){setTimeout(s,v.settleDelay)}else{s()}}catch(e){fe(l,\"htmx:swapError\",u);ie(x);throw e}};var b=Q.config.globalViewTransitions;if(v.hasOwnProperty(\"transition\")){b=v.transition}if(b&&ce(l,\"htmx:beforeTransition\",u)&&typeof Promise!==\"undefined\"&&document.startViewTransition){var w=new Promise(function(e,t){m=e;x=t});var S=y;y=function(){document.startViewTransition(function(){S();return w})}}if(v.swapDelay>0){setTimeout(y,v.swapDelay)}else{y()}}if(a){fe(l,\"htmx:responseError\",le({error:\"Response Status Error Code \"+f.status+\" from \"+u.pathInfo.requestPath},u))}}var Xr={};function Dr(){return{init:function(e){return null},onEvent:function(e,t){return true},transformResponse:function(e,t,r){return e},isInlineSwap:function(e){return false},handleSwap:function(e,t,r,n){return false},encodeParameters:function(e,t,r){return null}}}function Ur(e,t){if(t.init){t.init(r)}Xr[e]=le(Dr(),t)}function Br(e){delete Xr[e]}function Fr(e,r,n){if(e==undefined){return r}if(r==undefined){r=[]}if(n==undefined){n=[]}var t=te(e,\"hx-ext\");if(t){oe(t.split(\",\"),function(e){e=e.replace(/ /g,\"\");if(e.slice(0,7)==\"ignore:\"){n.push(e.slice(7));return}if(n.indexOf(e)<0){var t=Xr[e];if(t&&r.indexOf(t)<0){r.push(t)}}})}return Fr(u(e),r,n)}var Vr=false;re().addEventListener(\"DOMContentLoaded\",function(){Vr=true});function jr(e){if(Vr||re().readyState===\"complete\"){e()}else{re().addEventListener(\"DOMContentLoaded\",e)}}function _r(){if(Q.config.includeIndicatorStyles!==false){re().head.insertAdjacentHTML(\"beforeend\",\"\")}}function zr(){var e=re().querySelector('meta[name=\"htmx-config\"]');if(e){return E(e.content)}else{return null}}function $r(){var e=zr();if(e){Q.config=le(Q.config,e)}}jr(function(){$r();_r();var e=re().body;zt(e);var t=re().querySelectorAll(\"[hx-trigger='restored'],[data-hx-trigger='restored']\");e.addEventListener(\"htmx:abort\",function(e){var t=e.target;var r=ae(t);if(r&&r.xhr){r.xhr.abort()}});const r=window.onpopstate?window.onpopstate.bind(window):null;window.onpopstate=function(e){if(e.state&&e.state.htmx){ar();oe(t,function(e){ce(e,\"htmx:restored\",{document:re(),triggerEvent:ce})})}else{if(r){r(e)}}};setTimeout(function(){ce(e,\"htmx:load\",{});e=null},0)});return Q}()});","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n\nmodule.exports = {\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return String(value);\n }\n },\n RFC1738: Format.RFC1738,\n RFC3986: Format.RFC3986\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(\n parseArrayValue(part.slice(pos + 1), options),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (!options.parseArrays && cleanRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else if (cleanRoot !== '__proto__') {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n return utils.compact(obj);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\n\nvar isArray = Array.isArray;\nvar split = String.prototype.split;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string'\n || typeof v === 'number'\n || typeof v === 'boolean'\n || typeof v === 'symbol'\n || typeof v === 'bigint';\n};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset\n) {\n var obj = object;\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n return value;\n });\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n if (generateArrayPrefix === 'comma' && encodeValuesOnly) {\n var valuesArray = split.call(String(obj), ',');\n var valuesJoined = '';\n for (var i = 0; i < valuesArray.length; ++i) {\n valuesJoined += (i === 0 ? '' : ',') + formatter(encoder(valuesArray[i], defaults.encoder, charset, 'value', format));\n }\n return [formatter(keyValue) + '=' + valuesJoined];\n }\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];\n } else if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var j = 0; j < objKeys.length; ++j) {\n var key = objKeys[j];\n var value = typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var keyPrefix = isArray(obj)\n ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix\n : prefix + (allowDots ? '.' + key : '[' + key + ']');\n\n pushToArray(values, stringify(\n value,\n keyPrefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset\n ));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n var formatter = formats.formatters[format];\n\n var filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (opts && opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if (opts && 'indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n pushToArray(keys, stringify(\n obj[key],\n key,\n generateArrayPrefix,\n options.strictNullHandling,\n options.skipNulls,\n options.encode ? options.encoder : null,\n options.filter,\n options.sort,\n options.allowDots,\n options.serializeDate,\n options.format,\n options.formatter,\n options.encodeValuesOnly,\n options.charset\n ));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n /* eslint operator-linebreak: [2, \"before\"] */\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// packages/alpinejs/src/scheduler.js\nvar flushPending = false;\nvar flushing = false;\nvar queue = [];\nvar lastFlushedIndex = -1;\nfunction scheduler(callback) {\n queueJob(callback);\n}\nfunction queueJob(job) {\n if (!queue.includes(job))\n queue.push(job);\n queueFlush();\n}\nfunction dequeueJob(job) {\n let index = queue.indexOf(job);\n if (index !== -1 && index > lastFlushedIndex)\n queue.splice(index, 1);\n}\nfunction queueFlush() {\n if (!flushing && !flushPending) {\n flushPending = true;\n queueMicrotask(flushJobs);\n }\n}\nfunction flushJobs() {\n flushPending = false;\n flushing = true;\n for (let i = 0; i < queue.length; i++) {\n queue[i]();\n lastFlushedIndex = i;\n }\n queue.length = 0;\n lastFlushedIndex = -1;\n flushing = false;\n}\n\n// packages/alpinejs/src/reactivity.js\nvar reactive;\nvar effect;\nvar release;\nvar raw;\nvar shouldSchedule = true;\nfunction disableEffectScheduling(callback) {\n shouldSchedule = false;\n callback();\n shouldSchedule = true;\n}\nfunction setReactivityEngine(engine) {\n reactive = engine.reactive;\n release = engine.release;\n effect = (callback) => engine.effect(callback, { scheduler: (task) => {\n if (shouldSchedule) {\n scheduler(task);\n } else {\n task();\n }\n } });\n raw = engine.raw;\n}\nfunction overrideEffect(override) {\n effect = override;\n}\nfunction elementBoundEffect(el) {\n let cleanup2 = () => {\n };\n let wrappedEffect = (callback) => {\n let effectReference = effect(callback);\n if (!el._x_effects) {\n el._x_effects = /* @__PURE__ */ new Set();\n el._x_runEffects = () => {\n el._x_effects.forEach((i) => i());\n };\n }\n el._x_effects.add(effectReference);\n cleanup2 = () => {\n if (effectReference === void 0)\n return;\n el._x_effects.delete(effectReference);\n release(effectReference);\n };\n return effectReference;\n };\n return [wrappedEffect, () => {\n cleanup2();\n }];\n}\n\n// packages/alpinejs/src/utils/dispatch.js\nfunction dispatch(el, name, detail = {}) {\n el.dispatchEvent(\n new CustomEvent(name, {\n detail,\n bubbles: true,\n // Allows events to pass the shadow DOM barrier.\n composed: true,\n cancelable: true\n })\n );\n}\n\n// packages/alpinejs/src/utils/walk.js\nfunction walk(el, callback) {\n if (typeof ShadowRoot === \"function\" && el instanceof ShadowRoot) {\n Array.from(el.children).forEach((el2) => walk(el2, callback));\n return;\n }\n let skip = false;\n callback(el, () => skip = true);\n if (skip)\n return;\n let node = el.firstElementChild;\n while (node) {\n walk(node, callback, false);\n node = node.nextElementSibling;\n }\n}\n\n// packages/alpinejs/src/utils/warn.js\nfunction warn(message, ...args) {\n console.warn(`Alpine Warning: ${message}`, ...args);\n}\n\n// packages/alpinejs/src/lifecycle.js\nvar started = false;\nfunction start() {\n if (started)\n warn(\"Alpine has already been initialized on this page. Calling Alpine.start() more than once can cause problems.\");\n started = true;\n if (!document.body)\n warn(\"Unable to initialize. Trying to load Alpine before `` is available. Did you forget to add `defer` in Alpine's `